<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>170657</bug_id>
          
          <creation_ts>2017-04-09 14:46:04 -0700</creation_ts>
          <short_desc>[DFG] Handle String.prototype.indexOf</short_desc>
          <delta_ts>2019-01-09 00:01:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1295837</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-09 14:46:04 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297020</commentid>
    <comment_count>1</comment_count>
      <attachid>306993</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-13 10:23:59 -0700</bug_when>
    <thetext>Created attachment 306993
Patch

WIP: microbenchmark shows 1.5x improvement. But ARES-6 Babylon does not show much... I think this is because indexOf() in Babylon is long enough to amortize indexOf&apos;s setups. But in that case, we have a chance to optimize it significantly by using SSE4.2 here. Investigating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297021</commentid>
    <comment_count>2</comment_count>
      <attachid>306993</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-13 10:25:19 -0700</bug_when>
    <thetext>Comment on attachment 306993
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=306993&amp;action=review

&gt; Source/JavaScriptCore/assembler/MacroAssemblerX86Common.h:3935
&gt; +        // instead of roundss.

I think this is the reason!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297285</commentid>
    <comment_count>3</comment_count>
      <attachid>307079</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2017-04-13 20:04:41 -0700</bug_when>
    <thetext>Created attachment 307079
Patch

WIP: make more solid</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1492878</commentid>
    <comment_count>4</comment_count>
      <attachid>358678</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2019-01-09 00:01:58 -0800</bug_when>
    <thetext>Created attachment 358678
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>306993</attachid>
            <date>2017-04-13 10:23:59 -0700</date>
            <delta_ts>2017-04-13 20:04:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170657-20170414022357.patch</filename>
            <type>text/plain</type>
            <size>37268</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MzE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
