<?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>227599</bug_id>
          
          <creation_ts>2021-07-01 15:22:55 -0700</creation_ts>
          <short_desc>loadSimulatedRequest: should do same delegate callbacks as loadHTMLString and loadData</short_desc>
          <delta_ts>2021-07-06 10:34:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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>227628</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1774263</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-07-01 15:22:55 -0700</bug_when>
    <thetext>loadSimulatedRequest: should do same delegate callbacks as loadHTMLString and loadData</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774264</commentid>
    <comment_count>1</comment_count>
      <attachid>432731</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-07-01 15:23:27 -0700</bug_when>
    <thetext>Created attachment 432731
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774266</commentid>
    <comment_count>2</comment_count>
      <attachid>432731</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-07-01 15:26:48 -0700</bug_when>
    <thetext>Comment on attachment 432731
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKWebViewLoadAPIs.mm:97
&gt; +        EXPECT_EQ(vector.size(), 4u);

ASSERT_EQ() as we&apos;ll crash otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774273</commentid>
    <comment_count>3</comment_count>
      <attachid>432737</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-07-01 15:45:44 -0700</bug_when>
    <thetext>Created attachment 432737
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774284</commentid>
    <comment_count>4</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-07-01 16:16:30 -0700</bug_when>
    <thetext>rdar://78578639</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774339</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-01 18:45:38 -0700</bug_when>
    <thetext>Committed r279494 (239346@main): &lt;https://commits.webkit.org/239346@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432737.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774465</commentid>
    <comment_count>6</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-07-02 08:01:31 -0700</bug_when>
    <thetext>(In reply to EWS from comment #5)
&gt; Committed r279494 (239346@main): &lt;https://commits.webkit.org/239346@main&gt;
This broke TestWebKitAPI.WKWebView.LoadSimulatedRequestUpdatesBackForwardList
Also indicated by EWS (https://ews-build.webkit.org/#/builders/9/builds/50270, https://ews-build.webkit.org/#/builders/3/builds/51248) 

History: https://results.webkit.org/?suite=api-tests&amp;test=TestWebKitAPI.WKWebView.LoadSimulatedRequestUpdatesBackForwardList</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774467</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-07-02 08:03:07 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 227628</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774643</commentid>
    <comment_count>8</comment_count>
      <attachid>432841</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-07-02 21:45:05 -0700</bug_when>
    <thetext>Created attachment 432841
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774645</commentid>
    <comment_count>9</comment_count>
      <attachid>432841</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-07-02 22:26:30 -0700</bug_when>
    <thetext>Comment on attachment 432841
Patch

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

&gt; Source/WebKit/ChangeLog:9
&gt; +

I also wanted to add this:
Before this change we set SubstituteData.failingURL, which in FrameLoader::PolicyChecker::checkNavigationPolicy makes it behave more like _loadAlternateHTMLString which doesn&apos;t call decidePolicyForNavigationAction and does add a back/forward entry.  We want it to behave more like loadHTMLString, which does call decidePolicyForNavigationAction and doesn&apos;t add a back/forward entry.  Except we do want it to add a back/forward entry.  This patch is to accomplish that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1774989</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-07-06 10:34:15 -0700</bug_when>
    <thetext>r279595</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432731</attachid>
            <date>2021-07-01 15:23:27 -0700</date>
            <delta_ts>2021-07-01 15:45:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227599-20210701152327.patch</filename>
            <type>text/plain</type>
            <size>5743</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUxMjA5ZDNjYzBjNTlkZjg4
ZGIyOTE0YjZmMWJlM2FmYjMwZDBmNWUuLjc4ODFiMzk5Y2JjZDRiZTA5YjMyNWYxMmRiZDVjNmEy
ZDMyOTIxYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDctMDEgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBsb2FkU2ltdWxh
dGVkUmVxdWVzdDogc2hvdWxkIGRvIHNhbWUgZGVsZWdhdGUgY2FsbGJhY2tzIGFzIGxvYWRIVE1M
U3RyaW5nIGFuZCBsb2FkRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI3NTk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmxvYWRTaW11bGF0ZWRSZXF1ZXN0QW5kUmVzcG9uc2UpOgorCiAyMDIx
LTA2LTMwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IFtpT1NdIFtMaXZlIFRleHRdICJUZXh0IGZyb20gQ2FtZXJhIiBzaG91bGQgbm90IGJlIHNob3du
IGluIGNhbGxvdXQgYmFyIHdoZW4gc2VsZWN0aW5nIHRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYzU4OWE2YzI5ZDZhYmUwZWEzYzZiMDcz
YjNmNjMxMTY2ODk4M2IxOS4uNGZlNmJiODgxMGVkZDY2OTljNjI3ZTQ5YjE1MWMyNzVlYjMwOWJl
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTE3ODYsNyArMTc4Niw4IEBAIHZvaWQgV2ViUGFnZTo6bG9hZFNpbXVsYXRlZFJlcXVlc3RBbmRS
ZXNwb25zZShMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzLCBSCiAgICAgbV9wZW5kaW5n
TmF2aWdhdGlvbklEID0gbG9hZFBhcmFtZXRlcnMubmF2aWdhdGlvbklEOwogICAgIG1fcGVuZGlu
Z1dlYnNpdGVQb2xpY2llcyA9IFdURk1vdmUobG9hZFBhcmFtZXRlcnMud2Vic2l0ZVBvbGljaWVz
KTsKIAotICAgIFN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKFdURk1vdmUoc2hhcmVkQnVm
ZmVyKSwgbG9hZFBhcmFtZXRlcnMucmVxdWVzdC51cmwoKSwgc2ltdWxhdGVkUmVzcG9uc2UsIFN1
YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHk6OlZpc2libGUpOworICAgIGF1
dG8gdW5yZWFjaGFibGVVUkwgPSBsb2FkUGFyYW1ldGVycy51bnJlYWNoYWJsZVVSTFN0cmluZy5p
c0VtcHR5KCkgPyBVUkwoKSA6IFVSTChVUkwoKSwgbG9hZFBhcmFtZXRlcnMudW5yZWFjaGFibGVV
UkxTdHJpbmcpOworICAgIFN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKFdURk1vdmUoc2hh
cmVkQnVmZmVyKSwgdW5yZWFjaGFibGVVUkwsIHNpbXVsYXRlZFJlc3BvbnNlLCBTdWJzdGl0dXRl
RGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5OjpWaXNpYmxlKTsKIAogICAgIC8vIExldCB0
aGUgSW5qZWN0ZWRCdW5kbGUga25vdyB3ZSBhcmUgYWJvdXQgdG8gc3RhcnQgdGhlIGxvYWQsIHBh
c3NpbmcgdGhlIHVzZXIgZGF0YSBmcm9tIHRoZSBVSVByb2Nlc3MKICAgICAvLyB0byBhbGwgdGhl
IGNsaWVudCB0byBzZXQgdXAgYW55IG5lZWRlZCBzdGF0ZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1YWMyYjg2ZDMxMWE2MjAzODA5MzYzY2Fk
ZWIzNGZjNjgyODZlNGM3Li5iYzMxYWJiMDFkYjQ2NmUwOGUzZTUwZjAzYjdlODNkMzFkNzVkZjlh
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMjEtMDctMDEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5A
d2Via2l0Lm9yZz4KKworICAgICAgICBsb2FkU2ltdWxhdGVkUmVxdWVzdDogc2hvdWxkIGRvIHNh
bWUgZGVsZWdhdGUgY2FsbGJhY2tzIGFzIGxvYWRIVE1MU3RyaW5nIGFuZCBsb2FkRGF0YQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NTk5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0xvYWRBUElzLm1tOgorICAgICAgICAoVEVT
VCk6CisKIDIwMjEtMDYtMzAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgW2lPU10gW0xpdmUgVGV4dF0gIlRleHQgZnJvbSBDYW1lcmEiIHNob3VsZCBu
b3QgYmUgc2hvd24gaW4gY2FsbG91dCBiYXIgd2hlbiBzZWxlY3RpbmcgdGV4dApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdMb2FkQVBJ
cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3TG9h
ZEFQSXMubW0KaW5kZXggMWI3YTYwN2MwYWFkYjBmYjE3MGJhODYxY2E1ZmFjMmRmYTJhNWY0My4u
MGJhNGQzMjhhMGYyMWE3ZDk5NDYzNjJhYzYwNDI2YmFhMDdkODJlNiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdMb2FkQVBJcy5tbQor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0xvYWRB
UElzLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+
CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+
CisjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvTlNVUkxFeHRyYXMu
aD4KIAogc3RhdGljIE5TU3RyaW5nICpleGFtcGxlVVJMU3RyaW5nID0gQCJodHRwczovL2V4YW1w
bGUuY29tLyI7CkBAIC04Miw2ICs4Myw2MSBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICBbZGVsZWdhdGUgd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOwogfQogCitU
RVNUKFdLV2ViVmlldywgTG9hZFNpbXVsYXRlZFJlcXVlc3REZWxlZ2F0ZUNhbGxiYWNrcykKK3sK
KyAgICBlbnVtIGNsYXNzIENhbGxiYWNrIDogdWludDhfdCB7CisgICAgICAgIE5hdmlnYXRpb25B
Y3Rpb24sCisgICAgICAgIE5hdmlnYXRpb25SZXNwb25zZSwKKyAgICAgICAgU3RhcnRQcm92aXNp
b25hbCwKKyAgICAgICAgQ29tbWl0LAorICAgICAgICBGaW5pc2gKKyAgICB9OworCisgICAgYXV0
byBjaGVja0NhbGxiYWNrcyA9IFtdIChjb25zdCBWZWN0b3I8Q2FsbGJhY2s+IHZlY3Rvcikgewor
ICAgICAgICBFWFBFQ1RfRVEodmVjdG9yLnNpemUoKSwgNHUpOworICAgICAgICBFWFBFQ1RfRVEo
dmVjdG9yWzBdLCBDYWxsYmFjazo6TmF2aWdhdGlvbkFjdGlvbik7CisgICAgICAgIEVYUEVDVF9F
USh2ZWN0b3JbMV0sIENhbGxiYWNrOjpTdGFydFByb3Zpc2lvbmFsKTsKKyAgICAgICAgRVhQRUNU
X0VRKHZlY3RvclsyXSwgQ2FsbGJhY2s6OkNvbW1pdCk7CisgICAgICAgIEVYUEVDVF9FUSh2ZWN0
b3JbM10sIENhbGxiYWNrOjpGaW5pc2gpOworICAgIH07CisKKyAgICBfX2Jsb2NrIFZlY3RvcjxD
YWxsYmFjaz4gY2FsbGJhY2tzOworICAgIF9fYmxvY2sgYm9vbCBmaW5pc2hlZCA9IGZhbHNlOwor
ICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10p
OworICAgIGRlbGVnYXRlLmdldCgpLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gPSBe
KFdLTmF2aWdhdGlvbkFjdGlvbiAqLCB2b2lkICheY29tcGxldGlvbkhhbmRsZXIpKFdLTmF2aWdh
dGlvbkFjdGlvblBvbGljeSkpIHsKKyAgICAgICAgY2FsbGJhY2tzLmFwcGVuZChDYWxsYmFjazo6
TmF2aWdhdGlvbkFjdGlvbik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlv
bkFjdGlvblBvbGljeUFsbG93KTsKKyAgICB9OworICAgIGRlbGVnYXRlLmdldCgpLmRlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25SZXNwb25zZSA9IF4oV0tOYXZpZ2F0aW9uUmVzcG9uc2UgKiwgdm9p
ZCAoXmNvbXBsZXRpb25IYW5kbGVyKShXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSkpIHsKKyAg
ICAgICAgY2FsbGJhY2tzLmFwcGVuZChDYWxsYmFjazo6TmF2aWdhdGlvblJlc3BvbnNlKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lBbGxvdyk7
CisgICAgfTsKKyAgICBkZWxlZ2F0ZS5nZXQoKS5kaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlv
biA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7CisgICAgICAgIGNhbGxiYWNrcy5h
cHBlbmQoQ2FsbGJhY2s6OlN0YXJ0UHJvdmlzaW9uYWwpOworICAgIH07CisgICAgZGVsZWdhdGUu
Z2V0KCkuZGlkQ29tbWl0TmF2aWdhdGlvbiA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAq
KSB7CisgICAgICAgIGNhbGxiYWNrcy5hcHBlbmQoQ2FsbGJhY2s6OkNvbW1pdCk7CisgICAgfTsK
KyAgICBkZWxlZ2F0ZS5nZXQoKS5kaWRGaW5pc2hOYXZpZ2F0aW9uID0gXihXS1dlYlZpZXcgKiwg
V0tOYXZpZ2F0aW9uICopIHsKKyAgICAgICAgY2FsbGJhY2tzLmFwcGVuZChDYWxsYmFjazo6Rmlu
aXNoKTsKKyAgICAgICAgZmluaXNoZWQgPSB0cnVlOworICAgIH07CisKKyAgICBhdXRvIHdlYlZp
ZXcgPSBhZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7CisgICAgd2ViVmlldy5nZXQoKS5uYXZpZ2F0
aW9uRGVsZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKKyAgICBOU1VSTCAqdXJsID0gW05TVVJMIFVS
TFdpdGhTdHJpbmc6QCJodHRwczovL3dlYmtpdC5vcmcvIl07CisgICAgW3dlYlZpZXcgbG9hZEhU
TUxTdHJpbmc6QCJoaSEiIGJhc2VVUkw6dXJsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmZpbmlzaGVkKTsKKworICAgIGNoZWNrQ2FsbGJhY2tzKGNhbGxiYWNrcyk7CisgICAgY2Fs
bGJhY2tzID0geyB9OworICAgIGZpbmlzaGVkID0gZmFsc2U7CisKKyAgICBbd2ViVmlldyBsb2Fk
U2ltdWxhdGVkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnVybF0gcmVzcG9u
c2U6YWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnVybCBNSU1FVHlw
ZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOjMgdGV4dEVuY29kaW5nTmFtZTpu
aWxdKS5nZXQoKSByZXNwb25zZURhdGE6W05TRGF0YSBkYXRhV2l0aEJ5dGVzOiJoaSEiIGxlbmd0
aDozXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgY2hl
Y2tDYWxsYmFja3MoY2FsbGJhY2tzKTsKK30KKwogVEVTVChXS1dlYlZpZXcsIExvYWRGaWxlUmVx
dWVzdCkKIHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432737</attachid>
            <date>2021-07-01 15:45:44 -0700</date>
            <delta_ts>2021-07-02 21:45:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227599-20210701154543.patch</filename>
            <type>text/plain</type>
            <size>5737</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUxMjA5ZDNjYzBjNTlkZjg4
ZGIyOTE0YjZmMWJlM2FmYjMwZDBmNWUuLjQ1NTYwZDljNGNlMDBhMDFhOGRiMGQ1MzZkOWQ3YzQ0
MDhlMGMxNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDctMDEgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBsb2FkU2ltdWxh
dGVkUmVxdWVzdDogc2hvdWxkIGRvIHNhbWUgZGVsZWdhdGUgY2FsbGJhY2tzIGFzIGxvYWRIVE1M
U3RyaW5nIGFuZCBsb2FkRGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjI3NTk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmxvYWRTaW11bGF0ZWRSZXF1ZXN0QW5kUmVzcG9uc2UpOgorCiAyMDIxLTA2
LTMwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtp
T1NdIFtMaXZlIFRleHRdICJUZXh0IGZyb20gQ2FtZXJhIiBzaG91bGQgbm90IGJlIHNob3duIGlu
IGNhbGxvdXQgYmFyIHdoZW4gc2VsZWN0aW5nIHRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYzU4OWE2YzI5ZDZhYmUwZWEzYzZiMDczYjNm
NjMxMTY2ODk4M2IxOS4uNGZlNmJiODgxMGVkZDY2OTljNjI3ZTQ5YjE1MWMyNzVlYjMwOWJlYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE3
ODYsNyArMTc4Niw4IEBAIHZvaWQgV2ViUGFnZTo6bG9hZFNpbXVsYXRlZFJlcXVlc3RBbmRSZXNw
b25zZShMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzLCBSCiAgICAgbV9wZW5kaW5nTmF2
aWdhdGlvbklEID0gbG9hZFBhcmFtZXRlcnMubmF2aWdhdGlvbklEOwogICAgIG1fcGVuZGluZ1dl
YnNpdGVQb2xpY2llcyA9IFdURk1vdmUobG9hZFBhcmFtZXRlcnMud2Vic2l0ZVBvbGljaWVzKTsK
IAotICAgIFN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKFdURk1vdmUoc2hhcmVkQnVmZmVy
KSwgbG9hZFBhcmFtZXRlcnMucmVxdWVzdC51cmwoKSwgc2ltdWxhdGVkUmVzcG9uc2UsIFN1YnN0
aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHk6OlZpc2libGUpOworICAgIGF1dG8g
dW5yZWFjaGFibGVVUkwgPSBsb2FkUGFyYW1ldGVycy51bnJlYWNoYWJsZVVSTFN0cmluZy5pc0Vt
cHR5KCkgPyBVUkwoKSA6IFVSTChVUkwoKSwgbG9hZFBhcmFtZXRlcnMudW5yZWFjaGFibGVVUkxT
dHJpbmcpOworICAgIFN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKFdURk1vdmUoc2hhcmVk
QnVmZmVyKSwgdW5yZWFjaGFibGVVUkwsIHNpbXVsYXRlZFJlc3BvbnNlLCBTdWJzdGl0dXRlRGF0
YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5OjpWaXNpYmxlKTsKIAogICAgIC8vIExldCB0aGUg
SW5qZWN0ZWRCdW5kbGUga25vdyB3ZSBhcmUgYWJvdXQgdG8gc3RhcnQgdGhlIGxvYWQsIHBhc3Np
bmcgdGhlIHVzZXIgZGF0YSBmcm9tIHRoZSBVSVByb2Nlc3MKICAgICAvLyB0byBhbGwgdGhlIGNs
aWVudCB0byBzZXQgdXAgYW55IG5lZWRlZCBzdGF0ZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1YWMyYjg2ZDMxMWE2MjAzODA5MzYzY2FkZWIz
NGZjNjgyODZlNGM3Li5hZGI0ZTYyMDI0ZDAxNjYxYzJkMjE3OGI2N2RiOTkwYzFlMzI1N2ViIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMjEtMDctMDEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBsb2FkU2ltdWxhdGVkUmVxdWVzdDogc2hvdWxkIGRvIHNhbWUg
ZGVsZWdhdGUgY2FsbGJhY2tzIGFzIGxvYWRIVE1MU3RyaW5nIGFuZCBsb2FkRGF0YQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NTk5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1dLV2ViVmlld0xvYWRBUElzLm1tOgorICAgICAgICAoVEVTVCk6CisK
IDIwMjEtMDYtMzAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPU10gW0xpdmUgVGV4dF0gIlRleHQgZnJvbSBDYW1lcmEiIHNob3VsZCBub3QgYmUg
c2hvd24gaW4gY2FsbG91dCBiYXIgd2hlbiBzZWxlY3RpbmcgdGV4dApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdMb2FkQVBJcy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3TG9hZEFQSXMu
bW0KaW5kZXggMWI3YTYwN2MwYWFkYjBmYjE3MGJhODYxY2E1ZmFjMmRmYTJhNWY0My4uYWE4ZGRh
Y2RlZjg4YjgzMTRhYmE4OWY1ZTRlN2ZlMTRkZWVkNWI4ZCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdMb2FkQVBJcy5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0xvYWRBUElzLm1t
CkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAjaW1w
b3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1w
b3J0IDx3dGYvVmVjdG9yLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvTlNVUkxFeHRyYXMuaD4KIAog
c3RhdGljIE5TU3RyaW5nICpleGFtcGxlVVJMU3RyaW5nID0gQCJodHRwczovL2V4YW1wbGUuY29t
LyI7CkBAIC04Miw2ICs4Myw2MSBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQK
ICAgICBbZGVsZWdhdGUgd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOwogfQogCitURVNUKFdL
V2ViVmlldywgTG9hZFNpbXVsYXRlZFJlcXVlc3REZWxlZ2F0ZUNhbGxiYWNrcykKK3sKKyAgICBl
bnVtIGNsYXNzIENhbGxiYWNrIDogdWludDhfdCB7CisgICAgICAgIE5hdmlnYXRpb25BY3Rpb24s
CisgICAgICAgIE5hdmlnYXRpb25SZXNwb25zZSwKKyAgICAgICAgU3RhcnRQcm92aXNpb25hbCwK
KyAgICAgICAgQ29tbWl0LAorICAgICAgICBGaW5pc2gKKyAgICB9OworCisgICAgYXV0byBjaGVj
a0NhbGxiYWNrcyA9IFtdIChjb25zdCBWZWN0b3I8Q2FsbGJhY2s+IHZlY3RvcikgeworICAgICAg
ICBBU1NFUlRfRVEodmVjdG9yLnNpemUoKSwgNHUpOworICAgICAgICBFWFBFQ1RfRVEodmVjdG9y
WzBdLCBDYWxsYmFjazo6TmF2aWdhdGlvbkFjdGlvbik7CisgICAgICAgIEVYUEVDVF9FUSh2ZWN0
b3JbMV0sIENhbGxiYWNrOjpTdGFydFByb3Zpc2lvbmFsKTsKKyAgICAgICAgRVhQRUNUX0VRKHZl
Y3RvclsyXSwgQ2FsbGJhY2s6OkNvbW1pdCk7CisgICAgICAgIEVYUEVDVF9FUSh2ZWN0b3JbM10s
IENhbGxiYWNrOjpGaW5pc2gpOworICAgIH07CisKKyAgICBfX2Jsb2NrIFZlY3RvcjxDYWxsYmFj
az4gY2FsbGJhY2tzOworICAgIF9fYmxvY2sgYm9vbCBmaW5pc2hlZCA9IGZhbHNlOworICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAg
IGRlbGVnYXRlLmdldCgpLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gPSBeKFdLTmF2
aWdhdGlvbkFjdGlvbiAqLCB2b2lkICheY29tcGxldGlvbkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFj
dGlvblBvbGljeSkpIHsKKyAgICAgICAgY2FsbGJhY2tzLmFwcGVuZChDYWxsYmFjazo6TmF2aWdh
dGlvbkFjdGlvbik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlv
blBvbGljeUFsbG93KTsKKyAgICB9OworICAgIGRlbGVnYXRlLmdldCgpLmRlY2lkZVBvbGljeUZv
ck5hdmlnYXRpb25SZXNwb25zZSA9IF4oV0tOYXZpZ2F0aW9uUmVzcG9uc2UgKiwgdm9pZCAoXmNv
bXBsZXRpb25IYW5kbGVyKShXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSkpIHsKKyAgICAgICAg
Y2FsbGJhY2tzLmFwcGVuZChDYWxsYmFjazo6TmF2aWdhdGlvblJlc3BvbnNlKTsKKyAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lBbGxvdyk7CisgICAg
fTsKKyAgICBkZWxlZ2F0ZS5nZXQoKS5kaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbiA9IF4o
V0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7CisgICAgICAgIGNhbGxiYWNrcy5hcHBlbmQo
Q2FsbGJhY2s6OlN0YXJ0UHJvdmlzaW9uYWwpOworICAgIH07CisgICAgZGVsZWdhdGUuZ2V0KCku
ZGlkQ29tbWl0TmF2aWdhdGlvbiA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7Cisg
ICAgICAgIGNhbGxiYWNrcy5hcHBlbmQoQ2FsbGJhY2s6OkNvbW1pdCk7CisgICAgfTsKKyAgICBk
ZWxlZ2F0ZS5nZXQoKS5kaWRGaW5pc2hOYXZpZ2F0aW9uID0gXihXS1dlYlZpZXcgKiwgV0tOYXZp
Z2F0aW9uICopIHsKKyAgICAgICAgY2FsbGJhY2tzLmFwcGVuZChDYWxsYmFjazo6RmluaXNoKTsK
KyAgICAgICAgZmluaXNoZWQgPSB0cnVlOworICAgIH07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7CisgICAgd2ViVmlldy5nZXQoKS5uYXZpZ2F0aW9uRGVs
ZWdhdGUgPSBkZWxlZ2F0ZS5nZXQoKTsKKyAgICBOU1VSTCAqdXJsID0gW05TVVJMIFVSTFdpdGhT
dHJpbmc6QCJodHRwczovL3dlYmtpdC5vcmcvIl07CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJp
bmc6QCJoaSEiIGJhc2VVUkw6dXJsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZp
bmlzaGVkKTsKKworICAgIGNoZWNrQ2FsbGJhY2tzKGNhbGxiYWNrcyk7CisgICAgY2FsbGJhY2tz
ID0geyB9OworICAgIGZpbmlzaGVkID0gZmFsc2U7CisKKyAgICBbd2ViVmlldyBsb2FkU2ltdWxh
dGVkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnVybF0gcmVzcG9uc2U6YWRv
cHROUyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnVybCBNSU1FVHlwZTpAInRl
eHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOjMgdGV4dEVuY29kaW5nTmFtZTpuaWxdKS5n
ZXQoKSByZXNwb25zZURhdGE6W05TRGF0YSBkYXRhV2l0aEJ5dGVzOiJoaSEiIGxlbmd0aDozXV07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgY2hlY2tDYWxs
YmFja3MoY2FsbGJhY2tzKTsKK30KKwogVEVTVChXS1dlYlZpZXcsIExvYWRGaWxlUmVxdWVzdCkK
IHsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432841</attachid>
            <date>2021-07-02 21:45:05 -0700</date>
            <delta_ts>2021-07-02 22:26:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227599-20210702214504.patch</filename>
            <type>text/plain</type>
            <size>34231</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjkxZGJlZDBjMDNlODE3
NjlmMmIzZTJhZDFlNmEyNTkzODk1ZmU2Yy4uZDIzMTE1NzAyM2JhNjg3MjU4YmQzNzJlNjc5OTUw
YWZlYTlkNDdmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA3LTAyICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgbG9hZFNp
bXVsYXRlZFJlcXVlc3Q6IHNob3VsZCBkbyBzYW1lIGRlbGVnYXRlIGNhbGxiYWNrcyBhcyBsb2Fk
SFRNTFN0cmluZyBhbmQgbG9hZERhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNzU5OQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6
LgorCisgICAgICAgICogbG9hZGVyL1N1YnN0aXR1dGVEYXRhLmg6CisKIDIwMjEtMDYtMzAgIEtp
bW1vIEtpbm51bmVuICA8a2tpbm51bmVuQGFwcGxlLmNvbT4KIAogICAgICAgICB0b0RhdGFVUkwg
aW1hZ2UgdXBzaWRlIGRvd24gaWYgcHJlbXVsdGlwbGllZEFscGhhPWZhbHNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IGUxMjA5ZDNjYzBjNTlkZjg4ZGIyOTE0YjZmMWJlM2FmYjMwZDBmNWUuLmZlOTRjMWFjOTk1NmE4
MjFjMzE3ZDU1YjJlZTZiMmM2MjU1YTdkZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIw
MjEtMDctMDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBsb2FkU2ltdWxhdGVkUmVxdWVzdDogc2hvdWxkIGRvIHNhbWUgZGVsZWdhdGUgY2Fs
bGJhY2tzIGFzIGxvYWRIVE1MU3RyaW5nIGFuZCBsb2FkRGF0YQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NTk5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgU2hhcmUgbW9yZSBjb2RlIHdpdGggbG9hZERhdGEg
YW5kIGxvYWRIVE1MU3RyaW5nIHRvIHByZXZlbnQgc3VjaCBlcnJvcnMuCisKKyAgICAgICAgSW4g
b3JkZXIgdG8gY29udGludWUgbWFraW5nIGEgYmFjay9mb3J3YXJkIGxpc3QgaXRlbSB3aXRoIGxv
YWRTaW11bGF0ZWRSZXF1ZXN0LCB3ZSBuZWVkIHRvIHVzZQorICAgICAgICBXZWJDb3JlOjpTdWJz
dGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5OjpWaXNpYmxlIGZvciBpdHMgY2Fs
bHMgYW5kIGFsc28gQVBJOjpTdWJzdGl0dXRlRGF0YQorICAgICAgICBuZWVkcyB0byByZW1lbWJl
ciB0aGF0IHdlIGluaXRpYWxseSB1c2VkIHRoYXQgZm9yIHdoZW4gd2UgZ28gYmFjayB0byBhIGJh
Y2svZm9yd2FyZCBsaXN0IGl0ZW0gZnJvbQorICAgICAgICB0aGF0IGRhdGEuICBJbiBvcmRlciB0
byBrZWVwIGJpbmFyeSBjb21wYXRpYmlsaXR5IHdpdGggZXhpc3RpbmcgYXBwcywgbG9hZERhdGEg
YW5kIGxvYWRIVE1MU3RyaW5nCisgICAgICAgIG5lZWQgdG8gY29udGludWUgdXNpbmcgV2ViQ29y
ZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eTo6SGlkZGVuLgorCisg
ICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgYW5kIG5ldyBBUEkgdGVzdHMuCisKKyAgICAgICAg
KiBTaGFyZWQvTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpMb2FkUGFyYW1l
dGVyczo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TG9hZFBhcmFtZXRlcnM6OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmNwcDoKKyAgICAgICAgKEFQSTo6U3Vic3RpdHV0ZURh
dGE6OlN1YnN0aXR1dGVEYXRhKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRp
b24uaDoKKyAgICAgICAgKEFQSTo6U3Vic3RpdHV0ZURhdGE6OlN1YnN0aXR1dGVEYXRhKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZERhdGEpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmxvYWREYXRhKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2FkU2ltdWxhdGVkUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9j
ZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjps
b2FkRGF0YUltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkRGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxvYWRBbHRlcm5hdGVIVE1MKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6bG9hZFNpbXVsYXRlZFJlcXVlc3RBbmRSZXNwb25zZSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAyMS0wNi0zMCAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBbTGl2ZSBUZXh0XSAi
VGV4dCBmcm9tIENhbWVyYSIgc2hvdWxkIG5vdCBiZSBzaG93biBpbiBjYWxsb3V0IGJhciB3aGVu
IHNlbGVjdGluZyB0ZXh0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3Vic3Rp
dHV0ZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJzdGl0dXRlRGF0YS5oCmluZGV4
IDcwNTYzMjEzM2RmOGVmODU2NTk4NTI4N2U0MTA2MGIxZGIzNzk0ODkuLmY2NjI5MmUzMWNiZWI0
MjY0MzBhODMyYWRlZjQyOTkxY2I1NzQzNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9TdWJzdGl0dXRlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJzdGl0
dXRlRGF0YS5oCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNs
YXNzIFN1YnN0aXR1dGVEYXRhIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIGVudW0gY2xhc3MgU2Vz
c2lvbkhpc3RvcnlWaXNpYmlsaXR5IHsKKyAgICAgICAgZW51bSBjbGFzcyBTZXNzaW9uSGlzdG9y
eVZpc2liaWxpdHkgOiBib29sIHsKICAgICAgICAgICAgIFZpc2libGUsCiAgICAgICAgICAgICBI
aWRkZW4sCiAgICAgICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2Fk
UGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5jcHAK
aW5kZXggZTNkZDgwMWZkMjQxOWZkOGY5NmIzMTU4Mzg2Y2UxNWI5MzM4MTcyZS4uZWNhMTFhM2Ew
MGMyMzQzNzUwN2UwMWQ5NmNiMGU0OTgxMDE4NjRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xv
YWRQYXJhbWV0ZXJzLmNwcApAQCAtNTcsNiArNTcsNyBAQCB2b2lkIExvYWRQYXJhbWV0ZXJzOjpl
bmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbG9ja0Jh
Y2tGb3J3YXJkTGlzdDsKICAgICBlbmNvZGVyIDw8IGNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlz
dG9yeTsKICAgICBlbmNvZGVyIDw8IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW47CisgICAg
ZW5jb2RlciA8PCBzZXNzaW9uSGlzdG9yeVZpc2liaWxpdHk7CiAKICAgICBwbGF0Zm9ybUVuY29k
ZShlbmNvZGVyKTsKIH0KQEAgLTEzNyw2ICsxMzgsOSBAQCBib29sIExvYWRQYXJhbWV0ZXJzOjpk
ZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBMb2FkUGFyYW1ldGVycyYgZGF0YSkKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEuaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbikpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGEu
c2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAog
ICAgIGlmICghcGxhdGZvcm1EZWNvZGUoZGVjb2RlciwgZGF0YSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBhcmFtZXRlcnMu
aCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0xvYWRQYXJhbWV0ZXJzLmgKaW5kZXggMmYwZGZkMjMx
ZjVlZTYzYWY4NTI3ODcyZTU4YjEzOGRhMmZlN2FhNi4uZjA5ZDBiYzVlMzg3MzFhZWE3NWRjMjNm
NzkwOWYzZjZkMGUyMDBkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvTG9hZFBh
cmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Mb2FkUGFyYW1ldGVycy5oCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiV2Vic2l0ZVBvbGljaWVzRGF0YS5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3Vy
Y2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TdWJzdGl0dXRlRGF0YS5oPgogCiBPQkpD
X0NMQVNTIE5TRGljdGlvbmFyeTsKIApAQCAtNjksNiArNzAsNyBAQCBzdHJ1Y3QgTG9hZFBhcmFt
ZXRlcnMgewogICAgIFVzZXJEYXRhIHVzZXJEYXRhOwogICAgIFdlYkNvcmU6OkxvY2tIaXN0b3J5
IGxvY2tIaXN0b3J5IHsgV2ViQ29yZTo6TG9ja0hpc3Rvcnk6Ok5vIH07CiAgICAgV2ViQ29yZTo6
TG9ja0JhY2tGb3J3YXJkTGlzdCBsb2NrQmFja0ZvcndhcmRMaXN0IHsgV2ViQ29yZTo6TG9ja0Jh
Y2tGb3J3YXJkTGlzdDo6Tm8gfTsKKyAgICBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vzc2lv
bkhpc3RvcnlWaXNpYmlsaXR5IHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSB7IFdlYkNvcmU6OlN1
YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHk6OlZpc2libGUgfTsKICAgICBT
dHJpbmcgY2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5OwogICAgIHN0ZDo6b3B0aW9uYWw8
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW47
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmNwcAppbmRl
eCBjNDA3ZWQ3MjFmNTU2MmI3OTE0NmU1YWI4YjIzNzVkZjcwNmJjZmQzLi44ODQ2NmM0OWVkMGRl
MThlMjAzMmNhYTBhMDQ2NDgzOWVhNzQ1MTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSU5hdmlnYXRpb24uY3BwCkBAIC0zOSwxMSArMzksMTIgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIAogc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRzIG5hdmlnYXRpb25BY3Rpdml0
eVRpbWVvdXQgeyAzMF9zIH07CiAKLVN1YnN0aXR1dGVEYXRhOjpTdWJzdGl0dXRlRGF0YShWZWN0
b3I8dWludDhfdD4mJiBjb250ZW50LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwg
QVBJOjpPYmplY3QqIHVzZXJEYXRhKQotICAgIDogU3Vic3RpdHV0ZURhdGEoV1RGTW92ZShjb250
ZW50KSwgcmVzcG9uc2UubWltZVR5cGUoKSwgcmVzcG9uc2UudGV4dEVuY29kaW5nTmFtZSgpLCBy
ZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgdXNlckRhdGEpCitTdWJzdGl0dXRlRGF0YTo6U3Vic3Rp
dHV0ZURhdGEoVmVjdG9yPHVpbnQ4X3Q+JiYgY29udGVudCwgY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2li
aWxpdHkgc2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KQorICAgIDogU3Vic3RpdHV0ZURhdGEoV1RG
TW92ZShjb250ZW50KSwgcmVzcG9uc2UubWltZVR5cGUoKSwgcmVzcG9uc2UudGV4dEVuY29kaW5n
TmFtZSgpLCByZXNwb25zZS51cmwoKS5zdHJpbmcoKSwgbnVsbHB0ciwgc2Vzc2lvbkhpc3RvcnlW
aXNpYmlsaXR5KQogewogfQogCisKIE5hdmlnYXRpb246Ok5hdmlnYXRpb24oV2ViTmF2aWdhdGlv
blN0YXRlJiBzdGF0ZSkKICAgICA6IG1fbmF2aWdhdGlvbklEKHN0YXRlLmdlbmVyYXRlTmF2aWdh
dGlvbklEKCkpCiAgICAgLCBtX2NsaWVudE5hdmlnYXRpb25BY3Rpdml0eShuYXZpZ2F0aW9uQWN0
aXZpdHlUaW1lb3V0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SU5hdmlnYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9u
LmgKaW5kZXggOGZmNjNmY2EwOTNhODMxYjIzNzU1Y2M2MGIzMTEwMjQ0MTI5NmE5OS4uYWU2ZjBi
NTVkOTlmMzIxY2Q3ODU1NTYxMDYzNGE1Yzg2ZGEwMTMzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VS
ZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1N1YnN0aXR1dGVEYXRhLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01MCwyMyArNTEsMjUgQEAgY2xhc3MgV2ViTmF2aWdhdGlv
blN0YXRlOwogbmFtZXNwYWNlIEFQSSB7CiAKIHN0cnVjdCBTdWJzdGl0dXRlRGF0YSB7Ci0gICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgU3Vic3RpdHV0ZURhdGEoVmVj
dG9yPHVpbnQ4X3Q+JiYgY29udGVudCwgY29uc3QgV1RGOjpTdHJpbmcmIE1JTUVUeXBlLCBjb25z
dCBXVEY6OlN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFdURjo6U3RyaW5nJiBiYXNlVVJMLCBBUEk6
Ok9iamVjdCogdXNlckRhdGEpCisgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwor
CisgICAgU3Vic3RpdHV0ZURhdGEoVmVjdG9yPHVpbnQ4X3Q+JiYgY29udGVudCwgY29uc3QgV1RG
OjpTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBXVEY6OlN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFdU
Rjo6U3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6OlN1YnN0
aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkgc2Vzc2lvbkhpc3RvcnlWaXNpYmls
aXR5ID0gV2ViQ29yZTo6U3Vic3RpdHV0ZURhdGE6OlNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eTo6
SGlkZGVuKQogICAgICAgICA6IGNvbnRlbnQoV1RGTW92ZShjb250ZW50KSkKICAgICAgICAgLCBN
SU1FVHlwZShNSU1FVHlwZSkKICAgICAgICAgLCBlbmNvZGluZyhlbmNvZGluZykKICAgICAgICAg
LCBiYXNlVVJMKGJhc2VVUkwpCiAgICAgICAgICwgdXNlckRhdGEodXNlckRhdGEpCisgICAgICAg
ICwgc2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSkKICAg
ICB7IH0KIAotICAgIFN1YnN0aXR1dGVEYXRhKFZlY3Rvcjx1aW50OF90PiYmIGNvbnRlbnQsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpOwor
ICAgIFN1YnN0aXR1dGVEYXRhKFZlY3Rvcjx1aW50OF90PiYmIGNvbnRlbnQsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmLCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhp
c3RvcnlWaXNpYmlsaXR5KTsKIAogICAgIFZlY3Rvcjx1aW50OF90PiBjb250ZW50OwogICAgIFdU
Rjo6U3RyaW5nIE1JTUVUeXBlOwogICAgIFdURjo6U3RyaW5nIGVuY29kaW5nOwogICAgIFdURjo6
U3RyaW5nIGJhc2VVUkw7CiAgICAgUmVmUHRyPEFQSTo6T2JqZWN0PiB1c2VyRGF0YTsKKyAgICBX
ZWJDb3JlOjpTdWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5IHNlc3Npb25I
aXN0b3J5VmlzaWJpbGl0eSB7IFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9y
eVZpc2liaWxpdHk6OkhpZGRlbiB9OwogfTsKIAogY2xhc3MgTmF2aWdhdGlvbiA6IHB1YmxpYyBP
YmplY3RJbXBsPE9iamVjdDo6VHlwZTo6TmF2aWdhdGlvbj4gewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuY3BwCmluZGV4IGJiNGE0YzJmNmExN2Y0
YWRhMjY5YTM0NTBmOWMyNzZmNjQ4YzcyZTEuLmM5NzU1MmY0ZTYzYjU5MjNjNmNiMWM5MDQzZGZi
MmIyYzVjZjIzYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lv
bmFsUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25h
bFBhZ2VQcm94eS5jcHAKQEAgLTE2MiwxMSArMTYyLDExIEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdl
UHJveHk6OmluaXRpYWxpemVXZWJQYWdlKFJlZlB0cjxBUEk6OldlYnNpdGVQb2xpY2llcz4mJiB3
ZWJzCiAgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkZyZWV6ZUxheWVyVHJlZUR1ZVRv
U3dpcGVBbmltYXRpb24oKSk7CiB9CiAKLXZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWRE
YXRhKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNl
JiBkYXRhLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBj
b25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgc3RkOjpvcHRpb25h
bDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
biwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcykK
K3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmxvYWREYXRhKEFQSTo6TmF2aWdhdGlvbiYgbmF2
aWdhdGlvbiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhLCBjb25zdCBTdHJpbmcmIE1J
TUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwsIEFQ
STo6T2JqZWN0KiB1c2VyRGF0YSwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERv
bWFpbj4gaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgc3RkOjpvcHRpb25hbDxXZWJzaXRl
UG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgU3Vic3RpdHV0ZURhdGE6OlNlc3Npb25I
aXN0b3J5VmlzaWJpbGl0eSBzZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpCiB7CiAgICAgUFJPVklT
SU9OQUxQQUdFUFJPWFlfUkVMRUFTRV9MT0coUHJvY2Vzc1N3YXBwaW5nLCAibG9hZERhdGE6Iik7
CiAKLSAgICBtX3BhZ2UubG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29w
eVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2aWdhdGlvbiwgZGF0YSwgTUlNRVR5cGUsIGVuY29kaW5n
LCBiYXNlVVJMLCB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2Fk
OjpZZXMsIGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFdURk1vdmUod2Vic2l0ZVBvbGlj
aWVzKSwgbmF2aWdhdGlvbi5sYXN0TmF2aWdhdGlvbkFjdGlvbigpLnNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kpOworICAgIG1fcGFnZS5sb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKG1f
cHJvY2Vzcy5jb3B5UmVmKCksIG1fd2ViUGFnZUlELCBuYXZpZ2F0aW9uLCBkYXRhLCBNSU1FVHlw
ZSwgZW5jb2RpbmcsIGJhc2VVUkwsIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29u
dGludWluZ0xvYWQ6OlllcywgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgV1RGTW92ZSh3
ZWJzaXRlUG9saWNpZXMpLCBuYXZpZ2F0aW9uLmxhc3ROYXZpZ2F0aW9uQWN0aW9uKCkuc2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSwgc2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KTsKIH0KIAog
dm9pZCBQcm92aXNpb25hbFBhZ2VQcm94eTo6bG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiBu
YXZpZ2F0aW9uLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBBUEk6Ok9iamVj
dCogdXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlz
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVz
RGF0YT4mJiB3ZWJzaXRlUG9saWNpZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJv
dmlzaW9uYWxQYWdlUHJveHkuaAppbmRleCA4MzFjNzljMTgyYjcxZmE2OWRlNWNhMTIxNWExZDRi
YmQ2NTAzMWIzLi40ZTQ2M2FiMTlmNDY2YThjNzRlYWJiNGI0Y2EyN2ZkOGU2OTFhNGQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmgKQEAgLTk4
LDcgKzk4LDcgQEAgcHVibGljOgogI2VuZGlmCiAjZW5kaWYKIAotICAgIHZvaWQgbG9hZERhdGEo
QVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5n
JiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJM
LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91
bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBzdGQ6Om51
bGxvcHQpOworICAgIHZvaWQgbG9hZERhdGEoQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpE
YXRhUmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNv
ZGluZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIHN0ZDo6
b3B0aW9uYWw8TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNp
dGVQb2xpY2llc0RhdGE+JiYsIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9y
eVZpc2liaWxpdHkpOwogICAgIHZvaWQgbG9hZFJlcXVlc3QoQVBJOjpOYXZpZ2F0aW9uJiwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSwgc3RkOjpvcHRp
b25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBv
bGljaWVzRGF0YT4mJiA9IHN0ZDo6bnVsbG9wdCk7CiAgICAgdm9pZCBnb1RvQmFja0ZvcndhcmRJ
dGVtKEFQSTo6TmF2aWdhdGlvbiYsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mLCBSZWZQdHI8QVBJ
OjpXZWJzaXRlUG9saWNpZXM+JiYpOwogICAgIHZvaWQgY2FuY2VsKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA5N2U3YmUyNThhZDViODllMGQ5MjhiZWY2
ZWJlYWNkMDA0NjU1MmZiLi5mMGUxNDE3ZDM4MDdlOTI4YzdkZGY2ZGI5MDJhNGY4NzdkN2UwMDhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTE0NjAsMTEg
KzE0NjAsMTEgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpsb2FkRGF0
YShjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGMKICAgICBpZiAoc2hvdWxkRm9yY2VG
b3JlZ3JvdW5kUHJpb3JpdHlGb3JDbGllbnROYXZpZ2F0aW9uKCkpCiAgICAgICAgIG5hdmlnYXRp
b24tPnNldENsaWVudE5hdmlnYXRpb25BY3Rpdml0eShwcm9jZXNzKCkudGhyb3R0bGVyKCkuZm9y
ZWdyb3VuZEFjdGl2aXR5KCJDbGllbnQgbmF2aWdhdGlvbiJfcykpOwogCi0gICAgbG9hZERhdGFX
aXRoTmF2aWdhdGlvblNoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBtX3dlYlBhZ2VJRCwgbmF2
aWdhdGlvbiwgZGF0YSwgTUlNRVR5cGUsIGVuY29kaW5nLCBiYXNlVVJMLCB1c2VyRGF0YSwgU2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkOjpObywgaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFp
bigpLCBzdGQ6Om51bGxvcHQsIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOworICAgIGxv
YWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQobV9wcm9jZXNzLmNvcHlSZWYoKSwgbV93ZWJQYWdl
SUQsIG5hdmlnYXRpb24sIGRhdGEsIE1JTUVUeXBlLCBlbmNvZGluZywgYmFzZVVSTCwgdXNlckRh
dGEsIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZDo6Tm8sIGlzTmF2aWdhdGluZ1RvQXBwQm91
bmREb21haW4oKSwgc3RkOjpudWxsb3B0LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5LCBT
dWJzdGl0dXRlRGF0YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5OjpIaWRkZW4pOwogICAgIHJl
dHVybiBuYXZpZ2F0aW9uOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6bG9hZERhdGFXaXRoTmF2
aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0
IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVz
ZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+
JiYgd2Vic2l0ZVBvbGljaWVzLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3kpCit2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZERhdGFXaXRoTmF2
aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHdlYlBhZ2VJRCwgQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0
IFN0cmluZyYgZW5jb2RpbmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVz
ZXJEYXRhLCBTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQgc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluLCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+
JiYgd2Vic2l0ZVBvbGljaWVzLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3ksIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2li
aWxpdHkgc2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5KQogewogICAgIFdFQlBBR0VQUk9YWV9SRUxF
QVNFX0xPRyhMb2FkaW5nLCAibG9hZERhdGFXaXRoTmF2aWdhdGlvbiIpOwogCkBAIC0xNDc1LDYg
KzE0NzUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsCiAgICAgbV9wYWdlTG9hZFN0YXRlLnNl
dFBlbmRpbmdBUElSZXF1ZXN0KHRyYW5zYWN0aW9uLCB7IG5hdmlnYXRpb24ubmF2aWdhdGlvbklE
KCksICFiYXNlVVJMLmlzRW1wdHkoKSA/IGJhc2VVUkwgOiBhYm91dEJsYW5rVVJMKCkuc3RyaW5n
KCkgfSk7CiAKICAgICBMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKKyAgICBsb2FkUGFy
YW1ldGVycy5zZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkgPSBzZXNzaW9uSGlzdG9yeVZpc2liaWxp
dHk7CiAgICAgbG9hZFBhcmFtZXRlcnMubmF2aWdhdGlvbklEID0gbmF2aWdhdGlvbi5uYXZpZ2F0
aW9uSUQoKTsKICAgICBsb2FkUGFyYW1ldGVycy5kYXRhID0gZGF0YTsKICAgICBsb2FkUGFyYW1l
dGVycy5NSU1FVHlwZSA9IE1JTUVUeXBlOwpAQCAtMTUxMyw3ICsxNTE0LDcgQEAgUmVmUHRyPEFQ
STo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpsb2FkU2ltdWxhdGVkUmVxdWVzdChXZWJDb3Jl
OjpSZXNvdXJjZVJlcXUKICAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCiAgICAgICAgIGxh
dW5jaFByb2Nlc3MoUmVnaXN0cmFibGVEb21haW4geyBzaW11bGF0ZWRSZXF1ZXN0LnVybCgpIH0s
IFByb2Nlc3NMYXVuY2hSZWFzb246OkluaXRpYWxQcm9jZXNzKTsKIAotICAgIGF1dG8gbmF2aWdh
dGlvbiA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVTaW11bGF0ZWRMb2FkV2l0aERhdGFOYXZp
Z2F0aW9uKFJlc291cmNlUmVxdWVzdChzaW11bGF0ZWRSZXF1ZXN0KSwgbWFrZVVuaXF1ZTxBUEk6
OlN1YnN0aXR1dGVEYXRhPihkYXRhLnZlY3RvcigpLCBSZXNvdXJjZVJlc3BvbnNlKHNpbXVsYXRl
ZFJlc3BvbnNlKSwgbnVsbHB0ciksIG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpKTsK
KyAgICBhdXRvIG5hdmlnYXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlU2ltdWxhdGVk
TG9hZFdpdGhEYXRhTmF2aWdhdGlvbihSZXNvdXJjZVJlcXVlc3Qoc2ltdWxhdGVkUmVxdWVzdCks
IG1ha2VVbmlxdWU8QVBJOjpTdWJzdGl0dXRlRGF0YT4oZGF0YS52ZWN0b3IoKSwgUmVzb3VyY2VS
ZXNwb25zZShzaW11bGF0ZWRSZXNwb25zZSksIFdlYkNvcmU6OlN1YnN0aXR1dGVEYXRhOjpTZXNz
aW9uSGlzdG9yeVZpc2liaWxpdHk6OlZpc2libGUpLCBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVu
dEl0ZW0oKSk7CiAKICAgICBpZiAoc2hvdWxkRm9yY2VGb3JlZ3JvdW5kUHJpb3JpdHlGb3JDbGll
bnROYXZpZ2F0aW9uKCkpCiAgICAgICAgIG5hdmlnYXRpb24tPnNldENsaWVudE5hdmlnYXRpb25B
Y3Rpdml0eShwcm9jZXNzKCkudGhyb3R0bGVyKCkuZm9yZWdyb3VuZEFjdGl2aXR5KCJDbGllbnQg
bmF2aWdhdGlvbiJfcykpOwpAQCAtMzYwOCw3ICszNjA5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhBUEk6Ok5hdmlnYXRpb24mIG5hdmlnYXRp
b24sIHMKICAgICAgICAgLy8gRklYTUU6IFdvcmsgb3V0IHRpbWluZyBvZiByZXNwb25kaW5nIHdp
dGggdGhlIGxhc3QgcG9saWN5IGRlbGVnYXRlLCBldGMKICAgICAgICAgQVNTRVJUKCFuYXZpZ2F0
aW9uLT5jdXJyZW50UmVxdWVzdCgpLmlzRW1wdHkoKSk7CiAgICAgICAgIGlmIChhdXRvJiBzdWJz
dGl0dXRlRGF0YSA9IG5hdmlnYXRpb24tPnN1YnN0aXR1dGVEYXRhKCkpCi0gICAgICAgICAgICBt
X3Byb3Zpc2lvbmFsUGFnZS0+bG9hZERhdGEobmF2aWdhdGlvbiwgeyBzdWJzdGl0dXRlRGF0YS0+
Y29udGVudC5kYXRhKCksIHN1YnN0aXR1dGVEYXRhLT5jb250ZW50LnNpemUoKSB9LCBzdWJzdGl0
dXRlRGF0YS0+TUlNRVR5cGUsIHN1YnN0aXR1dGVEYXRhLT5lbmNvZGluZywgc3Vic3RpdHV0ZURh
dGEtPmJhc2VVUkwsIHN1YnN0aXR1dGVEYXRhLT51c2VyRGF0YS5nZXQoKSwgaXNOYXZpZ2F0aW5n
VG9BcHBCb3VuZERvbWFpbigpLCBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llc0RhdGEpKTsKKyAgICAg
ICAgICAgIG1fcHJvdmlzaW9uYWxQYWdlLT5sb2FkRGF0YShuYXZpZ2F0aW9uLCB7IHN1YnN0aXR1
dGVEYXRhLT5jb250ZW50LmRhdGEoKSwgc3Vic3RpdHV0ZURhdGEtPmNvbnRlbnQuc2l6ZSgpIH0s
IHN1YnN0aXR1dGVEYXRhLT5NSU1FVHlwZSwgc3Vic3RpdHV0ZURhdGEtPmVuY29kaW5nLCBzdWJz
dGl0dXRlRGF0YS0+YmFzZVVSTCwgc3Vic3RpdHV0ZURhdGEtPnVzZXJEYXRhLmdldCgpLCBpc05h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCksIFdURk1vdmUod2Vic2l0ZVBvbGljaWVzRGF0YSks
IHN1YnN0aXR1dGVEYXRhLT5zZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOwogICAgICAgICBlbHNl
CiAgICAgICAgICAgICBtX3Byb3Zpc2lvbmFsUGFnZS0+bG9hZFJlcXVlc3QobmF2aWdhdGlvbiwg
UmVzb3VyY2VSZXF1ZXN0IHsgbmF2aWdhdGlvbi0+Y3VycmVudFJlcXVlc3QoKSB9LCBudWxscHRy
LCBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKCksIFdURk1vdmUod2Vic2l0ZVBvbGljaWVz
RGF0YSkpOwogICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4
IDU5YjNjOTJjOGEwNjVhODFlNDg5MjI1NDYzMzYwNzVhOTlhZGUxN2MuLjkwM2JkOGVkZmU5OTIw
YjM2NjIzOWM4YzkxODUxYjVkMGQ5NzQwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC0xNzMzLDcgKzE3MzMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4m
JiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJh
bWVJbmZvRGF0YSYmLCBXZWJDb3JlOjpQb2xpY3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgRnJhbWVJbmZvRGF0YSYmIG9yaWdp
bmF0aW5nRnJhbWVJbmZvLCBzdGQ6Om9wdGlvbmFsPFdlYlBhZ2VQcm94eUlkZW50aWZpZXI+IG9y
aWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFs
UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UmJiByZXF1ZXN0Qm9keSwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVz
cG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwgdWludDY0X3QgbGlzdGVuZXJJRCk7CiAgICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9E
YXRhJiYsIFdlYkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZG93bmxv
YWRBdHRyaWJ1dGUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAg
dm9pZCBzdGFydFVSTFNjaGVtZVRhc2tTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFVSTFNjaGVtZVRhc2tQYXJhbWV0ZXJzJiYpOwotICAgIHZv
aWQgbG9hZERhdGFXaXRoTmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBX
ZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgQVBJOjpOYXZpZ2F0aW9uJiwgY29uc3QgSVBDOjpEYXRh
UmVmZXJlbmNlJiwgY29uc3QgU3RyaW5nJiBNSU1FVHlwZSwgY29uc3QgU3RyaW5nJiBlbmNvZGlu
ZywgY29uc3QgU3RyaW5nJiBiYXNlVVJMLCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6
OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbj4sIHN0ZDo6b3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJiA9IHN0
ZDo6bnVsbG9wdCwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IFdlYkNv
cmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICB2
b2lkIGxvYWREYXRhV2l0aE5hdmlnYXRpb25TaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIEFQSTo6TmF2aWdhdGlvbiYsIGNvbnN0IElQQzo6RGF0
YVJlZmVyZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2Rp
bmcsIGNvbnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3Jl
OjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4+LCBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYsIFdl
YkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIFdlYkNvcmU6OlN1YnN0aXR1dGVE
YXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHkpOwogICAgIHZvaWQgbG9hZFJlcXVlc3RXaXRo
TmF2aWdhdGlvblNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgQVBJOjpOYXZpZ2F0aW9uJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdl
YkNvcmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ksIEFQSTo6T2JqZWN0KiB1c2VyRGF0
YSwgV2ViQ29yZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBzdGQ6Om9wdGlvbmFsPE5h
dmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNE
YXRhPiYmID0gc3RkOjpudWxsb3B0KTsKICAgICB2b2lkIGJhY2tGb3J3YXJkR29Ub0l0ZW1TaGFy
ZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVt
SWRlbnRpZmllciYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViQmFja0ZvcndhcmRM
aXN0Q291bnRzJik+JiYpOwogICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmNTaGFyZWQoUmVmPFdlYlByb2Nlc3NQcm94eT4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBib29sIGlzTWFpbkZyYW1lLCBGcmFtZUluZm9EYXRhJiYsIFdlYkNvcmU6OlBvbGljeUNo
ZWNrSWRlbnRpZmllciwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0
YSYmLCBGcmFtZUluZm9EYXRhJiYgb3JpZ2luYXRpbmdGcmFtZUluZm8sIHN0ZDo6b3B0aW9uYWw8
V2ViUGFnZVByb3h5SWRlbnRpZmllcj4gb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNv
dXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY0RlbGF5
ZWRSZXBseSYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggYzU4OWE2YzI5ZDZhYmUwZWEzYzZiMDczYjNmNjMxMTY2ODk4M2IxOS4uMTc4NGJh
NDg5YTg4NmQxMWUyNWEwM2M2MDFmNzJhMDc2MWZlM2Q0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTE3MDYsNyArMTcwNiw3IEBAIE5PX1JF
VFVSTiB2b2lkIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0V2FpdGluZ0ZvclByb2Nlc3NMYXVuY2goTG9h
ZFBhcmFtZXRlcnMmJiwgVVJMCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0K
IAotdm9pZCBXZWJQYWdlOjpsb2FkRGF0YUltcGwodWludDY0X3QgbmF2aWdhdGlvbklELCBib29s
IHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNp
ZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywgUmVmPFNoYXJlZEJ1ZmZlcj4mJiBzaGFyZWRCdWZm
ZXIsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmdOYW1lLCBj
b25zdCBVUkwmIGJhc2VVUkwsIGNvbnN0IFVSTCYgdW5yZWFjaGFibGVVUkwsIGNvbnN0IFVzZXJE
YXRhJiB1c2VyRGF0YSwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4g
aXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQordm9pZCBXZWJQYWdlOjpsb2FkRGF0YUlt
cGwodWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9h
ZCwgc3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmIHdlYnNpdGVQb2xpY2llcywg
UmVmPFNoYXJlZEJ1ZmZlcj4mJiBzaGFyZWRCdWZmZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsIFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgY29uc3QgVVJMJiB1bnJlYWNoYWJsZVVS
TCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhLCBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpbmdUb0Fw
cEJvdW5kRG9tYWluPiBpc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBTdWJzdGl0dXRlRGF0
YTo6U2Vzc2lvbkhpc3RvcnlWaXNpYmlsaXR5IHNlc3Npb25IaXN0b3J5VmlzaWJpbGl0eSwgU2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQog
ewogI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKICAgICBzZXRJc05hdmlnYXRpbmdUb0Fw
cEJvdW5kRG9tYWluKGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sICZtX21haW5GcmFtZS5n
ZXQoKSk7CkBAIC0xNzE3LDkgKzE3MTcsNyBAQCB2b2lkIFdlYlBhZ2U6OmxvYWREYXRhSW1wbCh1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGJvb2wgc2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMbwogICAg
IG1fcGVuZGluZ05hdmlnYXRpb25JRCA9IG5hdmlnYXRpb25JRDsKICAgICBtX3BlbmRpbmdXZWJz
aXRlUG9saWNpZXMgPSBXVEZNb3ZlKHdlYnNpdGVQb2xpY2llcyk7CiAKLSAgICBSZXNvdXJjZVJl
cXVlc3QgcmVxdWVzdChiYXNlVVJMKTsKLSAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlKFVS
TCgpLCBNSU1FVHlwZSwgc2hhcmVkQnVmZmVyLT5zaXplKCksIGVuY29kaW5nTmFtZSk7Ci0gICAg
U3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoV1RGTW92ZShzaGFyZWRCdWZmZXIpLCB1bnJl
YWNoYWJsZVVSTCwgcmVzcG9uc2UsIFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2li
aWxpdHk6OkhpZGRlbik7CisgICAgU3Vic3RpdHV0ZURhdGEgc3Vic3RpdHV0ZURhdGEoV1RGTW92
ZShzaGFyZWRCdWZmZXIpLCB1bnJlYWNoYWJsZVVSTCwgcmVzcG9uc2UsIHNlc3Npb25IaXN0b3J5
VmlzaWJpbGl0eSk7CiAKICAgICAvLyBMZXQgdGhlIEluamVjdGVkQnVuZGxlIGtub3cgd2UgYXJl
IGFib3V0IHRvIHN0YXJ0IHRoZSBsb2FkLCBwYXNzaW5nIHRoZSB1c2VyIGRhdGEgZnJvbSB0aGUg
VUlQcm9jZXNzCiAgICAgLy8gdG8gYWxsIHRoZSBjbGllbnQgdG8gc2V0IHVwIGFueSBuZWVkZWQg
c3RhdGUuCkBAIC0xNzQ4LDcgKzE3NDYsOCBAQCB2b2lkIFdlYlBhZ2U6OmxvYWREYXRhKExvYWRQ
YXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiAgICAgICAgICAgICBMZWdhY3lTY2hlbWVSZWdp
c3RyeTo6cmVnaXN0ZXJVUkxTY2hlbWVBc0hhbmRsZWRCeVNjaGVtZUhhbmRsZXIoYmFzZVVSTC5w
cm90b2NvbCgpLnRvU3RyaW5nKCkpOwogICAgIH0KIAotICAgIGxvYWREYXRhSW1wbChsb2FkUGFy
YW1ldGVycy5uYXZpZ2F0aW9uSUQsIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCwgV1RGTW92ZShsb2FkUGFyYW1ldGVycy53ZWJzaXRlUG9saWNpZXMpLCBXVEZNb3Zl
KHNoYXJlZEJ1ZmZlciksIGxvYWRQYXJhbWV0ZXJzLk1JTUVUeXBlLCBsb2FkUGFyYW1ldGVycy5l
bmNvZGluZ05hbWUsIGJhc2VVUkwsIFVSTCgpLCBsb2FkUGFyYW1ldGVycy51c2VyRGF0YSwgbG9h
ZFBhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgbG9hZFBhcmFtZXRlcnMu
c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CisgICAgUmVzb3VyY2VSZXNwb25zZSByZXNw
b25zZShVUkwoKSwgbG9hZFBhcmFtZXRlcnMuTUlNRVR5cGUsIHNoYXJlZEJ1ZmZlci0+c2l6ZSgp
LCBsb2FkUGFyYW1ldGVycy5lbmNvZGluZ05hbWUpOworICAgIGxvYWREYXRhSW1wbChsb2FkUGFy
YW1ldGVycy5uYXZpZ2F0aW9uSUQsIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRyZWF0QXNDb250aW51
aW5nTG9hZCwgV1RGTW92ZShsb2FkUGFyYW1ldGVycy53ZWJzaXRlUG9saWNpZXMpLCBXVEZNb3Zl
KHNoYXJlZEJ1ZmZlciksIFJlc291cmNlUmVxdWVzdChiYXNlVVJMKSwgV1RGTW92ZShyZXNwb25z
ZSksIFVSTCgpLCBsb2FkUGFyYW1ldGVycy51c2VyRGF0YSwgbG9hZFBhcmFtZXRlcnMuaXNOYXZp
Z2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgbG9hZFBhcmFtZXRlcnMuc2Vzc2lvbkhpc3RvcnlWaXNp
YmlsaXR5LCBsb2FkUGFyYW1ldGVycy5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKIH0K
IAogdm9pZCBXZWJQYWdlOjpsb2FkQWx0ZXJuYXRlSFRNTChMb2FkUGFyYW1ldGVycyYmIGxvYWRQ
YXJhbWV0ZXJzKQpAQCAtMTc1OSw1MCArMTc1OCwxNyBAQCB2b2lkIFdlYlBhZ2U6OmxvYWRBbHRl
cm5hdGVIVE1MKExvYWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiAgICAgVVJMIHVucmVh
Y2hhYmxlVVJMID0gbG9hZFBhcmFtZXRlcnMudW5yZWFjaGFibGVVUkxTdHJpbmcuaXNFbXB0eSgp
ID8gVVJMKCkgOiBVUkwoVVJMKCksIGxvYWRQYXJhbWV0ZXJzLnVucmVhY2hhYmxlVVJMU3RyaW5n
KTsKICAgICBVUkwgcHJvdmlzaW9uYWxMb2FkRXJyb3JVUkwgPSBsb2FkUGFyYW1ldGVycy5wcm92
aXNpb25hbExvYWRFcnJvclVSTFN0cmluZy5pc0VtcHR5KCkgPyBVUkwoKSA6IFVSTChVUkwoKSwg
bG9hZFBhcmFtZXRlcnMucHJvdmlzaW9uYWxMb2FkRXJyb3JVUkxTdHJpbmcpOwogICAgIGF1dG8g
c2hhcmVkQnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUobG9hZFBhcmFtZXRlcnMuZGF0YS5k
YXRhKCksIGxvYWRQYXJhbWV0ZXJzLmRhdGEuc2l6ZSgpKTsKLSAgICBtX21haW5GcmFtZS0+Y29y
ZUZyYW1lKCktPmxvYWRlcigpLnNldFByb3Zpc2lvbmFsTG9hZEVycm9yQmVpbmdIYW5kbGVkVVJM
KHByb3Zpc2lvbmFsTG9hZEVycm9yVVJMKTsgICAgCi0gICAgbG9hZERhdGFJbXBsKGxvYWRQYXJh
bWV0ZXJzLm5hdmlnYXRpb25JRCwgbG9hZFBhcmFtZXRlcnMuc2hvdWxkVHJlYXRBc0NvbnRpbnVp
bmdMb2FkLCBXVEZNb3ZlKGxvYWRQYXJhbWV0ZXJzLndlYnNpdGVQb2xpY2llcyksIFdURk1vdmUo
c2hhcmVkQnVmZmVyKSwgbG9hZFBhcmFtZXRlcnMuTUlNRVR5cGUsIGxvYWRQYXJhbWV0ZXJzLmVu
Y29kaW5nTmFtZSwgYmFzZVVSTCwgdW5yZWFjaGFibGVVUkwsIGxvYWRQYXJhbWV0ZXJzLnVzZXJE
YXRhLCBsb2FkUGFyYW1ldGVycy5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKTsKKyAgICBt
X21haW5GcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLnNldFByb3Zpc2lvbmFsTG9hZEVycm9y
QmVpbmdIYW5kbGVkVVJMKHByb3Zpc2lvbmFsTG9hZEVycm9yVVJMKTsKKworICAgIFJlc291cmNl
UmVzcG9uc2UgcmVzcG9uc2UoVVJMKCksIGxvYWRQYXJhbWV0ZXJzLk1JTUVUeXBlLCBzaGFyZWRC
dWZmZXItPnNpemUoKSwgbG9hZFBhcmFtZXRlcnMuZW5jb2RpbmdOYW1lKTsKKyAgICBsb2FkRGF0
YUltcGwobG9hZFBhcmFtZXRlcnMubmF2aWdhdGlvbklELCBsb2FkUGFyYW1ldGVycy5zaG91bGRU
cmVhdEFzQ29udGludWluZ0xvYWQsIFdURk1vdmUobG9hZFBhcmFtZXRlcnMud2Vic2l0ZVBvbGlj
aWVzKSwgV1RGTW92ZShzaGFyZWRCdWZmZXIpLCBSZXNvdXJjZVJlcXVlc3QoYmFzZVVSTCksIFdU
Rk1vdmUocmVzcG9uc2UpLCB1bnJlYWNoYWJsZVVSTCwgbG9hZFBhcmFtZXRlcnMudXNlckRhdGEs
IGxvYWRQYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFdlYkNvcmU6OlN1
YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHk6OkhpZGRlbik7CiAgICAgbV9t
YWluRnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5zZXRQcm92aXNpb25hbExvYWRFcnJvckJl
aW5nSGFuZGxlZFVSTCh7IH0pOwogfQogCiB2b2lkIFdlYlBhZ2U6OmxvYWRTaW11bGF0ZWRSZXF1
ZXN0QW5kUmVzcG9uc2UoTG9hZFBhcmFtZXRlcnMmJiBsb2FkUGFyYW1ldGVycywgUmVzb3VyY2VS
ZXNwb25zZSYmIHNpbXVsYXRlZFJlc3BvbnNlKQogewotICAgIEFTU0VSVChzaW11bGF0ZWRSZXNw
b25zZS51cmwoKSA9PSBsb2FkUGFyYW1ldGVycy5yZXF1ZXN0LnVybCgpKTsKLSAgICBBU1NFUlQo
c2ltdWxhdGVkUmVzcG9uc2UubWltZVR5cGUoKSA9PSBsb2FkUGFyYW1ldGVycy5NSU1FVHlwZSk7
Ci0gICAgQVNTRVJUKHNpbXVsYXRlZFJlc3BvbnNlLnRleHRFbmNvZGluZ05hbWUoKSA9PSBsb2Fk
UGFyYW1ldGVycy5lbmNvZGluZ05hbWUpOwotICAgIEFTU0VSVChzdGF0aWNfY2FzdDxzaXplX3Q+
KHNpbXVsYXRlZFJlc3BvbnNlLmV4cGVjdGVkQ29udGVudExlbmd0aCgpKSA9PSBsb2FkUGFyYW1l
dGVycy5kYXRhLnNpemUoKSk7Ci0KLSAgICBzZXRMYXN0TmF2aWdhdGlvbldhc0FwcEJvdW5kKGxv
YWRQYXJhbWV0ZXJzLnJlcXVlc3QuaXNBcHBCb3VuZCgpKTsKLQotICAgIHBsYXRmb3JtRGlkUmVj
ZWl2ZUxvYWRQYXJhbWV0ZXJzKGxvYWRQYXJhbWV0ZXJzKTsKLQogICAgIGF1dG8gc2hhcmVkQnVm
ZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUobG9hZFBhcmFtZXRlcnMuZGF0YS5kYXRhKCksIGxv
YWRQYXJhbWV0ZXJzLmRhdGEuc2l6ZSgpKTsKLQotI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlO
UykKLSAgICBzZXRJc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKGxvYWRQYXJhbWV0ZXJzLmlz
TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sICZtX21haW5GcmFtZS5nZXQoKSk7Ci0jZW5kaWYK
LQotICAgIFNlbmRTdG9wUmVzcG9uc2l2ZW5lc3NUaW1lciBzdG9wcGVyOwotCi0gICAgbV9wZW5k
aW5nTmF2aWdhdGlvbklEID0gbG9hZFBhcmFtZXRlcnMubmF2aWdhdGlvbklEOwotICAgIG1fcGVu
ZGluZ1dlYnNpdGVQb2xpY2llcyA9IFdURk1vdmUobG9hZFBhcmFtZXRlcnMud2Vic2l0ZVBvbGlj
aWVzKTsKLQotICAgIFN1YnN0aXR1dGVEYXRhIHN1YnN0aXR1dGVEYXRhKFdURk1vdmUoc2hhcmVk
QnVmZmVyKSwgbG9hZFBhcmFtZXRlcnMucmVxdWVzdC51cmwoKSwgc2ltdWxhdGVkUmVzcG9uc2Us
IFN1YnN0aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHk6OlZpc2libGUpOwotCi0g
ICAgLy8gTGV0IHRoZSBJbmplY3RlZEJ1bmRsZSBrbm93IHdlIGFyZSBhYm91dCB0byBzdGFydCB0
aGUgbG9hZCwgcGFzc2luZyB0aGUgdXNlciBkYXRhIGZyb20gdGhlIFVJUHJvY2VzcwotICAgIC8v
IHRvIGFsbCB0aGUgY2xpZW50IHRvIHNldCB1cCBhbnkgbmVlZGVkIHN0YXRlLgotICAgIG1fbG9h
ZGVyQ2xpZW50LT53aWxsTG9hZERhdGFSZXF1ZXN0KCp0aGlzLCBsb2FkUGFyYW1ldGVycy5yZXF1
ZXN0LCBjb25zdF9jYXN0PFNoYXJlZEJ1ZmZlcio+KHN1YnN0aXR1dGVEYXRhLmNvbnRlbnQoKSks
IHN1YnN0aXR1dGVEYXRhLm1pbWVUeXBlKCksIHN1YnN0aXR1dGVEYXRhLnRleHRFbmNvZGluZygp
LCBzdWJzdGl0dXRlRGF0YS5mYWlsaW5nVVJMKCksIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRy
YW5zZm9ybUhhbmRsZXNUb09iamVjdHMobG9hZFBhcmFtZXRlcnMudXNlckRhdGEub2JqZWN0KCkp
LmdldCgpKTsKLQotICAgIC8vIEluaXRhdGUgdGhlIGxvYWQgaW4gV2ViQ29yZS4KLSAgICBGcmFt
ZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVlc3QoKm1fbWFpbkZyYW1lLT5jb3JlRnJhbWUoKSwg
bG9hZFBhcmFtZXRlcnMucmVxdWVzdCwgc3Vic3RpdHV0ZURhdGEpOwotICAgIGZyYW1lTG9hZFJl
cXVlc3Quc2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShsb2FkUGFyYW1ldGVycy5zaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKLSAgICBmcmFtZUxvYWRSZXF1ZXN0LnNldFNob3Vs
ZFRyZWF0QXNDb250aW51aW5nTG9hZChsb2FkUGFyYW1ldGVycy5zaG91bGRUcmVhdEFzQ29udGlu
dWluZ0xvYWQpOwotICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0TG9ja0hpc3RvcnkobG9hZFBhcmFt
ZXRlcnMubG9ja0hpc3RvcnkpOwotICAgIGZyYW1lTG9hZFJlcXVlc3Quc2V0TG9ja0JhY2tGb3J3
YXJkTGlzdChsb2FkUGFyYW1ldGVycy5sb2NrQmFja0ZvcndhcmRMaXN0KTsKLSAgICBmcmFtZUxv
YWRSZXF1ZXN0LnNldENsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeShsb2FkUGFyYW1ldGVy
cy5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkpOwotICAgIGZyYW1lTG9hZFJlcXVlc3Qu
c2V0SXNSZXF1ZXN0RnJvbUNsaWVudE9yVXNlcklucHV0KCk7Ci0KLSAgICAvLyBGSVhNRTogU2hv
dWxkIHRoaXMgYmUgImNvcmVQYWdlKCktPnVzZXJJbnB1dEJyaWRnZSgpLmxvYWRSZXF1ZXN0KFdU
Rk1vdmUoZnJhbWVMb2FkUmVxdWVzdCkpOyI/Ci0gICAgbV9tYWluRnJhbWUtPmNvcmVGcmFtZSgp
LT5sb2FkZXIoKS5sb2FkKFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCkpOworICAgIGxvYWREYXRh
SW1wbChsb2FkUGFyYW1ldGVycy5uYXZpZ2F0aW9uSUQsIGxvYWRQYXJhbWV0ZXJzLnNob3VsZFRy
ZWF0QXNDb250aW51aW5nTG9hZCwgV1RGTW92ZShsb2FkUGFyYW1ldGVycy53ZWJzaXRlUG9saWNp
ZXMpLCBXVEZNb3ZlKHNoYXJlZEJ1ZmZlciksIFdURk1vdmUobG9hZFBhcmFtZXRlcnMucmVxdWVz
dCksIFdURk1vdmUoc2ltdWxhdGVkUmVzcG9uc2UpLCBVUkwoKSwgbG9hZFBhcmFtZXRlcnMudXNl
ckRhdGEsIGxvYWRQYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFN1YnN0
aXR1dGVEYXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHk6OlZpc2libGUpOwogfQogCiB2b2lk
IFdlYlBhZ2U6Om5hdmlnYXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKGNvbnN0IFN0cmlu
ZyYgdXJsLCBJbnRQb2ludCBkb2N1bWVudFBvaW50LCBJbnRQb2ludCBzY3JlZW5Qb2ludCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA2NmUyYWVlMzYy
YjEyMDg2NWY0Y2ZlNzQ2MGI5NTRkZmRhODQ4MWZiLi44NWM1MmQzZWI3MWE2NTNjY2FkYmFkODU5
OGNmZmZjYWY0NjQ4ZGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCkBAIC04Myw2ICs4Myw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eVBvbGlj
eVZpb2xhdGlvbkV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZURhdGEuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NpbXBsZVJhbmdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TdWJzdGl0dXRl
RGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJBY3Rpdml0eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNl
ckNvbnRlbnRUeXBlcy5oPgpAQCAtMTU1OSw3ICsxNTYwLDcgQEAgcHJpdmF0ZToKIAogICAgIFN0
cmluZyBzb3VyY2VGb3JGcmFtZShXZWJGcmFtZSopOwogCi0gICAgdm9pZCBsb2FkRGF0YUltcGwo
dWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwg
c3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBSZWY8V2ViQ29yZTo6U2hhcmVk
QnVmZmVyPiYmLCBjb25zdCBTdHJpbmcmIE1JTUVUeXBlLCBjb25zdCBTdHJpbmcmIGVuY29kaW5n
TmFtZSwgY29uc3QgVVJMJiBiYXNlVVJMLCBjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFVz
ZXJEYXRhJiwgc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIFdlYkNv
cmU6OlNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgdm9pZCBsb2FkRGF0YUltcGwo
dWludDY0X3QgbmF2aWdhdGlvbklELCBib29sIHNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwg
c3RkOjpvcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYmLCBSZWY8V2ViQ29yZTo6U2hhcmVk
QnVmZmVyPiYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6UmVzb3VyY2VS
ZXNwb25zZSYmLCBjb25zdCBVUkwmIGZhaWxpbmdVUkwsIGNvbnN0IFVzZXJEYXRhJiwgc3RkOjpv
cHRpb25hbDxOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4sIFdlYkNvcmU6OlN1YnN0aXR1dGVE
YXRhOjpTZXNzaW9uSGlzdG9yeVZpc2liaWxpdHksIFdlYkNvcmU6OlNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kgPSBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91
bGROb3RBbGxvdyk7CiAKICAgICAvLyBBY3Rpb25zCiAgICAgdm9pZCB0cnlDbG9zZShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1YWMyYjg2ZDMxMWE2MjAzODA5MzYzY2FkZWIzNGZjNjgy
ODZlNGM3Li5iNmUyNTEwOGZiZjA0NDY4ODY0YWViMGYyYmJkMjk2MGUzZTJhMmU2IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMjEtMDctMDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBsb2FkU2ltdWxhdGVkUmVxdWVzdDogc2hvdWxkIGRvIHNhbWUgZGVsZWdh
dGUgY2FsbGJhY2tzIGFzIGxvYWRIVE1MU3RyaW5nIGFuZCBsb2FkRGF0YQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3NTk5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLV2ViVmlld0xvYWRBUElzLm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjEt
MDYtMzAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAg
W2lPU10gW0xpdmUgVGV4dF0gIlRleHQgZnJvbSBDYW1lcmEiIHNob3VsZCBub3QgYmUgc2hvd24g
aW4gY2FsbG91dCBiYXIgd2hlbiBzZWxlY3RpbmcgdGV4dApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdMb2FkQVBJcy5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3TG9hZEFQSXMubW0KaW5k
ZXggMWI3YTYwN2MwYWFkYjBmYjE3MGJhODYxY2E1ZmFjMmRmYTJhNWY0My4uZDQ5NmMxMzY1ODgy
YWY0OGQ0MGIyYzJiYjI4ZWM2YjExOTk0MGJjYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdMb2FkQVBJcy5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0xvYWRBUElzLm1tCkBAIC0z
Miw2ICszMiw3IEBACiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxX
ZWJLaXQvV0tXZWJWaWV3Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3
dGYvVmVjdG9yLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvTlNVUkxFeHRyYXMuaD4KIAogc3RhdGlj
IE5TU3RyaW5nICpleGFtcGxlVVJMU3RyaW5nID0gQCJodHRwczovL2V4YW1wbGUuY29tLyI7CkBA
IC04Miw2ICs4Myw2MSBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBb
ZGVsZWdhdGUgd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOwogfQogCitURVNUKFdLV2ViVmll
dywgTG9hZFNpbXVsYXRlZFJlcXVlc3REZWxlZ2F0ZUNhbGxiYWNrcykKK3sKKyAgICBlbnVtIGNs
YXNzIENhbGxiYWNrIDogdWludDhfdCB7CisgICAgICAgIE5hdmlnYXRpb25BY3Rpb24sCisgICAg
ICAgIE5hdmlnYXRpb25SZXNwb25zZSwKKyAgICAgICAgU3RhcnRQcm92aXNpb25hbCwKKyAgICAg
ICAgQ29tbWl0LAorICAgICAgICBGaW5pc2gKKyAgICB9OworCisgICAgYXV0byBjaGVja0NhbGxi
YWNrcyA9IFtdIChjb25zdCBWZWN0b3I8Q2FsbGJhY2s+IHZlY3RvcikgeworICAgICAgICBBU1NF
UlRfRVEodmVjdG9yLnNpemUoKSwgNHUpOworICAgICAgICBFWFBFQ1RfRVEodmVjdG9yWzBdLCBD
YWxsYmFjazo6TmF2aWdhdGlvbkFjdGlvbik7CisgICAgICAgIEVYUEVDVF9FUSh2ZWN0b3JbMV0s
IENhbGxiYWNrOjpTdGFydFByb3Zpc2lvbmFsKTsKKyAgICAgICAgRVhQRUNUX0VRKHZlY3Rvclsy
XSwgQ2FsbGJhY2s6OkNvbW1pdCk7CisgICAgICAgIEVYUEVDVF9FUSh2ZWN0b3JbM10sIENhbGxi
YWNrOjpGaW5pc2gpOworICAgIH07CisKKyAgICBfX2Jsb2NrIFZlY3RvcjxDYWxsYmFjaz4gY2Fs
bGJhY2tzOworICAgIF9fYmxvY2sgYm9vbCBmaW5pc2hlZCA9IGZhbHNlOworICAgIGF1dG8gZGVs
ZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOworICAgIGRlbGVn
YXRlLmdldCgpLmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24gPSBeKFdLTmF2aWdhdGlv
bkFjdGlvbiAqLCB2b2lkICheY29tcGxldGlvbkhhbmRsZXIpKFdLTmF2aWdhdGlvbkFjdGlvblBv
bGljeSkpIHsKKyAgICAgICAgY2FsbGJhY2tzLmFwcGVuZChDYWxsYmFjazo6TmF2aWdhdGlvbkFj
dGlvbik7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdLTmF2aWdhdGlvbkFjdGlvblBvbGlj
eUFsbG93KTsKKyAgICB9OworICAgIGRlbGVnYXRlLmdldCgpLmRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25SZXNwb25zZSA9IF4oV0tOYXZpZ2F0aW9uUmVzcG9uc2UgKiwgdm9pZCAoXmNvbXBsZXRp
b25IYW5kbGVyKShXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSkpIHsKKyAgICAgICAgY2FsbGJh
Y2tzLmFwcGVuZChDYWxsYmFjazo6TmF2aWdhdGlvblJlc3BvbnNlKTsKKyAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lBbGxvdyk7CisgICAgfTsKKyAg
ICBkZWxlZ2F0ZS5nZXQoKS5kaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbiA9IF4oV0tXZWJW
aWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7CisgICAgICAgIGNhbGxiYWNrcy5hcHBlbmQoQ2FsbGJh
Y2s6OlN0YXJ0UHJvdmlzaW9uYWwpOworICAgIH07CisgICAgZGVsZWdhdGUuZ2V0KCkuZGlkQ29t
bWl0TmF2aWdhdGlvbiA9IF4oV0tXZWJWaWV3ICosIFdLTmF2aWdhdGlvbiAqKSB7CisgICAgICAg
IGNhbGxiYWNrcy5hcHBlbmQoQ2FsbGJhY2s6OkNvbW1pdCk7CisgICAgfTsKKyAgICBkZWxlZ2F0
ZS5nZXQoKS5kaWRGaW5pc2hOYXZpZ2F0aW9uID0gXihXS1dlYlZpZXcgKiwgV0tOYXZpZ2F0aW9u
ICopIHsKKyAgICAgICAgY2FsbGJhY2tzLmFwcGVuZChDYWxsYmFjazo6RmluaXNoKTsKKyAgICAg
ICAgZmluaXNoZWQgPSB0cnVlOworICAgIH07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtXS1dlYlZpZXcgbmV3XSk7CisgICAgd2ViVmlldy5nZXQoKS5uYXZpZ2F0aW9uRGVsZWdhdGUg
PSBkZWxlZ2F0ZS5nZXQoKTsKKyAgICBOU1VSTCAqdXJsID0gW05TVVJMIFVSTFdpdGhTdHJpbmc6
QCJodHRwczovL3dlYmtpdC5vcmcvIl07CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6QCJo
aSEiIGJhc2VVUkw6dXJsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVk
KTsKKworICAgIGNoZWNrQ2FsbGJhY2tzKGNhbGxiYWNrcyk7CisgICAgY2FsbGJhY2tzID0geyB9
OworICAgIGZpbmlzaGVkID0gZmFsc2U7CisKKyAgICBbd2ViVmlldyBsb2FkU2ltdWxhdGVkUmVx
dWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOnVybF0gcmVzcG9uc2U6YWRvcHROUyhb
W05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnVybCBNSU1FVHlwZTpAInRleHQvaHRt
bCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOjMgdGV4dEVuY29kaW5nTmFtZTpuaWxdKS5nZXQoKSBy
ZXNwb25zZURhdGE6W05TRGF0YSBkYXRhV2l0aEJ5dGVzOiJoaSEiIGxlbmd0aDozXV07CisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZmaW5pc2hlZCk7CisgICAgY2hlY2tDYWxsYmFja3Mo
Y2FsbGJhY2tzKTsKK30KKwogVEVTVChXS1dlYlZpZXcsIExvYWRGaWxlUmVxdWVzdCkKIHsKICAg
ICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApXSk7CkBAIC0xNDMsNCArMTk5LDE4IEBAIFRFU1Qo
V0tXZWJWaWV3LCBMb2FkU2ltdWxhdGVkUmVxdWVzdFVwZGF0ZXNCYWNrRm9yd2FyZExpc3QpCiAg
ICAgRVhQRUNUX0VRKChOU1VJbnRlZ2VyKTAsIGxpc3QuZm9yd2FyZExpc3QuY291bnQpOwogICAg
IEVYUEVDVF9UUlVFKCFsaXN0LmZvcndhcmRJdGVtKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoZXhh
bXBsZVVSTFN0cmluZywgW2xpc3QuYmFja0l0ZW0uVVJMIGFic29sdXRlU3RyaW5nXSk7CisgICAg
CisgICAgLy8gbG9hZEhUTUxTdHJpbmcgaXMgcGVjdWxpYXJseSBkaWZmZXJlbnQgdGhhbiBsb2Fk
U2ltdWxhdGVkUmVxdWVzdCwgYnV0IHdlIG5lZWQgdG8gbGVhdmUgaXQKKyAgICAvLyBsaWtlIGl0
IGlzIHVudGlsIHdlIGRlY2lkZSB0byBjaGFuZ2UgaXQsIHByb2JhYmx5IHdpdGggYSBsaW5rZWQt
b24tb3ItYWZ0ZXIgY2hlY2suCisgICAgYXV0byB3ZWJWaWV3MiA9IGFkb3B0TlMoW1dLV2ViVmll
dyBuZXddKTsKKyAgICBbd2ViVmlldzIgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdl
dCgpXTsKKyAgICBbd2ViVmlldzIgbG9hZEhUTUxTdHJpbmc6aHRtbFN0cmluZyBiYXNlVVJMOmxv
YWRSZXF1ZXN0LlVSTF07CisgICAgW2RlbGVnYXRlIHdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9u
XTsKKyAgICBbd2ViVmlldzIgbG9hZEhUTUxTdHJpbmc6aHRtbFN0cmluZzIgYmFzZVVSTDpsb2Fk
UmVxdWVzdDIuVVJMXTsKKyAgICBbZGVsZWdhdGUgd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25d
OworICAgIEVYUEVDVF9GQUxTRShbd2ViVmlldzIgY2FuR29CYWNrXSk7CisgICAgV0tCYWNrRm9y
d2FyZExpc3QgKmxpc3QyID0gW3dlYlZpZXcyIGJhY2tGb3J3YXJkTGlzdF07CisgICAgRVhQRUNU
X1dLX1NUUkVRKCIiLCBbbGlzdDIuY3VycmVudEl0ZW0uVVJMIGFic29sdXRlU3RyaW5nXSk7Cisg
ICAgRVhQRUNUX0VRKDB1LCBsaXN0Mi5iYWNrTGlzdC5jb3VudCk7CisgICAgRVhQRUNUX0VRKDB1
LCBsaXN0Mi5mb3J3YXJkTGlzdC5jb3VudCk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>