<?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>219001</bug_id>
          
          <creation_ts>2020-11-16 12:36:59 -0800</creation_ts>
          <short_desc>Allow WKContentRuleList to block only in frames or only in main frame</short_desc>
          <delta_ts>2021-05-19 14:20:08 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>am</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>toyoshim</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1707955</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-11-16 12:36:59 -0800</bug_when>
    <thetext>Add top-document and iframe-document resource types to WKContentRuleList syntax</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1707956</commentid>
    <comment_count>1</comment_count>
      <attachid>414271</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-11-16 12:37:53 -0800</bug_when>
    <thetext>Created attachment 414271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710132</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-26 03:20:50 -0800</bug_when>
    <thetext>&lt;rdar://problem/71747736&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716151</commentid>
    <comment_count>3</comment_count>
      <attachid>416645</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-12-21 18:43:04 -0800</bug_when>
    <thetext>Created attachment 416645
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716357</commentid>
    <comment_count>4</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2020-12-22 13:38:33 -0800</bug_when>
    <thetext>I think we can fulfill the original request while making something more powerful.

Instead of creating a new resource type, add a new field that specify the context: All, MainFrame, Iframe, SubFrame. Something like that.

The whole rule would be ignored if not in the right context.

This would allow any rule to be applied specifically based on the context. I assume it is common to block things when in frames but not in the top document (say tracking cookies from Facebook for example).

The downside is more useless matching if we filter a posteriori. If that becomes an issue, it can be fixed by splitting the filter by context a priori.

What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1716406</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-12-22 16:40:43 -0800</bug_when>
    <thetext>Sounds like something to discuss next year.  That might be necessary to fix rdar://problem/72203352 too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724895</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-02-02 14:31:33 -0800</bug_when>
    <thetext>That would not allow us the same functionality as having a nested-frame resource type.  An iframe&apos;s main resource is loaded in the context of its parent frame, so we would be unable to specify that we would like to block iframe main resources with your suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743516</commentid>
    <comment_count>7</comment_count>
      <attachid>424175</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-24 13:32:17 -0700</bug_when>
    <thetext>Created attachment 424175
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743532</commentid>
    <comment_count>8</comment_count>
      <attachid>424175</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-03-24 13:58:29 -0700</bug_when>
    <thetext>Comment on attachment 424175
Patch

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

&gt; Source/WebCore/loader/ResourceLoadInfo.cpp:132
&gt; +    if (name == &quot;iframe&quot;)
&gt; +        return { LoadContext::IFrame };

I think &apos;iframe&apos; is the wrong name here because &apos;iframe&apos; implies only &lt;iframe&gt; elements, but child frames can also be &lt;frame&gt;, &lt;object&gt;, or &lt;embed&gt;. 

Here&apos;s an alternative that matches web speak a little more: { top-frame, child-frame }

Here&apos;s an alternative that matches our parlance a little more: { main-frame, sub-frame }

I&apos;d be happy with either of those, or something else that avoids &apos;iframe&apos;. I don&apos;t think we should do &apos;iframe&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1743616</commentid>
    <comment_count>9</comment_count>
      <attachid>424204</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-24 17:27:08 -0700</bug_when>
    <thetext>Created attachment 424204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744043</commentid>
    <comment_count>10</comment_count>
      <attachid>424204</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2021-03-25 19:42:50 -0700</bug_when>
    <thetext>Comment on attachment 424204
Patch

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

&gt; Source/WebCore/contentextensions/ContentExtensionsBackend.cpp:271
&gt; +    ResourceLoadInfo resourceLoadInfo = { url, mainDocumentURL, { ResourceType::Ping, ResourceType::Other } };

Why not add ping to the &quot;other&quot; resource type in readResourceType?
Wouldn&apos;t this be more consistent with the other loaded resources?

&gt; Source/WebCore/loader/PingLoader.cpp:125
&gt; +    if (processContentRuleListsForLoad(frame, request, { ContentExtensions::ResourceType::Other, ContentExtensions::ResourceType::Ping }))

Ditto here regarding ping flags.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:307
&gt; +    auto handler = [[TestURLSchemeHandler new] autorelease];

I hope TEST has an autorelease pool :-D

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/ContentRuleListNotification.mm:373
&gt; +    [userContentController addContentRuleList:listWithLoadContext(&quot;child-frame&quot;).get()];
&gt; +    [webView reload];
&gt; +    EXPECT_WK_STREQ([webView _test_waitForAlert], &quot;main frame fetched successfully&quot;);
&gt; +    EXPECT_WK_STREQ([webView _test_waitForAlert], &quot;iframe fetch failed&quot;);
&gt; +
&gt; +    [userContentController removeAllContentRuleLists];
&gt; +    [userContentController addContentRuleList:listWithLoadContext(&quot;top-frame&quot;).get()];
&gt; +    [webView reload];
&gt; +    EXPECT_WK_STREQ([webView _test_waitForAlert], &quot;main frame fetch failed&quot;);
&gt; +    EXPECT_WK_STREQ([webView _test_waitForAlert], &quot;iframe fetched successfully&quot;);

I like those tests!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744058</commentid>
    <comment_count>11</comment_count>
      <attachid>424314</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-25 20:41:02 -0700</bug_when>
    <thetext>Created attachment 424314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744071</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-25 22:20:58 -0700</bug_when>
    <thetext>Ben Poulain found in /Volumes/Data/worker/Commit-Queue/build/Source/WebCore/ChangeLog does not appear to be a valid reviewer according to contributors.json.
/Volumes/Data/worker/Commit-Queue/build/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744285</commentid>
    <comment_count>13</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2021-03-26 12:49:06 -0700</bug_when>
    <thetext>Update looks good to me!