Y2JmYjRjYmMxYTczOGM2ZGZmMDRiNDE2NmZjYWUxMDk1Njk5YzUyLi42NzMzOTliMzgwMTg2ODU4
OWZmYzJjYTYzNGJkYTQ2OTAxNjRmMDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1NyBAQAorMjAxNy0wNC0xMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbREZHXSBIYW5kbGUgU3RyaW5nLnByb3RvdHlwZS5pbmRleE9mCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA2NTcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHA6CisgICAgICAgICogYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uOjppc1NTRTQxUHJlc2VudCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uOjppc1NTRTQyUHJlc2VudCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRSb3VuZGluZyk6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uOjpzdXBwb3J0c1N0cmluZ0FuZFRleHRQcm9jZXNzaW5nKToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnN1cHBvcnRzQVZYKToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnVwZGF0ZUVheDFFY3hGbGFncyk6Cisg
ICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0Lmg6CisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyWDg2XzY0OjppbmRleE9mKToKKyAgICAgICAgKiBhc3NlbWJsZXIvWDg2
QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6cGNtcGVzdHJpX3JyKToK
KyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpwY21wZXN0cm1fcnIpOgorICAgICAgICAoSlND
OjpYODZBc3NlbWJsZXI6OnBjbXBpc3RyaV9ycik6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6cGNtcGlzdHJtX3JyKToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0
U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJp
bnNpY0NhbGwpOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6
OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcv
REZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAg
ICogZGZnL0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3Bh
Z2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAg
ICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklULmg6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRp
b24pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTENhcGFi
aWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICog
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9C
Mzo6Y29tcGlsZVN0cmluZ0luZGV4T2YpOgorICAgICAgICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoK
KyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1cEFyZ3VtZW50cyk6CisgICAgICAgICog
aml0L0pJVE9wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBydW50aW1lL0ludHJpbnNpYy5oOgorICAg
ICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5n
UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisKIDIwMTctMDQtMTIgIEpvc2VwaCBQZWNvcmFy
byAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICB0ZXN0MjYyOiB0ZXN0MjYyL3Rlc3Qv
YnVpbHQtaW5zL05hdGl2ZUVycm9ycy9FdmFsRXJyb3IvcHJvdG8uanMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1v
bi5jcHAKaW5kZXggMjUwYmI4ZWRjOWY0MTRhNmU4M2I3YTg0NGFhZWViN2UzMmI3ZDM5Ni4uMDE5
NjE0YmVjMjVmZjE5NDQwYjUxYjA1NTA4M2I5NGNhYjhkZDU2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1v
bi5jcHAKQEAgLTU1Miw2ICs1NTIsNyBAQCBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6U1NFMkNo
ZWNrU3RhdGUgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnNfc3NlMkNoZWNrU3RhdAogI2VuZGlm
CiAKIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpDUFVJRENoZWNrU3RhdGUgTWFjcm9Bc3NlbWJs
ZXJYODZDb21tb246OnNfc3NlNF8xQ2hlY2tTdGF0ZSA9IENQVUlEQ2hlY2tTdGF0ZTo6Tm90Q2hl
Y2tlZDsKK01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpDUFVJRENoZWNrU3RhdGUgTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb246OnNfc3NlNF8yQ2hlY2tTdGF0ZSA9IENQVUlEQ2hlY2tTdGF0ZTo6Tm90
Q2hlY2tlZDsKIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpDUFVJRENoZWNrU3RhdGUgTWFjcm9B
c3NlbWJsZXJYODZDb21tb246OnNfYXZ4Q2hlY2tTdGF0ZSA9IENQVUlEQ2hlY2tTdGF0ZTo6Tm90
Q2hlY2tlZDsKIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpDUFVJRENoZWNrU3RhdGUgTWFjcm9B
c3NlbWJsZXJYODZDb21tb246OnNfbHpjbnRDaGVja1N0YXRlID0gQ1BVSURDaGVja1N0YXRlOjpO
b3RDaGVja2VkOwogTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OkNQVUlEQ2hlY2tTdGF0ZSBNYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbjo6c19ibWkxQ2hlY2tTdGF0ZSA9IENQVUlEQ2hlY2tTdGF0ZTo6
Tm90Q2hlY2tlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAppbmRleCBiODZjN2RhMjFmZjhkY2JiMDllMjM4
N2VhMzU1ODJkMWVmMGViZmZjLi45NGFhYjczODJhNzM1YjdkZDAxNjhjOGMyMDNmNzFlZjIzMzI3
ZjFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCkBAIC0zOTAzLDE2ICszOTAzLDM2IEBAIGNsYXNzIE1h
Y3JvQXNzZW1ibGVyWDg2Q29tbW9uIDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8WDg2
QXNzZW1ibGVyLCBNYWNyCiAgICAgICAgIHJldHVybiBYODZBc3NlbWJsZXI6OnBhdGNoYWJsZUp1
bXBTaXplKCk7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50
Um91bmRpbmcoKQorICAgIHN0YXRpYyBib29sIGlzU1NFNDFQcmVzZW50KCkKICAgICB7CiAgICAg
ICAgIGlmIChzX3NzZTRfMUNoZWNrU3RhdGUgPT0gQ1BVSURDaGVja1N0YXRlOjpOb3RDaGVja2Vk
KQogICAgICAgICAgICAgdXBkYXRlRWF4MUVjeEZsYWdzKCk7CiAgICAgICAgIHJldHVybiBzX3Nz
ZTRfMUNoZWNrU3RhdGUgPT0gQ1BVSURDaGVja1N0YXRlOjpTZXQ7CiAgICAgfQogCisgICAgc3Rh
dGljIGJvb2wgaXNTU0U0MlByZXNlbnQoKQorICAgIHsKKyAgICAgICAgaWYgKHNfc3NlNF8yQ2hl
Y2tTdGF0ZSA9PSBDUFVJRENoZWNrU3RhdGU6Ok5vdENoZWNrZWQpCisgICAgICAgICAgICB1cGRh
dGVFYXgxRWN4RmxhZ3MoKTsKKyAgICAgICAgcmV0dXJuIHNfc3NlNF8yQ2hlY2tTdGF0ZSA9PSBD
UFVJRENoZWNrU3RhdGU6OlNldDsKKyAgICB9CisKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zs
b2F0aW5nUG9pbnRSb3VuZGluZygpCisgICAgeworICAgICAgICByZXR1cm4gaXNTU0U0MVByZXNl
bnQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1N0cmluZ0FuZFRleHRQcm9j
ZXNzaW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc1NTRTQyUHJlc2VudCgpOworICAgIH0K
KwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzQVZYKCkKICAgICB7Ci0gICAgICAgIC8vIEFWWCBz
dGlsbCBjYXVzZXMgbXlzdGVyaW91cyByZWdyZXNzaW9ucyBhbmQgdGhvc2UgcmVncmVzc2lvbnMg
Y2FuIGJlIG1hc3NpdmUuCisgICAgICAgIC8vIFVzaW5nIEFWWCBhZC1ob2NseSBjYXVzZXMgbWFz
c2l2ZSBwZXJmb3JtYW5jZSByZWdyZXNzaW9uLiBUaGlzIGlzIGJlY2F1c2Ugb2YKKyAgICAgICAg
Ly8gbWl4aW5nIG9mIFNTRSBhbmQgQVZYIG9wZXJhdGlvbnMuIElmIHdlIHdhbnQgdG8gdXNlIEFW
WCwgd2Ugc2hvdWxkIHNlbGVjdAorICAgICAgICAvLyBBVlggb3BlcmF0aW9ucyBpbnN0ZWFkIG9m
IFNTRSBvcGVyYXRpb25zLiBGb3IgZXhhbXBsZSwgd2Ugc2hvdWxkIHVzZSB2cm91bmRzcworICAg
ICAgICAvLyBpbnN0ZWFkIG9mIHJvdW5kc3MuCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKQEAgLTM5NDcsNiArMzk2Nyw3IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uIDog
cHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8WDg2QXNzZW1ibGVyLCBNYWNyCiAjZW5kaWYK
ICNlbmRpZiAvLyBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCiAgICAgICAgIHNfc3NlNF8xQ2hlY2tT
dGF0ZSA9IChmbGFncyAmICgxIDw8IDE5KSkgPyBDUFVJRENoZWNrU3RhdGU6OlNldCA6IENQVUlE
Q2hlY2tTdGF0ZTo6Q2xlYXI7CisgICAgICAgIHNfc3NlNF8yQ2hlY2tTdGF0ZSA9IChmbGFncyAm
ICgxIDw8IDIwKSkgPyBDUFVJRENoZWNrU3RhdGU6OlNldCA6IENQVUlEQ2hlY2tTdGF0ZTo6Q2xl
YXI7CiAgICAgICAgIHNfYXZ4Q2hlY2tTdGF0ZSA9IChmbGFncyAmICgxIDw8IDI4KSkgPyBDUFVJ
RENoZWNrU3RhdGU6OlNldCA6IENQVUlEQ2hlY2tTdGF0ZTo6Q2xlYXI7CiAgICAgfQogCkBAIC00
MjcwLDYgKzQyOTEsNyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbiA6IHB1YmxpYyBB
YnN0cmFjdE1hY3JvQXNzZW1ibGVyPFg4NkFzc2VtYmxlciwgTWFjcgogICAgICAgICBTZXQKICAg
ICB9OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBDUFVJRENoZWNrU3RhdGUgc19zc2U0
XzFDaGVja1N0YXRlOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBDUFVJRENoZWNrU3Rh
dGUgc19zc2U0XzJDaGVja1N0YXRlOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBDUFVJ
RENoZWNrU3RhdGUgc19hdnhDaGVja1N0YXRlOwogICAgIHN0YXRpYyBDUFVJRENoZWNrU3RhdGUg
c19ibWkxQ2hlY2tTdGF0ZTsKICAgICBzdGF0aWMgQ1BVSURDaGVja1N0YXRlIHNfbHpjbnRDaGVj
a1N0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlclg4Nl82NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlclg4Nl82NC5oCmluZGV4IDIzNDNlOTUwMmUxZmI3OTQ3NTQ3ZmRjZTk3NDE1NWIw
MWNmNDIzOGIuLjYzZjI5ODZjN2I2MDA3YTZiNWY5ZDQ0ZmQ3M2U0MzcyMTQ5NGM1NDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZf
NjQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVy
WDg2XzY0LmgKQEAgLTE4NDIsNiArMTg0MiwxNCBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlclg4Nl82
NCA6IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbiB7CiAgICAgICAgIG1fYXNzZW1ibGVy
LmxpbmtKdW1wKGRvbmUsIG1fYXNzZW1ibGVyLmxhYmVsKCkpOwogICAgIH0KIAorI2lmIDAKKyAg
ICB2b2lkIGluZGV4T2YoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgY2hhcmFjdGVyLCBGUFJl
Z2lzdGVySUQgc2NyYXRjaDEsIEZQUmVnaXN0ZXJJRCBzY3JhdGNoMikKKyAgICB7CisgICAgICAg
IEFTU0VSVChzcmMgPT0gWDg2UmVnaXN0ZXJzOjplYXgpOworICAgICAgICBBU1NFUlQoc3JjID09
IFg4NlJlZ2lzdGVyczo6ZWR4KTsKKyAgICB9CisjZW5kaWYKKwogICAgIHN0YXRpYyBib29sIHN1
cHBvcnRzRmxvYXRpbmdQb2ludCgpIHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMgYm9vbCBz
dXBwb3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpIHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkgeyByZXR1cm4gdHJ1ZTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKaW5kZXggMzQz
MDIyZTQzMGI2MTI5OGRkYzdmNDQ2NGNkZTI3MDEzMWFjN2E4Yi4uYjVjMGY0ZDBhZDc1MmE4NTBk
MWM3OTEyN2I5NDdmYWYwODhlNDI2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL1g4NkFzc2VtYmxlci5oCkBAIC0zMTYsOSArMzE2LDEzIEBAIGNsYXNzIFg4NkFzc2Vt
YmxlciB7CiAgICAgfSBUd29CeXRlT3Bjb2RlSUQ7CiAgICAgCiAgICAgdHlwZWRlZiBlbnVtIHsK
LSAgICAgICAgT1AzX1JPVU5EU1NfVnNzV3NzSWIgPSAweDBBLAotICAgICAgICBPUDNfUk9VTkRT
RF9Wc2RXc2RJYiA9IDB4MEIsCi0gICAgICAgIE9QM19NRkVOQ0UgICAgICAgICAgID0gMHhGMCwK
KyAgICAgICAgT1AzX1JPVU5EU1NfVnNzV3NzSWIgICA9IDB4MEEsCisgICAgICAgIE9QM19ST1VO
RFNEX1ZzZFdzZEliICAgPSAweDBCLAorICAgICAgICBPUDNfUENNUEVTVFJNX1ZkcVdkcUliID0g
MHg2MCwKKyAgICAgICAgT1AzX1BDTVBFU1RSSV9WZHFXZHFJYiA9IDB4NjEsCisgICAgICAgIE9Q
M19QQ01QSVNUUk1fVmRxV2RxSWIgPSAweDYyLAorICAgICAgICBPUDNfUENNUElTVFJJX1ZkcVdk
cUliID0gMHg2MywKKyAgICAgICAgT1AzX01GRU5DRSAgICAgICAgICAgICA9IDB4RjAsCiAgICAg
fSBUaHJlZUJ5dGVPcGNvZGVJRDsKIAogICAgIHN0cnVjdCBWZXhQcmVmaXggewpAQCAtMzE2Miw2
ICszMTY2LDM0IEBAIGNsYXNzIFg4NkFzc2VtYmxlciB7CiAgICAgICAgIG1fZm9ybWF0dGVyLnZl
eE5kc0xpZ1dpZ1R3b0J5dGVPcChQUkVfU1NFX0YzLCBPUDJfTVVMU0RfVnNkV3NkLCAoUmVnaXN0
ZXJJRClkc3QsIChSZWdpc3RlcklEKWIsIG9mZnNldCwgYmFzZSwgaW5kZXgsIHNjYWxlKTsKICAg
ICB9CiAKKyAgICB2b2lkIHBjbXBlc3RyaV9ycihYTU1SZWdpc3RlcklEIGEsIFhNTVJlZ2lzdGVy
SUQgYiwgaW50IGltbSkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NF
XzY2KTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudGhyZWVCeXRlT3AoT1AyXzNCWVRFX0VTQ0FQRV8z
QSwgT1AzX1BDTVBFU1RSSV9WZHFXZHFJYiwgKFJlZ2lzdGVySUQpYSwgKFJlZ2lzdGVySUQpYik7
CisgICAgICAgIG1fZm9ybWF0dGVyLmltbWVkaWF0ZTgoaW1tKTsKKyAgICB9CisKKyAgICB2b2lk
IHBjbXBlc3RybV9ycihYTU1SZWdpc3RlcklEIGEsIFhNTVJlZ2lzdGVySUQgYiwgaW50IGltbSkK
KyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NFXzY2KTsKKyAgICAgICAg
bV9mb3JtYXR0ZXIudGhyZWVCeXRlT3AoT1AyXzNCWVRFX0VTQ0FQRV8zQSwgT1AzX1BDTVBFU1RS
TV9WZHFXZHFJYiwgKFJlZ2lzdGVySUQpYSwgKFJlZ2lzdGVySUQpYik7CisgICAgICAgIG1fZm9y
bWF0dGVyLmltbWVkaWF0ZTgoaW1tKTsKKyAgICB9CisKKyAgICB2b2lkIHBjbXBpc3RyaV9ycihY
TU1SZWdpc3RlcklEIGEsIFhNTVJlZ2lzdGVySUQgYiwgaW50IGltbSkKKyAgICB7CisgICAgICAg
IG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NFXzY2KTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudGhy
ZWVCeXRlT3AoT1AyXzNCWVRFX0VTQ0FQRV8zQSwgT1AzX1BDTVBJU1RSSV9WZHFXZHFJYiwgKFJl
Z2lzdGVySUQpYSwgKFJlZ2lzdGVySUQpYik7CisgICAgICAgIG1fZm9ybWF0dGVyLmltbWVkaWF0
ZTgoaW1tKTsKKyAgICB9CisKKyAgICB2b2lkIHBjbXBpc3RybV9ycihYTU1SZWdpc3RlcklEIGEs
IFhNTVJlZ2lzdGVySUQgYiwgaW50IGltbSkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnBy
ZWZpeChQUkVfU1NFXzY2KTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudGhyZWVCeXRlT3AoT1AyXzNC
WVRFX0VTQ0FQRV8zQSwgT1AzX1BDTVBJU1RSTV9WZHFXZHFJYiwgKFJlZ2lzdGVySUQpYSwgKFJl
Z2lzdGVySUQpYik7CisgICAgICAgIG1fZm9ybWF0dGVyLmltbWVkaWF0ZTgoaW1tKTsKKyAgICB9
CisKICAgICB2b2lkIHBleHRyd19pcnIoaW50IHdoaWNoV29yZCwgWE1NUmVnaXN0ZXJJRCBzcmMs
IFJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBSRV9T
U0VfNjYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0
cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IGNiYTBkNmNiMDhmZmNjYTdhNDI2NTJiMWQ3
YzI2ZDc2NmVhOTJlZmUuLjhkYzQ2NjkyOTU4NGQ5MjUxNzU0YzA4NGRhN2MyNzEyMTBmMGIwMjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnBy
ZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTEwMTMsNiArMTAxMywxMSBAQCBib29sIEFic3RyYWN0
SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBj
bG9iYmVyTGltaQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIFN0cmluZ0luZGV4
T2Y6IHsKKyAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKG1fZ3JhcGgsIFNwZWNJbnQzMk9u
bHkpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIExvYWRGcm9tSlNNYXBCdWNr
ZXQ6CiAgICAgICAgIGZvck5vZGUobm9kZSkubWFrZUhlYXBUb3AoKTsKICAgICAgICAgYnJlYWs7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2Vy
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmlu
ZGV4IGJkZjQzNmYwNGZiZjYyN2QwMDA4NTk2OTQ0NTMyYmFiYWQ5NTE2YWQuLjM1YzdlMWQ5MzZl
ODA2MmUzYjZmN2FjYTdmMTM5ZWYxYzBlZWQwOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0yNTYxLDcgKzI1NjEsMjcgQEAgYm9v
bCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbChOb2RlKiBjYWxsZWUsIGludCBy
ZXN1bHRPcGVyYW5kLCBJbnRyaW4KICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihyZXN1bHRP
cGVyYW5kKSwgcmVzdWx0KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgICAgICAK
KworICAgIGNhc2UgU3RyaW5nUHJvdG90eXBlSW5kZXhPZkludHJpbnNpYzogeworICAgICAgICBp
ZiAoYXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgIT0gMiAmJiBhcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcyAhPSAzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmICht
X2lubGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4
LCBCYWRUeXBlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpbnNlcnRD
aGVja3MoKTsKKyAgICAgICAgTm9kZSogYmFzZSA9IGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1
bWVudCgwLCByZWdpc3Rlck9mZnNldCkpOworICAgICAgICBOb2RlKiBzZWFyY2hlciA9IGdldCh2
aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudCgxLCByZWdpc3Rlck9mZnNldCkpOworICAgICAgICBO
b2RlKiBwb3NpdGlvbiA9IG51bGxwdHI7CisgICAgICAgIGlmIChhcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcyA9PSAyKQorICAgICAgICAgICAgcG9zaXRpb24gPSBqc0NvbnN0YW50KGpzTnVtYmVy
KDApKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcG9zaXRpb24gPSBnZXQodmlydHVhbFJl
Z2lzdGVyRm9yQXJndW1lbnQoMiwgcmVnaXN0ZXJPZmZzZXQpKTsKKyAgICAgICAgTm9kZSogcmVz
dWx0ID0gYWRkVG9HcmFwaChTdHJpbmdJbmRleE9mLCBiYXNlLCBzZWFyY2hlciwgcG9zaXRpb24p
OworICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKHJlc3VsdE9wZXJhbmQpLCByZXN1bHQpOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBjYXNlIFJvdW5kSW50cmluc2ljOgog
ICAgIGNhc2UgRmxvb3JJbnRyaW5zaWM6CiAgICAgY2FzZSBDZWlsSW50cmluc2ljOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCA4YjMwZmMwOWU3ZTc5MWI3
NTlkOWQ2OTFmNmI3M2M3NWRiYzBmZjg4Li5kYWVhYmNjZTE4OTJjNmFkZjk2NGMxYTAwNzdiMWVi
ZDE1OTA3YjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2Ji
ZXJpemUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApA
QCAtMTQ2MCw2ICsxNDYwLDEwIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUq
IG5vZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRl
ZihQdXJlVmFsdWUobm9kZSkpOwogICAgICAgICByZXR1cm47CiAKKyAgICBjYXNlIFN0cmluZ0lu
ZGV4T2Y6CisgICAgICAgIGRlZihQdXJlVmFsdWUobm9kZSkpOworICAgICAgICByZXR1cm47CisK
ICAgICBjYXNlIE51bWJlclRvU3RyaW5nV2l0aFJhZGl4OgogICAgICAgICByZWFkKFdvcmxkKTsK
ICAgICAgICAgd3JpdGUoSGVhcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5j
cHAKaW5kZXggYjk2YTM2MmU1NzBmODg0OTAzNmMxMzhmZjNjZTYxNmU0YTI3YjdjNy4uNTljNDA0
YWY3OTMwZjdlZGJmMWM0YTQ5NmZkMzIxMGJmZDM1YmE5MyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMzA4LDYgKzMwOCw3IEBAIGJvb2wgZG9lc0dDKEdyYXBo
JiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFN0cmluZ1JlcGxhY2VSZWdFeHA6CiAgICAg
Y2FzZSBDcmVhdGVSZXN0OgogICAgIGNhc2UgVG9Mb3dlckNhc2U6CisgICAgY2FzZSBTdHJpbmdJ
bmRleE9mOgogICAgIGNhc2UgQ2FsbERPTUdldHRlcjoKICAgICBjYXNlIENhbGxET006CiAgICAg
Y2FzZSBBcnJheVNsaWNlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdGaXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFz
ZS5jcHAKaW5kZXggODIzYmRhODYzNGQ3OTJlMzVkZGIxMDUwNDJiZDI0NGJlZWJhMDU4OC4uMGZm
ZDAxMWQ2ZjQ0MjllOTRmY2Y0M2VmN2FkZDUxZWE5OWM4ZWFkNyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xNzYxLDYgKzE3NjEsMTMgQEAgY2xh
c3MgRml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogCisgICAgICAgIGNhc2UgU3RyaW5nSW5kZXhPZjogeworICAgICAgICAgICAgZml4RWRn
ZTxTdHJpbmdVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGZpeEVkZ2U8U3RyaW5n
VXNlPihub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICBmaXhFZGdlPEludDMyVXNlPihub2Rl
LT5jaGlsZDMoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCiAgICAgICAgIGNh
c2UgTnVtYmVyVG9TdHJpbmdXaXRoUmFkaXg6IHsKICAgICAgICAgICAgIGlmIChub2RlLT5jaGls
ZDEoKS0+c2hvdWxkU3BlY3VsYXRlSW50MzIoKSkKICAgICAgICAgICAgICAgICBmaXhFZGdlPElu
dDMyVXNlPihub2RlLT5jaGlsZDEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVU
eXBlLmgKaW5kZXggNmM2MmNlNmIzMDY2NTg4MWQyNTYyYTRjOWJhNTg0ZTcwNTEyMDE2Ni4uMTdh
ZDhmYzRjNjAxMTM2OGZkYTVkM2EzMjg4NDAyMjAwMWE5Nzc5NyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtNDE1LDYgKzQxNSw3IEBAIG5hbWVzcGFjZSBKU0Mg
eyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhJc05vbkVtcHR5TWFwQnVja2V0LCBOb2RlUmVz
dWx0Qm9vbGVhbikgXAogICAgIFwKICAgICBtYWNybyhUb0xvd2VyQ2FzZSwgTm9kZVJlc3VsdEpT
KSBcCisgICAgbWFjcm8oU3RyaW5nSW5kZXhPZiwgTm9kZVJlc3VsdEludDMyKSBcCiAgICAgLyog
Tm9kZXMgZm9yIERPTSBKSVQgKi9cCiAgICAgbWFjcm8oQ2hlY2tET00sIE5vZGVNdXN0R2VuZXJh
dGUpIFwKICAgICBtYWNybyhDYWxsRE9NR2V0dGVyLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdl
bmVyYXRlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJh
dGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApp
bmRleCBmMDRhY2E1YjdlZTYzNWRmODc0NzRlZTAxNGYzM2RlNjlhNzczZjBhLi4wZjYzYmFkYmVl
YWYwNmZlZGQ3ZDlkNzhhZWVhMWZkMGIzMzk0ZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTE5OTIsNiArMTk5Miw1MCBAQCBpbnQ2NF90IEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uQ29udmVydERvdWJsZVRvSW50NTIoZG91YmxlIHZhbHVlKQog
ICAgIHJldHVybiB0cnlDb252ZXJ0VG9JbnQ1Mih2YWx1ZSk7CiB9CiAKK2ludDMyX3QgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25TdHJpbmdJbmRleE9mT25lQ2hhcih2b2lkKiBwb2ludGVyLCBMQ2hh
ciBjaGFyYWN0ZXIsIGludDMyX3QgbGVuZ3RoLCBpbnQzMl90IHBvc2l0aW9uKQoreworICAgIGNv
bnN0IExDaGFyKiBjaGFyYWN0ZXJzID0gc3RhdGljX2Nhc3Q8Y29uc3QgTENoYXIqPihwb2ludGVy
KTsKKyAgICBjb25zdCBMQ2hhciogcmVzdWx0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgTENoYXIqPiht
ZW1jaHIoY2hhcmFjdGVycywgY2hhcmFjdGVyLCBsZW5ndGgpKTsKKyAgICBpZiAoIXJlc3VsdCkK
KyAgICAgICAgcmV0dXJuIC0xOworICAgIHJldHVybiAocmVzdWx0IC0gY2hhcmFjdGVycykgKyBw
b3NpdGlvbjsKK30KKworaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0cmluZ0luZGV4
T2Yodm9pZCogcG9pbnRlciwgaW50MzJfdCBsZW5ndGgsIHZvaWQqIHNlYXJjaGVyLCBpbnQzMl90
IHNlYXJjaGVyTGVuZ3RoLCBpbnQzMl90IHBvc2l0aW9uKQoreworICAgIGNvbnN0IExDaGFyKiBj
aGFyYWN0ZXJzID0gc3RhdGljX2Nhc3Q8Y29uc3QgTENoYXIqPihwb2ludGVyKTsKKyAgICBjb25z
dCBMQ2hhciogcmVzdWx0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgTENoYXIqPihtZW1tZW0oY2hhcmFj
dGVycywgbGVuZ3RoLCBzdGF0aWNfY2FzdDxjb25zdCBMQ2hhcio+KHNlYXJjaGVyKSwgc2VhcmNo
ZXJMZW5ndGgpKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHJl
dHVybiAocmVzdWx0IC0gY2hhcmFjdGVycykgKyBwb3NpdGlvbjsKK30KKworaW50MzJfdCBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblN0cmluZ0luZGV4T2ZHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywg
SlNTdHJpbmcqIHRoaXNKU1N0cmluZywgSlNTdHJpbmcqIG90aGVySlNTdHJpbmcsIGludDMyX3Qg
cG9zaXRpb24pCit7CisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJh
bWVUcmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOworCisgICAgaW50MzJfdCBsZW5ndGggPSB0aGlzSlNTdHJpbmctPmxlbmd0
aCgpOworICAgIFJFTEVBU0VfQVNTRVJUKGxlbmd0aCA+PSAwKTsKKyAgICBpZiAocG9zaXRpb24g
Pj0gMCkKKyAgICAgICAgcG9zaXRpb24gPSBzdGQ6Om1pbjxpbnQzMl90Pihwb3NpdGlvbiwgbGVu
Z3RoKTsKKyAgICBlbHNlCisgICAgICAgIHBvc2l0aW9uID0gMDsKKworICAgIGlmICh0aGlzSlNT
dHJpbmctPmxlbmd0aCgpIDwgb3RoZXJKU1N0cmluZy0+bGVuZ3RoKCkgKyBwb3NpdGlvbikKKyAg
ICAgICAgcmV0dXJuIC0xOworCisgICAgYXV0byB0aGlzVmlld1dpdGhTdHJpbmcgPSB0aGlzSlNT
dHJpbmctPnZpZXdXaXRoVW5kZXJseWluZ1N0cmluZygqZXhlYyk7CisgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgMCk7CisgICAgYXV0byBvdGhlclZpZXdXaXRoU3RyaW5nID0gb3RoZXJK
U1N0cmluZy0+dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKCpleGVjKTsKKyAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCAwKTsKKyAgICBzaXplX3QgcmVzdWx0ID0gdGhpc1ZpZXdXaXRoU3Ry
aW5nLnZpZXcuZmluZChvdGhlclZpZXdXaXRoU3RyaW5nLnZpZXcsIHBvc2l0aW9uKTsKKyAgICBp
ZiAocmVzdWx0ID09IG5vdEZvdW5kKQorICAgICAgICByZXR1cm4gLTE7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKwogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVmYXVsdEhhc0luc3Rh
bmNlKEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiB2YWx1ZSwgSlNDZWxsKiBwcm90bykgLy8gUmV0
dXJucyBqc0Jvb2xlYW4oVHJ1ZXxGYWxzZSkgb24gNjQtYml0LgogewogICAgIFZNKiB2bSA9ICZl
eGVjLT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVy
YXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAppbmRl
eCA0Mzg2YTY2NDUyYWI5NjliOTM4YjJiMGQ5NTZkN2I5ZjJkZDZmYjNmLi4wMzRlNDFhYWZiNDRi
ODY5YWQxNjY4Y2QxZDA2NTIxYzAwMzI5MGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09wZXJhdGlvbnMuaApAQCAtMjEzLDYgKzIxMywxMCBAQCB2b2lkIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uUHV0RHluYW1pY1ZhcihFeGVjU3RhdGUqLCBKU09iamVjdCogc2NvcGUsIEVuY29k
ZWRKUwogaW50NjRfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnZlcnRCb3hlZERvdWJsZVRv
SW50NTIoRW5jb2RlZEpTVmFsdWUpOwogaW50NjRfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNv
bnZlcnREb3VibGVUb0ludDUyKGRvdWJsZSk7CiAKK2ludDMyX3QgSklUX09QRVJBVElPTiBvcGVy
YXRpb25TdHJpbmdJbmRleE9mKHZvaWQqLCBpbnQzMl90LCB2b2lkKiwgaW50MzJfdCwgaW50MzJf
dCBwb3NpdGlvbik7CitpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nSW5kZXhP
Zk9uZUNoYXIodm9pZCosIExDaGFyLCBpbnQzMl90IGxlbmd0aCwgaW50MzJfdCBwb3NpdGlvbik7
CitpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nSW5kZXhPZkdlbmVyaWMoRXhl
Y1N0YXRlKiwgSlNTdHJpbmcqLCBKU1N0cmluZyosIGludDMyX3QgcG9zaXRpb24pOworCiBzaXpl
X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25EZWZhdWx0SGFzSW5zdGFuY2UoRXhlY1N0YXRlKiwg
SlNDZWxsKiB2YWx1ZSwgSlNDZWxsKiBwcm90byk7CiAKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uTmV3UmF3T2JqZWN0KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGludDMyX3QsIEJ1dHRl
cmZseSopIFdURl9JTlRFUk5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggN2M5YmM0NTMy
NWU5ZTMxYzA2NzRjMDU3YzYyN2E2ZjAxYTU1N2M5MC4uMDY2ZGZjMDRiZDdjY2FlMDAxNmFkOWVi
NDIwMWJlMzJmNzQxMmFiMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTc3Myw2ICs3NzMs
MTAgQEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2Ugewog
ICAgICAgICAgICAgc2V0UHJlZGljdGlvbihTcGVjU3RyaW5nKTsKICAgICAgICAgICAgIGJyZWFr
OwogCisgICAgICAgIGNhc2UgU3RyaW5nSW5kZXhPZjoKKyAgICAgICAgICAgIHNldFByZWRpY3Rp
b24oU3BlY0ludDMyT25seSk7CisgICAgICAgICAgICBicmVhazsKKwogICAgICAgICBjYXNlIEFy
aXRoUG93OgogICAgICAgICBjYXNlIEFyaXRoU3FydDoKICAgICAgICAgY2FzZSBBcml0aEZSb3Vu
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0
ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXgg
MzNhMzk0NzI0ZGIzZTEyNjE3MDgzNzg4NTk4MzY1ZTVkMzVlMjhiMy4uODEwYTcyNjZlMDJiOWZh
NGYwMTg5MGU3ZDFkNGIxNzg5ZDE5ZmRiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTM3OSw2ICszNzksNyBAQCBib29sIHNhZmVUb0V4ZWN1
dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAg
ICAgY2FzZSBSZXNvbHZlU2NvcGU6CiAgICAgY2FzZSBNYXBIYXNoOgogICAgIGNhc2UgVG9Mb3dl
ckNhc2U6CisgICAgY2FzZSBTdHJpbmdJbmRleE9mOgogICAgIGNhc2UgR2V0TWFwQnVja2V0Ogog
ICAgIGNhc2UgTG9hZEZyb21KU01hcEJ1Y2tldDoKICAgICBjYXNlIElzTm9uRW1wdHlNYXBCdWNr
ZXQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5k
ZXggNTkyMjFjZDBhNTIxYmY1MWFhYzVlNDAxMWQzNGUxZWM4ODhjODdmMC4uOGUzMGRjY2I5NTRl
Mjk4MGEyNzUyMTZjNWNhMDZmODU3MjEwNWU1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMTE3Nyw2ICsxMTc3LDExIEBAIGNsYXNzIFNw
ZWN1bGF0aXZlSklUIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRl
KGFyZzEsIGFyZzIpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRp
b24sIHJlc3VsdCk7CiAgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24o
Wl9KSVRPcGVyYXRpb25fRUpzc0pzc1ogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcg
YXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczKQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0
dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgICAgICByZXR1
cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CisgICAgfQogICAgIEpJ
VENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oQ19KSVRPcGVyYXRpb25fQl9FSnNzSnNzIG9w
ZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyKQogICAgIHsK
ICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIpOwpA
QCAtMTMwMSw2ICsxMzA2LDI2IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICAgICAgbV9q
aXQuc2V0dXBBcmd1bWVudHMoYXJnMSwgYXJnMik7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxs
U2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9QTGNaIG9wZXJhdGlvbiwgR1BSUmVnIHJl
c3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMykKKyAgICB7CisgICAg
ICAgIG1faml0LnNldHVwQXJndW1lbnRzKGFyZzEsIGFyZzIsIGFyZzMpOworICAgICAgICByZXR1
cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CisgICAgfQorICAgIEpJ
VENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oWl9KSVRPcGVyYXRpb25fUExjWlogb3BlcmF0
aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmcz
LCBHUFJSZWcgYXJnNCkKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzKGFyZzEs
IGFyZzIsIGFyZzMsIGFyZzQpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChv
cGVyYXRpb24sIHJlc3VsdCk7CisgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVy
YXRpb24oWl9KSVRPcGVyYXRpb25fUFpQWiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJl
ZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0KQorICAgIHsKKyAg
ICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHMoYXJnMSwgYXJnMiwgYXJnMywgYXJnNCk7CisgICAg
ICAgIHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKKyAgICB9
CisgICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9QWlBa
WiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BS
UmVnIGFyZzMsIEdQUlJlZyBhcmc0LCBHUFJSZWcgYXJnNSkKKyAgICB7CisgICAgICAgIG1faml0
LnNldHVwQXJndW1lbnRzKGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUpOworICAgICAgICBy
ZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CisgICAgfQogICAg
IEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRF9KSVRPcGVyYXRpb25fRCBvcGVyYXRp
b24sIEZQUlJlZyByZXN1bHQsIEZQUlJlZyBhcmcxKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0
dXBBcmd1bWVudHMoYXJnMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCBhYjBlNTY5ZGZmMDk5ZjkzMjgxOWViNDcwMjlkZDg1
MjI2MWYyY2RjLi4xMjUxOGU0ODFkYTAwZGM1ZWUxZGI2ZDllNzY2NTk1YmQyYzE0N2JlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAK
QEAgLTUwNTcsNiArNTA1Nyw2OCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUq
IG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAorICAgIGNhc2UgU3RyaW5nSW5kZXhPZjog
eworICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgp
KTsKKyAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgc2VhcmNoZXIodGhpcywgbm9kZS0+Y2hp
bGQyKCkpOworICAgICAgICBTcGVjdWxhdGVJbnQzMk9wZXJhbmQgcG9zaXRpb24odGhpcywgbm9k
ZS0+Y2hpbGQzKCkpOworCisgICAgICAgIEdQUlRlbXBvcmFyeSB0ZW1wKHRoaXMpOworICAgICAg
ICBHUFJUZW1wb3JhcnkgdGVtcDIodGhpcyk7CisgICAgICAgIEdQUlRlbXBvcmFyeSBsZW5ndGgo
dGhpcyk7CisgICAgICAgIEdQUlRlbXBvcmFyeSBsZW5ndGgyKHRoaXMpOworCisgICAgICAgIEdQ
UlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHNlYXJjaGVyR1BSID0g
c2VhcmNoZXIuZ3ByKCk7CisgICAgICAgIEdQUlJlZyBwb3NpdGlvbkdQUiA9IHBvc2l0aW9uLmdw
cigpOworICAgICAgICBHUFJSZWcgdGVtcEdQUiA9IHRlbXAuZ3ByKCk7CisgICAgICAgIEdQUlJl
ZyB0ZW1wMkdQUiA9IHRlbXAyLmdwcigpOworICAgICAgICBHUFJSZWcgbGVuZ3RoR1BSID0gbGVu
Z3RoLmdwcigpOworICAgICAgICBHUFJSZWcgbGVuZ3RoMkdQUiA9IGxlbmd0aDIuZ3ByKCk7CisK
KyAgICAgICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUtPmNoaWxkMSgpLCBiYXNlR1BSKTsKKyAgICAg
ICAgc3BlY3VsYXRlU3RyaW5nKG5vZGUtPmNoaWxkMigpLCBzZWFyY2hlckdQUik7CisKKyAgICAg
ICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93UGF0aDsKKworICAgICAgICBtX2ppdC5sb2Fk
UHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlR1BSLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1
ZSgpKSwgdGVtcDJHUFIpOworICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoVGVz
dFB0cihDQ2FsbEhlbHBlcnM6Olplcm8sIHRlbXAyR1BSKSk7CisgICAgICAgIHNsb3dQYXRoLmFw
cGVuZChtX2ppdC5icmFuY2hUZXN0MzIoCisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Olplcm8s
IENDYWxsSGVscGVyczo6QWRkcmVzcyh0ZW1wMkdQUiwgU3RyaW5nSW1wbDo6ZmxhZ3NPZmZzZXQo
KSksCisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihTdHJpbmdJbXBsOjpm
bGFnSXM4Qml0KCkpKSk7CisgICAgICAgIG1faml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJl
c3ModGVtcDJHUFIsIFN0cmluZ0ltcGw6Omxlbmd0aE1lbW9yeU9mZnNldCgpKSwgbGVuZ3RoR1BS
KTsKKyAgICAgICAgbV9qaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3ModGVtcDJHUFIs
IFN0cmluZ0ltcGw6OmRhdGFPZmZzZXQoKSksIHRlbXAyR1BSKTsKKyAgICAgICAgc2xvd1BhdGgu
YXBwZW5kKG1faml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6QWJvdmVPckVxdWFsLCBwb3NpdGlv
bkdQUiwgbGVuZ3RoR1BSKSk7CisgICAgICAgIG1faml0LnN1YjMyKHBvc2l0aW9uR1BSLCBsZW5n
dGhHUFIpOworICAgICAgICBtX2ppdC56ZXJvRXh0ZW5kMzJUb1B0cihwb3NpdGlvbkdQUiwgdGVt
cEdQUik7CisgICAgICAgIG1faml0LmFkZFB0cih0ZW1wR1BSLCB0ZW1wMkdQUik7CisKKyAgICAg
ICAgbV9qaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2VhcmNoZXJHUFIsIEpTU3Ry
aW5nOjpvZmZzZXRPZlZhbHVlKCkpLCB0ZW1wR1BSKTsKKyAgICAgICAgc2xvd1BhdGguYXBwZW5k
KG1faml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpaZXJvLCB0ZW1wR1BSKSk7CisgICAg
ICAgIHNsb3dQYXRoLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0MzIoCisgICAgICAgICAgICBDQ2Fs
bEhlbHBlcnM6Olplcm8sIENDYWxsSGVscGVyczo6QWRkcmVzcyh0ZW1wR1BSLCBTdHJpbmdJbXBs
OjpmbGFnc09mZnNldCgpKSwKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMy
KFN0cmluZ0ltcGw6OmZsYWdJczhCaXQoKSkpKTsKKyAgICAgICAgbV9qaXQubG9hZDMyKENDYWxs
SGVscGVyczo6QWRkcmVzcyh0ZW1wR1BSLCBTdHJpbmdJbXBsOjpsZW5ndGhNZW1vcnlPZmZzZXQo
KSksIGxlbmd0aDJHUFIpOworICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRk
cmVzcyh0ZW1wR1BSLCBTdHJpbmdJbXBsOjpkYXRhT2Zmc2V0KCkpLCB0ZW1wR1BSKTsKKyAgICAg
ICAgYXV0byBub3RPbmVDaGFyQ2FzZSA9IG1faml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90
RXF1YWwsIGxlbmd0aDJHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDEpKTsKKworICAg
ICAgICBtX2ppdC5sb2FkOChDQ2FsbEhlbHBlcnM6OkFkZHJlc3ModGVtcEdQUiksIHRlbXBHUFIp
OworICAgICAgICBmbHVzaFJlZ2lzdGVycygpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJh
dGlvblN0cmluZ0luZGV4T2ZPbmVDaGFyLCBsZW5ndGhHUFIsIHRlbXAyR1BSLCB0ZW1wR1BSLCBs
ZW5ndGhHUFIsIHBvc2l0aW9uR1BSKTsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBk
b25lOworICAgICAgICBkb25lLmFwcGVuZChtX2ppdC5qdW1wKCkpOworCisgICAgICAgIG5vdE9u
ZUNoYXJDYXNlLmxpbmsoJm1faml0KTsKKyAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICAg
ICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25TdHJpbmdJbmRleE9mLCBsZW5ndGhHUFIsIHRlbXAy
R1BSLCBsZW5ndGhHUFIsIHRlbXBHUFIsIGxlbmd0aDJHUFIsIHBvc2l0aW9uR1BSKTsKKyAgICAg
ICAgZG9uZS5hcHBlbmQobV9qaXQuanVtcCgpKTsKKworICAgICAgICBhZGRTbG93UGF0aEdlbmVy
YXRvcihzbG93UGF0aENhbGwoc2xvd1BhdGgsIHRoaXMsIG9wZXJhdGlvblN0cmluZ0luZGV4T2ZH
ZW5lcmljLCBsZW5ndGhHUFIsIGJhc2VHUFIsIHNlYXJjaGVyR1BSLCBwb3NpdGlvbkdQUikpOwor
CisgICAgICAgIGRvbmUubGluaygmbV9qaXQpOworICAgICAgICBpbnQzMlJlc3VsdChsZW5ndGhH
UFIsIG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIE51bWJlclRvU3Ry
aW5nV2l0aFJhZGl4OiB7CiAgICAgICAgIGNvbXBpbGVOdW1iZXJUb1N0cmluZ1dpdGhSYWRpeChu
b2RlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENh
cGFiaWxpdGllcy5jcHAKaW5kZXggYWQ1NGM5NDJjYjhiZmQwYjI4NGZhMWE3MTE2NTc5ZDVhOGRh
NTQxNC4uMmU2ZmQ1ODk5MTQ2M2E0MWNiOTY4NDVmOWZkNzIwYWJhMjYyYWM0YiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMjc5LDYgKzI3
OSw3IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2RlKQogICAg
IGNhc2UgRGVmaW5lRGF0YVByb3BlcnR5OgogICAgIGNhc2UgRGVmaW5lQWNjZXNzb3JQcm9wZXJ0
eToKICAgICBjYXNlIFRvTG93ZXJDYXNlOgorICAgIGNhc2UgU3RyaW5nSW5kZXhPZjoKICAgICBj
YXNlIE51bWJlclRvU3RyaW5nV2l0aFJhZGl4OgogICAgIGNhc2UgQ2hlY2tET006CiAgICAgY2Fz
ZSBDYWxsRE9NOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dl
ckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMu
Y3BwCmluZGV4IDZmYWRmMTU4NzdhOGM2Y2Y2NTg5Y2RjYmY3OTc2ZDZiYjRlZWI3MjQuLjU4NTg5
ZTQwYTg5Nzc0YmFjNjI2ZDNmNzVmZDU3MGE4NWFhYWQ1ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAgLTEwODAsNiArMTA4MCw5IEBAIGNs
YXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIGNhc2UgVG9Mb3dlckNhc2U6CiAgICAgICAgICAg
ICBjb21waWxlVG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IFN0cmluZ0luZGV4T2Y6CisgICAgICAgICAgICBjb21waWxlU3RyaW5nSW5kZXhPZigpOworICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTnVtYmVyVG9TdHJpbmdXaXRoUmFkaXg6CiAg
ICAgICAgICAgICBjb21waWxlTnVtYmVyVG9TdHJpbmdXaXRoUmFkaXgoKTsKICAgICAgICAgICAg
IGJyZWFrOwpAQCAtMTAwMTksNiArMTAwMjIsNzIgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAg
ICAgICAgc2V0SlNWYWx1ZShtX291dC5waGkocG9pbnRlclR5cGUoKSwgZmFzdFJlc3VsdCwgc2xv
d1Jlc3VsdCkpOwogICAgIH0KIAorICAgIHZvaWQgY29tcGlsZVN0cmluZ0luZGV4T2YoKQorICAg
IHsKKyAgICAgICAgTEJhc2ljQmxvY2sgc2xvd1BhdGggPSBtX291dC5uZXdCbG9jaygpOworICAg
ICAgICBMQmFzaWNCbG9jayBiYXNlTm90Um9wZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAg
IExCYXNpY0Jsb2NrIGJhc2VJczhCaXQgPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICBMQmFz
aWNCbG9jayBwb3NpdGlvbklzSW5SYW5nZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAgIExC
YXNpY0Jsb2NrIHNlYXJjaGVyTm90Um9wZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAgIExC
YXNpY0Jsb2NrIHNlYXJjaGVySXM4Qml0ID0gbV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgTEJh
c2ljQmxvY2sgc2VhcmNoZXJPbmVCeXRlID0gbV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgTEJh
c2ljQmxvY2sgZ2VuZXJpYyA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAgIExCYXNpY0Jsb2Nr
IGNvbnRpbnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisKKyAgICAgICAgTFZhbHVlIGJhc2Ug
PSBsb3dTdHJpbmcobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIExWYWx1ZSBzZWFyY2hlciA9
IGxvd1N0cmluZyhtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgTFZhbHVlIHBvc2l0aW9uID0g
bG93SW50MzIobV9ub2RlLT5jaGlsZDMoKSk7CisKKyAgICAgICAgTFZhbHVlIGJhc2VJbXBsID0g
bV9vdXQubG9hZFB0cihiYXNlLCBtX2hlYXBzLkpTU3RyaW5nX3ZhbHVlKTsKKyAgICAgICAgbV9v
dXQuYnJhbmNoKG1fb3V0LmlzWmVybzY0KGJhc2VJbXBsKSwgdW5zdXJlKHNsb3dQYXRoKSwgdW5z
dXJlKGJhc2VOb3RSb3BlKSk7CisKKyAgICAgICAgTEJhc2ljQmxvY2sgbGFzdE5leHQgPSBtX291
dC5hcHBlbmRUbyhiYXNlTm90Um9wZSwgYmFzZUlzOEJpdCk7CisgICAgICAgIG1fb3V0LmJyYW5j
aCgKKyAgICAgICAgICAgIG1fb3V0LnRlc3RJc1plcm8zMigKKyAgICAgICAgICAgICAgICBtX291
dC5sb2FkMzIoYmFzZUltcGwsIG1faGVhcHMuU3RyaW5nSW1wbF9oYXNoQW5kRmxhZ3MpLAorICAg
ICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIoU3RyaW5nSW1wbDo6ZmxhZ0lzOEJpdCgpKSks
CisgICAgICAgICAgICB1bnN1cmUoc2xvd1BhdGgpLCB1bnN1cmUoYmFzZUlzOEJpdCkpOworCisg
ICAgICAgIG1fb3V0LmFwcGVuZFRvKGJhc2VJczhCaXQsIHBvc2l0aW9uSXNJblJhbmdlKTsKKyAg
ICAgICAgTFZhbHVlIGJhc2VMZW5ndGggPSBtX291dC5sb2FkMzIoYmFzZUltcGwsIG1faGVhcHMu
U3RyaW5nSW1wbF9sZW5ndGgpOworICAgICAgICBtX291dC5icmFuY2gobV9vdXQuYWJvdmVPckVx
dWFsKHBvc2l0aW9uLCBiYXNlTGVuZ3RoKSwgdW5zdXJlKHNsb3dQYXRoKSwgdW5zdXJlKHBvc2l0
aW9uSXNJblJhbmdlKSk7CisKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8ocG9zaXRpb25Jc0luUmFu
Z2UsIHNlYXJjaGVyTm90Um9wZSk7CisgICAgICAgIExWYWx1ZSB0YXJnZXRMZW5ndGggPSBtX291
dC5zdWIoYmFzZUxlbmd0aCwgcG9zaXRpb24pOworICAgICAgICBMVmFsdWUgYmFzZUJ1ZmZlciA9
IG1fb3V0LmxvYWRQdHIoYmFzZUltcGwsIG1faGVhcHMuU3RyaW5nSW1wbF9kYXRhKTsKKyAgICAg
ICAgTFZhbHVlIHRhcmdldEJ1ZmZlciA9IG1fb3V0LmFkZChiYXNlQnVmZmVyLCBtX291dC56ZXJv
RXh0UHRyKHBvc2l0aW9uKSk7CisgICAgICAgIExWYWx1ZSBpbXBsID0gbV9vdXQubG9hZFB0cihz
ZWFyY2hlciwgbV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7CisgICAgICAgIG1fb3V0LmJyYW5jaCht
X291dC5pc1plcm82NChpbXBsKSwgdW5zdXJlKHNsb3dQYXRoKSwgdW5zdXJlKHNlYXJjaGVyTm90
Um9wZSkpOworCisgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNlYXJjaGVyTm90Um9wZSwgc2VhcmNo
ZXJJczhCaXQpOworICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAgICBtX291dC50ZXN0
SXNaZXJvMzIoCisgICAgICAgICAgICAgICAgbV9vdXQubG9hZDMyKGltcGwsIG1faGVhcHMuU3Ry
aW5nSW1wbF9oYXNoQW5kRmxhZ3MpLAorICAgICAgICAgICAgICAgIG1fb3V0LmNvbnN0SW50MzIo
U3RyaW5nSW1wbDo6ZmxhZ0lzOEJpdCgpKSksCisgICAgICAgICAgICB1bnN1cmUoc2xvd1BhdGgp
LCB1bnN1cmUoc2VhcmNoZXJJczhCaXQpKTsKKworICAgICAgICBtX291dC5hcHBlbmRUbyhzZWFy
Y2hlcklzOEJpdCwgc2VhcmNoZXJPbmVCeXRlKTsKKyAgICAgICAgTFZhbHVlIGJ1ZmZlciA9IG1f
b3V0LmxvYWRQdHIoaW1wbCwgbV9oZWFwcy5TdHJpbmdJbXBsX2RhdGEpOworICAgICAgICBMVmFs
dWUgbGVuZ3RoID0gbV9vdXQubG9hZDMyKGltcGwsIG1faGVhcHMuU3RyaW5nSW1wbF9sZW5ndGgp
OworICAgICAgICBtX291dC5icmFuY2gobV9vdXQubm90RXF1YWwobGVuZ3RoLCBtX291dC5jb25z
dEludDMyKDEpKSwgdW5zdXJlKGdlbmVyaWMpLCB1bnN1cmUoc2VhcmNoZXJPbmVCeXRlKSk7CisK
KyAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2VhcmNoZXJPbmVCeXRlLCBnZW5lcmljKTsKKyAgICAg
ICAgTFZhbHVlIGNoYXJhY3RlciA9IG1fb3V0LmxvYWQ4WmVyb0V4dDMyKGJ1ZmZlciwgbV9oZWFw
cy5jaGFyYWN0ZXJzOFswXSk7CisgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1bHQgPSBt
X291dC5hbmNob3IobV9vdXQuY2FsbChJbnQzMiwgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvblN0
cmluZ0luZGV4T2ZPbmVDaGFyKSwgdGFyZ2V0QnVmZmVyLCBjaGFyYWN0ZXIsIHRhcmdldExlbmd0
aCwgcG9zaXRpb24pKTsKKyAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworCisgICAg
ICAgIG1fb3V0LmFwcGVuZFRvKGdlbmVyaWMsIHNsb3dQYXRoKTsKKyAgICAgICAgVmFsdWVGcm9t
QmxvY2sgZ2VuZXJpY1Jlc3VsdCA9IG1fb3V0LmFuY2hvcihtX291dC5jYWxsKEludDMyLCBtX291
dC5vcGVyYXRpb24ob3BlcmF0aW9uU3RyaW5nSW5kZXhPZiksIHRhcmdldEJ1ZmZlciwgdGFyZ2V0
TGVuZ3RoLCBidWZmZXIsIGxlbmd0aCwgcG9zaXRpb24pKTsKKyAgICAgICAgbV9vdXQuanVtcChj
b250aW51YXRpb24pOworCisgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNsb3dQYXRoLCBjb250aW51
YXRpb24pOworICAgICAgICBWYWx1ZUZyb21CbG9jayBzbG93UmVzdWx0ID0gbV9vdXQuYW5jaG9y
KHZtQ2FsbChJbnQzMiwgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvblN0cmluZ0luZGV4T2ZHZW5l
cmljKSwgbV9jYWxsRnJhbWUsIGJhc2UsIHNlYXJjaGVyLCBwb3NpdGlvbikpOworICAgICAgICBt
X291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGlu
dWF0aW9uLCBsYXN0TmV4dCk7CisgICAgICAgIHNldEludDMyKG1fb3V0LnBoaShJbnQzMiwgZmFz
dFJlc3VsdCwgZ2VuZXJpY1Jlc3VsdCwgc2xvd1Jlc3VsdCkpOworICAgIH0KKwogICAgIHZvaWQg
Y29tcGlsZU51bWJlclRvU3RyaW5nV2l0aFJhZGl4KCkKICAgICB7CiAgICAgICAgIGJvb2wgdmFs
aWRSYWRpeElzR3VhcmFudGVlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvQ0Nh
bGxIZWxwZXJzLmgKaW5kZXggYWEzNzNkZTQ0Yzg0ZDVhZjI1ZTgwNWY5YTkyZDY5ZmUzMzE2OGZj
MC4uNjc1OTdhMzZjOTIyNjZiZTkwYmZlMDU2YWQ1NmI2MDUzN2EzNzU5NiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCkBAIC0yMjAyLDYgKzIyMDIsMTYgQEAgY2xh
c3MgQ0NhbGxIZWxwZXJzIDogcHVibGljIEFzc2VtYmx5SGVscGVycyB7CiAgICAgICAgIHNldHVw
VGhyZWVTdHViQXJnc0dQUjxHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OmFyZ3VtZW50
R1BSMywgR1BSSW5mbzo6YXJndW1lbnRHUFI0PihhcmcxLCBhcmczLCBhcmc0KTsKICAgICB9CiAK
KyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBBcmd1bWVudHMoR1BSUmVnIGFyZzEsIEdQUlJl
ZyBhcmcyLCBHUFJSZWcgYXJnMywgR1BSUmVnIGFyZzQpCisgICAgeworICAgICAgICBzZXR1cEZv
dXJTdHViQXJnc0dQUihHUFJJbmZvOjphcmd1bWVudEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BS
MSwgR1BSSW5mbzo6YXJndW1lbnRHUFIyLCBHUFJJbmZvOjphcmd1bWVudEdQUjMsIGFyZzEsIGFy
ZzIsIGFyZzMsIGFyZzQpOworICAgIH0KKworICAgIEFMV0FZU19JTkxJTkUgdm9pZCBzZXR1cEFy
Z3VtZW50cyhHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczLCBHUFJSZWcgYXJn
NCwgR1BSUmVnIGFyZzUpCisgICAgeworICAgICAgICBzZXR1cEZpdmVTdHViQXJnc0dQUihHUFJJ
bmZvOjphcmd1bWVudEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIyLCBHUFJJbmZvOjphcmd1bWVudEdQUjMsIEdQUkluZm86OmFyZ3VtZW50R1BSNCwgYXJn
MSwgYXJnMiwgYXJnMywgYXJnNCwgYXJnNSk7CisgICAgfQorCiAgICAgQUxXQVlTX0lOTElORSB2
b2lkIHNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZShHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIs
IEdQUlJlZyBhcmczLCBUcnVzdGVkSW1tUHRyIGFyZzQpCiAgICAgewogICAgICAgICBzZXR1cFRo
cmVlU3R1YkFyZ3NHUFI8R1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1bWVudEdQ
UjIsIEdQUkluZm86OmFyZ3VtZW50R1BSMz4oYXJnMSwgYXJnMiwgYXJnMyk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCmluZGV4IGM3YTNjOGU2MjRhZDk1ZGMyNzFk
ZTEzMmI2YzFhNTFkNTU5N2I0YzkuLmRmYjg2ZjU4ODcwOThhNjBiMDI2MDMxMDk4MmRkMzA4NDI1
MzRlOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9u
cy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCkBAIC0x
MTksNiArMTE5LDcgQEAgdHlwZWRlZiBjaGFyKiBVbnVzZWRQdHI7CiAgICAgV3M6IFdhdGNocG9p
bnRTZXQqCiAgICAgWjogaW50MzJfdAogICAgIFVpOiB1aW50MzJfdAorICAgIExjOiBMQ2hhcgog
Ki8KIAogdHlwZWRlZiBDYWxsRnJhbWUqIChKSVRfT1BFUkFUSU9OICpGX0pJVE9wZXJhdGlvbl9F
RkpaWikoRXhlY1N0YXRlKiwgQ2FsbEZyYW1lKiwgRW5jb2RlZEpTVmFsdWUsIGludDMyX3QsIGlu
dDMyX3QpOwpAQCAtMTk5LDYgKzIwMCwxMSBAQCB0eXBlZGVmIEpTQ2VsbCogKEpJVF9PUEVSQVRJ
T04gKkNfSklUT3BlcmF0aW9uX0VKSkopKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlLAogdHlw
ZWRlZiBKU0NlbGwqIChKSVRfT1BFUkFUSU9OICpDX0pJVE9wZXJhdGlvbl9FSnNjWikoRXhlY1N0
YXRlKiwgSlNTY29wZSosIGludDMyX3QpOwogdHlwZWRlZiBKU0NlbGwqIChKSVRfT1BFUkFUSU9O
ICpDX0pJVE9wZXJhdGlvbl9FSnNzU3QpKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgU3RydWN0dXJl
Kik7CiB0eXBlZGVmIEpTQ2VsbCogKEpJVF9PUEVSQVRJT04gKkNfSklUT3BlcmF0aW9uX0VKc3NK
c3MpKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwgSlNTdHJpbmcqKTsKK3R5cGVkZWYgaW50MzJfdCAo
SklUX09QRVJBVElPTiAqWl9KSVRPcGVyYXRpb25fRUpzc0pzc1opKEV4ZWNTdGF0ZSosIEpTU3Ry
aW5nKiwgSlNTdHJpbmcqLCBpbnQzMl90KTsKK3R5cGVkZWYgaW50MzJfdCAoSklUX09QRVJBVElP
TiAqWl9KSVRPcGVyYXRpb25fUExjWikodm9pZCosIExDaGFyLCBpbnQzMl90KTsKK3R5cGVkZWYg
aW50MzJfdCAoSklUX09QRVJBVElPTiAqWl9KSVRPcGVyYXRpb25fUExjWlopKHZvaWQqLCBMQ2hh
ciwgaW50MzJfdCwgaW50MzJfdCk7Cit0eXBlZGVmIGludDMyX3QgKEpJVF9PUEVSQVRJT04gKlpf
SklUT3BlcmF0aW9uX1BaUFopKHZvaWQqLCBpbnQzMl90LCB2b2lkKiwgaW50MzJfdCk7Cit0eXBl
ZGVmIGludDMyX3QgKEpJVF9PUEVSQVRJT04gKlpfSklUT3BlcmF0aW9uX1BaUFpaKSh2b2lkKiwg
aW50MzJfdCwgdm9pZCosIGludDMyX3QsIGludDMyX3QpOwogdHlwZWRlZiB1aW50cHRyX3QgKEpJ
VF9PUEVSQVRJT04gKkNfSklUT3BlcmF0aW9uX0JfRUpzc0pzcykoRXhlY1N0YXRlKiwgSlNTdHJp
bmcqLCBKU1N0cmluZyopOwogdHlwZWRlZiB1aW50cHRyX3QgKEpJVF9PUEVSQVRJT04gKkNfSklU
T3BlcmF0aW9uX1RUKShTdHJpbmdJbXBsKiwgU3RyaW5nSW1wbCopOwogdHlwZWRlZiBKU0NlbGwq
IChKSVRfT1BFUkFUSU9OICpDX0pJVE9wZXJhdGlvbl9FSnNzSnNzSnNzKShFeGVjU3RhdGUqLCBK
U1N0cmluZyosIEpTU3RyaW5nKiwgSlNTdHJpbmcqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSW50cmluc2ljLmgKaW5kZXggNzcxM2E5ZWQ0ZWM1YzY0OTRlOWUzMTNlMDI0NmM3MWU4
OTJlMjY4OC4uNTRjMzk3YmU1YjY0ZTk5ZDRhNzZjNTY4MmRhNTEwODk5MzA3MjVhMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKQEAgLTU3LDYgKzU3LDcgQEAg
ZW51bSBKU19FWFBPUlRfUFJJVkFURSBJbnRyaW5zaWMgewogICAgIFN0cmluZ1Byb3RvdHlwZVJl
cGxhY2VJbnRyaW5zaWMsCiAgICAgU3RyaW5nUHJvdG90eXBlUmVwbGFjZVJlZ0V4cEludHJpbnNp
YywKICAgICBTdHJpbmdQcm90b3R5cGVUb0xvd2VyQ2FzZUludHJpbnNpYywKKyAgICBTdHJpbmdQ
cm90b3R5cGVJbmRleE9mSW50cmluc2ljLAogICAgIE51bWJlclByb3RvdHlwZVRvU3RyaW5nSW50
cmluc2ljLAogICAgIElNdWxJbnRyaW5zaWMsCiAgICAgUmFuZG9tSW50cmluc2ljLApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKaW5kZXgg
MTFjNTZmYmQyNzBkNWJlYWI3NmM4ZWFjZTM5ODc4NGMxOWNmZjdhNS4uZDExY2YwN2E5NjlkMDZm
MDBhOGMzNTI2OWQ2YjM1MGY5ZWYzYmUzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgdm9pZCBT
dHJpbmdQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSwgSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNTdHIKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRI
T1VUX1RSQU5TSVRJT04oImNoYXJDb2RlQXQiLCBzdHJpbmdQcm90b0Z1bmNDaGFyQ29kZUF0LCBE
b250RW51bSwgMSwgQ2hhckNvZGVBdEludHJpbnNpYyk7CiAgICAgSlNDX05BVElWRV9GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04oImNvZGVQb2ludEF0Iiwgc3RyaW5nUHJvdG9GdW5jQ29kZVBv
aW50QXQsIERvbnRFbnVtLCAxKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJB
TlNJVElPTigiY29uY2F0Iiwgc3RyaW5nUHJvdG9GdW5jQ29uY2F0LCBEb250RW51bSwgMSk7Ci0g
ICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImluZGV4T2YiLCBzdHJp
bmdQcm90b0Z1bmNJbmRleE9mLCBEb250RW51bSwgMSk7CisgICAgSlNDX05BVElWRV9JTlRSSU5T
SUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJpbmRleE9mIiwgc3RyaW5nUHJvdG9GdW5j
SW5kZXhPZiwgRG9udEVudW0sIDEsIFN0cmluZ1Byb3RvdHlwZUluZGV4T2ZJbnRyaW5zaWMpOwog
ICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJsYXN0SW5kZXhPZiIs
IHN0cmluZ1Byb3RvRnVuY0xhc3RJbmRleE9mLCBEb250RW51bSwgMSk7CiAgICAgSlNDX05BVElW
RV9JTlRSSU5TSUNfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMt
PmJ1aWx0aW5OYW1lcygpLnJlcGxhY2VVc2luZ1JlZ0V4cFByaXZhdGVOYW1lKCksIHN0cmluZ1By
b3RvRnVuY1JlcGxhY2VVc2luZ1JlZ0V4cCwgRG9udEVudW0sIDIsIFN0cmluZ1Byb3RvdHlwZVJl
cGxhY2VSZWdFeHBJbnRyaW5zaWMpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9U
UkFOU0lUSU9OKHZtLnByb3BlcnR5TmFtZXMtPmJ1aWx0aW5OYW1lcygpLnJlcGxhY2VVc2luZ1N0
cmluZ1NlYXJjaFByaXZhdGVOYW1lKCksIHN0cmluZ1Byb3RvRnVuY1JlcGxhY2VVc2luZ1N0cmlu
Z1NlYXJjaCwgRG9udEVudW0sIDIpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9K
U1Rlc3RzL0NoYW5nZUxvZwppbmRleCA0YTYwMDY4YWE0NjdhMzM1OThlNjkwZTY0MmM5YWZmMTI3
ZjYwYTFkLi40NDczZWJlMDcyOWQzMjY1YWZhMGExMzdiMTI3Njk0N2FlNmE1OTdjIDEwMDY0NAot
LS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDE3LTA0LTEzICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29t
PgorCisgICAgICAgIFtERkddIEhhbmRsZSBTdHJpbmcucHJvdG90eXBlLmluZGV4T2YKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDY1NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbWljcm9iZW5jaG1h
cmtzL3N0cmluZy1pbmRleC1vZi1vbmUtY2hhci5qczogQWRkZWQuCisgICAgICAgIChpbmRleE9m
KToKKyAgICAgICAgKHN0cmluZ19hcHBlYXJlZF9oZXJlLmZvckVhY2gpOgorICAgICAgICAqIG1p
Y3JvYmVuY2htYXJrcy9zdHJpbmctaW5kZXgtb2YuanM6IEFkZGVkLgorICAgICAgICAoaW5kZXhP
Zik6CisgICAgICAgIChzdHJpbmdfYXBwZWFyZWRfaGVyZS5mb3JFYWNoKToKKwogMjAxNy0wNC0x
MiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIHRlc3Qy
NjI6IHRlc3QyNjIvdGVzdC9idWlsdC1pbnMvTmF0aXZlRXJyb3JzL0V2YWxFcnJvci9wcm90by5q
cwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvc3RyaW5nLWluZGV4LW9mLW9u
ZS1jaGFyLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvc3RyaW5nLWluZGV4LW9mLW9uZS1j
aGFyLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjAxYTQ5MDU5MGQwYzE0YWIzNDgxNGNkZWYzMjRmNDA3ODcxYTQ5
MTEKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9zdHJpbmctaW5k
ZXgtb2Ytb25lLWNoYXIuanMKQEAgLTAsMCArMSwxNyBAQAorZnVuY3Rpb24gaW5kZXhPZihzdHJp
bmcsIGNoYXJhY3RlcikKK3sKKyAgICByZXR1cm4gc3RyaW5nLmluZGV4T2YoY2hhcmFjdGVyKTsK
K30KK25vSW5saW5lKGluZGV4T2YpOworCitbCisgICAgIkhlbGxvIiwKKyAgICAiV29ybGQiLAor
ICAgICJUaGlzIGlzIGEgcGVuIiwKKyAgICAiV2hhdCBoYXBwZW5zPyIsCisgICAgIkNvY29hIiwK
KyAgICAiQ2FwcHVjY2lubyIKK10uZm9yRWFjaChmdW5jdGlvbiAoc3RyaW5nKSB7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKKyAgICAgICAgaW5kZXhPZihzdHJpbmcsICdhJyk7
Cit9KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3N0cmluZy1pbmRleC1v
Zi5qcyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3N0cmluZy1pbmRleC1vZi5qcwpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wZTUyNjI2ZGZmZDQ3MTZhZmNjMWE4OWJhNDY4OWI0NGU1MDIwNTYyCi0tLSAvZGV2L251
bGwKKysrIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvc3RyaW5nLWluZGV4LW9mLmpzCkBAIC0w
LDAgKzEsMTcgQEAKK2Z1bmN0aW9uIGluZGV4T2Yoc3RyaW5nLCBjaGFyYWN0ZXIpCit7CisgICAg
cmV0dXJuIHN0cmluZy5pbmRleE9mKGNoYXJhY3Rlcik7Cit9Citub0lubGluZShpbmRleE9mKTsK
KworWworICAgICJIZWxsbyIsCisgICAgIldvcmxkIiwKKyAgICAiVGhpcyBpcyBhIHBlbiIsCisg
ICAgIldoYXQgaGFwcGVucz8iLAorICAgICJDb2NvYSIsCisgICAgIkNhcHB1Y2Npbm8iCitdLmZv
ckVhY2goZnVuY3Rpb24gKHN0cmluZykgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyAr
K2kpCisgICAgICAgIGluZGV4T2Yoc3RyaW5nLCAnZW4nKTsKK30pOwpkaWZmIC0tZ2l0IGEvUGVy
Zm9ybWFuY2VUZXN0cy9BUkVTLTYvZ2x1ZS5qcyBiL1BlcmZvcm1hbmNlVGVzdHMvQVJFUy02L2ds
dWUuanMKaW5kZXggNzViOWY1OTMyOTM2OTQ4YzQ4OTYxNjkyMWRlNGRlMzEyYjVmMDI5YS4uZmJh
YTQ2M2IxNzU4YTA4MDE3MzU1OWI0NWU3Mjc5ZmMwMTk3Yjc2ZSAxMDA2NDQKLS0tIGEvUGVyZm9y
bWFuY2VUZXN0cy9BUkVTLTYvZ2x1ZS5qcworKysgYi9QZXJmb3JtYW5jZVRlc3RzL0FSRVMtNi9n
bHVlLmpzCkBAIC0zOCw3ICszOCw3IEBAIGZ1bmN0aW9uIHJlcG9ydFJlc3VsdCguLi5hcmdzKSB7
CiAgICAgZHJpdmVyLnJlcG9ydFJlc3VsdCguLi5hcmdzKTsKIH0KIAotZHJpdmVyLmFkZEJlbmNo
bWFyayhBaXJCZW5jaG1hcmtSdW5uZXIpOwotZHJpdmVyLmFkZEJlbmNobWFyayhCYXNpY0JlbmNo
bWFya1J1bm5lcik7CisvLyBkcml2ZXIuYWRkQmVuY2htYXJrKEFpckJlbmNobWFya1J1bm5lcik7
CisvLyBkcml2ZXIuYWRkQmVuY2htYXJrKEJhc2ljQmVuY2htYXJrUnVubmVyKTsKIGRyaXZlci5h
ZGRCZW5jaG1hcmsoQmFieWxvbkJlbmNobWFya1J1bm5lcik7CiBkcml2ZXIucmVhZHlUcmlnZ2Vy
KCk7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNl
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY4ODRhYThjODQ2ZGYwZmEwY2IxMDNiZDU3N2U3NjRjOTdh
NmU5MjkuLjI0MTE4NGQzOTc3MDc4ZDM0YmIxYjRhOGVlMjM4NzBhY2E5ZjJiZjYgMTAwNjQ0Ci0t
LSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTctMDQtMTMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0RGR10gSGFuZGxlIFN0cmluZy5wcm90b3R5
cGUuaW5kZXhPZgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcwNjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBBUkVTLTYvZ2x1ZS5qczoKKwogMjAxNy0wNC0wMyAgU2FhbSBCYXJhdGkgIDxzYmFyYXRp
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBuZXcgdGVzdCB0byBBUkVTNgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307079</attachid>
            <date>2017-04-13 20:04:41 -0700</date>
            <delta_ts>2019-01-09 00:01:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170657-20170414120439.patch</filename>
            <type>text/plain</type>
            <size>41570</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MzIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
