<?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>230931</bug_id>
          
          <creation_ts>2021-09-28 19:12:55 -0700</creation_ts>
          <short_desc>Display return values in nicer way in the jsc REPL and add a prettyPrint function</short_desc>
          <delta_ts>2024-02-22 16:18:12 -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>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=231095</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>231116</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>tsavell</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1798138</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-28 19:12:55 -0700</bug_when>
    <thetext>print strings with quotes around them, and arrays with brackets.

Currently, print(&quot;[1]&quot;) looks like print(&quot;1&quot;) looks like print(1), which is not a great user experience.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798140</commentid>
    <comment_count>1</comment_count>
      <attachid>439555</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-28 19:24:03 -0700</bug_when>
    <thetext>Created attachment 439555
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798141</commentid>
    <comment_count>2</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-28 19:24:45 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #0)
&gt; print strings with quotes around them, and arrays with brackets.
&gt; 
&gt; Currently, print(&quot;[1]&quot;) looks like print(&quot;1&quot;) looks like print(1), which is
&gt; not a great user experience.

I meant to say print([1]) for the first example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798142</commentid>
    <comment_count>3</comment_count>
      <attachid>439555</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2021-09-28 19:26:54 -0700</bug_when>
    <thetext>Comment on attachment 439555
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798428</commentid>
    <comment_count>4</comment_count>
      <attachid>439621</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-29 10:23:37 -0700</bug_when>
    <thetext>Created attachment 439621
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798430</commentid>
    <comment_count>5</comment_count>
      <attachid>439621</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2021-09-29 10:25:14 -0700</bug_when>
    <thetext>Comment on attachment 439621
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798543</commentid>
    <comment_count>6</comment_count>
      <attachid>439651</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-09-29 13:50:01 -0700</bug_when>
    <thetext>Created attachment 439651
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798721</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-29 18:39:32 -0700</bug_when>
    <thetext>Committed r283293 (242318@main): &lt;https://commits.webkit.org/242318@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 439651.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1798723</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-29 18:42:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/83698777&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799501</commentid>
    <comment_count>9</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2021-10-01 13:27:43 -0700</bug_when>
    <thetext>this patch broke 20 tes262 tests, tracking in https://bugs.webkit.org/show_bug.cgi?id=231095</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799707</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-10-01 23:46:35 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 231116</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800197</commentid>
    <comment_count>11</comment_count>
      <attachid>440096</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2021-10-04 13:21:03 -0700</bug_when>
    <thetext>Created attachment 440096
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800206</commentid>
    <comment_count>12</comment_count>
      <attachid>440096</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2021-10-04 13:36:41 -0700</bug_when>
    <thetext>Comment on attachment 440096
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1800311</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-04 17:34:06 -0700</bug_when>
    <thetext>Committed r283527 (242494@main): &lt;https://commits.webkit.org/242494@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 440096.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439555</attachid>
            <date>2021-09-28 19:24:03 -0700</date>
            <delta_ts>2021-09-29 10:23:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>5179</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjgzMjA3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBA
CisyMDIxLTA5LTI4ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFByaW50IHZhbHVlcyBpbiBhIG5pY2VyIHdheSBpbiB0aGUganNjIHNoZWxsCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA5MzEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHksIHByaW50KDEp
LCBwcmludCgiMSIpLCBhbmQgcHJpbnQoWzFdKSBhbGwgcHJpbnQgdG8gc3Rkb3V0CisgICAgICAg
IHNpbXBseSBhcyAiMSIgKHdpdGhvdXQgdGhlIHF1b3RlcykuIFNhbWUgZm9yIHZhbHVlcyB3aGVu
IHJ1bm5pbmcgdGhlCisgICAgICAgIFJFUEwuIFRoaXMgaXNuJ3Qgc3VwZXIgaGVscGZ1bC4gTGV0
J3MgcHJpbnQgcXVvdGVzIGZvciBzdHJpbmdzLCBhbmQKKyAgICAgICAgYnJhY2tldHMgZm9yIGFy
cmF5cy4KKworICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgICh0b0NTdHJpbmcpOgorICAgICAg
ICAocHJpbnRJbnRlcm5hbCk6CisgICAgICAgIChKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgor
ICAgICAgICAocnVuSW50ZXJhY3RpdmUpOgorICAgICAgICAoY1N0cmluZ0Zyb21WaWV3V2l0aFN0
cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmNwcDoKKyAgICAg
ICAgKEpTQzo6SlNWYWx1ZTo6dG9XVEZTdHJpbmdGb3JDb25zb2xlIGNvbnN0KToKKyAgICAgICAg
KiBydW50aW1lL0pTQ0pTVmFsdWUuaDoKKwogMjAyMS0wOS0yOCAgU2FhbSBCYXJhdGkgIDxzYmFy
YXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBEb2VzR0NDaGVjayBkb2VzIG5vdCB1c2UgZW5vdWdo
IGJpdHMgZm9yIG5vZGVJbmRleApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHJldmlzaW9uIDI4
MzE1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjM0LDkgKzEyMzQsMTAgQEAgSlNPYmplY3QqIEdsb2JhbE9iamVjdDo6bW9kdWxlTG9hZGVy
Q3JlYQogICAgIHJldHVybiBtZXRhUHJvcGVydGllczsKIH0KIAotc3RhdGljIENTdHJpbmcgY1N0
cmluZ0Zyb21WaWV3V2l0aFN0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJv
d1Njb3BlJiBzY29wZSwgU3RyaW5nVmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nJiB2aWV3V2l0aFN0
cmluZykKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RhdGljIENTdHJpbmcgdG9DU3RyaW5nKEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHNjb3BlLCBUJiBzdHJpbmcp
CiB7Ci0gICAgRXhwZWN0ZWQ8Q1N0cmluZywgVVRGOENvbnZlcnNpb25FcnJvcj4gZXhwZWN0ZWRT
dHJpbmcgPSB2aWV3V2l0aFN0cmluZy52aWV3LnRyeUdldFV0ZjgoKTsKKyAgICBFeHBlY3RlZDxD
U3RyaW5nLCBVVEY4Q29udmVyc2lvbkVycm9yPiBleHBlY3RlZFN0cmluZyA9IHN0cmluZy50cnlH
ZXRVdGY4KCk7CiAgICAgaWYgKGV4cGVjdGVkU3RyaW5nKQogICAgICAgICByZXR1cm4gZXhwZWN0
ZWRTdHJpbmcudmFsdWUoKTsKICAgICBzd2l0Y2ggKGV4cGVjdGVkU3RyaW5nLmVycm9yKCkpIHsK
QEAgLTEyNzMsMTMgKzEyNzQsMTEgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHByaW50SW50ZXJu
YWwoSlNHbAogICAgICAgICAgICAgaWYgKEVPRiA9PSBmcHV0YygnICcsIG91dCkpCiAgICAgICAg
ICAgICAgICAgZ290byBmYWlsOwogCi0gICAgICAgIGF1dG8qIGpzU3RyaW5nID0gY2FsbEZyYW1l
LT51bmNoZWNrZWRBcmd1bWVudChpKS50b1N0cmluZyhnbG9iYWxPYmplY3QpOworICAgICAgICBT
dHJpbmcgc3RyaW5nID0gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudChpKS50b1dURlN0cmlu
Z0ZvckNvbnNvbGUoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgeyB9KTsKLSAgICAgICAgYXV0byB2aWV3V2l0aFN0cmluZyA9IGpzU3RyaW5nLT52aWV3
V2l0aFVuZGVybHlpbmdTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgYXV0byBjU3RyaW5n
ID0gdG9DU3RyaW5nKGdsb2JhbE9iamVjdCwgc2NvcGUsIHN0cmluZyk7CiAgICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgICAgIGF1dG8gc3RyaW5nID0gY1N0cmlu
Z0Zyb21WaWV3V2l0aFN0cmluZyhnbG9iYWxPYmplY3QsIHNjb3BlLCB2aWV3V2l0aFN0cmluZyk7
Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgICAgIGZ3cml0
ZShzdHJpbmcuZGF0YSgpLCBzaXplb2YoY2hhciksIHN0cmluZy5sZW5ndGgoKSwgb3V0KTsKKyAg
ICAgICAgZndyaXRlKGNTdHJpbmcuZGF0YSgpLCBzaXplb2YoY2hhciksIGNTdHJpbmcubGVuZ3Ro
KCksIG91dCk7CiAgICAgICAgIGlmIChmZXJyb3Iob3V0KSkKICAgICAgICAgICAgIGdvdG8gZmFp
bDsKICAgICB9CkBAIC0xMzA4LDcgKzEzMDcsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04o
ZnVuY3Rpb25EZWJ1ZywgCiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAg
ICBhdXRvIHZpZXdXaXRoU3RyaW5nID0ganNTdHJpbmctPnZpZXdXaXRoVW5kZXJseWluZ1N0cmlu
ZyhnbG9iYWxPYmplY3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0g
ICAgYXV0byBzdHJpbmcgPSBjU3RyaW5nRnJvbVZpZXdXaXRoU3RyaW5nKGdsb2JhbE9iamVjdCwg
c2NvcGUsIHZpZXdXaXRoU3RyaW5nKTsKKyAgICBhdXRvIHN0cmluZyA9IHRvQ1N0cmluZyhnbG9i
YWxPYmplY3QsIHNjb3BlLCB2aWV3V2l0aFN0cmluZy52aWV3KTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCB7IH0pOwogICAgIGZwdXRzKCItLT4gIiwgc3RkZXJyKTsKICAgICBmd3Jp
dGUoc3RyaW5nLmRhdGEoKSwgc2l6ZW9mKGNoYXIpLCBzdHJpbmcubGVuZ3RoKCksIHN0ZGVycik7
CkBAIC0zMjYxLDcgKzMyNjAsNyBAQCBzdGF0aWMgdm9pZCBydW5JbnRlcmFjdGl2ZShHbG9iYWxP
YmplY3QqCiAgICAgICAgICAgICBmcHV0cygiRXhjZXB0aW9uOiAiLCBzdGRvdXQpOwogICAgICAg
ICAgICAgdXRmOCA9IGV2YWx1YXRpb25FeGNlcHRpb24tPnZhbHVlKCkudG9XVEZTdHJpbmcoZ2xv
YmFsT2JqZWN0KS50cnlHZXRVdGY4KCk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgdXRm
OCA9IHJldHVyblZhbHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCkudHJ5R2V0VXRmOCgpOwor
ICAgICAgICAgICAgdXRmOCA9IHJldHVyblZhbHVlLnRvV1RGU3RyaW5nRm9yQ29uc29sZShnbG9i
YWxPYmplY3QpLnRyeUdldFV0ZjgoKTsKIAogICAgICAgICBDU3RyaW5nIHJlc3VsdDsKICAgICAg
ICAgaWYgKHV0ZjgpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1Zh
bHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NK
U1ZhbHVlLmNwcAkocmV2aXNpb24gMjgzMTU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNDSlNWYWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3MSw0ICs0NzEsMTkgQEAg
TkVWRVJfSU5MSU5FIHZvaWQgZW5zdXJlU3RpbGxBbGl2ZUhlcmUoSgogfQogI2VuZGlmCiAKK1dU
Rjo6U3RyaW5nIEpTVmFsdWU6OnRvV1RGU3RyaW5nRm9yQ29uc29sZShKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KSBjb25zdAoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgSlNTdHJpbmcq
IHN0cmluZyA9IHRvU3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKKyAgICBTdHJpbmcgcmVzdWx0ID0gc3RyaW5nLT52YWx1ZShnbG9iYWxP
YmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgaWYgKGlz
U3RyaW5nKCkpCisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCJcIiIsIHJlc3VsdCwgIlwiIik7
CisgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNBcnJheSo+KHZtLCAqdGhpcykpCisgICAgICAgIHJl
dHVybiBtYWtlU3RyaW5nKCJbIiwgcmVzdWx0LCAiXSIpOworICAgIHJldHVybiByZXN1bHQ7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNDSlNWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ0pTVmFsdWUuaAkocmV2aXNpb24gMjgzMTU4KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODksNiArMjg5LDcg
QEAgcHVibGljOgogICAgIElkZW50aWZpZXIgdG9Qcm9wZXJ0eUtleShKU0dsb2JhbE9iamVjdCop
IGNvbnN0OwogICAgIEpTVmFsdWUgdG9Qcm9wZXJ0eUtleVZhbHVlKEpTR2xvYmFsT2JqZWN0Kikg
Y29uc3Q7CiAgICAgV1RGOjpTdHJpbmcgdG9XVEZTdHJpbmcoSlNHbG9iYWxPYmplY3QqKSBjb25z
dDsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBXVEY6OlN0cmluZyB0b1dURlN0cmluZ0ZvckNvbnNv
bGUoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKICAgICBKU09iamVjdCogdG9PYmplY3QoSlNHbG9i
YWxPYmplY3QqKSBjb25zdDsKIAogICAgIC8vIEludGVnZXIgY29udmVyc2lvbnMuCg==
</data>
<flag name="review"
          id="463214"
          type_id="1"
          status="+"
          setter="tzagallo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439621</attachid>
            <date>2021-09-29 10:23:37 -0700</date>
            <delta_ts>2021-09-29 13:50:01 -0700</delta_ts>
            <desc>patch</desc>
            <filename>b-backup.diff</filename>
            <type>text/plain</type>
            <size>9291</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODMyMzMpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDIxLTA5LTI5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIFByaW50IHZhbHVlcyBpbiBhIG5pY2VyIHdheSBpbiB0aGUganNjIHNo
ZWxsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA5
MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENo
YWtyYUNvcmUvdGVzdC9qc2MtbGliLmpzOgorCiAyMDIxLTA5LTI5ICBTYWFtIEJhcmF0aSAgPHNi
YXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIENvZGUgaW5zaWRlIHN0cmVuZ3RoIHJlZHVjdGlv
biBjYW4gaW5jb3JyZWN0bHkgcHJvdmUgdGhhdCB3ZSBrbm93IHdoYXQgbGFzdEluZGV4IGlzCklu
ZGV4OiBKU1Rlc3RzL0NoYWtyYUNvcmUvdGVzdC9qc2MtbGliLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpT
VGVzdHMvQ2hha3JhQ29yZS90ZXN0L2pzYy1saWIuanMJKHJldmlzaW9uIDI4MzIzMikKKysrIEpT
VGVzdHMvQ2hha3JhQ29yZS90ZXN0L2pzYy1saWIuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSw1IEBACitwcmludCA9IGxlZ2FjeVByaW50OworCiBXU2NyaXB0ID0gewogICAgIF9qc2NHQzog
Z2MsCiAgICAgX2pzY0xvYWQ6IGxvYWQsCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI4MzIzMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwyOCBAQAorMjAyMS0wOS0yOSAgU2FhbSBCYXJhdGkgIDxzYmFy
YXRpQGFwcGxlLmNvbT4KKworICAgICAgICBQcmludCB2YWx1ZXMgaW4gYSBuaWNlciB3YXkgaW4g
dGhlIGpzYyBzaGVsbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjMwOTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQ3VycmVudGx5LCBwcmludCgxKSwgcHJpbnQoIjEiKSwgYW5kIHByaW50KFsxXSkgYWxs
IHByaW50IHRvIHN0ZG91dAorICAgICAgICBzaW1wbHkgYXMgIjEiICh3aXRob3V0IHRoZSBxdW90
ZXMpLiBTYW1lIGZvciB2YWx1ZXMgd2hlbiBydW5uaW5nIHRoZQorICAgICAgICBSRVBMLiBUaGlz
IGlzbid0IHN1cGVyIGhlbHBmdWwuIExldCdzIHByaW50IHF1b3RlcyBmb3Igc3RyaW5ncywgYW5k
CisgICAgICAgIGJyYWNrZXRzIGZvciBhcnJheXMuCisKKyAgICAgICAgU29tZSB0ZXN0cyByZWx5
IG9uIHRoZSBvbGQgcHJpbnQgYmVoYXZpb3IuIFRob3NlIHRlc3RzIG5vdyB1c2UgdGhlIGxlZ2Fj
eVByaW50CisgICAgICAgIGluc3RlYWQuCisKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAo
dG9DU3RyaW5nKToKKyAgICAgICAgKHByaW50SW50ZXJuYWwpOgorICAgICAgICAoSlNDX0RFRklO
RV9IT1NUX0ZVTkNUSU9OKToKKyAgICAgICAgKHJ1bkludGVyYWN0aXZlKToKKyAgICAgICAgKGNT
dHJpbmdGcm9tVmlld1dpdGhTdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlND
SlNWYWx1ZS5jcHA6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvV1RGU3RyaW5nRm9yQ29uc29s
ZSBjb25zdCk6CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmg6CisKIDIwMjEtMDktMjkg
IFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQ29kZSBpbnNpZGUg
c3RyZW5ndGggcmVkdWN0aW9uIGNhbiBpbmNvcnJlY3RseSBwcm92ZSB0aGF0IHdlIGtub3cgd2hh
dCBsYXN0SW5kZXggaXMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAyODMyMzIp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc2
LDYgKzI3Niw3IEBAIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW8KIAog
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QcmludFN0ZE91dCk7CiBz
dGF0aWMgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblByaW50U3RkRXJyKTsKK3N0
YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uTGVnYWN5UHJpbnQpOwogc3Rh
dGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EZWJ1Zyk7CiBzdGF0aWMgSlND
X0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRlc2NyaWJlKTsKIHN0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRGVzY3JpYmVBcnJheSk7CkBAIC01MjQsNiArNTI1
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJkZXNjcmliZUFycmF5Iiwg
ZnVuY3Rpb25EZXNjcmliZUFycmF5LCAxKTsKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJwcmlu
dCIsIGZ1bmN0aW9uUHJpbnRTdGRPdXQsIDEpOwogICAgICAgICBhZGRGdW5jdGlvbih2bSwgInBy
aW50RXJyIiwgZnVuY3Rpb25QcmludFN0ZEVyciwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZt
LCAibGVnYWN5UHJpbnQiLCBmdW5jdGlvbkxlZ2FjeVByaW50LCAxKTsKICAgICAgICAgYWRkRnVu
Y3Rpb24odm0sICJxdWl0IiwgZnVuY3Rpb25RdWl0LCAwKTsKICAgICAgICAgYWRkRnVuY3Rpb24o
dm0sICJnYyIsIGZ1bmN0aW9uR0NBbmRTd2VlcCwgMCk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZt
LCAiZnVsbEdDIiwgZnVuY3Rpb25GdWxsR0MsIDApOwpAQCAtMTIzNCw5ICsxMjM2LDEwIEBAIEpT
T2JqZWN0KiBHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckNyZWEKICAgICByZXR1cm4gbWV0YVBy
b3BlcnRpZXM7CiB9CiAKLXN0YXRpYyBDU3RyaW5nIGNTdHJpbmdGcm9tVmlld1dpdGhTdHJpbmco
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIFN0cmluZ1Zp
ZXdXaXRoVW5kZXJseWluZ1N0cmluZyYgdmlld1dpdGhTdHJpbmcpCit0ZW1wbGF0ZSA8dHlwZW5h
bWUgVD4KK3N0YXRpYyBDU3RyaW5nIHRvQ1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBUaHJvd1Njb3BlJiBzY29wZSwgVCYgc3RyaW5nKQogewotICAgIEV4cGVjdGVkPENTdHJp
bmcsIFVURjhDb252ZXJzaW9uRXJyb3I+IGV4cGVjdGVkU3RyaW5nID0gdmlld1dpdGhTdHJpbmcu
dmlldy50cnlHZXRVdGY4KCk7CisgICAgRXhwZWN0ZWQ8Q1N0cmluZywgVVRGOENvbnZlcnNpb25F
cnJvcj4gZXhwZWN0ZWRTdHJpbmcgPSBzdHJpbmcudHJ5R2V0VXRmOCgpOwogICAgIGlmIChleHBl
Y3RlZFN0cmluZykKICAgICAgICAgcmV0dXJuIGV4cGVjdGVkU3RyaW5nLnZhbHVlKCk7CiAgICAg
c3dpdGNoIChleHBlY3RlZFN0cmluZy5lcnJvcigpKSB7CkBAIC0xMjU1LDcgKzEyNTgsNyBAQCBz
dGF0aWMgQ1N0cmluZyBjU3RyaW5nRnJvbVZpZXdXaXRoU3RyaW5nCiAgICAgcmV0dXJuIHsgfTsK
IH0KIAotc3RhdGljIEVuY29kZWRKU1ZhbHVlIHByaW50SW50ZXJuYWwoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEZJTEUqIG91dCkKK3N0YXRpYyBF
bmNvZGVkSlNWYWx1ZSBwcmludEludGVybmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IENhbGxGcmFtZSogY2FsbEZyYW1lLCBGSUxFKiBvdXQsIGJvb2wgbGVnYWN5KQogewogICAgIFZN
JiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7CkBAIC0xMjczLDEzICsxMjc2LDExIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBwcmludEludGVybmFsKEpTR2wKICAgICAgICAgICAgIGlmIChFT0YgPT0gZnB1dGMoJyAnLCBv
dXQpKQogICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKIAotICAgICAgICBhdXRvKiBqc1N0cmlu
ZyA9IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoaSkudG9TdHJpbmcoZ2xvYmFsT2JqZWN0
KTsKKyAgICAgICAgU3RyaW5nIHN0cmluZyA9IGxlZ2FjeSA/IGNhbGxGcmFtZS0+dW5jaGVja2Vk
QXJndW1lbnQoaSkudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KSA6IGNhbGxGcmFtZS0+dW5jaGVj
a2VkQXJndW1lbnQoaSkudG9XVEZTdHJpbmdGb3JDb25zb2xlKGdsb2JhbE9iamVjdCk7CiAgICAg
ICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgICAgIGF1dG8gdmlld1dp
dGhTdHJpbmcgPSBqc1N0cmluZy0+dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKGdsb2JhbE9iamVj
dCk7CisgICAgICAgIGF1dG8gY1N0cmluZyA9IHRvQ1N0cmluZyhnbG9iYWxPYmplY3QsIHNjb3Bl
LCBzdHJpbmcpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotICAg
ICAgICBhdXRvIHN0cmluZyA9IGNTdHJpbmdGcm9tVmlld1dpdGhTdHJpbmcoZ2xvYmFsT2JqZWN0
LCBzY29wZSwgdmlld1dpdGhTdHJpbmcpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCB7IH0pOwotICAgICAgICBmd3JpdGUoc3RyaW5nLmRhdGEoKSwgc2l6ZW9mKGNoYXIpLCBz
dHJpbmcubGVuZ3RoKCksIG91dCk7CisgICAgICAgIGZ3cml0ZShjU3RyaW5nLmRhdGEoKSwgc2l6
ZW9mKGNoYXIpLCBjU3RyaW5nLmxlbmd0aCgpLCBvdXQpOwogICAgICAgICBpZiAoZmVycm9yKG91
dCkpCiAgICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtMTI5MiwxMiArMTI5MywxNyBA
QCBmYWlsOgogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QcmludFN0ZE91dCwg
KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsK
LSAgICByZXR1cm4gcHJpbnRJbnRlcm5hbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgc3Rkb3V0
KTsKKyAgICByZXR1cm4gcHJpbnRJbnRlcm5hbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgc3Rk
b3V0LCBmYWxzZSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblByaW50
U3RkRXJyLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQogewotICAgIHJldHVybiBwcmludEludGVybmFsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1l
LCBzdGRlcnIpOworICAgIHJldHVybiBwcmludEludGVybmFsKGdsb2JhbE9iamVjdCwgY2FsbEZy
YW1lLCBzdGRlcnIsIGZhbHNlKTsKK30KKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uTGVnYWN5UHJpbnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUq
IGNhbGxGcmFtZSkpCit7CisgICAgcmV0dXJuIHByaW50SW50ZXJuYWwoZ2xvYmFsT2JqZWN0LCBj
YWxsRnJhbWUsIHN0ZG91dCwgdHJ1ZSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihm
dW5jdGlvbkRlYnVnLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUpKQpAQCAtMTMwOCw3ICsxMzE0LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9O
KGZ1bmN0aW9uRGVidWcsIAogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAg
ICAgYXV0byB2aWV3V2l0aFN0cmluZyA9IGpzU3RyaW5nLT52aWV3V2l0aFVuZGVybHlpbmdTdHJp
bmcoZ2xvYmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwot
ICAgIGF1dG8gc3RyaW5nID0gY1N0cmluZ0Zyb21WaWV3V2l0aFN0cmluZyhnbG9iYWxPYmplY3Qs
IHNjb3BlLCB2aWV3V2l0aFN0cmluZyk7CisgICAgYXV0byBzdHJpbmcgPSB0b0NTdHJpbmcoZ2xv
YmFsT2JqZWN0LCBzY29wZSwgdmlld1dpdGhTdHJpbmcudmlldyk7CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgeyB9KTsKICAgICBmcHV0cygiLS0+ICIsIHN0ZGVycik7CiAgICAgZndy
aXRlKHN0cmluZy5kYXRhKCksIHNpemVvZihjaGFyKSwgc3RyaW5nLmxlbmd0aCgpLCBzdGRlcnIp
OwpAQCAtMzI2MSw3ICszMjY3LDcgQEAgc3RhdGljIHZvaWQgcnVuSW50ZXJhY3RpdmUoR2xvYmFs
T2JqZWN0KgogICAgICAgICAgICAgZnB1dHMoIkV4Y2VwdGlvbjogIiwgc3Rkb3V0KTsKICAgICAg
ICAgICAgIHV0ZjggPSBldmFsdWF0aW9uRXhjZXB0aW9uLT52YWx1ZSgpLnRvV1RGU3RyaW5nKGds
b2JhbE9iamVjdCkudHJ5R2V0VXRmOCgpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHV0
ZjggPSByZXR1cm5WYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpLnRyeUdldFV0ZjgoKTsK
KyAgICAgICAgICAgIHV0ZjggPSByZXR1cm5WYWx1ZS50b1dURlN0cmluZ0ZvckNvbnNvbGUoZ2xv
YmFsT2JqZWN0KS50cnlHZXRVdGY4KCk7CiAKICAgICAgICAgQ1N0cmluZyByZXN1bHQ7CiAgICAg
ICAgIGlmICh1dGY4KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNW
YWx1ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlND
SlNWYWx1ZS5jcHAJKHJldmlzaW9uIDI4MzIzMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ0pTVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NzEsNCArNDcxLDE5IEBA
IE5FVkVSX0lOTElORSB2b2lkIGVuc3VyZVN0aWxsQWxpdmVIZXJlKEoKIH0KICNlbmRpZgogCitX
VEY6OlN0cmluZyBKU1ZhbHVlOjp0b1dURlN0cmluZ0ZvckNvbnNvbGUoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCkgY29uc3QKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEpTU3RyaW5n
KiBzdHJpbmcgPSB0b1N0cmluZyhnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIHsgfSk7CisgICAgU3RyaW5nIHJlc3VsdCA9IHN0cmluZy0+dmFsdWUoZ2xvYmFs
T2JqZWN0KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIGlmIChp
c1N0cmluZygpKQorICAgICAgICByZXR1cm4gbWFrZVN0cmluZygiXCIiLCByZXN1bHQsICJcIiIp
OworICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTQXJyYXkqPih2bSwgKnRoaXMpKQorICAgICAgICBy
ZXR1cm4gbWFrZVN0cmluZygiWyIsIHJlc3VsdCwgIl0iKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCiB9IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ0pTVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0NKU1ZhbHVlLmgJKHJldmlzaW9uIDI4MzIzMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ0pTVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjg5LDYgKzI4OSw3
IEBAIHB1YmxpYzoKICAgICBJZGVudGlmaWVyIHRvUHJvcGVydHlLZXkoSlNHbG9iYWxPYmplY3Qq
KSBjb25zdDsKICAgICBKU1ZhbHVlIHRvUHJvcGVydHlLZXlWYWx1ZShKU0dsb2JhbE9iamVjdCop
IGNvbnN0OwogICAgIFdURjo6U3RyaW5nIHRvV1RGU3RyaW5nKEpTR2xvYmFsT2JqZWN0KikgY29u
c3Q7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgV1RGOjpTdHJpbmcgdG9XVEZTdHJpbmdGb3JDb25z
b2xlKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAgSlNPYmplY3QqIHRvT2JqZWN0KEpTR2xv
YmFsT2JqZWN0KikgY29uc3Q7CiAKICAgICAvLyBJbnRlZ2VyIGNvbnZlcnNpb25zLgpJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMjgzMjMyKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMDktMjkgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBh
cHBsZS5jb20+CisKKyAgICAgICAgUHJpbnQgdmFsdWVzIGluIGEgbmljZXIgd2F5IGluIHRoZSBq
c2Mgc2hlbGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMDkzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogcmVzb3VyY2VzL3N0YW5kYWxvbmUtcHJlLmpzOgorCiAyMDIxLTA5LTI5ICBBeXVtaSBLb2pp
bWEgIDxheXVtaV9rb2ppbWFAYXBwbGUuY29tPgogCiAgICAgICAgIFsgaU9TIF0gZmFzdC9zY3Jv
bGxpbmcvaW9zL2NsaWNrLWV2ZW50cy1hZnRlci1sb25nLXByZXNzLWR1cmluZy1tb21lbnR1bS1z
Y3JvbGwtaW4tb3ZlcmZsb3cuaHRtbCBpcyBhIGZsYWt5IHRpbWVvdXQuCkluZGV4OiBMYXlvdXRU
ZXN0cy9yZXNvdXJjZXMvc3RhbmRhbG9uZS1wcmUuanMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcmVzb3VyY2VzL3N0YW5kYWxvbmUtcHJlLmpzCShyZXZpc2lvbiAyODMyMzIpCisrKyBMYXlv
dXRUZXN0cy9yZXNvdXJjZXMvc3RhbmRhbG9uZS1wcmUuanMJKHdvcmtpbmcgY29weSkKQEAgLTEz
LDYgKzEzLDggQEAgc2lsZW50VGVzdFBhc3MgPSBmYWxzZTsKIGRpZFBhc3NTb21lVGVzdHNTaWxl
bnRseSA9IGZhbHNlOwogZGlkRmFpbFNvbWVUZXN0cyA9IGZhbHNlOwogCitwcmludCA9IGxlZ2Fj
eVByaW50OworCiBmdW5jdGlvbiBkZXNjcmlwdGlvbihtc2cpCiB7CiAgICAgcHJpbnQobXNnKTsK
</data>
<flag name="review"
          id="463306"
          type_id="1"
          status="+"
          setter="tzagallo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439651</attachid>
            <date>2021-09-29 13:50:01 -0700</date>
            <delta_ts>2021-10-04 13:21:03 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>10471</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IEpTVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODMyNTgpCisrKyBKU1Rlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDEyIEBACisyMDIxLTA5LTI5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgorCisgICAgICAgIFByaW50IHZhbHVlcyBpbiBhIG5pY2VyIHdheSBpbiB0aGUganNjIHNo
ZWxsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzA5
MzEKKworICAgICAgICBSZXZpZXdlZCBieSBUYWRldSBaYWdhbGxvLgorCisgICAgICAgICogQ2hh
a3JhQ29yZS90ZXN0L2pzYy1saWIuanM6CisKIDIwMjEtMDktMjkgIFNhYW0gQmFyYXRpICA8c2Jh
cmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgQ29kZSBpbnNpZGUgc3RyZW5ndGggcmVkdWN0aW9u
IGNhbiBpbmNvcnJlY3RseSBwcm92ZSB0aGF0IHdlIGtub3cgd2hhdCBsYXN0SW5kZXggaXMKSW5k
ZXg6IEpTVGVzdHMvQ2hha3JhQ29yZS90ZXN0L2pzYy1saWIuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSlNU
ZXN0cy9DaGFrcmFDb3JlL3Rlc3QvanNjLWxpYi5qcwkocmV2aXNpb24gMjgzMjU4KQorKysgSlNU
ZXN0cy9DaGFrcmFDb3JlL3Rlc3QvanNjLWxpYi5qcwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDUgQEAKK3ByaW50ID0gbGVnYWN5UHJpbnQ7CisKIFdTY3JpcHQgPSB7CiAgICAgX2pzY0dDOiBn
YywKICAgICBfanNjTG9hZDogbG9hZCwKSW5kZXg6IEpTVGVzdHMvZXhjZXB0aW9uRnV6ei8zZC1j
dWJlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIEpTVGVzdHMvZXhjZXB0aW9uRnV6ei8zZC1jdWJlLmpzCShy
ZXZpc2lvbiAyODMyNTgpCisrKyBKU1Rlc3RzL2V4Y2VwdGlvbkZ1enovM2QtY3ViZS5qcwkod29y
a2luZyBjb3B5KQpAQCAtMzU4LDUgKzM1OCw1IEBAIERpc3BsQXJlYSA9IG51bGw7CiAKIH0pKCk7
CiB9IGNhdGNoIChlKSB7Ci0gICAgcHJpbnQoIkpTQyBFWENFUFRJT04gRlVaWjogQ2F1Z2h0IGV4
Y2VwdGlvbjogIiArIGUpOworICAgIGxlZ2FjeVByaW50KCJKU0MgRVhDRVBUSU9OIEZVWlo6IENh
dWdodCBleGNlcHRpb246ICIgKyBlKTsKIH0KSW5kZXg6IEpTVGVzdHMvZXhjZXB0aW9uRnV6ei9k
YXRlLWZvcm1hdC14cGFyYi5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL2V4Y2VwdGlvbkZ1enov
ZGF0ZS1mb3JtYXQteHBhcmIuanMJKHJldmlzaW9uIDI4MzI1OCkKKysrIEpTVGVzdHMvZXhjZXB0
aW9uRnV6ei9kYXRlLWZvcm1hdC14cGFyYi5qcwkod29ya2luZyBjb3B5KQpAQCAtNDI0LDUgKzQy
NCw1IEBAIGZvciAoaSA9IDA7IGkgPCA0MDAwOyArK2kpIHsKIAogfSkoKTsKIH0gY2F0Y2ggKGUp
IHsKLSAgICBwcmludCgiSlNDIEVYQ0VQVElPTiBGVVpaOiBDYXVnaHQgZXhjZXB0aW9uOiAiICsg
ZSk7CisgICAgbGVnYWN5UHJpbnQoIkpTQyBFWENFUFRJT04gRlVaWjogQ2F1Z2h0IGV4Y2VwdGlv
bjogIiArIGUpOwogfQpJbmRleDogSlNUZXN0cy9leGNlcHRpb25GdXp6L2VhcmxleS1ib3llci5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBKU1Rlc3RzL2V4Y2VwdGlvbkZ1enovZWFybGV5LWJveWVyLmpzCShy
ZXZpc2lvbiAyODMyNTgpCisrKyBKU1Rlc3RzL2V4Y2VwdGlvbkZ1enovZWFybGV5LWJveWVyLmpz
CSh3b3JraW5nIGNvcHkpCkBAIC00Njg0LDYgKzQ2ODQsNiBAQCBmb3IgKHZhciBpID0gMDsgaSA8
IDQ7ICsraSkgewogfQogfSkoKTsKIH0gY2F0Y2ggKGUpIHsKLSAgICBwcmludCgiSlNDIEVYQ0VQ
VElPTiBGVVpaOiBDYXVnaHQgZXhjZXB0aW9uOiAiICsgZSk7CisgICAgbGVnYWN5UHJpbnQoIkpT
QyBFWENFUFRJT04gRlVaWjogQ2F1Z2h0IGV4Y2VwdGlvbjogIiArIGUpOwogfQogCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4MzI1OCkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOCBAQAorMjAyMS0w
OS0yOSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAgICBQcmludCB2
YWx1ZXMgaW4gYSBuaWNlciB3YXkgaW4gdGhlIGpzYyBzaGVsbAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwOTMxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgVGFkZXUgWmFnYWxsby4KKworICAgICAgICBDdXJyZW50bHksIHByaW50KDEpLCBwcmludCgi
MSIpLCBhbmQgcHJpbnQoWzFdKSBhbGwgcHJpbnQgdG8gc3Rkb3V0CisgICAgICAgIHNpbXBseSBh
cyAiMSIgKHdpdGhvdXQgdGhlIHF1b3RlcykuIFNhbWUgZm9yIHZhbHVlcyB3aGVuIHJ1bm5pbmcg
dGhlCisgICAgICAgIFJFUEwuIFRoaXMgaXNuJ3Qgc3VwZXIgaGVscGZ1bC4gTGV0J3MgcHJpbnQg
cXVvdGVzIGZvciBzdHJpbmdzLCBhbmQKKyAgICAgICAgYnJhY2tldHMgZm9yIGFycmF5cy4KKwor
ICAgICAgICBTb21lIHRlc3RzIHJlbHkgb24gdGhlIG9sZCBwcmludCBiZWhhdmlvci4gVGhvc2Ug
dGVzdHMgbm93IHVzZSB0aGUgbGVnYWN5UHJpbnQKKyAgICAgICAgaW5zdGVhZC4KKworICAgICAg
ICAqIGpzYy5jcHA6CisgICAgICAgICh0b0NTdHJpbmcpOgorICAgICAgICAocHJpbnRJbnRlcm5h
bCk6CisgICAgICAgIChKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04pOgorICAgICAgICAocnVuSW50
ZXJhY3RpdmUpOgorICAgICAgICAoY1N0cmluZ0Zyb21WaWV3V2l0aFN0cmluZyk6IERlbGV0ZWQu
CisgICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6SlNWYWx1
ZTo6dG9XVEZTdHJpbmdGb3JDb25zb2xlIGNvbnN0KToKKyAgICAgICAgKiBydW50aW1lL0pTQ0pT
VmFsdWUuaDoKKwogMjAyMS0wOS0yOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29t
PgogCiAgICAgICAgIFtKU0NdIFJlbW92ZSBDb2RlQmxvY2s6Om1fbGxpbnRFeGVjdXRlQ291bnRl
cgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHJldmlzaW9uIDI4MzI1OCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzYsNiArMjc2LDcgQEAg
c3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3RpbwogCiBzdGF0aWMgSlNDX0RF
Q0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblByaW50U3RkT3V0KTsKIHN0YXRpYyBKU0NfREVD
TEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUHJpbnRTdGRFcnIpOworc3RhdGljIEpTQ19ERUNM
QVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25MZWdhY3lQcmludCk7CiBzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRlYnVnKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGZ1bmN0aW9uRGVzY3JpYmUpOwogc3RhdGljIEpTQ19ERUNMQVJFX0hPU1RfRlVO
Q1RJT04oZnVuY3Rpb25EZXNjcmliZUFycmF5KTsKQEAgLTUyNCw2ICs1MjUsNyBAQCBwcml2YXRl
OgogICAgICAgICBhZGRGdW5jdGlvbih2bSwgImRlc2NyaWJlQXJyYXkiLCBmdW5jdGlvbkRlc2Ny
aWJlQXJyYXksIDEpOwogICAgICAgICBhZGRGdW5jdGlvbih2bSwgInByaW50IiwgZnVuY3Rpb25Q
cmludFN0ZE91dCwgMSk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicHJpbnRFcnIiLCBmdW5j
dGlvblByaW50U3RkRXJyLCAxKTsKKyAgICAgICAgYWRkRnVuY3Rpb24odm0sICJsZWdhY3lQcmlu
dCIsIGZ1bmN0aW9uTGVnYWN5UHJpbnQsIDEpOwogICAgICAgICBhZGRGdW5jdGlvbih2bSwgInF1
aXQiLCBmdW5jdGlvblF1aXQsIDApOwogICAgICAgICBhZGRGdW5jdGlvbih2bSwgImdjIiwgZnVu
Y3Rpb25HQ0FuZFN3ZWVwLCAwKTsKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJmdWxsR0MiLCBm
dW5jdGlvbkZ1bGxHQywgMCk7CkBAIC0xMjM0LDkgKzEyMzYsMTAgQEAgSlNPYmplY3QqIEdsb2Jh
bE9iamVjdDo6bW9kdWxlTG9hZGVyQ3JlYQogICAgIHJldHVybiBtZXRhUHJvcGVydGllczsKIH0K
IAotc3RhdGljIENTdHJpbmcgY1N0cmluZ0Zyb21WaWV3V2l0aFN0cmluZyhKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSwgU3RyaW5nVmlld1dpdGhVbmRlcmx5
aW5nU3RyaW5nJiB2aWV3V2l0aFN0cmluZykKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPgorc3RhdGlj
IENTdHJpbmcgdG9DU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRocm93U2Nv
cGUmIHNjb3BlLCBUJiBzdHJpbmcpCiB7Ci0gICAgRXhwZWN0ZWQ8Q1N0cmluZywgVVRGOENvbnZl
cnNpb25FcnJvcj4gZXhwZWN0ZWRTdHJpbmcgPSB2aWV3V2l0aFN0cmluZy52aWV3LnRyeUdldFV0
ZjgoKTsKKyAgICBFeHBlY3RlZDxDU3RyaW5nLCBVVEY4Q29udmVyc2lvbkVycm9yPiBleHBlY3Rl
ZFN0cmluZyA9IHN0cmluZy50cnlHZXRVdGY4KCk7CiAgICAgaWYgKGV4cGVjdGVkU3RyaW5nKQog
ICAgICAgICByZXR1cm4gZXhwZWN0ZWRTdHJpbmcudmFsdWUoKTsKICAgICBzd2l0Y2ggKGV4cGVj
dGVkU3RyaW5nLmVycm9yKCkpIHsKQEAgLTEyNTUsNyArMTI1OCw3IEBAIHN0YXRpYyBDU3RyaW5n
IGNTdHJpbmdGcm9tVmlld1dpdGhTdHJpbmcKICAgICByZXR1cm4geyB9OwogfQogCi1zdGF0aWMg
RW5jb2RlZEpTVmFsdWUgcHJpbnRJbnRlcm5hbChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSwgRklMRSogb3V0KQorc3RhdGljIEVuY29kZWRKU1ZhbHVl
IHByaW50SW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBj
YWxsRnJhbWUsIEZJTEUqIG91dCwgYm9vbCBsZWdhY3kpCiB7CiAgICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
QEAgLTEyNzMsMTMgKzEyNzYsMTEgQEAgc3RhdGljIEVuY29kZWRKU1ZhbHVlIHByaW50SW50ZXJu
YWwoSlNHbAogICAgICAgICAgICAgaWYgKEVPRiA9PSBmcHV0YygnICcsIG91dCkpCiAgICAgICAg
ICAgICAgICAgZ290byBmYWlsOwogCi0gICAgICAgIGF1dG8qIGpzU3RyaW5nID0gY2FsbEZyYW1l
LT51bmNoZWNrZWRBcmd1bWVudChpKS50b1N0cmluZyhnbG9iYWxPYmplY3QpOworICAgICAgICBT
dHJpbmcgc3RyaW5nID0gbGVnYWN5ID8gY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudChpKS50
b1dURlN0cmluZyhnbG9iYWxPYmplY3QpIDogY2FsbEZyYW1lLT51bmNoZWNrZWRBcmd1bWVudChp
KS50b1dURlN0cmluZ0ZvckNvbnNvbGUoZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgeyB9KTsKLSAgICAgICAgYXV0byB2aWV3V2l0aFN0cmluZyA9IGpz
U3RyaW5nLT52aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAg
YXV0byBjU3RyaW5nID0gdG9DU3RyaW5nKGdsb2JhbE9iamVjdCwgc2NvcGUsIHN0cmluZyk7CiAg
ICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgICAgIGF1dG8gc3Ry
aW5nID0gY1N0cmluZ0Zyb21WaWV3V2l0aFN0cmluZyhnbG9iYWxPYmplY3QsIHNjb3BlLCB2aWV3
V2l0aFN0cmluZyk7Ci0gICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0g
ICAgICAgIGZ3cml0ZShzdHJpbmcuZGF0YSgpLCBzaXplb2YoY2hhciksIHN0cmluZy5sZW5ndGgo
KSwgb3V0KTsKKyAgICAgICAgZndyaXRlKGNTdHJpbmcuZGF0YSgpLCBzaXplb2YoY2hhciksIGNT
dHJpbmcubGVuZ3RoKCksIG91dCk7CiAgICAgICAgIGlmIChmZXJyb3Iob3V0KSkKICAgICAgICAg
ICAgIGdvdG8gZmFpbDsKICAgICB9CkBAIC0xMjkyLDEyICsxMjkzLDE3IEBAIGZhaWw6CiAKIEpT
Q19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblByaW50U3RkT3V0LCAoSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQogewotICAgIHJldHVybiBw
cmludEludGVybmFsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBzdGRvdXQpOworICAgIHJldHVy
biBwcmludEludGVybmFsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBzdGRvdXQsIGZhbHNlKTsK
IH0KIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUHJpbnRTdGRFcnIsIChKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCiB7Ci0gICAg
cmV0dXJuIHByaW50SW50ZXJuYWwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIHN0ZGVycik7Cisg
ICAgcmV0dXJuIHByaW50SW50ZXJuYWwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJhbWUsIHN0ZGVyciwg
ZmFsc2UpOworfQorCitKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25MZWdhY3lQcmlu
dCwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkK
K3sKKyAgICByZXR1cm4gcHJpbnRJbnRlcm5hbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgc3Rk
b3V0LCB0cnVlKTsKIH0KIAogSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRGVidWcs
IChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxGcmFtZSkpCkBA
IC0xMzA4LDcgKzEzMTQsNyBAQCBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EZWJ1
ZywgCiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKICAgICBhdXRvIHZpZXdX
aXRoU3RyaW5nID0ganNTdHJpbmctPnZpZXdXaXRoVW5kZXJseWluZ1N0cmluZyhnbG9iYWxPYmpl
Y3QpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgYXV0byBzdHJp
bmcgPSBjU3RyaW5nRnJvbVZpZXdXaXRoU3RyaW5nKGdsb2JhbE9iamVjdCwgc2NvcGUsIHZpZXdX
aXRoU3RyaW5nKTsKKyAgICBhdXRvIHN0cmluZyA9IHRvQ1N0cmluZyhnbG9iYWxPYmplY3QsIHNj
b3BlLCB2aWV3V2l0aFN0cmluZy52aWV3KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB7IH0pOwogICAgIGZwdXRzKCItLT4gIiwgc3RkZXJyKTsKICAgICBmd3JpdGUoc3RyaW5nLmRh
dGEoKSwgc2l6ZW9mKGNoYXIpLCBzdHJpbmcubGVuZ3RoKCksIHN0ZGVycik7CkBAIC0zMjYxLDcg
KzMyNjcsNyBAQCBzdGF0aWMgdm9pZCBydW5JbnRlcmFjdGl2ZShHbG9iYWxPYmplY3QqCiAgICAg
ICAgICAgICBmcHV0cygiRXhjZXB0aW9uOiAiLCBzdGRvdXQpOwogICAgICAgICAgICAgdXRmOCA9
IGV2YWx1YXRpb25FeGNlcHRpb24tPnZhbHVlKCkudG9XVEZTdHJpbmcoZ2xvYmFsT2JqZWN0KS50
cnlHZXRVdGY4KCk7CiAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgdXRmOCA9IHJldHVyblZh
bHVlLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCkudHJ5R2V0VXRmOCgpOworICAgICAgICAgICAg
dXRmOCA9IHJldHVyblZhbHVlLnRvV1RGU3RyaW5nRm9yQ29uc29sZShnbG9iYWxPYmplY3QpLnRy
eUdldFV0ZjgoKTsKIAogICAgICAgICBDU3RyaW5nIHJlc3VsdDsKICAgICAgICAgaWYgKHV0Zjgp
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmNwcAko
cmV2aXNpb24gMjgzMjU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNW
YWx1ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3MSw0ICs0NzEsMTkgQEAgTkVWRVJfSU5MSU5F
IHZvaWQgZW5zdXJlU3RpbGxBbGl2ZUhlcmUoSgogfQogI2VuZGlmCiAKK1dURjo6U3RyaW5nIEpT
VmFsdWU6OnRvV1RGU3RyaW5nRm9yQ29uc29sZShKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
KSBjb25zdAoreworICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisgICAgSlNTdHJpbmcqIHN0cmluZyA9IHRv
U3RyaW5nKGdsb2JhbE9iamVjdCk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9
KTsKKyAgICBTdHJpbmcgcmVzdWx0ID0gc3RyaW5nLT52YWx1ZShnbG9iYWxPYmplY3QpOworICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CisgICAgaWYgKGlzU3RyaW5nKCkpCisg
ICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCJcIiIsIHJlc3VsdCwgIlwiIik7CisgICAgaWYgKGpz
RHluYW1pY0Nhc3Q8SlNBcnJheSo+KHZtLCAqdGhpcykpCisgICAgICAgIHJldHVybiBtYWtlU3Ry
aW5nKCJbIiwgcmVzdWx0LCAiXSIpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ0pTVmFs
dWUuaAkocmV2aXNpb24gMjgzMjU4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDSlNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yODksNiArMjg5LDcgQEAgcHVibGljOgog
ICAgIElkZW50aWZpZXIgdG9Qcm9wZXJ0eUtleShKU0dsb2JhbE9iamVjdCopIGNvbnN0OwogICAg
IEpTVmFsdWUgdG9Qcm9wZXJ0eUtleVZhbHVlKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAg
V1RGOjpTdHJpbmcgdG9XVEZTdHJpbmcoSlNHbG9iYWxPYmplY3QqKSBjb25zdDsKKyAgICBKU19F
WFBPUlRfUFJJVkFURSBXVEY6OlN0cmluZyB0b1dURlN0cmluZ0ZvckNvbnNvbGUoSlNHbG9iYWxP
YmplY3QqKSBjb25zdDsKICAgICBKU09iamVjdCogdG9PYmplY3QoSlNHbG9iYWxPYmplY3QqKSBj
b25zdDsKIAogICAgIC8vIEludGVnZXIgY29udmVyc2lvbnMuCkluZGV4OiBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
ODMyNTgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxMiBAQAorMjAyMS0wOS0yOSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KKwor
ICAgICAgICBQcmludCB2YWx1ZXMgaW4gYSBuaWNlciB3YXkgaW4gdGhlIGpzYyBzaGVsbAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMwOTMxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgVGFkZXUgWmFnYWxsby4KKworICAgICAgICAqIHJlc291cmNlcy9z
dGFuZGFsb25lLXByZS5qczoKKwogMjAyMS0wOS0yOSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgVGhpbiBoYWlybGluZSBnYXAgZGlzcGxheWVkIGZvciBzdWJwaXhl
bCBzaXplZCBpbnNldCBib3gtc2hhZG93cwpJbmRleDogTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3N0
YW5kYWxvbmUtcHJlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Jlc291cmNlcy9zdGFu
ZGFsb25lLXByZS5qcwkocmV2aXNpb24gMjgzMjU4KQorKysgTGF5b3V0VGVzdHMvcmVzb3VyY2Vz
L3N0YW5kYWxvbmUtcHJlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw2ICsxMyw4IEBAIHNpbGVu
dFRlc3RQYXNzID0gZmFsc2U7CiBkaWRQYXNzU29tZVRlc3RzU2lsZW50bHkgPSBmYWxzZTsKIGRp
ZEZhaWxTb21lVGVzdHMgPSBmYWxzZTsKIAorcHJpbnQgPSBsZWdhY3lQcmludDsKKwogZnVuY3Rp
b24gZGVzY3JpcHRpb24obXNnKQogewogICAgIHByaW50KG1zZyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440096</attachid>
            <date>2021-10-04 13:21:03 -0700</date>
            <delta_ts>2021-10-04 17:34:08 -0700</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>7568</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjgzNTEyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBA
CisyMDIxLTEwLTA0ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IERpc3BsYXkgcmV0dXJuIHZhbHVlcyBpbiBuaWNlciB3YXkgaW4gdGhlIGpzYyBSRVBMIGFuZCBh
ZGQgYSBwcmV0dHlQcmludCBmdW5jdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMwOTMxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzY5ODc3
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJy
ZW50bHksIHByaW50KDEpLCBwcmludCgiMSIpLCBhbmQgcHJpbnQoWzFdKSBhbGwgcHJpbnQgdG8g
c3Rkb3V0CisgICAgICAgIHNpbXBseSBhcyAiMSIgKHdpdGhvdXQgdGhlIHF1b3RlcykuIFNhbWUg
Zm9yIHZhbHVlcyB3aGVuIHJ1bm5pbmcgdGhlCisgICAgICAgIFJFUEwuIFRoaXMgaXNuJ3Qgc3Vw
ZXIgaGVscGZ1bC4gTGV0J3MgcHJpbnQgcXVvdGVzIGZvciBzdHJpbmdzLCBhbmQKKyAgICAgICAg
YnJhY2tldHMgZm9yIGFycmF5cy4gVGhpcyBwYXRjaCBhZGRzIGEgcHJldHR5UHJpbnQgZnVuY3Rp
b24gdG8gZG8KKyAgICAgICAgdGhhdCwgc2luY2Ugd2UgaGF2ZSBhIGxvdCBvZiB0ZXN0cyB0aGF0
IGRlcGVuZCBvbiB0aGUgb2xkIHByaW50IGJlaGF2aW9yLgorICAgICAgICAKKyAgICAgICAgVGhp
cyBwYXRjaCBhbHNvIG1ha2VzIHZhbHVlcyBwcmludGVkIGluIHRoZSBSRVBMIHRoZSBuZXcgcHJl
dHR5IHN0eWxlLgorCisKKyAgICAgICAgKiBqc2MuY3BwOgorICAgICAgICAodG9DU3RyaW5nKToK
KyAgICAgICAgKHByaW50SW50ZXJuYWwpOgorICAgICAgICAoSlNDX0RFRklORV9IT1NUX0ZVTkNU
SU9OKToKKyAgICAgICAgKHJ1bkludGVyYWN0aXZlKToKKyAgICAgICAgKGNTdHJpbmdGcm9tVmll
d1dpdGhTdHJpbmcpOiBEZWxldGVkLgorICAgICAgICAqIHJ1bnRpbWUvSlNDSlNWYWx1ZS5jcHA6
CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvV1RGU3RyaW5nRm9yQ29uc29sZSBjb25zdCk6Cisg
ICAgICAgICogcnVudGltZS9KU0NKU1ZhbHVlLmg6CisKIDIwMjEtMTAtMDQgIFNhYW0gQmFyYXRp
ICA8c2JhcmF0aUBhcHBsZS5jb20+CiAKICAgICAgICAgSW50cmluc2ljR2V0dGVyQWNjZXNzQ2Fz
ZSBpbXBsZW1lbnRhdGlvbiBvZiBfX3Byb3RvX18gbmVlZHMgdG8gaGFuZGxlIGdldF9ieV9pZF93
aXRoX3RoaXMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAyODM1MTIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjc4LDYgKzI3
OCw3IEBAIHN0YXRpYyBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW8KIAogc3RhdGlj
IEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QcmludFN0ZE91dCk7CiBzdGF0aWMg
SlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblByaW50U3RkRXJyKTsKK3N0YXRpYyBK
U0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUHJldHR5UHJpbnQpOwogc3RhdGljIEpT
Q19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25EZWJ1Zyk7CiBzdGF0aWMgSlNDX0RFQ0xB
UkVfSE9TVF9GVU5DVElPTihmdW5jdGlvbkRlc2NyaWJlKTsKIHN0YXRpYyBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGZ1bmN0aW9uRGVzY3JpYmVBcnJheSk7CkBAIC01MjcsNiArNTI4LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJkZXNjcmliZUFycmF5IiwgZnVuY3Rp
b25EZXNjcmliZUFycmF5LCAxKTsKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJwcmludCIsIGZ1
bmN0aW9uUHJpbnRTdGRPdXQsIDEpOwogICAgICAgICBhZGRGdW5jdGlvbih2bSwgInByaW50RXJy
IiwgZnVuY3Rpb25QcmludFN0ZEVyciwgMSk7CisgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAicHJl
dHR5UHJpbnQiLCBmdW5jdGlvblByZXR0eVByaW50LCAxKTsKICAgICAgICAgYWRkRnVuY3Rpb24o
dm0sICJxdWl0IiwgZnVuY3Rpb25RdWl0LCAwKTsKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJn
YyIsIGZ1bmN0aW9uR0NBbmRTd2VlcCwgMCk7CiAgICAgICAgIGFkZEZ1bmN0aW9uKHZtLCAiZnVs
bEdDIiwgZnVuY3Rpb25GdWxsR0MsIDApOwpAQCAtMTIzOCw5ICsxMjQwLDEwIEBAIEpTT2JqZWN0
KiBHbG9iYWxPYmplY3Q6Om1vZHVsZUxvYWRlckNyZWEKICAgICByZXR1cm4gbWV0YVByb3BlcnRp
ZXM7CiB9CiAKLXN0YXRpYyBDU3RyaW5nIGNTdHJpbmdGcm9tVmlld1dpdGhTdHJpbmcoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIFN0cmluZ1ZpZXdXaXRo
VW5kZXJseWluZ1N0cmluZyYgdmlld1dpdGhTdHJpbmcpCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4K
K3N0YXRpYyBDU3RyaW5nIHRvQ1N0cmluZyhKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBU
aHJvd1Njb3BlJiBzY29wZSwgVCYgc3RyaW5nKQogewotICAgIEV4cGVjdGVkPENTdHJpbmcsIFVU
RjhDb252ZXJzaW9uRXJyb3I+IGV4cGVjdGVkU3RyaW5nID0gdmlld1dpdGhTdHJpbmcudmlldy50
cnlHZXRVdGY4KCk7CisgICAgRXhwZWN0ZWQ8Q1N0cmluZywgVVRGOENvbnZlcnNpb25FcnJvcj4g
ZXhwZWN0ZWRTdHJpbmcgPSBzdHJpbmcudHJ5R2V0VXRmOCgpOwogICAgIGlmIChleHBlY3RlZFN0
cmluZykKICAgICAgICAgcmV0dXJuIGV4cGVjdGVkU3RyaW5nLnZhbHVlKCk7CiAgICAgc3dpdGNo
IChleHBlY3RlZFN0cmluZy5lcnJvcigpKSB7CkBAIC0xMjU5LDcgKzEyNjIsNyBAQCBzdGF0aWMg
Q1N0cmluZyBjU3RyaW5nRnJvbVZpZXdXaXRoU3RyaW5nCiAgICAgcmV0dXJuIHsgfTsKIH0KIAot
c3RhdGljIEVuY29kZWRKU1ZhbHVlIHByaW50SW50ZXJuYWwoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUsIEZJTEUqIG91dCkKK3N0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBwcmludEludGVybmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxG
cmFtZSogY2FsbEZyYW1lLCBGSUxFKiBvdXQsIGJvb2wgcHJldHR5KQogewogICAgIFZNJiB2bSA9
IGdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7CkBAIC0xMjc3LDEzICsxMjgwLDExIEBAIHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBwcmlu
dEludGVybmFsKEpTR2wKICAgICAgICAgICAgIGlmIChFT0YgPT0gZnB1dGMoJyAnLCBvdXQpKQog
ICAgICAgICAgICAgICAgIGdvdG8gZmFpbDsKIAotICAgICAgICBhdXRvKiBqc1N0cmluZyA9IGNh
bGxGcmFtZS0+dW5jaGVja2VkQXJndW1lbnQoaSkudG9TdHJpbmcoZ2xvYmFsT2JqZWN0KTsKKyAg
ICAgICAgU3RyaW5nIHN0cmluZyA9IHByZXR0eSA/IGNhbGxGcmFtZS0+dW5jaGVja2VkQXJndW1l
bnQoaSkudG9XVEZTdHJpbmdGb3JDb25zb2xlKGdsb2JhbE9iamVjdCkgOiBjYWxsRnJhbWUtPnVu
Y2hlY2tlZEFyZ3VtZW50KGkpLnRvV1RGU3RyaW5nKGdsb2JhbE9iamVjdCk7CiAgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7Ci0gICAgICAgIGF1dG8gdmlld1dpdGhTdHJp
bmcgPSBqc1N0cmluZy0+dmlld1dpdGhVbmRlcmx5aW5nU3RyaW5nKGdsb2JhbE9iamVjdCk7Cisg
ICAgICAgIGF1dG8gY1N0cmluZyA9IHRvQ1N0cmluZyhnbG9iYWxPYmplY3QsIHNjb3BlLCBzdHJp
bmcpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotICAgICAgICBh
dXRvIHN0cmluZyA9IGNTdHJpbmdGcm9tVmlld1dpdGhTdHJpbmcoZ2xvYmFsT2JqZWN0LCBzY29w
ZSwgdmlld1dpdGhTdHJpbmcpOwotICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7
IH0pOwotICAgICAgICBmd3JpdGUoc3RyaW5nLmRhdGEoKSwgc2l6ZW9mKGNoYXIpLCBzdHJpbmcu
bGVuZ3RoKCksIG91dCk7CisgICAgICAgIGZ3cml0ZShjU3RyaW5nLmRhdGEoKSwgc2l6ZW9mKGNo
YXIpLCBjU3RyaW5nLmxlbmd0aCgpLCBvdXQpOwogICAgICAgICBpZiAoZmVycm9yKG91dCkpCiAg
ICAgICAgICAgICBnb3RvIGZhaWw7CiAgICAgfQpAQCAtMTI5NiwxMiArMTI5NywxNyBAQCBmYWls
OgogCiBKU0NfREVGSU5FX0hPU1RfRlVOQ1RJT04oZnVuY3Rpb25QcmludFN0ZE91dCwgKEpTR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENhbGxGcmFtZSogY2FsbEZyYW1lKSkKIHsKLSAgICBy
ZXR1cm4gcHJpbnRJbnRlcm5hbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgc3Rkb3V0KTsKKyAg
ICByZXR1cm4gcHJpbnRJbnRlcm5hbChnbG9iYWxPYmplY3QsIGNhbGxGcmFtZSwgc3Rkb3V0LCBm
YWxzZSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlvblByaW50U3RkRXJy
LCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJhbWUpKQog
ewotICAgIHJldHVybiBwcmludEludGVybmFsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBzdGRl
cnIpOworICAgIHJldHVybiBwcmludEludGVybmFsKGdsb2JhbE9iamVjdCwgY2FsbEZyYW1lLCBz
dGRlcnIsIGZhbHNlKTsKK30KKworSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0aW9uUHJl
dHR5UHJpbnQsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBDYWxsRnJhbWUqIGNhbGxG
cmFtZSkpCit7CisgICAgcmV0dXJuIHByaW50SW50ZXJuYWwoZ2xvYmFsT2JqZWN0LCBjYWxsRnJh
bWUsIHN0ZG91dCwgdHJ1ZSk7CiB9CiAKIEpTQ19ERUZJTkVfSE9TVF9GVU5DVElPTihmdW5jdGlv
bkRlYnVnLCAoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgQ2FsbEZyYW1lKiBjYWxsRnJh
bWUpKQpAQCAtMTMxMiw3ICsxMzE4LDcgQEAgSlNDX0RFRklORV9IT1NUX0ZVTkNUSU9OKGZ1bmN0
aW9uRGVidWcsIAogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHsgfSk7CiAgICAgYXV0
byB2aWV3V2l0aFN0cmluZyA9IGpzU3RyaW5nLT52aWV3V2l0aFVuZGVybHlpbmdTdHJpbmcoZ2xv
YmFsT2JqZWN0KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOwotICAgIGF1
dG8gc3RyaW5nID0gY1N0cmluZ0Zyb21WaWV3V2l0aFN0cmluZyhnbG9iYWxPYmplY3QsIHNjb3Bl
LCB2aWV3V2l0aFN0cmluZyk7CisgICAgYXV0byBzdHJpbmcgPSB0b0NTdHJpbmcoZ2xvYmFsT2Jq
ZWN0LCBzY29wZSwgdmlld1dpdGhTdHJpbmcudmlldyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgeyB9KTsKICAgICBmcHV0cygiLS0+ICIsIHN0ZGVycik7CiAgICAgZndyaXRlKHN0
cmluZy5kYXRhKCksIHNpemVvZihjaGFyKSwgc3RyaW5nLmxlbmd0aCgpLCBzdGRlcnIpOwpAQCAt
MzI3MSw3ICszMjc3LDcgQEAgc3RhdGljIHZvaWQgcnVuSW50ZXJhY3RpdmUoR2xvYmFsT2JqZWN0
KgogICAgICAgICAgICAgZnB1dHMoIkV4Y2VwdGlvbjogIiwgc3Rkb3V0KTsKICAgICAgICAgICAg
IHV0ZjggPSBldmFsdWF0aW9uRXhjZXB0aW9uLT52YWx1ZSgpLnRvV1RGU3RyaW5nKGdsb2JhbE9i
amVjdCkudHJ5R2V0VXRmOCgpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHV0ZjggPSBy
ZXR1cm5WYWx1ZS50b1dURlN0cmluZyhnbG9iYWxPYmplY3QpLnRyeUdldFV0ZjgoKTsKKyAgICAg
ICAgICAgIHV0ZjggPSByZXR1cm5WYWx1ZS50b1dURlN0cmluZ0ZvckNvbnNvbGUoZ2xvYmFsT2Jq
ZWN0KS50cnlHZXRVdGY4KCk7CiAKICAgICAgICAgQ1N0cmluZyByZXN1bHQ7CiAgICAgICAgIGlm
ICh1dGY4KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1
ZS5jcHAJKHJldmlzaW9uIDI4MzUxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTQ0pTVmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NzEsNCArNDcxLDE5IEBAIE5FVkVS
X0lOTElORSB2b2lkIGVuc3VyZVN0aWxsQWxpdmVIZXJlKEoKIH0KICNlbmRpZgogCitXVEY6OlN0
cmluZyBKU1ZhbHVlOjp0b1dURlN0cmluZ0ZvckNvbnNvbGUoSlNHbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCkgY29uc3QKK3sKKyAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworICAgIEpTU3RyaW5nKiBzdHJp
bmcgPSB0b1N0cmluZyhnbG9iYWxPYmplY3QpOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIHsgfSk7CisgICAgU3RyaW5nIHJlc3VsdCA9IHN0cmluZy0+dmFsdWUoZ2xvYmFsT2JqZWN0
KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCB7IH0pOworICAgIGlmIChpc1N0cmlu
ZygpKQorICAgICAgICByZXR1cm4gbWFrZVN0cmluZygiXCIiLCByZXN1bHQsICJcIiIpOworICAg
IGlmIChqc0R5bmFtaWNDYXN0PEpTQXJyYXkqPih2bSwgKnRoaXMpKQorICAgICAgICByZXR1cm4g
bWFrZVN0cmluZygiWyIsIHJlc3VsdCwgIl0iKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9
IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q0pTVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NKU1ZhbHVlLmgJKHJldmlzaW9uIDI4MzUxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTQ0pTVmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjg5LDYgKzI4OSw3IEBAIHB1
YmxpYzoKICAgICBJZGVudGlmaWVyIHRvUHJvcGVydHlLZXkoSlNHbG9iYWxPYmplY3QqKSBjb25z
dDsKICAgICBKU1ZhbHVlIHRvUHJvcGVydHlLZXlWYWx1ZShKU0dsb2JhbE9iamVjdCopIGNvbnN0
OwogICAgIFdURjo6U3RyaW5nIHRvV1RGU3RyaW5nKEpTR2xvYmFsT2JqZWN0KikgY29uc3Q7Cisg
ICAgSlNfRVhQT1JUX1BSSVZBVEUgV1RGOjpTdHJpbmcgdG9XVEZTdHJpbmdGb3JDb25zb2xlKEpT
R2xvYmFsT2JqZWN0KikgY29uc3Q7CiAgICAgSlNPYmplY3QqIHRvT2JqZWN0KEpTR2xvYmFsT2Jq
ZWN0KikgY29uc3Q7CiAKICAgICAvLyBJbnRlZ2VyIGNvbnZlcnNpb25zLgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>