(In reply to EWS from comment #12)
&gt; Ben Poulain found in
&gt; /Volumes/Data/worker/Commit-Queue/build/Source/WebCore/ChangeLog does not
&gt; appear to be a valid reviewer according to contributors.json.
&gt; /Volumes/Data/worker/Commit-Queue/build/Source/WebCore/ChangeLog neither
&gt; lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber
&gt; stamp&quot; (case insensitive).

You may need to use my full name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1744876</commentid>
    <comment_count>14</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-03-29 13:29:04 -0700</bug_when>
    <thetext>r275078</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761706</commentid>
    <comment_count>15</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-05-19 14:20:08 -0700</bug_when>
    <thetext>*** Bug 153559 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414271</attachid>
            <date>2020-11-16 12:37:53 -0800</date>
            <delta_ts>2020-12-21 18:42:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219001-20201116123752.patch</filename>
            <type>text/plain</type>
            <size>13662</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5Nzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU5NGIyMmFjZmY1YWVh
NDE5YmM1ZjRiZWVjNTcxN2I5M2RiOGNiOC4uYWE1Mzk0Yjc2OWFhZmM0MDc0MDMwYjI3MDM1MjZm
N2RiOGQyOTIxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTExLTE2ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHRv
cC1kb2N1bWVudCBhbmQgaWZyYW1lLWRvY3VtZW50IHJlc291cmNlIHR5cGVzIHRvIFdLQ29udGVu
dFJ1bGVMaXN0IHN5bnRheAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE5MDAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTM4MjA0NT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudEV4dGVuc2lvbnM6OmdldFR5cGVGbGFncyk6CisgICAgICAgICogY3NzL1N0eWxlU2hlZXRD
b250ZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNoZWV0Q29udGVudHM6OnN1YnJl
c291cmNlc0FsbG93UmV1c2UgY29uc3QpOgorICAgICAgICAqIGxvYWRlci9OZXRzY2FwZVBsdWdJ
blN0cmVhbUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlcjo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9S
ZXNvdXJjZUxvYWRJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
Ojp0b1Jlc291cmNlVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6
cmVhZFJlc291cmNlVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6
cmVhZExvYWRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZXNv
dXJjZUxvYWRJbmZvOjpnZXRSZXNvdXJjZUZsYWdzIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIv
UmVzb3VyY2VMb2FkSW5mby5oOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0SW50ZXJu
YWwpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRl
ci9TdWJyZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxv
YWRlcjo6U3VicmVzb3VyY2VMb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdFJlc291cmNlKToKKwogMjAyMC0xMS0xMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBhZHZhbmNlZCBwbHVnLWluIGZlYXR1
cmVzOiBzbmFwc2hvdHRpbmcgYW5kIHBsdWctaW4gbG9hZCBwb2xpY3kKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNl
ci5jcHAKaW5kZXggODRhZDBhMjQ1ZDZkMmE3NjQzMGMzOTVjNzI3NzY2NDc2MTU5NTcyNS4uYTgy
ZDdlNDM5NjI5N2E3MWZkOTA2ZjZlYmEyZmQ2MzhkNjg1NzlhNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNl
ci5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgc3RhdGljIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBz
dGQ6OmVycm9yX2NvZGU+IGdldERvbWFpbkxpc3QoSlNHbG9iYWxPYmplY3QmIGwKICAgICByZXR1
cm4gc3RyaW5nczsKIH0KIAotc3RhdGljIHN0ZDo6ZXJyb3JfY29kZSBnZXRUeXBlRmxhZ3MoSlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIGNvbnN0IEpTVmFsdWUmIHR5cGVWYWx1
ZSwgUmVzb3VyY2VGbGFncyYgZmxhZ3MsIHVpbnQxNl90ICgqc3RyaW5nVG9UeXBlKShjb25zdCBT
dHJpbmcmKSkKK3N0YXRpYyBzdGQ6OmVycm9yX2NvZGUgZ2V0VHlwZUZsYWdzKEpTR2xvYmFsT2Jq
ZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBjb25zdCBKU1ZhbHVlJiB0eXBlVmFsdWUsIFJlc291
cmNlRmxhZ3MmIGZsYWdzLCBPcHRpb25hbDx1aW50MTZfdD4gKCpzdHJpbmdUb1R5cGUpKGNvbnN0
IFN0cmluZyYpKQogewogICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKICAg
ICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0xMTYsMTEgKzExNiwx
MSBAQCBzdGF0aWMgc3RkOjplcnJvcl9jb2RlIGdldFR5cGVGbGFncyhKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgY29uc3QgSgogICAgICAgICAgICAgcmV0dXJuIENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRPYmplY3RJblRyaWdnZXJGbGFnc0FycmF5OwogICAg
ICAgICAKICAgICAgICAgU3RyaW5nIG5hbWUgPSB2YWx1ZS50b1dURlN0cmluZygmbGV4aWNhbEds
b2JhbE9iamVjdCk7Ci0gICAgICAgIHVpbnQxNl90IHR5cGUgPSBzdHJpbmdUb1R5cGUobmFtZSk7
CisgICAgICAgIGF1dG8gdHlwZSA9IHN0cmluZ1RvVHlwZShuYW1lKTsKICAgICAgICAgaWYgKCF0
eXBlKQogICAgICAgICAgICAgcmV0dXJuIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFs
aWRTdHJpbmdJblRyaWdnZXJGbGFnc0FycmF5OwogCi0gICAgICAgIGZsYWdzIHw9IHR5cGU7Cisg
ICAgICAgIGZsYWdzIHw9ICp0eXBlOwogICAgIH0KIAogICAgIHJldHVybiB7IH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTaGVldENvbnRlbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCmluZGV4IGQzNThiM2I4N2M5ZTQ3NDA3
ZWNiYzFmNzNjMWE2NTVkYTNhZDFhYmMuLmMzZTdkMDljNWJjYWUzNzRhNmFiZTc0ZjNkZTlhYmJk
N2NjMzhlNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVu
dHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwCkBA
IC01MDcsNyArNTA3LDcgQEAgYm9vbCBTdHlsZVNoZWV0Q29udGVudHM6OnN1YnJlc291cmNlc0Fs
bG93UmV1c2UoQ2FjaGVQb2xpY3kgY2FjaGVQb2xpY3ksIEZyYW1lTG8KICAgICAgICAgYXV0byog
ZG9jdW1lbnRMb2FkZXIgPSBsb2FkZXIuZG9jdW1lbnRMb2FkZXIoKTsKICAgICAgICAgaWYgKHBh
Z2UgJiYgZG9jdW1lbnRMb2FkZXIpIHsKICAgICAgICAgICAgIGNvbnN0IGF1dG8mIHJlcXVlc3Qg
PSByZXNvdXJjZS5yZXNvdXJjZVJlcXVlc3QoKTsKLSAgICAgICAgICAgIGF1dG8gcmVzdWx0cyA9
IHBhZ2UtPnVzZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0Zvckxv
YWQocmVxdWVzdC51cmwoKSwgQ29udGVudEV4dGVuc2lvbnM6OnRvUmVzb3VyY2VUeXBlKHJlc291
cmNlLnR5cGUoKSksICpkb2N1bWVudExvYWRlcik7CisgICAgICAgICAgICBhdXRvIHJlc3VsdHMg
PSBwYWdlLT51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JM
b2FkKHJlcXVlc3QudXJsKCksIENvbnRlbnRFeHRlbnNpb25zOjp0b1Jlc291cmNlVHlwZShyZXNv
dXJjZS50eXBlKCksIENvbnRlbnRFeHRlbnNpb25zOjpMb2FkaW5nVG9wRG9jdW1lbnQ6Ok5vKSwg
KmRvY3VtZW50TG9hZGVyKTsKICAgICAgICAgICAgIGlmIChyZXN1bHRzLnN1bW1hcnkuYmxvY2tl
ZExvYWQgfHwgcmVzdWx0cy5zdW1tYXJ5Lm1hZGVIVFRQUykKICAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRz
Y2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKaW5kZXggODkxMGU4MjMzYTZkNzA0OWE4NDcxY2M3
NTVlYmJhZDBlNDhlODljYi4uZjU0N2FiMmRhNGQ2NDY3YWJlNTY4NmMwZWZmZTkwNGEyMWFjN2Fi
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFt
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJl
YW1Mb2FkZXIuY3BwCkBAIC02MCw3ICs2MCw3IEBAIE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVy
OjpOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcihGcmFtZSYgZnJhbWUsIE5ldHNjYXBlUGx1CiAg
ICAgLCBtX2NsaWVudChtYWtlV2Vha1B0cihjbGllbnQpKQogewogI2lmIEVOQUJMRShDT05URU5U
X0VYVEVOU0lPTlMpCi0gICAgbV9yZXNvdXJjZVR5cGUgPSBDb250ZW50RXh0ZW5zaW9uczo6UmVz
b3VyY2VUeXBlOjpQbHVnSW5TdHJlYW07CisgICAgbV9yZXNvdXJjZVR5cGUgPSB7IENvbnRlbnRF
eHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OlBsdWdJblN0cmVhbSB9OwogI2VuZGlmCiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmNwcAppbmRleCA5NDQ1YWFiNzBk
ZGM3ZThiNTFhNjc3MzQ0MzdmNjk3MmUzZGUxNDQ3Li41ZmUzOTE1ODJiN2U2N2NiYTk1MjMzMmFh
OTk1ZDU3M2IxNzQ1YjZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3Vy
Y2VMb2FkSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZElu
Zm8uY3BwCkBAIC0zNCw1MCArMzQsNTMgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFj
ZSBDb250ZW50RXh0ZW5zaW9ucyB7CiAKLVJlc291cmNlVHlwZSB0b1Jlc291cmNlVHlwZShDYWNo
ZWRSZXNvdXJjZTo6VHlwZSB0eXBlKQorT3B0aW9uU2V0PFJlc291cmNlVHlwZT4gdG9SZXNvdXJj
ZVR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgTG9hZGluZ1RvcERvY3VtZW50IGxvYWRp
bmdUb3BEb2N1bWVudCkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpUeXBlOjpMaW5rUHJlZmV0Y2g6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlw
ZTo6TWFpblJlc291cmNlOgotICAgICAgICByZXR1cm4gUmVzb3VyY2VUeXBlOjpEb2N1bWVudDsK
KyAgICAgICAgaWYgKGxvYWRpbmdUb3BEb2N1bWVudCA9PSBMb2FkaW5nVG9wRG9jdW1lbnQ6Olll
cykKKyAgICAgICAgICAgIHJldHVybiB7eyBSZXNvdXJjZVR5cGU6OkRvY3VtZW50LCBSZXNvdXJj
ZVR5cGU6OlRvcERvY3VtZW50IH19OworICAgICAgICByZXR1cm4ge3sgUmVzb3VyY2VUeXBlOjpE
b2N1bWVudCwgUmVzb3VyY2VUeXBlOjpJZnJhbWVEb2N1bWVudCB9fTsKICAgICBjYXNlIENhY2hl
ZFJlc291cmNlOjpUeXBlOjpTVkdEb2N1bWVudFJlc291cmNlOgotICAgICAgICByZXR1cm4gUmVz
b3VyY2VUeXBlOjpTVkdEb2N1bWVudDsKKyAgICAgICAgcmV0dXJuIHsgUmVzb3VyY2VUeXBlOjpT
VkdEb2N1bWVudCB9OwogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6OkltYWdlUmVzb3Vy
Y2U6Ci0gICAgICAgIHJldHVybiBSZXNvdXJjZVR5cGU6OkltYWdlOworICAgICAgICByZXR1cm4g
eyBSZXNvdXJjZVR5cGU6OkltYWdlIH07CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6
Q1NTU3R5bGVTaGVldDoKICNpZiBFTkFCTEUoWFNMVCkKICAgICBjYXNlIENhY2hlZFJlc291cmNl
OjpUeXBlOjpYU0xTdHlsZVNoZWV0OgogI2VuZGlmCi0gICAgICAgIHJldHVybiBSZXNvdXJjZVR5
cGU6OlN0eWxlU2hlZXQ7CisgICAgICAgIHJldHVybiB7IFJlc291cmNlVHlwZTo6U3R5bGVTaGVl
dCB9OwogCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6U2NyaXB0OgotICAgICAgICBy
ZXR1cm4gUmVzb3VyY2VUeXBlOjpTY3JpcHQ7CisgICAgICAgIHJldHVybiB7IFJlc291cmNlVHlw
ZTo6U2NyaXB0IH07CiAKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpGb250UmVzb3Vy
Y2U6CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6U1ZHRm9udFJlc291cmNlOgotICAg
ICAgICByZXR1cm4gUmVzb3VyY2VUeXBlOjpGb250OworICAgICAgICByZXR1cm4geyBSZXNvdXJj
ZVR5cGU6OkZvbnQgfTsKIAogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6Ok1lZGlhUmVz
b3VyY2U6Ci0gICAgICAgIHJldHVybiBSZXNvdXJjZVR5cGU6Ok1lZGlhOworICAgICAgICByZXR1
cm4geyBSZXNvdXJjZVR5cGU6Ok1lZGlhIH07CiAKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpU
eXBlOjpCZWFjb246CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6UGluZzoKICAgICBj
YXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpJY29uOgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6
OlR5cGU6OlJhd1Jlc291cmNlOgotICAgICAgICByZXR1cm4gUmVzb3VyY2VUeXBlOjpSYXc7Cisg
ICAgICAgIHJldHVybiB7IFJlc291cmNlVHlwZTo6UmF3IH07CiAKICAgICBjYXNlIENhY2hlZFJl
c291cmNlOjpUeXBlOjpUZXh0VHJhY2tSZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIFJlc291cmNl
VHlwZTo6TWVkaWE7CisgICAgICAgIHJldHVybiB7IFJlc291cmNlVHlwZTo6TWVkaWEgfTsKIAog
I2lmIEVOQUJMRShBUFBMSUNBVElPTl9NQU5JRkVTVCkKICAgICBjYXNlIENhY2hlZFJlc291cmNl
OjpUeXBlOjpBcHBsaWNhdGlvbk1hbmlmZXN0OgotICAgICAgICByZXR1cm4gUmVzb3VyY2VUeXBl
OjpSYXc7CisgICAgICAgIHJldHVybiB7IFJlc291cmNlVHlwZTo6UmF3IH07CiAjZW5kaWYKLSAg
ICB9OwotICAgIHJldHVybiBSZXNvdXJjZVR5cGU6OlJhdzsKKyAgICB9CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIHsgUmVzb3VyY2VUeXBlOjpSYXcgfTsKIH0KIAotdWlu
dDE2X3QgcmVhZFJlc291cmNlVHlwZShjb25zdCBTdHJpbmcmIG5hbWUpCitPcHRpb25hbDx1aW50
MTZfdD4gcmVhZFJlc291cmNlVHlwZShjb25zdCBTdHJpbmcmIG5hbWUpCiB7CiAgICAgaWYgKG5h
bWUgPT0gImRvY3VtZW50IikKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQxNl90PihS
ZXNvdXJjZVR5cGU6OkRvY3VtZW50KTsKQEAgLTk5LDE2ICsxMDIsMjAgQEAgdWludDE2X3QgcmVh
ZFJlc291cmNlVHlwZShjb25zdCBTdHJpbmcmIG5hbWUpCiAgICAgICAgIHJldHVybiBzdGF0aWNf
Y2FzdDx1aW50MTZfdD4oUmVzb3VyY2VUeXBlOjpQb3B1cCk7CiAgICAgaWYgKG5hbWUgPT0gInBp
bmciKQogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDE2X3Q+KFJlc291cmNlVHlwZTo6
UGluZyk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQxNl90PihSZXNvdXJjZVR5cGU6Oklu
dmFsaWQpOworICAgIGlmIChuYW1lID09ICJ0b3AtZG9jdW1lbnQiKQorICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8dWludDE2X3Q+KFJlc291cmNlVHlwZTo6VG9wRG9jdW1lbnQpOworICAgIGlm
IChuYW1lID09ICJpZnJhbWUtZG9jdW1lbnQiKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dWludDE2X3Q+KFJlc291cmNlVHlwZTo6SWZyYW1lRG9jdW1lbnQpOworICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiB9CiAKLXVpbnQxNl90IHJlYWRMb2FkVHlwZShjb25zdCBTdHJpbmcmIG5hbWUp
CitPcHRpb25hbDx1aW50MTZfdD4gcmVhZExvYWRUeXBlKGNvbnN0IFN0cmluZyYgbmFtZSkKIHsK
ICAgICBpZiAobmFtZSA9PSAiZmlyc3QtcGFydHkiKQogICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8dWludDE2X3Q+KExvYWRUeXBlOjpGaXJzdFBhcnR5KTsKICAgICBpZiAobmFtZSA9PSAidGhp
cmQtcGFydHkiKQogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDE2X3Q+KExvYWRUeXBl
OjpUaGlyZFBhcnR5KTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDE2X3Q+KExvYWRUeXBl
OjpJbnZhbGlkKTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogfQogCiBib29sIFJlc291cmNl
TG9hZEluZm86OmlzVGhpcmRQYXJ0eSgpIGNvbnN0CkBAIC0xMjIsNyArMTI5LDcgQEAgYm9vbCBS
ZXNvdXJjZUxvYWRJbmZvOjppc1RoaXJkUGFydHkoKSBjb25zdAogUmVzb3VyY2VGbGFncyBSZXNv
dXJjZUxvYWRJbmZvOjpnZXRSZXNvdXJjZUZsYWdzKCkgY29uc3QKIHsKICAgICBSZXNvdXJjZUZs
YWdzIGZsYWdzID0gMDsKLSAgICBBU1NFUlQodHlwZSAhPSBSZXNvdXJjZVR5cGU6OkludmFsaWQp
OworICAgIEFTU0VSVCghdHlwZS5pc0VtcHR5KCkpOwogICAgIGZsYWdzIHw9IHR5cGUudG9SYXco
KTsKICAgICBmbGFncyB8PSBpc1RoaXJkUGFydHkoKSA/IHN0YXRpY19jYXN0PFJlc291cmNlRmxh
Z3M+KExvYWRUeXBlOjpUaGlyZFBhcnR5KSA6IHN0YXRpY19jYXN0PFJlc291cmNlRmxhZ3M+KExv
YWRUeXBlOjpGaXJzdFBhcnR5KTsKICAgICByZXR1cm4gZmxhZ3M7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZEluZm8uaAppbmRleCAxY2Y0OTUxZTE4NmVjMmU1ODk3NTEzM2I3OTFi
NzI5YmFjZTY5YTczLi5hOTI1ZWVlM2NiOGJjOGFkYjVmYTdiOWEyNWEyMWNmYzZkNGU5MzBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmgKQEAgLTM1LDcgKzM1LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNpb25zIHsKIAog
ZW51bSBjbGFzcyBSZXNvdXJjZVR5cGUgOiB1aW50MTZfdCB7Ci0gICAgSW52YWxpZCA9IDB4MDAw
MCwKICAgICBEb2N1bWVudCA9IDB4MDAwMSwKICAgICBJbWFnZSA9IDB4MDAwMiwKICAgICBTdHls
ZVNoZWV0ID0gMHgwMDA0LApAQCAtNDgsMTEgKzQ3LDEyIEBAIGVudW0gY2xhc3MgUmVzb3VyY2VU
eXBlIDogdWludDE2X3QgewogICAgIFBvcHVwID0gMHgwMjAwLAogICAgIC8vIDB4MDQwMCBhbmQg
MHgwODAwIGFyZSB1c2VkIGJ5IExvYWRUeXBlLgogICAgIFBpbmcgPSAweDEwMDAsCisgICAgVG9w
RG9jdW1lbnQgPSAweDIwMDAsCisgICAgSWZyYW1lRG9jdW1lbnQgPSAweDQwMCwKIH07CiBjb25z
dCB1aW50MTZfdCBSZXNvdXJjZVR5cGVNYXNrID0gMHgxM0ZGOwogCiBlbnVtIGNsYXNzIExvYWRU
eXBlIDogdWludDE2X3QgewotICAgIEludmFsaWQgPSAweDAwMDAsCiAgICAgRmlyc3RQYXJ0eSA9
IDB4MDQwMCwKICAgICBUaGlyZFBhcnR5ID0gMHgwODAwLAogfTsKQEAgLTcyLDkgKzcyLDEwIEBA
IHR5cGVkZWYgdWludDE2X3QgUmVzb3VyY2VGbGFnczsKIGNvbnN0IHVpbnQ2NF90IEFjdGlvbkZs
YWdNYXNrID0gMHgwMDAwRkZGRjAwMDAwMDAwOwogY29uc3QgdWludDY0X3QgSWZDb25kaXRpb25G
bGFnID0gMHgwMDAxMDAwMDAwMDAwMDAwOwogCi1SZXNvdXJjZVR5cGUgdG9SZXNvdXJjZVR5cGUo
Q2FjaGVkUmVzb3VyY2U6OlR5cGUpOwotdWludDE2X3QgcmVhZFJlc291cmNlVHlwZShjb25zdCBT
dHJpbmcmKTsKLXVpbnQxNl90IHJlYWRMb2FkVHlwZShjb25zdCBTdHJpbmcmKTsKK2VudW0gY2xh
c3MgTG9hZGluZ1RvcERvY3VtZW50IDogYm9vbCB7IE5vLCBZZXMgfTsKK09wdGlvblNldDxSZXNv
dXJjZVR5cGU+IHRvUmVzb3VyY2VUeXBlKENhY2hlZFJlc291cmNlOjpUeXBlLCBMb2FkaW5nVG9w
RG9jdW1lbnQpOworT3B0aW9uYWw8dWludDE2X3Q+IHJlYWRSZXNvdXJjZVR5cGUoY29uc3QgU3Ry
aW5nJik7CitPcHRpb25hbDx1aW50MTZfdD4gcmVhZExvYWRUeXBlKGNvbnN0IFN0cmluZyYpOwog
CiBzdHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbyB7CiAgICAgVVJMIHJlc291cmNlVVJMOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMzBiMDhhOGRjZTFjZGZkMjJi
YWJjNGU4MzNhZjRjYjhkZGRiZmU3Yi4uOGM5NGQ4NzkxYzIxOGU0Y2E0OTIxYzA5ZjhiZjU1NTE3
ZmQyNjI4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCkBAIC0z
NjEsNyArMzYxLDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0SW50ZXJu
YWwoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgUmUKIAogICAgIEFTU0VSVCghbV9y
ZWFjaGVkVGVybWluYWxTdGF0ZSk7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAg
ICBBU1NFUlQobV9yZXNvdXJjZVR5cGUgIT0gQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlw
ZTo6SW52YWxpZCk7CisgICAgQVNTRVJUKCFtX3Jlc291cmNlVHlwZS5pc0VtcHR5KCkpOwogI2Vu
ZGlmCiAKICAgICAvLyBXZSBuZWVkIGEgcmVzb3VyY2UgaWRlbnRpZmllciBmb3IgYWxsIHJlcXVl
c3RzLCBldmVuIGlmIEZyYW1lTG9hZGVyIGlzIG5ldmVyIGdvaW5nIHRvIHNlZSBpdCAoc3VjaCBh
cyB3aXRoIENPUlMgcHJlZmxpZ2h0IHJlcXVlc3RzKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmgKaW5kZXggMDU3MTAyZWNjYjY5Y2M0NzJlNDFjYzg5NGUwNWI2MzI5ZDRkNDVl
ZS4uYjJmNmE1ZWNiM2JlYTA0ZTliZmE4ZDFlZTc2NjJjMzJjMWRmM2QxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKQEAgLTI0Niw3ICsyNDYsNyBAQCBwcml2YXRlOgog
CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKIHByb3RlY3RlZDoKLSAgICBDb250ZW50
RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlIG1fcmVzb3VyY2VUeXBlIHsgQ29udGVudEV4dGVuc2lv
bnM6OlJlc291cmNlVHlwZTo6SW52YWxpZCB9OworICAgIE9wdGlvblNldDxDb250ZW50RXh0ZW5z
aW9uczo6UmVzb3VyY2VUeXBlPiBtX3Jlc291cmNlVHlwZTsKICNlbmRpZgogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMjAwZTZkOTE5NTU2
YTVhYzJhNmQ3MGRiNWJlYWZkYWNlYWFjMjVjNS4uMGUwZDcwOTQ5NjAyMzFhYjMyYzg0ODNkZjg0
ZmJkNmY3ZTU2NTkyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291
cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVzb3VyY2VMb2Fk
ZXIuY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgU3VicmVzb3VyY2VMb2FkZXI6OlN1YnJlc291cmNl
TG9hZGVyKEZyYW1lJiBmcmFtZSwgQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBjb24KICAgICBz
dWJyZXNvdXJjZUxvYWRlckNvdW50ZXIuaW5jcmVtZW50KCk7CiAjZW5kaWYKICNpZiBFTkFCTEUo
Q09OVEVOVF9FWFRFTlNJT05TKQotICAgIG1fcmVzb3VyY2VUeXBlID0gQ29udGVudEV4dGVuc2lv
bnM6OnRvUmVzb3VyY2VUeXBlKHJlc291cmNlLnR5cGUoKSk7CisgICAgbV9yZXNvdXJjZVR5cGUg
PSBDb250ZW50RXh0ZW5zaW9uczo6dG9SZXNvdXJjZVR5cGUocmVzb3VyY2UudHlwZSgpLCBDb250
ZW50RXh0ZW5zaW9uczo6TG9hZGluZ1RvcERvY3VtZW50OjpObyk7CiAjZW5kaWYKICAgICBtX2Nh
bkNyb3NzT3JpZ2luUmVxdWVzdHNBc2tVc2VyRm9yQ3JlZGVudGlhbHMgPSByZXNvdXJjZS50eXBl
KCkgPT0gQ2FjaGVkUmVzb3VyY2U6OlR5cGU6Ok1haW5SZXNvdXJjZSB8fCBmcmFtZS5zZXR0aW5n
cygpLmFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRpYWxzKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlTG9h
ZGVyLmNwcAppbmRleCBkNjk0MDE4ZjE3YjgwNTcwM2JkMWU5ZTMzYjA4OTIwNThlOWJlZjUzLi5h
MmU5YTdjMGM5NzM3NzBmMjFlOGZmNTkyNzQ4NjIxYmZlZTFmMjdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTg3
Miw3ICs4NzIsOCBAQCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVk
UmVzb3VyY2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdQogI2lmIEVOQUJMRShDT05URU5U
X0VYVEVOU0lPTlMpCiAgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpIHsKICAgICAgICAgY29uc3Qg
YXV0byYgcmVzb3VyY2VSZXF1ZXN0ID0gcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKTsKLSAgICAg
ICAgYXV0byByZXN1bHRzID0gcGFnZS51c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRl
bnRSdWxlTGlzdHNGb3JMb2FkKHJlc291cmNlUmVxdWVzdC51cmwoKSwgQ29udGVudEV4dGVuc2lv
bnM6OnRvUmVzb3VyY2VUeXBlKHR5cGUpLCAqbV9kb2N1bWVudExvYWRlcik7CisgICAgICAgIGF1
dG8gcmVzdWx0cyA9IHBhZ2UudXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVs
ZUxpc3RzRm9yTG9hZChyZXNvdXJjZVJlcXVlc3QudXJsKCksIENvbnRlbnRFeHRlbnNpb25zOjp0
b1Jlc291cmNlVHlwZSh0eXBlLCBtX2RvY3VtZW50TG9hZGVyLT5pc0xvYWRpbmdNYWluUmVzb3Vy
Y2UoKSA/IENvbnRlbnRFeHRlbnNpb25zOjpMb2FkaW5nVG9wRG9jdW1lbnQ6OlllcyA6IENvbnRl
bnRFeHRlbnNpb25zOjpMb2FkaW5nVG9wRG9jdW1lbnQ6Ok5vKSwgKm1fZG9jdW1lbnRMb2FkZXIp
OworICAgICAgICAvLyBGSVhNRTogTm90IHN1cmUgaWYgdGhpcyBtZWFucyB0b3AgZG9jdW1lbnQg
b3IgbWFpbiByZXNvdXJjZSBvZiBhbnkgZG9jdW1lbnQuIEFkZCB0ZXN0LgogICAgICAgICBib29s
IGJsb2NrZWRMb2FkID0gcmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2FkOwogICAgICAgICBib29s
IG1hZGVIVFRQUyA9IHJlc3VsdHMuc3VtbWFyeS5tYWRlSFRUUFM7CiAgICAgICAgIHJlcXVlc3Qu
YXBwbHlSZXN1bHRzKFdURk1vdmUocmVzdWx0cyksICZwYWdlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>416645</attachid>
            <date>2020-12-21 18:43:04 -0800</date>
            <delta_ts>2021-03-24 13:32:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219001-20201221184303.patch</filename>
            <type>text/plain</type>
            <size>23866</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwOTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTliZWVlN2RkYWQyYjgx
NTgzMGQyNDc4ZjEyZWNkMGU1ZDJlM2RkNC4uNDQ0MjU5NDkzMGQ2ZTIyNDcwNzY1OGFiZDdlYjg0
Njc2MmNkNzNjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTEyLTE4ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHRv
cC1kb2N1bWVudCBhbmQgbmVzdGVkLWRvY3VtZW50IHJlc291cmNlIHR5cGVzIHRvIFdLQ29udGVu
dFJ1bGVMaXN0IHN5bnRheAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE5MDAxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83MTM4MjA0NT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudEV4dGVuc2lvbnM6OmdldFR5cGVGbGFncyk6CisgICAgICAgICogY3NzL1N0eWxlU2hlZXRD
b250ZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNoZWV0Q29udGVudHM6OnN1YnJl
c291cmNlc0FsbG93UmV1c2UgY29uc3QpOgorICAgICAgICAqIGxvYWRlci9OZXRzY2FwZVBsdWdJ
blN0cmVhbUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOZXRzY2FwZVBsdWdJblN0cmVh
bUxvYWRlcjo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9S
ZXNvdXJjZUxvYWRJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
Ojp0b1Jlc291cmNlVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6
cmVhZFJlc291cmNlVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6
cmVhZExvYWRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZXNv
dXJjZUxvYWRJbmZvOjpnZXRSZXNvdXJjZUZsYWdzIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIv
UmVzb3VyY2VMb2FkSW5mby5oOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0SW50ZXJu
YWwpOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxvYWRlci5oOgorICAgICAgICAqIGxvYWRl
ci9TdWJyZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdWJyZXNvdXJjZUxv
YWRlcjo6U3VicmVzb3VyY2VMb2FkZXIpOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRSZXNvdXJjZUxvYWRl
cjo6cmVxdWVzdFJlc291cmNlKToKKwogMjAyMC0xMi0xNyAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIE1ha2UgRm9udENhc2NhZGU6OkNvZGVQYXRoIGFuIGVudW0gY2xh
c3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRF
eHRlbnNpb25QYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29u
dGVudEV4dGVuc2lvblBhcnNlci5jcHAKaW5kZXggODk4MTRkODY5MjU4MjMwNjY2YjAyMTIzYzk4
ZTM1ODA2MWYzOWMyMi4uZjk0Y2RmZjFjZmQxYTQ0ZjdiM2IxNjc4MzMxODEyMmE5NjMyMTc5ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVu
c2lvblBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29u
dGVudEV4dGVuc2lvblBhcnNlci5jcHAKQEAgLTk0LDcgKzk0LDggQEAgc3RhdGljIEV4cGVjdGVk
PFZlY3RvcjxTdHJpbmc+LCBzdGQ6OmVycm9yX2NvZGU+IGdldERvbWFpbkxpc3QoSlNHbG9iYWxP
YmplY3QmIGwKICAgICByZXR1cm4gc3RyaW5nczsKIH0KIAotc3RhdGljIHN0ZDo6ZXJyb3JfY29k
ZSBnZXRUeXBlRmxhZ3MoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIGNvbnN0
IEpTVmFsdWUmIHR5cGVWYWx1ZSwgUmVzb3VyY2VGbGFncyYgZmxhZ3MsIHVpbnQxNl90ICgqc3Ry
aW5nVG9UeXBlKShjb25zdCBTdHJpbmcmKSkKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitzdGF0aWMg
c3RkOjplcnJvcl9jb2RlIGdldFR5cGVGbGFncyhKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgY29uc3QgSlNWYWx1ZSYgdHlwZVZhbHVlLCBSZXNvdXJjZUZsYWdzJiBmbGFncywg
T3B0aW9uYWw8T3B0aW9uU2V0PFQ+PiAoKnN0cmluZ1RvVHlwZSkoY29uc3QgU3RyaW5nJikpCiB7
CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC52bSgpOwogICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTExNiwxMSArMTE3LDEwIEBAIHN0YXRpYyBz
dGQ6OmVycm9yX2NvZGUgZ2V0VHlwZUZsYWdzKEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBjb25zdCBKCiAgICAgICAgICAgICByZXR1cm4gQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OSW52YWxpZE9iamVjdEluVHJpZ2dlckZsYWdzQXJyYXk7CiAgICAgICAgIAogICAgICAg
ICBTdHJpbmcgbmFtZSA9IHZhbHVlLnRvV1RGU3RyaW5nKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsK
LSAgICAgICAgdWludDE2X3QgdHlwZSA9IHN0cmluZ1RvVHlwZShuYW1lKTsKKyAgICAgICAgYXV0
byB0eXBlID0gc3RyaW5nVG9UeXBlKG5hbWUpOwogICAgICAgICBpZiAoIXR5cGUpCiAgICAgICAg
ICAgICByZXR1cm4gQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFN0cmluZ0luVHJp
Z2dlckZsYWdzQXJyYXk7Ci0KLSAgICAgICAgZmxhZ3MgfD0gdHlwZTsKKyAgICAgICAgZmxhZ3Mg
fD0gc3RhdGljX2Nhc3Q8UmVzb3VyY2VGbGFncz4odHlwZS0+dG9SYXcoKSk7CiAgICAgfQogCiAg
ICAgcmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwCmluZGV4IDk5MTAzYTJhMDU3
NmZhMjBkNTM4ZGRiNjcxMjgyMzViNTM2MTZhZjkuLmRmYTRjMzM0YTMzZWQ5ZmIzZGIzZWJiNzM2
NGU0OTBmYzE2NDI1YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kLmNwcApAQCAtMTYxLDEyICsx
NjEsMTQgQEAgQ29udGVudFJ1bGVMaXN0UmVzdWx0cyBDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ6
OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCgKICAgICBEb2N1bWVudCogY3VycmVudERv
Y3VtZW50ID0gbnVsbHB0cjsKICAgICBVUkwgbWFpbkRvY3VtZW50VVJMOwogCisgICAgY29uc3Rl
eHByIE9wdGlvblNldDxSZXNvdXJjZVR5cGU+IGRvY3VtZW50UmVzb3VyY2VUeXBlcyB7IFJlc291
cmNlVHlwZTo6RG9jdW1lbnQsIFJlc291cmNlVHlwZTo6VG9wRG9jdW1lbnQsIFJlc291cmNlVHlw
ZTo6SWZyYW1lRG9jdW1lbnQgfTsKKyAgICAKICAgICBpZiAoRnJhbWUqIGZyYW1lID0gaW5pdGlh
dGluZ0RvY3VtZW50TG9hZGVyLmZyYW1lKCkpIHsKICAgICAgICAgY3VycmVudERvY3VtZW50ID0g
ZnJhbWUtPmRvY3VtZW50KCk7CiAKICAgICAgICAgaWYgKGluaXRpYXRpbmdEb2N1bWVudExvYWRl
ci5pc0xvYWRpbmdNYWluUmVzb3VyY2UoKQogICAgICAgICAgICAgJiYgZnJhbWUtPmlzTWFpbkZy
YW1lKCkKLSAgICAgICAgICAgICYmIHJlc291cmNlVHlwZSA9PSBSZXNvdXJjZVR5cGU6OkRvY3Vt
ZW50KQorICAgICAgICAgICAgJiYgKHJlc291cmNlVHlwZS5jb250YWluc0FueShkb2N1bWVudFJl
c291cmNlVHlwZXMpKSkKICAgICAgICAgICAgIG1haW5Eb2N1bWVudFVSTCA9IHVybDsKICAgICAg
ICAgZWxzZSBpZiAoRG9jdW1lbnQqIG1haW5Eb2N1bWVudCA9IGZyYW1lLT5tYWluRnJhbWUoKS5k
b2N1bWVudCgpKQogICAgICAgICAgICAgbWFpbkRvY3VtZW50VVJMID0gbWFpbkRvY3VtZW50LT51
cmwoKTsKQEAgLTE5MSw3ICsxOTMsNyBAQCBDb250ZW50UnVsZUxpc3RSZXN1bHRzIENvbnRlbnRF
eHRlbnNpb25zQmFja2VuZDo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKAogICAgICAg
ICAgICAgICAgIHJlc3VsdC5ibG9ja2VkQ29va2llcyA9IHRydWU7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICBjYXNlIENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpD
U1NEaXNwbGF5Tm9uZVNlbGVjdG9yOgotICAgICAgICAgICAgICAgIGlmIChyZXNvdXJjZVR5cGUg
PT0gUmVzb3VyY2VUeXBlOjpEb2N1bWVudCkKKyAgICAgICAgICAgICAgICBpZiAocmVzb3VyY2VU
eXBlLmNvbnRhaW5zQW55KGRvY3VtZW50UmVzb3VyY2VUeXBlcykpCiAgICAgICAgICAgICAgICAg
ICAgIGluaXRpYXRpbmdEb2N1bWVudExvYWRlci5hZGRQZW5kaW5nQ29udGVudEV4dGVuc2lvbkRp
c3BsYXlOb25lU2VsZWN0b3IoY29udGVudFJ1bGVMaXN0SWRlbnRpZmllciwgYWN0aW9uLnN0cmlu
Z0FyZ3VtZW50KCksIGFjdGlvbi5hY3Rpb25JRCgpKTsKICAgICAgICAgICAgICAgICBlbHNlIGlm
IChjdXJyZW50RG9jdW1lbnQpCiAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnREb2N1bWVudC0+
ZXh0ZW5zaW9uU3R5bGVTaGVldHMoKS5hZGREaXNwbGF5Tm9uZVNlbGVjdG9yKGNvbnRlbnRSdWxl
TGlzdElkZW50aWZpZXIsIGFjdGlvbi5zdHJpbmdBcmd1bWVudCgpLCBhY3Rpb24uYWN0aW9uSUQo
KSk7CkBAIC0yMTUsNyArMjE3LDcgQEAgQ29udGVudFJ1bGVMaXN0UmVzdWx0cyBDb250ZW50RXh0
ZW5zaW9uc0JhY2tlbmQ6OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCgKIAogICAgICAg
ICBpZiAoIWFjdGlvbnNGcm9tQ29udGVudFJ1bGVMaXN0LnNhd0lnbm9yZVByZXZpb3VzUnVsZXMp
IHsKICAgICAgICAgICAgIGlmIChhdXRvKiBzdHlsZVNoZWV0Q29udGVudHMgPSBnbG9iYWxEaXNw
bGF5Tm9uZVN0eWxlU2hlZXQoY29udGVudFJ1bGVMaXN0SWRlbnRpZmllcikpIHsKLSAgICAgICAg
ICAgICAgICBpZiAocmVzb3VyY2VUeXBlID09IFJlc291cmNlVHlwZTo6RG9jdW1lbnQpCisgICAg
ICAgICAgICAgICAgaWYgKHJlc291cmNlVHlwZS5jb250YWluc0FueShkb2N1bWVudFJlc291cmNl
VHlwZXMpKQogICAgICAgICAgICAgICAgICAgICBpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIuYWRk
UGVuZGluZ0NvbnRlbnRFeHRlbnNpb25TaGVldChjb250ZW50UnVsZUxpc3RJZGVudGlmaWVyLCAq
c3R5bGVTaGVldENvbnRlbnRzKTsKICAgICAgICAgICAgICAgICBlbHNlIGlmIChjdXJyZW50RG9j
dW1lbnQpCiAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnREb2N1bWVudC0+ZXh0ZW5zaW9uU3R5
bGVTaGVldHMoKS5tYXliZUFkZENvbnRlbnRFeHRlbnNpb25TaGVldChjb250ZW50UnVsZUxpc3RJ
ZGVudGlmaWVyLCAqc3R5bGVTaGVldENvbnRlbnRzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVNoZWV0Q29udGVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
U2hlZXRDb250ZW50cy5jcHAKaW5kZXggZTRiMDQ0OWI1M2ZhNWQ3ZDQyNGE0ZjU0ZmNlYmEyNTA1
NjFlM2ZmMC4uMTA5YTc5NjJlM2ZjNzE5YzMzYTRiZWQ5ZDdmNzZmZjFhMzU0OTZkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2hlZXRDb250ZW50cy5jcHAKQEAgLTUwOCw3ICs1MDgsNyBA
QCBib29sIFN0eWxlU2hlZXRDb250ZW50czo6c3VicmVzb3VyY2VzQWxsb3dSZXVzZShDYWNoZVBv
bGljeSBjYWNoZVBvbGljeSwgRnJhbWVMbwogICAgICAgICBhdXRvKiBkb2N1bWVudExvYWRlciA9
IGxvYWRlci5kb2N1bWVudExvYWRlcigpOwogICAgICAgICBpZiAocGFnZSAmJiBkb2N1bWVudExv
YWRlcikgewogICAgICAgICAgICAgY29uc3QgYXV0byYgcmVxdWVzdCA9IHJlc291cmNlLnJlc291
cmNlUmVxdWVzdCgpOwotICAgICAgICAgICAgYXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRl
bnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChyZXF1ZXN0LnVybCgp
LCBDb250ZW50RXh0ZW5zaW9uczo6dG9SZXNvdXJjZVR5cGUocmVzb3VyY2UudHlwZSgpKSwgKmRv
Y3VtZW50TG9hZGVyKTsKKyAgICAgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJDb250
ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQocmVxdWVzdC51cmwo
KSwgQ29udGVudEV4dGVuc2lvbnM6OnRvUmVzb3VyY2VUeXBlKHJlc291cmNlLnR5cGUoKSwgQ29u
dGVudEV4dGVuc2lvbnM6OkxvYWRpbmdUb3BEb2N1bWVudDo6Tm8pLCAqZG9jdW1lbnRMb2FkZXIp
OwogICAgICAgICAgICAgaWYgKHJlc3VsdHMuc3VtbWFyeS5ibG9ja2VkTG9hZCB8fCByZXN1bHRz
LnN1bW1hcnkubWFkZUhUVFBTKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJl
YW1Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFt
TG9hZGVyLmNwcAppbmRleCA4OTEwZTgyMzNhNmQ3MDQ5YTg0NzFjYzc1NWViYmFkMGU0OGU4OWNi
Li5mNTQ3YWIyZGE0ZDY0NjdhYmU1Njg2YzBlZmZlOTA0YTIxYWM3YWIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKQEAg
LTYwLDcgKzYwLDcgQEAgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6Ok5ldHNjYXBlUGx1Z0lu
U3RyZWFtTG9hZGVyKEZyYW1lJiBmcmFtZSwgTmV0c2NhcGVQbHUKICAgICAsIG1fY2xpZW50KG1h
a2VXZWFrUHRyKGNsaWVudCkpCiB7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAg
ICBtX3Jlc291cmNlVHlwZSA9IENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OlBsdWdJ
blN0cmVhbTsKKyAgICBtX3Jlc291cmNlVHlwZSA9IHsgQ29udGVudEV4dGVuc2lvbnM6OlJlc291
cmNlVHlwZTo6UGx1Z0luU3RyZWFtIH07CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZEluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZEluZm8uY3BwCmluZGV4IDk0NDVhYWI3MGRkYzdlOGI1MWE2NzczNDQz
N2Y2OTcyZTNkZTE0NDcuLmQyM2YzMmExNTM4NDlhMzQzZjhhMWFkYmYwMzhkZmMwNDRkMzc0Njcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5jcHAKQEAgLTM0LDgx
ICszNCw5MSBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIENvbnRlbnRFeHRlbnNp
b25zIHsKIAotUmVzb3VyY2VUeXBlIHRvUmVzb3VyY2VUeXBlKENhY2hlZFJlc291cmNlOjpUeXBl
IHR5cGUpCitPcHRpb25TZXQ8UmVzb3VyY2VUeXBlPiB0b1Jlc291cmNlVHlwZShDYWNoZWRSZXNv
dXJjZTo6VHlwZSB0eXBlLCBMb2FkaW5nVG9wRG9jdW1lbnQgbG9hZGluZ1RvcERvY3VtZW50KQog
ewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6Okxp
bmtQcmVmZXRjaDoKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpNYWluUmVzb3VyY2U6
Ci0gICAgICAgIHJldHVybiBSZXNvdXJjZVR5cGU6OkRvY3VtZW50OworICAgICAgICBpZiAobG9h
ZGluZ1RvcERvY3VtZW50ID09IExvYWRpbmdUb3BEb2N1bWVudDo6WWVzKQorICAgICAgICAgICAg
cmV0dXJuIHt7IFJlc291cmNlVHlwZTo6RG9jdW1lbnQsIFJlc291cmNlVHlwZTo6VG9wRG9jdW1l
bnQgfX07CisgICAgICAgIHJldHVybiB7eyBSZXNvdXJjZVR5cGU6OkRvY3VtZW50LCAgUmVzb3Vy
Y2VUeXBlOjpJZnJhbWVEb2N1bWVudCB9fTsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBl
OjpTVkdEb2N1bWVudFJlc291cmNlOgotICAgICAgICByZXR1cm4gUmVzb3VyY2VUeXBlOjpTVkdE
b2N1bWVudDsKKyAgICAgICAgcmV0dXJuIHsgUmVzb3VyY2VUeXBlOjpTVkdEb2N1bWVudCB9Owog
ICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6OkltYWdlUmVzb3VyY2U6Ci0gICAgICAgIHJl
dHVybiBSZXNvdXJjZVR5cGU6OkltYWdlOworICAgICAgICByZXR1cm4geyBSZXNvdXJjZVR5cGU6
OkltYWdlIH07CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6Q1NTU3R5bGVTaGVldDoK
ICNpZiBFTkFCTEUoWFNMVCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpYU0xTdHls
ZVNoZWV0OgogI2VuZGlmCi0gICAgICAgIHJldHVybiBSZXNvdXJjZVR5cGU6OlN0eWxlU2hlZXQ7
CisgICAgICAgIHJldHVybiB7IFJlc291cmNlVHlwZTo6U3R5bGVTaGVldCB9OwogCiAgICAgY2Fz
ZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6U2NyaXB0OgotICAgICAgICByZXR1cm4gUmVzb3VyY2VU
eXBlOjpTY3JpcHQ7CisgICAgICAgIHJldHVybiB7IFJlc291cmNlVHlwZTo6U2NyaXB0IH07CiAK
ICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpGb250UmVzb3VyY2U6CiAgICAgY2FzZSBD
YWNoZWRSZXNvdXJjZTo6VHlwZTo6U1ZHRm9udFJlc291cmNlOgotICAgICAgICByZXR1cm4gUmVz
b3VyY2VUeXBlOjpGb250OworICAgICAgICByZXR1cm4geyBSZXNvdXJjZVR5cGU6OkZvbnQgfTsK
IAogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6Ok1lZGlhUmVzb3VyY2U6Ci0gICAgICAg
IHJldHVybiBSZXNvdXJjZVR5cGU6Ok1lZGlhOworICAgICAgICByZXR1cm4geyBSZXNvdXJjZVR5
cGU6Ok1lZGlhIH07CiAKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpCZWFjb246CiAg
ICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6UGluZzoKICAgICBjYXNlIENhY2hlZFJlc291
cmNlOjpUeXBlOjpJY29uOgogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6OlJhd1Jlc291
cmNlOgotICAgICAgICByZXR1cm4gUmVzb3VyY2VUeXBlOjpSYXc7CisgICAgICAgIHJldHVybiB7
IFJlc291cmNlVHlwZTo6UmF3IH07CiAKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpU
ZXh0VHJhY2tSZXNvdXJjZToKLSAgICAgICAgcmV0dXJuIFJlc291cmNlVHlwZTo6TWVkaWE7Cisg
ICAgICAgIHJldHVybiB7IFJlc291cmNlVHlwZTo6TWVkaWEgfTsKIAogI2lmIEVOQUJMRShBUFBM
SUNBVElPTl9NQU5JRkVTVCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpBcHBsaWNh
dGlvbk1hbmlmZXN0OgotICAgICAgICByZXR1cm4gUmVzb3VyY2VUeXBlOjpSYXc7CisgICAgICAg
IHJldHVybiB7IFJlc291cmNlVHlwZTo6UmF3IH07CiAjZW5kaWYKLSAgICB9OwotICAgIHJldHVy
biBSZXNvdXJjZVR5cGU6OlJhdzsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgcmV0dXJuIHsgUmVzb3VyY2VUeXBlOjpSYXcgfTsKIH0KIAotdWludDE2X3QgcmVhZFJlc291
cmNlVHlwZShjb25zdCBTdHJpbmcmIG5hbWUpCitPcHRpb25hbDxPcHRpb25TZXQ8UmVzb3VyY2VU
eXBlPj4gcmVhZFJlc291cmNlVHlwZShjb25zdCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAgaWYgKG5h
bWUgPT0gImRvY3VtZW50IikKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQxNl90PihS
ZXNvdXJjZVR5cGU6OkRvY3VtZW50KTsKKyAgICBpZiAobmFtZSA9PSAiZG9jdW1lbnQiKSB7Cisg
ICAgICAgIC8vIFRoaXMgY2FuIGJlIHJlcGxhY2VkIGJ5IFJlc291cmNlVHlwZTo6VG9wRG9jdW1l
bnQgfCBSZXNvdXJjZVR5cGU6OklmcmFtZURvY3VtZW50CisgICAgICAgIC8vIGJ1dCB0byBiZXR0
ZXIgdGVzdCBiZWhhdmlvciBsaWtlIGV4aXN0aW5nIGNvbXBpbGVkIFdLQ29udGVudFJ1bGVMaXN0
cywgd2UgdXNlIERvY3VtZW50LgorICAgICAgICByZXR1cm4ge3sgUmVzb3VyY2VUeXBlOjpEb2N1
bWVudCB9fTsKKyAgICB9CiAgICAgaWYgKG5hbWUgPT0gImltYWdlIikKLSAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PHVpbnQxNl90PihSZXNvdXJjZVR5cGU6OkltYWdlKTsKKyAgICAgICAgcmV0
dXJuIHsgUmVzb3VyY2VUeXBlOjpJbWFnZSB9OwogICAgIGlmIChuYW1lID09ICJzdHlsZS1zaGVl
dCIpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50MTZfdD4oUmVzb3VyY2VUeXBlOjpT
dHlsZVNoZWV0KTsKKyAgICAgICAgcmV0dXJuIHsgUmVzb3VyY2VUeXBlOjpTdHlsZVNoZWV0IH07
CiAgICAgaWYgKG5hbWUgPT0gInNjcmlwdCIpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1
aW50MTZfdD4oUmVzb3VyY2VUeXBlOjpTY3JpcHQpOworICAgICAgICByZXR1cm4geyBSZXNvdXJj
ZVR5cGU6OlNjcmlwdCB9OwogICAgIGlmIChuYW1lID09ICJmb250IikKLSAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PHVpbnQxNl90PihSZXNvdXJjZVR5cGU6OkZvbnQpOworICAgICAgICByZXR1
cm4geyBSZXNvdXJjZVR5cGU6OkZvbnQgfTsKICAgICBpZiAobmFtZSA9PSAicmF3IikKLSAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQxNl90PihSZXNvdXJjZVR5cGU6OlJhdyk7CisgICAg
ICAgIHJldHVybiB7IFJlc291cmNlVHlwZTo6UmF3IH07CiAgICAgaWYgKG5hbWUgPT0gInN2Zy1k
b2N1bWVudCIpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50MTZfdD4oUmVzb3VyY2VU
eXBlOjpTVkdEb2N1bWVudCk7CisgICAgICAgIHJldHVybiB7IFJlc291cmNlVHlwZTo6U1ZHRG9j
dW1lbnQgfTsKICAgICBpZiAobmFtZSA9PSAibWVkaWEiKQotICAgICAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8dWludDE2X3Q+KFJlc291cmNlVHlwZTo6TWVkaWEpOworICAgICAgICByZXR1cm4geyBS
ZXNvdXJjZVR5cGU6Ok1lZGlhIH07CiAgICAgaWYgKG5hbWUgPT0gInBvcHVwIikKLSAgICAgICAg
cmV0dXJuIHN0YXRpY19jYXN0PHVpbnQxNl90PihSZXNvdXJjZVR5cGU6OlBvcHVwKTsKKyAgICAg
ICAgcmV0dXJuIHsgUmVzb3VyY2VUeXBlOjpQb3B1cCB9OwogICAgIGlmIChuYW1lID09ICJwaW5n
IikKLSAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVpbnQxNl90PihSZXNvdXJjZVR5cGU6OlBp
bmcpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50MTZfdD4oUmVzb3VyY2VUeXBlOjpJbnZh
bGlkKTsKKyAgICAgICAgcmV0dXJuIHsgUmVzb3VyY2VUeXBlOjpQaW5nIH07CisgICAgaWYgKG5h
bWUgPT0gInRvcC1kb2N1bWVudCIpCisgICAgICAgIHJldHVybiB7IFJlc291cmNlVHlwZTo6VG9w
RG9jdW1lbnQgfTsKKyAgICBpZiAobmFtZSA9PSAibmVzdGVkLWRvY3VtZW50IikKKyAgICAgICAg
cmV0dXJuIHsgUmVzb3VyY2VUeXBlOjpJZnJhbWVEb2N1bWVudCB9OworICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CiB9CiAKLXVpbnQxNl90IHJlYWRMb2FkVHlwZShjb25zdCBTdHJpbmcmIG5hbWUp
CitPcHRpb25hbDxPcHRpb25TZXQ8TG9hZFR5cGU+PiByZWFkTG9hZFR5cGUoY29uc3QgU3RyaW5n
JiBuYW1lKQogewogICAgIGlmIChuYW1lID09ICJmaXJzdC1wYXJ0eSIpCi0gICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1aW50MTZfdD4oTG9hZFR5cGU6OkZpcnN0UGFydHkpOworICAgICAgICBy
ZXR1cm4geyBMb2FkVHlwZTo6Rmlyc3RQYXJ0eSB9OwogICAgIGlmIChuYW1lID09ICJ0aGlyZC1w
YXJ0eSIpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50MTZfdD4oTG9hZFR5cGU6OlRo
aXJkUGFydHkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDx1aW50MTZfdD4oTG9hZFR5cGU6Oklu
dmFsaWQpOworICAgICAgICByZXR1cm4geyBMb2FkVHlwZTo6VGhpcmRQYXJ0eSB9OworICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiB9CiAKIGJvb2wgUmVzb3VyY2VMb2FkSW5mbzo6aXNUaGlyZFBh
cnR5KCkgY29uc3QKQEAgLTEyMiw3ICsxMzIsNyBAQCBib29sIFJlc291cmNlTG9hZEluZm86Omlz
VGhpcmRQYXJ0eSgpIGNvbnN0CiBSZXNvdXJjZUZsYWdzIFJlc291cmNlTG9hZEluZm86OmdldFJl
c291cmNlRmxhZ3MoKSBjb25zdAogewogICAgIFJlc291cmNlRmxhZ3MgZmxhZ3MgPSAwOwotICAg
IEFTU0VSVCh0eXBlICE9IFJlc291cmNlVHlwZTo6SW52YWxpZCk7CisgICAgQVNTRVJUKCF0eXBl
LmlzRW1wdHkoKSk7CiAgICAgZmxhZ3MgfD0gdHlwZS50b1JhdygpOwogICAgIGZsYWdzIHw9IGlz
VGhpcmRQYXJ0eSgpID8gc3RhdGljX2Nhc3Q8UmVzb3VyY2VGbGFncz4oTG9hZFR5cGU6OlRoaXJk
UGFydHkpIDogc3RhdGljX2Nhc3Q8UmVzb3VyY2VGbGFncz4oTG9hZFR5cGU6OkZpcnN0UGFydHkp
OwogICAgIHJldHVybiBmbGFnczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkSW5m
by5oCmluZGV4IDFjZjQ5NTFlMTg2ZWMyZTU4OTc1MTMzYjc5MWI3MjliYWNlNjlhNzMuLmE5ZmE1
OWNmMmI1YzhjZGZhMmQ0MzIzYWIwMTBjNjcwZGU5NmMzYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZEluZm8uaApAQCAtMzUsOCArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgewogCiBlbnVtIGNsYXNzIFJlc291cmNl
VHlwZSA6IHVpbnQxNl90IHsKLSAgICBJbnZhbGlkID0gMHgwMDAwLAotICAgIERvY3VtZW50ID0g
MHgwMDAxLAorICAgIERvY3VtZW50ID0gMHgwMDAxLCAvLyBUaGlzIGJpdCBjYW4gYmUgcmV1c2Vk
IG5leHQgdGltZSB3ZSBpbmNyZW1lbnQgQ3VycmVudENvbnRlbnRSdWxlTGlzdEZpbGVWZXJzaW9u
CiAgICAgSW1hZ2UgPSAweDAwMDIsCiAgICAgU3R5bGVTaGVldCA9IDB4MDAwNCwKICAgICBTY3Jp
cHQgPSAweDAwMDgsCkBAIC00OCwxMSArNDcsMTIgQEAgZW51bSBjbGFzcyBSZXNvdXJjZVR5cGUg
OiB1aW50MTZfdCB7CiAgICAgUG9wdXAgPSAweDAyMDAsCiAgICAgLy8gMHgwNDAwIGFuZCAweDA4
MDAgYXJlIHVzZWQgYnkgTG9hZFR5cGUuCiAgICAgUGluZyA9IDB4MTAwMCwKKyAgICBUb3BEb2N1
bWVudCA9IDB4MTAwMCwKKyAgICBJZnJhbWVEb2N1bWVudCA9IDB4MjAwMCwKIH07Ci1jb25zdCB1
aW50MTZfdCBSZXNvdXJjZVR5cGVNYXNrID0gMHgxM0ZGOworY29uc3QgdWludDE2X3QgUmVzb3Vy
Y2VUeXBlTWFzayA9IDB4NzNGRjsKIAogZW51bSBjbGFzcyBMb2FkVHlwZSA6IHVpbnQxNl90IHsK
LSAgICBJbnZhbGlkID0gMHgwMDAwLAogICAgIEZpcnN0UGFydHkgPSAweDA0MDAsCiAgICAgVGhp
cmRQYXJ0eSA9IDB4MDgwMCwKIH07CkBAIC03Miw5ICs3MiwxMCBAQCB0eXBlZGVmIHVpbnQxNl90
IFJlc291cmNlRmxhZ3M7CiBjb25zdCB1aW50NjRfdCBBY3Rpb25GbGFnTWFzayA9IDB4MDAwMEZG
RkYwMDAwMDAwMDsKIGNvbnN0IHVpbnQ2NF90IElmQ29uZGl0aW9uRmxhZyA9IDB4MDAwMTAwMDAw
MDAwMDAwMDsKIAotUmVzb3VyY2VUeXBlIHRvUmVzb3VyY2VUeXBlKENhY2hlZFJlc291cmNlOjpU
eXBlKTsKLXVpbnQxNl90IHJlYWRSZXNvdXJjZVR5cGUoY29uc3QgU3RyaW5nJik7Ci11aW50MTZf
dCByZWFkTG9hZFR5cGUoY29uc3QgU3RyaW5nJik7CitlbnVtIGNsYXNzIExvYWRpbmdUb3BEb2N1
bWVudCA6IGJvb2wgeyBObywgWWVzIH07CitPcHRpb25TZXQ8UmVzb3VyY2VUeXBlPiB0b1Jlc291
cmNlVHlwZShDYWNoZWRSZXNvdXJjZTo6VHlwZSwgTG9hZGluZ1RvcERvY3VtZW50KTsKK09wdGlv
bmFsPE9wdGlvblNldDxSZXNvdXJjZVR5cGU+PiByZWFkUmVzb3VyY2VUeXBlKGNvbnN0IFN0cmlu
ZyYpOworT3B0aW9uYWw8T3B0aW9uU2V0PExvYWRUeXBlPj4gcmVhZExvYWRUeXBlKGNvbnN0IFN0
cmluZyYpOwogCiBzdHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbyB7CiAgICAgVVJMIHJlc291cmNlVVJM
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggYjM1NGU3YWFh
Zjc5NWVhNWY2NzRhMTEyYjRkZGRkNWEwZWQwODFjZC4uZDQxOWRjOTA3N2JjYmJkMDRmNWRjMWFk
MGNlNDFhYTMzZjFjOGM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIu
Y3BwCkBAIC0zNDYsNyArMzQ2LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1
ZXN0SW50ZXJuYWwoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgUmUKIAogICAgIEFT
U0VSVCghbV9yZWFjaGVkVGVybWluYWxTdGF0ZSk7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5T
SU9OUykKLSAgICBBU1NFUlQobV9yZXNvdXJjZVR5cGUgIT0gQ29udGVudEV4dGVuc2lvbnM6OlJl
c291cmNlVHlwZTo6SW52YWxpZCk7CisgICAgQVNTRVJUKCFtX3Jlc291cmNlVHlwZS5pc0VtcHR5
KCkpOwogI2VuZGlmCiAKICAgICAvLyBXZSBuZWVkIGEgcmVzb3VyY2UgaWRlbnRpZmllciBmb3Ig
YWxsIHJlcXVlc3RzLCBldmVuIGlmIEZyYW1lTG9hZGVyIGlzIG5ldmVyIGdvaW5nIHRvIHNlZSBp
dCAoc3VjaCBhcyB3aXRoIENPUlMgcHJlZmxpZ2h0IHJlcXVlc3RzKS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1Jlc291cmNlTG9hZGVyLmgKaW5kZXggMDU3MTAyZWNjYjY5Y2M0NzJlNDFjYzg5NGUwNWI2
MzI5ZDRkNDVlZS4uYjJmNmE1ZWNiM2JlYTA0ZTliZmE4ZDFlZTc2NjJjMzJjMWRmM2QxNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmgKQEAgLTI0Niw3ICsyNDYsNyBAQCBw
cml2YXRlOgogCiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKIHByb3RlY3RlZDoKLSAg
ICBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlIG1fcmVzb3VyY2VUeXBlIHsgQ29udGVu
dEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6SW52YWxpZCB9OworICAgIE9wdGlvblNldDxDb250
ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlPiBtX3Jlc291cmNlVHlwZTsKICNlbmRpZgogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YnJlc291cmNlTG9hZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJyZXNvdXJjZUxvYWRlci5jcHAKaW5kZXggMjAw
ZTZkOTE5NTU2YTVhYzJhNmQ3MGRiNWJlYWZkYWNlYWFjMjVjNS4uMGUwZDcwOTQ5NjAyMzFhYjMy
Yzg0ODNkZjg0ZmJkNmY3ZTU2NTkyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1N1YnJlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3VicmVz
b3VyY2VMb2FkZXIuY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgU3VicmVzb3VyY2VMb2FkZXI6OlN1
YnJlc291cmNlTG9hZGVyKEZyYW1lJiBmcmFtZSwgQ2FjaGVkUmVzb3VyY2UmIHJlc291cmNlLCBj
b24KICAgICBzdWJyZXNvdXJjZUxvYWRlckNvdW50ZXIuaW5jcmVtZW50KCk7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAgIG1fcmVzb3VyY2VUeXBlID0gQ29udGVu
dEV4dGVuc2lvbnM6OnRvUmVzb3VyY2VUeXBlKHJlc291cmNlLnR5cGUoKSk7CisgICAgbV9yZXNv
dXJjZVR5cGUgPSBDb250ZW50RXh0ZW5zaW9uczo6dG9SZXNvdXJjZVR5cGUocmVzb3VyY2UudHlw
ZSgpLCBDb250ZW50RXh0ZW5zaW9uczo6TG9hZGluZ1RvcERvY3VtZW50OjpObyk7CiAjZW5kaWYK
ICAgICBtX2NhbkNyb3NzT3JpZ2luUmVxdWVzdHNBc2tVc2VyRm9yQ3JlZGVudGlhbHMgPSByZXNv
dXJjZS50eXBlKCkgPT0gQ2FjaGVkUmVzb3VyY2U6OlR5cGU6Ok1haW5SZXNvdXJjZSB8fCBmcmFt
ZS5zZXR0aW5ncygpLmFsbG93Q3Jvc3NPcmlnaW5TdWJyZXNvdXJjZXNUb0Fza0ZvckNyZWRlbnRp
YWxzKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJl
c291cmNlTG9hZGVyLmNwcAppbmRleCBkMWQ2NGRjYjc3OThjYWRkYWM0N2M1MTZhNDVhZDQ0ZjYx
NzZkMjFkLi5iYzYzYWE0YWRkNzljOWZhMmQxNTA4MDA0NmU0NTQ4NjgwNzYzN2M4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTg3NCw3ICs4NzQsOCBAQCBSZXNvdXJjZUVycm9yT3I8Q2FjaGVkUmVzb3VyY2VIYW5k
bGU8Q2FjaGVkUmVzb3VyY2U+PiBDYWNoZWRSZXNvdXJjZUxvYWRlcjo6cmVxdQogI2lmIEVOQUJM
RShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAgaWYgKG1fZG9jdW1lbnRMb2FkZXIpIHsKICAgICAg
ICAgY29uc3QgYXV0byYgcmVzb3VyY2VSZXF1ZXN0ID0gcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3Qo
KTsKLSAgICAgICAgYXV0byByZXN1bHRzID0gcGFnZS51c2VyQ29udGVudFByb3ZpZGVyKCkucHJv
Y2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKHJlc291cmNlUmVxdWVzdC51cmwoKSwgQ29udGVu
dEV4dGVuc2lvbnM6OnRvUmVzb3VyY2VUeXBlKHR5cGUpLCAqbV9kb2N1bWVudExvYWRlcik7Cisg
ICAgICAgIGF1dG8gbG9hZGluZ1RvcERvY3VtZW50ID0gbV9kb2N1bWVudExvYWRlci0+aXNMb2Fk
aW5nTWFpblJlc291cmNlKCkgJiYgZnJhbWUuaXNNYWluRnJhbWUoKSA/IENvbnRlbnRFeHRlbnNp
b25zOjpMb2FkaW5nVG9wRG9jdW1lbnQ6OlllcyA6IENvbnRlbnRFeHRlbnNpb25zOjpMb2FkaW5n
VG9wRG9jdW1lbnQ6Ok5vOworICAgICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLnVzZXJDb250ZW50
UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQocmVzb3VyY2VSZXF1ZXN0
LnVybCgpLCBDb250ZW50RXh0ZW5zaW9uczo6dG9SZXNvdXJjZVR5cGUodHlwZSwgbG9hZGluZ1Rv
cERvY3VtZW50KSwgKm1fZG9jdW1lbnRMb2FkZXIpOwogICAgICAgICBib29sIGJsb2NrZWRMb2Fk
ID0gcmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2FkOwogICAgICAgICBib29sIG1hZGVIVFRQUyA9
IHJlc3VsdHMuc3VtbWFyeS5tYWRlSFRUUFM7CiAgICAgICAgIHJlcXVlc3QuYXBwbHlSZXN1bHRz
KFdURk1vdmUocmVzdWx0cyksICZwYWdlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyMmFhZWVhZTBkNGEwNTM2ZDIyMDBjODczYWVkNThmNDNl
OTkzOTA3Li45MTNmNzQ4NDBiMDI1YTA2MTFhZTlmZDI5Y2RlZThkNTgzNzRmZGQxIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMjAtMTItMjEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBBZGQgdG9wLWRvY3VtZW50IGFuZCBuZXN0ZWQtZG9jdW1lbnQgcmVzb3Vy
Y2UgdHlwZXMgdG8gV0tDb250ZW50UnVsZUxpc3Qgc3ludGF4CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkwMDEKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzcxMzgyMDQ1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db250ZW50UnVsZUxpc3RO
b3RpZmljYXRpb24ubW06CisgICAgICAgIChURVNUKToKKwogMjAyMC0xMi0xNyAgWmFuIERvYmVy
c2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmVvcmRl
cmluZyBhc3NvY2lhdGVkIGVtYWlsIGFkZHJlc3NlcyBpbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24u
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbnRlbnRSdWxlTGlz
dE5vdGlmaWNhdGlvbi5tbQppbmRleCA5OTI1OGQ1Y2QyNWE3YzUwNjcyYzE0NjJhNDM3ZTY4OTRk
MTY1YTRmLi44N2JhNzdlMDFmMjFhZGNkMjI2YTU0MGI0ODZjMzc3YzkzYmEwNmRjIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbnRlbnRSdWxlTGlz
dE5vdGlmaWNhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0NvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbi5tbQpAQCAtMjYsNiArMjYsOCBAQAogI2lt
cG9ydCAiY29uZmlnLmgiCiAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0
ICJUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLmgiCisjaW1wb3J0ICJUZXN0VVJMU2NoZW1lSGFuZGxl
ci5oIgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGVudFJ1bGVMaXN0U3RvcmUuaD4KICNpbXBvcnQg
PFdlYktpdC9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9X
S1VSTFNjaGVtZUhhbmRsZXIuaD4KQEAgLTExNiw3ICsxMTgsNyBAQCBzdGF0aWMgUmV0YWluUHRy
PFdLQ29udGVudFJ1bGVMaXN0PiBtYWtlQ29udGVudFJ1bGVMaXN0KE5TU3RyaW5nICpzb3VyY2Us
IE5TU3RyaQogICAgIHJldHVybiBjb250ZW50UnVsZUxpc3Q7CiB9CiAKLVRFU1QoV2ViS2l0LCBD
b250ZW50UnVsZUxpc3ROb3RpZmljYXRpb25NYWluUmVzb3VyY2UpCitURVNUKENvbnRlbnRSdWxl
TGlzdCwgTm90aWZpY2F0aW9uTWFpblJlc291cmNlKQogewogICAgIGF1dG8gZGVsZWdhdGUgPSBh
ZG9wdE5TKFtbQ29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uRGVsZWdhdGUgYWxsb2NdIGluaXRd
KTsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtMTMwLDcgKzEzMiw3IEBAIFRFU1QoV2ViS2l0LCBDb250
ZW50UnVsZUxpc3ROb3RpZmljYXRpb25NYWluUmVzb3VyY2UpCiAgICAgRVhQRUNUX1NUUkVRKFtu
b3RpZmljYXRpb25JZGVudGlmaWVyIFVURjhTdHJpbmddLCAidGVzdGlkZW50aWZpZXIiKTsKIH0K
IAotVEVTVChXZWJLaXQsIENvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvblN1YnJlc291cmNlKQor
VEVTVChDb250ZW50UnVsZUxpc3QsIE5vdGlmaWNhdGlvblN1YnJlc291cmNlKQogewogICAgIGF1
dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbQ29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uRGVsZWdh
dGUgYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwpAQCAtMTQ2LDcgKzE0OCw3IEBAIFRF
U1QoV2ViS2l0LCBDb250ZW50UnVsZUxpc3ROb3RpZmljYXRpb25TdWJyZXNvdXJjZSkKICAgICBF
WFBFQ1RfU1RSRVEoW25vdGlmaWNhdGlvbklkZW50aWZpZXIgVVRGOFN0cmluZ10sICJ0ZXN0aWRl
bnRpZmllciIpOwogfQogCi1URVNUKFdlYktpdCwgUGVyZm9ybWVkQWN0aW9uRm9yVVJMKQorVEVT
VChDb250ZW50UnVsZUxpc3QsIFBlcmZvcm1lZEFjdGlvbkZvclVSTCkKIHsKICAgICBOU1N0cmlu
ZyAqZmlyc3RMaXN0ID0gQCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwibm90aWZ5XCIsXCJub3Rp
ZmljYXRpb25cIjpcInRlc3Rub3RpZmljYXRpb25cIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRl
clwiOlwibm90aWZ5XCJ9fV0iOwogICAgIE5TU3RyaW5nICpzZWNvbmRMaXN0ID0gQCJbe1wiYWN0
aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwi
YmxvY2tcIn19XSI7CkBAIC0xNjksMyArMTcxLDY2IEBAIFRFU1QoV2ViS2l0LCBQZXJmb3JtZWRB
Y3Rpb25Gb3JVUkwpCiAgICAgfTsKICAgICBFWFBFQ1RfVFJVRShleHBlY3RlZE5vdGlmaWNhdGlv
bnMgPT0gbm90aWZpY2F0aW9uTGlzdCk7CiB9CisKK1RFU1QoQ29udGVudFJ1bGVMaXN0LCBUb3BB
bmRJZnJhbWVEb2N1bWVudCkKK3sKKyAgICBfX2Jsb2NrIGJvb2wgbG9hZGVkTWFpbkZyYW1lID0g
ZmFsc2U7CisgICAgX19ibG9jayBib29sIGxvYWRlZFN1YmZyYW1lID0gZmFsc2U7CisKKyAgICBh
dXRvIGhhbmRsZXIgPSBbW1Rlc3RVUkxTY2hlbWVIYW5kbGVyIG5ld10gYXV0b3JlbGVhc2VdOwor
ICAgIGhhbmRsZXIuc3RhcnRVUkxTY2hlbWVUYXNrSGFuZGxlciA9IF4oV0tXZWJWaWV3ICosIGlk
PFdLVVJMU2NoZW1lVGFzaz4gdGFzaykgeworICAgICAgICBhdXRvIHJlc3BvbmQgPSBbdGFza10g
KGNvbnN0IGNoYXIqIGh0bWwpIHsKKyAgICAgICAgICAgIE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNl
ID0gW1tbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdpdGhVUkw6dGFzay5yZXF1ZXN0LlVSTCBN
SU1FVHlwZTpAInRleHQvaHRtbCIgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOnN0cmxlbihodG1sKSB0
ZXh0RW5jb2RpbmdOYW1lOm5pbF0gYXV0b3JlbGVhc2VdOworICAgICAgICAgICAgW3Rhc2sgZGlk
UmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlXTsKKyAgICAgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVE
YXRhOltOU0RhdGEgZGF0YVdpdGhCeXRlczpodG1sIGxlbmd0aDpzdHJsZW4oaHRtbCldXTsKKyAg
ICAgICAgICAgIFt0YXNrIGRpZEZpbmlzaF07CisgICAgICAgIH07CisgICAgICAgIGlmIChbdGFz
ay5yZXF1ZXN0LlVSTC5wYXRoIGlzRXF1YWxUb1N0cmluZzpAIi9tYWluLmh0bWwiXSkgeworICAg
ICAgICAgICAgcmVzcG9uZCgiPGlmcmFtZSBzcmM9J3N1YmZyYW1lLmh0bWwnPjwvaWZyYW1lPiIp
OworICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKGxvYWRlZE1haW5GcmFtZSk7CisgICAgICAgICAg
ICBsb2FkZWRNYWluRnJhbWUgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICAgIEVYUEVDVF9XS19TVFJFUSh0YXNrLnJlcXVlc3QuVVJMLnBhdGgsICIvc3ViZnJh
bWUuaHRtbCIpOworICAgICAgICByZXNwb25kKCJzdWJmcmFtZSBjb250ZW50Iik7CisgICAgICAg
IEVYUEVDVF9GQUxTRShsb2FkZWRTdWJmcmFtZSk7CisgICAgICAgIGxvYWRlZFN1YmZyYW1lID0g
dHJ1ZTsKKyAgICB9OworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IFtbV0tXZWJWaWV3Q29uZmln
dXJhdGlvbiBuZXddIGF1dG9yZWxlYXNlXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRVUkxTY2hl
bWVIYW5kbGVyOmhhbmRsZXIgZm9yVVJMU2NoZW1lOkAidGVzdCJdOworICAgIGF1dG8gd2ViVmll
dyA9IFtbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvIGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbl0gYXV0b3JlbGVhc2VdOworICAgIGF1dG8gcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0Oi8v
L21haW4uaHRtbCJdXTsKKyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IFtbVGVzdE5hdmln
YXRpb25EZWxlZ2F0ZSBuZXddIGF1dG9yZWxlYXNlXTsKKyAgICB3ZWJWaWV3Lm5hdmlnYXRpb25E
ZWxlZ2F0ZSA9IG5hdmlnYXRpb25EZWxlZ2F0ZTsKKworICAgIGF1dG8gYmxvY2tEb2N1bWVudCA9
IG1ha2VDb250ZW50UnVsZUxpc3QoQCJbe1wiYWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0s
XCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwidGVzdFwiLFwicmVzb3VyY2UtdHlwZVwiOltc
ImRvY3VtZW50XCJdfX1dIik7CisgICAgYXV0byBibG9ja1RvcERvY3VtZW50ID0gbWFrZUNvbnRl
bnRSdWxlTGlzdChAIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJc
Ijp7XCJ1cmwtZmlsdGVyXCI6XCJ0ZXN0XCIsXCJyZXNvdXJjZS10eXBlXCI6W1widG9wLWRvY3Vt
ZW50XCJdfX1dIik7CisgICAgYXV0byBibG9ja05lc3RlZERvY3VtZW50ID0gbWFrZUNvbnRlbnRS
dWxlTGlzdChAIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7
XCJ1cmwtZmlsdGVyXCI6XCJ0ZXN0XCIsXCJyZXNvdXJjZS10eXBlXCI6W1wibmVzdGVkLWRvY3Vt
ZW50XCJdfX1dIik7CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBb
bmF2aWdhdGlvbkRlbGVnYXRlIHdhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKyAgICBFWFBF
Q1RfVFJVRShsb2FkZWRNYWluRnJhbWUpOworICAgIEVYUEVDVF9UUlVFKGxvYWRlZFN1YmZyYW1l
KTsKKworICAgIGxvYWRlZE1haW5GcmFtZSA9IGZhbHNlOworICAgIGxvYWRlZFN1YmZyYW1lID0g
ZmFsc2U7CisgICAgW3dlYlZpZXcuY29uZmlndXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIg
YWRkQ29udGVudFJ1bGVMaXN0OmJsb2NrRG9jdW1lbnQuZ2V0KCldOworICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFtuYXZpZ2F0aW9uRGVsZWdhdGUgd2FpdEZvckRpZEZh
aWxQcm92aXNpb25hbE5hdmlnYXRpb25dOworICAgIEVYUEVDVF9GQUxTRShsb2FkZWRNYWluRnJh
bWUpOworICAgIEVYUEVDVF9GQUxTRShsb2FkZWRTdWJmcmFtZSk7CisKKyAgICBbd2ViVmlldy5j
b25maWd1cmF0aW9uLnVzZXJDb250ZW50Q29udHJvbGxlciByZW1vdmVBbGxDb250ZW50UnVsZUxp
c3RzXTsKKyAgICBbd2ViVmlldy5jb25maWd1cmF0aW9uLnVzZXJDb250ZW50Q29udHJvbGxlciBh
ZGRDb250ZW50UnVsZUxpc3Q6YmxvY2tUb3BEb2N1bWVudC5nZXQoKV07CisgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgW25hdmlnYXRpb25EZWxlZ2F0ZSB3YWl0Rm9yRGlk
RmFpbFByb3Zpc2lvbmFsTmF2aWdhdGlvbl07CisgICAgRVhQRUNUX0ZBTFNFKGxvYWRlZE1haW5G
cmFtZSk7CisgICAgRVhQRUNUX0ZBTFNFKGxvYWRlZFN1YmZyYW1lKTsKKworICAgIFt3ZWJWaWV3
LmNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRDb250cm9sbGVyIHJlbW92ZUFsbENvbnRlbnRSdWxl
TGlzdHNdOworICAgIFt3ZWJWaWV3LmNvbmZpZ3VyYXRpb24udXNlckNvbnRlbnRDb250cm9sbGVy
IGFkZENvbnRlbnRSdWxlTGlzdDpibG9ja05lc3RlZERvY3VtZW50LmdldCgpXTsKKyAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKyAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdhaXRG
b3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKyAgICBFWFBFQ1RfVFJVRShsb2FkZWRNYWluRnJhbWUp
OworICAgIEVYUEVDVF9GQUxTRShsb2FkZWRTdWJmcmFtZSk7Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424175</attachid>
            <date>2021-03-24 13:32:17 -0700</date>
            <delta_ts>2021-03-24 17:27:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219001-20210324133217.patch</filename>
            <type>text/plain</type>
            <size>28702</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjM1MGQ1YTlkNjgwNzkw
MDUyMGQ2NzA3N2Q2MDI5ZjNhY2I3YjNmNy4uNjgxZWRmODQ2M2JkYjkxODMyMDU3MDI3MGFkYmZl
MDcxZTFmMzU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIxLTAzLTI0ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWxsb3cg
V0tDb250ZW50UnVsZUxpc3QgdG8gYmxvY2sgb25seSBpbiBmcmFtZXMgb3Igb25seSBpbiBtYWlu
IGZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTkwMDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzgyMDQ1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWRkcyBsb2FkLWNvbnRleHQg
dG8gdGhlIHRyaWdnZXIsIHdoaWNoIGNhbiBoYXZlIGFuIGFycmF5IGNvbnRhaW5pbmcgbWFpbi1m
cmFtZSBvciBpZnJhbWUuCisgICAgICAgIFRoaXMgbWFrZXMgdGhlIHRyaWdnZXIgb25seSBoYXBw
ZW4gaW4gc3VjaCBsb2FkaW5nIGNvbnRleHRzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2Nr
ZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjp2YWxpZGF0ZVVSTCk6CisgICAgICAgICogY29udGVu
dGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbjo6cG9wdWxhdGVDb25kaXRpb25DYWNoZUlm
TmVlZGVkKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFy
c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpnZXRUeXBlRmxh
Z3MpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OmxvYWRUcmlnZ2VyKToK
KyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25z
QmFja2VuZDo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ6OnByb2Nlc3ND
b250ZW50UnVsZUxpc3RzRm9yUGluZ0xvYWQpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25z
L0RGQUJ5dGVjb2RlSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4
dGVuc2lvbnM6OkRGQUJ5dGVjb2RlSW50ZXJwcmV0ZXI6OmludGVycHJldFRlc3RGbGFnc0FuZEFw
cGVuZEFjdGlvbik6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAg
ICAgKiBsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9h
ZGVyKToKKyAgICAgICAgKiBsb2FkZXIvUGluZ0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQaW5nTG9hZGVyOjpzZW5kUGluZyk6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpz
ZW5kVmlvbGF0aW9uUmVwb3J0KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6dG9SZXNvdXJjZVR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OnJlYWRSZXNvdXJjZVR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OnJlYWRMb2FkVHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6cmVhZExvYWRDb250ZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZUxvYWRJbmZvOjpnZXRS
ZXNvdXJjZUZsYWdzIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5o
OgorCiAyMDIxLTAzLTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgog
CiAgICAgICAgIFtpT1NdIENvbXBvc2l0aW9uIHRleHQgaXMgbm90IGluaXRpYWxseSBoaWdobGln
aHRlZCB3aGVuIHR5cGluZyBpbiB0ZXh0IGZpZWxkcyB1c2luZyBQaW55aW4ga2V5Ym9hcmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNmFiZjZmMTk3OTRmMjQwN2E3ZDg4Nzg4ZGY0YTEyYWVmZDJjN2I4Yy4uNDBiZDQ4
OTY3OGM0N2NjZjhhOWQxMTY2Yjg3MzUxN2EzMTExNzNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAyMS0wMy0yNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgorCisgICAgICAgIEFsbG93IFdLQ29udGVudFJ1bGVMaXN0IHRvIGJsb2NrIG9ubHkgaW4g
ZnJhbWVzIG9yIG9ubHkgaW4gbWFpbiBmcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MDAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29jb2EvUmVhc29uU1BJLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuY3Bw
OgorICAgICAgICAoQVBJOjpDb250ZW50UnVsZUxpc3RTdG9yZTo6Z2V0Q29udGVudFJ1bGVMaXN0
U291cmNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3Jl
Lmg6CisKIDIwMjEtMDMtMjIgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBBU1NFUlRJT04gRkFJTEVEOiBpc01haW5UaHJlYWQo
KSBpbiBHUFUgcHJvY2VzcyBmb3Igc29tZSBjYW52YXMvcGhpbGlwL3Rlc3RzIHRlc3RzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBjMTE1YjQ1YjdhNzU4NGVmZDk3ODZmNDMx
NzkwOWNhMzdmOTdmNTBkLi40Y2NhMDYyYzA1MDdkN2FmYzBlMDk5ZTQzMDgwNGU4YjkzMjU1ZWQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgT3B0
aW9uYWw8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlZhbGlkYXRlZFVSTD4gVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OnYKICAgICAgICAgICAgIHJldHVybiB7IH07CiAjaWYgRU5BQkxF
KENPTlRFTlRfRVhURU5TSU9OUykKICAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0g
ZG9jdW1lbnQubG9hZGVyKCkpIHsKLSAgICAgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVz
ZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoKnBhZ2Us
IHZhbGlkYXRlZFVSTC51cmwsIHsgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6UmF3
LCBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlOjpXZWJTb2NrZXQgfSwgKmRvY3VtZW50
TG9hZGVyKTsKKyAgICAgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJDb250ZW50UHJv
dmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoKnBhZ2UsIHZhbGlkYXRlZFVS
TC51cmwsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OldlYlNvY2tldCwgKmRvY3Vt
ZW50TG9hZGVyKTsKICAgICAgICAgICAgIGlmIChyZXN1bHRzLnN1bW1hcnkuYmxvY2tlZExvYWQp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgICAgIGlmIChyZXN1bHRzLnN1
bW1hcnkubWFkZUhUVFBTKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRFeHRlbnNpb24uY3BwCmluZGV4IDJiODBhMmYxMDMzOTY5ODdiMzM3OTg4
ZmFiYTQ1YzUxY2I4MTkwYmQuLjY1YmRjMWQ5ZDBhY2JiZTFlM2MzNmI0ZGNiMWYxNjlkMDU4MzNh
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRF
eHRlbnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRl
bnRFeHRlbnNpb24uY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBDb250ZW50RXh0ZW5zaW9u
Ojpwb3B1bGF0ZUNvbmRpdGlvbkNhY2hlSWZOZWVkZWQoY29uc3QgVVJMJiB0b3BVUkwpCiB7CiAg
ICAgaWYgKG1fY2FjaGVkVG9wVVJMICE9IHRvcFVSTCkgewogICAgICAgICBERkFCeXRlY29kZUlu
dGVycHJldGVyIGludGVycHJldGVyKG1fY29tcGlsZWRFeHRlbnNpb24tPnRvcFVSTEZpbHRlcnNC
eXRlY29kZSgpLCBtX2NvbXBpbGVkRXh0ZW5zaW9uLT50b3BVUkxGaWx0ZXJzQnl0ZWNvZGVMZW5n
dGgoKSk7Ci0gICAgICAgIGNvbnN0IHVpbnQxNl90IGFsbExvYWRUeXBlc0FuZFJlc291cmNlVHlw
ZXMgPSBMb2FkVHlwZU1hc2sgfCBSZXNvdXJjZVR5cGVNYXNrOworICAgICAgICBjb25zdGV4cHIg
dWludDE2X3QgYWxsTG9hZFR5cGVzQW5kUmVzb3VyY2VUeXBlcyA9IExvYWRUeXBlTWFzayB8IFJl
c291cmNlVHlwZU1hc2sgfCBMb2FkQ29udGV4dE1hc2s7CiAgICAgICAgIFN0cmluZyBzdHJpbmcg
PSBtX2NvbXBpbGVkRXh0ZW5zaW9uLT5jb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW4oKSA/IHRv
cFVSTC5ob3N0KCkudG9TdHJpbmcoKSA6IHRvcFVSTC5zdHJpbmcoKTsKICAgICAgICAgYXV0byB0
b3BVUkxBY3Rpb25zID0gaW50ZXJwcmV0ZXIuaW50ZXJwcmV0KHN0cmluZy51dGY4KCksIGFsbExv
YWRUeXBlc0FuZFJlc291cmNlVHlwZXMpOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAK
aW5kZXggYjdjNmU1YzU5OTIxZWYzMDcyNWFlNjVmYmFlZDQwOWM4YWE2NmRkNi4uODMzYmFjMzNk
MmVmYTU4M2RhYmI0NWQzM2JkZWFlNGY0YTUwZGQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAK
QEAgLTk1LDcgKzk1LDcgQEAgc3RhdGljIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBzdGQ6OmVy
cm9yX2NvZGU+IGdldERvbWFpbkxpc3QoSlNHbG9iYWxPYmplY3QmIGwKIH0KIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4KLXN0YXRpYyBzdGQ6OmVycm9yX2NvZGUgZ2V0VHlwZUZsYWdzKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBjb25zdCBKU1ZhbHVlJiB0eXBlVmFsdWUsIFJl
c291cmNlRmxhZ3MmIGZsYWdzLCBPcHRpb25hbDxPcHRpb25TZXQ8VD4+ICgqc3RyaW5nVG9UeXBl
KShjb25zdCBTdHJpbmcmKSkKK3N0YXRpYyBzdGQ6OmVycm9yX2NvZGUgZ2V0VHlwZUZsYWdzKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBjb25zdCBKU1ZhbHVlJiB0eXBlVmFs
dWUsIFJlc291cmNlRmxhZ3MmIGZsYWdzLCBPcHRpb25hbDxPcHRpb25TZXQ8VD4+ICgqc3RyaW5n
VG9UeXBlKShTdHJpbmdWaWV3KSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0
LnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTE3
LDcgKzExNyw3IEBAIHN0YXRpYyBzdGQ6OmVycm9yX2NvZGUgZ2V0VHlwZUZsYWdzKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBjb25zdCBKCiAgICAgICAgICAgICByZXR1cm4g
Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZE9iamVjdEluVHJpZ2dlckZsYWdzQXJy
YXk7CiAgICAgICAgIAogICAgICAgICBTdHJpbmcgbmFtZSA9IHZhbHVlLnRvV1RGU3RyaW5nKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICAgICAgYXV0byB0eXBlID0gc3RyaW5nVG9UeXBlKG5h
bWUpOworICAgICAgICBhdXRvIHR5cGUgPSBzdHJpbmdUb1R5cGUoU3RyaW5nVmlldyhuYW1lKSk7
CiAgICAgICAgIGlmICghdHlwZSkKICAgICAgICAgICAgIHJldHVybiBDb250ZW50RXh0ZW5zaW9u
RXJyb3I6OkpTT05JbnZhbGlkU3RyaW5nSW5UcmlnZ2VyRmxhZ3NBcnJheTsKIApAQCAtMTcxLDYg
KzE3MSwxNCBAQCBzdGF0aWMgRXhwZWN0ZWQ8VHJpZ2dlciwgc3RkOjplcnJvcl9jb2RlPiBsb2Fk
VHJpZ2dlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIH0gZWxzZSBpZiAoIWxvYWRU
eXBlVmFsdWUuaXNVbmRlZmluZWQoKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENv
bnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7CiAKKyAg
ICBjb25zdCBKU1ZhbHVlIGxvYWRDb250ZXh0VmFsdWUgPSB0cmlnZ2VyT2JqZWN0LmdldCgmbGV4
aWNhbEdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImxvYWQtY29udGV4
dCIpKTsKKyAgICBpZiAoIXNjb3BlLmV4Y2VwdGlvbigpICYmIGxvYWRDb250ZXh0VmFsdWUuaXNP
YmplY3QoKSkgeworICAgICAgICBhdXRvIHR5cGVGbGFnc0Vycm9yID0gZ2V0VHlwZUZsYWdzKGxl
eGljYWxHbG9iYWxPYmplY3QsIGxvYWRDb250ZXh0VmFsdWUsIHRyaWdnZXIuZmxhZ3MsIHJlYWRM
b2FkQ29udGV4dCk7CisgICAgICAgIGlmICh0eXBlRmxhZ3NFcnJvcikKKyAgICAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZCh0eXBlRmxhZ3NFcnJvcik7CisgICAgfSBlbHNlIGlmICghbG9h
ZENvbnRleHRWYWx1ZS5pc1VuZGVmaW5lZCgpKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsK
KwogICAgIGNvbnN0IEpTVmFsdWUgaWZEb21haW5WYWx1ZSA9IHRyaWdnZXJPYmplY3QuZ2V0KCZs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiaWYtZG9tYWlu
IikpOwogICAgIGlmICghc2NvcGUuZXhjZXB0aW9uKCkgJiYgaWZEb21haW5WYWx1ZS5pc09iamVj
dCgpKSB7CiAgICAgICAgIGF1dG8gaWZEb21haW4gPSBnZXREb21haW5MaXN0KGxleGljYWxHbG9i
YWxPYmplY3QsIGFzT2JqZWN0KGlmRG9tYWluVmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQu
Y3BwCmluZGV4IDk3YWQ4ZTcwMDYzZmNmMDFmNjQwMjEwZjk0NGQxYzAwN2Q0Y2RlYWYuLmZjZDg3
NDUwMDY2MWRhMzc5MjA2ZmY5OTMxZGY1NmJlMzI1MzlhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNr
ZW5kLmNwcApAQCAtMTc0LDggKzE3NCwxMCBAQCBDb250ZW50UnVsZUxpc3RSZXN1bHRzIENvbnRl
bnRFeHRlbnNpb25zQmFja2VuZDo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKAogewog
ICAgIERvY3VtZW50KiBjdXJyZW50RG9jdW1lbnQgPSBudWxscHRyOwogICAgIFVSTCBtYWluRG9j
dW1lbnRVUkw7CisgICAgYm9vbCBtYWluRnJhbWVDb250ZXh0ID0gZmFsc2U7CiAKICAgICBpZiAo
YXV0byogZnJhbWUgPSBpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIuZnJhbWUoKSkgeworICAgICAg
ICBtYWluRnJhbWVDb250ZXh0ID0gZnJhbWUtPmlzTWFpbkZyYW1lKCk7CiAgICAgICAgIGN1cnJl
bnREb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpOwogCiAgICAgICAgIGlmIChpbml0aWF0aW5n
RG9jdW1lbnRMb2FkZXIuaXNMb2FkaW5nTWFpblJlc291cmNlKCkKQEAgLTE4Niw3ICsxODgsNyBA
QCBDb250ZW50UnVsZUxpc3RSZXN1bHRzIENvbnRlbnRFeHRlbnNpb25zQmFja2VuZDo6cHJvY2Vz
c0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKAogICAgICAgICAgICAgbWFpbkRvY3VtZW50VVJMID0g
bWFpbkRvY3VtZW50LT51cmwoKTsKICAgICB9CiAKLSAgICBSZXNvdXJjZUxvYWRJbmZvIHJlc291
cmNlTG9hZEluZm8gPSB7IHVybCwgbWFpbkRvY3VtZW50VVJMLCByZXNvdXJjZVR5cGUgfTsKKyAg
ICBSZXNvdXJjZUxvYWRJbmZvIHJlc291cmNlTG9hZEluZm8gPSB7IHVybCwgbWFpbkRvY3VtZW50
VVJMLCByZXNvdXJjZVR5cGUsIG1haW5GcmFtZUNvbnRleHQgfTsKICAgICBhdXRvIGFjdGlvbnMg
PSBhY3Rpb25zRm9yUmVzb3VyY2VMb2FkKHJlc291cmNlTG9hZEluZm8pOwogCiAgICAgQ29udGVu
dFJ1bGVMaXN0UmVzdWx0cyByZXN1bHRzOwpAQCAtMjY2LDcgKzI2OCw3IEBAIENvbnRlbnRSdWxl
TGlzdFJlc3VsdHMgQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kOjpwcm9jZXNzQ29udGVudFJ1bGVM
aXN0c0ZvckxvYWQoCiAKIENvbnRlbnRSdWxlTGlzdFJlc3VsdHMgQ29udGVudEV4dGVuc2lvbnNC
YWNrZW5kOjpwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvclBpbmdMb2FkKGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBVUkwmIG1haW5Eb2N1bWVudFVSTCkKIHsKLSAgICBSZXNvdXJjZUxvYWRJbmZvIHJl
c291cmNlTG9hZEluZm8gPSB7IHVybCwgbWFpbkRvY3VtZW50VVJMLCBSZXNvdXJjZVR5cGU6OlJh
dyB9OworICAgIFJlc291cmNlTG9hZEluZm8gcmVzb3VyY2VMb2FkSW5mbyA9IHsgdXJsLCBtYWlu
RG9jdW1lbnRVUkwsIHsgUmVzb3VyY2VUeXBlOjpQaW5nLCBSZXNvdXJjZVR5cGU6Ok90aGVyIH0g
fTsKICAgICBhdXRvIGFjdGlvbnMgPSBhY3Rpb25zRm9yUmVzb3VyY2VMb2FkKHJlc291cmNlTG9h
ZEluZm8pOwogCiAgICAgQ29udGVudFJ1bGVMaXN0UmVzdWx0cyByZXN1bHRzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvREZBQnl0ZWNvZGVJbnRlcnByZXRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUludGVy
cHJldGVyLmNwcAppbmRleCBmNTYzYzMyZjk2NDA3YzE3YTgyN2I1NmNlY2ExY2VmYWM3OWJjMWNh
Li5iZGMxMzlmYzlhYjMyNjNhN2E1ZjZhNWZjZWQ3YmFmZTVjOWI5YTk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUludGVycHJldGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUludGVy
cHJldGVyLmNwcApAQCAtMTEyLDEyICsxMTIsMTQgQEAgdm9pZCBERkFCeXRlY29kZUludGVycHJl
dGVyOjppbnRlcnByZXRUZXN0RmxhZ3NBbmRBcHBlbmRBY3Rpb24odWludDMyX3QmIHByb2dyYW0K
ICAgICB1aW50MTZfdCBmbGFnc1RvQ2hlY2sgPSBnZXRCaXRzPHVpbnQxNl90PihtX2J5dGVjb2Rl
LCBtX2J5dGVjb2RlTGVuZ3RoLCBwcm9ncmFtQ291bnRlciArIHNpemVvZihERkFCeXRlY29kZUlu
c3RydWN0aW9uKSk7CiAKICAgICB1aW50MTZfdCBsb2FkVHlwZUZsYWdzID0gZmxhZ3NUb0NoZWNr
ICYgTG9hZFR5cGVNYXNrOworICAgIHVpbnQxNl90IGxvYWRDb250ZXh0RmxhZ3MgPSBmbGFnc1Rv
Q2hlY2sgJiBMb2FkQ29udGV4dE1hc2s7CiAgICAgdWludDE2X3QgcmVzb3VyY2VUeXBlRmxhZ3Mg
PSBmbGFnc1RvQ2hlY2sgJiBSZXNvdXJjZVR5cGVNYXNrOwotICAgIAorCiAgICAgYm9vbCBsb2Fk
VHlwZU1hdGNoZXMgPSBsb2FkVHlwZUZsYWdzID8gKGxvYWRUeXBlRmxhZ3MgJiBmbGFncykgOiB0
cnVlOworICAgIGJvb2wgbG9hZENvbnRleHRNYXRjaGVzID0gbG9hZENvbnRleHRGbGFncyA/IChs
b2FkQ29udGV4dEZsYWdzICYgZmxhZ3MpIDogdHJ1ZTsKICAgICBib29sIHJlc291cmNlVHlwZU1h
dGNoZXMgPSByZXNvdXJjZVR5cGVGbGFncyA/IChyZXNvdXJjZVR5cGVGbGFncyAmIGZsYWdzKSA6
IHRydWU7CiAgICAgCi0gICAgaWYgKGxvYWRUeXBlTWF0Y2hlcyAmJiByZXNvdXJjZVR5cGVNYXRj
aGVzKSB7CisgICAgaWYgKGxvYWRUeXBlTWF0Y2hlcyAmJiBsb2FkQ29udGV4dE1hdGNoZXMgJiYg
cmVzb3VyY2VUeXBlTWF0Y2hlcykgewogICAgICAgICB1aW50NjRfdCBhY3Rpb25BbmRGbGFncyA9
IChpZkNvbmRpdGlvbiA/IElmQ29uZGl0aW9uRmxhZyA6IDApIHwgKHN0YXRpY19jYXN0PHVpbnQ2
NF90PihmbGFnc1RvQ2hlY2spIDw8IDMyKSB8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihnZXRCaXRz
PHVpbnQzMl90PihtX2J5dGVjb2RlLCBtX2J5dGVjb2RlTGVuZ3RoLCBwcm9ncmFtQ291bnRlciAr
IHNpemVvZihERkFCeXRlY29kZUluc3RydWN0aW9uKSArIHNpemVvZih1aW50MTZfdCkpKTsKICAg
ICAgICAgaWYgKCFtX3RvcFVSTEFjdGlvbnMgfHwgbWF0Y2hlc0NvbmRpdGlvbihhY3Rpb25BbmRG
bGFncywgKm1fdG9wVVJMQWN0aW9ucykpCiAgICAgICAgICAgICBhY3Rpb25zLmFkZChhY3Rpb25B
bmRGbGFncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAxMDk1MmU0
YzVmNjM2ZjgyNjliMjVlN2I0Y2UxODE4N2YxMWIxZWI3Li5kNzNmY2E1ODlmYzMyMzkzZjIwNjJm
Y2QyY2ZmOTVlNTlhMWNmYmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
QEAgLTMwODEsNyArMzA4MSw3IEBAIHVuc2lnbmVkIGxvbmcgRnJhbWVMb2FkZXI6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1CiAgICAgaWYgKGVy
cm9yLmlzTnVsbCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gbV9mcmFtZS5wYWdlKCkp
IHsKICAgICAgICAgICAgIGlmIChtX2RvY3VtZW50TG9hZGVyKSB7Ci0gICAgICAgICAgICAgICAg
YXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50
UnVsZUxpc3RzRm9yTG9hZCgqcGFnZSwgbmV3UmVxdWVzdC51cmwoKSwgQ29udGVudEV4dGVuc2lv
bnM6OlJlc291cmNlVHlwZTo6UmF3LCAqbV9kb2N1bWVudExvYWRlcik7CisgICAgICAgICAgICAg
ICAgYXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250
ZW50UnVsZUxpc3RzRm9yTG9hZCgqcGFnZSwgbmV3UmVxdWVzdC51cmwoKSwgQ29udGVudEV4dGVu
c2lvbnM6OlJlc291cmNlVHlwZTo6RmV0Y2gsICptX2RvY3VtZW50TG9hZGVyKTsKICAgICAgICAg
ICAgICAgICBib29sIGJsb2NrZWRMb2FkID0gcmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2FkOwog
ICAgICAgICAgICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjphcHBseVJlc3VsdHNUb1JlcXVlc3Qo
V1RGTW92ZShyZXN1bHRzKSwgcGFnZSwgbmV3UmVxdWVzdCk7CiAgICAgICAgICAgICAgICAgaWYg
KGJsb2NrZWRMb2FkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2Nh
cGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyLmNwcAppbmRleCBmNTQ3YWIyZGE0ZDY0NjdhYmU1Njg2YzBlZmZl
OTA0YTIxYWM3YWIxLi5lY2RkMTdhZTBiNjdlNDU3M2UwNzk1YjEyNDA2OTZkOTIxY2RiNTBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlci5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6Ok5l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyKEZyYW1lJiBmcmFtZSwgTmV0c2NhcGVQbHUKICAgICAs
IG1fY2xpZW50KG1ha2VXZWFrUHRyKGNsaWVudCkpCiB7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhU
RU5TSU9OUykKLSAgICBtX3Jlc291cmNlVHlwZSA9IHsgQ29udGVudEV4dGVuc2lvbnM6OlJlc291
cmNlVHlwZTo6UGx1Z0luU3RyZWFtIH07CisgICAgbV9yZXNvdXJjZVR5cGUgPSB7IENvbnRlbnRF
eHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6Ok90aGVyIH07CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1BpbmdMb2FkZXIuY3BwCmluZGV4IGZjY2FlN2RlMTI5N2JmMWNjYWUyNGE0ZmIwOTY5
YzFmYzNjZWMwZDcuLjM5NTJmYjNmYjhlOWJhMWQwYzhlNmNjMWIyNmM5YTFmMjFhYzlkYzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lk
IFBpbmdMb2FkZXI6OnNlbmRQaW5nKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiBwaW5nVVJMLCBj
b25zdCBVUkwmIGRlc3RpbmF0aQogICAgIHJlcXVlc3Quc2V0UmVxdWVzdGVyKFJlc291cmNlUmVx
dWVzdDo6UmVxdWVzdGVyOjpQaW5nKTsKIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMp
Ci0gICAgaWYgKHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChmcmFtZSwgcmVxdWVzdCwg
eyBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlOjpSYXcsIENvbnRlbnRFeHRlbnNpb25z
OjpSZXNvdXJjZVR5cGU6OlBpbmcgfSkpCisgICAgaWYgKHByb2Nlc3NDb250ZW50UnVsZUxpc3Rz
Rm9yTG9hZChmcmFtZSwgcmVxdWVzdCwgeyBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBl
OjpPdGhlciwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6UGluZyB9KSkKICAgICAg
ICAgcmV0dXJuOwogI2VuZGlmCiAKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIFBpbmdMb2FkZXI6
OnNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwg
UmVmPEZvcgogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QocmVwb3J0VVJMKTsKICNpZiBF
TkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAgIGlmIChwcm9jZXNzQ29udGVudFJ1bGVMaXN0
c0ZvckxvYWQoZnJhbWUsIHJlcXVlc3QsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6
OlJhdykpCisgICAgaWYgKHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChmcmFtZSwgcmVx
dWVzdCwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6T3RoZXIpKQogICAgICAgICBy
ZXR1cm47CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZEluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZEluZm8u
Y3BwCmluZGV4IDY5NTk0ZTg4MzBiMTZmNDkwYzllZmUyNDUyM2Q4MTZhNmU5ZTEzMGUuLmM4Yzc5
NWU2NWU5YWFkNWE4OWJjM2U3YmVkMDJhYjBmZjk2MmM0ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkSW5mby5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgT3B0aW9uU2V0PFJl
c291cmNlVHlwZT4gdG9SZXNvdXJjZVR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVz
b3VyY2VSZXF1ZXMKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpSYXdSZXNvdXJjZToK
ICAgICAgICAgaWYgKHJlcXVlc3RlciA9PSBSZXNvdXJjZVJlcXVlc3RCYXNlOjpSZXF1ZXN0ZXI6
OlhIUgogICAgICAgICAgICAgfHwgcmVxdWVzdGVyID09IFJlc291cmNlUmVxdWVzdEJhc2U6OlJl
cXVlc3Rlcjo6RmV0Y2gpCi0gICAgICAgICAgICByZXR1cm4ge3sgUmVzb3VyY2VUeXBlOjpSYXcs
IFJlc291cmNlVHlwZTo6RmV0Y2ggfX07CisgICAgICAgICAgICByZXR1cm4geyBSZXNvdXJjZVR5
cGU6OkZldGNoIH07CiAgICAgICAgIEZBTExUSFJPVUdIOwogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGU6OkJlYWNvbjoKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpQaW5nOgpA
QCAtNzQsNyArNzQsNyBAQCBPcHRpb25TZXQ8UmVzb3VyY2VUeXBlPiB0b1Jlc291cmNlVHlwZShD
YWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlcwogI2lmIEVOQUJMRShBUFBM
SUNBVElPTl9NQU5JRkVTVCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpBcHBsaWNh
dGlvbk1hbmlmZXN0OgogI2VuZGlmCi0gICAgICAgIHJldHVybiB7eyBSZXNvdXJjZVR5cGU6OlJh
dywgUmVzb3VyY2VUeXBlOjpPdGhlciB9fTsKKyAgICAgICAgcmV0dXJuIHsgUmVzb3VyY2VUeXBl
OjpPdGhlciB9OwogCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6VGV4dFRyYWNrUmVz
b3VyY2U6CiAgICAgICAgIHJldHVybiB7IFJlc291cmNlVHlwZTo6TWVkaWEgfTsKQEAgLTg0LDcg
Kzg0LDcgQEAgT3B0aW9uU2V0PFJlc291cmNlVHlwZT4gdG9SZXNvdXJjZVR5cGUoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXMKICAgICByZXR1cm4geyB9OwogfQogCi1P
cHRpb25hbDxPcHRpb25TZXQ8UmVzb3VyY2VUeXBlPj4gcmVhZFJlc291cmNlVHlwZShjb25zdCBT
dHJpbmcmIG5hbWUpCitPcHRpb25hbDxPcHRpb25TZXQ8UmVzb3VyY2VUeXBlPj4gcmVhZFJlc291
cmNlVHlwZShTdHJpbmdWaWV3IG5hbWUpCiB7CiAgICAgaWYgKG5hbWUgPT0gImRvY3VtZW50IikK
ICAgICAgICAgcmV0dXJuIHsgUmVzb3VyY2VUeXBlOjpEb2N1bWVudCB9OwpAQCAtOTcsNyArOTcs
NyBAQCBPcHRpb25hbDxPcHRpb25TZXQ8UmVzb3VyY2VUeXBlPj4gcmVhZFJlc291cmNlVHlwZShj
b25zdCBTdHJpbmcmIG5hbWUpCiAgICAgaWYgKG5hbWUgPT0gImZvbnQiKQogICAgICAgICByZXR1
cm4geyBSZXNvdXJjZVR5cGU6OkZvbnQgfTsKICAgICBpZiAobmFtZSA9PSAicmF3IikKLSAgICAg
ICAgcmV0dXJuIHsgUmVzb3VyY2VUeXBlOjpSYXcgfTsKKyAgICAgICAgcmV0dXJuIHt7IFJlc291
cmNlVHlwZTo6RmV0Y2gsIFJlc291cmNlVHlwZTo6V2ViU29ja2V0LCBSZXNvdXJjZVR5cGU6Ok90
aGVyIH19OwogICAgIGlmIChuYW1lID09ICJ3ZWJzb2NrZXQiKQogICAgICAgICByZXR1cm4geyBS
ZXNvdXJjZVR5cGU6OldlYlNvY2tldCB9OwogICAgIGlmIChuYW1lID09ICJmZXRjaCIpCkBAIC0x
MTUsNyArMTE1LDcgQEAgT3B0aW9uYWw8T3B0aW9uU2V0PFJlc291cmNlVHlwZT4+IHJlYWRSZXNv
dXJjZVR5cGUoY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9
CiAKLU9wdGlvbmFsPE9wdGlvblNldDxMb2FkVHlwZT4+IHJlYWRMb2FkVHlwZShjb25zdCBTdHJp
bmcmIG5hbWUpCitPcHRpb25hbDxPcHRpb25TZXQ8TG9hZFR5cGU+PiByZWFkTG9hZFR5cGUoU3Ry
aW5nVmlldyBuYW1lKQogewogICAgIGlmIChuYW1lID09ICJmaXJzdC1wYXJ0eSIpCiAgICAgICAg
IHJldHVybiB7IExvYWRUeXBlOjpGaXJzdFBhcnR5IH07CkBAIC0xMjQsNiArMTI0LDE1IEBAIE9w
dGlvbmFsPE9wdGlvblNldDxMb2FkVHlwZT4+IHJlYWRMb2FkVHlwZShjb25zdCBTdHJpbmcmIG5h
bWUpCiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAorT3B0aW9uYWw8T3B0aW9uU2V0PExv
YWRDb250ZXh0Pj4gcmVhZExvYWRDb250ZXh0KFN0cmluZ1ZpZXcgbmFtZSkKK3sKKyAgICBpZiAo
bmFtZSA9PSAibWFpbi1mcmFtZSIpCisgICAgICAgIHJldHVybiB7IExvYWRDb250ZXh0OjpNYWlu
RnJhbWUgfTsKKyAgICBpZiAobmFtZSA9PSAiaWZyYW1lIikKKyAgICAgICAgcmV0dXJuIHsgTG9h
ZENvbnRleHQ6OklGcmFtZSB9OworICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cit9CisKIGJvb2wg
UmVzb3VyY2VMb2FkSW5mbzo6aXNUaGlyZFBhcnR5KCkgY29uc3QKIHsKICAgICBSZWY8U2VjdXJp
dHlPcmlnaW4+IG1haW5Eb2N1bWVudFNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZShtYWluRG9jdW1lbnRVUkwpOwpAQCAtMTM4LDYgKzE0Nyw3IEBAIFJlc291cmNlRmxhZ3Mg
UmVzb3VyY2VMb2FkSW5mbzo6Z2V0UmVzb3VyY2VGbGFncygpIGNvbnN0CiAgICAgQVNTRVJUKCF0
eXBlLmlzRW1wdHkoKSk7CiAgICAgZmxhZ3MgfD0gdHlwZS50b1JhdygpOwogICAgIGZsYWdzIHw9
IGlzVGhpcmRQYXJ0eSgpID8gc3RhdGljX2Nhc3Q8UmVzb3VyY2VGbGFncz4oTG9hZFR5cGU6OlRo
aXJkUGFydHkpIDogc3RhdGljX2Nhc3Q8UmVzb3VyY2VGbGFncz4oTG9hZFR5cGU6OkZpcnN0UGFy
dHkpOworICAgIGZsYWdzIHw9IG1haW5GcmFtZUNvbnRleHQgPyBzdGF0aWNfY2FzdDxSZXNvdXJj
ZUZsYWdzPihMb2FkQ29udGV4dDo6TWFpbkZyYW1lKSA6IHN0YXRpY19jYXN0PFJlc291cmNlRmxh
Z3M+KExvYWRDb250ZXh0OjpJRnJhbWUpOwogICAgIHJldHVybiBmbGFnczsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZEluZm8uaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmgKaW5kZXggYTE3YmRiZDZhYjYzOGI3MWFi
N2IzMjFmYTJlN2Y1YmQxMTE4YjIyMS4uNTJiNTg3OWVjZDVmZThhNDllYTI0NzQ1Zjg2YWIyNDRi
NjE4Zjc2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZElu
Zm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5oCkBAIC00
MCwyNiArNDAsMzEgQEAgZW51bSBjbGFzcyBSZXNvdXJjZVR5cGUgOiB1aW50MTZfdCB7CiAgICAg
U3R5bGVTaGVldCA9IDB4MDAwNCwKICAgICBTY3JpcHQgPSAweDAwMDgsCiAgICAgRm9udCA9IDB4
MDAxMCwKLSAgICBSYXcgPSAweDAwMjAsIC8vIFRoaXMgYml0IGNhbiBiZSByZXVzZWQgbmV4dCB0
aW1lIHdlIGluY3JlbWVudCBDdXJyZW50Q29udGVudFJ1bGVMaXN0RmlsZVZlcnNpb24uIEl0IGlz
IGVxdWl2YWxlbnQgdG8gdXNpbmcgRmV0Y2ggfCBXZWJTb2NrZXQgfCBPdGhlci4KLSAgICBTVkdE
b2N1bWVudCA9IDB4MDA0MCwKLSAgICBNZWRpYSA9IDB4MDA4MCwKLSAgICBQbHVnSW5TdHJlYW0g
PSAweDAxMDAsCi0gICAgUG9wdXAgPSAweDAyMDAsCi0gICAgLy8gMHgwNDAwIGFuZCAweDA4MDAg
YXJlIHVzZWQgYnkgTG9hZFR5cGUuCi0gICAgUGluZyA9IDB4MTAwMCwKLSAgICBGZXRjaCA9IDB4
MjAwMCwKLSAgICBXZWJTb2NrZXQgPSAweDQwMDAsCi0gICAgT3RoZXIgPSAweDgwMDAsCisgICAg
U1ZHRG9jdW1lbnQgPSAweDAwMjAsCisgICAgTWVkaWEgPSAweDAwNDAsCisgICAgUG9wdXAgPSAw
eDAwODAsCisgICAgUGluZyA9IDB4MDEwMCwKKyAgICBGZXRjaCA9IDB4MDIwMCwKKyAgICBXZWJT
b2NrZXQgPSAweDA0MDAsCisgICAgT3RoZXIgPSAweDA4MDAsCiB9OwotY29uc3QgdWludDE2X3Qg
UmVzb3VyY2VUeXBlTWFzayA9IDB4RjNGRjsKK2NvbnN0IHVpbnQxNl90IFJlc291cmNlVHlwZU1h
c2sgPSAweDBGRkY7CiAKIGVudW0gY2xhc3MgTG9hZFR5cGUgOiB1aW50MTZfdCB7Ci0gICAgRmly
c3RQYXJ0eSA9IDB4MDQwMCwKLSAgICBUaGlyZFBhcnR5ID0gMHgwODAwLAorICAgIEZpcnN0UGFy
dHkgPSAweDEwMDAsCisgICAgVGhpcmRQYXJ0eSA9IDB4MjAwMCwKIH07Ci1jb25zdCB1aW50MTZf
dCBMb2FkVHlwZU1hc2sgPSAweDBDMDA7Citjb25zdCB1aW50MTZfdCBMb2FkVHlwZU1hc2sgPSAw
eDMwMDA7CisKK2VudW0gY2xhc3MgTG9hZENvbnRleHQgOiB1aW50MTZfdCB7CisgICAgTWFpbkZy
YW1lID0gMHg0MDAwLAorICAgIElGcmFtZSA9IDB4ODAwMCwKK307Citjb25zdCB1aW50MTZfdCBM
b2FkQ29udGV4dE1hc2sgPSAweEMwMDA7CiAKIHN0YXRpY19hc3NlcnQoIShSZXNvdXJjZVR5cGVN
YXNrICYgTG9hZFR5cGVNYXNrKSwgIlJlc291cmNlVHlwZU1hc2sgYW5kIExvYWRUeXBlTWFzayBz
aG91bGQgYmUgbXV0dWFsbHkgZXhjbHVzaXZlIGJlY2F1c2UgdGhleSBhcmUgc3RvcmVkIGluIHRo
ZSBzYW1lIHVpbnQxNl90Iik7CitzdGF0aWNfYXNzZXJ0KCEoUmVzb3VyY2VUeXBlTWFzayAmIExv
YWRDb250ZXh0TWFzayksICJSZXNvdXJjZVR5cGVNYXNrIGFuZCBMb2FkQ29udGV4dE1hc2sgc2hv
dWxkIGJlIG11dHVhbGx5IGV4Y2x1c2l2ZSBiZWNhdXNlIHRoZXkgYXJlIHN0b3JlZCBpbiB0aGUg
c2FtZSB1aW50MTZfdCIpOworc3RhdGljX2Fzc2VydCghKExvYWRDb250ZXh0TWFzayAmIExvYWRU
eXBlTWFzayksICJMb2FkQ29udGV4dE1hc2sgYW5kIExvYWRUeXBlTWFzayBzaG91bGQgYmUgbXV0
dWFsbHkgZXhjbHVzaXZlIGJlY2F1c2UgdGhleSBhcmUgc3RvcmVkIGluIHRoZSBzYW1lIHVpbnQx
Nl90Iik7CiAKIHR5cGVkZWYgdWludDE2X3QgUmVzb3VyY2VGbGFnczsKIApAQCAtNzQsMTMgKzc5
LDE1IEBAIGNvbnN0IHVpbnQ2NF90IEFjdGlvbkZsYWdNYXNrID0gMHgwMDAwRkZGRjAwMDAwMDAw
OwogY29uc3QgdWludDY0X3QgSWZDb25kaXRpb25GbGFnID0gMHgwMDAxMDAwMDAwMDAwMDAwOwog
CiBPcHRpb25TZXQ8UmVzb3VyY2VUeXBlPiB0b1Jlc291cmNlVHlwZShDYWNoZWRSZXNvdXJjZTo6
VHlwZSwgUmVzb3VyY2VSZXF1ZXN0QmFzZTo6UmVxdWVzdGVyKTsKLU9wdGlvbmFsPE9wdGlvblNl
dDxSZXNvdXJjZVR5cGU+PiByZWFkUmVzb3VyY2VUeXBlKGNvbnN0IFN0cmluZyYpOwotT3B0aW9u
YWw8T3B0aW9uU2V0PExvYWRUeXBlPj4gcmVhZExvYWRUeXBlKGNvbnN0IFN0cmluZyYpOworT3B0
aW9uYWw8T3B0aW9uU2V0PFJlc291cmNlVHlwZT4+IHJlYWRSZXNvdXJjZVR5cGUoU3RyaW5nVmll
dyk7CitPcHRpb25hbDxPcHRpb25TZXQ8TG9hZFR5cGU+PiByZWFkTG9hZFR5cGUoU3RyaW5nVmll
dyk7CitPcHRpb25hbDxPcHRpb25TZXQ8TG9hZENvbnRleHQ+PiByZWFkTG9hZENvbnRleHQoU3Ry
aW5nVmlldyk7CiAKIHN0cnVjdCBSZXNvdXJjZUxvYWRJbmZvIHsKICAgICBVUkwgcmVzb3VyY2VV
Ukw7CiAgICAgVVJMIG1haW5Eb2N1bWVudFVSTDsKICAgICBPcHRpb25TZXQ8UmVzb3VyY2VUeXBl
PiB0eXBlOworICAgIGJvb2wgbWFpbkZyYW1lQ29udGV4dCB7IGZhbHNlIH07CiAKICAgICBib29s
IGlzVGhpcmRQYXJ0eSgpIGNvbnN0OwogICAgIFJlc291cmNlRmxhZ3MgZ2V0UmVzb3VyY2VGbGFn
cygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2Ev
UmVhc29uU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9SZWFzb25TUEku
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0
U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlz
dFN0b3JlLmNwcAppbmRleCBmNDQ0YjM0NzRjMDkxNTkzZGU1MGM4ZjcxMThiYzljODNmMzg2ZTM5
Li45MzBiMTdmM2UxOTQ2ZmQ1ZWFhMmZjN2Q5NmFlNzNhMzBhMTE4NGMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5j
cHAKQEAgLTU3Niw2ICs1NzYsNyBAQCB2b2lkIENvbnRlbnRSdWxlTGlzdFN0b3JlOjpnZXRDb250
ZW50UnVsZUxpc3RTb3VyY2UoY29uc3QgV1RGOjpTdHJpbmcmIGlkZW50aWZpZQogICAgICAgICBz
d2l0Y2ggKGNvbnRlbnRSdWxlTGlzdC0+bWV0YURhdGEudmVyc2lvbikgewogICAgICAgICBjYXNl
IDk6CiAgICAgICAgIGNhc2UgMTA6CisgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgICBpZiAo
IWNvbnRlbnRSdWxlTGlzdC0+bWV0YURhdGEuc291cmNlU2l6ZSkgewogICAgICAgICAgICAgICAg
IGNvbXBsZXRlKHsgfSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuaAppbmRleCAw
Y2FlZTU2ZjhlMjIzNzc3YzlmYmIwN2YyNDFmNzc2MGQ2ZTY3NDBjLi5hNzcyNDQ0M2E0ODFlOTQy
NjQ2OTE4Mjc1NTViMGI1NmVmNTg1YzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuaApAQCAtNTcsNyArNTcsNyBAQCBw
dWJsaWM6CiAgICAgLy8gQWxzbyB1cGRhdGUgQ29udGVudFJ1bGVMaXN0U3RvcmU6OmdldENvbnRl
bnRSdWxlTGlzdFNvdXJjZSB0byBiZSBhYmxlIHRvIGZpbmQgdGhlIG9yaWdpbmFsIEpTT04KICAg
ICAvLyBzb3VyY2UgZnJvbSBvbGQgdmVyc2lvbnMuCiAgICAgLy8gVXBkYXRlIENvbnRlbnRSdWxl
TGlzdFN0b3JlOjpnZXRDb250ZW50UnVsZUxpc3RTb3VyY2Ugd2l0aCB0aGlzLgotICAgIHN0YXRp
YyBjb25zdGV4cHIgdWludDMyX3QgQ3VycmVudENvbnRlbnRSdWxlTGlzdEZpbGVWZXJzaW9uID0g
MTA7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBDdXJyZW50Q29udGVudFJ1bGVMaXN0
RmlsZVZlcnNpb24gPSAxMTsKIAogICAgIHN0YXRpYyBDb250ZW50UnVsZUxpc3RTdG9yZSYgZGVm
YXVsdFN0b3JlKGJvb2wgbGVnYWN5RmlsZW5hbWUpOwogICAgIHN0YXRpYyBSZWY8Q29udGVudFJ1
bGVMaXN0U3RvcmU+IHN0b3JlV2l0aFBhdGgoY29uc3QgV1RGOjpTdHJpbmcmIHN0b3JlUGF0aCwg
Ym9vbCBsZWdhY3lGaWxlbmFtZSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggNTk4MDM4ODc3YWY3NGNjN2IzZTVjYTdkYWUyOWE0N2Q2ZDYzYmIz
Ny4uY2U5ZGMzOWYyZGI0Yjk3YTBmYzRhMzc2NmE3ODI3NDMwZGI3NDI5ZSAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDIxLTAzLTI0ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgQWxsb3cgV0tDb250ZW50UnVsZUxpc3QgdG8gYmxvY2sgb25seSBpbiBmcmFtZXMg
b3Igb25seSBpbiBtYWluIGZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTkwMDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5z
aW9ucy5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9u
Lm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjEtMDMtMjIgIFJvYiBCdWlzICA8cmJ1aXNAaWdh
bGlhLmNvbT4KIAogICAgICAgICBbY3NzLWNvbnRhaW5dIFBhcnNlIENTUyBjb250YWluIHByb3Bl
cnR5CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVu
dEV4dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0NvbnRl
bnRFeHRlbnNpb25zLmNwcAppbmRleCBjMjdiZTg5NWYwYjc5ZjlmZmYyNzQyZjA1OTE2ZmY1NTYx
MjZiMjhkLi4xNmNhZDUyMTg0NzYzMjEyNjVhZWUxOGFiMDQ3ODk4MTRjYTQ2ZTMzIDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5z
aW9ucy5jcHAKQEAgLTExNjQsNyArMTE2NCw3IEBAIFRFU1RfRihDb250ZW50RXh0ZW5zaW9uVGVz
dCwgUmVzb3VyY2VUeXBlKQogICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJl
cXVlc3QoImh0dHA6Ly9ibG9ja19hbGxfdHlwZXMub3JnIiwgUmVzb3VyY2VUeXBlOjpTdHlsZVNo
ZWV0KSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0pOwogICAg
IHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly9ibG9ja19h
bGxfdHlwZXMub3JnIiwgUmVzb3VyY2VUeXBlOjpTY3JpcHQpLCB7IENvbnRlbnRFeHRlbnNpb25z
OjpBY3Rpb25UeXBlOjpCbG9ja0xvYWQgfSk7CiAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFp
bkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL2Jsb2NrX2FsbF90eXBlcy5vcmciLCBSZXNvdXJjZVR5
cGU6OkZvbnQpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpCbG9ja0xvYWQgfSk7
Ci0gICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL2Js
b2NrX2FsbF90eXBlcy5vcmciLCBSZXNvdXJjZVR5cGU6OlJhdyksIHsgQ29udGVudEV4dGVuc2lv
bnM6OkFjdGlvblR5cGU6OkJsb2NrTG9hZCB9KTsKKyAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBt
YWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vYmxvY2tfYWxsX3R5cGVzLm9yZyIsIFJlc291cmNl
VHlwZTo6T3RoZXIpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpCbG9ja0xvYWQg
fSk7CiAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDov
L2Jsb2NrX2FsbF90eXBlcy5vcmciLCBSZXNvdXJjZVR5cGU6OlNWR0RvY3VtZW50KSwgeyBDb250
ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0pOwogICAgIHRlc3RSZXF1ZXN0
KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly9ibG9ja19hbGxfdHlwZXMub3Jn
IiwgUmVzb3VyY2VUeXBlOjpNZWRpYSksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6
OkJsb2NrTG9hZCB9KTsKICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1
ZXN0KCJodHRwOi8vYmxvY2tfYWxsX3R5cGVzLm9yZyIsIFJlc291cmNlVHlwZTo6UG9wdXApLCB7
IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpCbG9ja0xvYWQgfSk7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvbnRlbnRSdWxlTGlzdE5v
dGlmaWNhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29u
dGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uLm1tCmluZGV4IDc5NDYzM2RhMzA0OWFlMzZlOGI1MzE1
MjYyMDc2MDI3Zjc0YTg5ZmUuLjhhOWUzYzExNmY4YWJkMmMxYzhiMzE3Mzc4NDI1YWZmYjUzMjJk
YWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQ29u
dGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvQ29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uLm1tCkBAIC0zMDIsNiAr
MzAyLDc3IEBAIFRFU1QoQ29udGVudFJ1bGVMaXN0LCBTdXBwb3J0c1JlZ2V4KQogICAgICAgICBF
WFBFQ1RfRkFMU0UoW1dLQ29udGVudFJ1bGVMaXN0IF9zdXBwb3J0c1JlZ3VsYXJFeHByZXNzaW9u
OnJlZ2V4XSk7CiB9CiAKK1RFU1QoQ29udGVudFJ1bGVMaXN0LCBNYWluRnJhbWVJRnJhbWUpCit7
CisgICAgYXV0byBoYW5kbGVyID0gW1tUZXN0VVJMU2NoZW1lSGFuZGxlciBuZXddIGF1dG9yZWxl
YXNlXTsKKyAgICBfX2Jsb2NrIGJvb2wgbG9hZGVkSUZyYW1lID0gZmFsc2U7CisgICAgaGFuZGxl
ci5zdGFydFVSTFNjaGVtZVRhc2tIYW5kbGVyID0gXihXS1dlYlZpZXcgKiwgaWQ8V0tVUkxTY2hl
bWVUYXNrPiB0YXNrKSB7CisgICAgICAgIGF1dG8gcmVzcG9uZCA9IFt0YXNrXSAoY29uc3QgY2hh
ciogaHRtbCkgeworICAgICAgICAgICAgTlNVUkxSZXNwb25zZSAqcmVzcG9uc2UgPSBbW1tOU1VS
TFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDp0YXNrLnJlcXVlc3QuVVJMIE1JTUVUeXBlOkAi
dGV4dC9odG1sIiBleHBlY3RlZENvbnRlbnRMZW5ndGg6c3RybGVuKGh0bWwpIHRleHRFbmNvZGlu
Z05hbWU6bmlsXSBhdXRvcmVsZWFzZV07CisgICAgICAgICAgICBbdGFzayBkaWRSZWNlaXZlUmVz
cG9uc2U6cmVzcG9uc2VdOworICAgICAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZURhdGE6W05TRGF0
YSBkYXRhV2l0aEJ5dGVzOmh0bWwgbGVuZ3RoOnN0cmxlbihodG1sKV1dOworICAgICAgICAgICAg
W3Rhc2sgZGlkRmluaXNoXTsKKyAgICAgICAgfTsKKyAgICAgICAgTlNTdHJpbmcgKnBhdGggPSB0
YXNrLnJlcXVlc3QuVVJMLnBhdGg7CisgICAgICAgIGlmIChbcGF0aCBpc0VxdWFsVG9TdHJpbmc6
QCIvbWFpbi5odG1sIl0pCisgICAgICAgICAgICByZXR1cm4gcmVzcG9uZCgiPGlmcmFtZSBzcmM9
J2ZyYW1lLmh0bWwnPjwvaWZyYW1lPiIpOworICAgICAgICBpZiAoW3BhdGggaXNFcXVhbFRvU3Ry
aW5nOkAiL2ZyYW1lLmh0bWwiXSkgeworICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKGxvYWRlZElG
cmFtZSk7CisgICAgICAgICAgICBsb2FkZWRJRnJhbWUgPSB0cnVlOworICAgICAgICAgICAgcmV0
dXJuIHJlc3BvbmQoImhpIik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFtwYXRoIGlzRXF1YWxU
b1N0cmluZzpAIi9mZXRjaF9tYWluLmh0bWwiXSkgeworICAgICAgICAgICAgcmV0dXJuIHJlc3Bv
bmQoIjxzY3JpcHQ+IgorICAgICAgICAgICAgICAgICJmdW5jdGlvbiBhZGRpZnJhbWUoKSB7IHZh
ciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpZnJhbWUnKTsgaWZyYW1lLnNyYyA9
ICdmZXRjaF9pZnJhbWUuaHRtbCc7IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsg
fTsiCisgICAgICAgICAgICAgICAgImZ1bmN0aW9uIHRlc3RmZXRjaCgpIHsgZmV0Y2goJy9mZXRj
aGVkLnR4dCcpLnRoZW4oKCk9PnthbGVydCgnbWFpbiBmcmFtZSBmZXRjaGVkIHN1Y2Nlc3NmdWxs
eScpO2FkZGlmcmFtZSgpfSkuY2F0Y2goKCk9PnthbGVydCgnbWFpbiBmcmFtZSBmZXRjaCBmYWls
ZWQnKTthZGRpZnJhbWUoKTt9KSB9IgorICAgICAgICAgICAgICAgICI8L3NjcmlwdD48Ym9keSBv
bmxvYWQ9J3Rlc3RmZXRjaCgpJy8+Iik7CisgICAgICAgIH0KKyAgICAgICAgaWYgKFtwYXRoIGlz
RXF1YWxUb1N0cmluZzpAIi9mZXRjaGVkLnR4dCJdKQorICAgICAgICAgICAgcmV0dXJuIHJlc3Bv
bmQoImhpIik7CisgICAgICAgIGlmIChbcGF0aCBpc0VxdWFsVG9TdHJpbmc6QCIvZmV0Y2hfaWZy
YW1lLmh0bWwiXSkgeworICAgICAgICAgICAgcmV0dXJuIHJlc3BvbmQoIjxzY3JpcHQ+IgorICAg
ICAgICAgICAgICAgICJmdW5jdGlvbiB0ZXN0ZmV0Y2goKSB7IGZldGNoKCcvZmV0Y2hlZC50eHQn
KS50aGVuKCgpPT57YWxlcnQoJ2lmcmFtZSBmZXRjaGVkIHN1Y2Nlc3NmdWxseScpfSkuY2F0Y2go
KCk9PnthbGVydCgnaWZyYW1lIGZldGNoIGZhaWxlZCcpO30pIH0iCisgICAgICAgICAgICAgICAg
Ijwvc2NyaXB0Pjxib2R5IG9ubG9hZD0ndGVzdGZldGNoKCknLz4iKTsKKyAgICAgICAgfQorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9OworICAgIGF1dG8gY29uZmlndXJhdGlv
biA9IFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddIGF1dG9yZWxlYXNlXTsKKyAgICBbY29u
ZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIgZm9yVVJMU2NoZW1lOkAidGVz
dCJdOworICAgIGNvbmZpZ3VyYXRpb24ud2Vic2l0ZURhdGFTdG9yZSA9IFtXS1dlYnNpdGVEYXRh
U3RvcmUgbm9uUGVyc2lzdGVudERhdGFTdG9yZV07CisgICAgYXV0byB3ZWJWaWV3ID0gW1tbV0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdFplcm8gY29uZmlndXJhdGlvbjpjb25m
aWd1cmF0aW9uXSBhdXRvcmVsZWFzZV07CisgICAgV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKnVz
ZXJDb250ZW50Q29udHJvbGxlciA9IHdlYlZpZXcuY29uZmlndXJhdGlvbi51c2VyQ29udGVudENv
bnRyb2xsZXI7CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVl
c3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDovLy9tYWluLmh0bWwiXV1dOwor
ICAgIFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKyAgICBFWFBF
Q1RfVFJVRShsb2FkZWRJRnJhbWUpOworCisgICAgW3VzZXJDb250ZW50Q29udHJvbGxlciBhZGRD
b250ZW50UnVsZUxpc3Q6bWFrZUNvbnRlbnRSdWxlTGlzdChAIlt7XCJhY3Rpb25cIjp7XCJ0eXBl
XCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJ0ZXN0XCIsXCJsb2Fk
LWNvbnRleHRcIjpbXCJpZnJhbWVcIl19fV0iKS5nZXQoKV07CisgICAgbG9hZGVkSUZyYW1lID0g
ZmFsc2U7CisgICAgW3dlYlZpZXcgcmVsb2FkXTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9y
RGlkRmluaXNoTmF2aWdhdGlvbl07CisgICAgRVhQRUNUX0ZBTFNFKGxvYWRlZElGcmFtZSk7Cisg
ICAgCisgICAgW3VzZXJDb250ZW50Q29udHJvbGxlciByZW1vdmVBbGxDb250ZW50UnVsZUxpc3Rz
XTsKKyAgICAKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDovLy9mZXRjaF9tYWluLmh0bWwiXV1d
OworICAgIEVYUEVDVF9XS19TVFJFUShbd2ViVmlldyBfdGVzdF93YWl0Rm9yQWxlcnRdLCAibWFp
biBmcmFtZSBmZXRjaGVkIHN1Y2Nlc3NmdWxseSIpOworICAgIEVYUEVDVF9XS19TVFJFUShbd2Vi
VmlldyBfdGVzdF93YWl0Rm9yQWxlcnRdLCAiaWZyYW1lIGZldGNoZWQgc3VjY2Vzc2Z1bGx5Iik7
CisKKyAgICBhdXRvIGxpc3RXaXRoTG9hZENvbnRleHQgPSBbXSAoY29uc3QgY2hhciogdHlwZSkg
eworICAgICAgICByZXR1cm4gbWFrZUNvbnRlbnRSdWxlTGlzdChbTlNTdHJpbmcgc3RyaW5nV2l0
aEZvcm1hdDpAIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7
XCJ1cmwtZmlsdGVyXCI6XCJ0ZXN0XCIsXCJsb2FkLWNvbnRleHRcIjpbXCIlc1wiXSxcInJlc291
cmNlLXR5cGVcIjpbXCJmZXRjaFwiXX19XSIsIHR5cGVdKTsKKyAgICB9OworICAgIFt1c2VyQ29u
dGVudENvbnRyb2xsZXIgYWRkQ29udGVudFJ1bGVMaXN0Omxpc3RXaXRoTG9hZENvbnRleHQoImlm
cmFtZSIpLmdldCgpXTsKKyAgICBbd2ViVmlldyByZWxvYWRdOworICAgIEVYUEVDVF9XS19TVFJF
UShbd2ViVmlldyBfdGVzdF93YWl0Rm9yQWxlcnRdLCAibWFpbiBmcmFtZSBmZXRjaGVkIHN1Y2Nl
c3NmdWxseSIpOworICAgIEVYUEVDVF9XS19TVFJFUShbd2ViVmlldyBfdGVzdF93YWl0Rm9yQWxl
cnRdLCAiaWZyYW1lIGZldGNoIGZhaWxlZCIpOworCisgICAgW3VzZXJDb250ZW50Q29udHJvbGxl
ciByZW1vdmVBbGxDb250ZW50UnVsZUxpc3RzXTsKKyAgICBbdXNlckNvbnRlbnRDb250cm9sbGVy
IGFkZENvbnRlbnRSdWxlTGlzdDpsaXN0V2l0aExvYWRDb250ZXh0KCJtYWluLWZyYW1lIikuZ2V0
KCldOworICAgIFt3ZWJWaWV3IHJlbG9hZF07CisgICAgRVhQRUNUX1dLX1NUUkVRKFt3ZWJWaWV3
IF90ZXN0X3dhaXRGb3JBbGVydF0sICJtYWluIGZyYW1lIGZldGNoIGZhaWxlZCIpOworICAgIEVY
UEVDVF9XS19TVFJFUShbd2ViVmlldyBfdGVzdF93YWl0Rm9yQWxlcnRdLCAiaWZyYW1lIGZldGNo
ZWQgc3VjY2Vzc2Z1bGx5Iik7Cit9CisKICNpZiBIQVZFKFNTTCkKIAogVEVTVChXZWJLaXQsIFJl
ZGlyZWN0VG9QbGFpbnRleHRIVFRQU1VwZ3JhZGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424204</attachid>
            <date>2021-03-24 17:27:08 -0700</date>
            <delta_ts>2021-03-25 20:40:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219001-20210324172707.patch</filename>
            <type>text/plain</type>
            <size>28512</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjM1MGQ1YTlkNjgwNzkw
MDUyMGQ2NzA3N2Q2MDI5ZjNhY2I3YjNmNy4uNjgxZWRmODQ2M2JkYjkxODMyMDU3MDI3MGFkYmZl
MDcxZTFmMzU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIxLTAzLTI0ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWxsb3cg
V0tDb250ZW50UnVsZUxpc3QgdG8gYmxvY2sgb25seSBpbiBmcmFtZXMgb3Igb25seSBpbiBtYWlu
IGZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTkwMDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzgyMDQ1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWRkcyBsb2FkLWNvbnRleHQg
dG8gdGhlIHRyaWdnZXIsIHdoaWNoIGNhbiBoYXZlIGFuIGFycmF5IGNvbnRhaW5pbmcgbWFpbi1m
cmFtZSBvciBpZnJhbWUuCisgICAgICAgIFRoaXMgbWFrZXMgdGhlIHRyaWdnZXIgb25seSBoYXBw
ZW4gaW4gc3VjaCBsb2FkaW5nIGNvbnRleHRzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2Nr
ZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjp2YWxpZGF0ZVVSTCk6CisgICAgICAgICogY29udGVu
dGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250
ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbjo6cG9wdWxhdGVDb25kaXRpb25DYWNoZUlm
TmVlZGVkKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFy
c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpnZXRUeXBlRmxh
Z3MpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OmxvYWRUcmlnZ2VyKToK
KyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25z
QmFja2VuZDo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ6OnByb2Nlc3ND
b250ZW50UnVsZUxpc3RzRm9yUGluZ0xvYWQpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25z
L0RGQUJ5dGVjb2RlSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4
dGVuc2lvbnM6OkRGQUJ5dGVjb2RlSW50ZXJwcmV0ZXI6OmludGVycHJldFRlc3RGbGFnc0FuZEFw
cGVuZEFjdGlvbik6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAg
ICAgKiBsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9h
ZGVyKToKKyAgICAgICAgKiBsb2FkZXIvUGluZ0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQaW5nTG9hZGVyOjpzZW5kUGluZyk6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpz
ZW5kVmlvbGF0aW9uUmVwb3J0KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6dG9SZXNvdXJjZVR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OnJlYWRSZXNvdXJjZVR5cGUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OnJlYWRMb2FkVHlwZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6cmVhZExvYWRDb250ZXh0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZUxvYWRJbmZvOjpnZXRS
ZXNvdXJjZUZsYWdzIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5o
OgorCiAyMDIxLTAzLTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgog
CiAgICAgICAgIFtpT1NdIENvbXBvc2l0aW9uIHRleHQgaXMgbm90IGluaXRpYWxseSBoaWdobGln
aHRlZCB3aGVuIHR5cGluZyBpbiB0ZXh0IGZpZWxkcyB1c2luZyBQaW55aW4ga2V5Ym9hcmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggNmFiZjZmMTk3OTRmMjQwN2E3ZDg4Nzg4ZGY0YTEyYWVmZDJjN2I4Yy4uNDBiZDQ4
OTY3OGM0N2NjZjhhOWQxMTY2Yjg3MzUxN2EzMTExNzNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAyMS0wMy0yNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgorCisgICAgICAgIEFsbG93IFdLQ29udGVudFJ1bGVMaXN0IHRvIGJsb2NrIG9ubHkgaW4g
ZnJhbWVzIG9yIG9ubHkgaW4gbWFpbiBmcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MDAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvQ29jb2EvUmVhc29uU1BJLmg6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuY3Bw
OgorICAgICAgICAoQVBJOjpDb250ZW50UnVsZUxpc3RTdG9yZTo6Z2V0Q29udGVudFJ1bGVMaXN0
U291cmNlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3Jl
Lmg6CisKIDIwMjEtMDMtMjIgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5j
b20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBBU1NFUlRJT04gRkFJTEVEOiBpc01haW5UaHJlYWQo
KSBpbiBHUFUgcHJvY2VzcyBmb3Igc29tZSBjYW52YXMvcGhpbGlwL3Rlc3RzIHRlc3RzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBjMTE1YjQ1YjdhNzU4NGVmZDk3ODZmNDMx
NzkwOWNhMzdmOTdmNTBkLi40Y2NhMDYyYzA1MDdkN2FmYzBlMDk5ZTQzMDgwNGU4YjkzMjU1ZWQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgT3B0
aW9uYWw8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlZhbGlkYXRlZFVSTD4gVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OnYKICAgICAgICAgICAgIHJldHVybiB7IH07CiAjaWYgRU5BQkxF
KENPTlRFTlRfRVhURU5TSU9OUykKICAgICAgICAgaWYgKGF1dG8qIGRvY3VtZW50TG9hZGVyID0g
ZG9jdW1lbnQubG9hZGVyKCkpIHsKLSAgICAgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVz
ZXJDb250ZW50UHJvdmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoKnBhZ2Us
IHZhbGlkYXRlZFVSTC51cmwsIHsgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6UmF3
LCBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlOjpXZWJTb2NrZXQgfSwgKmRvY3VtZW50
TG9hZGVyKTsKKyAgICAgICAgICAgIGF1dG8gcmVzdWx0cyA9IHBhZ2UtPnVzZXJDb250ZW50UHJv
dmlkZXIoKS5wcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoKnBhZ2UsIHZhbGlkYXRlZFVS
TC51cmwsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OldlYlNvY2tldCwgKmRvY3Vt
ZW50TG9hZGVyKTsKICAgICAgICAgICAgIGlmIChyZXN1bHRzLnN1bW1hcnkuYmxvY2tlZExvYWQp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgICAgIGlmIChyZXN1bHRzLnN1
bW1hcnkubWFkZUhUVFBTKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRFeHRlbnNpb24uY3BwCmluZGV4IDJiODBhMmYxMDMzOTY5ODdiMzM3OTg4
ZmFiYTQ1YzUxY2I4MTkwYmQuLjY1YmRjMWQ5ZDBhY2JiZTFlM2MzNmI0ZGNiMWYxNjlkMDU4MzNh
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRF
eHRlbnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRl
bnRFeHRlbnNpb24uY3BwCkBAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBDb250ZW50RXh0ZW5zaW9u
Ojpwb3B1bGF0ZUNvbmRpdGlvbkNhY2hlSWZOZWVkZWQoY29uc3QgVVJMJiB0b3BVUkwpCiB7CiAg
ICAgaWYgKG1fY2FjaGVkVG9wVVJMICE9IHRvcFVSTCkgewogICAgICAgICBERkFCeXRlY29kZUlu
dGVycHJldGVyIGludGVycHJldGVyKG1fY29tcGlsZWRFeHRlbnNpb24tPnRvcFVSTEZpbHRlcnNC
eXRlY29kZSgpLCBtX2NvbXBpbGVkRXh0ZW5zaW9uLT50b3BVUkxGaWx0ZXJzQnl0ZWNvZGVMZW5n
dGgoKSk7Ci0gICAgICAgIGNvbnN0IHVpbnQxNl90IGFsbExvYWRUeXBlc0FuZFJlc291cmNlVHlw
ZXMgPSBMb2FkVHlwZU1hc2sgfCBSZXNvdXJjZVR5cGVNYXNrOworICAgICAgICBjb25zdGV4cHIg
dWludDE2X3QgYWxsTG9hZFR5cGVzQW5kUmVzb3VyY2VUeXBlcyA9IExvYWRUeXBlTWFzayB8IFJl
c291cmNlVHlwZU1hc2sgfCBMb2FkQ29udGV4dE1hc2s7CiAgICAgICAgIFN0cmluZyBzdHJpbmcg
PSBtX2NvbXBpbGVkRXh0ZW5zaW9uLT5jb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW4oKSA/IHRv
cFVSTC5ob3N0KCkudG9TdHJpbmcoKSA6IHRvcFVSTC5zdHJpbmcoKTsKICAgICAgICAgYXV0byB0
b3BVUkxBY3Rpb25zID0gaW50ZXJwcmV0ZXIuaW50ZXJwcmV0KHN0cmluZy51dGY4KCksIGFsbExv
YWRUeXBlc0FuZFJlc291cmNlVHlwZXMpOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAK
aW5kZXggYjdjNmU1YzU5OTIxZWYzMDcyNWFlNjVmYmFlZDQwOWM4YWE2NmRkNi4uODMzYmFjMzNk
MmVmYTU4M2RhYmI0NWQzM2JkZWFlNGY0YTUwZGQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAK
QEAgLTk1LDcgKzk1LDcgQEAgc3RhdGljIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBzdGQ6OmVy
cm9yX2NvZGU+IGdldERvbWFpbkxpc3QoSlNHbG9iYWxPYmplY3QmIGwKIH0KIAogdGVtcGxhdGU8
dHlwZW5hbWUgVD4KLXN0YXRpYyBzdGQ6OmVycm9yX2NvZGUgZ2V0VHlwZUZsYWdzKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBjb25zdCBKU1ZhbHVlJiB0eXBlVmFsdWUsIFJl
c291cmNlRmxhZ3MmIGZsYWdzLCBPcHRpb25hbDxPcHRpb25TZXQ8VD4+ICgqc3RyaW5nVG9UeXBl
KShjb25zdCBTdHJpbmcmKSkKK3N0YXRpYyBzdGQ6OmVycm9yX2NvZGUgZ2V0VHlwZUZsYWdzKEpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBjb25zdCBKU1ZhbHVlJiB0eXBlVmFs
dWUsIFJlc291cmNlRmxhZ3MmIGZsYWdzLCBPcHRpb25hbDxPcHRpb25TZXQ8VD4+ICgqc3RyaW5n
VG9UeXBlKShTdHJpbmdWaWV3KSkKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0
LnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwpAQCAtMTE3
LDcgKzExNyw3IEBAIHN0YXRpYyBzdGQ6OmVycm9yX2NvZGUgZ2V0VHlwZUZsYWdzKEpTR2xvYmFs
T2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBjb25zdCBKCiAgICAgICAgICAgICByZXR1cm4g
Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZE9iamVjdEluVHJpZ2dlckZsYWdzQXJy
YXk7CiAgICAgICAgIAogICAgICAgICBTdHJpbmcgbmFtZSA9IHZhbHVlLnRvV1RGU3RyaW5nKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0KTsKLSAgICAgICAgYXV0byB0eXBlID0gc3RyaW5nVG9UeXBlKG5h
bWUpOworICAgICAgICBhdXRvIHR5cGUgPSBzdHJpbmdUb1R5cGUoU3RyaW5nVmlldyhuYW1lKSk7
CiAgICAgICAgIGlmICghdHlwZSkKICAgICAgICAgICAgIHJldHVybiBDb250ZW50RXh0ZW5zaW9u
RXJyb3I6OkpTT05JbnZhbGlkU3RyaW5nSW5UcmlnZ2VyRmxhZ3NBcnJheTsKIApAQCAtMTcxLDYg
KzE3MSwxNCBAQCBzdGF0aWMgRXhwZWN0ZWQ8VHJpZ2dlciwgc3RkOjplcnJvcl9jb2RlPiBsb2Fk
VHJpZ2dlcihKU0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsbwogICAgIH0gZWxzZSBpZiAoIWxvYWRU
eXBlVmFsdWUuaXNVbmRlZmluZWQoKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENv
bnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7CiAKKyAg
ICBjb25zdCBKU1ZhbHVlIGxvYWRDb250ZXh0VmFsdWUgPSB0cmlnZ2VyT2JqZWN0LmdldCgmbGV4
aWNhbEdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImxvYWQtY29udGV4
dCIpKTsKKyAgICBpZiAoIXNjb3BlLmV4Y2VwdGlvbigpICYmIGxvYWRDb250ZXh0VmFsdWUuaXNP
YmplY3QoKSkgeworICAgICAgICBhdXRvIHR5cGVGbGFnc0Vycm9yID0gZ2V0VHlwZUZsYWdzKGxl
eGljYWxHbG9iYWxPYmplY3QsIGxvYWRDb250ZXh0VmFsdWUsIHRyaWdnZXIuZmxhZ3MsIHJlYWRM
b2FkQ29udGV4dCk7CisgICAgICAgIGlmICh0eXBlRmxhZ3NFcnJvcikKKyAgICAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZCh0eXBlRmxhZ3NFcnJvcik7CisgICAgfSBlbHNlIGlmICghbG9h
ZENvbnRleHRWYWx1ZS5pc1VuZGVmaW5lZCgpKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsK
KwogICAgIGNvbnN0IEpTVmFsdWUgaWZEb21haW5WYWx1ZSA9IHRyaWdnZXJPYmplY3QuZ2V0KCZs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHZtLCAiaWYtZG9tYWlu
IikpOwogICAgIGlmICghc2NvcGUuZXhjZXB0aW9uKCkgJiYgaWZEb21haW5WYWx1ZS5pc09iamVj
dCgpKSB7CiAgICAgICAgIGF1dG8gaWZEb21haW4gPSBnZXREb21haW5MaXN0KGxleGljYWxHbG9i
YWxPYmplY3QsIGFzT2JqZWN0KGlmRG9tYWluVmFsdWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQu
Y3BwCmluZGV4IDk3YWQ4ZTcwMDYzZmNmMDFmNjQwMjEwZjk0NGQxYzAwN2Q0Y2RlYWYuLmZjZDg3
NDUwMDY2MWRhMzc5MjA2ZmY5OTMxZGY1NmJlMzI1MzlhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFja2VuZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNr
ZW5kLmNwcApAQCAtMTc0LDggKzE3NCwxMCBAQCBDb250ZW50UnVsZUxpc3RSZXN1bHRzIENvbnRl
bnRFeHRlbnNpb25zQmFja2VuZDo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKAogewog
ICAgIERvY3VtZW50KiBjdXJyZW50RG9jdW1lbnQgPSBudWxscHRyOwogICAgIFVSTCBtYWluRG9j
dW1lbnRVUkw7CisgICAgYm9vbCBtYWluRnJhbWVDb250ZXh0ID0gZmFsc2U7CiAKICAgICBpZiAo
YXV0byogZnJhbWUgPSBpbml0aWF0aW5nRG9jdW1lbnRMb2FkZXIuZnJhbWUoKSkgeworICAgICAg
ICBtYWluRnJhbWVDb250ZXh0ID0gZnJhbWUtPmlzTWFpbkZyYW1lKCk7CiAgICAgICAgIGN1cnJl
bnREb2N1bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpOwogCiAgICAgICAgIGlmIChpbml0aWF0aW5n
RG9jdW1lbnRMb2FkZXIuaXNMb2FkaW5nTWFpblJlc291cmNlKCkKQEAgLTE4Niw3ICsxODgsNyBA
QCBDb250ZW50UnVsZUxpc3RSZXN1bHRzIENvbnRlbnRFeHRlbnNpb25zQmFja2VuZDo6cHJvY2Vz
c0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKAogICAgICAgICAgICAgbWFpbkRvY3VtZW50VVJMID0g
bWFpbkRvY3VtZW50LT51cmwoKTsKICAgICB9CiAKLSAgICBSZXNvdXJjZUxvYWRJbmZvIHJlc291
cmNlTG9hZEluZm8gPSB7IHVybCwgbWFpbkRvY3VtZW50VVJMLCByZXNvdXJjZVR5cGUgfTsKKyAg
ICBSZXNvdXJjZUxvYWRJbmZvIHJlc291cmNlTG9hZEluZm8gPSB7IHVybCwgbWFpbkRvY3VtZW50
VVJMLCByZXNvdXJjZVR5cGUsIG1haW5GcmFtZUNvbnRleHQgfTsKICAgICBhdXRvIGFjdGlvbnMg
PSBhY3Rpb25zRm9yUmVzb3VyY2VMb2FkKHJlc291cmNlTG9hZEluZm8pOwogCiAgICAgQ29udGVu
dFJ1bGVMaXN0UmVzdWx0cyByZXN1bHRzOwpAQCAtMjY2LDcgKzI2OCw3IEBAIENvbnRlbnRSdWxl
TGlzdFJlc3VsdHMgQ29udGVudEV4dGVuc2lvbnNCYWNrZW5kOjpwcm9jZXNzQ29udGVudFJ1bGVM
aXN0c0ZvckxvYWQoCiAKIENvbnRlbnRSdWxlTGlzdFJlc3VsdHMgQ29udGVudEV4dGVuc2lvbnNC
YWNrZW5kOjpwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvclBpbmdMb2FkKGNvbnN0IFVSTCYgdXJs
LCBjb25zdCBVUkwmIG1haW5Eb2N1bWVudFVSTCkKIHsKLSAgICBSZXNvdXJjZUxvYWRJbmZvIHJl
c291cmNlTG9hZEluZm8gPSB7IHVybCwgbWFpbkRvY3VtZW50VVJMLCBSZXNvdXJjZVR5cGU6OlJh
dyB9OworICAgIFJlc291cmNlTG9hZEluZm8gcmVzb3VyY2VMb2FkSW5mbyA9IHsgdXJsLCBtYWlu
RG9jdW1lbnRVUkwsIHsgUmVzb3VyY2VUeXBlOjpQaW5nLCBSZXNvdXJjZVR5cGU6Ok90aGVyIH0g
fTsKICAgICBhdXRvIGFjdGlvbnMgPSBhY3Rpb25zRm9yUmVzb3VyY2VMb2FkKHJlc291cmNlTG9h
ZEluZm8pOwogCiAgICAgQ29udGVudFJ1bGVMaXN0UmVzdWx0cyByZXN1bHRzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvREZBQnl0ZWNvZGVJbnRlcnByZXRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUludGVy
cHJldGVyLmNwcAppbmRleCBmNTYzYzMyZjk2NDA3YzE3YTgyN2I1NmNlY2ExY2VmYWM3OWJjMWNh
Li5iZGMxMzlmYzlhYjMyNjNhN2E1ZjZhNWZjZWQ3YmFmZTVjOWI5YTk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUludGVycHJldGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUludGVy
cHJldGVyLmNwcApAQCAtMTEyLDEyICsxMTIsMTQgQEAgdm9pZCBERkFCeXRlY29kZUludGVycHJl
dGVyOjppbnRlcnByZXRUZXN0RmxhZ3NBbmRBcHBlbmRBY3Rpb24odWludDMyX3QmIHByb2dyYW0K
ICAgICB1aW50MTZfdCBmbGFnc1RvQ2hlY2sgPSBnZXRCaXRzPHVpbnQxNl90PihtX2J5dGVjb2Rl
LCBtX2J5dGVjb2RlTGVuZ3RoLCBwcm9ncmFtQ291bnRlciArIHNpemVvZihERkFCeXRlY29kZUlu
c3RydWN0aW9uKSk7CiAKICAgICB1aW50MTZfdCBsb2FkVHlwZUZsYWdzID0gZmxhZ3NUb0NoZWNr
ICYgTG9hZFR5cGVNYXNrOworICAgIHVpbnQxNl90IGxvYWRDb250ZXh0RmxhZ3MgPSBmbGFnc1Rv
Q2hlY2sgJiBMb2FkQ29udGV4dE1hc2s7CiAgICAgdWludDE2X3QgcmVzb3VyY2VUeXBlRmxhZ3Mg
PSBmbGFnc1RvQ2hlY2sgJiBSZXNvdXJjZVR5cGVNYXNrOwotICAgIAorCiAgICAgYm9vbCBsb2Fk
VHlwZU1hdGNoZXMgPSBsb2FkVHlwZUZsYWdzID8gKGxvYWRUeXBlRmxhZ3MgJiBmbGFncykgOiB0
cnVlOworICAgIGJvb2wgbG9hZENvbnRleHRNYXRjaGVzID0gbG9hZENvbnRleHRGbGFncyA/IChs
b2FkQ29udGV4dEZsYWdzICYgZmxhZ3MpIDogdHJ1ZTsKICAgICBib29sIHJlc291cmNlVHlwZU1h
dGNoZXMgPSByZXNvdXJjZVR5cGVGbGFncyA/IChyZXNvdXJjZVR5cGVGbGFncyAmIGZsYWdzKSA6
IHRydWU7CiAgICAgCi0gICAgaWYgKGxvYWRUeXBlTWF0Y2hlcyAmJiByZXNvdXJjZVR5cGVNYXRj
aGVzKSB7CisgICAgaWYgKGxvYWRUeXBlTWF0Y2hlcyAmJiBsb2FkQ29udGV4dE1hdGNoZXMgJiYg
cmVzb3VyY2VUeXBlTWF0Y2hlcykgewogICAgICAgICB1aW50NjRfdCBhY3Rpb25BbmRGbGFncyA9
IChpZkNvbmRpdGlvbiA/IElmQ29uZGl0aW9uRmxhZyA6IDApIHwgKHN0YXRpY19jYXN0PHVpbnQ2
NF90PihmbGFnc1RvQ2hlY2spIDw8IDMyKSB8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihnZXRCaXRz
PHVpbnQzMl90PihtX2J5dGVjb2RlLCBtX2J5dGVjb2RlTGVuZ3RoLCBwcm9ncmFtQ291bnRlciAr
IHNpemVvZihERkFCeXRlY29kZUluc3RydWN0aW9uKSArIHNpemVvZih1aW50MTZfdCkpKTsKICAg
ICAgICAgaWYgKCFtX3RvcFVSTEFjdGlvbnMgfHwgbWF0Y2hlc0NvbmRpdGlvbihhY3Rpb25BbmRG
bGFncywgKm1fdG9wVVJMQWN0aW9ucykpCiAgICAgICAgICAgICBhY3Rpb25zLmFkZChhY3Rpb25B
bmRGbGFncyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAxMDk1MmU0
YzVmNjM2ZjgyNjliMjVlN2I0Y2UxODE4N2YxMWIxZWI3Li5kNzNmY2E1ODlmYzMyMzkzZjIwNjJm
Y2QyY2ZmOTVlNTlhMWNmYmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAK
QEAgLTMwODEsNyArMzA4MSw3IEBAIHVuc2lnbmVkIGxvbmcgRnJhbWVMb2FkZXI6OmxvYWRSZXNv
dXJjZVN5bmNocm9ub3VzbHkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1CiAgICAgaWYgKGVy
cm9yLmlzTnVsbCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gbV9mcmFtZS5wYWdlKCkp
IHsKICAgICAgICAgICAgIGlmIChtX2RvY3VtZW50TG9hZGVyKSB7Ci0gICAgICAgICAgICAgICAg
YXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50
UnVsZUxpc3RzRm9yTG9hZCgqcGFnZSwgbmV3UmVxdWVzdC51cmwoKSwgQ29udGVudEV4dGVuc2lv
bnM6OlJlc291cmNlVHlwZTo6UmF3LCAqbV9kb2N1bWVudExvYWRlcik7CisgICAgICAgICAgICAg
ICAgYXV0byByZXN1bHRzID0gcGFnZS0+dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250
ZW50UnVsZUxpc3RzRm9yTG9hZCgqcGFnZSwgbmV3UmVxdWVzdC51cmwoKSwgQ29udGVudEV4dGVu
c2lvbnM6OlJlc291cmNlVHlwZTo6RmV0Y2gsICptX2RvY3VtZW50TG9hZGVyKTsKICAgICAgICAg
ICAgICAgICBib29sIGJsb2NrZWRMb2FkID0gcmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2FkOwog
ICAgICAgICAgICAgICAgIENvbnRlbnRFeHRlbnNpb25zOjphcHBseVJlc3VsdHNUb1JlcXVlc3Qo
V1RGTW92ZShyZXN1bHRzKSwgcGFnZSwgbmV3UmVxdWVzdCk7CiAgICAgICAgICAgICAgICAgaWYg
KGJsb2NrZWRMb2FkKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2Nh
cGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBl
UGx1Z0luU3RyZWFtTG9hZGVyLmNwcAppbmRleCBmNTQ3YWIyZGE0ZDY0NjdhYmU1Njg2YzBlZmZl
OTA0YTIxYWM3YWIxLi5lY2RkMTdhZTBiNjdlNDU3M2UwNzk1YjEyNDA2OTZkOTIxY2RiNTBkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxv
YWRlci5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6Ok5l
dHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyKEZyYW1lJiBmcmFtZSwgTmV0c2NhcGVQbHUKICAgICAs
IG1fY2xpZW50KG1ha2VXZWFrUHRyKGNsaWVudCkpCiB7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhU
RU5TSU9OUykKLSAgICBtX3Jlc291cmNlVHlwZSA9IHsgQ29udGVudEV4dGVuc2lvbnM6OlJlc291
cmNlVHlwZTo6UGx1Z0luU3RyZWFtIH07CisgICAgbV9yZXNvdXJjZVR5cGUgPSB7IENvbnRlbnRF
eHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6Ok90aGVyIH07CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL1BpbmdMb2FkZXIuY3BwCmluZGV4IGZjY2FlN2RlMTI5N2JmMWNjYWUyNGE0ZmIwOTY5
YzFmYzNjZWMwZDcuLjM5NTJmYjNmYjhlOWJhMWQwYzhlNmNjMWIyNmM5YTFmMjFhYzlkYzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lk
IFBpbmdMb2FkZXI6OnNlbmRQaW5nKEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiBwaW5nVVJMLCBj
b25zdCBVUkwmIGRlc3RpbmF0aQogICAgIHJlcXVlc3Quc2V0UmVxdWVzdGVyKFJlc291cmNlUmVx
dWVzdDo6UmVxdWVzdGVyOjpQaW5nKTsKIAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMp
Ci0gICAgaWYgKHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChmcmFtZSwgcmVxdWVzdCwg
eyBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlOjpSYXcsIENvbnRlbnRFeHRlbnNpb25z
OjpSZXNvdXJjZVR5cGU6OlBpbmcgfSkpCisgICAgaWYgKHByb2Nlc3NDb250ZW50UnVsZUxpc3Rz
Rm9yTG9hZChmcmFtZSwgcmVxdWVzdCwgeyBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBl
OjpPdGhlciwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6UGluZyB9KSkKICAgICAg
ICAgcmV0dXJuOwogI2VuZGlmCiAKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIFBpbmdMb2FkZXI6
OnNlbmRWaW9sYXRpb25SZXBvcnQoRnJhbWUmIGZyYW1lLCBjb25zdCBVUkwmIHJlcG9ydFVSTCwg
UmVmPEZvcgogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QocmVwb3J0VVJMKTsKICNpZiBF
TkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAgIGlmIChwcm9jZXNzQ29udGVudFJ1bGVMaXN0
c0ZvckxvYWQoZnJhbWUsIHJlcXVlc3QsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6
OlJhdykpCisgICAgaWYgKHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChmcmFtZSwgcmVx
dWVzdCwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6T3RoZXIpKQogICAgICAgICBy
ZXR1cm47CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZEluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZEluZm8u
Y3BwCmluZGV4IDY5NTk0ZTg4MzBiMTZmNDkwYzllZmUyNDUyM2Q4MTZhNmU5ZTEzMGUuLmViMDAx
NGJkYmEwMjk2MzEwNTY2OTNlMjQ1N2I2YTk2ODI3M2U3ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUmVzb3VyY2VMb2FkSW5mby5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgT3B0aW9uU2V0PFJl
c291cmNlVHlwZT4gdG9SZXNvdXJjZVR5cGUoQ2FjaGVkUmVzb3VyY2U6OlR5cGUgdHlwZSwgUmVz
b3VyY2VSZXF1ZXMKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpSYXdSZXNvdXJjZToK
ICAgICAgICAgaWYgKHJlcXVlc3RlciA9PSBSZXNvdXJjZVJlcXVlc3RCYXNlOjpSZXF1ZXN0ZXI6
OlhIUgogICAgICAgICAgICAgfHwgcmVxdWVzdGVyID09IFJlc291cmNlUmVxdWVzdEJhc2U6OlJl
cXVlc3Rlcjo6RmV0Y2gpCi0gICAgICAgICAgICByZXR1cm4ge3sgUmVzb3VyY2VUeXBlOjpSYXcs
IFJlc291cmNlVHlwZTo6RmV0Y2ggfX07CisgICAgICAgICAgICByZXR1cm4geyBSZXNvdXJjZVR5
cGU6OkZldGNoIH07CiAgICAgICAgIEZBTExUSFJPVUdIOwogICAgIGNhc2UgQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGU6OkJlYWNvbjoKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpQaW5nOgpA
QCAtNzQsNyArNzQsNyBAQCBPcHRpb25TZXQ8UmVzb3VyY2VUeXBlPiB0b1Jlc291cmNlVHlwZShD
YWNoZWRSZXNvdXJjZTo6VHlwZSB0eXBlLCBSZXNvdXJjZVJlcXVlcwogI2lmIEVOQUJMRShBUFBM
SUNBVElPTl9NQU5JRkVTVCkKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpBcHBsaWNh
dGlvbk1hbmlmZXN0OgogI2VuZGlmCi0gICAgICAgIHJldHVybiB7eyBSZXNvdXJjZVR5cGU6OlJh
dywgUmVzb3VyY2VUeXBlOjpPdGhlciB9fTsKKyAgICAgICAgcmV0dXJuIHsgUmVzb3VyY2VUeXBl
OjpPdGhlciB9OwogCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6VGV4dFRyYWNrUmVz
b3VyY2U6CiAgICAgICAgIHJldHVybiB7IFJlc291cmNlVHlwZTo6TWVkaWEgfTsKQEAgLTg0LDcg
Kzg0LDcgQEAgT3B0aW9uU2V0PFJlc291cmNlVHlwZT4gdG9SZXNvdXJjZVR5cGUoQ2FjaGVkUmVz
b3VyY2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXMKICAgICByZXR1cm4geyB9OwogfQogCi1P
cHRpb25hbDxPcHRpb25TZXQ8UmVzb3VyY2VUeXBlPj4gcmVhZFJlc291cmNlVHlwZShjb25zdCBT
dHJpbmcmIG5hbWUpCitPcHRpb25hbDxPcHRpb25TZXQ8UmVzb3VyY2VUeXBlPj4gcmVhZFJlc291
cmNlVHlwZShTdHJpbmdWaWV3IG5hbWUpCiB7CiAgICAgaWYgKG5hbWUgPT0gImRvY3VtZW50IikK
ICAgICAgICAgcmV0dXJuIHsgUmVzb3VyY2VUeXBlOjpEb2N1bWVudCB9OwpAQCAtOTcsNyArOTcs
NyBAQCBPcHRpb25hbDxPcHRpb25TZXQ8UmVzb3VyY2VUeXBlPj4gcmVhZFJlc291cmNlVHlwZShj
b25zdCBTdHJpbmcmIG5hbWUpCiAgICAgaWYgKG5hbWUgPT0gImZvbnQiKQogICAgICAgICByZXR1
cm4geyBSZXNvdXJjZVR5cGU6OkZvbnQgfTsKICAgICBpZiAobmFtZSA9PSAicmF3IikKLSAgICAg
ICAgcmV0dXJuIHsgUmVzb3VyY2VUeXBlOjpSYXcgfTsKKyAgICAgICAgcmV0dXJuIHt7IFJlc291
cmNlVHlwZTo6RmV0Y2gsIFJlc291cmNlVHlwZTo6V2ViU29ja2V0LCBSZXNvdXJjZVR5cGU6Ok90
aGVyIH19OwogICAgIGlmIChuYW1lID09ICJ3ZWJzb2NrZXQiKQogICAgICAgICByZXR1cm4geyBS
ZXNvdXJjZVR5cGU6OldlYlNvY2tldCB9OwogICAgIGlmIChuYW1lID09ICJmZXRjaCIpCkBAIC0x
MTUsNyArMTE1LDcgQEAgT3B0aW9uYWw8T3B0aW9uU2V0PFJlc291cmNlVHlwZT4+IHJlYWRSZXNv
dXJjZVR5cGUoY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiB9
CiAKLU9wdGlvbmFsPE9wdGlvblNldDxMb2FkVHlwZT4+IHJlYWRMb2FkVHlwZShjb25zdCBTdHJp
bmcmIG5hbWUpCitPcHRpb25hbDxPcHRpb25TZXQ8TG9hZFR5cGU+PiByZWFkTG9hZFR5cGUoU3Ry
aW5nVmlldyBuYW1lKQogewogICAgIGlmIChuYW1lID09ICJmaXJzdC1wYXJ0eSIpCiAgICAgICAg
IHJldHVybiB7IExvYWRUeXBlOjpGaXJzdFBhcnR5IH07CkBAIC0xMjQsNiArMTI0LDE1IEBAIE9w
dGlvbmFsPE9wdGlvblNldDxMb2FkVHlwZT4+IHJlYWRMb2FkVHlwZShjb25zdCBTdHJpbmcmIG5h
bWUpCiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAorT3B0aW9uYWw8T3B0aW9uU2V0PExv
YWRDb250ZXh0Pj4gcmVhZExvYWRDb250ZXh0KFN0cmluZ1ZpZXcgbmFtZSkKK3sKKyAgICBpZiAo
bmFtZSA9PSAidG9wLWZyYW1lIikKKyAgICAgICAgcmV0dXJuIHsgTG9hZENvbnRleHQ6OlRvcEZy
YW1lIH07CisgICAgaWYgKG5hbWUgPT0gImNoaWxkLWZyYW1lIikKKyAgICAgICAgcmV0dXJuIHsg
TG9hZENvbnRleHQ6OkNoaWxkRnJhbWUgfTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0OworfQor
CiBib29sIFJlc291cmNlTG9hZEluZm86OmlzVGhpcmRQYXJ0eSgpIGNvbnN0CiB7CiAgICAgUmVm
PFNlY3VyaXR5T3JpZ2luPiBtYWluRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9IFNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGUobWFpbkRvY3VtZW50VVJMKTsKQEAgLTEzOCw2ICsxNDcsNyBAQCBSZXNvdXJj
ZUZsYWdzIFJlc291cmNlTG9hZEluZm86OmdldFJlc291cmNlRmxhZ3MoKSBjb25zdAogICAgIEFT
U0VSVCghdHlwZS5pc0VtcHR5KCkpOwogICAgIGZsYWdzIHw9IHR5cGUudG9SYXcoKTsKICAgICBm
bGFncyB8PSBpc1RoaXJkUGFydHkoKSA/IHN0YXRpY19jYXN0PFJlc291cmNlRmxhZ3M+KExvYWRU
eXBlOjpUaGlyZFBhcnR5KSA6IHN0YXRpY19jYXN0PFJlc291cmNlRmxhZ3M+KExvYWRUeXBlOjpG
aXJzdFBhcnR5KTsKKyAgICBmbGFncyB8PSBtYWluRnJhbWVDb250ZXh0ID8gc3RhdGljX2Nhc3Q8
UmVzb3VyY2VGbGFncz4oTG9hZENvbnRleHQ6OlRvcEZyYW1lKSA6IHN0YXRpY19jYXN0PFJlc291
cmNlRmxhZ3M+KExvYWRDb250ZXh0OjpDaGlsZEZyYW1lKTsKICAgICByZXR1cm4gZmxhZ3M7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5oCmluZGV4IGExN2JkYmQ2
YWI2MzhiNzFhYjdiMzIxZmEyZTdmNWJkMTExOGIyMjEuLmQ0NWI1Nzc5ODhmM2M0MGNmOTViZTli
NmNiMGRmZmM5OTU3NDExNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZElu
Zm8uaApAQCAtNDAsMjYgKzQwLDMxIEBAIGVudW0gY2xhc3MgUmVzb3VyY2VUeXBlIDogdWludDE2
X3QgewogICAgIFN0eWxlU2hlZXQgPSAweDAwMDQsCiAgICAgU2NyaXB0ID0gMHgwMDA4LAogICAg
IEZvbnQgPSAweDAwMTAsCi0gICAgUmF3ID0gMHgwMDIwLCAvLyBUaGlzIGJpdCBjYW4gYmUgcmV1
c2VkIG5leHQgdGltZSB3ZSBpbmNyZW1lbnQgQ3VycmVudENvbnRlbnRSdWxlTGlzdEZpbGVWZXJz
aW9uLiBJdCBpcyBlcXVpdmFsZW50IHRvIHVzaW5nIEZldGNoIHwgV2ViU29ja2V0IHwgT3RoZXIu
Ci0gICAgU1ZHRG9jdW1lbnQgPSAweDAwNDAsCi0gICAgTWVkaWEgPSAweDAwODAsCi0gICAgUGx1
Z0luU3RyZWFtID0gMHgwMTAwLAotICAgIFBvcHVwID0gMHgwMjAwLAotICAgIC8vIDB4MDQwMCBh
bmQgMHgwODAwIGFyZSB1c2VkIGJ5IExvYWRUeXBlLgotICAgIFBpbmcgPSAweDEwMDAsCi0gICAg
RmV0Y2ggPSAweDIwMDAsCi0gICAgV2ViU29ja2V0ID0gMHg0MDAwLAotICAgIE90aGVyID0gMHg4
MDAwLAorICAgIFNWR0RvY3VtZW50ID0gMHgwMDIwLAorICAgIE1lZGlhID0gMHgwMDQwLAorICAg
IFBvcHVwID0gMHgwMDgwLAorICAgIFBpbmcgPSAweDAxMDAsCisgICAgRmV0Y2ggPSAweDAyMDAs
CisgICAgV2ViU29ja2V0ID0gMHgwNDAwLAorICAgIE90aGVyID0gMHgwODAwLAogfTsKLWNvbnN0
IHVpbnQxNl90IFJlc291cmNlVHlwZU1hc2sgPSAweEYzRkY7Citjb25zdCB1aW50MTZfdCBSZXNv
dXJjZVR5cGVNYXNrID0gMHgwRkZGOwogCiBlbnVtIGNsYXNzIExvYWRUeXBlIDogdWludDE2X3Qg
ewotICAgIEZpcnN0UGFydHkgPSAweDA0MDAsCi0gICAgVGhpcmRQYXJ0eSA9IDB4MDgwMCwKKyAg
ICBGaXJzdFBhcnR5ID0gMHgxMDAwLAorICAgIFRoaXJkUGFydHkgPSAweDIwMDAsCiB9OwotY29u
c3QgdWludDE2X3QgTG9hZFR5cGVNYXNrID0gMHgwQzAwOworY29uc3QgdWludDE2X3QgTG9hZFR5
cGVNYXNrID0gMHgzMDAwOworCitlbnVtIGNsYXNzIExvYWRDb250ZXh0IDogdWludDE2X3Qgewor
ICAgIFRvcEZyYW1lID0gMHg0MDAwLAorICAgIENoaWxkRnJhbWUgPSAweDgwMDAsCit9OworY29u
c3QgdWludDE2X3QgTG9hZENvbnRleHRNYXNrID0gMHhDMDAwOwogCiBzdGF0aWNfYXNzZXJ0KCEo
UmVzb3VyY2VUeXBlTWFzayAmIExvYWRUeXBlTWFzayksICJSZXNvdXJjZVR5cGVNYXNrIGFuZCBM
b2FkVHlwZU1hc2sgc2hvdWxkIGJlIG11dHVhbGx5IGV4Y2x1c2l2ZSBiZWNhdXNlIHRoZXkgYXJl
IHN0b3JlZCBpbiB0aGUgc2FtZSB1aW50MTZfdCIpOworc3RhdGljX2Fzc2VydCghKFJlc291cmNl
VHlwZU1hc2sgJiBMb2FkQ29udGV4dE1hc2spLCAiUmVzb3VyY2VUeXBlTWFzayBhbmQgTG9hZENv
bnRleHRNYXNrIHNob3VsZCBiZSBtdXR1YWxseSBleGNsdXNpdmUgYmVjYXVzZSB0aGV5IGFyZSBz
dG9yZWQgaW4gdGhlIHNhbWUgdWludDE2X3QiKTsKK3N0YXRpY19hc3NlcnQoIShMb2FkQ29udGV4
dE1hc2sgJiBMb2FkVHlwZU1hc2spLCAiTG9hZENvbnRleHRNYXNrIGFuZCBMb2FkVHlwZU1hc2sg
c2hvdWxkIGJlIG11dHVhbGx5IGV4Y2x1c2l2ZSBiZWNhdXNlIHRoZXkgYXJlIHN0b3JlZCBpbiB0
aGUgc2FtZSB1aW50MTZfdCIpOwogCiB0eXBlZGVmIHVpbnQxNl90IFJlc291cmNlRmxhZ3M7CiAK
QEAgLTc0LDEzICs3OSwxNSBAQCBjb25zdCB1aW50NjRfdCBBY3Rpb25GbGFnTWFzayA9IDB4MDAw
MEZGRkYwMDAwMDAwMDsKIGNvbnN0IHVpbnQ2NF90IElmQ29uZGl0aW9uRmxhZyA9IDB4MDAwMTAw
MDAwMDAwMDAwMDsKIAogT3B0aW9uU2V0PFJlc291cmNlVHlwZT4gdG9SZXNvdXJjZVR5cGUoQ2Fj
aGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdEJhc2U6OlJlcXVlc3Rlcik7Ci1PcHRp
b25hbDxPcHRpb25TZXQ8UmVzb3VyY2VUeXBlPj4gcmVhZFJlc291cmNlVHlwZShjb25zdCBTdHJp
bmcmKTsKLU9wdGlvbmFsPE9wdGlvblNldDxMb2FkVHlwZT4+IHJlYWRMb2FkVHlwZShjb25zdCBT
dHJpbmcmKTsKK09wdGlvbmFsPE9wdGlvblNldDxSZXNvdXJjZVR5cGU+PiByZWFkUmVzb3VyY2VU
eXBlKFN0cmluZ1ZpZXcpOworT3B0aW9uYWw8T3B0aW9uU2V0PExvYWRUeXBlPj4gcmVhZExvYWRU
eXBlKFN0cmluZ1ZpZXcpOworT3B0aW9uYWw8T3B0aW9uU2V0PExvYWRDb250ZXh0Pj4gcmVhZExv
YWRDb250ZXh0KFN0cmluZ1ZpZXcpOwogCiBzdHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbyB7CiAgICAg
VVJMIHJlc291cmNlVVJMOwogICAgIFVSTCBtYWluRG9jdW1lbnRVUkw7CiAgICAgT3B0aW9uU2V0
PFJlc291cmNlVHlwZT4gdHlwZTsKKyAgICBib29sIG1haW5GcmFtZUNvbnRleHQgeyBmYWxzZSB9
OwogCiAgICAgYm9vbCBpc1RoaXJkUGFydHkoKSBjb25zdDsKICAgICBSZXNvdXJjZUZsYWdzIGdl
dFJlc291cmNlRmxhZ3MoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuY3BwCmluZGV4IGY0NDRiMzQ3NGMwOTE1
OTNkZTUwYzhmNzExOGJjOWM4M2YzODZlMzkuLjkzMGIxN2YzZTE5NDZmZDVlYWEyZmM3ZDk2YWU3
M2EzMGExMTg0YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElD
b250ZW50UnVsZUxpc3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcApAQCAtNTc2LDYgKzU3Niw3IEBAIHZvaWQgQ29u
dGVudFJ1bGVMaXN0U3RvcmU6OmdldENvbnRlbnRSdWxlTGlzdFNvdXJjZShjb25zdCBXVEY6OlN0
cmluZyYgaWRlbnRpZmllCiAgICAgICAgIHN3aXRjaCAoY29udGVudFJ1bGVMaXN0LT5tZXRhRGF0
YS52ZXJzaW9uKSB7CiAgICAgICAgIGNhc2UgOToKICAgICAgICAgY2FzZSAxMDoKKyAgICAgICAg
Y2FzZSAxMToKICAgICAgICAgICAgIGlmICghY29udGVudFJ1bGVMaXN0LT5tZXRhRGF0YS5zb3Vy
Y2VTaXplKSB7CiAgICAgICAgICAgICAgICAgY29tcGxldGUoeyB9KTsKICAgICAgICAgICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29u
dGVudFJ1bGVMaXN0U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250
ZW50UnVsZUxpc3RTdG9yZS5oCmluZGV4IDBjYWVlNTZmOGUyMjM3NzdjOWZiYjA3ZjI0MWY3NzYw
ZDZlNjc0MGMuLmE3NzI0NDQzYTQ4MWU5NDI2NDY5MTgyNzU1NWIwYjU2ZWY1ODVjNjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9y
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RT
dG9yZS5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICAvLyBBbHNvIHVwZGF0ZSBDb250
ZW50UnVsZUxpc3RTdG9yZTo6Z2V0Q29udGVudFJ1bGVMaXN0U291cmNlIHRvIGJlIGFibGUgdG8g
ZmluZCB0aGUgb3JpZ2luYWwgSlNPTgogICAgIC8vIHNvdXJjZSBmcm9tIG9sZCB2ZXJzaW9ucy4K
ICAgICAvLyBVcGRhdGUgQ29udGVudFJ1bGVMaXN0U3RvcmU6OmdldENvbnRlbnRSdWxlTGlzdFNv
dXJjZSB3aXRoIHRoaXMuCi0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBDdXJyZW50Q29u
dGVudFJ1bGVMaXN0RmlsZVZlcnNpb24gPSAxMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQz
Ml90IEN1cnJlbnRDb250ZW50UnVsZUxpc3RGaWxlVmVyc2lvbiA9IDExOwogCiAgICAgc3RhdGlj
IENvbnRlbnRSdWxlTGlzdFN0b3JlJiBkZWZhdWx0U3RvcmUoYm9vbCBsZWdhY3lGaWxlbmFtZSk7
CiAgICAgc3RhdGljIFJlZjxDb250ZW50UnVsZUxpc3RTdG9yZT4gc3RvcmVXaXRoUGF0aChjb25z
dCBXVEY6OlN0cmluZyYgc3RvcmVQYXRoLCBib29sIGxlZ2FjeUZpbGVuYW1lKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1OTgwMzg4NzdhZjc0
Y2M3YjNlNWNhN2RhZTI5YTQ3ZDZkNjNiYjM3Li5jZTlkYzM5ZjJkYjRiOTdhMGZjNGEzNzY2YTc4
Mjc0MzBkYjc0MjllIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDMtMjQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBbGxvdyBXS0NvbnRlbnRSdWxlTGlz
dCB0byBibG9jayBvbmx5IGluIGZyYW1lcyBvciBvbmx5IGluIG1haW4gZnJhbWUKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTAwMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9D
b250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24ubW06CisgICAgICAgIChURVNUKToKKwogMjAyMS0w
My0yMiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3MtY29udGFp
bl0gUGFyc2UgQ1NTIGNvbnRhaW4gcHJvcGVydHkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGMyN2JlODk1
ZjBiNzlmOWZmZjI3NDJmMDU5MTZmZjU1NjEyNmIyOGQuLjE2Y2FkNTIxODQ3NjMyMTI2NWFlZTE4
YWIwNDc4OTgxNGNhNDZlMzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTE2NCw3ICsxMTY0LDcgQEAg
VEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBSZXNvdXJjZVR5cGUpCiAgICAgdGVzdFJlcXVl
c3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL2Jsb2NrX2FsbF90eXBlcy5v
cmciLCBSZXNvdXJjZVR5cGU6OlN0eWxlU2hlZXQpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rp
b25UeXBlOjpCbG9ja0xvYWQgfSk7CiAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3Vt
ZW50UmVxdWVzdCgiaHR0cDovL2Jsb2NrX2FsbF90eXBlcy5vcmciLCBSZXNvdXJjZVR5cGU6OlNj
cmlwdCksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkJsb2NrTG9hZCB9KTsKICAg
ICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vYmxvY2tf
YWxsX3R5cGVzLm9yZyIsIFJlc291cmNlVHlwZTo6Rm9udCksIHsgQ29udGVudEV4dGVuc2lvbnM6
OkFjdGlvblR5cGU6OkJsb2NrTG9hZCB9KTsKLSAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWlu
RG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vYmxvY2tfYWxsX3R5cGVzLm9yZyIsIFJlc291cmNlVHlw
ZTo6UmF3KSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0pOwor
ICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly9ibG9j
a19hbGxfdHlwZXMub3JnIiwgUmVzb3VyY2VUeXBlOjpPdGhlciksIHsgQ29udGVudEV4dGVuc2lv
bnM6OkFjdGlvblR5cGU6OkJsb2NrTG9hZCB9KTsKICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBt
YWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vYmxvY2tfYWxsX3R5cGVzLm9yZyIsIFJlc291cmNl
VHlwZTo6U1ZHRG9jdW1lbnQpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpCbG9j
a0xvYWQgfSk7CiAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgi
aHR0cDovL2Jsb2NrX2FsbF90eXBlcy5vcmciLCBSZXNvdXJjZVR5cGU6Ok1lZGlhKSwgeyBDb250
ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0pOwogICAgIHRlc3RSZXF1ZXN0
KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly9ibG9ja19hbGxfdHlwZXMub3Jn
IiwgUmVzb3VyY2VUeXBlOjpQb3B1cCksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6
OkJsb2NrTG9hZCB9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvQ29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24ubW0KaW5k
ZXggNzk0NjMzZGEzMDQ5YWUzNmU4YjUzMTUyNjIwNzYwMjdmNzRhODlmZS4uNjc5NDQ5NTdkMmEw
MDBkNDMyNTI0YTM1NzM5MjMyZDE5ZTIwMjVlMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24ubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db250ZW50UnVsZUxpc3RO
b3RpZmljYXRpb24ubW0KQEAgLTMwMiw2ICszMDIsNzcgQEAgVEVTVChDb250ZW50UnVsZUxpc3Qs
IFN1cHBvcnRzUmVnZXgpCiAgICAgICAgIEVYUEVDVF9GQUxTRShbV0tDb250ZW50UnVsZUxpc3Qg
X3N1cHBvcnRzUmVndWxhckV4cHJlc3Npb246cmVnZXhdKTsKIH0KIAorVEVTVChDb250ZW50UnVs
ZUxpc3QsIFRvcEZyYW1lQ2hpbGRGcmFtZSkKK3sKKyAgICBhdXRvIGhhbmRsZXIgPSBbW1Rlc3RV
UkxTY2hlbWVIYW5kbGVyIG5ld10gYXV0b3JlbGVhc2VdOworICAgIF9fYmxvY2sgYm9vbCBsb2Fk
ZWRJRnJhbWUgPSBmYWxzZTsKKyAgICBoYW5kbGVyLnN0YXJ0VVJMU2NoZW1lVGFza0hhbmRsZXIg
PSBeKFdLV2ViVmlldyAqLCBpZDxXS1VSTFNjaGVtZVRhc2s+IHRhc2spIHsKKyAgICAgICAgYXV0
byByZXNwb25kID0gW3Rhc2tdIChjb25zdCBjaGFyKiBodG1sKSB7CisgICAgICAgICAgICBOU1VS
TFJlc3BvbnNlICpyZXNwb25zZSA9IFtbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJM
OnRhc2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExl
bmd0aDpzdHJsZW4oaHRtbCkgdGV4dEVuY29kaW5nTmFtZTpuaWxdIGF1dG9yZWxlYXNlXTsKKyAg
ICAgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZV07CisgICAgICAgICAg
ICBbdGFzayBkaWRSZWNlaXZlRGF0YTpbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6aHRtbCBsZW5ndGg6
c3RybGVuKGh0bWwpXV07CisgICAgICAgICAgICBbdGFzayBkaWRGaW5pc2hdOworICAgICAgICB9
OworICAgICAgICBOU1N0cmluZyAqcGF0aCA9IHRhc2sucmVxdWVzdC5VUkwucGF0aDsKKyAgICAg
ICAgaWYgKFtwYXRoIGlzRXF1YWxUb1N0cmluZzpAIi9tYWluLmh0bWwiXSkKKyAgICAgICAgICAg
IHJldHVybiByZXNwb25kKCI8aWZyYW1lIHNyYz0nZnJhbWUuaHRtbCc+PC9pZnJhbWU+Iik7Cisg
ICAgICAgIGlmIChbcGF0aCBpc0VxdWFsVG9TdHJpbmc6QCIvZnJhbWUuaHRtbCJdKSB7CisgICAg
ICAgICAgICBFWFBFQ1RfRkFMU0UobG9hZGVkSUZyYW1lKTsKKyAgICAgICAgICAgIGxvYWRlZElG
cmFtZSA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gcmVzcG9uZCgiaGkiKTsKKyAgICAgICAg
fQorICAgICAgICBpZiAoW3BhdGggaXNFcXVhbFRvU3RyaW5nOkAiL2ZldGNoX21haW4uaHRtbCJd
KSB7CisgICAgICAgICAgICByZXR1cm4gcmVzcG9uZCgiPHNjcmlwdD4iCisgICAgICAgICAgICAg
ICAgImZ1bmN0aW9uIGFkZGlmcmFtZSgpIHsgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2lmcmFtZScpOyBpZnJhbWUuc3JjID0gJ2ZldGNoX2lmcmFtZS5odG1sJzsgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOyB9OyIKKyAgICAgICAgICAgICAgICAiZnVuY3Rp
b24gdGVzdGZldGNoKCkgeyBmZXRjaCgnL2ZldGNoZWQudHh0JykudGhlbigoKT0+e2FsZXJ0KCdt
YWluIGZyYW1lIGZldGNoZWQgc3VjY2Vzc2Z1bGx5Jyk7YWRkaWZyYW1lKCl9KS5jYXRjaCgoKT0+
e2FsZXJ0KCdtYWluIGZyYW1lIGZldGNoIGZhaWxlZCcpO2FkZGlmcmFtZSgpO30pIH0iCisgICAg
ICAgICAgICAgICAgIjwvc2NyaXB0Pjxib2R5IG9ubG9hZD0ndGVzdGZldGNoKCknLz4iKTsKKyAg
ICAgICAgfQorICAgICAgICBpZiAoW3BhdGggaXNFcXVhbFRvU3RyaW5nOkAiL2ZldGNoZWQudHh0
Il0pCisgICAgICAgICAgICByZXR1cm4gcmVzcG9uZCgiaGkiKTsKKyAgICAgICAgaWYgKFtwYXRo
IGlzRXF1YWxUb1N0cmluZzpAIi9mZXRjaF9pZnJhbWUuaHRtbCJdKSB7CisgICAgICAgICAgICBy
ZXR1cm4gcmVzcG9uZCgiPHNjcmlwdD4iCisgICAgICAgICAgICAgICAgImZ1bmN0aW9uIHRlc3Rm
ZXRjaCgpIHsgZmV0Y2goJy9mZXRjaGVkLnR4dCcpLnRoZW4oKCk9PnthbGVydCgnaWZyYW1lIGZl
dGNoZWQgc3VjY2Vzc2Z1bGx5Jyl9KS5jYXRjaCgoKT0+e2FsZXJ0KCdpZnJhbWUgZmV0Y2ggZmFp
bGVkJyk7fSkgfSIKKyAgICAgICAgICAgICAgICAiPC9zY3JpcHQ+PGJvZHkgb25sb2FkPSd0ZXN0
ZmV0Y2goKScvPiIpOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIH07CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gW1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IG5ld10gYXV0b3JlbGVhc2VdOworICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRs
ZXI6aGFuZGxlciBmb3JVUkxTY2hlbWU6QCJ0ZXN0Il07CisgICAgY29uZmlndXJhdGlvbi53ZWJz
aXRlRGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBub25QZXJzaXN0ZW50RGF0YVN0b3Jl
XTsKKyAgICBhdXRvIHdlYlZpZXcgPSBbW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
Q0dSZWN0WmVybyBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dIGF1dG9yZWxlYXNlXTsKKyAg
ICBXS1VzZXJDb250ZW50Q29udHJvbGxlciAqdXNlckNvbnRlbnRDb250cm9sbGVyID0gd2ViVmll
dy5jb25maWd1cmF0aW9uLnVzZXJDb250ZW50Q29udHJvbGxlcjsKKworICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJ0ZXN0Oi8vL21haW4uaHRtbCJdXV07CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRp
ZEZpbmlzaE5hdmlnYXRpb25dOworICAgIEVYUEVDVF9UUlVFKGxvYWRlZElGcmFtZSk7CisKKyAg
ICBbdXNlckNvbnRlbnRDb250cm9sbGVyIGFkZENvbnRlbnRSdWxlTGlzdDptYWtlQ29udGVudFJ1
bGVMaXN0KEAiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntc
InVybC1maWx0ZXJcIjpcInRlc3RcIixcImxvYWQtY29udGV4dFwiOltcImNoaWxkLWZyYW1lXCJd
fX1dIikuZ2V0KCldOworICAgIGxvYWRlZElGcmFtZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHJl
bG9hZF07CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOwor
ICAgIEVYUEVDVF9GQUxTRShsb2FkZWRJRnJhbWUpOworICAgIAorICAgIFt1c2VyQ29udGVudENv
bnRyb2xsZXIgcmVtb3ZlQWxsQ29udGVudFJ1bGVMaXN0c107CisgICAgCisgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAInRlc3Q6Ly8vZmV0Y2hfbWFpbi5odG1sIl1dXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEo
W3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckFsZXJ0XSwgIm1haW4gZnJhbWUgZmV0Y2hlZCBzdWNjZXNz
ZnVsbHkiKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckFsZXJ0
XSwgImlmcmFtZSBmZXRjaGVkIHN1Y2Nlc3NmdWxseSIpOworCisgICAgYXV0byBsaXN0V2l0aExv
YWRDb250ZXh0ID0gW10gKGNvbnN0IGNoYXIqIHR5cGUpIHsKKyAgICAgICAgcmV0dXJuIG1ha2VD
b250ZW50UnVsZUxpc3QoW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJbe1wiYWN0aW9uXCI6
e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwidGVzdFwi
LFwibG9hZC1jb250ZXh0XCI6W1wiJXNcIl0sXCJyZXNvdXJjZS10eXBlXCI6W1wiZmV0Y2hcIl19
fV0iLCB0eXBlXSk7CisgICAgfTsKKyAgICBbdXNlckNvbnRlbnRDb250cm9sbGVyIGFkZENvbnRl
bnRSdWxlTGlzdDpsaXN0V2l0aExvYWRDb250ZXh0KCJjaGlsZC1mcmFtZSIpLmdldCgpXTsKKyAg
ICBbd2ViVmlldyByZWxvYWRdOworICAgIEVYUEVDVF9XS19TVFJFUShbd2ViVmlldyBfdGVzdF93
YWl0Rm9yQWxlcnRdLCAibWFpbiBmcmFtZSBmZXRjaGVkIHN1Y2Nlc3NmdWxseSIpOworICAgIEVY
UEVDVF9XS19TVFJFUShbd2ViVmlldyBfdGVzdF93YWl0Rm9yQWxlcnRdLCAiaWZyYW1lIGZldGNo
IGZhaWxlZCIpOworCisgICAgW3VzZXJDb250ZW50Q29udHJvbGxlciByZW1vdmVBbGxDb250ZW50
UnVsZUxpc3RzXTsKKyAgICBbdXNlckNvbnRlbnRDb250cm9sbGVyIGFkZENvbnRlbnRSdWxlTGlz
dDpsaXN0V2l0aExvYWRDb250ZXh0KCJ0b3AtZnJhbWUiKS5nZXQoKV07CisgICAgW3dlYlZpZXcg
cmVsb2FkXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckFsZXJ0
XSwgIm1haW4gZnJhbWUgZmV0Y2ggZmFpbGVkIik7CisgICAgRVhQRUNUX1dLX1NUUkVRKFt3ZWJW
aWV3IF90ZXN0X3dhaXRGb3JBbGVydF0sICJpZnJhbWUgZmV0Y2hlZCBzdWNjZXNzZnVsbHkiKTsK
K30KKwogI2lmIEhBVkUoU1NMKQogCiBURVNUKFdlYktpdCwgUmVkaXJlY3RUb1BsYWludGV4dEhU
VFBTVXBncmFkZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424314</attachid>
            <date>2021-03-25 20:41:02 -0700</date>
            <delta_ts>2021-03-25 22:21:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219001-20210325204101.patch</filename>
            <type>text/plain</type>
            <size>28683</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0Nzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjM1MGQ1YTlkNjgwNzkw
MDUyMGQ2NzA3N2Q2MDI5ZjNhY2I3YjNmNy4uYTUwZmE1MDY5YjdjYmE3MjZiYTYyZDhkZGI4YTkw
OGYwYmJlZGQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIxLTAzLTI1ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWxsb3cg
V0tDb250ZW50UnVsZUxpc3QgdG8gYmxvY2sgb25seSBpbiBmcmFtZXMgb3Igb25seSBpbiBtYWlu
IGZyYW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTkwMDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcxMzgyMDQ1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IEJlbiBQb3VsYWluLgorCisgICAgICAgIFRoaXMgYWRkcyBsb2FkLWNvbnRleHQgdG8g
dGhlIHRyaWdnZXIsIHdoaWNoIGNhbiBoYXZlIGFuIGFycmF5IGNvbnRhaW5pbmcgbWFpbi1mcmFt
ZSBvciBpZnJhbWUuCisgICAgICAgIFRoaXMgbWFrZXMgdGhlIHRyaWdnZXIgb25seSBoYXBwZW4g
aW4gc3VjaCBsb2FkaW5nIGNvbnRleHRzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRz
L1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjp2YWxpZGF0ZVVSTCk6CisgICAgICAgICogY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbjo6cG9wdWxhdGVDb25kaXRpb25DYWNoZUlmTmVl
ZGVkKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpnZXRUeXBlRmxhZ3Mp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OmxvYWRUcmlnZ2VyKToKKyAg
ICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25zQmFj
a2VuZDo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ6OnByb2Nlc3NDb250
ZW50UnVsZUxpc3RzRm9yUGluZ0xvYWQpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0RG
QUJ5dGVjb2RlSW50ZXJwcmV0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVu
c2lvbnM6OkRGQUJ5dGVjb2RlSW50ZXJwcmV0ZXI6OmludGVycHJldFRlc3RGbGFnc0FuZEFwcGVu
ZEFjdGlvbik6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAg
KiBsb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVy
KToKKyAgICAgICAgKiBsb2FkZXIvUGluZ0xvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
aW5nTG9hZGVyOjpzZW5kUGluZyk6CisgICAgICAgIChXZWJDb3JlOjpQaW5nTG9hZGVyOjpzZW5k
VmlvbGF0aW9uUmVwb3J0KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6dG9SZXNvdXJjZVR5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OnJlYWRSZXNvdXJjZVR5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OnJlYWRMb2FkVHlwZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6cmVhZExvYWRDb250ZXh0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZUxvYWRJbmZvOjpnZXRSZXNv
dXJjZUZsYWdzIGNvbnN0KToKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5oOgor
CiAyMDIxLTAzLTIyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1NdIENvbXBvc2l0aW9uIHRleHQgaXMgbm90IGluaXRpYWxseSBoaWdobGlnaHRl
ZCB3aGVuIHR5cGluZyBpbiB0ZXh0IGZpZWxkcyB1c2luZyBQaW55aW4ga2V5Ym9hcmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggNmFiZjZmMTk3OTRmMjQwN2E3ZDg4Nzg4ZGY0YTEyYWVmZDJjN2I4Yy4uNzU2ZjdjNDVk
OTQwYTQwZjcwMWNmMmE4MzNiMTgwMDUxZDQzZTA4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAyMS0wMy0yNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIEFsbG93IFdLQ29udGVudFJ1bGVMaXN0IHRvIGJsb2NrIG9ubHkgaW4gZnJh
bWVzIG9yIG9ubHkgaW4gbWFpbiBmcmFtZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MDAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQmVuIFBvdWxh
aW4uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNw
cDoKKyAgICAgICAgKEFQSTo6Q29udGVudFJ1bGVMaXN0U3RvcmU6OmdldENvbnRlbnRSdWxlTGlz
dFNvdXJjZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9y
ZS5oOgorCiAyMDIxLTAzLTIyICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnku
Y29tPgogCiAgICAgICAgIFtXaW5DYWlyb10gQVNTRVJUSU9OIEZBSUxFRDogaXNNYWluVGhyZWFk
KCkgaW4gR1BVIHByb2Nlc3MgZm9yIHNvbWUgY2FudmFzL3BoaWxpcC90ZXN0cyB0ZXN0cwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggYzExNWI0NWI3YTc1ODRlZmQ5Nzg2ZjQz
MTc5MDljYTM3Zjk3ZjUwZC4uNGNjYTA2MmMwNTA3ZDdhZmMwZTA5OWU0MzA4MDRlOGI5MzI1NWVk
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCkBAIC05Myw3ICs5Myw3IEBAIE9w
dGlvbmFsPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpWYWxpZGF0ZWRVUkw+IFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsOjp2CiAgICAgICAgICAgICByZXR1cm4geyB9OwogI2lmIEVOQUJM
RShDT05URU5UX0VYVEVOU0lPTlMpCiAgICAgICAgIGlmIChhdXRvKiBkb2N1bWVudExvYWRlciA9
IGRvY3VtZW50LmxvYWRlcigpKSB7Ci0gICAgICAgICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51
c2VyQ29udGVudFByb3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKCpwYWdl
LCB2YWxpZGF0ZWRVUkwudXJsLCB7IENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OlJh
dywgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6V2ViU29ja2V0IH0sICpkb2N1bWVu
dExvYWRlcik7CisgICAgICAgICAgICBhdXRvIHJlc3VsdHMgPSBwYWdlLT51c2VyQ29udGVudFBy
b3ZpZGVyKCkucHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKCpwYWdlLCB2YWxpZGF0ZWRV
UkwudXJsLCBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlOjpXZWJTb2NrZXQsICpkb2N1
bWVudExvYWRlcik7CiAgICAgICAgICAgICBpZiAocmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2Fk
KQogICAgICAgICAgICAgICAgIHJldHVybiB7IH07CiAgICAgICAgICAgICBpZiAocmVzdWx0cy5z
dW1tYXJ5Lm1hZGVIVFRQUykgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uLmNwcAppbmRleCAyYjgwYTJmMTAzMzk2OTg3YjMzNzk4
OGZhYmE0NWM1MWNiODE5MGJkLi42NWJkYzFkOWQwYWNiYmUxZTNjMzZiNGRjYjFmMTY5ZDA1ODMz
YTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50
RXh0ZW5zaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250
ZW50RXh0ZW5zaW9uLmNwcApAQCAtMTIxLDcgKzEyMSw3IEBAIHZvaWQgQ29udGVudEV4dGVuc2lv
bjo6cG9wdWxhdGVDb25kaXRpb25DYWNoZUlmTmVlZGVkKGNvbnN0IFVSTCYgdG9wVVJMKQogewog
ICAgIGlmIChtX2NhY2hlZFRvcFVSTCAhPSB0b3BVUkwpIHsKICAgICAgICAgREZBQnl0ZWNvZGVJ
bnRlcnByZXRlciBpbnRlcnByZXRlcihtX2NvbXBpbGVkRXh0ZW5zaW9uLT50b3BVUkxGaWx0ZXJz
Qnl0ZWNvZGUoKSwgbV9jb21waWxlZEV4dGVuc2lvbi0+dG9wVVJMRmlsdGVyc0J5dGVjb2RlTGVu
Z3RoKCkpOwotICAgICAgICBjb25zdCB1aW50MTZfdCBhbGxMb2FkVHlwZXNBbmRSZXNvdXJjZVR5
cGVzID0gTG9hZFR5cGVNYXNrIHwgUmVzb3VyY2VUeXBlTWFzazsKKyAgICAgICAgY29uc3RleHBy
IHVpbnQxNl90IGFsbExvYWRUeXBlc0FuZFJlc291cmNlVHlwZXMgPSBMb2FkVHlwZU1hc2sgfCBS
ZXNvdXJjZVR5cGVNYXNrIHwgTG9hZENvbnRleHRNYXNrOwogICAgICAgICBTdHJpbmcgc3RyaW5n
ID0gbV9jb21waWxlZEV4dGVuc2lvbi0+Y29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKCkgPyB0
b3BVUkwuaG9zdCgpLnRvU3RyaW5nKCkgOiB0b3BVUkwuc3RyaW5nKCk7CiAgICAgICAgIGF1dG8g
dG9wVVJMQWN0aW9ucyA9IGludGVycHJldGVyLmludGVycHJldChzdHJpbmcudXRmOCgpLCBhbGxM
b2FkVHlwZXNBbmRSZXNvdXJjZVR5cGVzKTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3Bw
CmluZGV4IGI3YzZlNWM1OTkyMWVmMzA3MjVhZTY1ZmJhZWQ0MDljOGFhNjZkZDYuLjgzM2JhYzMz
ZDJlZmE1ODNkYWJiNDVkMzNiZGVhZTRmNGE1MGRkMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3Bw
CkBAIC05NSw3ICs5NSw3IEBAIHN0YXRpYyBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgc3RkOjpl
cnJvcl9jb2RlPiBnZXREb21haW5MaXN0KEpTR2xvYmFsT2JqZWN0JiBsCiB9CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+Ci1zdGF0aWMgc3RkOjplcnJvcl9jb2RlIGdldFR5cGVGbGFncyhKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgY29uc3QgSlNWYWx1ZSYgdHlwZVZhbHVlLCBS
ZXNvdXJjZUZsYWdzJiBmbGFncywgT3B0aW9uYWw8T3B0aW9uU2V0PFQ+PiAoKnN0cmluZ1RvVHlw
ZSkoY29uc3QgU3RyaW5nJikpCitzdGF0aWMgc3RkOjplcnJvcl9jb2RlIGdldFR5cGVGbGFncyhK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgY29uc3QgSlNWYWx1ZSYgdHlwZVZh
bHVlLCBSZXNvdXJjZUZsYWdzJiBmbGFncywgT3B0aW9uYWw8T3B0aW9uU2V0PFQ+PiAoKnN0cmlu
Z1RvVHlwZSkoU3RyaW5nVmlldykpCiB7CiAgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVj
dC52bSgpOwogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKQEAgLTEx
Nyw3ICsxMTcsNyBAQCBzdGF0aWMgc3RkOjplcnJvcl9jb2RlIGdldFR5cGVGbGFncyhKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgY29uc3QgSgogICAgICAgICAgICAgcmV0dXJu
IENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRPYmplY3RJblRyaWdnZXJGbGFnc0Fy
cmF5OwogICAgICAgICAKICAgICAgICAgU3RyaW5nIG5hbWUgPSB2YWx1ZS50b1dURlN0cmluZygm
bGV4aWNhbEdsb2JhbE9iamVjdCk7Ci0gICAgICAgIGF1dG8gdHlwZSA9IHN0cmluZ1RvVHlwZShu
YW1lKTsKKyAgICAgICAgYXV0byB0eXBlID0gc3RyaW5nVG9UeXBlKFN0cmluZ1ZpZXcobmFtZSkp
OwogICAgICAgICBpZiAoIXR5cGUpCiAgICAgICAgICAgICByZXR1cm4gQ29udGVudEV4dGVuc2lv
bkVycm9yOjpKU09OSW52YWxpZFN0cmluZ0luVHJpZ2dlckZsYWdzQXJyYXk7CiAKQEAgLTE3MSw2
ICsxNzEsMTQgQEAgc3RhdGljIEV4cGVjdGVkPFRyaWdnZXIsIHN0ZDo6ZXJyb3JfY29kZT4gbG9h
ZFRyaWdnZXIoSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG8KICAgICB9IGVsc2UgaWYgKCFsb2Fk
VHlwZVZhbHVlLmlzVW5kZWZpbmVkKCkpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChD
b250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlckZsYWdzQXJyYXkpOwogCisg
ICAgY29uc3QgSlNWYWx1ZSBsb2FkQ29udGV4dFZhbHVlID0gdHJpZ2dlck9iamVjdC5nZXQoJmxl
eGljYWxHbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcodm0sICJsb2FkLWNvbnRl
eHQiKSk7CisgICAgaWYgKCFzY29wZS5leGNlcHRpb24oKSAmJiBsb2FkQ29udGV4dFZhbHVlLmlz
T2JqZWN0KCkpIHsKKyAgICAgICAgYXV0byB0eXBlRmxhZ3NFcnJvciA9IGdldFR5cGVGbGFncyhs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBsb2FkQ29udGV4dFZhbHVlLCB0cmlnZ2VyLmZsYWdzLCByZWFk
TG9hZENvbnRleHQpOworICAgICAgICBpZiAodHlwZUZsYWdzRXJyb3IpCisgICAgICAgICAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQodHlwZUZsYWdzRXJyb3IpOworICAgIH0gZWxzZSBpZiAoIWxv
YWRDb250ZXh0VmFsdWUuaXNVbmRlZmluZWQoKSkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7
CisKICAgICBjb25zdCBKU1ZhbHVlIGlmRG9tYWluVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LmdldCgm
bGV4aWNhbEdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmluZyh2bSwgImlmLWRvbWFp
biIpKTsKICAgICBpZiAoIXNjb3BlLmV4Y2VwdGlvbigpICYmIGlmRG9tYWluVmFsdWUuaXNPYmpl
Y3QoKSkgewogICAgICAgICBhdXRvIGlmRG9tYWluID0gZ2V0RG9tYWluTGlzdChsZXhpY2FsR2xv
YmFsT2JqZWN0LCBhc09iamVjdChpZkRvbWFpblZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwIGIv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbnNCYWNrZW5k
LmNwcAppbmRleCA5N2FkOGU3MDA2M2ZjZjAxZjY0MDIxMGY5NDRkMWMwMDdkNGNkZWFmLi4zNDlj
NTE2MGZkNWE4NzdmOWVmM2E1Y2Q5YjYwMDY0MjEwNDgwYmJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uc0JhY2tlbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25zQmFj
a2VuZC5jcHAKQEAgLTE3NCw4ICsxNzQsMTAgQEAgQ29udGVudFJ1bGVMaXN0UmVzdWx0cyBDb250
ZW50RXh0ZW5zaW9uc0JhY2tlbmQ6OnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCgKIHsK
ICAgICBEb2N1bWVudCogY3VycmVudERvY3VtZW50ID0gbnVsbHB0cjsKICAgICBVUkwgbWFpbkRv
Y3VtZW50VVJMOworICAgIGJvb2wgbWFpbkZyYW1lQ29udGV4dCA9IGZhbHNlOwogCiAgICAgaWYg
KGF1dG8qIGZyYW1lID0gaW5pdGlhdGluZ0RvY3VtZW50TG9hZGVyLmZyYW1lKCkpIHsKKyAgICAg
ICAgbWFpbkZyYW1lQ29udGV4dCA9IGZyYW1lLT5pc01haW5GcmFtZSgpOwogICAgICAgICBjdXJy
ZW50RG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKTsKIAogICAgICAgICBpZiAoaW5pdGlhdGlu
Z0RvY3VtZW50TG9hZGVyLmlzTG9hZGluZ01haW5SZXNvdXJjZSgpCkBAIC0xODYsNyArMTg4LDcg
QEAgQ29udGVudFJ1bGVMaXN0UmVzdWx0cyBDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ6OnByb2Nl
c3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCgKICAgICAgICAgICAgIG1haW5Eb2N1bWVudFVSTCA9
IG1haW5Eb2N1bWVudC0+dXJsKCk7CiAgICAgfQogCi0gICAgUmVzb3VyY2VMb2FkSW5mbyByZXNv
dXJjZUxvYWRJbmZvID0geyB1cmwsIG1haW5Eb2N1bWVudFVSTCwgcmVzb3VyY2VUeXBlIH07Cisg
ICAgUmVzb3VyY2VMb2FkSW5mbyByZXNvdXJjZUxvYWRJbmZvID0geyB1cmwsIG1haW5Eb2N1bWVu
dFVSTCwgcmVzb3VyY2VUeXBlLCBtYWluRnJhbWVDb250ZXh0IH07CiAgICAgYXV0byBhY3Rpb25z
ID0gYWN0aW9uc0ZvclJlc291cmNlTG9hZChyZXNvdXJjZUxvYWRJbmZvKTsKIAogICAgIENvbnRl
bnRSdWxlTGlzdFJlc3VsdHMgcmVzdWx0czsKQEAgLTI2Niw3ICsyNjgsNyBAQCBDb250ZW50UnVs
ZUxpc3RSZXN1bHRzIENvbnRlbnRFeHRlbnNpb25zQmFja2VuZDo6cHJvY2Vzc0NvbnRlbnRSdWxl
TGlzdHNGb3JMb2FkKAogCiBDb250ZW50UnVsZUxpc3RSZXN1bHRzIENvbnRlbnRFeHRlbnNpb25z
QmFja2VuZDo6cHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JQaW5nTG9hZChjb25zdCBVUkwmIHVy
bCwgY29uc3QgVVJMJiBtYWluRG9jdW1lbnRVUkwpCiB7Ci0gICAgUmVzb3VyY2VMb2FkSW5mbyBy
ZXNvdXJjZUxvYWRJbmZvID0geyB1cmwsIG1haW5Eb2N1bWVudFVSTCwgUmVzb3VyY2VUeXBlOjpS
YXcgfTsKKyAgICBSZXNvdXJjZUxvYWRJbmZvIHJlc291cmNlTG9hZEluZm8gPSB7IHVybCwgbWFp
bkRvY3VtZW50VVJMLCBSZXNvdXJjZVR5cGU6OlBpbmcgfTsKICAgICBhdXRvIGFjdGlvbnMgPSBh
Y3Rpb25zRm9yUmVzb3VyY2VMb2FkKHJlc291cmNlTG9hZEluZm8pOwogCiAgICAgQ29udGVudFJ1
bGVMaXN0UmVzdWx0cyByZXN1bHRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVu
dGV4dGVuc2lvbnMvREZBQnl0ZWNvZGVJbnRlcnByZXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUludGVycHJldGVyLmNwcAppbmRleCBmNTYzYzMy
Zjk2NDA3YzE3YTgyN2I1NmNlY2ExY2VmYWM3OWJjMWNhLi5iZGMxMzlmYzlhYjMyNjNhN2E1ZjZh
NWZjZWQ3YmFmZTVjOWI5YTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9ERkFCeXRlY29kZUludGVycHJldGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9ERkFCeXRlY29kZUludGVycHJldGVyLmNwcApAQCAtMTEyLDEyICsx
MTIsMTQgQEAgdm9pZCBERkFCeXRlY29kZUludGVycHJldGVyOjppbnRlcnByZXRUZXN0RmxhZ3NB
bmRBcHBlbmRBY3Rpb24odWludDMyX3QmIHByb2dyYW0KICAgICB1aW50MTZfdCBmbGFnc1RvQ2hl
Y2sgPSBnZXRCaXRzPHVpbnQxNl90PihtX2J5dGVjb2RlLCBtX2J5dGVjb2RlTGVuZ3RoLCBwcm9n
cmFtQ291bnRlciArIHNpemVvZihERkFCeXRlY29kZUluc3RydWN0aW9uKSk7CiAKICAgICB1aW50
MTZfdCBsb2FkVHlwZUZsYWdzID0gZmxhZ3NUb0NoZWNrICYgTG9hZFR5cGVNYXNrOworICAgIHVp
bnQxNl90IGxvYWRDb250ZXh0RmxhZ3MgPSBmbGFnc1RvQ2hlY2sgJiBMb2FkQ29udGV4dE1hc2s7
CiAgICAgdWludDE2X3QgcmVzb3VyY2VUeXBlRmxhZ3MgPSBmbGFnc1RvQ2hlY2sgJiBSZXNvdXJj
ZVR5cGVNYXNrOwotICAgIAorCiAgICAgYm9vbCBsb2FkVHlwZU1hdGNoZXMgPSBsb2FkVHlwZUZs
YWdzID8gKGxvYWRUeXBlRmxhZ3MgJiBmbGFncykgOiB0cnVlOworICAgIGJvb2wgbG9hZENvbnRl
eHRNYXRjaGVzID0gbG9hZENvbnRleHRGbGFncyA/IChsb2FkQ29udGV4dEZsYWdzICYgZmxhZ3Mp
IDogdHJ1ZTsKICAgICBib29sIHJlc291cmNlVHlwZU1hdGNoZXMgPSByZXNvdXJjZVR5cGVGbGFn
cyA/IChyZXNvdXJjZVR5cGVGbGFncyAmIGZsYWdzKSA6IHRydWU7CiAgICAgCi0gICAgaWYgKGxv
YWRUeXBlTWF0Y2hlcyAmJiByZXNvdXJjZVR5cGVNYXRjaGVzKSB7CisgICAgaWYgKGxvYWRUeXBl
TWF0Y2hlcyAmJiBsb2FkQ29udGV4dE1hdGNoZXMgJiYgcmVzb3VyY2VUeXBlTWF0Y2hlcykgewog
ICAgICAgICB1aW50NjRfdCBhY3Rpb25BbmRGbGFncyA9IChpZkNvbmRpdGlvbiA/IElmQ29uZGl0
aW9uRmxhZyA6IDApIHwgKHN0YXRpY19jYXN0PHVpbnQ2NF90PihmbGFnc1RvQ2hlY2spIDw8IDMy
KSB8IHN0YXRpY19jYXN0PHVpbnQ2NF90PihnZXRCaXRzPHVpbnQzMl90PihtX2J5dGVjb2RlLCBt
X2J5dGVjb2RlTGVuZ3RoLCBwcm9ncmFtQ291bnRlciArIHNpemVvZihERkFCeXRlY29kZUluc3Ry
dWN0aW9uKSArIHNpemVvZih1aW50MTZfdCkpKTsKICAgICAgICAgaWYgKCFtX3RvcFVSTEFjdGlv
bnMgfHwgbWF0Y2hlc0NvbmRpdGlvbihhY3Rpb25BbmRGbGFncywgKm1fdG9wVVJMQWN0aW9ucykp
CiAgICAgICAgICAgICBhY3Rpb25zLmFkZChhY3Rpb25BbmRGbGFncyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAxMDk1MmU0YzVmNjM2ZjgyNjliMjVlN2I0Y2UxODE4
N2YxMWIxZWI3Li5kNzNmY2E1ODlmYzMyMzkzZjIwNjJmY2QyY2ZmOTVlNTlhMWNmYmZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTMwODEsNyArMzA4MSw3IEBAIHVu
c2lnbmVkIGxvbmcgRnJhbWVMb2FkZXI6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKSB7CiAgICAgICAg
IGlmIChhdXRvKiBwYWdlID0gbV9mcmFtZS5wYWdlKCkpIHsKICAgICAgICAgICAgIGlmIChtX2Rv
Y3VtZW50TG9hZGVyKSB7Ci0gICAgICAgICAgICAgICAgYXV0byByZXN1bHRzID0gcGFnZS0+dXNl
ckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCgqcGFnZSwg
bmV3UmVxdWVzdC51cmwoKSwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6UmF3LCAq
bV9kb2N1bWVudExvYWRlcik7CisgICAgICAgICAgICAgICAgYXV0byByZXN1bHRzID0gcGFnZS0+
dXNlckNvbnRlbnRQcm92aWRlcigpLnByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZCgqcGFn
ZSwgbmV3UmVxdWVzdC51cmwoKSwgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6RmV0
Y2gsICptX2RvY3VtZW50TG9hZGVyKTsKICAgICAgICAgICAgICAgICBib29sIGJsb2NrZWRMb2Fk
ID0gcmVzdWx0cy5zdW1tYXJ5LmJsb2NrZWRMb2FkOwogICAgICAgICAgICAgICAgIENvbnRlbnRF
eHRlbnNpb25zOjphcHBseVJlc3VsdHNUb1JlcXVlc3QoV1RGTW92ZShyZXN1bHRzKSwgcGFnZSwg
bmV3UmVxdWVzdCk7CiAgICAgICAgICAgICAgICAgaWYgKGJsb2NrZWRMb2FkKSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyLmNwcApp
bmRleCBmNTQ3YWIyZGE0ZDY0NjdhYmU1Njg2YzBlZmZlOTA0YTIxYWM3YWIxLi5lY2RkMTdhZTBi
NjdlNDU3M2UwNzk1YjEyNDA2OTZkOTIxY2RiNTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5jcHAKQEAgLTYwLDcgKzYwLDcg
QEAgTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI6Ok5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVy
KEZyYW1lJiBmcmFtZSwgTmV0c2NhcGVQbHUKICAgICAsIG1fY2xpZW50KG1ha2VXZWFrUHRyKGNs
aWVudCkpCiB7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLSAgICBtX3Jlc291cmNl
VHlwZSA9IHsgQ29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6UGx1Z0luU3RyZWFtIH07
CisgICAgbV9yZXNvdXJjZVR5cGUgPSB7IENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6
Ok90aGVyIH07CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BpbmdMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCmlu
ZGV4IGZjY2FlN2RlMTI5N2JmMWNjYWUyNGE0ZmIwOTY5YzFmYzNjZWMwZDcuLjhhYjk0NWVhMzhk
ODRkMzM4ZWU2ODI4MTZhOWFjZDk2NmYzN2U3OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9QaW5nTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xv
YWRlci5jcHAKQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIFBpbmdMb2FkZXI6OnNlbmRQaW5nKEZy
YW1lJiBmcmFtZSwgY29uc3QgVVJMJiBwaW5nVVJMLCBjb25zdCBVUkwmIGRlc3RpbmF0aQogICAg
IHJlcXVlc3Quc2V0UmVxdWVzdGVyKFJlc291cmNlUmVxdWVzdDo6UmVxdWVzdGVyOjpQaW5nKTsK
IAogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgaWYgKHByb2Nlc3NDb250ZW50
UnVsZUxpc3RzRm9yTG9hZChmcmFtZSwgcmVxdWVzdCwgeyBDb250ZW50RXh0ZW5zaW9uczo6UmVz
b3VyY2VUeXBlOjpSYXcsIENvbnRlbnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6OlBpbmcgfSkp
CisgICAgaWYgKHByb2Nlc3NDb250ZW50UnVsZUxpc3RzRm9yTG9hZChmcmFtZSwgcmVxdWVzdCwg
Q29udGVudEV4dGVuc2lvbnM6OlJlc291cmNlVHlwZTo6UGluZykpCiAgICAgICAgIHJldHVybjsK
ICNlbmRpZgogCkBAIC0xNTMsNyArMTUzLDcgQEAgdm9pZCBQaW5nTG9hZGVyOjpzZW5kVmlvbGF0
aW9uUmVwb3J0KEZyYW1lJiBmcmFtZSwgY29uc3QgVVJMJiByZXBvcnRVUkwsIFJlZjxGb3IKIAog
ICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KHJlcG9ydFVSTCk7CiAjaWYgRU5BQkxFKENPTlRF
TlRfRVhURU5TSU9OUykKLSAgICBpZiAocHJvY2Vzc0NvbnRlbnRSdWxlTGlzdHNGb3JMb2FkKGZy
YW1lLCByZXF1ZXN0LCBDb250ZW50RXh0ZW5zaW9uczo6UmVzb3VyY2VUeXBlOjpSYXcpKQorICAg
IGlmIChwcm9jZXNzQ29udGVudFJ1bGVMaXN0c0ZvckxvYWQoZnJhbWUsIHJlcXVlc3QsIENvbnRl
bnRFeHRlbnNpb25zOjpSZXNvdXJjZVR5cGU6Ok90aGVyKSkKICAgICAgICAgcmV0dXJuOwogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZv
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZvLmNwcAppbmRleCA2
OTU5NGU4ODMwYjE2ZjQ5MGM5ZWZlMjQ1MjNkODE2YTZlOWUxMzBlLi45NTdmMmE4NTk0NWU0ZDZl
NDUwODEzODNiZWVjNTM0MDdjYmIyMzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUmVzb3VyY2VMb2FkSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291
cmNlTG9hZEluZm8uY3BwCkBAIC02Myw3ICs2Myw3IEBAIE9wdGlvblNldDxSZXNvdXJjZVR5cGU+
IHRvUmVzb3VyY2VUeXBlKENhY2hlZFJlc291cmNlOjpUeXBlIHR5cGUsIFJlc291cmNlUmVxdWVz
CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6UmF3UmVzb3VyY2U6CiAgICAgICAgIGlm
IChyZXF1ZXN0ZXIgPT0gUmVzb3VyY2VSZXF1ZXN0QmFzZTo6UmVxdWVzdGVyOjpYSFIKICAgICAg
ICAgICAgIHx8IHJlcXVlc3RlciA9PSBSZXNvdXJjZVJlcXVlc3RCYXNlOjpSZXF1ZXN0ZXI6OkZl
dGNoKQotICAgICAgICAgICAgcmV0dXJuIHt7IFJlc291cmNlVHlwZTo6UmF3LCBSZXNvdXJjZVR5
cGU6OkZldGNoIH19OworICAgICAgICAgICAgcmV0dXJuIHsgUmVzb3VyY2VUeXBlOjpGZXRjaCB9
OwogICAgICAgICBGQUxMVEhST1VHSDsKICAgICBjYXNlIENhY2hlZFJlc291cmNlOjpUeXBlOjpC
ZWFjb246CiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6UGluZzoKQEAgLTc0LDcgKzc0
LDcgQEAgT3B0aW9uU2V0PFJlc291cmNlVHlwZT4gdG9SZXNvdXJjZVR5cGUoQ2FjaGVkUmVzb3Vy
Y2U6OlR5cGUgdHlwZSwgUmVzb3VyY2VSZXF1ZXMKICNpZiBFTkFCTEUoQVBQTElDQVRJT05fTUFO
SUZFU1QpCiAgICAgY2FzZSBDYWNoZWRSZXNvdXJjZTo6VHlwZTo6QXBwbGljYXRpb25NYW5pZmVz
dDoKICNlbmRpZgotICAgICAgICByZXR1cm4ge3sgUmVzb3VyY2VUeXBlOjpSYXcsIFJlc291cmNl
VHlwZTo6T3RoZXIgfX07CisgICAgICAgIHJldHVybiB7IFJlc291cmNlVHlwZTo6T3RoZXIgfTsK
IAogICAgIGNhc2UgQ2FjaGVkUmVzb3VyY2U6OlR5cGU6OlRleHRUcmFja1Jlc291cmNlOgogICAg
ICAgICByZXR1cm4geyBSZXNvdXJjZVR5cGU6Ok1lZGlhIH07CkBAIC04NCw3ICs4NCw3IEBAIE9w
dGlvblNldDxSZXNvdXJjZVR5cGU+IHRvUmVzb3VyY2VUeXBlKENhY2hlZFJlc291cmNlOjpUeXBl
IHR5cGUsIFJlc291cmNlUmVxdWVzCiAgICAgcmV0dXJuIHsgfTsKIH0KIAotT3B0aW9uYWw8T3B0
aW9uU2V0PFJlc291cmNlVHlwZT4+IHJlYWRSZXNvdXJjZVR5cGUoY29uc3QgU3RyaW5nJiBuYW1l
KQorT3B0aW9uYWw8T3B0aW9uU2V0PFJlc291cmNlVHlwZT4+IHJlYWRSZXNvdXJjZVR5cGUoU3Ry
aW5nVmlldyBuYW1lKQogewogICAgIGlmIChuYW1lID09ICJkb2N1bWVudCIpCiAgICAgICAgIHJl
dHVybiB7IFJlc291cmNlVHlwZTo6RG9jdW1lbnQgfTsKQEAgLTk3LDEzICs5NywxMyBAQCBPcHRp
b25hbDxPcHRpb25TZXQ8UmVzb3VyY2VUeXBlPj4gcmVhZFJlc291cmNlVHlwZShjb25zdCBTdHJp
bmcmIG5hbWUpCiAgICAgaWYgKG5hbWUgPT0gImZvbnQiKQogICAgICAgICByZXR1cm4geyBSZXNv
dXJjZVR5cGU6OkZvbnQgfTsKICAgICBpZiAobmFtZSA9PSAicmF3IikKLSAgICAgICAgcmV0dXJu
IHsgUmVzb3VyY2VUeXBlOjpSYXcgfTsKKyAgICAgICAgcmV0dXJuIHt7IFJlc291cmNlVHlwZTo6
RmV0Y2gsIFJlc291cmNlVHlwZTo6V2ViU29ja2V0LCBSZXNvdXJjZVR5cGU6Ok90aGVyLCBSZXNv
dXJjZVR5cGU6OlBpbmcgfX07CiAgICAgaWYgKG5hbWUgPT0gIndlYnNvY2tldCIpCiAgICAgICAg
IHJldHVybiB7IFJlc291cmNlVHlwZTo6V2ViU29ja2V0IH07CiAgICAgaWYgKG5hbWUgPT0gImZl
dGNoIikKICAgICAgICAgcmV0dXJuIHsgUmVzb3VyY2VUeXBlOjpGZXRjaCB9OwogICAgIGlmIChu
YW1lID09ICJvdGhlciIpCi0gICAgICAgIHJldHVybiB7IFJlc291cmNlVHlwZTo6T3RoZXIgfTsK
KyAgICAgICAgcmV0dXJuIHt7IFJlc291cmNlVHlwZTo6T3RoZXIsIFJlc291cmNlVHlwZTo6UGlu
ZyB9fTsKICAgICBpZiAobmFtZSA9PSAic3ZnLWRvY3VtZW50IikKICAgICAgICAgcmV0dXJuIHsg
UmVzb3VyY2VUeXBlOjpTVkdEb2N1bWVudCB9OwogICAgIGlmIChuYW1lID09ICJtZWRpYSIpCkBA
IC0xMTUsNyArMTE1LDcgQEAgT3B0aW9uYWw8T3B0aW9uU2V0PFJlc291cmNlVHlwZT4+IHJlYWRS
ZXNvdXJjZVR5cGUoY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CiB9CiAKLU9wdGlvbmFsPE9wdGlvblNldDxMb2FkVHlwZT4+IHJlYWRMb2FkVHlwZShjb25zdCBT
dHJpbmcmIG5hbWUpCitPcHRpb25hbDxPcHRpb25TZXQ8TG9hZFR5cGU+PiByZWFkTG9hZFR5cGUo
U3RyaW5nVmlldyBuYW1lKQogewogICAgIGlmIChuYW1lID09ICJmaXJzdC1wYXJ0eSIpCiAgICAg
ICAgIHJldHVybiB7IExvYWRUeXBlOjpGaXJzdFBhcnR5IH07CkBAIC0xMjQsNiArMTI0LDE1IEBA
IE9wdGlvbmFsPE9wdGlvblNldDxMb2FkVHlwZT4+IHJlYWRMb2FkVHlwZShjb25zdCBTdHJpbmcm
IG5hbWUpCiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KIAorT3B0aW9uYWw8T3B0aW9uU2V0
PExvYWRDb250ZXh0Pj4gcmVhZExvYWRDb250ZXh0KFN0cmluZ1ZpZXcgbmFtZSkKK3sKKyAgICBp
ZiAobmFtZSA9PSAidG9wLWZyYW1lIikKKyAgICAgICAgcmV0dXJuIHsgTG9hZENvbnRleHQ6OlRv
cEZyYW1lIH07CisgICAgaWYgKG5hbWUgPT0gImNoaWxkLWZyYW1lIikKKyAgICAgICAgcmV0dXJu
IHsgTG9hZENvbnRleHQ6OkNoaWxkRnJhbWUgfTsKKyAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
fQorCiBib29sIFJlc291cmNlTG9hZEluZm86OmlzVGhpcmRQYXJ0eSgpIGNvbnN0CiB7CiAgICAg
UmVmPFNlY3VyaXR5T3JpZ2luPiBtYWluRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9IFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGUobWFpbkRvY3VtZW50VVJMKTsKQEAgLTEzOCw2ICsxNDcsNyBAQCBSZXNv
dXJjZUZsYWdzIFJlc291cmNlTG9hZEluZm86OmdldFJlc291cmNlRmxhZ3MoKSBjb25zdAogICAg
IEFTU0VSVCghdHlwZS5pc0VtcHR5KCkpOwogICAgIGZsYWdzIHw9IHR5cGUudG9SYXcoKTsKICAg
ICBmbGFncyB8PSBpc1RoaXJkUGFydHkoKSA/IHN0YXRpY19jYXN0PFJlc291cmNlRmxhZ3M+KExv
YWRUeXBlOjpUaGlyZFBhcnR5KSA6IHN0YXRpY19jYXN0PFJlc291cmNlRmxhZ3M+KExvYWRUeXBl
OjpGaXJzdFBhcnR5KTsKKyAgICBmbGFncyB8PSBtYWluRnJhbWVDb250ZXh0ID8gc3RhdGljX2Nh
c3Q8UmVzb3VyY2VGbGFncz4oTG9hZENvbnRleHQ6OlRvcEZyYW1lKSA6IHN0YXRpY19jYXN0PFJl
c291cmNlRmxhZ3M+KExvYWRDb250ZXh0OjpDaGlsZEZyYW1lKTsKICAgICByZXR1cm4gZmxhZ3M7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRJbmZv
LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkSW5mby5oCmluZGV4IGExN2Jk
YmQ2YWI2MzhiNzFhYjdiMzIxZmEyZTdmNWJkMTExOGIyMjEuLmQ0NWI1Nzc5ODhmM2M0MGNmOTVi
ZTliNmNiMGRmZmM5OTU3NDExNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRJbmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZEluZm8uaApAQCAtNDAsMjYgKzQwLDMxIEBAIGVudW0gY2xhc3MgUmVzb3VyY2VUeXBlIDogdWlu
dDE2X3QgewogICAgIFN0eWxlU2hlZXQgPSAweDAwMDQsCiAgICAgU2NyaXB0ID0gMHgwMDA4LAog
ICAgIEZvbnQgPSAweDAwMTAsCi0gICAgUmF3ID0gMHgwMDIwLCAvLyBUaGlzIGJpdCBjYW4gYmUg
cmV1c2VkIG5leHQgdGltZSB3ZSBpbmNyZW1lbnQgQ3VycmVudENvbnRlbnRSdWxlTGlzdEZpbGVW
ZXJzaW9uLiBJdCBpcyBlcXVpdmFsZW50IHRvIHVzaW5nIEZldGNoIHwgV2ViU29ja2V0IHwgT3Ro
ZXIuCi0gICAgU1ZHRG9jdW1lbnQgPSAweDAwNDAsCi0gICAgTWVkaWEgPSAweDAwODAsCi0gICAg
UGx1Z0luU3RyZWFtID0gMHgwMTAwLAotICAgIFBvcHVwID0gMHgwMjAwLAotICAgIC8vIDB4MDQw
MCBhbmQgMHgwODAwIGFyZSB1c2VkIGJ5IExvYWRUeXBlLgotICAgIFBpbmcgPSAweDEwMDAsCi0g
ICAgRmV0Y2ggPSAweDIwMDAsCi0gICAgV2ViU29ja2V0ID0gMHg0MDAwLAotICAgIE90aGVyID0g
MHg4MDAwLAorICAgIFNWR0RvY3VtZW50ID0gMHgwMDIwLAorICAgIE1lZGlhID0gMHgwMDQwLAor
ICAgIFBvcHVwID0gMHgwMDgwLAorICAgIFBpbmcgPSAweDAxMDAsCisgICAgRmV0Y2ggPSAweDAy
MDAsCisgICAgV2ViU29ja2V0ID0gMHgwNDAwLAorICAgIE90aGVyID0gMHgwODAwLAogfTsKLWNv
bnN0IHVpbnQxNl90IFJlc291cmNlVHlwZU1hc2sgPSAweEYzRkY7Citjb25zdCB1aW50MTZfdCBS
ZXNvdXJjZVR5cGVNYXNrID0gMHgwRkZGOwogCiBlbnVtIGNsYXNzIExvYWRUeXBlIDogdWludDE2
X3QgewotICAgIEZpcnN0UGFydHkgPSAweDA0MDAsCi0gICAgVGhpcmRQYXJ0eSA9IDB4MDgwMCwK
KyAgICBGaXJzdFBhcnR5ID0gMHgxMDAwLAorICAgIFRoaXJkUGFydHkgPSAweDIwMDAsCiB9Owot
Y29uc3QgdWludDE2X3QgTG9hZFR5cGVNYXNrID0gMHgwQzAwOworY29uc3QgdWludDE2X3QgTG9h
ZFR5cGVNYXNrID0gMHgzMDAwOworCitlbnVtIGNsYXNzIExvYWRDb250ZXh0IDogdWludDE2X3Qg
eworICAgIFRvcEZyYW1lID0gMHg0MDAwLAorICAgIENoaWxkRnJhbWUgPSAweDgwMDAsCit9Owor
Y29uc3QgdWludDE2X3QgTG9hZENvbnRleHRNYXNrID0gMHhDMDAwOwogCiBzdGF0aWNfYXNzZXJ0
KCEoUmVzb3VyY2VUeXBlTWFzayAmIExvYWRUeXBlTWFzayksICJSZXNvdXJjZVR5cGVNYXNrIGFu
ZCBMb2FkVHlwZU1hc2sgc2hvdWxkIGJlIG11dHVhbGx5IGV4Y2x1c2l2ZSBiZWNhdXNlIHRoZXkg
YXJlIHN0b3JlZCBpbiB0aGUgc2FtZSB1aW50MTZfdCIpOworc3RhdGljX2Fzc2VydCghKFJlc291
cmNlVHlwZU1hc2sgJiBMb2FkQ29udGV4dE1hc2spLCAiUmVzb3VyY2VUeXBlTWFzayBhbmQgTG9h
ZENvbnRleHRNYXNrIHNob3VsZCBiZSBtdXR1YWxseSBleGNsdXNpdmUgYmVjYXVzZSB0aGV5IGFy
ZSBzdG9yZWQgaW4gdGhlIHNhbWUgdWludDE2X3QiKTsKK3N0YXRpY19hc3NlcnQoIShMb2FkQ29u
dGV4dE1hc2sgJiBMb2FkVHlwZU1hc2spLCAiTG9hZENvbnRleHRNYXNrIGFuZCBMb2FkVHlwZU1h
c2sgc2hvdWxkIGJlIG11dHVhbGx5IGV4Y2x1c2l2ZSBiZWNhdXNlIHRoZXkgYXJlIHN0b3JlZCBp
biB0aGUgc2FtZSB1aW50MTZfdCIpOwogCiB0eXBlZGVmIHVpbnQxNl90IFJlc291cmNlRmxhZ3M7
CiAKQEAgLTc0LDEzICs3OSwxNSBAQCBjb25zdCB1aW50NjRfdCBBY3Rpb25GbGFnTWFzayA9IDB4
MDAwMEZGRkYwMDAwMDAwMDsKIGNvbnN0IHVpbnQ2NF90IElmQ29uZGl0aW9uRmxhZyA9IDB4MDAw
MTAwMDAwMDAwMDAwMDsKIAogT3B0aW9uU2V0PFJlc291cmNlVHlwZT4gdG9SZXNvdXJjZVR5cGUo
Q2FjaGVkUmVzb3VyY2U6OlR5cGUsIFJlc291cmNlUmVxdWVzdEJhc2U6OlJlcXVlc3Rlcik7Ci1P
cHRpb25hbDxPcHRpb25TZXQ8UmVzb3VyY2VUeXBlPj4gcmVhZFJlc291cmNlVHlwZShjb25zdCBT
dHJpbmcmKTsKLU9wdGlvbmFsPE9wdGlvblNldDxMb2FkVHlwZT4+IHJlYWRMb2FkVHlwZShjb25z
dCBTdHJpbmcmKTsKK09wdGlvbmFsPE9wdGlvblNldDxSZXNvdXJjZVR5cGU+PiByZWFkUmVzb3Vy
Y2VUeXBlKFN0cmluZ1ZpZXcpOworT3B0aW9uYWw8T3B0aW9uU2V0PExvYWRUeXBlPj4gcmVhZExv
YWRUeXBlKFN0cmluZ1ZpZXcpOworT3B0aW9uYWw8T3B0aW9uU2V0PExvYWRDb250ZXh0Pj4gcmVh
ZExvYWRDb250ZXh0KFN0cmluZ1ZpZXcpOwogCiBzdHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbyB7CiAg
ICAgVVJMIHJlc291cmNlVVJMOwogICAgIFVSTCBtYWluRG9jdW1lbnRVUkw7CiAgICAgT3B0aW9u
U2V0PFJlc291cmNlVHlwZT4gdHlwZTsKKyAgICBib29sIG1haW5GcmFtZUNvbnRleHQgeyBmYWxz
ZSB9OwogCiAgICAgYm9vbCBpc1RoaXJkUGFydHkoKSBjb25zdDsKICAgICBSZXNvdXJjZUZsYWdz
IGdldFJlc291cmNlRmxhZ3MoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuY3BwCmluZGV4IGY0NDRiMzQ3NGMw
OTE1OTNkZTUwYzhmNzExOGJjOWM4M2YzODZlMzkuLjkzMGIxN2YzZTE5NDZmZDVlYWEyZmM3ZDk2
YWU3M2EzMGExMTg0YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElDb250ZW50UnVsZUxpc3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcApAQCAtNTc2LDYgKzU3Niw3IEBAIHZvaWQg
Q29udGVudFJ1bGVMaXN0U3RvcmU6OmdldENvbnRlbnRSdWxlTGlzdFNvdXJjZShjb25zdCBXVEY6
OlN0cmluZyYgaWRlbnRpZmllCiAgICAgICAgIHN3aXRjaCAoY29udGVudFJ1bGVMaXN0LT5tZXRh
RGF0YS52ZXJzaW9uKSB7CiAgICAgICAgIGNhc2UgOToKICAgICAgICAgY2FzZSAxMDoKKyAgICAg
ICAgY2FzZSAxMToKICAgICAgICAgICAgIGlmICghY29udGVudFJ1bGVMaXN0LT5tZXRhRGF0YS5z
b3VyY2VTaXplKSB7CiAgICAgICAgICAgICAgICAgY29tcGxldGUoeyB9KTsKICAgICAgICAgICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
Q29udGVudFJ1bGVMaXN0U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElD
b250ZW50UnVsZUxpc3RTdG9yZS5oCmluZGV4IDBjYWVlNTZmOGUyMjM3NzdjOWZiYjA3ZjI0MWY3
NzYwZDZlNjc0MGMuLmE3NzI0NDQzYTQ4MWU5NDI2NDY5MTgyNzU1NWIwYjU2ZWY1ODVjNjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxp
c3RTdG9yZS5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICAvLyBBbHNvIHVwZGF0ZSBD
b250ZW50UnVsZUxpc3RTdG9yZTo6Z2V0Q29udGVudFJ1bGVMaXN0U291cmNlIHRvIGJlIGFibGUg
dG8gZmluZCB0aGUgb3JpZ2luYWwgSlNPTgogICAgIC8vIHNvdXJjZSBmcm9tIG9sZCB2ZXJzaW9u
cy4KICAgICAvLyBVcGRhdGUgQ29udGVudFJ1bGVMaXN0U3RvcmU6OmdldENvbnRlbnRSdWxlTGlz
dFNvdXJjZSB3aXRoIHRoaXMuCi0gICAgc3RhdGljIGNvbnN0ZXhwciB1aW50MzJfdCBDdXJyZW50
Q29udGVudFJ1bGVMaXN0RmlsZVZlcnNpb24gPSAxMDsKKyAgICBzdGF0aWMgY29uc3RleHByIHVp
bnQzMl90IEN1cnJlbnRDb250ZW50UnVsZUxpc3RGaWxlVmVyc2lvbiA9IDExOwogCiAgICAgc3Rh
dGljIENvbnRlbnRSdWxlTGlzdFN0b3JlJiBkZWZhdWx0U3RvcmUoYm9vbCBsZWdhY3lGaWxlbmFt
ZSk7CiAgICAgc3RhdGljIFJlZjxDb250ZW50UnVsZUxpc3RTdG9yZT4gc3RvcmVXaXRoUGF0aChj
b25zdCBXVEY6OlN0cmluZyYgc3RvcmVQYXRoLCBib29sIGxlZ2FjeUZpbGVuYW1lKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1OTgwMzg4Nzdh
Zjc0Y2M3YjNlNWNhN2RhZTI5YTQ3ZDZkNjNiYjM3Li45MTVlZDRkMmEzMTY5NWE2ZGRlZDgzMWZh
YzhkNGE2OWIxNDlmOGI5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMDMtMjUgIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBbGxvdyBXS0NvbnRlbnRSdWxl
TGlzdCB0byBibG9jayBvbmx5IGluIGZyYW1lcyBvciBvbmx5IGluIG1haW4gZnJhbWUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTAwMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IEJlbiBQb3VsYWluLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9D
b250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24ubW06CisgICAgICAgIChURVNUKToKKwogMjAyMS0w
My0yMiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjc3MtY29udGFp
bl0gUGFyc2UgQ1NTIGNvbnRhaW4gcHJvcGVydHkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ29udGVudEV4dGVuc2lvbnMuY3BwCmluZGV4IGMyN2JlODk1
ZjBiNzlmOWZmZjI3NDJmMDU5MTZmZjU1NjEyNmIyOGQuLjE2Y2FkNTIxODQ3NjMyMTI2NWFlZTE4
YWIwNDc4OTgxNGNhNDZlMzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9Db250ZW50RXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25zLmNwcApAQCAtMTE2NCw3ICsxMTY0LDcgQEAg
VEVTVF9GKENvbnRlbnRFeHRlbnNpb25UZXN0LCBSZXNvdXJjZVR5cGUpCiAgICAgdGVzdFJlcXVl
c3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgiaHR0cDovL2Jsb2NrX2FsbF90eXBlcy5v
cmciLCBSZXNvdXJjZVR5cGU6OlN0eWxlU2hlZXQpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rp
b25UeXBlOjpCbG9ja0xvYWQgfSk7CiAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3Vt
ZW50UmVxdWVzdCgiaHR0cDovL2Jsb2NrX2FsbF90eXBlcy5vcmciLCBSZXNvdXJjZVR5cGU6OlNj
cmlwdCksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6OkJsb2NrTG9hZCB9KTsKICAg
ICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vYmxvY2tf
YWxsX3R5cGVzLm9yZyIsIFJlc291cmNlVHlwZTo6Rm9udCksIHsgQ29udGVudEV4dGVuc2lvbnM6
OkFjdGlvblR5cGU6OkJsb2NrTG9hZCB9KTsKLSAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBtYWlu
RG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vYmxvY2tfYWxsX3R5cGVzLm9yZyIsIFJlc291cmNlVHlw
ZTo6UmF3KSwgeyBDb250ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0pOwor
ICAgIHRlc3RSZXF1ZXN0KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly9ibG9j
a19hbGxfdHlwZXMub3JnIiwgUmVzb3VyY2VUeXBlOjpPdGhlciksIHsgQ29udGVudEV4dGVuc2lv
bnM6OkFjdGlvblR5cGU6OkJsb2NrTG9hZCB9KTsKICAgICB0ZXN0UmVxdWVzdChiYWNrZW5kLCBt
YWluRG9jdW1lbnRSZXF1ZXN0KCJodHRwOi8vYmxvY2tfYWxsX3R5cGVzLm9yZyIsIFJlc291cmNl
VHlwZTo6U1ZHRG9jdW1lbnQpLCB7IENvbnRlbnRFeHRlbnNpb25zOjpBY3Rpb25UeXBlOjpCbG9j
a0xvYWQgfSk7CiAgICAgdGVzdFJlcXVlc3QoYmFja2VuZCwgbWFpbkRvY3VtZW50UmVxdWVzdCgi
aHR0cDovL2Jsb2NrX2FsbF90eXBlcy5vcmciLCBSZXNvdXJjZVR5cGU6Ok1lZGlhKSwgeyBDb250
ZW50RXh0ZW5zaW9uczo6QWN0aW9uVHlwZTo6QmxvY2tMb2FkIH0pOwogICAgIHRlc3RSZXF1ZXN0
KGJhY2tlbmQsIG1haW5Eb2N1bWVudFJlcXVlc3QoImh0dHA6Ly9ibG9ja19hbGxfdHlwZXMub3Jn
IiwgUmVzb3VyY2VUeXBlOjpQb3B1cCksIHsgQ29udGVudEV4dGVuc2lvbnM6OkFjdGlvblR5cGU6
OkJsb2NrTG9hZCB9KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvQ29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24ubW0KaW5k
ZXggNzk0NjMzZGEzMDQ5YWUzNmU4YjUzMTUyNjIwNzYwMjdmNzRhODlmZS4uNjc5NDQ5NTdkMmEw
MDBkNDMyNTI0YTM1NzM5MjMyZDE5ZTIwMjVlMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24ubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db250ZW50UnVsZUxpc3RO
b3RpZmljYXRpb24ubW0KQEAgLTMwMiw2ICszMDIsNzcgQEAgVEVTVChDb250ZW50UnVsZUxpc3Qs
IFN1cHBvcnRzUmVnZXgpCiAgICAgICAgIEVYUEVDVF9GQUxTRShbV0tDb250ZW50UnVsZUxpc3Qg
X3N1cHBvcnRzUmVndWxhckV4cHJlc3Npb246cmVnZXhdKTsKIH0KIAorVEVTVChDb250ZW50UnVs
ZUxpc3QsIFRvcEZyYW1lQ2hpbGRGcmFtZSkKK3sKKyAgICBhdXRvIGhhbmRsZXIgPSBbW1Rlc3RV
UkxTY2hlbWVIYW5kbGVyIG5ld10gYXV0b3JlbGVhc2VdOworICAgIF9fYmxvY2sgYm9vbCBsb2Fk
ZWRJRnJhbWUgPSBmYWxzZTsKKyAgICBoYW5kbGVyLnN0YXJ0VVJMU2NoZW1lVGFza0hhbmRsZXIg
PSBeKFdLV2ViVmlldyAqLCBpZDxXS1VSTFNjaGVtZVRhc2s+IHRhc2spIHsKKyAgICAgICAgYXV0
byByZXNwb25kID0gW3Rhc2tdIChjb25zdCBjaGFyKiBodG1sKSB7CisgICAgICAgICAgICBOU1VS
TFJlc3BvbnNlICpyZXNwb25zZSA9IFtbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJM
OnRhc2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExl
bmd0aDpzdHJsZW4oaHRtbCkgdGV4dEVuY29kaW5nTmFtZTpuaWxdIGF1dG9yZWxlYXNlXTsKKyAg
ICAgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZV07CisgICAgICAgICAg
ICBbdGFzayBkaWRSZWNlaXZlRGF0YTpbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6aHRtbCBsZW5ndGg6
c3RybGVuKGh0bWwpXV07CisgICAgICAgICAgICBbdGFzayBkaWRGaW5pc2hdOworICAgICAgICB9
OworICAgICAgICBOU1N0cmluZyAqcGF0aCA9IHRhc2sucmVxdWVzdC5VUkwucGF0aDsKKyAgICAg
ICAgaWYgKFtwYXRoIGlzRXF1YWxUb1N0cmluZzpAIi9tYWluLmh0bWwiXSkKKyAgICAgICAgICAg
IHJldHVybiByZXNwb25kKCI8aWZyYW1lIHNyYz0nZnJhbWUuaHRtbCc+PC9pZnJhbWU+Iik7Cisg
ICAgICAgIGlmIChbcGF0aCBpc0VxdWFsVG9TdHJpbmc6QCIvZnJhbWUuaHRtbCJdKSB7CisgICAg
ICAgICAgICBFWFBFQ1RfRkFMU0UobG9hZGVkSUZyYW1lKTsKKyAgICAgICAgICAgIGxvYWRlZElG
cmFtZSA9IHRydWU7CisgICAgICAgICAgICByZXR1cm4gcmVzcG9uZCgiaGkiKTsKKyAgICAgICAg
fQorICAgICAgICBpZiAoW3BhdGggaXNFcXVhbFRvU3RyaW5nOkAiL2ZldGNoX21haW4uaHRtbCJd
KSB7CisgICAgICAgICAgICByZXR1cm4gcmVzcG9uZCgiPHNjcmlwdD4iCisgICAgICAgICAgICAg
ICAgImZ1bmN0aW9uIGFkZGlmcmFtZSgpIHsgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2lmcmFtZScpOyBpZnJhbWUuc3JjID0gJ2ZldGNoX2lmcmFtZS5odG1sJzsgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOyB9OyIKKyAgICAgICAgICAgICAgICAiZnVuY3Rp
b24gdGVzdGZldGNoKCkgeyBmZXRjaCgnL2ZldGNoZWQudHh0JykudGhlbigoKT0+e2FsZXJ0KCdt
YWluIGZyYW1lIGZldGNoZWQgc3VjY2Vzc2Z1bGx5Jyk7YWRkaWZyYW1lKCl9KS5jYXRjaCgoKT0+
e2FsZXJ0KCdtYWluIGZyYW1lIGZldGNoIGZhaWxlZCcpO2FkZGlmcmFtZSgpO30pIH0iCisgICAg
ICAgICAgICAgICAgIjwvc2NyaXB0Pjxib2R5IG9ubG9hZD0ndGVzdGZldGNoKCknLz4iKTsKKyAg
ICAgICAgfQorICAgICAgICBpZiAoW3BhdGggaXNFcXVhbFRvU3RyaW5nOkAiL2ZldGNoZWQudHh0
Il0pCisgICAgICAgICAgICByZXR1cm4gcmVzcG9uZCgiaGkiKTsKKyAgICAgICAgaWYgKFtwYXRo
IGlzRXF1YWxUb1N0cmluZzpAIi9mZXRjaF9pZnJhbWUuaHRtbCJdKSB7CisgICAgICAgICAgICBy
ZXR1cm4gcmVzcG9uZCgiPHNjcmlwdD4iCisgICAgICAgICAgICAgICAgImZ1bmN0aW9uIHRlc3Rm
ZXRjaCgpIHsgZmV0Y2goJy9mZXRjaGVkLnR4dCcpLnRoZW4oKCk9PnthbGVydCgnaWZyYW1lIGZl
dGNoZWQgc3VjY2Vzc2Z1bGx5Jyl9KS5jYXRjaCgoKT0+e2FsZXJ0KCdpZnJhbWUgZmV0Y2ggZmFp
bGVkJyk7fSkgfSIKKyAgICAgICAgICAgICAgICAiPC9zY3JpcHQ+PGJvZHkgb25sb2FkPSd0ZXN0
ZmV0Y2goKScvPiIpOworICAgICAgICB9CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwor
ICAgIH07CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gW1tXS1dlYlZpZXdDb25maWd1cmF0aW9u
IG5ld10gYXV0b3JlbGVhc2VdOworICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRs
ZXI6aGFuZGxlciBmb3JVUkxTY2hlbWU6QCJ0ZXN0Il07CisgICAgY29uZmlndXJhdGlvbi53ZWJz
aXRlRGF0YVN0b3JlID0gW1dLV2Vic2l0ZURhdGFTdG9yZSBub25QZXJzaXN0ZW50RGF0YVN0b3Jl
XTsKKyAgICBhdXRvIHdlYlZpZXcgPSBbW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6
Q0dSZWN0WmVybyBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dIGF1dG9yZWxlYXNlXTsKKyAg
ICBXS1VzZXJDb250ZW50Q29udHJvbGxlciAqdXNlckNvbnRlbnRDb250cm9sbGVyID0gd2ViVmll
dy5jb25maWd1cmF0aW9uLnVzZXJDb250ZW50Q29udHJvbGxlcjsKKworICAgIFt3ZWJWaWV3IGxv
YWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJ0ZXN0Oi8vL21haW4uaHRtbCJdXV07CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRp
ZEZpbmlzaE5hdmlnYXRpb25dOworICAgIEVYUEVDVF9UUlVFKGxvYWRlZElGcmFtZSk7CisKKyAg
ICBbdXNlckNvbnRlbnRDb250cm9sbGVyIGFkZENvbnRlbnRSdWxlTGlzdDptYWtlQ29udGVudFJ1
bGVMaXN0KEAiW3tcImFjdGlvblwiOntcInR5cGVcIjpcImJsb2NrXCJ9LFwidHJpZ2dlclwiOntc
InVybC1maWx0ZXJcIjpcInRlc3RcIixcImxvYWQtY29udGV4dFwiOltcImNoaWxkLWZyYW1lXCJd
fX1dIikuZ2V0KCldOworICAgIGxvYWRlZElGcmFtZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHJl
bG9hZF07CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmlnYXRpb25dOwor
ICAgIEVYUEVDVF9GQUxTRShsb2FkZWRJRnJhbWUpOworICAgIAorICAgIFt1c2VyQ29udGVudENv
bnRyb2xsZXIgcmVtb3ZlQWxsQ29udGVudFJ1bGVMaXN0c107CisgICAgCisgICAgW3dlYlZpZXcg
bG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0
cmluZzpAInRlc3Q6Ly8vZmV0Y2hfbWFpbi5odG1sIl1dXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEo
W3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckFsZXJ0XSwgIm1haW4gZnJhbWUgZmV0Y2hlZCBzdWNjZXNz
ZnVsbHkiKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckFsZXJ0
XSwgImlmcmFtZSBmZXRjaGVkIHN1Y2Nlc3NmdWxseSIpOworCisgICAgYXV0byBsaXN0V2l0aExv
YWRDb250ZXh0ID0gW10gKGNvbnN0IGNoYXIqIHR5cGUpIHsKKyAgICAgICAgcmV0dXJuIG1ha2VD
b250ZW50UnVsZUxpc3QoW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJbe1wiYWN0aW9uXCI6
e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwidGVzdFwi
LFwibG9hZC1jb250ZXh0XCI6W1wiJXNcIl0sXCJyZXNvdXJjZS10eXBlXCI6W1wiZmV0Y2hcIl19
fV0iLCB0eXBlXSk7CisgICAgfTsKKyAgICBbdXNlckNvbnRlbnRDb250cm9sbGVyIGFkZENvbnRl
bnRSdWxlTGlzdDpsaXN0V2l0aExvYWRDb250ZXh0KCJjaGlsZC1mcmFtZSIpLmdldCgpXTsKKyAg
ICBbd2ViVmlldyByZWxvYWRdOworICAgIEVYUEVDVF9XS19TVFJFUShbd2ViVmlldyBfdGVzdF93
YWl0Rm9yQWxlcnRdLCAibWFpbiBmcmFtZSBmZXRjaGVkIHN1Y2Nlc3NmdWxseSIpOworICAgIEVY
UEVDVF9XS19TVFJFUShbd2ViVmlldyBfdGVzdF93YWl0Rm9yQWxlcnRdLCAiaWZyYW1lIGZldGNo
IGZhaWxlZCIpOworCisgICAgW3VzZXJDb250ZW50Q29udHJvbGxlciByZW1vdmVBbGxDb250ZW50
UnVsZUxpc3RzXTsKKyAgICBbdXNlckNvbnRlbnRDb250cm9sbGVyIGFkZENvbnRlbnRSdWxlTGlz
dDpsaXN0V2l0aExvYWRDb250ZXh0KCJ0b3AtZnJhbWUiKS5nZXQoKV07CisgICAgW3dlYlZpZXcg
cmVsb2FkXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckFsZXJ0
XSwgIm1haW4gZnJhbWUgZmV0Y2ggZmFpbGVkIik7CisgICAgRVhQRUNUX1dLX1NUUkVRKFt3ZWJW
aWV3IF90ZXN0X3dhaXRGb3JBbGVydF0sICJpZnJhbWUgZmV0Y2hlZCBzdWNjZXNzZnVsbHkiKTsK
K30KKwogI2lmIEhBVkUoU1NMKQogCiBURVNUKFdlYktpdCwgUmVkaXJlY3RUb1BsYWludGV4dEhU
VFBTVXBncmFkZSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>