MDc3NjExYWM0ODNiZWVhZTlmMDhkNTA0Zjg2MTc3NzAxOTgyY2YwLi4yMDIwMjU0NzUxZjQzYTUy
MmZkNzQ5ZTJhMjkxYmVkOWViYWE4NTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw1OSBAQAogMjAxNy0wNC0xMyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KIAorICAgICAgICBbREZHXSBIYW5kbGUgU3RyaW5nLnByb3RvdHlwZS5pbmRleE9mCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA2NTcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHA6CisgICAgICAgICogYXNzZW1ibGVyL01hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uLmg6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uOjppc1NTRTQxUHJlc2VudCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uOjppc1NTRTQyUHJlc2VudCk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRSb3VuZGluZyk6CisgICAgICAgIChKU0M6Ok1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uOjpzdXBwb3J0c1N0cmluZ0FuZFRleHRQcm9jZXNzaW5nKToKKyAg
ICAgICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnN1cHBvcnRzQVZYKToKKyAgICAg
ICAgKEpTQzo6TWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnVwZGF0ZUVheDFFY3hGbGFncyk6Cisg
ICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0Lmg6CisgICAgICAgIChKU0M6
Ok1hY3JvQXNzZW1ibGVyWDg2XzY0OjppbmRleE9mKToKKyAgICAgICAgKiBhc3NlbWJsZXIvWDg2
QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6cGNtcGVzdHJpX3JyKToK
KyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpwY21wZXN0cm1fcnIpOgorICAgICAgICAoSlND
OjpYODZBc3NlbWJsZXI6OnBjbXBpc3RyaV9ycik6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxl
cjo6cGNtcGlzdHJtX3JyKToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklu
bGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0
U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBh
cnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUludHJp
bnNpY0NhbGwpOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6
OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcv
REZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAgICAg
ICogZGZnL0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblByb3Bh
Z2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6CisgICAg
ICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0
aXZlSklULmg6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNhbGxPcGVyYXRp
b24pOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpT
Qzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTENhcGFi
aWxpdGllcy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICog
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OmNvbXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9C
Mzo6Y29tcGlsZVN0cmluZ0luZGV4T2YpOgorICAgICAgICAqIGppdC9DQ2FsbEhlbHBlcnMuaDoK
KyAgICAgICAgKEpTQzo6Q0NhbGxIZWxwZXJzOjpzZXR1cEFyZ3VtZW50cyk6CisgICAgICAgICog
aml0L0pJVE9wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBydW50aW1lL0ludHJpbnNpYy5oOgorICAg
ICAgICAqIHJ1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5n
UHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbik6CisKKzIwMTctMDQtMTMgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKICAgICAgICAgW0pTQ10gVXNlIHByb3BlciBpZmRl
ZiBndWFyZCBmb3IgY29kZSB1c2luZyBNYWNoaW5lQ29udGV4dAogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwODAwCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5j
cHAKaW5kZXggMjUwYmI4ZWRjOWY0MTRhNmU4M2I3YTg0NGFhZWViN2UzMmI3ZDM5Ni4uMDE5NjE0
YmVjMjVmZjE5NDQwYjUxYjA1NTA4M2I5NGNhYjhkZDU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5j
cHAKQEAgLTU1Miw2ICs1NTIsNyBAQCBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6U1NFMkNoZWNr
U3RhdGUgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OnNfc3NlMkNoZWNrU3RhdAogI2VuZGlmCiAK
IE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpDUFVJRENoZWNrU3RhdGUgTWFjcm9Bc3NlbWJsZXJY
ODZDb21tb246OnNfc3NlNF8xQ2hlY2tTdGF0ZSA9IENQVUlEQ2hlY2tTdGF0ZTo6Tm90Q2hlY2tl
ZDsKK01hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpDUFVJRENoZWNrU3RhdGUgTWFjcm9Bc3NlbWJs
ZXJYODZDb21tb246OnNfc3NlNF8yQ2hlY2tTdGF0ZSA9IENQVUlEQ2hlY2tTdGF0ZTo6Tm90Q2hl
Y2tlZDsKIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpDUFVJRENoZWNrU3RhdGUgTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb246OnNfYXZ4Q2hlY2tTdGF0ZSA9IENQVUlEQ2hlY2tTdGF0ZTo6Tm90Q2hl
Y2tlZDsKIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpDUFVJRENoZWNrU3RhdGUgTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb246OnNfbHpjbnRDaGVja1N0YXRlID0gQ1BVSURDaGVja1N0YXRlOjpOb3RD
aGVja2VkOwogTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OkNQVUlEQ2hlY2tTdGF0ZSBNYWNyb0Fz
c2VtYmxlclg4NkNvbW1vbjo6c19ibWkxQ2hlY2tTdGF0ZSA9IENQVUlEQ2hlY2tTdGF0ZTo6Tm90
Q2hlY2tlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFj
cm9Bc3NlbWJsZXJYODZDb21tb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAppbmRleCBiODZjN2RhMjFmZjhkY2JiMDllMjM4N2Vh
MzU1ODJkMWVmMGViZmZjLi45NGFhYjczODJhNzM1YjdkZDAxNjhjOGMyMDNmNzFlZjIzMzI3ZjFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1i
bGVyWDg2Q29tbW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbi5oCkBAIC0zOTAzLDE2ICszOTAzLDM2IEBAIGNsYXNzIE1hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uIDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8WDg2QXNz
ZW1ibGVyLCBNYWNyCiAgICAgICAgIHJldHVybiBYODZBc3NlbWJsZXI6OnBhdGNoYWJsZUp1bXBT
aXplKCk7CiAgICAgfQogCi0gICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91
bmRpbmcoKQorICAgIHN0YXRpYyBib29sIGlzU1NFNDFQcmVzZW50KCkKICAgICB7CiAgICAgICAg
IGlmIChzX3NzZTRfMUNoZWNrU3RhdGUgPT0gQ1BVSURDaGVja1N0YXRlOjpOb3RDaGVja2VkKQog
ICAgICAgICAgICAgdXBkYXRlRWF4MUVjeEZsYWdzKCk7CiAgICAgICAgIHJldHVybiBzX3NzZTRf
MUNoZWNrU3RhdGUgPT0gQ1BVSURDaGVja1N0YXRlOjpTZXQ7CiAgICAgfQogCisgICAgc3RhdGlj
IGJvb2wgaXNTU0U0MlByZXNlbnQoKQorICAgIHsKKyAgICAgICAgaWYgKHNfc3NlNF8yQ2hlY2tT
dGF0ZSA9PSBDUFVJRENoZWNrU3RhdGU6Ok5vdENoZWNrZWQpCisgICAgICAgICAgICB1cGRhdGVF
YXgxRWN4RmxhZ3MoKTsKKyAgICAgICAgcmV0dXJuIHNfc3NlNF8yQ2hlY2tTdGF0ZSA9PSBDUFVJ
RENoZWNrU3RhdGU6OlNldDsKKyAgICB9CisKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0
aW5nUG9pbnRSb3VuZGluZygpCisgICAgeworICAgICAgICByZXR1cm4gaXNTU0U0MVByZXNlbnQo
KTsKKyAgICB9CisKKyAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1N0cmluZ0FuZFRleHRQcm9jZXNz
aW5nKCkKKyAgICB7CisgICAgICAgIHJldHVybiBpc1NTRTQyUHJlc2VudCgpOworICAgIH0KKwog
ICAgIHN0YXRpYyBib29sIHN1cHBvcnRzQVZYKCkKICAgICB7Ci0gICAgICAgIC8vIEFWWCBzdGls
bCBjYXVzZXMgbXlzdGVyaW91cyByZWdyZXNzaW9ucyBhbmQgdGhvc2UgcmVncmVzc2lvbnMgY2Fu
IGJlIG1hc3NpdmUuCisgICAgICAgIC8vIFVzaW5nIEFWWCBhZC1ob2NseSBjYXVzZXMgbWFzc2l2
ZSBwZXJmb3JtYW5jZSByZWdyZXNzaW9uLiBUaGlzIGlzIGJlY2F1c2Ugb2YKKyAgICAgICAgLy8g
bWl4aW5nIG9mIFNTRSBhbmQgQVZYIG9wZXJhdGlvbnMuIElmIHdlIHdhbnQgdG8gdXNlIEFWWCwg
d2Ugc2hvdWxkIHNlbGVjdAorICAgICAgICAvLyBBVlggb3BlcmF0aW9ucyBpbnN0ZWFkIG9mIFNT
RSBvcGVyYXRpb25zLiBGb3IgZXhhbXBsZSwgd2Ugc2hvdWxkIHVzZSB2cm91bmRzcworICAgICAg
ICAvLyBpbnN0ZWFkIG9mIHJvdW5kc3MuCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
QEAgLTM5NDcsNiArMzk2Nyw3IEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uIDogcHVi
bGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8WDg2QXNzZW1ibGVyLCBNYWNyCiAjZW5kaWYKICNl
bmRpZiAvLyBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCiAgICAgICAgIHNfc3NlNF8xQ2hlY2tTdGF0
ZSA9IChmbGFncyAmICgxIDw8IDE5KSkgPyBDUFVJRENoZWNrU3RhdGU6OlNldCA6IENQVUlEQ2hl
Y2tTdGF0ZTo6Q2xlYXI7CisgICAgICAgIHNfc3NlNF8yQ2hlY2tTdGF0ZSA9IChmbGFncyAmICgx
IDw8IDIwKSkgPyBDUFVJRENoZWNrU3RhdGU6OlNldCA6IENQVUlEQ2hlY2tTdGF0ZTo6Q2xlYXI7
CiAgICAgICAgIHNfYXZ4Q2hlY2tTdGF0ZSA9IChmbGFncyAmICgxIDw8IDI4KSkgPyBDUFVJRENo
ZWNrU3RhdGU6OlNldCA6IENQVUlEQ2hlY2tTdGF0ZTo6Q2xlYXI7CiAgICAgfQogCkBAIC00Mjcw
LDYgKzQyOTEsNyBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbiA6IHB1YmxpYyBBYnN0
cmFjdE1hY3JvQXNzZW1ibGVyPFg4NkFzc2VtYmxlciwgTWFjcgogICAgICAgICBTZXQKICAgICB9
OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBDUFVJRENoZWNrU3RhdGUgc19zc2U0XzFD
aGVja1N0YXRlOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBDUFVJRENoZWNrU3RhdGUg
c19zc2U0XzJDaGVja1N0YXRlOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBDUFVJRENo
ZWNrU3RhdGUgc19hdnhDaGVja1N0YXRlOwogICAgIHN0YXRpYyBDUFVJRENoZWNrU3RhdGUgc19i
bWkxQ2hlY2tTdGF0ZTsKICAgICBzdGF0aWMgQ1BVSURDaGVja1N0YXRlIHNfbHpjbnRDaGVja1N0
YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fz
c2VtYmxlclg4Nl82NC5oCmluZGV4IDIzNDNlOTUwMmUxZmI3OTQ3NTQ3ZmRjZTk3NDE1NWIwMWNm
NDIzOGIuLjYzZjI5ODZjN2I2MDA3YTZiNWY5ZDQ0ZmQ3M2U0MzcyMTQ5NGM1NDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2
XzY0LmgKQEAgLTE4NDIsNiArMTg0MiwxNCBAQCBjbGFzcyBNYWNyb0Fzc2VtYmxlclg4Nl82NCA6
IHB1YmxpYyBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbiB7CiAgICAgICAgIG1fYXNzZW1ibGVyLmxp
bmtKdW1wKGRvbmUsIG1fYXNzZW1ibGVyLmxhYmVsKCkpOwogICAgIH0KIAorI2lmIDAKKyAgICB2
b2lkIGluZGV4T2YoUmVnaXN0ZXJJRCBzcmMsIFJlZ2lzdGVySUQgY2hhcmFjdGVyLCBGUFJlZ2lz
dGVySUQgc2NyYXRjaDEsIEZQUmVnaXN0ZXJJRCBzY3JhdGNoMikKKyAgICB7CisgICAgICAgIEFT
U0VSVChzcmMgPT0gWDg2UmVnaXN0ZXJzOjplYXgpOworICAgICAgICBBU1NFUlQoc3JjID09IFg4
NlJlZ2lzdGVyczo6ZWR4KTsKKyAgICB9CisjZW5kaWYKKwogICAgIHN0YXRpYyBib29sIHN1cHBv
cnRzRmxvYXRpbmdQb2ludCgpIHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMgYm9vbCBzdXBw
b3J0c0Zsb2F0aW5nUG9pbnRUcnVuY2F0ZSgpIHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMg
Ym9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKaW5kZXggMzQzMDIy
ZTQzMGI2MTI5OGRkYzdmNDQ2NGNkZTI3MDEzMWFjN2E4Yi4uYjVjMGY0ZDBhZDc1MmE4NTBkMWM3
OTEyN2I5NDdmYWYwODhlNDI2OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fz
c2VtYmxlci9YODZBc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL1g4NkFzc2VtYmxlci5oCkBAIC0zMTYsOSArMzE2LDEzIEBAIGNsYXNzIFg4NkFzc2VtYmxl
ciB7CiAgICAgfSBUd29CeXRlT3Bjb2RlSUQ7CiAgICAgCiAgICAgdHlwZWRlZiBlbnVtIHsKLSAg
ICAgICAgT1AzX1JPVU5EU1NfVnNzV3NzSWIgPSAweDBBLAotICAgICAgICBPUDNfUk9VTkRTRF9W
c2RXc2RJYiA9IDB4MEIsCi0gICAgICAgIE9QM19NRkVOQ0UgICAgICAgICAgID0gMHhGMCwKKyAg
ICAgICAgT1AzX1JPVU5EU1NfVnNzV3NzSWIgICA9IDB4MEEsCisgICAgICAgIE9QM19ST1VORFNE
X1ZzZFdzZEliICAgPSAweDBCLAorICAgICAgICBPUDNfUENNUEVTVFJNX1ZkcVdkcUliID0gMHg2
MCwKKyAgICAgICAgT1AzX1BDTVBFU1RSSV9WZHFXZHFJYiA9IDB4NjEsCisgICAgICAgIE9QM19Q
Q01QSVNUUk1fVmRxV2RxSWIgPSAweDYyLAorICAgICAgICBPUDNfUENNUElTVFJJX1ZkcVdkcUli
ID0gMHg2MywKKyAgICAgICAgT1AzX01GRU5DRSAgICAgICAgICAgICA9IDB4RjAsCiAgICAgfSBU
aHJlZUJ5dGVPcGNvZGVJRDsKIAogICAgIHN0cnVjdCBWZXhQcmVmaXggewpAQCAtMzE2Miw2ICsz
MTY2LDM0IEBAIGNsYXNzIFg4NkFzc2VtYmxlciB7CiAgICAgICAgIG1fZm9ybWF0dGVyLnZleE5k
c0xpZ1dpZ1R3b0J5dGVPcChQUkVfU1NFX0YzLCBPUDJfTVVMU0RfVnNkV3NkLCAoUmVnaXN0ZXJJ
RClkc3QsIChSZWdpc3RlcklEKWIsIG9mZnNldCwgYmFzZSwgaW5kZXgsIHNjYWxlKTsKICAgICB9
CiAKKyAgICB2b2lkIHBjbXBlc3RyaV9ycihYTU1SZWdpc3RlcklEIGEsIFhNTVJlZ2lzdGVySUQg
YiwgaW50IGltbSkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NFXzY2
KTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudGhyZWVCeXRlT3AoT1AyXzNCWVRFX0VTQ0FQRV8zQSwg
T1AzX1BDTVBFU1RSSV9WZHFXZHFJYiwgKFJlZ2lzdGVySUQpYSwgKFJlZ2lzdGVySUQpYik7Cisg
ICAgICAgIG1fZm9ybWF0dGVyLmltbWVkaWF0ZTgoaW1tKTsKKyAgICB9CisKKyAgICB2b2lkIHBj
bXBlc3RybV9ycihYTU1SZWdpc3RlcklEIGEsIFhNTVJlZ2lzdGVySUQgYiwgaW50IGltbSkKKyAg
ICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NFXzY2KTsKKyAgICAgICAgbV9m
b3JtYXR0ZXIudGhyZWVCeXRlT3AoT1AyXzNCWVRFX0VTQ0FQRV8zQSwgT1AzX1BDTVBFU1RSTV9W
ZHFXZHFJYiwgKFJlZ2lzdGVySUQpYSwgKFJlZ2lzdGVySUQpYik7CisgICAgICAgIG1fZm9ybWF0
dGVyLmltbWVkaWF0ZTgoaW1tKTsKKyAgICB9CisKKyAgICB2b2lkIHBjbXBpc3RyaV9ycihYTU1S
ZWdpc3RlcklEIGEsIFhNTVJlZ2lzdGVySUQgYiwgaW50IGltbSkKKyAgICB7CisgICAgICAgIG1f
Zm9ybWF0dGVyLnByZWZpeChQUkVfU1NFXzY2KTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudGhyZWVC
eXRlT3AoT1AyXzNCWVRFX0VTQ0FQRV8zQSwgT1AzX1BDTVBJU1RSSV9WZHFXZHFJYiwgKFJlZ2lz
dGVySUQpYSwgKFJlZ2lzdGVySUQpYik7CisgICAgICAgIG1fZm9ybWF0dGVyLmltbWVkaWF0ZTgo
aW1tKTsKKyAgICB9CisKKyAgICB2b2lkIHBjbXBpc3RybV9ycihYTU1SZWdpc3RlcklEIGEsIFhN
TVJlZ2lzdGVySUQgYiwgaW50IGltbSkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnByZWZp
eChQUkVfU1NFXzY2KTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudGhyZWVCeXRlT3AoT1AyXzNCWVRF
X0VTQ0FQRV8zQSwgT1AzX1BDTVBJU1RSTV9WZHFXZHFJYiwgKFJlZ2lzdGVySUQpYSwgKFJlZ2lz
dGVySUQpYik7CisgICAgICAgIG1fZm9ybWF0dGVyLmltbWVkaWF0ZTgoaW1tKTsKKyAgICB9CisK
ICAgICB2b2lkIHBleHRyd19pcnIoaW50IHdoaWNoV29yZCwgWE1NUmVnaXN0ZXJJRCBzcmMsIFJl
Z2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4KFBSRV9TU0Vf
NjYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdElu
dGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oCmluZGV4IGNiYTBkNmNiMDhmZmNjYTdhNDI2NTJiMWQ3YzI2
ZDc2NmVhOTJlZmUuLjhkYzQ2NjkyOTU4NGQ5MjUxNzU0YzA4NGRhN2MyNzEyMTBmMGIwMjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRl
cklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTEwMTMsNiArMTAxMywxMSBAQCBib29sIEFic3RyYWN0SW50
ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9i
YmVyTGltaQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIFN0cmluZ0luZGV4T2Y6
IHsKKyAgICAgICAgZm9yTm9kZShub2RlKS5zZXRUeXBlKG1fZ3JhcGgsIFNwZWNJbnQzMk9ubHkp
OworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIExvYWRGcm9tSlNNYXBCdWNrZXQ6
CiAgICAgICAgIGZvck5vZGUobm9kZSkubWFrZUhlYXBUb3AoKTsKICAgICAgICAgYnJlYWs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCmluZGV4
IGJkZjQzNmYwNGZiZjYyN2QwMDA4NTk2OTQ0NTMyYmFiYWQ5NTE2YWQuLjM1YzdlMWQ5MzZlODA2
MmUzYjZmN2FjYTdmMTM5ZWYxYzBlZWQwOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC0yNTYxLDcgKzI1NjEsMjcgQEAgYm9vbCBC
eXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljQ2FsbChOb2RlKiBjYWxsZWUsIGludCByZXN1
bHRPcGVyYW5kLCBJbnRyaW4KICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihyZXN1bHRPcGVy
YW5kKSwgcmVzdWx0KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgICAgICAKKwor
ICAgIGNhc2UgU3RyaW5nUHJvdG90eXBlSW5kZXhPZkludHJpbnNpYzogeworICAgICAgICBpZiAo
YXJndW1lbnRDb3VudEluY2x1ZGluZ1RoaXMgIT0gMiAmJiBhcmd1bWVudENvdW50SW5jbHVkaW5n
VGhpcyAhPSAzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChtX2lu
bGluZVN0YWNrVG9wLT5tX2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBC
YWRUeXBlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpbnNlcnRDaGVj
a3MoKTsKKyAgICAgICAgTm9kZSogYmFzZSA9IGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVu
dCgwLCByZWdpc3Rlck9mZnNldCkpOworICAgICAgICBOb2RlKiBzZWFyY2hlciA9IGdldCh2aXJ0
dWFsUmVnaXN0ZXJGb3JBcmd1bWVudCgxLCByZWdpc3Rlck9mZnNldCkpOworICAgICAgICBOb2Rl
KiBwb3NpdGlvbiA9IG51bGxwdHI7CisgICAgICAgIGlmIChhcmd1bWVudENvdW50SW5jbHVkaW5n
VGhpcyA9PSAyKQorICAgICAgICAgICAgcG9zaXRpb24gPSBqc0NvbnN0YW50KGpzTnVtYmVyKDAp
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcG9zaXRpb24gPSBnZXQodmlydHVhbFJlZ2lz
dGVyRm9yQXJndW1lbnQoMiwgcmVnaXN0ZXJPZmZzZXQpKTsKKyAgICAgICAgTm9kZSogcmVzdWx0
ID0gYWRkVG9HcmFwaChTdHJpbmdJbmRleE9mLCBiYXNlLCBzZWFyY2hlciwgcG9zaXRpb24pOwor
ICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKHJlc3VsdE9wZXJhbmQpLCByZXN1bHQpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKICAgICBjYXNlIFJvdW5kSW50cmluc2ljOgogICAg
IGNhc2UgRmxvb3JJbnRyaW5zaWM6CiAgICAgY2FzZSBDZWlsSW50cmluc2ljOgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCA4YjMwZmMwOWU3ZTc5MWI3NTlk
OWQ2OTFmNmI3M2M3NWRiYzBmZjg4Li5kYWVhYmNjZTE4OTJjNmFkZjk2NGMxYTAwNzdiMWViZDE1
OTA3YjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJp
emUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAt
MTQ2MCw2ICsxNDYwLDEwIEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5v
ZGUsIGNvbnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgICAgIGRlZihQ
dXJlVmFsdWUobm9kZSkpOwogICAgICAgICByZXR1cm47CiAKKyAgICBjYXNlIFN0cmluZ0luZGV4
T2Y6CisgICAgICAgIGRlZihQdXJlVmFsdWUobm9kZSkpOworICAgICAgICByZXR1cm47CisKICAg
ICBjYXNlIE51bWJlclRvU3RyaW5nV2l0aFJhZGl4OgogICAgICAgICByZWFkKFdvcmxkKTsKICAg
ICAgICAgd3JpdGUoSGVhcCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAK
aW5kZXggYjk2YTM2MmU1NzBmODg0OTAzNmMxMzhmZjNjZTYxNmU0YTI3YjdjNy4uNTljNDA0YWY3
OTMwZjdlZGJmMWM0YTQ5NmZkMzIxMGJmZDM1YmE5MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHRG9lc0dDLmNwcApAQCAtMzA4LDYgKzMwOCw3IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBn
cmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIFN0cmluZ1JlcGxhY2VSZWdFeHA6CiAgICAgY2Fz
ZSBDcmVhdGVSZXN0OgogICAgIGNhc2UgVG9Mb3dlckNhc2U6CisgICAgY2FzZSBTdHJpbmdJbmRl
eE9mOgogICAgIGNhc2UgQ2FsbERPTUdldHRlcjoKICAgICBjYXNlIENhbGxET006CiAgICAgY2Fz
ZSBBcnJheVNsaWNlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdG
aXh1cFBoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5j
cHAKaW5kZXggODIzYmRhODYzNGQ3OTJlMzVkZGIxMDUwNDJiZDI0NGJlZWJhMDU4OC4uMGZmZDAx
MWQ2ZjQ0MjllOTRmY2Y0M2VmN2FkZDUxZWE5OWM4ZWFkNyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0xNzYxLDYgKzE3NjEsMTMgQEAgY2xhc3Mg
Rml4dXBQaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
fQogCisgICAgICAgIGNhc2UgU3RyaW5nSW5kZXhPZjogeworICAgICAgICAgICAgZml4RWRnZTxT
dHJpbmdVc2U+KG5vZGUtPmNoaWxkMSgpKTsKKyAgICAgICAgICAgIGZpeEVkZ2U8U3RyaW5nVXNl
Pihub2RlLT5jaGlsZDIoKSk7CisgICAgICAgICAgICBmaXhFZGdlPEludDMyVXNlPihub2RlLT5j
aGlsZDMoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCiAgICAgICAgIGNhc2Ug
TnVtYmVyVG9TdHJpbmdXaXRoUmFkaXg6IHsKICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDEo
KS0+c2hvdWxkU3BlY3VsYXRlSW50MzIoKSkKICAgICAgICAgICAgICAgICBmaXhFZGdlPEludDMy
VXNlPihub2RlLT5jaGlsZDEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBl
LmgKaW5kZXggNmM2MmNlNmIzMDY2NTg4MWQyNTYyYTRjOWJhNTg0ZTcwNTEyMDE2Ni4uMTdhZDhm
YzRjNjAxMTM2OGZkYTVkM2EzMjg4NDAyMjAwMWE5Nzc5NyAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtNDE1LDYgKzQxNSw3IEBAIG5hbWVzcGFjZSBKU0MgeyBu
YW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhJc05vbkVtcHR5TWFwQnVja2V0LCBOb2RlUmVzdWx0
Qm9vbGVhbikgXAogICAgIFwKICAgICBtYWNybyhUb0xvd2VyQ2FzZSwgTm9kZVJlc3VsdEpTKSBc
CisgICAgbWFjcm8oU3RyaW5nSW5kZXhPZiwgTm9kZVJlc3VsdEludDMyKSBcCiAgICAgLyogTm9k
ZXMgZm9yIERPTSBKSVQgKi9cCiAgICAgbWFjcm8oQ2hlY2tET00sIE5vZGVNdXN0R2VuZXJhdGUp
IFwKICAgICBtYWNybyhDYWxsRE9NR2V0dGVyLCBOb2RlUmVzdWx0SlMgfCBOb2RlTXVzdEdlbmVy
YXRlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcAppbmRl
eCBmMDRhY2E1YjdlZTYzNWRmODc0NzRlZTAxNGYzM2RlNjlhNzczZjBhLi4wZjYzYmFkYmVlYWYw
NmZlZGQ3ZDlkNzhhZWVhMWZkMGIzMzk0ZjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT3BlcmF0aW9ucy5jcHAKQEAgLTE5OTIsNiArMTk5Miw1MCBAQCBpbnQ2NF90IEpJVF9P
UEVSQVRJT04gb3BlcmF0aW9uQ29udmVydERvdWJsZVRvSW50NTIoZG91YmxlIHZhbHVlKQogICAg
IHJldHVybiB0cnlDb252ZXJ0VG9JbnQ1Mih2YWx1ZSk7CiB9CiAKK2ludDMyX3QgSklUX09QRVJB
VElPTiBvcGVyYXRpb25TdHJpbmdJbmRleE9mT25lQ2hhcih2b2lkKiBwb2ludGVyLCBMQ2hhciBj
aGFyYWN0ZXIsIGludDMyX3QgbGVuZ3RoLCBpbnQzMl90IHBvc2l0aW9uKQoreworICAgIGNvbnN0
IExDaGFyKiBjaGFyYWN0ZXJzID0gc3RhdGljX2Nhc3Q8Y29uc3QgTENoYXIqPihwb2ludGVyKTsK
KyAgICBjb25zdCBMQ2hhciogcmVzdWx0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgTENoYXIqPihtZW1j
aHIoY2hhcmFjdGVycywgY2hhcmFjdGVyLCBsZW5ndGgpKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAg
ICAgICAgcmV0dXJuIC0xOworICAgIHJldHVybiAocmVzdWx0IC0gY2hhcmFjdGVycykgKyBwb3Np
dGlvbjsKK30KKworaW50MzJfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0cmluZ0luZGV4T2Yo
dm9pZCogcG9pbnRlciwgaW50MzJfdCBsZW5ndGgsIHZvaWQqIHNlYXJjaGVyLCBpbnQzMl90IHNl
YXJjaGVyTGVuZ3RoLCBpbnQzMl90IHBvc2l0aW9uKQoreworICAgIGNvbnN0IExDaGFyKiBjaGFy
YWN0ZXJzID0gc3RhdGljX2Nhc3Q8Y29uc3QgTENoYXIqPihwb2ludGVyKTsKKyAgICBjb25zdCBM
Q2hhciogcmVzdWx0ID0gc3RhdGljX2Nhc3Q8Y29uc3QgTENoYXIqPihtZW1tZW0oY2hhcmFjdGVy
cywgbGVuZ3RoLCBzdGF0aWNfY2FzdDxjb25zdCBMQ2hhcio+KHNlYXJjaGVyKSwgc2VhcmNoZXJM
ZW5ndGgpKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIHJldHVy
biAocmVzdWx0IC0gY2hhcmFjdGVycykgKyBwb3NpdGlvbjsKK30KKworaW50MzJfdCBKSVRfT1BF
UkFUSU9OIG9wZXJhdGlvblN0cmluZ0luZGV4T2ZHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgSlNT
dHJpbmcqIHRoaXNKU1N0cmluZywgSlNTdHJpbmcqIG90aGVySlNTdHJpbmcsIGludDMyX3QgcG9z
aXRpb24pCit7CisgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKKyAgICBOYXRpdmVDYWxsRnJhbWVU
cmFjZXIgdHJhY2VyKCZ2bSwgZXhlYyk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUodm0pOworCisgICAgaW50MzJfdCBsZW5ndGggPSB0aGlzSlNTdHJpbmctPmxlbmd0aCgp
OworICAgIFJFTEVBU0VfQVNTRVJUKGxlbmd0aCA+PSAwKTsKKyAgICBpZiAocG9zaXRpb24gPj0g
MCkKKyAgICAgICAgcG9zaXRpb24gPSBzdGQ6Om1pbjxpbnQzMl90Pihwb3NpdGlvbiwgbGVuZ3Ro
KTsKKyAgICBlbHNlCisgICAgICAgIHBvc2l0aW9uID0gMDsKKworICAgIGlmICh0aGlzSlNTdHJp
bmctPmxlbmd0aCgpIDwgb3RoZXJKU1N0cmluZy0+bGVuZ3RoKCkgKyBwb3NpdGlvbikKKyAgICAg
ICAgcmV0dXJuIC0xOworCisgICAgYXV0byB0aGlzVmlld1dpdGhTdHJpbmcgPSB0aGlzSlNTdHJp
bmctPnZpZXdXaXRoVW5kZXJseWluZ1N0cmluZygqZXhlYyk7CisgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgMCk7CisgICAgYXV0byBvdGhlclZpZXdXaXRoU3RyaW5nID0gb3RoZXJKU1N0
cmluZy0+dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKCpleGVjKTsKKyAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCAwKTsKKyAgICBzaXplX3QgcmVzdWx0ID0gdGhpc1ZpZXdXaXRoU3RyaW5n
LnZpZXcuZmluZChvdGhlclZpZXdXaXRoU3RyaW5nLnZpZXcsIHBvc2l0aW9uKTsKKyAgICBpZiAo
cmVzdWx0ID09IG5vdEZvdW5kKQorICAgICAgICByZXR1cm4gLTE7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKwogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRGVmYXVsdEhhc0luc3RhbmNl
KEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxsKiB2YWx1ZSwgSlNDZWxsKiBwcm90bykgLy8gUmV0dXJu
cyBqc0Jvb2xlYW4oVHJ1ZXxGYWxzZSkgb24gNjQtYml0LgogewogICAgIFZNKiB2bSA9ICZleGVj
LT52bSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAppbmRleCA0
Mzg2YTY2NDUyYWI5NjliOTM4YjJiMGQ5NTZkN2I5ZjJkZDZmYjNmLi4wMzRlNDFhYWZiNDRiODY5
YWQxNjY4Y2QxZDA2NTIxYzAwMzI5MGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuaApAQCAtMjEzLDYgKzIxMywxMCBAQCB2b2lkIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uUHV0RHluYW1pY1ZhcihFeGVjU3RhdGUqLCBKU09iamVjdCogc2NvcGUsIEVuY29kZWRK
UwogaW50NjRfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnZlcnRCb3hlZERvdWJsZVRvSW50
NTIoRW5jb2RlZEpTVmFsdWUpOwogaW50NjRfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNvbnZl
cnREb3VibGVUb0ludDUyKGRvdWJsZSk7CiAKK2ludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRp
b25TdHJpbmdJbmRleE9mKHZvaWQqLCBpbnQzMl90LCB2b2lkKiwgaW50MzJfdCwgaW50MzJfdCBw
b3NpdGlvbik7CitpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nSW5kZXhPZk9u
ZUNoYXIodm9pZCosIExDaGFyLCBpbnQzMl90IGxlbmd0aCwgaW50MzJfdCBwb3NpdGlvbik7Citp
bnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nSW5kZXhPZkdlbmVyaWMoRXhlY1N0
YXRlKiwgSlNTdHJpbmcqLCBKU1N0cmluZyosIGludDMyX3QgcG9zaXRpb24pOworCiBzaXplX3Qg
SklUX09QRVJBVElPTiBvcGVyYXRpb25EZWZhdWx0SGFzSW5zdGFuY2UoRXhlY1N0YXRlKiwgSlND
ZWxsKiB2YWx1ZSwgSlNDZWxsKiBwcm90byk7CiAKIGNoYXIqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uTmV3UmF3T2JqZWN0KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIGludDMyX3QsIEJ1dHRlcmZs
eSopIFdURl9JTlRFUk5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggN2M5YmM0NTMyNWU5
ZTMxYzA2NzRjMDU3YzYyN2E2ZjAxYTU1N2M5MC4uMDY2ZGZjMDRiZDdjY2FlMDAxNmFkOWViNDIw
MWJlMzJmNzQxMmFiMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQ
cmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTc3Myw2ICs3NzMsMTAg
QEAgY2xhc3MgUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAg
ICAgICAgICAgc2V0UHJlZGljdGlvbihTcGVjU3RyaW5nKTsKICAgICAgICAgICAgIGJyZWFrOwog
CisgICAgICAgIGNhc2UgU3RyaW5nSW5kZXhPZjoKKyAgICAgICAgICAgIHNldFByZWRpY3Rpb24o
U3BlY0ludDMyT25seSk7CisgICAgICAgICAgICBicmVhazsKKwogICAgICAgICBjYXNlIEFyaXRo
UG93OgogICAgICAgICBjYXNlIEFyaXRoU3FydDoKICAgICAgICAgY2FzZSBBcml0aEZSb3VuZDoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5kZXggMzNh
Mzk0NzI0ZGIzZTEyNjE3MDgzNzg4NTk4MzY1ZTVkMzVlMjhiMy4uODEwYTcyNjZlMDJiOWZhNGYw
MTg5MGU3ZDFkNGIxNzg5ZDE5ZmRiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTYWZlVG9FeGVjdXRlLmgKQEAgLTM3OSw2ICszNzksNyBAQCBib29sIHNhZmVUb0V4ZWN1dGUo
QWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAg
Y2FzZSBSZXNvbHZlU2NvcGU6CiAgICAgY2FzZSBNYXBIYXNoOgogICAgIGNhc2UgVG9Mb3dlckNh
c2U6CisgICAgY2FzZSBTdHJpbmdJbmRleE9mOgogICAgIGNhc2UgR2V0TWFwQnVja2V0OgogICAg
IGNhc2UgTG9hZEZyb21KU01hcEJ1Y2tldDoKICAgICBjYXNlIElzTm9uRW1wdHlNYXBCdWNrZXQ6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXgg
NTkyMjFjZDBhNTIxYmY1MWFhYzVlNDAxMWQzNGUxZWM4ODhjODdmMC4uOGUzMGRjY2I5NTRlMjk4
MGEyNzUyMTZjNWNhMDZmODU3MjEwNWU1OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtMTE3Nyw2ICsxMTc3LDExIEBAIGNsYXNzIFNwZWN1
bGF0aXZlSklUIHsKICAgICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFy
ZzEsIGFyZzIpOwogICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24s
IHJlc3VsdCk7CiAgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oWl9K
SVRPcGVyYXRpb25fRUpzc0pzc1ogb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJn
MSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczKQorICAgIHsKKyAgICAgICAgbV9qaXQuc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIsIGFyZzMpOworICAgICAgICByZXR1cm4g
YXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CisgICAgfQogICAgIEpJVENv
bXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oQ19KSVRPcGVyYXRpb25fQl9FSnNzSnNzIG9wZXJh
dGlvbiwgR1BSUmVnIHJlc3VsdCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyKQogICAgIHsKICAg
ICAgICAgbV9qaXQuc2V0dXBBcmd1bWVudHNXaXRoRXhlY1N0YXRlKGFyZzEsIGFyZzIpOwpAQCAt
MTMwMSw2ICsxMzA2LDI2IEBAIGNsYXNzIFNwZWN1bGF0aXZlSklUIHsKICAgICAgICAgbV9qaXQu
c2V0dXBBcmd1bWVudHMoYXJnMSwgYXJnMik7CiAgICAgICAgIHJldHVybiBhcHBlbmRDYWxsU2V0
UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKICAgICB9CisgICAgSklUQ29tcGlsZXI6OkNhbGwg
Y2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9QTGNaIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3Vs
dCwgR1BSUmVnIGFyZzEsIEdQUlJlZyBhcmcyLCBHUFJSZWcgYXJnMykKKyAgICB7CisgICAgICAg
IG1faml0LnNldHVwQXJndW1lbnRzKGFyZzEsIGFyZzIsIGFyZzMpOworICAgICAgICByZXR1cm4g
YXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CisgICAgfQorICAgIEpJVENv
bXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oWl9KSVRPcGVyYXRpb25fUExjWlogb3BlcmF0aW9u
LCBHUFJSZWcgcmVzdWx0LCBHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQUlJlZyBhcmczLCBH
UFJSZWcgYXJnNCkKKyAgICB7CisgICAgICAgIG1faml0LnNldHVwQXJndW1lbnRzKGFyZzEsIGFy
ZzIsIGFyZzMsIGFyZzQpOworICAgICAgICByZXR1cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVy
YXRpb24sIHJlc3VsdCk7CisgICAgfQorICAgIEpJVENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRp
b24oWl9KSVRPcGVyYXRpb25fUFpQWiBvcGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBh
cmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0KQorICAgIHsKKyAgICAg
ICAgbV9qaXQuc2V0dXBBcmd1bWVudHMoYXJnMSwgYXJnMiwgYXJnMywgYXJnNCk7CisgICAgICAg
IHJldHVybiBhcHBlbmRDYWxsU2V0UmVzdWx0KG9wZXJhdGlvbiwgcmVzdWx0KTsKKyAgICB9Cisg
ICAgSklUQ29tcGlsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbihaX0pJVE9wZXJhdGlvbl9QWlBaWiBv
cGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVn
IGFyZzMsIEdQUlJlZyBhcmc0LCBHUFJSZWcgYXJnNSkKKyAgICB7CisgICAgICAgIG1faml0LnNl
dHVwQXJndW1lbnRzKGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQsIGFyZzUpOworICAgICAgICByZXR1
cm4gYXBwZW5kQ2FsbFNldFJlc3VsdChvcGVyYXRpb24sIHJlc3VsdCk7CisgICAgfQogICAgIEpJ
VENvbXBpbGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oRF9KSVRPcGVyYXRpb25fRCBvcGVyYXRpb24s
IEZQUlJlZyByZXN1bHQsIEZQUlJlZyBhcmcxKQogICAgIHsKICAgICAgICAgbV9qaXQuc2V0dXBB
cmd1bWVudHMoYXJnMSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcAppbmRleCBhYjBlNTY5ZGZmMDk5ZjkzMjgxOWViNDcwMjlkZDg1MjI2
MWYyY2RjLi5kZWFlZDMzNWVmZTZkZDVlZDA4NWIyZTYwMWVhMmRjMjAxMzdiM2YxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAg
LTUwNTcsNiArNTA1NywxMTMgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBu
b2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIFN0cmluZ0luZGV4T2Y6IHsK
KyAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBub2RlLT5jaGlsZDEoKSk7
CisgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIHNlYXJjaGVyKHRoaXMsIG5vZGUtPmNoaWxk
MigpKTsKKyAgICAgICAgU3BlY3VsYXRlSW50MzJPcGVyYW5kIHBvc2l0aW9uKHRoaXMsIG5vZGUt
PmNoaWxkMygpKTsKKworICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcCh0aGlzKTsKKyAgICAgICAg
R1BSVGVtcG9yYXJ5IHRlbXAyKHRoaXMpOworICAgICAgICBHUFJUZW1wb3JhcnkgbGVuZ3RoKHRo
aXMpOworICAgICAgICBHUFJUZW1wb3JhcnkgbGVuZ3RoMih0aGlzKTsKKworICAgICAgICBHUFJS
ZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisgICAgICAgIEdQUlJlZyBzZWFyY2hlckdQUiA9IHNl
YXJjaGVyLmdwcigpOworICAgICAgICBHUFJSZWcgcG9zaXRpb25HUFIgPSBwb3NpdGlvbi5ncHIo
KTsKKyAgICAgICAgR1BSUmVnIHRlbXBHUFIgPSB0ZW1wLmdwcigpOworICAgICAgICBHUFJSZWcg
dGVtcDJHUFIgPSB0ZW1wMi5ncHIoKTsKKyAgICAgICAgR1BSUmVnIGxlbmd0aEdQUiA9IGxlbmd0
aC5ncHIoKTsKKyAgICAgICAgR1BSUmVnIGxlbmd0aDJHUFIgPSBsZW5ndGgyLmdwcigpOworCisg
ICAgICAgIHNwZWN1bGF0ZVN0cmluZyhub2RlLT5jaGlsZDEoKSwgYmFzZUdQUik7CisgICAgICAg
IHNwZWN1bGF0ZVN0cmluZyhub2RlLT5jaGlsZDIoKSwgc2VhcmNoZXJHUFIpOworCisgICAgICAg
IGlmIChKU1N0cmluZyogc3RyaW5nID0gbm9kZS0+Y2hpbGQyKCktPmR5bmFtaWNDYXN0Q29uc3Rh
bnQ8SlNTdHJpbmcqPigqbV9qaXQudm0oKSkpIHsKKyAgICAgICAgICAgIGNvbnN0IFN0cmluZ0lt
cGwqIGltcGwgPSBzdHJpbmctPnRyeUdldFZhbHVlSW1wbCgpOworICAgICAgICAgICAgaWYgKCFp
bXBsIHx8ICFpbXBsLT5pczhCaXQoKSkgeworICAgICAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJz
KCk7CisgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25TdHJpbmdJbmRleE9m
R2VuZXJpYywgbGVuZ3RoR1BSLCBiYXNlR1BSLCBzZWFyY2hlckdQUiwgcG9zaXRpb25HUFIpOwor
ICAgICAgICAgICAgICAgIGludDMyUmVzdWx0KGxlbmd0aEdQUiwgbm9kZSk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX2ppdC5ncmFwaCgpLmZy
ZWV6ZVN0cm9uZyhzdHJpbmcpOworCisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0
IHNsb3dQYXRoOworCisgICAgICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRk
cmVzcyhiYXNlR1BSLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSwgdGVtcDJHUFIpOworICAg
ICAgICAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJz
OjpaZXJvLCB0ZW1wMkdQUikpOworICAgICAgICAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJy
YW5jaFRlc3QzMigKKyAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Olplcm8sIENDYWxsSGVs
cGVyczo6QWRkcmVzcyh0ZW1wMkdQUiwgU3RyaW5nSW1wbDo6ZmxhZ3NPZmZzZXQoKSksCisgICAg
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoU3RyaW5nSW1wbDo6ZmxhZ0lz
OEJpdCgpKSkpOworICAgICAgICAgICAgbV9qaXQubG9hZDMyKENDYWxsSGVscGVyczo6QWRkcmVz
cyh0ZW1wMkdQUiwgU3RyaW5nSW1wbDo6bGVuZ3RoTWVtb3J5T2Zmc2V0KCkpLCBsZW5ndGhHUFIp
OworICAgICAgICAgICAgbV9qaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3ModGVtcDJH
UFIsIFN0cmluZ0ltcGw6OmRhdGFPZmZzZXQoKSksIHRlbXAyR1BSKTsKKyAgICAgICAgICAgIHNs
b3dQYXRoLmFwcGVuZChtX2ppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6OkFib3ZlT3JFcXVhbCwg
cG9zaXRpb25HUFIsIGxlbmd0aEdQUikpOworICAgICAgICAgICAgbV9qaXQuc3ViMzIocG9zaXRp
b25HUFIsIGxlbmd0aEdQUik7CisgICAgICAgICAgICBtX2ppdC56ZXJvRXh0ZW5kMzJUb1B0cihw
b3NpdGlvbkdQUiwgdGVtcEdQUik7CisgICAgICAgICAgICBtX2ppdC5hZGRQdHIodGVtcEdQUiwg
dGVtcDJHUFIpOworICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKworICAgICAgICAgICAg
aWYgKGltcGwtPmxlbmd0aCgpID09IDEpIHsKKyAgICAgICAgICAgICAgICBMQ2hhciBjaGFyYWN0
ZXIgPSAoKmltcGwpWzBdOworICAgICAgICAgICAgICAgIG1faml0Lm1vdmUoQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoY2hhcmFjdGVyKSwgdGVtcEdQUik7CisgICAgICAgICAgICAgICAgY2Fs
bE9wZXJhdGlvbihvcGVyYXRpb25TdHJpbmdJbmRleE9mT25lQ2hhciwgbGVuZ3RoR1BSLCB0ZW1w
MkdQUiwgdGVtcEdQUiwgbGVuZ3RoR1BSLCBwb3NpdGlvbkdQUik7CisKKyAgICAgICAgICAgICAg
ICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoc2xvd1BhdGgsIHRoaXMsIG9wZXJh
dGlvblN0cmluZ0luZGV4T2ZHZW5lcmljLCBsZW5ndGhHUFIsIGJhc2VHUFIsIHNlYXJjaGVyR1BS
LCBwb3NpdGlvbkdQUikpOworCisgICAgICAgICAgICAgICAgaW50MzJSZXN1bHQobGVuZ3RoR1BS
LCBub2RlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgbV9qaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihpbXBsLT5sZW5ndGgo
KSksIGxlbmd0aDJHUFIpOworICAgICAgICAgICAgbV9qaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW1QdHIoaW1wbC0+Y2hhcmFjdGVyczgoKSksIHRlbXBHUFIpOworICAgICAgICAgICAg
Y2FsbE9wZXJhdGlvbihvcGVyYXRpb25TdHJpbmdJbmRleE9mLCBsZW5ndGhHUFIsIHRlbXAyR1BS
LCBsZW5ndGhHUFIsIHRlbXBHUFIsIGxlbmd0aDJHUFIsIHBvc2l0aW9uR1BSKTsKKworICAgICAg
ICAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3Ioc2xvd1BhdGhDYWxsKHNsb3dQYXRoLCB0aGlzLCBv
cGVyYXRpb25TdHJpbmdJbmRleE9mR2VuZXJpYywgbGVuZ3RoR1BSLCBiYXNlR1BSLCBzZWFyY2hl
ckdQUiwgcG9zaXRpb25HUFIpKTsKKworICAgICAgICAgICAgaW50MzJSZXN1bHQobGVuZ3RoR1BS
LCBub2RlKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpKdW1wTGlzdCBzbG93UGF0aDsKKworICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxs
SGVscGVyczo6QWRkcmVzcyhiYXNlR1BSLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1ZSgpKSwgdGVt
cDJHUFIpOworICAgICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihDQ2Fs
bEhlbHBlcnM6Olplcm8sIHRlbXAyR1BSKSk7CisgICAgICAgIHNsb3dQYXRoLmFwcGVuZChtX2pp
dC5icmFuY2hUZXN0MzIoCisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Olplcm8sIENDYWxsSGVs
cGVyczo6QWRkcmVzcyh0ZW1wMkdQUiwgU3RyaW5nSW1wbDo6ZmxhZ3NPZmZzZXQoKSksCisgICAg
ICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihTdHJpbmdJbXBsOjpmbGFnSXM4Qml0
KCkpKSk7CisgICAgICAgIG1faml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3ModGVtcDJH
UFIsIFN0cmluZ0ltcGw6Omxlbmd0aE1lbW9yeU9mZnNldCgpKSwgbGVuZ3RoR1BSKTsKKyAgICAg
ICAgbV9qaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3ModGVtcDJHUFIsIFN0cmluZ0lt
cGw6OmRhdGFPZmZzZXQoKSksIHRlbXAyR1BSKTsKKyAgICAgICAgc2xvd1BhdGguYXBwZW5kKG1f
aml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6QWJvdmVPckVxdWFsLCBwb3NpdGlvbkdQUiwgbGVu
Z3RoR1BSKSk7CisgICAgICAgIG1faml0LnN1YjMyKHBvc2l0aW9uR1BSLCBsZW5ndGhHUFIpOwor
ICAgICAgICBtX2ppdC56ZXJvRXh0ZW5kMzJUb1B0cihwb3NpdGlvbkdQUiwgdGVtcEdQUik7Cisg
ICAgICAgIG1faml0LmFkZFB0cih0ZW1wR1BSLCB0ZW1wMkdQUik7CisKKyAgICAgICAgbV9qaXQu
bG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2VhcmNoZXJHUFIsIEpTU3RyaW5nOjpvZmZz
ZXRPZlZhbHVlKCkpLCB0ZW1wR1BSKTsKKyAgICAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJy
YW5jaFRlc3RQdHIoQ0NhbGxIZWxwZXJzOjpaZXJvLCB0ZW1wR1BSKSk7CisgICAgICAgIHNsb3dQ
YXRoLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0MzIoCisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6
Olplcm8sIENDYWxsSGVscGVyczo6QWRkcmVzcyh0ZW1wR1BSLCBTdHJpbmdJbXBsOjpmbGFnc09m
ZnNldCgpKSwKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFN0cmluZ0lt
cGw6OmZsYWdJczhCaXQoKSkpKTsKKyAgICAgICAgbV9qaXQubG9hZDMyKENDYWxsSGVscGVyczo6
QWRkcmVzcyh0ZW1wR1BSLCBTdHJpbmdJbXBsOjpsZW5ndGhNZW1vcnlPZmZzZXQoKSksIGxlbmd0
aDJHUFIpOworICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyh0ZW1w
R1BSLCBTdHJpbmdJbXBsOjpkYXRhT2Zmc2V0KCkpLCB0ZW1wR1BSKTsKKyAgICAgICAgZmx1c2hS
ZWdpc3RlcnMoKTsKKyAgICAgICAgYXV0byBub3RPbmVDaGFyQ2FzZSA9IG1faml0LmJyYW5jaDMy
KENDYWxsSGVscGVyczo6Tm90RXF1YWwsIGxlbmd0aDJHUFIsIENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTMyKDEpKTsKKworICAgICAgICBtX2ppdC5sb2FkOChDQ2FsbEhlbHBlcnM6OkFkZHJlc3Mo
dGVtcEdQUiksIHRlbXBHUFIpOworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblN0cmlu
Z0luZGV4T2ZPbmVDaGFyLCBsZW5ndGhHUFIsIHRlbXAyR1BSLCB0ZW1wR1BSLCBsZW5ndGhHUFIs
IHBvc2l0aW9uR1BSKTsKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBkb25lOworICAg
ICAgICBkb25lLmFwcGVuZChtX2ppdC5qdW1wKCkpOworCisgICAgICAgIG5vdE9uZUNoYXJDYXNl
LmxpbmsoJm1faml0KTsKKyAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRpb25TdHJpbmdJbmRl
eE9mLCBsZW5ndGhHUFIsIHRlbXAyR1BSLCBsZW5ndGhHUFIsIHRlbXBHUFIsIGxlbmd0aDJHUFIs
IHBvc2l0aW9uR1BSKTsKKyAgICAgICAgZG9uZS5hcHBlbmQobV9qaXQuanVtcCgpKTsKKworICAg
ICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihzbG93UGF0aENhbGwoc2xvd1BhdGgsIHRoaXMsIG9w
ZXJhdGlvblN0cmluZ0luZGV4T2ZHZW5lcmljLCBsZW5ndGhHUFIsIGJhc2VHUFIsIHNlYXJjaGVy
R1BSLCBwb3NpdGlvbkdQUikpOworCisgICAgICAgIGRvbmUubGluaygmbV9qaXQpOworICAgICAg
ICBpbnQzMlJlc3VsdChsZW5ndGhHUFIsIG5vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CisK
ICAgICBjYXNlIE51bWJlclRvU3RyaW5nV2l0aFJhZGl4OiB7CiAgICAgICAgIGNvbXBpbGVOdW1i
ZXJUb1N0cmluZ1dpdGhSYWRpeChub2RlKTsKICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggYWQ1NGM5NDJjYjhiZmQw
YjI4NGZhMWE3MTE2NTc5ZDVhOGRhNTQxNC4uMmU2ZmQ1ODk5MTQ2M2E0MWNiOTY4NDVmOWZkNzIw
YWJhMjYyYWM0YiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBh
YmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0
aWVzLmNwcApAQCAtMjc5LDYgKzI3OSw3IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29t
cGlsZShOb2RlKiBub2RlKQogICAgIGNhc2UgRGVmaW5lRGF0YVByb3BlcnR5OgogICAgIGNhc2Ug
RGVmaW5lQWNjZXNzb3JQcm9wZXJ0eToKICAgICBjYXNlIFRvTG93ZXJDYXNlOgorICAgIGNhc2Ug
U3RyaW5nSW5kZXhPZjoKICAgICBjYXNlIE51bWJlclRvU3RyaW5nV2l0aFJhZGl4OgogICAgIGNh
c2UgQ2hlY2tET006CiAgICAgY2FzZSBDYWxsRE9NOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCmluZGV4IDZmYWRmMTU4NzdhOGM2Y2Y2NTg5Y2RjYmY3
OTc2ZDZiYjRlZWI3MjQuLjdjODQ0MTZhOTM4ZmNkOTYxNDQwMWIwNjIxYjE0YzRmYmNlYzBjMTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKQEAg
LTEwODAsNiArMTA4MCw5IEBAIGNsYXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIGNhc2UgVG9M
b3dlckNhc2U6CiAgICAgICAgICAgICBjb21waWxlVG9Mb3dlckNhc2UoKTsKICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICBjYXNlIFN0cmluZ0luZGV4T2Y6CisgICAgICAgICAgICBjb21waWxl
U3RyaW5nSW5kZXhPZigpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTnVtYmVy
VG9TdHJpbmdXaXRoUmFkaXg6CiAgICAgICAgICAgICBjb21waWxlTnVtYmVyVG9TdHJpbmdXaXRo
UmFkaXgoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTAwMTksNiArMTAwMjIsMTE1IEBAIGNs
YXNzIExvd2VyREZHVG9CMyB7CiAgICAgICAgIHNldEpTVmFsdWUobV9vdXQucGhpKHBvaW50ZXJU
eXBlKCksIGZhc3RSZXN1bHQsIHNsb3dSZXN1bHQpKTsKICAgICB9CiAKKyAgICB2b2lkIGNvbXBp
bGVTdHJpbmdJbmRleE9mKCkKKyAgICB7CisgICAgICAgIExCYXNpY0Jsb2NrIHNsb3dQYXRoID0g
bV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgTEJhc2ljQmxvY2sgYmFzZU5vdFJvcGUgPSBtX291
dC5uZXdCbG9jaygpOworICAgICAgICBMQmFzaWNCbG9jayBiYXNlSXM4Qml0ID0gbV9vdXQubmV3
QmxvY2soKTsKKyAgICAgICAgTEJhc2ljQmxvY2sgcG9zaXRpb25Jc0luUmFuZ2UgPSBtX291dC5u
ZXdCbG9jaygpOworICAgICAgICBMQmFzaWNCbG9jayBzZWFyY2hlck5vdFJvcGUgPSBtX291dC5u
ZXdCbG9jaygpOworICAgICAgICBMQmFzaWNCbG9jayBzZWFyY2hlcklzOEJpdCA9IG1fb3V0Lm5l
d0Jsb2NrKCk7CisgICAgICAgIExCYXNpY0Jsb2NrIHNlYXJjaGVyT25lQnl0ZSA9IG1fb3V0Lm5l
d0Jsb2NrKCk7CisgICAgICAgIExCYXNpY0Jsb2NrIGdlbmVyaWMgPSBtX291dC5uZXdCbG9jaygp
OworICAgICAgICBMQmFzaWNCbG9jayBjb250aW51YXRpb24gPSBtX291dC5uZXdCbG9jaygpOwor
CisgICAgICAgIExWYWx1ZSBiYXNlID0gbG93U3RyaW5nKG1fbm9kZS0+Y2hpbGQxKCkpOworICAg
ICAgICBMVmFsdWUgc2VhcmNoZXIgPSBsb3dTdHJpbmcobV9ub2RlLT5jaGlsZDIoKSk7CisgICAg
ICAgIExWYWx1ZSBwb3NpdGlvbiA9IGxvd0ludDMyKG1fbm9kZS0+Y2hpbGQzKCkpOworCisgICAg
ICAgIGlmIChKU1N0cmluZyogc3RyaW5nID0gbV9ub2RlLT5jaGlsZDIoKS0+ZHluYW1pY0Nhc3RD
b25zdGFudDxKU1N0cmluZyo+KHZtKCkpKSB7CisgICAgICAgICAgICBjb25zdCBTdHJpbmdJbXBs
KiBpbXBsID0gc3RyaW5nLT50cnlHZXRWYWx1ZUltcGwoKTsKKyAgICAgICAgICAgIGlmICghaW1w
bCB8fCAhaW1wbC0+aXM4Qml0KCkpIHsKKyAgICAgICAgICAgICAgICBzZXRJbnQzMih2bUNhbGwo
SW50MzIsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25TdHJpbmdJbmRleE9mR2VuZXJpYyksIG1f
Y2FsbEZyYW1lLCBiYXNlLCBzZWFyY2hlciwgcG9zaXRpb24pKTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBtX2dyYXBoLmZyZWV6ZVN0cm9uZyhz
dHJpbmcpOworCisgICAgICAgICAgICBMVmFsdWUgYmFzZUltcGwgPSBtX291dC5sb2FkUHRyKGJh
c2UsIG1faGVhcHMuSlNTdHJpbmdfdmFsdWUpOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKG1f
b3V0LmlzWmVybzY0KGJhc2VJbXBsKSwgdW5zdXJlKHNsb3dQYXRoKSwgdW5zdXJlKGJhc2VOb3RS
b3BlKSk7CisKKyAgICAgICAgICAgIExCYXNpY0Jsb2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5k
VG8oYmFzZU5vdFJvcGUsIGJhc2VJczhCaXQpOworICAgICAgICAgICAgbV9vdXQuYnJhbmNoKAor
ICAgICAgICAgICAgICAgIG1fb3V0LnRlc3RJc1plcm8zMigKKyAgICAgICAgICAgICAgICAgICAg
bV9vdXQubG9hZDMyKGJhc2VJbXBsLCBtX2hlYXBzLlN0cmluZ0ltcGxfaGFzaEFuZEZsYWdzKSwK
KyAgICAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihTdHJpbmdJbXBsOjpmbGFnSXM4
Qml0KCkpKSwKKyAgICAgICAgICAgICAgICB1bnN1cmUoc2xvd1BhdGgpLCB1bnN1cmUoYmFzZUlz
OEJpdCkpOworCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhiYXNlSXM4Qml0LCBwb3NpdGlv
bklzSW5SYW5nZSk7CisgICAgICAgICAgICBMVmFsdWUgYmFzZUxlbmd0aCA9IG1fb3V0LmxvYWQz
MihiYXNlSW1wbCwgbV9oZWFwcy5TdHJpbmdJbXBsX2xlbmd0aCk7CisgICAgICAgICAgICBtX291
dC5icmFuY2gobV9vdXQuYWJvdmVPckVxdWFsKHBvc2l0aW9uLCBiYXNlTGVuZ3RoKSwgdW5zdXJl
KHNsb3dQYXRoKSwgdW5zdXJlKHBvc2l0aW9uSXNJblJhbmdlKSk7CisKKyAgICAgICAgICAgIG1f
b3V0LmFwcGVuZFRvKHBvc2l0aW9uSXNJblJhbmdlLCBzbG93UGF0aCk7CisgICAgICAgICAgICBM
VmFsdWUgdGFyZ2V0TGVuZ3RoID0gbV9vdXQuc3ViKGJhc2VMZW5ndGgsIHBvc2l0aW9uKTsKKyAg
ICAgICAgICAgIExWYWx1ZSBiYXNlQnVmZmVyID0gbV9vdXQubG9hZFB0cihiYXNlSW1wbCwgbV9o
ZWFwcy5TdHJpbmdJbXBsX2RhdGEpOworICAgICAgICAgICAgTFZhbHVlIHRhcmdldEJ1ZmZlciA9
IG1fb3V0LmFkZChiYXNlQnVmZmVyLCBtX291dC56ZXJvRXh0UHRyKHBvc2l0aW9uKSk7CisKKyAg
ICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIGZhc3RSZXN1bHQ7CisgICAgICAgICAgICBpZiAoaW1w
bC0+bGVuZ3RoKCkgPT0gMSkKKyAgICAgICAgICAgICAgICBmYXN0UmVzdWx0ID0gbV9vdXQuYW5j
aG9yKG1fb3V0LmNhbGwoSW50MzIsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25TdHJpbmdJbmRl
eE9mT25lQ2hhciksIHRhcmdldEJ1ZmZlciwgbV9vdXQuY29uc3RJbnQzMigoKmltcGwpWzBdKSwg
dGFyZ2V0TGVuZ3RoLCBwb3NpdGlvbikpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIGZhc3RSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQuY2FsbChJbnQzMiwgbV9vdXQub3Bl
cmF0aW9uKG9wZXJhdGlvblN0cmluZ0luZGV4T2YpLCB0YXJnZXRCdWZmZXIsIHRhcmdldExlbmd0
aCwgbV9vdXQuY29uc3RJbnRQdHIoaW1wbC0+Y2hhcmFjdGVyczgoKSksIG1fb3V0LmNvbnN0SW50
MzIoaW1wbC0+bGVuZ3RoKCkpLCBwb3NpdGlvbikpOworICAgICAgICAgICAgbV9vdXQuanVtcChj
b250aW51YXRpb24pOworCisgICAgICAgICAgICBtX291dC5hcHBlbmRUbyhzbG93UGF0aCwgY29u
dGludWF0aW9uKTsKKyAgICAgICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291
dC5hbmNob3Iodm1DYWxsKEludDMyLCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uU3RyaW5nSW5k
ZXhPZkdlbmVyaWMpLCBtX2NhbGxGcmFtZSwgYmFzZSwgc2VhcmNoZXIsIHBvc2l0aW9uKSk7Cisg
ICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICAgICAgc2V0SW50MzIo
bV9vdXQucGhpKEludDMyLCBmYXN0UmVzdWx0LCBzbG93UmVzdWx0KSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBMVmFsdWUgYmFzZUltcGwgPSBtX291dC5sb2Fk
UHRyKGJhc2UsIG1faGVhcHMuSlNTdHJpbmdfdmFsdWUpOworICAgICAgICBtX291dC5icmFuY2go
bV9vdXQuaXNaZXJvNjQoYmFzZUltcGwpLCB1bnN1cmUoc2xvd1BhdGgpLCB1bnN1cmUoYmFzZU5v
dFJvcGUpKTsKKworICAgICAgICBMQmFzaWNCbG9jayBsYXN0TmV4dCA9IG1fb3V0LmFwcGVuZFRv
KGJhc2VOb3RSb3BlLCBiYXNlSXM4Qml0KTsKKyAgICAgICAgbV9vdXQuYnJhbmNoKAorICAgICAg
ICAgICAgbV9vdXQudGVzdElzWmVybzMyKAorICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQzMihi
YXNlSW1wbCwgbV9oZWFwcy5TdHJpbmdJbXBsX2hhc2hBbmRGbGFncyksCisgICAgICAgICAgICAg
ICAgbV9vdXQuY29uc3RJbnQzMihTdHJpbmdJbXBsOjpmbGFnSXM4Qml0KCkpKSwKKyAgICAgICAg
ICAgIHVuc3VyZShzbG93UGF0aCksIHVuc3VyZShiYXNlSXM4Qml0KSk7CisKKyAgICAgICAgbV9v
dXQuYXBwZW5kVG8oYmFzZUlzOEJpdCwgcG9zaXRpb25Jc0luUmFuZ2UpOworICAgICAgICBMVmFs
dWUgYmFzZUxlbmd0aCA9IG1fb3V0LmxvYWQzMihiYXNlSW1wbCwgbV9oZWFwcy5TdHJpbmdJbXBs
X2xlbmd0aCk7CisgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5hYm92ZU9yRXF1YWwocG9zaXRp
b24sIGJhc2VMZW5ndGgpLCB1bnN1cmUoc2xvd1BhdGgpLCB1bnN1cmUocG9zaXRpb25Jc0luUmFu
Z2UpKTsKKworICAgICAgICBtX291dC5hcHBlbmRUbyhwb3NpdGlvbklzSW5SYW5nZSwgc2VhcmNo
ZXJOb3RSb3BlKTsKKyAgICAgICAgTFZhbHVlIHRhcmdldExlbmd0aCA9IG1fb3V0LnN1YihiYXNl
TGVuZ3RoLCBwb3NpdGlvbik7CisgICAgICAgIExWYWx1ZSBiYXNlQnVmZmVyID0gbV9vdXQubG9h
ZFB0cihiYXNlSW1wbCwgbV9oZWFwcy5TdHJpbmdJbXBsX2RhdGEpOworICAgICAgICBMVmFsdWUg
dGFyZ2V0QnVmZmVyID0gbV9vdXQuYWRkKGJhc2VCdWZmZXIsIG1fb3V0Lnplcm9FeHRQdHIocG9z
aXRpb24pKTsKKyAgICAgICAgTFZhbHVlIGltcGwgPSBtX291dC5sb2FkUHRyKHNlYXJjaGVyLCBt
X2hlYXBzLkpTU3RyaW5nX3ZhbHVlKTsKKyAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0LmlzWmVy
bzY0KGltcGwpLCB1bnN1cmUoc2xvd1BhdGgpLCB1bnN1cmUoc2VhcmNoZXJOb3RSb3BlKSk7CisK
KyAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2VhcmNoZXJOb3RSb3BlLCBzZWFyY2hlcklzOEJpdCk7
CisgICAgICAgIG1fb3V0LmJyYW5jaCgKKyAgICAgICAgICAgIG1fb3V0LnRlc3RJc1plcm8zMigK
KyAgICAgICAgICAgICAgICBtX291dC5sb2FkMzIoaW1wbCwgbV9oZWFwcy5TdHJpbmdJbXBsX2hh
c2hBbmRGbGFncyksCisgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQzMihTdHJpbmdJbXBs
OjpmbGFnSXM4Qml0KCkpKSwKKyAgICAgICAgICAgIHVuc3VyZShzbG93UGF0aCksIHVuc3VyZShz
ZWFyY2hlcklzOEJpdCkpOworCisgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNlYXJjaGVySXM4Qml0
LCBzZWFyY2hlck9uZUJ5dGUpOworICAgICAgICBMVmFsdWUgYnVmZmVyID0gbV9vdXQubG9hZFB0
cihpbXBsLCBtX2hlYXBzLlN0cmluZ0ltcGxfZGF0YSk7CisgICAgICAgIExWYWx1ZSBsZW5ndGgg
PSBtX291dC5sb2FkMzIoaW1wbCwgbV9oZWFwcy5TdHJpbmdJbXBsX2xlbmd0aCk7CisgICAgICAg
IG1fb3V0LmJyYW5jaChtX291dC5ub3RFcXVhbChsZW5ndGgsIG1fb3V0LmNvbnN0SW50MzIoMSkp
LCB1bnN1cmUoZ2VuZXJpYyksIHVuc3VyZShzZWFyY2hlck9uZUJ5dGUpKTsKKworICAgICAgICBt
X291dC5hcHBlbmRUbyhzZWFyY2hlck9uZUJ5dGUsIGdlbmVyaWMpOworICAgICAgICBMVmFsdWUg
Y2hhcmFjdGVyID0gbV9vdXQubG9hZDhaZXJvRXh0MzIoYnVmZmVyLCBtX2hlYXBzLmNoYXJhY3Rl
cnM4WzBdKTsKKyAgICAgICAgVmFsdWVGcm9tQmxvY2sgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hv
cihtX291dC5jYWxsKEludDMyLCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uU3RyaW5nSW5kZXhP
Zk9uZUNoYXIpLCB0YXJnZXRCdWZmZXIsIGNoYXJhY3RlciwgdGFyZ2V0TGVuZ3RoLCBwb3NpdGlv
bikpOworICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAgICAgbV9vdXQu
YXBwZW5kVG8oZ2VuZXJpYywgc2xvd1BhdGgpOworICAgICAgICBWYWx1ZUZyb21CbG9jayBnZW5l
cmljUmVzdWx0ID0gbV9vdXQuYW5jaG9yKG1fb3V0LmNhbGwoSW50MzIsIG1fb3V0Lm9wZXJhdGlv
bihvcGVyYXRpb25TdHJpbmdJbmRleE9mKSwgdGFyZ2V0QnVmZmVyLCB0YXJnZXRMZW5ndGgsIGJ1
ZmZlciwgbGVuZ3RoLCBwb3NpdGlvbikpOworICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlv
bik7CisKKyAgICAgICAgbV9vdXQuYXBwZW5kVG8oc2xvd1BhdGgsIGNvbnRpbnVhdGlvbik7Cisg
ICAgICAgIFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3Iodm1DYWxsKElu
dDMyLCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uU3RyaW5nSW5kZXhPZkdlbmVyaWMpLCBtX2Nh
bGxGcmFtZSwgYmFzZSwgc2VhcmNoZXIsIHBvc2l0aW9uKSk7CisgICAgICAgIG1fb3V0Lmp1bXAo
Y29udGludWF0aW9uKTsKKworICAgICAgICBtX291dC5hcHBlbmRUbyhjb250aW51YXRpb24sIGxh
c3ROZXh0KTsKKyAgICAgICAgc2V0SW50MzIobV9vdXQucGhpKEludDMyLCBmYXN0UmVzdWx0LCBn
ZW5lcmljUmVzdWx0LCBzbG93UmVzdWx0KSk7CisgICAgfQorCiAgICAgdm9pZCBjb21waWxlTnVt
YmVyVG9TdHJpbmdXaXRoUmFkaXgoKQogICAgIHsKICAgICAgICAgYm9vbCB2YWxpZFJhZGl4SXNH
dWFyYW50ZWVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0NDYWxsSGVscGVycy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9DQ2FsbEhlbHBlcnMu
aAppbmRleCBhYTM3M2RlNDRjODRkNWFmMjVlODA1ZjlhOTJkNjlmZTMzMTY4ZmMwLi42NzU5N2Ez
NmM5MjI2NmJlOTBiZmUwNTZhZDU2YjYwNTM3YTM3NTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaml0L0NDYWxsSGVscGVycy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQ0NhbGxIZWxwZXJzLmgKQEAgLTIyMDIsNiArMjIwMiwxNiBAQCBjbGFzcyBDQ2FsbEhl
bHBlcnMgOiBwdWJsaWMgQXNzZW1ibHlIZWxwZXJzIHsKICAgICAgICAgc2V0dXBUaHJlZVN0dWJB
cmdzR1BSPEdQUkluZm86OmFyZ3VtZW50R1BSMSwgR1BSSW5mbzo6YXJndW1lbnRHUFIzLCBHUFJJ
bmZvOjphcmd1bWVudEdQUjQ+KGFyZzEsIGFyZzMsIGFyZzQpOwogICAgIH0KIAorICAgIEFMV0FZ
U19JTkxJTkUgdm9pZCBzZXR1cEFyZ3VtZW50cyhHUFJSZWcgYXJnMSwgR1BSUmVnIGFyZzIsIEdQ
UlJlZyBhcmczLCBHUFJSZWcgYXJnNCkKKyAgICB7CisgICAgICAgIHNldHVwRm91clN0dWJBcmdz
R1BSKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgR1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZv
Ojphcmd1bWVudEdQUjIsIEdQUkluZm86OmFyZ3VtZW50R1BSMywgYXJnMSwgYXJnMiwgYXJnMywg
YXJnNCk7CisgICAgfQorCisgICAgQUxXQVlTX0lOTElORSB2b2lkIHNldHVwQXJndW1lbnRzKEdQ
UlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFyZzMsIEdQUlJlZyBhcmc0LCBHUFJSZWcg
YXJnNSkKKyAgICB7CisgICAgICAgIHNldHVwRml2ZVN0dWJBcmdzR1BSKEdQUkluZm86OmFyZ3Vt
ZW50R1BSMCwgR1BSSW5mbzo6YXJndW1lbnRHUFIxLCBHUFJJbmZvOjphcmd1bWVudEdQUjIsIEdQ
UkluZm86OmFyZ3VtZW50R1BSMywgR1BSSW5mbzo6YXJndW1lbnRHUFI0LCBhcmcxLCBhcmcyLCBh
cmczLCBhcmc0LCBhcmc1KTsKKyAgICB9CisKICAgICBBTFdBWVNfSU5MSU5FIHZvaWQgc2V0dXBB
cmd1bWVudHNXaXRoRXhlY1N0YXRlKEdQUlJlZyBhcmcxLCBHUFJSZWcgYXJnMiwgR1BSUmVnIGFy
ZzMsIFRydXN0ZWRJbW1QdHIgYXJnNCkKICAgICB7CiAgICAgICAgIHNldHVwVGhyZWVTdHViQXJn
c0dQUjxHUFJJbmZvOjphcmd1bWVudEdQUjEsIEdQUkluZm86OmFyZ3VtZW50R1BSMiwgR1BSSW5m
bzo6YXJndW1lbnRHUFIzPihhcmcxLCBhcmcyLCBhcmczKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXggYzdhM2M4ZTYyNGFkOTVkYzI3MWRlMTMyYjZjMWE1
MWQ1NTk3YjRjOS4uZGZiODZmNTg4NzA5OGE2MGIwMjYwMzEwOTgyZGQzMDg0MjUzNGU5MyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKQEAgLTExOSw2ICsxMTks
NyBAQCB0eXBlZGVmIGNoYXIqIFVudXNlZFB0cjsKICAgICBXczogV2F0Y2hwb2ludFNldCoKICAg
ICBaOiBpbnQzMl90CiAgICAgVWk6IHVpbnQzMl90CisgICAgTGM6IExDaGFyCiAqLwogCiB0eXBl
ZGVmIENhbGxGcmFtZSogKEpJVF9PUEVSQVRJT04gKkZfSklUT3BlcmF0aW9uX0VGSlpaKShFeGVj
U3RhdGUqLCBDYWxsRnJhbWUqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCwgaW50MzJfdCk7CkBA
IC0xOTksNiArMjAwLDExIEBAIHR5cGVkZWYgSlNDZWxsKiAoSklUX09QRVJBVElPTiAqQ19KSVRP
cGVyYXRpb25fRUpKSikoRXhlY1N0YXRlKiwgRW5jb2RlZEpTVmFsdWUsCiB0eXBlZGVmIEpTQ2Vs
bCogKEpJVF9PUEVSQVRJT04gKkNfSklUT3BlcmF0aW9uX0VKc2NaKShFeGVjU3RhdGUqLCBKU1Nj
b3BlKiwgaW50MzJfdCk7CiB0eXBlZGVmIEpTQ2VsbCogKEpJVF9PUEVSQVRJT04gKkNfSklUT3Bl
cmF0aW9uX0VKc3NTdCkoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBTdHJ1Y3R1cmUqKTsKIHR5cGVk
ZWYgSlNDZWxsKiAoSklUX09QRVJBVElPTiAqQ19KSVRPcGVyYXRpb25fRUpzc0pzcykoRXhlY1N0
YXRlKiwgSlNTdHJpbmcqLCBKU1N0cmluZyopOwordHlwZWRlZiBpbnQzMl90IChKSVRfT1BFUkFU
SU9OICpaX0pJVE9wZXJhdGlvbl9FSnNzSnNzWikoRXhlY1N0YXRlKiwgSlNTdHJpbmcqLCBKU1N0
cmluZyosIGludDMyX3QpOwordHlwZWRlZiBpbnQzMl90IChKSVRfT1BFUkFUSU9OICpaX0pJVE9w
ZXJhdGlvbl9QTGNaKSh2b2lkKiwgTENoYXIsIGludDMyX3QpOwordHlwZWRlZiBpbnQzMl90IChK
SVRfT1BFUkFUSU9OICpaX0pJVE9wZXJhdGlvbl9QTGNaWikodm9pZCosIExDaGFyLCBpbnQzMl90
LCBpbnQzMl90KTsKK3R5cGVkZWYgaW50MzJfdCAoSklUX09QRVJBVElPTiAqWl9KSVRPcGVyYXRp
b25fUFpQWikodm9pZCosIGludDMyX3QsIHZvaWQqLCBpbnQzMl90KTsKK3R5cGVkZWYgaW50MzJf
dCAoSklUX09QRVJBVElPTiAqWl9KSVRPcGVyYXRpb25fUFpQWlopKHZvaWQqLCBpbnQzMl90LCB2
b2lkKiwgaW50MzJfdCwgaW50MzJfdCk7CiB0eXBlZGVmIHVpbnRwdHJfdCAoSklUX09QRVJBVElP
TiAqQ19KSVRPcGVyYXRpb25fQl9FSnNzSnNzKShFeGVjU3RhdGUqLCBKU1N0cmluZyosIEpTU3Ry
aW5nKik7CiB0eXBlZGVmIHVpbnRwdHJfdCAoSklUX09QRVJBVElPTiAqQ19KSVRPcGVyYXRpb25f
VFQpKFN0cmluZ0ltcGwqLCBTdHJpbmdJbXBsKik7CiB0eXBlZGVmIEpTQ2VsbCogKEpJVF9PUEVS
QVRJT04gKkNfSklUT3BlcmF0aW9uX0VKc3NKc3NKc3MpKEV4ZWNTdGF0ZSosIEpTU3RyaW5nKiwg
SlNTdHJpbmcqLCBKU1N0cmluZyopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50cmluc2ljLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRy
aW5zaWMuaAppbmRleCA3NzEzYTllZDRlYzVjNjQ5NGU5ZTMxM2UwMjQ2YzcxZTg5MmUyNjg4Li41
NGMzOTdiZTViNjRlOTlkNGE3NmM1NjgyZGE1MTA4OTkzMDcyNWEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaApAQCAtNTcsNiArNTcsNyBAQCBlbnVtIEpTX0VY
UE9SVF9QUklWQVRFIEludHJpbnNpYyB7CiAgICAgU3RyaW5nUHJvdG90eXBlUmVwbGFjZUludHJp
bnNpYywKICAgICBTdHJpbmdQcm90b3R5cGVSZXBsYWNlUmVnRXhwSW50cmluc2ljLAogICAgIFN0
cmluZ1Byb3RvdHlwZVRvTG93ZXJDYXNlSW50cmluc2ljLAorICAgIFN0cmluZ1Byb3RvdHlwZUlu
ZGV4T2ZJbnRyaW5zaWMsCiAgICAgTnVtYmVyUHJvdG90eXBlVG9TdHJpbmdJbnRyaW5zaWMsCiAg
ICAgSU11bEludHJpbnNpYywKICAgICBSYW5kb21JbnRyaW5zaWMsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmNwcAppbmRleCAxMWM1NmZiZDI3
MGQ1YmVhYjc2YzhlYWNlMzk4Nzg0YzE5Y2ZmN2E1Li5kMTFjZjA3YTk2OWQwNmYwMGE4YzM1MjY5
ZDZiMzUwZjllZjNiZTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTEzNSw3ICsxMzUsNyBAQCB2b2lkIFN0cmluZ1Byb3Rv
dHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBKU1N0cgogICAgIEpTQ19OQVRJVkVfSU5UUklOU0lDX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJ
VElPTigiY2hhckNvZGVBdCIsIHN0cmluZ1Byb3RvRnVuY0NoYXJDb2RlQXQsIERvbnRFbnVtLCAx
LCBDaGFyQ29kZUF0SW50cmluc2ljKTsKICAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRf
VFJBTlNJVElPTigiY29kZVBvaW50QXQiLCBzdHJpbmdQcm90b0Z1bmNDb2RlUG9pbnRBdCwgRG9u
dEVudW0sIDEpOwogICAgIEpTQ19OQVRJVkVfRlVOQ1RJT05fV0lUSE9VVF9UUkFOU0lUSU9OKCJj
b25jYXQiLCBzdHJpbmdQcm90b0Z1bmNDb25jYXQsIERvbnRFbnVtLCAxKTsKLSAgICBKU0NfTkFU
SVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaW5kZXhPZiIsIHN0cmluZ1Byb3RvRnVu
Y0luZGV4T2YsIERvbnRFbnVtLCAxKTsKKyAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElP
Tl9XSVRIT1VUX1RSQU5TSVRJT04oImluZGV4T2YiLCBzdHJpbmdQcm90b0Z1bmNJbmRleE9mLCBE
b250RW51bSwgMSwgU3RyaW5nUHJvdG90eXBlSW5kZXhPZkludHJpbnNpYyk7CiAgICAgSlNDX05B
VElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04oImxhc3RJbmRleE9mIiwgc3RyaW5nUHJv
dG9GdW5jTGFzdEluZGV4T2YsIERvbnRFbnVtLCAxKTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJ
Q19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5h
bWVzKCkucmVwbGFjZVVzaW5nUmVnRXhwUHJpdmF0ZU5hbWUoKSwgc3RyaW5nUHJvdG9GdW5jUmVw
bGFjZVVzaW5nUmVnRXhwLCBEb250RW51bSwgMiwgU3RyaW5nUHJvdG90eXBlUmVwbGFjZVJlZ0V4
cEludHJpbnNpYyk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04o
dm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNo
UHJpdmF0ZU5hbWUoKSwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNoLCBE
b250RW51bSwgMik7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDRhNjAwNjhhYTQ2N2EzMzU5OGU2OTBlNjQyYzlhZmYxMjdmNjBhMWQuLjQ0
NzNlYmUwNzI5ZDMyNjVhZmEwYTEzN2IxMjc2OTQ3YWU2YTU5N2MgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTctMDQtMTMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAg
ICAgW0RGR10gSGFuZGxlIFN0cmluZy5wcm90b3R5cGUuaW5kZXhPZgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjU3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3Mvc3RyaW5n
LWluZGV4LW9mLW9uZS1jaGFyLmpzOiBBZGRlZC4KKyAgICAgICAgKGluZGV4T2YpOgorICAgICAg
ICAoc3RyaW5nX2FwcGVhcmVkX2hlcmUuZm9yRWFjaCk6CisgICAgICAgICogbWljcm9iZW5jaG1h
cmtzL3N0cmluZy1pbmRleC1vZi5qczogQWRkZWQuCisgICAgICAgIChpbmRleE9mKToKKyAgICAg
ICAgKHN0cmluZ19hcHBlYXJlZF9oZXJlLmZvckVhY2gpOgorCiAyMDE3LTA0LTEyICBKb3NlcGgg
UGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgdGVzdDI2MjogdGVzdDI2
Mi90ZXN0L2J1aWx0LWlucy9OYXRpdmVFcnJvcnMvRXZhbEVycm9yL3Byb3RvLmpzCmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9zdHJpbmctaW5kZXgtb2Ytb25lLWNoYXIuanMg
Yi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9zdHJpbmctaW5kZXgtb2Ytb25lLWNoYXIuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDFhNDkwNTkwZDBjMTRhYjM0ODE0Y2RlZjMyNGY0MDc4NzFhNDkxMQotLS0gL2Rl
di9udWxsCisrKyBiL0pTVGVzdHMvbWljcm9iZW5jaG1hcmtzL3N0cmluZy1pbmRleC1vZi1vbmUt
Y2hhci5qcwpAQCAtMCwwICsxLDE3IEBACitmdW5jdGlvbiBpbmRleE9mKHN0cmluZywgY2hhcmFj
dGVyKQoreworICAgIHJldHVybiBzdHJpbmcuaW5kZXhPZihjaGFyYWN0ZXIpOworfQorbm9Jbmxp
bmUoaW5kZXhPZik7CisKK1sKKyAgICAiSGVsbG8iLAorICAgICJXb3JsZCIsCisgICAgIlRoaXMg
aXMgYSBwZW4iLAorICAgICJXaGF0IGhhcHBlbnM/IiwKKyAgICAiQ29jb2EiLAorICAgICJDYXBw
dWNjaW5vIgorXS5mb3JFYWNoKGZ1bmN0aW9uIChzdHJpbmcpIHsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IDFlNDsgKytpKQorICAgICAgICBpbmRleE9mKHN0cmluZywgJ2EnKTsKK30pOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvc3RyaW5nLWluZGV4LW9mLmpzIGIvSlNU
ZXN0cy9taWNyb2JlbmNobWFya3Mvc3RyaW5nLWluZGV4LW9mLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlNTI2
MjZkZmZkNDcxNmFmY2MxYTg5YmE0Njg5YjQ0ZTUwMjA1NjIKLS0tIC9kZXYvbnVsbAorKysgYi9K
U1Rlc3RzL21pY3JvYmVuY2htYXJrcy9zdHJpbmctaW5kZXgtb2YuanMKQEAgLTAsMCArMSwxNyBA
QAorZnVuY3Rpb24gaW5kZXhPZihzdHJpbmcsIGNoYXJhY3RlcikKK3sKKyAgICByZXR1cm4gc3Ry
aW5nLmluZGV4T2YoY2hhcmFjdGVyKTsKK30KK25vSW5saW5lKGluZGV4T2YpOworCitbCisgICAg
IkhlbGxvIiwKKyAgICAiV29ybGQiLAorICAgICJUaGlzIGlzIGEgcGVuIiwKKyAgICAiV2hhdCBo
YXBwZW5zPyIsCisgICAgIkNvY29hIiwKKyAgICAiQ2FwcHVjY2lubyIKK10uZm9yRWFjaChmdW5j
dGlvbiAoc3RyaW5nKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKKyAgICAg
ICAgaW5kZXhPZihzdHJpbmcsICdlbicpOworfSk7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRl
c3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY4ODRhYThj
ODQ2ZGYwZmEwY2IxMDNiZDU3N2U3NjRjOTdhNmU5MjkuLjI0MTE4NGQzOTc3MDc4ZDM0YmIxYjRh
OGVlMjM4NzBhY2E5ZjJiZjYgMTAwNjQ0Ci0tLSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9n
CisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTct
MDQtMTMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAg
W0RGR10gSGFuZGxlIFN0cmluZy5wcm90b3R5cGUuaW5kZXhPZgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjU3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBUkVTLTYvZ2x1ZS5qczoKKwogMjAxNy0w
NC0wMyAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYSBu
ZXcgdGVzdCB0byBBUkVTNgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358678</attachid>
            <date>2019-01-09 00:01:58 -0800</date>
            <delta_ts>2019-01-09 00:01:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170657-20190109000157.patch</filename>
            <type>text/plain</type>
            <size>36130</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
