blob: b23d392b9e7477d9f3fb9d3ffde4c5d032241e49 [file] [log] [blame]
// Copyright (c) 2020, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// This file is generated; don't edit it directly.
//
// See pkg/analysis_server/tool/nnbd_migration/generate_resources.dart for how
// to edit the source content and for re-generation instructions.
import 'dart:convert' as convert;
String get highlight_css {
return _highlight_css ??= _decode(_highlight_css_base64);
}
String get highlight_pack_js {
return _highlight_pack_js ??= _decode(_highlight_pack_js_base64);
}
String get index_html {
return _index_html ??= _decode(_index_html_base64);
}
String get migration_css {
return _migration_css ??= _decode(_migration_css_base64);
}
String get migration_js {
return _migration_js ??= _decode(_migration_js_base64);
}
String _decode(String data) {
data = data.replaceAll('\n', '').trim();
return String.fromCharCodes(convert.base64Decode(data));
}
String _highlight_css;
// highlight_css md5 is 'fb012626bafd286510d32da815dae448'
String _highlight_css_base64 = '''
LyoKRGF0ZTogMjQgRmV2IDIwMTUKQXV0aG9yOiBQZWRybyBPbGl2ZWlyYSA8a2FueXR1QGdtYWlsIC4g
Y29tPgoqLwoKLmhsanMgewogIGNvbG9yOiAjYTliN2M2OwogIGJhY2tncm91bmQ6ICMyODJiMmU7CiAg
ZGlzcGxheTogYmxvY2s7CiAgb3ZlcmZsb3cteDogYXV0bzsKICBwYWRkaW5nOiAwLjVlbTsKfQoKLmhs
anMtbnVtYmVyLAouaGxqcy1saXRlcmFsLAouaGxqcy1zeW1ib2wsCi5obGpzLWJ1bGxldCB7CiAgY29s
b3I6ICM2ODk3QkI7Cn0KCi5obGpzLWtleXdvcmQsCi5obGpzLXNlbGVjdG9yLXRhZywKLmhsanMtZGVs
ZXRpb24gewogIGNvbG9yOiAjY2M3ODMyOwp9CgouaGxqcy12YXJpYWJsZSwKLmhsanMtdGVtcGxhdGUt
dmFyaWFibGUsCi5obGpzLWxpbmsgewogIGNvbG9yOiAjNjI5NzU1Owp9CgouaGxqcy1jb21tZW50LAou
aGxqcy1xdW90ZSB7CiAgY29sb3I6ICM4MDgwODA7Cn0KCi5obGpzLW1ldGEgewogIGNvbG9yOiAjYmJi
NTI5Owp9CgouaGxqcy1zdHJpbmcsCi5obGpzLWF0dHJpYnV0ZSwKLmhsanMtYWRkaXRpb24gewogIGNv
bG9yOiAjNkE4NzU5Owp9CgouaGxqcy1zZWN0aW9uLAouaGxqcy10aXRsZSwKLmhsanMtdHlwZSB7CiAg
Y29sb3I6ICNmZmM2NmQ7Cn0KCi5obGpzLW5hbWUsCi5obGpzLXNlbGVjdG9yLWlkLAouaGxqcy1zZWxl
Y3Rvci1jbGFzcyB7CiAgY29sb3I6ICNlOGJmNmE7Cn0KCi5obGpzLWVtcGhhc2lzIHsKICBmb250LXN0
eWxlOiBpdGFsaWM7Cn0KCi5obGpzLXN0cm9uZyB7CiAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0K
''';
String _highlight_pack_js;
// highlight_pack_js md5 is '9104bfe8b056f8e00da50b0ea3d6e6d4'
String _highlight_pack_js_base64 = '''
LyohIGhpZ2hsaWdodC5qcyB2OS4xNS4xMCB8IEJTRDMgTGljZW5zZSB8IGdpdC5pby9obGpzbGljZW5z
ZSAqLwohZnVuY3Rpb24oZSl7dmFyIG49Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvd3x8Im9i
amVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmOyJ1bmRlZmluZWQiPT10eXBlb2YgZXhwb3J0c3x8ZXhwb3J0
cy5ub2RlVHlwZT9uJiYobi5obGpzPWUoe30pLCJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmlu
ZS5hbWQmJmRlZmluZShbXSxmdW5jdGlvbigpe3JldHVybiBuLmhsanN9KSk6ZShleHBvcnRzKX0oZnVu
Y3Rpb24oYSl7dmFyIGY9W10sdT1PYmplY3Qua2V5cyxOPXt9LGM9e30sbj0vXihuby0/aGlnaGxpZ2h0
fHBsYWlufHRleHQpJC9pLHM9L1xibGFuZyg/OnVhZ2UpPy0oW1x3LV0rKVxiL2ksdD0vKCheKDxbXj5d
Kz58XHR8KSt8KD86XG4pKSkvZ20scj17Y2FzZV9pbnNlbnNpdGl2ZToiY0kiLGxleGVtZXM6ImwiLGNv
bnRhaW5zOiJjIixrZXl3b3JkczoiayIsc3ViTGFuZ3VhZ2U6InNMIixjbGFzc05hbWU6ImNOIixiZWdp
bjoiYiIsYmVnaW5LZXl3b3JkczoiYksiLGVuZDoiZSIsZW5kc1dpdGhQYXJlbnQ6ImVXIixpbGxlZ2Fs
OiJpIixleGNsdWRlQmVnaW46ImVCIixleGNsdWRlRW5kOiJlRSIscmV0dXJuQmVnaW46InJCIixyZXR1
cm5FbmQ6InJFIixyZWxldmFuY2U6InIiLHZhcmlhbnRzOiJ2IixJREVOVF9SRToiSVIiLFVOREVSU0NP
UkVfSURFTlRfUkU6IlVJUiIsTlVNQkVSX1JFOiJOUiIsQ19OVU1CRVJfUkU6IkNOUiIsQklOQVJZX05V
TUJFUl9SRToiQk5SIixSRV9TVEFSVEVSU19SRToiUlNSIixCQUNLU0xBU0hfRVNDQVBFOiJCRSIsQVBP
U19TVFJJTkdfTU9ERToiQVNNIixRVU9URV9TVFJJTkdfTU9ERToiUVNNIixQSFJBU0FMX1dPUkRTX01P
REU6IlBXTSIsQ19MSU5FX0NPTU1FTlRfTU9ERToiQ0xDTSIsQ19CTE9DS19DT01NRU5UX01PREU6IkNC
Q00iLEhBU0hfQ09NTUVOVF9NT0RFOiJIQ00iLE5VTUJFUl9NT0RFOiJOTSIsQ19OVU1CRVJfTU9ERToi
Q05NIixCSU5BUllfTlVNQkVSX01PREU6IkJOTSIsQ1NTX05VTUJFUl9NT0RFOiJDU1NOTSIsUkVHRVhQ
X01PREU6IlJNIixUSVRMRV9NT0RFOiJUTSIsVU5ERVJTQ09SRV9USVRMRV9NT0RFOiJVVE0iLENPTU1F
TlQ6IkMiLGJlZ2luUmU6ImJSIixlbmRSZToiZVIiLGlsbGVnYWxSZToiaVIiLGxleGVtZXNSZToibFIi
LHRlcm1pbmF0b3JzOiJ0Iix0ZXJtaW5hdG9yX2VuZDoidEUifSxiPSI8L3NwYW4+IixoPXtjbGFzc1By
ZWZpeDoiaGxqcy0iLHRhYlJlcGxhY2U6bnVsbCx1c2VCUjohMSxsYW5ndWFnZXM6dm9pZCAwfTtmdW5j
dGlvbiBfKGUpe3JldHVybiBlLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsi
KS5yZXBsYWNlKC8+L2csIiZndDsiKX1mdW5jdGlvbiBFKGUpe3JldHVybiBlLm5vZGVOYW1lLnRvTG93
ZXJDYXNlKCl9ZnVuY3Rpb24gdihlLG4pe3ZhciB0PWUmJmUuZXhlYyhuKTtyZXR1cm4gdCYmMD09PXQu
aW5kZXh9ZnVuY3Rpb24gbChlKXtyZXR1cm4gbi50ZXN0KGUpfWZ1bmN0aW9uIGcoZSl7dmFyIG4sdD17
fSxyPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtmb3IobiBpbiBlKXRbbl09
ZVtuXTtyZXR1cm4gci5mb3JFYWNoKGZ1bmN0aW9uKGUpe2ZvcihuIGluIGUpdFtuXT1lW25dfSksdH1m
dW5jdGlvbiBSKGUpe3ZhciBhPVtdO3JldHVybiBmdW5jdGlvbiBlKG4sdCl7Zm9yKHZhciByPW4uZmly
c3RDaGlsZDtyO3I9ci5uZXh0U2libGluZykzPT09ci5ub2RlVHlwZT90Kz1yLm5vZGVWYWx1ZS5sZW5n
dGg6MT09PXIubm9kZVR5cGUmJihhLnB1c2goe2V2ZW50OiJzdGFydCIsb2Zmc2V0OnQsbm9kZTpyfSks
dD1lKHIsdCksRShyKS5tYXRjaCgvYnJ8aHJ8aW1nfGlucHV0Lyl8fGEucHVzaCh7ZXZlbnQ6InN0b3Ai
LG9mZnNldDp0LG5vZGU6cn0pKTtyZXR1cm4gdH0oZSwwKSxhfWZ1bmN0aW9uIGkoZSl7aWYociYmIWUu
bGFuZ0FwaVJlc3RvcmVkKXtmb3IodmFyIG4gaW4gZS5sYW5nQXBpUmVzdG9yZWQ9ITAscillW25dJiYo
ZVtyW25dXT1lW25dKTsoZS5jfHxbXSkuY29uY2F0KGUudnx8W10pLmZvckVhY2goaSl9fWZ1bmN0aW9u
IG0obyl7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZSYmZS5zb3VyY2V8fGV9ZnVuY3Rpb24gYyhlLG4pe3Jl
dHVybiBuZXcgUmVnRXhwKHMoZSksIm0iKyhvLmNJPyJpIjoiIikrKG4/ImciOiIiKSl9IWZ1bmN0aW9u
IG4odCxlKXtpZighdC5jb21waWxlZCl7aWYodC5jb21waWxlZD0hMCx0Lms9dC5rfHx0LmJLLHQuayl7
ZnVuY3Rpb24gcih0LGUpe28uY0kmJihlPWUudG9Mb3dlckNhc2UoKSksZS5zcGxpdCgiICIpLmZvckVh
Y2goZnVuY3Rpb24oZSl7dmFyIG49ZS5zcGxpdCgifCIpO2FbblswXV09W3QsblsxXT9OdW1iZXIoblsx
XSk6MV19KX12YXIgYT17fTsic3RyaW5nIj09dHlwZW9mIHQuaz9yKCJrZXl3b3JkIix0LmspOnUodC5r
KS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3IoZSx0LmtbZV0pfSksdC5rPWF9dC5sUj1jKHQubHx8L1x3Ky8s
ITApLGUmJih0LmJLJiYodC5iPSJcXGIoIit0LmJLLnNwbGl0KCIgIikuam9pbigifCIpKyIpXFxiIiks
dC5ifHwodC5iPS9cQnxcYi8pLHQuYlI9Yyh0LmIpLHQuZW5kU2FtZUFzQmVnaW4mJih0LmU9dC5iKSx0
LmV8fHQuZVd8fCh0LmU9L1xCfFxiLyksdC5lJiYodC5lUj1jKHQuZSkpLHQudEU9cyh0LmUpfHwiIix0
LmVXJiZlLnRFJiYodC50RSs9KHQuZT8ifCI6IiIpK2UudEUpKSx0LmkmJih0LmlSPWModC5pKSksbnVs
bD09dC5yJiYodC5yPTEpLHQuY3x8KHQuYz1bXSksdC5jPUFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBw
bHkoW10sdC5jLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24obil7cmV0dXJuIG4udiYmIW4u
Y2FjaGVkX3ZhcmlhbnRzJiYobi5jYWNoZWRfdmFyaWFudHM9bi52Lm1hcChmdW5jdGlvbihlKXtyZXR1
cm4gZyhuLHt2Om51bGx9LGUpfSkpLG4uY2FjaGVkX3ZhcmlhbnRzfHxuLmVXJiZbZyhuKV18fFtuXX0o
InNlbGYiPT09ZT90OmUpfSkpLHQuYy5mb3JFYWNoKGZ1bmN0aW9uKGUpe24oZSx0KX0pLHQuc3RhcnRz
JiZuKHQuc3RhcnRzLGUpO3ZhciBpPXQuYy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIGUuYks/IlxcLj8o
PzoiK2UuYisiKVxcLj8iOmUuYn0pLmNvbmNhdChbdC50RSx0LmldKS5tYXAocykuZmlsdGVyKEJvb2xl
YW4pO3QudD1pLmxlbmd0aD9jKGZ1bmN0aW9uKGUsbil7Zm9yKHZhciB0PS9cWyg/OlteXFxcXV18XFwu
KSpcXXxcKFw/P3xcXChbMS05XVswLTldKil8XFwuLyxyPTAsYT0iIixpPTA7aTxlLmxlbmd0aDtpKysp
e3ZhciBvPXIsYz1zKGVbaV0pO2ZvcigwPGkmJihhKz1uKTswPGMubGVuZ3RoOyl7dmFyIHU9dC5leGVj
KGMpO2lmKG51bGw9PXUpe2ErPWM7YnJlYWt9YSs9Yy5zdWJzdHJpbmcoMCx1LmluZGV4KSxjPWMuc3Vi
c3RyaW5nKHUuaW5kZXgrdVswXS5sZW5ndGgpLCJcXCI9PXVbMF1bMF0mJnVbMV0/YSs9IlxcIitTdHJp
bmcoTnVtYmVyKHVbMV0pK28pOihhKz11WzBdLCIoIj09dVswXSYmcisrKX19cmV0dXJuIGF9KGksInwi
KSwhMCk6e2V4ZWM6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH19fX0obyl9ZnVuY3Rpb24gQyhlLG4saSx0
KXtmdW5jdGlvbiBjKGUsbix0LHIpe3ZhciBhPSc8c3BhbiBjbGFzcz0iJysocj8iIjpoLmNsYXNzUHJl
Zml4KTtyZXR1cm4gZT8oYSs9ZSsnIj4nKStuKyh0PyIiOmIpOm59ZnVuY3Rpb24gbygpe0UrPW51bGwh
PWwuc0w/ZnVuY3Rpb24oKXt2YXIgZT0ic3RyaW5nIj09dHlwZW9mIGwuc0w7aWYoZSYmIU5bbC5zTF0p
cmV0dXJuIF8oZyk7dmFyIG49ZT9DKGwuc0wsZywhMCxmW2wuc0xdKTpPKGcsbC5zTC5sZW5ndGg/bC5z
TDp2b2lkIDApO3JldHVybiAwPGwuciYmKFIrPW4uciksZSYmKGZbbC5zTF09bi50b3ApLGMobi5sYW5n
dWFnZSxuLnZhbHVlLCExLCEwKX0oKTpmdW5jdGlvbigpe3ZhciBlLG4sdCxyLGEsaSxvO2lmKCFsLmsp
cmV0dXJuIF8oZyk7Zm9yKHI9IiIsbj0wLGwubFIubGFzdEluZGV4PTAsdD1sLmxSLmV4ZWMoZyk7dDsp
cis9XyhnLnN1YnN0cmluZyhuLHQuaW5kZXgpKSxhPWwsaT10LHZvaWQgMCxvPXMuY0k/aVswXS50b0xv
d2VyQ2FzZSgpOmlbMF0sKGU9YS5rLmhhc093blByb3BlcnR5KG8pJiZhLmtbb10pPyhSKz1lWzFdLHIr
PWMoZVswXSxfKHRbMF0pKSk6cis9Xyh0WzBdKSxuPWwubFIubGFzdEluZGV4LHQ9bC5sUi5leGVjKGcp
O3JldHVybiByK18oZy5zdWJzdHIobikpfSgpLGc9IiJ9ZnVuY3Rpb24gdShlKXtFKz1lLmNOP2MoZS5j
TiwiIiwhMCk6IiIsbD1PYmplY3QuY3JlYXRlKGUse3BhcmVudDp7dmFsdWU6bH19KX1mdW5jdGlvbiBy
KGUsbil7aWYoZys9ZSxudWxsPT1uKXJldHVybiBvKCksMDt2YXIgdD1mdW5jdGlvbihlLG4pe3ZhciB0
LHIsYTtmb3IodD0wLHI9bi5jLmxlbmd0aDt0PHI7dCsrKWlmKHYobi5jW3RdLmJSLGUpKXJldHVybiBu
LmNbdF0uZW5kU2FtZUFzQmVnaW4mJihuLmNbdF0uZVI9KGE9bi5jW3RdLmJSLmV4ZWMoZSlbMF0sbmV3
IFJlZ0V4cChhLnJlcGxhY2UoL1stXC9cXF4kKis/LigpfFtcXXt9XS9nLCJcXCQmIiksIm0iKSkpLG4u
Y1t0XX0obixsKTtpZih0KXJldHVybiB0LnNraXA/Zys9bjoodC5lQiYmKGcrPW4pLG8oKSx0LnJCfHx0
LmVCfHwoZz1uKSksdSh0KSx0LnJCPzA6bi5sZW5ndGg7dmFyIHI9ZnVuY3Rpb24gZShuLHQpe2lmKHYo
bi5lUix0KSl7Zm9yKDtuLmVuZHNQYXJlbnQmJm4ucGFyZW50OyluPW4ucGFyZW50O3JldHVybiBufWlm
KG4uZVcpcmV0dXJuIGUobi5wYXJlbnQsdCl9KGwsbik7aWYocil7dmFyIGE9bDtmb3IoYS5za2lwP2cr
PW46KGEuckV8fGEuZUV8fChnKz1uKSxvKCksYS5lRSYmKGc9bikpO2wuY04mJihFKz1iKSxsLnNraXB8
fGwuc0x8fChSKz1sLnIpLChsPWwucGFyZW50KSE9PXIucGFyZW50Oyk7cmV0dXJuIHIuc3RhcnRzJiYo
ci5lbmRTYW1lQXNCZWdpbiYmKHIuc3RhcnRzLmVSPXIuZVIpLHUoci5zdGFydHMpKSxhLnJFPzA6bi5s
ZW5ndGh9aWYoZnVuY3Rpb24oZSxuKXtyZXR1cm4haSYmdihuLmlSLGUpfShuLGwpKXRocm93IG5ldyBF
cnJvcignSWxsZWdhbCBsZXhlbWUgIicrbisnIiBmb3IgbW9kZSAiJysobC5jTnx8Ijx1bm5hbWVkPiIp
KyciJyk7cmV0dXJuIGcrPW4sbi5sZW5ndGh8fDF9dmFyIHM9QihlKTtpZighcyl0aHJvdyBuZXcgRXJy
b3IoJ1Vua25vd24gbGFuZ3VhZ2U6ICInK2UrJyInKTttKHMpO3ZhciBhLGw9dHx8cyxmPXt9LEU9IiI7
Zm9yKGE9bDthIT09czthPWEucGFyZW50KWEuY04mJihFPWMoYS5jTiwiIiwhMCkrRSk7dmFyIGc9IiIs
Uj0wO3RyeXtmb3IodmFyIGQscCxNPTA7bC50Lmxhc3RJbmRleD1NLGQ9bC50LmV4ZWMobik7KXA9cihu
LnN1YnN0cmluZyhNLGQuaW5kZXgpLGRbMF0pLE09ZC5pbmRleCtwO2ZvcihyKG4uc3Vic3RyKE0pKSxh
PWw7YS5wYXJlbnQ7YT1hLnBhcmVudClhLmNOJiYoRSs9Yik7cmV0dXJue3I6Uix2YWx1ZTpFLGxhbmd1
YWdlOmUsdG9wOmx9fWNhdGNoKGUpe2lmKGUubWVzc2FnZSYmLTEhPT1lLm1lc3NhZ2UuaW5kZXhPZigi
SWxsZWdhbCIpKXJldHVybntyOjAsdmFsdWU6XyhuKX07dGhyb3cgZX19ZnVuY3Rpb24gTyh0LGUpe2U9
ZXx8aC5sYW5ndWFnZXN8fHUoTik7dmFyIHI9e3I6MCx2YWx1ZTpfKHQpfSxhPXI7cmV0dXJuIGUuZmls
dGVyKEIpLmZpbHRlcihNKS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciBuPUMoZSx0LCExKTtuLmxhbmd1
YWdlPWUsbi5yPmEuciYmKGE9biksbi5yPnIuciYmKGE9cixyPW4pfSksYS5sYW5ndWFnZSYmKHIuc2Vj
b25kX2Jlc3Q9YSkscn1mdW5jdGlvbiBkKGUpe3JldHVybiBoLnRhYlJlcGxhY2V8fGgudXNlQlI/ZS5y
ZXBsYWNlKHQsZnVuY3Rpb24oZSxuKXtyZXR1cm4gaC51c2VCUiYmIlxuIj09PWU/Ijxicj4iOmgudGFi
UmVwbGFjZT9uLnJlcGxhY2UoL1x0L2csaC50YWJSZXBsYWNlKToiIn0pOmV9ZnVuY3Rpb24gbyhlKXt2
YXIgbix0LHIsYSxpLG89ZnVuY3Rpb24oZSl7dmFyIG4sdCxyLGEsaT1lLmNsYXNzTmFtZSsiICI7aWYo
aSs9ZS5wYXJlbnROb2RlP2UucGFyZW50Tm9kZS5jbGFzc05hbWU6IiIsdD1zLmV4ZWMoaSkpcmV0dXJu
IEIodFsxXSk/dFsxXToibm8taGlnaGxpZ2h0Ijtmb3Iobj0wLHI9KGk9aS5zcGxpdCgvXHMrLykpLmxl
bmd0aDtuPHI7bisrKWlmKGwoYT1pW25dKXx8QihhKSlyZXR1cm4gYX0oZSk7bChvKXx8KGgudXNlQlI/
KG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwi
ZGl2IikpLmlubmVySFRNTD1lLmlubmVySFRNTC5yZXBsYWNlKC9cbi9nLCIiKS5yZXBsYWNlKC88YnJb
IFwvXSo+L2csIlxuIik6bj1lLGk9bi50ZXh0Q29udGVudCxyPW8/QyhvLGksITApOk8oaSksKHQ9Uihu
KSkubGVuZ3RoJiYoKGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8x
OTk5L3hodG1sIiwiZGl2IikpLmlubmVySFRNTD1yLnZhbHVlLHIudmFsdWU9ZnVuY3Rpb24oZSxuLHQp
e3ZhciByPTAsYT0iIixpPVtdO2Z1bmN0aW9uIG8oKXtyZXR1cm4gZS5sZW5ndGgmJm4ubGVuZ3RoP2Vb
MF0ub2Zmc2V0IT09blswXS5vZmZzZXQ/ZVswXS5vZmZzZXQ8blswXS5vZmZzZXQ/ZTpuOiJzdGFydCI9
PT1uWzBdLmV2ZW50P2U6bjplLmxlbmd0aD9lOm59ZnVuY3Rpb24gYyhlKXthKz0iPCIrRShlKStmLm1h
cC5jYWxsKGUuYXR0cmlidXRlcyxmdW5jdGlvbihlKXtyZXR1cm4iICIrZS5ub2RlTmFtZSsnPSInK18o
ZS52YWx1ZSkucmVwbGFjZSgnIicsIiZxdW90OyIpKyciJ30pLmpvaW4oIiIpKyI+In1mdW5jdGlvbiB1
KGUpe2ErPSI8LyIrRShlKSsiPiJ9ZnVuY3Rpb24gcyhlKXsoInN0YXJ0Ij09PWUuZXZlbnQ/Yzp1KShl
Lm5vZGUpfWZvcig7ZS5sZW5ndGh8fG4ubGVuZ3RoOyl7dmFyIGw9bygpO2lmKGErPV8odC5zdWJzdHJp
bmcocixsWzBdLm9mZnNldCkpLHI9bFswXS5vZmZzZXQsbD09PWUpe2ZvcihpLnJldmVyc2UoKS5mb3JF
YWNoKHUpO3MobC5zcGxpY2UoMCwxKVswXSksKGw9bygpKT09PWUmJmwubGVuZ3RoJiZsWzBdLm9mZnNl
dD09PXI7KTtpLnJldmVyc2UoKS5mb3JFYWNoKGMpfWVsc2Uic3RhcnQiPT09bFswXS5ldmVudD9pLnB1
c2gobFswXS5ub2RlKTppLnBvcCgpLHMobC5zcGxpY2UoMCwxKVswXSl9cmV0dXJuIGErXyh0LnN1YnN0
cihyKSl9KHQsUihhKSxpKSksci52YWx1ZT1kKHIudmFsdWUpLGUuaW5uZXJIVE1MPXIudmFsdWUsZS5j
bGFzc05hbWU9ZnVuY3Rpb24oZSxuLHQpe3ZhciByPW4/Y1tuXTp0LGE9W2UudHJpbSgpXTtyZXR1cm4g
ZS5tYXRjaCgvXGJobGpzXGIvKXx8YS5wdXNoKCJobGpzIiksLTE9PT1lLmluZGV4T2YocikmJmEucHVz
aChyKSxhLmpvaW4oIiAiKS50cmltKCl9KGUuY2xhc3NOYW1lLG8sci5sYW5ndWFnZSksZS5yZXN1bHQ9
e2xhbmd1YWdlOnIubGFuZ3VhZ2UscmU6ci5yfSxyLnNlY29uZF9iZXN0JiYoZS5zZWNvbmRfYmVzdD17
bGFuZ3VhZ2U6ci5zZWNvbmRfYmVzdC5sYW5ndWFnZSxyZTpyLnNlY29uZF9iZXN0LnJ9KSl9ZnVuY3Rp
b24gcCgpe2lmKCFwLmNhbGxlZCl7cC5jYWxsZWQ9ITA7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgicHJlIGNvZGUiKTtmLmZvckVhY2guY2FsbChlLG8pfX1mdW5jdGlvbiBCKGUpe3JldHVybiBl
PShlfHwiIikudG9Mb3dlckNhc2UoKSxOW2VdfHxOW2NbZV1dfWZ1bmN0aW9uIE0oZSl7dmFyIG49Qihl
KTtyZXR1cm4gbiYmIW4uZGlzYWJsZUF1dG9kZXRlY3R9cmV0dXJuIGEuaGlnaGxpZ2h0PUMsYS5oaWdo
bGlnaHRBdXRvPU8sYS5maXhNYXJrdXA9ZCxhLmhpZ2hsaWdodEJsb2NrPW8sYS5jb25maWd1cmU9ZnVu
Y3Rpb24oZSl7aD1nKGgsZSl9LGEuaW5pdEhpZ2hsaWdodGluZz1wLGEuaW5pdEhpZ2hsaWdodGluZ09u
TG9hZD1mdW5jdGlvbigpe2FkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLHAsITEpLGFk
ZEV2ZW50TGlzdGVuZXIoImxvYWQiLHAsITEpfSxhLnJlZ2lzdGVyTGFuZ3VhZ2U9ZnVuY3Rpb24obixl
KXt2YXIgdD1OW25dPWUoYSk7aSh0KSx0LmFsaWFzZXMmJnQuYWxpYXNlcy5mb3JFYWNoKGZ1bmN0aW9u
KGUpe2NbZV09bn0pfSxhLmxpc3RMYW5ndWFnZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdShOKX0sYS5nZXRM
YW5ndWFnZT1CLGEuYXV0b0RldGVjdGlvbj1NLGEuaW5oZXJpdD1nLGEuSVI9YS5JREVOVF9SRT0iW2Et
ekEtWl1cXHcqIixhLlVJUj1hLlVOREVSU0NPUkVfSURFTlRfUkU9IlthLXpBLVpfXVxcdyoiLGEuTlI9
YS5OVU1CRVJfUkU9IlxcYlxcZCsoXFwuXFxkKyk/IixhLkNOUj1hLkNfTlVNQkVSX1JFPSIoLT8pKFxc
YjBbeFhdW2EtZkEtRjAtOV0rfChcXGJcXGQrKFxcLlxcZCopP3xcXC5cXGQrKShbZUVdWy0rXT9cXGQr
KT8pIixhLkJOUj1hLkJJTkFSWV9OVU1CRVJfUkU9IlxcYigwYlswMV0rKSIsYS5SU1I9YS5SRV9TVEFS
VEVSU19SRT0iIXwhPXwhPT18JXwlPXwmfCYmfCY9fFxcKnxcXCo9fFxcK3xcXCs9fCx8LXwtPXwvPXwv
fDp8O3w8PHw8PD18PD18PHw9PT18PT18PXw+Pj49fD4+PXw+PXw+Pj58Pj58PnxcXD98XFxbfFxce3xc
XCh8XFxefFxcXj18XFx8fFxcfD18XFx8XFx8fH4iLGEuQkU9YS5CQUNLU0xBU0hfRVNDQVBFPXtiOiJc
XFxcW1xcc1xcU10iLHI6MH0sYS5BU009YS5BUE9TX1NUUklOR19NT0RFPXtjTjoic3RyaW5nIixiOiIn
IixlOiInIixpOiJcXG4iLGM6W2EuQkVdfSxhLlFTTT1hLlFVT1RFX1NUUklOR19NT0RFPXtjTjoic3Ry
aW5nIixiOiciJyxlOiciJyxpOiJcXG4iLGM6W2EuQkVdfSxhLlBXTT1hLlBIUkFTQUxfV09SRFNfTU9E
RT17YjovXGIoYXxhbnx0aGV8YXJlfEknbXxpc24ndHxkb24ndHxkb2Vzbid0fHdvbid0fGJ1dHxqdXN0
fHNob3VsZHxwcmV0dHl8c2ltcGx5fGVub3VnaHxnb25uYXxnb2luZ3x3dGZ8c298c3VjaHx3aWxsfHlv
dXx5b3VyfHRoZXl8bGlrZXxtb3JlKVxiL30sYS5DPWEuQ09NTUVOVD1mdW5jdGlvbihlLG4sdCl7dmFy
IHI9YS5pbmhlcml0KHtjTjoiY29tbWVudCIsYjplLGU6bixjOltdfSx0fHx7fSk7cmV0dXJuIHIuYy5w
dXNoKGEuUFdNKSxyLmMucHVzaCh7Y046ImRvY3RhZyIsYjoiKD86VE9ET3xGSVhNRXxOT1RFfEJVR3xY
WFgpOiIscjowfSkscn0sYS5DTENNPWEuQ19MSU5FX0NPTU1FTlRfTU9ERT1hLkMoIi8vIiwiJCIpLGEu
Q0JDTT1hLkNfQkxPQ0tfQ09NTUVOVF9NT0RFPWEuQygiL1xcKiIsIlxcKi8iKSxhLkhDTT1hLkhBU0hf
Q09NTUVOVF9NT0RFPWEuQygiIyIsIiQiKSxhLk5NPWEuTlVNQkVSX01PREU9e2NOOiJudW1iZXIiLGI6
YS5OUixyOjB9LGEuQ05NPWEuQ19OVU1CRVJfTU9ERT17Y046Im51bWJlciIsYjphLkNOUixyOjB9LGEu
Qk5NPWEuQklOQVJZX05VTUJFUl9NT0RFPXtjTjoibnVtYmVyIixiOmEuQk5SLHI6MH0sYS5DU1NOTT1h
LkNTU19OVU1CRVJfTU9ERT17Y046Im51bWJlciIsYjphLk5SKyIoJXxlbXxleHxjaHxyZW18dnd8dmh8
dm1pbnx2bWF4fGNtfG1tfGlufHB0fHBjfHB4fGRlZ3xncmFkfHJhZHx0dXJufHN8bXN8SHp8a0h6fGRw
aXxkcGNtfGRwcHgpPyIscjowfSxhLlJNPWEuUkVHRVhQX01PREU9e2NOOiJyZWdleHAiLGI6L1wvLyxl
Oi9cL1tnaW11eV0qLyxpOi9cbi8sYzpbYS5CRSx7YjovXFsvLGU6L1xdLyxyOjAsYzpbYS5CRV19XX0s
YS5UTT1hLlRJVExFX01PREU9e2NOOiJ0aXRsZSIsYjphLklSLHI6MH0sYS5VVE09YS5VTkRFUlNDT1JF
X1RJVExFX01PREU9e2NOOiJ0aXRsZSIsYjphLlVJUixyOjB9LGEuTUVUSE9EX0dVQVJEPXtiOiJcXC5c
XHMqIithLlVJUixyOjB9LGF9KTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoInhtbCIsZnVuY3Rpb24ocyl7
dmFyIGU9e2VXOiEwLGk6LzwvLHI6MCxjOlt7Y046ImF0dHIiLGI6IltBLVphLXowLTlcXC5fOi1dKyIs
cjowfSx7YjovPVxzKi8scjowLGM6W3tjTjoic3RyaW5nIixlbmRzUGFyZW50OiEwLHY6W3tiOi8iLyxl
Oi8iL30se2I6LycvLGU6LycvfSx7YjovW15ccyInPTw+YF0rL31dfV19XX07cmV0dXJue2FsaWFzZXM6
WyJodG1sIiwieGh0bWwiLCJyc3MiLCJhdG9tIiwieGpiIiwieHNkIiwieHNsIiwicGxpc3QiLCJ3c2Yi
XSxjSTohMCxjOlt7Y046Im1ldGEiLGI6IjwhRE9DVFlQRSIsZToiPiIscjoxMCxjOlt7YjoiXFxbIixl
OiJcXF0ifV19LHMuQygiXHgzYyEtLSIsIi0tXHgzZSIse3I6MTB9KSx7YjoiPFxcIVxcW0NEQVRBXFxb
IixlOiJcXF1cXF0+IixyOjEwfSx7Y046Im1ldGEiLGI6LzxcP3htbC8sZTovXD8+LyxyOjEwfSx7Yjov
PFw/KHBocCk/LyxlOi9cPz4vLHNMOiJwaHAiLGM6W3tiOiIvXFwqIixlOiJcXCovIixza2lwOiEwfSx7
YjonYiInLGU6JyInLHNraXA6ITB9LHtiOiJiJyIsZToiJyIsc2tpcDohMH0scy5pbmhlcml0KHMuQVNN
LHtpOm51bGwsY046bnVsbCxjOm51bGwsc2tpcDohMH0pLHMuaW5oZXJpdChzLlFTTSx7aTpudWxsLGNO
Om51bGwsYzpudWxsLHNraXA6ITB9KV19LHtjTjoidGFnIixiOiI8c3R5bGUoPz1cXHN8PnwkKSIsZToi
PiIsazp7bmFtZToic3R5bGUifSxjOltlXSxzdGFydHM6e2U6Ijwvc3R5bGU+IixyRTohMCxzTDpbImNz
cyIsInhtbCJdfX0se2NOOiJ0YWciLGI6IjxzY3JpcHQoPz1cXHN8PnwkKSIsZToiPiIsazp7bmFtZToi
c2NyaXB0In0sYzpbZV0sc3RhcnRzOntlOiI8XC9zY3JpcHQ+IixyRTohMCxzTDpbImFjdGlvbnNjcmlw
dCIsImphdmFzY3JpcHQiLCJoYW5kbGViYXJzIiwieG1sIiwidmJzY3JpcHQiXX19LHtjTjoidGFnIixi
OiI8Lz8iLGU6Ii8/PiIsYzpbe2NOOiJuYW1lIixiOi9bXlwvPjxcc10rLyxyOjB9LGVdfV19fSk7aGxq
cy5yZWdpc3Rlckxhbmd1YWdlKCJtYXJrZG93biIsZnVuY3Rpb24oZSl7cmV0dXJue2FsaWFzZXM6WyJt
ZCIsIm1rZG93biIsIm1rZCJdLGM6W3tjTjoic2VjdGlvbiIsdjpbe2I6Il4jezEsNn0iLGU6IiQifSx7
YjoiXi4rP1xcbls9LV17Mix9JCJ9XX0se2I6IjwiLGU6Ij4iLHNMOiJ4bWwiLHI6MH0se2NOOiJidWxs
ZXQiLGI6Il5cXHMqKFsqKy1dfChcXGQrXFwuKSlcXHMrIn0se2NOOiJzdHJvbmciLGI6IlsqX117Mn0u
Kz9bKl9dezJ9In0se2NOOiJlbXBoYXNpcyIsdjpbe2I6IlxcKi4rP1xcKiJ9LHtiOiJfLis/XyIscjow
fV19LHtjTjoicXVvdGUiLGI6Il4+XFxzKyIsZToiJCJ9LHtjTjoiY29kZSIsdjpbe2I6Il5gYGB3KnMq
JCIsZToiXmBgYHMqJCJ9LHtiOiJgLis/YCJ9LHtiOiJeKCB7NH18XHQpIixlOiIkIixyOjB9XX0se2I6
Il5bLVxcKl17Myx9IixlOiIkIn0se2I6IlxcWy4rP1xcXVtcXChcXFtdLio/W1xcKVxcXV0iLHJCOiEw
LGM6W3tjTjoic3RyaW5nIixiOiJcXFsiLGU6IlxcXSIsZUI6ITAsckU6ITAscjowfSx7Y046Imxpbmsi
LGI6IlxcXVxcKCIsZToiXFwpIixlQjohMCxlRTohMH0se2NOOiJzeW1ib2wiLGI6IlxcXVxcWyIsZToi
XFxdIixlQjohMCxlRTohMH1dLHI6MTB9LHtiOi9eXFtbXlxuXStcXTovLHJCOiEwLGM6W3tjTjoic3lt
Ym9sIixiOi9cWy8sZTovXF0vLGVCOiEwLGVFOiEwfSx7Y046ImxpbmsiLGI6LzpccyovLGU6LyQvLGVC
OiEwfV19XX19KTtobGpzLnJlZ2lzdGVyTGFuZ3VhZ2UoImRhcnQiLGZ1bmN0aW9uKGUpe3ZhciB0PXtj
Tjoic3Vic3QiLHY6W3tiOiJcXCRbQS1aYS16MC05X10rIn1dfSxyPXtjTjoic3Vic3QiLHY6W3tiOiJc
XCR7IixlOiJ9In1dLGs6InRydWUgZmFsc2UgbnVsbCB0aGlzIGlzIG5ldyBzdXBlciJ9LG49e2NOOiJz
dHJpbmciLHY6W3tiOiJyJycnIixlOiInJycifSx7YjonciIiIicsZTonIiIiJ30se2I6InInIixlOiIn
IixpOiJcXG4ifSx7YjonciInLGU6JyInLGk6IlxcbiJ9LHtiOiInJyciLGU6IicnJyIsYzpbZS5CRSx0
LHJdfSx7YjonIiIiJyxlOiciIiInLGM6W2UuQkUsdCxyXX0se2I6IiciLGU6IiciLGk6IlxcbiIsYzpb
ZS5CRSx0LHJdfSx7YjonIicsZTonIicsaToiXFxuIixjOltlLkJFLHQscl19XX07ci5jPVtlLkNOTSxu
XTtyZXR1cm57azp7a2V5d29yZDoiYXNzZXJ0IGFzeW5jIGF3YWl0IGJyZWFrIGNhc2UgY2F0Y2ggY2xh
c3MgY29uc3QgY29udGludWUgZGVmYXVsdCBkbyBlbHNlIGVudW0gZXh0ZW5kcyBmYWxzZSBmaW5hbCBm
aW5hbGx5IGZvciBpZiBpbiBpcyBuZXcgbnVsbCByZXRocm93IHJldHVybiBzdXBlciBzd2l0Y2ggc3lu
YyB0aGlzIHRocm93IHRydWUgdHJ5IHZhciB2b2lkIHdoaWxlIHdpdGggeWllbGQgYWJzdHJhY3QgYXMg
ZHluYW1pYyBleHBvcnQgZXh0ZXJuYWwgZmFjdG9yeSBnZXQgaW1wbGVtZW50cyBpbXBvcnQgbGlicmFy
eSBvcGVyYXRvciBwYXJ0IHNldCBzdGF0aWMgdHlwZWRlZiIsYnVpbHRfaW46InByaW50IENvbXBhcmFi
bGUgRGF0ZVRpbWUgRHVyYXRpb24gRnVuY3Rpb24gSXRlcmFibGUgSXRlcmF0b3IgTGlzdCBNYXAgTWF0
Y2ggTnVsbCBPYmplY3QgUGF0dGVybiBSZWdFeHAgU2V0IFN0b3B3YXRjaCBTdHJpbmcgU3RyaW5nQnVm
ZmVyIFN0cmluZ1NpbmsgU3ltYm9sIFR5cGUgVXJpIGJvb2wgZG91YmxlIGludCBudW0gZG9jdW1lbnQg
d2luZG93IHF1ZXJ5U2VsZWN0b3IgcXVlcnlTZWxlY3RvckFsbCBFbGVtZW50IEVsZW1lbnRMaXN0In0s
YzpbbixlLkMoIi9cXCpcXCoiLCJcXCovIix7c0w6Im1hcmtkb3duIn0pLGUuQygiLy8vIiwiJCIse3NM
OiJtYXJrZG93biJ9KSxlLkNMQ00sZS5DQkNNLHtjTjoiY2xhc3MiLGJLOiJjbGFzcyBpbnRlcmZhY2Ui
LGU6InsiLGVFOiEwLGM6W3tiSzoiZXh0ZW5kcyBpbXBsZW1lbnRzIn0sZS5VVE1dfSxlLkNOTSx7Y046
Im1ldGEiLGI6IkBbQS1aYS16XSsifSx7YjoiPT4ifV19fSk7Cg==
''';
String _index_html;
// index_html md5 is '4b7dce061ab7cce3c431e0ad8f642b6c'
String _index_html_base64 = '''
PGh0bWw+CjxoZWFkPgogICAgPHRpdGxlPk51bGwgU2FmZXR5IFByZXZpZXc8L3RpdGxlPgogICAgPHNj
cmlwdCBzcmM9Int7IGhpZ2hsaWdodEpzUGF0aCB9fSI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0Pnt7IGRh
cnRQYWdlU2NyaXB0IH19PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0
dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1PcGVuK1NhbnM6NDAwLDYwMCZkaXNw
bGF5PXN3YXAiPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJ7eyBoaWdobGlnaHRTdHls
ZVBhdGggfX0iPgogICAgPHN0eWxlPnt7IGRhcnRQYWdlU3R5bGUgfX08L3N0eWxlPgo8L2hlYWQ+Cjxi
b2R5Pgo8cCBjbGFzcz0icm9vdCI+e3sgcm9vdCB9fTwvcD4KPGhlYWRlciBjbGFzcz0iZWxldmF0aW9u
LXo0Ij4KICAgIDxoMT5Qcm9wb3NlZCBudWxsIHNhZmV0eSBjaGFuZ2VzPC9oMT4KICAgIDxoMiBpZD0i
dW5pdC1uYW1lIj4mbmJzcDs8L2gyPgo8L2hlYWRlcj4KPGRpdiBjbGFzcz0icGFuZWxzIGhvcml6b250
YWwiPgogICAgPGRpdiBjbGFzcz0ibmF2LXBhbmVsIj4KICAgICAgICA8ZGl2IGNsYXNzPSJuYXYtaW5u
ZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJwYW5lbC1oZWFkaW5nIj5Qcm9qZWN0IEZpbGVzPC9k
aXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdi10cmVlIj48L2Rpdj4KICAgICAgICA8L2Rpdj48
IS0tIC9uYXYtaW5uZXIgLS0+CiAgICA8L2Rpdj48IS0tIC9uYXYgLS0+CiAgICA8ZGl2IGNsYXNzPSJj
b250ZW50Ij4KICAgICAgICA8ZGl2IGNsYXNzPSJyZWdpb25zIj4KICAgICAgICAgICAgPCEtLSBUaGUg
cmVnaW9ucyBvdmVybGF5IGNvZGUgY29weSBvZiB0aGUgY29udGVudCB0byBwcm92aWRlIC0tPgogICAg
ICAgICAgICA8IS0tIHRvb2x0aXBzIGZvciBtb2RpZmllZCByZWdpb25zLiAtLT4KICAgICAgICA8L2Rp
dj48IS0tIC9yZWdpb25zIC0tPgogICAgICAgIDxkaXYgY2xhc3M9ImNvZGUiPgogICAgICAgICAgICA8
IS0tIENvbXBpbGF0aW9uIHVuaXQgY29udGVudCBpcyB3cml0dGVuIGhlcmUuIC0tPgogICAgICAgICAg
ICA8cCBjbGFzcz0id2VsY29tZSI+CiAgICAgICAgICAgICAgICBTZWxlY3QgYSBzb3VyY2UgZmlsZSBv
biB0aGUgbGVmdCB0byBwcmV2aWV3IHRoZSBwcm9wb3NlZCBlZGl0cy4KICAgICAgICAgICAgPC9wPgog
ICAgICAgIDwvZGl2PgogICAgPC9kaXY+PCEtLSAvY29udGVudCAtLT4KICAgIDxkaXYgY2xhc3M9Imlu
Zm8tcGFuZWwiPgogICAgICAgIDxkaXYgY2xhc3M9ImVkaXQtbGlzdCI+CiAgICAgICAgICAgIDxkaXYg
Y2xhc3M9InBhbmVsLWhlYWRpbmciPlByb3Bvc2VkIEVkaXRzPC9kaXY+CiAgICAgICAgICAgIDxkaXYg
Y2xhc3M9InBhbmVsLWNvbnRlbnQiPjwvZGl2PgogICAgICAgIDwvZGl2PjwhLS0gL2VkaXQtbGlzdCAt
LT4KICAgICAgICA8ZGl2IGNsYXNzPSJlZGl0LXBhbmVsIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0i
cGFuZWwtaGVhZGluZyI+RWRpdCBEZXRhaWxzPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBh
bmVsLWNvbnRlbnQiPgogICAgICAgICAgICAgICAgPHAgY2xhc3M9InBsYWNlaG9sZGVyIj5TZWUgZGV0
YWlscyBhYm91dCBhIHByb3Bvc2VkIGVkaXQuPC9wPgogICAgICAgICAgICA8L2Rpdj48IS0tIC9wYW5l
bC1jb250ZW50IC0tPgogICAgICAgIDwvZGl2PjwhLS0gL2VkaXQtcGFuZWwgLS0+CiAgICA8L2Rpdj48
IS0tIC9pbmZvLXBhbmVsIC0tPgo8L2Rpdj48IS0tIC9wYW5lbHMgLS0+Cjxmb290ZXI+CiAgICA8YSB0
YXJnZXQ9Il9ibGFuayIKICAgICAgIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9kYXJ0LWxhbmcvc2Rr
L2Jsb2IvbWFzdGVyL3BrZy9hbmFseXNpc19zZXJ2ZXIvbGliL3NyYy9lZGl0L25uYmRfbWlncmF0aW9u
L1JFQURNRS5tZCI+TnVsbAogICAgICAgIHNhZmV0eSBtaWdyYXRpb24gaGVscDwvYT4KICAgIDxzcGFu
IGNsYXNzPSJ3aWRlIj4gPC9zcGFuPgogICAgPGRpdj5CYXNlZCBvbiB7eyBzZGtWZXJzaW9uIH19PC9k
aXY+CjwvZm9vdGVyPgo8L2JvZHk+CjwvaHRtbD4K
''';
String _migration_css;
// migration_css md5 is '3dd01166e0d763c78218c1a36155bbfb'
String _migration_css_base64 = '''
LyogQ29weXJpZ2h0IChjKSAyMDE5LCB0aGUgRGFydCBwcm9qZWN0IGF1dGhvcnMuIFBsZWFzZSBzZWUg
dGhlIEFVVEhPUlMgZmlsZSAgKi8KLyogZm9yIGRldGFpbHMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFVz
ZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgKi8KLyogQlNELXN0eWxlIGxpY2Vu
c2UgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4gICAgICAgICAgICAgICAgICAg
Ki8KCmJvZHkgewogIGJhY2tncm91bmQtY29sb3I6ICMxMjIwMmY7CiAgY29sb3I6ICNjY2M7CiAgZm9u
dC1mYW1pbHk6ICJSb2JvdG8iLCBzYW5zLXNlcmlmOwogIGZvbnQtc2l6ZTogMTRweDsKICBkaXNwbGF5
OiBmbGV4OwogIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgcG9zaXRpb246IGFic29sdXRlOwogIHRv
cDogMDsKICByaWdodDogMDsKICBib3R0b206IDA7CiAgbGVmdDogMDsKICBtYXJnaW46IDA7CiAgcGFk
ZGluZzogMDsKICBvdmVyZmxvdzogaGlkZGVuOwp9CgpoZWFkZXIgewogIGJhY2tncm91bmQtY29sb3I6
ICMxYzI4MzQ7CiAgaGVpZ2h0OiA0OHB4OwogIHBhZGRpbmctbGVmdDogMjRweDsKICBhbGlnbi1pdGVt
czogY2VudGVyOwogIHotaW5kZXg6IDQ7Cn0KCmhlYWRlciBoMSwKaGVhZGVyIGgyIHsKICBkaXNwbGF5
OiBpbmxpbmUtYmxvY2s7CiAgZm9udC1mYW1pbHk6ICJHb29nbGUgU2FucyIsIlJvYm90byIsc2Fucy1z
ZXJpZjsKICBmb250LXdlaWdodDogNDAwOwogIG1hcmdpbi1yaWdodDogMjRweDsKfQoKaDEgewogIGZv
bnQtc2l6ZTogMS41ZW07Cn0KCmhlYWRlciBoMiB7CiAgZm9udC1zaXplOiAxLjJlbTsKfQoKZm9vdGVy
IHsKICBjb2xvcjogI2NjYzsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjczMjNhOwogIGRpc3BsYXk6IGZs
ZXg7CiAgZmxleC1kaXJlY3Rpb246IHJvdzsKICBhbGlnbi1pdGVtczogY2VudGVyOwogIHBhZGRpbmc6
IDhweCAyNHB4Owp9Cgpmb290ZXIgLndpZGUgewogIGZsZXg6IDE7Cn0KCi5ob3Jpem9udGFsIHsKICBk
aXNwbGF5OiBmbGV4Owp9CgoucGFuZWxzIHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTIxYTI1OwogIGZs
ZXg6IDE7CiAgb3ZlcmZsb3c6IGhpZGRlbjsKfQoKLnBhbmVsLWhlYWRpbmcgewogIGNvbG9yOiBncmF5
OwogIG1hcmdpbjogOHB4Owp9CgoubmF2LWxpbmssCi5yZWdpb24gewogIGN1cnNvcjogcG9pbnRlcjsK
fQoKLm5hdi1wYW5lbCB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzI4MmIyZTsKICBmbGV4OiAxIDIwMHB4
OwogIG1hcmdpbjogMDsKICBvdmVyZmxvdzogc2Nyb2xsOwp9CgoubmF2LWlubmVyIHsKICBwYWRkaW5n
OiAwIDAgN3B4IDdweDsKfQoKLmZpeGVkIHsKICBwb3NpdGlvbjogZml4ZWQ7CiAgdG9wOiAwOwp9Cgou
cm9vdCB7CiAgbWFyZ2luOiAwOwogIGRpc3BsYXk6IG5vbmU7Cn0KCi5uYXYtdHJlZSA+IHVsIHsKICBw
YWRkaW5nLWxlZnQ6IDZweDsKfQoKLm5hdi1pbm5lciB1bCB7CiAgcGFkZGluZy1sZWZ0OiAxMnB4Owog
IG1hcmdpbjogMDsKfQoKLm5hdi1pbm5lciBsaSB7CiAgbGlzdC1zdHlsZS10eXBlOiBub25lOwp9Cgou
bmF2LWlubmVyIGxpOm5vdCguZGlyKSB7CiAgbWFyZ2luLWxlZnQ6IDIwcHg7CiAgbWFyZ2luLWJvdHRv
bTogM3B4Owp9CgoubmF2LWlubmVyIGxpLmRpciAuYXJyb3cgewogIGN1cnNvcjogcG9pbnRlcjsKICBk
aXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgZm9udC1zaXplOiAxMHB4OwogIG1hcmdpbi1yaWdodDogNHB4
OwogIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjVzIGVhc2Utb3V0Owp9CgoubmF2LWlubmVyIGxpLmRp
ciAuYXJyb3cuY29sbGFwc2VkIHsKICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpOwp9CgoubmF2LWlu
bmVyIHVsIHsKICBtYXgtaGVpZ2h0OiAyMDAwcHg7CiAgdHJhbnNpdGlvbjogbWF4LWhlaWdodCAwLjVz
IGVhc2Utb3V0Owp9CgoubmF2LWlubmVyIHVsLmNvbGxhcHNlZCB7CiAgbWF4LWhlaWdodDogMCAhaW1w
b3J0YW50OwogIG92ZXJmbG93OiBoaWRkZW47Cn0KCi5uYXYtaW5uZXIgLnNlbGVjdGVkLWZpbGUgewog
IGNvbG9yOiB3aGl0ZTsKICBjdXJzb3I6IGluaGVyaXQ7CiAgZm9udC13ZWlnaHQ6IDYwMDsKICB0ZXh0
LWRlY29yYXRpb246IG5vbmU7Cn0KCi5lZGl0LWNvdW50IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzdh
ZWRjOwogIGJvcmRlci1yYWRpdXM6IDEwcHg7CiAgY29sb3I6ICMwMDAwMDA7CiAgZGlzcGxheTogaW5s
aW5lLWJsb2NrOwogIGZvbnQtc2l6ZTogMTFweDsKICBmb250LXdlaWdodDogNjAwOwogIG1hcmdpbi1s
ZWZ0OiA1cHg7CiAgbWluLXdpZHRoOiAyNXB4OwogIHBhZGRpbmc6IDRweCAwIDJweCAwOwogIHRleHQt
YWxpZ246IGNlbnRlcjsKICBsaW5lLWhlaWdodDogMWVtOwp9CgouY29udGVudCB7CiAgZmxleDogNCAz
MDBweDsKICBiYWNrZ3JvdW5kOiAjMjgyYjJlOwogIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CiAgbWFy
Z2luOiAwIDZweDsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgd2hpdGUtc3BhY2U6IHByZTsKICBvdmVy
Zmxvdzogc2Nyb2xsOwp9CgouY29kZSB7CiAgcGFkZGluZzogMC41ZW07CiAgcG9zaXRpb246IGFic29s
dXRlOwogIGxlZnQ6IDA7CiAgdG9wOiAwOwogIG1hcmdpbi1sZWZ0OiA1NnB4Owp9CgouaGxqcyB7CiAg
YmFja2dyb3VuZC1jb2xvcjogIzI4MmIyZTsKICBkaXNwbGF5OiBibG9jazsKICBvdmVyZmxvdy14OiBh
dXRvOwogIHBhZGRpbmc6IDAuNWVtOwp9CgouY29kZSAud2VsY29tZSB7CiAgZm9udC1mYW1pbHk6ICJH
b29nbGUgU2FucyIsIlJvYm90byIsc2Fucy1zZXJpZjsKICBmb250LXNpemU6IDE4cHg7CiAgbWFyZ2lu
LXJpZ2h0OiA2MnB4OwogIGNvbG9yOiAjNzc3Owp9CgouY29kZSAubmF2LWxpbmsgewogIGNvbG9yOiBp
bmhlcml0OwogIHRleHQtZGVjb3JhdGlvbi1saW5lOiBub25lOwp9CgouY29kZSAubmF2LWxpbms6dmlz
aXRlZCB7CiAgY29sb3I6IGluaGVyaXQ7CiAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IG5vbmU7Cn0KCi5j
b2RlIC5uYXYtbGluazpob3ZlciB7CiAgdGV4dC1kZWNvcmF0aW9uLWxpbmU6IHVuZGVybGluZTsKICBm
b250LXdlaWdodDogNjAwOwp9CgoucmVnaW9ucyB7CiAgcGFkZGluZzogMC41ZW07CiAgcG9zaXRpb246
IGFic29sdXRlOwogIGxlZnQ6IDA7CiAgdG9wOiAwOwp9CgoucmVnaW9ucyB0YWJsZSB7CiAgYm9yZGVy
LXNwYWNpbmc6IDA7CiAgZm9udC1zaXplOiBpbmhlcml0Owp9CgoucmVnaW9ucyB0ZCB7CiAgYm9yZGVy
OiBub25lOwogIC8qIFRoZSBjb250ZW50IG9mIHRoZSByZWdpb25zIGlzIG5vdCB2aXNpYmxlOyB0aGUg
dXNlciBpbnN0ZWFkIHdpbGwgc2VlIHRoZQogICAqIGhpZ2hsaWdodGVkIGNvcHkgb2YgdGhlIGNvbnRl
bnQuICovCiAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMCk7CiAgcGFkZGluZzogMDsKICB3aGl0
ZS1zcGFjZTogcHJlOwp9CgoucmVnaW9ucyB0ZDplbXB0eTphZnRlciB7CiAgY29udGVudDogIlwwMGEw
IjsKfQoKLnJlZ2lvbnMgdHIuaGlnaGxpZ2h0IHRkOmxhc3QtY2hpbGQgewogIGJhY2tncm91bmQtY29s
b3I6ICM0NDQ0NDQ7CiAgY29sb3I6IHdoaXRlOwp9CgoucmVnaW9ucyB0ZC5saW5lLW5vIHsKICBib3Jk
ZXItcmlnaHQ6IHNvbGlkICMyODJiMmUgMnB4OwogIGNvbG9yOiAjOTk5OTk5OwogIHBhZGRpbmctcmln
aHQ6IDRweDsKICB0ZXh0LWFsaWduOiByaWdodDsKICB2aXNpYmlsaXR5OiB2aXNpYmxlOwogIHdpZHRo
OiA1MHB4OwogIGRpc3BsYXk6IGlubGluZS1ibG9jazsKfQoKLnJlZ2lvbnMgdHIuaGlnaGxpZ2h0IHRk
LmxpbmUtbm8gewogIGJvcmRlci1yaWdodDogc29saWQgI2NjYyAycHg7Cn0KCi5yZWdpb24gewogIGRp
c3BsYXk6IGlubGluZS1ibG9jazsKICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgdmlzaWJpbGl0eTogdmlz
aWJsZTsKICB6LWluZGV4OiAyMDA7Cn0KCi5yZWdpb24uYWRkZWQtcmVnaW9uIHsKICBiYWNrZ3JvdW5k
LWNvbG9yOiAjY2NmZmNjOwogIGNvbG9yOiAjMDAzMzAwOwp9CgoucmVnaW9uLnJlbW92ZWQtcmVnaW9u
IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2NjY2OwogIGNvbG9yOiAjMDAxMTAwOwp9CgoucmVnaW9u
LnVuY2hhbmdlZC1yZWdpb24gewogIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTsK
ICBib3JkZXItYm90dG9tOiBzb2xpZCAycHggI2NjYzsKICAvKiBJbnZpc2libGUgdGV4dDsgdXNlIHVu
ZGVybHlpbmcgaGlnaGxpZ2h0aW5nLiAqLwogIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDApOwogIC8qIFJl
ZHVjZSBsaW5lIGhlaWdodCB0byBtYWtlIHJvb20gZm9yIGJvcmRlci4gKi8KICBsaW5lLWhlaWdodDog
MTsKfQoKLnRhcmdldCB7CiAgYmFja2dyb3VuZC1jb2xvcjogIzQ0NDsKICBwb3NpdGlvbjogcmVsYXRp
dmU7CiAgdmlzaWJpbGl0eTogdmlzaWJsZTsKICBmb250LXdlaWdodDogNjAwOwp9CgouaW5mby1wYW5l
bCB7CiAgZmxleDogMSAyMDBweDsKICBtYXJnaW46IDA7CiAgaGVpZ2h0OiAxMDAlOwogIGRpc3BsYXk6
IGZsZXg7CiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQoKLmluZm8tcGFuZWwgLmVkaXQtcGFuZWwg
ewogIGJhY2tncm91bmQtY29sb3I6ICMyODJiMmU7CiAgb3ZlcmZsb3c6IGF1dG87Cn0KCi5pbmZvLXBh
bmVsIC5wYW5lbC1jb250ZW50IHsKICBwYWRkaW5nOiA3cHg7Cn0KCi5pbmZvLXBhbmVsIC5wYW5lbC1j
b250ZW50PiA6Zmlyc3QtY2hpbGQgewogIG1hcmdpbi10b3A6IDA7Cn0KCi5pbmZvLXBhbmVsIC5ub3dy
YXAgewogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCi5pbmZvLXBhbmVsIHVsLAouaW5mby1wYW5lbCBv
bCB7CiAgcGFkZGluZy1sZWZ0OiAyMHB4Owp9CgouaW5mby1wYW5lbCBsaSB7CiAgbWFyZ2luOiAwIDAg
NXB4IDA7Cn0KCi5pbmZvLXBhbmVsIGEgewogIGNvbG9yOiAjMzNjY2ZmOwp9CgouaW5mby1wYW5lbCAu
ZWRpdC1saXN0IHsKICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjgyYjJlOwogIG92ZXJmbG93OiBhdXRvOwp9
CgouZWRpdC1wYW5lbCB7CiAgbWFyZ2luLXRvcDogNnB4OwogIGZsZXg6IDEgMTAwcHg7Cn0KCi5lZGl0
LWxpc3QgewogIGZsZXg6IDIgMTAwcHg7Cn0KCi5lZGl0LWxpc3QgLmVkaXQgewogIG1hcmdpbjogM3B4
IDA7Cn0KCi5lZGl0LWxpc3QgLmVkaXQtbGluayB7CiAgY3Vyc29yOiBwb2ludGVyOwp9CgouZWxldmF0
aW9uLXo0IHsKICBib3gtc2hhZG93OiAwcHggMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgMC4yKSwg
MHB4IDRweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDBweCAxcHggMTBweCAwcHggcmdiYSgw
LCAwLCAwLCAuMTIpOwp9CgphIHsKICBjb2xvcjogI2NjYzsKICBmaWxsOiAjY2NjOwogIHRleHQtZGVj
b3JhdGlvbjogbm9uZTsKfQoKYTpob3ZlciB7CiAgY29sb3I6ICNmZmY7CiAgZmlsbDogI2ZmZjsKfQoK
LnBsYWNlaG9sZGVyIHsKICBjb2xvcjogIzc3NzsKICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgbWFyZ2lu
LXRvcDogM2VtICFpbXBvcnRhbnQ7Cn0K
''';
String _migration_js;
// migration_dart md5 is '92e41b045d06e490bbc16aff5920468f'
String _migration_js_base64 = '''
KGZ1bmN0aW9uIGRhcnRQcm9ncmFtKCl7ZnVuY3Rpb24gY29weVByb3BlcnRpZXMoYSxiKXt2YXIgdD1P
YmplY3Qua2V5cyhhKQpmb3IodmFyIHM9MDtzPHQubGVuZ3RoO3MrKyl7dmFyIHI9dFtzXQpiW3JdPWFb
cl19fXZhciB6PWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oKXt9CnQucHJvdG90eXBlPXtwOnt9fQp2
YXIgcz1uZXcgdCgpCmlmKCEocy5fX3Byb3RvX18mJnMuX19wcm90b19fLnA9PT10LnByb3RvdHlwZS5w
KSlyZXR1cm4gZmFsc2UKdHJ5e2lmKHR5cGVvZiBuYXZpZ2F0b3IhPSJ1bmRlZmluZWQiJiZ0eXBlb2Yg
bmF2aWdhdG9yLnVzZXJBZ2VudD09InN0cmluZyImJm5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigi
Q2hyb21lLyIpPj0wKXJldHVybiB0cnVlCmlmKHR5cGVvZiB2ZXJzaW9uPT0iZnVuY3Rpb24iJiZ2ZXJz
aW9uLmxlbmd0aD09MCl7dmFyIHI9dmVyc2lvbigpCmlmKC9eXGQrXC5cZCtcLlxkK1wuXGQrJC8udGVz
dChyKSlyZXR1cm4gdHJ1ZX19Y2F0Y2gocSl7fXJldHVybiBmYWxzZX0oKQpmdW5jdGlvbiBzZXRGdW5j
dGlvbk5hbWVzSWZOZWNlc3NhcnkoYSl7ZnVuY3Rpb24gdCgpe307aWYodHlwZW9mIHQubmFtZT09InN0
cmluZyIpcmV0dXJuCmZvcih2YXIgdD0wO3Q8YS5sZW5ndGg7dCsrKXt2YXIgcz1hW3RdCnZhciByPU9i
amVjdC5rZXlzKHMpCmZvcih2YXIgcT0wO3E8ci5sZW5ndGg7cSsrKXt2YXIgcD1yW3FdCnZhciBvPXNb
cF0KaWYodHlwZW9mIG89PSdmdW5jdGlvbicpby5uYW1lPXB9fX1mdW5jdGlvbiBpbmhlcml0KGEsYil7
YS5wcm90b3R5cGUuY29uc3RydWN0b3I9YQphLnByb3RvdHlwZVsiJGkiK2EubmFtZV09YQppZihiIT1u
dWxsKXtpZih6KXthLnByb3RvdHlwZS5fX3Byb3RvX189Yi5wcm90b3R5cGUKcmV0dXJufXZhciB0PU9i
amVjdC5jcmVhdGUoYi5wcm90b3R5cGUpCmNvcHlQcm9wZXJ0aWVzKGEucHJvdG90eXBlLHQpCmEucHJv
dG90eXBlPXR9fWZ1bmN0aW9uIGluaGVyaXRNYW55KGEsYil7Zm9yKHZhciB0PTA7dDxiLmxlbmd0aDt0
KyspaW5oZXJpdChiW3RdLGEpfWZ1bmN0aW9uIG1peGluKGEsYil7Y29weVByb3BlcnRpZXMoYi5wcm90
b3R5cGUsYS5wcm90b3R5cGUpCmEucHJvdG90eXBlLmNvbnN0cnVjdG9yPWF9ZnVuY3Rpb24gbGF6eShh
LGIsYyxkKXt2YXIgdD1hCmFbYl09dAphW2NdPWZ1bmN0aW9uKCl7YVtjXT1mdW5jdGlvbigpe0guYWco
Yil9CnZhciBzCnZhciByPWQKdHJ5e2lmKGFbYl09PT10KXtzPWFbYl09cgpzPWFbYl09ZCgpfWVsc2Ug
cz1hW2JdfWZpbmFsbHl7aWYocz09PXIpYVtiXT1udWxsCmFbY109ZnVuY3Rpb24oKXtyZXR1cm4gdGhp
c1tiXX19cmV0dXJuIHN9fWZ1bmN0aW9uIG1ha2VDb25zdExpc3QoYSl7YS5pbW11dGFibGUkbGlzdD1B
cnJheQphLmZpeGVkJGxlbmd0aD1BcnJheQpyZXR1cm4gYX1mdW5jdGlvbiBjb252ZXJ0VG9GYXN0T2Jq
ZWN0KGEpe2Z1bmN0aW9uIHQoKXt9dC5wcm90b3R5cGU9YQpuZXcgdCgpCnJldHVybiBhfWZ1bmN0aW9u
IGNvbnZlcnRBbGxUb0Zhc3RPYmplY3QoYSl7Zm9yKHZhciB0PTA7dDxhLmxlbmd0aDsrK3QpY29udmVy
dFRvRmFzdE9iamVjdChhW3RdKX12YXIgeT0wCmZ1bmN0aW9uIHRlYXJPZmZHZXR0ZXIoYSxiLGMsZCxl
KXtyZXR1cm4gZT9uZXcgRnVuY3Rpb24oImZ1bmNzIiwiYXBwbHlUcmFtcG9saW5lSW5kZXgiLCJyZWZs
ZWN0aW9uSW5mbyIsIm5hbWUiLCJIIiwiYyIsInJldHVybiBmdW5jdGlvbiB0ZWFyT2ZmXyIrZCt5Kysr
IihyZWNlaXZlcikgeyIrImlmIChjID09PSBudWxsKSBjID0gIisiSC5LcSIrIigiKyJ0aGlzLCBmdW5j
cywgYXBwbHlUcmFtcG9saW5lSW5kZXgsIHJlZmxlY3Rpb25JbmZvLCBmYWxzZSwgdHJ1ZSwgbmFtZSk7
IisicmV0dXJuIG5ldyBjKHRoaXMsIGZ1bmNzWzBdLCByZWNlaXZlciwgbmFtZSk7IisifSIpKGEsYixj
LGQsSCxudWxsKTpuZXcgRnVuY3Rpb24oImZ1bmNzIiwiYXBwbHlUcmFtcG9saW5lSW5kZXgiLCJyZWZs
ZWN0aW9uSW5mbyIsIm5hbWUiLCJIIiwiYyIsInJldHVybiBmdW5jdGlvbiB0ZWFyT2ZmXyIrZCt5Kysr
IigpIHsiKyJpZiAoYyA9PT0gbnVsbCkgYyA9ICIrIkguS3EiKyIoIisidGhpcywgZnVuY3MsIGFwcGx5
VHJhbXBvbGluZUluZGV4LCByZWZsZWN0aW9uSW5mbywgZmFsc2UsIGZhbHNlLCBuYW1lKTsiKyJyZXR1
cm4gbmV3IGModGhpcywgZnVuY3NbMF0sIG51bGwsIG5hbWUpOyIrIn0iKShhLGIsYyxkLEgsbnVsbCl9
ZnVuY3Rpb24gdGVhck9mZihhLGIsYyxkLGUsZil7dmFyIHQ9bnVsbApyZXR1cm4gZD9mdW5jdGlvbigp
e2lmKHQ9PT1udWxsKXQ9SC5LcSh0aGlzLGEsYixjLHRydWUsZmFsc2UsZSkucHJvdG90eXBlCnJldHVy
biB0fTp0ZWFyT2ZmR2V0dGVyKGEsYixjLGUsZil9dmFyIHg9MApmdW5jdGlvbiBpbnN0YWxsVGVhck9m
ZihhLGIsYyxkLGUsZixnLGgsaSxqKXt2YXIgdD1bXQpmb3IodmFyIHM9MDtzPGgubGVuZ3RoO3MrKyl7
dmFyIHI9aFtzXQppZih0eXBlb2Ygcj09J3N0cmluZycpcj1hW3JdCnIuJGNhbGxOYW1lPWdbc10KdC5w
dXNoKHIpfXZhciByPXRbMF0Kci4kUj1lCnIuJEQ9Zgp2YXIgcT1pCmlmKHR5cGVvZiBxPT0ibnVtYmVy
IilxKz14CnZhciBwPWhbMF0Kci4kc3R1Yk5hbWU9cAp2YXIgbz10ZWFyT2ZmKHQsanx8MCxxLGMscCxk
KQphW2JdPW8KaWYoYylyLiR0ZWFyT2ZmPW99ZnVuY3Rpb24gaW5zdGFsbFN0YXRpY1RlYXJPZmYoYSxi
LGMsZCxlLGYsZyxoKXtyZXR1cm4gaW5zdGFsbFRlYXJPZmYoYSxiLHRydWUsZmFsc2UsYyxkLGUsZixn
LGgpfWZ1bmN0aW9uIGluc3RhbGxJbnN0YW5jZVRlYXJPZmYoYSxiLGMsZCxlLGYsZyxoLGkpe3JldHVy
biBpbnN0YWxsVGVhck9mZihhLGIsZmFsc2UsYyxkLGUsZixnLGgsaSl9ZnVuY3Rpb24gc2V0T3JVcGRh
dGVJbnRlcmNlcHRvcnNCeVRhZyhhKXt2YXIgdD12LmludGVyY2VwdG9yc0J5VGFnCmlmKCF0KXt2Lmlu
dGVyY2VwdG9yc0J5VGFnPWEKcmV0dXJufWNvcHlQcm9wZXJ0aWVzKGEsdCl9ZnVuY3Rpb24gc2V0T3JV
cGRhdGVMZWFmVGFncyhhKXt2YXIgdD12LmxlYWZUYWdzCmlmKCF0KXt2LmxlYWZUYWdzPWEKcmV0dXJu
fWNvcHlQcm9wZXJ0aWVzKGEsdCl9ZnVuY3Rpb24gdXBkYXRlVHlwZXMoYSl7dmFyIHQ9di50eXBlcwp2
YXIgcz10Lmxlbmd0aAp0LnB1c2guYXBwbHkodCxhKQpyZXR1cm4gc31mdW5jdGlvbiB1cGRhdGVIb2xk
ZXIoYSxiKXtjb3B5UHJvcGVydGllcyhiLGEpCnJldHVybiBhfXZhciBodW5rSGVscGVycz1mdW5jdGlv
bigpe3ZhciB0PWZ1bmN0aW9uKGEsYixjLGQsZSl7cmV0dXJuIGZ1bmN0aW9uKGYsZyxoLGkpe3JldHVy
biBpbnN0YWxsSW5zdGFuY2VUZWFyT2ZmKGYsZyxhLGIsYyxkLFtoXSxpLGUpfX0scz1mdW5jdGlvbihh
LGIsYyxkKXtyZXR1cm4gZnVuY3Rpb24oZSxmLGcsaCl7cmV0dXJuIGluc3RhbGxTdGF0aWNUZWFyT2Zm
KGUsZixhLGIsYyxbZ10saCxkKX19CnJldHVybntpbmhlcml0OmluaGVyaXQsaW5oZXJpdE1hbnk6aW5o
ZXJpdE1hbnksbWl4aW46bWl4aW4saW5zdGFsbFN0YXRpY1RlYXJPZmY6aW5zdGFsbFN0YXRpY1RlYXJP
ZmYsaW5zdGFsbEluc3RhbmNlVGVhck9mZjppbnN0YWxsSW5zdGFuY2VUZWFyT2ZmLF9pbnN0YW5jZV8w
dTp0KDAsMCxudWxsLFsiJDAiXSwwKSxfaW5zdGFuY2VfMXU6dCgwLDEsbnVsbCxbIiQxIl0sMCksX2lu
c3RhbmNlXzJ1OnQoMCwyLG51bGwsWyIkMiJdLDApLF9pbnN0YW5jZV8waTp0KDEsMCxudWxsLFsiJDAi
XSwwKSxfaW5zdGFuY2VfMWk6dCgxLDEsbnVsbCxbIiQxIl0sMCksX2luc3RhbmNlXzJpOnQoMSwyLG51
bGwsWyIkMiJdLDApLF9zdGF0aWNfMDpzKDAsbnVsbCxbIiQwIl0sMCksX3N0YXRpY18xOnMoMSxudWxs
LFsiJDEiXSwwKSxfc3RhdGljXzI6cygyLG51bGwsWyIkMiJdLDApLG1ha2VDb25zdExpc3Q6bWFrZUNv
bnN0TGlzdCxsYXp5OmxhenksdXBkYXRlSG9sZGVyOnVwZGF0ZUhvbGRlcixjb252ZXJ0VG9GYXN0T2Jq
ZWN0OmNvbnZlcnRUb0Zhc3RPYmplY3Qsc2V0RnVuY3Rpb25OYW1lc0lmTmVjZXNzYXJ5OnNldEZ1bmN0
aW9uTmFtZXNJZk5lY2Vzc2FyeSx1cGRhdGVUeXBlczp1cGRhdGVUeXBlcyxzZXRPclVwZGF0ZUludGVy
Y2VwdG9yc0J5VGFnOnNldE9yVXBkYXRlSW50ZXJjZXB0b3JzQnlUYWcsc2V0T3JVcGRhdGVMZWFmVGFn
czpzZXRPclVwZGF0ZUxlYWZUYWdzfX0oKQpmdW5jdGlvbiBpbml0aWFsaXplRGVmZXJyZWRIdW5rKGEp
e3g9di50eXBlcy5sZW5ndGgKYShodW5rSGVscGVycyx2LHcsJCl9ZnVuY3Rpb24gZ2V0R2xvYmFsRnJv
bU5hbWUoYSl7Zm9yKHZhciB0PTA7dDx3Lmxlbmd0aDt0Kyspe2lmKHdbdF09PUMpY29udGludWUKaWYo
d1t0XVthXSlyZXR1cm4gd1t0XVthXX19dmFyIEM9e30sSD17ZW86ZnVuY3Rpb24gZW8oKXt9LApvbzpm
dW5jdGlvbihhKXt2YXIgdCxzPWFeNDgKaWYoczw9OSlyZXR1cm4gcwp0PWF8MzIKaWYoOTc8PXQmJnQ8
PTEwMilyZXR1cm4gdC04NwpyZXR1cm4tMX0sCnFDOmZ1bmN0aW9uKGEsYixjLGQpe1AuazEoYiwic3Rh
cnQiKQppZihjIT1udWxsKXtQLmsxKGMsImVuZCIpCmlmKGI+YylILnZoKFAuVEUoYiwwLGMsInN0YXJ0
IixudWxsKSl9cmV0dXJuIG5ldyBILm5IKGEsYixjLGQuQygibkg8MD4iKSl9LApXcDpmdW5jdGlvbigp
e3JldHVybiBuZXcgUC5saigiTm8gZWxlbWVudCIpfSwKZFU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFAu
bGooIlRvbyBtYW55IGVsZW1lbnRzIil9LAphcjpmdW5jdGlvbigpe3JldHVybiBuZXcgUC5saigiVG9v
IGZldyBlbGVtZW50cyIpfSwKcWo6ZnVuY3Rpb24gcWooYSl7dGhpcy5hPWF9LApiUTpmdW5jdGlvbiBi
USgpe30sCmFMOmZ1bmN0aW9uIGFMKCl7fSwKbkg6ZnVuY3Rpb24gbkgoYSxiLGMsZCl7dmFyIF89dGhp
cwpfLmE9YQpfLmI9YgpfLmM9YwpfLiR0aT1kfSwKYTc6ZnVuY3Rpb24gYTcoYSxiLGMpe3ZhciBfPXRo
aXMKXy5hPWEKXy5iPWIKXy5jPTAKXy5kPW51bGwKXy4kdGk9Y30sCkE4OmZ1bmN0aW9uIEE4KGEsYixj
KXt0aGlzLmE9YQp0aGlzLmI9Ygp0aGlzLiR0aT1jfSwKVTU6ZnVuY3Rpb24gVTUoYSxiLGMpe3RoaXMu
YT1hCnRoaXMuYj1iCnRoaXMuJHRpPWN9LApTTzpmdW5jdGlvbiBTTyhhLGIsYyl7dGhpcy5hPWEKdGhp
cy5iPWIKdGhpcy4kdGk9Y30sClNVOmZ1bmN0aW9uIFNVKCl7fSwKUmU6ZnVuY3Rpb24gUmUoKXt9LApY
QzpmdW5jdGlvbiBYQygpe30sCnd2OmZ1bmN0aW9uIHd2KGEpe3RoaXMuYT1hfSwKZGM6ZnVuY3Rpb24o
KXt0aHJvdyBILmIoUC5MNCgiQ2Fubm90IG1vZGlmeSB1bm1vZGlmaWFibGUgTWFwIikpfSwKTlE6ZnVu
Y3Rpb24oYSl7dmFyIHQscz1ILkpnKGEpCmlmKHR5cGVvZiBzPT0ic3RyaW5nIilyZXR1cm4gcwp0PSJt
aW5pZmllZDoiK2EKcmV0dXJuIHR9LAp3VjpmdW5jdGlvbihhLGIpe3ZhciB0CmlmKGIhPW51bGwpe3Q9
Yi54CmlmKHQhPW51bGwpcmV0dXJuIHR9cmV0dXJuIHUuYVUuYyhhKX0sCmQ6ZnVuY3Rpb24oYSl7dmFy
IHQKaWYodHlwZW9mIGE9PSJzdHJpbmciKXJldHVybiBhCmlmKHR5cGVvZiBhPT0ibnVtYmVyIil7aWYo
YSE9PTApcmV0dXJuIiIrYX1lbHNlIGlmKCEwPT09YSlyZXR1cm4idHJ1ZSIKZWxzZSBpZighMT09PWEp
cmV0dXJuImZhbHNlIgplbHNlIGlmKGE9PW51bGwpcmV0dXJuIm51bGwiCnQ9Si5qKGEpCmlmKHR5cGVv
ZiB0IT0ic3RyaW5nIil0aHJvdyBILmIoSC50TChhKSkKcmV0dXJuIHR9LAplUTpmdW5jdGlvbihhKXt2
YXIgdD1hLiRpZGVudGl0eUhhc2gKaWYodD09bnVsbCl7dD1NYXRoLnJhbmRvbSgpKjB4M2ZmZmZmZmZ8
MAphLiRpZGVudGl0eUhhc2g9dH1yZXR1cm4gdH0sCkhwOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyLHEs
cCxvCmlmKHR5cGVvZiBhIT0ic3RyaW5nIilILnZoKEgudEwoYSkpCnQ9L15ccypbKy1dPygoMHhbYS1m
MC05XSspfChcZCspfChbYS16MC05XSspKVxzKiQvaS5leGVjKGEpCmlmKHQ9PW51bGwpcmV0dXJuCmlm
KDM+PXQubGVuZ3RoKXJldHVybiBILk9IKHQsMykKcz1ILnkodFszXSkKaWYoYj09bnVsbCl7aWYocyE9
bnVsbClyZXR1cm4gcGFyc2VJbnQoYSwxMCkKaWYodFsyXSE9bnVsbClyZXR1cm4gcGFyc2VJbnQoYSwx
NikKcmV0dXJufWlmKGI8Mnx8Yj4zNil0aHJvdyBILmIoUC5URShiLDIsMzYsInJhZGl4IixudWxsKSkK
aWYoYj09PTEwJiZzIT1udWxsKXJldHVybiBwYXJzZUludChhLDEwKQppZihiPDEwfHxzPT1udWxsKXty
PWI8PTEwPzQ3K2I6ODYrYgpxPXRbMV0KZm9yKHA9cS5sZW5ndGgsbz0wO288cDsrK28paWYoKEMueEIu
VyhxLG8pfDMyKT5yKXJldHVybn1yZXR1cm4gcGFyc2VJbnQoYSxiKX0sCk06ZnVuY3Rpb24oYSl7dmFy
IHQ9SC5INShhKQpyZXR1cm4gdH0sCkg1OmZ1bmN0aW9uKGEpe3ZhciB0LHMscgppZihhIGluc3RhbmNl
b2YgUC5rKXJldHVybiBILmRtKEgueksoYSksbnVsbCkKaWYoSi5pYShhKT09PUMuT2t8fHUuYWsuYyhh
KSl7dD1DLk80KGEpCmlmKEguZih0KSlyZXR1cm4gdApzPWEuY29uc3RydWN0b3IKaWYodHlwZW9mIHM9
PSJmdW5jdGlvbiIpe3I9cy5uYW1lCmlmKHR5cGVvZiByPT0ic3RyaW5nIiYmSC5mKHIpKXJldHVybiBy
fX1yZXR1cm4gSC5kbShILnpLKGEpLG51bGwpfSwKZjpmdW5jdGlvbihhKXt2YXIgdD1hIT09Ik9iamVj
dCImJmEhPT0iIgpyZXR1cm4gdH0sCk0wOmZ1bmN0aW9uKCl7aWYoISFzZWxmLmxvY2F0aW9uKXJldHVy
biBzZWxmLmxvY2F0aW9uLmhyZWYKcmV0dXJufSwKVks6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHEscD1h
Lmxlbmd0aAppZihwPD01MDApcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxhKQpm
b3IodD0iIixzPTA7czxwO3M9cil7cj1zKzUwMApxPXI8cD9yOnAKdCs9U3RyaW5nLmZyb21DaGFyQ29k
ZS5hcHBseShudWxsLGEuc2xpY2UocyxxKSl9cmV0dXJuIHR9LApQTDpmdW5jdGlvbihhKXt2YXIgdCxz
LHIscT1ILlZNKFtdLHUudCkKZm9yKHQ9YS5sZW5ndGgscz0wO3M8YS5sZW5ndGg7YS5sZW5ndGg9PT10
fHwoMCxILmxrKShhKSwrK3Mpe3I9YVtzXQppZighSC5vayhyKSl0aHJvdyBILmIoSC50TChyKSkKaWYo
cjw9NjU1MzUpQy5ObS5pKHEscikKZWxzZSBpZihyPD0xMTE0MTExKXtDLk5tLmkocSw1NTI5NisoQy5q
bi53RyhyLTY1NTM2LDEwKSYxMDIzKSkKQy5ObS5pKHEsNTYzMjArKHImMTAyMykpfWVsc2UgdGhyb3cg
SC5iKEgudEwocikpfXJldHVybiBILlZLKHEpfSwKZVQ6ZnVuY3Rpb24oYSl7dmFyIHQscyxyCmZvcih0
PWEubGVuZ3RoLHM9MDtzPHQ7KytzKXtyPWFbc10KaWYoIUgub2socikpdGhyb3cgSC5iKEgudEwocikp
CmlmKHI8MCl0aHJvdyBILmIoSC50TChyKSkKaWYocj42NTUzNSlyZXR1cm4gSC5QTChhKX1yZXR1cm4g
SC5WSyhhKX0sCmZ3OmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzLHIscQppZihjPD01MDAmJmI9PT0wJiZj
PT09YS5sZW5ndGgpcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxhKQpmb3IodD1i
LHM9IiI7dDxjO3Q9cil7cj10KzUwMApxPXI8Yz9yOmMKcys9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBs
eShudWxsLGEuc3ViYXJyYXkodCxxKSl9cmV0dXJuIHN9LApMdzpmdW5jdGlvbihhKXt2YXIgdAppZigw
PD1hKXtpZihhPD02NTUzNSlyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShhKQppZihhPD0xMTE0MTEx
KXt0PWEtNjU1MzYKcmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoKDU1Mjk2fEMuam4ud0codCwxMCkp
Pj4+MCw1NjMyMHx0JjEwMjMpfX10aHJvdyBILmIoUC5URShhLDAsMTExNDExMSxudWxsLG51bGwpKX0s
Cm8yOmZ1bmN0aW9uKGEpe2lmKGEuZGF0ZT09PXZvaWQgMClhLmRhdGU9bmV3IERhdGUoYS5hKQpyZXR1
cm4gYS5kYXRlfSwKdEo6ZnVuY3Rpb24oYSl7dmFyIHQ9SC5vMihhKS5nZXRGdWxsWWVhcigpKzAKcmV0
dXJuIHR9LApOUzpmdW5jdGlvbihhKXt2YXIgdD1ILm8yKGEpLmdldE1vbnRoKCkrMQpyZXR1cm4gdH0s
CmpBOmZ1bmN0aW9uKGEpe3ZhciB0PUgubzIoYSkuZ2V0RGF0ZSgpKzAKcmV0dXJuIHR9LApLTDpmdW5j
dGlvbihhKXt2YXIgdD1ILm8yKGEpLmdldEhvdXJzKCkrMApyZXR1cm4gdH0sCmNoOmZ1bmN0aW9uKGEp
e3ZhciB0PUgubzIoYSkuZ2V0TWludXRlcygpKzAKcmV0dXJuIHR9LApKZDpmdW5jdGlvbihhKXt2YXIg
dD1ILm8yKGEpLmdldFNlY29uZHMoKSswCnJldHVybiB0fSwKbzE6ZnVuY3Rpb24oYSl7dmFyIHQ9SC5v
MihhKS5nZXRNaWxsaXNlY29uZHMoKSswCnJldHVybiB0fSwKem86ZnVuY3Rpb24oYSxiLGMpe3ZhciB0
LHMscj17fQpyLmE9MAp0PVtdCnM9W10Kci5hPWIubGVuZ3RoCkMuTm0uRlYodCxiKQpyLmI9IiIKaWYo
YyE9bnVsbCYmYy5hIT09MCljLksoMCxuZXcgSC5DaihyLHMsdCkpCiIiK3IuYQpyZXR1cm4gSi5KeShh
LG5ldyBILkxJKEMuVGUsMCx0LHMsMCkpfSwKRWs6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscixxCmlm
KGIgaW5zdGFuY2VvZiBBcnJheSl0PWM9PW51bGx8fGMuYT09PTAKZWxzZSB0PSExCmlmKHQpe3M9Ygpy
PXMubGVuZ3RoCmlmKHI9PT0wKXtpZighIWEuJDApcmV0dXJuIGEuJDAoKX1lbHNlIGlmKHI9PT0xKXtp
ZighIWEuJDEpcmV0dXJuIGEuJDEoc1swXSl9ZWxzZSBpZihyPT09Mil7aWYoISFhLiQyKXJldHVybiBh
LiQyKHNbMF0sc1sxXSl9ZWxzZSBpZihyPT09Myl7aWYoISFhLiQzKXJldHVybiBhLiQzKHNbMF0sc1sx
XSxzWzJdKX1lbHNlIGlmKHI9PT00KXtpZighIWEuJDQpcmV0dXJuIGEuJDQoc1swXSxzWzFdLHNbMl0s
c1szXSl9ZWxzZSBpZihyPT09NSlpZighIWEuJDUpcmV0dXJuIGEuJDUoc1swXSxzWzFdLHNbMl0sc1sz
XSxzWzRdKQpxPWFbIiIrIiQiK3JdCmlmKHEhPW51bGwpcmV0dXJuIHEuYXBwbHkoYSxzKX1yZXR1cm4g
SC5FdyhhLGIsYyl9LApFdzpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyLHEscCxvLG4sbSxsLGs9YiBp
bnN0YW5jZW9mIEFycmF5P2I6UC5DSChiLCEwLHUueiksaj1rLmxlbmd0aCxpPWEuJFIKaWYoajxpKXJl
dHVybiBILnpvKGEsayxjKQp0PWEuJEQKcz10PT1udWxsCnI9IXM/dCgpOm51bGwKcT1KLmlhKGEpCnA9
cS4kQwppZih0eXBlb2YgcD09InN0cmluZyIpcD1xW3BdCmlmKHMpe2lmKGMhPW51bGwmJmMuYSE9PTAp
cmV0dXJuIEguem8oYSxrLGMpCmlmKGo9PT1pKXJldHVybiBwLmFwcGx5KGEsaykKcmV0dXJuIEguem8o
YSxrLGMpfWlmKHIgaW5zdGFuY2VvZiBBcnJheSl7aWYoYyE9bnVsbCYmYy5hIT09MClyZXR1cm4gSC56
byhhLGssYykKaWYoaj5pK3IubGVuZ3RoKXJldHVybiBILnpvKGEsayxudWxsKQpDLk5tLkZWKGssci5z
bGljZShqLWkpKQpyZXR1cm4gcC5hcHBseShhLGspfWVsc2V7aWYoaj5pKXJldHVybiBILnpvKGEsayxj
KQpvPU9iamVjdC5rZXlzKHIpCmlmKGM9PW51bGwpZm9yKHM9by5sZW5ndGgsbj0wO248by5sZW5ndGg7
by5sZW5ndGg9PT1zfHwoMCxILmxrKShvKSwrK24pQy5ObS5pKGsscltILnkob1tuXSldKQplbHNle2Zv
cihzPW8ubGVuZ3RoLG09MCxuPTA7bjxvLmxlbmd0aDtvLmxlbmd0aD09PXN8fCgwLEgubGspKG8pLCsr
bil7bD1ILnkob1tuXSkKaWYoYy54NChsKSl7KyttCkMuTm0uaShrLGMucSgwLGwpKX1lbHNlIEMuTm0u
aShrLHJbbF0pfWlmKG0hPT1jLmEpcmV0dXJuIEguem8oYSxrLGMpfXJldHVybiBwLmFwcGx5KGEsayl9
fSwKcFk6ZnVuY3Rpb24oYSl7dGhyb3cgSC5iKEgudEwoYSkpfSwKT0g6ZnVuY3Rpb24oYSxiKXtpZihh
PT1udWxsKUouSG0oYSkKdGhyb3cgSC5iKEguSFkoYSxiKSl9LApIWTpmdW5jdGlvbihhLGIpe3ZhciB0
LHMscj0iaW5kZXgiCmlmKCFILm9rKGIpKXJldHVybiBuZXcgUC51KCEwLGIscixudWxsKQp0PUguU2Mo
Si5IbShhKSkKaWYoIShiPDApKXtpZih0eXBlb2YgdCE9PSJudW1iZXIiKXJldHVybiBILnBZKHQpCnM9
Yj49dH1lbHNlIHM9ITAKaWYocylyZXR1cm4gUC5DZihiLGEscixudWxsLHQpCnJldHVybiBQLngoYixy
KX0sCmF1OmZ1bmN0aW9uKGEsYixjKXt2YXIgdD0iSW52YWxpZCB2YWx1ZSIKaWYoYT5jKXJldHVybiBu
ZXcgUC5iSigwLGMsITAsYSwic3RhcnQiLHQpCmlmKGIhPW51bGwpe2lmKCFILm9rKGIpKXJldHVybiBu
ZXcgUC51KCEwLGIsImVuZCIsbnVsbCkKaWYoYjxhfHxiPmMpcmV0dXJuIG5ldyBQLmJKKGEsYywhMCxi
LCJlbmQiLHQpfXJldHVybiBuZXcgUC51KCEwLGIsImVuZCIsbnVsbCl9LAp0TDpmdW5jdGlvbihhKXty
ZXR1cm4gbmV3IFAudSghMCxhLG51bGwsbnVsbCl9LApiOmZ1bmN0aW9uKGEpe3ZhciB0CmlmKGE9PW51
bGwpYT1uZXcgUC5uKCkKdD1uZXcgRXJyb3IoKQp0LmRhcnRFeGNlcHRpb249YQppZigiZGVmaW5lUHJv
cGVydHkiIGluIE9iamVjdCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIm1lc3NhZ2UiLHtnZXQ6SC5o
fSkKdC5uYW1lPSIifWVsc2UgdC50b1N0cmluZz1ILmgKcmV0dXJuIHR9LApoOmZ1bmN0aW9uKCl7cmV0
dXJuIEouaih0aGlzLmRhcnRFeGNlcHRpb24pfSwKdmg6ZnVuY3Rpb24oYSl7dGhyb3cgSC5iKGEpfSwK
bGs6ZnVuY3Rpb24oYSl7dGhyb3cgSC5iKFAuYTQoYSkpfSwKY006ZnVuY3Rpb24oYSl7dmFyIHQscyxy
LHEscCxvCmE9SC5lQShhLnJlcGxhY2UoU3RyaW5nKHt9KSwnJHJlY2VpdmVyJCcpKQp0PWEubWF0Y2go
L1xcXCRbYS16QS1aXStcXFwkL2cpCmlmKHQ9PW51bGwpdD1ILlZNKFtdLHUucykKcz10LmluZGV4T2Yo
IlxcJGFyZ3VtZW50c1xcJCIpCnI9dC5pbmRleE9mKCJcXCRhcmd1bWVudHNFeHByXFwkIikKcT10Lmlu
ZGV4T2YoIlxcJGV4cHJcXCQiKQpwPXQuaW5kZXhPZigiXFwkbWV0aG9kXFwkIikKbz10LmluZGV4T2Yo
IlxcJHJlY2VpdmVyXFwkIikKcmV0dXJuIG5ldyBILlpyKGEucmVwbGFjZShuZXcgUmVnRXhwKCdcXFxc
XFwkYXJndW1lbnRzXFxcXFxcJCcsJ2cnKSwnKCg/Onh8W154XSkqKScpLnJlcGxhY2UobmV3IFJlZ0V4
cCgnXFxcXFxcJGFyZ3VtZW50c0V4cHJcXFxcXFwkJywnZycpLCcoKD86eHxbXnhdKSopJykucmVwbGFj
ZShuZXcgUmVnRXhwKCdcXFxcXFwkZXhwclxcXFxcXCQnLCdnJyksJygoPzp4fFteeF0pKiknKS5yZXBs
YWNlKG5ldyBSZWdFeHAoJ1xcXFxcXCRtZXRob2RcXFxcXFwkJywnZycpLCcoKD86eHxbXnhdKSopJyku
cmVwbGFjZShuZXcgUmVnRXhwKCdcXFxcXFwkcmVjZWl2ZXJcXFxcXFwkJywnZycpLCcoKD86eHxbXnhd
KSopJykscyxyLHEscCxvKX0sClM3OmZ1bmN0aW9uKGEpe3JldHVybiBmdW5jdGlvbigkZXhwciQpe3Zh
ciAkYXJndW1lbnRzRXhwciQ9JyRhcmd1bWVudHMkJwp0cnl7JGV4cHIkLiRtZXRob2QkKCRhcmd1bWVu
dHNFeHByJCl9Y2F0Y2godCl7cmV0dXJuIHQubWVzc2FnZX19KGEpfSwKTWo6ZnVuY3Rpb24oYSl7cmV0
dXJuIGZ1bmN0aW9uKCRleHByJCl7dHJ5eyRleHByJC4kbWV0aG9kJH1jYXRjaCh0KXtyZXR1cm4gdC5t
ZXNzYWdlfX0oYSl9LApJajpmdW5jdGlvbihhLGIpe3JldHVybiBuZXcgSC5XMChhLGI9PW51bGw/bnVs
bDpiLm1ldGhvZCl9LApUMzpmdW5jdGlvbihhLGIpe3ZhciB0PWI9PW51bGwscz10P251bGw6Yi5tZXRo
b2QKcmV0dXJuIG5ldyBILmF6KGEscyx0P251bGw6Yi5yZWNlaXZlcil9LApSdTpmdW5jdGlvbihhKXt2
YXIgdCxzLHIscSxwLG8sbixtLGwsayxqLGksaCxnLGY9bnVsbCxlPW5ldyBILkFtKGEpCmlmKGE9PW51
bGwpcmV0dXJuCmlmKHR5cGVvZiBhIT09Im9iamVjdCIpcmV0dXJuIGEKaWYoImRhcnRFeGNlcHRpb24i
IGluIGEpcmV0dXJuIGUuJDEoYS5kYXJ0RXhjZXB0aW9uKQplbHNlIGlmKCEoIm1lc3NhZ2UiIGluIGEp
KXJldHVybiBhCnQ9YS5tZXNzYWdlCmlmKCJudW1iZXIiIGluIGEmJnR5cGVvZiBhLm51bWJlcj09Im51
bWJlciIpe3M9YS5udW1iZXIKcj1zJjY1NTM1CmlmKChDLmpuLndHKHMsMTYpJjgxOTEpPT09MTApc3dp
dGNoKHIpe2Nhc2UgNDM4OnJldHVybiBlLiQxKEguVDMoSC5kKHQpKyIgKEVycm9yICIrcisiKSIsZikp
CmNhc2UgNDQ1OmNhc2UgNTAwNzpyZXR1cm4gZS4kMShILklqKEguZCh0KSsiIChFcnJvciAiK3IrIiki
LGYpKX19aWYoYSBpbnN0YW5jZW9mIFR5cGVFcnJvcil7cT0kLlNuKCkKcD0kLmxxKCkKbz0kLk45KCkK
bj0kLmlJKCkKbT0kLktmKCkKbD0kLlpoKCkKaz0kLmNQKCkKJC5jMygpCmo9JC5ISygpCmk9JC5yMSgp
Cmg9cS5xUyh0KQppZihoIT1udWxsKXJldHVybiBlLiQxKEguVDMoSC55KHQpLGgpKQplbHNle2g9cC5x
Uyh0KQppZihoIT1udWxsKXtoLm1ldGhvZD0iY2FsbCIKcmV0dXJuIGUuJDEoSC5UMyhILnkodCksaCkp
fWVsc2V7aD1vLnFTKHQpCmlmKGg9PW51bGwpe2g9bi5xUyh0KQppZihoPT1udWxsKXtoPW0ucVModCkK
aWYoaD09bnVsbCl7aD1sLnFTKHQpCmlmKGg9PW51bGwpe2g9ay5xUyh0KQppZihoPT1udWxsKXtoPW4u
cVModCkKaWYoaD09bnVsbCl7aD1qLnFTKHQpCmlmKGg9PW51bGwpe2g9aS5xUyh0KQpnPWghPW51bGx9
ZWxzZSBnPSEwfWVsc2UgZz0hMH1lbHNlIGc9ITB9ZWxzZSBnPSEwfWVsc2UgZz0hMH1lbHNlIGc9ITB9
ZWxzZSBnPSEwCmlmKGcpcmV0dXJuIGUuJDEoSC5JaihILnkodCksaCkpfX1yZXR1cm4gZS4kMShuZXcg
SC52Vih0eXBlb2YgdD09InN0cmluZyI/dDoiIikpfWlmKGEgaW5zdGFuY2VvZiBSYW5nZUVycm9yKXtp
Zih0eXBlb2YgdD09InN0cmluZyImJnQuaW5kZXhPZigiY2FsbCBzdGFjayIpIT09LTEpcmV0dXJuIG5l
dyBQLktZKCkKdD1mdW5jdGlvbihiKXt0cnl7cmV0dXJuIFN0cmluZyhiKX1jYXRjaChkKXt9cmV0dXJu
IG51bGx9KGEpCnJldHVybiBlLiQxKG5ldyBQLnUoITEsZixmLHR5cGVvZiB0PT0ic3RyaW5nIj90LnJl
cGxhY2UoL15SYW5nZUVycm9yOlxzKi8sIiIpOnQpKX1pZih0eXBlb2YgSW50ZXJuYWxFcnJvcj09ImZ1
bmN0aW9uIiYmYSBpbnN0YW5jZW9mIEludGVybmFsRXJyb3IpaWYodHlwZW9mIHQ9PSJzdHJpbmciJiZ0
PT09InRvbyBtdWNoIHJlY3Vyc2lvbiIpcmV0dXJuIG5ldyBQLktZKCkKcmV0dXJuIGF9LAp0czpmdW5j
dGlvbihhKXt2YXIgdAppZihhPT1udWxsKXJldHVybiBuZXcgSC5YTyhhKQp0PWEuJGNhY2hlZFRyYWNl
CmlmKHQhPW51bGwpcmV0dXJuIHQKcmV0dXJuIGEuJGNhY2hlZFRyYWNlPW5ldyBILlhPKGEpfSwKQjc6
ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscT1hLmxlbmd0aApmb3IodD0wO3Q8cTt0PXIpe3M9dCsxCnI9
cysxCmIuWSgwLGFbdF0sYVtzXSl9cmV0dXJuIGJ9LApmdDpmdW5jdGlvbihhLGIsYyxkLGUsZil7dS5a
LmIoYSkKc3dpdGNoKEguU2MoYikpe2Nhc2UgMDpyZXR1cm4gYS4kMCgpCmNhc2UgMTpyZXR1cm4gYS4k
MShjKQpjYXNlIDI6cmV0dXJuIGEuJDIoYyxkKQpjYXNlIDM6cmV0dXJuIGEuJDMoYyxkLGUpCmNhc2Ug
NDpyZXR1cm4gYS4kNChjLGQsZSxmKX10aHJvdyBILmIobmV3IFAuQ0QoIlVuc3VwcG9ydGVkIG51bWJl
ciBvZiBhcmd1bWVudHMgZm9yIHdyYXBwZWQgY2xvc3VyZSIpKX0sCnRSOmZ1bmN0aW9uKGEsYil7dmFy
IHQKaWYoYT09bnVsbClyZXR1cm4KdD1hLiRpZGVudGl0eQppZighIXQpcmV0dXJuIHQKdD1mdW5jdGlv
bihjLGQsZSl7cmV0dXJuIGZ1bmN0aW9uKGYsZyxoLGkpe3JldHVybiBlKGMsZCxmLGcsaCxpKX19KGEs
YixILmZ0KQphLiRpZGVudGl0eT10CnJldHVybiB0fSwKaUE6ZnVuY3Rpb24oYSxiLGMsZCxlLGYsZyl7
dmFyIHQscyxyLHEscCxvLG4sbSxsPW51bGwsaz1iWzBdLGo9ay4kY2FsbE5hbWUsaT1lP09iamVjdC5j
cmVhdGUobmV3IEguengoKS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUpOk9iamVjdC5jcmVhdGUobmV3IEgu
clQobCxsLGwsbCkuY29uc3RydWN0b3IucHJvdG90eXBlKQppLiRpbml0aWFsaXplPWkuY29uc3RydWN0
b3IKaWYoZSl0PWZ1bmN0aW9uIHN0YXRpY190ZWFyX29mZigpe3RoaXMuJGluaXRpYWxpemUoKX0KZWxz
ZXtzPSQueWoKaWYodHlwZW9mIHMhPT0ibnVtYmVyIilyZXR1cm4gcy5oKCkKJC55aj1zKzEKcz1uZXcg
RnVuY3Rpb24oImEsYixjLGQiK3MsInRoaXMuJGluaXRpYWxpemUoYSxiLGMsZCIrcysiKSIpCnQ9c31p
LmNvbnN0cnVjdG9yPXQKdC5wcm90b3R5cGU9aQppZighZSl7cj1ILmJ4KGEsayxmKQpyLiRyZWZsZWN0
aW9uSW5mbz1kfWVsc2V7aS4kc3RhdGljX25hbWU9ZwpyPWt9cT1ILmltKGQsZSxmKQppLiRTPXEKaVtq
XT1yCmZvcihwPXIsbz0xO288Yi5sZW5ndGg7KytvKXtuPWJbb10KbT1uLiRjYWxsTmFtZQppZihtIT1u
dWxsKXtuPWU/bjpILmJ4KGEsbixmKQppW21dPW59aWYobz09PWMpe24uJHJlZmxlY3Rpb25JbmZvPWQK
cD1ufX1pLiRDPXAKaS4kUj1rLiRSCmkuJEQ9ay4kRApyZXR1cm4gdH0sCmltOmZ1bmN0aW9uKGEsYixj
KXt2YXIgdAppZih0eXBlb2YgYT09Im51bWJlciIpcmV0dXJuIGZ1bmN0aW9uKGQsZSl7cmV0dXJuIGZ1
bmN0aW9uKCl7cmV0dXJuIGQoZSl9fShILkJwLGEpCmlmKHR5cGVvZiBhPT0ic3RyaW5nIil7aWYoYil0
aHJvdyBILmIoIkNhbm5vdCBjb21wdXRlIHNpZ25hdHVyZSBmb3Igc3RhdGljIHRlYXJvZmYuIikKdD1j
P0guUFc6SC5UbgpyZXR1cm4gZnVuY3Rpb24oZCxlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZSh0
aGlzLGQpfX0oYSx0KX10aHJvdyBILmIoIkVycm9yIGluIGZ1bmN0aW9uVHlwZSBvZiB0ZWFyb2ZmIil9
LAp2cTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgdD1ILkRWCnN3aXRjaChiPy0xOmEpe2Nhc2UgMDpyZXR1
cm4gZnVuY3Rpb24oZSxmKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZih0aGlzKVtlXSgpfX0oYyx0
KQpjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKGUsZil7cmV0dXJuIGZ1bmN0aW9uKGcpe3JldHVybiBmKHRo
aXMpW2VdKGcpfX0oYyx0KQpjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKGUsZil7cmV0dXJuIGZ1bmN0aW9u
KGcsaCl7cmV0dXJuIGYodGhpcylbZV0oZyxoKX19KGMsdCkKY2FzZSAzOnJldHVybiBmdW5jdGlvbihl
LGYpe3JldHVybiBmdW5jdGlvbihnLGgsaSl7cmV0dXJuIGYodGhpcylbZV0oZyxoLGkpfX0oYyx0KQpj
YXNlIDQ6cmV0dXJuIGZ1bmN0aW9uKGUsZil7cmV0dXJuIGZ1bmN0aW9uKGcsaCxpLGope3JldHVybiBm
KHRoaXMpW2VdKGcsaCxpLGopfX0oYyx0KQpjYXNlIDU6cmV0dXJuIGZ1bmN0aW9uKGUsZil7cmV0dXJu
IGZ1bmN0aW9uKGcsaCxpLGosayl7cmV0dXJuIGYodGhpcylbZV0oZyxoLGksaixrKX19KGMsdCkKZGVm
YXVsdDpyZXR1cm4gZnVuY3Rpb24oZSxmKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseShm
KHRoaXMpLGFyZ3VtZW50cyl9fShkLHQpfX0sCmJ4OmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzLHIscSxw
LG8sbgppZihjKXJldHVybiBILkhmKGEsYikKdD1iLiRzdHViTmFtZQpzPWIubGVuZ3RoCnI9YVt0XQpx
PWI9PW51bGw/cj09bnVsbDpiPT09cgpwPSFxfHxzPj0yNwppZihwKXJldHVybiBILnZxKHMsIXEsdCxi
KQppZihzPT09MCl7cT0kLnlqCmlmKHR5cGVvZiBxIT09Im51bWJlciIpcmV0dXJuIHEuaCgpCiQueWo9
cSsxCm89InNlbGYiK3EKcT0icmV0dXJuIGZ1bmN0aW9uKCl7dmFyICIrbysiID0gdGhpcy4iCnA9JC5t
SgpyZXR1cm4gbmV3IEZ1bmN0aW9uKHErSC5kKHA9PW51bGw/JC5tSj1ILkUyKCJzZWxmIik6cCkrIjty
ZXR1cm4gIitvKyIuIitILmQodCkrIigpO30iKSgpfW49ImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
Ii5zcGxpdCgiIikuc3BsaWNlKDAscykuam9pbigiLCIpCnE9JC55agppZih0eXBlb2YgcSE9PSJudW1i
ZXIiKXJldHVybiBxLmgoKQokLnlqPXErMQpuKz1xCnE9InJldHVybiBmdW5jdGlvbigiK24rIil7cmV0
dXJuIHRoaXMuIgpwPSQubUoKcmV0dXJuIG5ldyBGdW5jdGlvbihxK0guZChwPT1udWxsPyQubUo9SC5F
Migic2VsZiIpOnApKyIuIitILmQodCkrIigiK24rIik7fSIpKCl9LApaNDpmdW5jdGlvbihhLGIsYyxk
KXt2YXIgdD1ILkRWLHM9SC55Uwpzd2l0Y2goYj8tMTphKXtjYXNlIDA6dGhyb3cgSC5iKEguRWYoIklu
dGVyY2VwdGVkIGZ1bmN0aW9uIHdpdGggbm8gYXJndW1lbnRzLiIpKQpjYXNlIDE6cmV0dXJuIGZ1bmN0
aW9uKGUsZixnKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZih0aGlzKVtlXShnKHRoaXMpKX19KGMs
dCxzKQpjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKGUsZixnKXtyZXR1cm4gZnVuY3Rpb24oaCl7cmV0dXJu
IGYodGhpcylbZV0oZyh0aGlzKSxoKX19KGMsdCxzKQpjYXNlIDM6cmV0dXJuIGZ1bmN0aW9uKGUsZixn
KXtyZXR1cm4gZnVuY3Rpb24oaCxpKXtyZXR1cm4gZih0aGlzKVtlXShnKHRoaXMpLGgsaSl9fShjLHQs
cykKY2FzZSA0OnJldHVybiBmdW5jdGlvbihlLGYsZyl7cmV0dXJuIGZ1bmN0aW9uKGgsaSxqKXtyZXR1
cm4gZih0aGlzKVtlXShnKHRoaXMpLGgsaSxqKX19KGMsdCxzKQpjYXNlIDU6cmV0dXJuIGZ1bmN0aW9u
KGUsZixnKXtyZXR1cm4gZnVuY3Rpb24oaCxpLGosayl7cmV0dXJuIGYodGhpcylbZV0oZyh0aGlzKSxo
LGksaixrKX19KGMsdCxzKQpjYXNlIDY6cmV0dXJuIGZ1bmN0aW9uKGUsZixnKXtyZXR1cm4gZnVuY3Rp
b24oaCxpLGosayxsKXtyZXR1cm4gZih0aGlzKVtlXShnKHRoaXMpLGgsaSxqLGssbCl9fShjLHQscykK
ZGVmYXVsdDpyZXR1cm4gZnVuY3Rpb24oZSxmLGcsaCl7cmV0dXJuIGZ1bmN0aW9uKCl7aD1bZyh0aGlz
KV0KQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkoaCxhcmd1bWVudHMpCnJldHVybiBlLmFwcGx5KGYo
dGhpcyksaCl9fShkLHQscyl9fSwKSGY6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwLG8sbixtPSQu
bUoKaWYobT09bnVsbCltPSQubUo9SC5FMigic2VsZiIpCnQ9JC5QNAppZih0PT1udWxsKXQ9JC5QND1I
LkUyKCJyZWNlaXZlciIpCnM9Yi4kc3R1Yk5hbWUKcj1iLmxlbmd0aApxPWFbc10KcD1iPT1udWxsP3E9
PW51bGw6Yj09PXEKbz0hcHx8cj49MjgKaWYobylyZXR1cm4gSC5aNChyLCFwLHMsYikKaWYocj09PTEp
e209InJldHVybiBmdW5jdGlvbigpe3JldHVybiB0aGlzLiIrSC5kKG0pKyIuIitILmQocykrIih0aGlz
LiIrSC5kKHQpKyIpOyIKdD0kLnlqCmlmKHR5cGVvZiB0IT09Im51bWJlciIpcmV0dXJuIHQuaCgpCiQu
eWo9dCsxCnJldHVybiBuZXcgRnVuY3Rpb24obSt0KyJ9IikoKX1uPSJhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiIuc3BsaXQoIiIpLnNwbGljZSgwLHItMSkuam9pbigiLCIpCm09InJldHVybiBmdW5jdGlv
bigiK24rIil7cmV0dXJuIHRoaXMuIitILmQobSkrIi4iK0guZChzKSsiKHRoaXMuIitILmQodCkrIiwg
IituKyIpOyIKdD0kLnlqCmlmKHR5cGVvZiB0IT09Im51bWJlciIpcmV0dXJuIHQuaCgpCiQueWo9dCsx
CnJldHVybiBuZXcgRnVuY3Rpb24obSt0KyJ9IikoKX0sCktxOmZ1bmN0aW9uKGEsYixjLGQsZSxmLGcp
e3JldHVybiBILmlBKGEsYixjLGQsISFlLCEhZixnKX0sClRuOmZ1bmN0aW9uKGEsYil7cmV0dXJuIEgu
Y0Uodi50eXBlVW5pdmVyc2UsSC56SyhhLmEpLGIpfSwKUFc6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gSC5j
RSh2LnR5cGVVbml2ZXJzZSxILnpLKGEuYyksYil9LApEVjpmdW5jdGlvbihhKXtyZXR1cm4gYS5hfSwK
eVM6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuY30sCkUyOmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxPW5ldyBI
LnJUKCJzZWxmIiwidGFyZ2V0IiwicmVjZWl2ZXIiLCJuYW1lIikscD1KLkVwKE9iamVjdC5nZXRPd25Q
cm9wZXJ0eU5hbWVzKHEpKQpmb3IodD1wLmxlbmd0aCxzPTA7czx0Oysrcyl7cj1wW3NdCmlmKHFbcl09
PT1hKXJldHVybiByfX0sCm9UOmZ1bmN0aW9uKGEpe2lmKGE9PW51bGwpSC5mTygiYm9vbGVhbiBleHBy
ZXNzaW9uIG11c3Qgbm90IGJlIG51bGwiKQpyZXR1cm4gYX0sCmZPOmZ1bmN0aW9uKGEpe3Rocm93IEgu
YihuZXcgSC5rWShhKSl9LAphZzpmdW5jdGlvbihhKXt0aHJvdyBILmIobmV3IFAuYyhhKSl9LApFZjpm
dW5jdGlvbihhKXtyZXR1cm4gbmV3IEguRXEoYSl9LApZZzpmdW5jdGlvbihhKXtyZXR1cm4gdi5nZXRJ
c29sYXRlVGFnKGEpfSwKVk06ZnVuY3Rpb24oYSxiKXthLiR0aT1iCnJldHVybiBhfSwKb1g6ZnVuY3Rp
b24oYSl7aWYoYT09bnVsbClyZXR1cm4KcmV0dXJuIGEuJHRpfSwKSU06ZnVuY3Rpb24oYSxiLGMpe3Jl
dHVybiBILlk5KGFbIiRhIitILmQoYyldLEgub1goYikpfSwKWTk6ZnVuY3Rpb24oYSxiKXtpZihhPT1u
dWxsKXJldHVybiBiCmE9YS5hcHBseShudWxsLGIpCmlmKGE9PW51bGwpcmV0dXJuCmlmKEFycmF5Lmlz
QXJyYXkoYSkpcmV0dXJuIGEKaWYodHlwZW9mIGE9PSJmdW5jdGlvbiIpcmV0dXJuIGEuYXBwbHkobnVs
bCxiKQpyZXR1cm4gYn0sCklHOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gYS5hcHBseShiLEguWTkoSi5p
YShiKVsiJGEiK0guZChjKV0sSC5vWChiKSkpfSwKaXc6ZnVuY3Rpb24oYSxiLGMpe09iamVjdC5kZWZp
bmVQcm9wZXJ0eShhLGIse3ZhbHVlOmMsZW51bWVyYWJsZTpmYWxzZSx3cml0YWJsZTp0cnVlLGNvbmZp
Z3VyYWJsZTp0cnVlfSl9LAp3MzpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwPUgueSgkLk5GLiQxKGEp
KSxvPSQubndbcF0KaWYobyE9bnVsbCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsdi5kaXNwYXRjaFBy
b3BlcnR5TmFtZSx7dmFsdWU6byxlbnVtZXJhYmxlOmZhbHNlLHdyaXRhYmxlOnRydWUsY29uZmlndXJh
YmxlOnRydWV9KQpyZXR1cm4gby5pfXQ9JC52dltwXQppZih0IT1udWxsKXJldHVybiB0CnM9di5pbnRl
cmNlcHRvcnNCeVRhZ1twXQppZihzPT1udWxsKXtwPUgueSgkLlRYLiQyKGEscCkpCmlmKHAhPW51bGwp
e289JC5ud1twXQppZihvIT1udWxsKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoYSx2LmRpc3BhdGNoUHJv
cGVydHlOYW1lLHt2YWx1ZTpvLGVudW1lcmFibGU6ZmFsc2Usd3JpdGFibGU6dHJ1ZSxjb25maWd1cmFi
bGU6dHJ1ZX0pCnJldHVybiBvLml9dD0kLnZ2W3BdCmlmKHQhPW51bGwpcmV0dXJuIHQKcz12LmludGVy
Y2VwdG9yc0J5VGFnW3BdfX1pZihzPT1udWxsKXJldHVybgp0PXMucHJvdG90eXBlCnI9cFswXQppZihy
PT09IiEiKXtvPUguVmEodCkKJC5ud1twXT1vCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLHYuZGlzcGF0
Y2hQcm9wZXJ0eU5hbWUse3ZhbHVlOm8sZW51bWVyYWJsZTpmYWxzZSx3cml0YWJsZTp0cnVlLGNvbmZp
Z3VyYWJsZTp0cnVlfSkKcmV0dXJuIG8uaX1pZihyPT09In4iKXskLnZ2W3BdPXQKcmV0dXJuIHR9aWYo
cj09PSItIil7cT1ILlZhKHQpCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZ2V0UHJvdG90eXBl
T2YoYSksdi5kaXNwYXRjaFByb3BlcnR5TmFtZSx7dmFsdWU6cSxlbnVtZXJhYmxlOmZhbHNlLHdyaXRh
YmxlOnRydWUsY29uZmlndXJhYmxlOnRydWV9KQpyZXR1cm4gcS5pfWlmKHI9PT0iKyIpcmV0dXJuIEgu
TGMoYSx0KQppZihyPT09IioiKXRocm93IEguYihQLlNZKHApKQppZih2LmxlYWZUYWdzW3BdPT09dHJ1
ZSl7cT1ILlZhKHQpCk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZ2V0UHJvdG90eXBlT2YoYSks
di5kaXNwYXRjaFByb3BlcnR5TmFtZSx7dmFsdWU6cSxlbnVtZXJhYmxlOmZhbHNlLHdyaXRhYmxlOnRy
dWUsY29uZmlndXJhYmxlOnRydWV9KQpyZXR1cm4gcS5pfWVsc2UgcmV0dXJuIEguTGMoYSx0KX0sCkxj
OmZ1bmN0aW9uKGEsYil7dmFyIHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKGEpCk9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh0LHYuZGlzcGF0Y2hQcm9wZXJ0eU5hbWUse3ZhbHVlOkouUXUoYix0LG51bGwsbnVsbCks
ZW51bWVyYWJsZTpmYWxzZSx3cml0YWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTp0cnVlfSkKcmV0dXJuIGJ9
LApWYTpmdW5jdGlvbihhKXtyZXR1cm4gSi5RdShhLCExLG51bGwsISFhLiRpWGopfSwKVkY6ZnVuY3Rp
b24oYSxiLGMpe3ZhciB0PWIucHJvdG90eXBlCmlmKHYubGVhZlRhZ3NbYV09PT10cnVlKXJldHVybiBI
LlZhKHQpCmVsc2UgcmV0dXJuIEouUXUodCxjLG51bGwsbnVsbCl9LApYRDpmdW5jdGlvbigpe2lmKCEw
PT09JC5CdilyZXR1cm4KJC5Cdj0hMApILloxKCl9LApaMTpmdW5jdGlvbigpe3ZhciB0LHMscixxLHAs
byxuLG0KJC5udz1PYmplY3QuY3JlYXRlKG51bGwpCiQudnY9T2JqZWN0LmNyZWF0ZShudWxsKQpILmtP
KCkKdD12LmludGVyY2VwdG9yc0J5VGFnCnM9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXModCkKaWYo
dHlwZW9mIHdpbmRvdyE9InVuZGVmaW5lZCIpe3dpbmRvdwpyPWZ1bmN0aW9uKCl7fQpmb3IocT0wO3E8
cy5sZW5ndGg7KytxKXtwPXNbcV0Kbz0kLng3LiQxKHApCmlmKG8hPW51bGwpe249SC5WRihwLHRbcF0s
bykKaWYobiE9bnVsbCl7T2JqZWN0LmRlZmluZVByb3BlcnR5KG8sdi5kaXNwYXRjaFByb3BlcnR5TmFt
ZSx7dmFsdWU6bixlbnVtZXJhYmxlOmZhbHNlLHdyaXRhYmxlOnRydWUsY29uZmlndXJhYmxlOnRydWV9
KQpyLnByb3RvdHlwZT1vfX19fWZvcihxPTA7cTxzLmxlbmd0aDsrK3Epe3A9c1txXQppZigvXltBLVph
LXpfXS8udGVzdChwKSl7bT10W3BdCnRbIiEiK3BdPW0KdFsifiIrcF09bQp0WyItIitwXT1tCnRbIisi
K3BdPW0KdFsiKiIrcF09bX19fSwKa086ZnVuY3Rpb24oKXt2YXIgdCxzLHIscSxwLG8sbj1DLllxKCkK
bj1ILnVkKEMuS1UsSC51ZChDLmZRLEgudWQoQy5pNyxILnVkKEMuaTcsSC51ZChDLnhpLEgudWQoQy5k
ayxILnVkKEMud2IoQy5PNCksbikpKSkpKSkKaWYodHlwZW9mIGRhcnROYXRpdmVEaXNwYXRjaEhvb2tz
VHJhbnNmb3JtZXIhPSJ1bmRlZmluZWQiKXt0PWRhcnROYXRpdmVEaXNwYXRjaEhvb2tzVHJhbnNmb3Jt
ZXIKaWYodHlwZW9mIHQ9PSJmdW5jdGlvbiIpdD1bdF0KaWYodC5jb25zdHJ1Y3Rvcj09QXJyYXkpZm9y
KHM9MDtzPHQubGVuZ3RoOysrcyl7cj10W3NdCmlmKHR5cGVvZiByPT0iZnVuY3Rpb24iKW49cihuKXx8
bn19cT1uLmdldFRhZwpwPW4uZ2V0VW5rbm93blRhZwpvPW4ucHJvdG90eXBlRm9yVGFnCiQuTkY9bmV3
IEguZEMocSkKJC5UWD1uZXcgSC53TihwKQokLng3PW5ldyBILlZYKG8pfSwKdWQ6ZnVuY3Rpb24oYSxi
KXtyZXR1cm4gYShiKXx8Yn0sCnY0OmZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgdD1iPyJtIjoiIixz
PWM/IiI6ImkiLHI9ZD8idSI6IiIscT1lPyJzIjoiIixwPWY/ImciOiIiLG89ZnVuY3Rpb24oZyxoKXt0
cnl7cmV0dXJuIG5ldyBSZWdFeHAoZyxoKX1jYXRjaChuKXtyZXR1cm4gbn19KGEsdCtzK3IrcStwKQpp
ZihvIGluc3RhbmNlb2YgUmVnRXhwKXJldHVybiBvCnRocm93IEguYihQLnJyKCJJbGxlZ2FsIFJlZ0V4
cCBwYXR0ZXJuICgiK1N0cmluZyhvKSsiKSIsYSxudWxsKSl9LAptMjpmdW5jdGlvbihhLGIsYyl7dmFy
IHQKaWYodHlwZW9mIGI9PSJzdHJpbmciKXJldHVybiBhLmluZGV4T2YoYixjKT49MAplbHNlIGlmKGIg
aW5zdGFuY2VvZiBILlZSKXt0PUMueEIuRyhhLGMpCnJldHVybiBiLmIudGVzdCh0KX1lbHNle3Q9Si5G
TChiLEMueEIuRyhhLGMpKQpyZXR1cm4hdC5nbDAodCl9fSwKQTQ6ZnVuY3Rpb24oYSl7aWYoYS5pbmRl
eE9mKCIkIiwwKT49MClyZXR1cm4gYS5yZXBsYWNlKC9cJC9nLCIkJCQkIikKcmV0dXJuIGF9LAplQTpm
dW5jdGlvbihhKXtpZigvW1tcXXt9KCkqKz8uXFxeJHxdLy50ZXN0KGEpKXJldHVybiBhLnJlcGxhY2Uo
L1tbXF17fSgpKis/LlxcXiR8XS9nLCJcXCQmIikKcmV0dXJuIGF9LAp5czpmdW5jdGlvbihhLGIsYyl7
dmFyIHQ9SC5uTShhLGIsYykKcmV0dXJuIHR9LApuTTpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyLHEK
aWYoYj09PSIiKXtpZihhPT09IiIpcmV0dXJuIGMKdD1hLmxlbmd0aApmb3Iocz1jLHI9MDtyPHQ7Kyty
KXM9cythW3JdK2MKcmV0dXJuIHMuY2hhckNvZGVBdCgwKT09MD9zOnN9cT1hLmluZGV4T2YoYiwwKQpp
ZihxPDApcmV0dXJuIGEKaWYoYS5sZW5ndGg8NTAwfHxjLmluZGV4T2YoIiQiLDApPj0wKXJldHVybiBh
LnNwbGl0KGIpLmpvaW4oYykKcmV0dXJuIGEucmVwbGFjZShuZXcgUmVnRXhwKEguZUEoYiksJ2cnKSxI
LkE0KGMpKX0sClBEOmZ1bmN0aW9uIFBEKGEsYil7dGhpcy5hPWEKdGhpcy4kdGk9Yn0sCldVOmZ1bmN0
aW9uIFdVKCl7fSwKTFA6ZnVuY3Rpb24gTFAoYSxiLGMsZCl7dmFyIF89dGhpcwpfLmE9YQpfLmI9Ygpf
LmM9YwpfLiR0aT1kfSwKTEk6ZnVuY3Rpb24gTEkoYSxiLGMsZCxlKXt2YXIgXz10aGlzCl8uYT1hCl8u
Yz1iCl8uZD1jCl8uZT1kCl8uZj1lfSwKQ2o6ZnVuY3Rpb24gQ2ooYSxiLGMpe3RoaXMuYT1hCnRoaXMu
Yj1iCnRoaXMuYz1jfSwKWnI6ZnVuY3Rpb24gWnIoYSxiLGMsZCxlLGYpe3ZhciBfPXRoaXMKXy5hPWEK
Xy5iPWIKXy5jPWMKXy5kPWQKXy5lPWUKXy5mPWZ9LApXMDpmdW5jdGlvbiBXMChhLGIpe3RoaXMuYT1h
CnRoaXMuYj1ifSwKYXo6ZnVuY3Rpb24gYXooYSxiLGMpe3RoaXMuYT1hCnRoaXMuYj1iCnRoaXMuYz1j
fSwKdlY6ZnVuY3Rpb24gdlYoYSl7dGhpcy5hPWF9LApBbTpmdW5jdGlvbiBBbShhKXt0aGlzLmE9YX0s
ClhPOmZ1bmN0aW9uIFhPKGEpe3RoaXMuYT1hCnRoaXMuYj1udWxsfSwKVHA6ZnVuY3Rpb24gVHAoKXt9
LApsYzpmdW5jdGlvbiBsYygpe30sCnp4OmZ1bmN0aW9uIHp4KCl7fSwKclQ6ZnVuY3Rpb24gclQoYSxi
LGMsZCl7dmFyIF89dGhpcwpfLmE9YQpfLmI9YgpfLmM9YwpfLmQ9ZH0sCkVxOmZ1bmN0aW9uIEVxKGEp
e3RoaXMuYT1hfSwKa1k6ZnVuY3Rpb24ga1koYSl7dGhpcy5hPWF9LApONTpmdW5jdGlvbiBONShhKXt2
YXIgXz10aGlzCl8uYT0wCl8uZj1fLmU9Xy5kPV8uYz1fLmI9bnVsbApfLnI9MApfLiR0aT1hfSwKZGI6
ZnVuY3Rpb24gZGIoYSxiKXt2YXIgXz10aGlzCl8uYT1hCl8uYj1iCl8uZD1fLmM9bnVsbH0sCmk1OmZ1
bmN0aW9uIGk1KGEsYil7dGhpcy5hPWEKdGhpcy4kdGk9Yn0sCk42OmZ1bmN0aW9uIE42KGEsYixjKXt2
YXIgXz10aGlzCl8uYT1hCl8uYj1iCl8uZD1fLmM9bnVsbApfLiR0aT1jfSwKZEM6ZnVuY3Rpb24gZEMo
YSl7dGhpcy5hPWF9LAp3TjpmdW5jdGlvbiB3TihhKXt0aGlzLmE9YX0sClZYOmZ1bmN0aW9uIFZYKGEp
e3RoaXMuYT1hfSwKVlI6ZnVuY3Rpb24gVlIoYSxiKXt2YXIgXz10aGlzCl8uYT1hCl8uYj1iCl8uZD1f
LmM9bnVsbH0sCkVLOmZ1bmN0aW9uIEVLKGEpe3RoaXMuYj1hfSwKS1c6ZnVuY3Rpb24gS1coYSxiLGMp
e3RoaXMuYT1hCnRoaXMuYj1iCnRoaXMuYz1jfSwKUGI6ZnVuY3Rpb24gUGIoYSxiLGMpe3ZhciBfPXRo
aXMKXy5hPWEKXy5iPWIKXy5jPWMKXy5kPW51bGx9LAp0UTpmdW5jdGlvbiB0UShhLGIpe3RoaXMuYT1h
CnRoaXMuYz1ifSwKdW46ZnVuY3Rpb24gdW4oYSxiLGMpe3RoaXMuYT1hCnRoaXMuYj1iCnRoaXMuYz1j
fSwKU2Q6ZnVuY3Rpb24gU2QoYSxiLGMpe3ZhciBfPXRoaXMKXy5hPWEKXy5iPWIKXy5jPWMKXy5kPW51
bGx9LApYRjpmdW5jdGlvbihhKXtyZXR1cm4gYX0sCkRROmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgSW50
OEFycmF5KGEpfSwKb2Q6ZnVuY3Rpb24oYSxiLGMpe2lmKGE+Pj4wIT09YXx8YT49Yyl0aHJvdyBILmIo
SC5IWShiLGEpKX0sCnJNOmZ1bmN0aW9uKGEsYixjKXt2YXIgdAppZighKGE+Pj4wIT09YSkpdD1iPj4+
MCE9PWJ8fGE+Ynx8Yj5jCmVsc2UgdD0hMAppZih0KXRocm93IEguYihILmF1KGEsYixjKSkKcmV0dXJu
IGJ9LApFVDpmdW5jdGlvbiBFVCgpe30sCmIwOmZ1bmN0aW9uIGIwKCl7fSwKRGc6ZnVuY3Rpb24gRGco
KXt9LApQZzpmdW5jdGlvbiBQZygpe30sCnhqOmZ1bmN0aW9uIHhqKCl7fSwKZEU6ZnVuY3Rpb24gZEUo
KXt9LApaQTpmdW5jdGlvbiBaQSgpe30sCndmOmZ1bmN0aW9uIHdmKCl7fSwKUHE6ZnVuY3Rpb24gUHEo
KXt9LAplRTpmdW5jdGlvbiBlRSgpe30sClY2OmZ1bmN0aW9uIFY2KCl7fSwKUkc6ZnVuY3Rpb24gUkco
KXt9LApWUDpmdW5jdGlvbiBWUCgpe30sCldCOmZ1bmN0aW9uIFdCKCl7fSwKWkc6ZnVuY3Rpb24gWkco
KXt9LAp4WjpmdW5jdGlvbihhLGIpe3ZhciB0PWIuZApyZXR1cm4gdD09bnVsbD9iLmQ9SC5KKGEsImI4
IixbYi5RXSk6dH0sClExOmZ1bmN0aW9uKGEpe3ZhciB0PWEuegppZih0PT09Nnx8dD09PTd8fHQ9PT04
KXJldHVybiBILlExKGEuUSkKcmV0dXJuIHQ9PT0xMXx8dD09PTEyfSwKbUQ6ZnVuY3Rpb24oYSl7cmV0
dXJuIGEuZGJ9LApOMDpmdW5jdGlvbihhKXtyZXR1cm4gSC5FKHYudHlwZVVuaXZlcnNlLGEpfSwKSlM6
ZnVuY3Rpb24oYSl7dmFyIHQ9YS4kUwppZih0IT1udWxsKXtpZih0eXBlb2YgdD09Im51bWJlciIpcmV0
dXJuIEguQnAodCkKcmV0dXJuIGEuJFMoKX1yZXR1cm59LApVZTpmdW5jdGlvbihhLGIpe3ZhciB0Cmlm
KEguUTEoYikpaWYoYSBpbnN0YW5jZW9mIEguVHApe3Q9SC5KUyhhKQppZih0IT1udWxsKXJldHVybiB0
fXJldHVybiBILnpLKGEpfSwKeks6ZnVuY3Rpb24oYSl7dmFyIHQKaWYoYSBpbnN0YW5jZW9mIFAuayl7
dD1hLiR0aQpyZXR1cm4gdCE9bnVsbD90OkguVlUoYSl9aWYoQXJyYXkuaXNBcnJheShhKSlyZXR1cm4g
SC50NihhKQpyZXR1cm4gSC5WVShKLmlhKGEpKX0sCnQ2OmZ1bmN0aW9uKGEpe3ZhciB0PWEuJHRpLHM9
dS5iCmlmKHQ9PW51bGwpcmV0dXJuIHMKaWYodC5jb25zdHJ1Y3RvciE9PXMuY29uc3RydWN0b3IpcmV0
dXJuIHMKcmV0dXJuIHR9LApMaDpmdW5jdGlvbihhKXt2YXIgdD1hLiR0aQpyZXR1cm4gdCE9bnVsbD90
OkguVlUoYSl9LApWVTpmdW5jdGlvbihhKXt2YXIgdD1hLmNvbnN0cnVjdG9yLHM9dC4kY2NhY2hlCmlm
KHMhPW51bGwpcmV0dXJuIHMKcmV0dXJuIEgucjkoYSx0KX0sCnI5OmZ1bmN0aW9uKGEsYil7dmFyIHQ9
YSBpbnN0YW5jZW9mIEguVHA/YS5fX3Byb3RvX18uX19wcm90b19fLmNvbnN0cnVjdG9yOmIscz1ILmFp
KHYudHlwZVVuaXZlcnNlLHQubmFtZSkKYi4kY2NhY2hlPXMKcmV0dXJuIHN9LApCcDpmdW5jdGlvbihh
KXt2YXIgdCxzPWEscj12LnR5cGVzLHE9cltzXQppZih0eXBlb2YgcT09InN0cmluZyIpe3Q9SC5FKHYu
dHlwZVVuaXZlcnNlLHEpCnJbc109dApyZXR1cm4gdH1yZXR1cm4gcX0sCkpKOmZ1bmN0aW9uKGEpe3Zh
ciB0LHM9dGhpcyxyPXMueixxPUguWU8KaWYoSC5jYyhzLCEwKSl7cT1ILkl3CnMuYj1zLmE9SC5obn1l
bHNlIGlmKHI9PT05KXt0PXMuZGIKaWYoIktOIj09PXQpcT1ILm9rCmVsc2UgaWYoIkNQIj09PXQpcT1I
LktICmVsc2UgaWYoIkZLIj09PXQpcT1ILktICmVsc2UgaWYoInFVIj09PXQpcT1ILk1NCmVsc2UgaWYo
ImEyIj09PXQpcT1ILmwKZWxzZXtyPXMuUQppZihzLmNoLmV2ZXJ5KEguck4pKXtzLng9IiRpIityCnE9
SC50NH19fXMuYz1xCnJldHVybiBzLmMoYSl9LApZTzpmdW5jdGlvbihhKXt2YXIgdD10aGlzCnJldHVy
biBILldlKHYudHlwZVVuaXZlcnNlLEguVWUoYSx0KSxudWxsLHQsbnVsbCwhMCl9LAp0NDpmdW5jdGlv
bihhKXt2YXIgdD10aGlzLngKaWYoYSBpbnN0YW5jZW9mIFAuaylyZXR1cm4hIWFbdF0KcmV0dXJuISFK
LmlhKGEpW3RdfSwKT3o6ZnVuY3Rpb24oYSl7dmFyIHQKaWYoYT09bnVsbClyZXR1cm4gYQp0PXRoaXMK
aWYodC5jKGEpKXJldHVybiBhCnRocm93IEguYihILlE1KEguV0soYSxILlVlKGEsdCksSC5kbSh0LG51
bGwpKSkpfSwKQXY6ZnVuY3Rpb24oYSl7dmFyIHQKaWYoYT09bnVsbClyZXR1cm4gYQp0PXRoaXMKaWYo
dC5jKGEpKXJldHVybiBhCnRocm93IEguYihILlpjKEguV0soYSxILlVlKGEsdCksSC5kbSh0LG51bGwp
KSkpfSwKRGg6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQ9bnVsbAppZihILldlKHYudHlwZVVuaXZlcnNl
LGEsdCxiLHQsITApKXJldHVybiBhCnRocm93IEguYihILlpjKCJUaGUgdHlwZSBhcmd1bWVudCAnIitI
LmQoSC5kbShhLHQpKSsiJyBpcyBub3QgYSBzdWJ0eXBlIG9mIHRoZSB0eXBlIHZhcmlhYmxlIGJvdW5k
ICciK0guZChILmRtKGIsdCkpKyInIG9mIHR5cGUgdmFyaWFibGUgJyIrYysiJyBpbiAnIitILmQoZCkr
IicuIikpfSwKV0s6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0PVAucChhKSxzPUguZG0oYj09bnVsbD9ILnpL
KGEpOmIsbnVsbCkKcmV0dXJuIHQrIjogdHlwZSAnIitILmQocykrIicgaXMgbm90IGEgc3VidHlwZSBv
ZiB0eXBlICciK0guZChjKSsiJyJ9LApRNTpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IEguaHooIkNhc3RF
cnJvcjogIithKX0sClB2OmZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBILmh6KCJDYXN0RXJyb3I6ICIr
SC5XSyhhLG51bGwsYikpfSwKWmM6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBILmlNKCJUeXBlRXJyb3I6
ICIrYSl9LApxOmZ1bmN0aW9uKGEsYil7cmV0dXJuIG5ldyBILmlNKCJUeXBlRXJyb3I6ICIrSC5XSyhh
LG51bGwsYikpfSwKSXc6ZnVuY3Rpb24oYSl7cmV0dXJuITB9LApobjpmdW5jdGlvbihhKXtyZXR1cm4g
YX0sCmw6ZnVuY3Rpb24oYSl7cmV0dXJuITA9PT1hfHwhMT09PWF9LApFOTpmdW5jdGlvbihhKXtpZigh
MD09PWF8fCExPT09YSlyZXR1cm4gYQppZihhPT1udWxsKXJldHVybiBhCnRocm93IEguYihILlB2KGEs
ImJvb2wiKSl9LAp4ZDpmdW5jdGlvbihhKXtpZighMD09PWF8fCExPT09YSlyZXR1cm4gYQppZihhPT1u
dWxsKXJldHVybiBhCnRocm93IEguYihILnEoYSwiYm9vbCIpKX0sCmRqOmZ1bmN0aW9uKGEpe2lmKHR5
cGVvZiBhPT0ibnVtYmVyIilyZXR1cm4gYQppZihhPT1udWxsKXJldHVybiBhCnRocm93IEguYihILlB2
KGEsImRvdWJsZSIpKX0sCklnOmZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT0ibnVtYmVyIilyZXR1cm4g
YQppZihhPT1udWxsKXJldHVybiBhCnRocm93IEguYihILnEoYSwiZG91YmxlIikpfSwKb2s6ZnVuY3Rp
b24oYSl7cmV0dXJuIHR5cGVvZiBhPT0ibnVtYmVyIiYmTWF0aC5mbG9vcihhKT09PWF9LApTSDpmdW5j
dGlvbihhKXtpZih0eXBlb2YgYT09Im51bWJlciImJk1hdGguZmxvb3IoYSk9PT1hKXJldHVybiBhCmlm
KGE9PW51bGwpcmV0dXJuIGEKdGhyb3cgSC5iKEguUHYoYSwiaW50IikpfSwKU2M6ZnVuY3Rpb24oYSl7
aWYodHlwZW9mIGE9PSJudW1iZXIiJiZNYXRoLmZsb29yKGEpPT09YSlyZXR1cm4gYQppZihhPT1udWxs
KXJldHVybiBhCnRocm93IEguYihILnEoYSwiaW50IikpfSwKS0g6ZnVuY3Rpb24oYSl7cmV0dXJuIHR5
cGVvZiBhPT0ibnVtYmVyIn0sCnVVOmZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT0ibnVtYmVyIilyZXR1
cm4gYQppZihhPT1udWxsKXJldHVybiBhCnRocm93IEguYihILlB2KGEsIm51bSIpKX0sCkROOmZ1bmN0
aW9uKGEpe2lmKHR5cGVvZiBhPT0ibnVtYmVyIilyZXR1cm4gYQppZihhPT1udWxsKXJldHVybiBhCnRo
cm93IEguYihILnEoYSwibnVtIikpfSwKTU06ZnVuY3Rpb24oYSl7cmV0dXJuIHR5cGVvZiBhPT0ic3Ry
aW5nIn0sCmMwOmZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBhPT0ic3RyaW5nIilyZXR1cm4gYQppZihhPT1u
dWxsKXJldHVybiBhCnRocm93IEguYihILlB2KGEsIlN0cmluZyIpKX0sCnk6ZnVuY3Rpb24oYSl7aWYo
dHlwZW9mIGE9PSJzdHJpbmciKXJldHVybiBhCmlmKGE9PW51bGwpcmV0dXJuIGEKdGhyb3cgSC5iKEgu
cShhLCJTdHJpbmciKSl9LAppbzpmdW5jdGlvbihhLGIpe3ZhciB0LHMscgpmb3IodD0iIixzPSIiLHI9
MDtyPGEubGVuZ3RoOysrcixzPSIsICIpdCs9Qy54Qi5oKHMsSC5kbShhW3JdLGIpKQpyZXR1cm4gdH0s
CmJJOmZ1bmN0aW9uKGEwLGExLGEyKXt2YXIgdCxzLHIscSxwLG8sbixtLGwsayxqLGksaCxnLGYsZSxk
LGMsYixhPSIsICIKaWYoYTIhPW51bGwpe3Q9YTIubGVuZ3RoCmlmKGExPT1udWxsKXthMT1ILlZNKFtd
LHUucykKcz1udWxsfWVsc2Ugcz1hMS5sZW5ndGgKcj1hMS5sZW5ndGgKZm9yKHE9dDtxPjA7LS1xKUMu
Tm0uaShhMSwiVCIrKHIrcSkpCmZvcihwPSI8IixvPSIiLHE9MDtxPHQ7KytxLG89YSl7cCs9bwpuPWEx
Lmxlbmd0aAptPW4tMS1xCmlmKG08MClyZXR1cm4gSC5PSChhMSxtKQpwPUMueEIuaChwLGExW21dKQps
PWEyW3FdCmlmKCFILmNjKGwsITApKXArPUMueEIuaCgiIGV4dGVuZHMgIixILmRtKGwsYTEpKX1wKz0i
PiJ9ZWxzZXtwPSIiCnM9bnVsbH1uPWEwLlEKaz1hMC5jaApqPWsuYQppPWoubGVuZ3RoCmg9ay5iCmc9
aC5sZW5ndGgKZj1rLmMKZT1mLmxlbmd0aApkPUguZG0obixhMSkKZm9yKGM9IiIsYj0iIixxPTA7cTxp
OysrcSxiPWEpYys9Qy54Qi5oKGIsSC5kbShqW3FdLGExKSkKaWYoZz4wKXtjKz1iKyJbIgpmb3IoYj0i
IixxPTA7cTxnOysrcSxiPWEpYys9Qy54Qi5oKGIsSC5kbShoW3FdLGExKSkKYys9Il0ifWlmKGU+MCl7
Yys9YisieyIKZm9yKGI9IiIscT0wO3E8ZTtxKz0yLGI9YSljKz1DLnhCLmgoYixILmRtKGZbcSsxXSxh
MSkpKyIgIitmW3FdCmMrPSJ9In1pZihzIT1udWxsKWExLmxlbmd0aD1zCnJldHVybiBwKyIoIitjKyIp
ID0+ICIrSC5kKGQpfSwKZG06ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwPWEuegppZihwPT09NSly
ZXR1cm4iZXJhc2VkIgppZihwPT09MilyZXR1cm4iZHluYW1pYyIKaWYocD09PTMpcmV0dXJuInZvaWQi
CmlmKHA9PT0xKXJldHVybiJOZXZlciIKaWYocD09PTQpcmV0dXJuImFueSIKaWYocD09PTYpcmV0dXJu
IEguZChILmRtKGEuUSxiKSkrIioiCmlmKHA9PT03KXJldHVybiBILmQoSC5kbShhLlEsYikpKyI/Igpp
ZihwPT09OClyZXR1cm4iRnV0dXJlT3I8IitILmQoSC5kbShhLlEsYikpKyI+IgppZihwPT09OSl7dD1I
Lm8zKGEuUSkKcz1hLmNoCnJldHVybiBzLmxlbmd0aCE9PTA/dCsoIjwiK0guaW8ocyxiKSsiPiIpOnR9
aWYocD09PTExKXJldHVybiBILmJJKGEsYixudWxsKQppZihwPT09MTIpcmV0dXJuIEguYkkoYS5RLGIs
YS5jaCkKaWYocD09PTEzKXtyPWEuUQpxPWIubGVuZ3RoCnI9cS0xLXIKaWYocjwwfHxyPj1xKXJldHVy
biBILk9IKGIscikKcmV0dXJuIGJbcl19cmV0dXJuIj8ifSwKbzM6ZnVuY3Rpb24oYSl7dmFyIHQscz1I
LkpnKGEpCmlmKHMhPW51bGwpcmV0dXJuIHMKdD0ibWluaWZpZWQ6IithCnJldHVybiB0fSwKUW86ZnVu
Y3Rpb24oYSxiKXt2YXIgdD1hLnRSW2JdCmZvcig7dHlwZW9mIHQ9PSJzdHJpbmciOyl0PWEudFJbdF0K
cmV0dXJuIHR9LAphaTpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixxLHAsbz1hLmVULG49b1tiXQppZihu
PT1udWxsKXJldHVybiBILkUoYSxiKQplbHNlIGlmKHR5cGVvZiBuPT0ibnVtYmVyIil7dD1uCnM9SC5t
KGEsNSwiIyIpCnI9W10KZm9yKHE9MDtxPHQ7KytxKXIucHVzaChzKQpwPUguSihhLGIscikKb1tiXT1w
CnJldHVybiBwfWVsc2UgcmV0dXJuIG59LAp4YjpmdW5jdGlvbihhLGIpe3JldHVybiBILkl4KGEudFIs
Yil9LApGRjpmdW5jdGlvbihhLGIpe3JldHVybiBILkl4KGEuZVQsYil9LApFOmZ1bmN0aW9uKGEsYil7
dmFyIHQscz1hLmVDLHI9cy5nZXQoYikKaWYociE9bnVsbClyZXR1cm4gcgp0PUgueihhLG51bGwsYikK
cy5zZXQoYix0KQpyZXR1cm4gdH0sCmNFOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzLHI9Yi5jeAppZihy
PT1udWxsKXI9Yi5jeD1uZXcgTWFwKCkKdD1yLmdldChjKQppZih0IT1udWxsKXJldHVybiB0CnM9SC56
KGEsYixjKQpyLnNldChjLHMpCnJldHVybiBzfSwKdjU6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscixx
PWIuY3kKaWYocT09bnVsbClxPWIuY3k9bmV3IE1hcCgpCnQ9Yy5kYgpzPXEuZ2V0KHQpCmlmKHMhPW51
bGwpcmV0dXJuIHMKcj1ILmEoYSxiLGMuej09PTEwP2MuY2g6W2NdKQpxLnNldCh0LHIpCnJldHVybiBy
fSwKejpmdW5jdGlvbihhLGIsYyl7dmFyIHQ9SC5pKEgubyhhLGIsYykpCnJldHVybiB0fSwKV0c6ZnVu
Y3Rpb24oYSxiKXt2YXIgdD1iLmRiCmEuZUMuc2V0KHQsYikKYi5hPUguT3oKYi5iPUguQXYKYi5jPUgu
SkoKcmV0dXJuIGJ9LAptOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzPWEuZUMuZ2V0KGMpCmlmKHMhPW51
bGwpcmV0dXJuIHMKdD1uZXcgSC5KYyhudWxsLG51bGwsbnVsbCkKdC56PWIKdC5kYj1jCnJldHVybiBI
LldHKGEsdCl9LAp2OmZ1bmN0aW9uKGEsYixjLGQpe3ZhciB0LHM9YS5lQy5nZXQoZCkKaWYocyE9bnVs
bClyZXR1cm4gcwp0PW5ldyBILkpjKG51bGwsbnVsbCxudWxsKQp0Lno9Ygp0LlE9Ywp0LmRiPWQKcmV0
dXJuIEguV0coYSx0KX0sCkg6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzPSIiK2IrIl4iLHI9YS5lQy5nZXQo
cykKaWYociE9bnVsbClyZXR1cm4gcgp0PW5ldyBILkpjKG51bGwsbnVsbCxudWxsKQp0Lno9MTMKdC5R
PWIKdC5kYj1zCnJldHVybiBILldHKGEsdCl9LApVeDpmdW5jdGlvbihhKXt2YXIgdCxzLHIscT1hLmxl
bmd0aApmb3IodD0iIixzPSIiLHI9MDtyPHE7KytyLHM9IiwiKXQrPXMrYVtyXS5kYgpyZXR1cm4gdH0s
ClM0OmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxLHAsbz1hLmxlbmd0aApmb3IodD0iIixzPSIiLHI9MDty
PG87cis9MixzPSIsIil7cT1hW3JdCnA9YVtyKzFdLmRiCnQrPXMrcSsiOiIrcH1yZXR1cm4gdH0sCko6
ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscj1iCmlmKGMubGVuZ3RoIT09MClyKz0iPCIrSC5VeChjKSsi
PiIKdD1hLmVDLmdldChyKQppZih0IT1udWxsKXJldHVybiB0CnM9bmV3IEguSmMobnVsbCxudWxsLG51
bGwpCnMuej05CnMuUT1iCnMuY2g9YwppZihjLmxlbmd0aD4wKXMuZD1jWzBdCnMuZGI9cgpyZXR1cm4g
SC5XRyhhLHMpfSwKYTpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyLHEscAppZihiLno9PT0xMCl7dD1i
LlEKcz1iLmNoLmNvbmNhdChjKX1lbHNle3M9Ywp0PWJ9cj10LmRiKyI7IisoIjwiK0guVXgocykrIj4i
KQpxPWEuZUMuZ2V0KHIpCmlmKHEhPW51bGwpcmV0dXJuIHEKcD1uZXcgSC5KYyhudWxsLG51bGwsbnVs
bCkKcC56PTEwCnAuUT10CnAuY2g9cwpwLmRiPXIKcmV0dXJuIEguV0coYSxwKX0sCkM6ZnVuY3Rpb24o
YSxiLGMpe3ZhciB0LHMscixxPWIuZGIscD1jLmEsbz1wLmxlbmd0aCxuPWMuYixtPW4ubGVuZ3RoLGw9
Yy5jLGs9bC5sZW5ndGgsaj0iKCIrSC5VeChwKQppZihtPjApais9KG8+MD8iLCI6IiIpKyJbIitILlV4
KG4pKyJdIgppZihrPjApais9KG8+MD8iLCI6IiIpKyJ7IitILlM0KGwpKyJ9Igp0PXErKGorIikiKQpz
PWEuZUMuZ2V0KHQpCmlmKHMhPW51bGwpcmV0dXJuIHMKcj1uZXcgSC5KYyhudWxsLG51bGwsbnVsbCkK
ci56PTExCnIuUT1iCnIuY2g9YwpyLmRiPXQKcmV0dXJuIEguV0coYSxyKX0sCkQ6ZnVuY3Rpb24oYSxi
LGMpe3ZhciB0LHM9Yi5kYisiPCIrSC5VeChjKSsiPiIscj1hLmVDLmdldChzKQppZihyIT1udWxsKXJl
dHVybiByCnQ9bmV3IEguSmMobnVsbCxudWxsLG51bGwpCnQuej0xMgp0LlE9Ygp0LmNoPWMKdC5kYj1z
CnJldHVybiBILldHKGEsdCl9LApvOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm57dTphLGU6YixyOmMsczpb
XSxwOjB9fSwKaTpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwLG8sbixtLGwsayxqLGksaCxnPWEucixm
PWEucwpmb3IodD1nLmxlbmd0aCxzPTA7czx0Oyl7cj1nLmNoYXJDb2RlQXQocykKaWYocj49NDgmJnI8
PTU3KXM9SC5BKHMrMSxyLGcsZikKZWxzZSBpZigoKChyfDMyKT4+PjApLTk3JjY1NTM1KTwyNnx8cj09
PTk1fHxyPT09MzYpcz1ILnQoYSxzLGcsZiwhMSkKZWxzZSBpZihyPT09NDYpcz1ILnQoYSxzLGcsZiwh
MCkKZWxzZXsrK3MKc3dpdGNoKHIpe2Nhc2UgNDQ6YnJlYWsKY2FzZSA1ODpicmVhawpjYXNlIDU5OmYu
cHVzaChILksoYS51LGEuZSxmLnBvcCgpKSkKYnJlYWsKY2FzZSA5NDpmLnB1c2goSC5IKGEudSxmLnBv
cCgpKSkKYnJlYWsKY2FzZSAzNTpmLnB1c2goSC5tKGEudSw1LCIjIikpCmJyZWFrCmNhc2UgNjQ6Zi5w
dXNoKEgubShhLnUsMiwiQCIpKQpicmVhawpjYXNlIDEyNjpmLnB1c2goSC5tKGEudSwzLCJ+IikpCmJy
ZWFrCmNhc2UgNjA6Zi5wdXNoKGEucCkKYS5wPWYubGVuZ3RoCmJyZWFrCmNhc2UgNjI6cT1hLnUKcD1m
LnNwbGljZShhLnApCkgucihhLnUsYS5lLHApCmEucD1mLnBvcCgpCm89Zi5wb3AoKQppZih0eXBlb2Yg
bz09InN0cmluZyIpZi5wdXNoKEguSihxLG8scCkpCmVsc2V7bj1ILksocSxhLmUsbykKc3dpdGNoKG4u
eil7Y2FzZSAxMTpmLnB1c2goSC5EKHEsbixwKSkKYnJlYWsKZGVmYXVsdDpmLnB1c2goSC5hKHEsbixw
KSkKYnJlYWt9fWJyZWFrCmNhc2UgMzg6SC5JKGEsZikKYnJlYWsKY2FzZSA0MjptPWEudQpsPUguSyht
LGEuZSxmLnBvcCgpKQpmLnB1c2goSC52KG0sNixsLGwuZGIrIioiKSkKYnJlYWsKY2FzZSA2MzptPWEu
dQpsPUguSyhtLGEuZSxmLnBvcCgpKQpmLnB1c2goSC52KG0sNyxsLGwuZGIrIj8iKSkKYnJlYWsKY2Fz
ZSA0NzptPWEudQpsPUguSyhtLGEuZSxmLnBvcCgpKQpmLnB1c2goSC52KG0sOCxsLGwuZGIrIi8iKSkK
YnJlYWsKY2FzZSA0MDpmLnB1c2goYS5wKQphLnA9Zi5sZW5ndGgKYnJlYWsKY2FzZSA0MTpxPWEudQpr
PW5ldyBILkcoKQpqPXEuc0VBCmk9cS5zRUEKbz1mLnBvcCgpCmlmKHR5cGVvZiBvPT0ibnVtYmVyIilz
d2l0Y2gobyl7Y2FzZS0xOmo9Zi5wb3AoKQpicmVhawpjYXNlLTI6aT1mLnBvcCgpCmJyZWFrCmRlZmF1
bHQ6Zi5wdXNoKG8pCmJyZWFrfWVsc2UgZi5wdXNoKG8pCnA9Zi5zcGxpY2UoYS5wKQpILnIoYS51LGEu
ZSxwKQphLnA9Zi5wb3AoKQprLmE9cAprLmI9agprLmM9aQpmLnB1c2goSC5DKHEsSC5LKHEsYS5lLGYu
cG9wKCkpLGspKQpicmVhawpjYXNlIDkxOmYucHVzaChhLnApCmEucD1mLmxlbmd0aApicmVhawpjYXNl
IDkzOnA9Zi5zcGxpY2UoYS5wKQpILnIoYS51LGEuZSxwKQphLnA9Zi5wb3AoKQpmLnB1c2gocCkKZi5w
dXNoKC0xKQpicmVhawpjYXNlIDEyMzpmLnB1c2goYS5wKQphLnA9Zi5sZW5ndGgKYnJlYWsKY2FzZSAx
MjU6cD1mLnNwbGljZShhLnApCkguQihhLnUsYS5lLHApCmEucD1mLnBvcCgpCmYucHVzaChwKQpmLnB1
c2goLTIpCmJyZWFrCmRlZmF1bHQ6dGhyb3ciQmFkIGNoYXJhY3RlciAiK3J9fX1oPWYucG9wKCkKcmV0
dXJuIEguSyhhLnUsYS5lLGgpfSwKQTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgdCxzLHI9Yi00OApmb3Io
dD1jLmxlbmd0aDthPHQ7KythKXtzPWMuY2hhckNvZGVBdChhKQppZighKHM+PTQ4JiZzPD01NykpYnJl
YWsKcj1yKjEwKyhzLTQ4KX1kLnB1c2gocikKcmV0dXJuIGF9LAp0OmZ1bmN0aW9uKGEsYixjLGQsZSl7
dmFyIHQscyxyLHEscCxvLG49YisxCmZvcih0PWMubGVuZ3RoO248dDsrK24pe3M9Yy5jaGFyQ29kZUF0
KG4pCmlmKHM9PT00Nil7aWYoZSlicmVhawplPSEwfWVsc2V7aWYoISgoKChzfDMyKT4+PjApLTk3JjY1
NTM1KTwyNnx8cz09PTk1fHxzPT09MzYpKXI9cz49NDgmJnM8PTU3CmVsc2Ugcj0hMAppZighcilicmVh
a319cT1jLnN1YnN0cmluZyhiLG4pCmlmKGUpe3Q9YS51CnA9YS5lCmlmKHAuej09PTEwKXA9cC5RCm89
SC5Rbyh0LHAuUSlbcV0KaWYobz09bnVsbClILnZoKCdObyAiJytxKyciIGluICInK0gubUQocCkrJyIn
KQpkLnB1c2goSC5jRSh0LHAsbykpfWVsc2UgZC5wdXNoKHEpCnJldHVybiBufSwKSTpmdW5jdGlvbihh
LGIpe3ZhciB0PWIucG9wKCkKaWYoMD09PXQpe2IucHVzaChILm0oYS51LDEsIjAmIikpCnJldHVybn1p
ZigxPT09dCl7Yi5wdXNoKEgubShhLnUsNCwiMSYiKSkKcmV0dXJufXRocm93IEguYihQLmhWKCJVbmV4
cGVjdGVkIGV4dGVuZGVkIG9wZXJhdGlvbiAiK0guZCh0KSkpfSwKSzpmdW5jdGlvbihhLGIsYyl7aWYo
dHlwZW9mIGM9PSJzdHJpbmciKXJldHVybiBILkooYSxjLGEuc0VBKQplbHNlIGlmKHR5cGVvZiBjPT0i
bnVtYmVyIilyZXR1cm4gSC5UVihhLGIsYykKZWxzZSByZXR1cm4gY30sCnI6ZnVuY3Rpb24oYSxiLGMp
e3ZhciB0LHM9Yy5sZW5ndGgKZm9yKHQ9MDt0PHM7Kyt0KWNbdF09SC5LKGEsYixjW3RdKX0sCkI6ZnVu
Y3Rpb24oYSxiLGMpe3ZhciB0LHM9Yy5sZW5ndGgKZm9yKHQ9MTt0PHM7dCs9MiljW3RdPUguSyhhLGIs
Y1t0XSl9LApUVjpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyPWIuegppZihyPT09MTApe2lmKGM9PT0w
KXJldHVybiBiLlEKdD1iLmNoCnM9dC5sZW5ndGgKaWYoYzw9cylyZXR1cm4gdFtjLTFdCmMtPXMKYj1i
LlEKcj1iLnp9ZWxzZSBpZihjPT09MClyZXR1cm4gYgppZihyIT09OSl0aHJvdyBILmIoUC5oVigiSW5k
ZXhlZCBiYXNlIG11c3QgYmUgYW4gaW50ZXJmYWNlIHR5cGUiKSkKdD1iLmNoCmlmKGM8PXQubGVuZ3Ro
KXJldHVybiB0W2MtMV0KdGhyb3cgSC5iKFAuaFYoIkJhZCBpbmRleCAiK2MrIiBmb3IgIitiLncoMCkp
KX0sCldlOmZ1bmN0aW9uKGEsYixjLGQsZSxmKXt2YXIgdCxzLHIscSxwLG8KaWYoYj09PWQpcmV0dXJu
ITAKaWYoSC5jYyhkLCEwKSlyZXR1cm4hMAp0PWIuegppZih0PT09NClyZXR1cm4hMAppZihILmNjKGIs
ITApKXJldHVybiExCmlmKGI9PT11LlApcmV0dXJuITAKcz10PT09MTMKaWYocylpZihILldlKGEsY1ti
LlFdLGMsZCxlLCEwKSlyZXR1cm4hMApyPWQuegppZih0PT09NilyZXR1cm4gSC5XZShhLGIuUSxjLGQs
ZSwhMCkKaWYocj09PTYpe3E9ZC5RCnJldHVybiBILldlKGEsYixjLHEsZSwhMCl9aWYodD09PTgpe2lm
KCFILldlKGEsYi5RLGMsZCxlLCEwKSlyZXR1cm4hMQpyZXR1cm4gSC5XZShhLEgueFooYSxiKSxjLGQs
ZSwhMCl9aWYodD09PTcpe3E9SC5XZShhLGIuUSxjLGQsZSwhMCkKcmV0dXJuIHF9aWYocj09PTgpe2lm
KEguV2UoYSxiLGMsZC5RLGUsITApKXJldHVybiEwCnJldHVybiBILldlKGEsYixjLEgueFooYSxkKSxl
LCEwKX1pZihyPT09Nyl7cT1ILldlKGEsYixjLGQuUSxlLCEwKQpyZXR1cm4gcX1pZihzKXJldHVybiEx
CnE9dCE9PTExCmlmKCghcXx8dD09PTEyKSYmZD09PXUuWilyZXR1cm4hMAppZihyPT09MTIpe2lmKGI9
PT11LmcpcmV0dXJuITAKaWYodCE9PTEyKXJldHVybiExCnA9Yi5jaApvPWQuY2gKaWYoIUguenUocCxv
LCEwKSlyZXR1cm4hMQpjPWM9PW51bGw/cDpwLmNvbmNhdChjKQplPWU9PW51bGw/bzpvLmNvbmNhdChl
KQpyZXR1cm4gSC5iTyhhLGIuUSxjLGQuUSxlLCEwKX1pZihyPT09MTEpe2lmKGI9PT11LmcpcmV0dXJu
ITAKaWYocSlyZXR1cm4hMQpyZXR1cm4gSC5iTyhhLGIsYyxkLGUsITApfWlmKHQ9PT05KXtpZihyIT09
OSlyZXR1cm4hMQpyZXR1cm4gSC5wRyhhLGIsYyxkLGUsITApfXJldHVybiExfSwKYk86ZnVuY3Rpb24o
YTAsYTEsYTIsYTMsYTQsYTUpe3ZhciB0LHMscixxLHAsbyxuLG0sbCxrLGosaSxoLGcsZixlLGQsYyxi
LGEKaWYoIUguV2UoYTAsYTEuUSxhMixhMy5RLGE0LCEwKSlyZXR1cm4hMQp0PWExLmNoCnM9YTMuY2gK
cj10LmEKcT1zLmEKcD1yLmxlbmd0aApvPXEubGVuZ3RoCmlmKHA+bylyZXR1cm4hMQpuPW8tcAptPXQu
YgpsPXMuYgprPW0ubGVuZ3RoCmo9bC5sZW5ndGgKaWYocCtrPG8railyZXR1cm4hMQpmb3IoaT0wO2k8
cDsrK2kpe2g9cltpXQppZighSC5XZShhMCxxW2ldLGE0LGgsYTIsITApKXJldHVybiExfWZvcihpPTA7
aTxuOysraSl7aD1tW2ldCmlmKCFILldlKGEwLHFbcCtpXSxhNCxoLGEyLCEwKSlyZXR1cm4hMX1mb3Io
aT0wO2k8ajsrK2kpe2g9bVtuK2ldCmlmKCFILldlKGEwLGxbaV0sYTQsaCxhMiwhMCkpcmV0dXJuITF9
Zz10LmMKZj1zLmMKZT1nLmxlbmd0aApkPWYubGVuZ3RoCmZvcihpPTAsYz0wO2M8ZDtjKz0yKXtiPWZb
Y10KZG97aWYoaT49ZSlyZXR1cm4hMQphPWdbaV0KaSs9Mn13aGlsZShhPGIpCmlmKGI8YSlyZXR1cm4h
MQpoPWdbaS0xXQppZighSC5XZShhMCxmW2MrMV0sYTQsaCxhMiwhMCkpcmV0dXJuITF9cmV0dXJuITB9
LApwRzpmdW5jdGlvbihhLGIsYyxkLGUsZil7dmFyIHQscyxyLHEscCxvLG4sbSxsPWIuUSxrPWQuUQpp
ZihsPT09ayl7dD1iLmNoCnM9ZC5jaApyPXQubGVuZ3RoCmZvcihxPTA7cTxyOysrcSl7cD10W3FdCm89
c1txXQppZighSC5XZShhLHAsYyxvLGUsITApKXJldHVybiExfXJldHVybiEwfW49SC5RbyhhLGwpCmlm
KG49PW51bGwpcmV0dXJuITEKbT1uW2tdCmlmKG09PW51bGwpcmV0dXJuITEKcj1tLmxlbmd0aApzPWQu
Y2gKZm9yKHE9MDtxPHI7KytxKWlmKCFILldlKGEsSC5jRShhLGIsbVtxXSksYyxzW3FdLGUsITApKXJl
dHVybiExCnJldHVybiEwfSwKcmE6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscgppZihhPT09YilyZXR1
cm4hMAppZihILmNjKGEsITApKXJldHVybiBILmNjKGIsITApCnQ9YS56CmlmKHQhPT1iLnopcmV0dXJu
ITEKc3dpdGNoKHQpe2Nhc2UgNjpjYXNlIDc6Y2FzZSA4OnJldHVybiBILnJhKGEuUSxiLlEsITApCmNh
c2UgOTppZihhLlEhPT1iLlEpcmV0dXJuITEKcmV0dXJuIEguenUoYS5jaCxiLmNoLCEwKQpjYXNlIDEw
OnJldHVybiBILnJhKGEuUSxiLlEsITApJiZILnp1KGEuY2gsYi5jaCwhMCkKY2FzZSAxMTppZihILnJh
KGEuUSxiLlEsITApKXtzPWEuY2gKcj1iLmNoCnM9SC56dShzLmEsci5hLCEwKSYmSC56dShzLmIsci5i
LCEwKSYmSC5YcyhzLmMsci5jLCEwKX1lbHNlIHM9ITEKcmV0dXJuIHMKY2FzZSAxMjpyZXR1cm4gSC5y
YShhLlEsYi5RLCEwKSYmSC56dShhLmNoLGIuY2gsITApCmRlZmF1bHQ6cmV0dXJuITF9fSwKenU6ZnVu
Y3Rpb24oYSxiLGMpe3ZhciB0LHM9YS5sZW5ndGgKaWYocyE9PWIubGVuZ3RoKXJldHVybiExCmZvcih0
PTA7dDxzOysrdClpZighSC5yYShhW3RdLGJbdF0sITApKXJldHVybiExCnJldHVybiEwfSwKWHM6ZnVu
Y3Rpb24oYSxiLGMpe3ZhciB0LHMscj1hLmxlbmd0aAppZihyIT09Yi5sZW5ndGgpcmV0dXJuITEKZm9y
KHQ9MDt0PHI7dCs9Mil7aWYoYVt0XSE9PWJbdF0pcmV0dXJuITEKcz10KzEKaWYoIUgucmEoYVtzXSxi
W3NdLCEwKSlyZXR1cm4hMX1yZXR1cm4hMH0sCnJOOmZ1bmN0aW9uKGEpe3JldHVybiBILmNjKGEsITAp
fSwKY2M6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzCmlmKGE9PT11LkspcmV0dXJuITAKdD1hLnoKaWYodCE9
PTIpaWYodCE9PTMpaWYodCE9PTQpaWYodCE9PTUpcz10PT09OCYmSC5jYyhhLlEsITApCmVsc2Ugcz0h
MAplbHNlIHM9ITAKZWxzZSBzPSEwCmVsc2Ugcz0hMApyZXR1cm4gc30sCkl4OmZ1bmN0aW9uKGEsYil7
dmFyIHQscyxyPU9iamVjdC5rZXlzKGIpLHE9ci5sZW5ndGgKZm9yKHQ9MDt0PHE7Kyt0KXtzPXJbdF0K
YVtzXT1iW3NdfX0sCkpjOmZ1bmN0aW9uIEpjKGEsYixjKXt2YXIgXz10aGlzCl8uYT1hCl8uYj1iCl8u
Yz1jCl8ueT1fLng9Xy5kPW51bGwKXy56PTAKXy5kYj1fLmN5PV8uY3g9Xy5jaD1fLlE9bnVsbH0sCkc6
ZnVuY3Rpb24gRygpe3RoaXMuYz10aGlzLmI9dGhpcy5hPW51bGx9LAp1OTpmdW5jdGlvbiB1OSgpe30s
Cmh6OmZ1bmN0aW9uIGh6KGEpe3RoaXMuYT1hfSwKaU06ZnVuY3Rpb24gaU0oYSl7dGhpcy5hPWF9LApS
OTpmdW5jdGlvbihhKXtyZXR1cm4gdS5kLmMoYSl8fHUuQi5jKGEpfHx1LmR6LmMoYSl8fHUuSS5jKGEp
fHx1LkEuYyhhKXx8dS5nNC5jKGEpfHx1LmcyLmMoYSl9LApKZzpmdW5jdGlvbihhKXtyZXR1cm4gdi5t
YW5nbGVkR2xvYmFsTmFtZXNbYV19fSxKPXsKUXU6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJue2k6YSxw
OmIsZTpjLHg6ZH19LAprczpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwPWFbdi5kaXNwYXRjaFByb3Bl
cnR5TmFtZV0KaWYocD09bnVsbClpZigkLkJ2PT1udWxsKXtILlhEKCkKcD1hW3YuZGlzcGF0Y2hQcm9w
ZXJ0eU5hbWVdfWlmKHAhPW51bGwpe3Q9cC5wCmlmKCExPT09dClyZXR1cm4gcC5pCmlmKCEwPT09dCly
ZXR1cm4gYQpzPU9iamVjdC5nZXRQcm90b3R5cGVPZihhKQppZih0PT09cylyZXR1cm4gcC5pCmlmKHAu
ZT09PXMpdGhyb3cgSC5iKFAuU1koIlJldHVybiBpbnRlcmNlcHRvciBmb3IgIitILmQodChhLHApKSkp
fXI9YS5jb25zdHJ1Y3RvcgpxPXI9PW51bGw/bnVsbDpyWyQuVU4oKV0KaWYocSE9bnVsbClyZXR1cm4g
cQpxPUgudzMoYSkKaWYocSE9bnVsbClyZXR1cm4gcQppZih0eXBlb2YgYT09ImZ1bmN0aW9uIilyZXR1
cm4gQy5ERwp0PU9iamVjdC5nZXRQcm90b3R5cGVPZihhKQppZih0PT1udWxsKXJldHVybiBDLlpRCmlm
KHQ9PT1PYmplY3QucHJvdG90eXBlKXJldHVybiBDLlpRCmlmKHR5cGVvZiByPT0iZnVuY3Rpb24iKXtP
YmplY3QuZGVmaW5lUHJvcGVydHkociwkLlVOKCkse3ZhbHVlOkMudkIsZW51bWVyYWJsZTpmYWxzZSx3
cml0YWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTp0cnVlfSkKcmV0dXJuIEMudkJ9cmV0dXJuIEMudkJ9LApR
aTpmdW5jdGlvbihhLGIpe2lmKGE8MHx8YT40Mjk0OTY3Mjk1KXRocm93IEguYihQLlRFKGEsMCw0Mjk0
OTY3Mjk1LCJsZW5ndGgiLG51bGwpKQpyZXR1cm4gSi5weShuZXcgQXJyYXkoYSksYil9LApweTpmdW5j
dGlvbihhLGIpe3JldHVybiBKLkVwKEguVk0oYSxiLkMoImpkPDA+IikpKX0sCkVwOmZ1bmN0aW9uKGEp
e2EuZml4ZWQkbGVuZ3RoPUFycmF5CnJldHVybiBhfSwKekM6ZnVuY3Rpb24oYSl7YS5maXhlZCRsZW5n
dGg9QXJyYXkKYS5pbW11dGFibGUkbGlzdD1BcnJheQpyZXR1cm4gYX0sCkdhOmZ1bmN0aW9uKGEpe2lm
KGE8MjU2KXN3aXRjaChhKXtjYXNlIDk6Y2FzZSAxMDpjYXNlIDExOmNhc2UgMTI6Y2FzZSAxMzpjYXNl
IDMyOmNhc2UgMTMzOmNhc2UgMTYwOnJldHVybiEwCmRlZmF1bHQ6cmV0dXJuITF9c3dpdGNoKGEpe2Nh
c2UgNTc2MDpjYXNlIDgxOTI6Y2FzZSA4MTkzOmNhc2UgODE5NDpjYXNlIDgxOTU6Y2FzZSA4MTk2OmNh
c2UgODE5NzpjYXNlIDgxOTg6Y2FzZSA4MTk5OmNhc2UgODIwMDpjYXNlIDgyMDE6Y2FzZSA4MjAyOmNh
c2UgODIzMjpjYXNlIDgyMzM6Y2FzZSA4MjM5OmNhc2UgODI4NzpjYXNlIDEyMjg4OmNhc2UgNjUyNzk6
cmV0dXJuITAKZGVmYXVsdDpyZXR1cm4hMX19LAptbTpmdW5jdGlvbihhLGIpe3ZhciB0LHMKZm9yKHQ9
YS5sZW5ndGg7Yjx0Oyl7cz1DLnhCLlcoYSxiKQppZihzIT09MzImJnMhPT0xMyYmIUouR2EocykpYnJl
YWs7KytifXJldHVybiBifSwKYzE6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzCmZvcig7Yj4wO2I9dCl7dD1i
LTEKcz1DLnhCLm0oYSx0KQppZihzIT09MzImJnMhPT0xMyYmIUouR2EocykpYnJlYWt9cmV0dXJuIGJ9
LApSRTpmdW5jdGlvbihhKXtpZihhPT1udWxsKXJldHVybiBhCmlmKHR5cGVvZiBhIT0ib2JqZWN0Iil7
aWYodHlwZW9mIGE9PSJmdW5jdGlvbiIpcmV0dXJuIEouYzUucHJvdG90eXBlCnJldHVybiBhfWlmKGEg
aW5zdGFuY2VvZiBQLmspcmV0dXJuIGEKcmV0dXJuIEoua3MoYSl9LApUSjpmdW5jdGlvbihhKXtpZih0
eXBlb2YgYT09Im51bWJlciIpcmV0dXJuIEoucUkucHJvdG90eXBlCmlmKHR5cGVvZiBhPT0ic3RyaW5n
IilyZXR1cm4gSi5Eci5wcm90b3R5cGUKaWYoYT09bnVsbClyZXR1cm4gYQppZihhLmNvbnN0cnVjdG9y
PT1BcnJheSlyZXR1cm4gSi5qZC5wcm90b3R5cGUKaWYodHlwZW9mIGEhPSJvYmplY3QiKXtpZih0eXBl
b2YgYT09ImZ1bmN0aW9uIilyZXR1cm4gSi5jNS5wcm90b3R5cGUKcmV0dXJuIGF9aWYoYSBpbnN0YW5j
ZW9mIFAuaylyZXR1cm4gYQpyZXR1cm4gSi5rcyhhKX0sClU2OmZ1bmN0aW9uKGEpe2lmKHR5cGVvZiBh
PT0ic3RyaW5nIilyZXR1cm4gSi5Eci5wcm90b3R5cGUKaWYoYT09bnVsbClyZXR1cm4gYQppZihhLmNv
bnN0cnVjdG9yPT1BcnJheSlyZXR1cm4gSi5qZC5wcm90b3R5cGUKaWYodHlwZW9mIGEhPSJvYmplY3Qi
KXtpZih0eXBlb2YgYT09ImZ1bmN0aW9uIilyZXR1cm4gSi5jNS5wcm90b3R5cGUKcmV0dXJuIGF9aWYo
YSBpbnN0YW5jZW9mIFAuaylyZXR1cm4gYQpyZXR1cm4gSi5rcyhhKX0sCmlhOmZ1bmN0aW9uKGEpe2lm
KHR5cGVvZiBhPT0ibnVtYmVyIil7aWYoTWF0aC5mbG9vcihhKT09YSlyZXR1cm4gSi51ci5wcm90b3R5
cGUKcmV0dXJuIEouVkEucHJvdG90eXBlfWlmKHR5cGVvZiBhPT0ic3RyaW5nIilyZXR1cm4gSi5Eci5w
cm90b3R5cGUKaWYoYT09bnVsbClyZXR1cm4gSi5ZRS5wcm90b3R5cGUKaWYodHlwZW9mIGE9PSJib29s
ZWFuIilyZXR1cm4gSi55RS5wcm90b3R5cGUKaWYoYS5jb25zdHJ1Y3Rvcj09QXJyYXkpcmV0dXJuIEou
amQucHJvdG90eXBlCmlmKHR5cGVvZiBhIT0ib2JqZWN0Iil7aWYodHlwZW9mIGE9PSJmdW5jdGlvbiIp
cmV0dXJuIEouYzUucHJvdG90eXBlCnJldHVybiBhfWlmKGEgaW5zdGFuY2VvZiBQLmspcmV0dXJuIGEK
cmV0dXJuIEoua3MoYSl9LApyWTpmdW5jdGlvbihhKXtpZih0eXBlb2YgYT09InN0cmluZyIpcmV0dXJu
IEouRHIucHJvdG90eXBlCmlmKGE9PW51bGwpcmV0dXJuIGEKaWYoIShhIGluc3RhbmNlb2YgUC5rKSly
ZXR1cm4gSi5rZC5wcm90b3R5cGUKcmV0dXJuIGF9LAp3MTpmdW5jdGlvbihhKXtpZihhPT1udWxsKXJl
dHVybiBhCmlmKGEuY29uc3RydWN0b3I9PUFycmF5KXJldHVybiBKLmpkLnByb3RvdHlwZQppZih0eXBl
b2YgYSE9Im9iamVjdCIpe2lmKHR5cGVvZiBhPT0iZnVuY3Rpb24iKXJldHVybiBKLmM1LnByb3RvdHlw
ZQpyZXR1cm4gYX1pZihhIGluc3RhbmNlb2YgUC5rKXJldHVybiBhCnJldHVybiBKLmtzKGEpfSwKQU06
ZnVuY3Rpb24oYSxiKXtyZXR1cm4gSi53MShhKS5FKGEsYil9LApDTTpmdW5jdGlvbihhLGIsYyxkKXty
ZXR1cm4gSi5SRShhKS5kdShhLGIsYyxkKX0sCkZMOmZ1bmN0aW9uKGEsYil7cmV0dXJuIEouclkoYSku
ZGQoYSxiKX0sCkhtOmZ1bmN0aW9uKGEpe3JldHVybiBKLlU2KGEpLmdBKGEpfSwKSVQ6ZnVuY3Rpb24o
YSl7cmV0dXJuIEoudzEoYSkuZ2t6KGEpfSwKSnk6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gSi5pYShhKS5l
NyhhLGIpfSwKS1Y6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gSi5yWShhKS5HKGEsYil9LApMdDpmdW5jdGlv
bihhKXtyZXR1cm4gSi5SRShhKS53ZyhhKX0sCk0xOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gSi53MShh
KS5FMihhLGIsYyl9LApRejpmdW5jdGlvbihhLGIpe3JldHVybiBKLnJZKGEpLlcoYSxiKX0sClJNOmZ1
bmN0aW9uKGEsYil7aWYoYT09bnVsbClyZXR1cm4gYj09bnVsbAppZih0eXBlb2YgYSE9Im9iamVjdCIp
cmV0dXJuIGIhPW51bGwmJmE9PT1iCnJldHVybiBKLmlhKGEpLkROKGEsYil9LApUMDpmdW5jdGlvbihh
KXtyZXR1cm4gSi5yWShhKS5iUyhhKX0sCmE2OmZ1bmN0aW9uKGEsYil7cmV0dXJuIEouclkoYSkubShh
LGIpfSwKYlQ6ZnVuY3Rpb24oYSl7cmV0dXJuIEouUkUoYSkuRDQoYSl9LApiYjpmdW5jdGlvbihhLGIp
e2lmKHR5cGVvZiBhPT0ibnVtYmVyIiYmdHlwZW9mIGI9PSJudW1iZXIiKXJldHVybiBhK2IKcmV0dXJu
IEouVEooYSkuaChhLGIpfSwKY0g6ZnVuY3Rpb24oYSl7cmV0dXJuIEouclkoYSkuaGMoYSl9LApkUjpm
dW5jdGlvbihhKXtyZXR1cm4gSi5SRShhKS5nRChhKX0sCmRaOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVy
biBKLlJFKGEpLk9uKGEsYixjLGQpfSwKZGg6ZnVuY3Rpb24oYSl7cmV0dXJuIEouUkUoYSkudG4oYSl9
LApoZjpmdW5jdGlvbihhKXtyZXR1cm4gSi5pYShhKS5naU8oYSl9LAppZzpmdW5jdGlvbihhKXtyZXR1
cm4gSi5SRShhKS5nUWcoYSl9LApqOmZ1bmN0aW9uKGEpe3JldHVybiBKLmlhKGEpLncoYSl9LApsNTpm
dW5jdGlvbihhLGIpe3JldHVybiBKLlJFKGEpLnNoZihhLGIpfSwKbGQ6ZnVuY3Rpb24oYSxiLGMpe3Jl
dHVybiBKLnJZKGEpLk5qKGEsYixjKX0sCnEwOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gSi5yWShhKS5R
aShhLGIsYyl9LApxRjpmdW5jdGlvbihhKXtyZXR1cm4gSi5SRShhKS5nVmwoYSl9LAp0SDpmdW5jdGlv
bihhLGIsYyl7cmV0dXJuIEouUkUoYSkucGsoYSxiLGMpfSwKdzI6ZnVuY3Rpb24oYSxiKXtpZih0eXBl
b2YgYj09PSJudW1iZXIiKWlmKGEuY29uc3RydWN0b3I9PUFycmF5fHx0eXBlb2YgYT09InN0cmluZyJ8
fEgud1YoYSxhW3YuZGlzcGF0Y2hQcm9wZXJ0eU5hbWVdKSlpZihiPj4+MD09PWImJmI8YS5sZW5ndGgp
cmV0dXJuIGFbYl0KcmV0dXJuIEouVTYoYSkucShhLGIpfSwKeVE6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0
dXJuIEouclkoYSkuaTcoYSxiLGMsZCl9LAp6bDpmdW5jdGlvbihhLGIpe3JldHVybiBKLlU2KGEpLnRn
KGEsYil9LAp2QjpmdW5jdGlvbiB2Qigpe30sCnlFOmZ1bmN0aW9uIHlFKCl7fSwKWUU6ZnVuY3Rpb24g
WUUoKXt9LApNRjpmdW5jdGlvbiBNRigpe30sCmlDOmZ1bmN0aW9uIGlDKCl7fSwKa2Q6ZnVuY3Rpb24g
a2QoKXt9LApjNTpmdW5jdGlvbiBjNSgpe30sCmpkOmZ1bmN0aW9uIGpkKGEpe3RoaXMuJHRpPWF9LApQ
bzpmdW5jdGlvbiBQbyhhKXt0aGlzLiR0aT1hfSwKbTE6ZnVuY3Rpb24gbTEoYSxiLGMpe3ZhciBfPXRo
aXMKXy5hPWEKXy5iPWIKXy5jPTAKXy5kPW51bGwKXy4kdGk9Y30sCnFJOmZ1bmN0aW9uIHFJKCl7fSwK
dXI6ZnVuY3Rpb24gdXIoKXt9LApWQTpmdW5jdGlvbiBWQSgpe30sCkRyOmZ1bmN0aW9uIERyKCl7fX0s
UD17Ck9qOmZ1bmN0aW9uKCl7dmFyIHQscyxyPXt9CmlmKHNlbGYuc2NoZWR1bGVJbW1lZGlhdGUhPW51
bGwpcmV0dXJuIFAuRVgoKQppZihzZWxmLk11dGF0aW9uT2JzZXJ2ZXIhPW51bGwmJnNlbGYuZG9jdW1l
bnQhPW51bGwpe3Q9c2VsZi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKQpzPXNlbGYuZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3BhbiIpCnIuYT1udWxsCm5ldyBzZWxmLk11dGF0aW9uT2JzZXJ2ZXIo
SC50UihuZXcgUC50aChyKSwxKSkub2JzZXJ2ZSh0LHtjaGlsZExpc3Q6dHJ1ZX0pCnJldHVybiBuZXcg
UC5oYShyLHQscyl9ZWxzZSBpZihzZWxmLnNldEltbWVkaWF0ZSE9bnVsbClyZXR1cm4gUC55dCgpCnJl
dHVybiBQLnFXKCl9LApaVjpmdW5jdGlvbihhKXtzZWxmLnNjaGVkdWxlSW1tZWRpYXRlKEgudFIobmV3
IFAuVnModS5NLmIoYSkpLDApKX0sCm9BOmZ1bmN0aW9uKGEpe3NlbGYuc2V0SW1tZWRpYXRlKEgudFIo
bmV3IFAuRnQodS5NLmIoYSkpLDApKX0sCkJ6OmZ1bmN0aW9uKGEpe3UuTS5iKGEpClAuUU4oMCxhKX0s
ClFOOmZ1bmN0aW9uKGEsYil7dmFyIHQ9bmV3IFAuVzMoKQp0LkNZKGEsYikKcmV0dXJuIHR9LAprMzpm
dW5jdGlvbihhLGIpe3ZhciB0LHMscgpiLmE9MQp0cnl7YS5TcShuZXcgUC5wVihiKSxuZXcgUC5VNyhi
KSx1LlApfWNhdGNoKHIpe3Q9SC5SdShyKQpzPUgudHMocikKUC5yYihuZXcgUC52cihiLHQscykpfX0s
CkE5OmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyCmZvcih0PXUuXztzPWEuYSxzPT09MjspYT10LmIoYS5j
KQppZihzPj00KXtyPWIuYWgoKQpiLmE9YS5hCmIuYz1hLmMKUC5IWihiLHIpfWVsc2V7cj11LnguYihi
LmMpCmIuYT0yCmIuYz1hCmEualEocil9fSwKSFo6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwLG8s
bixtLGwsayxqLGksaCxnLGYsZT1udWxsLGQ9e30sYz1kLmE9YQpmb3IodD11Lm4scz11Lngscj11LmM7
ITA7KXtxPXt9CnA9Yy5hPT09OAppZihiPT1udWxsKXtpZihwKXtvPXQuYihjLmMpClAuTDIoZSxlLGMu
YixvLmEsby5iKX1yZXR1cm59Zm9yKDtuPWIuYSxuIT1udWxsO2I9bil7Yi5hPW51bGwKUC5IWihkLmEs
Yil9Yz1kLmEKbT1jLmMKcS5hPXAKcS5iPW0KbD0hcAppZihsKXtrPWIuYwprPShrJjEpIT09MHx8KGsm
MTUpPT09OH1lbHNlIGs9ITAKaWYoayl7az1iLmIKaj1rLmIKaWYocCl7aT1jLmI9PT1qCmk9IShpfHxp
KX1lbHNlIGk9ITEKaWYoaSl7dC5iKG0pClAuTDIoZSxlLGMuYixtLmEsbS5iKQpyZXR1cm59aD0kLlgz
CmlmKGghPT1qKSQuWDM9agplbHNlIGg9ZQpjPWIuYwppZigoYyYxNSk9PT04KW5ldyBQLlJUKGQscSxi
LHApLiQwKCkKZWxzZSBpZihsKXtpZigoYyYxKSE9PTApbmV3IFAucnEocSxiLG0pLiQwKCl9ZWxzZSBp
ZigoYyYyKSE9PTApbmV3IFAuUlcoZCxxLGIpLiQwKCkKaWYoaCE9bnVsbCkkLlgzPWgKYz1xLmIKaWYo
ci5jKGMpKXtpZihjLmE+PTQpe2c9cy5iKGsuYykKay5jPW51bGwKYj1rLk44KGcpCmsuYT1jLmEKay5j
PWMuYwpkLmE9Ywpjb250aW51ZX1lbHNlIFAuQTkoYyxrKQpyZXR1cm59fWY9Yi5iCmc9cy5iKGYuYykK
Zi5jPW51bGwKYj1mLk44KGcpCmM9cS5hCmw9cS5iCmlmKCFjKXtmLiR0aS5kLmIobCkKZi5hPTQKZi5j
PWx9ZWxzZXt0LmIobCkKZi5hPTgKZi5jPWx9ZC5hPWYKYz1mfX0sClZIOmZ1bmN0aW9uKGEsYil7dmFy
IHQ9dS53CmlmKHQuYyhhKSlyZXR1cm4gdC5iKGEpCnQ9dS55CmlmKHQuYyhhKSlyZXR1cm4gdC5iKGEp
CnRocm93IEguYihQLkwzKGEsIm9uRXJyb3IiLCJFcnJvciBoYW5kbGVyIG11c3QgYWNjZXB0IG9uZSBP
YmplY3Qgb3Igb25lIE9iamVjdCBhbmQgYSBTdGFja1RyYWNlIGFzIGFyZ3VtZW50cywgYW5kIHJldHVy
biBhIGEgdmFsaWQgcmVzdWx0IikpfSwKcHU6ZnVuY3Rpb24oKXt2YXIgdCxzCmZvcig7dD0kLlM2LHQh
PW51bGw7KXskLm1nPW51bGwKcz10LmIKJC5TNj1zCmlmKHM9PW51bGwpJC5rOD1udWxsCnQuYS4kMCgp
fX0sCmVOOmZ1bmN0aW9uKCl7JC5VRD0hMAp0cnl7UC5wdSgpfWZpbmFsbHl7JC5tZz1udWxsCiQuVUQ9
ITEKaWYoJC5TNiE9bnVsbCkkLnV0KCkuJDEoUC5VSSgpKX19LAplVzpmdW5jdGlvbihhKXt2YXIgdD1u
ZXcgUC5PTShhKQppZigkLlM2PT1udWxsKXskLlM2PSQuazg9dAppZighJC5VRCkkLnV0KCkuJDEoUC5V
SSgpKX1lbHNlICQuazg9JC5rOC5iPXR9LApyUjpmdW5jdGlvbihhKXt2YXIgdCxzLHI9JC5TNgppZihy
PT1udWxsKXtQLmVXKGEpCiQubWc9JC5rOApyZXR1cm59dD1uZXcgUC5PTShhKQpzPSQubWcKaWYocz09
bnVsbCl7dC5iPXIKJC5TNj0kLm1nPXR9ZWxzZXt0LmI9cy5iCiQubWc9cy5iPXQKaWYodC5iPT1udWxs
KSQuazg9dH19LApyYjpmdW5jdGlvbihhKXt2YXIgdD1udWxsLHM9JC5YMwppZihDLk5VPT09cyl7UC5U
ayh0LHQsQy5OVSxhKQpyZXR1cm59UC5Uayh0LHQscyx1Lk0uYihzLkdZKGEpKSl9LApMMjpmdW5jdGlv
bihhLGIsYyxkLGUpe3ZhciB0PXt9CnQuYT1kClAuclIobmV3IFAucEsodCxlKSl9LApUODpmdW5jdGlv
bihhLGIsYyxkLGUpe3ZhciB0LHM9JC5YMwppZihzPT09YylyZXR1cm4gZC4kMCgpCiQuWDM9Ywp0PXMK
dHJ5e3M9ZC4kMCgpCnJldHVybiBzfWZpbmFsbHl7JC5YMz10fX0sCnl2OmZ1bmN0aW9uKGEsYixjLGQs
ZSxmLGcpe3ZhciB0LHM9JC5YMwppZihzPT09YylyZXR1cm4gZC4kMShlKQokLlgzPWMKdD1zCnRyeXtz
PWQuJDEoZSkKcmV0dXJuIHN9ZmluYWxseXskLlgzPXR9fSwKUXg6ZnVuY3Rpb24oYSxiLGMsZCxlLGYs
ZyxoLGkpe3ZhciB0LHM9JC5YMwppZihzPT09YylyZXR1cm4gZC4kMihlLGYpCiQuWDM9Ywp0PXMKdHJ5
e3M9ZC4kMihlLGYpCnJldHVybiBzfWZpbmFsbHl7JC5YMz10fX0sClRrOmZ1bmN0aW9uKGEsYixjLGQp
e3ZhciB0CnUuTS5iKGQpCnQ9Qy5OVSE9PWMKaWYodClkPSEoIXR8fCExKT9jLkdZKGQpOmMuUlQoZCx1
LkgpClAuZVcoZCl9LAp0aDpmdW5jdGlvbiB0aChhKXt0aGlzLmE9YX0sCmhhOmZ1bmN0aW9uIGhhKGEs
YixjKXt0aGlzLmE9YQp0aGlzLmI9Ygp0aGlzLmM9Y30sClZzOmZ1bmN0aW9uIFZzKGEpe3RoaXMuYT1h
fSwKRnQ6ZnVuY3Rpb24gRnQoYSl7dGhpcy5hPWF9LApXMzpmdW5jdGlvbiBXMygpe30sCnlIOmZ1bmN0
aW9uIHlIKGEsYil7dGhpcy5hPWEKdGhpcy5iPWJ9LApQZjpmdW5jdGlvbiBQZigpe30sClpmOmZ1bmN0
aW9uIFpmKGEsYil7dGhpcy5hPWEKdGhpcy4kdGk9Yn0sCkZlOmZ1bmN0aW9uIEZlKGEsYixjLGQsZSl7
dmFyIF89dGhpcwpfLmE9bnVsbApfLmI9YQpfLmM9YgpfLmQ9YwpfLmU9ZApfLiR0aT1lfSwKdnM6ZnVu
Y3Rpb24gdnMoYSxiKXt2YXIgXz10aGlzCl8uYT0wCl8uYj1hCl8uYz1udWxsCl8uJHRpPWJ9LApkYTpm
dW5jdGlvbiBkYShhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKb1E6ZnVuY3Rpb24gb1EoYSxiKXt0aGlz
LmE9YQp0aGlzLmI9Yn0sCnBWOmZ1bmN0aW9uIHBWKGEpe3RoaXMuYT1hfSwKVTc6ZnVuY3Rpb24gVTco
YSl7dGhpcy5hPWF9LAp2cjpmdW5jdGlvbiB2cihhLGIsYyl7dGhpcy5hPWEKdGhpcy5iPWIKdGhpcy5j
PWN9LApySDpmdW5jdGlvbiBySChhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKS0Y6ZnVuY3Rpb24gS0Yo
YSxiKXt0aGlzLmE9YQp0aGlzLmI9Yn0sClpMOmZ1bmN0aW9uIFpMKGEsYixjKXt0aGlzLmE9YQp0aGlz
LmI9Ygp0aGlzLmM9Y30sClJUOmZ1bmN0aW9uIFJUKGEsYixjLGQpe3ZhciBfPXRoaXMKXy5hPWEKXy5i
PWIKXy5jPWMKXy5kPWR9LApqWjpmdW5jdGlvbiBqWihhKXt0aGlzLmE9YX0sCnJxOmZ1bmN0aW9uIHJx
KGEsYixjKXt0aGlzLmE9YQp0aGlzLmI9Ygp0aGlzLmM9Y30sClJXOmZ1bmN0aW9uIFJXKGEsYixjKXt0
aGlzLmE9YQp0aGlzLmI9Ygp0aGlzLmM9Y30sCk9NOmZ1bmN0aW9uIE9NKGEpe3RoaXMuYT1hCnRoaXMu
Yj1udWxsfSwKcWg6ZnVuY3Rpb24gcWgoKXt9LApCNTpmdW5jdGlvbiBCNShhLGIpe3RoaXMuYT1hCnRo
aXMuYj1ifSwKUEk6ZnVuY3Rpb24gUEkoYSxiKXt0aGlzLmE9YQp0aGlzLmI9Yn0sCk1POmZ1bmN0aW9u
IE1PKCl7fSwKa1Q6ZnVuY3Rpb24ga1QoKXt9LApDdzpmdW5jdGlvbiBDdyhhLGIpe3RoaXMuYT1hCnRo
aXMuYj1ifSwKbTA6ZnVuY3Rpb24gbTAoKXt9LApwSzpmdW5jdGlvbiBwSyhhLGIpe3RoaXMuYT1hCnRo
aXMuYj1ifSwKSmk6ZnVuY3Rpb24gSmkoKXt9LApoajpmdW5jdGlvbiBoaihhLGIsYyl7dGhpcy5hPWEK
dGhpcy5iPWIKdGhpcy5jPWN9LApWcDpmdW5jdGlvbiBWcChhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwK
T1I6ZnVuY3Rpb24gT1IoYSxiLGMpe3RoaXMuYT1hCnRoaXMuYj1iCnRoaXMuYz1jfSwKRUY6ZnVuY3Rp
b24oYSxiLGMpe3JldHVybiBiLkMoIkA8MD4iKS5LcShjKS5DKCJGbzwxLDI+IikuYihILkI3KGEsbmV3
IEguTjUoYi5DKCJAPDA+IikuS3EoYykuQygiTjU8MSwyPiIpKSkpfSwKRmw6ZnVuY3Rpb24oYSxiKXty
ZXR1cm4gbmV3IEguTjUoYS5DKCJAPDA+IikuS3EoYikuQygiTjU8MSwyPiIpKX0sCkxzOmZ1bmN0aW9u
KGEpe3JldHVybiBuZXcgUC5iNihhLkMoImI2PDA+IikpfSwKVDI6ZnVuY3Rpb24oKXt2YXIgdD1PYmpl
Y3QuY3JlYXRlKG51bGwpCnRbIjxub24taWRlbnRpZmllci1rZXk+Il09dApkZWxldGUgdFsiPG5vbi1p
ZGVudGlmaWVyLWtleT4iXQpyZXR1cm4gdH0sCnJqOmZ1bmN0aW9uKGEsYixjKXt2YXIgdD1uZXcgUC5s
bShhLGIsYy5DKCJsbTwwPiIpKQp0LmM9YS5lCnJldHVybiB0fSwKRVA6ZnVuY3Rpb24oYSxiLGMpe3Zh
ciB0LHMKaWYoUC5oQihhKSl7aWYoYj09PSIoIiYmYz09PSIpIilyZXR1cm4iKC4uLikiCnJldHVybiBi
KyIuLi4iK2N9dD1ILlZNKFtdLHUucykKQy5ObS5pKCQueGcsYSkKdHJ5e1AuVnIoYSx0KX1maW5hbGx5
e2lmKDA+PSQueGcubGVuZ3RoKXJldHVybiBILk9IKCQueGcsLTEpCiQueGcucG9wKCl9cz1QLnZnKGIs
dS5SLmIodCksIiwgIikrYwpyZXR1cm4gcy5jaGFyQ29kZUF0KDApPT0wP3M6c30sCldFOmZ1bmN0aW9u
KGEsYixjKXt2YXIgdCxzCmlmKFAuaEIoYSkpcmV0dXJuIGIrIi4uLiIrYwp0PW5ldyBQLlJuKGIpCkMu
Tm0uaSgkLnhnLGEpCnRyeXtzPXQKcy5hPVAudmcocy5hLGEsIiwgIil9ZmluYWxseXtpZigwPj0kLnhn
Lmxlbmd0aClyZXR1cm4gSC5PSCgkLnhnLC0xKQokLnhnLnBvcCgpfXQuYSs9YwpzPXQuYQpyZXR1cm4g
cy5jaGFyQ29kZUF0KDApPT0wP3M6c30sCmhCOmZ1bmN0aW9uKGEpe3ZhciB0LHMKZm9yKHQ9JC54Zy5s
ZW5ndGgscz0wO3M8dDsrK3MpaWYoYT09PSQueGdbc10pcmV0dXJuITAKcmV0dXJuITF9LApWcjpmdW5j
dGlvbihhLGIpe3ZhciB0LHMscixxLHAsbyxuLG09YS5na3ooYSksbD0wLGs9MAp3aGlsZSghMCl7aWYo
IShsPDgwfHxrPDMpKWJyZWFrCmlmKCFtLkYoKSlyZXR1cm4KdD1ILmQobS5nbCgpKQpDLk5tLmkoYix0
KQpsKz10Lmxlbmd0aCsyOysra31pZighbS5GKCkpe2lmKGs8PTUpcmV0dXJuCmlmKDA+PWIubGVuZ3Ro
KXJldHVybiBILk9IKGIsLTEpCnM9Yi5wb3AoKQppZigwPj1iLmxlbmd0aClyZXR1cm4gSC5PSChiLC0x
KQpyPWIucG9wKCl9ZWxzZXtxPW0uZ2woKTsrK2sKaWYoIW0uRigpKXtpZihrPD00KXtDLk5tLmkoYixI
LmQocSkpCnJldHVybn1zPUguZChxKQppZigwPj1iLmxlbmd0aClyZXR1cm4gSC5PSChiLC0xKQpyPWIu
cG9wKCkKbCs9cy5sZW5ndGgrMn1lbHNle3A9bS5nbCgpOysrawpmb3IoO20uRigpO3E9cCxwPW8pe289
bS5nbCgpOysrawppZihrPjEwMCl7d2hpbGUoITApe2lmKCEobD43NSYmaz4zKSlicmVhawppZigwPj1i
Lmxlbmd0aClyZXR1cm4gSC5PSChiLC0xKQpsLT1iLnBvcCgpLmxlbmd0aCsyOy0ta31DLk5tLmkoYiwi
Li4uIikKcmV0dXJufX1yPUguZChxKQpzPUguZChwKQpsKz1zLmxlbmd0aCtyLmxlbmd0aCs0fX1pZihr
PmIubGVuZ3RoKzIpe2wrPTUKbj0iLi4uIn1lbHNlIG49bnVsbAp3aGlsZSghMCl7aWYoIShsPjgwJiZi
Lmxlbmd0aD4zKSlicmVhawppZigwPj1iLmxlbmd0aClyZXR1cm4gSC5PSChiLC0xKQpsLT1iLnBvcCgp
Lmxlbmd0aCsyCmlmKG49PW51bGwpe2wrPTUKbj0iLi4uIn19aWYobiE9bnVsbClDLk5tLmkoYixuKQpD
Lk5tLmkoYixyKQpDLk5tLmkoYixzKX0sCnRNOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyPVAuTHMoYikK
Zm9yKHQ9YS5sZW5ndGgscz0wO3M8YS5sZW5ndGg7YS5sZW5ndGg9PT10fHwoMCxILmxrKShhKSwrK3Mp
ci5pKDAsYi5iKGFbc10pKQpyZXR1cm4gcn0sCm5POmZ1bmN0aW9uKGEpe3ZhciB0LHM9e30KaWYoUC5o
QihhKSlyZXR1cm4iey4uLn0iCnQ9bmV3IFAuUm4oIiIpCnRyeXtDLk5tLmkoJC54ZyxhKQp0LmErPSJ7
IgpzLmE9ITAKYS5LKDAsbmV3IFAuR0Eocyx0KSkKdC5hKz0ifSJ9ZmluYWxseXtpZigwPj0kLnhnLmxl
bmd0aClyZXR1cm4gSC5PSCgkLnhnLC0xKQokLnhnLnBvcCgpfXM9dC5hCnJldHVybiBzLmNoYXJDb2Rl
QXQoMCk9PTA/czpzfSwKYjY6ZnVuY3Rpb24gYjYoYSl7dmFyIF89dGhpcwpfLmE9MApfLmY9Xy5lPV8u
ZD1fLmM9Xy5iPW51bGwKXy5yPTAKXy4kdGk9YX0sCmJuOmZ1bmN0aW9uIGJuKGEpe3RoaXMuYT1hCnRo
aXMuYz10aGlzLmI9bnVsbH0sCmxtOmZ1bmN0aW9uIGxtKGEsYixjKXt2YXIgXz10aGlzCl8uYT1hCl8u
Yj1iCl8uZD1fLmM9bnVsbApfLiR0aT1jfSwKbVc6ZnVuY3Rpb24gbVcoKXt9LApMVTpmdW5jdGlvbiBM
VSgpe30sCmxEOmZ1bmN0aW9uIGxEKCl7fSwKaWw6ZnVuY3Rpb24gaWwoKXt9LApHQTpmdW5jdGlvbiBH
QShhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKWWs6ZnVuY3Rpb24gWWsoKXt9LApLUDpmdW5jdGlvbiBL
UCgpe30sClBuOmZ1bmN0aW9uIFBuKCl7fSwKR2o6ZnVuY3Rpb24gR2ooYSxiKXt0aGlzLmE9YQp0aGlz
LiR0aT1ifSwKbGY6ZnVuY3Rpb24gbGYoKXt9LApWajpmdW5jdGlvbiBWaigpe30sClh2OmZ1bmN0aW9u
IFh2KCl7fSwKblk6ZnVuY3Rpb24gblkoKXt9LApXWTpmdW5jdGlvbiBXWSgpe30sClJVOmZ1bmN0aW9u
IFJVKCl7fSwKQlM6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscQppZih0eXBlb2YgYSE9InN0cmluZyIp
dGhyb3cgSC5iKEgudEwoYSkpCnQ9bnVsbAp0cnl7dD1KU09OLnBhcnNlKGEpfWNhdGNoKHIpe3M9SC5S
dShyKQpxPVAucnIoU3RyaW5nKHMpLG51bGwsbnVsbCkKdGhyb3cgSC5iKHEpfXE9UC5RZSh0KQpyZXR1
cm4gcX0sClFlOmZ1bmN0aW9uKGEpe3ZhciB0CmlmKGE9PW51bGwpcmV0dXJuCmlmKHR5cGVvZiBhIT0i
b2JqZWN0IilyZXR1cm4gYQppZihPYmplY3QuZ2V0UHJvdG90eXBlT2YoYSkhPT1BcnJheS5wcm90b3R5
cGUpcmV0dXJuIG5ldyBQLnV3KGEsT2JqZWN0LmNyZWF0ZShudWxsKSkKZm9yKHQ9MDt0PGEubGVuZ3Ro
OysrdClhW3RdPVAuUWUoYVt0XSkKcmV0dXJuIGF9LApreTpmdW5jdGlvbihhLGIsYyxkKXtpZihiIGlu
c3RhbmNlb2YgVWludDhBcnJheSlyZXR1cm4gUC5SUCghMSxiLGMsZCkKcmV0dXJufSwKUlA6ZnVuY3Rp
b24oYSxiLGMsZCl7dmFyIHQscyxyPSQucmYoKQppZihyPT1udWxsKXJldHVybgp0PTA9PT1jCmlmKHQm
JiEwKXJldHVybiBQLk9RKHIsYikKcz1iLmxlbmd0aApkPVAuakIoYyxkLHMpCmlmKHQmJmQ9PT1zKXJl
dHVybiBQLk9RKHIsYikKcmV0dXJuIFAuT1EocixiLnN1YmFycmF5KGMsZCkpfSwKT1E6ZnVuY3Rpb24o
YSxiKXtpZihQLkJlKGIpKXJldHVybgpyZXR1cm4gUC5KaChhLGIpfSwKSmg6ZnVuY3Rpb24oYSxiKXt2
YXIgdCxzCnRyeXt0PWEuZGVjb2RlKGIpCnJldHVybiB0fWNhdGNoKHMpe0guUnUocyl9cmV0dXJufSwK
QmU6ZnVuY3Rpb24oYSl7dmFyIHQscz1hLmxlbmd0aC0yCmZvcih0PTA7dDxzOysrdClpZihhW3RdPT09
MjM3KWlmKChhW3QrMV0mMjI0KT09PTE2MClyZXR1cm4hMApyZXR1cm4hMX0sCldJOmZ1bmN0aW9uKCl7
dmFyIHQscwp0cnl7dD1uZXcgVGV4dERlY29kZXIoInV0Zi04Iix7ZmF0YWw6dHJ1ZX0pCnJldHVybiB0
fWNhdGNoKHMpe0guUnUocyl9cmV0dXJufSwKd0c6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscgpmb3Io
dD1KLlU2KGEpLHM9YjtzPGM7KytzKXtyPXQucShhLHMpCmlmKHR5cGVvZiByIT09Im51bWJlciIpcmV0
dXJuIHIuek0oKQppZigociYxMjcpIT09cilyZXR1cm4gcy1ifXJldHVybiBjLWJ9LAp4TTpmdW5jdGlv
bihhLGIsYyxkLGUsZil7aWYoQy5qbi56WShmLDQpIT09MCl0aHJvdyBILmIoUC5ycigiSW52YWxpZCBi
YXNlNjQgcGFkZGluZywgcGFkZGVkIGxlbmd0aCBtdXN0IGJlIG11bHRpcGxlIG9mIGZvdXIsIGlzICIr
ZixhLGMpKQppZihkK2UhPT1mKXRocm93IEguYihQLnJyKCJJbnZhbGlkIGJhc2U2NCBwYWRkaW5nLCAn
PScgbm90IGF0IHRoZSBlbmQiLGEsYikpCmlmKGU+Mil0aHJvdyBILmIoUC5ycigiSW52YWxpZCBiYXNl
NjQgcGFkZGluZywgbW9yZSB0aGFuIHR3byAnPScgY2hhcmFjdGVycyIsYSxiKSl9LAp1dzpmdW5jdGlv
biB1dyhhLGIpe3RoaXMuYT1hCnRoaXMuYj1iCnRoaXMuYz1udWxsfSwKaTg6ZnVuY3Rpb24gaTgoYSl7
dGhpcy5hPWF9LApDVjpmdW5jdGlvbiBDVigpe30sClU4OmZ1bmN0aW9uIFU4KCl7fSwKVWs6ZnVuY3Rp
b24gVWsoKXt9LAp3STpmdW5jdGlvbiB3SSgpe30sClppOmZ1bmN0aW9uIFppKCl7fSwKYnk6ZnVuY3Rp
b24gYnkoKXt9LApNeDpmdW5jdGlvbiBNeChhKXt0aGlzLmE9YX0sCnU1OmZ1bmN0aW9uIHU1KCl7fSwK
RTM6ZnVuY3Rpb24gRTMoKXt9LApSdzpmdW5jdGlvbiBSdyhhKXt0aGlzLmI9MAp0aGlzLmM9YX0sCkdZ
OmZ1bmN0aW9uIEdZKGEpe3RoaXMuYT1hfSwKYno6ZnVuY3Rpb24gYnooYSxiKXt2YXIgXz10aGlzCl8u
YT1hCl8uYj1iCl8uYz0hMApfLmY9Xy5lPV8uZD0wfSwKUUE6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0PUgu
SHAoYSxjKQppZih0IT1udWxsKXJldHVybiB0CmlmKGIhPW51bGwpcmV0dXJuIGIuJDEoYSkKdGhyb3cg
SC5iKFAucnIoYSxudWxsLG51bGwpKX0sCkY6ZnVuY3Rpb24oYSl7aWYoYSBpbnN0YW5jZW9mIEguVHAp
cmV0dXJuIGEudygwKQpyZXR1cm4iSW5zdGFuY2Ugb2YgJyIrSC5kKEguTShhKSkrIicifSwKTzg6ZnVu
Y3Rpb24oYSxiLGMpe3ZhciB0LHM9Si5RaShhLGMpCmlmKGEhPT0wJiYhMClmb3IodD0wO3Q8cy5sZW5n
dGg7Kyt0KUMuTm0uWShzLHQsYikKcmV0dXJuIHN9LApDSDpmdW5jdGlvbihhLGIsYyl7dmFyIHQscz1I
LlZNKFtdLGMuQygiamQ8MD4iKSkKZm9yKHQ9Si5JVChhKTt0LkYoKTspQy5ObS5pKHMsYy5iKHQuZ2wo
KSkpCmlmKGIpcmV0dXJuIHMKcmV0dXJuIGMuQygiek08MD4iKS5iKEouRXAocykpfSwKQUY6ZnVuY3Rp
b24oYSxiKXtyZXR1cm4gYi5DKCJ6TTwwPiIpLmIoSi56QyhQLkNIKGEsITEsYikpKX0sCkhNOmZ1bmN0
aW9uKGEsYixjKXt2YXIgdAppZihBcnJheS5pc0FycmF5KGEpKXt1LnQuYihhKQp0PWEubGVuZ3RoCmM9
UC5qQihiLGMsdCkKcmV0dXJuIEguZVQoYj4wfHxjPHQ/Qy5ObS5hTShhLGIsYyk6YSl9aWYodS5ibS5j
KGEpKXJldHVybiBILmZ3KGEsYixQLmpCKGIsYyxhLmxlbmd0aCkpCnJldHVybiBQLmJ3KGEsYixjKX0s
Ck9vOmZ1bmN0aW9uKGEpe3JldHVybiBILkx3KGEpfSwKYnc6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMs
cixxLHA9bnVsbAppZihiPDApdGhyb3cgSC5iKFAuVEUoYiwwLEouSG0oYSkscCxwKSkKdD1jPT1udWxs
CmlmKCF0JiZjPGIpdGhyb3cgSC5iKFAuVEUoYyxiLEouSG0oYSkscCxwKSkKcz1KLklUKGEpCmZvcihy
PTA7cjxiOysrcilpZighcy5GKCkpdGhyb3cgSC5iKFAuVEUoYiwwLHIscCxwKSkKcT1bXQppZih0KWZv
cig7cy5GKCk7KXEucHVzaChzLmdsKCkpCmVsc2UgZm9yKHI9YjtyPGM7KytyKXtpZighcy5GKCkpdGhy
b3cgSC5iKFAuVEUoYyxiLHIscCxwKSkKcS5wdXNoKHMuZ2woKSl9cmV0dXJuIEguZVQocSl9LApudTpm
dW5jdGlvbihhKXtyZXR1cm4gbmV3IEguVlIoYSxILnY0KGEsITEsITAsITEsITEsITEpKX0sCnZnOmZ1
bmN0aW9uKGEsYixjKXt2YXIgdD1KLklUKGIpCmlmKCF0LkYoKSlyZXR1cm4gYQppZihjLmxlbmd0aD09
PTApe2RvIGErPUguZCh0LmdsKCkpCndoaWxlKHQuRigpKX1lbHNle2ErPUguZCh0LmdsKCkpCmZvcig7
dC5GKCk7KWE9YStjK0guZCh0LmdsKCkpfXJldHVybiBhfSwKbHI6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0
dXJuIG5ldyBQLm1wKGEsYixjLGQpfSwKdW86ZnVuY3Rpb24oKXt2YXIgdD1ILk0wKCkKaWYodCE9bnVs
bClyZXR1cm4gUC5oSyh0KQp0aHJvdyBILmIoUC5MNCgiJ1VyaS5iYXNlJyBpcyBub3Qgc3VwcG9ydGVk
IikpfSwKZVA6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscyxyLHEscCxvLG49IjAxMjM0NTY3ODlBQkNE
RUYiCmlmKGM9PT1DLnhNKXt0PSQuejQoKS5iCmlmKHR5cGVvZiBiIT0ic3RyaW5nIilILnZoKEgudEwo
YikpCnQ9dC50ZXN0KGIpfWVsc2UgdD0hMQppZih0KXJldHVybiBiCkguTGgoYykuQygiVWsuUyIpLmIo
YikKcz1jLmdaRSgpLldKKGIpCmZvcih0PXMubGVuZ3RoLHI9MCxxPSIiO3I8dDsrK3Ipe3A9c1tyXQpp
ZihwPDEyOCl7bz1wPj4+NAppZihvPj04KXJldHVybiBILk9IKGEsbykKbz0oYVtvXSYxPDwocCYxNSkp
IT09MH1lbHNlIG89ITEKaWYobylxKz1ILkx3KHApCmVsc2UgcT1kJiZwPT09MzI/cSsiKyI6cSsiJSIr
bltwPj4+NCYxNV0rbltwJjE1XX1yZXR1cm4gcS5jaGFyQ29kZUF0KDApPT0wP3E6cX0sCkdxOmZ1bmN0
aW9uKGEpe3ZhciB0PU1hdGguYWJzKGEpLHM9YTwwPyItIjoiIgppZih0Pj0xMDAwKXJldHVybiIiK2EK
aWYodD49MTAwKXJldHVybiBzKyIwIit0CmlmKHQ+PTEwKXJldHVybiBzKyIwMCIrdApyZXR1cm4gcysi
MDAwIit0fSwKVng6ZnVuY3Rpb24oYSl7aWYoYT49MTAwKXJldHVybiIiK2EKaWYoYT49MTApcmV0dXJu
IjAiK2EKcmV0dXJuIjAwIithfSwKaDA6ZnVuY3Rpb24oYSl7aWYoYT49MTApcmV0dXJuIiIrYQpyZXR1
cm4iMCIrYX0sCnA6ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGE9PSJudW1iZXIifHxILmwoYSl8fG51bGw9
PWEpcmV0dXJuIEouaihhKQppZih0eXBlb2YgYT09InN0cmluZyIpcmV0dXJuIEpTT04uc3RyaW5naWZ5
KGEpCnJldHVybiBQLkYoYSl9LApoVjpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IFAuQzYoYSl9LAp4WTpm
dW5jdGlvbihhKXtyZXR1cm4gbmV3IFAudSghMSxudWxsLG51bGwsYSl9LApMMzpmdW5jdGlvbihhLGIs
Yyl7cmV0dXJuIG5ldyBQLnUoITAsYSxiLGMpfSwKeDpmdW5jdGlvbihhLGIpe3JldHVybiBuZXcgUC5i
SihudWxsLG51bGwsITAsYSxiLCJWYWx1ZSBub3QgaW4gcmFuZ2UiKX0sClRFOmZ1bmN0aW9uKGEsYixj
LGQsZSl7cmV0dXJuIG5ldyBQLmJKKGIsYywhMCxhLGQsIkludmFsaWQgdmFsdWUiKX0sCndBOmZ1bmN0
aW9uKGEsYixjLGQpe2lmKGE8Ynx8YT5jKXRocm93IEguYihQLlRFKGEsYixjLGQsbnVsbCkpfSwKakI6
ZnVuY3Rpb24oYSxiLGMpe2lmKDA+YXx8YT5jKXRocm93IEguYihQLlRFKGEsMCxjLCJzdGFydCIsbnVs
bCkpCmlmKGIhPW51bGwpe2lmKGE+Ynx8Yj5jKXRocm93IEguYihQLlRFKGIsYSxjLCJlbmQiLG51bGwp
KQpyZXR1cm4gYn1yZXR1cm4gY30sCmsxOmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGEhPT0ibnVtYmVy
IilyZXR1cm4gYS5KKCkKaWYoYTwwKXRocm93IEguYihQLlRFKGEsMCxudWxsLGIsbnVsbCkpfSwKQ2Y6
ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgdD1ILlNjKGU9PW51bGw/Si5IbShiKTplKQpyZXR1cm4gbmV3
IFAuZVkodCwhMCxhLGMsIkluZGV4IG91dCBvZiByYW5nZSIpfSwKTDQ6ZnVuY3Rpb24oYSl7cmV0dXJu
IG5ldyBQLnViKGEpfSwKU1k6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBQLmRzKGEpfSwKUFY6ZnVuY3Rp
b24oYSl7cmV0dXJuIG5ldyBQLmxqKGEpfSwKYTQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBQLlVWKGEp
fSwKcnI6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiBuZXcgUC5hRShhLGIsYyl9LApkSDpmdW5jdGlvbihh
LGIsYyxkKXt2YXIgdCxzPUguVk0oW10sZC5DKCJqZDwwPiIpKQpDLk5tLnNBKHMsYSkKZm9yKHQ9MDt0
PGE7Kyt0KUMuTm0uWShzLHQsYi4kMSh0KSkKcmV0dXJuIHN9LApoSzpmdW5jdGlvbihhKXt2YXIgdCxz
LHIscSxwLG8sbixtLGwsayxqLGksaCxnLGYsZT1udWxsLGQ9YS5sZW5ndGgKaWYoZD49NSl7dD0oKEou
UXooYSw0KV41OCkqM3xDLnhCLlcoYSwwKV4xMDB8Qy54Qi5XKGEsMSleOTd8Qy54Qi5XKGEsMileMTE2
fEMueEIuVyhhLDMpXjk3KT4+PjAKaWYodD09PTApcmV0dXJuIFAuS0QoZDxkP0MueEIuTmooYSwwLGQp
OmEsNSxlKS5nbFIoKQplbHNlIGlmKHQ9PT0zMilyZXR1cm4gUC5LRChDLnhCLk5qKGEsNSxkKSwwLGUp
LmdsUigpfXM9bmV3IEFycmF5KDgpCnMuZml4ZWQkbGVuZ3RoPUFycmF5CnI9SC5WTShzLHUudCkKQy5O
bS5ZKHIsMCwwKQpDLk5tLlkociwxLC0xKQpDLk5tLlkociwyLC0xKQpDLk5tLlkociw3LC0xKQpDLk5t
LlkociwzLDApCkMuTm0uWShyLDQsMCkKQy5ObS5ZKHIsNSxkKQpDLk5tLlkociw2LGQpCmlmKFAuVUIo
YSwwLGQsMCxyKT49MTQpQy5ObS5ZKHIsNyxkKQpxPXJbMV0KaWYodHlwZW9mIHEhPT0ibnVtYmVyIily
ZXR1cm4gcS50QigpCmlmKHE+PTApaWYoUC5VQihhLDAscSwyMCxyKT09PTIwKXJbN109cQpzPXJbMl0K
aWYodHlwZW9mIHMhPT0ibnVtYmVyIilyZXR1cm4gcy5oKCkKcD1zKzEKbz1yWzNdCm49cls0XQptPXJb
NV0KbD1yWzZdCmlmKHR5cGVvZiBsIT09Im51bWJlciIpcmV0dXJuIGwuSigpCmlmKHR5cGVvZiBtIT09
Im51bWJlciIpcmV0dXJuIEgucFkobSkKaWYobDxtKW09bAppZih0eXBlb2YgbiE9PSJudW1iZXIiKXJl
dHVybiBuLkooKQppZihuPHApbj1tCmVsc2UgaWYobjw9cSluPXErMQppZih0eXBlb2YgbyE9PSJudW1i
ZXIiKXJldHVybiBvLkooKQppZihvPHApbz1uCnM9cls3XQppZih0eXBlb2YgcyE9PSJudW1iZXIiKXJl
dHVybiBzLkooKQprPXM8MAppZihrKWlmKHA+cSszKXtqPWUKaz0hMX1lbHNle3M9bz4wCmlmKHMmJm8r
MT09PW4pe2o9ZQprPSExfWVsc2V7aWYoIShtPGQmJm09PT1uKzImJkoucTAoYSwiLi4iLG4pKSlpPW0+
bisyJiZKLnEwKGEsIi8uLiIsbS0zKQplbHNlIGk9ITAKaWYoaSl7aj1lCms9ITF9ZWxzZXtpZihxPT09
NClpZihKLnEwKGEsImZpbGUiLDApKXtpZihwPD0wKXtpZighQy54Qi5RaShhLCIvIixuKSl7aD0iZmls
ZTovLy8iCnQ9M31lbHNle2g9ImZpbGU6Ly8iCnQ9Mn1hPWgrQy54Qi5OaihhLG4sZCkKcS09MApzPXQt
MAptKz1zCmwrPXMKZD1hLmxlbmd0aApwPTcKbz03Cm49N31lbHNlIGlmKG49PT1tKXtnPW0rMTsrK2wK
YT1DLnhCLmk3KGEsbixtLCIvIik7KytkCm09Z31qPSJmaWxlIn1lbHNlIGlmKEMueEIuUWkoYSwiaHR0
cCIsMCkpe2lmKHMmJm8rMz09PW4mJkMueEIuUWkoYSwiODAiLG8rMSkpe2Y9bi0zCm0tPTMKbC09Mwph
PUMueEIuaTcoYSxvLG4sIiIpCmQtPTMKbj1mfWo9Imh0dHAifWVsc2Ugaj1lCmVsc2UgaWYocT09PTUm
JkoucTAoYSwiaHR0cHMiLDApKXtpZihzJiZvKzQ9PT1uJiZKLnEwKGEsIjQ0MyIsbysxKSl7Zj1uLTQK
bS09NApsLT00CmE9Si55UShhLG8sbiwiIikKZC09MwpuPWZ9aj0iaHR0cHMifWVsc2Ugaj1lCms9ITB9
fX1lbHNlIGo9ZQppZihrKXtzPWEubGVuZ3RoCmlmKGQ8cyl7YT1KLmxkKGEsMCxkKQpxLT0wCnAtPTAK
by09MApuLT0wCm0tPTAKbC09MH1yZXR1cm4gbmV3IFAuVWYoYSxxLHAsbyxuLG0sbCxqKX1yZXR1cm4g
UC5qdihhLDAsZCxxLHAsbyxuLG0sbCxqKX0sCk10OmZ1bmN0aW9uKGEpe0gueShhKQpyZXR1cm4gUC5r
dShhLDAsYS5sZW5ndGgsQy54TSwhMSl9LApXWDpmdW5jdGlvbihhKXt2YXIgdD11Lk4KcmV0dXJuIEMu
Tm0uTjAoSC5WTShhLnNwbGl0KCImIiksdS5zKSxQLkZsKHQsdCksbmV3IFAubjEoQy54TSksdS5mKX0s
CkhoOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzLHIscSxwLG8sbixtPW51bGwsbD0iSVB2NCBhZGRyZXNz
IHNob3VsZCBjb250YWluIGV4YWN0bHkgNCBwYXJ0cyIsaz0iZWFjaCBwYXJ0IG11c3QgYmUgaW4gdGhl
IHJhbmdlIDAuLjI1NSIsaj1uZXcgUC5jUyhhKSxpPW5ldyBVaW50OEFycmF5KDQpCmZvcih0PWkubGVu
Z3RoLHM9YixyPXMscT0wO3M8YzsrK3Mpe3A9Qy54Qi5tKGEscykKaWYocCE9PTQ2KXtpZigocF40OCk+
OSlqLiQyKCJpbnZhbGlkIGNoYXJhY3RlciIscyl9ZWxzZXtpZihxPT09MylqLiQyKGwscykKbz1QLlFB
KEMueEIuTmooYSxyLHMpLG0sbSkKaWYodHlwZW9mIG8hPT0ibnVtYmVyIilyZXR1cm4gby5vcygpCmlm
KG8+MjU1KWouJDIoayxyKQpuPXErMQppZihxPj10KXJldHVybiBILk9IKGkscSkKaVtxXT1vCnI9cysx
CnE9bn19aWYocSE9PTMpai4kMihsLGMpCm89UC5RQShDLnhCLk5qKGEscixjKSxtLG0pCmlmKHR5cGVv
ZiBvIT09Im51bWJlciIpcmV0dXJuIG8ub3MoKQppZihvPjI1NSlqLiQyKGsscikKaWYocT49dClyZXR1
cm4gSC5PSChpLHEpCmlbcV09bwpyZXR1cm4gaX0sCmVnOmZ1bmN0aW9uKGEsYixhMCl7dmFyIHQscyxy
LHEscCxvLG4sbSxsLGssaixpLGgsZyxmLGUsZD1uZXcgUC5WQyhhKSxjPW5ldyBQLnRwKGQsYSkKaWYo
YS5sZW5ndGg8MilkLiQxKCJhZGRyZXNzIGlzIHRvbyBzaG9ydCIpCnQ9SC5WTShbXSx1LnQpCmZvcihz
PWIscj1zLHE9ITEscD0hMTtzPGEwOysrcyl7bz1DLnhCLm0oYSxzKQppZihvPT09NTgpe2lmKHM9PT1i
KXsrK3MKaWYoQy54Qi5tKGEscykhPT01OClkLiQyKCJpbnZhbGlkIHN0YXJ0IGNvbG9uLiIscykKcj1z
fWlmKHM9PT1yKXtpZihxKWQuJDIoIm9ubHkgb25lIHdpbGRjYXJkIGA6OmAgaXMgYWxsb3dlZCIscykK
Qy5ObS5pKHQsLTEpCnE9ITB9ZWxzZSBDLk5tLmkodCxjLiQyKHIscykpCnI9cysxfWVsc2UgaWYobz09
PTQ2KXA9ITB9aWYodC5sZW5ndGg9PT0wKWQuJDEoInRvbyBmZXcgcGFydHMiKQpuPXI9PT1hMAptPUMu
Tm0uZ3JaKHQpCmlmKG4mJm0hPT0tMSlkLiQyKCJleHBlY3RlZCBhIHBhcnQgYWZ0ZXIgbGFzdCBgOmAi
LGEwKQppZighbilpZighcClDLk5tLmkodCxjLiQyKHIsYTApKQplbHNle2w9UC5IaChhLHIsYTApCkMu
Tm0uaSh0LChsWzBdPDw4fGxbMV0pPj4+MCkKQy5ObS5pKHQsKGxbMl08PDh8bFszXSk+Pj4wKX1pZihx
KXtpZih0Lmxlbmd0aD43KWQuJDEoImFuIGFkZHJlc3Mgd2l0aCBhIHdpbGRjYXJkIG11c3QgaGF2ZSBs
ZXNzIHRoYW4gNyBwYXJ0cyIpfWVsc2UgaWYodC5sZW5ndGghPT04KWQuJDEoImFuIGFkZHJlc3Mgd2l0
aG91dCBhIHdpbGRjYXJkIG11c3QgY29udGFpbiBleGFjdGx5IDggcGFydHMiKQprPW5ldyBVaW50OEFy
cmF5KDE2KQpmb3IobT10Lmxlbmd0aCxqPWsubGVuZ3RoLGk9OS1tLHM9MCxoPTA7czxtOysrcyl7Zz10
W3NdCmlmKGc9PT0tMSlmb3IoZj0wO2Y8aTsrK2Ype2lmKGg8MHx8aD49ailyZXR1cm4gSC5PSChrLGgp
CmtbaF09MAplPWgrMQppZihlPj1qKXJldHVybiBILk9IKGssZSkKa1tlXT0wCmgrPTJ9ZWxzZXtlPUMu
am4ud0coZyw4KQppZihoPDB8fGg+PWopcmV0dXJuIEguT0goayxoKQprW2hdPWUKZT1oKzEKaWYoZT49
ailyZXR1cm4gSC5PSChrLGUpCmtbZV09ZyYyNTUKaCs9Mn19cmV0dXJuIGt9LApqdjpmdW5jdGlvbihh
LGIsYyxkLGUsZixnLGgsaSxqKXt2YXIgdCxzLHIscSxwLG8sbixtPW51bGwKaWYoaj09bnVsbClpZihk
PmIpaj1QLlBpKGEsYixkKQplbHNle2lmKGQ9PT1iKVAuUjMoYSxiLCJJbnZhbGlkIGVtcHR5IHNjaGVt
ZSIpCmo9IiJ9aWYoZT5iKXt0PWQrMwpzPXQ8ZT9QLnpSKGEsdCxlLTEpOiIiCnI9UC5PZShhLGUsZiwh
MSkKaWYodHlwZW9mIGYhPT0ibnVtYmVyIilyZXR1cm4gZi5oKCkKcT1mKzEKaWYodHlwZW9mIGchPT0i
bnVtYmVyIilyZXR1cm4gSC5wWShnKQpwPXE8Zz9QLndCKFAuUUEoSi5sZChhLHEsZyksbmV3IFAuZTEo
YSxmKSxtKSxqKTptfWVsc2V7cD1tCnI9cApzPSIifW89UC5rYShhLGcsaCxtLGosciE9bnVsbCkKaWYo
dHlwZW9mIGghPT0ibnVtYmVyIilyZXR1cm4gaC5KKCkKbj1oPGk/UC5sZShhLGgrMSxpLG0pOm0KcmV0
dXJuIG5ldyBQLkRuKGoscyxyLHAsbyxuLGk8Yz9QLnRHKGEsaSsxLGMpOm0pfSwKd0s6ZnVuY3Rpb24o
YSl7aWYoYT09PSJodHRwIilyZXR1cm4gODAKaWYoYT09PSJodHRwcyIpcmV0dXJuIDQ0MwpyZXR1cm4g
MH0sClIzOmZ1bmN0aW9uKGEsYixjKXt0aHJvdyBILmIoUC5ycihjLGEsYikpfSwKa0U6ZnVuY3Rpb24o
YSxiKXtDLk5tLksoYSxuZXcgUC5OWSghMSkpfSwKSE46ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscgpm
b3IodD1ILnFDKGEsYyxudWxsLEgudDYoYSkuZCksdD1uZXcgSC5hNyh0LHQuZ0EodCksdC4kdGkuQygi
YTc8YUwuRT4iKSk7dC5GKCk7KXtzPXQuZApyPVAubnUoJ1siKi86PD4/XFxcXHxdJykKcy50b1N0cmlu
ZwppZihILm0yKHMsciwwKSl7dD1QLkw0KCJJbGxlZ2FsIGNoYXJhY3RlciBpbiBwYXRoOiAiK3MpCnRo
cm93IEguYih0KX19fSwKcmc6ZnVuY3Rpb24oYSxiKXt2YXIgdAppZighKDY1PD1hJiZhPD05MCkpdD05
Nzw9YSYmYTw9MTIyCmVsc2UgdD0hMAppZih0KXJldHVybgp0PVAuTDQoIklsbGVnYWwgZHJpdmUgbGV0
dGVyICIrUC5PbyhhKSkKdGhyb3cgSC5iKHQpfSwKd0I6ZnVuY3Rpb24oYSxiKXtpZihhIT1udWxsJiZh
PT09UC53SyhiKSlyZXR1cm4KcmV0dXJuIGF9LApPZTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgdCxzLHIs
cSxwLG8KaWYoYT09bnVsbClyZXR1cm4KaWYoYj09PWMpcmV0dXJuIiIKaWYoQy54Qi5tKGEsYik9PT05
MSl7aWYodHlwZW9mIGMhPT0ibnVtYmVyIilyZXR1cm4gYy5ITigpCnQ9Yy0xCmlmKEMueEIubShhLHQp
IT09OTMpUC5SMyhhLGIsIk1pc3NpbmcgZW5kIGBdYCB0byBtYXRjaCBgW2AgaW4gaG9zdCIpCnM9Yisx
CnI9UC50byhhLHMsdCkKaWYodHlwZW9mIHIhPT0ibnVtYmVyIilyZXR1cm4gci5KKCkKaWYocjx0KXtx
PXIrMQpwPVAuT0EoYSxDLnhCLlFpKGEsIjI1IixxKT9yKzM6cSx0LCIlMjUiKX1lbHNlIHA9IiIKUC5l
ZyhhLHMscikKcmV0dXJuIEMueEIuTmooYSxiLHIpLnRvTG93ZXJDYXNlKCkrcCsiXSJ9aWYodHlwZW9m
IGMhPT0ibnVtYmVyIilyZXR1cm4gSC5wWShjKQpvPWIKZm9yKDtvPGM7KytvKWlmKEMueEIubShhLG8p
PT09NTgpe3I9Qy54Qi5YVShhLCIlIixiKQppZighKHI+PWImJnI8Yykpcj1jCmlmKHI8Yyl7cT1yKzEK
cD1QLk9BKGEsQy54Qi5RaShhLCIyNSIscSk/ciszOnEsYywiJTI1Iil9ZWxzZSBwPSIiClAuZWcoYSxi
LHIpCnJldHVybiJbIitDLnhCLk5qKGEsYixyKStwKyJdIn1yZXR1cm4gUC5PTChhLGIsYyl9LAp0bzpm
dW5jdGlvbihhLGIsYyl7dmFyIHQscz1DLnhCLlhVKGEsIiUiLGIpCmlmKHM+PWIpe2lmKHR5cGVvZiBj
IT09Im51bWJlciIpcmV0dXJuIEgucFkoYykKdD1zPGN9ZWxzZSB0PSExCnJldHVybiB0P3M6Y30sCk9B
OmZ1bmN0aW9uKGEsYixjLGQpe3ZhciB0LHMscixxLHAsbyxuLG0sbCxrPWQhPT0iIj9uZXcgUC5Sbihk
KTpudWxsCmlmKHR5cGVvZiBjIT09Im51bWJlciIpcmV0dXJuIEgucFkoYykKdD1iCnM9dApyPSEwCmZv
cig7dDxjOyl7cT1DLnhCLm0oYSx0KQppZihxPT09Mzcpe3A9UC5ydihhLHQsITApCm89cD09bnVsbApp
ZihvJiZyKXt0Kz0zCmNvbnRpbnVlfWlmKGs9PW51bGwpaz1uZXcgUC5SbigiIikKbj1rLmErPUMueEIu
TmooYSxzLHQpCmlmKG8pcD1DLnhCLk5qKGEsdCx0KzMpCmVsc2UgaWYocD09PSIlIilQLlIzKGEsdCwi
Wm9uZUlEIHNob3VsZCBub3QgY29udGFpbiAlIGFueW1vcmUiKQprLmE9bitwCnQrPTMKcz10CnI9ITB9
ZWxzZXtpZihxPDEyNyl7bz1xPj4+NAppZihvPj04KXJldHVybiBILk9IKEMuRjMsbykKbz0oQy5GM1tv
XSYxPDwocSYxNSkpIT09MH1lbHNlIG89ITEKaWYobyl7aWYociYmNjU8PXEmJjkwPj1xKXtpZihrPT1u
dWxsKWs9bmV3IFAuUm4oIiIpCmlmKHM8dCl7ay5hKz1DLnhCLk5qKGEscyx0KQpzPXR9cj0hMX0rK3R9
ZWxzZXtpZigocSY2NDUxMik9PT01NTI5NiYmdCsxPGMpe209Qy54Qi5tKGEsdCsxKQppZigobSY2NDUx
Mik9PT01NjMyMCl7cT02NTUzNnwocSYxMDIzKTw8MTB8bSYxMDIzCmw9Mn1lbHNlIGw9MX1lbHNlIGw9
MQppZihrPT1udWxsKWs9bmV3IFAuUm4oIiIpCmsuYSs9Qy54Qi5OaihhLHMsdCkKay5hKz1QLnpYKHEp
CnQrPWwKcz10fX19aWYoaz09bnVsbClyZXR1cm4gQy54Qi5OaihhLGIsYykKaWYoczxjKWsuYSs9Qy54
Qi5OaihhLHMsYykKbz1rLmEKcmV0dXJuIG8uY2hhckNvZGVBdCgwKT09MD9vOm99LApPTDpmdW5jdGlv
bihhLGIsYyl7dmFyIHQscyxyLHEscCxvLG4sbSxsLGssagppZih0eXBlb2YgYyE9PSJudW1iZXIiKXJl
dHVybiBILnBZKGMpCnQ9YgpzPXQKcj1udWxsCnE9ITAKZm9yKDt0PGM7KXtwPUMueEIubShhLHQpCmlm
KHA9PT0zNyl7bz1QLnJ2KGEsdCwhMCkKbj1vPT1udWxsCmlmKG4mJnEpe3QrPTMKY29udGludWV9aWYo
cj09bnVsbClyPW5ldyBQLlJuKCIiKQptPUMueEIuTmooYSxzLHQpCmw9ci5hKz0hcT9tLnRvTG93ZXJD
YXNlKCk6bQppZihuKXtvPUMueEIuTmooYSx0LHQrMykKaz0zfWVsc2UgaWYobz09PSIlIil7bz0iJTI1
IgprPTF9ZWxzZSBrPTMKci5hPWwrbwp0Kz1rCnM9dApxPSEwfWVsc2V7aWYocDwxMjcpe249cD4+PjQK
aWYobj49OClyZXR1cm4gSC5PSChDLmVhLG4pCm49KEMuZWFbbl0mMTw8KHAmMTUpKSE9PTB9ZWxzZSBu
PSExCmlmKG4pe2lmKHEmJjY1PD1wJiY5MD49cCl7aWYocj09bnVsbClyPW5ldyBQLlJuKCIiKQppZihz
PHQpe3IuYSs9Qy54Qi5OaihhLHMsdCkKcz10fXE9ITF9Kyt0fWVsc2V7aWYocDw9OTMpe249cD4+PjQK
aWYobj49OClyZXR1cm4gSC5PSChDLmFrLG4pCm49KEMuYWtbbl0mMTw8KHAmMTUpKSE9PTB9ZWxzZSBu
PSExCmlmKG4pUC5SMyhhLHQsIkludmFsaWQgY2hhcmFjdGVyIikKZWxzZXtpZigocCY2NDUxMik9PT01
NTI5NiYmdCsxPGMpe2o9Qy54Qi5tKGEsdCsxKQppZigoaiY2NDUxMik9PT01NjMyMCl7cD02NTUzNnwo
cCYxMDIzKTw8MTB8aiYxMDIzCms9Mn1lbHNlIGs9MX1lbHNlIGs9MQppZihyPT1udWxsKXI9bmV3IFAu
Um4oIiIpCm09Qy54Qi5OaihhLHMsdCkKci5hKz0hcT9tLnRvTG93ZXJDYXNlKCk6bQpyLmErPVAuelgo
cCkKdCs9awpzPXR9fX19aWYocj09bnVsbClyZXR1cm4gQy54Qi5OaihhLGIsYykKaWYoczxjKXttPUMu
eEIuTmooYSxzLGMpCnIuYSs9IXE/bS50b0xvd2VyQ2FzZSgpOm19bj1yLmEKcmV0dXJuIG4uY2hhckNv
ZGVBdCgwKT09MD9uOm59LApQaTpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyLHEKaWYoYj09PWMpcmV0
dXJuIiIKaWYoIVAuRXQoSi5yWShhKS5XKGEsYikpKVAuUjMoYSxiLCJTY2hlbWUgbm90IHN0YXJ0aW5n
IHdpdGggYWxwaGFiZXRpYyBjaGFyYWN0ZXIiKQpmb3IodD1iLHM9ITE7dDxjOysrdCl7cj1DLnhCLlco
YSx0KQppZihyPDEyOCl7cT1yPj4+NAppZihxPj04KXJldHVybiBILk9IKEMubUsscSkKcT0oQy5tS1tx
XSYxPDwociYxNSkpIT09MH1lbHNlIHE9ITEKaWYoIXEpUC5SMyhhLHQsIklsbGVnYWwgc2NoZW1lIGNo
YXJhY3RlciIpCmlmKDY1PD1yJiZyPD05MClzPSEwfWE9Qy54Qi5OaihhLGIsYykKcmV0dXJuIFAuWWEo
cz9hLnRvTG93ZXJDYXNlKCk6YSl9LApZYTpmdW5jdGlvbihhKXtpZihhPT09Imh0dHAiKXJldHVybiJo
dHRwIgppZihhPT09ImZpbGUiKXJldHVybiJmaWxlIgppZihhPT09Imh0dHBzIilyZXR1cm4iaHR0cHMi
CmlmKGE9PT0icGFja2FnZSIpcmV0dXJuInBhY2thZ2UiCnJldHVybiBhfSwKelI6ZnVuY3Rpb24oYSxi
LGMpe2lmKGE9PW51bGwpcmV0dXJuIiIKcmV0dXJuIFAudU8oYSxiLGMsQy50bywhMSl9LAprYTpmdW5j
dGlvbihhLGIsYyxkLGUsZil7dmFyIHQscz1lPT09ImZpbGUiLHI9c3x8ZixxPWE9PW51bGwKaWYocSYm
ITApcmV0dXJuIHM/Ii8iOiIiCnQ9IXE/UC51TyhhLGIsYyxDLldkLCEwKTpDLmpOLkUyKGQsbmV3IFAu
UlooKSx1Lk4pLkgoMCwiLyIpCmlmKHQubGVuZ3RoPT09MCl7aWYocylyZXR1cm4iLyJ9ZWxzZSBpZihy
JiYhQy54Qi5uKHQsIi8iKSl0PSIvIit0CnJldHVybiBQLkpyKHQsZSxmKX0sCkpyOmZ1bmN0aW9uKGEs
YixjKXt2YXIgdD1iLmxlbmd0aD09PTAKaWYodCYmIWMmJiFDLnhCLm4oYSwiLyIpKXJldHVybiBQLndG
KGEsIXR8fGMpCnJldHVybiBQLnhlKGEpfSwKbGU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscz17fQpp
ZihhIT1udWxsKXtpZihkIT1udWxsKXRocm93IEguYihQLnhZKCJCb3RoIHF1ZXJ5IGFuZCBxdWVyeVBh
cmFtZXRlcnMgc3BlY2lmaWVkIikpCnJldHVybiBQLnVPKGEsYixjLEMuVkMsITApfWlmKGQ9PW51bGwp
cmV0dXJuCnQ9bmV3IFAuUm4oIiIpCnMuYT0iIgpkLksoMCxuZXcgUC55NShuZXcgUC5NRShzLHQpKSkK
cz10LmEKcmV0dXJuIHMuY2hhckNvZGVBdCgwKT09MD9zOnN9LAp0RzpmdW5jdGlvbihhLGIsYyl7aWYo
YT09bnVsbClyZXR1cm4KcmV0dXJuIFAudU8oYSxiLGMsQy5WQywhMCl9LApydjpmdW5jdGlvbihhLGIs
Yyl7dmFyIHQscyxyLHEscCxvPWIrMgppZihvPj1hLmxlbmd0aClyZXR1cm4iJSIKdD1DLnhCLm0oYSxi
KzEpCnM9Qy54Qi5tKGEsbykKcj1ILm9vKHQpCnE9SC5vbyhzKQppZihyPDB8fHE8MClyZXR1cm4iJSIK
cD1yKjE2K3EKaWYocDwxMjcpe289Qy5qbi53RyhwLDQpCmlmKG8+PTgpcmV0dXJuIEguT0goQy5GMyxv
KQpvPShDLkYzW29dJjE8PChwJjE1KSkhPT0wfWVsc2Ugbz0hMQppZihvKXJldHVybiBILkx3KGMmJjY1
PD1wJiY5MD49cD8ocHwzMik+Pj4wOnApCmlmKHQ+PTk3fHxzPj05NylyZXR1cm4gQy54Qi5OaihhLGIs
YiszKS50b1VwcGVyQ2FzZSgpCnJldHVybn0sCnpYOmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxLHAsbyxu
PSIwMTIzNDU2Nzg5QUJDREVGIgppZihhPDEyOCl7dD1uZXcgQXJyYXkoMykKdC5maXhlZCRsZW5ndGg9
QXJyYXkKcz1ILlZNKHQsdS50KQpDLk5tLlkocywwLDM3KQpDLk5tLlkocywxLEMueEIuVyhuLGE+Pj40
KSkKQy5ObS5ZKHMsMixDLnhCLlcobixhJjE1KSl9ZWxzZXtpZihhPjIwNDcpaWYoYT42NTUzNSl7cj0y
NDAKcT00fWVsc2V7cj0yMjQKcT0zfWVsc2V7cj0xOTIKcT0yfXQ9bmV3IEFycmF5KDMqcSkKdC5maXhl
ZCRsZW5ndGg9QXJyYXkKcz1ILlZNKHQsdS50KQpmb3IocD0wOy0tcSxxPj0wO3I9MTI4KXtvPUMuam4u
YmYoYSw2KnEpJjYzfHIKQy5ObS5ZKHMscCwzNykKQy5ObS5ZKHMscCsxLEMueEIuVyhuLG8+Pj40KSkK
Qy5ObS5ZKHMscCsyLEMueEIuVyhuLG8mMTUpKQpwKz0zfX1yZXR1cm4gUC5ITShzLDAsbnVsbCl9LAp1
TzpmdW5jdGlvbihhLGIsYyxkLGUpe3ZhciB0PVAuVWwoYSxiLGMsZCxlKQpyZXR1cm4gdD09bnVsbD9D
LnhCLk5qKGEsYixjKTp0fSwKVWw6ZnVuY3Rpb24oYSxiLGMsZCxlKXt2YXIgdCxzLHIscSxwLG89IWUs
bj1iLG09bixsPW51bGwKd2hpbGUoITApe2lmKHR5cGVvZiBuIT09Im51bWJlciIpcmV0dXJuIG4uSigp
CmlmKHR5cGVvZiBjIT09Im51bWJlciIpcmV0dXJuIEgucFkoYykKaWYoIShuPGMpKWJyZWFrCmMkMDp7
dD1DLnhCLm0oYSxuKQppZih0PDEyNyl7cz10Pj4+NAppZihzPj04KXJldHVybiBILk9IKGQscykKcz0o
ZFtzXSYxPDwodCYxNSkpIT09MH1lbHNlIHM9ITEKaWYocykrK24KZWxzZXtpZih0PT09Mzcpe3I9UC5y
dihhLG4sITEpCmlmKHI9PW51bGwpe24rPTMKYnJlYWsgYyQwfWlmKCIlIj09PXIpe3I9IiUyNSIKcT0x
fWVsc2UgcT0zfWVsc2V7aWYobylpZih0PD05Myl7cz10Pj4+NAppZihzPj04KXJldHVybiBILk9IKEMu
YWsscykKcz0oQy5ha1tzXSYxPDwodCYxNSkpIT09MH1lbHNlIHM9ITEKZWxzZSBzPSExCmlmKHMpe1Au
UjMoYSxuLCJJbnZhbGlkIGNoYXJhY3RlciIpCnI9bnVsbApxPW51bGx9ZWxzZXtpZigodCY2NDUxMik9
PT01NTI5Nil7cz1uKzEKaWYoczxjKXtwPUMueEIubShhLHMpCmlmKChwJjY0NTEyKT09PTU2MzIwKXt0
PTY1NTM2fCh0JjEwMjMpPDwxMHxwJjEwMjMKcT0yfWVsc2UgcT0xfWVsc2UgcT0xfWVsc2UgcT0xCnI9
UC56WCh0KX19aWYobD09bnVsbClsPW5ldyBQLlJuKCIiKQpsLmErPUMueEIuTmooYSxtLG4pCmwuYSs9
SC5kKHIpCmlmKHR5cGVvZiBxIT09Im51bWJlciIpcmV0dXJuIEgucFkocSkKbis9cQptPW59fX1pZihs
PT1udWxsKXJldHVybgppZih0eXBlb2YgbSE9PSJudW1iZXIiKXJldHVybiBtLkooKQppZihtPGMpbC5h
Kz1DLnhCLk5qKGEsbSxjKQpvPWwuYQpyZXR1cm4gby5jaGFyQ29kZUF0KDApPT0wP286b30sCnlCOmZ1
bmN0aW9uKGEpe2lmKEMueEIubihhLCIuIikpcmV0dXJuITAKcmV0dXJuIEMueEIuT1koYSwiLy4iKSE9
PS0xfSwKeGU6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHEscCxvLG4KaWYoIVAueUIoYSkpcmV0dXJuIGEK
dD1ILlZNKFtdLHUucykKZm9yKHM9YS5zcGxpdCgiLyIpLHI9cy5sZW5ndGgscT0hMSxwPTA7cDxyOysr
cCl7bz1zW3BdCmlmKEouUk0obywiLi4iKSl7bj10Lmxlbmd0aAppZihuIT09MCl7aWYoMD49bilyZXR1
cm4gSC5PSCh0LC0xKQp0LnBvcCgpCmlmKHQubGVuZ3RoPT09MClDLk5tLmkodCwiIil9cT0hMH1lbHNl
IGlmKCIuIj09PW8pcT0hMAplbHNle0MuTm0uaSh0LG8pCnE9ITF9fWlmKHEpQy5ObS5pKHQsIiIpCnJl
dHVybiBDLk5tLkgodCwiLyIpfSwKd0Y6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwLG8KaWYoIVAu
eUIoYSkpcmV0dXJuIWI/UC5DMShhKTphCnQ9SC5WTShbXSx1LnMpCmZvcihzPWEuc3BsaXQoIi8iKSxy
PXMubGVuZ3RoLHE9ITEscD0wO3A8cjsrK3Ape289c1twXQppZigiLi4iPT09bylpZih0Lmxlbmd0aCE9
PTAmJkMuTm0uZ3JaKHQpIT09Ii4uIil7aWYoMD49dC5sZW5ndGgpcmV0dXJuIEguT0godCwtMSkKdC5w
b3AoKQpxPSEwfWVsc2V7Qy5ObS5pKHQsIi4uIikKcT0hMX1lbHNlIGlmKCIuIj09PW8pcT0hMAplbHNl
e0MuTm0uaSh0LG8pCnE9ITF9fXM9dC5sZW5ndGgKaWYocyE9PTApaWYocz09PTEpe2lmKDA+PXMpcmV0
dXJuIEguT0godCwwKQpzPXRbMF0ubGVuZ3RoPT09MH1lbHNlIHM9ITEKZWxzZSBzPSEwCmlmKHMpcmV0
dXJuIi4vIgppZihxfHxDLk5tLmdyWih0KT09PSIuLiIpQy5ObS5pKHQsIiIpCmlmKCFiKXtpZigwPj10
Lmxlbmd0aClyZXR1cm4gSC5PSCh0LDApCkMuTm0uWSh0LDAsUC5DMSh0WzBdKSl9cmV0dXJuIEMuTm0u
SCh0LCIvIil9LApDMTpmdW5jdGlvbihhKXt2YXIgdCxzLHIscT1hLmxlbmd0aAppZihxPj0yJiZQLkV0
KEouUXooYSwwKSkpZm9yKHQ9MTt0PHE7Kyt0KXtzPUMueEIuVyhhLHQpCmlmKHM9PT01OClyZXR1cm4g
Qy54Qi5OaihhLDAsdCkrIiUzQSIrQy54Qi5HKGEsdCsxKQppZihzPD0xMjcpe3I9cz4+PjQKaWYocj49
OClyZXR1cm4gSC5PSChDLm1LLHIpCnI9KEMubUtbcl0mMTw8KHMmMTUpKT09PTB9ZWxzZSByPSEwCmlm
KHIpYnJlYWt9cmV0dXJuIGF9LAptbjpmdW5jdGlvbihhKXt2YXIgdCxzLHIscT1hLmdGaigpLHA9cS5s
ZW5ndGgKaWYocD4wJiZKLkhtKHFbMF0pPT09MiYmSi5hNihxWzBdLDEpPT09NTgpe2lmKDA+PXApcmV0
dXJuIEguT0gocSwwKQpQLnJnKEouYTYocVswXSwwKSwhMSkKUC5ITihxLCExLDEpCnQ9ITB9ZWxzZXtQ
LkhOKHEsITEsMCkKdD0hMX1zPWEuZ3RUKCkmJiF0PyJcXCI6IiIKaWYoYS5nY2ooKSl7cj1hLmdKZihh
KQppZihyLmxlbmd0aCE9PTApcz1zKyJcXCIrcisiXFwifXM9UC52ZyhzLHEsIlxcIikKcD10JiZwPT09
MT9zKyJcXCI6cwpyZXR1cm4gcC5jaGFyQ29kZUF0KDApPT0wP3A6cH0sCkloOmZ1bmN0aW9uKGEsYil7
dmFyIHQscyxyCmZvcih0PTAscz0wO3M8MjsrK3Mpe3I9Qy54Qi5XKGEsYitzKQppZig0ODw9ciYmcjw9
NTcpdD10KjE2K3ItNDgKZWxzZXtyfD0zMgppZig5Nzw9ciYmcjw9MTAyKXQ9dCoxNityLTg3CmVsc2Ug
dGhyb3cgSC5iKFAueFkoIkludmFsaWQgVVJMIGVuY29kaW5nIikpfX1yZXR1cm4gdH0sCmt1OmZ1bmN0
aW9uKGEsYixjLGQsZSl7dmFyIHQscyxyLHEscD1KLnJZKGEpLG89Ygp3aGlsZSghMCl7aWYoIShvPGMp
KXt0PSEwCmJyZWFrfXM9cC5XKGEsbykKaWYoczw9MTI3KWlmKHMhPT0zNylyPWUmJnM9PT00MwplbHNl
IHI9ITAKZWxzZSByPSEwCmlmKHIpe3Q9ITEKYnJlYWt9KytvfWlmKHQpe2lmKEMueE0hPT1kKXI9ITEK
ZWxzZSByPSEwCmlmKHIpcmV0dXJuIHAuTmooYSxiLGMpCmVsc2UgcT1uZXcgSC5xaihwLk5qKGEsYixj
KSl9ZWxzZXtxPUguVk0oW10sdS50KQpmb3Iobz1iO288YzsrK28pe3M9cC5XKGEsbykKaWYocz4xMjcp
dGhyb3cgSC5iKFAueFkoIklsbGVnYWwgcGVyY2VudCBlbmNvZGluZyBpbiBVUkkiKSkKaWYocz09PTM3
KXtpZihvKzM+YS5sZW5ndGgpdGhyb3cgSC5iKFAueFkoIlRydW5jYXRlZCBVUkkiKSkKQy5ObS5pKHEs
UC5JaChhLG8rMSkpCm8rPTJ9ZWxzZSBpZihlJiZzPT09NDMpQy5ObS5pKHEsMzIpCmVsc2UgQy5ObS5p
KHEscyl9fXUuTC5iKHEpCnJldHVybiBuZXcgUC5HWSghMSkuV0oocSl9LApFdDpmdW5jdGlvbihhKXt2
YXIgdD1hfDMyCnJldHVybiA5Nzw9dCYmdDw9MTIyfSwKS0Q6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMs
cixxLHAsbyxuLG0sbD0iSW52YWxpZCBNSU1FIHR5cGUiLGs9SC5WTShbYi0xXSx1LnQpCmZvcih0PWEu
bGVuZ3RoLHM9YixyPS0xLHE9bnVsbDtzPHQ7KytzKXtxPUMueEIuVyhhLHMpCmlmKHE9PT00NHx8cT09
PTU5KWJyZWFrCmlmKHE9PT00Nyl7aWYocjwwKXtyPXMKY29udGludWV9dGhyb3cgSC5iKFAucnIobCxh
LHMpKX19aWYocjwwJiZzPmIpdGhyb3cgSC5iKFAucnIobCxhLHMpKQpmb3IoO3EhPT00NDspe0MuTm0u
aShrLHMpOysrcwpmb3IocD0tMTtzPHQ7KytzKXtxPUMueEIuVyhhLHMpCmlmKHE9PT02MSl7aWYocDww
KXA9c31lbHNlIGlmKHE9PT01OXx8cT09PTQ0KWJyZWFrfWlmKHA+PTApQy5ObS5pKGsscCkKZWxzZXtv
PUMuTm0uZ3JaKGspCmlmKHEhPT00NHx8cyE9PW8rN3x8IUMueEIuUWkoYSwiYmFzZTY0IixvKzEpKXRo
cm93IEguYihQLnJyKCJFeHBlY3RpbmcgJz0nIixhLHMpKQpicmVha319Qy5ObS5pKGsscykKbj1zKzEK
aWYoKGsubGVuZ3RoJjEpPT09MSlhPUMuaDkueXIoYSxuLHQpCmVsc2V7bT1QLlVsKGEsbix0LEMuVkMs
ITApCmlmKG0hPW51bGwpYT1DLnhCLmk3KGEsbix0LG0pfXJldHVybiBuZXcgUC5QRShhLGssYyl9LAp1
eDpmdW5jdGlvbigpe3ZhciB0PSIwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei0uX34hJCYnKCkqKyw7PSIscz0iLiIscj0iOiIscT0iLyIscD0i
PyIsbz0iIyIsbj11LmdjLG09UC5kSCgyMixuZXcgUC5xMygpLCEwLG4pLGw9bmV3IFAueUkobSksaz1u
ZXcgUC5jNigpLGo9bmV3IFAucWQoKSxpPW4uYihsLiQyKDAsMjI1KSkKay4kMyhpLHQsMSkKay4kMyhp
LHMsMTQpCmsuJDMoaSxyLDM0KQprLiQzKGkscSwzKQprLiQzKGkscCwxNzIpCmsuJDMoaSxvLDIwNSkK
aT1uLmIobC4kMigxNCwyMjUpKQprLiQzKGksdCwxKQprLiQzKGkscywxNSkKay4kMyhpLHIsMzQpCmsu
JDMoaSxxLDIzNCkKay4kMyhpLHAsMTcyKQprLiQzKGksbywyMDUpCmk9bi5iKGwuJDIoMTUsMjI1KSkK
ay4kMyhpLHQsMSkKay4kMyhpLCIlIiwyMjUpCmsuJDMoaSxyLDM0KQprLiQzKGkscSw5KQprLiQzKGks
cCwxNzIpCmsuJDMoaSxvLDIwNSkKaT1uLmIobC4kMigxLDIyNSkpCmsuJDMoaSx0LDEpCmsuJDMoaSxy
LDM0KQprLiQzKGkscSwxMCkKay4kMyhpLHAsMTcyKQprLiQzKGksbywyMDUpCmk9bi5iKGwuJDIoMiwy
MzUpKQprLiQzKGksdCwxMzkpCmsuJDMoaSxxLDEzMSkKay4kMyhpLHMsMTQ2KQprLiQzKGkscCwxNzIp
CmsuJDMoaSxvLDIwNSkKaT1uLmIobC4kMigzLDIzNSkpCmsuJDMoaSx0LDExKQprLiQzKGkscSw2OCkK
ay4kMyhpLHMsMTgpCmsuJDMoaSxwLDE3MikKay4kMyhpLG8sMjA1KQppPW4uYihsLiQyKDQsMjI5KSkK
ay4kMyhpLHQsNSkKai4kMyhpLCJBWiIsMjI5KQprLiQzKGksciwxMDIpCmsuJDMoaSwiQCIsNjgpCmsu
JDMoaSwiWyIsMjMyKQprLiQzKGkscSwxMzgpCmsuJDMoaSxwLDE3MikKay4kMyhpLG8sMjA1KQppPW4u
YihsLiQyKDUsMjI5KSkKay4kMyhpLHQsNSkKai4kMyhpLCJBWiIsMjI5KQprLiQzKGksciwxMDIpCmsu
JDMoaSwiQCIsNjgpCmsuJDMoaSxxLDEzOCkKay4kMyhpLHAsMTcyKQprLiQzKGksbywyMDUpCmk9bi5i
KGwuJDIoNiwyMzEpKQpqLiQzKGksIjE5Iiw3KQprLiQzKGksIkAiLDY4KQprLiQzKGkscSwxMzgpCmsu
JDMoaSxwLDE3MikKay4kMyhpLG8sMjA1KQppPW4uYihsLiQyKDcsMjMxKSkKai4kMyhpLCIwOSIsNykK
ay4kMyhpLCJAIiw2OCkKay4kMyhpLHEsMTM4KQprLiQzKGkscCwxNzIpCmsuJDMoaSxvLDIwNSkKay4k
MyhuLmIobC4kMig4LDgpKSwiXSIsNSkKaT1uLmIobC4kMig5LDIzNSkpCmsuJDMoaSx0LDExKQprLiQz
KGkscywxNikKay4kMyhpLHEsMjM0KQprLiQzKGkscCwxNzIpCmsuJDMoaSxvLDIwNSkKaT1uLmIobC4k
MigxNiwyMzUpKQprLiQzKGksdCwxMSkKay4kMyhpLHMsMTcpCmsuJDMoaSxxLDIzNCkKay4kMyhpLHAs
MTcyKQprLiQzKGksbywyMDUpCmk9bi5iKGwuJDIoMTcsMjM1KSkKay4kMyhpLHQsMTEpCmsuJDMoaSxx
LDkpCmsuJDMoaSxwLDE3MikKay4kMyhpLG8sMjA1KQppPW4uYihsLiQyKDEwLDIzNSkpCmsuJDMoaSx0
LDExKQprLiQzKGkscywxOCkKay4kMyhpLHEsMjM0KQprLiQzKGkscCwxNzIpCmsuJDMoaSxvLDIwNSkK
aT1uLmIobC4kMigxOCwyMzUpKQprLiQzKGksdCwxMSkKay4kMyhpLHMsMTkpCmsuJDMoaSxxLDIzNCkK
ay4kMyhpLHAsMTcyKQprLiQzKGksbywyMDUpCmk9bi5iKGwuJDIoMTksMjM1KSkKay4kMyhpLHQsMTEp
CmsuJDMoaSxxLDIzNCkKay4kMyhpLHAsMTcyKQprLiQzKGksbywyMDUpCmk9bi5iKGwuJDIoMTEsMjM1
KSkKay4kMyhpLHQsMTEpCmsuJDMoaSxxLDEwKQprLiQzKGkscCwxNzIpCmsuJDMoaSxvLDIwNSkKaT1u
LmIobC4kMigxMiwyMzYpKQprLiQzKGksdCwxMikKay4kMyhpLHAsMTIpCmsuJDMoaSxvLDIwNSkKaT1u
LmIobC4kMigxMywyMzcpKQprLiQzKGksdCwxMykKay4kMyhpLHAsMTMpCmouJDMobi5iKGwuJDIoMjAs
MjQ1KSksImF6IiwyMSkKbD1uLmIobC4kMigyMSwyNDUpKQpqLiQzKGwsImF6IiwyMSkKai4kMyhsLCIw
OSIsMjEpCmsuJDMobCwiKy0uIiwyMSkKcmV0dXJuIG19LApVQjpmdW5jdGlvbihhLGIsYyxkLGUpe3Zh
ciB0LHMscixxLHAsbz0kLnZaKCkKZm9yKHQ9Si5yWShhKSxzPWI7czxjOysrcyl7aWYoZDwwfHxkPj1v
Lmxlbmd0aClyZXR1cm4gSC5PSChvLGQpCnI9b1tkXQpxPXQuVyhhLHMpXjk2CmlmKHE+OTUpcT0zMQpp
ZihxPj1yLmxlbmd0aClyZXR1cm4gSC5PSChyLHEpCnA9cltxXQpkPXAmMzEKQy5ObS5ZKGUscD4+PjUs
cyl9cmV0dXJuIGR9LApXRjpmdW5jdGlvbiBXRihhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKYTI6ZnVu
Y3Rpb24gYTIoKXt9LAppUDpmdW5jdGlvbiBpUChhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKQ1A6ZnVu
Y3Rpb24gQ1AoKXt9LApYUzpmdW5jdGlvbiBYUygpe30sCkM2OmZ1bmN0aW9uIEM2KGEpe3RoaXMuYT1h
fSwKbjpmdW5jdGlvbiBuKCl7fSwKdTpmdW5jdGlvbiB1KGEsYixjLGQpe3ZhciBfPXRoaXMKXy5hPWEK
Xy5iPWIKXy5jPWMKXy5kPWR9LApiSjpmdW5jdGlvbiBiSihhLGIsYyxkLGUsZil7dmFyIF89dGhpcwpf
LmU9YQpfLmY9YgpfLmE9YwpfLmI9ZApfLmM9ZQpfLmQ9Zn0sCmVZOmZ1bmN0aW9uIGVZKGEsYixjLGQs
ZSl7dmFyIF89dGhpcwpfLmY9YQpfLmE9YgpfLmI9YwpfLmM9ZApfLmQ9ZX0sCm1wOmZ1bmN0aW9uIG1w
KGEsYixjLGQpe3ZhciBfPXRoaXMKXy5hPWEKXy5iPWIKXy5jPWMKXy5kPWR9LAp1YjpmdW5jdGlvbiB1
YihhKXt0aGlzLmE9YX0sCmRzOmZ1bmN0aW9uIGRzKGEpe3RoaXMuYT1hfSwKbGo6ZnVuY3Rpb24gbGoo
YSl7dGhpcy5hPWF9LApVVjpmdW5jdGlvbiBVVihhKXt0aGlzLmE9YX0sCms1OmZ1bmN0aW9uIGs1KCl7
fSwKS1k6ZnVuY3Rpb24gS1koKXt9LApjOmZ1bmN0aW9uIGMoYSl7dGhpcy5hPWF9LApDRDpmdW5jdGlv
biBDRChhKXt0aGlzLmE9YX0sCmFFOmZ1bmN0aW9uIGFFKGEsYixjKXt0aGlzLmE9YQp0aGlzLmI9Ygp0
aGlzLmM9Y30sCkVIOmZ1bmN0aW9uIEVIKCl7fSwKS046ZnVuY3Rpb24gS04oKXt9LApjWDpmdW5jdGlv
biBjWCgpe30sCkFuOmZ1bmN0aW9uIEFuKCl7fSwKek06ZnVuY3Rpb24gek0oKXt9LApaMDpmdW5jdGlv
biBaMCgpe30sCmM4OmZ1bmN0aW9uIGM4KCl7fSwKRks6ZnVuY3Rpb24gRksoKXt9LAprOmZ1bmN0aW9u
IGsoKXt9LApPZDpmdW5jdGlvbiBPZCgpe30sCmliOmZ1bmN0aW9uIGliKCl7fSwKeHU6ZnVuY3Rpb24g
eHUoKXt9LApHejpmdW5jdGlvbiBHeigpe30sCnFVOmZ1bmN0aW9uIHFVKCl7fSwKUm46ZnVuY3Rpb24g
Um4oYSl7dGhpcy5hPWF9LApHRDpmdW5jdGlvbiBHRCgpe30sCm4xOmZ1bmN0aW9uIG4xKGEpe3RoaXMu
YT1hfSwKY1M6ZnVuY3Rpb24gY1MoYSl7dGhpcy5hPWF9LApWQzpmdW5jdGlvbiBWQyhhKXt0aGlzLmE9
YX0sCnRwOmZ1bmN0aW9uIHRwKGEsYil7dGhpcy5hPWEKdGhpcy5iPWJ9LApEbjpmdW5jdGlvbiBEbihh
LGIsYyxkLGUsZixnKXt2YXIgXz10aGlzCl8uYT1hCl8uYj1iCl8uYz1jCl8uZD1kCl8uZT1lCl8uZj1m
Cl8ucj1nCl8uUT1fLno9Xy55PV8ueD1udWxsfSwKZTE6ZnVuY3Rpb24gZTEoYSxiKXt0aGlzLmE9YQp0
aGlzLmI9Yn0sCk5ZOmZ1bmN0aW9uIE5ZKGEpe3RoaXMuYT1hfSwKUlo6ZnVuY3Rpb24gUlooKXt9LApN
RTpmdW5jdGlvbiBNRShhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKeTU6ZnVuY3Rpb24geTUoYSl7dGhp
cy5hPWF9LApQRTpmdW5jdGlvbiBQRShhLGIsYyl7dGhpcy5hPWEKdGhpcy5iPWIKdGhpcy5jPWN9LApx
MzpmdW5jdGlvbiBxMygpe30sCnlJOmZ1bmN0aW9uIHlJKGEpe3RoaXMuYT1hfSwKYzY6ZnVuY3Rpb24g
YzYoKXt9LApxZDpmdW5jdGlvbiBxZCgpe30sClVmOmZ1bmN0aW9uIFVmKGEsYixjLGQsZSxmLGcsaCl7
dmFyIF89dGhpcwpfLmE9YQpfLmI9YgpfLmM9YwpfLmQ9ZApfLmU9ZQpfLmY9ZgpfLnI9ZwpfLng9aApf
Lnk9bnVsbH0sCnFlOmZ1bmN0aW9uIHFlKGEsYixjLGQsZSxmLGcpe3ZhciBfPXRoaXMKXy5hPWEKXy5i
PWIKXy5jPWMKXy5kPWQKXy5lPWUKXy5mPWYKXy5yPWcKXy5RPV8uej1fLnk9Xy54PW51bGx9LAppSjpm
dW5jdGlvbiBpSigpe30sCmxSOmZ1bmN0aW9uIGxSKGEsYil7dGhpcy5hPWEKdGhpcy5iPWJ9LApqZzpm
dW5jdGlvbiBqZyhhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKQmY6ZnVuY3Rpb24gQmYoYSxiKXt0aGlz
LmE9YQp0aGlzLmI9Yn0sCkFzOmZ1bmN0aW9uIEFzKCl7fSwKR0U6ZnVuY3Rpb24gR0UoYSl7dGhpcy5h
PWF9LApoRjpmdW5jdGlvbiBoRigpe30sClI0OmZ1bmN0aW9uKGEsYixjLGQpe3ZhciB0LHMscgpILnhk
KGIpCnUuai5iKGQpCmlmKEgub1QoYikpe3Q9W2NdCkMuTm0uRlYodCxkKQpkPXR9cz11LnoKcj1QLkNI
KEouTTEoZCxQLncwKCkscyksITAscykKdS5aLmIoYSkKcmV0dXJuIFAud1koSC5FayhhLHIsbnVsbCkp
fSwKRG06ZnVuY3Rpb24oYSxiLGMpe3ZhciB0CnRyeXtpZihPYmplY3QuaXNFeHRlbnNpYmxlKGEpJiYh
T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYikpe09iamVjdC5kZWZpbmVQcm9w
ZXJ0eShhLGIse3ZhbHVlOmN9KQpyZXR1cm4hMH19Y2F0Y2godCl7SC5SdSh0KX1yZXR1cm4hMX0sCk9t
OmZ1bmN0aW9uKGEsYil7aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGEsYikp
cmV0dXJuIGFbYl0KcmV0dXJufSwKd1k6ZnVuY3Rpb24oYSl7aWYoYT09bnVsbHx8dHlwZW9mIGE9PSJz
dHJpbmcifHx0eXBlb2YgYT09Im51bWJlciJ8fEgubChhKSlyZXR1cm4gYQppZihhIGluc3RhbmNlb2Yg
UC5FNClyZXR1cm4gYS5hCmlmKEguUjkoYSkpcmV0dXJuIGEKaWYodS51LmMoYSkpcmV0dXJuIGEKaWYo
YSBpbnN0YW5jZW9mIFAuaVApcmV0dXJuIEgubzIoYSkKaWYodS5aLmMoYSkpcmV0dXJuIFAuaEUoYSwi
JGRhcnRfanNGdW5jdGlvbiIsbmV3IFAuUEMoKSkKcmV0dXJuIFAuaEUoYSwiXyRkYXJ0X2pzT2JqZWN0
IixuZXcgUC5ZbSgkLmtJKCkpKX0sCmhFOmZ1bmN0aW9uKGEsYixjKXt2YXIgdD1QLk9tKGEsYikKaWYo
dD09bnVsbCl7dD1jLiQxKGEpClAuRG0oYSxiLHQpfXJldHVybiB0fSwKTDc6ZnVuY3Rpb24oYSl7dmFy
IHQscwppZihhPT1udWxsfHx0eXBlb2YgYT09InN0cmluZyJ8fHR5cGVvZiBhPT0ibnVtYmVyInx8dHlw
ZW9mIGE9PSJib29sZWFuIilyZXR1cm4gYQplbHNlIGlmKGEgaW5zdGFuY2VvZiBPYmplY3QmJkguUjko
YSkpcmV0dXJuIGEKZWxzZSBpZihhIGluc3RhbmNlb2YgT2JqZWN0JiZ1LnUuYyhhKSlyZXR1cm4gYQpl
bHNlIGlmKGEgaW5zdGFuY2VvZiBEYXRlKXt0PUguU2MoYS5nZXRUaW1lKCkpCmlmKE1hdGguYWJzKHQp
PD04NjRlMTMpcz0hMQplbHNlIHM9ITAKaWYocylILnZoKFAueFkoIkRhdGVUaW1lIGlzIG91dHNpZGUg
dmFsaWQgcmFuZ2U6ICIrdCkpCnJldHVybiBuZXcgUC5pUCh0LCExKX1lbHNlIGlmKGEuY29uc3RydWN0
b3I9PT0kLmtJKCkpcmV0dXJuIGEubwplbHNlIHJldHVybiBQLk5EKGEpfSwKTkQ6ZnVuY3Rpb24oYSl7
aWYodHlwZW9mIGE9PSJmdW5jdGlvbiIpcmV0dXJuIFAuaVEoYSwkLncoKSxuZXcgUC5OeigpKQppZihh
IGluc3RhbmNlb2YgQXJyYXkpcmV0dXJuIFAuaVEoYSwkLlI4KCksbmV3IFAuUVMoKSkKcmV0dXJuIFAu
aVEoYSwkLlI4KCksbmV3IFAubnAoKSl9LAppUTpmdW5jdGlvbihhLGIsYyl7dmFyIHQ9UC5PbShhLGIp
CmlmKHQ9PW51bGx8fCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpe3Q9Yy4kMShhKQpQLkRtKGEsYix0KX1y
ZXR1cm4gdH0sClBDOmZ1bmN0aW9uIFBDKCl7fSwKWW06ZnVuY3Rpb24gWW0oYSl7dGhpcy5hPWF9LApO
ejpmdW5jdGlvbiBOeigpe30sClFTOmZ1bmN0aW9uIFFTKCl7fSwKbnA6ZnVuY3Rpb24gbnAoKXt9LApF
NDpmdW5jdGlvbiBFNChhKXt0aGlzLmE9YX0sCnI3OmZ1bmN0aW9uIHI3KGEpe3RoaXMuYT1hfSwKVHo6
ZnVuY3Rpb24gVHooYSxiKXt0aGlzLmE9YQp0aGlzLiR0aT1ifSwKY286ZnVuY3Rpb24gY28oKXt9LApu
ZDpmdW5jdGlvbiBuZCgpe30sCktlOmZ1bmN0aW9uIEtlKGEpe3RoaXMuYT1hfSwKZDU6ZnVuY3Rpb24g
ZDUoKXt9LApuNjpmdW5jdGlvbiBuNigpe319LFc9ewpVOTpmdW5jdGlvbihhLGIsYyl7dmFyIHQ9ZG9j
dW1lbnQuYm9keSxzPSh0JiZDLlJZKS5yNih0LGEsYixjKQpzLnRvU3RyaW5nCnQ9dS5hYwp0PW5ldyBI
LlU1KG5ldyBXLmU3KHMpLHQuQygiYTIobEQuRSkiKS5iKG5ldyBXLkN2KCkpLHQuQygiVTU8bEQuRT4i
KSkKcmV0dXJuIHUuaC5iKHQuZ3I4KHQpKX0sCnJTOmZ1bmN0aW9uKGEpe3ZhciB0LHMscj0iZWxlbWVu
dCB0YWcgdW5hdmFpbGFibGUiCnRyeXt0PUouUkUoYSkKaWYodHlwZW9mIHQuZ25zKGEpPT0ic3RyaW5n
IilyPXQuZ25zKGEpfWNhdGNoKHMpe0guUnUocyl9cmV0dXJuIHJ9LApxRDpmdW5jdGlvbihhLGIsYyl7
dmFyIHQscyxyLHE9bmV3IFAudnMoJC5YMyx1LmFvKSxwPW5ldyBQLlpmKHEsdS5FKSxvPW5ldyBYTUxI
dHRwUmVxdWVzdCgpCkMuRHQuZW8obyxiPT1udWxsPyJHRVQiOmIsYSwhMCkKYy5LKDAsbmV3IFcuYlUo
bykpCnQ9dS5hbgpzPXQuYihuZXcgVy5oSChvLHApKQp1Lk0uYihudWxsKQpyPXUucApXLkpFKG8sImxv
YWQiLHMsITEscikKVy5KRShvLCJlcnJvciIsdC5iKHAuZ1lKKCkpLCExLHIpCm8uc2VuZCgpCnJldHVy
biBxfSwKQzA6ZnVuY3Rpb24oYSxiKXthPTUzNjg3MDkxMSZhK2IKYT01MzY4NzA5MTEmYSsoKDUyNDI4
NyZhKTw8MTApCnJldHVybiBhXmE+Pj42fSwKckU6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQ9Vy5DMChX
LkMwKFcuQzAoVy5DMCgwLGEpLGIpLGMpLGQpLHM9NTM2ODcwOTExJnQrKCg2NzEwODg2MyZ0KTw8MykK
c149cz4+PjExCnJldHVybiA1MzY4NzA5MTEmcysoKDE2MzgzJnMpPDwxNSl9LApUTjpmdW5jdGlvbihh
LGIpe3ZhciB0LHM9YS5jbGFzc0xpc3QKZm9yKHQ9MDt0PDE7Kyt0KXMuYWRkKGJbdF0pfSwKSkU6ZnVu
Y3Rpb24oYSxiLGMsZCxlKXt2YXIgdD1XLmFGKG5ldyBXLnZOKGMpLHUuQikKaWYodCE9bnVsbCYmITAp
Si5kWihhLGIsdCwhMSkKcmV0dXJuIG5ldyBXLnhDKGEsYix0LCExLGUuQygieEM8MD4iKSl9LApUdzpm
dW5jdGlvbihhKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIikscz1uZXcgVy5tayh0LHdp
bmRvdy5sb2NhdGlvbikKcz1uZXcgVy5KUShzKQpzLkNZKGEpCnJldHVybiBzfSwKeVc6ZnVuY3Rpb24o
YSxiLGMsZCl7dS5oLmIoYSkKSC55KGIpCkgueShjKQp1Lk8uYihkKQpyZXR1cm4hMH0sClFXOmZ1bmN0
aW9uKGEsYixjLGQpe3ZhciB0LHMscgp1LmguYihhKQpILnkoYikKSC55KGMpCnQ9dS5PLmIoZCkuYQpz
PXQuYQpzLmhyZWY9YwpyPXMuaG9zdG5hbWUKdD10LmIKaWYoIShyPT10Lmhvc3RuYW1lJiZzLnBvcnQ9
PXQucG9ydCYmcy5wcm90b2NvbD09dC5wcm90b2NvbCkpaWYocj09PSIiKWlmKHMucG9ydD09PSIiKXt0
PXMucHJvdG9jb2wKdD10PT09IjoifHx0PT09IiJ9ZWxzZSB0PSExCmVsc2UgdD0hMQplbHNlIHQ9ITAK
cmV0dXJuIHR9LApCbDpmdW5jdGlvbigpe3ZhciB0PXUuTixzPVAudE0oQy5ReCx0KSxyPXUuZEcuYihu
ZXcgVy5JQSgpKSxxPUguVk0oWyJURU1QTEFURSJdLHUucykKdD1uZXcgVy5jdChzLFAuTHModCksUC5M
cyh0KSxQLkxzKHQpLG51bGwpCnQuQ1kobnVsbCxuZXcgSC5BOChDLlF4LHIsdS5kdikscSxudWxsKQpy
ZXR1cm4gdH0sCnFjOmZ1bmN0aW9uKGEpe3ZhciB0CmlmKGE9PW51bGwpcmV0dXJuCmlmKCJwb3N0TWVz
c2FnZSIgaW4gYSl7dD1XLlAxKGEpCnJldHVybiB0fWVsc2UgcmV0dXJuIHUuYVMuYihhKX0sClAxOmZ1
bmN0aW9uKGEpe2lmKGE9PT13aW5kb3cpcmV0dXJuIHUuY2kuYihhKQplbHNlIHJldHVybiBuZXcgVy5k
VygpfSwKYUY6ZnVuY3Rpb24oYSxiKXt2YXIgdD0kLlgzCmlmKHQ9PT1DLk5VKXJldHVybiBhCnJldHVy
biB0LlB5KGEsYil9LApxRTpmdW5jdGlvbiBxRSgpe30sCkdoOmZ1bmN0aW9uIEdoKCl7fSwKZlk6ZnVu
Y3Rpb24gZlkoKXt9LApuQjpmdW5jdGlvbiBuQigpe30sCkF6OmZ1bmN0aW9uIEF6KCl7fSwKUVA6ZnVu
Y3Rpb24gUVAoKXt9LApueDpmdW5jdGlvbiBueCgpe30sCm9KOmZ1bmN0aW9uIG9KKCl7fSwKaWQ6ZnVu
Y3Rpb24gaWQoKXt9LApRRjpmdW5jdGlvbiBRRigpe30sCk5oOmZ1bmN0aW9uIE5oKCl7fSwKSUI6ZnVu
Y3Rpb24gSUIoKXt9LApuNzpmdW5jdGlvbiBuNygpe30sCnd6OmZ1bmN0aW9uIHd6KGEsYil7dGhpcy5h
PWEKdGhpcy4kdGk9Yn0sCmN2OmZ1bmN0aW9uIGN2KCl7fSwKQ3Y6ZnVuY3Rpb24gQ3YoKXt9LAplYTpm
dW5jdGlvbiBlYSgpe30sCkQwOmZ1bmN0aW9uIEQwKCl7fSwKVDU6ZnVuY3Rpb24gVDUoKXt9LApoNDpm
dW5jdGlvbiBoNCgpe30sCmJyOmZ1bmN0aW9uIGJyKCl7fSwKVmI6ZnVuY3Rpb24gVmIoKXt9LApPNzpm
dW5jdGlvbiBPNygpe30sCmJVOmZ1bmN0aW9uIGJVKGEpe3RoaXMuYT1hfSwKaEg6ZnVuY3Rpb24gaEgo
YSxiKXt0aGlzLmE9YQp0aGlzLmI9Yn0sCndhOmZ1bmN0aW9uIHdhKCl7fSwKU2c6ZnVuY3Rpb24gU2co
KXt9LAp1ODpmdW5jdGlvbiB1OCgpe30sCkFqOmZ1bmN0aW9uIEFqKCl7fSwKZTc6ZnVuY3Rpb24gZTco
YSl7dGhpcy5hPWF9LAp1SDpmdW5jdGlvbiB1SCgpe30sCkJIOmZ1bmN0aW9uIEJIKCl7fSwKU046ZnVu
Y3Rpb24gU04oKXt9LApldzpmdW5jdGlvbiBldygpe30sCmxwOmZ1bmN0aW9uIGxwKCl7fSwKVGI6ZnVu
Y3Rpb24gVGIoKXt9LApJdjpmdW5jdGlvbiBJdigpe30sCkJUOmZ1bmN0aW9uIEJUKCl7fSwKeVk6ZnVu
Y3Rpb24geVkoKXt9LAp3NjpmdW5jdGlvbiB3Nigpe30sCks1OmZ1bmN0aW9uIEs1KCl7fSwKQ206ZnVu
Y3Rpb24gQ20oKXt9LApDUTpmdW5jdGlvbiBDUSgpe30sCnc0OmZ1bmN0aW9uIHc0KCl7fSwKcmg6ZnVu
Y3Rpb24gcmgoKXt9LApEOTpmdW5jdGlvbiBEOSgpe30sCmk3OmZ1bmN0aW9uIGk3KGEpe3RoaXMuYT1h
fSwKU3k6ZnVuY3Rpb24gU3koYSl7dGhpcy5hPWF9LApLUzpmdW5jdGlvbiBLUyhhLGIpe3RoaXMuYT1h
CnRoaXMuYj1ifSwKQTM6ZnVuY3Rpb24gQTMoYSxiKXt0aGlzLmE9YQp0aGlzLmI9Yn0sCkk0OmZ1bmN0
aW9uIEk0KGEpe3RoaXMuYT1hfSwKRms6ZnVuY3Rpb24gRmsoYSxiKXt0aGlzLmE9YQp0aGlzLiR0aT1i
fSwKUk86ZnVuY3Rpb24gUk8oYSxiLGMsZCl7dmFyIF89dGhpcwpfLmE9YQpfLmI9YgpfLmM9YwpfLiR0
aT1kfSwKQ3E6ZnVuY3Rpb24gQ3EoYSxiLGMsZCl7dmFyIF89dGhpcwpfLmE9YQpfLmI9YgpfLmM9Ywpf
LiR0aT1kfSwKeEM6ZnVuY3Rpb24geEMoYSxiLGMsZCxlKXt2YXIgXz10aGlzCl8uYj1hCl8uYz1iCl8u
ZD1jCl8uZT1kCl8uJHRpPWV9LAp2TjpmdW5jdGlvbiB2TihhKXt0aGlzLmE9YX0sCkpROmZ1bmN0aW9u
IEpRKGEpe3RoaXMuYT1hfSwKR206ZnVuY3Rpb24gR20oKXt9LAp2RDpmdW5jdGlvbiB2RChhKXt0aGlz
LmE9YX0sClV2OmZ1bmN0aW9uIFV2KGEpe3RoaXMuYT1hfSwKRWc6ZnVuY3Rpb24gRWcoYSxiLGMpe3Ro
aXMuYT1hCnRoaXMuYj1iCnRoaXMuYz1jfSwKbTY6ZnVuY3Rpb24gbTYoKXt9LApFbzpmdW5jdGlvbiBF
bygpe30sCldrOmZ1bmN0aW9uIFdrKCl7fSwKY3Q6ZnVuY3Rpb24gY3QoYSxiLGMsZCxlKXt2YXIgXz10
aGlzCl8uZT1hCl8uYT1iCl8uYj1jCl8uYz1kCl8uZD1lfSwKSUE6ZnVuY3Rpb24gSUEoKXt9LApPdzpm
dW5jdGlvbiBPdygpe30sClc5OmZ1bmN0aW9uIFc5KGEsYixjKXt2YXIgXz10aGlzCl8uYT1hCl8uYj1i
Cl8uYz0tMQpfLmQ9bnVsbApfLiR0aT1jfSwKZFc6ZnVuY3Rpb24gZFcoKXt9LAprRjpmdW5jdGlvbiBr
Rigpe30sCm1rOmZ1bmN0aW9uIG1rKGEsYil7dGhpcy5hPWEKdGhpcy5iPWJ9LApLbzpmdW5jdGlvbiBL
byhhKXt0aGlzLmE9YX0sCmZtOmZ1bmN0aW9uIGZtKGEpe3RoaXMuYT1hfSwKTGU6ZnVuY3Rpb24gTGUo
KXt9LApLNzpmdW5jdGlvbiBLNygpe30sCnJCOmZ1bmN0aW9uIHJCKCl7fSwKWFc6ZnVuY3Rpb24gWFco
KXt9LApvYTpmdW5jdGlvbiBvYSgpe319LFU9ewp5dTpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwLG8s
bj1ILlZNKFtdLHUuYlApCmZvcih0PUouVTYoYSkscz1KLklUKHUuUi5iKHQucShhLCJkZXRhaWxzIikp
KTtzLkYoKTspe3I9cy5nbCgpCnE9Si5VNihyKQpwPUgueShxLnEociwiZGVzY3JpcHRpb24iKSkKcT1x
LnEociwibGluayIpCmlmKHE9PW51bGwpcT1udWxsCmVsc2V7bz1KLlU2KHEpCnE9bmV3IFUuTWwoSC55
KG8ucShxLCJocmVmIikpLEguU2Moby5xKHEsImxpbmUiKSksSC55KG8ucShxLCJwYXRoIikpKX1DLk5t
LmkobixuZXcgVS51RihwLHEpKX1yZXR1cm4gbmV3IFUuZDIobixVLmpmKHQucShhLCJlZGl0cyIpKSxI
LnkodC5xKGEsImV4cGxhbmF0aW9uIikpLEguU2ModC5xKGEsImxpbmUiKSksSC55KHQucShhLCJwYXRo
IikpKX0sCmpmOmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxCmlmKGE9PW51bGwpdD1udWxsCmVsc2V7dD1I
LlZNKFtdLHUuZkEpCmZvcihzPUouSVQodS5SLmIoYSkpO3MuRigpOyl7cj1zLmdsKCkKcT1KLlU2KHIp
CkMuTm0uaSh0LG5ldyBVLlNlKEgueShxLnEociwiZGVzY3JpcHRpb24iKSksSC55KHEucShyLCJocmVm
IikpKSl9fXJldHVybiB0fSwKZDI6ZnVuY3Rpb24gZDIoYSxiLGMsZCxlKXt2YXIgXz10aGlzCl8uYT1h
Cl8uYj1iCl8uYz1jCl8uZD1kCl8uZT1lfSwKU2U6ZnVuY3Rpb24gU2UoYSxiKXt0aGlzLmE9YQp0aGlz
LmI9Yn0sCnVGOmZ1bmN0aW9uIHVGKGEsYil7dGhpcy5hPWEKdGhpcy5iPWJ9LApNbDpmdW5jdGlvbiBN
bChhLGIsYyl7dGhpcy5hPWEKdGhpcy5iPWIKdGhpcy5jPWN9fSxUPXtHVjpmdW5jdGlvbiBHVigpe319
LEw9ewpJcTpmdW5jdGlvbigpe0MuQlouQihkb2N1bWVudCwiRE9NQ29udGVudExvYWRlZCIsbmV3IEwu
ZSgpKQpDLm9sLkIod2luZG93LCJwb3BzdGF0ZSIsbmV3IEwuTCgpKX0sCmhPOmZ1bmN0aW9uKGEpe2lm
KDA+PWEubGVuZ3RoKXJldHVybiBILk9IKGEsMCkKaWYoYVswXSE9PSIvIilyZXR1cm4gSi5UMChkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCIucm9vdCIpLnRleHRDb250ZW50KSsiLyIrSC5kKGEpCmVsc2UgcmV0
dXJuIGF9LAprejpmdW5jdGlvbihhKXt2YXIgdCxzPXUuaC5hKGEucGFyZW50Tm9kZSkucXVlcnlTZWxl
Y3RvcigiOnNjb3BlID4gdWwiKSxyPXMuc3R5bGUscT0iIitDLkNELnpRKHMub2Zmc2V0SGVpZ2h0KSoy
KyJweCIKci5tYXhIZWlnaHQ9cQpyPUoucUYoYSkKcT1yLiR0aQp0PXEuQygifigxKSIpLmIobmV3IEwu
V3gocyxhKSkKdS5NLmIobnVsbCkKVy5KRShyLmEsci5iLHQsITEscS5kKX0sCnlYOmZ1bmN0aW9uKGEp
e3ZhciB0LHMscixxLHAsbz0icXVlcnlTZWxlY3RvckFsbCIsbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9y
KGEpLG09dS5oCm4udG9TdHJpbmcKSC5EaChtLG0sIlQiLG8pCnQ9dS5TCnM9bmV3IFcud3oobi5xdWVy
eVNlbGVjdG9yQWxsKCIubmF2LWxpbmsiKSx0KQpzLksocyxuZXcgTC5BTygpKQpILkRoKG0sbSwiVCIs
bykKcj1uZXcgVy53eihuLnF1ZXJ5U2VsZWN0b3JBbGwoIi5yZWdpb24iKSx0KQppZihyLmdBKHIpIT09
MCl7cT1uLnF1ZXJ5U2VsZWN0b3IoInRhYmxlW2RhdGEtcGF0aF0iKQpxLnRvU3RyaW5nCnIuSyhyLG5l
dyBMLkhvKHEuZ2V0QXR0cmlidXRlKCJkYXRhLSIrbmV3IFcuU3kobmV3IFcuaTcocSkpLk8oInBhdGgi
KSkpKX1ILkRoKG0sbSwiVCIsbykKcD1uZXcgVy53eihuLnF1ZXJ5U2VsZWN0b3JBbGwoIi5wb3N0LWxp
bmsiKSx0KQpwLksocCxuZXcgTC5JQygpKX0sCmFLOmZ1bmN0aW9uKGEpe3ZhciB0PVAuaEsoYSkuZ2hZ
KCkucSgwLCJsaW5lIikKcmV0dXJuIHQ9PW51bGw/bnVsbDpILkhwKHQsbnVsbCl9LApHNjpmdW5jdGlv
bihhKXt2YXIgdD1QLmhLKGEpLmdoWSgpLnEoMCwib2Zmc2V0IikKcmV0dXJuIHQ9PW51bGw/bnVsbDpI
LkhwKHQsbnVsbCl9LAp0MjpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixxLHAsbyxuPXt9CnUuVi5iKGEp
CnQ9bi5hPXUuaC5iKFcucWMoYS5jdXJyZW50VGFyZ2V0KSkuZ2V0QXR0cmlidXRlKCJocmVmIikKaWYo
Si56bCh0LCI/Iikpe3M9Qy54Qi5Oaih0LDAsQy54Qi5PWSh0LCI/IikpCm4uYT1zCnI9c31lbHNlIHI9
dAppZihiIT1udWxsKXtxPSQublUoKQpyPW4uYT1xLm81KEQubnIocS50TShiKSxyKSl9cD1MLkc2KHQp
Cm89TC5hSyh0KQppZihwIT1udWxsKUwuYWYocixwLG8sbmV3IEwublQobixwLG8pKQplbHNlIEwuYWYo
cixudWxsLG51bGwsbmV3IEwuQloobikpCmEucHJldmVudERlZmF1bHQoKX0sCnVtOmZ1bmN0aW9uKGEp
e3ZhciB0LHM9e30scj11LmguYShXLnFjKHUuVi5iKGEpLmN1cnJlbnRUYXJnZXQpKS5nZXRBdHRyaWJ1
dGUoImhyZWYiKQpzLmE9cgpyPUwuaE8ocikKcy5hPXIKdD11Lk4KVy5xRChyLCJQT1NUIixQLkVGKFsi
Q29udGVudC1UeXBlIiwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1VVEYtOCJdLHQsdCkpLlc3KG5l
dyBMLkZRKCksdS5QKS5PQShuZXcgTC50WShzKSl9LAp2VTpmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50
LHM9dS5oCkguRGgocyxzLCJUIiwicXVlcnlTZWxlY3RvckFsbCIpCnQ9bmV3IFcud3oodC5xdWVyeVNl
bGVjdG9yQWxsKCIuY29kZSIpLHUuUykKdC5LKHQsbmV3IEwuR0goKSl9LApoWDpmdW5jdGlvbihhLGIp
e3ZhciB0PXUuTgpXLnFEKEguZChhKSsiP3JlZ2lvbj1yZWdpb24mb2Zmc2V0PSIrSC5kKGIpLG51bGws
UC5FRihbIkNvbnRlbnQtVHlwZSIsImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9VVRGLTgiXSx0LHQp
KS5XNyhuZXcgTC5EVCgpLHUuUCkuT0EobmV3IEwuZUgoYSkpfSwKRzc6ZnVuY3Rpb24oYSxiLGMsZCl7
dmFyIHQscwppZighSi5yWShhKS5UYyhhLCIuZGFydCIpKXtMLkJFKGEsUC5FRihbInJlZ2lvbnMiLCIi
LCJuYXZpZ2F0aW9uQ29udGVudCIsIiIsImVkaXRzIixbXV0sdS5OLHUueikpCkwuQlgoYSxudWxsKQpp
ZihkIT1udWxsKWQuJDAoKQpyZXR1cm59dD1DLnhCLnRnKGEsIj8iKT9hKyImaW5saW5lPXRydWUiOmEr
Ij9pbmxpbmU9dHJ1ZSIKcz11Lk4KVy5xRCh0LG51bGwsUC5FRihbIkNvbnRlbnQtVHlwZSIsImFwcGxp
Y2F0aW9uL2pzb247IGNoYXJzZXQ9VVRGLTgiXSxzLHMpKS5XNyhuZXcgTC56RChhLGIsYyxkKSx1LlAp
Lk9BKG5ldyBMLk9FKGEpKX0sCkdlOmZ1bmN0aW9uKCl7dmFyIHQ9Ii9fcHJldmlldy9uYXZpZ2F0aW9u
VHJlZS5qc29uIixzPXUuTgpXLnFEKHQsbnVsbCxQLkVGKFsiQ29udGVudC1UeXBlIiwiYXBwbGljYXRp
b24vanNvbjsgY2hhcnNldD1VVEYtOCJdLHMscykpLlc3KG5ldyBMLlRXKCksdS5QKS5PQShuZXcgTC54
cih0KSl9LApxSjpmdW5jdGlvbihhLGIpe3ZhciB0CndpbmRvdwppZih0eXBlb2YgY29uc29sZSE9InVu
ZGVmaW5lZCIpd2luZG93LmNvbnNvbGUuZXJyb3IoYSkKd2luZG93CnQ9SC5kKGIpCmlmKHR5cGVvZiBj
b25zb2xlIT0idW5kZWZpbmVkIil3aW5kb3cuY29uc29sZS5lcnJvcih0KX0sCnFPOmZ1bmN0aW9uKGEp
e3ZhciB0PWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkscz10LmJvdHRvbSxyPXdpbmRvdy5pbm5lckhl
aWdodAppZih0eXBlb2YgciE9PSJudW1iZXIiKXJldHVybiBILnBZKHIpCmlmKHM+cilKLmRoKGEpCmVs
c2UgaWYodC50b3A8MClKLmRoKGEpfSwKZkc6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIKaWYoYSE9bnVs
bCl7dD1kb2N1bWVudApzPXQuZ2V0RWxlbWVudEJ5SWQoIm8iK0guZChhKSkKcj10LnF1ZXJ5U2VsZWN0
b3IoIi5saW5lLSIrSC5kKGIpKQppZihzIT1udWxsKXtMLnFPKHMpCkouZFIocykuaSgwLCJ0YXJnZXQi
KX1lbHNlIGlmKHIhPW51bGwpTC5xTyhyLnBhcmVudEVsZW1lbnQpCmlmKHIhPW51bGwpSi5kUih1Lmgu
YShyLnBhcmVudE5vZGUpKS5pKDAsImhpZ2hsaWdodCIpfWVsc2UgTC5xTyhkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidW5pdC1uYW1lIikpfSwKYWY6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscyxyPUwuRzYo
d2luZG93LmxvY2F0aW9uLmhyZWYpLHE9TC5hSyh3aW5kb3cubG9jYXRpb24uaHJlZikKaWYociE9bnVs
bCl7dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibyIrSC5kKHIpKQppZih0IT1udWxsKUouZFIodCku
UigwLCJ0YXJnZXQiKX1pZihxIT1udWxsKXtzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5saW5lLSIr
SC5kKHEpKQppZihzIT1udWxsKUouZFIocy5wYXJlbnRFbGVtZW50KS5SKDAsImhpZ2hsaWdodCIpfWlm
KGE9PXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSl7TC5mRyhiLGMpCmQuJDAoKX1lbHNlIEwuRzcoYSxi
LGMsZCl9LApMeDpmdW5jdGlvbihhLGIpe3ZhciB0CmlmKGE9PT0xKXQ9YgplbHNlIHQ9YisicyIKcmV0
dXJuIHR9LApUMTpmdW5jdGlvbihhNCl7dmFyIHQscyxyLHEscCxvLG4sbSxsLGssaixpLGgsZyxmLGUs
ZCxjLGIsYSxhMCxhMT1udWxsLGEyPWRvY3VtZW50LGEzPWEyLnF1ZXJ5U2VsZWN0b3IoIi5lZGl0LXBh
bmVsIC5wYW5lbC1jb250ZW50IikKSi5sNShhMywiIikKaWYoYTQ9PW51bGwpe2EyPWEyLmNyZWF0ZUVs
ZW1lbnQoInAiKQphMi50ZXh0Q29udGVudD0iU2VlIGRldGFpbHMgYWJvdXQgYSBwcm9wb3NlZCBlZGl0
LiIKdD11LlguYihILlZNKFsicGxhY2Vob2xkZXIiXSx1LnMpKQpzPUMuTHQuZ0QoYTIpCnMuVjEoMCkK
cy5GVigwLHQpCmEzLmFwcGVuZENoaWxkKGEyKQpyZXR1cm59cj1hNC5lCnQ9JC5uVSgpCnE9dC50TShy
KQpwPWE0LmMKbz10LkhQKHIsSi5UMChhMi5xdWVyeVNlbGVjdG9yKCIucm9vdCIpLnRleHRDb250ZW50
KSkKbj1hNC5kCnQ9YTIuY3JlYXRlRWxlbWVudCgicCIpCm09dS5oCm0uYihhMy5hcHBlbmRDaGlsZCh0
KSkuYXBwZW5kQ2hpbGQoYTIuY3JlYXRlVGV4dE5vZGUoSC5kKHApKyIgYXQgIitILmQobykrIjoiK0gu
ZChuKSsiLiIpKQp0PWE0LmEKaWYodC5sZW5ndGghPT0wKXtsPWEyLmNyZWF0ZUVsZW1lbnQoInAiKQps
LnRleHRDb250ZW50PSJFZGl0IHJhdGlvbmFsZToiCmEzLmFwcGVuZENoaWxkKGwpCmw9YTIuY3JlYXRl
RWxlbWVudCgidWwiKQprPW0uYihhMy5hcHBlbmRDaGlsZChsKSkKZm9yKGw9dC5sZW5ndGgsaj11Lmss
aT0wO2k8dC5sZW5ndGg7dC5sZW5ndGg9PT1sfHwoMCxILmxrKSh0KSwrK2kpe2g9dFtpXQpnPWEyLmNy
ZWF0ZUVsZW1lbnQoImxpIikKZj1rLmFwcGVuZENoaWxkKGcpCmYuYXBwZW5kQ2hpbGQoYTIuY3JlYXRl
VGV4dE5vZGUoaC5hKSkKZz1oLmIKaWYoZyE9bnVsbCl7ZT1nLmIKZi5hcHBlbmRDaGlsZChhMi5jcmVh
dGVUZXh0Tm9kZSgiICgiKSkKZD1hMi5jcmVhdGVFbGVtZW50KCJhIikKYz1qLmIoZi5hcHBlbmRDaGls
ZChkKSkKYy5hcHBlbmRDaGlsZChhMi5jcmVhdGVUZXh0Tm9kZShILmQoZy5jKSsiOiIrSC5kKGUpKSkK
Yj1nLmEKZz0kLm5VKCkKYy5zZXRBdHRyaWJ1dGUoImhyZWYiLGcubzUoZy5xNygwLHEsYixhMSxhMSxh
MSxhMSxhMSxhMSkpKQpjLmNsYXNzTGlzdC5hZGQoIm5hdi1saW5rIikKZi5hcHBlbmRDaGlsZChhMi5j
cmVhdGVUZXh0Tm9kZSgiKSIpKX19fXQ9YTQuYgppZih0IT1udWxsKWZvcihsPXQubGVuZ3RoLGk9MDtp
PHQubGVuZ3RoO3QubGVuZ3RoPT09bHx8KDAsSC5saykodCksKytpKXthPXRbaV0Kaj1hMi5jcmVhdGVF
bGVtZW50KCJwIikKYTA9bS5iKGEzLmFwcGVuZENoaWxkKGopKQpqPWEyLmNyZWF0ZUVsZW1lbnQoImEi
KQpjPW0uYihhMC5hcHBlbmRDaGlsZChqKSkKYy5hcHBlbmRDaGlsZChhMi5jcmVhdGVUZXh0Tm9kZShh
LmEpKQpjLnNldEF0dHJpYnV0ZSgiaHJlZiIsYS5iKQpKLmRSKGMpLmkoMCwicG9zdC1saW5rIil9fSwK
TEg6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwLG8sbixtLGwsayxqLGksaCxnLGYsZSxkPWRvY3Vt
ZW50LGM9ZC5xdWVyeVNlbGVjdG9yKCIuZWRpdC1saXN0IC5wYW5lbC1jb250ZW50IikKSi5sNShjLCIi
KQp0PWQuY3JlYXRlRWxlbWVudCgicCIpCnM9dS5oCnI9cy5iKGMuYXBwZW5kQ2hpbGQodCkpCnQ9Si5V
NihiKQpxPXQuZ0EoYikKaWYocT09PTApci5hcHBlbmRDaGlsZChkLmNyZWF0ZVRleHROb2RlKCJObyBw
cm9wb3NlZCBlZGl0cyIpKQplbHNlIHIuYXBwZW5kQ2hpbGQoZC5jcmVhdGVUZXh0Tm9kZSgiIitxKyIg
cHJvcG9zZWQgIitMLkx4KHEsImVkaXQiKSsiOiIpKQpwPWQuY3JlYXRlRWxlbWVudCgidWwiKQpvPXMu
YihjLmFwcGVuZENoaWxkKHApKQpmb3IodD10LmdreihiKSxwPXUuayxuPXUuQyxtPW4uQygifigxKSIp
LGw9dS5NLG49bi5kLGs9dS5hO3QuRigpOyl7aj1rLmIodC5nbCgpKQppPWQuY3JlYXRlRWxlbWVudCgi
bGkiKQpoPXMuYihvLmFwcGVuZENoaWxkKGkpKQpKLmRSKGgpLmkoMCwiZWRpdCIpCmk9ZC5jcmVhdGVF
bGVtZW50KCJhIikKZz1wLmIoaC5hcHBlbmRDaGlsZChpKSkKZy5jbGFzc0xpc3QuYWRkKCJlZGl0LWxp
bmsiKQpmPUguU2Moai5xKDAsIm9mZnNldCIpKQppPUguZChmKQpnLnNldEF0dHJpYnV0ZSgiZGF0YS0i
K25ldyBXLlN5KG5ldyBXLmk3KGcpKS5PKCJvZmZzZXQiKSxpKQplPUguU2Moai5xKDAsImxpbmUiKSkK
aT1ILmQoZSkKZy5zZXRBdHRyaWJ1dGUoImRhdGEtIituZXcgVy5TeShuZXcgVy5pNyhnKSkuTygibGlu
ZSIpLGkpCmcuYXBwZW5kQ2hpbGQoZC5jcmVhdGVUZXh0Tm9kZSgibGluZSAiK0guZChlKSkpCmk9bS5i
KG5ldyBMLkVFKGYsZSxhKSkKbC5iKG51bGwpClcuSkUoZywiY2xpY2siLGksITEsbikKaC5hcHBlbmRD
aGlsZChkLmNyZWF0ZVRleHROb2RlKCI6ICIrSC5kKGoucSgwLCJleHBsYW5hdGlvbiIpKSkpfUwuVDEo
bnVsbCl9LApGcjpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyLHE9d2luZG93LmxvY2F0aW9uLHA9UC5o
SygocSYmQy5FeCkuZ0RyKHEpK0guZChhKSkKcT11LnoKdD1QLkZsKHUuTixxKQppZihiIT1udWxsKXQu
WSgwLCJvZmZzZXQiLEguZChiKSkKaWYoYyE9bnVsbCl0LlkoMCwibGluZSIsSC5kKGMpKQpwPXAubm0o
MCx0LmE9PT0wP251bGw6dCkKcz13aW5kb3cuaGlzdG9yeQpyPXAudygwKQpzLnRvU3RyaW5nCnMucHVz
aFN0YXRlKG5ldyBQLkJmKFtdLFtdKS5QdihQLkZsKHEscSkpLCIiLHIpfSwKRW46ZnVuY3Rpb24oYSl7
dmFyIHQ9Si5iYihkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIucm9vdCIpLnRleHRDb250ZW50LCIvIikK
aWYoQy54Qi5uKGEsdCkpcmV0dXJuIEMueEIuRyhhLHQubGVuZ3RoKQplbHNlIHJldHVybiBhfSwKQlg6
ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHI9e30Kci5hPWEKYT1MLkVuKGEpCnIuYT1hCnQ9ZG9jdW1lbnQK
dC5xdWVyeVNlbGVjdG9yKCIjdW5pdC1uYW1lIikudGV4dENvbnRlbnQ9YQpzPXUuaApILkRoKHMscywi
VCIsInF1ZXJ5U2VsZWN0b3JBbGwiKQp0PW5ldyBXLnd6KHQucXVlcnlTZWxlY3RvckFsbCgiLm5hdi1w
YW5lbCAubmF2LWxpbmsiKSx1LlMpCnQuSyh0LG5ldyBMLlZTKHIpKX0sCkJFOmZ1bmN0aW9uKGEsYil7
dmFyIHQ9Ii5yZWdpb25zIixzPWRvY3VtZW50LHI9cy5xdWVyeVNlbGVjdG9yKHQpLHE9cy5xdWVyeVNl
bGVjdG9yKCIuY29kZSIpCkoudEgocixILnkoYi5xKDAsInJlZ2lvbnMiKSksJC5LRygpKQpKLnRIKHEs
SC55KGIucSgwLCJuYXZpZ2F0aW9uQ29udGVudCIpKSwkLktHKCkpCkwuTEgoYSx1LmouYihiLnEoMCwi
ZWRpdHMiKSkpCkwudlUoKQpMLnlYKCIuY29kZSIpCkwueVgodCl9LAp0WDpmdW5jdGlvbihhLGIpe3Zh
ciB0LHMscixxLHAsbyxuLG0sbCxrLGo9Im5hbWUiLGk9ZG9jdW1lbnQsaD1pLmNyZWF0ZUVsZW1lbnQo
InVsIiksZz11LmgsZj1nLmIoYS5hcHBlbmRDaGlsZChoKSkKZm9yKGg9Si5JVCh1LlIuYihiKSksdD11
Lk07aC5GKCk7KXtzPWguZ2woKQpyPWkuY3JlYXRlRWxlbWVudCgibGkiKQpxPWcuYihmLmFwcGVuZENo
aWxkKHIpKQpyPUouVTYocykKcD1KLlJFKHEpCmlmKEouUk0oci5xKHMsInR5cGUiKSwiZGlyZWN0b3J5
Iikpe3AuZ0QocSkuaSgwLCJkaXIiKQpwPWkuY3JlYXRlRWxlbWVudCgic3BhbiIpCm89Zy5iKHEuYXBw
ZW5kQ2hpbGQocCkpCnA9Si5SRShvKQpwLmdEKG8pLmkoMCwiYXJyb3ciKQpwLnNoZihvLCImI3gyNUJD
OyIpCnA9aS5jcmVhdGVFbGVtZW50KCJzcGFuIikKSi5sNShnLmIocS5hcHBlbmRDaGlsZChwKSksIiYj
eDFGNEMxOyIpCnEuYXBwZW5kQ2hpbGQoaS5jcmVhdGVUZXh0Tm9kZShILnkoci5xKHMsaikpKSkKTC50
WChxLHIucShzLCJzdWJ0cmVlIikpCkwua3oobyl9ZWxzZXtwLnNoZihxLCImI3gxRjRDNDsiKQpwPWku
Y3JlYXRlRWxlbWVudCgiYSIpCm49Zy5iKHEuYXBwZW5kQ2hpbGQocCkpCnA9Si5SRShuKQpwLmdEKG4p
LmkoMCwibmF2LWxpbmsiKQptPUgueShyLnEocywicGF0aCIpKQpuLnNldEF0dHJpYnV0ZSgiZGF0YS0i
K25ldyBXLlN5KG5ldyBXLmk3KG4pKS5PKGopLG0pCm4uc2V0QXR0cmlidXRlKCJocmVmIixILnkoci5x
KHMsImhyZWYiKSkpCm4uYXBwZW5kQ2hpbGQoaS5jcmVhdGVUZXh0Tm9kZShILnkoci5xKHMsaikpKSkK
cD1wLmdWbChuKQptPXAuJHRpCm0uQygifigxKSIpLmIoTC5YTigpKQp0LmIobnVsbCkKVy5KRShwLmEs
cC5iLEwuWE4oKSwhMSxtLmQpCmw9SC5TYyhyLnEocywiZWRpdENvdW50IikpCmlmKHR5cGVvZiBsIT09
Im51bWJlciIpcmV0dXJuIGwub3MoKQppZihsPjApe3I9aS5jcmVhdGVFbGVtZW50KCJzcGFuIikKaz1n
LmIocS5hcHBlbmRDaGlsZChyKSkKSi5kUihrKS5pKDAsImVkaXQtY291bnQiKQpyPSIiK2wrIiAiCmlm
KGw9PT0xKXA9ImVkaXQiCmVsc2UgcD0iZWRpdHMiCmsuc2V0QXR0cmlidXRlKCJ0aXRsZSIscitwKQpr
LmFwcGVuZENoaWxkKGkuY3JlYXRlVGV4dE5vZGUoQy5qbi53KGwpKSl9fX19LAplOmZ1bmN0aW9uIGUo
KXt9LApWVzpmdW5jdGlvbiBWVyhhLGIsYyl7dGhpcy5hPWEKdGhpcy5iPWIKdGhpcy5jPWN9LApMOmZ1
bmN0aW9uIEwoKXt9LApXeDpmdW5jdGlvbiBXeChhLGIpe3RoaXMuYT1hCnRoaXMuYj1ifSwKQU86ZnVu
Y3Rpb24gQU8oKXt9LApkTjpmdW5jdGlvbiBkTigpe30sCkhvOmZ1bmN0aW9uIEhvKGEpe3RoaXMuYT1h
fSwKeHo6ZnVuY3Rpb24geHooYSxiKXt0aGlzLmE9YQp0aGlzLmI9Yn0sCklDOmZ1bmN0aW9uIElDKCl7
fSwKblQ6ZnVuY3Rpb24gblQoYSxiLGMpe3RoaXMuYT1hCnRoaXMuYj1iCnRoaXMuYz1jfSwKQlo6ZnVu
Y3Rpb24gQlooYSl7dGhpcy5hPWF9LApGUTpmdW5jdGlvbiBGUSgpe30sCnRZOmZ1bmN0aW9uIHRZKGEp
e3RoaXMuYT1hfSwKR0g6ZnVuY3Rpb24gR0goKXt9LApEVDpmdW5jdGlvbiBEVCgpe30sCmVIOmZ1bmN0
aW9uIGVIKGEpe3RoaXMuYT1hfSwKekQ6ZnVuY3Rpb24gekQoYSxiLGMsZCl7dmFyIF89dGhpcwpfLmE9
YQpfLmI9YgpfLmM9YwpfLmQ9ZH0sCk9FOmZ1bmN0aW9uIE9FKGEpe3RoaXMuYT1hfSwKVFc6ZnVuY3Rp
b24gVFcoKXt9LAp4cjpmdW5jdGlvbiB4cihhKXt0aGlzLmE9YX0sCkVFOmZ1bmN0aW9uIEVFKGEsYixj
KXt0aGlzLmE9YQp0aGlzLmI9Ygp0aGlzLmM9Y30sClFMOmZ1bmN0aW9uIFFMKGEsYil7dGhpcy5hPWEK
dGhpcy5iPWJ9LApWUzpmdW5jdGlvbiBWUyhhKXt0aGlzLmE9YX0sClhBOmZ1bmN0aW9uIFhBKCl7fSwK
SVY6ZnVuY3Rpb24gSVYoYSxiLGMsZCl7dmFyIF89dGhpcwpfLmQ9YQpfLmU9YgpfLmY9YwpfLnI9ZH19
LE09ewpZRjpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixxLHAsbyxuCmZvcih0PWIubGVuZ3RoLHM9MTtz
PHQ7KytzKXtpZihiW3NdPT1udWxsfHxiW3MtMV0hPW51bGwpY29udGludWUKZm9yKDt0Pj0xO3Q9cil7
cj10LTEKaWYoYltyXSE9bnVsbClicmVha31xPW5ldyBQLlJuKCIiKQpwPWErIigiCnEuYT1wCm89SC5x
QyhiLDAsdCxILnQ2KGIpLmQpCm49by4kdGkKbj1wK25ldyBILkE4KG8sbi5DKCJxVShhTC5FKSIpLmIo
bmV3IE0uTm8oKSksbi5DKCJBODxhTC5FLHFVPiIpKS5IKDAsIiwgIikKcS5hPW4KcS5hPW4rKCIpOiBw
YXJ0ICIrKHMtMSkrIiB3YXMgbnVsbCwgYnV0IHBhcnQgIitzKyIgd2FzIG5vdC4iKQp0aHJvdyBILmIo
UC54WShxLncoMCkpKX19LApsSTpmdW5jdGlvbiBsSShhKXt0aGlzLmE9YX0sCk1pOmZ1bmN0aW9uIE1p
KCl7fSwKcTc6ZnVuY3Rpb24gcTcoKXt9LApObzpmdW5jdGlvbiBObygpe319LEI9e0x1OmZ1bmN0aW9u
IEx1KCl7fSwKT1M6ZnVuY3Rpb24oYSl7dmFyIHQKaWYoIShhPj02NSYmYTw9OTApKXQ9YT49OTcmJmE8
PTEyMgplbHNlIHQ9ITAKcmV0dXJuIHR9LApZdTpmdW5jdGlvbihhLGIpe3ZhciB0PWEubGVuZ3RoLHM9
YisyCmlmKHQ8cylyZXR1cm4hMQppZighQi5PUyhDLnhCLm0oYSxiKSkpcmV0dXJuITEKaWYoQy54Qi5t
KGEsYisxKSE9PTU4KXJldHVybiExCmlmKHQ9PT1zKXJldHVybiEwCnJldHVybiBDLnhCLm0oYSxzKT09
PTQ3fX0sWD17CkNMOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyLHEscCxvPWIueFooYSkKYi5oSyhhKQpp
ZihvIT1udWxsKWE9Si5LVihhLG8ubGVuZ3RoKQp0PXUucwpzPUguVk0oW10sdCkKcj1ILlZNKFtdLHQp
CnQ9YS5sZW5ndGgKaWYodCE9PTAmJmIucjQoQy54Qi5XKGEsMCkpKXtpZigwPj10KXJldHVybiBILk9I
KGEsMCkKQy5ObS5pKHIsYVswXSkKcT0xfWVsc2V7Qy5ObS5pKHIsIiIpCnE9MH1mb3IocD1xO3A8dDsr
K3ApaWYoYi5yNChDLnhCLlcoYSxwKSkpe0MuTm0uaShzLEMueEIuTmooYSxxLHApKQpDLk5tLmkocixh
W3BdKQpxPXArMX1pZihxPHQpe0MuTm0uaShzLEMueEIuRyhhLHEpKQpDLk5tLmkociwiIil9cmV0dXJu
IG5ldyBYLldEKGIsbyxzLHIpfSwKV0Q6ZnVuY3Rpb24gV0QoYSxiLGMsZCl7dmFyIF89dGhpcwpfLmE9
YQpfLmI9YgpfLmQ9YwpfLmU9ZH0sCnFSOmZ1bmN0aW9uIHFSKGEpe3RoaXMuYT1hfSwKSlQ6ZnVuY3Rp
b24oYSl7cmV0dXJuIG5ldyBYLmR2KGEpfSwKZHY6ZnVuY3Rpb24gZHYoYSl7dGhpcy5hPWF9fSxPPXsK
Umg6ZnVuY3Rpb24oKXt2YXIgdCxzLHIscSxwLG8sbixtLGwsayxqLGk9bnVsbAppZihQLnVvKCkuZ0Zp
KCkhPT0iZmlsZSIpcmV0dXJuICQuRWIoKQp0PVAudW8oKQppZighQy54Qi5UYyh0LmdJaSh0KSwiLyIp
KXJldHVybiAkLkViKCkKcz1QLlBpKGksMCwwKQpyPVAuelIoaSwwLDApCnE9UC5PZShpLDAsMCwhMSkK
cD1QLmxlKGksMCwwLGkpCm89UC50RyhpLDAsMCkKbj1QLndCKGkscykKbT1zPT09ImZpbGUiCmlmKHE9
PW51bGwpdD1yLmxlbmd0aCE9PTB8fG4hPW51bGx8fG0KZWxzZSB0PSExCmlmKHQpcT0iIgp0PXE9PW51
bGwKbD0hdAprPVAua2EoImEvYiIsMCwzLGkscyxsKQpqPXMubGVuZ3RoPT09MAppZihqJiZ0JiYhQy54
Qi5uKGssIi8iKSlrPVAud0Yoaywhanx8bCkKZWxzZSBrPVAueGUoaykKaWYobmV3IFAuRG4ocyxyLHQm
JkMueEIubihrLCIvLyIpPyIiOnEsbixrLHAsbykudDQoKT09PSJhXFxiIilyZXR1cm4gJC5LaygpCnJl
dHVybiAkLmJEKCl9LAp6TDpmdW5jdGlvbiB6TCgpe319LEU9e09GOmZ1bmN0aW9uIE9GKGEsYixjKXt0
aGlzLmQ9YQp0aGlzLmU9Ygp0aGlzLmY9Y319LEY9e3J1OmZ1bmN0aW9uIHJ1KGEsYixjLGQpe3ZhciBf
PXRoaXMKXy5kPWEKXy5lPWIKXy5mPWMKXy5yPWR9fSxEPXsKUlg6ZnVuY3Rpb24oKXt2YXIgdCxzLHI9
UC51bygpCmlmKEouUk0ociwkLkk2KSlyZXR1cm4gJC5GZgokLkk2PXIKaWYoJC5IaygpPT0kLkViKCkp
cmV0dXJuICQuRmY9ci5aSSgiLiIpLncoMCkKZWxzZXt0PXIudDQoKQpzPXQubGVuZ3RoLTEKcmV0dXJu
ICQuRmY9cz09PTA/dDpDLnhCLk5qKHQsMCxzKX19LApucjpmdW5jdGlvbihhLGIpe3ZhciB0PW51bGwK
cmV0dXJuICQublUoKS5xNygwLGEsYix0LHQsdCx0LHQsdCl9fQp2YXIgdz1bQyxILEosUCxXLFUsVCxM
LE0sQixYLE8sRSxGLERdCmh1bmtIZWxwZXJzLnNldEZ1bmN0aW9uTmFtZXNJZk5lY2Vzc2FyeSh3KQp2
YXIgJD17fQpILmVvLnByb3RvdHlwZT17fQpKLnZCLnByb3RvdHlwZT17CkROOmZ1bmN0aW9uKGEsYil7
cmV0dXJuIGE9PT1ifSwKZ2lPOmZ1bmN0aW9uKGEpe3JldHVybiBILmVRKGEpfSwKdzpmdW5jdGlvbihh
KXtyZXR1cm4iSW5zdGFuY2Ugb2YgJyIrSC5kKEguTShhKSkrIicifSwKZTc6ZnVuY3Rpb24oYSxiKXt1
Lm8uYihiKQp0aHJvdyBILmIoUC5scihhLGIuZ1dhKCksYi5nbmQoKSxiLmdWbSgpKSl9fQpKLnlFLnBy
b3RvdHlwZT17Cnc6ZnVuY3Rpb24oYSl7cmV0dXJuIFN0cmluZyhhKX0sCmdpTzpmdW5jdGlvbihhKXty
ZXR1cm4gYT81MTkwMTg6MjE4MTU5fSwKJGlhMjoxfQpKLllFLnByb3RvdHlwZT17CkROOmZ1bmN0aW9u
KGEsYil7cmV0dXJuIG51bGw9PWJ9LAp3OmZ1bmN0aW9uKGEpe3JldHVybiJudWxsIn0sCmdpTzpmdW5j
dGlvbihhKXtyZXR1cm4gMH0sCmU3OmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuU2ooYSx1Lm8uYihi
KSl9LAokaWM4OjF9CkouTUYucHJvdG90eXBlPXsKZ2lPOmZ1bmN0aW9uKGEpe3JldHVybiAwfSwKdzpm
dW5jdGlvbihhKXtyZXR1cm4gU3RyaW5nKGEpfSwKJGl2bToxfQpKLmlDLnByb3RvdHlwZT17fQpKLmtk
LnByb3RvdHlwZT17fQpKLmM1LnByb3RvdHlwZT17Cnc6ZnVuY3Rpb24oYSl7dmFyIHQ9YVskLncoKV0K
aWYodD09bnVsbClyZXR1cm4gdGhpcy50KGEpCnJldHVybiJKYXZhU2NyaXB0IGZ1bmN0aW9uIGZvciAi
K0guZChKLmoodCkpfSwKJFM6ZnVuY3Rpb24oKXtyZXR1cm57ZnVuYzoxLG9wdDpbLCwsLCwsLCwsLCws
LCwsLF19fSwKJGlFSDoxfQpKLmpkLnByb3RvdHlwZT17Cmk6ZnVuY3Rpb24oYSxiKXtILnQ2KGEpLmQu
YihiKQppZighIWEuZml4ZWQkbGVuZ3RoKUgudmgoUC5MNCgiYWRkIikpCmEucHVzaChiKX0sClc0OmZ1
bmN0aW9uKGEsYil7dmFyIHQKaWYoISFhLmZpeGVkJGxlbmd0aClILnZoKFAuTDQoInJlbW92ZUF0Iikp
CnQ9YS5sZW5ndGgKaWYoYj49dCl0aHJvdyBILmIoUC54KGIsbnVsbCkpCnJldHVybiBhLnNwbGljZShi
LDEpWzBdfSwKVUc6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscgpILnQ2KGEpLkMoImNYPDE+IikuYihj
KQppZighIWEuZml4ZWQkbGVuZ3RoKUgudmgoUC5MNCgiaW5zZXJ0QWxsIikpCnQ9YS5sZW5ndGgKUC53
QShiLDAsdCwiaW5kZXgiKQpzPWMubGVuZ3RoCnRoaXMuc0EoYSx0K3MpCnI9YitzCnRoaXMuWVcoYSxy
LGEubGVuZ3RoLGEsYikKdGhpcy52ZyhhLGIscixjKX0sCm12OmZ1bmN0aW9uKGEpe2lmKCEhYS5maXhl
ZCRsZW5ndGgpSC52aChQLkw0KCJyZW1vdmVMYXN0IikpCmlmKGEubGVuZ3RoPT09MCl0aHJvdyBILmIo
SC5IWShhLC0xKSkKcmV0dXJuIGEucG9wKCl9LApGVjpmdW5jdGlvbihhLGIpe3ZhciB0CkgudDYoYSku
QygiY1g8MT4iKS5iKGIpCmlmKCEhYS5maXhlZCRsZW5ndGgpSC52aChQLkw0KCJhZGRBbGwiKSkKZm9y
KHQ9Si5JVChiKTt0LkYoKTspYS5wdXNoKHQuZ2woKSl9LApLOmZ1bmN0aW9uKGEsYil7dmFyIHQscwpI
LnQ2KGEpLkMoIn4oMSkiKS5iKGIpCnQ9YS5sZW5ndGgKZm9yKHM9MDtzPHQ7KytzKXtiLiQxKGFbc10p
CmlmKGEubGVuZ3RoIT09dCl0aHJvdyBILmIoUC5hNChhKSl9fSwKRTI6ZnVuY3Rpb24oYSxiLGMpe3Zh
ciB0PUgudDYoYSkKcmV0dXJuIG5ldyBILkE4KGEsdC5LcShjKS5DKCIxKDIpIikuYihiKSx0LkMoIkA8
MT4iKS5LcShjKS5DKCJBODwxLDI+IikpfSwKSDpmdW5jdGlvbihhLGIpe3ZhciB0LHM9bmV3IEFycmF5
KGEubGVuZ3RoKQpzLmZpeGVkJGxlbmd0aD1BcnJheQpmb3IodD0wO3Q8YS5sZW5ndGg7Kyt0KXRoaXMu
WShzLHQsSC5kKGFbdF0pKQpyZXR1cm4gcy5qb2luKGIpfSwKTjA6ZnVuY3Rpb24oYSxiLGMsZCl7dmFy
IHQscyxyCmQuYihiKQpILnQ2KGEpLktxKGQpLkMoIjEoMSwyKSIpLmIoYykKdD1hLmxlbmd0aApmb3Io
cz1iLHI9MDtyPHQ7KytyKXtzPWMuJDIocyxhW3JdKQppZihhLmxlbmd0aCE9PXQpdGhyb3cgSC5iKFAu
YTQoYSkpfXJldHVybiBzfSwKRTpmdW5jdGlvbihhLGIpe2lmKGI8MHx8Yj49YS5sZW5ndGgpcmV0dXJu
IEguT0goYSxiKQpyZXR1cm4gYVtiXX0sCmFNOmZ1bmN0aW9uKGEsYixjKXtpZihiPDB8fGI+YS5sZW5n
dGgpdGhyb3cgSC5iKFAuVEUoYiwwLGEubGVuZ3RoLCJzdGFydCIsbnVsbCkpCmlmKGM8Ynx8Yz5hLmxl
bmd0aCl0aHJvdyBILmIoUC5URShjLGIsYS5sZW5ndGgsImVuZCIsbnVsbCkpCmlmKGI9PT1jKXJldHVy
biBILlZNKFtdLEgudDYoYSkpCnJldHVybiBILlZNKGEuc2xpY2UoYixjKSxILnQ2KGEpKX0sCmdyWjpm
dW5jdGlvbihhKXt2YXIgdD1hLmxlbmd0aAppZih0PjApcmV0dXJuIGFbdC0xXQp0aHJvdyBILmIoSC5X
cCgpKX0sCllXOmZ1bmN0aW9uKGEsYixjLGQsZSl7dmFyIHQscyxyPUgudDYoYSkKci5DKCJjWDwxPiIp
LmIoZCkKaWYoISFhLmltbXV0YWJsZSRsaXN0KUgudmgoUC5MNCgic2V0UmFuZ2UiKSkKUC5qQihiLGMs
YS5sZW5ndGgpCnQ9Yy1iCmlmKHQ9PT0wKXJldHVybgpQLmsxKGUsInNraXBDb3VudCIpCnIuQygiek08
MT4iKS5iKGQpCnI9Si5VNihkKQppZihlK3Q+ci5nQShkKSl0aHJvdyBILmIoSC5hcigpKQppZihlPGIp
Zm9yKHM9dC0xO3M+PTA7LS1zKWFbYitzXT1yLnEoZCxlK3MpCmVsc2UgZm9yKHM9MDtzPHQ7KytzKWFb
YitzXT1yLnEoZCxlK3MpfSwKdmc6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0dXJuIHRoaXMuWVcoYSxiLGMs
ZCwwKX0sClZyOmZ1bmN0aW9uKGEsYil7dmFyIHQscwpILnQ2KGEpLkMoImEyKDEpIikuYihiKQp0PWEu
bGVuZ3RoCmZvcihzPTA7czx0Oysrcyl7aWYoSC5vVChiLiQxKGFbc10pKSlyZXR1cm4hMAppZihhLmxl
bmd0aCE9PXQpdGhyb3cgSC5iKFAuYTQoYSkpfXJldHVybiExfSwKdGc6ZnVuY3Rpb24oYSxiKXt2YXIg
dApmb3IodD0wO3Q8YS5sZW5ndGg7Kyt0KWlmKEouUk0oYVt0XSxiKSlyZXR1cm4hMApyZXR1cm4hMX0s
Cnc6ZnVuY3Rpb24oYSl7cmV0dXJuIFAuV0UoYSwiWyIsIl0iKX0sCmdrejpmdW5jdGlvbihhKXtyZXR1
cm4gbmV3IEoubTEoYSxhLmxlbmd0aCxILnQ2KGEpLkMoIm0xPDE+IikpfSwKZ2lPOmZ1bmN0aW9uKGEp
e3JldHVybiBILmVRKGEpfSwKZ0E6ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGVuZ3RofSwKc0E6ZnVuY3Rp
b24oYSxiKXtpZighIWEuZml4ZWQkbGVuZ3RoKUgudmgoUC5MNCgic2V0IGxlbmd0aCIpKQppZihiPDAp
dGhyb3cgSC5iKFAuVEUoYiwwLG51bGwsIm5ld0xlbmd0aCIsbnVsbCkpCmEubGVuZ3RoPWJ9LApxOmZ1
bmN0aW9uKGEsYil7SC5TYyhiKQppZihiPj1hLmxlbmd0aHx8YjwwKXRocm93IEguYihILkhZKGEsYikp
CnJldHVybiBhW2JdfSwKWTpmdW5jdGlvbihhLGIsYyl7SC50NihhKS5kLmIoYykKaWYoISFhLmltbXV0
YWJsZSRsaXN0KUgudmgoUC5MNCgiaW5kZXhlZCBzZXQiKSkKaWYoYj49YS5sZW5ndGh8fGI8MCl0aHJv
dyBILmIoSC5IWShhLGIpKQphW2JdPWN9LAokaWNYOjEsCiRpek06MX0KSi5Qby5wcm90b3R5cGU9e30K
Si5tMS5wcm90b3R5cGU9ewpnbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmR9LApGOmZ1bmN0aW9uKCl7
dmFyIHQscz10aGlzLHI9cy5hLHE9ci5sZW5ndGgKaWYocy5iIT09cSl0aHJvdyBILmIoSC5sayhyKSkK
dD1zLmMKaWYodD49cSl7cy5zTShudWxsKQpyZXR1cm4hMX1zLnNNKHJbdF0pOysrcy5jCnJldHVybiEw
fSwKc006ZnVuY3Rpb24oYSl7dGhpcy5kPXRoaXMuJHRpLmQuYihhKX0sCiRpQW46MX0KSi5xSS5wcm90
b3R5cGU9ewp5dTpmdW5jdGlvbihhKXt2YXIgdAppZihhPj0tMjE0NzQ4MzY0OCYmYTw9MjE0NzQ4MzY0
NylyZXR1cm4gYXwwCmlmKGlzRmluaXRlKGEpKXt0PWE8MD9NYXRoLmNlaWwoYSk6TWF0aC5mbG9vcihh
KQpyZXR1cm4gdCswfXRocm93IEguYihQLkw0KCIiK2ErIi50b0ludCgpIikpfSwKelE6ZnVuY3Rpb24o
YSl7aWYoYT4wKXtpZihhIT09MS8wKXJldHVybiBNYXRoLnJvdW5kKGEpfWVsc2UgaWYoYT4tMS8wKXJl
dHVybiAwLU1hdGgucm91bmQoMC1hKQp0aHJvdyBILmIoUC5MNCgiIithKyIucm91bmQoKSIpKX0sClda
OmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyLHEKaWYoYjwyfHxiPjM2KXRocm93IEguYihQLlRFKGIsMiwz
NiwicmFkaXgiLG51bGwpKQp0PWEudG9TdHJpbmcoYikKaWYoQy54Qi5tKHQsdC5sZW5ndGgtMSkhPT00
MSlyZXR1cm4gdApzPS9eKFtcZGEtel0rKSg/OlwuKFtcZGEtel0rKSk/XChlXCsoXGQrKVwpJC8uZXhl
Yyh0KQppZihzPT1udWxsKUgudmgoUC5MNCgiVW5leHBlY3RlZCB0b1N0cmluZyByZXN1bHQ6ICIrdCkp
CnI9cy5sZW5ndGgKaWYoMT49cilyZXR1cm4gSC5PSChzLDEpCnQ9c1sxXQppZigzPj1yKXJldHVybiBI
Lk9IKHMsMykKcT0rc1szXQpyPXNbMl0KaWYociE9bnVsbCl7dCs9cgpxLT1yLmxlbmd0aH1yZXR1cm4g
dCtDLnhCLkl4KCIwIixxKX0sCnc6ZnVuY3Rpb24oYSl7aWYoYT09PTAmJjEvYTwwKXJldHVybiItMC4w
IgplbHNlIHJldHVybiIiK2F9LApnaU86ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHEscD1hfDAKaWYoYT09
PXApcmV0dXJuIDUzNjg3MDkxMSZwCnQ9TWF0aC5hYnMoYSkKcz1NYXRoLmxvZyh0KS8wLjY5MzE0NzE4
MDU1OTk0NTN8MApyPU1hdGgucG93KDIscykKcT10PDE/dC9yOnIvdApyZXR1cm4gNTM2ODcwOTExJigo
cSo5MDA3MTk5MjU0NzQwOTkyfDApKyhxKjM1NDIyNDMxODExNzY1MjF8MCkpKjU5OTE5NytzKjEyNTl9
LAp6WTpmdW5jdGlvbihhLGIpe3ZhciB0PWElYgppZih0PT09MClyZXR1cm4gMAppZih0PjApcmV0dXJu
IHQKaWYoYjwwKXJldHVybiB0LWIKZWxzZSByZXR1cm4gdCtifSwKd0c6ZnVuY3Rpb24oYSxiKXt2YXIg
dAppZihhPjApdD10aGlzLnAzKGEsYikKZWxzZXt0PWI+MzE/MzE6Ygp0PWE+PnQ+Pj4wfXJldHVybiB0
fSwKYmY6ZnVuY3Rpb24oYSxiKXtpZihiPDApdGhyb3cgSC5iKEgudEwoYikpCnJldHVybiB0aGlzLnAz
KGEsYil9LApwMzpmdW5jdGlvbihhLGIpe3JldHVybiBiPjMxPzA6YT4+PmJ9LAokaUNQOjEsCiRpRks6
MX0KSi51ci5wcm90b3R5cGU9eyRpS046MX0KSi5WQS5wcm90b3R5cGU9e30KSi5Eci5wcm90b3R5cGU9
ewptOmZ1bmN0aW9uKGEsYil7aWYoYjwwKXRocm93IEguYihILkhZKGEsYikpCmlmKGI+PWEubGVuZ3Ro
KUgudmgoSC5IWShhLGIpKQpyZXR1cm4gYS5jaGFyQ29kZUF0KGIpfSwKVzpmdW5jdGlvbihhLGIpe2lm
KGI+PWEubGVuZ3RoKXRocm93IEguYihILkhZKGEsYikpCnJldHVybiBhLmNoYXJDb2RlQXQoYil9LApk
ZDpmdW5jdGlvbihhLGIpe3JldHVybiBuZXcgSC51bihiLGEsMCl9LApoOmZ1bmN0aW9uKGEsYil7aWYo
dHlwZW9mIGIhPSJzdHJpbmciKXRocm93IEguYihQLkwzKGIsbnVsbCxudWxsKSkKcmV0dXJuIGErYn0s
ClRjOmZ1bmN0aW9uKGEsYil7dmFyIHQ9Yi5sZW5ndGgscz1hLmxlbmd0aAppZih0PnMpcmV0dXJuITEK
cmV0dXJuIGI9PT10aGlzLkcoYSxzLXQpfSwKaTc6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscwpjPVAu
akIoYixjLGEubGVuZ3RoKQp0PWEuc3Vic3RyaW5nKDAsYikKcz1hLnN1YnN0cmluZyhjKQpyZXR1cm4g
dCtkK3N9LApRaTpmdW5jdGlvbihhLGIsYyl7dmFyIHQKaWYoIUgub2soYykpSC52aChILnRMKGMpKQpp
Zih0eXBlb2YgYyE9PSJudW1iZXIiKXJldHVybiBjLkooKQppZihjPDB8fGM+YS5sZW5ndGgpdGhyb3cg
SC5iKFAuVEUoYywwLGEubGVuZ3RoLG51bGwsbnVsbCkpCnQ9YytiLmxlbmd0aAppZih0PmEubGVuZ3Ro
KXJldHVybiExCnJldHVybiBiPT09YS5zdWJzdHJpbmcoYyx0KX0sCm46ZnVuY3Rpb24oYSxiKXtyZXR1
cm4gdGhpcy5RaShhLGIsMCl9LApOajpmdW5jdGlvbihhLGIsYyl7aWYoIUgub2soYikpSC52aChILnRM
KGIpKQppZihjPT1udWxsKWM9YS5sZW5ndGgKaWYodHlwZW9mIGIhPT0ibnVtYmVyIilyZXR1cm4gYi5K
KCkKaWYoYjwwKXRocm93IEguYihQLngoYixudWxsKSkKaWYoYj5jKXRocm93IEguYihQLngoYixudWxs
KSkKaWYoYz5hLmxlbmd0aCl0aHJvdyBILmIoUC54KGMsbnVsbCkpCnJldHVybiBhLnN1YnN0cmluZyhi
LGMpfSwKRzpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLk5qKGEsYixudWxsKX0sCmhjOmZ1bmN0aW9u
KGEpe3JldHVybiBhLnRvTG93ZXJDYXNlKCl9LApiUzpmdW5jdGlvbihhKXt2YXIgdCxzLHIscT1hLnRy
aW0oKSxwPXEubGVuZ3RoCmlmKHA9PT0wKXJldHVybiBxCmlmKHRoaXMuVyhxLDApPT09MTMzKXt0PUou
bW0ocSwxKQppZih0PT09cClyZXR1cm4iIn1lbHNlIHQ9MApzPXAtMQpyPXRoaXMubShxLHMpPT09MTMz
P0ouYzEocSxzKTpwCmlmKHQ9PT0wJiZyPT09cClyZXR1cm4gcQpyZXR1cm4gcS5zdWJzdHJpbmcodCxy
KX0sCkl4OmZ1bmN0aW9uKGEsYil7dmFyIHQscwppZigwPj1iKXJldHVybiIiCmlmKGI9PT0xfHxhLmxl
bmd0aD09PTApcmV0dXJuIGEKaWYoYiE9PWI+Pj4wKXRocm93IEguYihDLkVxKQpmb3IodD1hLHM9IiI7
ITA7KXtpZigoYiYxKT09PTEpcz10K3MKYj1iPj4+MQppZihiPT09MClicmVhawp0Kz10fXJldHVybiBz
fSwKWFU6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0CmlmKGM8MHx8Yz5hLmxlbmd0aCl0aHJvdyBILmIoUC5U
RShjLDAsYS5sZW5ndGgsbnVsbCxudWxsKSkKdD1hLmluZGV4T2YoYixjKQpyZXR1cm4gdH0sCk9ZOmZ1
bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuWFUoYSxiLDApfSwKUGs6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0
LHMKaWYoYz09bnVsbCljPWEubGVuZ3RoCmVsc2UgaWYoYzwwfHxjPmEubGVuZ3RoKXRocm93IEguYihQ
LlRFKGMsMCxhLmxlbmd0aCxudWxsLG51bGwpKQp0PWIubGVuZ3RoCnM9YS5sZW5ndGgKaWYoYyt0PnMp
Yz1zLXQKcmV0dXJuIGEubGFzdEluZGV4T2YoYixjKX0sCmNuOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRo
aXMuUGsoYSxiLG51bGwpfSwKSXM6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0PWEubGVuZ3RoCmlmKGM+dCl0
aHJvdyBILmIoUC5URShjLDAsdCxudWxsLG51bGwpKQpyZXR1cm4gSC5tMihhLGIsYyl9LAp0ZzpmdW5j
dGlvbihhLGIpe3JldHVybiB0aGlzLklzKGEsYiwwKX0sCnc6ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LApn
aU86ZnVuY3Rpb24oYSl7dmFyIHQscyxyCmZvcih0PWEubGVuZ3RoLHM9MCxyPTA7cjx0Oysrcil7cz01
MzY4NzA5MTEmcythLmNoYXJDb2RlQXQocikKcz01MzY4NzA5MTEmcysoKDUyNDI4NyZzKTw8MTApCnNe
PXM+PjZ9cz01MzY4NzA5MTEmcysoKDY3MTA4ODYzJnMpPDwzKQpzXj1zPj4xMQpyZXR1cm4gNTM2ODcw
OTExJnMrKCgxNjM4MyZzKTw8MTUpfSwKZ0E6ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGVuZ3RofSwKcTpm
dW5jdGlvbihhLGIpe0guU2MoYikKaWYoYj49YS5sZW5ndGh8fCExKXRocm93IEguYihILkhZKGEsYikp
CnJldHVybiBhW2JdfSwKJGl2WDoxLAokaXFVOjF9CkgucWoucHJvdG90eXBlPXsKZ0E6ZnVuY3Rpb24o
YSl7cmV0dXJuIHRoaXMuYS5sZW5ndGh9LApxOmZ1bmN0aW9uKGEsYil7cmV0dXJuIEMueEIubSh0aGlz
LmEsSC5TYyhiKSl9fQpILmJRLnByb3RvdHlwZT17fQpILmFMLnByb3RvdHlwZT17CmdrejpmdW5jdGlv
bihhKXt2YXIgdD10aGlzCnJldHVybiBuZXcgSC5hNyh0LHQuZ0EodCksSC5MaCh0KS5DKCJhNzxhTC5F
PiIpKX0sCkg6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscT10aGlzLHA9cS5nQShxKQppZihiLmxlbmd0
aCE9PTApe2lmKHA9PT0wKXJldHVybiIiCnQ9SC5kKHEuRSgwLDApKQppZihwIT09cS5nQShxKSl0aHJv
dyBILmIoUC5hNChxKSkKZm9yKHM9dCxyPTE7cjxwOysrcil7cz1zK2IrSC5kKHEuRSgwLHIpKQppZihw
IT09cS5nQShxKSl0aHJvdyBILmIoUC5hNChxKSl9cmV0dXJuIHMuY2hhckNvZGVBdCgwKT09MD9zOnN9
ZWxzZXtmb3Iocj0wLHM9IiI7cjxwOysrcil7cys9SC5kKHEuRSgwLHIpKQppZihwIT09cS5nQShxKSl0
aHJvdyBILmIoUC5hNChxKSl9cmV0dXJuIHMuY2hhckNvZGVBdCgwKT09MD9zOnN9fSwKZXY6ZnVuY3Rp
b24oYSxiKXtyZXR1cm4gdGhpcy5HRygwLEguTGgodGhpcykuQygiYTIoYUwuRSkiKS5iKGIpKX19Ckgu
bkgucHJvdG90eXBlPXsKZ1VEOmZ1bmN0aW9uKCl7dmFyIHQ9Si5IbSh0aGlzLmEpLHM9dGhpcy5jCmlm
KHM9PW51bGx8fHM+dClyZXR1cm4gdApyZXR1cm4gc30sCmdBczpmdW5jdGlvbigpe3ZhciB0PUouSG0o
dGhpcy5hKSxzPXRoaXMuYgppZihzPnQpcmV0dXJuIHQKcmV0dXJuIHN9LApnQTpmdW5jdGlvbihhKXt2
YXIgdCxzPUouSG0odGhpcy5hKSxyPXRoaXMuYgppZihyPj1zKXJldHVybiAwCnQ9dGhpcy5jCmlmKHQ9
PW51bGx8fHQ+PXMpcmV0dXJuIHMtcgppZih0eXBlb2YgdCE9PSJudW1iZXIiKXJldHVybiB0LkhOKCkK
cmV0dXJuIHQtcn0sCkU6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzPXRoaXMscj1zLmdBcygpK2IKaWYoYj49
MCl7dD1zLmdVRCgpCmlmKHR5cGVvZiB0IT09Im51bWJlciIpcmV0dXJuIEgucFkodCkKdD1yPj10fWVs
c2UgdD0hMAppZih0KXRocm93IEguYihQLkNmKGIscywiaW5kZXgiLG51bGwsbnVsbCkpCnJldHVybiBK
LkFNKHMuYSxyKX19CkguYTcucHJvdG90eXBlPXsKZ2w6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kfSwK
RjpmdW5jdGlvbigpe3ZhciB0LHM9dGhpcyxyPXMuYSxxPUouVTYocikscD1xLmdBKHIpCmlmKHMuYiE9
PXApdGhyb3cgSC5iKFAuYTQocikpCnQ9cy5jCmlmKHQ+PXApe3Muc0kobnVsbCkKcmV0dXJuITF9cy5z
SShxLkUocix0KSk7KytzLmMKcmV0dXJuITB9LApzSTpmdW5jdGlvbihhKXt0aGlzLmQ9dGhpcy4kdGku
ZC5iKGEpfSwKJGlBbjoxfQpILkE4LnByb3RvdHlwZT17CmdBOmZ1bmN0aW9uKGEpe3JldHVybiBKLkht
KHRoaXMuYSl9LApFOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuYi4kMShKLkFNKHRoaXMuYSxiKSl9
fQpILlU1LnByb3RvdHlwZT17CmdrejpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IEguU08oSi5JVCh0aGlz
LmEpLHRoaXMuYix0aGlzLiR0aS5DKCJTTzwxPiIpKX19CkguU08ucHJvdG90eXBlPXsKRjpmdW5jdGlv
bigpe3ZhciB0LHMKZm9yKHQ9dGhpcy5hLHM9dGhpcy5iO3QuRigpOylpZihILm9UKHMuJDEodC5nbCgp
KSkpcmV0dXJuITAKcmV0dXJuITF9LApnbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmEuZ2woKX19Ckgu
U1UucHJvdG90eXBlPXt9CkguUmUucHJvdG90eXBlPXsKWTpmdW5jdGlvbihhLGIsYyl7SC5MaCh0aGlz
KS5DKCJSZS5FIikuYihjKQp0aHJvdyBILmIoUC5MNCgiQ2Fubm90IG1vZGlmeSBhbiB1bm1vZGlmaWFi
bGUgbGlzdCIpKX19CkguWEMucHJvdG90eXBlPXt9Ckgud3YucHJvdG90eXBlPXsKZ2lPOmZ1bmN0aW9u
KGEpe3ZhciB0PXRoaXMuX2hhc2hDb2RlCmlmKHQhPW51bGwpcmV0dXJuIHQKdD01MzY4NzA5MTEmNjY0
NTk3KkouaGYodGhpcy5hKQp0aGlzLl9oYXNoQ29kZT10CnJldHVybiB0fSwKdzpmdW5jdGlvbihhKXty
ZXR1cm4nU3ltYm9sKCInK0guZCh0aGlzLmEpKyciKSd9LApETjpmdW5jdGlvbihhLGIpe2lmKGI9PW51
bGwpcmV0dXJuITEKcmV0dXJuIGIgaW5zdGFuY2VvZiBILnd2JiZ0aGlzLmE9PWIuYX0sCiRpR0Q6MX0K
SC5QRC5wcm90b3R5cGU9e30KSC5XVS5wcm90b3R5cGU9ewp3OmZ1bmN0aW9uKGEpe3JldHVybiBQLm5P
KHRoaXMpfSwKWTpmdW5jdGlvbihhLGIsYyl7dmFyIHQ9SC5MaCh0aGlzKQp0LmQuYihiKQp0LmNoWzFd
LmIoYykKcmV0dXJuIEguZGMoKX0sCiRpWjA6MX0KSC5MUC5wcm90b3R5cGU9ewpnQTpmdW5jdGlvbihh
KXtyZXR1cm4gdGhpcy5hfSwKeDQ6ZnVuY3Rpb24oYSl7aWYodHlwZW9mIGEhPSJzdHJpbmciKXJldHVy
biExCmlmKCJfX3Byb3RvX18iPT09YSlyZXR1cm4hMQpyZXR1cm4gdGhpcy5iLmhhc093blByb3BlcnR5
KGEpfSwKcTpmdW5jdGlvbihhLGIpe2lmKCF0aGlzLng0KGIpKXJldHVybgpyZXR1cm4gdGhpcy5xUChi
KX0sCnFQOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmJbSC55KGEpXX0sCks6ZnVuY3Rpb24oYSxiKXt2
YXIgdCxzLHIscSxwPUguTGgodGhpcykKcC5DKCJ+KDEsMikiKS5iKGIpCnQ9dGhpcy5jCmZvcihzPXQu
bGVuZ3RoLHA9cC5jaFsxXSxyPTA7cjxzOysrcil7cT10W3JdCmIuJDIocSxwLmIodGhpcy5xUChxKSkp
fX19CkguTEkucHJvdG90eXBlPXsKZ1dhOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5hCnJldHVybiB0fSwK
Z25kOmZ1bmN0aW9uKCl7dmFyIHQscyxyLHEscD10aGlzCmlmKHAuYz09PTEpcmV0dXJuIEMuZG4KdD1w
LmQKcz10Lmxlbmd0aC1wLmUubGVuZ3RoLXAuZgppZihzPT09MClyZXR1cm4gQy5kbgpyPVtdCmZvcihx
PTA7cTxzOysrcSl7aWYocT49dC5sZW5ndGgpcmV0dXJuIEguT0godCxxKQpyLnB1c2godFtxXSl9cmV0
dXJuIEouekMocil9LApnVm06ZnVuY3Rpb24oKXt2YXIgdCxzLHIscSxwLG8sbixtLGw9dGhpcwppZihs
LmMhPT0wKXJldHVybiBDLkNNCnQ9bC5lCnM9dC5sZW5ndGgKcj1sLmQKcT1yLmxlbmd0aC1zLWwuZgpp
ZihzPT09MClyZXR1cm4gQy5DTQpwPW5ldyBILk41KHUuZW8pCmZvcihvPTA7bzxzOysrbyl7aWYobz49
dC5sZW5ndGgpcmV0dXJuIEguT0godCxvKQpuPXRbb10KbT1xK28KaWYobTwwfHxtPj1yLmxlbmd0aCly
ZXR1cm4gSC5PSChyLG0pCnAuWSgwLG5ldyBILnd2KG4pLHJbbV0pfXJldHVybiBuZXcgSC5QRChwLHUu
Z0YpfSwKJGl2UToxfQpILkNqLnByb3RvdHlwZT17CiQyOmZ1bmN0aW9uKGEsYil7dmFyIHQKSC55KGEp
CnQ9dGhpcy5hCnQuYj10LmIrIiQiK0guZChhKQpDLk5tLmkodGhpcy5iLGEpCkMuTm0uaSh0aGlzLmMs
Yik7Kyt0LmF9LAokUzoxNX0KSC5aci5wcm90b3R5cGU9ewpxUzpmdW5jdGlvbihhKXt2YXIgdCxzLHI9
dGhpcyxxPW5ldyBSZWdFeHAoci5hKS5leGVjKGEpCmlmKHE9PW51bGwpcmV0dXJuCnQ9T2JqZWN0LmNy
ZWF0ZShudWxsKQpzPXIuYgppZihzIT09LTEpdC5hcmd1bWVudHM9cVtzKzFdCnM9ci5jCmlmKHMhPT0t
MSl0LmFyZ3VtZW50c0V4cHI9cVtzKzFdCnM9ci5kCmlmKHMhPT0tMSl0LmV4cHI9cVtzKzFdCnM9ci5l
CmlmKHMhPT0tMSl0Lm1ldGhvZD1xW3MrMV0Kcz1yLmYKaWYocyE9PS0xKXQucmVjZWl2ZXI9cVtzKzFd
CnJldHVybiB0fX0KSC5XMC5wcm90b3R5cGU9ewp3OmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuYgppZih0
PT1udWxsKXJldHVybiJOb1N1Y2hNZXRob2RFcnJvcjogIitILmQodGhpcy5hKQpyZXR1cm4iTm9TdWNo
TWV0aG9kRXJyb3I6IG1ldGhvZCBub3QgZm91bmQ6ICciK3QrIicgb24gbnVsbCJ9fQpILmF6LnByb3Rv
dHlwZT17Cnc6ZnVuY3Rpb24oYSl7dmFyIHQscz10aGlzLHI9Ik5vU3VjaE1ldGhvZEVycm9yOiBtZXRo
b2Qgbm90IGZvdW5kOiAnIixxPXMuYgppZihxPT1udWxsKXJldHVybiJOb1N1Y2hNZXRob2RFcnJvcjog
IitILmQocy5hKQp0PXMuYwppZih0PT1udWxsKXJldHVybiByK3ErIicgKCIrSC5kKHMuYSkrIikiCnJl
dHVybiByK3ErIicgb24gJyIrdCsiJyAoIitILmQocy5hKSsiKSJ9fQpILnZWLnByb3RvdHlwZT17Cnc6
ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5hCnJldHVybiB0Lmxlbmd0aD09PTA/IkVycm9yIjoiRXJyb3I6
ICIrdH19CkguQW0ucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7aWYodS5iVS5jKGEpKWlmKGEuJHRo
cm93bkpzRXJyb3I9PW51bGwpYS4kdGhyb3duSnNFcnJvcj10aGlzLmEKcmV0dXJuIGF9LAokUzo0fQpI
LlhPLnByb3RvdHlwZT17Cnc6ZnVuY3Rpb24oYSl7dmFyIHQscz10aGlzLmIKaWYocyE9bnVsbClyZXR1
cm4gcwpzPXRoaXMuYQp0PXMhPT1udWxsJiZ0eXBlb2Ygcz09PSJvYmplY3QiP3Muc3RhY2s6bnVsbApy
ZXR1cm4gdGhpcy5iPXQ9PW51bGw/IiI6dH0sCiRpR3o6MX0KSC5UcC5wcm90b3R5cGU9ewp3OmZ1bmN0
aW9uKGEpe3ZhciB0PXRoaXMuY29uc3RydWN0b3Iscz10PT1udWxsP251bGw6dC5uYW1lCnJldHVybiJD
bG9zdXJlICciK0guTlEocz09bnVsbD8idW5rbm93biI6cykrIicifSwKJGlFSDoxLApnUWw6ZnVuY3Rp
b24oKXtyZXR1cm4gdGhpc30sCiRDOiIkMSIsCiRSOjEsCiREOm51bGx9CkgubGMucHJvdG90eXBlPXt9
CkguengucHJvdG90eXBlPXsKdzpmdW5jdGlvbihhKXt2YXIgdD10aGlzLiRzdGF0aWNfbmFtZQppZih0
PT1udWxsKXJldHVybiJDbG9zdXJlIG9mIHVua25vd24gc3RhdGljIG1ldGhvZCIKcmV0dXJuIkNsb3N1
cmUgJyIrSC5OUSh0KSsiJyJ9fQpILnJULnByb3RvdHlwZT17CkROOmZ1bmN0aW9uKGEsYil7dmFyIHQ9
dGhpcwppZihiPT1udWxsKXJldHVybiExCmlmKHQ9PT1iKXJldHVybiEwCmlmKCEoYiBpbnN0YW5jZW9m
IEguclQpKXJldHVybiExCnJldHVybiB0LmE9PT1iLmEmJnQuYj09PWIuYiYmdC5jPT09Yi5jfSwKZ2lP
OmZ1bmN0aW9uKGEpe3ZhciB0LHM9dGhpcy5jCmlmKHM9PW51bGwpdD1ILmVRKHRoaXMuYSkKZWxzZSB0
PXR5cGVvZiBzIT09Im9iamVjdCI/Si5oZihzKTpILmVRKHMpCnJldHVybih0XkguZVEodGhpcy5iKSk+
Pj4wfSwKdzpmdW5jdGlvbihhKXt2YXIgdD10aGlzLmMKaWYodD09bnVsbCl0PXRoaXMuYQpyZXR1cm4i
Q2xvc3VyZSAnIitILmQodGhpcy5kKSsiJyBvZiAiKygiSW5zdGFuY2Ugb2YgJyIrSC5kKEguTSh0KSkr
IiciKX19CkguRXEucHJvdG90eXBlPXsKdzpmdW5jdGlvbihhKXtyZXR1cm4iUnVudGltZUVycm9yOiAi
K0guZCh0aGlzLmEpfX0KSC5rWS5wcm90b3R5cGU9ewp3OmZ1bmN0aW9uKGEpe3JldHVybiJBc3NlcnRp
b24gZmFpbGVkOiAiK1AucCh0aGlzLmEpfX0KSC5ONS5wcm90b3R5cGU9ewpnQTpmdW5jdGlvbihhKXty
ZXR1cm4gdGhpcy5hfSwKZ1Y6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEguaTUodGhpcyxILkxoKHRoaXMp
LkMoImk1PDE+IikpfSwKeDQ6ZnVuY3Rpb24oYSl7dmFyIHQscwppZih0eXBlb2YgYT09InN0cmluZyIp
e3Q9dGhpcy5iCmlmKHQ9PW51bGwpcmV0dXJuITEKcmV0dXJuIHRoaXMuWHUodCxhKX1lbHNle3M9dGhp
cy5DWChhKQpyZXR1cm4gc319LApDWDpmdW5jdGlvbihhKXt2YXIgdD10aGlzLmQKaWYodD09bnVsbCly
ZXR1cm4hMQpyZXR1cm4gdGhpcy5GaCh0aGlzLkJ0KHQsSi5oZihhKSYweDNmZmZmZmYpLGEpPj0wfSwK
cTpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixxLHA9dGhpcwppZih0eXBlb2YgYj09InN0cmluZyIpe3Q9
cC5iCmlmKHQ9PW51bGwpcmV0dXJuCnM9cC5qMih0LGIpCnI9cz09bnVsbD9udWxsOnMuYgpyZXR1cm4g
cn1lbHNlIGlmKHR5cGVvZiBiPT0ibnVtYmVyIiYmKGImMHgzZmZmZmZmKT09PWIpe3E9cC5jCmlmKHE9
PW51bGwpcmV0dXJuCnM9cC5qMihxLGIpCnI9cz09bnVsbD9udWxsOnMuYgpyZXR1cm4gcn1lbHNlIHJl
dHVybiBwLmFhKGIpfSwKYWE6ZnVuY3Rpb24oYSl7dmFyIHQscyxyPXRoaXMuZAppZihyPT1udWxsKXJl
dHVybgp0PXRoaXMuQnQocixKLmhmKGEpJjB4M2ZmZmZmZikKcz10aGlzLkZoKHQsYSkKaWYoczwwKXJl
dHVybgpyZXR1cm4gdFtzXS5ifSwKWTpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyLHEscCxvLG49dGhp
cyxtPUguTGgobikKbS5kLmIoYikKbS5jaFsxXS5iKGMpCmlmKHR5cGVvZiBiPT0ic3RyaW5nIil7dD1u
LmIKbi5FSCh0PT1udWxsP24uYj1uLnpLKCk6dCxiLGMpfWVsc2UgaWYodHlwZW9mIGI9PSJudW1iZXIi
JiYoYiYweDNmZmZmZmYpPT09Yil7cz1uLmMKbi5FSChzPT1udWxsP24uYz1uLnpLKCk6cyxiLGMpfWVs
c2V7cj1uLmQKaWYocj09bnVsbClyPW4uZD1uLnpLKCkKcT1KLmhmKGIpJjB4M2ZmZmZmZgpwPW4uQnQo
cixxKQppZihwPT1udWxsKW4uRUkocixxLFtuLkhuKGIsYyldKQplbHNle289bi5GaChwLGIpCmlmKG8+
PTApcFtvXS5iPWMKZWxzZSBwLnB1c2gobi5IbihiLGMpKX19fSwKSzpmdW5jdGlvbihhLGIpe3ZhciB0
LHMscj10aGlzCkguTGgocikuQygifigxLDIpIikuYihiKQp0PXIuZQpzPXIucgpmb3IoO3QhPW51bGw7
KXtiLiQyKHQuYSx0LmIpCmlmKHMhPT1yLnIpdGhyb3cgSC5iKFAuYTQocikpCnQ9dC5jfX0sCkVIOmZ1
bmN0aW9uKGEsYixjKXt2YXIgdCxzPXRoaXMscj1ILkxoKHMpCnIuZC5iKGIpCnIuY2hbMV0uYihjKQp0
PXMuajIoYSxiKQppZih0PT1udWxsKXMuRUkoYSxiLHMuSG4oYixjKSkKZWxzZSB0LmI9Y30sCmtzOmZ1
bmN0aW9uKCl7dGhpcy5yPXRoaXMucisxJjY3MTA4ODYzfSwKSG46ZnVuY3Rpb24oYSxiKXt2YXIgdCxz
PXRoaXMscj1ILkxoKHMpLHE9bmV3IEguZGIoci5kLmIoYSksci5jaFsxXS5iKGIpKQppZihzLmU9PW51
bGwpcy5lPXMuZj1xCmVsc2V7dD1zLmYKcS5kPXQKcy5mPXQuYz1xfSsrcy5hCnMua3MoKQpyZXR1cm4g
cX0sCkZoOmZ1bmN0aW9uKGEsYil7dmFyIHQscwppZihhPT1udWxsKXJldHVybi0xCnQ9YS5sZW5ndGgK
Zm9yKHM9MDtzPHQ7KytzKWlmKEouUk0oYVtzXS5hLGIpKXJldHVybiBzCnJldHVybi0xfSwKdzpmdW5j
dGlvbihhKXtyZXR1cm4gUC5uTyh0aGlzKX0sCmoyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGFbYl19LApC
dDpmdW5jdGlvbihhLGIpe3JldHVybiBhW2JdfSwKRUk6ZnVuY3Rpb24oYSxiLGMpe2FbYl09Y30sCnJu
OmZ1bmN0aW9uKGEsYil7ZGVsZXRlIGFbYl19LApYdTpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmoy
KGEsYikhPW51bGx9LAp6SzpmdW5jdGlvbigpe3ZhciB0PSI8bm9uLWlkZW50aWZpZXIta2V5PiIscz1P
YmplY3QuY3JlYXRlKG51bGwpCnRoaXMuRUkocyx0LHMpCnRoaXMucm4ocyx0KQpyZXR1cm4gc30sCiRp
Rm86MX0KSC5kYi5wcm90b3R5cGU9e30KSC5pNS5wcm90b3R5cGU9ewpnQTpmdW5jdGlvbihhKXtyZXR1
cm4gdGhpcy5hLmF9LApna3o6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5hLHM9bmV3IEguTjYodCx0LnIs
dGhpcy4kdGkuQygiTjY8MT4iKSkKcy5jPXQuZQpyZXR1cm4gc319CkguTjYucHJvdG90eXBlPXsKZ2w6
ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kfSwKRjpmdW5jdGlvbigpe3ZhciB0PXRoaXMscz10LmEKaWYo
dC5iIT09cy5yKXRocm93IEguYihQLmE0KHMpKQplbHNle3M9dC5jCmlmKHM9PW51bGwpe3Quc3FZKG51
bGwpCnJldHVybiExfWVsc2V7dC5zcVkocy5hKQp0LmM9dC5jLmMKcmV0dXJuITB9fX0sCnNxWTpmdW5j
dGlvbihhKXt0aGlzLmQ9dGhpcy4kdGkuZC5iKGEpfSwKJGlBbjoxfQpILmRDLnByb3RvdHlwZT17CiQx
OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmEoYSl9LAokUzo0fQpILndOLnByb3RvdHlwZT17CiQyOmZ1
bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMuYShhLGIpfSwKJFM6Mzh9CkguVlgucHJvdG90eXBlPXsKJDE6
ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYShILnkoYSkpfSwKJFM6Mjd9CkguVlIucHJvdG90eXBlPXsK
dzpmdW5jdGlvbihhKXtyZXR1cm4iUmVnRXhwLyIrdGhpcy5hKyIvIit0aGlzLmIuZmxhZ3N9LApnSGM6
ZnVuY3Rpb24oKXt2YXIgdD10aGlzLHM9dC5jCmlmKHMhPW51bGwpcmV0dXJuIHMKcz10LmIKcmV0dXJu
IHQuYz1ILnY0KHQuYSxzLm11bHRpbGluZSwhcy5pZ25vcmVDYXNlLHMudW5pY29kZSxzLmRvdEFsbCwh
MCl9LApkZDpmdW5jdGlvbihhLGIpe3JldHVybiBuZXcgSC5LVyh0aGlzLGIsMCl9LApVWjpmdW5jdGlv
bihhLGIpe3ZhciB0LHM9dGhpcy5nSGMoKQpzLmxhc3RJbmRleD1iCnQ9cy5leGVjKGEpCmlmKHQ9PW51
bGwpcmV0dXJuCnJldHVybiBuZXcgSC5FSyh0KX0sCiRpdlg6MSwKJGl3TDoxfQpILkVLLnByb3RvdHlw
ZT17CnE6ZnVuY3Rpb24oYSxiKXt2YXIgdApILlNjKGIpCnQ9dGhpcy5iCmlmKGI+PXQubGVuZ3RoKXJl
dHVybiBILk9IKHQsYikKcmV0dXJuIHRbYl19LAokaU9kOjEsCiRpaWI6MX0KSC5LVy5wcm90b3R5cGU9
ewpna3o6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBILlBiKHRoaXMuYSx0aGlzLmIsdGhpcy5jKX19Ckgu
UGIucHJvdG90eXBlPXsKZ2w6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kfSwKRjpmdW5jdGlvbigpe3Zh
ciB0LHMscixxLHA9dGhpcyxvPXAuYgppZihvPT1udWxsKXJldHVybiExCnQ9cC5jCmlmKHQ8PW8ubGVu
Z3RoKXtzPXAuYQpyPXMuVVoobyx0KQppZihyIT1udWxsKXtwLmQ9cgpvPXIuYgp0PW8uaW5kZXgKcT10
K29bMF0ubGVuZ3RoCmlmKHQ9PT1xKXtpZihzLmIudW5pY29kZSl7bz1wLmMKdD1vKzEKcz1wLmIKaWYo
dDxzLmxlbmd0aCl7bz1KLnJZKHMpLm0ocyxvKQppZihvPj01NTI5NiYmbzw9NTYzMTkpe289Qy54Qi5t
KHMsdCkKbz1vPj01NjMyMCYmbzw9NTczNDN9ZWxzZSBvPSExfWVsc2Ugbz0hMX1lbHNlIG89ITEKcT0o
bz9xKzE6cSkrMX1wLmM9cQpyZXR1cm4hMH19cC5iPXAuZD1udWxsCnJldHVybiExfSwKJGlBbjoxfQpI
LnRRLnByb3RvdHlwZT17CnE6ZnVuY3Rpb24oYSxiKXtILlNjKGIpCmlmKGIhPT0wKUgudmgoUC54KGIs
bnVsbCkpCnJldHVybiB0aGlzLmN9LAokaU9kOjF9CkgudW4ucHJvdG90eXBlPXsKZ2t6OmZ1bmN0aW9u
KGEpe3JldHVybiBuZXcgSC5TZCh0aGlzLmEsdGhpcy5iLHRoaXMuYyl9fQpILlNkLnByb3RvdHlwZT17
CkY6ZnVuY3Rpb24oKXt2YXIgdCxzLHI9dGhpcyxxPXIuYyxwPXIuYixvPXAubGVuZ3RoLG49ci5hLG09
bi5sZW5ndGgKaWYocStvPm0pe3IuZD1udWxsCnJldHVybiExfXQ9bi5pbmRleE9mKHAscSkKaWYodDww
KXtyLmM9bSsxCnIuZD1udWxsCnJldHVybiExfXM9dCtvCnIuZD1uZXcgSC50USh0LHApCnIuYz1zPT09
ci5jP3MrMTpzCnJldHVybiEwfSwKZ2w6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kfSwKJGlBbjoxfQpI
LkVULnByb3RvdHlwZT17JGlFVDoxLCRpQVM6MX0KSC5iMC5wcm90b3R5cGU9ewpnQTpmdW5jdGlvbihh
KXtyZXR1cm4gYS5sZW5ndGh9LAokaVhqOjF9CkguRGcucHJvdG90eXBlPXsKcTpmdW5jdGlvbihhLGIp
e0guU2MoYikKSC5vZChiLGEsYS5sZW5ndGgpCnJldHVybiBhW2JdfSwKWTpmdW5jdGlvbihhLGIsYyl7
SC5JZyhjKQpILm9kKGIsYSxhLmxlbmd0aCkKYVtiXT1jfSwKJGljWDoxLAokaXpNOjF9CkguUGcucHJv
dG90eXBlPXsKWTpmdW5jdGlvbihhLGIsYyl7SC5TYyhjKQpILm9kKGIsYSxhLmxlbmd0aCkKYVtiXT1j
fSwKJGljWDoxLAokaXpNOjF9CkgueGoucHJvdG90eXBlPXsKcTpmdW5jdGlvbihhLGIpe0guU2MoYikK
SC5vZChiLGEsYS5sZW5ndGgpCnJldHVybiBhW2JdfX0KSC5kRS5wcm90b3R5cGU9ewpxOmZ1bmN0aW9u
KGEsYil7SC5TYyhiKQpILm9kKGIsYSxhLmxlbmd0aCkKcmV0dXJuIGFbYl19fQpILlpBLnByb3RvdHlw
ZT17CnE6ZnVuY3Rpb24oYSxiKXtILlNjKGIpCkgub2QoYixhLGEubGVuZ3RoKQpyZXR1cm4gYVtiXX19
Ckgud2YucHJvdG90eXBlPXsKcTpmdW5jdGlvbihhLGIpe0guU2MoYikKSC5vZChiLGEsYS5sZW5ndGgp
CnJldHVybiBhW2JdfX0KSC5QcS5wcm90b3R5cGU9ewpxOmZ1bmN0aW9uKGEsYil7SC5TYyhiKQpILm9k
KGIsYSxhLmxlbmd0aCkKcmV0dXJuIGFbYl19fQpILmVFLnByb3RvdHlwZT17CmdBOmZ1bmN0aW9uKGEp
e3JldHVybiBhLmxlbmd0aH0sCnE6ZnVuY3Rpb24oYSxiKXtILlNjKGIpCkgub2QoYixhLGEubGVuZ3Ro
KQpyZXR1cm4gYVtiXX19CkguVjYucHJvdG90eXBlPXsKZ0E6ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGVu
Z3RofSwKcTpmdW5jdGlvbihhLGIpe0guU2MoYikKSC5vZChiLGEsYS5sZW5ndGgpCnJldHVybiBhW2Jd
fSwKJGlWNjoxLAokaW42OjF9CkguUkcucHJvdG90eXBlPXt9CkguVlAucHJvdG90eXBlPXt9CkguV0Iu
cHJvdG90eXBlPXt9CkguWkcucHJvdG90eXBlPXt9CkguSmMucHJvdG90eXBlPXsKQzpmdW5jdGlvbihh
KXtyZXR1cm4gSC5jRSh2LnR5cGVVbml2ZXJzZSx0aGlzLGEpfSwKS3E6ZnVuY3Rpb24oYSl7cmV0dXJu
IEgudjUodi50eXBlVW5pdmVyc2UsdGhpcyxhKX19CkguRy5wcm90b3R5cGU9e30KSC51OS5wcm90b3R5
cGU9ewp3OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmF9fQpILmh6LnByb3RvdHlwZT17fQpILmlNLnBy
b3RvdHlwZT17fQpQLnRoLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuYSxzPXQu
YQp0LmE9bnVsbApzLiQwKCl9LAokUzoxMn0KUC5oYS5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXt2
YXIgdCxzCnRoaXMuYS5hPXUuTS5iKGEpCnQ9dGhpcy5iCnM9dGhpcy5jCnQuZmlyc3RDaGlsZD90LnJl
bW92ZUNoaWxkKHMpOnQuYXBwZW5kQ2hpbGQocyl9LAokUzozOX0KUC5Wcy5wcm90b3R5cGU9ewokMDpm
dW5jdGlvbigpe3RoaXMuYS4kMCgpfSwKJEM6IiQwIiwKJFI6MCwKJFM6MH0KUC5GdC5wcm90b3R5cGU9
ewokMDpmdW5jdGlvbigpe3RoaXMuYS4kMCgpfSwKJEM6IiQwIiwKJFI6MCwKJFM6MH0KUC5XMy5wcm90
b3R5cGU9ewpDWTpmdW5jdGlvbihhLGIpe2lmKHNlbGYuc2V0VGltZW91dCE9bnVsbClzZWxmLnNldFRp
bWVvdXQoSC50UihuZXcgUC55SCh0aGlzLGIpLDApLGEpCmVsc2UgdGhyb3cgSC5iKFAuTDQoImBzZXRU
aW1lb3V0KClgIG5vdCBmb3VuZC4iKSl9fQpQLnlILnByb3RvdHlwZT17CiQwOmZ1bmN0aW9uKCl7dGhp
cy5iLiQwKCl9LAokQzoiJDAiLAokUjowLAokUzoyfQpQLlBmLnByb3RvdHlwZT17CncwOmZ1bmN0aW9u
KGEsYil7dmFyIHQKaWYoYT09bnVsbClhPW5ldyBQLm4oKQp0PXRoaXMuYQppZih0LmEhPT0wKXRocm93
IEguYihQLlBWKCJGdXR1cmUgYWxyZWFkeSBjb21wbGV0ZWQiKSkKdC5OayhhLGIpfSwKcG06ZnVuY3Rp
b24oYSl7cmV0dXJuIHRoaXMudzAoYSxudWxsKX19ClAuWmYucHJvdG90eXBlPXt9ClAuRmUucHJvdG90
eXBlPXsKSFI6ZnVuY3Rpb24oYSl7aWYoKHRoaXMuYyYxNSkhPT02KXJldHVybiEwCnJldHVybiB0aGlz
LmIuYi5idih1LmFsLmIodGhpcy5kKSxhLmEsdS5jSix1LkspfSwKS3c6ZnVuY3Rpb24oYSl7dmFyIHQ9
dGhpcy5lLHM9dS56LHI9dS5LLHE9dGhpcy4kdGkuQygiMi8iKSxwPXRoaXMuYi5iCmlmKHUudy5jKHQp
KXJldHVybiBxLmIocC5ycCh0LGEuYSxhLmIscyxyLHUubCkpCmVsc2UgcmV0dXJuIHEuYihwLmJ2KHUu
eS5iKHQpLGEuYSxzLHIpKX19ClAudnMucHJvdG90eXBlPXsKU3E6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0
LHMscixxPXRoaXMuJHRpCnEuS3EoYykuQygiMS8oMikiKS5iKGEpCnQ9JC5YMwppZih0IT09Qy5OVSl7
Yy5DKCJAPDAvPiIpLktxKHEuZCkuQygiMSgyKSIpLmIoYSkKaWYoYiE9bnVsbCliPVAuVkgoYix0KX1z
PW5ldyBQLnZzKCQuWDMsYy5DKCJ2czwwPiIpKQpyPWI9PW51bGw/MTozCnRoaXMueGYobmV3IFAuRmUo
cyxyLGEsYixxLkMoIkA8MT4iKS5LcShjKS5DKCJGZTwxLDI+IikpKQpyZXR1cm4gc30sClc3OmZ1bmN0
aW9uKGEsYil7cmV0dXJuIHRoaXMuU3EoYSxudWxsLGIpfSwKT0E6ZnVuY3Rpb24oYSl7dmFyIHQscyxy
CnUuYmYuYihudWxsKQp0PXRoaXMuJHRpCnM9JC5YMwpyPW5ldyBQLnZzKHMsdCkKaWYocyE9PUMuTlUp
YT1QLlZIKGEscykKdGhpcy54ZihuZXcgUC5GZShyLDIsbnVsbCxhLHQuQygiQDwxPiIpLktxKHQuZCku
QygiRmU8MSwyPiIpKSkKcmV0dXJuIHJ9LAp4ZjpmdW5jdGlvbihhKXt2YXIgdCxzPXRoaXMscj1zLmEK
aWYocjw9MSl7YS5hPXUueC5iKHMuYykKcy5jPWF9ZWxzZXtpZihyPT09Mil7dD11Ll8uYihzLmMpCnI9
dC5hCmlmKHI8NCl7dC54ZihhKQpyZXR1cm59cy5hPXIKcy5jPXQuY31QLlRrKG51bGwsbnVsbCxzLmIs
dS5NLmIobmV3IFAuZGEocyxhKSkpfX0sCmpROmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxLHAsbz10aGlz
LG49e30Kbi5hPWEKaWYoYT09bnVsbClyZXR1cm4KdD1vLmEKaWYodDw9MSl7cz11LnguYihvLmMpCnI9
by5jPWEKaWYocyE9bnVsbCl7Zm9yKDtxPXIuYSxxIT1udWxsO3I9cSk7ci5hPXN9fWVsc2V7aWYodD09
PTIpe3A9dS5fLmIoby5jKQp0PXAuYQppZih0PDQpe3AualEoYSkKcmV0dXJufW8uYT10Cm8uYz1wLmN9
bi5hPW8uTjgoYSkKUC5UayhudWxsLG51bGwsby5iLHUuTS5iKG5ldyBQLm9RKG4sbykpKX19LAphaDpm
dW5jdGlvbigpe3ZhciB0PXUueC5iKHRoaXMuYykKdGhpcy5jPW51bGwKcmV0dXJuIHRoaXMuTjgodCl9
LApOODpmdW5jdGlvbihhKXt2YXIgdCxzLHIKZm9yKHQ9YSxzPW51bGw7dCE9bnVsbDtzPXQsdD1yKXty
PXQuYQp0LmE9c31yZXR1cm4gc30sCkhIOmZ1bmN0aW9uKGEpe3ZhciB0LHM9dGhpcyxyPXMuJHRpCnIu
QygiMS8iKS5iKGEpCmlmKHIuQygiYjg8MT4iKS5jKGEpKWlmKHIuYyhhKSlQLkE5KGEscykKZWxzZSBQ
LmszKGEscykKZWxzZXt0PXMuYWgoKQpyLmQuYihhKQpzLmE9NApzLmM9YQpQLkhaKHMsdCl9fSwKWkw6
ZnVuY3Rpb24oYSxiKXt2YXIgdCxzPXRoaXMKdS5sLmIoYikKdD1zLmFoKCkKcy5hPTgKcy5jPW5ldyBQ
LkN3KGEsYikKUC5IWihzLHQpfSwKWGY6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcyxzPXQuJHRpCnMuQygi
MS8iKS5iKGEpCmlmKHMuQygiYjg8MT4iKS5jKGEpKXt0LmNVKGEpCnJldHVybn10LmE9MQpQLlRrKG51
bGwsbnVsbCx0LmIsdS5NLmIobmV3IFAuckgodCxhKSkpfSwKY1U6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhp
cyxzPXQuJHRpCnMuQygiYjg8MT4iKS5iKGEpCmlmKHMuYyhhKSl7aWYoYS5nQVQoKSl7dC5hPTEKUC5U
ayhudWxsLG51bGwsdC5iLHUuTS5iKG5ldyBQLktGKHQsYSkpKX1lbHNlIFAuQTkoYSx0KQpyZXR1cm59
UC5rMyhhLHQpfSwKTms6ZnVuY3Rpb24oYSxiKXt0aGlzLmE9MQpQLlRrKG51bGwsbnVsbCx0aGlzLmIs
dS5NLmIobmV3IFAuWkwodGhpcyxhLGIpKSl9LAokaWI4OjF9ClAuZGEucHJvdG90eXBlPXsKJDA6ZnVu
Y3Rpb24oKXtQLkhaKHRoaXMuYSx0aGlzLmIpfSwKJFM6MH0KUC5vUS5wcm90b3R5cGU9ewokMDpmdW5j
dGlvbigpe1AuSFoodGhpcy5iLHRoaXMuYS5hKX0sCiRTOjB9ClAucFYucHJvdG90eXBlPXsKJDE6ZnVu
Y3Rpb24oYSl7dmFyIHQ9dGhpcy5hCnQuYT0wCnQuSEgoYSl9LAokUzoxMn0KUC5VNy5wcm90b3R5cGU9
ewokMjpmdW5jdGlvbihhLGIpe3UubC5iKGIpCnRoaXMuYS5aTChhLGIpfSwKJDE6ZnVuY3Rpb24oYSl7
cmV0dXJuIHRoaXMuJDIoYSxudWxsKX0sCiRDOiIkMiIsCiREOmZ1bmN0aW9uKCl7cmV0dXJuW251bGxd
fSwKJFM6MzR9ClAudnIucHJvdG90eXBlPXsKJDA6ZnVuY3Rpb24oKXt0aGlzLmEuWkwodGhpcy5iLHRo
aXMuYyl9LAokUzowfQpQLnJILnByb3RvdHlwZT17CiQwOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5hLHM9
dC4kdGkuZC5iKHRoaXMuYikscj10LmFoKCkKdC5hPTQKdC5jPXMKUC5IWih0LHIpfSwKJFM6MH0KUC5L
Ri5wcm90b3R5cGU9ewokMDpmdW5jdGlvbigpe1AuQTkodGhpcy5iLHRoaXMuYSl9LAokUzowfQpQLlpM
LnByb3RvdHlwZT17CiQwOmZ1bmN0aW9uKCl7dGhpcy5hLlpMKHRoaXMuYix0aGlzLmMpfSwKJFM6MH0K
UC5SVC5wcm90b3R5cGU9ewokMDpmdW5jdGlvbigpe3ZhciB0LHMscixxLHAsbyxuPXRoaXMsbT1udWxs
CnRyeXtyPW4uYwptPXIuYi5iLnp6KHUuZk8uYihyLmQpLHUueil9Y2F0Y2gocSl7dD1ILlJ1KHEpCnM9
SC50cyhxKQppZihuLmQpe3I9dS5uLmIobi5hLmEuYykuYQpwPXQKcD1yPT1udWxsP3A9PW51bGw6cj09
PXAKcj1wfWVsc2Ugcj0hMQpwPW4uYgppZihyKXAuYj11Lm4uYihuLmEuYS5jKQplbHNlIHAuYj1uZXcg
UC5Ddyh0LHMpCnAuYT0hMApyZXR1cm59aWYodS5jLmMobSkpe2lmKG0gaW5zdGFuY2VvZiBQLnZzJiZt
LmE+PTQpe2lmKG0uYT09PTgpe3I9bi5iCnIuYj11Lm4uYihtLmMpCnIuYT0hMH1yZXR1cm59bz1uLmEu
YQpyPW4uYgpyLmI9bS5XNyhuZXcgUC5qWihvKSx1LnopCnIuYT0hMX19LAokUzoyfQpQLmpaLnByb3Rv
dHlwZT17CiQxOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmF9LAokUzozM30KUC5ycS5wcm90b3R5cGU9
ewokMDpmdW5jdGlvbigpe3ZhciB0LHMscixxLHAsbyxuLG09dGhpcwp0cnl7cj1tLmIKcT1yLiR0aQpw
PXEuZApvPXAuYihtLmMpCm0uYS5iPXIuYi5iLmJ2KHEuQygiMi8oMSkiKS5iKHIuZCksbyxxLkMoIjIv
IikscCl9Y2F0Y2gobil7dD1ILlJ1KG4pCnM9SC50cyhuKQpyPW0uYQpyLmI9bmV3IFAuQ3codCxzKQpy
LmE9ITB9fSwKJFM6Mn0KUC5SVy5wcm90b3R5cGU9ewokMDpmdW5jdGlvbigpe3ZhciB0LHMscixxLHAs
byxuLG0sbD10aGlzCnRyeXt0PXUubi5iKGwuYS5hLmMpCnE9bC5jCmlmKEgub1QocS5IUih0KSkmJnEu
ZSE9bnVsbCl7cD1sLmIKcC5iPXEuS3codCkKcC5hPSExfX1jYXRjaChvKXtzPUguUnUobykKcj1ILnRz
KG8pCnE9dS5uLmIobC5hLmEuYykKcD1xLmEKbj1zCm09bC5iCmlmKHA9PW51bGw/bj09bnVsbDpwPT09
biltLmI9cQplbHNlIG0uYj1uZXcgUC5DdyhzLHIpCm0uYT0hMH19LAokUzoyfQpQLk9NLnByb3RvdHlw
ZT17fQpQLnFoLnByb3RvdHlwZT17CmdBOmZ1bmN0aW9uKGEpe3ZhciB0LHMscj10aGlzLHE9e30scD1u
ZXcgUC52cygkLlgzLHUuZkopCnEuYT0wCnQ9SC5MaChyKQpzPXQuQygifigxKSIpLmIobmV3IFAuQjUo
cSxyKSkKdS5NLmIobmV3IFAuUEkocSxwKSkKVy5KRShyLmEsci5iLHMsITEsdC5kKQpyZXR1cm4gcH19
ClAuQjUucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7SC5MaCh0aGlzLmIpLmQuYihhKTsrK3RoaXMu
YS5hfSwKJFM6ZnVuY3Rpb24oKXtyZXR1cm4gSC5MaCh0aGlzLmIpLkMoImM4KDEpIil9fQpQLlBJLnBy
b3RvdHlwZT17CiQwOmZ1bmN0aW9uKCl7dGhpcy5iLkhIKHRoaXMuYS5hKX0sCiRTOjB9ClAuTU8ucHJv
dG90eXBlPXt9ClAua1QucHJvdG90eXBlPXt9ClAuQ3cucHJvdG90eXBlPXsKdzpmdW5jdGlvbihhKXty
ZXR1cm4gSC5kKHRoaXMuYSl9LAokaVhTOjF9ClAubTAucHJvdG90eXBlPXskaUpCOjF9ClAucEsucHJv
dG90eXBlPXsKJDA6ZnVuY3Rpb24oKXt2YXIgdCxzPXRoaXMuYSxyPXMuYQpzPXI9PW51bGw/cy5hPW5l
dyBQLm4oKTpyCnI9dGhpcy5iCmlmKHI9PW51bGwpdGhyb3cgSC5iKHMpCnQ9SC5iKHMpCnQuc3RhY2s9
ci53KDApCnRocm93IHR9LAokUzowfQpQLkppLnByb3RvdHlwZT17CmJIOmZ1bmN0aW9uKGEpe3ZhciB0
LHMscixxPW51bGwKdS5NLmIoYSkKdHJ5e2lmKEMuTlU9PT0kLlgzKXthLiQwKCkKcmV0dXJufVAuVDgo
cSxxLHRoaXMsYSx1LkgpfWNhdGNoKHIpe3Q9SC5SdShyKQpzPUgudHMocikKUC5MMihxLHEsdGhpcyx0
LHUubC5iKHMpKX19LApEbDpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyLHE9bnVsbApjLkMoIn4oMCki
KS5iKGEpCmMuYihiKQp0cnl7aWYoQy5OVT09PSQuWDMpe2EuJDEoYikKcmV0dXJufVAueXYocSxxLHRo
aXMsYSxiLHUuSCxjKX1jYXRjaChyKXt0PUguUnUocikKcz1ILnRzKHIpClAuTDIocSxxLHRoaXMsdCx1
LmwuYihzKSl9fSwKUlQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gbmV3IFAuaGoodGhpcyxiLkMoIjAoKSIp
LmIoYSksYil9LApHWTpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IFAuVnAodGhpcyx1Lk0uYihhKSl9LApQ
eTpmdW5jdGlvbihhLGIpe3JldHVybiBuZXcgUC5PUih0aGlzLGIuQygifigwKSIpLmIoYSksYil9LApx
OmZ1bmN0aW9uKGEsYil7cmV0dXJufSwKeno6ZnVuY3Rpb24oYSxiKXtiLkMoIjAoKSIpLmIoYSkKaWYo
JC5YMz09PUMuTlUpcmV0dXJuIGEuJDAoKQpyZXR1cm4gUC5UOChudWxsLG51bGwsdGhpcyxhLGIpfSwK
YnY6ZnVuY3Rpb24oYSxiLGMsZCl7Yy5DKCJAPDA+IikuS3EoZCkuQygiMSgyKSIpLmIoYSkKZC5iKGIp
CmlmKCQuWDM9PT1DLk5VKXJldHVybiBhLiQxKGIpCnJldHVybiBQLnl2KG51bGwsbnVsbCx0aGlzLGEs
YixjLGQpfSwKcnA6ZnVuY3Rpb24oYSxiLGMsZCxlLGYpe2QuQygiQDwwPiIpLktxKGUpLktxKGYpLkMo
IjEoMiwzKSIpLmIoYSkKZS5iKGIpCmYuYihjKQppZigkLlgzPT09Qy5OVSlyZXR1cm4gYS4kMihiLGMp
CnJldHVybiBQLlF4KG51bGwsbnVsbCx0aGlzLGEsYixjLGQsZSxmKX19ClAuaGoucHJvdG90eXBlPXsK
JDA6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hLnp6KHRoaXMuYix0aGlzLmMpfSwKJFM6ZnVuY3Rpb24o
KXtyZXR1cm4gdGhpcy5jLkMoIjAoKSIpfX0KUC5WcC5wcm90b3R5cGU9ewokMDpmdW5jdGlvbigpe3Jl
dHVybiB0aGlzLmEuYkgodGhpcy5iKX0sCiRTOjJ9ClAuT1IucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24o
YSl7dmFyIHQ9dGhpcy5jCnJldHVybiB0aGlzLmEuRGwodGhpcy5iLHQuYihhKSx0KX0sCiRTOmZ1bmN0
aW9uKCl7cmV0dXJuIHRoaXMuYy5DKCJ+KDApIil9fQpQLmI2LnByb3RvdHlwZT17CmdrejpmdW5jdGlv
bihhKXt2YXIgdD10aGlzLHM9bmV3IFAubG0odCx0LnIsSC5MaCh0KS5DKCJsbTwxPiIpKQpzLmM9dC5l
CnJldHVybiBzfSwKZ0E6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYX0sCnRnOmZ1bmN0aW9uKGEsYil7
dmFyIHQscwppZih0eXBlb2YgYj09InN0cmluZyImJmIhPT0iX19wcm90b19fIil7dD10aGlzLmIKaWYo
dD09bnVsbClyZXR1cm4hMQpyZXR1cm4gdS5KLmIodFtiXSkhPW51bGx9ZWxzZXtzPXRoaXMuUFIoYikK
cmV0dXJuIHN9fSwKUFI6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5kCmlmKHQ9PW51bGwpcmV0dXJuITEK
cmV0dXJuIHRoaXMuREYodFt0aGlzLk4oYSldLGEpPj0wfSwKaTpmdW5jdGlvbihhLGIpe3ZhciB0LHMs
cj10aGlzCkguTGgocikuZC5iKGIpCmlmKHR5cGVvZiBiPT0ic3RyaW5nIiYmYiE9PSJfX3Byb3RvX18i
KXt0PXIuYgpyZXR1cm4gci5iUSh0PT1udWxsP3IuYj1QLlQyKCk6dCxiKX1lbHNlIGlmKHR5cGVvZiBi
PT0ibnVtYmVyIiYmKGImMTA3Mzc0MTgyMyk9PT1iKXtzPXIuYwpyZXR1cm4gci5iUShzPT1udWxsP3Iu
Yz1QLlQyKCk6cyxiKX1lbHNlIHJldHVybiByLkI3KGIpfSwKQjc6ZnVuY3Rpb24oYSl7dmFyIHQscyxy
LHE9dGhpcwpILkxoKHEpLmQuYihhKQp0PXEuZAppZih0PT1udWxsKXQ9cS5kPVAuVDIoKQpzPXEuTihh
KQpyPXRbc10KaWYocj09bnVsbCl0W3NdPVtxLnlvKGEpXQplbHNle2lmKHEuREYocixhKT49MClyZXR1
cm4hMQpyLnB1c2gocS55byhhKSl9cmV0dXJuITB9LApSOmZ1bmN0aW9uKGEsYil7dmFyIHQ9dGhpcwpp
Zih0eXBlb2YgYj09InN0cmluZyImJmIhPT0iX19wcm90b19fIilyZXR1cm4gdC5MKHQuYixiKQplbHNl
IGlmKHR5cGVvZiBiPT0ibnVtYmVyIiYmKGImMTA3Mzc0MTgyMyk9PT1iKXJldHVybiB0LkwodC5jLGIp
CmVsc2UgcmV0dXJuIHQucWcoYil9LApxZzpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwPXRoaXMsbz1w
LmQKaWYobz09bnVsbClyZXR1cm4hMQp0PXAuTihhKQpzPW9bdF0Kcj1wLkRGKHMsYSkKaWYocjwwKXJl
dHVybiExCnE9cy5zcGxpY2UociwxKVswXQppZigwPT09cy5sZW5ndGgpZGVsZXRlIG9bdF0KcC5HUyhx
KQpyZXR1cm4hMH0sCmJROmZ1bmN0aW9uKGEsYil7SC5MaCh0aGlzKS5kLmIoYikKaWYodS5KLmIoYVti
XSkhPW51bGwpcmV0dXJuITEKYVtiXT10aGlzLnlvKGIpCnJldHVybiEwfSwKTDpmdW5jdGlvbihhLGIp
e3ZhciB0CmlmKGE9PW51bGwpcmV0dXJuITEKdD11LkouYihhW2JdKQppZih0PT1udWxsKXJldHVybiEx
CnRoaXMuR1ModCkKZGVsZXRlIGFbYl0KcmV0dXJuITB9LApTOmZ1bmN0aW9uKCl7dGhpcy5yPTEwNzM3
NDE4MjMmdGhpcy5yKzF9LAp5bzpmdW5jdGlvbihhKXt2YXIgdCxzPXRoaXMscj1uZXcgUC5ibihILkxo
KHMpLmQuYihhKSkKaWYocy5lPT1udWxsKXMuZT1zLmY9cgplbHNle3Q9cy5mCnIuYz10CnMuZj10LmI9
cn0rK3MuYQpzLlMoKQpyZXR1cm4gcn0sCkdTOmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMscz1hLmMscj1h
LmIKaWYocz09bnVsbCl0LmU9cgplbHNlIHMuYj1yCmlmKHI9PW51bGwpdC5mPXMKZWxzZSByLmM9czst
LXQuYQp0LlMoKX0sCk46ZnVuY3Rpb24oYSl7cmV0dXJuIEouaGYoYSkmMTA3Mzc0MTgyM30sCkRGOmZ1
bmN0aW9uKGEsYil7dmFyIHQscwppZihhPT1udWxsKXJldHVybi0xCnQ9YS5sZW5ndGgKZm9yKHM9MDtz
PHQ7KytzKWlmKEouUk0oYVtzXS5hLGIpKXJldHVybiBzCnJldHVybi0xfX0KUC5ibi5wcm90b3R5cGU9
e30KUC5sbS5wcm90b3R5cGU9ewpnbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmR9LApGOmZ1bmN0aW9u
KCl7dmFyIHQ9dGhpcyxzPXQuYQppZih0LmIhPT1zLnIpdGhyb3cgSC5iKFAuYTQocykpCmVsc2V7cz10
LmMKaWYocz09bnVsbCl7dC5zaihudWxsKQpyZXR1cm4hMX1lbHNle3Quc2oodC4kdGkuZC5iKHMuYSkp
CnQuYz10LmMuYgpyZXR1cm4hMH19fSwKc2o6ZnVuY3Rpb24oYSl7dGhpcy5kPXRoaXMuJHRpLmQuYihh
KX0sCiRpQW46MX0KUC5tVy5wcm90b3R5cGU9e30KUC5MVS5wcm90b3R5cGU9eyRpY1g6MSwkaXpNOjF9
ClAubEQucHJvdG90eXBlPXsKZ2t6OmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgSC5hNyhhLHRoaXMuZ0Eo
YSksSC56SyhhKS5DKCJhNzxsRC5FPiIpKX0sCkU6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5xKGEs
Yil9LApLOmZ1bmN0aW9uKGEsYil7dmFyIHQscwpILnpLKGEpLkMoIn4obEQuRSkiKS5iKGIpCnQ9dGhp
cy5nQShhKQpmb3Iocz0wO3M8dDsrK3Mpe2IuJDEodGhpcy5xKGEscykpCmlmKHQhPT10aGlzLmdBKGEp
KXRocm93IEguYihQLmE0KGEpKX19LApFMjpmdW5jdGlvbihhLGIsYyl7dmFyIHQ9SC56SyhhKQpyZXR1
cm4gbmV3IEguQTgoYSx0LktxKGMpLkMoIjEobEQuRSkiKS5iKGIpLHQuQygiQDxsRC5FPiIpLktxKGMp
LkMoIkE4PDEsMj4iKSl9LApkdTpmdW5jdGlvbihhLGIsYyxkKXt2YXIgdApILnpLKGEpLkMoImxELkUi
KS5iKGQpClAuakIoYixjLHRoaXMuZ0EoYSkpCmZvcih0PWI7dDxjOysrdCl0aGlzLlkoYSx0LGQpfSwK
dzpmdW5jdGlvbihhKXtyZXR1cm4gUC5XRShhLCJbIiwiXSIpfX0KUC5pbC5wcm90b3R5cGU9e30KUC5H
QS5wcm90b3R5cGU9ewokMjpmdW5jdGlvbihhLGIpe3ZhciB0LHM9dGhpcy5hCmlmKCFzLmEpdGhpcy5i
LmErPSIsICIKcy5hPSExCnM9dGhpcy5iCnQ9cy5hKz1ILmQoYSkKcy5hPXQrIjogIgpzLmErPUguZChi
KX0sCiRTOjF9ClAuWWsucHJvdG90eXBlPXsKSzpmdW5jdGlvbihhLGIpe3ZhciB0LHMKSC5MaCh0aGlz
KS5DKCJ+KFlrLkssWWsuVikiKS5iKGIpCmZvcih0PUouSVQodGhpcy5nVigpKTt0LkYoKTspe3M9dC5n
bCgpCmIuJDIocyx0aGlzLnEoMCxzKSl9fSwKZ0E6ZnVuY3Rpb24oYSl7cmV0dXJuIEouSG0odGhpcy5n
VigpKX0sCnc6ZnVuY3Rpb24oYSl7cmV0dXJuIFAubk8odGhpcyl9LAokaVowOjF9ClAuS1AucHJvdG90
eXBlPXsKWTpmdW5jdGlvbihhLGIsYyl7dmFyIHQ9SC5MaCh0aGlzKQp0LmQuYihiKQp0LmNoWzFdLmIo
YykKdGhyb3cgSC5iKFAuTDQoIkNhbm5vdCBtb2RpZnkgdW5tb2RpZmlhYmxlIG1hcCIpKX19ClAuUG4u
cHJvdG90eXBlPXsKcTpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmEucSgwLGIpfSwKWTpmdW5jdGlv
bihhLGIsYyl7dmFyIHQ9SC5MaCh0aGlzKQp0aGlzLmEuWSgwLHQuZC5iKGIpLHQuY2hbMV0uYihjKSl9
LApLOmZ1bmN0aW9uKGEsYil7dGhpcy5hLksoMCxILkxoKHRoaXMpLkMoIn4oMSwyKSIpLmIoYikpfSwK
Z0E6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5hCnJldHVybiB0LmdBKHQpfSwKdzpmdW5jdGlvbihhKXty
ZXR1cm4gSi5qKHRoaXMuYSl9LAokaVowOjF9ClAuR2oucHJvdG90eXBlPXt9ClAubGYucHJvdG90eXBl
PXsKdzpmdW5jdGlvbihhKXtyZXR1cm4gUC5XRSh0aGlzLCJ7IiwifSIpfX0KUC5Wai5wcm90b3R5cGU9
eyRpY1g6MSwkaXh1OjF9ClAuWHYucHJvdG90eXBlPXsKRlY6ZnVuY3Rpb24oYSxiKXt2YXIgdApmb3Io
dD1KLklUKEguTGgodGhpcykuQygiY1g8MT4iKS5iKGIpKTt0LkYoKTspdGhpcy5pKDAsdC5nbCgpKX0s
Cnc6ZnVuY3Rpb24oYSl7cmV0dXJuIFAuV0UodGhpcywieyIsIn0iKX0sCkg6ZnVuY3Rpb24oYSxiKXt2
YXIgdCxzPVAucmoodGhpcyx0aGlzLnIsSC5MaCh0aGlzKS5kKQppZighcy5GKCkpcmV0dXJuIiIKaWYo
Yj09PSIiKXt0PSIiCmRvIHQrPUguZChzLmQpCndoaWxlKHMuRigpKX1lbHNle3Q9SC5kKHMuZCkKZm9y
KDtzLkYoKTspdD10K2IrSC5kKHMuZCl9cmV0dXJuIHQuY2hhckNvZGVBdCgwKT09MD90OnR9LAokaWNY
OjEsCiRpeHU6MX0KUC5uWS5wcm90b3R5cGU9e30KUC5XWS5wcm90b3R5cGU9e30KUC5SVS5wcm90b3R5
cGU9e30KUC51dy5wcm90b3R5cGU9ewpxOmZ1bmN0aW9uKGEsYil7dmFyIHQscz10aGlzLmIKaWYocz09
bnVsbClyZXR1cm4gdGhpcy5jLnEoMCxiKQplbHNlIGlmKHR5cGVvZiBiIT0ic3RyaW5nIilyZXR1cm4K
ZWxzZXt0PXNbYl0KcmV0dXJuIHR5cGVvZiB0PT0idW5kZWZpbmVkIj90aGlzLmZiKGIpOnR9fSwKZ0E6
ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYj09bnVsbD90aGlzLmMuYTp0aGlzLkNmKCkubGVuZ3RofSwK
Z1Y6ZnVuY3Rpb24oKXtpZih0aGlzLmI9PW51bGwpe3ZhciB0PXRoaXMuYwpyZXR1cm4gbmV3IEguaTUo
dCxILkxoKHQpLkMoImk1PDE+IikpfXJldHVybiBuZXcgUC5pOCh0aGlzKX0sClk6ZnVuY3Rpb24oYSxi
LGMpe3ZhciB0LHMscj10aGlzCmlmKHIuYj09bnVsbClyLmMuWSgwLGIsYykKZWxzZSBpZihyLng0KGIp
KXt0PXIuYgp0W2JdPWMKcz1yLmEKaWYocz09bnVsbD90IT1udWxsOnMhPT10KXNbYl09bnVsbH1lbHNl
IHIuWEsoKS5ZKDAsYixjKX0sCng0OmZ1bmN0aW9uKGEpe2lmKHRoaXMuYj09bnVsbClyZXR1cm4gdGhp
cy5jLng0KGEpCnJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5h
LGEpfSwKSzpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixxLHA9dGhpcwp1LmNBLmIoYikKaWYocC5iPT1u
dWxsKXJldHVybiBwLmMuSygwLGIpCnQ9cC5DZigpCmZvcihzPTA7czx0Lmxlbmd0aDsrK3Mpe3I9dFtz
XQpxPXAuYltyXQppZih0eXBlb2YgcT09InVuZGVmaW5lZCIpe3E9UC5RZShwLmFbcl0pCnAuYltyXT1x
fWIuJDIocixxKQppZih0IT09cC5jKXRocm93IEguYihQLmE0KHApKX19LApDZjpmdW5jdGlvbigpe3Zh
ciB0PXUuai5iKHRoaXMuYykKaWYodD09bnVsbCl0PXRoaXMuYz1ILlZNKE9iamVjdC5rZXlzKHRoaXMu
YSksdS5zKQpyZXR1cm4gdH0sClhLOmZ1bmN0aW9uKCl7dmFyIHQscyxyLHEscCxvPXRoaXMKaWYoby5i
PT1udWxsKXJldHVybiBvLmMKdD1QLkZsKHUuTix1LnopCnM9by5DZigpCmZvcihyPTA7cT1zLmxlbmd0
aCxyPHE7KytyKXtwPXNbcl0KdC5ZKDAscCxvLnEoMCxwKSl9aWYocT09PTApQy5ObS5pKHMsbnVsbCkK
ZWxzZSBDLk5tLnNBKHMsMCkKby5hPW8uYj1udWxsCnJldHVybiBvLmM9dH0sCmZiOmZ1bmN0aW9uKGEp
e3ZhciB0CmlmKCFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5hLGEpKXJl
dHVybgp0PVAuUWUodGhpcy5hW2FdKQpyZXR1cm4gdGhpcy5iW2FdPXR9fQpQLmk4LnByb3RvdHlwZT17
CmdBOmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuYQpyZXR1cm4gdC5nQSh0KX0sCkU6ZnVuY3Rpb24oYSxi
KXt2YXIgdD10aGlzLmEKaWYodC5iPT1udWxsKXQ9dC5nVigpLkUoMCxiKQplbHNle3Q9dC5DZigpCmlm
KGI8MHx8Yj49dC5sZW5ndGgpcmV0dXJuIEguT0godCxiKQp0PXRbYl19cmV0dXJuIHR9LApna3o6ZnVu
Y3Rpb24oYSl7dmFyIHQ9dGhpcy5hCmlmKHQuYj09bnVsbCl7dD10LmdWKCkKdD10Lmdreih0KX1lbHNl
e3Q9dC5DZigpCnQ9bmV3IEoubTEodCx0Lmxlbmd0aCxILnQ2KHQpLkMoIm0xPDE+IikpfXJldHVybiB0
fX0KUC5DVi5wcm90b3R5cGU9ewp5cjpmdW5jdGlvbihhLGEwLGExKXt2YXIgdCxzLHIscSxwLG8sbixt
LGwsayxqLGksaCxnLGYsZSxkLGMsYj0iSW52YWxpZCBiYXNlNjQgZW5jb2RpbmcgbGVuZ3RoICIKYTE9
UC5qQihhMCxhMSxhLmxlbmd0aCkKdD0kLlY3KCkKZm9yKHM9YTAscj1zLHE9bnVsbCxwPS0xLG89LTEs
bj0wO3M8YTE7cz1tKXttPXMrMQpsPUMueEIuVyhhLHMpCmlmKGw9PT0zNyl7az1tKzIKaWYoazw9YTEp
e2o9SC5vbyhDLnhCLlcoYSxtKSkKaT1ILm9vKEMueEIuVyhhLG0rMSkpCmg9aioxNitpLShpJjI1NikK
aWYoaD09PTM3KWg9LTEKbT1rfWVsc2UgaD0tMX1lbHNlIGg9bAppZigwPD1oJiZoPD0xMjcpe2lmKGg8
MHx8aD49dC5sZW5ndGgpcmV0dXJuIEguT0godCxoKQpnPXRbaF0KaWYoZz49MCl7aD1DLnhCLm0oIkFC
Q0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5
Ky8iLGcpCmlmKGg9PT1sKWNvbnRpbnVlCmw9aH1lbHNle2lmKGc9PT0tMSl7aWYocDwwKXtmPXE9PW51
bGw/bnVsbDpxLmEubGVuZ3RoCmlmKGY9PW51bGwpZj0wCnA9Zisocy1yKQpvPXN9KytuCmlmKGw9PT02
MSljb250aW51ZX1sPWh9aWYoZyE9PS0yKXtpZihxPT1udWxsKXE9bmV3IFAuUm4oIiIpCnEuYSs9Qy54
Qi5OaihhLHIscykKcS5hKz1ILkx3KGwpCnI9bQpjb250aW51ZX19dGhyb3cgSC5iKFAucnIoIkludmFs
aWQgYmFzZTY0IGRhdGEiLGEscykpfWlmKHEhPW51bGwpe2Y9cS5hKz1DLnhCLk5qKGEscixhMSkKZT1m
Lmxlbmd0aAppZihwPj0wKVAueE0oYSxvLGExLHAsbixlKQplbHNle2Q9Qy5qbi56WShlLTEsNCkrMQpp
ZihkPT09MSl0aHJvdyBILmIoUC5ycihiLGEsYTEpKQpmb3IoO2Q8NDspe2YrPSI9IgpxLmE9ZjsrK2R9
fWY9cS5hCnJldHVybiBDLnhCLmk3KGEsYTAsYTEsZi5jaGFyQ29kZUF0KDApPT0wP2Y6Zil9Yz1hMS1h
MAppZihwPj0wKVAueE0oYSxvLGExLHAsbixjKQplbHNle2Q9Qy5qbi56WShjLDQpCmlmKGQ9PT0xKXRo
cm93IEguYihQLnJyKGIsYSxhMSkpCmlmKGQ+MSlhPUMueEIuaTcoYSxhMSxhMSxkPT09Mj8iPT0iOiI9
Iil9cmV0dXJuIGF9fQpQLlU4LnByb3RvdHlwZT17fQpQLlVrLnByb3RvdHlwZT17fQpQLndJLnByb3Rv
dHlwZT17fQpQLlppLnByb3RvdHlwZT17fQpQLmJ5LnByb3RvdHlwZT17CnBXOmZ1bmN0aW9uKGEsYixj
KXt2YXIgdAp1LmVwLmIoYykKdD1QLkJTKGIsdGhpcy5nSGUoKS5hKQpyZXR1cm4gdH0sCmdIZTpmdW5j
dGlvbigpe3JldHVybiBDLkEzfX0KUC5NeC5wcm90b3R5cGU9e30KUC51NS5wcm90b3R5cGU9ewpnWkU6
ZnVuY3Rpb24oKXtyZXR1cm4gQy5Ra319ClAuRTMucHJvdG90eXBlPXsKV0o6ZnVuY3Rpb24oYSl7dmFy
IHQscyxyPVAuakIoMCxudWxsLGEubGVuZ3RoKSxxPXItMAppZihxPT09MClyZXR1cm4gbmV3IFVpbnQ4
QXJyYXkoMCkKdD1uZXcgVWludDhBcnJheShxKjMpCnM9bmV3IFAuUncodCkKaWYocy5HeChhLDAscikh
PT1yKXMuTzYoSi5hNihhLHItMSksMCkKcmV0dXJuIG5ldyBVaW50OEFycmF5KHQuc3ViYXJyYXkoMCxI
LnJNKDAscy5iLHQubGVuZ3RoKSkpfX0KUC5Sdy5wcm90b3R5cGU9ewpPNjpmdW5jdGlvbihhLGIpe3Zh
ciB0LHM9dGhpcyxyPXMuYyxxPXMuYixwPXErMSxvPXIubGVuZ3RoCmlmKChiJjY0NTEyKT09PTU2MzIw
KXt0PTY1NTM2KygoYSYxMDIzKTw8MTApfGImMTAyMwpzLmI9cAppZihxPj1vKXJldHVybiBILk9IKHIs
cSkKcltxXT0yNDB8dD4+PjE4CnE9cy5iPXArMQppZihwPj1vKXJldHVybiBILk9IKHIscCkKcltwXT0x
Mjh8dD4+PjEyJjYzCnA9cy5iPXErMQppZihxPj1vKXJldHVybiBILk9IKHIscSkKcltxXT0xMjh8dD4+
PjYmNjMKcy5iPXArMQppZihwPj1vKXJldHVybiBILk9IKHIscCkKcltwXT0xMjh8dCY2MwpyZXR1cm4h
MH1lbHNle3MuYj1wCmlmKHE+PW8pcmV0dXJuIEguT0gocixxKQpyW3FdPTIyNHxhPj4+MTIKcT1zLmI9
cCsxCmlmKHA+PW8pcmV0dXJuIEguT0gocixwKQpyW3BdPTEyOHxhPj4+NiY2MwpzLmI9cSsxCmlmKHE+
PW8pcmV0dXJuIEguT0gocixxKQpyW3FdPTEyOHxhJjYzCnJldHVybiExfX0sCkd4OmZ1bmN0aW9uKGEs
YixjKXt2YXIgdCxzLHIscSxwLG8sbixtPXRoaXMKaWYoYiE9PWMmJihDLnhCLm0oYSxjLTEpJjY0NTEy
KT09PTU1Mjk2KS0tYwpmb3IodD1tLmMscz10Lmxlbmd0aCxyPWI7cjxjOysrcil7cT1DLnhCLlcoYSxy
KQppZihxPD0xMjcpe3A9bS5iCmlmKHA+PXMpYnJlYWsKbS5iPXArMQp0W3BdPXF9ZWxzZSBpZigocSY2
NDUxMik9PT01NTI5Nil7aWYobS5iKzM+PXMpYnJlYWsKbz1yKzEKaWYobS5PNihxLEMueEIuVyhhLG8p
KSlyPW99ZWxzZSBpZihxPD0yMDQ3KXtwPW0uYgpuPXArMQppZihuPj1zKWJyZWFrCm0uYj1uCmlmKHA+
PXMpcmV0dXJuIEguT0godCxwKQp0W3BdPTE5MnxxPj4+NgptLmI9bisxCnRbbl09MTI4fHEmNjN9ZWxz
ZXtwPW0uYgppZihwKzI+PXMpYnJlYWsKbj1tLmI9cCsxCmlmKHA+PXMpcmV0dXJuIEguT0godCxwKQp0
W3BdPTIyNHxxPj4+MTIKcD1tLmI9bisxCmlmKG4+PXMpcmV0dXJuIEguT0godCxuKQp0W25dPTEyOHxx
Pj4+NiY2MwptLmI9cCsxCmlmKHA+PXMpcmV0dXJuIEguT0godCxwKQp0W3BdPTEyOHxxJjYzfX1yZXR1
cm4gcn19ClAuR1kucHJvdG90eXBlPXsKV0o6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHEscCxvLG4sbSxs
CnUuTC5iKGEpCnQ9UC5reSghMSxhLDAsbnVsbCkKaWYodCE9bnVsbClyZXR1cm4gdApzPVAuakIoMCxu
dWxsLEouSG0oYSkpCnI9UC53RyhhLDAscykKaWYocj4wKXtxPVAuSE0oYSwwLHIpCmlmKHI9PT1zKXJl
dHVybiBxCnA9bmV3IFAuUm4ocSkKbz1yCm49ITF9ZWxzZXtvPTAKcD1udWxsCm49ITB9aWYocD09bnVs
bClwPW5ldyBQLlJuKCIiKQptPW5ldyBQLmJ6KCExLHApCm0uYz1uCm0uTUUoYSxvLHMpCmlmKG0uZT4w
KXtILnZoKFAucnIoIlVuZmluaXNoZWQgVVRGLTggb2N0ZXQgc2VxdWVuY2UiLGEscykpCnAuYSs9SC5M
dyg2NTUzMykKbS5mPW0uZT1tLmQ9MH1sPXAuYQpyZXR1cm4gbC5jaGFyQ29kZUF0KDApPT0wP2w6bH19
ClAuYnoucHJvdG90eXBlPXsKTUU6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0LHMscixxLHAsbyxuLG0sbCxr
LGosaSxoPXRoaXMsZz0iQmFkIFVURi04IGVuY29kaW5nIDB4Igp1LkwuYihhKQp0PWguZApzPWguZQpy
PWguZgpoLmY9aC5lPWguZD0wCiRsYWJlbDAkMDpmb3IocT1KLlU2KGEpLHA9aC5iLG89YjshMDtvPWop
eyRsYWJlbDEkMTppZihzPjApe2Rve2lmKG89PT1jKWJyZWFrICRsYWJlbDAkMApuPXEucShhLG8pCmlm
KHR5cGVvZiBuIT09Im51bWJlciIpcmV0dXJuIG4uek0oKQppZigobiYxOTIpIT09MTI4KXttPVAucnIo
ZytDLmpuLldaKG4sMTYpLGEsbykKdGhyb3cgSC5iKG0pfWVsc2V7dD0odDw8NnxuJjYzKT4+PjA7LS1z
Oysrb319d2hpbGUocz4wKQptPXItMQppZihtPDB8fG0+PTQpcmV0dXJuIEguT0goQy5HYixtKQppZih0
PD1DLkdiW21dKXttPVAucnIoIk92ZXJsb25nIGVuY29kaW5nIG9mIDB4IitDLmpuLldaKHQsMTYpLGEs
by1yLTEpCnRocm93IEguYihtKX1pZih0PjExMTQxMTEpe209UC5ycigiQ2hhcmFjdGVyIG91dHNpZGUg
dmFsaWQgVW5pY29kZSByYW5nZTogMHgiK0Muam4uV1oodCwxNiksYSxvLXItMSkKdGhyb3cgSC5iKG0p
fWlmKCFoLmN8fHQhPT02NTI3OSlwLmErPUguTHcodCkKaC5jPSExfWZvcihtPW88YzttOyl7bD1QLndH
KGEsbyxjKQppZihsPjApe2guYz0hMQprPW8rbApwLmErPVAuSE0oYSxvLGspCmlmKGs9PT1jKWJyZWFr
fWVsc2Ugaz1vCmo9aysxCm49cS5xKGEsaykKaWYodHlwZW9mIG4hPT0ibnVtYmVyIilyZXR1cm4gbi5K
KCkKaWYobjwwKXtpPVAucnIoIk5lZ2F0aXZlIFVURi04IGNvZGUgdW5pdDogLTB4IitDLmpuLldaKC1u
LDE2KSxhLGotMSkKdGhyb3cgSC5iKGkpfWVsc2V7aWYoKG4mMjI0KT09PTE5Mil7dD1uJjMxCnM9MQpy
PTEKY29udGludWUgJGxhYmVsMCQwfWlmKChuJjI0MCk9PT0yMjQpe3Q9biYxNQpzPTIKcj0yCmNvbnRp
bnVlICRsYWJlbDAkMH1pZigobiYyNDgpPT09MjQwJiZuPDI0NSl7dD1uJjcKcz0zCnI9Mwpjb250aW51
ZSAkbGFiZWwwJDB9aT1QLnJyKGcrQy5qbi5XWihuLDE2KSxhLGotMSkKdGhyb3cgSC5iKGkpfX1icmVh
ayAkbGFiZWwwJDB9aWYocz4wKXtoLmQ9dApoLmU9cwpoLmY9cn19fQpQLldGLnByb3RvdHlwZT17CiQy
OmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyCnUuZm8uYihhKQp0PXRoaXMuYgpzPXRoaXMuYQp0LmErPXMu
YQpyPXQuYSs9SC5kKGEuYSkKdC5hPXIrIjogIgp0LmErPVAucChiKQpzLmE9IiwgIn0sCiRTOjI2fQpQ
LmEyLnByb3RvdHlwZT17fQpQLmlQLnByb3RvdHlwZT17CkROOmZ1bmN0aW9uKGEsYil7aWYoYj09bnVs
bClyZXR1cm4hMQpyZXR1cm4gYiBpbnN0YW5jZW9mIFAuaVAmJnRoaXMuYT09PWIuYSYmITB9LApnaU86
ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5hCnJldHVybih0XkMuam4ud0codCwzMCkpJjEwNzM3NDE4MjN9
LAp3OmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMscz1QLkdxKEgudEoodCkpLHI9UC5oMChILk5TKHQpKSxx
PVAuaDAoSC5qQSh0KSkscD1QLmgwKEguS0wodCkpLG89UC5oMChILmNoKHQpKSxuPVAuaDAoSC5KZCh0
KSksbT1QLlZ4KEgubzEodCkpLGw9cysiLSIrcisiLSIrcSsiICIrcCsiOiIrbysiOiIrbisiLiIrbQpy
ZXR1cm4gbH19ClAuQ1AucHJvdG90eXBlPXt9ClAuWFMucHJvdG90eXBlPXt9ClAuQzYucHJvdG90eXBl
PXsKdzpmdW5jdGlvbihhKXt2YXIgdD10aGlzLmEKaWYodCE9bnVsbClyZXR1cm4iQXNzZXJ0aW9uIGZh
aWxlZDogIitQLnAodCkKcmV0dXJuIkFzc2VydGlvbiBmYWlsZWQifX0KUC5uLnByb3RvdHlwZT17Cnc6
ZnVuY3Rpb24oYSl7cmV0dXJuIlRocm93IG9mIG51bGwuIn19ClAudS5wcm90b3R5cGU9ewpnWjpmdW5j
dGlvbigpe3JldHVybiJJbnZhbGlkIGFyZ3VtZW50IisoIXRoaXMuYT8iKHMpIjoiIil9LApndTpmdW5j
dGlvbigpe3JldHVybiIifSwKdzpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwPXRoaXMsbz1wLmMsbj1v
IT1udWxsPyIgKCIrbysiKSI6IiIKbz1wLmQKdD1vPT1udWxsPyIiOiI6ICIrSC5kKG8pCnM9cC5nWigp
K24rdAppZighcC5hKXJldHVybiBzCnI9cC5ndSgpCnE9UC5wKHAuYikKcmV0dXJuIHMrcisiOiAiK3F9
fQpQLmJKLnByb3RvdHlwZT17CmdaOmZ1bmN0aW9uKCl7cmV0dXJuIlJhbmdlRXJyb3IifSwKZ3U6ZnVu
Y3Rpb24oKXt2YXIgdCxzLHI9dGhpcy5lCmlmKHI9PW51bGwpe3I9dGhpcy5mCnQ9ciE9bnVsbD8iOiBO
b3QgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICIrSC5kKHIpOiIifWVsc2V7cz10aGlzLmYKaWYocz09bnVs
bCl0PSI6IE5vdCBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gIitILmQocikKZWxzZSBpZihzPnIpdD0i
OiBOb3QgaW4gcmFuZ2UgIitILmQocikrIi4uIitILmQocykrIiwgaW5jbHVzaXZlIgplbHNlIHQ9czxy
PyI6IFZhbGlkIHZhbHVlIHJhbmdlIGlzIGVtcHR5IjoiOiBPbmx5IHZhbGlkIHZhbHVlIGlzICIrSC5k
KHIpfXJldHVybiB0fX0KUC5lWS5wcm90b3R5cGU9ewpnWjpmdW5jdGlvbigpe3JldHVybiJSYW5nZUVy
cm9yIn0sCmd1OmZ1bmN0aW9uKCl7dmFyIHQscz1ILlNjKHRoaXMuYikKaWYodHlwZW9mIHMhPT0ibnVt
YmVyIilyZXR1cm4gcy5KKCkKaWYoczwwKXJldHVybiI6IGluZGV4IG11c3Qgbm90IGJlIG5lZ2F0aXZl
Igp0PXRoaXMuZgppZih0PT09MClyZXR1cm4iOiBubyBpbmRpY2VzIGFyZSB2YWxpZCIKcmV0dXJuIjog
aW5kZXggc2hvdWxkIGJlIGxlc3MgdGhhbiAiK0guZCh0KX0sCmdBOmZ1bmN0aW9uKGEpe3JldHVybiB0
aGlzLmZ9fQpQLm1wLnByb3RvdHlwZT17Cnc6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHEscCxvLG4sbSxs
PXRoaXMsaz17fSxqPW5ldyBQLlJuKCIiKQprLmE9IiIKZm9yKHQ9bC5jLHM9dC5sZW5ndGgscj0wLHE9
IiIscD0iIjtyPHM7KytyLHA9IiwgIil7bz10W3JdCmouYT1xK3AKcT1qLmErPVAucChvKQprLmE9Iiwg
In1sLmQuSygwLG5ldyBQLldGKGssaikpCm49UC5wKGwuYSkKbT1qLncoMCkKdD0iTm9TdWNoTWV0aG9k
RXJyb3I6IG1ldGhvZCBub3QgZm91bmQ6ICciK0guZChsLmIuYSkrIidcblJlY2VpdmVyOiAiK24rIlxu
QXJndW1lbnRzOiBbIittKyJdIgpyZXR1cm4gdH19ClAudWIucHJvdG90eXBlPXsKdzpmdW5jdGlvbihh
KXtyZXR1cm4iVW5zdXBwb3J0ZWQgb3BlcmF0aW9uOiAiK3RoaXMuYX19ClAuZHMucHJvdG90eXBlPXsK
dzpmdW5jdGlvbihhKXt2YXIgdD10aGlzLmEKcmV0dXJuIHQhPW51bGw/IlVuaW1wbGVtZW50ZWRFcnJv
cjogIit0OiJVbmltcGxlbWVudGVkRXJyb3IifX0KUC5sai5wcm90b3R5cGU9ewp3OmZ1bmN0aW9uKGEp
e3JldHVybiJCYWQgc3RhdGU6ICIrdGhpcy5hfX0KUC5VVi5wcm90b3R5cGU9ewp3OmZ1bmN0aW9uKGEp
e3ZhciB0PXRoaXMuYQppZih0PT1udWxsKXJldHVybiJDb25jdXJyZW50IG1vZGlmaWNhdGlvbiBkdXJp
bmcgaXRlcmF0aW9uLiIKcmV0dXJuIkNvbmN1cnJlbnQgbW9kaWZpY2F0aW9uIGR1cmluZyBpdGVyYXRp
b246ICIrUC5wKHQpKyIuIn19ClAuazUucHJvdG90eXBlPXsKdzpmdW5jdGlvbihhKXtyZXR1cm4iT3V0
IG9mIE1lbW9yeSJ9LAokaVhTOjF9ClAuS1kucHJvdG90eXBlPXsKdzpmdW5jdGlvbihhKXtyZXR1cm4i
U3RhY2sgT3ZlcmZsb3cifSwKJGlYUzoxfQpQLmMucHJvdG90eXBlPXsKdzpmdW5jdGlvbihhKXt2YXIg
dD10aGlzLmEKcmV0dXJuIHQ9PW51bGw/IlJlYWRpbmcgc3RhdGljIHZhcmlhYmxlIGR1cmluZyBpdHMg
aW5pdGlhbGl6YXRpb24iOiJSZWFkaW5nIHN0YXRpYyB2YXJpYWJsZSAnIit0KyInIGR1cmluZyBpdHMg
aW5pdGlhbGl6YXRpb24ifX0KUC5DRC5wcm90b3R5cGU9ewp3OmZ1bmN0aW9uKGEpe3JldHVybiJFeGNl
cHRpb246ICIrdGhpcy5hfX0KUC5hRS5wcm90b3R5cGU9ewp3OmZ1bmN0aW9uKGEpe3ZhciB0LHMscixx
LHAsbyxuLG0sbCxrLGosaSxoPXRoaXMuYSxnPWghPW51bGwmJiIiIT09aD8iRm9ybWF0RXhjZXB0aW9u
OiAiK0guZChoKToiRm9ybWF0RXhjZXB0aW9uIixmPXRoaXMuYyxlPXRoaXMuYgppZih0eXBlb2YgZT09
InN0cmluZyIpe2lmKGYhPW51bGwpaD1mPDB8fGY+ZS5sZW5ndGgKZWxzZSBoPSExCmlmKGgpZj1udWxs
CmlmKGY9PW51bGwpe3Q9ZS5sZW5ndGg+Nzg/Qy54Qi5OaihlLDAsNzUpKyIuLi4iOmUKcmV0dXJuIGcr
IlxuIit0fWZvcihzPTEscj0wLHE9ITEscD0wO3A8ZjsrK3Ape289Qy54Qi5XKGUscCkKaWYobz09PTEw
KXtpZihyIT09cHx8IXEpKytzCnI9cCsxCnE9ITF9ZWxzZSBpZihvPT09MTMpeysrcwpyPXArMQpxPSEw
fX1nPXM+MT9nKygiIChhdCBsaW5lICIrcysiLCBjaGFyYWN0ZXIgIisoZi1yKzEpKyIpXG4iKTpnKygi
IChhdCBjaGFyYWN0ZXIgIisoZisxKSsiKVxuIikKbj1lLmxlbmd0aApmb3IocD1mO3A8bjsrK3Ape289
Qy54Qi5tKGUscCkKaWYobz09PTEwfHxvPT09MTMpe249cApicmVha319aWYobi1yPjc4KWlmKGYtcjw3
NSl7bT1yKzc1Cmw9cgprPSIiCmo9Ii4uLiJ9ZWxzZXtpZihuLWY8NzUpe2w9bi03NQptPW4Kaj0iIn1l
bHNle2w9Zi0zNgptPWYrMzYKaj0iLi4uIn1rPSIuLi4ifWVsc2V7bT1uCmw9cgprPSIiCmo9IiJ9aT1D
LnhCLk5qKGUsbCxtKQpyZXR1cm4gZytrK2kraisiXG4iK0MueEIuSXgoIiAiLGYtbCtrLmxlbmd0aCkr
Il5cbiJ9ZWxzZSByZXR1cm4gZiE9bnVsbD9nKygiIChhdCBvZmZzZXQgIitILmQoZikrIikiKTpnfX0K
UC5FSC5wcm90b3R5cGU9e30KUC5LTi5wcm90b3R5cGU9e30KUC5jWC5wcm90b3R5cGU9ewpldjpmdW5j
dGlvbihhLGIpe3ZhciB0PUguTGgodGhpcykKcmV0dXJuIG5ldyBILlU1KHRoaXMsdC5DKCJhMihjWC5F
KSIpLmIoYiksdC5DKCJVNTxjWC5FPiIpKX0sCmdBOmZ1bmN0aW9uKGEpe3ZhciB0LHM9dGhpcy5na3oo
dGhpcykKZm9yKHQ9MDtzLkYoKTspKyt0CnJldHVybiB0fSwKZ2wwOmZ1bmN0aW9uKGEpe3JldHVybiF0
aGlzLmdreih0aGlzKS5GKCl9LApncjg6ZnVuY3Rpb24oYSl7dmFyIHQscz10aGlzLmdreih0aGlzKQpp
Zighcy5GKCkpdGhyb3cgSC5iKEguV3AoKSkKdD1zLmdsKCkKaWYocy5GKCkpdGhyb3cgSC5iKEguZFUo
KSkKcmV0dXJuIHR9LApFOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyClAuazEoYiwiaW5kZXgiKQpmb3Io
dD10aGlzLmdreih0aGlzKSxzPTA7dC5GKCk7KXtyPXQuZ2woKQppZihiPT09cylyZXR1cm4gcjsrK3N9
dGhyb3cgSC5iKFAuQ2YoYix0aGlzLCJpbmRleCIsbnVsbCxzKSl9LAp3OmZ1bmN0aW9uKGEpe3JldHVy
biBQLkVQKHRoaXMsIigiLCIpIil9fQpQLkFuLnByb3RvdHlwZT17fQpQLnpNLnByb3RvdHlwZT17JGlj
WDoxfQpQLlowLnByb3RvdHlwZT17fQpQLmM4LnByb3RvdHlwZT17CmdpTzpmdW5jdGlvbihhKXtyZXR1
cm4gUC5rLnByb3RvdHlwZS5naU8uY2FsbCh0aGlzLHRoaXMpfSwKdzpmdW5jdGlvbihhKXtyZXR1cm4i
bnVsbCJ9fQpQLkZLLnByb3RvdHlwZT17fQpQLmsucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpQLmssJGlr
OjEsCkROOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXM9PT1ifSwKZ2lPOmZ1bmN0aW9uKGEpe3JldHVy
biBILmVRKHRoaXMpfSwKdzpmdW5jdGlvbihhKXtyZXR1cm4iSW5zdGFuY2Ugb2YgJyIrSC5kKEguTSh0
aGlzKSkrIicifSwKZTc6ZnVuY3Rpb24oYSxiKXt1Lm8uYihiKQp0aHJvdyBILmIoUC5scih0aGlzLGIu
Z1dhKCksYi5nbmQoKSxiLmdWbSgpKSl9LAp0b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiB0aGlzLnco
dGhpcyl9fQpQLk9kLnByb3RvdHlwZT17fQpQLmliLnByb3RvdHlwZT17JGlPZDoxfQpQLnh1LnByb3Rv
dHlwZT17fQpQLkd6LnByb3RvdHlwZT17fQpQLnFVLnByb3RvdHlwZT17JGl2WDoxfQpQLlJuLnByb3Rv
dHlwZT17CmdBOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmEubGVuZ3RofSwKdzpmdW5jdGlvbihhKXt2
YXIgdD10aGlzLmEKcmV0dXJuIHQuY2hhckNvZGVBdCgwKT09MD90OnR9LAokaUJMOjF9ClAuR0QucHJv
dG90eXBlPXt9ClAubjEucHJvdG90eXBlPXsKJDI6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscQp1LmYu
YihhKQpILnkoYikKdD1KLnJZKGIpLk9ZKGIsIj0iKQppZih0PT09LTEpe2lmKGIhPT0iIilhLlkoMCxQ
Lmt1KGIsMCxiLmxlbmd0aCx0aGlzLmEsITApLCIiKX1lbHNlIGlmKHQhPT0wKXtzPUMueEIuTmooYiww
LHQpCnI9Qy54Qi5HKGIsdCsxKQpxPXRoaXMuYQphLlkoMCxQLmt1KHMsMCxzLmxlbmd0aCxxLCEwKSxQ
Lmt1KHIsMCxyLmxlbmd0aCxxLCEwKSl9cmV0dXJuIGF9LAokUzoyM30KUC5jUy5wcm90b3R5cGU9ewok
MjpmdW5jdGlvbihhLGIpe3Rocm93IEguYihQLnJyKCJJbGxlZ2FsIElQdjQgYWRkcmVzcywgIithLHRo
aXMuYSxiKSl9LAokUzoyMX0KUC5WQy5wcm90b3R5cGU9ewokMjpmdW5jdGlvbihhLGIpe3Rocm93IEgu
YihQLnJyKCJJbGxlZ2FsIElQdjYgYWRkcmVzcywgIithLHRoaXMuYSxiKSl9LAokMTpmdW5jdGlvbihh
KXtyZXR1cm4gdGhpcy4kMihhLG51bGwpfSwKJFM6MTh9ClAudHAucHJvdG90eXBlPXsKJDI6ZnVuY3Rp
b24oYSxiKXt2YXIgdAppZihiLWE+NCl0aGlzLmEuJDIoImFuIElQdjYgcGFydCBjYW4gb25seSBjb250
YWluIGEgbWF4aW11bSBvZiA0IGhleCBkaWdpdHMiLGEpCnQ9UC5RQShDLnhCLk5qKHRoaXMuYixhLGIp
LG51bGwsMTYpCmlmKHR5cGVvZiB0IT09Im51bWJlciIpcmV0dXJuIHQuSigpCmlmKHQ8MHx8dD42NTUz
NSl0aGlzLmEuJDIoImVhY2ggcGFydCBtdXN0IGJlIGluIHRoZSByYW5nZSBvZiBgMHgwLi4weEZGRkZg
IixhKQpyZXR1cm4gdH0sCiRTOjE3fQpQLkRuLnByb3RvdHlwZT17CmdrdTpmdW5jdGlvbigpe3JldHVy
biB0aGlzLmJ9LApnSmY6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5jCmlmKHQ9PW51bGwpcmV0dXJuIiIK
aWYoQy54Qi5uKHQsIlsiKSlyZXR1cm4gQy54Qi5Oaih0LDEsdC5sZW5ndGgtMSkKcmV0dXJuIHR9LApn
dHA6ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5kCmlmKHQ9PW51bGwpcmV0dXJuIFAud0sodGhpcy5hKQpy
ZXR1cm4gdH0sCmd0UDpmdW5jdGlvbigpe3ZhciB0PXRoaXMuZgpyZXR1cm4gdD09bnVsbD8iIjp0fSwK
Z0thOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yCnJldHVybiB0PT1udWxsPyIiOnR9LApubTpmdW5jdGlv
bihhLGIpe3ZhciB0LHMscixxLHAsbyxuLG0sbD10aGlzCnUuWC5iKG51bGwpCnUuYS5iKGIpCnQ9bC5h
CnM9dD09PSJmaWxlIgpyPWwuYgpxPWwuZApwPWwuYwppZighKHAhPW51bGwpKXA9ci5sZW5ndGghPT0w
fHxxIT1udWxsfHxzPyIiOm51bGwKbz1sLmUKaWYoIXMpbj1wIT1udWxsJiZvLmxlbmd0aCE9PTAKZWxz
ZSBuPSEwCmlmKG4mJiFDLnhCLm4obywiLyIpKW89Ii8iK28KaWYoYiE9bnVsbCltPVAubGUobnVsbCww
LDAsYikKZWxzZSBtPWwuZgpyZXR1cm4gbmV3IFAuRG4odCxyLHAscSxvLG0sbC5yKX0sCmdGajpmdW5j
dGlvbigpe3ZhciB0LHM9dGhpcy54CmlmKHMhPW51bGwpcmV0dXJuIHMKdD10aGlzLmUKaWYodC5sZW5n
dGghPT0wJiZDLnhCLlcodCwwKT09PTQ3KXQ9Qy54Qi5HKHQsMSkKcz10PT09IiI/Qy54RDpQLkFGKG5l
dyBILkE4KEguVk0odC5zcGxpdCgiLyIpLHUucyksdS5kTy5iKFAuUEgoKSksdS5kbyksdS5OKQp0aGlz
LnNvNihzKQpyZXR1cm4gc30sCmdoWTpmdW5jdGlvbigpe3ZhciB0LHM9dGhpcwppZihzLlE9PW51bGwp
e3Q9cy5mCnMuc1JIKG5ldyBQLkdqKFAuV1godD09bnVsbD8iIjp0KSx1LlcpKX1yZXR1cm4gcy5RfSwK
Smg6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwLG8KZm9yKHQ9MCxzPTA7Qy54Qi5RaShiLCIuLi8i
LHMpOyl7cys9MzsrK3R9cj1DLnhCLmNuKGEsIi8iKQp3aGlsZSghMCl7aWYoIShyPjAmJnQ+MCkpYnJl
YWsKcT1DLnhCLlBrKGEsIi8iLHItMSkKaWYocTwwKWJyZWFrCnA9ci1xCm89cCE9PTIKaWYoIW98fHA9
PT0zKWlmKEMueEIubShhLHErMSk9PT00NilvPSFvfHxDLnhCLm0oYSxxKzIpPT09NDYKZWxzZSBvPSEx
CmVsc2Ugbz0hMQppZihvKWJyZWFrOy0tdApyPXF9cmV0dXJuIEMueEIuaTcoYSxyKzEsbnVsbCxDLnhC
LkcoYixzLTMqdCkpfSwKWkk6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMubVMoUC5oSyhhKSl9LAptUzpm
dW5jdGlvbihhKXt2YXIgdCxzLHIscSxwLG8sbixtLGwsaz10aGlzLGo9bnVsbAppZihhLmdGaSgpLmxl
bmd0aCE9PTApe3Q9YS5nRmkoKQppZihhLmdjaigpKXtzPWEuZ2t1KCkKcj1hLmdKZihhKQpxPWEuZ3hB
KCk/YS5ndHAoYSk6an1lbHNle3E9agpyPXEKcz0iIn1wPVAueGUoYS5nSWkoYSkpCm89YS5nUUQoKT9h
Lmd0UCgpOmp9ZWxzZXt0PWsuYQppZihhLmdjaigpKXtzPWEuZ2t1KCkKcj1hLmdKZihhKQpxPVAud0Io
YS5neEEoKT9hLmd0cChhKTpqLHQpCnA9UC54ZShhLmdJaShhKSkKbz1hLmdRRCgpP2EuZ3RQKCk6an1l
bHNle3M9ay5iCnI9ay5jCnE9ay5kCmlmKGEuZ0lpKGEpPT09IiIpe3A9ay5lCm89YS5nUUQoKT9hLmd0
UCgpOmsuZn1lbHNle2lmKGEuZ3RUKCkpcD1QLnhlKGEuZ0lpKGEpKQplbHNle249ay5lCmlmKG4ubGVu
Z3RoPT09MClpZihyPT1udWxsKXA9dC5sZW5ndGg9PT0wP2EuZ0lpKGEpOlAueGUoYS5nSWkoYSkpCmVs
c2UgcD1QLnhlKCIvIithLmdJaShhKSkKZWxzZXttPWsuSmgobixhLmdJaShhKSkKbD10Lmxlbmd0aD09
PTAKaWYoIWx8fHIhPW51bGx8fEMueEIubihuLCIvIikpcD1QLnhlKG0pCmVsc2UgcD1QLndGKG0sIWx8
fHIhPW51bGwpfX1vPWEuZ1FEKCk/YS5ndFAoKTpqfX19cmV0dXJuIG5ldyBQLkRuKHQscyxyLHEscCxv
LGEuZ1o4KCk/YS5nS2EoKTpqKX0sCmdjajpmdW5jdGlvbigpe3JldHVybiB0aGlzLmMhPW51bGx9LApn
eEE6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kIT1udWxsfSwKZ1FEOmZ1bmN0aW9uKCl7cmV0dXJuIHRo
aXMuZiE9bnVsbH0sCmdaODpmdW5jdGlvbigpe3JldHVybiB0aGlzLnIhPW51bGx9LApndFQ6ZnVuY3Rp
b24oKXtyZXR1cm4gQy54Qi5uKHRoaXMuZSwiLyIpfSwKdDQ6ZnVuY3Rpb24oKXt2YXIgdCxzLHI9dGhp
cyxxPXIuYQppZihxIT09IiImJnEhPT0iZmlsZSIpdGhyb3cgSC5iKFAuTDQoIkNhbm5vdCBleHRyYWN0
IGEgZmlsZSBwYXRoIGZyb20gYSAiK0guZChxKSsiIFVSSSIpKQpxPXIuZgppZigocT09bnVsbD8iIjpx
KSE9PSIiKXRocm93IEguYihQLkw0KCJDYW5ub3QgZXh0cmFjdCBhIGZpbGUgcGF0aCBmcm9tIGEgVVJJ
IHdpdGggYSBxdWVyeSBjb21wb25lbnQiKSkKcT1yLnIKaWYoKHE9PW51bGw/IiI6cSkhPT0iIil0aHJv
dyBILmIoUC5MNCgiQ2Fubm90IGV4dHJhY3QgYSBmaWxlIHBhdGggZnJvbSBhIFVSSSB3aXRoIGEgZnJh
Z21lbnQgY29tcG9uZW50IikpCnQ9JC53USgpCmlmKEgub1QodCkpcT1QLm1uKHIpCmVsc2V7aWYoci5j
IT1udWxsJiZyLmdKZihyKSE9PSIiKUgudmgoUC5MNCgiQ2Fubm90IGV4dHJhY3QgYSBub24tV2luZG93
cyBmaWxlIHBhdGggZnJvbSBhIGZpbGUgVVJJIHdpdGggYW4gYXV0aG9yaXR5IikpCnM9ci5nRmooKQpQ
LmtFKHMsITEpCnE9UC52ZyhDLnhCLm4oci5lLCIvIik/Ii8iOiIiLHMsIi8iKQpxPXEuY2hhckNvZGVB
dCgwKT09MD9xOnF9cmV0dXJuIHF9LAp3OmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxPXRoaXMscD1xLnkK
aWYocD09bnVsbCl7cD1xLmEKdD1wLmxlbmd0aCE9PTA/cCsiOiI6IiIKcz1xLmMKcj1zPT1udWxsCmlm
KCFyfHxwPT09ImZpbGUiKXtwPXQrIi8vIgp0PXEuYgppZih0Lmxlbmd0aCE9PTApcD1wK3QrIkAiCmlm
KCFyKXArPXMKdD1xLmQKaWYodCE9bnVsbClwPXArIjoiK0guZCh0KX1lbHNlIHA9dApwKz1xLmUKdD1x
LmYKaWYodCE9bnVsbClwPXArIj8iK3QKdD1xLnIKaWYodCE9bnVsbClwPXArIiMiK3QKcD1xLnk9cC5j
aGFyQ29kZUF0KDApPT0wP3A6cH1yZXR1cm4gcH0sCkROOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyPXRo
aXMKaWYoYj09bnVsbClyZXR1cm4hMQppZihyPT09YilyZXR1cm4hMAppZih1LnYuYyhiKSlpZihyLmE9
PWIuZ0ZpKCkpaWYoci5jIT1udWxsPT09Yi5nY2ooKSlpZihyLmI9PWIuZ2t1KCkpaWYoci5nSmYocik9
PWIuZ0pmKGIpKWlmKHIuZ3RwKHIpPT1iLmd0cChiKSlpZihyLmU9PT1iLmdJaShiKSl7dD1yLmYKcz10
PT1udWxsCmlmKCFzPT09Yi5nUUQoKSl7aWYocyl0PSIiCmlmKHQ9PT1iLmd0UCgpKXt0PXIucgpzPXQ9
PW51bGwKaWYoIXM9PT1iLmdaOCgpKXtpZihzKXQ9IiIKdD10PT09Yi5nS2EoKX1lbHNlIHQ9ITF9ZWxz
ZSB0PSExfWVsc2UgdD0hMX1lbHNlIHQ9ITEKZWxzZSB0PSExCmVsc2UgdD0hMQplbHNlIHQ9ITEKZWxz
ZSB0PSExCmVsc2UgdD0hMQplbHNlIHQ9ITEKcmV0dXJuIHR9LApnaU86ZnVuY3Rpb24oYSl7dmFyIHQ9
dGhpcy56CnJldHVybiB0PT1udWxsP3RoaXMuej1DLnhCLmdpTyh0aGlzLncoMCkpOnR9LApzbzY6ZnVu
Y3Rpb24oYSl7dGhpcy54PXUuaS5iKGEpfSwKc1JIOmZ1bmN0aW9uKGEpe3RoaXMuUT11LmYuYihhKX0s
CiRpaUQ6MSwKZ0ZpOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYX0sCmdJaTpmdW5jdGlvbihhKXtyZXR1
cm4gdGhpcy5lfX0KUC5lMS5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXt0aHJvdyBILmIoUC5ycigi
SW52YWxpZCBwb3J0Iix0aGlzLmEsdGhpcy5iKzEpKX0sCiRTOjE2fQpQLk5ZLnByb3RvdHlwZT17CiQx
OmZ1bmN0aW9uKGEpe3ZhciB0PSJJbGxlZ2FsIHBhdGggY2hhcmFjdGVyICIKSC55KGEpCmlmKEouemwo
YSwiLyIpKWlmKHRoaXMuYSl0aHJvdyBILmIoUC54WSh0K2EpKQplbHNlIHRocm93IEguYihQLkw0KHQr
YSkpfSwKJFM6MTZ9ClAuUloucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7cmV0dXJuIFAuZVAoQy5a
SixhLEMueE0sITEpfSwKJFM6OH0KUC5NRS5wcm90b3R5cGU9ewokMjpmdW5jdGlvbihhLGIpe3ZhciB0
PXRoaXMuYixzPXRoaXMuYQp0LmErPXMuYQpzLmE9IiYiCnM9dC5hKz1ILmQoUC5lUChDLkYzLGEsQy54
TSwhMCkpCmlmKGIhPW51bGwmJmIubGVuZ3RoIT09MCl7dC5hPXMrIj0iCnQuYSs9SC5kKFAuZVAoQy5G
MyxiLEMueE0sITApKX19LAokUzoxOX0KUC55NS5wcm90b3R5cGU9ewokMjpmdW5jdGlvbihhLGIpe3Zh
ciB0LHMKSC55KGEpCmlmKGI9PW51bGx8fHR5cGVvZiBiPT0ic3RyaW5nIil0aGlzLmEuJDIoYSxILnko
YikpCmVsc2UgZm9yKHQ9Si5JVCh1LlIuYihiKSkscz10aGlzLmE7dC5GKCk7KXMuJDIoYSxILnkodC5n
bCgpKSl9LAokUzoxNX0KUC5QRS5wcm90b3R5cGU9ewpnbFI6ZnVuY3Rpb24oKXt2YXIgdCxzLHIscSxw
PXRoaXMsbz1udWxsLG49cC5jCmlmKG4hPW51bGwpcmV0dXJuIG4Kbj1wLmIKaWYoMD49bi5sZW5ndGgp
cmV0dXJuIEguT0gobiwwKQp0PXAuYQpuPW5bMF0rMQpzPUMueEIuWFUodCwiPyIsbikKcj10Lmxlbmd0
aAppZihzPj0wKXtxPVAudU8odCxzKzEscixDLlZDLCExKQpyPXN9ZWxzZSBxPW8KcmV0dXJuIHAuYz1u
ZXcgUC5xZSgiZGF0YSIsbyxvLG8sUC51Tyh0LG4scixDLldkLCExKSxxLG8pfSwKdzpmdW5jdGlvbihh
KXt2YXIgdCxzPXRoaXMuYgppZigwPj1zLmxlbmd0aClyZXR1cm4gSC5PSChzLDApCnQ9dGhpcy5hCnJl
dHVybiBzWzBdPT09LTE/ImRhdGE6Iit0OnR9fQpQLnEzLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEp
e3JldHVybiBuZXcgVWludDhBcnJheSg5Nil9LAokUzoyMH0KUC55SS5wcm90b3R5cGU9ewokMjpmdW5j
dGlvbihhLGIpe3ZhciB0PXRoaXMuYQppZihhPj10Lmxlbmd0aClyZXR1cm4gSC5PSCh0LGEpCnQ9dFth
XQpKLkNNKHQsMCw5NixiKQpyZXR1cm4gdH0sCiRTOjQyfQpQLmM2LnByb3RvdHlwZT17CiQzOmZ1bmN0
aW9uKGEsYixjKXt2YXIgdCxzLHIscQpmb3IodD1iLmxlbmd0aCxzPWEubGVuZ3RoLHI9MDtyPHQ7Kyty
KXtxPUMueEIuVyhiLHIpXjk2CmlmKHE+PXMpcmV0dXJuIEguT0goYSxxKQphW3FdPWN9fX0KUC5xZC5w
cm90b3R5cGU9ewokMzpmdW5jdGlvbihhLGIsYyl7dmFyIHQscyxyLHEKZm9yKHQ9Qy54Qi5XKGIsMCks
cz1DLnhCLlcoYiwxKSxyPWEubGVuZ3RoO3Q8PXM7Kyt0KXtxPSh0Xjk2KT4+PjAKaWYocT49cilyZXR1
cm4gSC5PSChhLHEpCmFbcV09Y319fQpQLlVmLnByb3RvdHlwZT17CmdjajpmdW5jdGlvbigpe3JldHVy
biB0aGlzLmM+MH0sCmd4QTpmdW5jdGlvbigpe3ZhciB0LHMKaWYodGhpcy5jPjApe3Q9dGhpcy5kCmlm
KHR5cGVvZiB0IT09Im51bWJlciIpcmV0dXJuIHQuaCgpCnM9dGhpcy5lCmlmKHR5cGVvZiBzIT09Im51
bWJlciIpcmV0dXJuIEgucFkocykKcz10KzE8cwp0PXN9ZWxzZSB0PSExCnJldHVybiB0fSwKZ1FEOmZ1
bmN0aW9uKCl7dmFyIHQ9dGhpcy5mCmlmKHR5cGVvZiB0IT09Im51bWJlciIpcmV0dXJuIHQuSigpCnJl
dHVybiB0PHRoaXMucn0sCmdaODpmdW5jdGlvbigpe3JldHVybiB0aGlzLnI8dGhpcy5hLmxlbmd0aH0s
CmdOdzpmdW5jdGlvbigpe3JldHVybiB0aGlzLmI9PT00JiZDLnhCLm4odGhpcy5hLCJmaWxlIil9LApn
dmg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5iPT09NCYmQy54Qi5uKHRoaXMuYSwiaHR0cCIpfSwKZ3FC
OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYj09PTUmJkMueEIubih0aGlzLmEsImh0dHBzIil9LApndFQ6
ZnVuY3Rpb24oKXtyZXR1cm4gQy54Qi5RaSh0aGlzLmEsIi8iLHRoaXMuZSl9LApnRmk6ZnVuY3Rpb24o
KXt2YXIgdCxzPXRoaXMscj0icGFja2FnZSIscT1zLmIKaWYocTw9MClyZXR1cm4iIgp0PXMueAppZih0
IT1udWxsKXJldHVybiB0CmlmKHMuZ3ZoKCkpcT1zLng9Imh0dHAiCmVsc2UgaWYocy5ncUIoKSl7cy54
PSJodHRwcyIKcT0iaHR0cHMifWVsc2UgaWYocy5nTncoKSl7cy54PSJmaWxlIgpxPSJmaWxlIn1lbHNl
IGlmKHE9PT03JiZDLnhCLm4ocy5hLHIpKXtzLng9cgpxPXJ9ZWxzZXtxPUMueEIuTmoocy5hLDAscSkK
cy54PXF9cmV0dXJuIHF9LApna3U6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmMscz10aGlzLmIrMwpyZXR1
cm4gdD5zP0MueEIuTmoodGhpcy5hLHMsdC0xKToiIn0sCmdKZjpmdW5jdGlvbihhKXt2YXIgdD10aGlz
LmMKcmV0dXJuIHQ+MD9DLnhCLk5qKHRoaXMuYSx0LHRoaXMuZCk6IiJ9LApndHA6ZnVuY3Rpb24oYSl7
dmFyIHQscz10aGlzCmlmKHMuZ3hBKCkpe3Q9cy5kCmlmKHR5cGVvZiB0IT09Im51bWJlciIpcmV0dXJu
IHQuaCgpCnJldHVybiBQLlFBKEMueEIuTmoocy5hLHQrMSxzLmUpLG51bGwsbnVsbCl9aWYocy5ndmgo
KSlyZXR1cm4gODAKaWYocy5ncUIoKSlyZXR1cm4gNDQzCnJldHVybiAwfSwKZ0lpOmZ1bmN0aW9uKGEp
e3JldHVybiBDLnhCLk5qKHRoaXMuYSx0aGlzLmUsdGhpcy5mKX0sCmd0UDpmdW5jdGlvbigpe3ZhciB0
PXRoaXMuZixzPXRoaXMucgppZih0eXBlb2YgdCE9PSJudW1iZXIiKXJldHVybiB0LkooKQpyZXR1cm4g
dDxzP0MueEIuTmoodGhpcy5hLHQrMSxzKToiIn0sCmdLYTpmdW5jdGlvbigpe3ZhciB0PXRoaXMucixz
PXRoaXMuYQpyZXR1cm4gdDxzLmxlbmd0aD9DLnhCLkcocyx0KzEpOiIifSwKZ0ZqOmZ1bmN0aW9uKCl7
dmFyIHQscyxyPXRoaXMuZSxxPXRoaXMuZixwPXRoaXMuYQppZihDLnhCLlFpKHAsIi8iLHIpKXtpZih0
eXBlb2YgciE9PSJudW1iZXIiKXJldHVybiByLmgoKTsrK3J9aWYocj09cSlyZXR1cm4gQy54RAp0PUgu
Vk0oW10sdS5zKQpzPXIKd2hpbGUoITApe2lmKHR5cGVvZiBzIT09Im51bWJlciIpcmV0dXJuIHMuSigp
CmlmKHR5cGVvZiBxIT09Im51bWJlciIpcmV0dXJuIEgucFkocSkKaWYoIShzPHEpKWJyZWFrCmlmKEMu
eEIubShwLHMpPT09NDcpe0MuTm0uaSh0LEMueEIuTmoocCxyLHMpKQpyPXMrMX0rK3N9Qy5ObS5pKHQs
Qy54Qi5OaihwLHIscSkpCnJldHVybiBQLkFGKHQsdS5OKX0sCmdoWTpmdW5jdGlvbigpe3ZhciB0PXRo
aXMuZgppZih0eXBlb2YgdCE9PSJudW1iZXIiKXJldHVybiB0LkooKQppZih0Pj10aGlzLnIpcmV0dXJu
IEMuV08KcmV0dXJuIG5ldyBQLkdqKFAuV1godGhpcy5ndFAoKSksdS5XKX0sCmtYOmZ1bmN0aW9uKGEp
e3ZhciB0LHM9dGhpcy5kCmlmKHR5cGVvZiBzIT09Im51bWJlciIpcmV0dXJuIHMuaCgpCnQ9cysxCnJl
dHVybiB0K2EubGVuZ3RoPT09dGhpcy5lJiZDLnhCLlFpKHRoaXMuYSxhLHQpfSwKTjk6ZnVuY3Rpb24o
KXt2YXIgdD10aGlzLHM9dC5yLHI9dC5hCmlmKHM+PXIubGVuZ3RoKXJldHVybiB0CnJldHVybiBuZXcg
UC5VZihDLnhCLk5qKHIsMCxzKSx0LmIsdC5jLHQuZCx0LmUsdC5mLHMsdC54KX0sCm5tOmZ1bmN0aW9u
KGEsYil7dmFyIHQscyxyLHEscCxvLG4sbSxsLGssaixpPXRoaXMsaD1udWxsCnUuWC5iKG51bGwpCnUu
YS5iKGIpCnQ9aS5nRmkoKQpzPXQ9PT0iZmlsZSIKcj1pLmMKcT1yPjA/Qy54Qi5OaihpLmEsaS5iKzMs
cik6IiIKcD1pLmd4QSgpP2kuZ3RwKGkpOmgKcj1pLmMKaWYocj4wKW89Qy54Qi5OaihpLmEscixpLmQp
CmVsc2Ugbz1xLmxlbmd0aCE9PTB8fHAhPW51bGx8fHM/IiI6aApyPWkuYQpuPWkuZgptPUMueEIuTmoo
cixpLmUsbikKaWYoIXMpbD1vIT1udWxsJiZtLmxlbmd0aCE9PTAKZWxzZSBsPSEwCmlmKGwmJiFDLnhC
Lm4obSwiLyIpKW09Ii8iK20KaWYoYiE9bnVsbClrPVAubGUoaCwwLDAsYikKZWxzZXtsPWkucgppZih0
eXBlb2YgbiE9PSJudW1iZXIiKXJldHVybiBuLkooKQprPW48bD9DLnhCLk5qKHIsbisxLGwpOmh9bj1p
LnIKaj1uPHIubGVuZ3RoP0MueEIuRyhyLG4rMSk6aApyZXR1cm4gbmV3IFAuRG4odCxxLG8scCxtLGss
ail9LApaSTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5tUyhQLmhLKGEpKX0sCm1TOmZ1bmN0aW9uKGEp
e2lmKGEgaW5zdGFuY2VvZiBQLlVmKXJldHVybiB0aGlzLnUxKHRoaXMsYSkKcmV0dXJuIHRoaXMuUmUo
KS5tUyhhKX0sCnUxOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyLHEscCxvLG4sbSxsLGssaixpLGgsZyxm
LGU9Yi5iCmlmKGU+MClyZXR1cm4gYgp0PWIuYwppZih0PjApe3M9YS5iCmlmKHM8PTApcmV0dXJuIGIK
aWYoYS5nTncoKSlyPWIuZSE9Yi5mCmVsc2UgaWYoYS5ndmgoKSlyPSFiLmtYKCI4MCIpCmVsc2Ugcj0h
YS5ncUIoKXx8IWIua1goIjQ0MyIpCmlmKHIpe3E9cysxCnA9Qy54Qi5OaihhLmEsMCxxKStDLnhCLkco
Yi5hLGUrMSkKZT1iLmQKaWYodHlwZW9mIGUhPT0ibnVtYmVyIilyZXR1cm4gZS5oKCkKbz1iLmUKaWYo
dHlwZW9mIG8hPT0ibnVtYmVyIilyZXR1cm4gby5oKCkKbj1iLmYKaWYodHlwZW9mIG4hPT0ibnVtYmVy
IilyZXR1cm4gbi5oKCkKcmV0dXJuIG5ldyBQLlVmKHAscyx0K3EsZStxLG8rcSxuK3EsYi5yK3EsYS54
KX1lbHNlIHJldHVybiB0aGlzLlJlKCkubVMoYil9bT1iLmUKZT1iLmYKaWYobT09ZSl7dD1iLnIKaWYo
dHlwZW9mIGUhPT0ibnVtYmVyIilyZXR1cm4gZS5KKCkKaWYoZTx0KXtzPWEuZgppZih0eXBlb2YgcyE9
PSJudW1iZXIiKXJldHVybiBzLkhOKCkKcT1zLWUKcmV0dXJuIG5ldyBQLlVmKEMueEIuTmooYS5hLDAs
cykrQy54Qi5HKGIuYSxlKSxhLmIsYS5jLGEuZCxhLmUsZStxLHQrcSxhLngpfWU9Yi5hCmlmKHQ8ZS5s
ZW5ndGgpe3M9YS5yCnJldHVybiBuZXcgUC5VZihDLnhCLk5qKGEuYSwwLHMpK0MueEIuRyhlLHQpLGEu
YixhLmMsYS5kLGEuZSxhLmYsdCsocy10KSxhLngpfXJldHVybiBhLk45KCl9dD1iLmEKaWYoQy54Qi5R
aSh0LCIvIixtKSl7cz1hLmUKaWYodHlwZW9mIHMhPT0ibnVtYmVyIilyZXR1cm4gcy5ITigpCmlmKHR5
cGVvZiBtIT09Im51bWJlciIpcmV0dXJuIEgucFkobSkKcT1zLW0KcD1DLnhCLk5qKGEuYSwwLHMpK0Mu
eEIuRyh0LG0pCmlmKHR5cGVvZiBlIT09Im51bWJlciIpcmV0dXJuIGUuaCgpCnJldHVybiBuZXcgUC5V
ZihwLGEuYixhLmMsYS5kLHMsZStxLGIucitxLGEueCl9bD1hLmUKaz1hLmYKaWYobD09ayYmYS5jPjAp
e2Zvcig7Qy54Qi5RaSh0LCIuLi8iLG0pOyl7aWYodHlwZW9mIG0hPT0ibnVtYmVyIilyZXR1cm4gbS5o
KCkKbSs9M31pZih0eXBlb2YgbCE9PSJudW1iZXIiKXJldHVybiBsLkhOKCkKaWYodHlwZW9mIG0hPT0i
bnVtYmVyIilyZXR1cm4gSC5wWShtKQpxPWwtbSsxCnA9Qy54Qi5OaihhLmEsMCxsKSsiLyIrQy54Qi5H
KHQsbSkKaWYodHlwZW9mIGUhPT0ibnVtYmVyIilyZXR1cm4gZS5oKCkKcmV0dXJuIG5ldyBQLlVmKHAs
YS5iLGEuYyxhLmQsbCxlK3EsYi5yK3EsYS54KX1qPWEuYQpmb3IoaT1sO0MueEIuUWkoaiwiLi4vIixp
KTspe2lmKHR5cGVvZiBpIT09Im51bWJlciIpcmV0dXJuIGkuaCgpCmkrPTN9aD0wCndoaWxlKCEwKXtp
Zih0eXBlb2YgbSE9PSJudW1iZXIiKXJldHVybiBtLmgoKQpnPW0rMwppZih0eXBlb2YgZSE9PSJudW1i
ZXIiKXJldHVybiBILnBZKGUpCmlmKCEoZzw9ZSYmQy54Qi5RaSh0LCIuLi8iLG0pKSlicmVhazsrK2gK
bT1nfWY9IiIKd2hpbGUoITApe2lmKHR5cGVvZiBrIT09Im51bWJlciIpcmV0dXJuIGsub3MoKQppZih0
eXBlb2YgaSE9PSJudW1iZXIiKXJldHVybiBILnBZKGkpCmlmKCEoaz5pKSlicmVhazstLWsKaWYoQy54
Qi5tKGosayk9PT00Nyl7aWYoaD09PTApe2Y9Ii8iCmJyZWFrfS0taApmPSIvIn19aWYoaz09PWkmJmEu
Yjw9MCYmIUMueEIuUWkoaiwiLyIsbCkpe20tPWgqMwpmPSIifXE9ay1tK2YubGVuZ3RoCnJldHVybiBu
ZXcgUC5VZihDLnhCLk5qKGosMCxrKStmK0MueEIuRyh0LG0pLGEuYixhLmMsYS5kLGwsZStxLGIucitx
LGEueCl9LAp0NDpmdW5jdGlvbigpe3ZhciB0LHMscixxLHA9dGhpcwppZihwLmI+PTAmJiFwLmdOdygp
KXRocm93IEguYihQLkw0KCJDYW5ub3QgZXh0cmFjdCBhIGZpbGUgcGF0aCBmcm9tIGEgIitILmQocC5n
RmkoKSkrIiBVUkkiKSkKdD1wLmYKcz1wLmEKaWYodHlwZW9mIHQhPT0ibnVtYmVyIilyZXR1cm4gdC5K
KCkKaWYodDxzLmxlbmd0aCl7aWYodDxwLnIpdGhyb3cgSC5iKFAuTDQoIkNhbm5vdCBleHRyYWN0IGEg
ZmlsZSBwYXRoIGZyb20gYSBVUkkgd2l0aCBhIHF1ZXJ5IGNvbXBvbmVudCIpKQp0aHJvdyBILmIoUC5M
NCgiQ2Fubm90IGV4dHJhY3QgYSBmaWxlIHBhdGggZnJvbSBhIFVSSSB3aXRoIGEgZnJhZ21lbnQgY29t
cG9uZW50IikpfXI9JC53USgpCmlmKEgub1QocikpdD1QLm1uKHApCmVsc2V7cT1wLmQKaWYodHlwZW9m
IHEhPT0ibnVtYmVyIilyZXR1cm4gSC5wWShxKQppZihwLmM8cSlILnZoKFAuTDQoIkNhbm5vdCBleHRy
YWN0IGEgbm9uLVdpbmRvd3MgZmlsZSBwYXRoIGZyb20gYSBmaWxlIFVSSSB3aXRoIGFuIGF1dGhvcml0
eSIpKQp0PUMueEIuTmoocyxwLmUsdCl9cmV0dXJuIHR9LApnaU86ZnVuY3Rpb24oYSl7dmFyIHQ9dGhp
cy55CnJldHVybiB0PT1udWxsP3RoaXMueT1DLnhCLmdpTyh0aGlzLmEpOnR9LApETjpmdW5jdGlvbihh
LGIpe2lmKGI9PW51bGwpcmV0dXJuITEKaWYodGhpcz09PWIpcmV0dXJuITAKcmV0dXJuIHUudi5jKGIp
JiZ0aGlzLmE9PT1iLncoMCl9LApSZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMscz1udWxsLHI9dC5nRmko
KSxxPXQuZ2t1KCkscD10LmM+MD90LmdKZih0KTpzLG89dC5neEEoKT90Lmd0cCh0KTpzLG49dC5hLG09
dC5mLGw9Qy54Qi5OaihuLHQuZSxtKSxrPXQucgppZih0eXBlb2YgbSE9PSJudW1iZXIiKXJldHVybiBt
LkooKQptPW08az90Lmd0UCgpOnMKcmV0dXJuIG5ldyBQLkRuKHIscSxwLG8sbCxtLGs8bi5sZW5ndGg/
dC5nS2EoKTpzKX0sCnc6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYX0sCiRpaUQ6MX0KUC5xZS5wcm90
b3R5cGU9e30KVy5xRS5wcm90b3R5cGU9e30KVy5HaC5wcm90b3R5cGU9ewp3OmZ1bmN0aW9uKGEpe3Jl
dHVybiBTdHJpbmcoYSl9LAokaUdoOjF9ClcuZlkucHJvdG90eXBlPXsKdzpmdW5jdGlvbihhKXtyZXR1
cm4gU3RyaW5nKGEpfX0KVy5uQi5wcm90b3R5cGU9eyRpbkI6MX0KVy5Bei5wcm90b3R5cGU9eyRpQXo6
MX0KVy5RUC5wcm90b3R5cGU9eyRpUVA6MX0KVy5ueC5wcm90b3R5cGU9ewpnQTpmdW5jdGlvbihhKXty
ZXR1cm4gYS5sZW5ndGh9fQpXLm9KLnByb3RvdHlwZT17CmdBOmZ1bmN0aW9uKGEpe3JldHVybiBhLmxl
bmd0aH19ClcuaWQucHJvdG90eXBlPXt9ClcuUUYucHJvdG90eXBlPXt9ClcuTmgucHJvdG90eXBlPXsK
dzpmdW5jdGlvbihhKXtyZXR1cm4gU3RyaW5nKGEpfX0KVy5JQi5wcm90b3R5cGU9ewp3OmZ1bmN0aW9u
KGEpe3JldHVybiJSZWN0YW5nbGUgKCIrSC5kKGEubGVmdCkrIiwgIitILmQoYS50b3ApKyIpICIrSC5k
KGEud2lkdGgpKyIgeCAiK0guZChhLmhlaWdodCl9LApETjpmdW5jdGlvbihhLGIpe2lmKGI9PW51bGwp
cmV0dXJuITEKcmV0dXJuIHUucS5jKGIpJiZhLmxlZnQ9PT1iLmxlZnQmJmEudG9wPT09Yi50b3AmJmEu
d2lkdGg9PT1iLndpZHRoJiZhLmhlaWdodD09PWIuaGVpZ2h0fSwKZ2lPOmZ1bmN0aW9uKGEpe3JldHVy
biBXLnJFKEMuQ0QuZ2lPKGEubGVmdCksQy5DRC5naU8oYS50b3ApLEMuQ0QuZ2lPKGEud2lkdGgpLEMu
Q0QuZ2lPKGEuaGVpZ2h0KSl9LAokaXRuOjF9ClcubjcucHJvdG90eXBlPXsKZ0E6ZnVuY3Rpb24oYSl7
cmV0dXJuIGEubGVuZ3RofX0KVy53ei5wcm90b3R5cGU9ewpnQTpmdW5jdGlvbihhKXtyZXR1cm4gdGhp
cy5hLmxlbmd0aH0sCnE6ZnVuY3Rpb24oYSxiKXt2YXIgdApILlNjKGIpCnQ9dGhpcy5hCmlmKGI8MHx8
Yj49dC5sZW5ndGgpcmV0dXJuIEguT0godCxiKQpyZXR1cm4gdGhpcy4kdGkuZC5iKHRbYl0pfSwKWTpm
dW5jdGlvbihhLGIsYyl7dGhpcy4kdGkuZC5iKGMpCnRocm93IEguYihQLkw0KCJDYW5ub3QgbW9kaWZ5
IGxpc3QiKSl9fQpXLmN2LnByb3RvdHlwZT17CmdRZzpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IFcuaTco
YSl9LApnRDpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IFcuSTQoYSl9LAp3OmZ1bmN0aW9uKGEpe3JldHVy
biBhLmxvY2FsTmFtZX0sCnRuOmZ1bmN0aW9uKGEpe3ZhciB0PSEhYS5zY3JvbGxJbnRvVmlld0lmTmVl
ZGVkCmlmKHQpYS5zY3JvbGxJbnRvVmlld0lmTmVlZGVkKCkKZWxzZSBhLnNjcm9sbEludG9WaWV3KCl9
LApyNjpmdW5jdGlvbihhLGIsYyxkKXt2YXIgdCxzLHIscQppZihjPT1udWxsKXtpZihkPT1udWxsKXt0
PSQubHQKaWYodD09bnVsbCl7dD1ILlZNKFtdLHUuUSkKcz1uZXcgVy52RCh0KQpDLk5tLmkodCxXLlR3
KG51bGwpKQpDLk5tLmkodCxXLkJsKCkpCiQubHQ9cwpkPXN9ZWxzZSBkPXR9dD0kLkVVCmlmKHQ9PW51
bGwpe3Q9bmV3IFcuS28oZCkKJC5FVT10CmM9dH1lbHNle3QuYT1kCmM9dH19ZWxzZSBpZihkIT1udWxs
KXRocm93IEguYihQLnhZKCJ2YWxpZGF0b3IgY2FuIG9ubHkgYmUgcGFzc2VkIGlmIHRyZWVTYW5pdGl6
ZXIgaXMgbnVsbCIpKQppZigkLnhvPT1udWxsKXt0PWRvY3VtZW50CnM9dC5pbXBsZW1lbnRhdGlvbi5j
cmVhdGVIVE1MRG9jdW1lbnQoIiIpCiQueG89cwokLkJPPXMuY3JlYXRlUmFuZ2UoKQpzPSQueG8uY3Jl
YXRlRWxlbWVudCgiYmFzZSIpCnUuRi5iKHMpCnMuaHJlZj10LmJhc2VVUkkKJC54by5oZWFkLmFwcGVu
ZENoaWxkKHMpfXQ9JC54bwppZih0LmJvZHk9PW51bGwpe3M9dC5jcmVhdGVFbGVtZW50KCJib2R5IikK
dC5ib2R5PXUuWS5iKHMpfXQ9JC54bwppZih1LlkuYyhhKSlyPXQuYm9keQplbHNle3I9dC5jcmVhdGVF
bGVtZW50KGEudGFnTmFtZSkKJC54by5ib2R5LmFwcGVuZENoaWxkKHIpfWlmKCJjcmVhdGVDb250ZXh0
dWFsRnJhZ21lbnQiIGluIHdpbmRvdy5SYW5nZS5wcm90b3R5cGUmJiFDLk5tLnRnKEMuU3EsYS50YWdO
YW1lKSl7JC5CTy5zZWxlY3ROb2RlQ29udGVudHMocikKcT0kLkJPLmNyZWF0ZUNvbnRleHR1YWxGcmFn
bWVudChiKX1lbHNle3IuaW5uZXJIVE1MPWIKcT0kLnhvLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKQpm
b3IoO3Q9ci5maXJzdENoaWxkLHQhPW51bGw7KXEuYXBwZW5kQ2hpbGQodCl9dD0kLnhvLmJvZHkKaWYo
cj09bnVsbD90IT1udWxsOnIhPT10KUouTHQocikKYy5QbihxKQpkb2N1bWVudC5hZG9wdE5vZGUocSkK
cmV0dXJuIHF9LApBSDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMucjYoYSxiLGMsbnVsbCl9LApz
aGY6ZnVuY3Rpb24oYSxiKXt0aGlzLllDKGEsYil9LApwazpmdW5jdGlvbihhLGIsYyl7YS50ZXh0Q29u
dGVudD1udWxsCmEuYXBwZW5kQ2hpbGQodGhpcy5yNihhLGIsbnVsbCxjKSl9LApZQzpmdW5jdGlvbihh
LGIpe3JldHVybiB0aGlzLnBrKGEsYixudWxsKX0sCmdWbDpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IFcu
Q3EoYSwiY2xpY2siLCExLHUuQyl9LAokaWN2OjEsCmduczpmdW5jdGlvbihhKXtyZXR1cm4gYS50YWdO
YW1lfX0KVy5Ddi5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXtyZXR1cm4gdS5oLmModS5BLmIoYSkp
fSwKJFM6MjJ9ClcuZWEucHJvdG90eXBlPXskaWVhOjF9ClcuRDAucHJvdG90eXBlPXsKT246ZnVuY3Rp
b24oYSxiLGMsZCl7dS5VLmIoYykKaWYoYyE9bnVsbCl0aGlzLnYoYSxiLGMsZCl9LApCOmZ1bmN0aW9u
KGEsYixjKXtyZXR1cm4gdGhpcy5PbihhLGIsYyxudWxsKX0sCnY6ZnVuY3Rpb24oYSxiLGMsZCl7cmV0
dXJuIGEuYWRkRXZlbnRMaXN0ZW5lcihiLEgudFIodS5VLmIoYyksMSksZCl9LAokaUQwOjF9ClcuVDUu
cHJvdG90eXBlPXskaVQ1OjF9ClcuaDQucHJvdG90eXBlPXsKZ0E6ZnVuY3Rpb24oYSl7cmV0dXJuIGEu
bGVuZ3RofX0KVy5ici5wcm90b3R5cGU9ewpnQTpmdW5jdGlvbihhKXtyZXR1cm4gYS5sZW5ndGh9fQpX
LlZiLnByb3RvdHlwZT17fQpXLk83LnByb3RvdHlwZT17CmVvOmZ1bmN0aW9uKGEsYixjLGQpe3JldHVy
biBhLm9wZW4oYixjLCEwKX0sCiRpTzc6MX0KVy5iVS5wcm90b3R5cGU9ewokMjpmdW5jdGlvbihhLGIp
e3RoaXMuYS5zZXRSZXF1ZXN0SGVhZGVyKEgueShhKSxILnkoYikpfSwKJFM6MTB9ClcuaEgucHJvdG90
eXBlPXsKJDE6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHEscAp1LnAuYihhKQp0PXRoaXMuYQpzPXQuc3Rh
dHVzCmlmKHR5cGVvZiBzIT09Im51bWJlciIpcmV0dXJuIHMudEIoKQpyPXM+PTIwMCYmczwzMDAKcT1z
PjMwNyYmczw0MDAKcz1yfHxzPT09MHx8cz09PTMwNHx8cQpwPXRoaXMuYgppZihzKXtwLiR0aS5DKCIx
LyIpLmIodCkKcz1wLmEKaWYocy5hIT09MClILnZoKFAuUFYoIkZ1dHVyZSBhbHJlYWR5IGNvbXBsZXRl
ZCIpKQpzLlhmKHQpfWVsc2UgcC5wbShhKX0sCiRTOjI0fQpXLndhLnByb3RvdHlwZT17fQpXLlNnLnBy
b3RvdHlwZT17JGlTZzoxfQpXLnU4LnByb3RvdHlwZT17CmdEcjpmdW5jdGlvbihhKXtpZigib3JpZ2lu
IiBpbiBhKXJldHVybiBhLm9yaWdpbgpyZXR1cm4gSC5kKGEucHJvdG9jb2wpKyIvLyIrSC5kKGEuaG9z
dCl9LAp3OmZ1bmN0aW9uKGEpe3JldHVybiBTdHJpbmcoYSl9LAokaXU4OjF9ClcuQWoucHJvdG90eXBl
PXskaUFqOjF9ClcuZTcucHJvdG90eXBlPXsKZ3I4OmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuYSxzPXQu
Y2hpbGROb2Rlcy5sZW5ndGgKaWYocz09PTApdGhyb3cgSC5iKFAuUFYoIk5vIGVsZW1lbnRzIikpCmlm
KHM+MSl0aHJvdyBILmIoUC5QVigiTW9yZSB0aGFuIG9uZSBlbGVtZW50IikpCnJldHVybiB0LmZpcnN0
Q2hpbGR9LApGVjpmdW5jdGlvbihhLGIpe3ZhciB0LHMscixxCnUuZWguYihiKQp0PWIuYQpzPXRoaXMu
YQppZih0IT09cylmb3Iocj10LmNoaWxkTm9kZXMubGVuZ3RoLHE9MDtxPHI7KytxKXMuYXBwZW5kQ2hp
bGQodC5maXJzdENoaWxkKQpyZXR1cm59LApZOmZ1bmN0aW9uKGEsYixjKXt2YXIgdCxzCnUuQS5iKGMp
CnQ9dGhpcy5hCnM9dC5jaGlsZE5vZGVzCmlmKGI8MHx8Yj49cy5sZW5ndGgpcmV0dXJuIEguT0gocyxi
KQp0LnJlcGxhY2VDaGlsZChjLHNbYl0pfSwKZ2t6OmZ1bmN0aW9uKGEpe3ZhciB0PXRoaXMuYS5jaGls
ZE5vZGVzCnJldHVybiBuZXcgVy5XOSh0LHQubGVuZ3RoLEgueksodCkuQygiVzk8R20uRT4iKSl9LApn
QTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hLmNoaWxkTm9kZXMubGVuZ3RofSwKcTpmdW5jdGlvbihh
LGIpe3ZhciB0CkguU2MoYikKdD10aGlzLmEuY2hpbGROb2RlcwppZihiPDB8fGI+PXQubGVuZ3RoKXJl
dHVybiBILk9IKHQsYikKcmV0dXJuIHRbYl19fQpXLnVILnByb3RvdHlwZT17CndnOmZ1bmN0aW9uKGEp
e3ZhciB0PWEucGFyZW50Tm9kZQppZih0IT1udWxsKXQucmVtb3ZlQ2hpbGQoYSl9LApENDpmdW5jdGlv
bihhKXt2YXIgdApmb3IoO3Q9YS5maXJzdENoaWxkLHQhPW51bGw7KWEucmVtb3ZlQ2hpbGQodCl9LAp3
OmZ1bmN0aW9uKGEpe3ZhciB0PWEubm9kZVZhbHVlCnJldHVybiB0PT1udWxsP3RoaXMuVShhKTp0fSwK
JGl1SDoxfQpXLkJILnByb3RvdHlwZT17CmdBOmZ1bmN0aW9uKGEpe3JldHVybiBhLmxlbmd0aH0sCnE6
ZnVuY3Rpb24oYSxiKXtILlNjKGIpCmlmKGI+Pj4wIT09Ynx8Yj49YS5sZW5ndGgpdGhyb3cgSC5iKFAu
Q2YoYixhLG51bGwsbnVsbCxudWxsKSkKcmV0dXJuIGFbYl19LApZOmZ1bmN0aW9uKGEsYixjKXt1LkEu
YihjKQp0aHJvdyBILmIoUC5MNCgiQ2Fubm90IGFzc2lnbiBlbGVtZW50IG9mIGltbXV0YWJsZSBMaXN0
LiIpKX0sCkU6ZnVuY3Rpb24oYSxiKXtpZihiPDB8fGI+PWEubGVuZ3RoKXJldHVybiBILk9IKGEsYikK
cmV0dXJuIGFbYl19LAokaVhqOjEsCiRpY1g6MSwKJGl6TToxfQpXLlNOLnByb3RvdHlwZT17fQpXLmV3
LnByb3RvdHlwZT17JGlldzoxfQpXLmxwLnByb3RvdHlwZT17CmdBOmZ1bmN0aW9uKGEpe3JldHVybiBh
Lmxlbmd0aH19ClcuVGIucHJvdG90eXBlPXsKcjY6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscwppZigi
Y3JlYXRlQ29udGV4dHVhbEZyYWdtZW50IiBpbiB3aW5kb3cuUmFuZ2UucHJvdG90eXBlKXJldHVybiB0
aGlzLkRXKGEsYixjLGQpCnQ9Vy5VOSgiPHRhYmxlPiIrSC5kKGIpKyI8L3RhYmxlPiIsYyxkKQpzPWRv
Y3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKQpzLnRvU3RyaW5nCnQudG9TdHJpbmcKbmV3IFcu
ZTcocykuRlYoMCxuZXcgVy5lNyh0KSkKcmV0dXJuIHN9fQpXLkl2LnByb3RvdHlwZT17CnI2OmZ1bmN0
aW9uKGEsYixjLGQpe3ZhciB0LHMscixxCmlmKCJjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQiIGluIHdp
bmRvdy5SYW5nZS5wcm90b3R5cGUpcmV0dXJuIHRoaXMuRFcoYSxiLGMsZCkKdD1kb2N1bWVudApzPXQu
Y3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpCnQ9Qy5JZS5yNih0LmNyZWF0ZUVsZW1lbnQoInRhYmxlIiks
YixjLGQpCnQudG9TdHJpbmcKdD1uZXcgVy5lNyh0KQpyPXQuZ3I4KHQpCnIudG9TdHJpbmcKdD1uZXcg
Vy5lNyhyKQpxPXQuZ3I4KHQpCnMudG9TdHJpbmcKcS50b1N0cmluZwpuZXcgVy5lNyhzKS5GVigwLG5l
dyBXLmU3KHEpKQpyZXR1cm4gc319ClcuQlQucHJvdG90eXBlPXsKcjY6ZnVuY3Rpb24oYSxiLGMsZCl7
dmFyIHQscyxyCmlmKCJjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQiIGluIHdpbmRvdy5SYW5nZS5wcm90
b3R5cGUpcmV0dXJuIHRoaXMuRFcoYSxiLGMsZCkKdD1kb2N1bWVudApzPXQuY3JlYXRlRG9jdW1lbnRG
cmFnbWVudCgpCnQ9Qy5JZS5yNih0LmNyZWF0ZUVsZW1lbnQoInRhYmxlIiksYixjLGQpCnQudG9TdHJp
bmcKdD1uZXcgVy5lNyh0KQpyPXQuZ3I4KHQpCnMudG9TdHJpbmcKci50b1N0cmluZwpuZXcgVy5lNyhz
KS5GVigwLG5ldyBXLmU3KHIpKQpyZXR1cm4gc319ClcueVkucHJvdG90eXBlPXsKcGs6ZnVuY3Rpb24o
YSxiLGMpe3ZhciB0LHMKYS50ZXh0Q29udGVudD1udWxsCnQ9YS5jb250ZW50CnQudG9TdHJpbmcKSi5i
VCh0KQpzPXRoaXMucjYoYSxiLG51bGwsYykKYS5jb250ZW50LmFwcGVuZENoaWxkKHMpfSwKWUM6ZnVu
Y3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5wayhhLGIsbnVsbCl9LAokaXlZOjF9ClcudzYucHJvdG90eXBl
PXt9ClcuSzUucHJvdG90eXBlPXskaUs1OjEsJGl2NjoxfQpXLkNtLnByb3RvdHlwZT17JGlDbToxfQpX
LkNRLnByb3RvdHlwZT17JGlDUToxfQpXLnc0LnByb3RvdHlwZT17Cnc6ZnVuY3Rpb24oYSl7cmV0dXJu
IlJlY3RhbmdsZSAoIitILmQoYS5sZWZ0KSsiLCAiK0guZChhLnRvcCkrIikgIitILmQoYS53aWR0aCkr
IiB4ICIrSC5kKGEuaGVpZ2h0KX0sCkROOmZ1bmN0aW9uKGEsYil7aWYoYj09bnVsbClyZXR1cm4hMQpy
ZXR1cm4gdS5xLmMoYikmJmEubGVmdD09PWIubGVmdCYmYS50b3A9PT1iLnRvcCYmYS53aWR0aD09PWIu
d2lkdGgmJmEuaGVpZ2h0PT09Yi5oZWlnaHR9LApnaU86ZnVuY3Rpb24oYSl7cmV0dXJuIFcuckUoQy5D
RC5naU8oYS5sZWZ0KSxDLkNELmdpTyhhLnRvcCksQy5DRC5naU8oYS53aWR0aCksQy5DRC5naU8oYS5o
ZWlnaHQpKX19ClcucmgucHJvdG90eXBlPXsKZ0E6ZnVuY3Rpb24oYSl7cmV0dXJuIGEubGVuZ3RofSwK
cTpmdW5jdGlvbihhLGIpe0guU2MoYikKaWYoYj4+PjAhPT1ifHxiPj1hLmxlbmd0aCl0aHJvdyBILmIo
UC5DZihiLGEsbnVsbCxudWxsLG51bGwpKQpyZXR1cm4gYVtiXX0sClk6ZnVuY3Rpb24oYSxiLGMpe3Uu
QS5iKGMpCnRocm93IEguYihQLkw0KCJDYW5ub3QgYXNzaWduIGVsZW1lbnQgb2YgaW1tdXRhYmxlIExp
c3QuIikpfSwKRTpmdW5jdGlvbihhLGIpe2lmKGI8MHx8Yj49YS5sZW5ndGgpcmV0dXJuIEguT0goYSxi
KQpyZXR1cm4gYVtiXX0sCiRpWGo6MSwKJGljWDoxLAokaXpNOjF9ClcuRDkucHJvdG90eXBlPXsKSzpm
dW5jdGlvbihhLGIpe3ZhciB0LHMscixxLHAKdS5ELmIoYikKZm9yKHQ9dGhpcy5nVigpLHM9dC5sZW5n
dGgscj10aGlzLmEscT0wO3E8dC5sZW5ndGg7dC5sZW5ndGg9PT1zfHwoMCxILmxrKSh0KSwrK3Epe3A9
dFtxXQpiLiQyKHAsci5nZXRBdHRyaWJ1dGUocCkpfX0sCmdWOmZ1bmN0aW9uKCl7dmFyIHQscyxyLHEs
cD10aGlzLmEuYXR0cmlidXRlcyxvPUguVk0oW10sdS5zKQpmb3IodD1wLmxlbmd0aCxzPXUuaDkscj0w
O3I8dDsrK3Ipe2lmKHI+PXAubGVuZ3RoKXJldHVybiBILk9IKHAscikKcT1zLmIocFtyXSkKaWYocS5u
YW1lc3BhY2VVUkk9PW51bGwpQy5ObS5pKG8scS5uYW1lKX1yZXR1cm4gb319ClcuaTcucHJvdG90eXBl
PXsKcTpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLmEuZ2V0QXR0cmlidXRlKEgueShiKSl9LApZOmZ1
bmN0aW9uKGEsYixjKXt0aGlzLmEuc2V0QXR0cmlidXRlKGIsYyl9LApnQTpmdW5jdGlvbihhKXtyZXR1
cm4gdGhpcy5nVigpLmxlbmd0aH19ClcuU3kucHJvdG90eXBlPXsKcTpmdW5jdGlvbihhLGIpe3JldHVy
biB0aGlzLmEuYS5nZXRBdHRyaWJ1dGUoImRhdGEtIit0aGlzLk8oSC55KGIpKSl9LApZOmZ1bmN0aW9u
KGEsYixjKXt0aGlzLmEuYS5zZXRBdHRyaWJ1dGUoImRhdGEtIit0aGlzLk8oYiksYyl9LApLOmZ1bmN0
aW9uKGEsYil7dGhpcy5hLksoMCxuZXcgVy5LUyh0aGlzLHUuRC5iKGIpKSl9LApnVjpmdW5jdGlvbigp
e3ZhciB0PUguVk0oW10sdS5zKQp0aGlzLmEuSygwLG5ldyBXLkEzKHRoaXMsdCkpCnJldHVybiB0fSwK
Z0E6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZ1YoKS5sZW5ndGh9LAprOmZ1bmN0aW9uKGEpe3ZhciB0
LHMscj1ILlZNKGEuc3BsaXQoIi0iKSx1LnMpCmZvcih0PTE7dDxyLmxlbmd0aDsrK3Qpe3M9clt0XQpp
ZihzLmxlbmd0aD4wKUMuTm0uWShyLHQsc1swXS50b1VwcGVyQ2FzZSgpK0ouS1YocywxKSl9cmV0dXJu
IEMuTm0uSChyLCIiKX0sCk86ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHEscApmb3IodD1hLmxlbmd0aCxz
PTAscj0iIjtzPHQ7KytzKXtxPWFbc10KcD1xLnRvTG93ZXJDYXNlKCkKcj0ocSE9PXAmJnM+MD9yKyIt
IjpyKStwfXJldHVybiByLmNoYXJDb2RlQXQoMCk9PTA/cjpyfX0KVy5LUy5wcm90b3R5cGU9ewokMjpm
dW5jdGlvbihhLGIpe2lmKEouclkoYSkubihhLCJkYXRhLSIpKXRoaXMuYi4kMih0aGlzLmEuayhDLnhC
LkcoYSw1KSksYil9LAokUzoxMH0KVy5BMy5wcm90b3R5cGU9ewokMjpmdW5jdGlvbihhLGIpe2lmKEou
clkoYSkubihhLCJkYXRhLSIpKUMuTm0uaSh0aGlzLmIsdGhpcy5hLmsoQy54Qi5HKGEsNSkpKX0sCiRT
OjEwfQpXLkk0LnByb3RvdHlwZT17ClA6ZnVuY3Rpb24oKXt2YXIgdCxzLHIscSxwPVAuTHModS5OKQpm
b3IodD10aGlzLmEuY2xhc3NOYW1lLnNwbGl0KCIgIikscz10Lmxlbmd0aCxyPTA7cjxzOysrcil7cT1K
LlQwKHRbcl0pCmlmKHEubGVuZ3RoIT09MClwLmkoMCxxKX1yZXR1cm4gcH0sClg6ZnVuY3Rpb24oYSl7
dGhpcy5hLmNsYXNzTmFtZT11LlQuYihhKS5IKDAsIiAiKX0sCmdBOmZ1bmN0aW9uKGEpe3JldHVybiB0
aGlzLmEuY2xhc3NMaXN0Lmxlbmd0aH0sClYxOmZ1bmN0aW9uKGEpe3RoaXMuYS5jbGFzc05hbWU9IiJ9
LAp0ZzpmdW5jdGlvbihhLGIpe3ZhciB0PXRoaXMuYS5jbGFzc0xpc3QuY29udGFpbnMoYikKcmV0dXJu
IHR9LAppOmZ1bmN0aW9uKGEsYil7dmFyIHQ9dGhpcy5hLmNsYXNzTGlzdCxzPXQuY29udGFpbnMoYikK
dC5hZGQoYikKcmV0dXJuIXN9LApSOmZ1bmN0aW9uKGEsYil7dmFyIHQ9dGhpcy5hLmNsYXNzTGlzdCxz
PXQuY29udGFpbnMoYikKdC5yZW1vdmUoYikKcmV0dXJuIHN9LApGVjpmdW5jdGlvbihhLGIpe1cuVE4o
dGhpcy5hLHUuWC5iKGIpKX19ClcuRmsucHJvdG90eXBlPXt9ClcuUk8ucHJvdG90eXBlPXt9ClcuQ3Eu
cHJvdG90eXBlPXt9ClcueEMucHJvdG90eXBlPXt9Clcudk4ucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24o
YSl7cmV0dXJuIHRoaXMuYS4kMSh1LkIuYihhKSl9LAokUzoyNX0KVy5KUS5wcm90b3R5cGU9ewpDWTpm
dW5jdGlvbihhKXt2YXIgdAppZigkLm9yLmE9PT0wKXtmb3IodD0wO3Q8MjYyOysrdCkkLm9yLlkoMCxD
LmNtW3RdLFcucFMoKSkKZm9yKHQ9MDt0PDEyOysrdCkkLm9yLlkoMCxDLkJJW3RdLFcuVjQoKSl9fSwK
aTA6ZnVuY3Rpb24oYSl7cmV0dXJuICQuQU4oKS50ZygwLFcuclMoYSkpfSwKRWI6ZnVuY3Rpb24oYSxi
LGMpe3ZhciB0PSQub3IucSgwLEguZChXLnJTKGEpKSsiOjoiK2IpCmlmKHQ9PW51bGwpdD0kLm9yLnEo
MCwiKjo6IitiKQppZih0PT1udWxsKXJldHVybiExCnJldHVybiBILnhkKHQuJDQoYSxiLGMsdGhpcykp
fSwKJGlrRjoxfQpXLkdtLnByb3RvdHlwZT17CmdrejpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IFcuVzko
YSx0aGlzLmdBKGEpLEgueksoYSkuQygiVzk8R20uRT4iKSl9fQpXLnZELnByb3RvdHlwZT17CmkwOmZ1
bmN0aW9uKGEpe3JldHVybiBDLk5tLlZyKHRoaXMuYSxuZXcgVy5VdihhKSl9LApFYjpmdW5jdGlvbihh
LGIsYyl7cmV0dXJuIEMuTm0uVnIodGhpcy5hLG5ldyBXLkVnKGEsYixjKSl9LAokaWtGOjF9ClcuVXYu
cHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7cmV0dXJuIHUuZS5iKGEpLmkwKHRoaXMuYSl9LAokUzox
NH0KVy5FZy5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXtyZXR1cm4gdS5lLmIoYSkuRWIodGhpcy5h
LHRoaXMuYix0aGlzLmMpfSwKJFM6MTR9ClcubTYucHJvdG90eXBlPXsKQ1k6ZnVuY3Rpb24oYSxiLGMs
ZCl7dmFyIHQscyxyCnRoaXMuYS5GVigwLGMpCnQ9Yi5ldigwLG5ldyBXLkVvKCkpCnM9Yi5ldigwLG5l
dyBXLldrKCkpCnRoaXMuYi5GVigwLHQpCnI9dGhpcy5jCnIuRlYoMCxDLnhEKQpyLkZWKDAscyl9LApp
MDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hLnRnKDAsVy5yUyhhKSl9LApFYjpmdW5jdGlvbihhLGIs
Yyl7dmFyIHQ9dGhpcyxzPVcuclMoYSkscj10LmMKaWYoci50ZygwLEguZChzKSsiOjoiK2IpKXJldHVy
biB0LmQuRHQoYykKZWxzZSBpZihyLnRnKDAsIio6OiIrYikpcmV0dXJuIHQuZC5EdChjKQplbHNle3I9
dC5iCmlmKHIudGcoMCxILmQocykrIjo6IitiKSlyZXR1cm4hMAplbHNlIGlmKHIudGcoMCwiKjo6Iiti
KSlyZXR1cm4hMAplbHNlIGlmKHIudGcoMCxILmQocykrIjo6KiIpKXJldHVybiEwCmVsc2UgaWYoci50
ZygwLCIqOjoqIikpcmV0dXJuITB9cmV0dXJuITF9LAokaWtGOjF9ClcuRW8ucHJvdG90eXBlPXsKJDE6
ZnVuY3Rpb24oYSl7cmV0dXJuIUMuTm0udGcoQy5CSSxILnkoYSkpfSwKJFM6N30KVy5Xay5wcm90b3R5
cGU9ewokMTpmdW5jdGlvbihhKXtyZXR1cm4gQy5ObS50ZyhDLkJJLEgueShhKSl9LAokUzo3fQpXLmN0
LnByb3RvdHlwZT17CkViOmZ1bmN0aW9uKGEsYixjKXtpZih0aGlzLmpGKGEsYixjKSlyZXR1cm4hMApp
ZihiPT09InRlbXBsYXRlIiYmYz09PSIiKXJldHVybiEwCmlmKGEuZ2V0QXR0cmlidXRlKCJ0ZW1wbGF0
ZSIpPT09IiIpcmV0dXJuIHRoaXMuZS50ZygwLGIpCnJldHVybiExfX0KVy5JQS5wcm90b3R5cGU9ewok
MTpmdW5jdGlvbihhKXtyZXR1cm4iVEVNUExBVEU6OiIrSC5kKEgueShhKSl9LAokUzo4fQpXLk93LnBy
b3RvdHlwZT17CmkwOmZ1bmN0aW9uKGEpe3ZhciB0CmlmKHUuZXcuYyhhKSlyZXR1cm4hMQp0PXUuZzcu
YyhhKQppZih0JiZXLnJTKGEpPT09ImZvcmVpZ25PYmplY3QiKXJldHVybiExCmlmKHQpcmV0dXJuITAK
cmV0dXJuITF9LApFYjpmdW5jdGlvbihhLGIsYyl7aWYoYj09PSJpcyJ8fEMueEIubihiLCJvbiIpKXJl
dHVybiExCnJldHVybiB0aGlzLmkwKGEpfSwKJGlrRjoxfQpXLlc5LnByb3RvdHlwZT17CkY6ZnVuY3Rp
b24oKXt2YXIgdD10aGlzLHM9dC5jKzEscj10LmIKaWYoczxyKXt0LnNwKEoudzIodC5hLHMpKQp0LmM9
cwpyZXR1cm4hMH10LnNwKG51bGwpCnQuYz1yCnJldHVybiExfSwKZ2w6ZnVuY3Rpb24oKXtyZXR1cm4g
dGhpcy5kfSwKc3A6ZnVuY3Rpb24oYSl7dGhpcy5kPXRoaXMuJHRpLmQuYihhKX0sCiRpQW46MX0KVy5k
Vy5wcm90b3R5cGU9eyRpRDA6MSwkaXY2OjF9Clcua0YucHJvdG90eXBlPXt9ClcubWsucHJvdG90eXBl
PXskaXkwOjF9ClcuS28ucHJvdG90eXBlPXsKUG46ZnVuY3Rpb24oYSl7bmV3IFcuZm0odGhpcykuJDIo
YSxudWxsKX0sCkVQOmZ1bmN0aW9uKGEsYil7aWYoYj09bnVsbClKLkx0KGEpCmVsc2UgYi5yZW1vdmVD
aGlsZChhKX0sCkk0OmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyLHEscCxvPSEwLG49bnVsbCxtPW51bGwK
dHJ5e249Si5pZyhhKQptPW4uYS5nZXRBdHRyaWJ1dGUoImlzIikKdS5oLmIoYSkKdD1mdW5jdGlvbihj
KXtpZighKGMuYXR0cmlidXRlcyBpbnN0YW5jZW9mIE5hbWVkTm9kZU1hcCkpcmV0dXJuIHRydWUKdmFy
IGw9Yy5jaGlsZE5vZGVzCmlmKGMubGFzdENoaWxkJiZjLmxhc3RDaGlsZCE9PWxbbC5sZW5ndGgtMV0p
cmV0dXJuIHRydWUKaWYoYy5jaGlsZHJlbilpZighKGMuY2hpbGRyZW4gaW5zdGFuY2VvZiBIVE1MQ29s
bGVjdGlvbnx8Yy5jaGlsZHJlbiBpbnN0YW5jZW9mIE5vZGVMaXN0KSlyZXR1cm4gdHJ1ZQp2YXIgaz0w
CmlmKGMuY2hpbGRyZW4paz1jLmNoaWxkcmVuLmxlbmd0aApmb3IodmFyIGo9MDtqPGs7aisrKXt2YXIg
aT1jLmNoaWxkcmVuW2pdCmlmKGkuaWQ9PSdhdHRyaWJ1dGVzJ3x8aS5uYW1lPT0nYXR0cmlidXRlcyd8
fGkuaWQ9PSdsYXN0Q2hpbGQnfHxpLm5hbWU9PSdsYXN0Q2hpbGQnfHxpLmlkPT0nY2hpbGRyZW4nfHxp
Lm5hbWU9PSdjaGlsZHJlbicpcmV0dXJuIHRydWV9cmV0dXJuIGZhbHNlfShhKQpvPUgub1QodCk/ITA6
IShhLmF0dHJpYnV0ZXMgaW5zdGFuY2VvZiBOYW1lZE5vZGVNYXApfWNhdGNoKHEpe0guUnUocSl9cz0i
ZWxlbWVudCB1bnByaW50YWJsZSIKdHJ5e3M9Si5qKGEpfWNhdGNoKHEpe0guUnUocSl9dHJ5e3I9Vy5y
UyhhKQp0aGlzLmtSKHUuaC5iKGEpLGIsbyxzLHIsdS5HLmIobiksSC55KG0pKX1jYXRjaChxKXtpZihI
LlJ1KHEpIGluc3RhbmNlb2YgUC51KXRocm93IHEKZWxzZXt0aGlzLkVQKGEsYikKd2luZG93CnA9IlJl
bW92aW5nIGNvcnJ1cHRlZCBlbGVtZW50ICIrSC5kKHMpCmlmKHR5cGVvZiBjb25zb2xlIT0idW5kZWZp
bmVkIil3aW5kb3cuY29uc29sZS53YXJuKHApfX19LAprUjpmdW5jdGlvbihhLGIsYyxkLGUsZixnKXt2
YXIgdCxzLHIscSxwLG8sbj10aGlzCmlmKGMpe24uRVAoYSxiKQp3aW5kb3cKdD0iUmVtb3ZpbmcgZWxl
bWVudCBkdWUgdG8gY29ycnVwdGVkIGF0dHJpYnV0ZXMgb24gPCIrZCsiPiIKaWYodHlwZW9mIGNvbnNv
bGUhPSJ1bmRlZmluZWQiKXdpbmRvdy5jb25zb2xlLndhcm4odCkKcmV0dXJufWlmKCFuLmEuaTAoYSkp
e24uRVAoYSxiKQp3aW5kb3cKdD0iUmVtb3ZpbmcgZGlzYWxsb3dlZCBlbGVtZW50IDwiK0guZChlKSsi
PiBmcm9tICIrSC5kKGIpCmlmKHR5cGVvZiBjb25zb2xlIT0idW5kZWZpbmVkIil3aW5kb3cuY29uc29s
ZS53YXJuKHQpCnJldHVybn1pZihnIT1udWxsKWlmKCFuLmEuRWIoYSwiaXMiLGcpKXtuLkVQKGEsYikK
d2luZG93CnQ9IlJlbW92aW5nIGRpc2FsbG93ZWQgdHlwZSBleHRlbnNpb24gPCIrSC5kKGUpKycgaXM9
IicrZysnIj4nCmlmKHR5cGVvZiBjb25zb2xlIT0idW5kZWZpbmVkIil3aW5kb3cuY29uc29sZS53YXJu
KHQpCnJldHVybn10PWYuZ1YoKQpzPUguVk0odC5zbGljZSgwKSxILnQ2KHQpLkMoImpkPDE+IikpCmZv
cihyPWYuZ1YoKS5sZW5ndGgtMSx0PWYuYTtyPj0wOy0tcil7aWYocj49cy5sZW5ndGgpcmV0dXJuIEgu
T0gocyxyKQpxPXNbcl0KcD1uLmEKbz1KLmNIKHEpCkgueShxKQppZighcC5FYihhLG8sdC5nZXRBdHRy
aWJ1dGUocSkpKXt3aW5kb3cKcD0iUmVtb3ZpbmcgZGlzYWxsb3dlZCBhdHRyaWJ1dGUgPCIrSC5kKGUp
KyIgIitxKyc9IicrSC5kKHQuZ2V0QXR0cmlidXRlKHEpKSsnIj4nCmlmKHR5cGVvZiBjb25zb2xlIT0i
dW5kZWZpbmVkIil3aW5kb3cuY29uc29sZS53YXJuKHApCnQucmVtb3ZlQXR0cmlidXRlKHEpfX1pZih1
LmFXLmMoYSkpbi5QbihhLmNvbnRlbnQpfSwKJGlvbjoxfQpXLmZtLnByb3RvdHlwZT17CiQyOmZ1bmN0
aW9uKGEsYil7dmFyIHQscyxyLHEscD10aGlzLmEKc3dpdGNoKGEubm9kZVR5cGUpe2Nhc2UgMTpwLkk0
KGEsYikKYnJlYWsKY2FzZSA4OmNhc2UgMTE6Y2FzZSAzOmNhc2UgNDpicmVhawpkZWZhdWx0OnAuRVAo
YSxiKX10PWEubGFzdENoaWxkCmZvcihwPXUuQTtudWxsIT10Oyl7cz1udWxsCnRyeXtzPXQucHJldmlv
dXNTaWJsaW5nfWNhdGNoKHIpe0guUnUocikKcT1wLmIodCkKYS5yZW1vdmVDaGlsZChxKQp0PW51bGwK
cz1hLmxhc3RDaGlsZH1pZih0IT1udWxsKXRoaXMuJDIodCxhKQp0PXAuYihzKX19LAokUzozNX0KVy5M
ZS5wcm90b3R5cGU9e30KVy5LNy5wcm90b3R5cGU9e30KVy5yQi5wcm90b3R5cGU9e30KVy5YVy5wcm90
b3R5cGU9e30KVy5vYS5wcm90b3R5cGU9e30KUC5pSi5wcm90b3R5cGU9ewpWSDpmdW5jdGlvbihhKXt2
YXIgdCxzPXRoaXMuYSxyPXMubGVuZ3RoCmZvcih0PTA7dDxyOysrdClpZihzW3RdPT09YSlyZXR1cm4g
dApDLk5tLmkocyxhKQpDLk5tLmkodGhpcy5iLG51bGwpCnJldHVybiByfSwKUHY6ZnVuY3Rpb24oYSl7
dmFyIHQscyxyLHE9dGhpcyxwPXt9CmlmKGE9PW51bGwpcmV0dXJuIGEKaWYoSC5sKGEpKXJldHVybiBh
CmlmKHR5cGVvZiBhPT0ibnVtYmVyIilyZXR1cm4gYQppZih0eXBlb2YgYT09InN0cmluZyIpcmV0dXJu
IGEKaWYoYSBpbnN0YW5jZW9mIFAuaVApcmV0dXJuIG5ldyBEYXRlKGEuYSkKaWYodS5mdi5jKGEpKXRo
cm93IEguYihQLlNZKCJzdHJ1Y3R1cmVkIGNsb25lIG9mIFJlZ0V4cCIpKQppZih1LmM4LmMoYSkpcmV0
dXJuIGEKaWYodS5kLmMoYSkpcmV0dXJuIGEKaWYodS5JLmMoYSkpcmV0dXJuIGEKdD11LmRELmMoYSl8
fCExCmlmKHQpcmV0dXJuIGEKaWYodS5HLmMoYSkpe3M9cS5WSChhKQp0PXEuYgppZihzPj10Lmxlbmd0
aClyZXR1cm4gSC5PSCh0LHMpCnI9cC5hPXRbc10KaWYociE9bnVsbClyZXR1cm4gcgpyPXt9CnAuYT1y
CkMuTm0uWSh0LHMscikKYS5LKDAsbmV3IFAubFIocCxxKSkKcmV0dXJuIHAuYX1pZih1LmouYyhhKSl7
cz1xLlZIKGEpCnA9cS5iCmlmKHM+PXAubGVuZ3RoKXJldHVybiBILk9IKHAscykKcj1wW3NdCmlmKHIh
PW51bGwpcmV0dXJuIHIKcmV0dXJuIHEuZWsoYSxzKX1pZih1LmVILmMoYSkpe3M9cS5WSChhKQp0PXEu
YgppZihzPj10Lmxlbmd0aClyZXR1cm4gSC5PSCh0LHMpCnI9cC5iPXRbc10KaWYociE9bnVsbClyZXR1
cm4gcgpyPXt9CnAuYj1yCkMuTm0uWSh0LHMscikKcS5pbShhLG5ldyBQLmpnKHAscSkpCnJldHVybiBw
LmJ9dGhyb3cgSC5iKFAuU1koInN0cnVjdHVyZWQgY2xvbmUgb2Ygb3RoZXIgdHlwZSIpKX0sCmVrOmZ1
bmN0aW9uKGEsYil7dmFyIHQscz1KLlU2KGEpLHI9cy5nQShhKSxxPW5ldyBBcnJheShyKQpDLk5tLlko
dGhpcy5iLGIscSkKZm9yKHQ9MDt0PHI7Kyt0KUMuTm0uWShxLHQsdGhpcy5QdihzLnEoYSx0KSkpCnJl
dHVybiBxfX0KUC5sUi5wcm90b3R5cGU9ewokMjpmdW5jdGlvbihhLGIpe3RoaXMuYS5hW2FdPXRoaXMu
Yi5QdihiKX0sCiRTOjF9ClAuamcucHJvdG90eXBlPXsKJDI6ZnVuY3Rpb24oYSxiKXt0aGlzLmEuYlth
XT10aGlzLmIuUHYoYil9LAokUzoxfQpQLkJmLnByb3RvdHlwZT17CmltOmZ1bmN0aW9uKGEsYil7dmFy
IHQscyxyLHEKdS5iOC5iKGIpCmZvcih0PU9iamVjdC5rZXlzKGEpLHM9dC5sZW5ndGgscj0wO3I8czsr
K3Ipe3E9dFtyXQpiLiQyKHEsYVtxXSl9fX0KUC5Bcy5wcm90b3R5cGU9ewpUOmZ1bmN0aW9uKGEpe3Zh
ciB0CkgueShhKQp0PSQuaEcoKS5iCmlmKHR5cGVvZiBhIT0ic3RyaW5nIilILnZoKEgudEwoYSkpCmlm
KHQudGVzdChhKSlyZXR1cm4gYQp0aHJvdyBILmIoUC5MMyhhLCJ2YWx1ZSIsIk5vdCBhIHZhbGlkIGNs
YXNzIHRva2VuIikpfSwKdzpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5QKCkuSCgwLCIgIil9LApna3o6
ZnVuY3Rpb24oYSl7dmFyIHQ9dGhpcy5QKCkKcmV0dXJuIFAucmoodCx0LnIsSC5MaCh0KS5kKX0sCmdB
OmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLlAoKS5hfSwKdGc6ZnVuY3Rpb24oYSxiKXt0aGlzLlQoYikK
cmV0dXJuIHRoaXMuUCgpLnRnKDAsYil9LAppOmZ1bmN0aW9uKGEsYil7dGhpcy5UKGIpCnJldHVybiBI
LnhkKHRoaXMuT1MobmV3IFAuR0UoYikpKX0sClI6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzCnRoaXMuVChi
KQp0PXRoaXMuUCgpCnM9dC5SKDAsYikKdGhpcy5YKHQpCnJldHVybiBzfSwKT1M6ZnVuY3Rpb24oYSl7
dmFyIHQscwp1LmNoLmIoYSkKdD10aGlzLlAoKQpzPWEuJDEodCkKdGhpcy5YKHQpCnJldHVybiBzfX0K
UC5HRS5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXtyZXR1cm4gdS5ULmIoYSkuaSgwLHRoaXMuYSl9
LAokUzoyOX0KUC5oRi5wcm90b3R5cGU9eyRpaEY6MX0KUC5QQy5wcm90b3R5cGU9ewokMTpmdW5jdGlv
bihhKXt2YXIgdAp1LlouYihhKQp0PWZ1bmN0aW9uKGIsYyxkKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1
cm4gYihjLGQsdGhpcyxBcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoYXJndW1lbnRzKSl9fShQLlI0
LGEsITEpClAuRG0odCwkLncoKSxhKQpyZXR1cm4gdH0sCiRTOjR9ClAuWW0ucHJvdG90eXBlPXsKJDE6
ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyB0aGlzLmEoYSl9LAokUzo0fQpQLk56LnByb3RvdHlwZT17CiQx
OmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgUC5yNyhhKX0sCiRTOjMwfQpQLlFTLnByb3RvdHlwZT17CiQx
OmZ1bmN0aW9uKGEpe3JldHVybiBuZXcgUC5UeihhLHUuYW0pfSwKJFM6MzF9ClAubnAucHJvdG90eXBl
PXsKJDE6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBQLkU0KGEpfSwKJFM6MzJ9ClAuRTQucHJvdG90eXBl
PXsKcTpmdW5jdGlvbihhLGIpe2lmKHR5cGVvZiBiIT0ic3RyaW5nIiYmdHlwZW9mIGIhPSJudW1iZXIi
KXRocm93IEguYihQLnhZKCJwcm9wZXJ0eSBpcyBub3QgYSBTdHJpbmcgb3IgbnVtIikpCnJldHVybiBQ
Lkw3KHRoaXMuYVtiXSl9LApZOmZ1bmN0aW9uKGEsYixjKXtpZih0eXBlb2YgYiE9InN0cmluZyImJnR5
cGVvZiBiIT0ibnVtYmVyIil0aHJvdyBILmIoUC54WSgicHJvcGVydHkgaXMgbm90IGEgU3RyaW5nIG9y
IG51bSIpKQp0aGlzLmFbYl09UC53WShjKX0sCkROOmZ1bmN0aW9uKGEsYil7aWYoYj09bnVsbClyZXR1
cm4hMQpyZXR1cm4gYiBpbnN0YW5jZW9mIFAuRTQmJnRoaXMuYT09PWIuYX0sCnc6ZnVuY3Rpb24oYSl7
dmFyIHQscwp0cnl7dD1TdHJpbmcodGhpcy5hKQpyZXR1cm4gdH1jYXRjaChzKXtILlJ1KHMpCnQ9dGhp
cy54YigwKQpyZXR1cm4gdH19LApWNzpmdW5jdGlvbihhLGIpe3ZhciB0LHM9dGhpcy5hCmlmKGI9PW51
bGwpdD1udWxsCmVsc2V7dD1ILnQ2KGIpCnQ9UC5DSChuZXcgSC5BOChiLHQuQygiQCgxKSIpLmIoUC5p
RygpKSx0LkMoIkE4PDEsQD4iKSksITAsdS56KX1yZXR1cm4gUC5MNyhzW2FdLmFwcGx5KHMsdCkpfSwK
Z2lPOmZ1bmN0aW9uKGEpe3JldHVybiAwfX0KUC5yNy5wcm90b3R5cGU9e30KUC5Uei5wcm90b3R5cGU9
ewpjUDpmdW5jdGlvbihhKXt2YXIgdD10aGlzLHM9YTwwfHxhPj10LmdBKHQpCmlmKHMpdGhyb3cgSC5i
KFAuVEUoYSwwLHQuZ0EodCksbnVsbCxudWxsKSl9LApxOmZ1bmN0aW9uKGEsYil7aWYodHlwZW9mIGI9
PSJudW1iZXIiJiZiPT09Qy5qbi55dShiKSl0aGlzLmNQKEguU2MoYikpCnJldHVybiB0aGlzLiR0aS5k
LmIodGhpcy5VcigwLGIpKX0sClk6ZnVuY3Rpb24oYSxiLGMpe3ZhciB0CnRoaXMuJHRpLmQuYihjKQp0
PUMuam4ueXUoYikKaWYoYj09PXQpdGhpcy5jUChiKQp0aGlzLmU0KDAsYixjKX0sCmdBOmZ1bmN0aW9u
KGEpe3ZhciB0PXRoaXMuYS5sZW5ndGgKaWYodHlwZW9mIHQ9PT0ibnVtYmVyIiYmdD4+PjA9PT10KXJl
dHVybiB0CnRocm93IEguYihQLlBWKCJCYWQgSnNBcnJheSBsZW5ndGgiKSl9LAokaWNYOjEsCiRpek06
MX0KUC5jby5wcm90b3R5cGU9e30KUC5uZC5wcm90b3R5cGU9eyRpbmQ6MX0KUC5LZS5wcm90b3R5cGU9
ewpQOmZ1bmN0aW9uKCl7dmFyIHQscyxyLHEscD10aGlzLmEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpLG89
UC5Mcyh1Lk4pCmlmKHA9PW51bGwpcmV0dXJuIG8KZm9yKHQ9cC5zcGxpdCgiICIpLHM9dC5sZW5ndGgs
cj0wO3I8czsrK3Ipe3E9Si5UMCh0W3JdKQppZihxLmxlbmd0aCE9PTApby5pKDAscSl9cmV0dXJuIG99
LApYOmZ1bmN0aW9uKGEpe3RoaXMuYS5zZXRBdHRyaWJ1dGUoImNsYXNzIixhLkgoMCwiICIpKX19ClAu
ZDUucHJvdG90eXBlPXsKZ0Q6ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBQLktlKGEpfSwKc2hmOmZ1bmN0
aW9uKGEsYil7dGhpcy5ZQyhhLGIpfSwKcjY6ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIHQscyxyLHEscCxv
CmlmKGQ9PW51bGwpe3Q9SC5WTShbXSx1LlEpCmQ9bmV3IFcudkQodCkKQy5ObS5pKHQsVy5UdyhudWxs
KSkKQy5ObS5pKHQsVy5CbCgpKQpDLk5tLmkodCxuZXcgVy5PdygpKX1jPW5ldyBXLktvKGQpCnM9Jzxz
dmcgdmVyc2lvbj0iMS4xIj4nK0guZChiKSsiPC9zdmc+Igp0PWRvY3VtZW50CnI9dC5ib2R5CnE9KHIm
JkMuUlkpLkFIKHIscyxjKQpwPXQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpCnEudG9TdHJpbmcKdD1u
ZXcgVy5lNyhxKQpvPXQuZ3I4KHQpCmZvcig7dD1vLmZpcnN0Q2hpbGQsdCE9bnVsbDspcC5hcHBlbmRD
aGlsZCh0KQpyZXR1cm4gcH0sCmdWbDpmdW5jdGlvbihhKXtyZXR1cm4gbmV3IFcuQ3EoYSwiY2xpY2si
LCExLHUuQyl9LAokaWQ1OjF9ClAubjYucHJvdG90eXBlPXskaWNYOjEsJGl6TToxLCRpQVM6MX0KVS5k
Mi5wcm90b3R5cGU9e30KVS5TZS5wcm90b3R5cGU9e30KVS51Ri5wcm90b3R5cGU9e30KVS5NbC5wcm90
b3R5cGU9e30KVC5HVi5wcm90b3R5cGU9e30KTC5lLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3Zh
ciB0LHMscgp1LkIuYihhKQp0PXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZQpzPUwuRzYod2luZG93Lmxv
Y2F0aW9uLmhyZWYpCnI9TC5hSyh3aW5kb3cubG9jYXRpb24uaHJlZikKTC5HZSgpCmlmKHQhPT0iLyIm
JnQhPT1KLlQwKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5yb290IikudGV4dENvbnRlbnQpKUwuRzco
dCxzLHIsbmV3IEwuVlcodCxzLHIpKX0sCiRTOjEzfQpMLlZXLnByb3RvdHlwZT17CiQwOmZ1bmN0aW9u
KCl7TC5Gcih0aGlzLmEsdGhpcy5iLHRoaXMuYyl9LAokUzowfQpMLkwucHJvdG90eXBlPXsKJDE6ZnVu
Y3Rpb24oYSl7dmFyIHQscyxyCnUuQi5iKGEpCnQ9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lCnM9TC5H
Nih3aW5kb3cubG9jYXRpb24uaHJlZikKcj1MLmFLKHdpbmRvdy5sb2NhdGlvbi5ocmVmKQppZih0Lmxl
bmd0aD4xKUwuRzcodCxzLHIsbnVsbCkKZWxzZXtMLkJFKHQsUC5FRihbInJlZ2lvbnMiLCIiLCJuYXZp
Z2F0aW9uQ29udGVudCIsIiIsImVkaXRzIixbXV0sdS5OLHUueikpCkwuQlgoIiZuYnNwOyIsbnVsbCl9
fSwKJFM6MTN9CkwuV3gucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7dmFyIHQscyxyLHE9ImNvbGxh
cHNlZCIKdS5WLmIoYSkKdD10aGlzLmEKcz1KLlJFKHQpCnI9dGhpcy5iCmlmKCFzLmdEKHQpLnRnKDAs
cSkpe3MuZ0QodCkuaSgwLHEpCkouZFIocikuaSgwLHEpfWVsc2V7cy5nRCh0KS5SKDAscSkKSi5kUihy
KS5SKDAscSl9fSwKJFM6Nn0KTC5BTy5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXt2YXIgdD1KLnFG
KHUuaC5iKGEpKSxzPXQuJHRpLHI9cy5DKCJ+KDEpIikuYihuZXcgTC5kTigpKQp1Lk0uYihudWxsKQpX
LkpFKHQuYSx0LmIsciwhMSxzLmQpfSwKJFM6M30KTC5kTi5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihh
KXt2YXIgdAp1LlYuYihhKQp0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInRhYmxlW2RhdGEtcGF0aF0i
KQp0LnRvU3RyaW5nCkwudDIoYSx0LmdldEF0dHJpYnV0ZSgiZGF0YS0iK25ldyBXLlN5KG5ldyBXLmk3
KHQpKS5PKCJwYXRoIikpKX0sCiRTOjZ9CkwuSG8ucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7dmFy
IHQscyxyCnUuaC5iKGEpCnQ9Si5xRihhKQpzPXQuJHRpCnI9cy5DKCJ+KDEpIikuYihuZXcgTC54eihh
LHRoaXMuYSkpCnUuTS5iKG51bGwpClcuSkUodC5hLHQuYixyLCExLHMuZCl9LAokUzozfQpMLnh6LnBy
b3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3ZhciB0CnUuVi5iKGEpCnQ9dGhpcy5hCkwuaFgodGhpcy5i
LFAuUUEodC5nZXRBdHRyaWJ1dGUoImRhdGEtIituZXcgVy5TeShuZXcgVy5pNyh0KSkuTygib2Zmc2V0
IikpLG51bGwsbnVsbCkpfSwKJFM6Nn0KTC5JQy5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXt2YXIg
dD1KLnFGKHUuaC5iKGEpKSxzPXQuJHRpCnMuQygifigxKSIpLmIoTC5IMCgpKQp1Lk0uYihudWxsKQpX
LkpFKHQuYSx0LmIsTC5IMCgpLCExLHMuZCl9LAokUzozfQpMLm5ULnByb3RvdHlwZT17CiQwOmZ1bmN0
aW9uKCl7TC5Gcih0aGlzLmEuYSx0aGlzLmIsdGhpcy5jKX0sCiRTOjB9CkwuQloucHJvdG90eXBlPXsK
JDA6ZnVuY3Rpb24oKXtMLkZyKHRoaXMuYS5hLG51bGwsbnVsbCl9LAokUzowfQpMLkZRLnByb3RvdHlw
ZT17CiQxOmZ1bmN0aW9uKGEpe3ZhciB0PXUuci5iKGEpLnN0YXR1cwppZih0IT09MjAwKXdpbmRvdy5h
bGVydCgiUmVxdWVzdCBmYWlsZWQ7IHN0YXR1cyBvZiAiK0guZCh0KSl9LAokUzo1fQpMLnRZLnByb3Rv
dHlwZT17CiQyOmZ1bmN0aW9uKGEsYil7TC5xSigiaGFuZGxlUG9zdExpbmtDbGljazogIitILmQoYSks
YikKd2luZG93LmFsZXJ0KCJDb3VsZCBub3QgbG9hZCAiK0guZCh0aGlzLmEuYSkrIiAoIitILmQoYSkr
IikuIil9LAokQzoiJDIiLAokUjoyLAokUzoxfQpMLkdILnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEp
e3UuaC5iKGEpCiQuekIoKS50b1N0cmluZwp1Lm0uYigkLm93KCkucSgwLCJobGpzIikpLlY3KCJoaWdo
bGlnaHRCbG9jayIsW2FdKX0sCiRTOjN9CkwuRFQucHJvdG90eXBlPXsKJDE6ZnVuY3Rpb24oYSl7dmFy
IHQKdS5yLmIoYSkKdD1hLnN0YXR1cwppZih0PT09MjAwKXtMLlQxKFUueXUoQy5DdC5wVygwLGEucmVz
cG9uc2VUZXh0LG51bGwpKSkKTC55WCgiLmVkaXQtcGFuZWwgLnBhbmVsLWNvbnRlbnQiKX1lbHNlIHdp
bmRvdy5hbGVydCgiUmVxdWVzdCBmYWlsZWQ7IHN0YXR1cyBvZiAiK0guZCh0KSl9LAokUzo1fQpMLmVI
LnByb3RvdHlwZT17CiQyOmZ1bmN0aW9uKGEsYil7TC5xSigibG9hZFJlZ2lvbkV4cGxhbmF0aW9uOiAi
K0guZChhKSxiKQp3aW5kb3cuYWxlcnQoIkNvdWxkIG5vdCBsb2FkICIrSC5kKHRoaXMuYSkrIiAoIitI
LmQoYSkrIikuIil9LAokQzoiJDIiLAokUjoyLAokUzoxfQpMLnpELnByb3RvdHlwZT17CiQxOmZ1bmN0
aW9uKGEpe3ZhciB0LHMscj10aGlzCnUuci5iKGEpCnQ9YS5zdGF0dXMKaWYodD09PTIwMCl7cz1yLmEK
TC5CRShzLHUuYS5iKEMuQ3QucFcoMCxhLnJlc3BvbnNlVGV4dCxudWxsKSkpCnQ9ci5iCkwuZkcodCxy
LmMpCkwuQlgoQy54Qi50ZyhzLCI/Iik/Qy54Qi5OaihzLDAsQy54Qi5PWShzLCI/IikpOnMsdCkKdD1y
LmQKaWYodCE9bnVsbCl0LiQwKCl9ZWxzZSB3aW5kb3cuYWxlcnQoIlJlcXVlc3QgZmFpbGVkOyBzdGF0
dXMgb2YgIitILmQodCkpfSwKJFM6NX0KTC5PRS5wcm90b3R5cGU9ewokMjpmdW5jdGlvbihhLGIpe0wu
cUooImxvYWRGaWxlOiAiK0guZChhKSxiKQp3aW5kb3cuYWxlcnQoIkNvdWxkIG5vdCBsb2FkICIrdGhp
cy5hKyIgKCIrSC5kKGEpKyIpLiIpfSwKJEM6IiQyIiwKJFI6MiwKJFM6MX0KTC5UVy5wcm90b3R5cGU9
ewokMTpmdW5jdGlvbihhKXt2YXIgdCxzLHIKdS5yLmIoYSkKdD1hLnN0YXR1cwppZih0PT09MjAwKXtz
PUMuQ3QucFcoMCxhLnJlc3BvbnNlVGV4dCxudWxsKQpyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5u
YXYtdHJlZSIpCkoubDUociwiIikKTC50WChyLHMpfWVsc2Ugd2luZG93LmFsZXJ0KCJSZXF1ZXN0IGZh
aWxlZDsgc3RhdHVzIG9mICIrSC5kKHQpKX0sCiRTOjV9CkwueHIucHJvdG90eXBlPXsKJDI6ZnVuY3Rp
b24oYSxiKXtMLnFKKCJsb2FkTmF2aWdhdGlvblRyZWU6ICIrSC5kKGEpLGIpCndpbmRvdy5hbGVydCgi
Q291bGQgbm90IGxvYWQgIit0aGlzLmErIiAoIitILmQoYSkrIikuIil9LAokQzoiJDIiLAokUjoyLAok
UzoxfQpMLkVFLnByb3RvdHlwZT17CiQxOmZ1bmN0aW9uKGEpe3ZhciB0LHMKdS5WLmIoYSkKdD10aGlz
LmEKcz10aGlzLmIKTC5hZih3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsdCxzLG5ldyBMLlFMKHQscykp
CkwuaFgodGhpcy5jLHQpfSwKJFM6Nn0KTC5RTC5wcm90b3R5cGU9ewokMDpmdW5jdGlvbigpe0wuRnIo
d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLHRoaXMuYSx0aGlzLmIpfSwKJFM6MH0KTC5WUy5wcm90b3R5
cGU9ewokMTpmdW5jdGlvbihhKXt2YXIgdCxzPSJzZWxlY3RlZC1maWxlIgp1LmguYihhKQphLnRvU3Ry
aW5nCnQ9Si5SRShhKQppZihhLmdldEF0dHJpYnV0ZSgiZGF0YS0iK25ldyBXLlN5KG5ldyBXLmk3KGEp
KS5PKCJuYW1lIikpPT09dGhpcy5hLmEpdC5nRChhKS5pKDAscykKZWxzZSB0LmdEKGEpLlIoMCxzKX0s
CiRTOjN9CkwuWEEucHJvdG90eXBlPXsKRWI6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiEwfSwKaTA6ZnVu
Y3Rpb24oYSl7cmV0dXJuITB9LAokaWtGOjF9Ck0ubEkucHJvdG90eXBlPXsKV086ZnVuY3Rpb24oYSxi
KXt2YXIgdCxzPW51bGwKTS5ZRigiYWJzb2x1dGUiLEguVk0oW2IsbnVsbCxudWxsLG51bGwsbnVsbCxu
dWxsLG51bGxdLHUucykpCnQ9dGhpcy5hCnQ9dC5ZcihiKT4wJiYhdC5oSyhiKQppZih0KXJldHVybiBi
CnQ9RC5SWCgpCnJldHVybiB0aGlzLnE3KDAsdCxiLHMscyxzLHMscyxzKX0sCnRNOmZ1bmN0aW9uKGEp
e3ZhciB0LHMscj1YLkNMKGEsdGhpcy5hKQpyLklWKCkKdD1yLmQKcz10Lmxlbmd0aAppZihzPT09MCl7
dD1yLmIKcmV0dXJuIHQ9PW51bGw/Ii4iOnR9aWYocz09PTEpe3Q9ci5iCnJldHVybiB0PT1udWxsPyIu
Ijp0fWlmKDA+PXMpcmV0dXJuIEguT0godCwtMSkKdC5wb3AoKQpDLk5tLm12KHIuZSkKci5JVigpCnJl
dHVybiByLncoMCl9LApxNzpmdW5jdGlvbihhLGIsYyxkLGUsZixnLGgsaSl7dmFyIHQ9SC5WTShbYixj
LGQsZSxmLGcsaCxpXSx1LnMpCk0uWUYoImpvaW4iLHQpCnJldHVybiB0aGlzLklQKG5ldyBILlU1KHQs
dS5iQi5iKG5ldyBNLk1pKCkpLHUuY2MpKX0sCklQOmZ1bmN0aW9uKGEpe3ZhciB0LHMscixxLHAsbyxu
LG0sbAp1LlguYihhKQpmb3IodD1hLiR0aSxzPXQuQygiYTIoY1guRSkiKS5iKG5ldyBNLnE3KCkpLHI9
YS5na3ooYSksdD1uZXcgSC5TTyhyLHMsdC5DKCJTTzxjWC5FPiIpKSxzPXRoaXMuYSxxPSExLHA9ITEs
bz0iIjt0LkYoKTspe249ci5nbCgpCmlmKHMuaEsobikmJnApe209WC5DTChuLHMpCmw9by5jaGFyQ29k
ZUF0KDApPT0wP286bwpvPUMueEIuTmoobCwwLHMuU3AobCwhMCkpCm0uYj1vCmlmKHMuZHMobykpQy5O
bS5ZKG0uZSwwLHMuZ21JKCkpCm89bS53KDApfWVsc2UgaWYocy5ZcihuKT4wKXtwPSFzLmhLKG4pCm89
SC5kKG4pfWVsc2V7aWYoIShuLmxlbmd0aD4wJiZzLlVkKG5bMF0pKSlpZihxKW8rPXMuZ21JKCkKbys9
SC5kKG4pfXE9cy5kcyhuKX1yZXR1cm4gby5jaGFyQ29kZUF0KDApPT0wP286b30sCm81OmZ1bmN0aW9u
KGEpe3ZhciB0CmlmKCF0aGlzLnkzKGEpKXJldHVybiBhCnQ9WC5DTChhLHRoaXMuYSkKdC5yUigpCnJl
dHVybiB0LncoMCl9LAp5MzpmdW5jdGlvbihhKXt2YXIgdCxzLHIscSxwLG8sbixtLGwsawphLnRvU3Ry
aW5nCnQ9dGhpcy5hCnM9dC5ZcihhKQppZihzIT09MCl7aWYodD09PSQuS2soKSlmb3Iocj0wO3I8czsr
K3IpaWYoQy54Qi5XKGEscik9PT00NylyZXR1cm4hMApxPXMKcD00N31lbHNle3E9MApwPW51bGx9Zm9y
KG89bmV3IEgucWooYSkuYSxuPW8ubGVuZ3RoLHI9cSxtPW51bGw7cjxuOysrcixtPXAscD1sKXtsPUMu
eEIubShvLHIpCmlmKHQucjQobCkpe2lmKHQ9PT0kLktrKCkmJmw9PT00NylyZXR1cm4hMAppZihwIT1u
dWxsJiZ0LnI0KHApKXJldHVybiEwCmlmKHA9PT00NilrPW09PW51bGx8fG09PT00Nnx8dC5yNChtKQpl
bHNlIGs9ITEKaWYoaylyZXR1cm4hMH19aWYocD09bnVsbClyZXR1cm4hMAppZih0LnI0KHApKXJldHVy
biEwCmlmKHA9PT00Nil0PW09PW51bGx8fHQucjQobSl8fG09PT00NgplbHNlIHQ9ITEKaWYodClyZXR1
cm4hMApyZXR1cm4hMX0sCkhQOmZ1bmN0aW9uKGEsYil7dmFyIHQscyxyLHEscCxvPXRoaXMsbj0nVW5h
YmxlIHRvIGZpbmQgYSBwYXRoIHRvICInCmI9by5XTygwLGIpCnQ9by5hCmlmKHQuWXIoYik8PTAmJnQu
WXIoYSk+MClyZXR1cm4gby5vNShhKQppZih0LllyKGEpPD0wfHx0LmhLKGEpKWE9by5XTygwLGEpCmlm
KHQuWXIoYSk8PTAmJnQuWXIoYik+MCl0aHJvdyBILmIoWC5KVChuK0guZChhKSsnIiBmcm9tICInK0gu
ZChiKSsnIi4nKSkKcz1YLkNMKGIsdCkKcy5yUigpCnI9WC5DTChhLHQpCnIuclIoKQpxPXMuZAppZihx
Lmxlbmd0aD4wJiZKLlJNKHFbMF0sIi4iKSlyZXR1cm4gci53KDApCnE9cy5iCnA9ci5iCmlmKHEhPXAp
cT1xPT1udWxsfHxwPT1udWxsfHwhdC5OYyhxLHApCmVsc2UgcT0hMQppZihxKXJldHVybiByLncoMCkK
d2hpbGUoITApe3E9cy5kCmlmKHEubGVuZ3RoPjApe3A9ci5kCnE9cC5sZW5ndGg+MCYmdC5OYyhxWzBd
LHBbMF0pfWVsc2UgcT0hMQppZighcSlicmVhawpDLk5tLlc0KHMuZCwwKQpDLk5tLlc0KHMuZSwxKQpD
Lk5tLlc0KHIuZCwwKQpDLk5tLlc0KHIuZSwxKX1xPXMuZAppZihxLmxlbmd0aD4wJiZKLlJNKHFbMF0s
Ii4uIikpdGhyb3cgSC5iKFguSlQobitILmQoYSkrJyIgZnJvbSAiJytILmQoYikrJyIuJykpCnE9dS5O
CkMuTm0uVUcoci5kLDAsUC5POChzLmQubGVuZ3RoLCIuLiIscSkpCkMuTm0uWShyLmUsMCwiIikKQy5O
bS5VRyhyLmUsMSxQLk84KHMuZC5sZW5ndGgsdC5nbUkoKSxxKSkKdD1yLmQKcT10Lmxlbmd0aAppZihx
PT09MClyZXR1cm4iLiIKaWYocT4xJiZKLlJNKEMuTm0uZ3JaKHQpLCIuIikpe3Q9ci5kCmlmKDA+PXQu
bGVuZ3RoKXJldHVybiBILk9IKHQsLTEpCnQucG9wKCkKdD1yLmUKQy5ObS5tdih0KQpDLk5tLm12KHQp
CkMuTm0uaSh0LCIiKX1yLmI9IiIKci5JVigpCnJldHVybiByLncoMCl9fQpNLk1pLnByb3RvdHlwZT17
CiQxOmZ1bmN0aW9uKGEpe3JldHVybiBILnkoYSkhPW51bGx9LAokUzo3fQpNLnE3LnByb3RvdHlwZT17
CiQxOmZ1bmN0aW9uKGEpe3JldHVybiBILnkoYSkhPT0iIn0sCiRTOjd9Ck0uTm8ucHJvdG90eXBlPXsK
JDE6ZnVuY3Rpb24oYSl7SC55KGEpCnJldHVybiBhPT1udWxsPyJudWxsIjonIicrYSsnIid9LAokUzo4
fQpCLkx1LnByb3RvdHlwZT17CnhaOmZ1bmN0aW9uKGEpe3ZhciB0LHM9dGhpcy5ZcihhKQppZihzPjAp
cmV0dXJuIEoubGQoYSwwLHMpCmlmKHRoaXMuaEsoYSkpe2lmKDA+PWEubGVuZ3RoKXJldHVybiBILk9I
KGEsMCkKdD1hWzBdfWVsc2UgdD1udWxsCnJldHVybiB0fSwKTmM6ZnVuY3Rpb24oYSxiKXtyZXR1cm4g
YT09Yn19ClguV0QucHJvdG90eXBlPXsKSVY6ZnVuY3Rpb24oKXt2YXIgdCxzLHI9dGhpcwp3aGlsZSgh
MCl7dD1yLmQKaWYoISh0Lmxlbmd0aCE9PTAmJkouUk0oQy5ObS5ncloodCksIiIpKSlicmVhawp0PXIu
ZAppZigwPj10Lmxlbmd0aClyZXR1cm4gSC5PSCh0LC0xKQp0LnBvcCgpCkMuTm0ubXYoci5lKX10PXIu
ZQpzPXQubGVuZ3RoCmlmKHM+MClDLk5tLlkodCxzLTEsIiIpfSwKclI6ZnVuY3Rpb24oKXt2YXIgdCxz
LHIscSxwLG8sbixtPXRoaXMsbD1ILlZNKFtdLHUucykKZm9yKHQ9bS5kLHM9dC5sZW5ndGgscj0wLHE9
MDtxPHQubGVuZ3RoO3QubGVuZ3RoPT09c3x8KDAsSC5saykodCksKytxKXtwPXRbcV0Kbz1KLmlhKHAp
CmlmKCEoby5ETihwLCIuIil8fG8uRE4ocCwiIikpKWlmKG8uRE4ocCwiLi4iKSlpZihsLmxlbmd0aD4w
KWwucG9wKCkKZWxzZSArK3IKZWxzZSBDLk5tLmkobCxwKX1pZihtLmI9PW51bGwpQy5ObS5VRyhsLDAs
UC5POChyLCIuLiIsdS5OKSkKaWYobC5sZW5ndGg9PT0wJiZtLmI9PW51bGwpQy5ObS5pKGwsIi4iKQpu
PVAuZEgobC5sZW5ndGgsbmV3IFgucVIobSksITAsdS5OKQp0PW0uYgp0PXQhPW51bGwmJmwubGVuZ3Ro
PjAmJm0uYS5kcyh0KT9tLmEuZ21JKCk6IiIKSC50NihuKS5kLmIodCkKaWYoISFuLmZpeGVkJGxlbmd0
aClILnZoKFAuTDQoImluc2VydCIpKQpuLnNwbGljZSgwLDAsdCkKbS5zbkoobCkKbS5zUGgobikKdD1t
LmIKaWYodCE9bnVsbCYmbS5hPT09JC5LaygpKXt0LnRvU3RyaW5nCm0uYj1ILnlzKHQsIi8iLCJcXCIp
fW0uSVYoKX0sCnc6ZnVuY3Rpb24oYSl7dmFyIHQscyxyPXRoaXMscT1yLmIKcT1xIT1udWxsP3E6IiIK
Zm9yKHQ9MDt0PHIuZC5sZW5ndGg7Kyt0KXtzPXIuZQppZih0Pj1zLmxlbmd0aClyZXR1cm4gSC5PSChz
LHQpCnM9cStILmQoc1t0XSkKcT1yLmQKaWYodD49cS5sZW5ndGgpcmV0dXJuIEguT0gocSx0KQpxPXMr
SC5kKHFbdF0pfXErPUguZChDLk5tLmdyWihyLmUpKQpyZXR1cm4gcS5jaGFyQ29kZUF0KDApPT0wP3E6
cX0sCnNuSjpmdW5jdGlvbihhKXt0aGlzLmQ9dS5pLmIoYSl9LApzUGg6ZnVuY3Rpb24oYSl7dGhpcy5l
PXUuaS5iKGEpfX0KWC5xUi5wcm90b3R5cGU9ewokMTpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5hLmEu
Z21JKCl9LAokUzozN30KWC5kdi5wcm90b3R5cGU9ewp3OmZ1bmN0aW9uKGEpe3JldHVybiJQYXRoRXhj
ZXB0aW9uOiAiK3RoaXMuYX19Ck8uekwucHJvdG90eXBlPXsKdzpmdW5jdGlvbihhKXtyZXR1cm4gdGhp
cy5nb2ModGhpcyl9fQpFLk9GLnByb3RvdHlwZT17ClVkOmZ1bmN0aW9uKGEpe3JldHVybiBDLnhCLnRn
KGEsIi8iKX0sCnI0OmZ1bmN0aW9uKGEpe3JldHVybiBhPT09NDd9LApkczpmdW5jdGlvbihhKXt2YXIg
dD1hLmxlbmd0aApyZXR1cm4gdCE9PTAmJkMueEIubShhLHQtMSkhPT00N30sClNwOmZ1bmN0aW9uKGEs
Yil7aWYoYS5sZW5ndGghPT0wJiZDLnhCLlcoYSwwKT09PTQ3KXJldHVybiAxCnJldHVybiAwfSwKWXI6
ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuU3AoYSwhMSl9LApoSzpmdW5jdGlvbihhKXtyZXR1cm4hMX0s
CmdvYzpmdW5jdGlvbigpe3JldHVybiJwb3NpeCJ9LApnbUk6ZnVuY3Rpb24oKXtyZXR1cm4iLyJ9fQpG
LnJ1LnByb3RvdHlwZT17ClVkOmZ1bmN0aW9uKGEpe3JldHVybiBDLnhCLnRnKGEsIi8iKX0sCnI0OmZ1
bmN0aW9uKGEpe3JldHVybiBhPT09NDd9LApkczpmdW5jdGlvbihhKXt2YXIgdD1hLmxlbmd0aAppZih0
PT09MClyZXR1cm4hMQppZihDLnhCLm0oYSx0LTEpIT09NDcpcmV0dXJuITAKcmV0dXJuIEMueEIuVGMo
YSwiOi8vIikmJnRoaXMuWXIoYSk9PT10fSwKU3A6ZnVuY3Rpb24oYSxiKXt2YXIgdCxzLHIscSxwPWEu
bGVuZ3RoCmlmKHA9PT0wKXJldHVybiAwCmlmKEMueEIuVyhhLDApPT09NDcpcmV0dXJuIDEKZm9yKHQ9
MDt0PHA7Kyt0KXtzPUMueEIuVyhhLHQpCmlmKHM9PT00NylyZXR1cm4gMAppZihzPT09NTgpe2lmKHQ9
PT0wKXJldHVybiAwCnI9Qy54Qi5YVShhLCIvIixDLnhCLlFpKGEsIi8vIix0KzEpP3QrMzp0KQppZihy
PD0wKXJldHVybiBwCmlmKCFifHxwPHIrMylyZXR1cm4gcgppZighQy54Qi5uKGEsImZpbGU6Ly8iKSly
ZXR1cm4gcgppZighQi5ZdShhLHIrMSkpcmV0dXJuIHIKcT1yKzMKcmV0dXJuIHA9PT1xP3E6cis0fX1y
ZXR1cm4gMH0sCllyOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLlNwKGEsITEpfSwKaEs6ZnVuY3Rpb24o
YSl7cmV0dXJuIGEubGVuZ3RoIT09MCYmQy54Qi5XKGEsMCk9PT00N30sCmdvYzpmdW5jdGlvbigpe3Jl
dHVybiJ1cmwifSwKZ21JOmZ1bmN0aW9uKCl7cmV0dXJuIi8ifX0KTC5JVi5wcm90b3R5cGU9ewpVZDpm
dW5jdGlvbihhKXtyZXR1cm4gQy54Qi50ZyhhLCIvIil9LApyNDpmdW5jdGlvbihhKXtyZXR1cm4gYT09
PTQ3fHxhPT09OTJ9LApkczpmdW5jdGlvbihhKXt2YXIgdD1hLmxlbmd0aAppZih0PT09MClyZXR1cm4h
MQp0PUMueEIubShhLHQtMSkKcmV0dXJuISh0PT09NDd8fHQ9PT05Mil9LApTcDpmdW5jdGlvbihhLGIp
e3ZhciB0LHMscj1hLmxlbmd0aAppZihyPT09MClyZXR1cm4gMAp0PUMueEIuVyhhLDApCmlmKHQ9PT00
NylyZXR1cm4gMQppZih0PT09OTIpe2lmKHI8Mnx8Qy54Qi5XKGEsMSkhPT05MilyZXR1cm4gMQpzPUMu
eEIuWFUoYSwiXFwiLDIpCmlmKHM+MCl7cz1DLnhCLlhVKGEsIlxcIixzKzEpCmlmKHM+MClyZXR1cm4g
c31yZXR1cm4gcn1pZihyPDMpcmV0dXJuIDAKaWYoIUIuT1ModCkpcmV0dXJuIDAKaWYoQy54Qi5XKGEs
MSkhPT01OClyZXR1cm4gMApyPUMueEIuVyhhLDIpCmlmKCEocj09PTQ3fHxyPT09OTIpKXJldHVybiAw
CnJldHVybiAzfSwKWXI6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuU3AoYSwhMSl9LApoSzpmdW5jdGlv
bihhKXtyZXR1cm4gdGhpcy5ZcihhKT09PTF9LApPdDpmdW5jdGlvbihhLGIpe3ZhciB0CmlmKGE9PT1i
KXJldHVybiEwCmlmKGE9PT00NylyZXR1cm4gYj09PTkyCmlmKGE9PT05MilyZXR1cm4gYj09PTQ3Cmlm
KChhXmIpIT09MzIpcmV0dXJuITEKdD1hfDMyCnJldHVybiB0Pj05NyYmdDw9MTIyfSwKTmM6ZnVuY3Rp
b24oYSxiKXt2YXIgdCxzLHIKaWYoYT09YilyZXR1cm4hMAp0PWEubGVuZ3RoCmlmKHQhPT1iLmxlbmd0
aClyZXR1cm4hMQpmb3Iocz1KLnJZKGIpLHI9MDtyPHQ7KytyKWlmKCF0aGlzLk90KEMueEIuVyhhLHIp
LHMuVyhiLHIpKSlyZXR1cm4hMQpyZXR1cm4hMH0sCmdvYzpmdW5jdGlvbigpe3JldHVybiJ3aW5kb3dz
In0sCmdtSTpmdW5jdGlvbigpe3JldHVybiJcXCJ9fTsoZnVuY3Rpb24gYWxpYXNlcygpe3ZhciB0PUou
dkIucHJvdG90eXBlCnQuVT10LncKdC5Taj10LmU3CnQ9Si5NRi5wcm90b3R5cGUKdC50PXQudwp0PVAu
Y1gucHJvdG90eXBlCnQuR0c9dC5ldgp0PVAuay5wcm90b3R5cGUKdC54Yj10LncKdD1XLmN2LnByb3Rv
dHlwZQp0LkRXPXQucjYKdD1XLm02LnByb3RvdHlwZQp0LmpGPXQuRWIKdD1QLkU0LnByb3RvdHlwZQp0
LlVyPXQucQp0LmU0PXQuWX0pKCk7KGZ1bmN0aW9uIGluc3RhbGxUZWFyT2Zmcygpe3ZhciB0PWh1bmtI
ZWxwZXJzLl9zdGF0aWNfMSxzPWh1bmtIZWxwZXJzLl9zdGF0aWNfMCxyPWh1bmtIZWxwZXJzLmluc3Rh
bGxJbnN0YW5jZVRlYXJPZmYscT1odW5rSGVscGVycy5pbnN0YWxsU3RhdGljVGVhck9mZgp0KFAsIkVY
IiwiWlYiLDkpCnQoUCwieXQiLCJvQSIsOSkKdChQLCJxVyIsIkJ6Iiw5KQpzKFAsIlVJIiwiZU4iLDIp
CnIoUC5QZi5wcm90b3R5cGUsImdZSiIsMCwxLG51bGwsWyIkMiIsIiQxIl0sWyJ3MCIsInBtIl0sMzYs
MCkKdChQLCJQSCIsIk10Iiw4KQpxKFcsInBTIiw0LG51bGwsWyIkNCJdLFsieVciXSwxMSwwKQpxKFcs
IlY0Iiw0LG51bGwsWyIkNCJdLFsiUVciXSwxMSwwKQp0KFAsImlHIiwid1kiLDQpCnQoUCwidzAiLCJM
NyIsNDApCnEoTCwiWE4iLDEsbnVsbCxbIiQyJHJlbGF0aXZlVG8iLCIkMSJdLFsidDIiLGZ1bmN0aW9u
KGEpe3JldHVybiBMLnQyKGEsbnVsbCl9XSw0MSwwKQp0KEwsIkgwIiwidW0iLDI4KX0pKCk7KGZ1bmN0
aW9uIGluaGVyaXRhbmNlKCl7dmFyIHQ9aHVua0hlbHBlcnMubWl4aW4scz1odW5rSGVscGVycy5pbmhl
cml0LHI9aHVua0hlbHBlcnMuaW5oZXJpdE1hbnkKcyhQLmssbnVsbCkKcihQLmssW0guZW8sSi52QixK
Lm0xLFAublksUC5jWCxILmE3LFAuQW4sSC5TVSxILlJlLEgud3YsUC5QbixILldVLEguTEksSC5UcCxI
LlpyLFAuWFMsSC5YTyxQLllrLEguZGIsSC5ONixILlZSLEguRUssSC5QYixILnRRLEguU2QsSC5KYyxI
LkcsUC5XMyxQLlBmLFAuRmUsUC52cyxQLk9NLFAucWgsUC5NTyxQLmtULFAuQ3csUC5tMCxQLlh2LFAu
Ym4sUC5sbSxQLmxELFAuS1AsUC5sZixQLldZLFAuVWssUC5SdyxQLmJ6LFAuYTIsUC5pUCxQLkZLLFAu
azUsUC5LWSxQLkNELFAuYUUsUC5FSCxQLnpNLFAuWjAsUC5jOCxQLk9kLFAuaWIsUC5HeixQLnFVLFAu
Um4sUC5HRCxQLkRuLFAuUEUsUC5VZixXLmlkLFcuRmssVy5KUSxXLkdtLFcudkQsVy5tNixXLk93LFcu
VzksVy5kVyxXLmtGLFcubWssVy5LbyxQLmlKLFAuRTQsUC5uNixVLmQyLFUuU2UsVS51RixVLk1sLFQu
R1YsTC5YQSxNLmxJLE8uekwsWC5XRCxYLmR2XSkKcihKLnZCLFtKLnlFLEouWUUsSi5NRixKLmpkLEou
cUksSi5EcixILkVULFcuRDAsVy5BeixXLkxlLFcuTmgsVy5JQixXLm43LFcuZWEsVy5icixXLlNnLFcu
dTgsVy5LNyxXLlhXLFAuaEZdKQpyKEouTUYsW0ouaUMsSi5rZCxKLmM1XSkKcyhKLlBvLEouamQpCnIo
Si5xSSxbSi51cixKLlZBXSkKcyhQLkxVLFAublkpCnIoUC5MVSxbSC5YQyxXLnd6LFcuZTddKQpzKEgu
cWosSC5YQykKcihQLmNYLFtILmJRLEguVTUsUC5tVyxILnVuXSkKcihILmJRLFtILmFMLEguaTUsUC54
dV0pCnIoSC5hTCxbSC5uSCxILkE4LFAuaThdKQpzKEguU08sUC5BbikKcyhQLlJVLFAuUG4pCnMoUC5H
aixQLlJVKQpzKEguUEQsUC5HaikKcyhILkxQLEguV1UpCnIoSC5UcCxbSC5DaixILkFtLEgubGMsSC5k
QyxILndOLEguVlgsUC50aCxQLmhhLFAuVnMsUC5GdCxQLnlILFAuZGEsUC5vUSxQLnBWLFAuVTcsUC52
cixQLnJILFAuS0YsUC5aTCxQLlJULFAualosUC5ycSxQLlJXLFAuQjUsUC5QSSxQLnBLLFAuaGosUC5W
cCxQLk9SLFAuR0EsUC5XRixQLm4xLFAuY1MsUC5WQyxQLnRwLFAuZTEsUC5OWSxQLlJaLFAuTUUsUC55
NSxQLnEzLFAueUksUC5jNixQLnFkLFcuQ3YsVy5iVSxXLmhILFcuS1MsVy5BMyxXLnZOLFcuVXYsVy5F
ZyxXLkVvLFcuV2ssVy5JQSxXLmZtLFAubFIsUC5qZyxQLkdFLFAuUEMsUC5ZbSxQLk56LFAuUVMsUC5u
cCxMLmUsTC5WVyxMLkwsTC5XeCxMLkFPLEwuZE4sTC5IbyxMLnh6LEwuSUMsTC5uVCxMLkJaLEwuRlEs
TC50WSxMLkdILEwuRFQsTC5lSCxMLnpELEwuT0UsTC5UVyxMLnhyLEwuRUUsTC5RTCxMLlZTLE0uTWks
TS5xNyxNLk5vLFgucVJdKQpyKFAuWFMsW0guVzAsSC5heixILnZWLEguRXEsUC5DNixILnU5LFAubixQ
LnUsUC5tcCxQLnViLFAuZHMsUC5saixQLlVWLFAuY10pCnIoSC5sYyxbSC56eCxILnJUXSkKcyhILmtZ
LFAuQzYpCnMoUC5pbCxQLllrKQpyKFAuaWwsW0guTjUsUC51dyxXLkQ5LFcuU3ldKQpzKEguS1csUC5t
VykKcyhILmIwLEguRVQpCnIoSC5iMCxbSC5SRyxILldCXSkKcyhILlZQLEguUkcpCnMoSC5EZyxILlZQ
KQpzKEguWkcsSC5XQikKcyhILlBnLEguWkcpCnIoSC5QZyxbSC54aixILmRFLEguWkEsSC53ZixILlBx
LEguZUUsSC5WNl0pCnIoSC51OSxbSC5oeixILmlNXSkKcyhQLlpmLFAuUGYpCnMoUC5KaSxQLm0wKQpz
KFAuYjYsUC5YdikKcyhQLlZqLFAuV1kpCnIoUC5VayxbUC5DVixQLlppLFAuYnldKQpzKFAud0ksUC5r
VCkKcihQLndJLFtQLlU4LFAuTXgsUC5FMyxQLkdZXSkKcyhQLnU1LFAuWmkpCnIoUC5GSyxbUC5DUCxQ
LktOXSkKcihQLnUsW1AuYkosUC5lWV0pCnMoUC5xZSxQLkRuKQpyKFcuRDAsW1cudUgsVy53YSxXLks1
LFcuQ21dKQpyKFcudUgsW1cuY3YsVy5ueCxXLlFGLFcuQ1FdKQpyKFcuY3YsW1cucUUsUC5kNV0pCnIo
Vy5xRSxbVy5HaCxXLmZZLFcubkIsVy5RUCxXLmg0LFcuU04sVy5scCxXLlRiLFcuSXYsVy5CVCxXLnlZ
XSkKcyhXLm9KLFcuTGUpCnMoVy5UNSxXLkF6KQpzKFcuVmIsVy5RRikKcyhXLk83LFcud2EpCnIoVy5l
YSxbVy53NixXLmV3XSkKcyhXLkFqLFcudzYpCnMoVy5yQixXLks3KQpzKFcuQkgsVy5yQikKcyhXLnc0
LFcuSUIpCnMoVy5vYSxXLlhXKQpzKFcucmgsVy5vYSkKcyhXLmk3LFcuRDkpCnMoUC5BcyxQLlZqKQpy
KFAuQXMsW1cuSTQsUC5LZV0pCnMoVy5STyxQLnFoKQpzKFcuQ3EsVy5STykKcyhXLnhDLFAuTU8pCnMo
Vy5jdCxXLm02KQpzKFAuQmYsUC5pSikKcihQLkU0LFtQLnI3LFAuY29dKQpzKFAuVHosUC5jbykKcyhQ
Lm5kLFAuZDUpCnMoQi5MdSxPLnpMKQpyKEIuTHUsW0UuT0YsRi5ydSxMLklWXSkKdChILlhDLEguUmUp
CnQoSC5SRyxQLmxEKQp0KEguVlAsSC5TVSkKdChILldCLFAubEQpCnQoSC5aRyxILlNVKQp0KFAublks
UC5sRCkKdChQLldZLFAubGYpCnQoUC5SVSxQLktQKQp0KFcuTGUsVy5pZCkKdChXLks3LFAubEQpCnQo
Vy5yQixXLkdtKQp0KFcuWFcsUC5sRCkKdChXLm9hLFcuR20pCnQoUC5jbyxQLmxEKX0pKCkKdmFyIHY9
e3R5cGVVbml2ZXJzZTp7ZUM6bmV3IE1hcCgpLHRSOnt9LGVUOnt9LHRQVjp7fSxzRUE6W119LG1hbmds
ZWRHbG9iYWxOYW1lczp7S046ImludCIsQ1A6ImRvdWJsZSIsRks6Im51bSIscVU6IlN0cmluZyIsYTI6
ImJvb2wiLGM4OiJOdWxsIix6TToiTGlzdCJ9LG1hbmdsZWROYW1lczp7fSxnZXRUeXBlRnJvbU5hbWU6
Z2V0R2xvYmFsRnJvbU5hbWUsbWV0YWRhdGE6W10sdHlwZXM6WyJjOCgpIiwiYzgoQCxAKSIsIn4oKSIs
ImM4KGN2KSIsIkAoQCkiLCJjOChPNykiLCJjOChBaikiLCJhMihxVSkiLCJxVShxVSkiLCJ+KH4oKSki
LCJjOChxVSxxVSkiLCJhMihjdixxVSxxVSxKUSkiLCJjOChAKSIsImM4KGVhKSIsImEyKGtGKSIsImM4
KHFVLEApIiwiYzgocVUpIiwiS04oS04sS04pIiwifihxVVtAXSkiLCJ+KHFVLHFVKSIsIm42KEtOKSIs
In4ocVUsS04pIiwiYTIodUgpIiwiWjA8cVUscVU+KFowPHFVLHFVPixxVSkiLCJjOChldykiLCJAKGVh
KSIsImM4KEdELEApIiwiQChxVSkiLCJ+KEFqKSIsImEyKHh1PHFVPikiLCJyNyhAKSIsIlR6PEA+KEAp
IiwiRTQoQCkiLCJ2czxAPihAKSIsImM4KEBbR3pdKSIsIn4odUgsdUgpIiwifihrW0d6XSkiLCJxVShL
TikiLCJAKEAscVUpIiwiYzgofigpKSIsImsoQCkiLCJ+KEFqe3JlbGF0aXZlVG86cVV9KSIsIm42KEAs
QCkiXSxpbnRlcmNlcHRvcnNCeVRhZzpudWxsLGxlYWZUYWdzOm51bGx9CkgueGIodi50eXBlVW5pdmVy
c2UsSlNPTi5wYXJzZSgneyJyeCI6ImVhIiwiZTUiOiJlYSIsIlkwIjoiZDUiLCJXdCI6ImQ1IiwidjAi
OiJldyIsIk1yIjoicUUiLCJlTCI6InFFIiwiSTAiOiJ1SCIsImhzIjoidUgiLCJYZyI6IlFGIiwieWMi
OiJBaiIsInk0IjoidzYiLCJhUCI6IkNtIiwianIiOiJueCIsImtKIjoibngiLCJ6VSI6IkRnIiwiZGYi
OiJFVCIsInlFIjp7ImEyIjpbXX0sIllFIjp7ImM4IjpbXX0sIk1GIjp7InZtIjpbXX0sImlDIjp7InZt
IjpbXX0sImtkIjp7InZtIjpbXX0sImM1Ijp7IkVIIjpbXSwidm0iOltdfSwiamQiOnsiek0iOlsiMSJd
LCJjWCI6WyIxIl19LCJQbyI6eyJqZCI6WyIxIl0sInpNIjpbIjEiXSwiY1giOlsiMSJdfSwibTEiOnsi
QW4iOlsiMSJdfSwicUkiOnsiQ1AiOltdLCJGSyI6W119LCJ1ciI6eyJLTiI6W10sIkNQIjpbXSwiRksi
OltdfSwiVkEiOnsiQ1AiOltdLCJGSyI6W119LCJEciI6eyJxVSI6W10sInZYIjpbXX0sInFqIjp7IlJl
IjpbIktOIl0sImxEIjpbIktOIl0sInpNIjpbIktOIl0sImNYIjpbIktOIl0sImxELkUiOiJLTiIsIlJl
LkUiOiJLTiJ9LCJiUSI6eyJjWCI6WyIxIl19LCJhTCI6eyJjWCI6WyIxIl19LCJuSCI6eyJhTCI6WyIx
Il0sImNYIjpbIjEiXSwiYUwuRSI6IjEiLCJjWC5FIjoiMSJ9LCJhNyI6eyJBbiI6WyIxIl19LCJBOCI6
eyJhTCI6WyIyIl0sImNYIjpbIjIiXSwiYUwuRSI6IjIiLCJjWC5FIjoiMiJ9LCJVNSI6eyJjWCI6WyIx
Il0sImNYLkUiOiIxIn0sIlNPIjp7IkFuIjpbIjEiXX0sIlhDIjp7IlJlIjpbIjEiXSwibEQiOlsiMSJd
LCJ6TSI6WyIxIl0sImNYIjpbIjEiXX0sInd2Ijp7IkdEIjpbXX0sIlBEIjp7IkdqIjpbIjEiLCIyIl0s
IlJVIjpbIjEiLCIyIl0sIlBuIjpbIjEiLCIyIl0sIktQIjpbIjEiLCIyIl0sIlowIjpbIjEiLCIyIl19
LCJXVSI6eyJaMCI6WyIxIiwiMiJdfSwiTFAiOnsiV1UiOlsiMSIsIjIiXSwiWjAiOlsiMSIsIjIiXX0s
IkxJIjp7InZRIjpbXX0sIlcwIjp7IlhTIjpbXX0sImF6Ijp7IlhTIjpbXX0sInZWIjp7IlhTIjpbXX0s
IlhPIjp7Ikd6IjpbXX0sIlRwIjp7IkVIIjpbXX0sImxjIjp7IkVIIjpbXX0sInp4Ijp7IkVIIjpbXX0s
InJUIjp7IkVIIjpbXX0sIkVxIjp7IlhTIjpbXX0sImtZIjp7IlhTIjpbXX0sIk41Ijp7IkZvIjpbIjEi
LCIyIl0sIllrIjpbIjEiLCIyIl0sIlowIjpbIjEiLCIyIl0sIllrLksiOiIxIiwiWWsuViI6IjIifSwi
aTUiOnsiY1giOlsiMSJdLCJjWC5FIjoiMSJ9LCJONiI6eyJBbiI6WyIxIl19LCJWUiI6eyJ3TCI6W10s
InZYIjpbXX0sIkVLIjp7ImliIjpbXSwiT2QiOltdfSwiS1ciOnsiY1giOlsiaWIiXSwiY1guRSI6Imli
In0sIlBiIjp7IkFuIjpbImliIl19LCJ0USI6eyJPZCI6W119LCJ1biI6eyJjWCI6WyJPZCJdLCJjWC5F
IjoiT2QifSwiU2QiOnsiQW4iOlsiT2QiXX0sIkVUIjp7IkFTIjpbXX0sImIwIjp7IlhqIjpbIkAiXSwi
RVQiOltdLCJBUyI6W119LCJEZyI6eyJsRCI6WyJDUCJdLCJYaiI6WyJAIl0sInpNIjpbIkNQIl0sIkVU
IjpbXSwiU1UiOlsiQ1AiXSwiQVMiOltdLCJjWCI6WyJDUCJdLCJsRC5FIjoiQ1AifSwiUGciOnsibEQi
OlsiS04iXSwiek0iOlsiS04iXSwiWGoiOlsiQCJdLCJFVCI6W10sIlNVIjpbIktOIl0sIkFTIjpbXSwi
Y1giOlsiS04iXX0sInhqIjp7ImxEIjpbIktOIl0sInpNIjpbIktOIl0sIlhqIjpbIkAiXSwiRVQiOltd
LCJTVSI6WyJLTiJdLCJBUyI6W10sImNYIjpbIktOIl0sImxELkUiOiJLTiJ9LCJkRSI6eyJsRCI6WyJL
TiJdLCJ6TSI6WyJLTiJdLCJYaiI6WyJAIl0sIkVUIjpbXSwiU1UiOlsiS04iXSwiQVMiOltdLCJjWCI6
WyJLTiJdLCJsRC5FIjoiS04ifSwiWkEiOnsibEQiOlsiS04iXSwiek0iOlsiS04iXSwiWGoiOlsiQCJd
LCJFVCI6W10sIlNVIjpbIktOIl0sIkFTIjpbXSwiY1giOlsiS04iXSwibEQuRSI6IktOIn0sIndmIjp7
ImxEIjpbIktOIl0sInpNIjpbIktOIl0sIlhqIjpbIkAiXSwiRVQiOltdLCJTVSI6WyJLTiJdLCJBUyI6
W10sImNYIjpbIktOIl0sImxELkUiOiJLTiJ9LCJQcSI6eyJsRCI6WyJLTiJdLCJ6TSI6WyJLTiJdLCJY
aiI6WyJAIl0sIkVUIjpbXSwiU1UiOlsiS04iXSwiQVMiOltdLCJjWCI6WyJLTiJdLCJsRC5FIjoiS04i
fSwiZUUiOnsibEQiOlsiS04iXSwiek0iOlsiS04iXSwiWGoiOlsiQCJdLCJFVCI6W10sIlNVIjpbIktO
Il0sIkFTIjpbXSwiY1giOlsiS04iXSwibEQuRSI6IktOIn0sIlY2Ijp7Im42IjpbXSwibEQiOlsiS04i
XSwiek0iOlsiS04iXSwiWGoiOlsiQCJdLCJFVCI6W10sIlNVIjpbIktOIl0sIkFTIjpbXSwiY1giOlsi
S04iXSwibEQuRSI6IktOIn0sInU5Ijp7IlhTIjpbXX0sImh6Ijp7IlhTIjpbXX0sImlNIjp7IlhTIjpb
XX0sIlpmIjp7IlBmIjpbIjEiXX0sInZzIjp7ImI4IjpbIjEiXX0sIkN3Ijp7IlhTIjpbXX0sIm0wIjp7
IkpCIjpbXX0sIkppIjp7IkpCIjpbXX0sImI2Ijp7Ilh2IjpbIjEiXSwieHUiOlsiMSJdLCJjWCI6WyIx
Il19LCJsbSI6eyJBbiI6WyIxIl19LCJtVyI6eyJjWCI6WyIxIl19LCJMVSI6eyJsRCI6WyIxIl0sInpN
IjpbIjEiXSwiY1giOlsiMSJdfSwiaWwiOnsiWWsiOlsiMSIsIjIiXSwiWjAiOlsiMSIsIjIiXX0sIllr
Ijp7IlowIjpbIjEiLCIyIl19LCJQbiI6eyJaMCI6WyIxIiwiMiJdfSwiR2oiOnsiUlUiOlsiMSIsIjIi
XSwiUG4iOlsiMSIsIjIiXSwiS1AiOlsiMSIsIjIiXSwiWjAiOlsiMSIsIjIiXX0sIlZqIjp7ImxmIjpb
IjEiXSwieHUiOlsiMSJdLCJjWCI6WyIxIl19LCJYdiI6eyJ4dSI6WyIxIl0sImNYIjpbIjEiXX0sInV3
Ijp7IllrIjpbInFVIiwiQCJdLCJaMCI6WyJxVSIsIkAiXSwiWWsuSyI6InFVIiwiWWsuViI6IkAifSwi
aTgiOnsiYUwiOlsicVUiXSwiY1giOlsicVUiXSwiYUwuRSI6InFVIiwiY1guRSI6InFVIn0sIkNWIjp7
IlVrIjpbInpNPEtOPiIsInFVIl0sIlVrLlMiOiJ6TTxLTj4ifSwiVTgiOnsid0kiOlsiek08S04+Iiwi
cVUiXX0sIlppIjp7IlVrIjpbInFVIiwiek08S04+Il19LCJieSI6eyJVayI6WyJrIiwicVUiXSwiVWsu
UyI6ImsifSwiTXgiOnsid0kiOlsicVUiLCJrIl19LCJ1NSI6eyJVayI6WyJxVSIsInpNPEtOPiJdLCJV
ay5TIjoicVUifSwiRTMiOnsid0kiOlsicVUiLCJ6TTxLTj4iXX0sIkdZIjp7IndJIjpbInpNPEtOPiIs
InFVIl19LCJDUCI6eyJGSyI6W119LCJDNiI6eyJYUyI6W119LCJuIjp7IlhTIjpbXX0sInUiOnsiWFMi
OltdfSwiYkoiOnsiWFMiOltdfSwiZVkiOnsiWFMiOltdfSwibXAiOnsiWFMiOltdfSwidWIiOnsiWFMi
OltdfSwiZHMiOnsiWFMiOltdfSwibGoiOnsiWFMiOltdfSwiVVYiOnsiWFMiOltdfSwiazUiOnsiWFMi
OltdfSwiS1kiOnsiWFMiOltdfSwiYyI6eyJYUyI6W119LCJLTiI6eyJGSyI6W119LCJ6TSI6eyJjWCI6
WyIxIl19LCJpYiI6eyJPZCI6W119LCJ4dSI6eyJjWCI6WyIxIl19LCJxVSI6eyJ2WCI6W119LCJSbiI6
eyJCTCI6W119LCJEbiI6eyJpRCI6W119LCJVZiI6eyJpRCI6W119LCJxZSI6eyJpRCI6W119LCJxRSI6
eyJjdiI6W10sInVIIjpbXSwiRDAiOltdfSwiR2giOnsiY3YiOltdLCJ1SCI6W10sIkQwIjpbXX0sImZZ
Ijp7ImN2IjpbXSwidUgiOltdLCJEMCI6W119LCJuQiI6eyJjdiI6W10sInVIIjpbXSwiRDAiOltdfSwi
UVAiOnsiY3YiOltdLCJ1SCI6W10sIkQwIjpbXX0sIm54Ijp7InVIIjpbXSwiRDAiOltdfSwiUUYiOnsi
dUgiOltdLCJEMCI6W119LCJJQiI6eyJ0biI6WyJGSyJdfSwid3oiOnsibEQiOlsiMSJdLCJ6TSI6WyIx
Il0sImNYIjpbIjEiXSwibEQuRSI6IjEifSwiY3YiOnsidUgiOltdLCJEMCI6W119LCJUNSI6eyJBeiI6
W119LCJoNCI6eyJjdiI6W10sInVIIjpbXSwiRDAiOltdfSwiVmIiOnsidUgiOltdLCJEMCI6W119LCJP
NyI6eyJEMCI6W119LCJ3YSI6eyJEMCI6W119LCJBaiI6eyJlYSI6W119LCJlNyI6eyJsRCI6WyJ1SCJd
LCJ6TSI6WyJ1SCJdLCJjWCI6WyJ1SCJdLCJsRC5FIjoidUgifSwidUgiOnsiRDAiOltdfSwiQkgiOnsi
R20iOlsidUgiXSwibEQiOlsidUgiXSwiek0iOlsidUgiXSwiWGoiOlsidUgiXSwiY1giOlsidUgiXSwi
bEQuRSI6InVIIiwiR20uRSI6InVIIn0sIlNOIjp7ImN2IjpbXSwidUgiOltdLCJEMCI6W119LCJldyI6
eyJlYSI6W119LCJscCI6eyJjdiI6W10sInVIIjpbXSwiRDAiOltdfSwiVGIiOnsiY3YiOltdLCJ1SCI6
W10sIkQwIjpbXX0sIkl2Ijp7ImN2IjpbXSwidUgiOltdLCJEMCI6W119LCJCVCI6eyJjdiI6W10sInVI
IjpbXSwiRDAiOltdfSwieVkiOnsiY3YiOltdLCJ1SCI6W10sIkQwIjpbXX0sInc2Ijp7ImVhIjpbXX0s
Iks1Ijp7InY2IjpbXSwiRDAiOltdfSwiQ20iOnsiRDAiOltdfSwiQ1EiOnsidUgiOltdLCJEMCI6W119
LCJ3NCI6eyJ0biI6WyJGSyJdfSwicmgiOnsiR20iOlsidUgiXSwibEQiOlsidUgiXSwiek0iOlsidUgi
XSwiWGoiOlsidUgiXSwiY1giOlsidUgiXSwibEQuRSI6InVIIiwiR20uRSI6InVIIn0sIkQ5Ijp7Illr
IjpbInFVIiwicVUiXSwiWjAiOlsicVUiLCJxVSJdfSwiaTciOnsiWWsiOlsicVUiLCJxVSJdLCJaMCI6
WyJxVSIsInFVIl0sIllrLksiOiJxVSIsIllrLlYiOiJxVSJ9LCJTeSI6eyJZayI6WyJxVSIsInFVIl0s
IlowIjpbInFVIiwicVUiXSwiWWsuSyI6InFVIiwiWWsuViI6InFVIn0sIkk0Ijp7ImxmIjpbInFVIl0s
Inh1IjpbInFVIl0sImNYIjpbInFVIl19LCJSTyI6eyJxaCI6WyIxIl19LCJDcSI6eyJSTyI6WyIxIl0s
InFoIjpbIjEiXX0sIkpRIjp7ImtGIjpbXX0sInZEIjp7ImtGIjpbXX0sIm02Ijp7ImtGIjpbXX0sImN0
Ijp7ImtGIjpbXX0sIk93Ijp7ImtGIjpbXX0sIlc5Ijp7IkFuIjpbIjEiXX0sImRXIjp7InY2IjpbXSwi
RDAiOltdfSwibWsiOnsieTAiOltdfSwiS28iOnsib24iOltdfSwiQXMiOnsibGYiOlsicVUiXSwieHUi
OlsicVUiXSwiY1giOlsicVUiXX0sInI3Ijp7IkU0IjpbXX0sIlR6Ijp7ImxEIjpbIjEiXSwiek0iOlsi
MSJdLCJFNCI6W10sImNYIjpbIjEiXSwibEQuRSI6IjEifSwibmQiOnsiZDUiOltdLCJjdiI6W10sInVI
IjpbXSwiRDAiOltdfSwiS2UiOnsibGYiOlsicVUiXSwieHUiOlsicVUiXSwiY1giOlsicVUiXX0sImQ1
Ijp7ImN2IjpbXSwidUgiOltdLCJEMCI6W119LCJuNiI6eyJ6TSI6WyJLTiJdLCJBUyI6W10sImNYIjpb
IktOIl19LCJYQSI6eyJrRiI6W119LCJPRiI6eyJMdSI6W119LCJydSI6eyJMdSI6W119LCJJViI6eyJM
dSI6W119fScpKQpILkZGKHYudHlwZVVuaXZlcnNlLEpTT04ucGFyc2UoJ3siYlEiOjEsIlhDIjoxLCJN
TyI6MSwia1QiOjIsIm1XIjoxLCJMVSI6MSwiaWwiOjIsIlZqIjoxLCJuWSI6MSwiV1kiOjEsImNvIjox
fScpKQp2YXIgdT0oZnVuY3Rpb24gcnRpaSgpe3ZhciB0PUguTjAKcmV0dXJue2s6dCgiR2giKSxuOnQo
IkN3IiksRjp0KCJuQiIpLGQ6dCgiQXoiKSxZOnQoIlFQIiksZ0Y6dCgiUEQ8R0QsQD4iKSxoOnQoImN2
IiksYlU6dCgiWFMiKSxCOnQoImVhIiksYVM6dCgiRDAiKSxjODp0KCJUNSIpLFo6dCgiRUgiKSxjOnQo
ImI4PEA+Iikscjp0KCJPNyIpLEk6dCgiU2ciKSxvOnQoInZRIiksZWg6dCgiY1g8dUg+IiksWDp0KCJj
WDxxVT4iKSxSOnQoImNYPEA+IiksZkE6dCgiamQ8U2U+IiksYlA6dCgiamQ8dUY+IiksUTp0KCJqZDxr
Rj4iKSxzOnQoImpkPHFVPiIpLGI6dCgiamQ8QD4iKSx0OnQoImpkPEtOPiIpLGVIOnQoInZtIiksZzp0
KCJjNSIpLGFVOnQoIlhqPEA+IiksYW06dCgiVHo8QD4iKSxlbzp0KCJONTxHRCxAPiIpLG06dCgiRTQi
KSxkejp0KCJoRiIpLGk6dCgiek08cVU+Iiksajp0KCJ6TTxAPiIpLEw6dCgiek08S04+IiksZjp0KCJa
MDxxVSxxVT4iKSxhOnQoIlowPHFVLEA+IiksRzp0KCJaMDxALEA+IiksZHY6dCgiQTg8cVUscVU+Iiks
ZG86dCgiQTg8cVUsQD4iKSxWOnQoIkFqIiksZEQ6dCgiRVQiKSxibTp0KCJWNiIpLEE6dCgidUgiKSxl
OnQoImtGIiksUDp0KCJjOCIpLEs6dCgiayIpLHA6dCgiZXciKSxxOnQoInRuPEZLPiIpLGZ2OnQoIndM
IiksZXc6dCgibmQiKSxUOnQoInh1PHFVPiIpLGw6dCgiR3oiKSxOOnQoInFVIiksZEc6dCgicVUocVUp
IiksZzc6dCgiZDUiKSxmbzp0KCJHRCIpLGFXOnQoInlZIiksdTp0KCJBUyIpLGdjOnQoIm42IiksYWs6
dCgia2QiKSxXOnQoIkdqPHFVLHFVPiIpLHY6dCgiaUQiKSxjYzp0KCJVNTxxVT4iKSxnNDp0KCJLNSIp
LGNpOnQoInY2IiksZzI6dCgiQ20iKSxFOnQoIlpmPE83PiIpLGg5OnQoIkNRIiksYWM6dCgiZTciKSxD
OnQoIkNxPEFqPiIpLFM6dCgid3o8Y3Y+IikseDp0KCJGZTxALEA+IiksYW86dCgidnM8Tzc+IiksXzp0
KCJ2czxAPiIpLGZKOnQoInZzPEtOPiIpLE86dCgiSlEiKSxKOnQoImJuIiksY0o6dCgiYTIiKSxhbDp0
KCJhMihrKSIpLGJCOnQoImEyKHFVKSIpLGJmOnQoImEyKEApIiksejp0KCJAIiksZk86dCgiQCgpIiks
VTp0KCJAKGVhKSIpLHk6dCgiQChrKSIpLGVwOnQoIkAoayxrKSIpLHc6dCgiQChrLEd6KSIpLGNoOnQo
IkAoeHU8cVU+KSIpLGRPOnQoIkAocVUpIiksYjg6dCgiQChALEApIiksSDp0KCJ+IiksTTp0KCJ+KCki
KSxhbjp0KCJ+KGV3KSIpLEQ6dCgifihxVSxxVSkiKSxjQTp0KCJ+KHFVLEApIil9fSkoKTsoZnVuY3Rp
b24gY29uc3RhbnRzKCl7dmFyIHQ9aHVua0hlbHBlcnMubWFrZUNvbnN0TGlzdApDLlJZPVcuUVAucHJv
dG90eXBlCkMuQlo9Vy5WYi5wcm90b3R5cGUKQy5EdD1XLk83LnByb3RvdHlwZQpDLk9rPUoudkIucHJv
dG90eXBlCkMuTm09Si5qZC5wcm90b3R5cGUKQy5qbj1KLnVyLnByb3RvdHlwZQpDLmpOPUouWUUucHJv
dG90eXBlCkMuQ0Q9Si5xSS5wcm90b3R5cGUKQy54Qj1KLkRyLnByb3RvdHlwZQpDLkRHPUouYzUucHJv
dG90eXBlCkMuRXg9Vy51OC5wcm90b3R5cGUKQy5MdD1XLlNOLnByb3RvdHlwZQpDLlpRPUouaUMucHJv
dG90eXBlCkMuSWU9Vy5UYi5wcm90b3R5cGUKQy52Qj1KLmtkLnByb3RvdHlwZQpDLm9sPVcuSzUucHJv
dG90eXBlCkMueTg9bmV3IFAuVTgoKQpDLmg5PW5ldyBQLkNWKCkKQy5PND1mdW5jdGlvbiBnZXRUYWdG
YWxsYmFjayhvKSB7CiAgdmFyIHMgPSBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwobyk7CiAg
cmV0dXJuIHMuc3Vic3RyaW5nKDgsIHMubGVuZ3RoIC0gMSk7Cn0KQy5ZcT1mdW5jdGlvbigpIHsKICB2
YXIgdG9TdHJpbmdGdW5jdGlvbiA9IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7CiAgZnVuY3Rpb24g
Z2V0VGFnKG8pIHsKICAgIHZhciBzID0gdG9TdHJpbmdGdW5jdGlvbi5jYWxsKG8pOwogICAgcmV0dXJu
IHMuc3Vic3RyaW5nKDgsIHMubGVuZ3RoIC0gMSk7CiAgfQogIGZ1bmN0aW9uIGdldFVua25vd25UYWco
b2JqZWN0LCB0YWcpIHsKICAgIGlmICgvXkhUTUxbQS1aXS4qRWxlbWVudCQvLnRlc3QodGFnKSkgewog
ICAgICB2YXIgbmFtZSA9IHRvU3RyaW5nRnVuY3Rpb24uY2FsbChvYmplY3QpOwogICAgICBpZiAobmFt
ZSA9PSAiW29iamVjdCBPYmplY3RdIikgcmV0dXJuIG51bGw7CiAgICAgIHJldHVybiAiSFRNTEVsZW1l
bnQiOwogICAgfQogIH0KICBmdW5jdGlvbiBnZXRVbmtub3duVGFnR2VuZXJpY0Jyb3dzZXIob2JqZWN0
LCB0YWcpIHsKICAgIGlmIChzZWxmLkhUTUxFbGVtZW50ICYmIG9iamVjdCBpbnN0YW5jZW9mIEhUTUxF
bGVtZW50KSByZXR1cm4gIkhUTUxFbGVtZW50IjsKICAgIHJldHVybiBnZXRVbmtub3duVGFnKG9iamVj
dCwgdGFnKTsKICB9CiAgZnVuY3Rpb24gcHJvdG90eXBlRm9yVGFnKHRhZykgewogICAgaWYgKHR5cGVv
ZiB3aW5kb3cgPT0gInVuZGVmaW5lZCIpIHJldHVybiBudWxsOwogICAgaWYgKHR5cGVvZiB3aW5kb3db
dGFnXSA9PSAidW5kZWZpbmVkIikgcmV0dXJuIG51bGw7CiAgICB2YXIgY29uc3RydWN0b3IgPSB3aW5k
b3dbdGFnXTsKICAgIGlmICh0eXBlb2YgY29uc3RydWN0b3IgIT0gImZ1bmN0aW9uIikgcmV0dXJuIG51
bGw7CiAgICByZXR1cm4gY29uc3RydWN0b3IucHJvdG90eXBlOwogIH0KICBmdW5jdGlvbiBkaXNjcmlt
aW5hdG9yKHRhZykgeyByZXR1cm4gbnVsbDsgfQogIHZhciBpc0Jyb3dzZXIgPSB0eXBlb2YgbmF2aWdh
dG9yID09ICJvYmplY3QiOwogIHJldHVybiB7CiAgICBnZXRUYWc6IGdldFRhZywKICAgIGdldFVua25v
d25UYWc6IGlzQnJvd3NlciA/IGdldFVua25vd25UYWdHZW5lcmljQnJvd3NlciA6IGdldFVua25vd25U
YWcsCiAgICBwcm90b3R5cGVGb3JUYWc6IHByb3RvdHlwZUZvclRhZywKICAgIGRpc2NyaW1pbmF0b3I6
IGRpc2NyaW1pbmF0b3IgfTsKfQpDLndiPWZ1bmN0aW9uKGdldFRhZ0ZhbGxiYWNrKSB7CiAgcmV0dXJu
IGZ1bmN0aW9uKGhvb2tzKSB7CiAgICBpZiAodHlwZW9mIG5hdmlnYXRvciAhPSAib2JqZWN0IikgcmV0
dXJuIGhvb2tzOwogICAgdmFyIHVhID0gbmF2aWdhdG9yLnVzZXJBZ2VudDsKICAgIGlmICh1YS5pbmRl
eE9mKCJEdW1wUmVuZGVyVHJlZSIpID49IDApIHJldHVybiBob29rczsKICAgIGlmICh1YS5pbmRleE9m
KCJDaHJvbWUiKSA+PSAwKSB7CiAgICAgIGZ1bmN0aW9uIGNvbmZpcm0ocCkgewogICAgICAgIHJldHVy
biB0eXBlb2Ygd2luZG93ID09ICJvYmplY3QiICYmIHdpbmRvd1twXSAmJiB3aW5kb3dbcF0ubmFtZSA9
PSBwOwogICAgICB9CiAgICAgIGlmIChjb25maXJtKCJXaW5kb3ciKSAmJiBjb25maXJtKCJIVE1MRWxl
bWVudCIpKSByZXR1cm4gaG9va3M7CiAgICB9CiAgICBob29rcy5nZXRUYWcgPSBnZXRUYWdGYWxsYmFj
azsKICB9Owp9CkMuS1U9ZnVuY3Rpb24oaG9va3MpIHsKICBpZiAodHlwZW9mIGRhcnRFeHBlcmltZW50
YWxGaXh1cEdldFRhZyAhPSAiZnVuY3Rpb24iKSByZXR1cm4gaG9va3M7CiAgaG9va3MuZ2V0VGFnID0g
ZGFydEV4cGVyaW1lbnRhbEZpeHVwR2V0VGFnKGhvb2tzLmdldFRhZyk7Cn0KQy5mUT1mdW5jdGlvbiho
b29rcykgewogIHZhciBnZXRUYWcgPSBob29rcy5nZXRUYWc7CiAgdmFyIHByb3RvdHlwZUZvclRhZyA9
IGhvb2tzLnByb3RvdHlwZUZvclRhZzsKICBmdW5jdGlvbiBnZXRUYWdGaXhlZChvKSB7CiAgICB2YXIg
dGFnID0gZ2V0VGFnKG8pOwogICAgaWYgKHRhZyA9PSAiRG9jdW1lbnQiKSB7CiAgICAgIGlmICghIW8u
eG1sVmVyc2lvbikgcmV0dXJuICIhRG9jdW1lbnQiOwogICAgICByZXR1cm4gIiFIVE1MRG9jdW1lbnQi
OwogICAgfQogICAgcmV0dXJuIHRhZzsKICB9CiAgZnVuY3Rpb24gcHJvdG90eXBlRm9yVGFnRml4ZWQo
dGFnKSB7CiAgICBpZiAodGFnID09ICJEb2N1bWVudCIpIHJldHVybiBudWxsOwogICAgcmV0dXJuIHBy
b3RvdHlwZUZvclRhZyh0YWcpOwogIH0KICBob29rcy5nZXRUYWcgPSBnZXRUYWdGaXhlZDsKICBob29r
cy5wcm90b3R5cGVGb3JUYWcgPSBwcm90b3R5cGVGb3JUYWdGaXhlZDsKfQpDLmRrPWZ1bmN0aW9uKGhv
b2tzKSB7CiAgdmFyIHVzZXJBZ2VudCA9IHR5cGVvZiBuYXZpZ2F0b3IgPT0gIm9iamVjdCIgPyBuYXZp
Z2F0b3IudXNlckFnZW50IDogIiI7CiAgaWYgKHVzZXJBZ2VudC5pbmRleE9mKCJGaXJlZm94IikgPT0g
LTEpIHJldHVybiBob29rczsKICB2YXIgZ2V0VGFnID0gaG9va3MuZ2V0VGFnOwogIHZhciBxdWlja01h
cCA9IHsKICAgICJCZWZvcmVVbmxvYWRFdmVudCI6ICJFdmVudCIsCiAgICAiRGF0YVRyYW5zZmVyIjog
IkNsaXBib2FyZCIsCiAgICAiR2VvR2VvbG9jYXRpb24iOiAiR2VvbG9jYXRpb24iLAogICAgIkxvY2F0
aW9uIjogIiFMb2NhdGlvbiIsCiAgICAiV29ya2VyTWVzc2FnZUV2ZW50IjogIk1lc3NhZ2VFdmVudCIs
CiAgICAiWE1MRG9jdW1lbnQiOiAiIURvY3VtZW50In07CiAgZnVuY3Rpb24gZ2V0VGFnRmlyZWZveChv
KSB7CiAgICB2YXIgdGFnID0gZ2V0VGFnKG8pOwogICAgcmV0dXJuIHF1aWNrTWFwW3RhZ10gfHwgdGFn
OwogIH0KICBob29rcy5nZXRUYWcgPSBnZXRUYWdGaXJlZm94Owp9CkMueGk9ZnVuY3Rpb24oaG9va3Mp
IHsKICB2YXIgdXNlckFnZW50ID0gdHlwZW9mIG5hdmlnYXRvciA9PSAib2JqZWN0IiA/IG5hdmlnYXRv
ci51c2VyQWdlbnQgOiAiIjsKICBpZiAodXNlckFnZW50LmluZGV4T2YoIlRyaWRlbnQvIikgPT0gLTEp
IHJldHVybiBob29rczsKICB2YXIgZ2V0VGFnID0gaG9va3MuZ2V0VGFnOwogIHZhciBxdWlja01hcCA9
IHsKICAgICJCZWZvcmVVbmxvYWRFdmVudCI6ICJFdmVudCIsCiAgICAiRGF0YVRyYW5zZmVyIjogIkNs
aXBib2FyZCIsCiAgICAiSFRNTERERWxlbWVudCI6ICJIVE1MRWxlbWVudCIsCiAgICAiSFRNTERURWxl
bWVudCI6ICJIVE1MRWxlbWVudCIsCiAgICAiSFRNTFBocmFzZUVsZW1lbnQiOiAiSFRNTEVsZW1lbnQi
LAogICAgIlBvc2l0aW9uIjogIkdlb3Bvc2l0aW9uIgogIH07CiAgZnVuY3Rpb24gZ2V0VGFnSUUobykg
ewogICAgdmFyIHRhZyA9IGdldFRhZyhvKTsKICAgIHZhciBuZXdUYWcgPSBxdWlja01hcFt0YWddOwog
ICAgaWYgKG5ld1RhZykgcmV0dXJuIG5ld1RhZzsKICAgIGlmICh0YWcgPT0gIk9iamVjdCIpIHsKICAg
ICAgaWYgKHdpbmRvdy5EYXRhVmlldyAmJiAobyBpbnN0YW5jZW9mIHdpbmRvdy5EYXRhVmlldykpIHJl
dHVybiAiRGF0YVZpZXciOwogICAgfQogICAgcmV0dXJuIHRhZzsKICB9CiAgZnVuY3Rpb24gcHJvdG90
eXBlRm9yVGFnSUUodGFnKSB7CiAgICB2YXIgY29uc3RydWN0b3IgPSB3aW5kb3dbdGFnXTsKICAgIGlm
IChjb25zdHJ1Y3RvciA9PSBudWxsKSByZXR1cm4gbnVsbDsKICAgIHJldHVybiBjb25zdHJ1Y3Rvci5w
cm90b3R5cGU7CiAgfQogIGhvb2tzLmdldFRhZyA9IGdldFRhZ0lFOwogIGhvb2tzLnByb3RvdHlwZUZv
clRhZyA9IHByb3RvdHlwZUZvclRhZ0lFOwp9CkMuaTc9ZnVuY3Rpb24oaG9va3MpIHsgcmV0dXJuIGhv
b2tzOyB9CgpDLkN0PW5ldyBQLmJ5KCkKQy5FcT1uZXcgUC5rNSgpCkMueE09bmV3IFAudTUoKQpDLlFr
PW5ldyBQLkUzKCkKQy5OVT1uZXcgUC5KaSgpCkMuQTM9bmV3IFAuTXgobnVsbCkKQy5HYj1ILlZNKHQo
WzEyNywyMDQ3LDY1NTM1LDExMTQxMTFdKSx1LnQpCkMuYWs9SC5WTSh0KFswLDAsMzI3NzYsMzM3OTIs
MSwxMDI0MCwwLDBdKSx1LnQpCkMuY209SC5WTSh0KFsiKjo6Y2xhc3MiLCIqOjpkaXIiLCIqOjpkcmFn
Z2FibGUiLCIqOjpoaWRkZW4iLCIqOjppZCIsIio6OmluZXJ0IiwiKjo6aXRlbXByb3AiLCIqOjppdGVt
cmVmIiwiKjo6aXRlbXNjb3BlIiwiKjo6bGFuZyIsIio6OnNwZWxsY2hlY2siLCIqOjp0aXRsZSIsIio6
OnRyYW5zbGF0ZSIsIkE6OmFjY2Vzc2tleSIsIkE6OmNvb3JkcyIsIkE6OmhyZWZsYW5nIiwiQTo6bmFt
ZSIsIkE6OnNoYXBlIiwiQTo6dGFiaW5kZXgiLCJBOjp0YXJnZXQiLCJBOjp0eXBlIiwiQVJFQTo6YWNj
ZXNza2V5IiwiQVJFQTo6YWx0IiwiQVJFQTo6Y29vcmRzIiwiQVJFQTo6bm9ocmVmIiwiQVJFQTo6c2hh
cGUiLCJBUkVBOjp0YWJpbmRleCIsIkFSRUE6OnRhcmdldCIsIkFVRElPOjpjb250cm9scyIsIkFVRElP
Ojpsb29wIiwiQVVESU86Om1lZGlhZ3JvdXAiLCJBVURJTzo6bXV0ZWQiLCJBVURJTzo6cHJlbG9hZCIs
IkJETzo6ZGlyIiwiQk9EWTo6YWxpbmsiLCJCT0RZOjpiZ2NvbG9yIiwiQk9EWTo6bGluayIsIkJPRFk6
OnRleHQiLCJCT0RZOjp2bGluayIsIkJSOjpjbGVhciIsIkJVVFRPTjo6YWNjZXNza2V5IiwiQlVUVE9O
OjpkaXNhYmxlZCIsIkJVVFRPTjo6bmFtZSIsIkJVVFRPTjo6dGFiaW5kZXgiLCJCVVRUT046OnR5cGUi
LCJCVVRUT046OnZhbHVlIiwiQ0FOVkFTOjpoZWlnaHQiLCJDQU5WQVM6OndpZHRoIiwiQ0FQVElPTjo6
YWxpZ24iLCJDT0w6OmFsaWduIiwiQ09MOjpjaGFyIiwiQ09MOjpjaGFyb2ZmIiwiQ09MOjpzcGFuIiwi
Q09MOjp2YWxpZ24iLCJDT0w6OndpZHRoIiwiQ09MR1JPVVA6OmFsaWduIiwiQ09MR1JPVVA6OmNoYXIi
LCJDT0xHUk9VUDo6Y2hhcm9mZiIsIkNPTEdST1VQOjpzcGFuIiwiQ09MR1JPVVA6OnZhbGlnbiIsIkNP
TEdST1VQOjp3aWR0aCIsIkNPTU1BTkQ6OmNoZWNrZWQiLCJDT01NQU5EOjpjb21tYW5kIiwiQ09NTUFO
RDo6ZGlzYWJsZWQiLCJDT01NQU5EOjpsYWJlbCIsIkNPTU1BTkQ6OnJhZGlvZ3JvdXAiLCJDT01NQU5E
Ojp0eXBlIiwiREFUQTo6dmFsdWUiLCJERUw6OmRhdGV0aW1lIiwiREVUQUlMUzo6b3BlbiIsIkRJUjo6
Y29tcGFjdCIsIkRJVjo6YWxpZ24iLCJETDo6Y29tcGFjdCIsIkZJRUxEU0VUOjpkaXNhYmxlZCIsIkZP
TlQ6OmNvbG9yIiwiRk9OVDo6ZmFjZSIsIkZPTlQ6OnNpemUiLCJGT1JNOjphY2NlcHQiLCJGT1JNOjph
dXRvY29tcGxldGUiLCJGT1JNOjplbmN0eXBlIiwiRk9STTo6bWV0aG9kIiwiRk9STTo6bmFtZSIsIkZP
Uk06Om5vdmFsaWRhdGUiLCJGT1JNOjp0YXJnZXQiLCJGUkFNRTo6bmFtZSIsIkgxOjphbGlnbiIsIkgy
OjphbGlnbiIsIkgzOjphbGlnbiIsIkg0OjphbGlnbiIsIkg1OjphbGlnbiIsIkg2OjphbGlnbiIsIkhS
OjphbGlnbiIsIkhSOjpub3NoYWRlIiwiSFI6OnNpemUiLCJIUjo6d2lkdGgiLCJIVE1MOjp2ZXJzaW9u
IiwiSUZSQU1FOjphbGlnbiIsIklGUkFNRTo6ZnJhbWVib3JkZXIiLCJJRlJBTUU6OmhlaWdodCIsIklG
UkFNRTo6bWFyZ2luaGVpZ2h0IiwiSUZSQU1FOjptYXJnaW53aWR0aCIsIklGUkFNRTo6d2lkdGgiLCJJ
TUc6OmFsaWduIiwiSU1HOjphbHQiLCJJTUc6OmJvcmRlciIsIklNRzo6aGVpZ2h0IiwiSU1HOjpoc3Bh
Y2UiLCJJTUc6OmlzbWFwIiwiSU1HOjpuYW1lIiwiSU1HOjp1c2VtYXAiLCJJTUc6OnZzcGFjZSIsIklN
Rzo6d2lkdGgiLCJJTlBVVDo6YWNjZXB0IiwiSU5QVVQ6OmFjY2Vzc2tleSIsIklOUFVUOjphbGlnbiIs
IklOUFVUOjphbHQiLCJJTlBVVDo6YXV0b2NvbXBsZXRlIiwiSU5QVVQ6OmF1dG9mb2N1cyIsIklOUFVU
OjpjaGVja2VkIiwiSU5QVVQ6OmRpc2FibGVkIiwiSU5QVVQ6OmlucHV0bW9kZSIsIklOUFVUOjppc21h
cCIsIklOUFVUOjpsaXN0IiwiSU5QVVQ6Om1heCIsIklOUFVUOjptYXhsZW5ndGgiLCJJTlBVVDo6bWlu
IiwiSU5QVVQ6Om11bHRpcGxlIiwiSU5QVVQ6Om5hbWUiLCJJTlBVVDo6cGxhY2Vob2xkZXIiLCJJTlBV
VDo6cmVhZG9ubHkiLCJJTlBVVDo6cmVxdWlyZWQiLCJJTlBVVDo6c2l6ZSIsIklOUFVUOjpzdGVwIiwi
SU5QVVQ6OnRhYmluZGV4IiwiSU5QVVQ6OnR5cGUiLCJJTlBVVDo6dXNlbWFwIiwiSU5QVVQ6OnZhbHVl
IiwiSU5TOjpkYXRldGltZSIsIktFWUdFTjo6ZGlzYWJsZWQiLCJLRVlHRU46OmtleXR5cGUiLCJLRVlH
RU46Om5hbWUiLCJMQUJFTDo6YWNjZXNza2V5IiwiTEFCRUw6OmZvciIsIkxFR0VORDo6YWNjZXNza2V5
IiwiTEVHRU5EOjphbGlnbiIsIkxJOjp0eXBlIiwiTEk6OnZhbHVlIiwiTElOSzo6c2l6ZXMiLCJNQVA6
Om5hbWUiLCJNRU5VOjpjb21wYWN0IiwiTUVOVTo6bGFiZWwiLCJNRU5VOjp0eXBlIiwiTUVURVI6Omhp
Z2giLCJNRVRFUjo6bG93IiwiTUVURVI6Om1heCIsIk1FVEVSOjptaW4iLCJNRVRFUjo6dmFsdWUiLCJP
QkpFQ1Q6OnR5cGVtdXN0bWF0Y2giLCJPTDo6Y29tcGFjdCIsIk9MOjpyZXZlcnNlZCIsIk9MOjpzdGFy
dCIsIk9MOjp0eXBlIiwiT1BUR1JPVVA6OmRpc2FibGVkIiwiT1BUR1JPVVA6OmxhYmVsIiwiT1BUSU9O
OjpkaXNhYmxlZCIsIk9QVElPTjo6bGFiZWwiLCJPUFRJT046OnNlbGVjdGVkIiwiT1BUSU9OOjp2YWx1
ZSIsIk9VVFBVVDo6Zm9yIiwiT1VUUFVUOjpuYW1lIiwiUDo6YWxpZ24iLCJQUkU6OndpZHRoIiwiUFJP
R1JFU1M6Om1heCIsIlBST0dSRVNTOjptaW4iLCJQUk9HUkVTUzo6dmFsdWUiLCJTRUxFQ1Q6OmF1dG9j
b21wbGV0ZSIsIlNFTEVDVDo6ZGlzYWJsZWQiLCJTRUxFQ1Q6Om11bHRpcGxlIiwiU0VMRUNUOjpuYW1l
IiwiU0VMRUNUOjpyZXF1aXJlZCIsIlNFTEVDVDo6c2l6ZSIsIlNFTEVDVDo6dGFiaW5kZXgiLCJTT1VS
Q0U6OnR5cGUiLCJUQUJMRTo6YWxpZ24iLCJUQUJMRTo6Ymdjb2xvciIsIlRBQkxFOjpib3JkZXIiLCJU
QUJMRTo6Y2VsbHBhZGRpbmciLCJUQUJMRTo6Y2VsbHNwYWNpbmciLCJUQUJMRTo6ZnJhbWUiLCJUQUJM
RTo6cnVsZXMiLCJUQUJMRTo6c3VtbWFyeSIsIlRBQkxFOjp3aWR0aCIsIlRCT0RZOjphbGlnbiIsIlRC
T0RZOjpjaGFyIiwiVEJPRFk6OmNoYXJvZmYiLCJUQk9EWTo6dmFsaWduIiwiVEQ6OmFiYnIiLCJURDo6
YWxpZ24iLCJURDo6YXhpcyIsIlREOjpiZ2NvbG9yIiwiVEQ6OmNoYXIiLCJURDo6Y2hhcm9mZiIsIlRE
Ojpjb2xzcGFuIiwiVEQ6OmhlYWRlcnMiLCJURDo6aGVpZ2h0IiwiVEQ6Om5vd3JhcCIsIlREOjpyb3dz
cGFuIiwiVEQ6OnNjb3BlIiwiVEQ6OnZhbGlnbiIsIlREOjp3aWR0aCIsIlRFWFRBUkVBOjphY2Nlc3Nr
ZXkiLCJURVhUQVJFQTo6YXV0b2NvbXBsZXRlIiwiVEVYVEFSRUE6OmNvbHMiLCJURVhUQVJFQTo6ZGlz
YWJsZWQiLCJURVhUQVJFQTo6aW5wdXRtb2RlIiwiVEVYVEFSRUE6Om5hbWUiLCJURVhUQVJFQTo6cGxh
Y2Vob2xkZXIiLCJURVhUQVJFQTo6cmVhZG9ubHkiLCJURVhUQVJFQTo6cmVxdWlyZWQiLCJURVhUQVJF
QTo6cm93cyIsIlRFWFRBUkVBOjp0YWJpbmRleCIsIlRFWFRBUkVBOjp3cmFwIiwiVEZPT1Q6OmFsaWdu
IiwiVEZPT1Q6OmNoYXIiLCJURk9PVDo6Y2hhcm9mZiIsIlRGT09UOjp2YWxpZ24iLCJUSDo6YWJiciIs
IlRIOjphbGlnbiIsIlRIOjpheGlzIiwiVEg6OmJnY29sb3IiLCJUSDo6Y2hhciIsIlRIOjpjaGFyb2Zm
IiwiVEg6OmNvbHNwYW4iLCJUSDo6aGVhZGVycyIsIlRIOjpoZWlnaHQiLCJUSDo6bm93cmFwIiwiVEg6
OnJvd3NwYW4iLCJUSDo6c2NvcGUiLCJUSDo6dmFsaWduIiwiVEg6OndpZHRoIiwiVEhFQUQ6OmFsaWdu
IiwiVEhFQUQ6OmNoYXIiLCJUSEVBRDo6Y2hhcm9mZiIsIlRIRUFEOjp2YWxpZ24iLCJUUjo6YWxpZ24i
LCJUUjo6Ymdjb2xvciIsIlRSOjpjaGFyIiwiVFI6OmNoYXJvZmYiLCJUUjo6dmFsaWduIiwiVFJBQ0s6
OmRlZmF1bHQiLCJUUkFDSzo6a2luZCIsIlRSQUNLOjpsYWJlbCIsIlRSQUNLOjpzcmNsYW5nIiwiVUw6
OmNvbXBhY3QiLCJVTDo6dHlwZSIsIlZJREVPOjpjb250cm9scyIsIlZJREVPOjpoZWlnaHQiLCJWSURF
Tzo6bG9vcCIsIlZJREVPOjptZWRpYWdyb3VwIiwiVklERU86Om11dGVkIiwiVklERU86OnByZWxvYWQi
LCJWSURFTzo6d2lkdGgiXSksdS5zKQpDLlZDPUguVk0odChbMCwwLDY1NDkwLDQ1MDU1LDY1NTM1LDM0
ODE1LDY1NTM0LDE4NDMxXSksdS50KQpDLm1LPUguVk0odChbMCwwLDI2NjI0LDEwMjMsNjU1MzQsMjA0
Nyw2NTUzNCwyMDQ3XSksdS50KQpDLlNxPUguVk0odChbIkhFQUQiLCJBUkVBIiwiQkFTRSIsIkJBU0VG
T05UIiwiQlIiLCJDT0wiLCJDT0xHUk9VUCIsIkVNQkVEIiwiRlJBTUUiLCJGUkFNRVNFVCIsIkhSIiwi
SU1BR0UiLCJJTUciLCJJTlBVVCIsIklTSU5ERVgiLCJMSU5LIiwiTUVUQSIsIlBBUkFNIiwiU09VUkNF
IiwiU1RZTEUiLCJUSVRMRSIsIldCUiJdKSx1LnMpCkMueEQ9SC5WTSh0KFtdKSx1LnMpCkMuZG49SC5W
TSh0KFtdKSx1LmIpCkMudG89SC5WTSh0KFswLDAsMzI3MjIsMTIyODcsNjU1MzQsMzQ4MTUsNjU1MzQs
MTg0MzFdKSx1LnQpCkMuRjM9SC5WTSh0KFswLDAsMjQ1NzYsMTAyMyw2NTUzNCwzNDgxNSw2NTUzNCwx
ODQzMV0pLHUudCkKQy5lYT1ILlZNKHQoWzAsMCwzMjc1NCwxMTI2Myw2NTUzNCwzNDgxNSw2NTUzNCwx
ODQzMV0pLHUudCkKQy5aSj1ILlZNKHQoWzAsMCwzMjcyMiwxMjI4Nyw2NTUzNSwzNDgxNSw2NTUzNCwx
ODQzMV0pLHUudCkKQy5XZD1ILlZNKHQoWzAsMCw2NTQ5MCwxMjI4Nyw2NTUzNSwzNDgxNSw2NTUzNCwx
ODQzMV0pLHUudCkKQy5ReD1ILlZNKHQoWyJiaW5kIiwiaWYiLCJyZWYiLCJyZXBlYXQiLCJzeW50YXgi
XSksdS5zKQpDLkJJPUguVk0odChbIkE6OmhyZWYiLCJBUkVBOjpocmVmIiwiQkxPQ0tRVU9URTo6Y2l0
ZSIsIkJPRFk6OmJhY2tncm91bmQiLCJDT01NQU5EOjppY29uIiwiREVMOjpjaXRlIiwiRk9STTo6YWN0
aW9uIiwiSU1HOjpzcmMiLCJJTlBVVDo6c3JjIiwiSU5TOjpjaXRlIiwiUTo6Y2l0ZSIsIlZJREVPOjpw
b3N0ZXIiXSksdS5zKQpDLldPPW5ldyBILkxQKDAse30sQy54RCxILk4wKCJMUDxxVSxxVT4iKSkKQy5o
VT1ILlZNKHQoW10pLEguTjAoImpkPEdEPiIpKQpDLkNNPW5ldyBILkxQKDAse30sQy5oVSxILk4wKCJM
UDxHRCxAPiIpKQpDLlRlPW5ldyBILnd2KCJjYWxsIil9KSgpOyhmdW5jdGlvbiBzdGF0aWNGaWVsZHMo
KXskLnlqPTAKJC5tSj1udWxsCiQuUDQ9bnVsbAokLk5GPW51bGwKJC5UWD1udWxsCiQueDc9bnVsbAok
Lm53PW51bGwKJC52dj1udWxsCiQuQnY9bnVsbAokLlM2PW51bGwKJC5rOD1udWxsCiQubWc9bnVsbAok
LlVEPSExCiQuWDM9Qy5OVQokLnhnPVtdCiQueG89bnVsbAokLkJPPW51bGwKJC5sdD1udWxsCiQuRVU9
bnVsbAokLm9yPVAuRmwodS5OLHUuWikKJC5JNj1udWxsCiQuRmY9bnVsbH0pKCk7KGZ1bmN0aW9uIGxh
enlJbml0aWFsaXplcnMoKXt2YXIgdD1odW5rSGVscGVycy5sYXp5CnQoJCwiZmEiLCJ3IixmdW5jdGlv
bigpe3JldHVybiBILllnKCJfJGRhcnRfZGFydENsb3N1cmUiKX0pCnQoJCwiWWYiLCJVTiIsZnVuY3Rp
b24oKXtyZXR1cm4gSC5ZZygiXyRkYXJ0X2pzIil9KQp0KCQsIlUyIiwiU24iLGZ1bmN0aW9uKCl7cmV0
dXJuIEguY00oSC5TNyh7CnRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIiRyZWNlaXZlciQifX0pKX0p
CnQoJCwieHEiLCJscSIsZnVuY3Rpb24oKXtyZXR1cm4gSC5jTShILlM3KHskbWV0aG9kJDpudWxsLAp0
b1N0cmluZzpmdW5jdGlvbigpe3JldHVybiIkcmVjZWl2ZXIkIn19KSl9KQp0KCQsIlIxIiwiTjkiLGZ1
bmN0aW9uKCl7cmV0dXJuIEguY00oSC5TNyhudWxsKSl9KQp0KCQsImZOIiwiaUkiLGZ1bmN0aW9uKCl7
cmV0dXJuIEguY00oZnVuY3Rpb24oKXt2YXIgJGFyZ3VtZW50c0V4cHIkPSckYXJndW1lbnRzJCcKdHJ5
e251bGwuJG1ldGhvZCQoJGFyZ3VtZW50c0V4cHIkKX1jYXRjaChzKXtyZXR1cm4gcy5tZXNzYWdlfX0o
KSl9KQp0KCQsInFpIiwiS2YiLGZ1bmN0aW9uKCl7cmV0dXJuIEguY00oSC5TNyh2b2lkIDApKX0pCnQo
JCwicloiLCJaaCIsZnVuY3Rpb24oKXtyZXR1cm4gSC5jTShmdW5jdGlvbigpe3ZhciAkYXJndW1lbnRz
RXhwciQ9JyRhcmd1bWVudHMkJwp0cnl7KHZvaWQgMCkuJG1ldGhvZCQoJGFyZ3VtZW50c0V4cHIkKX1j
YXRjaChzKXtyZXR1cm4gcy5tZXNzYWdlfX0oKSl9KQp0KCQsImtxIiwiY1AiLGZ1bmN0aW9uKCl7cmV0
dXJuIEguY00oSC5NaihudWxsKSl9KQp0KCQsInR0IiwiYzMiLGZ1bmN0aW9uKCl7cmV0dXJuIEguY00o
ZnVuY3Rpb24oKXt0cnl7bnVsbC4kbWV0aG9kJH1jYXRjaChzKXtyZXR1cm4gcy5tZXNzYWdlfX0oKSl9
KQp0KCQsImR0IiwiSEsiLGZ1bmN0aW9uKCl7cmV0dXJuIEguY00oSC5Naih2b2lkIDApKX0pCnQoJCwi
QTciLCJyMSIsZnVuY3Rpb24oKXtyZXR1cm4gSC5jTShmdW5jdGlvbigpe3RyeXsodm9pZCAwKS4kbWV0
aG9kJH1jYXRjaChzKXtyZXR1cm4gcy5tZXNzYWdlfX0oKSl9KQp0KCQsIldjIiwidXQiLGZ1bmN0aW9u
KCl7cmV0dXJuIFAuT2ooKX0pCnQoJCwia2giLCJyZiIsZnVuY3Rpb24oKXtyZXR1cm4gUC5XSSgpfSkK
dCgkLCJidCIsIlY3IixmdW5jdGlvbigpe3JldHVybiBILkRRKEguWEYoSC5WTShbLTIsLTIsLTIsLTIs
LTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIs
LTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTIsLTEsLTIsLTIsLTIsLTIsLTIsNjIs
LTIsNjIsLTIsNjMsNTIsNTMsNTQsNTUsNTYsNTcsNTgsNTksNjAsNjEsLTIsLTIsLTIsLTEsLTIsLTIs
LTIsMCwxLDIsMyw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwxOSwyMCwyMSwy
MiwyMywyNCwyNSwtMiwtMiwtMiwtMiw2MywtMiwyNiwyNywyOCwyOSwzMCwzMSwzMiwzMywzNCwzNSwz
NiwzNywzOCwzOSw0MCw0MSw0Miw0Myw0NCw0NSw0Niw0Nyw0OCw0OSw1MCw1MSwtMiwtMiwtMiwtMiwt
Ml0sdS50KSkpfSkKdCgkLCJNNSIsIndRIixmdW5jdGlvbigpe3JldHVybiB0eXBlb2YgcHJvY2VzcyE9
InVuZGVmaW5lZCImJk9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChwcm9jZXNzKT09IltvYmpl
Y3QgcHJvY2Vzc10iJiZwcm9jZXNzLnBsYXRmb3JtPT0id2luMzIifSkKdCgkLCJtZiIsIno0IixmdW5j
dGlvbigpe3JldHVybiBQLm51KCJeW1xcLVxcLjAtOUEtWl9hLXp+XSokIil9KQp0KCQsIkpHIiwidloi
LGZ1bmN0aW9uKCl7cmV0dXJuIFAudXgoKX0pCnQoJCwiU0MiLCJBTiIsZnVuY3Rpb24oKXtyZXR1cm4g
UC50TShbIkEiLCJBQkJSIiwiQUNST05ZTSIsIkFERFJFU1MiLCJBUkVBIiwiQVJUSUNMRSIsIkFTSURF
IiwiQVVESU8iLCJCIiwiQkRJIiwiQkRPIiwiQklHIiwiQkxPQ0tRVU9URSIsIkJSIiwiQlVUVE9OIiwi
Q0FOVkFTIiwiQ0FQVElPTiIsIkNFTlRFUiIsIkNJVEUiLCJDT0RFIiwiQ09MIiwiQ09MR1JPVVAiLCJD
T01NQU5EIiwiREFUQSIsIkRBVEFMSVNUIiwiREQiLCJERUwiLCJERVRBSUxTIiwiREZOIiwiRElSIiwi
RElWIiwiREwiLCJEVCIsIkVNIiwiRklFTERTRVQiLCJGSUdDQVBUSU9OIiwiRklHVVJFIiwiRk9OVCIs
IkZPT1RFUiIsIkZPUk0iLCJIMSIsIkgyIiwiSDMiLCJINCIsIkg1IiwiSDYiLCJIRUFERVIiLCJIR1JP
VVAiLCJIUiIsIkkiLCJJRlJBTUUiLCJJTUciLCJJTlBVVCIsIklOUyIsIktCRCIsIkxBQkVMIiwiTEVH
RU5EIiwiTEkiLCJNQVAiLCJNQVJLIiwiTUVOVSIsIk1FVEVSIiwiTkFWIiwiTk9CUiIsIk9MIiwiT1BU
R1JPVVAiLCJPUFRJT04iLCJPVVRQVVQiLCJQIiwiUFJFIiwiUFJPR1JFU1MiLCJRIiwiUyIsIlNBTVAi
LCJTRUNUSU9OIiwiU0VMRUNUIiwiU01BTEwiLCJTT1VSQ0UiLCJTUEFOIiwiU1RSSUtFIiwiU1RST05H
IiwiU1VCIiwiU1VNTUFSWSIsIlNVUCIsIlRBQkxFIiwiVEJPRFkiLCJURCIsIlRFWFRBUkVBIiwiVEZP
T1QiLCJUSCIsIlRIRUFEIiwiVElNRSIsIlRSIiwiVFJBQ0siLCJUVCIsIlUiLCJVTCIsIlZBUiIsIlZJ
REVPIiwiV0JSIl0sdS5OKX0pCnQoJCwiWDQiLCJoRyIsZnVuY3Rpb24oKXtyZXR1cm4gUC5udSgiXlxc
UyskIil9KQp0KCQsIndPIiwib3ciLGZ1bmN0aW9uKCl7cmV0dXJuIHUubS5iKFAuTkQoc2VsZikpfSkK
dCgkLCJrdCIsIlI4IixmdW5jdGlvbigpe3JldHVybiBILllnKCJfJGRhcnRfZGFydE9iamVjdCIpfSkK
dCgkLCJKZSIsImtJIixmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiBEYXJ0T2JqZWN0KGEpe3RoaXMu
bz1hfX0pCnQoJCwicXQiLCJ6QiIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFQuR1YoKX0pCnQoJCwiZmUi
LCJLRyIsZnVuY3Rpb24oKXtyZXR1cm4gbmV3IEwuWEEoKX0pCnQoJCwibU0iLCJuVSIsZnVuY3Rpb24o
KXtyZXR1cm4gbmV3IE0ubEkoJC5IaygpKX0pCnQoJCwieXIiLCJiRCIsZnVuY3Rpb24oKXtyZXR1cm4g
bmV3IEUuT0YoUC5udSgiLyIpLFAubnUoIlteL10kIiksUC5udSgiXi8iKSl9KQp0KCQsIk1rIiwiS2si
LGZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBMLklWKFAubnUoIlsvXFxcXF0iKSxQLm51KCJbXi9cXFxcXSQi
KSxQLm51KCJeKFxcXFxcXFxcW15cXFxcXStcXFxcW15cXFxcL10rfFthLXpBLVpdOlsvXFxcXF0pIiks
UC5udSgiXlsvXFxcXF0oPyFbL1xcXFxdKSIpKX0pCnQoJCwiYWsiLCJFYiIsZnVuY3Rpb24oKXtyZXR1
cm4gbmV3IEYucnUoUC5udSgiLyIpLFAubnUoIiheW2EtekEtWl1bLSsuYS16QS1aXFxkXSo6Ly98W14v
XSkkIiksUC5udSgiW2EtekEtWl1bLSsuYS16QS1aXFxkXSo6Ly9bXi9dKiIpLFAubnUoIl4vIikpfSkK
dCgkLCJscyIsIkhrIixmdW5jdGlvbigpe3JldHVybiBPLlJoKCl9KX0pKCk7KGZ1bmN0aW9uIG5hdGl2
ZVN1cHBvcnQoKXshZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbihhKXt2YXIgbj17fQpuW2FdPTEKcmV0
dXJuIE9iamVjdC5rZXlzKGh1bmtIZWxwZXJzLmNvbnZlcnRUb0Zhc3RPYmplY3QobikpWzBdfQp2Lmdl
dElzb2xhdGVUYWc9ZnVuY3Rpb24oYSl7cmV0dXJuIHQoIl9fX2RhcnRfIithK3YuaXNvbGF0ZVRhZyl9
CnZhciBzPSJfX19kYXJ0X2lzb2xhdGVfdGFnc18iCnZhciByPU9iamVjdFtzXXx8KE9iamVjdFtzXT1P
YmplY3QuY3JlYXRlKG51bGwpKQp2YXIgcT0iX1p4WXhYIgpmb3IodmFyIHA9MDs7cCsrKXt2YXIgbz10
KHErIl8iK3ArIl8iKQppZighKG8gaW4gcikpe3Jbb109MQp2Lmlzb2xhdGVUYWc9bwpicmVha319di5k
aXNwYXRjaFByb3BlcnR5TmFtZT12LmdldElzb2xhdGVUYWcoImRpc3BhdGNoX3JlY29yZCIpfSgpCmh1
bmtIZWxwZXJzLnNldE9yVXBkYXRlSW50ZXJjZXB0b3JzQnlUYWcoe0RPTUVycm9yOkoudkIsRE9NSW1w
bGVtZW50YXRpb246Si52QixNZWRpYUVycm9yOkoudkIsTmF2aWdhdG9yOkoudkIsTmF2aWdhdG9yQ29u
Y3VycmVudEhhcmR3YXJlOkoudkIsTmF2aWdhdG9yVXNlck1lZGlhRXJyb3I6Si52QixPdmVyY29uc3Ry
YWluZWRFcnJvcjpKLnZCLFBvc2l0aW9uRXJyb3I6Si52QixSYW5nZTpKLnZCLFNRTEVycm9yOkoudkIs
RGF0YVZpZXc6SC5FVCxBcnJheUJ1ZmZlclZpZXc6SC5FVCxGbG9hdDMyQXJyYXk6SC5EZyxGbG9hdDY0
QXJyYXk6SC5EZyxJbnQxNkFycmF5OkgueGosSW50MzJBcnJheTpILmRFLEludDhBcnJheTpILlpBLFVp
bnQxNkFycmF5Okgud2YsVWludDMyQXJyYXk6SC5QcSxVaW50OENsYW1wZWRBcnJheTpILmVFLENhbnZh
c1BpeGVsQXJyYXk6SC5lRSxVaW50OEFycmF5OkguVjYsSFRNTEF1ZGlvRWxlbWVudDpXLnFFLEhUTUxC
UkVsZW1lbnQ6Vy5xRSxIVE1MQnV0dG9uRWxlbWVudDpXLnFFLEhUTUxDYW52YXNFbGVtZW50OlcucUUs
SFRNTENvbnRlbnRFbGVtZW50OlcucUUsSFRNTERMaXN0RWxlbWVudDpXLnFFLEhUTUxEYXRhRWxlbWVu
dDpXLnFFLEhUTUxEYXRhTGlzdEVsZW1lbnQ6Vy5xRSxIVE1MRGV0YWlsc0VsZW1lbnQ6Vy5xRSxIVE1M
RGlhbG9nRWxlbWVudDpXLnFFLEhUTUxEaXZFbGVtZW50OlcucUUsSFRNTEVtYmVkRWxlbWVudDpXLnFF
LEhUTUxGaWVsZFNldEVsZW1lbnQ6Vy5xRSxIVE1MSFJFbGVtZW50OlcucUUsSFRNTEhlYWRFbGVtZW50
OlcucUUsSFRNTEhlYWRpbmdFbGVtZW50OlcucUUsSFRNTEh0bWxFbGVtZW50OlcucUUsSFRNTElGcmFt
ZUVsZW1lbnQ6Vy5xRSxIVE1MSW1hZ2VFbGVtZW50OlcucUUsSFRNTElucHV0RWxlbWVudDpXLnFFLEhU
TUxMSUVsZW1lbnQ6Vy5xRSxIVE1MTGFiZWxFbGVtZW50OlcucUUsSFRNTExlZ2VuZEVsZW1lbnQ6Vy5x
RSxIVE1MTGlua0VsZW1lbnQ6Vy5xRSxIVE1MTWFwRWxlbWVudDpXLnFFLEhUTUxNZWRpYUVsZW1lbnQ6
Vy5xRSxIVE1MTWVudUVsZW1lbnQ6Vy5xRSxIVE1MTWV0YUVsZW1lbnQ6Vy5xRSxIVE1MTWV0ZXJFbGVt
ZW50OlcucUUsSFRNTE1vZEVsZW1lbnQ6Vy5xRSxIVE1MT0xpc3RFbGVtZW50OlcucUUsSFRNTE9iamVj
dEVsZW1lbnQ6Vy5xRSxIVE1MT3B0R3JvdXBFbGVtZW50OlcucUUsSFRNTE9wdGlvbkVsZW1lbnQ6Vy5x
RSxIVE1MT3V0cHV0RWxlbWVudDpXLnFFLEhUTUxQYXJhbUVsZW1lbnQ6Vy5xRSxIVE1MUGljdHVyZUVs
ZW1lbnQ6Vy5xRSxIVE1MUHJlRWxlbWVudDpXLnFFLEhUTUxQcm9ncmVzc0VsZW1lbnQ6Vy5xRSxIVE1M
UXVvdGVFbGVtZW50OlcucUUsSFRNTFNjcmlwdEVsZW1lbnQ6Vy5xRSxIVE1MU2hhZG93RWxlbWVudDpX
LnFFLEhUTUxTbG90RWxlbWVudDpXLnFFLEhUTUxTb3VyY2VFbGVtZW50OlcucUUsSFRNTFNwYW5FbGVt
ZW50OlcucUUsSFRNTFN0eWxlRWxlbWVudDpXLnFFLEhUTUxUYWJsZUNhcHRpb25FbGVtZW50OlcucUUs
SFRNTFRhYmxlQ2VsbEVsZW1lbnQ6Vy5xRSxIVE1MVGFibGVEYXRhQ2VsbEVsZW1lbnQ6Vy5xRSxIVE1M
VGFibGVIZWFkZXJDZWxsRWxlbWVudDpXLnFFLEhUTUxUYWJsZUNvbEVsZW1lbnQ6Vy5xRSxIVE1MVGV4
dEFyZWFFbGVtZW50OlcucUUsSFRNTFRpbWVFbGVtZW50OlcucUUsSFRNTFRpdGxlRWxlbWVudDpXLnFF
LEhUTUxUcmFja0VsZW1lbnQ6Vy5xRSxIVE1MVUxpc3RFbGVtZW50OlcucUUsSFRNTFVua25vd25FbGVt
ZW50OlcucUUsSFRNTFZpZGVvRWxlbWVudDpXLnFFLEhUTUxEaXJlY3RvcnlFbGVtZW50OlcucUUsSFRN
TEZvbnRFbGVtZW50OlcucUUsSFRNTEZyYW1lRWxlbWVudDpXLnFFLEhUTUxGcmFtZVNldEVsZW1lbnQ6
Vy5xRSxIVE1MTWFycXVlZUVsZW1lbnQ6Vy5xRSxIVE1MRWxlbWVudDpXLnFFLEhUTUxBbmNob3JFbGVt
ZW50OlcuR2gsSFRNTEFyZWFFbGVtZW50OlcuZlksSFRNTEJhc2VFbGVtZW50OlcubkIsQmxvYjpXLkF6
LEhUTUxCb2R5RWxlbWVudDpXLlFQLENEQVRBU2VjdGlvbjpXLm54LENoYXJhY3RlckRhdGE6Vy5ueCxD
b21tZW50OlcubngsUHJvY2Vzc2luZ0luc3RydWN0aW9uOlcubngsVGV4dDpXLm54LENTU1N0eWxlRGVj
bGFyYXRpb246Vy5vSixNU1N0eWxlQ1NTUHJvcGVydGllczpXLm9KLENTUzJQcm9wZXJ0aWVzOlcub0os
WE1MRG9jdW1lbnQ6Vy5RRixEb2N1bWVudDpXLlFGLERPTUV4Y2VwdGlvbjpXLk5oLERPTVJlY3RSZWFk
T25seTpXLklCLERPTVRva2VuTGlzdDpXLm43LEVsZW1lbnQ6Vy5jdixBYm9ydFBheW1lbnRFdmVudDpX
LmVhLEFuaW1hdGlvbkV2ZW50OlcuZWEsQW5pbWF0aW9uUGxheWJhY2tFdmVudDpXLmVhLEFwcGxpY2F0
aW9uQ2FjaGVFcnJvckV2ZW50OlcuZWEsQmFja2dyb3VuZEZldGNoQ2xpY2tFdmVudDpXLmVhLEJhY2tn
cm91bmRGZXRjaEV2ZW50OlcuZWEsQmFja2dyb3VuZEZldGNoRmFpbEV2ZW50OlcuZWEsQmFja2dyb3Vu
ZEZldGNoZWRFdmVudDpXLmVhLEJlZm9yZUluc3RhbGxQcm9tcHRFdmVudDpXLmVhLEJlZm9yZVVubG9h
ZEV2ZW50OlcuZWEsQmxvYkV2ZW50OlcuZWEsQ2FuTWFrZVBheW1lbnRFdmVudDpXLmVhLENsaXBib2Fy
ZEV2ZW50OlcuZWEsQ2xvc2VFdmVudDpXLmVhLEN1c3RvbUV2ZW50OlcuZWEsRGV2aWNlTW90aW9uRXZl
bnQ6Vy5lYSxEZXZpY2VPcmllbnRhdGlvbkV2ZW50OlcuZWEsRXJyb3JFdmVudDpXLmVhLEV4dGVuZGFi
bGVFdmVudDpXLmVhLEV4dGVuZGFibGVNZXNzYWdlRXZlbnQ6Vy5lYSxGZXRjaEV2ZW50OlcuZWEsRm9u
dEZhY2VTZXRMb2FkRXZlbnQ6Vy5lYSxGb3JlaWduRmV0Y2hFdmVudDpXLmVhLEdhbWVwYWRFdmVudDpX
LmVhLEhhc2hDaGFuZ2VFdmVudDpXLmVhLEluc3RhbGxFdmVudDpXLmVhLE1lZGlhRW5jcnlwdGVkRXZl
bnQ6Vy5lYSxNZWRpYUtleU1lc3NhZ2VFdmVudDpXLmVhLE1lZGlhUXVlcnlMaXN0RXZlbnQ6Vy5lYSxN
ZWRpYVN0cmVhbUV2ZW50OlcuZWEsTWVkaWFTdHJlYW1UcmFja0V2ZW50OlcuZWEsTWVzc2FnZUV2ZW50
OlcuZWEsTUlESUNvbm5lY3Rpb25FdmVudDpXLmVhLE1JRElNZXNzYWdlRXZlbnQ6Vy5lYSxNdXRhdGlv
bkV2ZW50OlcuZWEsTm90aWZpY2F0aW9uRXZlbnQ6Vy5lYSxQYWdlVHJhbnNpdGlvbkV2ZW50OlcuZWEs
UGF5bWVudFJlcXVlc3RFdmVudDpXLmVhLFBheW1lbnRSZXF1ZXN0VXBkYXRlRXZlbnQ6Vy5lYSxQb3BT
dGF0ZUV2ZW50OlcuZWEsUHJlc2VudGF0aW9uQ29ubmVjdGlvbkF2YWlsYWJsZUV2ZW50OlcuZWEsUHJl
c2VudGF0aW9uQ29ubmVjdGlvbkNsb3NlRXZlbnQ6Vy5lYSxQcm9taXNlUmVqZWN0aW9uRXZlbnQ6Vy5l
YSxQdXNoRXZlbnQ6Vy5lYSxSVENEYXRhQ2hhbm5lbEV2ZW50OlcuZWEsUlRDRFRNRlRvbmVDaGFuZ2VF
dmVudDpXLmVhLFJUQ1BlZXJDb25uZWN0aW9uSWNlRXZlbnQ6Vy5lYSxSVENUcmFja0V2ZW50OlcuZWEs
U2VjdXJpdHlQb2xpY3lWaW9sYXRpb25FdmVudDpXLmVhLFNlbnNvckVycm9yRXZlbnQ6Vy5lYSxTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yOlcuZWEsU3BlZWNoUmVjb2duaXRpb25FdmVudDpXLmVhLFNwZWVjaFN5
bnRoZXNpc0V2ZW50OlcuZWEsU3RvcmFnZUV2ZW50OlcuZWEsU3luY0V2ZW50OlcuZWEsVHJhY2tFdmVu
dDpXLmVhLFRyYW5zaXRpb25FdmVudDpXLmVhLFdlYktpdFRyYW5zaXRpb25FdmVudDpXLmVhLFZSRGV2
aWNlRXZlbnQ6Vy5lYSxWUkRpc3BsYXlFdmVudDpXLmVhLFZSU2Vzc2lvbkV2ZW50OlcuZWEsTW9qb0lu
dGVyZmFjZVJlcXVlc3RFdmVudDpXLmVhLFVTQkNvbm5lY3Rpb25FdmVudDpXLmVhLElEQlZlcnNpb25D
aGFuZ2VFdmVudDpXLmVhLEF1ZGlvUHJvY2Vzc2luZ0V2ZW50OlcuZWEsT2ZmbGluZUF1ZGlvQ29tcGxl
dGlvbkV2ZW50OlcuZWEsV2ViR0xDb250ZXh0RXZlbnQ6Vy5lYSxFdmVudDpXLmVhLElucHV0RXZlbnQ6
Vy5lYSxFdmVudFRhcmdldDpXLkQwLEZpbGU6Vy5UNSxIVE1MRm9ybUVsZW1lbnQ6Vy5oNCxIaXN0b3J5
OlcuYnIsSFRNTERvY3VtZW50OlcuVmIsWE1MSHR0cFJlcXVlc3Q6Vy5PNyxYTUxIdHRwUmVxdWVzdEV2
ZW50VGFyZ2V0Olcud2EsSW1hZ2VEYXRhOlcuU2csTG9jYXRpb246Vy51OCxNb3VzZUV2ZW50OlcuQWos
RHJhZ0V2ZW50OlcuQWosUG9pbnRlckV2ZW50OlcuQWosV2hlZWxFdmVudDpXLkFqLERvY3VtZW50RnJh
Z21lbnQ6Vy51SCxTaGFkb3dSb290OlcudUgsRG9jdW1lbnRUeXBlOlcudUgsTm9kZTpXLnVILE5vZGVM
aXN0OlcuQkgsUmFkaW9Ob2RlTGlzdDpXLkJILEhUTUxQYXJhZ3JhcGhFbGVtZW50OlcuU04sUHJvZ3Jl
c3NFdmVudDpXLmV3LFJlc291cmNlUHJvZ3Jlc3NFdmVudDpXLmV3LEhUTUxTZWxlY3RFbGVtZW50Olcu
bHAsSFRNTFRhYmxlRWxlbWVudDpXLlRiLEhUTUxUYWJsZVJvd0VsZW1lbnQ6Vy5JdixIVE1MVGFibGVT
ZWN0aW9uRWxlbWVudDpXLkJULEhUTUxUZW1wbGF0ZUVsZW1lbnQ6Vy55WSxDb21wb3NpdGlvbkV2ZW50
OlcudzYsRm9jdXNFdmVudDpXLnc2LEtleWJvYXJkRXZlbnQ6Vy53NixUZXh0RXZlbnQ6Vy53NixUb3Vj
aEV2ZW50OlcudzYsVUlFdmVudDpXLnc2LFdpbmRvdzpXLks1LERPTVdpbmRvdzpXLks1LERlZGljYXRl
ZFdvcmtlckdsb2JhbFNjb3BlOlcuQ20sU2VydmljZVdvcmtlckdsb2JhbFNjb3BlOlcuQ20sU2hhcmVk
V29ya2VyR2xvYmFsU2NvcGU6Vy5DbSxXb3JrZXJHbG9iYWxTY29wZTpXLkNtLEF0dHI6Vy5DUSxDbGll
bnRSZWN0OlcudzQsRE9NUmVjdDpXLnc0LE5hbWVkTm9kZU1hcDpXLnJoLE1vek5hbWVkQXR0ck1hcDpX
LnJoLElEQktleVJhbmdlOlAuaEYsU1ZHU2NyaXB0RWxlbWVudDpQLm5kLFNWR0FFbGVtZW50OlAuZDUs
U1ZHQW5pbWF0ZUVsZW1lbnQ6UC5kNSxTVkdBbmltYXRlTW90aW9uRWxlbWVudDpQLmQ1LFNWR0FuaW1h
dGVUcmFuc2Zvcm1FbGVtZW50OlAuZDUsU1ZHQW5pbWF0aW9uRWxlbWVudDpQLmQ1LFNWR0NpcmNsZUVs
ZW1lbnQ6UC5kNSxTVkdDbGlwUGF0aEVsZW1lbnQ6UC5kNSxTVkdEZWZzRWxlbWVudDpQLmQ1LFNWR0Rl
c2NFbGVtZW50OlAuZDUsU1ZHRGlzY2FyZEVsZW1lbnQ6UC5kNSxTVkdFbGxpcHNlRWxlbWVudDpQLmQ1
LFNWR0ZFQmxlbmRFbGVtZW50OlAuZDUsU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6UC5kNSxTVkdGRUNv
bXBvbmVudFRyYW5zZmVyRWxlbWVudDpQLmQ1LFNWR0ZFQ29tcG9zaXRlRWxlbWVudDpQLmQ1LFNWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50OlAuZDUsU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OlAuZDUs
U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50OlAuZDUsU1ZHRkVEaXN0YW50TGlnaHRFbGVtZW50OlAu
ZDUsU1ZHRkVGbG9vZEVsZW1lbnQ6UC5kNSxTVkdGRUZ1bmNBRWxlbWVudDpQLmQ1LFNWR0ZFRnVuY0JF
bGVtZW50OlAuZDUsU1ZHRkVGdW5jR0VsZW1lbnQ6UC5kNSxTVkdGRUZ1bmNSRWxlbWVudDpQLmQ1LFNW
R0ZFR2F1c3NpYW5CbHVyRWxlbWVudDpQLmQ1LFNWR0ZFSW1hZ2VFbGVtZW50OlAuZDUsU1ZHRkVNZXJn
ZUVsZW1lbnQ6UC5kNSxTVkdGRU1lcmdlTm9kZUVsZW1lbnQ6UC5kNSxTVkdGRU1vcnBob2xvZ3lFbGVt
ZW50OlAuZDUsU1ZHRkVPZmZzZXRFbGVtZW50OlAuZDUsU1ZHRkVQb2ludExpZ2h0RWxlbWVudDpQLmQ1
LFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6UC5kNSxTVkdGRVNwb3RMaWdodEVsZW1lbnQ6UC5k
NSxTVkdGRVRpbGVFbGVtZW50OlAuZDUsU1ZHRkVUdXJidWxlbmNlRWxlbWVudDpQLmQ1LFNWR0ZpbHRl
ckVsZW1lbnQ6UC5kNSxTVkdGb3JlaWduT2JqZWN0RWxlbWVudDpQLmQ1LFNWR0dFbGVtZW50OlAuZDUs
U1ZHR2VvbWV0cnlFbGVtZW50OlAuZDUsU1ZHR3JhcGhpY3NFbGVtZW50OlAuZDUsU1ZHSW1hZ2VFbGVt
ZW50OlAuZDUsU1ZHTGluZUVsZW1lbnQ6UC5kNSxTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6UC5kNSxT
VkdNYXJrZXJFbGVtZW50OlAuZDUsU1ZHTWFza0VsZW1lbnQ6UC5kNSxTVkdNZXRhZGF0YUVsZW1lbnQ6
UC5kNSxTVkdQYXRoRWxlbWVudDpQLmQ1LFNWR1BhdHRlcm5FbGVtZW50OlAuZDUsU1ZHUG9seWdvbkVs
ZW1lbnQ6UC5kNSxTVkdQb2x5bGluZUVsZW1lbnQ6UC5kNSxTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6
UC5kNSxTVkdSZWN0RWxlbWVudDpQLmQ1LFNWR1NldEVsZW1lbnQ6UC5kNSxTVkdTdG9wRWxlbWVudDpQ
LmQ1LFNWR1N0eWxlRWxlbWVudDpQLmQ1LFNWR1NWR0VsZW1lbnQ6UC5kNSxTVkdTd2l0Y2hFbGVtZW50
OlAuZDUsU1ZHU3ltYm9sRWxlbWVudDpQLmQ1LFNWR1RTcGFuRWxlbWVudDpQLmQ1LFNWR1RleHRDb250
ZW50RWxlbWVudDpQLmQ1LFNWR1RleHRFbGVtZW50OlAuZDUsU1ZHVGV4dFBhdGhFbGVtZW50OlAuZDUs
U1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDpQLmQ1LFNWR1RpdGxlRWxlbWVudDpQLmQ1LFNWR1VzZUVs
ZW1lbnQ6UC5kNSxTVkdWaWV3RWxlbWVudDpQLmQ1LFNWR0dyYWRpZW50RWxlbWVudDpQLmQ1LFNWR0Nv
bXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50OlAuZDUsU1ZHRkVEcm9wU2hhZG93RWxlbWVudDpQ
LmQ1LFNWR01QYXRoRWxlbWVudDpQLmQ1LFNWR0VsZW1lbnQ6UC5kNX0pCmh1bmtIZWxwZXJzLnNldE9y
VXBkYXRlTGVhZlRhZ3Moe0RPTUVycm9yOnRydWUsRE9NSW1wbGVtZW50YXRpb246dHJ1ZSxNZWRpYUVy
cm9yOnRydWUsTmF2aWdhdG9yOnRydWUsTmF2aWdhdG9yQ29uY3VycmVudEhhcmR3YXJlOnRydWUsTmF2
aWdhdG9yVXNlck1lZGlhRXJyb3I6dHJ1ZSxPdmVyY29uc3RyYWluZWRFcnJvcjp0cnVlLFBvc2l0aW9u
RXJyb3I6dHJ1ZSxSYW5nZTp0cnVlLFNRTEVycm9yOnRydWUsRGF0YVZpZXc6dHJ1ZSxBcnJheUJ1ZmZl
clZpZXc6ZmFsc2UsRmxvYXQzMkFycmF5OnRydWUsRmxvYXQ2NEFycmF5OnRydWUsSW50MTZBcnJheTp0
cnVlLEludDMyQXJyYXk6dHJ1ZSxJbnQ4QXJyYXk6dHJ1ZSxVaW50MTZBcnJheTp0cnVlLFVpbnQzMkFy
cmF5OnRydWUsVWludDhDbGFtcGVkQXJyYXk6dHJ1ZSxDYW52YXNQaXhlbEFycmF5OnRydWUsVWludDhB
cnJheTpmYWxzZSxIVE1MQXVkaW9FbGVtZW50OnRydWUsSFRNTEJSRWxlbWVudDp0cnVlLEhUTUxCdXR0
b25FbGVtZW50OnRydWUsSFRNTENhbnZhc0VsZW1lbnQ6dHJ1ZSxIVE1MQ29udGVudEVsZW1lbnQ6dHJ1
ZSxIVE1MRExpc3RFbGVtZW50OnRydWUsSFRNTERhdGFFbGVtZW50OnRydWUsSFRNTERhdGFMaXN0RWxl
bWVudDp0cnVlLEhUTUxEZXRhaWxzRWxlbWVudDp0cnVlLEhUTUxEaWFsb2dFbGVtZW50OnRydWUsSFRN
TERpdkVsZW1lbnQ6dHJ1ZSxIVE1MRW1iZWRFbGVtZW50OnRydWUsSFRNTEZpZWxkU2V0RWxlbWVudDp0
cnVlLEhUTUxIUkVsZW1lbnQ6dHJ1ZSxIVE1MSGVhZEVsZW1lbnQ6dHJ1ZSxIVE1MSGVhZGluZ0VsZW1l
bnQ6dHJ1ZSxIVE1MSHRtbEVsZW1lbnQ6dHJ1ZSxIVE1MSUZyYW1lRWxlbWVudDp0cnVlLEhUTUxJbWFn
ZUVsZW1lbnQ6dHJ1ZSxIVE1MSW5wdXRFbGVtZW50OnRydWUsSFRNTExJRWxlbWVudDp0cnVlLEhUTUxM
YWJlbEVsZW1lbnQ6dHJ1ZSxIVE1MTGVnZW5kRWxlbWVudDp0cnVlLEhUTUxMaW5rRWxlbWVudDp0cnVl
LEhUTUxNYXBFbGVtZW50OnRydWUsSFRNTE1lZGlhRWxlbWVudDp0cnVlLEhUTUxNZW51RWxlbWVudDp0
cnVlLEhUTUxNZXRhRWxlbWVudDp0cnVlLEhUTUxNZXRlckVsZW1lbnQ6dHJ1ZSxIVE1MTW9kRWxlbWVu
dDp0cnVlLEhUTUxPTGlzdEVsZW1lbnQ6dHJ1ZSxIVE1MT2JqZWN0RWxlbWVudDp0cnVlLEhUTUxPcHRH
cm91cEVsZW1lbnQ6dHJ1ZSxIVE1MT3B0aW9uRWxlbWVudDp0cnVlLEhUTUxPdXRwdXRFbGVtZW50OnRy
dWUsSFRNTFBhcmFtRWxlbWVudDp0cnVlLEhUTUxQaWN0dXJlRWxlbWVudDp0cnVlLEhUTUxQcmVFbGVt
ZW50OnRydWUsSFRNTFByb2dyZXNzRWxlbWVudDp0cnVlLEhUTUxRdW90ZUVsZW1lbnQ6dHJ1ZSxIVE1M
U2NyaXB0RWxlbWVudDp0cnVlLEhUTUxTaGFkb3dFbGVtZW50OnRydWUsSFRNTFNsb3RFbGVtZW50OnRy
dWUsSFRNTFNvdXJjZUVsZW1lbnQ6dHJ1ZSxIVE1MU3BhbkVsZW1lbnQ6dHJ1ZSxIVE1MU3R5bGVFbGVt
ZW50OnRydWUsSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQ6dHJ1ZSxIVE1MVGFibGVDZWxsRWxlbWVudDp0
cnVlLEhUTUxUYWJsZURhdGFDZWxsRWxlbWVudDp0cnVlLEhUTUxUYWJsZUhlYWRlckNlbGxFbGVtZW50
OnRydWUsSFRNTFRhYmxlQ29sRWxlbWVudDp0cnVlLEhUTUxUZXh0QXJlYUVsZW1lbnQ6dHJ1ZSxIVE1M
VGltZUVsZW1lbnQ6dHJ1ZSxIVE1MVGl0bGVFbGVtZW50OnRydWUsSFRNTFRyYWNrRWxlbWVudDp0cnVl
LEhUTUxVTGlzdEVsZW1lbnQ6dHJ1ZSxIVE1MVW5rbm93bkVsZW1lbnQ6dHJ1ZSxIVE1MVmlkZW9FbGVt
ZW50OnRydWUsSFRNTERpcmVjdG9yeUVsZW1lbnQ6dHJ1ZSxIVE1MRm9udEVsZW1lbnQ6dHJ1ZSxIVE1M
RnJhbWVFbGVtZW50OnRydWUsSFRNTEZyYW1lU2V0RWxlbWVudDp0cnVlLEhUTUxNYXJxdWVlRWxlbWVu
dDp0cnVlLEhUTUxFbGVtZW50OmZhbHNlLEhUTUxBbmNob3JFbGVtZW50OnRydWUsSFRNTEFyZWFFbGVt
ZW50OnRydWUsSFRNTEJhc2VFbGVtZW50OnRydWUsQmxvYjpmYWxzZSxIVE1MQm9keUVsZW1lbnQ6dHJ1
ZSxDREFUQVNlY3Rpb246dHJ1ZSxDaGFyYWN0ZXJEYXRhOnRydWUsQ29tbWVudDp0cnVlLFByb2Nlc3Np
bmdJbnN0cnVjdGlvbjp0cnVlLFRleHQ6dHJ1ZSxDU1NTdHlsZURlY2xhcmF0aW9uOnRydWUsTVNTdHls
ZUNTU1Byb3BlcnRpZXM6dHJ1ZSxDU1MyUHJvcGVydGllczp0cnVlLFhNTERvY3VtZW50OnRydWUsRG9j
dW1lbnQ6ZmFsc2UsRE9NRXhjZXB0aW9uOnRydWUsRE9NUmVjdFJlYWRPbmx5OmZhbHNlLERPTVRva2Vu
TGlzdDp0cnVlLEVsZW1lbnQ6ZmFsc2UsQWJvcnRQYXltZW50RXZlbnQ6dHJ1ZSxBbmltYXRpb25FdmVu
dDp0cnVlLEFuaW1hdGlvblBsYXliYWNrRXZlbnQ6dHJ1ZSxBcHBsaWNhdGlvbkNhY2hlRXJyb3JFdmVu
dDp0cnVlLEJhY2tncm91bmRGZXRjaENsaWNrRXZlbnQ6dHJ1ZSxCYWNrZ3JvdW5kRmV0Y2hFdmVudDp0
cnVlLEJhY2tncm91bmRGZXRjaEZhaWxFdmVudDp0cnVlLEJhY2tncm91bmRGZXRjaGVkRXZlbnQ6dHJ1
ZSxCZWZvcmVJbnN0YWxsUHJvbXB0RXZlbnQ6dHJ1ZSxCZWZvcmVVbmxvYWRFdmVudDp0cnVlLEJsb2JF
dmVudDp0cnVlLENhbk1ha2VQYXltZW50RXZlbnQ6dHJ1ZSxDbGlwYm9hcmRFdmVudDp0cnVlLENsb3Nl
RXZlbnQ6dHJ1ZSxDdXN0b21FdmVudDp0cnVlLERldmljZU1vdGlvbkV2ZW50OnRydWUsRGV2aWNlT3Jp
ZW50YXRpb25FdmVudDp0cnVlLEVycm9yRXZlbnQ6dHJ1ZSxFeHRlbmRhYmxlRXZlbnQ6dHJ1ZSxFeHRl
bmRhYmxlTWVzc2FnZUV2ZW50OnRydWUsRmV0Y2hFdmVudDp0cnVlLEZvbnRGYWNlU2V0TG9hZEV2ZW50
OnRydWUsRm9yZWlnbkZldGNoRXZlbnQ6dHJ1ZSxHYW1lcGFkRXZlbnQ6dHJ1ZSxIYXNoQ2hhbmdlRXZl
bnQ6dHJ1ZSxJbnN0YWxsRXZlbnQ6dHJ1ZSxNZWRpYUVuY3J5cHRlZEV2ZW50OnRydWUsTWVkaWFLZXlN
ZXNzYWdlRXZlbnQ6dHJ1ZSxNZWRpYVF1ZXJ5TGlzdEV2ZW50OnRydWUsTWVkaWFTdHJlYW1FdmVudDp0
cnVlLE1lZGlhU3RyZWFtVHJhY2tFdmVudDp0cnVlLE1lc3NhZ2VFdmVudDp0cnVlLE1JRElDb25uZWN0
aW9uRXZlbnQ6dHJ1ZSxNSURJTWVzc2FnZUV2ZW50OnRydWUsTXV0YXRpb25FdmVudDp0cnVlLE5vdGlm
aWNhdGlvbkV2ZW50OnRydWUsUGFnZVRyYW5zaXRpb25FdmVudDp0cnVlLFBheW1lbnRSZXF1ZXN0RXZl
bnQ6dHJ1ZSxQYXltZW50UmVxdWVzdFVwZGF0ZUV2ZW50OnRydWUsUG9wU3RhdGVFdmVudDp0cnVlLFBy
ZXNlbnRhdGlvbkNvbm5lY3Rpb25BdmFpbGFibGVFdmVudDp0cnVlLFByZXNlbnRhdGlvbkNvbm5lY3Rp
b25DbG9zZUV2ZW50OnRydWUsUHJvbWlzZVJlamVjdGlvbkV2ZW50OnRydWUsUHVzaEV2ZW50OnRydWUs
UlRDRGF0YUNoYW5uZWxFdmVudDp0cnVlLFJUQ0RUTUZUb25lQ2hhbmdlRXZlbnQ6dHJ1ZSxSVENQZWVy
Q29ubmVjdGlvbkljZUV2ZW50OnRydWUsUlRDVHJhY2tFdmVudDp0cnVlLFNlY3VyaXR5UG9saWN5Vmlv
bGF0aW9uRXZlbnQ6dHJ1ZSxTZW5zb3JFcnJvckV2ZW50OnRydWUsU3BlZWNoUmVjb2duaXRpb25FcnJv
cjp0cnVlLFNwZWVjaFJlY29nbml0aW9uRXZlbnQ6dHJ1ZSxTcGVlY2hTeW50aGVzaXNFdmVudDp0cnVl
LFN0b3JhZ2VFdmVudDp0cnVlLFN5bmNFdmVudDp0cnVlLFRyYWNrRXZlbnQ6dHJ1ZSxUcmFuc2l0aW9u
RXZlbnQ6dHJ1ZSxXZWJLaXRUcmFuc2l0aW9uRXZlbnQ6dHJ1ZSxWUkRldmljZUV2ZW50OnRydWUsVlJE
aXNwbGF5RXZlbnQ6dHJ1ZSxWUlNlc3Npb25FdmVudDp0cnVlLE1vam9JbnRlcmZhY2VSZXF1ZXN0RXZl
bnQ6dHJ1ZSxVU0JDb25uZWN0aW9uRXZlbnQ6dHJ1ZSxJREJWZXJzaW9uQ2hhbmdlRXZlbnQ6dHJ1ZSxB
dWRpb1Byb2Nlc3NpbmdFdmVudDp0cnVlLE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVudDp0cnVlLFdl
YkdMQ29udGV4dEV2ZW50OnRydWUsRXZlbnQ6ZmFsc2UsSW5wdXRFdmVudDpmYWxzZSxFdmVudFRhcmdl
dDpmYWxzZSxGaWxlOnRydWUsSFRNTEZvcm1FbGVtZW50OnRydWUsSGlzdG9yeTp0cnVlLEhUTUxEb2N1
bWVudDp0cnVlLFhNTEh0dHBSZXF1ZXN0OnRydWUsWE1MSHR0cFJlcXVlc3RFdmVudFRhcmdldDpmYWxz
ZSxJbWFnZURhdGE6dHJ1ZSxMb2NhdGlvbjp0cnVlLE1vdXNlRXZlbnQ6dHJ1ZSxEcmFnRXZlbnQ6dHJ1
ZSxQb2ludGVyRXZlbnQ6dHJ1ZSxXaGVlbEV2ZW50OnRydWUsRG9jdW1lbnRGcmFnbWVudDp0cnVlLFNo
YWRvd1Jvb3Q6dHJ1ZSxEb2N1bWVudFR5cGU6dHJ1ZSxOb2RlOmZhbHNlLE5vZGVMaXN0OnRydWUsUmFk
aW9Ob2RlTGlzdDp0cnVlLEhUTUxQYXJhZ3JhcGhFbGVtZW50OnRydWUsUHJvZ3Jlc3NFdmVudDp0cnVl
LFJlc291cmNlUHJvZ3Jlc3NFdmVudDp0cnVlLEhUTUxTZWxlY3RFbGVtZW50OnRydWUsSFRNTFRhYmxl
RWxlbWVudDp0cnVlLEhUTUxUYWJsZVJvd0VsZW1lbnQ6dHJ1ZSxIVE1MVGFibGVTZWN0aW9uRWxlbWVu
dDp0cnVlLEhUTUxUZW1wbGF0ZUVsZW1lbnQ6dHJ1ZSxDb21wb3NpdGlvbkV2ZW50OnRydWUsRm9jdXNF
dmVudDp0cnVlLEtleWJvYXJkRXZlbnQ6dHJ1ZSxUZXh0RXZlbnQ6dHJ1ZSxUb3VjaEV2ZW50OnRydWUs
VUlFdmVudDpmYWxzZSxXaW5kb3c6dHJ1ZSxET01XaW5kb3c6dHJ1ZSxEZWRpY2F0ZWRXb3JrZXJHbG9i
YWxTY29wZTp0cnVlLFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZTp0cnVlLFNoYXJlZFdvcmtlckdsb2Jh
bFNjb3BlOnRydWUsV29ya2VyR2xvYmFsU2NvcGU6dHJ1ZSxBdHRyOnRydWUsQ2xpZW50UmVjdDp0cnVl
LERPTVJlY3Q6dHJ1ZSxOYW1lZE5vZGVNYXA6dHJ1ZSxNb3pOYW1lZEF0dHJNYXA6dHJ1ZSxJREJLZXlS
YW5nZTp0cnVlLFNWR1NjcmlwdEVsZW1lbnQ6dHJ1ZSxTVkdBRWxlbWVudDp0cnVlLFNWR0FuaW1hdGVF
bGVtZW50OnRydWUsU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQ6dHJ1ZSxTVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudDp0cnVlLFNWR0FuaW1hdGlvbkVsZW1lbnQ6dHJ1ZSxTVkdDaXJjbGVFbGVtZW50OnRydWUs
U1ZHQ2xpcFBhdGhFbGVtZW50OnRydWUsU1ZHRGVmc0VsZW1lbnQ6dHJ1ZSxTVkdEZXNjRWxlbWVudDp0
cnVlLFNWR0Rpc2NhcmRFbGVtZW50OnRydWUsU1ZHRWxsaXBzZUVsZW1lbnQ6dHJ1ZSxTVkdGRUJsZW5k
RWxlbWVudDp0cnVlLFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OnRydWUsU1ZHRkVDb21wb25lbnRUcmFu
c2ZlckVsZW1lbnQ6dHJ1ZSxTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6dHJ1ZSxTVkdGRUNvbnZvbHZlTWF0
cml4RWxlbWVudDp0cnVlLFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDp0cnVlLFNWR0ZFRGlzcGxh
Y2VtZW50TWFwRWxlbWVudDp0cnVlLFNWR0ZFRGlzdGFudExpZ2h0RWxlbWVudDp0cnVlLFNWR0ZFRmxv
b2RFbGVtZW50OnRydWUsU1ZHRkVGdW5jQUVsZW1lbnQ6dHJ1ZSxTVkdGRUZ1bmNCRWxlbWVudDp0cnVl
LFNWR0ZFRnVuY0dFbGVtZW50OnRydWUsU1ZHRkVGdW5jUkVsZW1lbnQ6dHJ1ZSxTVkdGRUdhdXNzaWFu
Qmx1ckVsZW1lbnQ6dHJ1ZSxTVkdGRUltYWdlRWxlbWVudDp0cnVlLFNWR0ZFTWVyZ2VFbGVtZW50OnRy
dWUsU1ZHRkVNZXJnZU5vZGVFbGVtZW50OnRydWUsU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDp0cnVlLFNW
R0ZFT2Zmc2V0RWxlbWVudDp0cnVlLFNWR0ZFUG9pbnRMaWdodEVsZW1lbnQ6dHJ1ZSxTVkdGRVNwZWN1
bGFyTGlnaHRpbmdFbGVtZW50OnRydWUsU1ZHRkVTcG90TGlnaHRFbGVtZW50OnRydWUsU1ZHRkVUaWxl
RWxlbWVudDp0cnVlLFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6dHJ1ZSxTVkdGaWx0ZXJFbGVtZW50OnRy
dWUsU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6dHJ1ZSxTVkdHRWxlbWVudDp0cnVlLFNWR0dlb21ldHJ5
RWxlbWVudDp0cnVlLFNWR0dyYXBoaWNzRWxlbWVudDp0cnVlLFNWR0ltYWdlRWxlbWVudDp0cnVlLFNW
R0xpbmVFbGVtZW50OnRydWUsU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50OnRydWUsU1ZHTWFya2VyRWxl
bWVudDp0cnVlLFNWR01hc2tFbGVtZW50OnRydWUsU1ZHTWV0YWRhdGFFbGVtZW50OnRydWUsU1ZHUGF0
aEVsZW1lbnQ6dHJ1ZSxTVkdQYXR0ZXJuRWxlbWVudDp0cnVlLFNWR1BvbHlnb25FbGVtZW50OnRydWUs
U1ZHUG9seWxpbmVFbGVtZW50OnRydWUsU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50OnRydWUsU1ZHUmVj
dEVsZW1lbnQ6dHJ1ZSxTVkdTZXRFbGVtZW50OnRydWUsU1ZHU3RvcEVsZW1lbnQ6dHJ1ZSxTVkdTdHls
ZUVsZW1lbnQ6dHJ1ZSxTVkdTVkdFbGVtZW50OnRydWUsU1ZHU3dpdGNoRWxlbWVudDp0cnVlLFNWR1N5
bWJvbEVsZW1lbnQ6dHJ1ZSxTVkdUU3BhbkVsZW1lbnQ6dHJ1ZSxTVkdUZXh0Q29udGVudEVsZW1lbnQ6
dHJ1ZSxTVkdUZXh0RWxlbWVudDp0cnVlLFNWR1RleHRQYXRoRWxlbWVudDp0cnVlLFNWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQ6dHJ1ZSxTVkdUaXRsZUVsZW1lbnQ6dHJ1ZSxTVkdVc2VFbGVtZW50OnRydWUs
U1ZHVmlld0VsZW1lbnQ6dHJ1ZSxTVkdHcmFkaWVudEVsZW1lbnQ6dHJ1ZSxTVkdDb21wb25lbnRUcmFu
c2ZlckZ1bmN0aW9uRWxlbWVudDp0cnVlLFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6dHJ1ZSxTVkdNUGF0
aEVsZW1lbnQ6dHJ1ZSxTVkdFbGVtZW50OmZhbHNlfSkKSC5iMC4kbmF0aXZlU3VwZXJjbGFzc1RhZz0i
QXJyYXlCdWZmZXJWaWV3IgpILlJHLiRuYXRpdmVTdXBlcmNsYXNzVGFnPSJBcnJheUJ1ZmZlclZpZXci
CkguVlAuJG5hdGl2ZVN1cGVyY2xhc3NUYWc9IkFycmF5QnVmZmVyVmlldyIKSC5EZy4kbmF0aXZlU3Vw
ZXJjbGFzc1RhZz0iQXJyYXlCdWZmZXJWaWV3IgpILldCLiRuYXRpdmVTdXBlcmNsYXNzVGFnPSJBcnJh
eUJ1ZmZlclZpZXciCkguWkcuJG5hdGl2ZVN1cGVyY2xhc3NUYWc9IkFycmF5QnVmZmVyVmlldyIKSC5Q
Zy4kbmF0aXZlU3VwZXJjbGFzc1RhZz0iQXJyYXlCdWZmZXJWaWV3In0pKCkKY29udmVydEFsbFRvRmFz
dE9iamVjdCh3KQpjb252ZXJ0VG9GYXN0T2JqZWN0KCQpOyhmdW5jdGlvbihhKXtpZih0eXBlb2YgZG9j
dW1lbnQ9PT0idW5kZWZpbmVkIil7YShudWxsKQpyZXR1cm59aWYodHlwZW9mIGRvY3VtZW50LmN1cnJl
bnRTY3JpcHQhPSd1bmRlZmluZWQnKXthKGRvY3VtZW50LmN1cnJlbnRTY3JpcHQpCnJldHVybn12YXIg
dD1kb2N1bWVudC5zY3JpcHRzCmZ1bmN0aW9uIG9uTG9hZChiKXtmb3IodmFyIHI9MDtyPHQubGVuZ3Ro
Oysrcil0W3JdLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLG9uTG9hZCxmYWxzZSkKYShiLnRhcmdl
dCl9Zm9yKHZhciBzPTA7czx0Lmxlbmd0aDsrK3MpdFtzXS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixv
bkxvYWQsZmFsc2UpfSkoZnVuY3Rpb24oYSl7di5jdXJyZW50U2NyaXB0PWEKaWYodHlwZW9mIGRhcnRN
YWluUnVubmVyPT09ImZ1bmN0aW9uIilkYXJ0TWFpblJ1bm5lcihMLklxLFtdKQplbHNlIEwuSXEoW10p
fSl9KSgpCi8vIyBzb3VyY2VNYXBwaW5nVVJMPW1pZ3JhdGlvbi5qcy5tYXAK
''';