ZjQ2MDg5YTg1MGJkYzJhNDIwNmI1NTNkMGI1MjJlNWIxNmQ1ZWQ3Li43YTZlZmJiMjc4Y2ZiNzEx
NTg5ZTdjNGMzZDFhMjMxMjMwN2IxNzMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw1MiBAQAorMjAxOS0wMS0wOSAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbREZHXSBIYW5kbGUgU3RyaW5nLnByb3RvdHlwZS5pbmRleE9mCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA2NTcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oOgorICAgICAgICAoSlNDOjpNYWNyb0Fzc2VtYmxl
clg4NkNvbW1vbjo6c3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcpOgorICAgICAgICAoSlND
OjpNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6c3VwcG9ydHNTdHJpbmdBbmRUZXh0UHJvY2Vzc2lu
Zyk6CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpzdXBwb3J0c0FWWCk6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjppc1NTRTQxUHJlc2VudCk6
CisgICAgICAgIChKU0M6Ok1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjppc1NTRTQyUHJlc2VudCk6
CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0Lmg6CisgICAgICAgIChK
U0M6Ok1hY3JvQXNzZW1ibGVyWDg2XzY0OjppbmRleE9mKToKKyAgICAgICAgKiBhc3NlbWJsZXIv
WDg2QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Olg4NkFzc2VtYmxlcjo6cGNtcGVzdHJpX3Jy
KToKKyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpwY21wZXN0cm1fcnIpOgorICAgICAgICAo
SlNDOjpYODZBc3NlbWJsZXI6OnBjbXBpc3RyaV9ycik6CisgICAgICAgIChKU0M6Olg4NkFzc2Vt
Ymxlcjo6cGNtcGlzdHJtX3JyKToKKyAgICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRl
cklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3Ry
YWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29k
ZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUlu
dHJpbnNpY0NhbGwpOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChK
U0M6OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBk
ZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9ucy5jcHA6CisgICAg
ICAgICogZGZnL0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZHUHJlZGljdGlvblBy
b3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9FeGVjdXRlLmg6Cisg
ICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1
bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21w
aWxlKToKKyAgICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6
RlRMOjpjYW5Db21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAg
ICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5vZGUpOgorICAgICAg
ICAoSlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlU3RyaW5nSW5kZXhPZik6Cisg
ICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuY3BwOgorICAgICAgICAoSlNDOjppbnRyaW5zaWNO
YW1lKToKKyAgICAgICAgKiBydW50aW1lL0ludHJpbnNpYy5oOgorICAgICAgICAqIHJ1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmNwcDoKKyAgICAgICAgKEpTQzo6U3RyaW5nUHJvdG90eXBlOjpmaW5p
c2hDcmVhdGlvbik6CisKIDIwMTktMDEtMDQgIFRhZGV1IFphZ2FsbG8gIDx0emFnYWxsb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgQmFzZWxpbmUgdmVyc2lvbiBvZiBnZXRfYnlfaWQgbWF5IGNvcnJ1
cHQgbWV0YWRhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIv
TWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJs
ZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uaAppbmRleCAxMjQzNDIyNWFjZDllNGNiN2FjOTNh
NGJhZmRkNTYxM2E4ODRmY2FjLi5hMmRjMWFhNDU2YmM0YTQ4ZDU1ODZmNTk4NDdkMTdjNTM5NjRk
MGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNz
ZW1ibGVyWDg2Q29tbW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCkBAIC0zOTU3LDEzICszOTU3LDYgQEAgY2xhc3MgTWFj
cm9Bc3NlbWJsZXJYODZDb21tb24gOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2VtYmxlcjxBc3Nl
bWJsZXI+IHsKICAgICAgICAgcmV0dXJuIFg4NkFzc2VtYmxlcjo6cGF0Y2hhYmxlSnVtcFNpemUo
KTsKICAgICB9CiAKLSAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zsb2F0aW5nUG9pbnRSb3VuZGlu
ZygpCi0gICAgewotICAgICAgICBpZiAoc19zc2U0XzFDaGVja1N0YXRlID09IENQVUlEQ2hlY2tT
dGF0ZTo6Tm90Q2hlY2tlZCkKLSAgICAgICAgICAgIGNvbGxlY3RDUFVGZWF0dXJlcygpOwotICAg
ICAgICByZXR1cm4gc19zc2U0XzFDaGVja1N0YXRlID09IENQVUlEQ2hlY2tTdGF0ZTo6U2V0Owot
ICAgIH0KLQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzQ291bnRQb3B1bGF0aW9uKCkKICAgICB7
CiAgICAgICAgIGlmIChzX3BvcGNudENoZWNrU3RhdGUgPT0gQ1BVSURDaGVja1N0YXRlOjpOb3RD
aGVja2VkKQpAQCAtMzk3MSw5ICszOTY0LDIyIEBAIGNsYXNzIE1hY3JvQXNzZW1ibGVyWDg2Q29t
bW9uIDogcHVibGljIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXI8QXNzZW1ibGVyPiB7CiAgICAgICAg
IHJldHVybiBzX3BvcGNudENoZWNrU3RhdGUgPT0gQ1BVSURDaGVja1N0YXRlOjpTZXQ7CiAgICAg
fQogCisgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50Um91bmRpbmcoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGlzU1NFNDFQcmVzZW50KCk7CisgICAgfQorCisgICAgc3RhdGlj
IGJvb2wgc3VwcG9ydHNTdHJpbmdBbmRUZXh0UHJvY2Vzc2luZygpCisgICAgeworICAgICAgICBy
ZXR1cm4gaXNTU0U0MlByZXNlbnQoKTsKKyAgICB9CisKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0
c0FWWCgpCiAgICAgewotICAgICAgICAvLyBBVlggc3RpbGwgY2F1c2VzIG15c3RlcmlvdXMgcmVn
cmVzc2lvbnMgYW5kIHRob3NlIHJlZ3Jlc3Npb25zIGNhbiBiZSBtYXNzaXZlLgorICAgICAgICAv
LyBVc2luZyBBVlggYWQtaG9jbHkgY2F1c2VzIG1hc3NpdmUgcGVyZm9ybWFuY2UgcmVncmVzc2lv
bi4gVGhpcyBpcyBiZWNhdXNlIG9mCisgICAgICAgIC8vIG1peGluZyBvZiBTU0UgYW5kIEFWWCBv
cGVyYXRpb25zLiBJZiB3ZSB3YW50IHRvIHVzZSBBVlgsIHdlIHNob3VsZCBzZWxlY3QKKyAgICAg
ICAgLy8gQVZYIG9wZXJhdGlvbnMgaW5zdGVhZCBvZiBTU0Ugb3BlcmF0aW9ucy4gRm9yIGV4YW1w
bGUsIHdlIHNob3VsZCB1c2UgdnJvdW5kc3MKKyAgICAgICAgLy8gaW5zdGVhZCBvZiByb3VuZHNz
LgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC00MjgzLDYgKzQyODksMjAgQEAg
Y2xhc3MgTWFjcm9Bc3NlbWJsZXJYODZDb21tb24gOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fzc2Vt
YmxlcjxBc3NlbWJsZXI+IHsKIAogI2VuZGlmCiAKKyAgICBzdGF0aWMgYm9vbCBpc1NTRTQxUHJl
c2VudCgpCisgICAgeworICAgICAgICBpZiAoc19zc2U0XzFDaGVja1N0YXRlID09IENQVUlEQ2hl
Y2tTdGF0ZTo6Tm90Q2hlY2tlZCkKKyAgICAgICAgICAgIGNvbGxlY3RDUFVGZWF0dXJlcygpOwor
ICAgICAgICByZXR1cm4gc19zc2U0XzFDaGVja1N0YXRlID09IENQVUlEQ2hlY2tTdGF0ZTo6U2V0
OworICAgIH0KKworICAgIHN0YXRpYyBib29sIGlzU1NFNDJQcmVzZW50KCkKKyAgICB7CisgICAg
ICAgIGlmIChzX3NzZTRfMkNoZWNrU3RhdGUgPT0gQ1BVSURDaGVja1N0YXRlOjpOb3RDaGVja2Vk
KQorICAgICAgICAgICAgY29sbGVjdENQVUZlYXR1cmVzKCk7CisgICAgICAgIHJldHVybiBzX3Nz
ZTRfMkNoZWNrU3RhdGUgPT0gQ1BVSURDaGVja1N0YXRlOjpTZXQ7CisgICAgfQorCiAgICAgdXNp
bmcgQ1BVSUQgPSBzdGQ6OmFycmF5PHVuc2lnbmVkLCA0PjsKICAgICBzdGF0aWMgQ1BVSUQgZ2V0
Q1BVSUQodW5zaWduZWQgbGV2ZWwpOwogICAgIHN0YXRpYyBDUFVJRCBnZXRDUFVJREV4KHVuc2ln
bmVkIGxldmVsLCB1bnNpZ25lZCBjb3VudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKaW5kZXggMGY2YTcxNGYwMWEy
ZGU3MDk1NDMxODNkYTM4ZWEwYzIwNDM3MTRkOC4uOWY1ZmE1MDFmZDI2NTFhYzM0NTdhODBkZDc5
MTU1MTRjZWFhNTY3OCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaApAQCAtMTg2Miw2ICsxODYyLDE0IEBAIGNsYXNz
IE1hY3JvQXNzZW1ibGVyWDg2XzY0IDogcHVibGljIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uIHsK
ICAgICAgICAgbV9hc3NlbWJsZXIubGlua0p1bXAoZG9uZSwgbV9hc3NlbWJsZXIubGFiZWwoKSk7
CiAgICAgfQogCisjaWYgMAorICAgIHZvaWQgaW5kZXhPZihSZWdpc3RlcklEIHNyYywgUmVnaXN0
ZXJJRCBjaGFyYWN0ZXIsIEZQUmVnaXN0ZXJJRCBzY3JhdGNoMSwgRlBSZWdpc3RlcklEIHNjcmF0
Y2gyKQorICAgIHsKKyAgICAgICAgQVNTRVJUKHNyYyA9PSBYODZSZWdpc3RlcnM6OmVheCk7Cisg
ICAgICAgIEFTU0VSVChzcmMgPT0gWDg2UmVnaXN0ZXJzOjplZHgpOworICAgIH0KKyNlbmRpZgor
CiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGbG9hdGluZ1BvaW50KCkgeyByZXR1cm4gdHJ1ZTsg
fQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFRydW5jYXRlKCkgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRmxvYXRpbmdQb2ludFNxcnQoKSB7
IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL1g4NkFzc2VtYmxlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZB
c3NlbWJsZXIuaAppbmRleCAwNmNiOWUxNzFhZmIxZGM1M2U0ODU0NWEwYzBhYTBjNmFiZWJjODli
Li44YTIzMTA3YWMwNGE2Y2YyZTEwNzBmNGI1Y2EwMDEyOWU2ZGRkYmRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgKQEAgLTM1MiwxMSArMzUy
LDE1IEBAIGNsYXNzIFg4NkFzc2VtYmxlciB7CiAgICAgfSBUd29CeXRlT3Bjb2RlSUQ7CiAgICAg
CiAgICAgdHlwZWRlZiBlbnVtIHsKLSAgICAgICAgT1AzX1JPVU5EU1NfVnNzV3NzSWIgPSAweDBB
LAotICAgICAgICBPUDNfUk9VTkRTRF9Wc2RXc2RJYiA9IDB4MEIsCi0gICAgICAgIE9QM19MRkVO
Q0UgICAgICAgICAgID0gMHhFOCwKLSAgICAgICAgT1AzX01GRU5DRSAgICAgICAgICAgPSAweEYw
LAotICAgICAgICBPUDNfU0ZFTkNFICAgICAgICAgICA9IDB4RjgsCisgICAgICAgIE9QM19ST1VO
RFNTX1Zzc1dzc0liICAgPSAweDBBLAorICAgICAgICBPUDNfUk9VTkRTRF9Wc2RXc2RJYiAgID0g
MHgwQiwKKyAgICAgICAgT1AzX1BDTVBFU1RSTV9WZHFXZHFJYiA9IDB4NjAsCisgICAgICAgIE9Q
M19QQ01QRVNUUklfVmRxV2RxSWIgPSAweDYxLAorICAgICAgICBPUDNfUENNUElTVFJNX1ZkcVdk
cUliID0gMHg2MiwKKyAgICAgICAgT1AzX1BDTVBJU1RSSV9WZHFXZHFJYiA9IDB4NjMsCisgICAg
ICAgIE9QM19MRkVOQ0UgICAgICAgICAgICAgPSAweEU4LAorICAgICAgICBPUDNfTUZFTkNFICAg
ICAgICAgICAgID0gMHhGMCwKKyAgICAgICAgT1AzX1NGRU5DRSAgICAgICAgICAgICA9IDB4Rjgs
CiAgICAgfSBUaHJlZUJ5dGVPcGNvZGVJRDsKIAogICAgIHN0cnVjdCBWZXhQcmVmaXggewpAQCAt
MzI3Nyw2ICszMjgxLDM0IEBAIGNsYXNzIFg4NkFzc2VtYmxlciB7CiAgICAgICAgIG1fZm9ybWF0
dGVyLnZleE5kc0xpZ1dpZ1R3b0J5dGVPcChQUkVfU1NFX0YzLCBPUDJfTVVMU0RfVnNkV3NkLCAo
UmVnaXN0ZXJJRClkc3QsIChSZWdpc3RlcklEKWIsIG9mZnNldCwgYmFzZSwgaW5kZXgsIHNjYWxl
KTsKICAgICB9CiAKKyAgICB2b2lkIHBjbXBlc3RyaV9ycihYTU1SZWdpc3RlcklEIGEsIFhNTVJl
Z2lzdGVySUQgYiwgaW50IGltbSkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQ
UkVfU1NFXzY2KTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudGhyZWVCeXRlT3AoT1AyXzNCWVRFX0VT
Q0FQRV8zQSwgT1AzX1BDTVBFU1RSSV9WZHFXZHFJYiwgKFJlZ2lzdGVySUQpYSwgKFJlZ2lzdGVy
SUQpYik7CisgICAgICAgIG1fZm9ybWF0dGVyLmltbWVkaWF0ZTgoaW1tKTsKKyAgICB9CisKKyAg
ICB2b2lkIHBjbXBlc3RybV9ycihYTU1SZWdpc3RlcklEIGEsIFhNTVJlZ2lzdGVySUQgYiwgaW50
IGltbSkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NFXzY2KTsKKyAg
ICAgICAgbV9mb3JtYXR0ZXIudGhyZWVCeXRlT3AoT1AyXzNCWVRFX0VTQ0FQRV8zQSwgT1AzX1BD
TVBFU1RSTV9WZHFXZHFJYiwgKFJlZ2lzdGVySUQpYSwgKFJlZ2lzdGVySUQpYik7CisgICAgICAg
IG1fZm9ybWF0dGVyLmltbWVkaWF0ZTgoaW1tKTsKKyAgICB9CisKKyAgICB2b2lkIHBjbXBpc3Ry
aV9ycihYTU1SZWdpc3RlcklEIGEsIFhNTVJlZ2lzdGVySUQgYiwgaW50IGltbSkKKyAgICB7Cisg
ICAgICAgIG1fZm9ybWF0dGVyLnByZWZpeChQUkVfU1NFXzY2KTsKKyAgICAgICAgbV9mb3JtYXR0
ZXIudGhyZWVCeXRlT3AoT1AyXzNCWVRFX0VTQ0FQRV8zQSwgT1AzX1BDTVBJU1RSSV9WZHFXZHFJ
YiwgKFJlZ2lzdGVySUQpYSwgKFJlZ2lzdGVySUQpYik7CisgICAgICAgIG1fZm9ybWF0dGVyLmlt
bWVkaWF0ZTgoaW1tKTsKKyAgICB9CisKKyAgICB2b2lkIHBjbXBpc3RybV9ycihYTU1SZWdpc3Rl
cklEIGEsIFhNTVJlZ2lzdGVySUQgYiwgaW50IGltbSkKKyAgICB7CisgICAgICAgIG1fZm9ybWF0
dGVyLnByZWZpeChQUkVfU1NFXzY2KTsKKyAgICAgICAgbV9mb3JtYXR0ZXIudGhyZWVCeXRlT3Ao
T1AyXzNCWVRFX0VTQ0FQRV8zQSwgT1AzX1BDTVBJU1RSTV9WZHFXZHFJYiwgKFJlZ2lzdGVySUQp
YSwgKFJlZ2lzdGVySUQpYik7CisgICAgICAgIG1fZm9ybWF0dGVyLmltbWVkaWF0ZTgoaW1tKTsK
KyAgICB9CisKICAgICB2b2lkIHBleHRyd19pcnIoaW50IHdoaWNoV29yZCwgWE1NUmVnaXN0ZXJJ
RCBzcmMsIFJlZ2lzdGVySUQgZHN0KQogICAgIHsKICAgICAgICAgbV9mb3JtYXR0ZXIucHJlZml4
KFBSRV9TU0VfNjYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
YnN0cmFjdEludGVycHJldGVySW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCmluZGV4IGE4MTEzZjMxMzgwY2UxMmQ2NjAz
ZmQ3NTNlNmIzODBkMThlNjAxMjcuLmQ0NGUxOTAxN2FjYTY0MTRmODdlYTdkZjUwYzEwMGE1MDk2
YjM0YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJ
bnRlcnByZXRlcklubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fi
c3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKQEAgLTEyMzMsNiArMTIzMywxMSBAQCBib29sIEFi
c3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNp
Z25lZCBjbG9iYmVyTGltaQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIFN0cmlu
Z0luZGV4T2Y6IHsKKyAgICAgICAgc2V0Tm9uQ2VsbFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNJbnQz
Mk9ubHkpOworICAgICAgICBicmVhazsKKyAgICB9CisKICAgICBjYXNlIFRvTG93ZXJDYXNlOiB7
CiAgICAgICAgIHNldFR5cGVGb3JOb2RlKG5vZGUsIFNwZWNTdHJpbmcpOwogICAgICAgICBicmVh
azsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAK
aW5kZXggOTM1MjlkYjBmMTNmNWE0ODMzM2U4MGJiNzIzZDc0ZTZhMjJlOTBmNy4uMTkyNTRkNDJj
NmVkNWM4NDFkZTZlYzM3ZDY4ZDY3NmU3YzUwNDM5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTI3OTMsNyArMjc5MywyNyBAQCBi
b29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5kbGVJbnRyaW5zaWNDYWxsKE5vZGUqIGNhbGxlZSwgVmly
dHVhbFJlZ2lzdGVyIHJlc3VsdCwgSQogICAgICAgICBzZXQocmVzdWx0LCByZXN1bHROb2RlKTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgICAgICAKKworICAgIGNhc2UgU3RyaW5n
UHJvdG90eXBlSW5kZXhPZkludHJpbnNpYzogeworICAgICAgICBpZiAoYXJndW1lbnRDb3VudElu
Y2x1ZGluZ1RoaXMgIT0gMiAmJiBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyAhPSAzKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmIChtX2lubGluZVN0YWNrVG9wLT5t
X2V4aXRQcm9maWxlLmhhc0V4aXRTaXRlKG1fY3VycmVudEluZGV4LCBCYWRUeXBlKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpbnNlcnRDaGVja3MoKTsKKyAgICAgICAg
Tm9kZSogYmFzZSA9IGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JBcmd1bWVudCgwLCByZWdpc3Rlck9m
ZnNldCkpOworICAgICAgICBOb2RlKiBzZWFyY2hlciA9IGdldCh2aXJ0dWFsUmVnaXN0ZXJGb3JB
cmd1bWVudCgxLCByZWdpc3Rlck9mZnNldCkpOworICAgICAgICBOb2RlKiBwb3NpdGlvbiA9IG51
bGxwdHI7CisgICAgICAgIGlmIChhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyA9PSAyKQorICAg
ICAgICAgICAgcG9zaXRpb24gPSBqc0NvbnN0YW50KGpzTnVtYmVyKDApKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgcG9zaXRpb24gPSBnZXQodmlydHVhbFJlZ2lzdGVyRm9yQXJndW1lbnQo
MiwgcmVnaXN0ZXJPZmZzZXQpKTsKKyAgICAgICAgTm9kZSogcmVzdWx0Tm9kZSA9IGFkZFRvR3Jh
cGgoU3RyaW5nSW5kZXhPZiwgYmFzZSwgc2VhcmNoZXIsIHBvc2l0aW9uKTsKKyAgICAgICAgc2V0
KHJlc3VsdCwgcmVzdWx0Tm9kZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKwogICAg
IGNhc2UgUm91bmRJbnRyaW5zaWM6CiAgICAgY2FzZSBGbG9vckludHJpbnNpYzoKICAgICBjYXNl
IENlaWxJbnRyaW5zaWM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0Nsb2JiZXJpemUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5o
CmluZGV4IGZjYjNjNmI2YmNkMGIwMGFkOWViMzY5YTQ4MzJlMTk4MzZkNjkwY2MuLmRhMmZkZDc4
NmM2ZmE3ZTkwZmI1ZDZiYTM3YmUwZTVkYTI3NzY5MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHQ2xvYmJlcml6ZS5oCkBAIC0xNzg3LDYgKzE3ODcsMTAgQEAgdm9pZCBjbG9iYmVy
aXplKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSwgY29uc3QgUmVhZEZ1bmN0b3ImIHJlYWQsIGNv
bnN0IFdyaXRlRnUKICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlKSk7CiAgICAgICAgIHJldHVy
bjsKIAorICAgIGNhc2UgU3RyaW5nSW5kZXhPZjoKKyAgICAgICAgZGVmKFB1cmVWYWx1ZShub2Rl
KSk7CisgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgVG9Mb3dlckNhc2U6CiAgICAgICAgIGRl
ZihQdXJlVmFsdWUobm9kZSkpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggZGRiZmE1ZDgzY2Y1OTc3YTA3ZGMzN2FmOGQyODkwMjIy
ZDMzZjFkYi4uN2MzMTJhMGQzN2JkYzNiNGRjZDQ1ZWYxZDU5ZTU2NjhhY2U5ZTJhMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMzc1LDYgKzM3NSw3IEBAIGJv
b2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNlIE9iamVjdFRvU3Ry
aW5nOgogICAgIGNhc2UgQ3JlYXRlUmVzdDoKICAgICBjYXNlIFRvTG93ZXJDYXNlOgorICAgIGNh
c2UgU3RyaW5nSW5kZXhPZjoKICAgICBjYXNlIENhbGxET01HZXR0ZXI6CiAgICAgY2FzZSBDYWxs
RE9NOgogICAgIGNhc2UgQXJyYXlTbGljZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0ZpeHVwUGhhc2UuY3BwCmluZGV4IGQ3ODYwZWE5YzEzMzQzMjRmMmVmZDIwMTM1MGIzNGMyM2Vh
ZjQxMDMuLjcxNTc4ZDZhM2UwZjhjYjliZDRlYWYzNGRmZjIxMmRiMDI5YTU4M2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMjE2OSw2ICsyMTY5
LDEzIEBAIGNsYXNzIEZpeHVwUGhhc2UgOiBwdWJsaWMgUGhhc2UgewogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KIAorICAgICAgICBjYXNlIFN0cmluZ0luZGV4T2Y6IHsKKyAgICAgICAg
ICAgIGZpeEVkZ2U8U3RyaW5nVXNlPihub2RlLT5jaGlsZDEoKSk7CisgICAgICAgICAgICBmaXhF
ZGdlPFN0cmluZ1VzZT4obm9kZS0+Y2hpbGQyKCkpOworICAgICAgICAgICAgZml4RWRnZTxJbnQz
MlVzZT4obm9kZS0+Y2hpbGQzKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKwog
ICAgICAgICBjYXNlIE51bWJlclRvU3RyaW5nV2l0aFJhZGl4OiB7CiAgICAgICAgICAgICBpZiAo
bm9kZS0+Y2hpbGQxKCktPnNob3VsZFNwZWN1bGF0ZUludDMyKCkpCiAgICAgICAgICAgICAgICAg
Zml4RWRnZTxJbnQzMlVzZT4obm9kZS0+Y2hpbGQxKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlVHlwZS5oCmluZGV4IDAzZmU0NmI5NTE4NGRhMTY2YWVmZjVkY2UxZWMxNTcxMDdl
NjkzZDkuLmQ4NzUyOWZmY2YwZmQzOGNhMTIyM2U5ZGZmZTQ4NGE1NWVlYTQwODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTQ3OSw2ICs0NzksNyBAQCBuYW1l
c3BhY2UgSlNDIHsgbmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oU3RyaW5nVmFsdWVPZiwgTm9k
ZU11c3RHZW5lcmF0ZSB8IE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKFN0cmluZ1NsaWNlLCBO
b2RlUmVzdWx0SlMpIFwKICAgICBtYWNybyhUb0xvd2VyQ2FzZSwgTm9kZVJlc3VsdEpTKSBcCisg
ICAgbWFjcm8oU3RyaW5nSW5kZXhPZiwgTm9kZVJlc3VsdEludDMyKSBcCiAgICAgLyogTm9kZXMg
Zm9yIERPTSBKSVQgKi9cCiAgICAgbWFjcm8oQ2FsbERPTUdldHRlciwgTm9kZVJlc3VsdEpTIHwg
Tm9kZU11c3RHZW5lcmF0ZSkgXAogICAgIG1hY3JvKENhbGxET00sIE5vZGVSZXN1bHRKUyB8IE5v
ZGVNdXN0R2VuZXJhdGUpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuY3BwCmluZGV4IGRmY2VkMTBiZjI2NGY0MTA0MGMwZDQ3ZTM4NTRkY2IwZGM5MWM5OTkuLmZl
MGUyMjkwYzdmNDE1NjllODY2Y2JmYmE3Mzg3MTcxNGEyZmFmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMjYzMCw2ICsyNjMwLDUwIEBAIGlu
dDY0X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db252ZXJ0RG91YmxlVG9JbnQ1Mihkb3VibGUg
dmFsdWUpCiAgICAgcmV0dXJuIHRyeUNvbnZlcnRUb0ludDUyKHZhbHVlKTsKIH0KIAoraW50MzJf
dCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0cmluZ0luZGV4T2ZPbmVDaGFyKHZvaWQqIHBvaW50
ZXIsIExDaGFyIGNoYXJhY3RlciwgaW50MzJfdCBsZW5ndGgsIGludDMyX3QgcG9zaXRpb24pCit7
CisgICAgY29uc3QgTENoYXIqIGNoYXJhY3RlcnMgPSBzdGF0aWNfY2FzdDxjb25zdCBMQ2hhcio+
KHBvaW50ZXIpOworICAgIGNvbnN0IExDaGFyKiByZXN1bHQgPSBzdGF0aWNfY2FzdDxjb25zdCBM
Q2hhcio+KG1lbWNocihjaGFyYWN0ZXJzLCBjaGFyYWN0ZXIsIGxlbmd0aCkpOworICAgIGlmICgh
cmVzdWx0KQorICAgICAgICByZXR1cm4gLTE7CisgICAgcmV0dXJuIChyZXN1bHQgLSBjaGFyYWN0
ZXJzKSArIHBvc2l0aW9uOworfQorCitpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3Ry
aW5nSW5kZXhPZih2b2lkKiBwb2ludGVyLCBpbnQzMl90IGxlbmd0aCwgdm9pZCogc2VhcmNoZXIs
IGludDMyX3Qgc2VhcmNoZXJMZW5ndGgsIGludDMyX3QgcG9zaXRpb24pCit7CisgICAgY29uc3Qg
TENoYXIqIGNoYXJhY3RlcnMgPSBzdGF0aWNfY2FzdDxjb25zdCBMQ2hhcio+KHBvaW50ZXIpOwor
ICAgIGNvbnN0IExDaGFyKiByZXN1bHQgPSBzdGF0aWNfY2FzdDxjb25zdCBMQ2hhcio+KG1lbW1l
bShjaGFyYWN0ZXJzLCBsZW5ndGgsIHN0YXRpY19jYXN0PGNvbnN0IExDaGFyKj4oc2VhcmNoZXIp
LCBzZWFyY2hlckxlbmd0aCkpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gLTE7
CisgICAgcmV0dXJuIChyZXN1bHQgLSBjaGFyYWN0ZXJzKSArIHBvc2l0aW9uOworfQorCitpbnQz
Ml90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uU3RyaW5nSW5kZXhPZkdlbmVyaWMoRXhlY1N0YXRl
KiBleGVjLCBKU1N0cmluZyogdGhpc0pTU3RyaW5nLCBKU1N0cmluZyogb3RoZXJKU1N0cmluZywg
aW50MzJfdCBwb3NpdGlvbikKK3sKKyAgICBWTSYgdm0gPSBleGVjLT52bSgpOworICAgIE5hdGl2
ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKKyAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7CisKKyAgICBpbnQzMl90IGxlbmd0aCA9IHRoaXNKU1N0cmlu
Zy0+bGVuZ3RoKCk7CisgICAgUkVMRUFTRV9BU1NFUlQobGVuZ3RoID49IDApOworICAgIGlmIChw
b3NpdGlvbiA+PSAwKQorICAgICAgICBwb3NpdGlvbiA9IHN0ZDo6bWluPGludDMyX3Q+KHBvc2l0
aW9uLCBsZW5ndGgpOworICAgIGVsc2UKKyAgICAgICAgcG9zaXRpb24gPSAwOworCisgICAgaWYg
KHRoaXNKU1N0cmluZy0+bGVuZ3RoKCkgPCBvdGhlckpTU3RyaW5nLT5sZW5ndGgoKSArIHBvc2l0
aW9uKQorICAgICAgICByZXR1cm4gLTE7CisKKyAgICBhdXRvIHRoaXNWaWV3V2l0aFN0cmluZyA9
IHRoaXNKU1N0cmluZy0+dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKGV4ZWMpOworICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIDApOworICAgIGF1dG8gb3RoZXJWaWV3V2l0aFN0cmluZyA9
IG90aGVySlNTdHJpbmctPnZpZXdXaXRoVW5kZXJseWluZ1N0cmluZyhleGVjKTsKKyAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHNjb3BlLCAwKTsKKyAgICBzaXplX3QgcmVzdWx0ID0gdGhpc1ZpZXdX
aXRoU3RyaW5nLnZpZXcuZmluZChvdGhlclZpZXdXaXRoU3RyaW5nLnZpZXcsIHBvc2l0aW9uKTsK
KyAgICBpZiAocmVzdWx0ID09IG5vdEZvdW5kKQorICAgICAgICByZXR1cm4gLTE7CisgICAgcmV0
dXJuIHJlc3VsdDsKK30KKwogY2hhciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdSYXdPYmpl
Y3QoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgaW50MzJfdCBsZW5ndGgs
IEJ1dHRlcmZseSogYnV0dGVyZmx5KQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5oCmluZGV4IDhiNzZmNGQ2YmYzNzQw
MWRlMmM0YTk3YzFjMzIwNTUyN2NjNjM5NTEuLjAxZTA1ZDNhOTNlM2VlZThmN2M4YWZmM2I4MGI4
YWQzMzZlMWEzMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3Bl
cmF0aW9ucy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5o
CkBAIC0yNzQsNiArMjc0LDEwIEBAIGludDY0X3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db252
ZXJ0RG91YmxlVG9JbnQ1Mihkb3VibGUpOwogCiBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uTnVtYmVySXNJbnRlZ2VyKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1ZhbHVlKTsKIAoraW50MzJf
dCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblN0cmluZ0luZGV4T2Yodm9pZCosIGludDMyX3QsIHZv
aWQqLCBpbnQzMl90LCBpbnQzMl90IHBvc2l0aW9uKTsKK2ludDMyX3QgSklUX09QRVJBVElPTiBv
cGVyYXRpb25TdHJpbmdJbmRleE9mT25lQ2hhcih2b2lkKiwgTENoYXIsIGludDMyX3QgbGVuZ3Ro
LCBpbnQzMl90IHBvc2l0aW9uKTsKK2ludDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25TdHJp
bmdJbmRleE9mR2VuZXJpYyhFeGVjU3RhdGUqLCBKU1N0cmluZyosIEpTU3RyaW5nKiwgaW50MzJf
dCBwb3NpdGlvbik7CisKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkRlZmF1bHRIYXNJ
bnN0YW5jZShFeGVjU3RhdGUqLCBKU0NlbGwqIHZhbHVlLCBKU0NlbGwqIHByb3RvKTsKIAogY2hh
ciogSklUX09QRVJBVElPTiBvcGVyYXRpb25OZXdSYXdPYmplY3QoRXhlY1N0YXRlKiwgU3RydWN0
dXJlKiwgaW50MzJfdCwgQnV0dGVyZmx5KikgV1RGX0lOVEVSTkFMOwpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcAppbmRleCAxYmE0ZWZmMzczYzhhNTcwZWE4OGNkNzFhZTExMjEwZjQ5M2ZmNmQxLi42ODUw
YjM3MmJmMTRkMjFjNzg3OGRiOTk3YzllNzQ4MmIyN2ExNGZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNl
LmNwcApAQCAtODg4LDYgKzg4OCwxMCBAQCBjbGFzcyBQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFz
ZSA6IHB1YmxpYyBQaGFzZSB7CiAgICAgICAgICAgICBzZXRQcmVkaWN0aW9uKFNwZWNTdHJpbmcp
OwogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgY2FzZSBTdHJpbmdJbmRleE9mOgorICAg
ICAgICAgICAgc2V0UHJlZGljdGlvbihTcGVjSW50MzJPbmx5KTsKKyAgICAgICAgICAgIGJyZWFr
OworCiAgICAgICAgIGNhc2UgQXJpdGhQb3c6CiAgICAgICAgIGNhc2UgQXJpdGhTcXJ0OgogICAg
ICAgICBjYXNlIEFyaXRoRlJvdW5kOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTYWZlVG9FeGVjdXRlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nh
ZmVUb0V4ZWN1dGUuaAppbmRleCAwNmRhOTRmNDQxZjg1ZDI0NTYxMDBjYjE4NTQ3MTA0YzU4OTUx
YjBmLi44NGMzOTZkZDM1MmQ3NmM2NTA1MjFjZTU4ZWQyOWI2NTkwMWRmNDQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaApAQCAtNDUyLDYgKzQ1Miw3
IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0cmFjdFN0YXRlVHlwZSYgc3RhdGUsIEdyYXBoJiBn
cmFwaCwgTm9kZSogbm9kZSwgYm9vbCBpZ25vCiAgICAgY2FzZSBTdHJpbmdWYWx1ZU9mOgogICAg
IGNhc2UgU3RyaW5nU2xpY2U6CiAgICAgY2FzZSBUb0xvd2VyQ2FzZToKKyAgICBjYXNlIFN0cmlu
Z0luZGV4T2Y6CiAgICAgY2FzZSBPYmplY3RUb1N0cmluZzoKICAgICBjYXNlIEdldE1hcEJ1Y2tl
dDoKICAgICBjYXNlIEdldE1hcEJ1Y2tldEhlYWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCA1ZDU4ZmRhM2U3NmRkNmI0N2Y3
ZTZkN2VmODI2YzQ2YmFkNTU2NWQ4Li4zNDRmNjU1NDExMGQzNzdlMTYxNDQzN2VmNjJiZjQzZjJh
ZDE0YzlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAKQEAgLTQyMjcsNiArNDIyNywxMTIgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6
Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIFN0
cmluZ0luZGV4T2Y6IHsKKyAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBu
b2RlLT5jaGlsZDEoKSk7CisgICAgICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIHNlYXJjaGVyKHRo
aXMsIG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgU3BlY3VsYXRlSW50MzJPcGVyYW5kIHBvc2l0
aW9uKHRoaXMsIG5vZGUtPmNoaWxkMygpKTsKKworICAgICAgICBHUFJUZW1wb3JhcnkgdGVtcCh0
aGlzKTsKKyAgICAgICAgR1BSVGVtcG9yYXJ5IHRlbXAyKHRoaXMpOworICAgICAgICBHUFJUZW1w
b3JhcnkgbGVuZ3RoKHRoaXMpOworICAgICAgICBHUFJUZW1wb3JhcnkgbGVuZ3RoMih0aGlzKTsK
KworICAgICAgICBHUFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CisgICAgICAgIEdQUlJlZyBz
ZWFyY2hlckdQUiA9IHNlYXJjaGVyLmdwcigpOworICAgICAgICBHUFJSZWcgcG9zaXRpb25HUFIg
PSBwb3NpdGlvbi5ncHIoKTsKKyAgICAgICAgR1BSUmVnIHRlbXBHUFIgPSB0ZW1wLmdwcigpOwor
ICAgICAgICBHUFJSZWcgdGVtcDJHUFIgPSB0ZW1wMi5ncHIoKTsKKyAgICAgICAgR1BSUmVnIGxl
bmd0aEdQUiA9IGxlbmd0aC5ncHIoKTsKKyAgICAgICAgR1BSUmVnIGxlbmd0aDJHUFIgPSBsZW5n
dGgyLmdwcigpOworCisgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhub2RlLT5jaGlsZDEoKSwgYmFz
ZUdQUik7CisgICAgICAgIHNwZWN1bGF0ZVN0cmluZyhub2RlLT5jaGlsZDIoKSwgc2VhcmNoZXJH
UFIpOworCisgICAgICAgIGlmIChKU1N0cmluZyogc3RyaW5nID0gbm9kZS0+Y2hpbGQyKCktPmR5
bmFtaWNDYXN0Q29uc3RhbnQ8SlNTdHJpbmcqPigqbV9qaXQudm0oKSkpIHsKKyAgICAgICAgICAg
IGNvbnN0IFN0cmluZ0ltcGwqIGltcGwgPSBzdHJpbmctPnRyeUdldFZhbHVlSW1wbCgpOworICAg
ICAgICAgICAgaWYgKCFpbXBsIHx8ICFpbXBsLT5pczhCaXQoKSkgeworICAgICAgICAgICAgICAg
IGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgICAgICAgICAgICAgY2FsbE9wZXJhdGlvbihvcGVyYXRp
b25TdHJpbmdJbmRleE9mR2VuZXJpYywgbGVuZ3RoR1BSLCBiYXNlR1BSLCBzZWFyY2hlckdQUiwg
cG9zaXRpb25HUFIpOworICAgICAgICAgICAgICAgIGludDMyUmVzdWx0KGxlbmd0aEdQUiwgbm9k
ZSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAv
L21faml0LmdyYXBoKCkuZnJlZXplU3Ryb25nKHN0cmluZyk7CisKKyAgICAgICAgICAgIC8vQ0Nh
bGxIZWxwZXJzOjpKdW1wTGlzdCBzbG93UGF0aDsKKworICAgICAgICAgICAgLy9tX2ppdC5sb2Fk
UHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlR1BSLCBKU1N0cmluZzo6b2Zmc2V0T2ZWYWx1
ZSgpKSwgdGVtcDJHUFIpOworICAgICAgICAgICAgLy9zbG93UGF0aC5hcHBlbmQobV9qaXQuYnJh
bmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Olplcm8sIHRlbXAyR1BSKSk7CisgICAgICAgICAgICAv
L3Nsb3dQYXRoLmFwcGVuZChtX2ppdC5icmFuY2hUZXN0MzIoCisgICAgICAgICAgICAgICAgLy9D
Q2FsbEhlbHBlcnM6Olplcm8sIENDYWxsSGVscGVyczo6QWRkcmVzcyh0ZW1wMkdQUiwgU3RyaW5n
SW1wbDo6ZmxhZ3NPZmZzZXQoKSksCisgICAgICAgICAgICAgICAgLy9DQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMihTdHJpbmdJbXBsOjpmbGFnSXM4Qml0KCkpKSk7CisgICAgICAgICAgICAvL21f
aml0LmxvYWQzMihDQ2FsbEhlbHBlcnM6OkFkZHJlc3ModGVtcDJHUFIsIFN0cmluZ0ltcGw6Omxl
bmd0aE1lbW9yeU9mZnNldCgpKSwgbGVuZ3RoR1BSKTsKKyAgICAgICAgICAgIC8vbV9qaXQubG9h
ZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3ModGVtcDJHUFIsIFN0cmluZ0ltcGw6OmRhdGFPZmZz
ZXQoKSksIHRlbXAyR1BSKTsKKyAgICAgICAgICAgIC8vc2xvd1BhdGguYXBwZW5kKG1faml0LmJy
YW5jaDMyKENDYWxsSGVscGVyczo6QWJvdmVPckVxdWFsLCBwb3NpdGlvbkdQUiwgbGVuZ3RoR1BS
KSk7CisgICAgICAgICAgICAvL21faml0LnN1YjMyKHBvc2l0aW9uR1BSLCBsZW5ndGhHUFIpOwor
ICAgICAgICAgICAgLy9tX2ppdC56ZXJvRXh0ZW5kMzJUb1B0cihwb3NpdGlvbkdQUiwgdGVtcEdQ
Uik7CisgICAgICAgICAgICAvL21faml0LmFkZFB0cih0ZW1wR1BSLCB0ZW1wMkdQUik7CisgICAg
ICAgICAgICAvL2ZsdXNoUmVnaXN0ZXJzKCk7CisKKyAgICAgICAgICAgIC8vaWYgKGltcGwtPmxl
bmd0aCgpID09IDEpIHsKKyAgICAgICAgICAgICAgICAvL0xDaGFyIGNoYXJhY3RlciA9ICgqaW1w
bClbMF07CisgICAgICAgICAgICAgICAgLy9tX2ppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbTMyKGNoYXJhY3RlciksIHRlbXBHUFIpOworICAgICAgICAgICAgICAgIC8vY2FsbE9wZXJh
dGlvbihvcGVyYXRpb25TdHJpbmdJbmRleE9mT25lQ2hhciwgbGVuZ3RoR1BSLCB0ZW1wMkdQUiwg
dGVtcEdQUiwgbGVuZ3RoR1BSLCBwb3NpdGlvbkdQUik7CisKKyAgICAgICAgICAgICAgICAvL2Fk
ZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbChzbG93UGF0aCwgdGhpcywgb3BlcmF0aW9u
U3RyaW5nSW5kZXhPZkdlbmVyaWMsIGxlbmd0aEdQUiwgYmFzZUdQUiwgc2VhcmNoZXJHUFIsIHBv
c2l0aW9uR1BSKSk7CisKKyAgICAgICAgICAgICAgICAvL2ludDMyUmVzdWx0KGxlbmd0aEdQUiwg
bm9kZSk7CisgICAgICAgICAgICAgICAgLy9icmVhazsKKyAgICAgICAgICAgIC8vfQorCisgICAg
ICAgICAgICAvL21faml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoaW1wbC0+bGVu
Z3RoKCkpLCBsZW5ndGgyR1BSKTsKKyAgICAgICAgICAgIC8vbV9qaXQubW92ZShDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW1QdHIoaW1wbC0+Y2hhcmFjdGVyczgoKSksIHRlbXBHUFIpOworICAgICAg
ICAgICAgLy9jYWxsT3BlcmF0aW9uKG9wZXJhdGlvblN0cmluZ0luZGV4T2YsIGxlbmd0aEdQUiwg
dGVtcDJHUFIsIGxlbmd0aEdQUiwgdGVtcEdQUiwgbGVuZ3RoMkdQUiwgcG9zaXRpb25HUFIpOwor
CisgICAgICAgICAgICAvL2FkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbChzbG93UGF0
aCwgdGhpcywgb3BlcmF0aW9uU3RyaW5nSW5kZXhPZkdlbmVyaWMsIGxlbmd0aEdQUiwgYmFzZUdQ
Uiwgc2VhcmNoZXJHUFIsIHBvc2l0aW9uR1BSKSk7CisKKyAgICAgICAgICAgIC8vaW50MzJSZXN1
bHQobGVuZ3RoR1BSLCBub2RlKTsKKyAgICAgICAgICAgIC8vYnJlYWs7CisgICAgICAgIH0KKwor
ICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IHNsb3dQYXRoOworCisgICAgICAgIG1faml0
LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VHUFIsIEpTU3RyaW5nOjpvZmZzZXRP
ZlZhbHVlKCkpLCB0ZW1wMkdQUik7CisgICAgICAgIHNsb3dQYXRoLmFwcGVuZChtX2ppdC5icmFu
Y2hUZXN0UHRyKENDYWxsSGVscGVyczo6WmVybywgdGVtcDJHUFIpKTsKKyAgICAgICAgc2xvd1Bh
dGguYXBwZW5kKG1faml0LmJyYW5jaFRlc3QzMigKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6
WmVybywgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHRlbXAyR1BSLCBTdHJpbmdJbXBsOjpmbGFnc09m
ZnNldCgpKSwKKyAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKFN0cmluZ0lt
cGw6OmZsYWdJczhCaXQoKSkpKTsKKyAgICAgICAgbV9qaXQubG9hZDMyKENDYWxsSGVscGVyczo6
QWRkcmVzcyh0ZW1wMkdQUiwgU3RyaW5nSW1wbDo6bGVuZ3RoTWVtb3J5T2Zmc2V0KCkpLCBsZW5n
dGhHUFIpOworICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyh0ZW1w
MkdQUiwgU3RyaW5nSW1wbDo6ZGF0YU9mZnNldCgpKSwgdGVtcDJHUFIpOworICAgICAgICBzbG93
UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpBYm92ZU9yRXF1YWwsIHBv
c2l0aW9uR1BSLCBsZW5ndGhHUFIpKTsKKyAgICAgICAgbV9qaXQuc3ViMzIocG9zaXRpb25HUFIs
IGxlbmd0aEdQUik7CisgICAgICAgIG1faml0Lnplcm9FeHRlbmQzMlRvUHRyKHBvc2l0aW9uR1BS
LCB0ZW1wR1BSKTsKKyAgICAgICAgbV9qaXQuYWRkUHRyKHRlbXBHUFIsIHRlbXAyR1BSKTsKKwor
ICAgICAgICBtX2ppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhzZWFyY2hlckdQUiwg
SlNTdHJpbmc6Om9mZnNldE9mVmFsdWUoKSksIHRlbXBHUFIpOworICAgICAgICBzbG93UGF0aC5h
cHBlbmQobV9qaXQuYnJhbmNoVGVzdFB0cihDQ2FsbEhlbHBlcnM6Olplcm8sIHRlbXBHUFIpKTsK
KyAgICAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5jaFRlc3QzMigKKyAgICAgICAgICAg
IENDYWxsSGVscGVyczo6WmVybywgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHRlbXBHUFIsIFN0cmlu
Z0ltcGw6OmZsYWdzT2Zmc2V0KCkpLAorICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVk
SW1tMzIoU3RyaW5nSW1wbDo6ZmxhZ0lzOEJpdCgpKSkpOworICAgICAgICBtX2ppdC5sb2FkMzIo
Q0NhbGxIZWxwZXJzOjpBZGRyZXNzKHRlbXBHUFIsIFN0cmluZ0ltcGw6Omxlbmd0aE1lbW9yeU9m
ZnNldCgpKSwgbGVuZ3RoMkdQUik7CisgICAgICAgIG1faml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJz
OjpBZGRyZXNzKHRlbXBHUFIsIFN0cmluZ0ltcGw6OmRhdGFPZmZzZXQoKSksIHRlbXBHUFIpOwor
CisgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgICAgIC8vYXV0byBub3RPbmVDaGFyQ2Fz
ZSA9IG1faml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6Tm90RXF1YWwsIGxlbmd0aDJHUFIsIEND
YWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDEpKTsKKworICAgICAgICAvL21faml0LmxvYWQ4KEND
YWxsSGVscGVyczo6QWRkcmVzcyh0ZW1wR1BSKSwgdGVtcEdQUik7CisgICAgICAgIC8vY2FsbE9w
ZXJhdGVvbihvcGVyYXRpb25TdHJpbmdJbmRleE9mT25lQ2hhciwgbGVuZ3RoR1BSLCB0ZW1wMkdQ
UiwgdGVtcEdQUiwgbGVuZ3RoR1BSLCBwb3NpdGlvbkdQUik7CisgICAgICAgIC8vYXV0byBkb25l
ID0gbV9qaXQuanVtcCgpOworCisgICAgICAgIC8vbm90T25lQ2hhckNhc2UubGluaygmbV9qaXQp
OworICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvblN0cmluZ0luZGV4T2YsIGxlbmd0aEdQ
UiwgdGVtcDJHUFIsIGxlbmd0aEdQUiwgdGVtcEdQUiwgbGVuZ3RoMkdQUiwgcG9zaXRpb25HUFIp
OworCisgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoQ2FsbChzbG93UGF0aCwg
dGhpcywgb3BlcmF0aW9uU3RyaW5nSW5kZXhPZkdlbmVyaWMsIGxlbmd0aEdQUiwgYmFzZUdQUiwg
c2VhcmNoZXJHUFIsIHBvc2l0aW9uR1BSKSk7CisKKyAgICAgICAgLy9kb25lLmxpbmsoJm1faml0
KTsKKyAgICAgICAgaW50MzJSZXN1bHQobGVuZ3RoR1BSLCBub2RlKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorCiAgICAgY2FzZSBOdW1iZXJUb1N0cmluZ1dpdGhSYWRpeDogewogICAgICAgICBj
b21waWxlTnVtYmVyVG9TdHJpbmdXaXRoUmFkaXgobm9kZSk7CiAgICAgICAgIGJyZWFrOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDZiN2Qw
ZmM5ODlmYjZhNTJkM2QyZmU3NzIxMWQ5OTZiNGZkN2Y1ZjAuLmFmN2MzM2I0Nzg3YzBlZjJlZmUy
ZTE5ODJlMzI3MDdmOTVhN2U2NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TENhcGFiaWxpdGllcy5jcHAKQEAgLTMzMyw2ICszMzMsNyBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxl
dmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIFN0cmluZ1ZhbHVlT2Y6CiAgICAg
Y2FzZSBTdHJpbmdTbGljZToKICAgICBjYXNlIFRvTG93ZXJDYXNlOgorICAgIGNhc2UgU3RyaW5n
SW5kZXhPZjoKICAgICBjYXNlIE9iamVjdFRvU3RyaW5nOgogICAgIGNhc2UgTnVtYmVyVG9TdHJp
bmdXaXRoUmFkaXg6CiAgICAgY2FzZSBOdW1iZXJUb1N0cmluZ1dpdGhWYWxpZFJhZGl4Q29uc3Rh
bnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9C
My5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5k
ZXggOTE1NmE0ODM4Y2U5ZGJjNDY5NzQ3ZTdhNWE1OWM5Y2UyZTMzZTY1Zi4uMDlmMDNiODljNjg2
M2M1N2UyMTQwZmY5ZDliOWU3NGUwZTU4YzQyNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTMxNyw2ICsxMzE3LDkgQEAgY2xhc3MgTG93
ZXJERkdUb0IzIHsKICAgICAgICAgY2FzZSBUb0xvd2VyQ2FzZToKICAgICAgICAgICAgIGNvbXBp
bGVUb0xvd2VyQ2FzZSgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgU3RyaW5n
SW5kZXhPZjoKKyAgICAgICAgICAgIGNvbXBpbGVTdHJpbmdJbmRleE9mKCk7CisgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBOdW1iZXJUb1N0cmluZ1dpdGhSYWRpeDoKICAgICAgICAg
ICAgIGNvbXBpbGVOdW1iZXJUb1N0cmluZ1dpdGhSYWRpeCgpOwogICAgICAgICAgICAgYnJlYWs7
CkBAIC0xMjIxMyw2ICsxMjIxNiwxMTUgQEAgY2xhc3MgTG93ZXJERkdUb0IzIHsKICAgICAgICAg
c2V0SlNWYWx1ZShtX291dC5waGkocG9pbnRlclR5cGUoKSwgZmFzdFJlc3VsdCwgc2xvd1Jlc3Vs
dCkpOwogICAgIH0KIAorICAgIHZvaWQgY29tcGlsZVN0cmluZ0luZGV4T2YoKQorICAgIHsKKyAg
ICAgICAgTEJhc2ljQmxvY2sgc2xvd1BhdGggPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICBM
QmFzaWNCbG9jayBiYXNlTm90Um9wZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAgIExCYXNp
Y0Jsb2NrIGJhc2VJczhCaXQgPSBtX291dC5uZXdCbG9jaygpOworICAgICAgICBMQmFzaWNCbG9j
ayBwb3NpdGlvbklzSW5SYW5nZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAgIExCYXNpY0Js
b2NrIHNlYXJjaGVyTm90Um9wZSA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAgIExCYXNpY0Js
b2NrIHNlYXJjaGVySXM4Qml0ID0gbV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgTEJhc2ljQmxv
Y2sgc2VhcmNoZXJPbmVCeXRlID0gbV9vdXQubmV3QmxvY2soKTsKKyAgICAgICAgTEJhc2ljQmxv
Y2sgZ2VuZXJpYyA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRp
bnVhdGlvbiA9IG1fb3V0Lm5ld0Jsb2NrKCk7CisKKyAgICAgICAgTFZhbHVlIGJhc2UgPSBsb3dT
dHJpbmcobV9ub2RlLT5jaGlsZDEoKSk7CisgICAgICAgIExWYWx1ZSBzZWFyY2hlciA9IGxvd1N0
cmluZyhtX25vZGUtPmNoaWxkMigpKTsKKyAgICAgICAgTFZhbHVlIHBvc2l0aW9uID0gbG93SW50
MzIobV9ub2RlLT5jaGlsZDMoKSk7CisKKyAgICAgICAgaWYgKEpTU3RyaW5nKiBzdHJpbmcgPSBt
X25vZGUtPmNoaWxkMigpLT5keW5hbWljQ2FzdENvbnN0YW50PEpTU3RyaW5nKj4odm0oKSkpIHsK
KyAgICAgICAgICAgIGNvbnN0IFN0cmluZ0ltcGwqIGltcGwgPSBzdHJpbmctPnRyeUdldFZhbHVl
SW1wbCgpOworICAgICAgICAgICAgaWYgKCFpbXBsIHx8ICFpbXBsLT5pczhCaXQoKSkgeworICAg
ICAgICAgICAgICAgIHNldEludDMyKHZtQ2FsbChJbnQzMiwgbV9vdXQub3BlcmF0aW9uKG9wZXJh
dGlvblN0cmluZ0luZGV4T2ZHZW5lcmljKSwgbV9jYWxsRnJhbWUsIGJhc2UsIHNlYXJjaGVyLCBw
b3NpdGlvbikpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIG1fZ3JhcGguZnJlZXplU3Ryb25nKHN0cmluZyk7CisKKyAgICAgICAgICAgIExWYWx1
ZSBiYXNlSW1wbCA9IG1fb3V0LmxvYWRQdHIoYmFzZSwgbV9oZWFwcy5KU1N0cmluZ192YWx1ZSk7
CisgICAgICAgICAgICBtX291dC5icmFuY2gobV9vdXQuaXNaZXJvNjQoYmFzZUltcGwpLCB1bnN1
cmUoc2xvd1BhdGgpLCB1bnN1cmUoYmFzZU5vdFJvcGUpKTsKKworICAgICAgICAgICAgTEJhc2lj
QmxvY2sgbGFzdE5leHQgPSBtX291dC5hcHBlbmRUbyhiYXNlTm90Um9wZSwgYmFzZUlzOEJpdCk7
CisgICAgICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAgICAgICAgbV9vdXQudGVzdElz
WmVybzMyKAorICAgICAgICAgICAgICAgICAgICBtX291dC5sb2FkMzIoYmFzZUltcGwsIG1faGVh
cHMuU3RyaW5nSW1wbF9oYXNoQW5kRmxhZ3MpLAorICAgICAgICAgICAgICAgICAgICBtX291dC5j
b25zdEludDMyKFN0cmluZ0ltcGw6OmZsYWdJczhCaXQoKSkpLAorICAgICAgICAgICAgICAgIHVu
c3VyZShzbG93UGF0aCksIHVuc3VyZShiYXNlSXM4Qml0KSk7CisKKyAgICAgICAgICAgIG1fb3V0
LmFwcGVuZFRvKGJhc2VJczhCaXQsIHBvc2l0aW9uSXNJblJhbmdlKTsKKyAgICAgICAgICAgIExW
YWx1ZSBiYXNlTGVuZ3RoID0gbV9vdXQubG9hZDMyKGJhc2VJbXBsLCBtX2hlYXBzLlN0cmluZ0lt
cGxfbGVuZ3RoKTsKKyAgICAgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5hYm92ZU9yRXF1YWwo
cG9zaXRpb24sIGJhc2VMZW5ndGgpLCB1bnN1cmUoc2xvd1BhdGgpLCB1bnN1cmUocG9zaXRpb25J
c0luUmFuZ2UpKTsKKworICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8ocG9zaXRpb25Jc0luUmFu
Z2UsIHNsb3dQYXRoKTsKKyAgICAgICAgICAgIExWYWx1ZSB0YXJnZXRMZW5ndGggPSBtX291dC5z
dWIoYmFzZUxlbmd0aCwgcG9zaXRpb24pOworICAgICAgICAgICAgTFZhbHVlIGJhc2VCdWZmZXIg
PSBtX291dC5sb2FkUHRyKGJhc2VJbXBsLCBtX2hlYXBzLlN0cmluZ0ltcGxfZGF0YSk7CisgICAg
ICAgICAgICBMVmFsdWUgdGFyZ2V0QnVmZmVyID0gbV9vdXQuYWRkKGJhc2VCdWZmZXIsIG1fb3V0
Lnplcm9FeHRQdHIocG9zaXRpb24pKTsKKworICAgICAgICAgICAgVmFsdWVGcm9tQmxvY2sgZmFz
dFJlc3VsdDsKKyAgICAgICAgICAgIGlmIChpbXBsLT5sZW5ndGgoKSA9PSAxKQorICAgICAgICAg
ICAgICAgIGZhc3RSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQuY2FsbChJbnQzMiwgbV9vdXQu
b3BlcmF0aW9uKG9wZXJhdGlvblN0cmluZ0luZGV4T2ZPbmVDaGFyKSwgdGFyZ2V0QnVmZmVyLCBt
X291dC5jb25zdEludDMyKCgqaW1wbClbMF0pLCB0YXJnZXRMZW5ndGgsIHBvc2l0aW9uKSk7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgZmFzdFJlc3VsdCA9IG1fb3V0LmFuY2hv
cihtX291dC5jYWxsKEludDMyLCBtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uU3RyaW5nSW5kZXhP
ZiksIHRhcmdldEJ1ZmZlciwgdGFyZ2V0TGVuZ3RoLCBtX291dC5jb25zdEludFB0cihpbXBsLT5j
aGFyYWN0ZXJzOCgpKSwgbV9vdXQuY29uc3RJbnQzMihpbXBsLT5sZW5ndGgoKSksIHBvc2l0aW9u
KSk7CisgICAgICAgICAgICBtX291dC5qdW1wKGNvbnRpbnVhdGlvbik7CisKKyAgICAgICAgICAg
IG1fb3V0LmFwcGVuZFRvKHNsb3dQYXRoLCBjb250aW51YXRpb24pOworICAgICAgICAgICAgVmFs
dWVGcm9tQmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFuY2hvcih2bUNhbGwoSW50MzIsIG1fb3V0
Lm9wZXJhdGlvbihvcGVyYXRpb25TdHJpbmdJbmRleE9mR2VuZXJpYyksIG1fY2FsbEZyYW1lLCBi
YXNlLCBzZWFyY2hlciwgcG9zaXRpb24pKTsKKyAgICAgICAgICAgIG1fb3V0Lmp1bXAoY29udGlu
dWF0aW9uKTsKKworICAgICAgICAgICAgbV9vdXQuYXBwZW5kVG8oY29udGludWF0aW9uLCBsYXN0
TmV4dCk7CisgICAgICAgICAgICBzZXRJbnQzMihtX291dC5waGkoSW50MzIsIGZhc3RSZXN1bHQs
IHNsb3dSZXN1bHQpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IExWYWx1ZSBiYXNlSW1wbCA9IG1fb3V0LmxvYWRQdHIoYmFzZSwgbV9oZWFwcy5KU1N0cmluZ192
YWx1ZSk7CisgICAgICAgIG1fb3V0LmJyYW5jaChtX291dC5pc1plcm82NChiYXNlSW1wbCksIHVu
c3VyZShzbG93UGF0aCksIHVuc3VyZShiYXNlTm90Um9wZSkpOworCisgICAgICAgIExCYXNpY0Js
b2NrIGxhc3ROZXh0ID0gbV9vdXQuYXBwZW5kVG8oYmFzZU5vdFJvcGUsIGJhc2VJczhCaXQpOwor
ICAgICAgICBtX291dC5icmFuY2goCisgICAgICAgICAgICBtX291dC50ZXN0SXNaZXJvMzIoCisg
ICAgICAgICAgICAgICAgbV9vdXQubG9hZDMyKGJhc2VJbXBsLCBtX2hlYXBzLlN0cmluZ0ltcGxf
aGFzaEFuZEZsYWdzKSwKKyAgICAgICAgICAgICAgICBtX291dC5jb25zdEludDMyKFN0cmluZ0lt
cGw6OmZsYWdJczhCaXQoKSkpLAorICAgICAgICAgICAgdW5zdXJlKHNsb3dQYXRoKSwgdW5zdXJl
KGJhc2VJczhCaXQpKTsKKworICAgICAgICBtX291dC5hcHBlbmRUbyhiYXNlSXM4Qml0LCBwb3Np
dGlvbklzSW5SYW5nZSk7CisgICAgICAgIExWYWx1ZSBiYXNlTGVuZ3RoID0gbV9vdXQubG9hZDMy
KGJhc2VJbXBsLCBtX2hlYXBzLlN0cmluZ0ltcGxfbGVuZ3RoKTsKKyAgICAgICAgbV9vdXQuYnJh
bmNoKG1fb3V0LmFib3ZlT3JFcXVhbChwb3NpdGlvbiwgYmFzZUxlbmd0aCksIHVuc3VyZShzbG93
UGF0aCksIHVuc3VyZShwb3NpdGlvbklzSW5SYW5nZSkpOworCisgICAgICAgIG1fb3V0LmFwcGVu
ZFRvKHBvc2l0aW9uSXNJblJhbmdlLCBzZWFyY2hlck5vdFJvcGUpOworICAgICAgICBMVmFsdWUg
dGFyZ2V0TGVuZ3RoID0gbV9vdXQuc3ViKGJhc2VMZW5ndGgsIHBvc2l0aW9uKTsKKyAgICAgICAg
TFZhbHVlIGJhc2VCdWZmZXIgPSBtX291dC5sb2FkUHRyKGJhc2VJbXBsLCBtX2hlYXBzLlN0cmlu
Z0ltcGxfZGF0YSk7CisgICAgICAgIExWYWx1ZSB0YXJnZXRCdWZmZXIgPSBtX291dC5hZGQoYmFz
ZUJ1ZmZlciwgbV9vdXQuemVyb0V4dFB0cihwb3NpdGlvbikpOworICAgICAgICBMVmFsdWUgaW1w
bCA9IG1fb3V0LmxvYWRQdHIoc2VhcmNoZXIsIG1faGVhcHMuSlNTdHJpbmdfdmFsdWUpOworICAg
ICAgICBtX291dC5icmFuY2gobV9vdXQuaXNaZXJvNjQoaW1wbCksIHVuc3VyZShzbG93UGF0aCks
IHVuc3VyZShzZWFyY2hlck5vdFJvcGUpKTsKKworICAgICAgICBtX291dC5hcHBlbmRUbyhzZWFy
Y2hlck5vdFJvcGUsIHNlYXJjaGVySXM4Qml0KTsKKyAgICAgICAgbV9vdXQuYnJhbmNoKAorICAg
ICAgICAgICAgbV9vdXQudGVzdElzWmVybzMyKAorICAgICAgICAgICAgICAgIG1fb3V0LmxvYWQz
MihpbXBsLCBtX2hlYXBzLlN0cmluZ0ltcGxfaGFzaEFuZEZsYWdzKSwKKyAgICAgICAgICAgICAg
ICBtX291dC5jb25zdEludDMyKFN0cmluZ0ltcGw6OmZsYWdJczhCaXQoKSkpLAorICAgICAgICAg
ICAgdW5zdXJlKHNsb3dQYXRoKSwgdW5zdXJlKHNlYXJjaGVySXM4Qml0KSk7CisKKyAgICAgICAg
bV9vdXQuYXBwZW5kVG8oc2VhcmNoZXJJczhCaXQsIHNlYXJjaGVyT25lQnl0ZSk7CisgICAgICAg
IExWYWx1ZSBidWZmZXIgPSBtX291dC5sb2FkUHRyKGltcGwsIG1faGVhcHMuU3RyaW5nSW1wbF9k
YXRhKTsKKyAgICAgICAgTFZhbHVlIGxlbmd0aCA9IG1fb3V0LmxvYWQzMihpbXBsLCBtX2hlYXBz
LlN0cmluZ0ltcGxfbGVuZ3RoKTsKKyAgICAgICAgbV9vdXQuYnJhbmNoKG1fb3V0Lm5vdEVxdWFs
KGxlbmd0aCwgbV9vdXQuY29uc3RJbnQzMigxKSksIHVuc3VyZShnZW5lcmljKSwgdW5zdXJlKHNl
YXJjaGVyT25lQnl0ZSkpOworCisgICAgICAgIG1fb3V0LmFwcGVuZFRvKHNlYXJjaGVyT25lQnl0
ZSwgZ2VuZXJpYyk7CisgICAgICAgIExWYWx1ZSBjaGFyYWN0ZXIgPSBtX291dC5sb2FkOFplcm9F
eHQzMihidWZmZXIsIG1faGVhcHMuY2hhcmFjdGVyczhbMF0pOworICAgICAgICBWYWx1ZUZyb21C
bG9jayBmYXN0UmVzdWx0ID0gbV9vdXQuYW5jaG9yKG1fb3V0LmNhbGwoSW50MzIsIG1fb3V0Lm9w
ZXJhdGlvbihvcGVyYXRpb25TdHJpbmdJbmRleE9mT25lQ2hhciksIHRhcmdldEJ1ZmZlciwgY2hh
cmFjdGVyLCB0YXJnZXRMZW5ndGgsIHBvc2l0aW9uKSk7CisgICAgICAgIG1fb3V0Lmp1bXAoY29u
dGludWF0aW9uKTsKKworICAgICAgICBtX291dC5hcHBlbmRUbyhnZW5lcmljLCBzbG93UGF0aCk7
CisgICAgICAgIFZhbHVlRnJvbUJsb2NrIGdlbmVyaWNSZXN1bHQgPSBtX291dC5hbmNob3IobV9v
dXQuY2FsbChJbnQzMiwgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvblN0cmluZ0luZGV4T2YpLCB0
YXJnZXRCdWZmZXIsIHRhcmdldExlbmd0aCwgYnVmZmVyLCBsZW5ndGgsIHBvc2l0aW9uKSk7Cisg
ICAgICAgIG1fb3V0Lmp1bXAoY29udGludWF0aW9uKTsKKworICAgICAgICBtX291dC5hcHBlbmRU
byhzbG93UGF0aCwgY29udGludWF0aW9uKTsKKyAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jl
c3VsdCA9IG1fb3V0LmFuY2hvcih2bUNhbGwoSW50MzIsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRp
b25TdHJpbmdJbmRleE9mR2VuZXJpYyksIG1fY2FsbEZyYW1lLCBiYXNlLCBzZWFyY2hlciwgcG9z
aXRpb24pKTsKKyAgICAgICAgbV9vdXQuanVtcChjb250aW51YXRpb24pOworCisgICAgICAgIG1f
b3V0LmFwcGVuZFRvKGNvbnRpbnVhdGlvbiwgbGFzdE5leHQpOworICAgICAgICBzZXRJbnQzMiht
X291dC5waGkoSW50MzIsIGZhc3RSZXN1bHQsIGdlbmVyaWNSZXN1bHQsIHNsb3dSZXN1bHQpKTsK
KyAgICB9CisKICAgICB2b2lkIGNvbXBpbGVOdW1iZXJUb1N0cmluZ1dpdGhSYWRpeCgpCiAgICAg
ewogICAgICAgICBib29sIHZhbGlkUmFkaXhJc0d1YXJhbnRlZWQgPSBmYWxzZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuY3BwCmluZGV4IGYzZGI1ODQzNDlhYmUx
MjIzN2U1ZGI1OGU5ZTUwNzRlOTFkNmQ2ZTguLmYxYTZmZjViNDljMmE5NTkxZDhiOTc5M2FkMzhj
MzJhZWZlMTUzOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lu
dHJpbnNpYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2lj
LmNwcApAQCAtMTI1LDYgKzEyNSw4IEBAIGNvbnN0IGNoYXIqIGludHJpbnNpY05hbWUoSW50cmlu
c2ljIGludHJpbnNpYykKICAgICAgICAgcmV0dXJuICJPYmplY3RQcm90b3R5cGVUb1N0cmluZ0lu
dHJpbnNpYyI7CiAgICAgY2FzZSBSZWZsZWN0R2V0UHJvdG90eXBlT2ZJbnRyaW5zaWM6CiAgICAg
ICAgIHJldHVybiAiUmVmbGVjdEdldFByb3RvdHlwZU9mSW50cmluc2ljIjsKKyAgICBjYXNlIFN0
cmluZ1Byb3RvdHlwZUluZGV4T2ZJbnRyaW5zaWM6CisgICAgICAgIHJldHVybiAiU3RyaW5nUHJv
dG90eXBlSW5kZXhPZkludHJpbnNpYyI7CiAgICAgY2FzZSBTdHJpbmdQcm90b3R5cGVWYWx1ZU9m
SW50cmluc2ljOgogICAgICAgICByZXR1cm4gIlN0cmluZ1Byb3RvdHlwZVZhbHVlT2ZJbnRyaW5z
aWMiOwogICAgIGNhc2UgU3RyaW5nUHJvdG90eXBlUmVwbGFjZUludHJpbnNpYzoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludHJpbnNpYy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKaW5kZXggMTVlYWIyNmJhYzZhNTYyYzhl
MmYyNGUzNWNkODJlMmVmNGIyNGQwNS4uODZmNzM3NThhNTJjOTIyYjBjNzI3ZWU0MWRmMmNmNTU5
ZmJmMWJjNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmlu
c2ljLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgKQEAg
LTc1LDYgKzc1LDcgQEAgZW51bSBJbnRyaW5zaWMgewogICAgIE9iamVjdEtleXNJbnRyaW5zaWMs
CiAgICAgT2JqZWN0UHJvdG90eXBlVG9TdHJpbmdJbnRyaW5zaWMsCiAgICAgUmVmbGVjdEdldFBy
b3RvdHlwZU9mSW50cmluc2ljLAorICAgIFN0cmluZ1Byb3RvdHlwZUluZGV4T2ZJbnRyaW5zaWMs
CiAgICAgU3RyaW5nUHJvdG90eXBlVmFsdWVPZkludHJpbnNpYywKICAgICBTdHJpbmdQcm90b3R5
cGVSZXBsYWNlSW50cmluc2ljLAogICAgIFN0cmluZ1Byb3RvdHlwZVJlcGxhY2VSZWdFeHBJbnRy
aW5zaWMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90
eXBlLmNwcAppbmRleCAyNDBiYTVlZjU0OWE2MjNjNGQ0ZmQyNTZkMDliYzBjY2MxMDJjODVjLi4w
ZWRiZWVhNzA4ZWY0OGMzNWY1YWVlMjk0MmNlODNjNzA3YjMyNWQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAKQEAgLTEzNiw3ICsx
MzYsNyBAQCB2b2lkIFN0cmluZ1Byb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cgogICAgIEpTQ19OQVRJVkVfSU5UUklOU0lD
X0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiY2hhckF0Iiwgc3RyaW5nUHJvdG9GdW5jQ2hh
ckF0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwg
MSwgQ2hhckF0SW50cmluc2ljKTsKICAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9X
SVRIT1VUX1RSQU5TSVRJT04oImNoYXJDb2RlQXQiLCBzdHJpbmdQcm90b0Z1bmNDaGFyQ29kZUF0
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSwg
Q2hhckNvZGVBdEludHJpbnNpYyk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04oImNvZGVQb2ludEF0Iiwgc3RyaW5nUHJvdG9GdW5jQ29kZVBvaW50QXQsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKLSAgICBK
U0NfTkFUSVZFX0ZVTkNUSU9OX1dJVEhPVVRfVFJBTlNJVElPTigiaW5kZXhPZiIsIHN0cmluZ1By
b3RvRnVuY0luZGV4T2YsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6
RG9udEVudW0pLCAxKTsKKyAgICBKU0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VU
X1RSQU5TSVRJT04oImluZGV4T2YiLCBzdHJpbmdQcm90b0Z1bmNJbmRleE9mLCBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMSwgU3RyaW5nUHJvdG90
eXBlSW5kZXhPZkludHJpbnNpYyk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RS
QU5TSVRJT04oImxhc3RJbmRleE9mIiwgc3RyaW5nUHJvdG9GdW5jTGFzdEluZGV4T2YsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udEVudW0pLCAxKTsKICAgICBK
U0NfTkFUSVZFX0lOVFJJTlNJQ19GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJT04odm0ucHJvcGVy
dHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVwbGFjZVVzaW5nUmVnRXhwUHJpdmF0ZU5hbWUoKSwg
c3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nUmVnRXhwLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
UHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMiwgU3RyaW5nUHJvdG90eXBlUmVwbGFjZVJl
Z0V4cEludHJpbnNpYyk7CiAgICAgSlNDX05BVElWRV9GVU5DVElPTl9XSVRIT1VUX1RSQU5TSVRJ
T04odm0ucHJvcGVydHlOYW1lcy0+YnVpbHRpbk5hbWVzKCkucmVwbGFjZVVzaW5nU3RyaW5nU2Vh
cmNoUHJpdmF0ZU5hbWUoKSwgc3RyaW5nUHJvdG9GdW5jUmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNo
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnRFbnVtKSwgMik7
CmRpZmYgLS1naXQgYS9KU1Rlc3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDEyYzFiNzgxNGZkMTI5ODJkMWI1MWRlMTY4ZmU4MjQ3ODVhY2MyOWUuLjVhNDIyZDQ2MzcwNWU4
NGVhOTE4MWU5M2JlNDMyZDEzNGYzZDhjOGUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0pTVGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDEtMDkgIFl1
c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0RGR10gSGFu
ZGxlIFN0cmluZy5wcm90b3R5cGUuaW5kZXhPZgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwNjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBtaWNyb2JlbmNobWFya3Mvc3RyaW5nLWluZGV4LW9mLW9u
ZS1jaGFyLmpzOiBBZGRlZC4KKyAgICAgICAgKGluZGV4T2YpOgorICAgICAgICAoc3RyaW5nX2Fw
cGVhcmVkX2hlcmUuZm9yRWFjaCk6CisgICAgICAgICogbWljcm9iZW5jaG1hcmtzL3N0cmluZy1p
bmRleC1vZi5qczogQWRkZWQuCisgICAgICAgIChpbmRleE9mKToKKyAgICAgICAgKHN0cmluZ19h
cHBlYXJlZF9oZXJlLmZvckVhY2gpOgorCiAyMDE5LTAxLTA0ICBUYWRldSBaYWdhbGxvICA8dHph
Z2FsbG9AYXBwbGUuY29tPgogCiAgICAgICAgIEJhc2VsaW5lIHZlcnNpb24gb2YgZ2V0X2J5X2lk
IG1heSBjb3JydXB0IG1ldGFkYXRhCmRpZmYgLS1naXQgYS9KU1Rlc3RzL21pY3JvYmVuY2htYXJr
cy9zdHJpbmctaW5kZXgtb2Ytb25lLWNoYXIuanMgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9z
dHJpbmctaW5kZXgtb2Ytb25lLWNoYXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDFhNDkwNTkwZDBjMTRhYjM0
ODE0Y2RlZjMyNGY0MDc4NzFhNDkxMQotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvbWljcm9i
ZW5jaG1hcmtzL3N0cmluZy1pbmRleC1vZi1vbmUtY2hhci5qcwpAQCAtMCwwICsxLDE3IEBACitm
dW5jdGlvbiBpbmRleE9mKHN0cmluZywgY2hhcmFjdGVyKQoreworICAgIHJldHVybiBzdHJpbmcu
aW5kZXhPZihjaGFyYWN0ZXIpOworfQorbm9JbmxpbmUoaW5kZXhPZik7CisKK1sKKyAgICAiSGVs
bG8iLAorICAgICJXb3JsZCIsCisgICAgIlRoaXMgaXMgYSBwZW4iLAorICAgICJXaGF0IGhhcHBl
bnM/IiwKKyAgICAiQ29jb2EiLAorICAgICJDYXBwdWNjaW5vIgorXS5mb3JFYWNoKGZ1bmN0aW9u
IChzdHJpbmcpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDFlNDsgKytpKQorICAgICAgICBp
bmRleE9mKHN0cmluZywgJ2EnKTsKK30pOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9taWNyb2JlbmNo
bWFya3Mvc3RyaW5nLWluZGV4LW9mLmpzIGIvSlNUZXN0cy9taWNyb2JlbmNobWFya3Mvc3RyaW5n
LWluZGV4LW9mLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlNTI2MjZkZmZkNDcxNmFmY2MxYTg5YmE0Njg5YjQ0
ZTUwMjA1NjIKLS0tIC9kZXYvbnVsbAorKysgYi9KU1Rlc3RzL21pY3JvYmVuY2htYXJrcy9zdHJp
bmctaW5kZXgtb2YuanMKQEAgLTAsMCArMSwxNyBAQAorZnVuY3Rpb24gaW5kZXhPZihzdHJpbmcs
IGNoYXJhY3RlcikKK3sKKyAgICByZXR1cm4gc3RyaW5nLmluZGV4T2YoY2hhcmFjdGVyKTsKK30K
K25vSW5saW5lKGluZGV4T2YpOworCitbCisgICAgIkhlbGxvIiwKKyAgICAiV29ybGQiLAorICAg
ICJUaGlzIGlzIGEgcGVuIiwKKyAgICAiV2hhdCBoYXBwZW5zPyIsCisgICAgIkNvY29hIiwKKyAg
ICAiQ2FwcHVjY2lubyIKK10uZm9yRWFjaChmdW5jdGlvbiAoc3RyaW5nKSB7CisgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkKKyAgICAgICAgaW5kZXhPZihzdHJpbmcsICdlbicpOwor
fSk7CmRpZmYgLS1naXQgYS9QZXJmb3JtYW5jZVRlc3RzL0NoYW5nZUxvZyBiL1BlcmZvcm1hbmNl
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUzMjQ0MDQxYmM0OWE4ODE1ZDcwMWIzNjJjYjY0N2M0NTQx
NzhkNTQuLmZiODI3NzYyZmI5ZDE4MzU3Y2MzNTRmNTk5OTVhNTYzZWRkOTJlZGIgMTAwNjQ0Ci0t
LSBhL1BlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCisrKyBiL1BlcmZvcm1hbmNlVGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTktMDEtMDUgIFl1c3VrZSBTdXp1a2kgIDx1dGF0
YW5lLnRlYUBnbWFpbC5jb20+CisKKyAgICAgICAgW0RGR10gSGFuZGxlIFN0cmluZy5wcm90b3R5
cGUuaW5kZXhPZgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcwNjU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBBUkVTLTYvZ2x1ZS5qczoKKwogMjAxOC0xMi0yMCAgQ2FpbyBMaW1hICA8dGljYWlvbGlt
YUBnbWFpbC5jb20+CiAKICAgICAgICAgW0JpZ0ludF0gV2Ugc2hvdWxkIGVuYWJsZSBDU0UgaW50
byBhcml0aG1ldGljIG9wZXJhdGlvbnMgdGhhdCBzcGVjdWxhdGUgQmlnSW50VXNlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>