<?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>195511</bug_id>
          
          <creation_ts>2019-03-08 21:05:04 -0800</creation_ts>
          <short_desc>Add a WKContentRuleList variant that uses copied memory instead of mmap&apos;d shared memory for class A containerized apps</short_desc>
          <delta_ts>2019-03-11 13:21:48 -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>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1514324</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-08 21:05:04 -0800</bug_when>
    <thetext>Add a WKContentRuleList variant that uses copied memory instead of mmap&apos;d shared memory for class A containerized apps</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514325</commentid>
    <comment_count>1</comment_count>
      <attachid>364112</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-08 21:08:36 -0800</bug_when>
    <thetext>Created attachment 364112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514326</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-08 21:08:38 -0800</bug_when>
    <thetext>&lt;rdar://problem/44873269&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514328</commentid>
    <comment_count>3</comment_count>
      <attachid>364114</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-08 21:18:49 -0800</bug_when>
    <thetext>Created attachment 364114
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514391</commentid>
    <comment_count>4</comment_count>
      <attachid>364114</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-03-09 09:45:12 -0800</bug_when>
    <thetext>Comment on attachment 364114
Patch

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

&gt; Source/WebKit/Shared/WebCompiledContentRuleListData.cpp:46
&gt; +        return static_cast&lt;const void*&gt;(sharedMemoryOrBuffer-&gt;data());

Surprised that a typecast is needed here. Is there a way to write it without the static_cast?

&gt; Source/WebKit/UIProcess/API/APIContentRuleListStore.cpp:167
&gt; +    function(reinterpret_cast&lt;const uint8_t*&gt;(data.data()), data.size());

Use of SharedBuffer::data is normally discouraged; instead we try to use iteration. I suppose, though, that in this case the reasons for that don’t really apply. Make me wonder about the future of the SharedBuffer interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514698</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-10 22:10:41 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 364114 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=364114&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Shared/WebCompiledContentRuleListData.cpp:46
&gt; &gt; +        return static_cast&lt;const void*&gt;(sharedMemoryOrBuffer-&gt;data());
&gt; 
&gt; Surprised that a typecast is needed here. Is there a way to write it without
&gt; the static_cast?
It couldn&apos;t infer whether the type was I&apos;ll use a trailing return type on the lambda instead.  Otherwise it tries to guess whether it needs to return a void* (from SharedMemory::data) or a const char* (from SharedBuffer::data).

&gt; &gt; Source/WebKit/UIProcess/API/APIContentRuleListStore.cpp:167
&gt; &gt; +    function(reinterpret_cast&lt;const uint8_t*&gt;(data.data()), data.size());
&gt; 
&gt; Use of SharedBuffer::data is normally discouraged; instead we try to use
&gt; iteration. I suppose, though, that in this case the reasons for that don’t
&gt; really apply. Make me wonder about the future of the SharedBuffer interface.
We should just make SharedBuffer::DataSegment a first-class serializable object and use that instead of a SharedBuffer which we know has only one segment.  Because of the nature of this radar, I&apos;m going to not do that in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514699</commentid>
    <comment_count>6</comment_count>
      <attachid>364233</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-10 22:12:21 -0700</bug_when>
    <thetext>Created attachment 364233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514708</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-10 23:03:22 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 364233:

legacy-animation-engine/imported/blink/animations/animation-events-unprefixed-02.html bug 195545 (authors: dino@apple.com and graouts@apple.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514709</commentid>
    <comment_count>8</comment_count>
      <attachid>364233</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-10 23:04:06 -0700</bug_when>
    <thetext>Comment on attachment 364233
Patch

Clearing flags on attachment: 364233

Committed r242698: &lt;https://trac.webkit.org/changeset/242698&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514710</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-10 23:04:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514770</commentid>
    <comment_count>10</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-03-11 08:10:54 -0700</bug_when>
    <thetext>The changes in https://trac.webkit.org/changeset/242698/webkit

Appear to have caused an API test crash on Mac and iOS:

Mac 
Crashed

    TestWebKitAPI.WKContentRuleListStoreTest.UnsafeMMap
        _RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.

iOS
Crashed

    TestWebKitAPI.WKContentRuleListStoreTest.UnsafeMMap
        Child process terminated with signal 11: Segmentation fault

Build:
https://build.webkit.org/builders/Apple%20Mojave%20Release%20WK1%20%28Tests%29/builds/3519</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514818</commentid>
    <comment_count>11</comment_count>
      <attachid>364114</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-03-11 09:46:45 -0700</bug_when>
    <thetext>Comment on attachment 364114
Patch

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

&gt;&gt;&gt; Source/WebKit/Shared/WebCompiledContentRuleListData.cpp:46
&gt;&gt;&gt; +        return static_cast&lt;const void*&gt;(sharedMemoryOrBuffer-&gt;data());
&gt;&gt; 
&gt;&gt; Surprised that a typecast is needed here. Is there a way to write it without the static_cast?
&gt; 
&gt; It couldn&apos;t infer whether the type was I&apos;ll use a trailing return type on the lambda instead.  Otherwise it tries to guess whether it needs to return a void* (from SharedMemory::data) or a const char* (from SharedBuffer::data).

Yes, the return type on the lambda was what I (vaguely) had in mind.

&gt;&gt;&gt; Source/WebKit/UIProcess/API/APIContentRuleListStore.cpp:167
&gt;&gt;&gt; +    function(reinterpret_cast&lt;const uint8_t*&gt;(data.data()), data.size());
&gt;&gt; 
&gt;&gt; Use of SharedBuffer::data is normally discouraged; instead we try to use iteration. I suppose, though, that in this case the reasons for that don’t really apply. Make me wonder about the future of the SharedBuffer interface.
&gt; 
&gt; We should just make SharedBuffer::DataSegment a first-class serializable object and use that instead of a SharedBuffer which we know has only one segment.  Because of the nature of this radar, I&apos;m going to not do that in this patch.

Does sound like the best solution in the longer term.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514822</commentid>
    <comment_count>12</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-11 09:51:06 -0700</bug_when>
    <thetext>Reverted in http://trac.webkit.org/r242710 to investigate why the test crashed on the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514901</commentid>
    <comment_count>13</comment_count>
      <attachid>364274</attachid>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-03-11 11:50:27 -0700</bug_when>
    <thetext>Created attachment 364274
crash log

Crash log off of bot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514940</commentid>
    <comment_count>14</comment_count>
      <attachid>364233</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-11 12:48:29 -0700</bug_when>
    <thetext>Comment on attachment 364233
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/WKContentExtensionStore.mm:408
&gt; +    NSString *ruleListSourceString = @&quot;[{\&quot;action\&quot;:{\&quot;type\&quot;:\&quot;block\&quot;},\&quot;trigger\&quot;:{\&quot;url-filter\&quot;:\&quot;blockedsubresource\&quot;}}]&quot;;

I could reproduce this on my High Sierra machine.  My NSStrings were not being retained.  That was causing a UAF crash after using them after the autoreleasepool had been drained.  I&apos;m fixing this by using &quot;static NSString *&quot; and RetainPtr.
The problem was just with the test, not with the change.  Whew!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514941</commentid>
    <comment_count>15</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-11 12:49:23 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514942</commentid>
    <comment_count>16</comment_count>
      <attachid>364279</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-11 12:49:24 -0700</bug_when>
    <thetext>Created attachment 364279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514966</commentid>
    <comment_count>17</comment_count>
      <attachid>364279</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-11 13:21:46 -0700</bug_when>
    <thetext>Comment on attachment 364279
Patch

Clearing flags on attachment: 364279

Committed r242735: &lt;https://trac.webkit.org/changeset/242735&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1514967</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-11 13:21:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364112</attachid>
            <date>2019-03-08 21:08:36 -0800</date>
            <delta_ts>2019-03-08 21:18:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195511-20190308210835.patch</filename>
            <type>text/plain</type>
            <size>48075</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY0IEBACisyMDE5LTAzLTA4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGEgV0tDb250
ZW50UnVsZUxpc3QgdmFyaWFudCB0aGF0IHVzZXMgY29waWVkIG1lbW9yeSBpbnN0ZWFkIG9mIG1t
YXAnZCBzaGFyZWQgbWVtb3J5IGZvciBjbGFzcyBBIGNvbnRhaW5lcml6ZWQgYXBwcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NTExCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NDg3MzI2OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxp
c3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NvbnRlbnRSdWxlTGlzdE1h
bmFnZXI6OmFkZENvbnRlbnRSdWxlTGlzdHMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDYWNoZTo6cGF0aFJlZ2lzdGVyZWRBc1Vuc2FmZVRvTWVtb3J5TWFwRm9yVGVzdGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6cmVnaXN0ZXJQYXRoQXNVbnNhZmVUb01lbW9y
eU1hcEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OmlzU2FmZVRv
VXNlTWVtb3J5TWFwRm9yUGF0aCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlRmlsZVN5c3RlbS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJDb21waWxlZENvbnRl
bnRSdWxlTGlzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0Ojp1c2VzQ29waWVkTWVtb3J5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcGls
ZWRDb250ZW50UnVsZUxpc3Q6OmNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbiBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0OjpmaWx0ZXJzV2l0aG91
dENvbmRpdGlvbnNCeXRlY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0OjpmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0Ojp0b3BVUkxGaWx0ZXJz
Qnl0ZWNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxl
TGlzdDo6YWN0aW9ucyBjb25zdCk6CisgICAgICAgICogU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVu
dFJ1bGVMaXN0Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0
RGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YTo6c2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0RGF0YTo6ZGF0YVBvaW50ZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21waWxl
ZENvbnRlbnRSdWxlTGlzdERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRh
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdC5jcHA6CisgICAg
ICAgIChBUEk6OkNvbnRlbnRSdWxlTGlzdDo6dXNlc0NvcGllZE1lbW9yeSBjb25zdCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3QuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6Z2V0
RGF0YSk6CisgICAgICAgIChBUEk6OmRlY29kZUNvbnRlbnRSdWxlTGlzdE1ldGFEYXRhKToKKyAg
ICAgICAgKEFQSTo6Q29udGVudFJ1bGVMaXN0U3RvcmU6OnJlYWRDb250ZW50c09mRmlsZSk6Cisg
ICAgICAgIChBUEk6Ok1hcHBlZE9yQ29waWVkRGF0YTo6ZGF0YVBvaW50ZXIgY29uc3QpOgorICAg
ICAgICAoQVBJOjpvcGVuQW5kTWFwT3JDb3B5Q29udGVudFJ1bGVMaXN0KToKKyAgICAgICAgKEFQ
STo6Y29tcGlsZWRUb0ZpbGUpOgorICAgICAgICAoQVBJOjpjcmVhdGVFeHRlbnNpb24pOgorICAg
ICAgICAoQVBJOjpDb250ZW50UnVsZUxpc3RTdG9yZTo6bG9va3VwQ29udGVudFJ1bGVMaXN0KToK
KyAgICAgICAgKEFQSTo6Q29udGVudFJ1bGVMaXN0U3RvcmU6OmNvbXBpbGVDb250ZW50UnVsZUxp
c3QpOgorICAgICAgICAoQVBJOjpDb250ZW50UnVsZUxpc3RTdG9yZTo6Z2V0Q29udGVudFJ1bGVM
aXN0U291cmNlKToKKyAgICAgICAgKEFQSTo6b3BlbkFuZE1hcENvbnRlbnRSdWxlTGlzdCk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmVD
b2NvYS5tbToKKyAgICAgICAgKEFQSTo6Q29udGVudFJ1bGVMaXN0U3RvcmU6OnJlYWRDb250ZW50
c09mRmlsZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlz
dFN0b3JlLm1tOgorICAgICAgICAoK1tXS0NvbnRlbnRSdWxlTGlzdFN0b3JlIF9yZWdpc3RlclBh
dGhBc1Vuc2FmZVRvTWVtb3J5TWFwRm9yVGVzdGluZzpdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0U3RvcmVQcml2YXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEZpbHRlci5tbToKKyAgICAgICAgKC1bX1dL
VXNlckNvbnRlbnRGaWx0ZXIgdXNlc0NvcGllZE1lbW9yeV0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXJQcml2YXRlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OmFkZENvbnRlbnRSdWxlTGlzdHMp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjptX2hvc3RGaWxlRGVzY3JpcHRvcik6CisKIDIwMTktMDMtMDggIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEhhdmUgdGhlIFVJUHJvY2VzcyB0
YWtlIHRoZSBVbmJvdW5kZWROZXR3b3JraW5nIGFzc2VydGlvbiB3aGVuIGRvd25sb2FkcyBhcmUg
aW4gcHJvZ3Jlc3MuCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b250ZW50UnVsZUxpc3RNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmNwcAkocmV2aXNpb24g
MjQyNjYzKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1
bGVMaXN0TWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDE1ICs2NiwxNCBAQCB2b2lk
IE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOjpjb250CiAgICAgbV9uZXR3b3JrUHJvY2Vz
cy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpDb250ZW50RXh0ZW5zaW9uUnVsZXMgeyBpZGVudGlmaWVyIH0sIDApOwogfQogCi12
b2lkIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOjphZGRDb250ZW50UnVsZUxpc3RzKFVz
ZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgVmVjdG9yPHN0
ZDo6cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4+JiBjb250ZW50
UnVsZUxpc3RzKQordm9pZCBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjo6YWRkQ29udGVu
dFJ1bGVMaXN0cyhVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFZl
Y3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+PiYm
IGNvbnRlbnRSdWxlTGlzdHMpCiB7CiAgICAgYXV0byYgYmFja2VuZCA9ICptX2NvbnRlbnRFeHRl
bnNpb25CYWNrZW5kcy5lbnN1cmUoaWRlbnRpZmllciwgW10gewogICAgICAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lv
bnNCYWNrZW5kPigpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKIAotICAgIGZvciAoY29uc3Qg
YXV0byYgY29udGVudFJ1bGVMaXN0IDogY29udGVudFJ1bGVMaXN0cykgewotICAgICAgICBXZWJD
b21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEgY29udGVudFJ1bGVMaXN0RGF0YSA9IGNvbnRlbnRS
dWxlTGlzdC5zZWNvbmQ7Ci0gICAgICAgIGF1dG8gY29tcGlsZWRDb250ZW50UnVsZUxpc3QgPSBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6Y3JlYXRlKFdURk1vdmUoY29udGVudFJ1bGVMaXN0
RGF0YSkpOworICAgIGZvciAoYXV0byYmIGNvbnRlbnRSdWxlTGlzdCA6IGNvbnRlbnRSdWxlTGlz
dHMpIHsKKyAgICAgICAgYXV0byBjb21waWxlZENvbnRlbnRSdWxlTGlzdCA9IFdlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0OjpjcmVhdGUoV1RGTW92ZShjb250ZW50UnVsZUxpc3Quc2Vjb25kKSk7
CiAgICAgICAgIGJhY2tlbmQuYWRkQ29udGVudEV4dGVuc2lvbihjb250ZW50UnVsZUxpc3QuZmly
c3QsIFdURk1vdmUoY29tcGlsZWRDb250ZW50UnVsZUxpc3QpLCBDb250ZW50RXh0ZW5zaW9uczo6
Q29udGVudEV4dGVuc2lvbjo6U2hvdWxkQ29tcGlsZUNTUzo6Tm8pOwogICAgIH0KIApJbmRleDog
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bnRlbnRSdWxlTGlzdE1hbmFnZXIuaAkocmV2aXNpb24gMjQyNjYzKQorKysgU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbnRlbnRFeHRlbnNp
b25zQmFja2VuZChVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBCYWNrZW5kQ2FsbGJh
Y2smJik7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBhZGRDb250ZW50UnVsZUxpc3RzKFVzZXJDb250
ZW50Q29udHJvbGxlcklkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+PiYpOworICAgIHZvaWQgYWRkQ29udGVudFJ1
bGVMaXN0cyhVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBWZWN0b3I8c3RkOjpwYWly
PFN0cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPj4mJik7CiAgICAgdm9pZCBy
ZW1vdmVDb250ZW50UnVsZUxpc3QoVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIHJlbW92ZUFsbENvbnRlbnRSdWxlTGlzdHMoVXNl
ckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcik7CiAgICAgdm9pZCByZW1vdmUoVXNlckNvbnRl
bnRDb250cm9sbGVySWRlbnRpZmllcik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5jcHAJ
KHJldmlzaW9uIDI0MjY2MykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlRmlsZVN5c3RlbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw4ICsxNDUs
MjMgQEAgdm9pZCB1cGRhdGVGaWxlTW9kaWZpY2F0aW9uVGltZUlmTmVlZGVkKAogI2VuZGlmCiB9
CiAKK3N0YXRpYyBTdHJpbmcmIHBhdGhSZWdpc3RlcmVkQXNVbnNhZmVUb01lbW9yeU1hcEZvclRl
c3RpbmcoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHBhdGg7CisgICAg
cmV0dXJuIHBhdGguZ2V0KCk7Cit9CisKK3ZvaWQgcmVnaXN0ZXJQYXRoQXNVbnNhZmVUb01lbW9y
eU1hcEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBwYXRoKQoreworICAgIHBhdGhSZWdpc3RlcmVk
QXNVbnNhZmVUb01lbW9yeU1hcEZvclRlc3RpbmcoKSA9IHBhdGg7Cit9CisKKyAgICAKIGJvb2wg
aXNTYWZlVG9Vc2VNZW1vcnlNYXBGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKKyAgICBp
ZiAocGF0aCA9PSBwYXRoUmVnaXN0ZXJlZEFzVW5zYWZlVG9NZW1vcnlNYXBGb3JUZXN0aW5nKCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQ
TEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikKICAgICBzdHJ1Y3QgewogICAgICAgICB1aW50
MzJfdCBsZW5ndGg7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZUZpbGVTeXN0ZW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uaAkocmV2aXNpb24gMjQyNjYz
KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVGaWxl
U3lzdGVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAgRmlsZVRpbWVzIGZpbGVU
aW1lcyhjb25zdCBTdHJpbmcmIHBhdGgpOwogdm9pZCB1cGRhdGVGaWxlTW9kaWZpY2F0aW9uVGlt
ZUlmTmVlZGVkKGNvbnN0IFN0cmluZyYgcGF0aCk7CiAKIGJvb2wgaXNTYWZlVG9Vc2VNZW1vcnlN
YXBGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCk7Cit2b2lkIHJlZ2lzdGVyUGF0aEFzVW5zYWZl
VG9NZW1vcnlNYXBGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYpOwogCiB9CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QuY3Bw
CShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDE0ICs0NCwxOSBAQCBXZWJD
b21waWxlZENvbnRlbnRSdWxlTGlzdDo6fldlYkNvbXBpbGVkCiB7CiB9CiAKK2Jvb2wgV2ViQ29t
cGlsZWRDb250ZW50UnVsZUxpc3Q6OnVzZXNDb3BpZWRNZW1vcnkoKSBjb25zdAoreworICAgIHJl
dHVybiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+
PihtX2RhdGEuZGF0YSk7Cit9CisKIGJvb2wgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmNv
bmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICpyZWludGVy
cHJldF9jYXN0PHVpbnQzMl90Kj4ocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4obV9kYXRhLmRh
dGEtPmRhdGEoKSkgKyBtX2RhdGEuY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0KTsK
KyAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihyZWludGVycHJl
dF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihtX2RhdGEuZGF0YVBvaW50ZXIoKSkgKyBtX2RhdGEuY29u
ZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0KTsKIH0KIAogY29uc3QgV2ViQ29yZTo6Q29u
dGVudEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlKiBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6
ZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGUoKSBjb25zdAogewotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxjb25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGUq
PihtX2RhdGEuZGF0YS0+ZGF0YSgpKSArIG1fZGF0YS5maWx0ZXJzV2l0aG91dENvbmRpdGlvbnNC
eXRlY29kZU9mZnNldDsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgV2ViQ29yZTo6Q29u
dGVudEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlKj4obV9kYXRhLmRhdGFQb2ludGVyKCkpICsgbV9k
YXRhLmZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0OwogfQogCiB1bnNpZ25l
ZCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6ZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0
ZWNvZGVMZW5ndGgoKSBjb25zdApAQCAtNjEsNyArNjYsNyBAQCB1bnNpZ25lZCBXZWJDb21waWxl
ZENvbnRlbnRSdWxlTGlzdDo6ZmlsCiAKIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OjpERkFCeXRlY29kZSogV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmZpbHRlcnNXaXRoQ29u
ZGl0aW9uc0J5dGVjb2RlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlKj4obV9kYXRhLmRhdGEtPmRh
dGEoKSkgKyBtX2RhdGEuZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQ7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpERkFC
eXRlY29kZSo+KG1fZGF0YS5kYXRhUG9pbnRlcigpKSArIG1fZGF0YS5maWx0ZXJzV2l0aENvbmRp
dGlvbnNCeXRlY29kZU9mZnNldDsKIH0KIAogdW5zaWduZWQgV2ViQ29tcGlsZWRDb250ZW50UnVs
ZUxpc3Q6OmZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlTGVuZ3RoKCkgY29uc3QKQEAgLTcx
LDcgKzc2LDcgQEAgdW5zaWduZWQgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmZpbAogCiBj
b25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGUqIFdlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0Ojp0b3BVUkxGaWx0ZXJzQnl0ZWNvZGUoKSBjb25zdAogewotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxjb25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0
ZWNvZGUqPihtX2RhdGEuZGF0YS0+ZGF0YSgpKSArIG1fZGF0YS50b3BVUkxGaWx0ZXJzQnl0ZWNv
ZGVPZmZzZXQ7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRF
eHRlbnNpb25zOjpERkFCeXRlY29kZSo+KG1fZGF0YS5kYXRhUG9pbnRlcigpKSArIG1fZGF0YS50
b3BVUkxGaWx0ZXJzQnl0ZWNvZGVPZmZzZXQ7CiB9CiAKIHVuc2lnbmVkIFdlYkNvbXBpbGVkQ29u
dGVudFJ1bGVMaXN0Ojp0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVMZW5ndGgoKSBjb25zdApAQCAtODEs
NyArODYsNyBAQCB1bnNpZ25lZCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6dG9wCiAKIGNv
bnN0IFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpTZXJpYWxpemVkQWN0aW9uQnl0ZSogV2Vi
Q29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmFjdGlvbnMoKSBjb25zdAogewotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxjb25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6U2VyaWFsaXplZEFj
dGlvbkJ5dGUqPihtX2RhdGEuZGF0YS0+ZGF0YSgpKSArIG1fZGF0YS5hY3Rpb25zT2Zmc2V0Owor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6
U2VyaWFsaXplZEFjdGlvbkJ5dGUqPihtX2RhdGEuZGF0YVBvaW50ZXIoKSkgKyBtX2RhdGEuYWN0
aW9uc09mZnNldDsKIH0KIAogdW5zaWduZWQgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmFj
dGlvbnNMZW5ndGgoKSBjb25zdApJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGls
ZWRDb250ZW50UnVsZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5oCShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zOCw4ICszOCwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdD4gY3JlYXRlKFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSYmKTsK
ICAgICB2aXJ0dWFsIH5XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdCgpOwogCi0gICAgV2ViQ29t
cGlsZWRDb250ZW50UnVsZUxpc3REYXRhIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0K
KyAgICBjb25zdCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEmIGRhdGEoKSBjb25zdCB7
IHJldHVybiBtX2RhdGE7IH0KIAorICAgIGJvb2wgdXNlc0NvcGllZE1lbW9yeSgpIGNvbnN0Owor
ICAgIAogcHJpdmF0ZToKICAgICBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdChXZWJDb21waWxl
ZENvbnRlbnRSdWxlTGlzdERhdGEmJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmNwcAkocmV2aXNpb24g
MjQyNjYzKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3REYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksMTQgKzI5LDM4IEBACiAjaWYgRU5BQkxF
KENPTlRFTlRfRVhURU5TSU9OUykKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5j
bHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAorc2l6ZV90IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6c2l6ZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24oZGF0YSwgW10gKGNvbnN0IGF1dG8mIHNoYXJlZE1l
bW9yeU9yQnVmZmVyKSB7CisgICAgICAgIHJldHVybiBzaGFyZWRNZW1vcnlPckJ1ZmZlci0+c2l6
ZSgpOworICAgIH0pOworfQorCitjb25zdCB2b2lkKiBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dERhdGE6OmRhdGFQb2ludGVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihk
YXRhLCBbXSAoY29uc3QgYXV0byYgc2hhcmVkTWVtb3J5T3JCdWZmZXIpIHsKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGNvbnN0IHZvaWQqPihzaGFyZWRNZW1vcnlPckJ1ZmZlci0+ZGF0YSgp
KTsKKyAgICB9KTsKK30KKwogdm9pZCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE6OmVu
Y29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgU2hhcmVkTWVtb3J5OjpI
YW5kbGUgaGFuZGxlOwotICAgIGRhdGEtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9y
eTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwotICAgIGVuY29kZXIgPDwgaGFuZGxlOworICAgIGlm
IChhdXRvIHNoYXJlZE1lbW9yeSA9IFdURjo6Z2V0X2lmPFJlZlB0cjxTaGFyZWRNZW1vcnk+Pihk
YXRhKSkgeworICAgICAgICBlbmNvZGVyIDw8IHRydWU7CisgICAgICAgIFNoYXJlZE1lbW9yeTo6
SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgc2hhcmVkTWVtb3J5LT5nZXQoKS0+Y3JlYXRlSGFuZGxl
KGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgICAgIGVu
Y29kZXIgPDwgaGFuZGxlOworICAgIH0gZWxzZSB7CisgICAgICAgIGVuY29kZXIgPDwgZmFsc2U7
CisgICAgICAgIGVuY29kZXIgPDwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIHsgKldU
Rjo6Z2V0PFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+PihkYXRhKSB9OworICAgIH0KKwor
ICAgIC8vIGZpbGVEYXRhIG5lZWRzIHRvIGJlIGtlcHQgaW4gdGhlIFVJUHJvY2VzcywgYnV0IGl0
IGRvZXMgbm90IG5lZWQgdG8gYmUgc2VyaWFsaXplZC4KKyAgICAvLyBGSVhNRTogTW92ZSBpdCB0
byBBUEk6OkNvbnRlbnRSdWxlTGlzdAogCiAgICAgZW5jb2RlciA8PCBjb25kaXRpb25zQXBwbHlP
bmx5VG9Eb21haW5PZmZzZXQ7CiAgICAgZW5jb2RlciA8PCBhY3Rpb25zT2Zmc2V0OwpAQCAtNTIs
MTAgKzc2LDIyIEBAIHZvaWQgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhOjplbmMKIE9w
dGlvbmFsPFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4gV2ViQ29tcGlsZWRDb250ZW50
UnVsZUxpc3REYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFdlYkNv
bXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSBjb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE7Ci0g
ICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
aGFuZGxlKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBjb21waWxlZENvbnRl
bnRSdWxlTGlzdERhdGEuZGF0YSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVt
b3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisKKyAgICBPcHRpb25hbDxib29sPiBoYXNTaGFy
ZWRNZW1vcnk7CisgICAgZGVjb2RlciA+PiBoYXNTaGFyZWRNZW1vcnk7CisgICAgaWYgKCFoYXNT
aGFyZWRNZW1vcnkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgaWYgKCpoYXNT
aGFyZWRNZW1vcnkpIHsKKyAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhbmRsZSkpCisgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworICAgICAgICBjb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuZGF0YSA9IHsg
U2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRP
bmx5KSB9OworICAgIH0gZWxzZSB7CisgICAgICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhUmVm
ZXJlbmNlOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGFSZWZlcmVuY2UpKQorICAg
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgY29tcGlsZWRDb250ZW50UnVs
ZUxpc3REYXRhLmRhdGEgPSB7IFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+KFdlYkNvcmU6
OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGFSZWZlcmVuY2UuZGF0YSgpLCBkYXRhUmVmZXJlbmNl
LnNpemUoKSkpIH07CisgICAgfQogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb21waWxlZENv
bnRlbnRSdWxlTGlzdERhdGEuY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0KSkKICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5oCShyZXZpc2lvbiAyNDI2
NjMpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERh
dGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksOSBAQAogCiAjaW5jbHVkZSAiTmV0d29y
a0NhY2hlRGF0YS5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvU2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9WYXJpYW50Lmg+CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgRGVjb2RlcjsKQEAgLTQyLDcg
KzQ0LDcgQEAgY2xhc3MgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhIHsKIHB1YmxpYzoK
ICAgICBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEoKSA9IGRlZmF1bHQ7CiAKLSAgICBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEoUmVmUHRyPFNoYXJlZE1lbW9yeT4mJiBkYXRh
LCBOZXR3b3JrQ2FjaGU6OkRhdGEgZmlsZURhdGEsIHVuc2lnbmVkIGNvbmRpdGlvbnNBcHBseU9u
bHlUb0RvbWFpbk9mZnNldCwgdW5zaWduZWQgYWN0aW9uc09mZnNldCwgdW5zaWduZWQgYWN0aW9u
c1NpemUsIHVuc2lnbmVkIGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0LCB1
bnNpZ25lZCBmaWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUsIHVuc2lnbmVkIGZp
bHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0LCB1bnNpZ25lZCBmaWx0ZXJzV2l0aENv
bmRpdGlvbnNCeXRlY29kZVNpemUsIHVuc2lnbmVkIHRvcFVSTEZpbHRlcnNCeXRlY29kZU9mZnNl
dCwgdW5zaWduZWQgdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSkKKyAgICBXZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdERhdGEoVmFyaWFudDxSZWZQdHI8U2hhcmVkTWVtb3J5PiwgUmVmUHRyPFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcj4+JiYgZGF0YSwgTmV0d29ya0NhY2hlOjpEYXRhIGZpbGVEYXRh
LCB1bnNpZ25lZCBjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW5PZmZzZXQsIHVuc2lnbmVkIGFj
dGlvbnNPZmZzZXQsIHVuc2lnbmVkIGFjdGlvbnNTaXplLCB1bnNpZ25lZCBmaWx0ZXJzV2l0aG91
dENvbmRpdGlvbnNCeXRlY29kZU9mZnNldCwgdW5zaWduZWQgZmlsdGVyc1dpdGhvdXRDb25kaXRp
b25zQnl0ZWNvZGVTaXplLCB1bnNpZ25lZCBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZU9m
ZnNldCwgdW5zaWduZWQgZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplLCB1bnNpZ25l
ZCB0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVPZmZzZXQsIHVuc2lnbmVkIHRvcFVSTEZpbHRlcnNCeXRl
Y29kZVNpemUpCiAgICAgICAgIDogZGF0YShXVEZNb3ZlKGRhdGEpKQogICAgICAgICAsIGZpbGVE
YXRhKGZpbGVEYXRhKQogICAgICAgICAsIGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbk9mZnNl
dChjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW5PZmZzZXQpCkBAIC02MCw3ICs2MiwxMCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGlj
IE9wdGlvbmFsPFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4gZGVjb2RlKElQQzo6RGVj
b2RlciYpOwogCi0gICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gZGF0YTsKKyAgICBzaXplX3Qgc2l6
ZSgpIGNvbnN0OworICAgIGNvbnN0IHZvaWQqIGRhdGFQb2ludGVyKCkgY29uc3Q7CisgICAgCisg
ICAgVmFyaWFudDxSZWZQdHI8U2hhcmVkTWVtb3J5PiwgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlcj4+IGRhdGE7CiAgICAgTmV0d29ya0NhY2hlOjpEYXRhIGZpbGVEYXRhOwogICAgIHVuc2ln
bmVkIGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbk9mZnNldCB7IDAgfTsKICAgICB1bnNpZ25l
ZCBhY3Rpb25zT2Zmc2V0IHsgMCB9OwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSUNvbnRlbnRSdWxlTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdC5jcHAJKHJldmlzaW9uIDI0MjY2MykKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00Miw2ICs0MiwxMSBAQCBDb250ZW50UnVsZUxpc3Q6On5Db250ZW50UnVsZUxp
c3QoKQogewogfQogCitib29sIENvbnRlbnRSdWxlTGlzdDo6dXNlc0NvcGllZE1lbW9yeSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fY29tcGlsZWRSdWxlTGlzdC0+dXNlc0NvcGllZE1lbW9yeSgp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBBUEkKIAogI2VuZGlmIC8vIEVOQUJMRShDT05URU5UX0VY
VEVOU0lPTlMpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1
bGVMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNv
bnRlbnRSdWxlTGlzdC5oCShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4
LDggQEAgcHVibGljOgogICAgIGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9uYW1lOyB9CiAgICAgY29uc3QgV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dCYgY29tcGlsZWRSdWxlTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fY29tcGlsZWRSdWxlTGlzdC5n
ZXQoKTsgfQogCisgICAgYm9vbCB1c2VzQ29waWVkTWVtb3J5KCkgY29uc3Q7CisKIHByaXZhdGU6
CiAgICAgV1RGOjpTdHJpbmcgbV9uYW1lOwogICAgIFJlZjxXZWJLaXQ6OldlYkNvbXBpbGVkQ29u
dGVudFJ1bGVMaXN0PiBtX2NvbXBpbGVkUnVsZUxpc3Q7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5jcHAJKHJl
dmlzaW9uIDI0MjY2MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50
UnVsZUxpc3RTdG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25FcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
Q29udGVudEV4dGVuc2lvblBhcnNlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUXVhbGlmaWVkTmFt
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVkZSA8c3RyaW5n
PgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9GaWxl
U3lzdGVtLmg+CkBAIC0xNTYsMTAgKzE1NywyMiBAQCBzdGF0aWMgV2ViS2l0OjpOZXR3b3JrQ2Fj
aGU6OkRhdGEgZW5jb2RlCiAgICAgcmV0dXJuIFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhKGVu
Y29kZXIuYnVmZmVyKCksIGVuY29kZXIuYnVmZmVyU2l6ZSgpKTsKIH0KIAotc3RhdGljIGJvb2wg
ZGVjb2RlQ29udGVudFJ1bGVMaXN0TWV0YURhdGEoQ29udGVudFJ1bGVMaXN0TWV0YURhdGEmIG1l
dGFEYXRhLCBjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSYgZmlsZURhdGEpCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGdldERhdGEoY29uc3QgVCYsIGNvbnN0IEZ1bmN0aW9uPGJv
b2woY29uc3QgdWludDhfdCosIHNpemVfdCk+Jik7Cit0ZW1wbGF0ZTw+IHZvaWQgZ2V0RGF0YShj
b25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSYgZGF0YSwgY29uc3QgRnVuY3Rpb248Ym9v
bChjb25zdCB1aW50OF90Kiwgc2l6ZV90KT4mIGZ1bmN0aW9uKQoreworICAgIGRhdGEuYXBwbHko
ZnVuY3Rpb24pOworfQordGVtcGxhdGU8PiB2b2lkIGdldERhdGEoY29uc3QgV2ViQ29yZTo6U2hh
cmVkQnVmZmVyJiBkYXRhLCBjb25zdCBGdW5jdGlvbjxib29sKGNvbnN0IHVpbnQ4X3QqLCBzaXpl
X3QpPiYgZnVuY3Rpb24pCit7CisgICAgZnVuY3Rpb24ocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSk7Cit9CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+CitzdGF0aWMgT3B0aW9uYWw8Q29udGVudFJ1bGVMaXN0TWV0YURhdGE+IGRlY29kZUNv
bnRlbnRSdWxlTGlzdE1ldGFEYXRhKGNvbnN0IFQmIGZpbGVEYXRhKQogewogICAgIGJvb2wgc3Vj
Y2VzcyA9IGZhbHNlOwotICAgIGZpbGVEYXRhLmFwcGx5KFsmbWV0YURhdGEsICZzdWNjZXNzLCAm
ZmlsZURhdGFdKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKSB7CisgICAgQ29udGVu
dFJ1bGVMaXN0TWV0YURhdGEgbWV0YURhdGE7CisgICAgZ2V0RGF0YShmaWxlRGF0YSwgWyZtZXRh
RGF0YSwgJnN1Y2Nlc3MsICZmaWxlRGF0YV0oY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNp
emUpIHsKICAgICAgICAgLy8gVGhlIGZpbGUgZGF0YSBzaG91bGQgYmUgbWFwcGVkIGludG8gb25l
IGNvbnRpbnVvdXMgbWVtb3J5IHNlZ21lbnQgc28gdGhlIHNpemUKICAgICAgICAgLy8gcGFzc2Vk
IHRvIHRoZSBhcHBsaWVyIHNob3VsZCBhbHdheXMgZXF1YWwgdGhlIGRhdGEgc2l6ZS4KICAgICAg
ICAgaWYgKHNpemUgIT0gZmlsZURhdGEuc2l6ZSgpKQpAQCAtMTgzLDE5ICsxOTYsNTIgQEAgc3Rh
dGljIGJvb2wgZGVjb2RlQ29udGVudFJ1bGVMaXN0TWV0YURhdAogICAgICAgICBzdWNjZXNzID0g
dHJ1ZTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0pOwotICAgIHJldHVybiBzdWNjZXNz
OworICAgIGlmICghc3VjY2VzcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBy
ZXR1cm4gV1RGTW92ZShtZXRhRGF0YSk7CiB9CiAKLXN0YXRpYyBib29sIG9wZW5BbmRNYXBDb250
ZW50UnVsZUxpc3QoY29uc3QgV1RGOjpTdHJpbmcmIHBhdGgsIENvbnRlbnRSdWxlTGlzdE1ldGFE
YXRhJiBtZXRhRGF0YSwgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGEmIGZpbGVEYXRhKQorI2lm
ICFQTEFURk9STShDT0NPQSkKK1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IENvbnRlbnRS
dWxlTGlzdFN0b3JlOjpyZWFkQ29udGVudHNPZkZpbGUoY29uc3QgU3RyaW5nJiBmaWxlUGF0aCkK
IHsKLSAgICBmaWxlRGF0YSA9IG1hcEZpbGUoZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgp
LmRhdGEoKSk7Ci0gICAgaWYgKGZpbGVEYXRhLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9Cisj
ZW5kaWYKIAotICAgIGlmICghZGVjb2RlQ29udGVudFJ1bGVMaXN0TWV0YURhdGEobWV0YURhdGEs
IGZpbGVEYXRhKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworc3RydWN0IE1hcHBlZE9yQ29waWVk
RGF0YSB7CisgICAgQ29udGVudFJ1bGVMaXN0TWV0YURhdGEgbWV0YURhdGE7CisgICAgVmFyaWFu
dDxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSwgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZl
cj4+IGRhdGE7CisgICAgCisgICAgY29uc3QgdWludDhfdCogZGF0YVBvaW50ZXIoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24oZGF0YSwgW10gKGNvbnN0IFdlYktp
dDo6TmV0d29ya0NhY2hlOjpEYXRhJiBkYXRhKSB7CisgICAgICAgICAgICByZXR1cm4gZGF0YS5k
YXRhKCk7CisgICAgICAgIH0sIFtdIChjb25zdCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVy
PiYgc2hhcmVkQnVmZmVyKSB7CisgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxj
b25zdCB1aW50OF90Kj4oc2hhcmVkQnVmZmVyLT5kYXRhKCkpOworICAgICAgICB9KTsKKyAgICB9
Cit9OworCitzdGF0aWMgT3B0aW9uYWw8TWFwcGVkT3JDb3BpZWREYXRhPiBvcGVuQW5kTWFwT3JD
b3B5Q29udGVudFJ1bGVMaXN0KGNvbnN0IFdURjo6U3RyaW5nJiBwYXRoKQoreworICAgIGlmICgh
V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OmlzU2FmZVRvVXNlTWVtb3J5TWFwRm9yUGF0aChwYXRoKSkg
eworICAgICAgICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBDb250ZW50
UnVsZUxpc3RTdG9yZTo6cmVhZENvbnRlbnRzT2ZGaWxlKHBhdGgpOworICAgICAgICBpZiAoIWJ1
ZmZlcikKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIGF1dG8gbWV0
YURhdGEgPSBkZWNvZGVDb250ZW50UnVsZUxpc3RNZXRhRGF0YSgqYnVmZmVyKTsKKyAgICAgICAg
aWYgKCFtZXRhRGF0YSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAg
IHJldHVybiB7eyBXVEZNb3ZlKCptZXRhRGF0YSksIHsgYnVmZmVyLnJlbGVhc2VOb25OdWxsKCkg
fX19OworICAgIH0KIAotICAgIHJldHVybiB0cnVlOworICAgIFdlYktpdDo6TmV0d29ya0NhY2hl
OjpEYXRhIGZpbGVEYXRhID0gbWFwRmlsZShmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCku
ZGF0YSgpKTsKKyAgICBpZiAoZmlsZURhdGEuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7CisgICAgYXV0byBtZXRhRGF0YSA9IGRlY29kZUNvbnRlbnRSdWxlTGlzdE1ldGFE
YXRhKGZpbGVEYXRhKTsKKyAgICBpZiAoIW1ldGFEYXRhKQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworICAgIHJldHVybiB7eyBXVEZNb3ZlKCptZXRhRGF0YSksIHsgV1RGTW92ZShmaWxl
RGF0YSkgfX19OwogfQogCiBzdGF0aWMgYm9vbCB3cml0ZURhdGFUb0ZpbGUoY29uc3QgV2ViS2l0
OjpOZXR3b3JrQ2FjaGU6OkRhdGEmIGZpbGVEYXRhLCBQbGF0Zm9ybUZpbGVIYW5kbGUgZmQpCkBA
IC0yMTIsNyArMjU4LDcgQEAgc3RhdGljIGJvb2wgd3JpdGVEYXRhVG9GaWxlKGNvbnN0IFdlYktp
dAogICAgIHJldHVybiBzdWNjZXNzOwogfQogCi1zdGF0aWMgc3RkOjplcnJvcl9jb2RlIGNvbXBp
bGVkVG9GaWxlKFdURjo6U3RyaW5nJiYganNvbiwgVmVjdG9yPFdlYkNvcmU6OkNvbnRlbnRFeHRl
bnNpb25zOjpDb250ZW50RXh0ZW5zaW9uUnVsZT4mJiBwYXJzZWRSdWxlcywgY29uc3QgV1RGOjpT
dHJpbmcmIGZpbmFsRmlsZVBhdGgsIENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhJiBtZXRhRGF0YSwg
V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGEmIG1hcHBlZERhdGEpCitzdGF0aWMgRXhwZWN0ZWQ8
TWFwcGVkT3JDb3BpZWREYXRhLCBzdGQ6OmVycm9yX2NvZGU+IGNvbXBpbGVkVG9GaWxlKFdURjo6
U3RyaW5nJiYganNvbiwgVmVjdG9yPFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50
RXh0ZW5zaW9uUnVsZT4mJiBwYXJzZWRSdWxlcywgY29uc3QgV1RGOjpTdHJpbmcmIGZpbmFsRmls
ZVBhdGgpCiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OwogCkBAIC0zMjksNyArMzc1LDcgQEAgc3RhdGljIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlZFRv
RmlsZShXVAogICAgIFdURjo6U3RyaW5nIHRlbXBvcmFyeUZpbGVQYXRoID0gb3BlblRlbXBvcmFy
eUZpbGUoIkNvbnRlbnRSdWxlTGlzdCIsIHRlbXBvcmFyeUZpbGVIYW5kbGUpOwogICAgIGlmICh0
ZW1wb3JhcnlGaWxlSGFuZGxlID09IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpIHsKICAgICAg
ICAgV1RGTG9nQWx3YXlzKCJDb250ZW50IFJ1bGUgTGlzdCBjb21waWxpbmcgZmFpbGVkOiBPcGVu
aW5nIHRlbXBvcmFyeSBmaWxlIGZhaWxlZC4iKTsKLSAgICAgICAgcmV0dXJuIENvbnRlbnRSdWxl
TGlzdFN0b3JlOjpFcnJvcjo6Q29tcGlsZUZhaWxlZDsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKENvbnRlbnRSdWxlTGlzdFN0b3JlOjpFcnJvcjo6Q29tcGlsZUZhaWxlZCk7CiAgICAg
fQogICAgIAogICAgIGNoYXIgaW52YWxpZEhlYWRlcltDb250ZW50UnVsZUxpc3RGaWxlSGVhZGVy
U2l6ZV07CkBAIC0zMzgsNjIgKzM4NCw3NyBAQCBzdGF0aWMgc3RkOjplcnJvcl9jb2RlIGNvbXBp
bGVkVG9GaWxlKFdUCiAgICAgaWYgKHdyaXRlVG9GaWxlKHRlbXBvcmFyeUZpbGVIYW5kbGUsIGlu
dmFsaWRIZWFkZXIsIHNpemVvZihpbnZhbGlkSGVhZGVyKSkgPT0gLTEpIHsKICAgICAgICAgV1RG
TG9nQWx3YXlzKCJDb250ZW50IFJ1bGUgTGlzdCBjb21waWxpbmcgZmFpbGVkOiBXcml0aW5nIGhl
YWRlciB0byBmaWxlIGZhaWxlZC4iKTsKICAgICAgICAgY2xvc2VGaWxlKHRlbXBvcmFyeUZpbGVI
YW5kbGUpOwotICAgICAgICByZXR1cm4gQ29udGVudFJ1bGVMaXN0U3RvcmU6OkVycm9yOjpDb21w
aWxlRmFpbGVkOworICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudFJ1bGVMaXN0
U3RvcmU6OkVycm9yOjpDb21waWxlRmFpbGVkKTsKICAgICB9CiAKKyAgICBDb250ZW50UnVsZUxp
c3RNZXRhRGF0YSBtZXRhRGF0YTsKICAgICBDb21waWxhdGlvbkNsaWVudCBjb21waWxhdGlvbkNs
aWVudCh0ZW1wb3JhcnlGaWxlSGFuZGxlLCBtZXRhRGF0YSk7CiAgICAgCiAgICAgaWYgKGF1dG8g
Y29tcGlsZXJFcnJvciA9IGNvbXBpbGVSdWxlTGlzdChjb21waWxhdGlvbkNsaWVudCwgV1RGTW92
ZShqc29uKSwgV1RGTW92ZShwYXJzZWRSdWxlcykpKSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5cygi
Q29udGVudCBSdWxlIExpc3QgY29tcGlsaW5nIGZhaWxlZDogQ29tcGlsaW5nIGZhaWxlZC4iKTsK
ICAgICAgICAgY2xvc2VGaWxlKHRlbXBvcmFyeUZpbGVIYW5kbGUpOwotICAgICAgICByZXR1cm4g
Y29tcGlsZXJFcnJvcjsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGNvbXBpbGVyRXJy
b3IpOwogICAgIH0KICAgICBpZiAoY29tcGlsYXRpb25DbGllbnQuaGFkRXJyb3JXaGlsZVdyaXRp
bmdUb0ZpbGUoKSkgewogICAgICAgICBXVEZMb2dBbHdheXMoIkNvbnRlbnQgUnVsZSBMaXN0IGNv
bXBpbGluZyBmYWlsZWQ6IFdyaXRpbmcgdG8gZmlsZSBmYWlsZWQuIik7CiAgICAgICAgIGNsb3Nl
RmlsZSh0ZW1wb3JhcnlGaWxlSGFuZGxlKTsKLSAgICAgICAgcmV0dXJuIENvbnRlbnRSdWxlTGlz
dFN0b3JlOjpFcnJvcjo6Q29tcGlsZUZhaWxlZDsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKENvbnRlbnRSdWxlTGlzdFN0b3JlOjpFcnJvcjo6Q29tcGlsZUZhaWxlZCk7CiAgICAgfQog
Ci0gICAgbWFwcGVkRGF0YSA9IGFkb3B0QW5kTWFwRmlsZSh0ZW1wb3JhcnlGaWxlSGFuZGxlLCAw
LCBtZXRhRGF0YS5maWxlU2l6ZSgpKTsKKyAgICBhdXRvIG1hcHBlZERhdGEgPSBhZG9wdEFuZE1h
cEZpbGUodGVtcG9yYXJ5RmlsZUhhbmRsZSwgMCwgbWV0YURhdGEuZmlsZVNpemUoKSk7CiAgICAg
aWYgKG1hcHBlZERhdGEuaXNOdWxsKCkpIHsKICAgICAgICAgV1RGTG9nQWx3YXlzKCJDb250ZW50
IFJ1bGUgTGlzdCBjb21waWxpbmcgZmFpbGVkOiBNYXBwaW5nIGZpbGUgZmFpbGVkLiIpOwotICAg
ICAgICByZXR1cm4gQ29udGVudFJ1bGVMaXN0U3RvcmU6OkVycm9yOjpDb21waWxlRmFpbGVkOwor
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudFJ1bGVMaXN0U3RvcmU6OkVycm9y
OjpDb21waWxlRmFpbGVkKTsKICAgICB9CiAKICAgICBpZiAoIW1vdmVGaWxlKHRlbXBvcmFyeUZp
bGVQYXRoLCBmaW5hbEZpbGVQYXRoKSkgewogICAgICAgICBXVEZMb2dBbHdheXMoIkNvbnRlbnQg
UnVsZSBMaXN0IGNvbXBpbGluZyBmYWlsZWQ6IE1vdmluZyBmaWxlIGZhaWxlZC4iKTsKLSAgICAg
ICAgcmV0dXJuIENvbnRlbnRSdWxlTGlzdFN0b3JlOjpFcnJvcjo6Q29tcGlsZUZhaWxlZDsKKyAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRSdWxlTGlzdFN0b3JlOjpFcnJvcjo6
Q29tcGlsZUZhaWxlZCk7CiAgICAgfQogCi0gICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWlzU2Fm
ZVRvVXNlTWVtb3J5TWFwRm9yUGF0aChmaW5hbEZpbGVQYXRoKSkgeworICAgICAgICBhdXRvIGNv
bnRlbnRzID0gQ29udGVudFJ1bGVMaXN0U3RvcmU6OnJlYWRDb250ZW50c09mRmlsZShmaW5hbEZp
bGVQYXRoKTsKKyAgICAgICAgaWYgKCFjb250ZW50cykKKyAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChDb250ZW50UnVsZUxpc3RTdG9yZTo6RXJyb3I6OkNvbXBpbGVGYWlsZWQpOwor
ICAgICAgICByZXR1cm4ge3sgV1RGTW92ZShtZXRhRGF0YSksIFJlZjxXZWJDb3JlOjpTaGFyZWRC
dWZmZXI+IHsgY29udGVudHMucmVsZWFzZU5vbk51bGwoKSB9fX07CisgICAgfQorICAgIAorICAg
IHJldHVybiB7eyBXVEZNb3ZlKG1ldGFEYXRhKSwgV1RGTW92ZShtYXBwZWREYXRhKSB9fTsKIH0K
IAotc3RhdGljIFJlZjxBUEk6OkNvbnRlbnRSdWxlTGlzdD4gY3JlYXRlRXh0ZW5zaW9uKGNvbnN0
IFdURjo6U3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBDb250ZW50UnVsZUxpc3RNZXRhRGF0YSYg
bWV0YURhdGEsIGNvbnN0IFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhJiBmaWxlRGF0YSkKK3N0
YXRpYyBSZWY8QVBJOjpDb250ZW50UnVsZUxpc3Q+IGNyZWF0ZUV4dGVuc2lvbihjb25zdCBXVEY6
OlN0cmluZyYgaWRlbnRpZmllciwgTWFwcGVkT3JDb3BpZWREYXRhJiYgZGF0YSkKIHsKLSAgICAv
LyBDb250ZW50IGV4dGVuc2lvbnMgYXJlIGFsd2F5cyBjb21waWxlZCB0byBmaWxlcywgYW5kIGF0
IHRoaXMgcG9pbnQgdGhlIGZpbGUKLSAgICAvLyBoYXMgYmVlbiBhbHJlYWR5IG1hcHBlZCwgdGhl
cmVmb3JlIHRyeUNyZWF0ZVNoYXJlZE1lbW9yeSgpIGNhbm5vdCBmYWlsLgotICAgIGF1dG8gc2hh
cmVkTWVtb3J5ID0gZmlsZURhdGEudHJ5Q3JlYXRlU2hhcmVkTWVtb3J5KCk7Ci0gICAgQVNTRVJU
KHNoYXJlZE1lbW9yeSk7CisgICAgUmVmUHRyPFdlYktpdDo6U2hhcmVkTWVtb3J5PiBzaGFyZWRN
ZW1vcnk7CisgICAgaWYgKGF1dG8gbWFwcGVkRmlsZURhdGEgPSBXVEY6OmdldF9pZjxXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6RGF0YT4oZGF0YS5kYXRhKSkgeworICAgICAgICBzaGFyZWRNZW1vcnkg
PSBtYXBwZWRGaWxlRGF0YS0+dHJ5Q3JlYXRlU2hhcmVkTWVtb3J5KCk7CisKKyAgICAgICAgLy8g
Q29udGVudCBleHRlbnNpb25zIGFyZSBhbHdheXMgY29tcGlsZWQgdG8gZmlsZXMsIGFuZCBhdCB0
aGlzIHBvaW50IHRoZSBmaWxlCisgICAgICAgIC8vIGhhcyBiZWVuIGFscmVhZHkgbWFwcGVkLCB0
aGVyZWZvcmUgdHJ5Q3JlYXRlU2hhcmVkTWVtb3J5KCkgY2Fubm90IGZhaWwuCisgICAgICAgIEFT
U0VSVChzaGFyZWRNZW1vcnkpOworICAgIH0KKyAgICBhdXRvIG1hcHBlZE9yQ29waWVkRmlsZURh
dGEgPSBzaGFyZWRNZW1vcnkgPworICAgICAgICBWYXJpYW50PFJlZlB0cjxXZWJLaXQ6OlNoYXJl
ZE1lbW9yeT4sIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+PiB7IHNoYXJlZE1lbW9yeSB9
CisgICAgICAgIDogVmFyaWFudDxSZWZQdHI8V2ViS2l0OjpTaGFyZWRNZW1vcnk+LCBSZWZQdHI8
V2ViQ29yZTo6U2hhcmVkQnVmZmVyPj4geyBXVEZNb3ZlKFdURjo6Z2V0PFJlZlB0cjxXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI+PihkYXRhLmRhdGEpKSB9OwogCi0gICAgY29uc3Qgc2l6ZV90IGhlYWRl
ckFuZFNvdXJjZVNpemUgPSBDb250ZW50UnVsZUxpc3RGaWxlSGVhZGVyU2l6ZSArIG1ldGFEYXRh
LnNvdXJjZVNpemU7CisgICAgY29uc3Qgc2l6ZV90IGhlYWRlckFuZFNvdXJjZVNpemUgPSBDb250
ZW50UnVsZUxpc3RGaWxlSGVhZGVyU2l6ZSArIGRhdGEubWV0YURhdGEuc291cmNlU2l6ZTsKICAg
ICBhdXRvIGNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSA9IFdlYktpdDo6V2ViQ29tcGlsZWRD
b250ZW50UnVsZUxpc3REYXRhKAotICAgICAgICBXVEZNb3ZlKHNoYXJlZE1lbW9yeSksCi0gICAg
ICAgIGZpbGVEYXRhLAorICAgICAgICBXVEZNb3ZlKG1hcHBlZE9yQ29waWVkRmlsZURhdGEpLAor
ICAgICAgICBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRh
PihkYXRhLmRhdGEpID8gV1RGOjpnZXQ8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGE+KGRhdGEu
ZGF0YSkgOiBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSB7IH0sCiAgICAgICAgIENvbmRpdGlv
bnNBcHBseU9ubHlUb0RvbWFpbk9mZnNldCwKICAgICAgICAgaGVhZGVyQW5kU291cmNlU2l6ZSwK
LSAgICAgICAgbWV0YURhdGEuYWN0aW9uc1NpemUsCisgICAgICAgIGRhdGEubWV0YURhdGEuYWN0
aW9uc1NpemUsCiAgICAgICAgIGhlYWRlckFuZFNvdXJjZVNpemUKLSAgICAgICAgICAgICsgbWV0
YURhdGEuYWN0aW9uc1NpemUsCi0gICAgICAgIG1ldGFEYXRhLmZpbHRlcnNXaXRob3V0Q29uZGl0
aW9uc0J5dGVjb2RlU2l6ZSwKKyAgICAgICAgICAgICsgZGF0YS5tZXRhRGF0YS5hY3Rpb25zU2l6
ZSwKKyAgICAgICAgZGF0YS5tZXRhRGF0YS5maWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29k
ZVNpemUsCiAgICAgICAgIGhlYWRlckFuZFNvdXJjZVNpemUKLSAgICAgICAgICAgICsgbWV0YURh
dGEuYWN0aW9uc1NpemUKLSAgICAgICAgICAgICsgbWV0YURhdGEuZmlsdGVyc1dpdGhvdXRDb25k
aXRpb25zQnl0ZWNvZGVTaXplLAotICAgICAgICBtZXRhRGF0YS5maWx0ZXJzV2l0aENvbmRpdGlv
bnNCeXRlY29kZVNpemUsCisgICAgICAgICAgICArIGRhdGEubWV0YURhdGEuYWN0aW9uc1NpemUK
KyAgICAgICAgICAgICsgZGF0YS5tZXRhRGF0YS5maWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRl
Y29kZVNpemUsCisgICAgICAgIGRhdGEubWV0YURhdGEuZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0
ZWNvZGVTaXplLAogICAgICAgICBoZWFkZXJBbmRTb3VyY2VTaXplCi0gICAgICAgICAgICArIG1l
dGFEYXRhLmFjdGlvbnNTaXplCi0gICAgICAgICAgICArIG1ldGFEYXRhLmZpbHRlcnNXaXRob3V0
Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZQotICAgICAgICAgICAgKyBtZXRhRGF0YS5maWx0ZXJzV2l0
aENvbmRpdGlvbnNCeXRlY29kZVNpemUsCi0gICAgICAgIG1ldGFEYXRhLmNvbmRpdGlvbmVkRmls
dGVyc0J5dGVjb2RlU2l6ZQorICAgICAgICAgICAgKyBkYXRhLm1ldGFEYXRhLmFjdGlvbnNTaXpl
CisgICAgICAgICAgICArIGRhdGEubWV0YURhdGEuZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0
ZWNvZGVTaXplCisgICAgICAgICAgICArIGRhdGEubWV0YURhdGEuZmlsdGVyc1dpdGhDb25kaXRp
b25zQnl0ZWNvZGVTaXplLAorICAgICAgICBkYXRhLm1ldGFEYXRhLmNvbmRpdGlvbmVkRmlsdGVy
c0J5dGVjb2RlU2l6ZQogICAgICk7CiAgICAgYXV0byBjb21waWxlZENvbnRlbnRSdWxlTGlzdCA9
IFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmNyZWF0ZShXVEZNb3ZlKGNvbXBp
bGVkQ29udGVudFJ1bGVMaXN0RGF0YSkpOwogICAgIHJldHVybiBBUEk6OkNvbnRlbnRSdWxlTGlz
dDo6Y3JlYXRlKGlkZW50aWZpZXIsIFdURk1vdmUoY29tcGlsZWRDb250ZW50UnVsZUxpc3QpKTsK
QEAgLTQwNCwyNCArNDY1LDIzIEBAIHZvaWQgQ29udGVudFJ1bGVMaXN0U3RvcmU6Omxvb2t1cENv
bnRlbnQKICAgICBtX3JlYWRRdWV1ZS0+ZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgaWRlbnRpZmllciA9IGlkZW50aWZpZXIuaXNvbGF0ZWRDb3B5KCksIHN0b3JlUGF0
aCA9IG1fc3RvcmVQYXRoLmlzb2xhdGVkQ29weSgpLCBsZWdhY3lGaWxlbmFtZSA9IG1fbGVnYWN5
RmlsZW5hbWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcild
KCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gcGF0aCA9IGNvbnN0cnVjdGVkUGF0aChzdG9yZVBh
dGgsIGlkZW50aWZpZXIsIGxlZ2FjeUZpbGVuYW1lKTsKICAgICAgICAgCi0gICAgICAgIENvbnRl
bnRSdWxlTGlzdE1ldGFEYXRhIG1ldGFEYXRhOwotICAgICAgICBXZWJLaXQ6Ok5ldHdvcmtDYWNo
ZTo6RGF0YSBmaWxlRGF0YTsKLSAgICAgICAgaWYgKCFvcGVuQW5kTWFwQ29udGVudFJ1bGVMaXN0
KHBhdGgsIG1ldGFEYXRhLCBmaWxlRGF0YSkpIHsKKyAgICAgICAgYXV0byBjb250ZW50UnVsZUxp
c3QgPSBvcGVuQW5kTWFwT3JDb3B5Q29udGVudFJ1bGVMaXN0KHBhdGgpOworICAgICAgICBpZiAo
IWNvbnRlbnRSdWxlTGlzdCkgewogICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNo
KFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIobnVsbHB0ciwgRXJyb3I6Okxvb2t1cEZhaWxlZCk7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgICAgICAK
LSAgICAgICAgaWYgKG1ldGFEYXRhLnZlcnNpb24gIT0gQ29udGVudFJ1bGVMaXN0U3RvcmU6OkN1
cnJlbnRDb250ZW50UnVsZUxpc3RGaWxlVmVyc2lvbikgeworICAgICAgICBpZiAoY29udGVudFJ1
bGVMaXN0LT5tZXRhRGF0YS52ZXJzaW9uICE9IENvbnRlbnRSdWxlTGlzdFN0b3JlOjpDdXJyZW50
Q29udGVudFJ1bGVMaXN0RmlsZVZlcnNpb24pIHsKICAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4o
KS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewog
ICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIsIEVycm9yOjpWZXJzaW9u
TWlzbWF0Y2gpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICAgICAgCi0gICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVk
VGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGlkZW50aWZpZXIgPSBpZGVudGlmaWVyLmlz
b2xhdGVkQ29weSgpLCBmaWxlRGF0YSA9IFdURk1vdmUoZmlsZURhdGEpLCBtZXRhRGF0YSA9IFdU
Rk1vdmUobWV0YURhdGEpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNyZWF0
ZUV4dGVuc2lvbihpZGVudGlmaWVyLCBtZXRhRGF0YSwgZmlsZURhdGEpLCB7IH0pOworICAgICAg
ICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3Rl
Y3RlZFRoaXMpLCBpZGVudGlmaWVyID0gaWRlbnRpZmllci5pc29sYXRlZENvcHkoKSwgY29udGVu
dFJ1bGVMaXN0ID0gV1RGTW92ZSgqY29udGVudFJ1bGVMaXN0KSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihjcmVhdGVFeHRlbnNpb24oaWRlbnRpZmllciwgV1RGTW92ZShjb250
ZW50UnVsZUxpc3QpKSwgeyB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CkBAIC00NTUsMTkg
KzUxNSwxNyBAQCB2b2lkIENvbnRlbnRSdWxlTGlzdFN0b3JlOjpjb21waWxlQ29udGVuCiAgICAg
bV9jb21waWxlUXVldWUtPmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IGlkZW50aWZpZXIgPSBpZGVudGlmaWVyLmlzb2xhdGVkQ29weSgpLCBsZWdhY3lGaWxlbmFtZSA9
IG1fbGVnYWN5RmlsZW5hbWUsIGpzb24gPSBqc29uLmlzb2xhdGVkQ29weSgpLCBwYXJzZWRSdWxl
cyA9IHBhcnNlZFJ1bGVzLnZhbHVlKCkuaXNvbGF0ZWRDb3B5KCksIHN0b3JlUGF0aCA9IG1fc3Rv
cmVQYXRoLmlzb2xhdGVkQ29weSgpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBwYXRoID0gY29uc3RydWN0
ZWRQYXRoKHN0b3JlUGF0aCwgaWRlbnRpZmllciwgbGVnYWN5RmlsZW5hbWUpOwogCi0gICAgICAg
IENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhIG1ldGFEYXRhOwotICAgICAgICBXZWJLaXQ6Ok5ldHdv
cmtDYWNoZTo6RGF0YSBmaWxlRGF0YTsKLSAgICAgICAgYXV0byBlcnJvciA9IGNvbXBpbGVkVG9G
aWxlKFdURk1vdmUoanNvbiksIFdURk1vdmUocGFyc2VkUnVsZXMpLCBwYXRoLCBtZXRhRGF0YSwg
ZmlsZURhdGEpOwotICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGVy
cm9yID0gV1RGTW92ZShlcnJvciksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildICgpIG11dGFibGUgeworICAgICAgICBhdXRvIHJlc3VsdCA9IGNvbXBpbGVk
VG9GaWxlKFdURk1vdmUoanNvbiksIFdURk1vdmUocGFyc2VkUnVsZXMpLCBwYXRoKTsKKyAgICAg
ICAgaWYgKCFyZXN1bHQuaGFzX3ZhbHVlKCkpIHsKKyAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4o
KS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGVycm9y
ID0gV1RGTW92ZShyZXN1bHQuZXJyb3IoKSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKG51bGxwdHIsIGVycm9yKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtw
cm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgaWRlbnRpZmllciA9IFdURk1v
dmUoaWRlbnRpZmllciksIGZpbGVEYXRhID0gV1RGTW92ZShmaWxlRGF0YSksIG1ldGFEYXRhID0g
V1RGTW92ZShtZXRhRGF0YSksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildICgpIG11dGFibGUgewotICAgICAgICAgICAgUmVmUHRyPEFQSTo6Q29udGVudFJ1
bGVMaXN0PiBjb250ZW50UnVsZUxpc3QgPSBjcmVhdGVFeHRlbnNpb24oaWRlbnRpZmllciwgbWV0
YURhdGEsIGZpbGVEYXRhKTsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRlbnRS
dWxlTGlzdCwgeyB9KTsKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0
ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgaWRlbnRpZmllciA9IFdURk1vdmUoaWRl
bnRpZmllciksIGRhdGEgPSBXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpKSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAg
ICBhdXRvIGNvbnRlbnRSdWxlTGlzdCA9IGNyZWF0ZUV4dGVuc2lvbihpZGVudGlmaWVyLCBXVEZN
b3ZlKGRhdGEpKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRlbnRSdWxlTGlz
dC5wdHIoKSwgeyB9KTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CkBAIC01MTcsMjkgKzU3NSwy
OCBAQCB2b2lkIENvbnRlbnRSdWxlTGlzdFN0b3JlOjpnZXRDb250ZW50UnVsCiAgICAgICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoc291cmNlKTsKICAgICAgICAgICAgIH0pOwogICAgICAg
ICB9OwotICAgICAgICAKLSAgICAgICAgQ29udGVudFJ1bGVMaXN0TWV0YURhdGEgbWV0YURhdGE7
Ci0gICAgICAgIFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhIGZpbGVEYXRhOwotICAgICAgICBp
ZiAoIW9wZW5BbmRNYXBDb250ZW50UnVsZUxpc3QocGF0aCwgbWV0YURhdGEsIGZpbGVEYXRhKSkg
eworCisgICAgICAgIGF1dG8gY29udGVudFJ1bGVMaXN0ID0gb3BlbkFuZE1hcE9yQ29weUNvbnRl
bnRSdWxlTGlzdChwYXRoKTsKKyAgICAgICAgaWYgKCFjb250ZW50UnVsZUxpc3QpIHsKICAgICAg
ICAgICAgIGNvbXBsZXRlKHsgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgCi0gICAgICAgIHN3aXRjaCAobWV0YURhdGEudmVyc2lvbikgeworICAgICAgICBzd2l0
Y2ggKGNvbnRlbnRSdWxlTGlzdC0+bWV0YURhdGEudmVyc2lvbikgewogICAgICAgICBjYXNlIDk6
CiAgICAgICAgIGNhc2UgMTA6Ci0gICAgICAgICAgICBpZiAoIW1ldGFEYXRhLnNvdXJjZVNpemUp
IHsKKyAgICAgICAgICAgIGlmICghY29udGVudFJ1bGVMaXN0LT5tZXRhRGF0YS5zb3VyY2VTaXpl
KSB7CiAgICAgICAgICAgICAgICAgY29tcGxldGUoeyB9KTsKICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBib29sIGlzOEJpdCA9IGZpbGVEYXRhLmRh
dGEoKVtDb250ZW50UnVsZUxpc3RGaWxlSGVhZGVyU2l6ZV07CisgICAgICAgICAgICBib29sIGlz
OEJpdCA9IGNvbnRlbnRSdWxlTGlzdC0+ZGF0YVBvaW50ZXIoKVtDb250ZW50UnVsZUxpc3RGaWxl
SGVhZGVyU2l6ZV07CiAgICAgICAgICAgICBzaXplX3Qgc3RhcnQgPSBDb250ZW50UnVsZUxpc3RG
aWxlSGVhZGVyU2l6ZSArIHNpemVvZihib29sKTsKLSAgICAgICAgICAgIHNpemVfdCBsZW5ndGgg
PSBtZXRhRGF0YS5zb3VyY2VTaXplIC0gc2l6ZW9mKGJvb2wpOworICAgICAgICAgICAgc2l6ZV90
IGxlbmd0aCA9IGNvbnRlbnRSdWxlTGlzdC0+bWV0YURhdGEuc291cmNlU2l6ZSAtIHNpemVvZihi
b29sKTsKICAgICAgICAgICAgIGlmIChpczhCaXQpCi0gICAgICAgICAgICAgICAgY29tcGxldGUo
V1RGOjpTdHJpbmcoZmlsZURhdGEuZGF0YSgpICsgc3RhcnQsIGxlbmd0aCkpOworICAgICAgICAg
ICAgICAgIGNvbXBsZXRlKFdURjo6U3RyaW5nKGNvbnRlbnRSdWxlTGlzdC0+ZGF0YVBvaW50ZXIo
KSArIHN0YXJ0LCBsZW5ndGgpKTsKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAg
IEFTU0VSVCghKGxlbmd0aCAlIHNpemVvZihVQ2hhcikpKTsKLSAgICAgICAgICAgICAgICBjb21w
bGV0ZShXVEY6OlN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0IFVDaGFyKj4oZmlsZURhdGEu
ZGF0YSgpICsgc3RhcnQpLCBsZW5ndGggLyBzaXplb2YoVUNoYXIpKSk7CisgICAgICAgICAgICAg
ICAgY29tcGxldGUoV1RGOjpTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBVQ2hhcio+KGNv
bnRlbnRSdWxlTGlzdC0+ZGF0YVBvaW50ZXIoKSArIHN0YXJ0KSwgbGVuZ3RoIC8gc2l6ZW9mKFVD
aGFyKSkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Cklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1
bGVMaXN0U3RvcmUuaAkocmV2aXNpb24gMjQyNjYzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYg
KzMxLDEwIEBACiAjaW5jbHVkZSA8c3lzdGVtX2Vycm9yPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBTaGFyZWRCdWZmZXI7Cit9
CisKIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgV29ya1F1ZXVlOwogfQpAQCAtNzIsNiArNzYsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudFJ1bGVMaXN0VmVyc2lvbihjb25z
dCBXVEY6OlN0cmluZyYgaWRlbnRpZmllcik7CiAgICAgdm9pZCBnZXRDb250ZW50UnVsZUxpc3RT
b3VyY2UoY29uc3QgV1RGOjpTdHJpbmcmIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV1RGOjpTdHJpbmcpPik7CiAKKyAgICBzdGF0aWMgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlcj4gcmVhZENvbnRlbnRzT2ZGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCk7CisKIHByaXZhdGU6
CiAgICAgV1RGOjpTdHJpbmcgZGVmYXVsdFN0b3JlUGF0aChib29sIGxlZ2FjeUZpbGVuYW1lKTsK
ICAgICBzdGF0aWMgQ29udGVudFJ1bGVMaXN0U3RvcmUmIGxlZ2FjeURlZmF1bHRTdG9yZSgpOwpJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL0FQSUNvbnRlbnRSdWxlTGlz
dFN0b3JlQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlQ29jb2EubW0JKHJldmlzaW9uIDI0MjY2MykK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElDb250ZW50UnVsZUxpc3RT
dG9yZUNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxF
KENPTlRFTlRfRVhURU5TSU9OUykKIAogI2luY2x1ZGUgIlNhbmRib3hVdGlsaXRpZXMuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogCiBuYW1lc3BhY2UgQVBJIHsKIApAQCAt
NjMsNiArNjQsMTUgQEAgV1RGOjpTdHJpbmcgQ29udGVudFJ1bGVMaXN0U3RvcmU6OmRlZmF1bAog
ICAgIHJldHVybiBjb250ZW50UnVsZUxpc3RTdG9yZVVSTC5hYnNvbHV0ZVVSTC5wYXRoLmZpbGVT
eXN0ZW1SZXByZXNlbnRhdGlvbjsKIH0KIAorUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4g
Q29udGVudFJ1bGVMaXN0U3RvcmU6OnJlYWRDb250ZW50c09mRmlsZShjb25zdCBTdHJpbmcmIGZp
bGVQYXRoKQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIE5TRGF0YSAqZGF0
YSA9IFtOU0RhdGEgZGF0YVdpdGhDb250ZW50c09mVVJMOltOU1VSTCBmaWxlVVJMV2l0aFBhdGg6
ZmlsZVBhdGggaXNEaXJlY3Rvcnk6Tk9dXTsKKyAgICBpZiAoIWRhdGEpCisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIHJldHVybiBXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRh
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgQVBJCiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVOVF9F
WFRFTlNJT05TKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29u
dGVudFJ1bGVMaXN0U3RvcmUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0U3RvcmUubW0JKHJldmlzaW9uIDI0MjY2MykK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdFN0
b3JlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW1wb3J0ICJXS0NvbnRl
bnRSdWxlTGlzdFN0b3JlSW50ZXJuYWwuaCIKIAogI2ltcG9ydCAiQVBJQ29udGVudFJ1bGVMaXN0
U3RvcmUuaCIKKyNpbXBvcnQgIk5ldHdvcmtDYWNoZUZpbGVzeXN0ZW0uaCIKICNpbXBvcnQgIldL
RXJyb3JJbnRlcm5hbC5oIgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0IDx3dGYv
Q29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTEyNSw2ICsxMjYsMTEgQEAgLSAoQVBJOjpPYmplY3Qm
KV9hcGlPYmplY3QKIAogLy8gRm9yIHRlc3Rpbmcgb25seS4KIAorKyAodm9pZClfcmVnaXN0ZXJQ
YXRoQXNVbnNhZmVUb01lbW9yeU1hcEZvclRlc3Rpbmc6KE5TU3RyaW5nICopZmlsZW5hbWUKK3sK
KyAgICBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6cmVnaXN0ZXJQYXRoQXNVbnNhZmVUb01lbW9yeU1h
cEZvclRlc3RpbmcoZmlsZW5hbWUpOworfQorCiAtICh2b2lkKV9yZW1vdmVBbGxDb250ZW50UnVs
ZUxpc3RzCiB7CiAgICAgX2NvbnRlbnRSdWxlTGlzdFN0b3JlLT5zeW5jaHJvbm91c1JlbW92ZUFs
bENvbnRlbnRSdWxlTGlzdHMoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0NvbnRlbnRSdWxlTGlzdFN0b3JlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdFN0b3JlUHJpdmF0
ZS5oCShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tDb250ZW50UnVsZUxpc3RTdG9yZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NiArMzEsNyBAQAogLSAodm9pZClfcmVtb3ZlQWxsQ29udGVudFJ1bGVMaXN0czsKIC0gKHZvaWQp
X2ludmFsaWRhdGVDb250ZW50UnVsZUxpc3RWZXJzaW9uRm9ySWRlbnRpZmllcjooTlNTdHJpbmcg
KilpZGVudGlmaWVyOwogLSAodm9pZClfZ2V0Q29udGVudFJ1bGVMaXN0U291cmNlRm9ySWRlbnRp
ZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShO
U1N0cmluZyopKWNvbXBsZXRpb25IYW5kbGVyOworKyAodm9pZClfcmVnaXN0ZXJQYXRoQXNVbnNh
ZmVUb01lbW9yeU1hcEZvclRlc3Rpbmc6KE5TU3RyaW5nICopZmlsZW5hbWU7CiAKIC8vIE5TX1JF
TEVBU0VTX0FSR1VNRU5UIHRvIGtlZXAgcGVhayBtZW1vcnkgdXNhZ2UgbG93LgogLSAodm9pZClf
Y29tcGlsZUNvbnRlbnRSdWxlTGlzdEZvcklkZW50aWZpZXI6KE5TU3RyaW5nICopaWRlbnRpZmll
ciBlbmNvZGVkQ29udGVudFJ1bGVMaXN0OihOU1N0cmluZyAqKSBOU19SRUxFQVNFU19BUkdVTUVO
VCBlbmNvZGVkQ29udGVudFJ1bGVMaXN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShXS0Nv
bnRlbnRSdWxlTGlzdCAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyOwpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVyLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29u
dGVudEZpbHRlci5tbQkocmV2aXNpb24gMjQyNjYzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVyLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01
Niw0ICs1Niw5IEBAIC0gKGlkKV9pbml0V2l0aFdLQ29udGVudFJ1bGVMaXN0OihXS0NvbnQKICAg
ICByZXR1cm4gc2VsZjsKIH0KIAorLSAoQk9PTCl1c2VzQ29waWVkTWVtb3J5Cit7CisgICAgcmV0
dXJuIF9jb250ZW50UnVsZUxpc3QtPl9jb250ZW50UnVsZUxpc3QtPnVzZXNDb3BpZWRNZW1vcnko
KTsKK30KKwogQGVuZApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1VzZXJDb250ZW50RmlsdGVyUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEZpbHRlclByaXZhdGUuaAkocmV2aXNp
b24gMjQyNjYzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJD
b250ZW50RmlsdGVyUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw1ICszMCw2IEBACiBA
aW50ZXJmYWNlIF9XS1VzZXJDb250ZW50RmlsdGVyIChXS1ByaXZhdGUpCiAKIC0gKGlkKV9pbml0
V2l0aFdLQ29udGVudFJ1bGVMaXN0OihXS0NvbnRlbnRSdWxlTGlzdCopY29udGVudFJ1bGVMaXN0
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKTsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgQk9PTCB1c2VzQ29waWVkTWVtb3J5OwogCiBAZW5kCkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNv
bnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMjQyNjYzKQorKysg
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJv
bGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0OCwxMSArMzQ4LDEwIEBAIHZvaWQgV2ViVXNl
ckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2UKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRF
TlRfRVhURU5TSU9OUykKLXZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRDb250ZW50
UnVsZUxpc3RzKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb21waWxlZENvbnRl
bnRSdWxlTGlzdERhdGE+PiYgY29udGVudFJ1bGVMaXN0cykKK3ZvaWQgV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyOjphZGRDb250ZW50UnVsZUxpc3RzKFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+PiYmIGNvbnRlbnRSdWxlTGlzdHMpCiB7Ci0g
ICAgZm9yIChjb25zdCBhdXRvJiBjb250ZW50UnVsZUxpc3QgOiBjb250ZW50UnVsZUxpc3RzKSB7
Ci0gICAgICAgIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSBjb250ZW50UnVsZUxpc3RE
YXRhID0gY29udGVudFJ1bGVMaXN0LnNlY29uZDsKLSAgICAgICAgYXV0byBjb21waWxlZENvbnRl
bnRSdWxlTGlzdCA9IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0OjpjcmVhdGUoV1RGTW92ZShj
b250ZW50UnVsZUxpc3REYXRhKSk7CisgICAgZm9yIChhdXRvJiYgY29udGVudFJ1bGVMaXN0IDog
Y29udGVudFJ1bGVMaXN0cykgeworICAgICAgICBhdXRvIGNvbXBpbGVkQ29udGVudFJ1bGVMaXN0
ID0gV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmNyZWF0ZShXVEZNb3ZlKGNvbnRlbnRSdWxl
TGlzdC5zZWNvbmQpKTsKIAogICAgICAgICBtX2NvbnRlbnRFeHRlbnNpb25CYWNrZW5kLmFkZENv
bnRlbnRFeHRlbnNpb24oY29udGVudFJ1bGVMaXN0LmZpcnN0LCBXVEZNb3ZlKGNvbXBpbGVkQ29u
dGVudFJ1bGVMaXN0KSk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Vz
ZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIu
aAkocmV2aXNpb24gMjQyNjYzKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250
ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw3ICs2
OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFVzZXJTdHlsZVNoZWV0cyhjb25zdCBWZWN0b3I8
V2ViVXNlclN0eWxlU2hlZXREYXRhPiYpOwogICAgIHZvaWQgYWRkVXNlclNjcmlwdE1lc3NhZ2VI
YW5kbGVycyhjb25zdCBWZWN0b3I8V2ViU2NyaXB0TWVzc2FnZUhhbmRsZXJEYXRhPiYpOwogI2lm
IEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgdm9pZCBhZGRDb250ZW50UnVsZUxpc3Rz
KGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dERhdGE+PiYpOworICAgIHZvaWQgYWRkQ29udGVudFJ1bGVMaXN0cyhWZWN0b3I8c3RkOjpwYWly
PFN0cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPj4mJik7CiAjZW5kaWYKIAog
cHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjM3LDcgKzYzNyw3IEBAIFdlYlBh
Z2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBXZWJQYWcKICAgICBtX3VzZXJDb250ZW50Q29u
dHJvbGxlci0+YWRkVXNlclN0eWxlU2hlZXRzKHBhcmFtZXRlcnMudXNlclN0eWxlU2hlZXRzKTsK
ICAgICBtX3VzZXJDb250ZW50Q29udHJvbGxlci0+YWRkVXNlclNjcmlwdE1lc3NhZ2VIYW5kbGVy
cyhwYXJhbWV0ZXJzLm1lc3NhZ2VIYW5kbGVycyk7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5T
SU9OUykKLSAgICBtX3VzZXJDb250ZW50Q29udHJvbGxlci0+YWRkQ29udGVudFJ1bGVMaXN0cyhw
YXJhbWV0ZXJzLmNvbnRlbnRSdWxlTGlzdHMpOworICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVy
LT5hZGRDb250ZW50UnVsZUxpc3RzKFdURk1vdmUocGFyYW1ldGVycy5jb250ZW50UnVsZUxpc3Rz
KSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBUb29scy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDI2NzApCisr
KyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxOS0w
My0wOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAg
ICAgIEFkZCBhIFdLQ29udGVudFJ1bGVMaXN0IHZhcmlhbnQgdGhhdCB1c2VzIGNvcGllZCBtZW1v
cnkgaW5zdGVhZCBvZiBtbWFwJ2Qgc2hhcmVkIG1lbW9yeSBmb3IgY2xhc3MgQSBjb250YWluZXJp
emVkIGFwcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NTUxMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ4NzMyNjk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLQ29udGVudEV4dGVuc2lvblN0b3JlLm1tOgorICAgICAgICAoLVtUZXN0
U2NoZW1lSGFuZGxlclN1YnJlc291cmNlU2hvdWxkQmVCbG9ja2VkIHdlYlZpZXc6c3RhcnRVUkxT
Y2hlbWVUYXNrOl0pOgorICAgICAgICAoLVtUZXN0U2NoZW1lSGFuZGxlclN1YnJlc291cmNlU2hv
dWxkQmVCbG9ja2VkIHdlYlZpZXc6c3RvcFVSTFNjaGVtZVRhc2s6XSk6CisgICAgICAgIChURVNU
X0YpOgorCiAyMDE5LTAzLTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRhdGlvbiAvIE1vdGlvbiBwZXJtaXNz
aW9uIEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0Nv
bnRlbnRFeHRlbnNpb25TdG9yZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVudEV4dGVuc2lvblN0b3JlLm1tCShyZXZpc2lvbiAy
NDI2NjMpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVu
dEV4dGVuc2lvblN0b3JlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw5ICsyOCwxNCBAQAogCiAj
aW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGVzdC5oIgorI2ltcG9ydCAi
VGVzdFdLV2ViVmlldy5oIgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGVudFJ1bGVMaXN0Lmg+CiAj
aW1wb3J0IDxXZWJLaXQvV0tDb250ZW50UnVsZUxpc3RTdG9yZVByaXZhdGUuaD4KKyNpbXBvcnQg
PFdlYktpdC9fV0tVc2VyQ29udGVudEZpbHRlclByaXZhdGUuaD4KICNpbXBvcnQgPHd0Zi9SZXRh
aW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKyNpbXBvcnQgPHd0
Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CisjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdDb25j
YXRlbmF0ZU51bWJlcnMuaD4KIAogY2xhc3MgV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QgOiBw
dWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CkBAIC0zNzcsMyArMzgyLDEwMiBAQCBURVNU
X0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIEFkZFJlCiAgICAgW3dlYlZpZXcgcmVsb2Fk
XTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkQWxlcnQpOwogfQorCitA
aW50ZXJmYWNlIFRlc3RTY2hlbWVIYW5kbGVyU3VicmVzb3VyY2VTaG91bGRCZUJsb2NrZWQgOiBO
U09iamVjdCA8V0tVUkxTY2hlbWVIYW5kbGVyPgorQGVuZAorQGltcGxlbWVudGF0aW9uIFRlc3RT
Y2hlbWVIYW5kbGVyU3VicmVzb3VyY2VTaG91bGRCZUJsb2NrZWQKKy0gKHZvaWQpd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRh
c2s+KXRhc2sKK3sKKyAgICBFWFBFQ1RfVFJVRShbdGFzay5yZXF1ZXN0LlVSTC5wYXRoIGlzRXF1
YWxUb1N0cmluZzpAIi9zaG91bGRsb2FkIl0pOworICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25z
ZTpbW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDp0YXNrLnJlcXVlc3QuVVJMIE1J
TUVUeXBlOkAidGV4dC9odG1sIiBleHBlY3RlZENvbnRlbnRMZW5ndGg6MCB0ZXh0RW5jb2RpbmdO
YW1lOm5pbF0gYXV0b3JlbGVhc2VdXTsKKyAgICBbdGFzayBkaWRGaW5pc2hdOworfQorLSAodm9p
ZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0b3BVUkxTY2hlbWVUYXNrOihpZCA8V0tV
UkxTY2hlbWVUYXNrPil0YXNrCit7CisgICAgRVhQRUNUX1RSVUUoZmFsc2UpOworfQorQGVuZAor
CitURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIFVuc2FmZU1NYXApCit7CisgICAg
TlNTdHJpbmcgKnRlbXBEaXIgPSBbTlNUZW1wb3JhcnlEaXJlY3RvcnkoKSBzdHJpbmdCeUFwcGVu
ZGluZ1BhdGhDb21wb25lbnQ6QCJVbnNhZmVNTWFwVGVzdCJdOworICAgIFdLQ29udGVudFJ1bGVM
aXN0U3RvcmUgKnN0b3JlID0gW1dLQ29udGVudFJ1bGVMaXN0U3RvcmUgc3RvcmVXaXRoVVJMOltO
U1VSTCBmaWxlVVJMV2l0aFBhdGg6dGVtcERpciBpc0RpcmVjdG9yeTpZRVNdXTsKKyAgICBOU1N0
cmluZyAqaWRlbnRpZmllciA9IEAiVGVzdFJ1bGVMaXN0IjsKKyAgICBOU1N0cmluZyAqZmlsZU5h
bWUgPSBAIkNvbnRlbnRSdWxlTGlzdC1UZXN0UnVsZUxpc3QiOworICAgIE5TU3RyaW5nICpmaWxl
UGF0aCA9IFt0ZW1wRGlyIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpmaWxlTmFtZV07
CisgICAgTlNTdHJpbmcgKnJ1bGVMaXN0U291cmNlU3RyaW5nID0gQCJbe1wiYWN0aW9uXCI6e1wi
dHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwiOlwiYmxvY2tlZHN1
YnJlc291cmNlXCJ9fV0iOworCisgICAgYXV0byBydW5UZXN0ID0gWyZdIChib29sIHNob3VsZFVz
ZUNvcGllZE1lbW9yeSkgeworICAgICAgICBFWFBFQ1RfRkFMU0UoW1tOU0ZpbGVNYW5hZ2VyIGRl
ZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmZpbGVQYXRoXSk7CisgICAgICAgIAorICAg
ICAgICBfX2Jsb2NrIGJvb2wgZG9uZUNvbXBpbGluZyA9IGZhbHNlOworICAgICAgICBfX2Jsb2Nr
IFJldGFpblB0cjxXS0NvbnRlbnRSdWxlTGlzdD4gcnVsZUxpc3Q7CisgICAgICAgIFtzdG9yZSBj
b21waWxlQ29udGVudFJ1bGVMaXN0Rm9ySWRlbnRpZmllcjppZGVudGlmaWVyIGVuY29kZWRDb250
ZW50UnVsZUxpc3Q6cnVsZUxpc3RTb3VyY2VTdHJpbmcgY29tcGxldGlvbkhhbmRsZXI6XihXS0Nv
bnRlbnRSdWxlTGlzdCAqZmlsdGVyLCBOU0Vycm9yICplcnJvcikgeworICAgICAgICAgICAgRVhQ
RUNUX05PVF9OVUxMKGZpbHRlcik7CisgICAgICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7Cisg
ICAgICAgICAgICBkb25lQ29tcGlsaW5nID0gdHJ1ZTsKKyAgICAgICAgICAgIHJ1bGVMaXN0ID0g
ZmlsdGVyOworICAgICAgICAgICAgRVhQRUNUX1RSVUUoW1tbW19XS1VzZXJDb250ZW50RmlsdGVy
IGFsbG9jXSBfaW5pdFdpdGhXS0NvbnRlbnRSdWxlTGlzdDpmaWx0ZXJdIGF1dG9yZWxlYXNlXSB1
c2VzQ29waWVkTWVtb3J5XSA9PSBzaG91bGRVc2VDb3BpZWRNZW1vcnkpOworICAgICAgICB9XTsK
KyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ29tcGlsaW5nKTsKKyAgICAg
ICAgCisgICAgICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0g
ZmlsZUV4aXN0c0F0UGF0aDpmaWxlUGF0aF0pOworCisgICAgICAgIGF1dG8gaGFuZGxlciA9IGFk
b3B0TlMoW1Rlc3RTY2hlbWVIYW5kbGVyU3VicmVzb3VyY2VTaG91bGRCZUJsb2NrZWQgbmV3XSk7
CisgICAgICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gbmV3XSk7CisgICAgICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6
aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJ0ZXN0bW1hcCJdOworICAgICAgICBbW2NvbmZp
Z3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRDb250ZW50UnVsZUxpc3Q6cnVsZUxp
c3QuZ2V0KCldOworICAgICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICAgICAgW3dlYlZpZXcgc3luY2hyb25v
dXNseUxvYWRIVE1MU3RyaW5nOkAiPGh0bWw+bWFpbiByZXNvdXJjZSBjb250ZW50PC9odG1sPiIg
YmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3RtbWFwOi8vd2Via2l0Lm9yZy9tYWlu
cmVzb3VyY2UiXV07CisKKyAgICAgICAgYXV0byBsb2FkaW5nU2hvdWxkU3VjY2VlZCA9IFsmXSAo
TlNTdHJpbmcgKnJlc291cmNlUGF0aCwgTlNTdHJpbmcgKnNob3VsZFN1Y2NlZWQpIHsKKyAgICAg
ICAgICAgIF9fYmxvY2sgYm9vbCBkb25lRXZhbHVhdGluZyA9IGZhbHNlOworICAgICAgICAgICAg
W3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OltOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAi
dmFyIGNhdWdodCA9IGZhbHNlOyB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7IHhoci5v
cGVuKCdHRVQnLCAnJUAnLCBmYWxzZSk7IHRyeXsgeGhyLnNlbmQoKSB9IGNhdGNoKGUpIHsgY2F1
Z2h0ID0gdHJ1ZTsgfTsgY2F1Z2h0ICE9ICVAID8gJ3N1Y2Nlc3MnIDogJ2ZhaWx1cmUnIiwgcmVz
b3VyY2VQYXRoLCBzaG91bGRTdWNjZWVkXSBjb21wbGV0aW9uSGFuZGxlcjpeKGlkIHJlc3VsdCwg
TlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7Cisg
ICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoW0Aic3VjY2VzcyIgaXNFcXVhbFRvU3RyaW5nOnJl
c3VsdF0pOworICAgICAgICAgICAgICAgIGRvbmVFdmFsdWF0aW5nID0gdHJ1ZTsKKyAgICAgICAg
ICAgIH1dOworICAgICAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lRXZhbHVh
dGluZyk7CisgICAgICAgIH07CisgICAgICAgIGxvYWRpbmdTaG91bGRTdWNjZWVkKEAiL3Nob3Vs
ZGxvYWQiLCBAInRydWUiKTsKKyAgICAgICAgbG9hZGluZ1Nob3VsZFN1Y2NlZWQoQCIvYmxvY2tl
ZHN1YnJlc291cmNlIiwgQCJmYWxzZSIpOworCisgICAgICAgIFtbY29uZmlndXJhdGlvbiB1c2Vy
Q29udGVudENvbnRyb2xsZXJdIHJlbW92ZUNvbnRlbnRSdWxlTGlzdDpydWxlTGlzdC5nZXQoKV07
CisgICAgICAgIAorICAgICAgICBfX2Jsb2NrIGJvb2wgZG9uZUxvb2tpbmdVcCA9IGZhbHNlOwor
ICAgICAgICBbc3RvcmUgbG9va1VwQ29udGVudFJ1bGVMaXN0Rm9ySWRlbnRpZmllcjppZGVudGlm
aWVyIGNvbXBsZXRpb25IYW5kbGVyOl4oV0tDb250ZW50UnVsZUxpc3QgKmZpbHRlciwgTlNFcnJv
ciAqZXJyb3IpIHsKKyAgICAgICAgICAgIEVYUEVDVF9OT1RfTlVMTChmaWx0ZXIpOworICAgICAg
ICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICAgICAgCisgICAgICAgICAgICBkb25l
TG9va2luZ1VwID0gdHJ1ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgRVhQRUNUX1RSVUUo
W1tbW19XS1VzZXJDb250ZW50RmlsdGVyIGFsbG9jXSBfaW5pdFdpdGhXS0NvbnRlbnRSdWxlTGlz
dDpmaWx0ZXJdIGF1dG9yZWxlYXNlXSB1c2VzQ29waWVkTWVtb3J5XSA9PSBzaG91bGRVc2VDb3Bp
ZWRNZW1vcnkpOworICAgICAgICAgICAgcnVsZUxpc3QgPSBmaWx0ZXI7CisgICAgICAgIH1dOwor
ICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVMb29raW5nVXApOworCisgICAg
ICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZENvbnRlbnRSdWxl
TGlzdDpydWxlTGlzdC5nZXQoKV07CisgICAgICAgIGxvYWRpbmdTaG91bGRTdWNjZWVkKEAiL3No
b3VsZGxvYWQiLCBAInRydWUiKTsKKyAgICAgICAgbG9hZGluZ1Nob3VsZFN1Y2NlZWQoQCIvYmxv
Y2tlZHN1YnJlc291cmNlIiwgQCJmYWxzZSIpOworCisgICAgICAgIF9fYmxvY2sgYm9vbCBkb25l
Q2hlY2tpbmdTb3VyY2UgPSBmYWxzZTsKKyAgICAgICAgW3N0b3JlIF9nZXRDb250ZW50UnVsZUxp
c3RTb3VyY2VGb3JJZGVudGlmaWVyOmlkZW50aWZpZXIgY29tcGxldGlvbkhhbmRsZXI6XihOU1N0
cmluZyAqc291cmNlKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShbc291cmNlIGlzRXF1YWxU
b1N0cmluZzpydWxlTGlzdFNvdXJjZVN0cmluZ10pOworICAgICAgICAgICAgZG9uZUNoZWNraW5n
U291cmNlID0gdHJ1ZTsKKyAgICAgICAgfV07CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZUNoZWNraW5nU291cmNlKTsKKyAgICAgICAgCisgICAgICAgIF9fYmxvY2sgYm9v
bCBkb25lUmVtb3ZpbmcgPSBmYWxzZTsKKyAgICAgICAgW3N0b3JlIHJlbW92ZUNvbnRlbnRSdWxl
TGlzdEZvcklkZW50aWZpZXI6aWRlbnRpZmllciBjb21wbGV0aW9uSGFuZGxlcjpeKE5TRXJyb3Ig
KmVycm9yKSB7CisgICAgICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7CisgICAgICAgICAgICBk
b25lUmVtb3ZpbmcgPSB0cnVlOworICAgICAgICB9XTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkb25lUmVtb3ZpbmcpOworCisgICAgICAgIEVYUEVDVF9GQUxTRShbW05TRmls
ZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZmlsZVBhdGhdKTsKKyAg
ICB9OworICAgIAorICAgIHJ1blRlc3QoZmFsc2UpOworICAgIFtXS0NvbnRlbnRSdWxlTGlzdFN0
b3JlIF9yZWdpc3RlclBhdGhBc1Vuc2FmZVRvTWVtb3J5TWFwRm9yVGVzdGluZzpmaWxlUGF0aF07
CisgICAgcnVuVGVzdCh0cnVlKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364114</attachid>
            <date>2019-03-08 21:18:49 -0800</date>
            <delta_ts>2019-03-10 22:12:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195511-20190308211848.patch</filename>
            <type>text/plain</type>
            <size>48047</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY0IEBACisyMDE5LTAzLTA4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGEgV0tDb250
ZW50UnVsZUxpc3QgdmFyaWFudCB0aGF0IHVzZXMgY29waWVkIG1lbW9yeSBpbnN0ZWFkIG9mIG1t
YXAnZCBzaGFyZWQgbWVtb3J5IGZvciBjbGFzcyBBIGNvbnRhaW5lcml6ZWQgYXBwcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NTExCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NDg3MzI2OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxp
c3RNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NvbnRlbnRSdWxlTGlzdE1h
bmFnZXI6OmFkZENvbnRlbnRSdWxlTGlzdHMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05l
dHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
Y2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtDYWNoZTo6cGF0aFJlZ2lzdGVyZWRBc1Vuc2FmZVRvTWVtb3J5TWFwRm9yVGVzdGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6cmVnaXN0ZXJQYXRoQXNVbnNhZmVUb01lbW9y
eU1hcEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OmlzU2FmZVRv
VXNlTWVtb3J5TWFwRm9yUGF0aCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlRmlsZVN5c3RlbS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJDb21waWxlZENvbnRl
bnRSdWxlTGlzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0Ojp1c2VzQ29waWVkTWVtb3J5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcGls
ZWRDb250ZW50UnVsZUxpc3Q6OmNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbiBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0OjpmaWx0ZXJzV2l0aG91
dENvbmRpdGlvbnNCeXRlY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0OjpmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0Ojp0b3BVUkxGaWx0ZXJz
Qnl0ZWNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxl
TGlzdDo6YWN0aW9ucyBjb25zdCk6CisgICAgICAgICogU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVu
dFJ1bGVMaXN0Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0
RGF0YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YTo6c2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0RGF0YTo6ZGF0YVBvaW50ZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21waWxl
ZENvbnRlbnRSdWxlTGlzdERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRh
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdC5jcHA6CisgICAg
ICAgIChBUEk6OkNvbnRlbnRSdWxlTGlzdDo6dXNlc0NvcGllZE1lbW9yeSBjb25zdCk6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3QuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6Z2V0
RGF0YSk6CisgICAgICAgIChBUEk6OmRlY29kZUNvbnRlbnRSdWxlTGlzdE1ldGFEYXRhKToKKyAg
ICAgICAgKEFQSTo6Q29udGVudFJ1bGVMaXN0U3RvcmU6OnJlYWRDb250ZW50c09mRmlsZSk6Cisg
ICAgICAgIChBUEk6Ok1hcHBlZE9yQ29waWVkRGF0YTo6ZGF0YVBvaW50ZXIgY29uc3QpOgorICAg
ICAgICAoQVBJOjpvcGVuQW5kTWFwT3JDb3B5Q29udGVudFJ1bGVMaXN0KToKKyAgICAgICAgKEFQ
STo6Y29tcGlsZWRUb0ZpbGUpOgorICAgICAgICAoQVBJOjpjcmVhdGVFeHRlbnNpb24pOgorICAg
ICAgICAoQVBJOjpDb250ZW50UnVsZUxpc3RTdG9yZTo6bG9va3VwQ29udGVudFJ1bGVMaXN0KToK
KyAgICAgICAgKEFQSTo6Q29udGVudFJ1bGVMaXN0U3RvcmU6OmNvbXBpbGVDb250ZW50UnVsZUxp
c3QpOgorICAgICAgICAoQVBJOjpDb250ZW50UnVsZUxpc3RTdG9yZTo6Z2V0Q29udGVudFJ1bGVM
aXN0U291cmNlKToKKyAgICAgICAgKEFQSTo6b3BlbkFuZE1hcENvbnRlbnRSdWxlTGlzdCk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmVD
b2NvYS5tbToKKyAgICAgICAgKEFQSTo6Q29udGVudFJ1bGVMaXN0U3RvcmU6OnJlYWRDb250ZW50
c09mRmlsZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlz
dFN0b3JlLm1tOgorICAgICAgICAoK1tXS0NvbnRlbnRSdWxlTGlzdFN0b3JlIF9yZWdpc3RlclBh
dGhBc1Vuc2FmZVRvTWVtb3J5TWFwRm9yVGVzdGluZzpdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0U3RvcmVQcml2YXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEZpbHRlci5tbToKKyAgICAgICAgKC1bX1dL
VXNlckNvbnRlbnRGaWx0ZXIgdXNlc0NvcGllZE1lbW9yeV0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXJQcml2YXRlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OmFkZENvbnRlbnRSdWxlTGlzdHMp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAg
ICAoV2ViS2l0OjptX2hvc3RGaWxlRGVzY3JpcHRvcik6CisKIDIwMTktMDMtMDggIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEhhdmUgdGhlIFVJUHJvY2VzcyB0
YWtlIHRoZSBVbmJvdW5kZWROZXR3b3JraW5nIGFzc2VydGlvbiB3aGVuIGRvd25sb2FkcyBhcmUg
aW4gcHJvZ3Jlc3MuCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtD
b250ZW50UnVsZUxpc3RNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmNwcAkocmV2aXNpb24g
MjQyNjYzKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1
bGVMaXN0TWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDE1ICs2NiwxNCBAQCB2b2lk
IE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOjpjb250CiAgICAgbV9uZXR3b3JrUHJvY2Vz
cy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpDb250ZW50RXh0ZW5zaW9uUnVsZXMgeyBpZGVudGlmaWVyIH0sIDApOwogfQogCi12
b2lkIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOjphZGRDb250ZW50UnVsZUxpc3RzKFVz
ZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgVmVjdG9yPHN0
ZDo6cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4+JiBjb250ZW50
UnVsZUxpc3RzKQordm9pZCBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjo6YWRkQ29udGVu
dFJ1bGVMaXN0cyhVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFZl
Y3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+PiYm
IGNvbnRlbnRSdWxlTGlzdHMpCiB7CiAgICAgYXV0byYgYmFja2VuZCA9ICptX2NvbnRlbnRFeHRl
bnNpb25CYWNrZW5kcy5lbnN1cmUoaWRlbnRpZmllciwgW10gewogICAgICAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lv
bnNCYWNrZW5kPigpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKIAotICAgIGZvciAoY29uc3Qg
YXV0byYgY29udGVudFJ1bGVMaXN0IDogY29udGVudFJ1bGVMaXN0cykgewotICAgICAgICBXZWJD
b21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEgY29udGVudFJ1bGVMaXN0RGF0YSA9IGNvbnRlbnRS
dWxlTGlzdC5zZWNvbmQ7Ci0gICAgICAgIGF1dG8gY29tcGlsZWRDb250ZW50UnVsZUxpc3QgPSBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6Y3JlYXRlKFdURk1vdmUoY29udGVudFJ1bGVMaXN0
RGF0YSkpOworICAgIGZvciAoYXV0byYmIGNvbnRlbnRSdWxlTGlzdCA6IGNvbnRlbnRSdWxlTGlz
dHMpIHsKKyAgICAgICAgYXV0byBjb21waWxlZENvbnRlbnRSdWxlTGlzdCA9IFdlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0OjpjcmVhdGUoV1RGTW92ZShjb250ZW50UnVsZUxpc3Quc2Vjb25kKSk7
CiAgICAgICAgIGJhY2tlbmQuYWRkQ29udGVudEV4dGVuc2lvbihjb250ZW50UnVsZUxpc3QuZmly
c3QsIFdURk1vdmUoY29tcGlsZWRDb250ZW50UnVsZUxpc3QpLCBDb250ZW50RXh0ZW5zaW9uczo6
Q29udGVudEV4dGVuc2lvbjo6U2hvdWxkQ29tcGlsZUNTUzo6Tm8pOwogICAgIH0KIApJbmRleDog
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nv
bnRlbnRSdWxlTGlzdE1hbmFnZXIuaAkocmV2aXNpb24gMjQyNjYzKQorKysgU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbnRlbnRFeHRlbnNp
b25zQmFja2VuZChVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBCYWNrZW5kQ2FsbGJh
Y2smJik7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBhZGRDb250ZW50UnVsZUxpc3RzKFVzZXJDb250
ZW50Q29udHJvbGxlcklkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+PiYpOworICAgIHZvaWQgYWRkQ29udGVudFJ1
bGVMaXN0cyhVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBWZWN0b3I8c3RkOjpwYWly
PFN0cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPj4mJik7CiAgICAgdm9pZCBy
ZW1vdmVDb250ZW50UnVsZUxpc3QoVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIHJlbW92ZUFsbENvbnRlbnRSdWxlTGlzdHMoVXNl
ckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllcik7CiAgICAgdm9pZCByZW1vdmUoVXNlckNvbnRl
bnRDb250cm9sbGVySWRlbnRpZmllcik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5jcHAJ
KHJldmlzaW9uIDI0MjY2MykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlRmlsZVN5c3RlbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw4ICsxNDUs
MjMgQEAgdm9pZCB1cGRhdGVGaWxlTW9kaWZpY2F0aW9uVGltZUlmTmVlZGVkKAogI2VuZGlmCiB9
CiAKK3N0YXRpYyBTdHJpbmcmIHBhdGhSZWdpc3RlcmVkQXNVbnNhZmVUb01lbW9yeU1hcEZvclRl
c3RpbmcoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHBhdGg7CisgICAg
cmV0dXJuIHBhdGguZ2V0KCk7Cit9CisKK3ZvaWQgcmVnaXN0ZXJQYXRoQXNVbnNhZmVUb01lbW9y
eU1hcEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBwYXRoKQoreworICAgIHBhdGhSZWdpc3RlcmVk
QXNVbnNhZmVUb01lbW9yeU1hcEZvclRlc3RpbmcoKSA9IHBhdGg7Cit9CisKKyAgICAKIGJvb2wg
aXNTYWZlVG9Vc2VNZW1vcnlNYXBGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKKyAgICBp
ZiAocGF0aCA9PSBwYXRoUmVnaXN0ZXJlZEFzVW5zYWZlVG9NZW1vcnlNYXBGb3JUZXN0aW5nKCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQ
TEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikKICAgICBzdHJ1Y3QgewogICAgICAgICB1aW50
MzJfdCBsZW5ndGg7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05l
dHdvcmtDYWNoZUZpbGVTeXN0ZW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uaAkocmV2aXNpb24gMjQyNjYz
KQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVGaWxl
U3lzdGVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAgRmlsZVRpbWVzIGZpbGVU
aW1lcyhjb25zdCBTdHJpbmcmIHBhdGgpOwogdm9pZCB1cGRhdGVGaWxlTW9kaWZpY2F0aW9uVGlt
ZUlmTmVlZGVkKGNvbnN0IFN0cmluZyYgcGF0aCk7CiAKIGJvb2wgaXNTYWZlVG9Vc2VNZW1vcnlN
YXBGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCk7Cit2b2lkIHJlZ2lzdGVyUGF0aEFzVW5zYWZl
VG9NZW1vcnlNYXBGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYpOwogCiB9CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QuY3Bw
CShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDE0ICs0NCwxOSBAQCBXZWJD
b21waWxlZENvbnRlbnRSdWxlTGlzdDo6fldlYkNvbXBpbGVkCiB7CiB9CiAKK2Jvb2wgV2ViQ29t
cGlsZWRDb250ZW50UnVsZUxpc3Q6OnVzZXNDb3BpZWRNZW1vcnkoKSBjb25zdAoreworICAgIHJl
dHVybiBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+
PihtX2RhdGEuZGF0YSk7Cit9CisKIGJvb2wgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmNv
bmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICpyZWludGVy
cHJldF9jYXN0PHVpbnQzMl90Kj4ocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4obV9kYXRhLmRh
dGEtPmRhdGEoKSkgKyBtX2RhdGEuY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0KTsK
KyAgICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihyZWludGVycHJl
dF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihtX2RhdGEuZGF0YVBvaW50ZXIoKSkgKyBtX2RhdGEuY29u
ZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0KTsKIH0KIAogY29uc3QgV2ViQ29yZTo6Q29u
dGVudEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlKiBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6
ZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGUoKSBjb25zdAogewotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxjb25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGUq
PihtX2RhdGEuZGF0YS0+ZGF0YSgpKSArIG1fZGF0YS5maWx0ZXJzV2l0aG91dENvbmRpdGlvbnNC
eXRlY29kZU9mZnNldDsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgV2ViQ29yZTo6Q29u
dGVudEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlKj4obV9kYXRhLmRhdGFQb2ludGVyKCkpICsgbV9k
YXRhLmZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0OwogfQogCiB1bnNpZ25l
ZCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6ZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0
ZWNvZGVMZW5ndGgoKSBjb25zdApAQCAtNjEsNyArNjYsNyBAQCB1bnNpZ25lZCBXZWJDb21waWxl
ZENvbnRlbnRSdWxlTGlzdDo6ZmlsCiAKIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OjpERkFCeXRlY29kZSogV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmZpbHRlcnNXaXRoQ29u
ZGl0aW9uc0J5dGVjb2RlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlKj4obV9kYXRhLmRhdGEtPmRh
dGEoKSkgKyBtX2RhdGEuZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQ7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpERkFC
eXRlY29kZSo+KG1fZGF0YS5kYXRhUG9pbnRlcigpKSArIG1fZGF0YS5maWx0ZXJzV2l0aENvbmRp
dGlvbnNCeXRlY29kZU9mZnNldDsKIH0KIAogdW5zaWduZWQgV2ViQ29tcGlsZWRDb250ZW50UnVs
ZUxpc3Q6OmZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlTGVuZ3RoKCkgY29uc3QKQEAgLTcx
LDcgKzc2LDcgQEAgdW5zaWduZWQgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmZpbAogCiBj
b25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGUqIFdlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0Ojp0b3BVUkxGaWx0ZXJzQnl0ZWNvZGUoKSBjb25zdAogewotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxjb25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0
ZWNvZGUqPihtX2RhdGEuZGF0YS0+ZGF0YSgpKSArIG1fZGF0YS50b3BVUkxGaWx0ZXJzQnl0ZWNv
ZGVPZmZzZXQ7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRF
eHRlbnNpb25zOjpERkFCeXRlY29kZSo+KG1fZGF0YS5kYXRhUG9pbnRlcigpKSArIG1fZGF0YS50
b3BVUkxGaWx0ZXJzQnl0ZWNvZGVPZmZzZXQ7CiB9CiAKIHVuc2lnbmVkIFdlYkNvbXBpbGVkQ29u
dGVudFJ1bGVMaXN0Ojp0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVMZW5ndGgoKSBjb25zdApAQCAtODEs
NyArODYsNyBAQCB1bnNpZ25lZCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6dG9wCiAKIGNv
bnN0IFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpTZXJpYWxpemVkQWN0aW9uQnl0ZSogV2Vi
Q29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmFjdGlvbnMoKSBjb25zdAogewotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxjb25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6U2VyaWFsaXplZEFj
dGlvbkJ5dGUqPihtX2RhdGEuZGF0YS0+ZGF0YSgpKSArIG1fZGF0YS5hY3Rpb25zT2Zmc2V0Owor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6
U2VyaWFsaXplZEFjdGlvbkJ5dGUqPihtX2RhdGEuZGF0YVBvaW50ZXIoKSkgKyBtX2RhdGEuYWN0
aW9uc09mZnNldDsKIH0KIAogdW5zaWduZWQgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmFj
dGlvbnNMZW5ndGgoKSBjb25zdApJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGls
ZWRDb250ZW50UnVsZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5oCShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zOCw4ICszOCwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdD4gY3JlYXRlKFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSYmKTsK
ICAgICB2aXJ0dWFsIH5XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdCgpOwogCi0gICAgV2ViQ29t
cGlsZWRDb250ZW50UnVsZUxpc3REYXRhIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0K
KyAgICBjb25zdCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEmIGRhdGEoKSBjb25zdCB7
IHJldHVybiBtX2RhdGE7IH0KIAorICAgIGJvb2wgdXNlc0NvcGllZE1lbW9yeSgpIGNvbnN0Owor
ICAgIAogcHJpdmF0ZToKICAgICBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdChXZWJDb21waWxl
ZENvbnRlbnRSdWxlTGlzdERhdGEmJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmNwcAkocmV2aXNpb24g
MjQyNjYzKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3REYXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksMTQgKzI5LDM4IEBACiAjaWYgRU5BQkxF
KENPTlRFTlRfRVhURU5TSU9OUykKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5j
bHVkZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAorc2l6ZV90IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6c2l6ZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIFdURjo6c3dpdGNoT24oZGF0YSwgW10gKGNvbnN0IGF1dG8mIHNoYXJlZE1l
bW9yeU9yQnVmZmVyKSB7CisgICAgICAgIHJldHVybiBzaGFyZWRNZW1vcnlPckJ1ZmZlci0+c2l6
ZSgpOworICAgIH0pOworfQorCitjb25zdCB2b2lkKiBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dERhdGE6OmRhdGFQb2ludGVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihk
YXRhLCBbXSAoY29uc3QgYXV0byYgc2hhcmVkTWVtb3J5T3JCdWZmZXIpIHsKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGNvbnN0IHZvaWQqPihzaGFyZWRNZW1vcnlPckJ1ZmZlci0+ZGF0YSgp
KTsKKyAgICB9KTsKK30KKwogdm9pZCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE6OmVu
Y29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgU2hhcmVkTWVtb3J5OjpI
YW5kbGUgaGFuZGxlOwotICAgIGRhdGEtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJlZE1lbW9y
eTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwotICAgIGVuY29kZXIgPDwgaGFuZGxlOworICAgIGlm
IChhdXRvIHNoYXJlZE1lbW9yeSA9IFdURjo6Z2V0X2lmPFJlZlB0cjxTaGFyZWRNZW1vcnk+Pihk
YXRhKSkgeworICAgICAgICBlbmNvZGVyIDw8IHRydWU7CisgICAgICAgIFNoYXJlZE1lbW9yeTo6
SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgc2hhcmVkTWVtb3J5LT5nZXQoKS0+Y3JlYXRlSGFuZGxl
KGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgICAgIGVu
Y29kZXIgPDwgaGFuZGxlOworICAgIH0gZWxzZSB7CisgICAgICAgIGVuY29kZXIgPDwgZmFsc2U7
CisgICAgICAgIGVuY29kZXIgPDwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlIHsgKldU
Rjo6Z2V0PFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+PihkYXRhKSB9OworICAgIH0KKwor
ICAgIC8vIGZpbGVEYXRhIG5lZWRzIHRvIGJlIGtlcHQgaW4gdGhlIFVJUHJvY2VzcywgYnV0IGl0
IGRvZXMgbm90IG5lZWQgdG8gYmUgc2VyaWFsaXplZC4KKyAgICAvLyBGSVhNRTogTW92ZSBpdCB0
byBBUEk6OkNvbnRlbnRSdWxlTGlzdAogCiAgICAgZW5jb2RlciA8PCBjb25kaXRpb25zQXBwbHlP
bmx5VG9Eb21haW5PZmZzZXQ7CiAgICAgZW5jb2RlciA8PCBhY3Rpb25zT2Zmc2V0OwpAQCAtNTIs
MTAgKzc2LDIyIEBAIHZvaWQgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhOjplbmMKIE9w
dGlvbmFsPFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4gV2ViQ29tcGlsZWRDb250ZW50
UnVsZUxpc3REYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAgIFdlYkNv
bXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSBjb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE7Ci0g
ICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
aGFuZGxlKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBjb21waWxlZENvbnRl
bnRSdWxlTGlzdERhdGEuZGF0YSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hhcmVkTWVt
b3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisKKyAgICBPcHRpb25hbDxib29sPiBoYXNTaGFy
ZWRNZW1vcnk7CisgICAgZGVjb2RlciA+PiBoYXNTaGFyZWRNZW1vcnk7CisgICAgaWYgKCFoYXNT
aGFyZWRNZW1vcnkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgaWYgKCpoYXNT
aGFyZWRNZW1vcnkpIHsKKyAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOworICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhbmRsZSkpCisgICAgICAgICAgICByZXR1cm4gV1RG
OjpudWxsb3B0OworICAgICAgICBjb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuZGF0YSA9IHsg
U2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRP
bmx5KSB9OworICAgIH0gZWxzZSB7CisgICAgICAgIElQQzo6RGF0YVJlZmVyZW5jZSBkYXRhUmVm
ZXJlbmNlOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGFSZWZlcmVuY2UpKQorICAg
ICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgY29tcGlsZWRDb250ZW50UnVs
ZUxpc3REYXRhLmRhdGEgPSB7IFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+KFdlYkNvcmU6
OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGFSZWZlcmVuY2UuZGF0YSgpLCBkYXRhUmVmZXJlbmNl
LnNpemUoKSkpIH07CisgICAgfQogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb21waWxlZENv
bnRlbnRSdWxlTGlzdERhdGEuY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0KSkKICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5oCShyZXZpc2lvbiAyNDI2
NjMpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERh
dGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksOSBAQAogCiAjaW5jbHVkZSAiTmV0d29y
a0NhY2hlRGF0YS5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvU2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0
Zi9WYXJpYW50Lmg+CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgRGVjb2RlcjsKQEAgLTQyLDcg
KzQ0LDcgQEAgY2xhc3MgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhIHsKIHB1YmxpYzoK
ICAgICBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEoKSA9IGRlZmF1bHQ7CiAKLSAgICBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEoUmVmUHRyPFNoYXJlZE1lbW9yeT4mJiBkYXRh
LCBOZXR3b3JrQ2FjaGU6OkRhdGEgZmlsZURhdGEsIHVuc2lnbmVkIGNvbmRpdGlvbnNBcHBseU9u
bHlUb0RvbWFpbk9mZnNldCwgdW5zaWduZWQgYWN0aW9uc09mZnNldCwgdW5zaWduZWQgYWN0aW9u
c1NpemUsIHVuc2lnbmVkIGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0LCB1
bnNpZ25lZCBmaWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUsIHVuc2lnbmVkIGZp
bHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0LCB1bnNpZ25lZCBmaWx0ZXJzV2l0aENv
bmRpdGlvbnNCeXRlY29kZVNpemUsIHVuc2lnbmVkIHRvcFVSTEZpbHRlcnNCeXRlY29kZU9mZnNl
dCwgdW5zaWduZWQgdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSkKKyAgICBXZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdERhdGEoVmFyaWFudDxSZWZQdHI8U2hhcmVkTWVtb3J5PiwgUmVmUHRyPFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcj4+JiYgZGF0YSwgTmV0d29ya0NhY2hlOjpEYXRhIGZpbGVEYXRh
LCB1bnNpZ25lZCBjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW5PZmZzZXQsIHVuc2lnbmVkIGFj
dGlvbnNPZmZzZXQsIHVuc2lnbmVkIGFjdGlvbnNTaXplLCB1bnNpZ25lZCBmaWx0ZXJzV2l0aG91
dENvbmRpdGlvbnNCeXRlY29kZU9mZnNldCwgdW5zaWduZWQgZmlsdGVyc1dpdGhvdXRDb25kaXRp
b25zQnl0ZWNvZGVTaXplLCB1bnNpZ25lZCBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZU9m
ZnNldCwgdW5zaWduZWQgZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplLCB1bnNpZ25l
ZCB0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVPZmZzZXQsIHVuc2lnbmVkIHRvcFVSTEZpbHRlcnNCeXRl
Y29kZVNpemUpCiAgICAgICAgIDogZGF0YShXVEZNb3ZlKGRhdGEpKQogICAgICAgICAsIGZpbGVE
YXRhKGZpbGVEYXRhKQogICAgICAgICAsIGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbk9mZnNl
dChjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW5PZmZzZXQpCkBAIC02MCw3ICs2MiwxMCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGlj
IE9wdGlvbmFsPFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4gZGVjb2RlKElQQzo6RGVj
b2RlciYpOwogCi0gICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gZGF0YTsKKyAgICBzaXplX3Qgc2l6
ZSgpIGNvbnN0OworICAgIGNvbnN0IHZvaWQqIGRhdGFQb2ludGVyKCkgY29uc3Q7CisgICAgCisg
ICAgVmFyaWFudDxSZWZQdHI8U2hhcmVkTWVtb3J5PiwgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlcj4+IGRhdGE7CiAgICAgTmV0d29ya0NhY2hlOjpEYXRhIGZpbGVEYXRhOwogICAgIHVuc2ln
bmVkIGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbk9mZnNldCB7IDAgfTsKICAgICB1bnNpZ25l
ZCBhY3Rpb25zT2Zmc2V0IHsgMCB9OwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSUNvbnRlbnRSdWxlTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdC5jcHAJKHJldmlzaW9uIDI0MjY2MykKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3QuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00Miw2ICs0MiwxMSBAQCBDb250ZW50UnVsZUxpc3Q6On5Db250ZW50UnVsZUxp
c3QoKQogewogfQogCitib29sIENvbnRlbnRSdWxlTGlzdDo6dXNlc0NvcGllZE1lbW9yeSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fY29tcGlsZWRSdWxlTGlzdC0+dXNlc0NvcGllZE1lbW9yeSgp
OworfQorCiB9IC8vIG5hbWVzcGFjZSBBUEkKIAogI2VuZGlmIC8vIEVOQUJMRShDT05URU5UX0VY
VEVOU0lPTlMpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1
bGVMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNv
bnRlbnRSdWxlTGlzdC5oCShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDYgKzQ4
LDggQEAgcHVibGljOgogICAgIGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9uYW1lOyB9CiAgICAgY29uc3QgV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dCYgY29tcGlsZWRSdWxlTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fY29tcGlsZWRSdWxlTGlzdC5n
ZXQoKTsgfQogCisgICAgYm9vbCB1c2VzQ29waWVkTWVtb3J5KCkgY29uc3Q7CisKIHByaXZhdGU6
CiAgICAgV1RGOjpTdHJpbmcgbV9uYW1lOwogICAgIFJlZjxXZWJLaXQ6OldlYkNvbXBpbGVkQ29u
dGVudFJ1bGVMaXN0PiBtX2NvbXBpbGVkUnVsZUxpc3Q7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5jcHAJKHJl
dmlzaW9uIDI0MjY2MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50
UnVsZUxpc3RTdG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25FcnJvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
Q29udGVudEV4dGVuc2lvblBhcnNlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUXVhbGlmaWVkTmFt
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVkZSA8c3RyaW5n
PgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9GaWxl
U3lzdGVtLmg+CkBAIC0xNTYsMTAgKzE1NywyMiBAQCBzdGF0aWMgV2ViS2l0OjpOZXR3b3JrQ2Fj
aGU6OkRhdGEgZW5jb2RlCiAgICAgcmV0dXJuIFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhKGVu
Y29kZXIuYnVmZmVyKCksIGVuY29kZXIuYnVmZmVyU2l6ZSgpKTsKIH0KIAotc3RhdGljIGJvb2wg
ZGVjb2RlQ29udGVudFJ1bGVMaXN0TWV0YURhdGEoQ29udGVudFJ1bGVMaXN0TWV0YURhdGEmIG1l
dGFEYXRhLCBjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSYgZmlsZURhdGEpCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGdldERhdGEoY29uc3QgVCYsIGNvbnN0IEZ1bmN0aW9uPGJv
b2woY29uc3QgdWludDhfdCosIHNpemVfdCk+Jik7Cit0ZW1wbGF0ZTw+IHZvaWQgZ2V0RGF0YShj
b25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSYgZGF0YSwgY29uc3QgRnVuY3Rpb248Ym9v
bChjb25zdCB1aW50OF90Kiwgc2l6ZV90KT4mIGZ1bmN0aW9uKQoreworICAgIGRhdGEuYXBwbHko
ZnVuY3Rpb24pOworfQordGVtcGxhdGU8PiB2b2lkIGdldERhdGEoY29uc3QgV2ViQ29yZTo6U2hh
cmVkQnVmZmVyJiBkYXRhLCBjb25zdCBGdW5jdGlvbjxib29sKGNvbnN0IHVpbnQ4X3QqLCBzaXpl
X3QpPiYgZnVuY3Rpb24pCit7CisgICAgZnVuY3Rpb24ocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSk7Cit9CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+CitzdGF0aWMgT3B0aW9uYWw8Q29udGVudFJ1bGVMaXN0TWV0YURhdGE+IGRlY29kZUNv
bnRlbnRSdWxlTGlzdE1ldGFEYXRhKGNvbnN0IFQmIGZpbGVEYXRhKQogewogICAgIGJvb2wgc3Vj
Y2VzcyA9IGZhbHNlOwotICAgIGZpbGVEYXRhLmFwcGx5KFsmbWV0YURhdGEsICZzdWNjZXNzLCAm
ZmlsZURhdGFdKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKSB7CisgICAgQ29udGVu
dFJ1bGVMaXN0TWV0YURhdGEgbWV0YURhdGE7CisgICAgZ2V0RGF0YShmaWxlRGF0YSwgWyZtZXRh
RGF0YSwgJnN1Y2Nlc3MsICZmaWxlRGF0YV0oY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNp
emUpIHsKICAgICAgICAgLy8gVGhlIGZpbGUgZGF0YSBzaG91bGQgYmUgbWFwcGVkIGludG8gb25l
IGNvbnRpbnVvdXMgbWVtb3J5IHNlZ21lbnQgc28gdGhlIHNpemUKICAgICAgICAgLy8gcGFzc2Vk
IHRvIHRoZSBhcHBsaWVyIHNob3VsZCBhbHdheXMgZXF1YWwgdGhlIGRhdGEgc2l6ZS4KICAgICAg
ICAgaWYgKHNpemUgIT0gZmlsZURhdGEuc2l6ZSgpKQpAQCAtMTgzLDE5ICsxOTYsNTIgQEAgc3Rh
dGljIGJvb2wgZGVjb2RlQ29udGVudFJ1bGVMaXN0TWV0YURhdAogICAgICAgICBzdWNjZXNzID0g
dHJ1ZTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0pOwotICAgIHJldHVybiBzdWNjZXNz
OworICAgIGlmICghc3VjY2VzcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBy
ZXR1cm4gV1RGTW92ZShtZXRhRGF0YSk7CiB9CiAKLXN0YXRpYyBib29sIG9wZW5BbmRNYXBDb250
ZW50UnVsZUxpc3QoY29uc3QgV1RGOjpTdHJpbmcmIHBhdGgsIENvbnRlbnRSdWxlTGlzdE1ldGFE
YXRhJiBtZXRhRGF0YSwgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGEmIGZpbGVEYXRhKQorI2lm
ICFQTEFURk9STShDT0NPQSkKK1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IENvbnRlbnRS
dWxlTGlzdFN0b3JlOjpyZWFkQ29udGVudHNPZkZpbGUoY29uc3QgV1RGOjpTdHJpbmcmIGZpbGVQ
YXRoKQogewotICAgIGZpbGVEYXRhID0gbWFwRmlsZShmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24o
cGF0aCkuZGF0YSgpKTsKLSAgICBpZiAoZmlsZURhdGEuaXNOdWxsKCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKyNlbmRpZgogCi0gICAgaWYgKCFkZWNvZGVDb250ZW50UnVsZUxpc3RNZXRhRGF0YShtZXRh
RGF0YSwgZmlsZURhdGEpKQotICAgICAgICByZXR1cm4gZmFsc2U7CitzdHJ1Y3QgTWFwcGVkT3JD
b3BpZWREYXRhIHsKKyAgICBDb250ZW50UnVsZUxpc3RNZXRhRGF0YSBtZXRhRGF0YTsKKyAgICBW
YXJpYW50PFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhLCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVk
QnVmZmVyPj4gZGF0YTsKKyAgICAKKyAgICBjb25zdCB1aW50OF90KiBkYXRhUG9pbnRlcigpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihkYXRhLCBbXSAoY29uc3Qg
V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGEmIGRhdGEpIHsKKyAgICAgICAgICAgIHJldHVybiBk
YXRhLmRhdGEoKTsKKyAgICAgICAgfSwgW10gKGNvbnN0IFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRC
dWZmZXI+JiBzaGFyZWRCdWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PGNvbnN0IHVpbnQ4X3QqPihzaGFyZWRCdWZmZXItPmRhdGEoKSk7CisgICAgICAgIH0pOwor
ICAgIH0KK307CisKK3N0YXRpYyBPcHRpb25hbDxNYXBwZWRPckNvcGllZERhdGE+IG9wZW5BbmRN
YXBPckNvcHlDb250ZW50UnVsZUxpc3QoY29uc3QgV1RGOjpTdHJpbmcmIHBhdGgpCit7CisgICAg
aWYgKCFXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6aXNTYWZlVG9Vc2VNZW1vcnlNYXBGb3JQYXRoKHBh
dGgpKSB7CisgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IENv
bnRlbnRSdWxlTGlzdFN0b3JlOjpyZWFkQ29udGVudHNPZkZpbGUocGF0aCk7CisgICAgICAgIGlm
ICghYnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgYXV0
byBtZXRhRGF0YSA9IGRlY29kZUNvbnRlbnRSdWxlTGlzdE1ldGFEYXRhKCpidWZmZXIpOworICAg
ICAgICBpZiAoIW1ldGFEYXRhKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAg
ICAgICAgcmV0dXJuIHt7IFdURk1vdmUoKm1ldGFEYXRhKSwgeyBidWZmZXIucmVsZWFzZU5vbk51
bGwoKSB9fX07CisgICAgfQogCi0gICAgcmV0dXJuIHRydWU7CisgICAgV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6OkRhdGEgZmlsZURhdGEgPSBtYXBGaWxlKGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihw
YXRoKS5kYXRhKCkpOworICAgIGlmIChmaWxlRGF0YS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJu
IFdURjo6bnVsbG9wdDsKKyAgICBhdXRvIG1ldGFEYXRhID0gZGVjb2RlQ29udGVudFJ1bGVMaXN0
TWV0YURhdGEoZmlsZURhdGEpOworICAgIGlmICghbWV0YURhdGEpCisgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisgICAgcmV0dXJuIHt7IFdURk1vdmUoKm1ldGFEYXRhKSwgeyBXVEZNb3Zl
KGZpbGVEYXRhKSB9fX07CiB9CiAKIHN0YXRpYyBib29sIHdyaXRlRGF0YVRvRmlsZShjb25zdCBX
ZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSYgZmlsZURhdGEsIFBsYXRmb3JtRmlsZUhhbmRsZSBm
ZCkKQEAgLTIxMiw3ICsyNTgsNyBAQCBzdGF0aWMgYm9vbCB3cml0ZURhdGFUb0ZpbGUoY29uc3Qg
V2ViS2l0CiAgICAgcmV0dXJuIHN1Y2Nlc3M7CiB9CiAKLXN0YXRpYyBzdGQ6OmVycm9yX2NvZGUg
Y29tcGlsZWRUb0ZpbGUoV1RGOjpTdHJpbmcmJiBqc29uLCBWZWN0b3I8V2ViQ29yZTo6Q29udGVu
dEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25SdWxlPiYmIHBhcnNlZFJ1bGVzLCBjb25zdCBX
VEY6OlN0cmluZyYgZmluYWxGaWxlUGF0aCwgQ29udGVudFJ1bGVMaXN0TWV0YURhdGEmIG1ldGFE
YXRhLCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSYgbWFwcGVkRGF0YSkKK3N0YXRpYyBFeHBl
Y3RlZDxNYXBwZWRPckNvcGllZERhdGEsIHN0ZDo6ZXJyb3JfY29kZT4gY29tcGlsZWRUb0ZpbGUo
V1RGOjpTdHJpbmcmJiBqc29uLCBWZWN0b3I8V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkNv
bnRlbnRFeHRlbnNpb25SdWxlPiYmIHBhcnNlZFJ1bGVzLCBjb25zdCBXVEY6OlN0cmluZyYgZmlu
YWxGaWxlUGF0aCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTo6Q29udGVudEV4dGVu
c2lvbnM7CiAKQEAgLTMyOSw3ICszNzUsNyBAQCBzdGF0aWMgc3RkOjplcnJvcl9jb2RlIGNvbXBp
bGVkVG9GaWxlKFdUCiAgICAgV1RGOjpTdHJpbmcgdGVtcG9yYXJ5RmlsZVBhdGggPSBvcGVuVGVt
cG9yYXJ5RmlsZSgiQ29udGVudFJ1bGVMaXN0IiwgdGVtcG9yYXJ5RmlsZUhhbmRsZSk7CiAgICAg
aWYgKHRlbXBvcmFyeUZpbGVIYW5kbGUgPT0gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkgewog
ICAgICAgICBXVEZMb2dBbHdheXMoIkNvbnRlbnQgUnVsZSBMaXN0IGNvbXBpbGluZyBmYWlsZWQ6
IE9wZW5pbmcgdGVtcG9yYXJ5IGZpbGUgZmFpbGVkLiIpOwotICAgICAgICByZXR1cm4gQ29udGVu
dFJ1bGVMaXN0U3RvcmU6OkVycm9yOjpDb21waWxlRmFpbGVkOworICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoQ29udGVudFJ1bGVMaXN0U3RvcmU6OkVycm9yOjpDb21waWxlRmFpbGVkKTsK
ICAgICB9CiAgICAgCiAgICAgY2hhciBpbnZhbGlkSGVhZGVyW0NvbnRlbnRSdWxlTGlzdEZpbGVI
ZWFkZXJTaXplXTsKQEAgLTMzOCw2MiArMzg0LDc3IEBAIHN0YXRpYyBzdGQ6OmVycm9yX2NvZGUg
Y29tcGlsZWRUb0ZpbGUoV1QKICAgICBpZiAod3JpdGVUb0ZpbGUodGVtcG9yYXJ5RmlsZUhhbmRs
ZSwgaW52YWxpZEhlYWRlciwgc2l6ZW9mKGludmFsaWRIZWFkZXIpKSA9PSAtMSkgewogICAgICAg
ICBXVEZMb2dBbHdheXMoIkNvbnRlbnQgUnVsZSBMaXN0IGNvbXBpbGluZyBmYWlsZWQ6IFdyaXRp
bmcgaGVhZGVyIHRvIGZpbGUgZmFpbGVkLiIpOwogICAgICAgICBjbG9zZUZpbGUodGVtcG9yYXJ5
RmlsZUhhbmRsZSk7Ci0gICAgICAgIHJldHVybiBDb250ZW50UnVsZUxpc3RTdG9yZTo6RXJyb3I6
OkNvbXBpbGVGYWlsZWQ7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50UnVs
ZUxpc3RTdG9yZTo6RXJyb3I6OkNvbXBpbGVGYWlsZWQpOwogICAgIH0KIAorICAgIENvbnRlbnRS
dWxlTGlzdE1ldGFEYXRhIG1ldGFEYXRhOwogICAgIENvbXBpbGF0aW9uQ2xpZW50IGNvbXBpbGF0
aW9uQ2xpZW50KHRlbXBvcmFyeUZpbGVIYW5kbGUsIG1ldGFEYXRhKTsKICAgICAKICAgICBpZiAo
YXV0byBjb21waWxlckVycm9yID0gY29tcGlsZVJ1bGVMaXN0KGNvbXBpbGF0aW9uQ2xpZW50LCBX
VEZNb3ZlKGpzb24pLCBXVEZNb3ZlKHBhcnNlZFJ1bGVzKSkpIHsKICAgICAgICAgV1RGTG9nQWx3
YXlzKCJDb250ZW50IFJ1bGUgTGlzdCBjb21waWxpbmcgZmFpbGVkOiBDb21waWxpbmcgZmFpbGVk
LiIpOwogICAgICAgICBjbG9zZUZpbGUodGVtcG9yYXJ5RmlsZUhhbmRsZSk7Ci0gICAgICAgIHJl
dHVybiBjb21waWxlckVycm9yOworICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoY29tcGls
ZXJFcnJvcik7CiAgICAgfQogICAgIGlmIChjb21waWxhdGlvbkNsaWVudC5oYWRFcnJvcldoaWxl
V3JpdGluZ1RvRmlsZSgpKSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiQ29udGVudCBSdWxlIExp
c3QgY29tcGlsaW5nIGZhaWxlZDogV3JpdGluZyB0byBmaWxlIGZhaWxlZC4iKTsKICAgICAgICAg
Y2xvc2VGaWxlKHRlbXBvcmFyeUZpbGVIYW5kbGUpOwotICAgICAgICByZXR1cm4gQ29udGVudFJ1
bGVMaXN0U3RvcmU6OkVycm9yOjpDb21waWxlRmFpbGVkOworICAgICAgICByZXR1cm4gbWFrZVVu
ZXhwZWN0ZWQoQ29udGVudFJ1bGVMaXN0U3RvcmU6OkVycm9yOjpDb21waWxlRmFpbGVkKTsKICAg
ICB9CiAKLSAgICBtYXBwZWREYXRhID0gYWRvcHRBbmRNYXBGaWxlKHRlbXBvcmFyeUZpbGVIYW5k
bGUsIDAsIG1ldGFEYXRhLmZpbGVTaXplKCkpOworICAgIGF1dG8gbWFwcGVkRGF0YSA9IGFkb3B0
QW5kTWFwRmlsZSh0ZW1wb3JhcnlGaWxlSGFuZGxlLCAwLCBtZXRhRGF0YS5maWxlU2l6ZSgpKTsK
ICAgICBpZiAobWFwcGVkRGF0YS5pc051bGwoKSkgewogICAgICAgICBXVEZMb2dBbHdheXMoIkNv
bnRlbnQgUnVsZSBMaXN0IGNvbXBpbGluZyBmYWlsZWQ6IE1hcHBpbmcgZmlsZSBmYWlsZWQuIik7
Ci0gICAgICAgIHJldHVybiBDb250ZW50UnVsZUxpc3RTdG9yZTo6RXJyb3I6OkNvbXBpbGVGYWls
ZWQ7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50UnVsZUxpc3RTdG9yZTo6
RXJyb3I6OkNvbXBpbGVGYWlsZWQpOwogICAgIH0KIAogICAgIGlmICghbW92ZUZpbGUodGVtcG9y
YXJ5RmlsZVBhdGgsIGZpbmFsRmlsZVBhdGgpKSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiQ29u
dGVudCBSdWxlIExpc3QgY29tcGlsaW5nIGZhaWxlZDogTW92aW5nIGZpbGUgZmFpbGVkLiIpOwot
ICAgICAgICByZXR1cm4gQ29udGVudFJ1bGVMaXN0U3RvcmU6OkVycm9yOjpDb21waWxlRmFpbGVk
OworICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudFJ1bGVMaXN0U3RvcmU6OkVy
cm9yOjpDb21waWxlRmFpbGVkKTsKICAgICB9CiAKLSAgICByZXR1cm4geyB9OworICAgIGlmICgh
aXNTYWZlVG9Vc2VNZW1vcnlNYXBGb3JQYXRoKGZpbmFsRmlsZVBhdGgpKSB7CisgICAgICAgIGF1
dG8gY29udGVudHMgPSBDb250ZW50UnVsZUxpc3RTdG9yZTo6cmVhZENvbnRlbnRzT2ZGaWxlKGZp
bmFsRmlsZVBhdGgpOworICAgICAgICBpZiAoIWNvbnRlbnRzKQorICAgICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKENvbnRlbnRSdWxlTGlzdFN0b3JlOjpFcnJvcjo6Q29tcGlsZUZhaWxl
ZCk7CisgICAgICAgIHJldHVybiB7eyBXVEZNb3ZlKG1ldGFEYXRhKSwgV1RGTW92ZShjb250ZW50
cykgfX07CisgICAgfQorICAgIAorICAgIHJldHVybiB7eyBXVEZNb3ZlKG1ldGFEYXRhKSwgV1RG
TW92ZShtYXBwZWREYXRhKSB9fTsKIH0KIAotc3RhdGljIFJlZjxBUEk6OkNvbnRlbnRSdWxlTGlz
dD4gY3JlYXRlRXh0ZW5zaW9uKGNvbnN0IFdURjo6U3RyaW5nJiBpZGVudGlmaWVyLCBjb25zdCBD
b250ZW50UnVsZUxpc3RNZXRhRGF0YSYgbWV0YURhdGEsIGNvbnN0IFdlYktpdDo6TmV0d29ya0Nh
Y2hlOjpEYXRhJiBmaWxlRGF0YSkKK3N0YXRpYyBSZWY8QVBJOjpDb250ZW50UnVsZUxpc3Q+IGNy
ZWF0ZUV4dGVuc2lvbihjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRpZmllciwgTWFwcGVkT3JDb3Bp
ZWREYXRhJiYgZGF0YSkKIHsKLSAgICAvLyBDb250ZW50IGV4dGVuc2lvbnMgYXJlIGFsd2F5cyBj
b21waWxlZCB0byBmaWxlcywgYW5kIGF0IHRoaXMgcG9pbnQgdGhlIGZpbGUKLSAgICAvLyBoYXMg
YmVlbiBhbHJlYWR5IG1hcHBlZCwgdGhlcmVmb3JlIHRyeUNyZWF0ZVNoYXJlZE1lbW9yeSgpIGNh
bm5vdCBmYWlsLgotICAgIGF1dG8gc2hhcmVkTWVtb3J5ID0gZmlsZURhdGEudHJ5Q3JlYXRlU2hh
cmVkTWVtb3J5KCk7Ci0gICAgQVNTRVJUKHNoYXJlZE1lbW9yeSk7CisgICAgUmVmUHRyPFdlYktp
dDo6U2hhcmVkTWVtb3J5PiBzaGFyZWRNZW1vcnk7CisgICAgaWYgKGF1dG8gbWFwcGVkRmlsZURh
dGEgPSBXVEY6OmdldF9pZjxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YT4oZGF0YS5kYXRhKSkg
eworICAgICAgICBzaGFyZWRNZW1vcnkgPSBtYXBwZWRGaWxlRGF0YS0+dHJ5Q3JlYXRlU2hhcmVk
TWVtb3J5KCk7CisKKyAgICAgICAgLy8gQ29udGVudCBleHRlbnNpb25zIGFyZSBhbHdheXMgY29t
cGlsZWQgdG8gZmlsZXMsIGFuZCBhdCB0aGlzIHBvaW50IHRoZSBmaWxlCisgICAgICAgIC8vIGhh
cyBiZWVuIGFscmVhZHkgbWFwcGVkLCB0aGVyZWZvcmUgdHJ5Q3JlYXRlU2hhcmVkTWVtb3J5KCkg
Y2Fubm90IGZhaWwuCisgICAgICAgIEFTU0VSVChzaGFyZWRNZW1vcnkpOworICAgIH0KKyAgICBh
dXRvIG1hcHBlZE9yQ29waWVkRmlsZURhdGEgPSBzaGFyZWRNZW1vcnkgPworICAgICAgICBWYXJp
YW50PFJlZlB0cjxXZWJLaXQ6OlNoYXJlZE1lbW9yeT4sIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRC
dWZmZXI+PiB7IHNoYXJlZE1lbW9yeSB9CisgICAgICAgIDogVmFyaWFudDxSZWZQdHI8V2ViS2l0
OjpTaGFyZWRNZW1vcnk+LCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPj4geyBXVEZNb3Zl
KFdURjo6Z2V0PFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+PihkYXRhLmRhdGEpKSB9Owog
Ci0gICAgY29uc3Qgc2l6ZV90IGhlYWRlckFuZFNvdXJjZVNpemUgPSBDb250ZW50UnVsZUxpc3RG
aWxlSGVhZGVyU2l6ZSArIG1ldGFEYXRhLnNvdXJjZVNpemU7CisgICAgY29uc3Qgc2l6ZV90IGhl
YWRlckFuZFNvdXJjZVNpemUgPSBDb250ZW50UnVsZUxpc3RGaWxlSGVhZGVyU2l6ZSArIGRhdGEu
bWV0YURhdGEuc291cmNlU2l6ZTsKICAgICBhdXRvIGNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YSA9IFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhKAotICAgICAgICBXVEZN
b3ZlKHNoYXJlZE1lbW9yeSksCi0gICAgICAgIGZpbGVEYXRhLAorICAgICAgICBXVEZNb3ZlKG1h
cHBlZE9yQ29waWVkRmlsZURhdGEpLAorICAgICAgICBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFdl
YktpdDo6TmV0d29ya0NhY2hlOjpEYXRhPihkYXRhLmRhdGEpID8gV1RGOjpnZXQ8V2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OkRhdGE+KGRhdGEuZGF0YSkgOiBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0
YSB7IH0sCiAgICAgICAgIENvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbk9mZnNldCwKICAgICAg
ICAgaGVhZGVyQW5kU291cmNlU2l6ZSwKLSAgICAgICAgbWV0YURhdGEuYWN0aW9uc1NpemUsCisg
ICAgICAgIGRhdGEubWV0YURhdGEuYWN0aW9uc1NpemUsCiAgICAgICAgIGhlYWRlckFuZFNvdXJj
ZVNpemUKLSAgICAgICAgICAgICsgbWV0YURhdGEuYWN0aW9uc1NpemUsCi0gICAgICAgIG1ldGFE
YXRhLmZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZSwKKyAgICAgICAgICAgICsg
ZGF0YS5tZXRhRGF0YS5hY3Rpb25zU2l6ZSwKKyAgICAgICAgZGF0YS5tZXRhRGF0YS5maWx0ZXJz
V2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUsCiAgICAgICAgIGhlYWRlckFuZFNvdXJjZVNp
emUKLSAgICAgICAgICAgICsgbWV0YURhdGEuYWN0aW9uc1NpemUKLSAgICAgICAgICAgICsgbWV0
YURhdGEuZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVTaXplLAotICAgICAgICBtZXRh
RGF0YS5maWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZVNpemUsCisgICAgICAgICAgICArIGRh
dGEubWV0YURhdGEuYWN0aW9uc1NpemUKKyAgICAgICAgICAgICsgZGF0YS5tZXRhRGF0YS5maWx0
ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUsCisgICAgICAgIGRhdGEubWV0YURhdGEu
ZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplLAogICAgICAgICBoZWFkZXJBbmRTb3Vy
Y2VTaXplCi0gICAgICAgICAgICArIG1ldGFEYXRhLmFjdGlvbnNTaXplCi0gICAgICAgICAgICAr
IG1ldGFEYXRhLmZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZQotICAgICAgICAg
ICAgKyBtZXRhRGF0YS5maWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZVNpemUsCi0gICAgICAg
IG1ldGFEYXRhLmNvbmRpdGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZQorICAgICAgICAgICAgKyBk
YXRhLm1ldGFEYXRhLmFjdGlvbnNTaXplCisgICAgICAgICAgICArIGRhdGEubWV0YURhdGEuZmls
dGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVTaXplCisgICAgICAgICAgICArIGRhdGEubWV0
YURhdGEuZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplLAorICAgICAgICBkYXRhLm1l
dGFEYXRhLmNvbmRpdGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZQogICAgICk7CiAgICAgYXV0byBj
b21waWxlZENvbnRlbnRSdWxlTGlzdCA9IFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3Q6OmNyZWF0ZShXVEZNb3ZlKGNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSkpOwogICAgIHJl
dHVybiBBUEk6OkNvbnRlbnRSdWxlTGlzdDo6Y3JlYXRlKGlkZW50aWZpZXIsIFdURk1vdmUoY29t
cGlsZWRDb250ZW50UnVsZUxpc3QpKTsKQEAgLTQwNCwyNCArNDY1LDIzIEBAIHZvaWQgQ29udGVu
dFJ1bGVMaXN0U3RvcmU6Omxvb2t1cENvbnRlbnQKICAgICBtX3JlYWRRdWV1ZS0+ZGlzcGF0Y2go
W3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciA9IGlkZW50aWZpZXIu
aXNvbGF0ZWRDb3B5KCksIHN0b3JlUGF0aCA9IG1fc3RvcmVQYXRoLmlzb2xhdGVkQ29weSgpLCBs
ZWdhY3lGaWxlbmFtZSA9IG1fbGVnYWN5RmlsZW5hbWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gcGF0aCA9
IGNvbnN0cnVjdGVkUGF0aChzdG9yZVBhdGgsIGlkZW50aWZpZXIsIGxlZ2FjeUZpbGVuYW1lKTsK
ICAgICAgICAgCi0gICAgICAgIENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhIG1ldGFEYXRhOwotICAg
ICAgICBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSBmaWxlRGF0YTsKLSAgICAgICAgaWYgKCFv
cGVuQW5kTWFwQ29udGVudFJ1bGVMaXN0KHBhdGgsIG1ldGFEYXRhLCBmaWxlRGF0YSkpIHsKKyAg
ICAgICAgYXV0byBjb250ZW50UnVsZUxpc3QgPSBvcGVuQW5kTWFwT3JDb3B5Q29udGVudFJ1bGVM
aXN0KHBhdGgpOworICAgICAgICBpZiAoIWNvbnRlbnRSdWxlTGlzdCkgewogICAgICAgICAgICAg
UnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0
ZWRUaGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0g
KCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobnVsbHB0ciwg
RXJyb3I6Okxvb2t1cEZhaWxlZCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKG1ldGFEYXRhLnZlcnNpb24gIT0g
Q29udGVudFJ1bGVMaXN0U3RvcmU6OkN1cnJlbnRDb250ZW50UnVsZUxpc3RGaWxlVmVyc2lvbikg
eworICAgICAgICBpZiAoY29udGVudFJ1bGVMaXN0LT5tZXRhRGF0YS52ZXJzaW9uICE9IENvbnRl
bnRSdWxlTGlzdFN0b3JlOjpDdXJyZW50Q29udGVudFJ1bGVMaXN0RmlsZVZlcnNpb24pIHsKICAg
ICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFdURk1v
dmUocHJvdGVjdGVkVGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildICgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KG51bGxwdHIsIEVycm9yOjpWZXJzaW9uTWlzbWF0Y2gpOwogICAgICAgICAgICAgfSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGlk
ZW50aWZpZXIgPSBpZGVudGlmaWVyLmlzb2xhdGVkQ29weSgpLCBmaWxlRGF0YSA9IFdURk1vdmUo
ZmlsZURhdGEpLCBtZXRhRGF0YSA9IFdURk1vdmUobWV0YURhdGEpLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGNyZWF0ZUV4dGVuc2lvbihpZGVudGlmaWVyLCBtZXRhRGF0YSwg
ZmlsZURhdGEpLCB7IH0pOworICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3Rl
Y3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBpZGVudGlmaWVyID0gaWRlbnRpZmll
ci5pc29sYXRlZENvcHkoKSwgY29udGVudFJ1bGVMaXN0ID0gV1RGTW92ZSgqY29udGVudFJ1bGVM
aXN0KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkg
bXV0YWJsZSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjcmVhdGVFeHRlbnNpb24o
aWRlbnRpZmllciwgV1RGTW92ZShjb250ZW50UnVsZUxpc3QpKSwgeyB9KTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiB9CkBAIC00NTUsMTkgKzUxNSwxNyBAQCB2b2lkIENvbnRlbnRSdWxlTGlzdFN0
b3JlOjpjb21waWxlQ29udGVuCiAgICAgbV9jb21waWxlUXVldWUtPmRpc3BhdGNoKFtwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBpZGVudGlmaWVyLmlzb2xhdGVk
Q29weSgpLCBsZWdhY3lGaWxlbmFtZSA9IG1fbGVnYWN5RmlsZW5hbWUsIGpzb24gPSBqc29uLmlz
b2xhdGVkQ29weSgpLCBwYXJzZWRSdWxlcyA9IHBhcnNlZFJ1bGVzLnZhbHVlKCkuaXNvbGF0ZWRD
b3B5KCksIHN0b3JlUGF0aCA9IG1fc3RvcmVQYXRoLmlzb2xhdGVkQ29weSgpLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAgICAg
ICAgYXV0byBwYXRoID0gY29uc3RydWN0ZWRQYXRoKHN0b3JlUGF0aCwgaWRlbnRpZmllciwgbGVn
YWN5RmlsZW5hbWUpOwogCi0gICAgICAgIENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhIG1ldGFEYXRh
OwotICAgICAgICBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSBmaWxlRGF0YTsKLSAgICAgICAg
YXV0byBlcnJvciA9IGNvbXBpbGVkVG9GaWxlKFdURk1vdmUoanNvbiksIFdURk1vdmUocGFyc2Vk
UnVsZXMpLCBwYXRoLCBtZXRhRGF0YSwgZmlsZURhdGEpOwotICAgICAgICBpZiAoZXJyb3IpIHsK
LSAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFdU
Rk1vdmUocHJvdGVjdGVkVGhpcyksIGVycm9yID0gV1RGTW92ZShlcnJvciksIGNvbXBsZXRpb25I
YW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgeworICAgICAg
ICBhdXRvIHJlc3VsdCA9IGNvbXBpbGVkVG9GaWxlKFdURk1vdmUoanNvbiksIFdURk1vdmUocGFy
c2VkUnVsZXMpLCBwYXRoKTsKKyAgICAgICAgaWYgKCFyZXN1bHQuaGFzX3ZhbHVlKCkpIHsKKyAg
ICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFdURk1v
dmUocHJvdGVjdGVkVGhpcyksIGVycm9yID0gV1RGTW92ZShyZXN1bHQuZXJyb3IoKSksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewog
ICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIsIGVycm9yKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgUnVu
TG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRU
aGlzKSwgaWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllciksIGZpbGVEYXRhID0gV1RGTW92
ZShmaWxlRGF0YSksIG1ldGFEYXRhID0gV1RGTW92ZShtZXRhRGF0YSksIGNvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewotICAgICAgICAg
ICAgUmVmUHRyPEFQSTo6Q29udGVudFJ1bGVMaXN0PiBjb250ZW50UnVsZUxpc3QgPSBjcmVhdGVF
eHRlbnNpb24oaWRlbnRpZmllciwgbWV0YURhdGEsIGZpbGVEYXRhKTsKLSAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGNvbnRlbnRSdWxlTGlzdCwgeyB9KTsKKyAgICAgICAgUnVuTG9vcDo6
bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwg
aWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllciksIGRhdGEgPSBXVEZNb3ZlKHJlc3VsdC52
YWx1ZSgpKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0g
KCkgbXV0YWJsZSB7CisgICAgICAgICAgICBhdXRvIGNvbnRlbnRSdWxlTGlzdCA9IGNyZWF0ZUV4
dGVuc2lvbihpZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGEpKTsKKyAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGNvbnRlbnRSdWxlTGlzdC5wdHIoKSwgeyB9KTsKICAgICAgICAgfSk7CiAgICAg
fSk7CiB9CkBAIC01MTcsMjkgKzU3NSwyOCBAQCB2b2lkIENvbnRlbnRSdWxlTGlzdFN0b3JlOjpn
ZXRDb250ZW50UnVsCiAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc291cmNlKTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9OwotICAgICAgICAKLSAgICAgICAgQ29udGVudFJ1
bGVMaXN0TWV0YURhdGEgbWV0YURhdGE7Ci0gICAgICAgIFdlYktpdDo6TmV0d29ya0NhY2hlOjpE
YXRhIGZpbGVEYXRhOwotICAgICAgICBpZiAoIW9wZW5BbmRNYXBDb250ZW50UnVsZUxpc3QocGF0
aCwgbWV0YURhdGEsIGZpbGVEYXRhKSkgeworCisgICAgICAgIGF1dG8gY29udGVudFJ1bGVMaXN0
ID0gb3BlbkFuZE1hcE9yQ29weUNvbnRlbnRSdWxlTGlzdChwYXRoKTsKKyAgICAgICAgaWYgKCFj
b250ZW50UnVsZUxpc3QpIHsKICAgICAgICAgICAgIGNvbXBsZXRlKHsgfSk7CiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN3aXRjaCAobWV0YURhdGEu
dmVyc2lvbikgeworICAgICAgICBzd2l0Y2ggKGNvbnRlbnRSdWxlTGlzdC0+bWV0YURhdGEudmVy
c2lvbikgewogICAgICAgICBjYXNlIDk6CiAgICAgICAgIGNhc2UgMTA6Ci0gICAgICAgICAgICBp
ZiAoIW1ldGFEYXRhLnNvdXJjZVNpemUpIHsKKyAgICAgICAgICAgIGlmICghY29udGVudFJ1bGVM
aXN0LT5tZXRhRGF0YS5zb3VyY2VTaXplKSB7CiAgICAgICAgICAgICAgICAgY29tcGxldGUoeyB9
KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBi
b29sIGlzOEJpdCA9IGZpbGVEYXRhLmRhdGEoKVtDb250ZW50UnVsZUxpc3RGaWxlSGVhZGVyU2l6
ZV07CisgICAgICAgICAgICBib29sIGlzOEJpdCA9IGNvbnRlbnRSdWxlTGlzdC0+ZGF0YVBvaW50
ZXIoKVtDb250ZW50UnVsZUxpc3RGaWxlSGVhZGVyU2l6ZV07CiAgICAgICAgICAgICBzaXplX3Qg
c3RhcnQgPSBDb250ZW50UnVsZUxpc3RGaWxlSGVhZGVyU2l6ZSArIHNpemVvZihib29sKTsKLSAg
ICAgICAgICAgIHNpemVfdCBsZW5ndGggPSBtZXRhRGF0YS5zb3VyY2VTaXplIC0gc2l6ZW9mKGJv
b2wpOworICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCA9IGNvbnRlbnRSdWxlTGlzdC0+bWV0YURh
dGEuc291cmNlU2l6ZSAtIHNpemVvZihib29sKTsKICAgICAgICAgICAgIGlmIChpczhCaXQpCi0g
ICAgICAgICAgICAgICAgY29tcGxldGUoV1RGOjpTdHJpbmcoZmlsZURhdGEuZGF0YSgpICsgc3Rh
cnQsIGxlbmd0aCkpOworICAgICAgICAgICAgICAgIGNvbXBsZXRlKFdURjo6U3RyaW5nKGNvbnRl
bnRSdWxlTGlzdC0+ZGF0YVBvaW50ZXIoKSArIHN0YXJ0LCBsZW5ndGgpKTsKICAgICAgICAgICAg
IGVsc2UgewogICAgICAgICAgICAgICAgIEFTU0VSVCghKGxlbmd0aCAlIHNpemVvZihVQ2hhcikp
KTsKLSAgICAgICAgICAgICAgICBjb21wbGV0ZShXVEY6OlN0cmluZyhyZWludGVycHJldF9jYXN0
PGNvbnN0IFVDaGFyKj4oZmlsZURhdGEuZGF0YSgpICsgc3RhcnQpLCBsZW5ndGggLyBzaXplb2Yo
VUNoYXIpKSk7CisgICAgICAgICAgICAgICAgY29tcGxldGUoV1RGOjpTdHJpbmcocmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBVQ2hhcio+KGNvbnRlbnRSdWxlTGlzdC0+ZGF0YVBvaW50ZXIoKSArIHN0
YXJ0KSwgbGVuZ3RoIC8gc2l6ZW9mKFVDaGFyKSkpOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
QVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuaAkocmV2aXNpb24gMjQyNjYzKQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8c3lzdGVtX2Vycm9y
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBTaGFyZWRCdWZmZXI7Cit9CisKIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgV29ya1F1
ZXVlOwogfQpAQCAtNzIsNiArNzYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbnZhbGlkYXRlQ29u
dGVudFJ1bGVMaXN0VmVyc2lvbihjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRpZmllcik7CiAgICAg
dm9pZCBnZXRDb250ZW50UnVsZUxpc3RTb3VyY2UoY29uc3QgV1RGOjpTdHJpbmcmIGlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpTdHJpbmcpPik7CiAKKyAgICBzdGF0aWMg
UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gcmVhZENvbnRlbnRzT2ZGaWxlKGNvbnN0IFdU
Rjo6U3RyaW5nJiBwYXRoKTsKKwogcHJpdmF0ZToKICAgICBXVEY6OlN0cmluZyBkZWZhdWx0U3Rv
cmVQYXRoKGJvb2wgbGVnYWN5RmlsZW5hbWUpOwogICAgIHN0YXRpYyBDb250ZW50UnVsZUxpc3RT
dG9yZSYgbGVnYWN5RGVmYXVsdFN0b3JlKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmVDb2NvYS5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJQ29udGVudFJ1bGVMaXN0U3Rv
cmVDb2NvYS5tbQkocmV2aXNpb24gMjQyNjYzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlQ29jb2EubW0JKHdvcmtpbmcgY29weSkK
QEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogCiAjaW5j
bHVkZSAiU2FuZGJveFV0aWxpdGllcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVy
Lmg+CiAKIG5hbWVzcGFjZSBBUEkgewogCkBAIC02Myw2ICs2NCwxNSBAQCBXVEY6OlN0cmluZyBD
b250ZW50UnVsZUxpc3RTdG9yZTo6ZGVmYXVsCiAgICAgcmV0dXJuIGNvbnRlbnRSdWxlTGlzdFN0
b3JlVVJMLmFic29sdXRlVVJMLnBhdGguZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uOwogfQogCitS
ZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBDb250ZW50UnVsZUxpc3RTdG9yZTo6cmVhZENv
bnRlbnRzT2ZGaWxlKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgpCit7CisgICAgQVNTRVJUKCFpc01h
aW5UaHJlYWQoKSk7CisgICAgTlNEYXRhICpkYXRhID0gW05TRGF0YSBkYXRhV2l0aENvbnRlbnRz
T2ZVUkw6W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpmaWxlUGF0aCBpc0RpcmVjdG9yeTpOT11dOwor
ICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEpOworfQorCiB9IC8vIG5hbWVzcGFjZSBBUEkK
IAogI2VuZGlmIC8vIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50UnVsZUxpc3RTdG9yZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50UnVsZUxp
c3RTdG9yZS5tbQkocmV2aXNpb24gMjQyNjYzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0U3RvcmUubW0JKHdvcmtpbmcgY29weSkKQEAgLTI4
LDYgKzI4LDcgQEAKICNpbXBvcnQgIldLQ29udGVudFJ1bGVMaXN0U3RvcmVJbnRlcm5hbC5oIgog
CiAjaW1wb3J0ICJBUElDb250ZW50UnVsZUxpc3RTdG9yZS5oIgorI2ltcG9ydCAiTmV0d29ya0Nh
Y2hlRmlsZXN5c3RlbS5oIgogI2ltcG9ydCAiV0tFcnJvckludGVybmFsLmgiCiAjaW1wb3J0IDx3
dGYvQmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgpAQCAtMTI1
LDYgKzEyNiwxMSBAQCAtIChBUEk6Ok9iamVjdCYpX2FwaU9iamVjdAogCiAvLyBGb3IgdGVzdGlu
ZyBvbmx5LgogCisrICh2b2lkKV9yZWdpc3RlclBhdGhBc1Vuc2FmZVRvTWVtb3J5TWFwRm9yVGVz
dGluZzooTlNTdHJpbmcgKilmaWxlbmFtZQoreworICAgIFdlYktpdDo6TmV0d29ya0NhY2hlOjpy
ZWdpc3RlclBhdGhBc1Vuc2FmZVRvTWVtb3J5TWFwRm9yVGVzdGluZyhmaWxlbmFtZSk7Cit9CisK
IC0gKHZvaWQpX3JlbW92ZUFsbENvbnRlbnRSdWxlTGlzdHMKIHsKICAgICBfY29udGVudFJ1bGVM
aXN0U3RvcmUtPnN5bmNocm9ub3VzUmVtb3ZlQWxsQ29udGVudFJ1bGVMaXN0cygpOwpJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0U3RvcmVQ
cml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLQ29udGVudFJ1bGVMaXN0U3RvcmVQcml2YXRlLmgJKHJldmlzaW9uIDI0MjY2MykKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdFN0b3JlUHJp
dmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAtICh2b2lkKV9yZW1vdmVB
bGxDb250ZW50UnVsZUxpc3RzOwogLSAodm9pZClfaW52YWxpZGF0ZUNvbnRlbnRSdWxlTGlzdFZl
cnNpb25Gb3JJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXI7CiAtICh2b2lkKV9nZXRD
b250ZW50UnVsZUxpc3RTb3VyY2VGb3JJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXIg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nKikpY29tcGxldGlvbkhhbmRsZXI7
CisrICh2b2lkKV9yZWdpc3RlclBhdGhBc1Vuc2FmZVRvTWVtb3J5TWFwRm9yVGVzdGluZzooTlNT
dHJpbmcgKilmaWxlbmFtZTsKIAogLy8gTlNfUkVMRUFTRVNfQVJHVU1FTlQgdG8ga2VlcCBwZWFr
IG1lbW9yeSB1c2FnZSBsb3cuCiAtICh2b2lkKV9jb21waWxlQ29udGVudFJ1bGVMaXN0Rm9ySWRl
bnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyIGVuY29kZWRDb250ZW50UnVsZUxpc3Q6KE5T
U3RyaW5nICopIE5TX1JFTEVBU0VTX0FSR1VNRU5UIGVuY29kZWRDb250ZW50UnVsZUxpc3QgY29t
cGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFdLQ29udGVudFJ1bGVMaXN0ICosIE5TRXJyb3IgKikp
Y29tcGxldGlvbkhhbmRsZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLVXNlckNvbnRlbnRGaWx0ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVyLm1tCShyZXZpc2lvbiAyNDI2
NjMpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRG
aWx0ZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTU2LDQgKzU2LDkgQEAgLSAoaWQpX2luaXRXaXRo
V0tDb250ZW50UnVsZUxpc3Q6KFdLQ29udAogICAgIHJldHVybiBzZWxmOwogfQogCistIChCT09M
KXVzZXNDb3BpZWRNZW1vcnkKK3sKKyAgICByZXR1cm4gX2NvbnRlbnRSdWxlTGlzdC0+X2NvbnRl
bnRSdWxlTGlzdC0+dXNlc0NvcGllZE1lbW9yeSgpOworfQorCiBAZW5kCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXJQcml2YXRlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJD
b250ZW50RmlsdGVyUHJpdmF0ZS5oCShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXJQcml2YXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMwLDUgKzMwLDYgQEAKIEBpbnRlcmZhY2UgX1dLVXNlckNvbnRlbnRGaWx0
ZXIgKFdLUHJpdmF0ZSkKIAogLSAoaWQpX2luaXRXaXRoV0tDb250ZW50UnVsZUxpc3Q6KFdLQ29u
dGVudFJ1bGVMaXN0Kiljb250ZW50UnVsZUxpc3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goMTAu
MTMpLCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIHVz
ZXNDb3BpZWRNZW1vcnk7CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9V
c2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xs
ZXIuY3BwCShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNl
ckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzQ4LDExICszNDgsMTAgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJlbW92ZVVz
ZQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotdm9pZCBXZWJVc2Vy
Q29udGVudENvbnRyb2xsZXI6OmFkZENvbnRlbnRSdWxlTGlzdHMoY29uc3QgVmVjdG9yPHN0ZDo6
cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4+JiBjb250ZW50UnVs
ZUxpc3RzKQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OmFkZENvbnRlbnRSdWxlTGlz
dHMoVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YT4+JiYgY29udGVudFJ1bGVMaXN0cykKIHsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnRlbnRS
dWxlTGlzdCA6IGNvbnRlbnRSdWxlTGlzdHMpIHsKLSAgICAgICAgV2ViQ29tcGlsZWRDb250ZW50
UnVsZUxpc3REYXRhIGNvbnRlbnRSdWxlTGlzdERhdGEgPSBjb250ZW50UnVsZUxpc3Quc2Vjb25k
OwotICAgICAgICBhdXRvIGNvbXBpbGVkQ29udGVudFJ1bGVMaXN0ID0gV2ViQ29tcGlsZWRDb250
ZW50UnVsZUxpc3Q6OmNyZWF0ZShXVEZNb3ZlKGNvbnRlbnRSdWxlTGlzdERhdGEpKTsKKyAgICBm
b3IgKGF1dG8mJiBjb250ZW50UnVsZUxpc3QgOiBjb250ZW50UnVsZUxpc3RzKSB7CisgICAgICAg
IGF1dG8gY29tcGlsZWRDb250ZW50UnVsZUxpc3QgPSBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dDo6Y3JlYXRlKFdURk1vdmUoY29udGVudFJ1bGVMaXN0LnNlY29uZCkpOwogCiAgICAgICAgIG1f
Y29udGVudEV4dGVuc2lvbkJhY2tlbmQuYWRkQ29udGVudEV4dGVuc2lvbihjb250ZW50UnVsZUxp
c3QuZmlyc3QsIFdURk1vdmUoY29tcGlsZWRDb250ZW50UnVsZUxpc3QpKTsKICAgICB9CkluZGV4
OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250
ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5oCShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRk
VXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxXZWJVc2VyU3R5bGVTaGVldERhdGE+Jik7CiAg
ICAgdm9pZCBhZGRVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJzKGNvbnN0IFZlY3RvcjxXZWJTY3Jp
cHRNZXNzYWdlSGFuZGxlckRhdGE+Jik7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykK
LSAgICB2b2lkIGFkZENvbnRlbnRSdWxlTGlzdHMoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxTdHJp
bmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4+Jik7CisgICAgdm9pZCBhZGRDb250
ZW50UnVsZUxpc3RzKFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb21waWxlZENvbnRlbnRS
dWxlTGlzdERhdGE+PiYmKTsKICNlbmRpZgogCiBwcml2YXRlOgpJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI0MjY2MykKKysr
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02MzcsNyArNjM3LDcgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBwYWdlSUQs
IFdlYlBhZwogICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT5hZGRVc2VyU3R5bGVTaGVldHMo
cGFyYW1ldGVycy51c2VyU3R5bGVTaGVldHMpOwogICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVy
LT5hZGRVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJzKHBhcmFtZXRlcnMubWVzc2FnZUhhbmRsZXJz
KTsKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAgIG1fdXNlckNvbnRlbnRDb250
cm9sbGVyLT5hZGRDb250ZW50UnVsZUxpc3RzKHBhcmFtZXRlcnMuY29udGVudFJ1bGVMaXN0cyk7
CisgICAgbV91c2VyQ29udGVudENvbnRyb2xsZXItPmFkZENvbnRlbnRSdWxlTGlzdHMoV1RGTW92
ZShwYXJhbWV0ZXJzLmNvbnRlbnRSdWxlTGlzdHMpKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI0MjY3MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE5LTAzLTA4ICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGEgV0tDb250ZW50UnVsZUxpc3Qg
dmFyaWFudCB0aGF0IHVzZXMgY29waWVkIG1lbW9yeSBpbnN0ZWFkIG9mIG1tYXAnZCBzaGFyZWQg
bWVtb3J5IGZvciBjbGFzcyBBIGNvbnRhaW5lcml6ZWQgYXBwcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NTExCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS80NDg3MzI2OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50RXh0ZW5z
aW9uU3RvcmUubW06CisgICAgICAgICgtW1Rlc3RTY2hlbWVIYW5kbGVyU3VicmVzb3VyY2VTaG91
bGRCZUJsb2NrZWQgd2ViVmlldzpzdGFydFVSTFNjaGVtZVRhc2s6XSk6CisgICAgICAgICgtW1Rl
c3RTY2hlbWVIYW5kbGVyU3VicmVzb3VyY2VTaG91bGRCZUJsb2NrZWQgd2ViVmlldzpzdG9wVVJM
U2NoZW1lVGFzazpdKToKKyAgICAgICAgKFRFU1RfRik6CisKIDIwMTktMDMtMDggIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgRGV2aWNl
IE9yaWVudGF0aW9uIC8gTW90aW9uIHBlcm1pc3Npb24gQVBJCkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVudEV4dGVuc2lvblN0b3JlLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50
RXh0ZW5zaW9uU3RvcmUubW0JKHJldmlzaW9uIDI0MjY2MykKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDkgKzI4LDE0IEBACiAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgi
CiAjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0IDxX
ZWJLaXQvV0tDb250ZW50UnVsZUxpc3QuaD4KICNpbXBvcnQgPFdlYktpdC9XS0NvbnRlbnRSdWxl
TGlzdFN0b3JlUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1VzZXJDb250ZW50RmlsdGVy
UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL3RleHQv
U3RyaW5nQnVpbGRlci5oPgorI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaD4K
KyNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiBjbGFzcyBX
S0NvbnRlbnRSdWxlTGlzdFN0b3JlVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1Ymxp
YzoKQEAgLTM3NywzICszODIsMTAyIEBAIFRFU1RfRihXS0NvbnRlbnRSdWxlTGlzdFN0b3JlVGVz
dCwgQWRkUmUKICAgICBbd2ViVmlldyByZWxvYWRdOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcmVjZWl2ZWRBbGVydCk7CiB9CisKK0BpbnRlcmZhY2UgVGVzdFNjaGVtZUhhbmRsZXJT
dWJyZXNvdXJjZVNob3VsZEJlQmxvY2tlZCA6IE5TT2JqZWN0IDxXS1VSTFNjaGVtZUhhbmRsZXI+
CitAZW5kCitAaW1wbGVtZW50YXRpb24gVGVzdFNjaGVtZUhhbmRsZXJTdWJyZXNvdXJjZVNob3Vs
ZEJlQmxvY2tlZAorLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0VVJM
U2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdGFzaworeworICAgIEVYUEVDVF9UUlVF
KFt0YXNrLnJlcXVlc3QuVVJMLnBhdGggaXNFcXVhbFRvU3RyaW5nOkAiL3Nob3VsZGxvYWQiXSk7
CisgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOltbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGlu
aXRXaXRoVVJMOnRhc2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVk
Q29udGVudExlbmd0aDowIHRleHRFbmNvZGluZ05hbWU6bmlsXSBhdXRvcmVsZWFzZV1dOworICAg
IFt0YXNrIGRpZEZpbmlzaF07Cit9CistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgc3RvcFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXRhc2sKK3sKKyAgICBF
WFBFQ1RfVFJVRShmYWxzZSk7Cit9CitAZW5kCisKK1RFU1RfRihXS0NvbnRlbnRSdWxlTGlzdFN0
b3JlVGVzdCwgVW5zYWZlTU1hcCkKK3sKKyAgICBOU1N0cmluZyAqdGVtcERpciA9IFtOU1RlbXBv
cmFyeURpcmVjdG9yeSgpIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIlVuc2FmZU1N
YXBUZXN0Il07CisgICAgV0tDb250ZW50UnVsZUxpc3RTdG9yZSAqc3RvcmUgPSBbV0tDb250ZW50
UnVsZUxpc3RTdG9yZSBzdG9yZVdpdGhVUkw6W05TVVJMIGZpbGVVUkxXaXRoUGF0aDp0ZW1wRGly
IGlzRGlyZWN0b3J5OllFU11dOworICAgIE5TU3RyaW5nICppZGVudGlmaWVyID0gQCJUZXN0UnVs
ZUxpc3QiOworICAgIE5TU3RyaW5nICpmaWxlTmFtZSA9IEAiQ29udGVudFJ1bGVMaXN0LVRlc3RS
dWxlTGlzdCI7CisgICAgTlNTdHJpbmcgKmZpbGVQYXRoID0gW3RlbXBEaXIgc3RyaW5nQnlBcHBl
bmRpbmdQYXRoQ29tcG9uZW50OmZpbGVOYW1lXTsKKyAgICBOU1N0cmluZyAqcnVsZUxpc3RTb3Vy
Y2VTdHJpbmcgPSBAIlt7XCJhY3Rpb25cIjp7XCJ0eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJc
Ijp7XCJ1cmwtZmlsdGVyXCI6XCJibG9ja2Vkc3VicmVzb3VyY2VcIn19XSI7CisKKyAgICBhdXRv
IHJ1blRlc3QgPSBbJl0gKGJvb2wgc2hvdWxkVXNlQ29waWVkTWVtb3J5KSB7CisgICAgICAgIEVY
UEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBh
dGg6ZmlsZVBhdGhdKTsKKyAgICAgICAgCisgICAgICAgIF9fYmxvY2sgYm9vbCBkb25lQ29tcGls
aW5nID0gZmFsc2U7CisgICAgICAgIF9fYmxvY2sgUmV0YWluUHRyPFdLQ29udGVudFJ1bGVMaXN0
PiBydWxlTGlzdDsKKyAgICAgICAgW3N0b3JlIGNvbXBpbGVDb250ZW50UnVsZUxpc3RGb3JJZGVu
dGlmaWVyOmlkZW50aWZpZXIgZW5jb2RlZENvbnRlbnRSdWxlTGlzdDpydWxlTGlzdFNvdXJjZVN0
cmluZyBjb21wbGV0aW9uSGFuZGxlcjpeKFdLQ29udGVudFJ1bGVMaXN0ICpmaWx0ZXIsIE5TRXJy
b3IgKmVycm9yKSB7CisgICAgICAgICAgICBFWFBFQ1RfTk9UX05VTEwoZmlsdGVyKTsKKyAgICAg
ICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgICAgIGRvbmVDb21waWxpbmcgPSB0
cnVlOworICAgICAgICAgICAgcnVsZUxpc3QgPSBmaWx0ZXI7CisgICAgICAgICAgICBFWFBFQ1Rf
VFJVRShbW1tbX1dLVXNlckNvbnRlbnRGaWx0ZXIgYWxsb2NdIF9pbml0V2l0aFdLQ29udGVudFJ1
bGVMaXN0OmZpbHRlcl0gYXV0b3JlbGVhc2VdIHVzZXNDb3BpZWRNZW1vcnldID09IHNob3VsZFVz
ZUNvcGllZE1lbW9yeSk7CisgICAgICAgIH1dOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmVDb21waWxpbmcpOworICAgICAgICAKKyAgICAgICAgRVhQRUNUX1RSVUUoW1tO
U0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmZpbGVQYXRoXSk7
CisKKyAgICAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbVGVzdFNjaGVtZUhhbmRsZXJTdWJy
ZXNvdXJjZVNob3VsZEJlQmxvY2tlZCBuZXddKTsKKyAgICAgICAgYXV0byBjb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKKyAgICAgICAgW2NvbmZp
Z3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZvclVSTFNjaGVtZTpA
InRlc3RtbWFwIl07CisgICAgICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xs
ZXJdIGFkZENvbnRlbnRSdWxlTGlzdDpydWxlTGlzdC5nZXQoKV07CisgICAgICAgIGF1dG8gd2Vi
VmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0p
OworICAgICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6QCI8aHRtbD5t
YWluIHJlc291cmNlIGNvbnRlbnQ8L2h0bWw+IiBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5n
OkAidGVzdG1tYXA6Ly93ZWJraXQub3JnL21haW5yZXNvdXJjZSJdXTsKKworICAgICAgICBhdXRv
IGxvYWRpbmdTaG91bGRTdWNjZWVkID0gWyZdIChOU1N0cmluZyAqcmVzb3VyY2VQYXRoLCBOU1N0
cmluZyAqc2hvdWxkU3VjY2VlZCkgeworICAgICAgICAgICAgX19ibG9jayBib29sIGRvbmVFdmFs
dWF0aW5nID0gZmFsc2U7CisgICAgICAgICAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6
W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ2YXIgY2F1Z2h0ID0gZmFsc2U7IHZhciB4aHIg
PSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsgeGhyLm9wZW4oJ0dFVCcsICclQCcsIGZhbHNlKTsgdHJ5
eyB4aHIuc2VuZCgpIH0gY2F0Y2goZSkgeyBjYXVnaHQgPSB0cnVlOyB9OyBjYXVnaHQgIT0gJUAg
PyAnc3VjY2VzcycgOiAnZmFpbHVyZSciLCByZXNvdXJjZVBhdGgsIHNob3VsZFN1Y2NlZWRdIGNv
bXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICAg
ICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfVFJVRShb
QCJzdWNjZXNzIiBpc0VxdWFsVG9TdHJpbmc6cmVzdWx0XSk7CisgICAgICAgICAgICAgICAgZG9u
ZUV2YWx1YXRpbmcgPSB0cnVlOworICAgICAgICAgICAgfV07CisgICAgICAgICAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmRvbmVFdmFsdWF0aW5nKTsKKyAgICAgICAgfTsKKyAgICAgICAg
bG9hZGluZ1Nob3VsZFN1Y2NlZWQoQCIvc2hvdWxkbG9hZCIsIEAidHJ1ZSIpOworICAgICAgICBs
b2FkaW5nU2hvdWxkU3VjY2VlZChAIi9ibG9ja2Vkc3VicmVzb3VyY2UiLCBAImZhbHNlIik7CisK
KyAgICAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gcmVtb3ZlQ29u
dGVudFJ1bGVMaXN0OnJ1bGVMaXN0LmdldCgpXTsKKyAgICAgICAgCisgICAgICAgIF9fYmxvY2sg
Ym9vbCBkb25lTG9va2luZ1VwID0gZmFsc2U7CisgICAgICAgIFtzdG9yZSBsb29rVXBDb250ZW50
UnVsZUxpc3RGb3JJZGVudGlmaWVyOmlkZW50aWZpZXIgY29tcGxldGlvbkhhbmRsZXI6XihXS0Nv
bnRlbnRSdWxlTGlzdCAqZmlsdGVyLCBOU0Vycm9yICplcnJvcikgeworICAgICAgICAgICAgRVhQ
RUNUX05PVF9OVUxMKGZpbHRlcik7CisgICAgICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIGRvbmVMb29raW5nVXAgPSB0cnVlOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBFWFBFQ1RfVFJVRShbW1tbX1dLVXNlckNvbnRlbnRGaWx0ZXIgYWxs
b2NdIF9pbml0V2l0aFdLQ29udGVudFJ1bGVMaXN0OmZpbHRlcl0gYXV0b3JlbGVhc2VdIHVzZXND
b3BpZWRNZW1vcnldID09IHNob3VsZFVzZUNvcGllZE1lbW9yeSk7CisgICAgICAgICAgICBydWxl
TGlzdCA9IGZpbHRlcjsKKyAgICAgICAgfV07CisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmZG9uZUxvb2tpbmdVcCk7CisKKyAgICAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250
ZW50Q29udHJvbGxlcl0gYWRkQ29udGVudFJ1bGVMaXN0OnJ1bGVMaXN0LmdldCgpXTsKKyAgICAg
ICAgbG9hZGluZ1Nob3VsZFN1Y2NlZWQoQCIvc2hvdWxkbG9hZCIsIEAidHJ1ZSIpOworICAgICAg
ICBsb2FkaW5nU2hvdWxkU3VjY2VlZChAIi9ibG9ja2Vkc3VicmVzb3VyY2UiLCBAImZhbHNlIik7
CisKKyAgICAgICAgX19ibG9jayBib29sIGRvbmVDaGVja2luZ1NvdXJjZSA9IGZhbHNlOworICAg
ICAgICBbc3RvcmUgX2dldENvbnRlbnRSdWxlTGlzdFNvdXJjZUZvcklkZW50aWZpZXI6aWRlbnRp
ZmllciBjb21wbGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nICpzb3VyY2UpIHsKKyAgICAgICAgICAg
IEVYUEVDVF9UUlVFKFtzb3VyY2UgaXNFcXVhbFRvU3RyaW5nOnJ1bGVMaXN0U291cmNlU3RyaW5n
XSk7CisgICAgICAgICAgICBkb25lQ2hlY2tpbmdTb3VyY2UgPSB0cnVlOworICAgICAgICB9XTsK
KyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ2hlY2tpbmdTb3VyY2UpOwor
ICAgICAgICAKKyAgICAgICAgX19ibG9jayBib29sIGRvbmVSZW1vdmluZyA9IGZhbHNlOworICAg
ICAgICBbc3RvcmUgcmVtb3ZlQ29udGVudFJ1bGVMaXN0Rm9ySWRlbnRpZmllcjppZGVudGlmaWVy
IGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgICAgIEVYUEVD
VF9OVUxMKGVycm9yKTsKKyAgICAgICAgICAgIGRvbmVSZW1vdmluZyA9IHRydWU7CisgICAgICAg
IH1dOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVSZW1vdmluZyk7CisK
KyAgICAgICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmls
ZUV4aXN0c0F0UGF0aDpmaWxlUGF0aF0pOworICAgIH07CisgICAgCisgICAgcnVuVGVzdChmYWxz
ZSk7CisgICAgW1dLQ29udGVudFJ1bGVMaXN0U3RvcmUgX3JlZ2lzdGVyUGF0aEFzVW5zYWZlVG9N
ZW1vcnlNYXBGb3JUZXN0aW5nOmZpbGVQYXRoXTsKKyAgICBydW5UZXN0KHRydWUpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364233</attachid>
            <date>2019-03-10 22:12:21 -0700</date>
            <delta_ts>2019-03-11 12:49:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195511-20190310221220.patch</filename>
            <type>text/plain</type>
            <size>48030</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY0IEBACisyMDE5LTAzLTA4ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGEgV0tDb250
ZW50UnVsZUxpc3QgdmFyaWFudCB0aGF0IHVzZXMgY29waWVkIG1lbW9yeSBpbnN0ZWFkIG9mIG1t
YXAnZCBzaGFyZWQgbWVtb3J5IGZvciBjbGFzcyBBIGNvbnRhaW5lcml6ZWQgYXBwcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NTExCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NDg3MzI2OT4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFn
ZXI6OmFkZENvbnRlbnRSdWxlTGlzdHMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
YWNoZTo6cGF0aFJlZ2lzdGVyZWRBc1Vuc2FmZVRvTWVtb3J5TWFwRm9yVGVzdGluZyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6cmVnaXN0ZXJQYXRoQXNVbnNhZmVUb01lbW9yeU1h
cEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OmlzU2FmZVRvVXNl
TWVtb3J5TWFwRm9yUGF0aCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlRmlsZVN5c3RlbS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJDb21waWxlZENvbnRlbnRS
dWxlTGlzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0
Ojp1c2VzQ29waWVkTWVtb3J5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcGlsZWRD
b250ZW50UnVsZUxpc3Q6OmNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbiBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0OjpmaWx0ZXJzV2l0aG91dENv
bmRpdGlvbnNCeXRlY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29u
dGVudFJ1bGVMaXN0OjpmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0Ojp0b3BVUkxGaWx0ZXJzQnl0
ZWNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dDo6YWN0aW9ucyBjb25zdCk6CisgICAgICAgICogU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1
bGVMaXN0Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6
c2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0
RGF0YTo6ZGF0YVBvaW50ZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
Q29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBp
bGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdC5jcHA6CisgICAgICAg
IChBUEk6OkNvbnRlbnRSdWxlTGlzdDo6dXNlc0NvcGllZE1lbW9yeSBjb25zdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3QuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6Z2V0RGF0
YSk6CisgICAgICAgIChBUEk6OmRlY29kZUNvbnRlbnRSdWxlTGlzdE1ldGFEYXRhKToKKyAgICAg
ICAgKEFQSTo6Q29udGVudFJ1bGVMaXN0U3RvcmU6OnJlYWRDb250ZW50c09mRmlsZSk6CisgICAg
ICAgIChBUEk6Ok1hcHBlZE9yQ29waWVkRGF0YTo6ZGF0YVBvaW50ZXIgY29uc3QpOgorICAgICAg
ICAoQVBJOjpvcGVuQW5kTWFwT3JDb3B5Q29udGVudFJ1bGVMaXN0KToKKyAgICAgICAgKEFQSTo6
Y29tcGlsZWRUb0ZpbGUpOgorICAgICAgICAoQVBJOjpjcmVhdGVFeHRlbnNpb24pOgorICAgICAg
ICAoQVBJOjpDb250ZW50UnVsZUxpc3RTdG9yZTo6bG9va3VwQ29udGVudFJ1bGVMaXN0KToKKyAg
ICAgICAgKEFQSTo6Q29udGVudFJ1bGVMaXN0U3RvcmU6OmNvbXBpbGVDb250ZW50UnVsZUxpc3Qp
OgorICAgICAgICAoQVBJOjpDb250ZW50UnVsZUxpc3RTdG9yZTo6Z2V0Q29udGVudFJ1bGVMaXN0
U291cmNlKToKKyAgICAgICAgKEFQSTo6b3BlbkFuZE1hcENvbnRlbnRSdWxlTGlzdCk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmVDb2Nv
YS5tbToKKyAgICAgICAgKEFQSTo6Q29udGVudFJ1bGVMaXN0U3RvcmU6OnJlYWRDb250ZW50c09m
RmlsZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdFN0
b3JlLm1tOgorICAgICAgICAoK1tXS0NvbnRlbnRSdWxlTGlzdFN0b3JlIF9yZWdpc3RlclBhdGhB
c1Vuc2FmZVRvTWVtb3J5TWFwRm9yVGVzdGluZzpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQ29udGVudFJ1bGVMaXN0U3RvcmVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEZpbHRlci5tbToKKyAgICAgICAgKC1bX1dLVXNl
ckNvbnRlbnRGaWx0ZXIgdXNlc0NvcGllZE1lbW9yeV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXJQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OmFkZENvbnRlbnRSdWxlTGlzdHMpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjptX2hvc3RGaWxlRGVzY3JpcHRvcik6CisKIDIwMTktMDMtMDggIEJyYWR5IEVpZHNv
biAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIEhhdmUgdGhlIFVJUHJvY2VzcyB0YWtl
IHRoZSBVbmJvdW5kZWROZXR3b3JraW5nIGFzc2VydGlvbiB3aGVuIGRvd25sb2FkcyBhcmUgaW4g
cHJvZ3Jlc3MuCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250
ZW50UnVsZUxpc3RNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmNwcAkocmV2aXNpb24gMjQy
NjYzKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVM
aXN0TWFuYWdlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY2LDE1ICs2NiwxNCBAQCB2b2lkIE5l
dHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOjpjb250CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc1By
b3h5OjpDb250ZW50RXh0ZW5zaW9uUnVsZXMgeyBpZGVudGlmaWVyIH0sIDApOwogfQogCi12b2lk
IE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyOjphZGRDb250ZW50UnVsZUxpc3RzKFVzZXJD
b250ZW50Q29udHJvbGxlcklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgVmVjdG9yPHN0ZDo6
cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4+JiBjb250ZW50UnVs
ZUxpc3RzKQordm9pZCBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlcjo6YWRkQ29udGVudFJ1
bGVMaXN0cyhVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFZlY3Rv
cjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+PiYmIGNv
bnRlbnRSdWxlTGlzdHMpCiB7CiAgICAgYXV0byYgYmFja2VuZCA9ICptX2NvbnRlbnRFeHRlbnNp
b25CYWNrZW5kcy5lbnN1cmUoaWRlbnRpZmllciwgW10gewogICAgICAgICByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Q29udGVudEV4dGVuc2lvbnNC
YWNrZW5kPigpOwogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKIAotICAgIGZvciAoY29uc3QgYXV0
byYgY29udGVudFJ1bGVMaXN0IDogY29udGVudFJ1bGVMaXN0cykgewotICAgICAgICBXZWJDb21w
aWxlZENvbnRlbnRSdWxlTGlzdERhdGEgY29udGVudFJ1bGVMaXN0RGF0YSA9IGNvbnRlbnRSdWxl
TGlzdC5zZWNvbmQ7Ci0gICAgICAgIGF1dG8gY29tcGlsZWRDb250ZW50UnVsZUxpc3QgPSBXZWJD
b21waWxlZENvbnRlbnRSdWxlTGlzdDo6Y3JlYXRlKFdURk1vdmUoY29udGVudFJ1bGVMaXN0RGF0
YSkpOworICAgIGZvciAoYXV0byYmIGNvbnRlbnRSdWxlTGlzdCA6IGNvbnRlbnRSdWxlTGlzdHMp
IHsKKyAgICAgICAgYXV0byBjb21waWxlZENvbnRlbnRSdWxlTGlzdCA9IFdlYkNvbXBpbGVkQ29u
dGVudFJ1bGVMaXN0OjpjcmVhdGUoV1RGTW92ZShjb250ZW50UnVsZUxpc3Quc2Vjb25kKSk7CiAg
ICAgICAgIGJhY2tlbmQuYWRkQ29udGVudEV4dGVuc2lvbihjb250ZW50UnVsZUxpc3QuZmlyc3Qs
IFdURk1vdmUoY29tcGlsZWRDb250ZW50UnVsZUxpc3QpLCBDb250ZW50RXh0ZW5zaW9uczo6Q29u
dGVudEV4dGVuc2lvbjo6U2hvdWxkQ29tcGlsZUNTUzo6Tm8pOwogICAgIH0KIApJbmRleDogU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRl
bnRSdWxlTGlzdE1hbmFnZXIuaAkocmV2aXNpb24gMjQyNjYzKQorKysgU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbnRlbnRFeHRlbnNpb25z
QmFja2VuZChVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBCYWNrZW5kQ2FsbGJhY2sm
Jik7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBhZGRDb250ZW50UnVsZUxpc3RzKFVzZXJDb250ZW50
Q29udHJvbGxlcklkZW50aWZpZXIsIGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJD
b21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+PiYpOworICAgIHZvaWQgYWRkQ29udGVudFJ1bGVM
aXN0cyhVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyLCBWZWN0b3I8c3RkOjpwYWlyPFN0
cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPj4mJik7CiAgICAgdm9pZCByZW1v
dmVDb250ZW50UnVsZUxpc3QoVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuYW1lKTsKICAgICB2b2lkIHJlbW92ZUFsbENvbnRlbnRSdWxlTGlzdHMoVXNlckNv
bnRlbnRDb250cm9sbGVySWRlbnRpZmllcik7CiAgICAgdm9pZCByZW1vdmUoVXNlckNvbnRlbnRD
b250cm9sbGVySWRlbnRpZmllcik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5jcHAJKHJl
dmlzaW9uIDI0MjY2MykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlRmlsZVN5c3RlbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0NSw4ICsxNDUsMjMg
QEAgdm9pZCB1cGRhdGVGaWxlTW9kaWZpY2F0aW9uVGltZUlmTmVlZGVkKAogI2VuZGlmCiB9CiAK
K3N0YXRpYyBTdHJpbmcmIHBhdGhSZWdpc3RlcmVkQXNVbnNhZmVUb01lbW9yeU1hcEZvclRlc3Rp
bmcoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHBhdGg7CisgICAgcmV0
dXJuIHBhdGguZ2V0KCk7Cit9CisKK3ZvaWQgcmVnaXN0ZXJQYXRoQXNVbnNhZmVUb01lbW9yeU1h
cEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJiBwYXRoKQoreworICAgIHBhdGhSZWdpc3RlcmVkQXNV
bnNhZmVUb01lbW9yeU1hcEZvclRlc3RpbmcoKSA9IHBhdGg7Cit9CisKKyAgICAKIGJvb2wgaXNT
YWZlVG9Vc2VNZW1vcnlNYXBGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKKyAgICBpZiAo
cGF0aCA9PSBwYXRoUmVnaXN0ZXJlZEFzVW5zYWZlVG9NZW1vcnlNYXBGb3JUZXN0aW5nKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFU
Rk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikKICAgICBzdHJ1Y3QgewogICAgICAgICB1aW50MzJf
dCBsZW5ndGg7CkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdv
cmtDYWNoZUZpbGVTeXN0ZW0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uaAkocmV2aXNpb24gMjQyNjYzKQor
KysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVGaWxlU3lz
dGVtLmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDcgQEAgRmlsZVRpbWVzIGZpbGVUaW1l
cyhjb25zdCBTdHJpbmcmIHBhdGgpOwogdm9pZCB1cGRhdGVGaWxlTW9kaWZpY2F0aW9uVGltZUlm
TmVlZGVkKGNvbnN0IFN0cmluZyYgcGF0aCk7CiAKIGJvb2wgaXNTYWZlVG9Vc2VNZW1vcnlNYXBG
b3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCk7Cit2b2lkIHJlZ2lzdGVyUGF0aEFzVW5zYWZlVG9N
ZW1vcnlNYXBGb3JUZXN0aW5nKGNvbnN0IFN0cmluZyYpOwogCiB9CiB9CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QuY3BwCShy
ZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRl
bnRSdWxlTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDE0ICs0NCwxOSBAQCBXZWJDb21w
aWxlZENvbnRlbnRSdWxlTGlzdDo6fldlYkNvbXBpbGVkCiB7CiB9CiAKK2Jvb2wgV2ViQ29tcGls
ZWRDb250ZW50UnVsZUxpc3Q6OnVzZXNDb3BpZWRNZW1vcnkoKSBjb25zdAoreworICAgIHJldHVy
biBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+Piht
X2RhdGEuZGF0YSk7Cit9CisKIGJvb2wgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmNvbmRp
dGlvbnNBcHBseU9ubHlUb0RvbWFpbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICpyZWludGVycHJl
dF9jYXN0PHVpbnQzMl90Kj4ocmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4obV9kYXRhLmRhdGEt
PmRhdGEoKSkgKyBtX2RhdGEuY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0KTsKKyAg
ICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihyZWludGVycHJldF9j
YXN0PGNvbnN0IHVpbnQ4X3QqPihtX2RhdGEuZGF0YVBvaW50ZXIoKSkgKyBtX2RhdGEuY29uZGl0
aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0KTsKIH0KIAogY29uc3QgV2ViQ29yZTo6Q29udGVu
dEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlKiBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6Zmls
dGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGUoKSBjb25zdAogewotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxjb25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGUqPiht
X2RhdGEuZGF0YS0+ZGF0YSgpKSArIG1fZGF0YS5maWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRl
Y29kZU9mZnNldDsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgV2ViQ29yZTo6Q29udGVu
dEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlKj4obV9kYXRhLmRhdGFQb2ludGVyKCkpICsgbV9kYXRh
LmZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0OwogfQogCiB1bnNpZ25lZCBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6ZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNv
ZGVMZW5ndGgoKSBjb25zdApAQCAtNjEsNyArNjYsNyBAQCB1bnNpZ25lZCBXZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdDo6ZmlsCiAKIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpE
RkFCeXRlY29kZSogV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmZpbHRlcnNXaXRoQ29uZGl0
aW9uc0J5dGVjb2RlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlKj4obV9kYXRhLmRhdGEtPmRhdGEo
KSkgKyBtX2RhdGEuZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQ7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpERkFCeXRl
Y29kZSo+KG1fZGF0YS5kYXRhUG9pbnRlcigpKSArIG1fZGF0YS5maWx0ZXJzV2l0aENvbmRpdGlv
bnNCeXRlY29kZU9mZnNldDsKIH0KIAogdW5zaWduZWQgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3Q6OmZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlTGVuZ3RoKCkgY29uc3QKQEAgLTcxLDcg
Kzc2LDcgQEAgdW5zaWduZWQgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmZpbAogCiBjb25z
dCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGUqIFdlYkNvbXBpbGVkQ29u
dGVudFJ1bGVMaXN0Ojp0b3BVUkxGaWx0ZXJzQnl0ZWNvZGUoKSBjb25zdAogewotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxjb25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNv
ZGUqPihtX2RhdGEuZGF0YS0+ZGF0YSgpKSArIG1fZGF0YS50b3BVUkxGaWx0ZXJzQnl0ZWNvZGVP
ZmZzZXQ7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRFeHRl
bnNpb25zOjpERkFCeXRlY29kZSo+KG1fZGF0YS5kYXRhUG9pbnRlcigpKSArIG1fZGF0YS50b3BV
UkxGaWx0ZXJzQnl0ZWNvZGVPZmZzZXQ7CiB9CiAKIHVuc2lnbmVkIFdlYkNvbXBpbGVkQ29udGVu
dFJ1bGVMaXN0Ojp0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVMZW5ndGgoKSBjb25zdApAQCAtODEsNyAr
ODYsNyBAQCB1bnNpZ25lZCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6dG9wCiAKIGNvbnN0
IFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpTZXJpYWxpemVkQWN0aW9uQnl0ZSogV2ViQ29t
cGlsZWRDb250ZW50UnVsZUxpc3Q6OmFjdGlvbnMoKSBjb25zdAogewotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxjb25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6U2VyaWFsaXplZEFjdGlv
bkJ5dGUqPihtX2RhdGEuZGF0YS0+ZGF0YSgpKSArIG1fZGF0YS5hY3Rpb25zT2Zmc2V0OworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6U2Vy
aWFsaXplZEFjdGlvbkJ5dGUqPihtX2RhdGEuZGF0YVBvaW50ZXIoKSkgKyBtX2RhdGEuYWN0aW9u
c09mZnNldDsKIH0KIAogdW5zaWduZWQgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmFjdGlv
bnNMZW5ndGgoKSBjb25zdApJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRD
b250ZW50UnVsZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b21waWxlZENvbnRlbnRSdWxlTGlzdC5oCShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zOCw4ICszOCwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxXZWJDb21waWxlZENvbnRl
bnRSdWxlTGlzdD4gY3JlYXRlKFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSYmKTsKICAg
ICB2aXJ0dWFsIH5XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdCgpOwogCi0gICAgV2ViQ29tcGls
ZWRDb250ZW50UnVsZUxpc3REYXRhIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX2RhdGE7IH0KKyAg
ICBjb25zdCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEmIGRhdGEoKSBjb25zdCB7IHJl
dHVybiBtX2RhdGE7IH0KIAorICAgIGJvb2wgdXNlc0NvcGllZE1lbW9yeSgpIGNvbnN0OworICAg
IAogcHJpdmF0ZToKICAgICBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdChXZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdERhdGEmJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNv
bXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmNwcAkocmV2aXNpb24gMjQy
NjYzKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3RE
YXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksMTQgKzI5LDM4IEBACiAjaWYgRU5BQkxFKENP
TlRFTlRfRVhURU5TSU9OUykKIAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVk
ZSAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAor
c2l6ZV90IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6c2l6ZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFdURjo6c3dpdGNoT24oZGF0YSwgW10gKGNvbnN0IGF1dG8mIHNoYXJlZE1lbW9y
eU9yQnVmZmVyKSB7CisgICAgICAgIHJldHVybiBzaGFyZWRNZW1vcnlPckJ1ZmZlci0+c2l6ZSgp
OworICAgIH0pOworfQorCitjb25zdCB2b2lkKiBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERh
dGE6OmRhdGFQb2ludGVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihkYXRh
LCBbXSAoY29uc3QgYXV0byYgc2hhcmVkTWVtb3J5T3JCdWZmZXIpIC0+IGNvbnN0IHZvaWQqIHsK
KyAgICAgICAgcmV0dXJuIHNoYXJlZE1lbW9yeU9yQnVmZmVyLT5kYXRhKCk7CisgICAgfSk7Cit9
CisKIHZvaWQgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhOjplbmNvZGUoSVBDOjpFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsK
LSAgICBkYXRhLT5jcmVhdGVIYW5kbGUoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246
OlJlYWRPbmx5KTsKLSAgICBlbmNvZGVyIDw8IGhhbmRsZTsKKyAgICBpZiAoYXV0byBzaGFyZWRN
ZW1vcnkgPSBXVEY6OmdldF9pZjxSZWZQdHI8U2hhcmVkTWVtb3J5Pj4oZGF0YSkpIHsKKyAgICAg
ICAgZW5jb2RlciA8PCB0cnVlOworICAgICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7
CisgICAgICAgIHNoYXJlZE1lbW9yeS0+Z2V0KCktPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJl
ZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgICAgICBlbmNvZGVyIDw8IGhhbmRs
ZTsKKyAgICB9IGVsc2UgeworICAgICAgICBlbmNvZGVyIDw8IGZhbHNlOworICAgICAgICBlbmNv
ZGVyIDw8IElQQzo6U2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZSB7ICpXVEY6OmdldDxSZWZQdHI8
V2ViQ29yZTo6U2hhcmVkQnVmZmVyPj4oZGF0YSkgfTsKKyAgICB9CisKKyAgICAvLyBmaWxlRGF0
YSBuZWVkcyB0byBiZSBrZXB0IGluIHRoZSBVSVByb2Nlc3MsIGJ1dCBpdCBkb2VzIG5vdCBuZWVk
IHRvIGJlIHNlcmlhbGl6ZWQuCisgICAgLy8gRklYTUU6IE1vdmUgaXQgdG8gQVBJOjpDb250ZW50
UnVsZUxpc3QKIAogICAgIGVuY29kZXIgPDwgY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zm
c2V0OwogICAgIGVuY29kZXIgPDwgYWN0aW9uc09mZnNldDsKQEAgLTUyLDEwICs3NiwyMiBAQCB2
b2lkIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6ZW5jCiBPcHRpb25hbDxXZWJDb21w
aWxlZENvbnRlbnRSdWxlTGlzdERhdGE+IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6
ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKICAgICBXZWJDb21waWxlZENvbnRlbnRS
dWxlTGlzdERhdGEgY29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhOwotICAgIFNoYXJlZE1lbW9y
eTo6SGFuZGxlIGhhbmRsZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhbmRsZSkpCi0gICAg
ICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0gICAgY29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRh
LmRhdGEgPSBTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlv
bjo6UmVhZE9ubHkpOworCisgICAgT3B0aW9uYWw8Ym9vbD4gaGFzU2hhcmVkTWVtb3J5OworICAg
IGRlY29kZXIgPj4gaGFzU2hhcmVkTWVtb3J5OworICAgIGlmICghaGFzU2hhcmVkTWVtb3J5KQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIGlmICgqaGFzU2hhcmVkTWVtb3J5KSB7
CisgICAgICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShoYW5kbGUpKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAg
ICAgICAgY29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmRhdGEgPSB7IFNoYXJlZE1lbW9yeTo6
bWFwKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSkgfTsKKyAgICB9
IGVsc2UgeworICAgICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5jZTsKKyAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShkYXRhUmVmZXJlbmNlKSkKKyAgICAgICAgICAgIHJldHVy
biBXVEY6Om51bGxvcHQ7CisgICAgICAgIGNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5kYXRh
ID0geyBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPihXZWJDb3JlOjpTaGFyZWRCdWZmZXI6
OmNyZWF0ZShkYXRhUmVmZXJlbmNlLmRhdGEoKSwgZGF0YVJlZmVyZW5jZS5zaXplKCkpKSB9Owor
ICAgIH0KIAogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29tcGlsZWRDb250ZW50UnVsZUxpc3RE
YXRhLmNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbk9mZnNldCkpCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRl
bnRSdWxlTGlzdERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuaAkocmV2aXNpb24gMjQyNjYzKQorKysgU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDcgKzI5LDkgQEAKIAogI2luY2x1ZGUgIk5ldHdvcmtDYWNoZURhdGEuaCIK
ICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZl
ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvVmFyaWFudC5oPgog
CiBuYW1lc3BhY2UgSVBDIHsKIGNsYXNzIERlY29kZXI7CkBAIC00Miw3ICs0NCw3IEBAIGNsYXNz
IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSB7CiBwdWJsaWM6CiAgICAgV2ViQ29tcGls
ZWRDb250ZW50UnVsZUxpc3REYXRhKCkgPSBkZWZhdWx0OwogCi0gICAgV2ViQ29tcGlsZWRDb250
ZW50UnVsZUxpc3REYXRhKFJlZlB0cjxTaGFyZWRNZW1vcnk+JiYgZGF0YSwgTmV0d29ya0NhY2hl
OjpEYXRhIGZpbGVEYXRhLCB1bnNpZ25lZCBjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW5PZmZz
ZXQsIHVuc2lnbmVkIGFjdGlvbnNPZmZzZXQsIHVuc2lnbmVkIGFjdGlvbnNTaXplLCB1bnNpZ25l
ZCBmaWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZU9mZnNldCwgdW5zaWduZWQgZmlsdGVy
c1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVTaXplLCB1bnNpZ25lZCBmaWx0ZXJzV2l0aENvbmRp
dGlvbnNCeXRlY29kZU9mZnNldCwgdW5zaWduZWQgZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNv
ZGVTaXplLCB1bnNpZ25lZCB0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVPZmZzZXQsIHVuc2lnbmVkIHRv
cFVSTEZpbHRlcnNCeXRlY29kZVNpemUpCisgICAgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3RE
YXRhKFZhcmlhbnQ8UmVmUHRyPFNoYXJlZE1lbW9yeT4sIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRC
dWZmZXI+PiYmIGRhdGEsIE5ldHdvcmtDYWNoZTo6RGF0YSBmaWxlRGF0YSwgdW5zaWduZWQgY29u
ZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0LCB1bnNpZ25lZCBhY3Rpb25zT2Zmc2V0LCB1
bnNpZ25lZCBhY3Rpb25zU2l6ZSwgdW5zaWduZWQgZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0
ZWNvZGVPZmZzZXQsIHVuc2lnbmVkIGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6
ZSwgdW5zaWduZWQgZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVPZmZzZXQsIHVuc2lnbmVk
IGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSwgdW5zaWduZWQgdG9wVVJMRmlsdGVy
c0J5dGVjb2RlT2Zmc2V0LCB1bnNpZ25lZCB0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVTaXplKQogICAg
ICAgICA6IGRhdGEoV1RGTW92ZShkYXRhKSkKICAgICAgICAgLCBmaWxlRGF0YShmaWxlRGF0YSkK
ICAgICAgICAgLCBjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW5PZmZzZXQoY29uZGl0aW9uc0Fw
cGx5T25seVRvRG9tYWluT2Zmc2V0KQpAQCAtNjAsNyArNjIsMTAgQEAgcHVibGljOgogICAgIHZv
aWQgZW5jb2RlKElQQzo6RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBPcHRpb25hbDxXZWJD
b21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+IGRlY29kZShJUEM6OkRlY29kZXImKTsKIAotICAg
IFJlZlB0cjxTaGFyZWRNZW1vcnk+IGRhdGE7CisgICAgc2l6ZV90IHNpemUoKSBjb25zdDsKKyAg
ICBjb25zdCB2b2lkKiBkYXRhUG9pbnRlcigpIGNvbnN0OworICAgIAorICAgIFZhcmlhbnQ8UmVm
UHRyPFNoYXJlZE1lbW9yeT4sIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+PiBkYXRhOwog
ICAgIE5ldHdvcmtDYWNoZTo6RGF0YSBmaWxlRGF0YTsKICAgICB1bnNpZ25lZCBjb25kaXRpb25z
QXBwbHlPbmx5VG9Eb21haW5PZmZzZXQgeyAwIH07CiAgICAgdW5zaWduZWQgYWN0aW9uc09mZnNl
dCB7IDAgfTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVs
ZUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElD
b250ZW50UnVsZUxpc3QuY3BwCShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIs
NiArNDIsMTEgQEAgQ29udGVudFJ1bGVMaXN0Ojp+Q29udGVudFJ1bGVMaXN0KCkKIHsKIH0KIAor
Ym9vbCBDb250ZW50UnVsZUxpc3Q6OnVzZXNDb3BpZWRNZW1vcnkoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2NvbXBpbGVkUnVsZUxpc3QtPnVzZXNDb3BpZWRNZW1vcnkoKTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgQVBJCiAKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3Qu
aAkocmV2aXNpb24gMjQyNjYzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNv
bnRlbnRSdWxlTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OCw2ICs0OCw4IEBAIHB1YmxpYzoK
ICAgICBjb25zdCBXVEY6OlN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmFtZTsgfQog
ICAgIGNvbnN0IFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3QmIGNvbXBpbGVkUnVs
ZUxpc3QoKSBjb25zdCB7IHJldHVybiBtX2NvbXBpbGVkUnVsZUxpc3QuZ2V0KCk7IH0KIAorICAg
IGJvb2wgdXNlc0NvcGllZE1lbW9yeSgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIFdURjo6U3Ry
aW5nIG1fbmFtZTsKICAgICBSZWY8V2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdD4g
bV9jb21waWxlZFJ1bGVMaXN0OwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuY3BwCShyZXZpc2lvbiAyNDI2NjMp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9D
b250ZW50RXh0ZW5zaW9uRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRlbnRFeHRlbnNp
b25QYXJzZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1F1YWxpZmllZE5hbWUuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPHN0cmluZz4KICNpbmNsdWRlIDx3
dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRmlsZVN5c3RlbS5oPgpAQCAt
MTU2LDEwICsxNTcsMjIgQEAgc3RhdGljIFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhIGVuY29k
ZQogICAgIHJldHVybiBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YShlbmNvZGVyLmJ1ZmZlcigp
LCBlbmNvZGVyLmJ1ZmZlclNpemUoKSk7CiB9CiAKLXN0YXRpYyBib29sIGRlY29kZUNvbnRlbnRS
dWxlTGlzdE1ldGFEYXRhKENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhJiBtZXRhRGF0YSwgY29uc3Qg
V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGEmIGZpbGVEYXRhKQordGVtcGxhdGU8dHlwZW5hbWUg
VD4gdm9pZCBnZXREYXRhKGNvbnN0IFQmLCBjb25zdCBGdW5jdGlvbjxib29sKGNvbnN0IHVpbnQ4
X3QqLCBzaXplX3QpPiYpOwordGVtcGxhdGU8PiB2b2lkIGdldERhdGEoY29uc3QgV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OkRhdGEmIGRhdGEsIGNvbnN0IEZ1bmN0aW9uPGJvb2woY29uc3QgdWludDhf
dCosIHNpemVfdCk+JiBmdW5jdGlvbikKK3sKKyAgICBkYXRhLmFwcGx5KGZ1bmN0aW9uKTsKK30K
K3RlbXBsYXRlPD4gdm9pZCBnZXREYXRhKGNvbnN0IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciYgZGF0
YSwgY29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCB1aW50OF90Kiwgc2l6ZV90KT4mIGZ1bmN0aW9u
KQoreworICAgIGZ1bmN0aW9uKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KGRhdGEu
ZGF0YSgpKSwgZGF0YS5zaXplKCkpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RhdGlj
IE9wdGlvbmFsPENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhPiBkZWNvZGVDb250ZW50UnVsZUxpc3RN
ZXRhRGF0YShjb25zdCBUJiBmaWxlRGF0YSkKIHsKICAgICBib29sIHN1Y2Nlc3MgPSBmYWxzZTsK
LSAgICBmaWxlRGF0YS5hcHBseShbJm1ldGFEYXRhLCAmc3VjY2VzcywgJmZpbGVEYXRhXShjb25z
dCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkgeworICAgIENvbnRlbnRSdWxlTGlzdE1ldGFE
YXRhIG1ldGFEYXRhOworICAgIGdldERhdGEoZmlsZURhdGEsIFsmbWV0YURhdGEsICZzdWNjZXNz
LCAmZmlsZURhdGFdKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKSB7CiAgICAgICAg
IC8vIFRoZSBmaWxlIGRhdGEgc2hvdWxkIGJlIG1hcHBlZCBpbnRvIG9uZSBjb250aW51b3VzIG1l
bW9yeSBzZWdtZW50IHNvIHRoZSBzaXplCiAgICAgICAgIC8vIHBhc3NlZCB0byB0aGUgYXBwbGll
ciBzaG91bGQgYWx3YXlzIGVxdWFsIHRoZSBkYXRhIHNpemUuCiAgICAgICAgIGlmIChzaXplICE9
IGZpbGVEYXRhLnNpemUoKSkKQEAgLTE4MywxOSArMTk2LDUyIEBAIHN0YXRpYyBib29sIGRlY29k
ZUNvbnRlbnRSdWxlTGlzdE1ldGFEYXQKICAgICAgICAgc3VjY2VzcyA9IHRydWU7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9KTsKLSAgICByZXR1cm4gc3VjY2VzczsKKyAgICBpZiAoIXN1
Y2Nlc3MpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJuIFdURk1vdmUo
bWV0YURhdGEpOwogfQogCi1zdGF0aWMgYm9vbCBvcGVuQW5kTWFwQ29udGVudFJ1bGVMaXN0KGNv
bnN0IFdURjo6U3RyaW5nJiBwYXRoLCBDb250ZW50UnVsZUxpc3RNZXRhRGF0YSYgbWV0YURhdGEs
IFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhJiBmaWxlRGF0YSkKKyNpZiAhUExBVEZPUk0oQ09D
T0EpCitSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBDb250ZW50UnVsZUxpc3RTdG9yZTo6
cmVhZENvbnRlbnRzT2ZGaWxlKGNvbnN0IFdURjo6U3RyaW5nJiBmaWxlUGF0aCkKIHsKLSAgICBm
aWxlRGF0YSA9IG1hcEZpbGUoZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpLmRhdGEoKSk7
Ci0gICAgaWYgKGZpbGVEYXRhLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKIAot
ICAgIGlmICghZGVjb2RlQ29udGVudFJ1bGVMaXN0TWV0YURhdGEobWV0YURhdGEsIGZpbGVEYXRh
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworc3RydWN0IE1hcHBlZE9yQ29waWVkRGF0YSB7Cisg
ICAgQ29udGVudFJ1bGVMaXN0TWV0YURhdGEgbWV0YURhdGE7CisgICAgVmFyaWFudDxXZWJLaXQ6
Ok5ldHdvcmtDYWNoZTo6RGF0YSwgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4+IGRhdGE7
CisgICAgCisgICAgY29uc3QgdWludDhfdCogZGF0YVBvaW50ZXIoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIFdURjo6c3dpdGNoT24oZGF0YSwgW10gKGNvbnN0IFdlYktpdDo6TmV0d29y
a0NhY2hlOjpEYXRhJiBkYXRhKSB7CisgICAgICAgICAgICByZXR1cm4gZGF0YS5kYXRhKCk7Cisg
ICAgICAgIH0sIFtdIChjb25zdCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYgc2hhcmVk
QnVmZmVyKSB7CisgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50
OF90Kj4oc2hhcmVkQnVmZmVyLT5kYXRhKCkpOworICAgICAgICB9KTsKKyAgICB9Cit9OworCitz
dGF0aWMgT3B0aW9uYWw8TWFwcGVkT3JDb3BpZWREYXRhPiBvcGVuQW5kTWFwT3JDb3B5Q29udGVu
dFJ1bGVMaXN0KGNvbnN0IFdURjo6U3RyaW5nJiBwYXRoKQoreworICAgIGlmICghV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OmlzU2FmZVRvVXNlTWVtb3J5TWFwRm9yUGF0aChwYXRoKSkgeworICAgICAg
ICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBDb250ZW50UnVsZUxpc3RT
dG9yZTo6cmVhZENvbnRlbnRzT2ZGaWxlKHBhdGgpOworICAgICAgICBpZiAoIWJ1ZmZlcikKKyAg
ICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIGF1dG8gbWV0YURhdGEgPSBk
ZWNvZGVDb250ZW50UnVsZUxpc3RNZXRhRGF0YSgqYnVmZmVyKTsKKyAgICAgICAgaWYgKCFtZXRh
RGF0YSkKKyAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgICAgIHJldHVybiB7
eyBXVEZNb3ZlKCptZXRhRGF0YSksIHsgYnVmZmVyLnJlbGVhc2VOb25OdWxsKCkgfX19OworICAg
IH0KIAotICAgIHJldHVybiB0cnVlOworICAgIFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhIGZp
bGVEYXRhID0gbWFwRmlsZShmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCkuZGF0YSgpKTsK
KyAgICBpZiAoZmlsZURhdGEuaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7
CisgICAgYXV0byBtZXRhRGF0YSA9IGRlY29kZUNvbnRlbnRSdWxlTGlzdE1ldGFEYXRhKGZpbGVE
YXRhKTsKKyAgICBpZiAoIW1ldGFEYXRhKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0Owor
ICAgIHJldHVybiB7eyBXVEZNb3ZlKCptZXRhRGF0YSksIHsgV1RGTW92ZShmaWxlRGF0YSkgfX19
OwogfQogCiBzdGF0aWMgYm9vbCB3cml0ZURhdGFUb0ZpbGUoY29uc3QgV2ViS2l0OjpOZXR3b3Jr
Q2FjaGU6OkRhdGEmIGZpbGVEYXRhLCBQbGF0Zm9ybUZpbGVIYW5kbGUgZmQpCkBAIC0yMTIsNyAr
MjU4LDcgQEAgc3RhdGljIGJvb2wgd3JpdGVEYXRhVG9GaWxlKGNvbnN0IFdlYktpdAogICAgIHJl
dHVybiBzdWNjZXNzOwogfQogCi1zdGF0aWMgc3RkOjplcnJvcl9jb2RlIGNvbXBpbGVkVG9GaWxl
KFdURjo6U3RyaW5nJiYganNvbiwgVmVjdG9yPFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpD
b250ZW50RXh0ZW5zaW9uUnVsZT4mJiBwYXJzZWRSdWxlcywgY29uc3QgV1RGOjpTdHJpbmcmIGZp
bmFsRmlsZVBhdGgsIENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhJiBtZXRhRGF0YSwgV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OkRhdGEmIG1hcHBlZERhdGEpCitzdGF0aWMgRXhwZWN0ZWQ8TWFwcGVkT3JD
b3BpZWREYXRhLCBzdGQ6OmVycm9yX2NvZGU+IGNvbXBpbGVkVG9GaWxlKFdURjo6U3RyaW5nJiYg
anNvbiwgVmVjdG9yPFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9u
UnVsZT4mJiBwYXJzZWRSdWxlcywgY29uc3QgV1RGOjpTdHJpbmcmIGZpbmFsRmlsZVBhdGgpCiB7
CiAgICAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOwogCkBAIC0z
MjksNyArMzc1LDcgQEAgc3RhdGljIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlZFRvRmlsZShXVAog
ICAgIFdURjo6U3RyaW5nIHRlbXBvcmFyeUZpbGVQYXRoID0gb3BlblRlbXBvcmFyeUZpbGUoIkNv
bnRlbnRSdWxlTGlzdCIsIHRlbXBvcmFyeUZpbGVIYW5kbGUpOwogICAgIGlmICh0ZW1wb3JhcnlG
aWxlSGFuZGxlID09IGludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpIHsKICAgICAgICAgV1RGTG9n
QWx3YXlzKCJDb250ZW50IFJ1bGUgTGlzdCBjb21waWxpbmcgZmFpbGVkOiBPcGVuaW5nIHRlbXBv
cmFyeSBmaWxlIGZhaWxlZC4iKTsKLSAgICAgICAgcmV0dXJuIENvbnRlbnRSdWxlTGlzdFN0b3Jl
OjpFcnJvcjo6Q29tcGlsZUZhaWxlZDsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENv
bnRlbnRSdWxlTGlzdFN0b3JlOjpFcnJvcjo6Q29tcGlsZUZhaWxlZCk7CiAgICAgfQogICAgIAog
ICAgIGNoYXIgaW52YWxpZEhlYWRlcltDb250ZW50UnVsZUxpc3RGaWxlSGVhZGVyU2l6ZV07CkBA
IC0zMzgsNjIgKzM4NCw3NyBAQCBzdGF0aWMgc3RkOjplcnJvcl9jb2RlIGNvbXBpbGVkVG9GaWxl
KFdUCiAgICAgaWYgKHdyaXRlVG9GaWxlKHRlbXBvcmFyeUZpbGVIYW5kbGUsIGludmFsaWRIZWFk
ZXIsIHNpemVvZihpbnZhbGlkSGVhZGVyKSkgPT0gLTEpIHsKICAgICAgICAgV1RGTG9nQWx3YXlz
KCJDb250ZW50IFJ1bGUgTGlzdCBjb21waWxpbmcgZmFpbGVkOiBXcml0aW5nIGhlYWRlciB0byBm
aWxlIGZhaWxlZC4iKTsKICAgICAgICAgY2xvc2VGaWxlKHRlbXBvcmFyeUZpbGVIYW5kbGUpOwot
ICAgICAgICByZXR1cm4gQ29udGVudFJ1bGVMaXN0U3RvcmU6OkVycm9yOjpDb21waWxlRmFpbGVk
OworICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudFJ1bGVMaXN0U3RvcmU6OkVy
cm9yOjpDb21waWxlRmFpbGVkKTsKICAgICB9CiAKKyAgICBDb250ZW50UnVsZUxpc3RNZXRhRGF0
YSBtZXRhRGF0YTsKICAgICBDb21waWxhdGlvbkNsaWVudCBjb21waWxhdGlvbkNsaWVudCh0ZW1w
b3JhcnlGaWxlSGFuZGxlLCBtZXRhRGF0YSk7CiAgICAgCiAgICAgaWYgKGF1dG8gY29tcGlsZXJF
cnJvciA9IGNvbXBpbGVSdWxlTGlzdChjb21waWxhdGlvbkNsaWVudCwgV1RGTW92ZShqc29uKSwg
V1RGTW92ZShwYXJzZWRSdWxlcykpKSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiQ29udGVudCBS
dWxlIExpc3QgY29tcGlsaW5nIGZhaWxlZDogQ29tcGlsaW5nIGZhaWxlZC4iKTsKICAgICAgICAg
Y2xvc2VGaWxlKHRlbXBvcmFyeUZpbGVIYW5kbGUpOwotICAgICAgICByZXR1cm4gY29tcGlsZXJF
cnJvcjsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGNvbXBpbGVyRXJyb3IpOwogICAg
IH0KICAgICBpZiAoY29tcGlsYXRpb25DbGllbnQuaGFkRXJyb3JXaGlsZVdyaXRpbmdUb0ZpbGUo
KSkgewogICAgICAgICBXVEZMb2dBbHdheXMoIkNvbnRlbnQgUnVsZSBMaXN0IGNvbXBpbGluZyBm
YWlsZWQ6IFdyaXRpbmcgdG8gZmlsZSBmYWlsZWQuIik7CiAgICAgICAgIGNsb3NlRmlsZSh0ZW1w
b3JhcnlGaWxlSGFuZGxlKTsKLSAgICAgICAgcmV0dXJuIENvbnRlbnRSdWxlTGlzdFN0b3JlOjpF
cnJvcjo6Q29tcGlsZUZhaWxlZDsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRl
bnRSdWxlTGlzdFN0b3JlOjpFcnJvcjo6Q29tcGlsZUZhaWxlZCk7CiAgICAgfQogCi0gICAgbWFw
cGVkRGF0YSA9IGFkb3B0QW5kTWFwRmlsZSh0ZW1wb3JhcnlGaWxlSGFuZGxlLCAwLCBtZXRhRGF0
YS5maWxlU2l6ZSgpKTsKKyAgICBhdXRvIG1hcHBlZERhdGEgPSBhZG9wdEFuZE1hcEZpbGUodGVt
cG9yYXJ5RmlsZUhhbmRsZSwgMCwgbWV0YURhdGEuZmlsZVNpemUoKSk7CiAgICAgaWYgKG1hcHBl
ZERhdGEuaXNOdWxsKCkpIHsKICAgICAgICAgV1RGTG9nQWx3YXlzKCJDb250ZW50IFJ1bGUgTGlz
dCBjb21waWxpbmcgZmFpbGVkOiBNYXBwaW5nIGZpbGUgZmFpbGVkLiIpOwotICAgICAgICByZXR1
cm4gQ29udGVudFJ1bGVMaXN0U3RvcmU6OkVycm9yOjpDb21waWxlRmFpbGVkOworICAgICAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudFJ1bGVMaXN0U3RvcmU6OkVycm9yOjpDb21waWxl
RmFpbGVkKTsKICAgICB9CiAKICAgICBpZiAoIW1vdmVGaWxlKHRlbXBvcmFyeUZpbGVQYXRoLCBm
aW5hbEZpbGVQYXRoKSkgewogICAgICAgICBXVEZMb2dBbHdheXMoIkNvbnRlbnQgUnVsZSBMaXN0
IGNvbXBpbGluZyBmYWlsZWQ6IE1vdmluZyBmaWxlIGZhaWxlZC4iKTsKLSAgICAgICAgcmV0dXJu
IENvbnRlbnRSdWxlTGlzdFN0b3JlOjpFcnJvcjo6Q29tcGlsZUZhaWxlZDsKKyAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRSdWxlTGlzdFN0b3JlOjpFcnJvcjo6Q29tcGlsZUZh
aWxlZCk7CiAgICAgfQogCi0gICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWlzU2FmZVRvVXNlTWVt
b3J5TWFwRm9yUGF0aChmaW5hbEZpbGVQYXRoKSkgeworICAgICAgICBhdXRvIGNvbnRlbnRzID0g
Q29udGVudFJ1bGVMaXN0U3RvcmU6OnJlYWRDb250ZW50c09mRmlsZShmaW5hbEZpbGVQYXRoKTsK
KyAgICAgICAgaWYgKCFjb250ZW50cykKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChDb250ZW50UnVsZUxpc3RTdG9yZTo6RXJyb3I6OkNvbXBpbGVGYWlsZWQpOworICAgICAgICBy
ZXR1cm4ge3sgV1RGTW92ZShtZXRhRGF0YSksIFdURk1vdmUoY29udGVudHMpIH19OworICAgIH0K
KyAgICAKKyAgICByZXR1cm4ge3sgV1RGTW92ZShtZXRhRGF0YSksIFdURk1vdmUobWFwcGVkRGF0
YSkgfX07CiB9CiAKLXN0YXRpYyBSZWY8QVBJOjpDb250ZW50UnVsZUxpc3Q+IGNyZWF0ZUV4dGVu
c2lvbihjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRpZmllciwgY29uc3QgQ29udGVudFJ1bGVMaXN0
TWV0YURhdGEmIG1ldGFEYXRhLCBjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSYgZmls
ZURhdGEpCitzdGF0aWMgUmVmPEFQSTo6Q29udGVudFJ1bGVMaXN0PiBjcmVhdGVFeHRlbnNpb24o
Y29uc3QgV1RGOjpTdHJpbmcmIGlkZW50aWZpZXIsIE1hcHBlZE9yQ29waWVkRGF0YSYmIGRhdGEp
CiB7Ci0gICAgLy8gQ29udGVudCBleHRlbnNpb25zIGFyZSBhbHdheXMgY29tcGlsZWQgdG8gZmls
ZXMsIGFuZCBhdCB0aGlzIHBvaW50IHRoZSBmaWxlCi0gICAgLy8gaGFzIGJlZW4gYWxyZWFkeSBt
YXBwZWQsIHRoZXJlZm9yZSB0cnlDcmVhdGVTaGFyZWRNZW1vcnkoKSBjYW5ub3QgZmFpbC4KLSAg
ICBhdXRvIHNoYXJlZE1lbW9yeSA9IGZpbGVEYXRhLnRyeUNyZWF0ZVNoYXJlZE1lbW9yeSgpOwot
ICAgIEFTU0VSVChzaGFyZWRNZW1vcnkpOworICAgIFJlZlB0cjxXZWJLaXQ6OlNoYXJlZE1lbW9y
eT4gc2hhcmVkTWVtb3J5OworICAgIGlmIChhdXRvIG1hcHBlZEZpbGVEYXRhID0gV1RGOjpnZXRf
aWY8V2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGE+KGRhdGEuZGF0YSkpIHsKKyAgICAgICAgc2hh
cmVkTWVtb3J5ID0gbWFwcGVkRmlsZURhdGEtPnRyeUNyZWF0ZVNoYXJlZE1lbW9yeSgpOworCisg
ICAgICAgIC8vIENvbnRlbnQgZXh0ZW5zaW9ucyBhcmUgYWx3YXlzIGNvbXBpbGVkIHRvIGZpbGVz
LCBhbmQgYXQgdGhpcyBwb2ludCB0aGUgZmlsZQorICAgICAgICAvLyBoYXMgYmVlbiBhbHJlYWR5
IG1hcHBlZCwgdGhlcmVmb3JlIHRyeUNyZWF0ZVNoYXJlZE1lbW9yeSgpIGNhbm5vdCBmYWlsLgor
ICAgICAgICBBU1NFUlQoc2hhcmVkTWVtb3J5KTsKKyAgICB9CisgICAgYXV0byBtYXBwZWRPckNv
cGllZEZpbGVEYXRhID0gc2hhcmVkTWVtb3J5ID8KKyAgICAgICAgVmFyaWFudDxSZWZQdHI8V2Vi
S2l0OjpTaGFyZWRNZW1vcnk+LCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPj4geyBzaGFy
ZWRNZW1vcnkgfQorICAgICAgICA6IFZhcmlhbnQ8UmVmUHRyPFdlYktpdDo6U2hhcmVkTWVtb3J5
PiwgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4+IHsgV1RGTW92ZShXVEY6OmdldDxSZWZQ
dHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPj4oZGF0YS5kYXRhKSkgfTsKIAotICAgIGNvbnN0IHNp
emVfdCBoZWFkZXJBbmRTb3VyY2VTaXplID0gQ29udGVudFJ1bGVMaXN0RmlsZUhlYWRlclNpemUg
KyBtZXRhRGF0YS5zb3VyY2VTaXplOworICAgIGNvbnN0IHNpemVfdCBoZWFkZXJBbmRTb3VyY2VT
aXplID0gQ29udGVudFJ1bGVMaXN0RmlsZUhlYWRlclNpemUgKyBkYXRhLm1ldGFEYXRhLnNvdXJj
ZVNpemU7CiAgICAgYXV0byBjb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEgPSBXZWJLaXQ6Oldl
YkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSgKLSAgICAgICAgV1RGTW92ZShzaGFyZWRNZW1v
cnkpLAotICAgICAgICBmaWxlRGF0YSwKKyAgICAgICAgV1RGTW92ZShtYXBwZWRPckNvcGllZEZp
bGVEYXRhKSwKKyAgICAgICAgV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxXZWJLaXQ6Ok5ldHdvcmtD
YWNoZTo6RGF0YT4oZGF0YS5kYXRhKSA/IFdURjo6Z2V0PFdlYktpdDo6TmV0d29ya0NhY2hlOjpE
YXRhPihkYXRhLmRhdGEpIDogV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGEgeyB9LAogICAgICAg
ICBDb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW5PZmZzZXQsCiAgICAgICAgIGhlYWRlckFuZFNv
dXJjZVNpemUsCi0gICAgICAgIG1ldGFEYXRhLmFjdGlvbnNTaXplLAorICAgICAgICBkYXRhLm1l
dGFEYXRhLmFjdGlvbnNTaXplLAogICAgICAgICBoZWFkZXJBbmRTb3VyY2VTaXplCi0gICAgICAg
ICAgICArIG1ldGFEYXRhLmFjdGlvbnNTaXplLAotICAgICAgICBtZXRhRGF0YS5maWx0ZXJzV2l0
aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUsCisgICAgICAgICAgICArIGRhdGEubWV0YURhdGEu
YWN0aW9uc1NpemUsCisgICAgICAgIGRhdGEubWV0YURhdGEuZmlsdGVyc1dpdGhvdXRDb25kaXRp
b25zQnl0ZWNvZGVTaXplLAogICAgICAgICBoZWFkZXJBbmRTb3VyY2VTaXplCi0gICAgICAgICAg
ICArIG1ldGFEYXRhLmFjdGlvbnNTaXplCi0gICAgICAgICAgICArIG1ldGFEYXRhLmZpbHRlcnNX
aXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZSwKLSAgICAgICAgbWV0YURhdGEuZmlsdGVyc1dp
dGhDb25kaXRpb25zQnl0ZWNvZGVTaXplLAorICAgICAgICAgICAgKyBkYXRhLm1ldGFEYXRhLmFj
dGlvbnNTaXplCisgICAgICAgICAgICArIGRhdGEubWV0YURhdGEuZmlsdGVyc1dpdGhvdXRDb25k
aXRpb25zQnl0ZWNvZGVTaXplLAorICAgICAgICBkYXRhLm1ldGFEYXRhLmZpbHRlcnNXaXRoQ29u
ZGl0aW9uc0J5dGVjb2RlU2l6ZSwKICAgICAgICAgaGVhZGVyQW5kU291cmNlU2l6ZQotICAgICAg
ICAgICAgKyBtZXRhRGF0YS5hY3Rpb25zU2l6ZQotICAgICAgICAgICAgKyBtZXRhRGF0YS5maWx0
ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUKLSAgICAgICAgICAgICsgbWV0YURhdGEu
ZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplLAotICAgICAgICBtZXRhRGF0YS5jb25k
aXRpb25lZEZpbHRlcnNCeXRlY29kZVNpemUKKyAgICAgICAgICAgICsgZGF0YS5tZXRhRGF0YS5h
Y3Rpb25zU2l6ZQorICAgICAgICAgICAgKyBkYXRhLm1ldGFEYXRhLmZpbHRlcnNXaXRob3V0Q29u
ZGl0aW9uc0J5dGVjb2RlU2l6ZQorICAgICAgICAgICAgKyBkYXRhLm1ldGFEYXRhLmZpbHRlcnNX
aXRoQ29uZGl0aW9uc0J5dGVjb2RlU2l6ZSwKKyAgICAgICAgZGF0YS5tZXRhRGF0YS5jb25kaXRp
b25lZEZpbHRlcnNCeXRlY29kZVNpemUKICAgICApOwogICAgIGF1dG8gY29tcGlsZWRDb250ZW50
UnVsZUxpc3QgPSBXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0OjpjcmVhdGUoV1RG
TW92ZShjb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEpKTsKICAgICByZXR1cm4gQVBJOjpDb250
ZW50UnVsZUxpc3Q6OmNyZWF0ZShpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBpbGVkQ29udGVudFJ1
bGVMaXN0KSk7CkBAIC00MDQsMjQgKzQ2NSwyMyBAQCB2b2lkIENvbnRlbnRSdWxlTGlzdFN0b3Jl
Ojpsb29rdXBDb250ZW50CiAgICAgbV9yZWFkUXVldWUtPmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlz
ID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBpZGVudGlmaWVyLmlzb2xhdGVkQ29weSgp
LCBzdG9yZVBhdGggPSBtX3N0b3JlUGF0aC5pc29sYXRlZENvcHkoKSwgbGVnYWN5RmlsZW5hbWUg
PSBtX2xlZ2FjeUZpbGVuYW1lLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXSgpIG11dGFibGUgewogICAgICAgICBhdXRvIHBhdGggPSBjb25zdHJ1Y3RlZFBh
dGgoc3RvcmVQYXRoLCBpZGVudGlmaWVyLCBsZWdhY3lGaWxlbmFtZSk7CiAgICAgICAgIAotICAg
ICAgICBDb250ZW50UnVsZUxpc3RNZXRhRGF0YSBtZXRhRGF0YTsKLSAgICAgICAgV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OkRhdGEgZmlsZURhdGE7Ci0gICAgICAgIGlmICghb3BlbkFuZE1hcENvbnRl
bnRSdWxlTGlzdChwYXRoLCBtZXRhRGF0YSwgZmlsZURhdGEpKSB7CisgICAgICAgIGF1dG8gY29u
dGVudFJ1bGVMaXN0ID0gb3BlbkFuZE1hcE9yQ29weUNvbnRlbnRSdWxlTGlzdChwYXRoKTsKKyAg
ICAgICAgaWYgKCFjb250ZW50UnVsZUxpc3QpIHsKICAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4o
KS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewog
ICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIsIEVycm9yOjpMb29rdXBG
YWlsZWQpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICAgICAgCi0gICAgICAgIGlmIChtZXRhRGF0YS52ZXJzaW9uICE9IENvbnRlbnRSdWxlTGlz
dFN0b3JlOjpDdXJyZW50Q29udGVudFJ1bGVMaXN0RmlsZVZlcnNpb24pIHsKKyAgICAgICAgaWYg
KGNvbnRlbnRSdWxlTGlzdC0+bWV0YURhdGEudmVyc2lvbiAhPSBDb250ZW50UnVsZUxpc3RTdG9y
ZTo6Q3VycmVudENvbnRlbnRSdWxlTGlzdEZpbGVWZXJzaW9uKSB7CiAgICAgICAgICAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRo
aXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBt
dXRhYmxlIHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihudWxscHRyLCBFcnJv
cjo6VmVyc2lvbk1pc21hdGNoKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2go
W3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBpZGVudGlmaWVyID0gaWRl
bnRpZmllci5pc29sYXRlZENvcHkoKSwgZmlsZURhdGEgPSBXVEZNb3ZlKGZpbGVEYXRhKSwgbWV0
YURhdGEgPSBXVEZNb3ZlKG1ldGFEYXRhKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihjcmVhdGVFeHRlbnNpb24oaWRlbnRpZmllciwgbWV0YURhdGEsIGZpbGVEYXRhKSwgeyB9
KTsKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gV1RG
TW92ZShwcm90ZWN0ZWRUaGlzKSwgaWRlbnRpZmllciA9IGlkZW50aWZpZXIuaXNvbGF0ZWRDb3B5
KCksIGNvbnRlbnRSdWxlTGlzdCA9IFdURk1vdmUoKmNvbnRlbnRSdWxlTGlzdCksIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgeworICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoY3JlYXRlRXh0ZW5zaW9uKGlkZW50aWZpZXIsIFdU
Rk1vdmUoY29udGVudFJ1bGVMaXN0KSksIHsgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfQpA
QCAtNDU1LDE5ICs1MTUsMTcgQEAgdm9pZCBDb250ZW50UnVsZUxpc3RTdG9yZTo6Y29tcGlsZUNv
bnRlbgogICAgIG1fY29tcGlsZVF1ZXVlLT5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBpZGVudGlmaWVyID0gaWRlbnRpZmllci5pc29sYXRlZENvcHkoKSwgbGVnYWN5
RmlsZW5hbWUgPSBtX2xlZ2FjeUZpbGVuYW1lLCBqc29uID0ganNvbi5pc29sYXRlZENvcHkoKSwg
cGFyc2VkUnVsZXMgPSBwYXJzZWRSdWxlcy52YWx1ZSgpLmlzb2xhdGVkQ29weSgpLCBzdG9yZVBh
dGggPSBtX3N0b3JlUGF0aC5pc29sYXRlZENvcHkoKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gcGF0aCA9
IGNvbnN0cnVjdGVkUGF0aChzdG9yZVBhdGgsIGlkZW50aWZpZXIsIGxlZ2FjeUZpbGVuYW1lKTsK
IAotICAgICAgICBDb250ZW50UnVsZUxpc3RNZXRhRGF0YSBtZXRhRGF0YTsKLSAgICAgICAgV2Vi
S2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGEgZmlsZURhdGE7Ci0gICAgICAgIGF1dG8gZXJyb3IgPSBj
b21waWxlZFRvRmlsZShXVEZNb3ZlKGpzb24pLCBXVEZNb3ZlKHBhcnNlZFJ1bGVzKSwgcGF0aCwg
bWV0YURhdGEsIGZpbGVEYXRhKTsKLSAgICAgICAgaWYgKGVycm9yKSB7Ci0gICAgICAgICAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3Rl
ZFRoaXMpLCBlcnJvciA9IFdURk1vdmUoZXJyb3IpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byByZXN1bHQg
PSBjb21waWxlZFRvRmlsZShXVEZNb3ZlKGpzb24pLCBXVEZNb3ZlKHBhcnNlZFJ1bGVzKSwgcGF0
aCk7CisgICAgICAgIGlmICghcmVzdWx0Lmhhc192YWx1ZSgpKSB7CisgICAgICAgICAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRo
aXMpLCBlcnJvciA9IFdURk1vdmUocmVzdWx0LmVycm9yKCkpLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihudWxscHRyLCBlcnJvcik7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGlkZW50aWZp
ZXIgPSBXVEZNb3ZlKGlkZW50aWZpZXIpLCBmaWxlRGF0YSA9IFdURk1vdmUoZmlsZURhdGEpLCBt
ZXRhRGF0YSA9IFdURk1vdmUobWV0YURhdGEpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFJlZlB0cjxBUEk6
OkNvbnRlbnRSdWxlTGlzdD4gY29udGVudFJ1bGVMaXN0ID0gY3JlYXRlRXh0ZW5zaW9uKGlkZW50
aWZpZXIsIG1ldGFEYXRhLCBmaWxlRGF0YSk7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihjb250ZW50UnVsZUxpc3QsIHsgfSk7CisgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRj
aChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGlkZW50aWZpZXIgPSBX
VEZNb3ZlKGlkZW50aWZpZXIpLCBkYXRhID0gV1RGTW92ZShyZXN1bHQudmFsdWUoKSksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewor
ICAgICAgICAgICAgYXV0byBjb250ZW50UnVsZUxpc3QgPSBjcmVhdGVFeHRlbnNpb24oaWRlbnRp
ZmllciwgV1RGTW92ZShkYXRhKSk7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb250
ZW50UnVsZUxpc3QucHRyKCksIHsgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfQpAQCAtNTE3
LDI5ICs1NzUsMjggQEAgdm9pZCBDb250ZW50UnVsZUxpc3RTdG9yZTo6Z2V0Q29udGVudFJ1bAog
ICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHNvdXJjZSk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfTsKLSAgICAgICAgCi0gICAgICAgIENvbnRlbnRSdWxlTGlzdE1ldGFEYXRh
IG1ldGFEYXRhOwotICAgICAgICBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSBmaWxlRGF0YTsK
LSAgICAgICAgaWYgKCFvcGVuQW5kTWFwQ29udGVudFJ1bGVMaXN0KHBhdGgsIG1ldGFEYXRhLCBm
aWxlRGF0YSkpIHsKKworICAgICAgICBhdXRvIGNvbnRlbnRSdWxlTGlzdCA9IG9wZW5BbmRNYXBP
ckNvcHlDb250ZW50UnVsZUxpc3QocGF0aCk7CisgICAgICAgIGlmICghY29udGVudFJ1bGVMaXN0
KSB7CiAgICAgICAgICAgICBjb21wbGV0ZSh7IH0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgICAgIAotICAgICAgICBzd2l0Y2ggKG1ldGFEYXRhLnZlcnNpb24pIHsKKyAg
ICAgICAgc3dpdGNoIChjb250ZW50UnVsZUxpc3QtPm1ldGFEYXRhLnZlcnNpb24pIHsKICAgICAg
ICAgY2FzZSA5OgogICAgICAgICBjYXNlIDEwOgotICAgICAgICAgICAgaWYgKCFtZXRhRGF0YS5z
b3VyY2VTaXplKSB7CisgICAgICAgICAgICBpZiAoIWNvbnRlbnRSdWxlTGlzdC0+bWV0YURhdGEu
c291cmNlU2l6ZSkgewogICAgICAgICAgICAgICAgIGNvbXBsZXRlKHsgfSk7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYm9vbCBpczhCaXQgPSBm
aWxlRGF0YS5kYXRhKClbQ29udGVudFJ1bGVMaXN0RmlsZUhlYWRlclNpemVdOworICAgICAgICAg
ICAgYm9vbCBpczhCaXQgPSBjb250ZW50UnVsZUxpc3QtPmRhdGFQb2ludGVyKClbQ29udGVudFJ1
bGVMaXN0RmlsZUhlYWRlclNpemVdOwogICAgICAgICAgICAgc2l6ZV90IHN0YXJ0ID0gQ29udGVu
dFJ1bGVMaXN0RmlsZUhlYWRlclNpemUgKyBzaXplb2YoYm9vbCk7Ci0gICAgICAgICAgICBzaXpl
X3QgbGVuZ3RoID0gbWV0YURhdGEuc291cmNlU2l6ZSAtIHNpemVvZihib29sKTsKKyAgICAgICAg
ICAgIHNpemVfdCBsZW5ndGggPSBjb250ZW50UnVsZUxpc3QtPm1ldGFEYXRhLnNvdXJjZVNpemUg
LSBzaXplb2YoYm9vbCk7CiAgICAgICAgICAgICBpZiAoaXM4Qml0KQotICAgICAgICAgICAgICAg
IGNvbXBsZXRlKFdURjo6U3RyaW5nKGZpbGVEYXRhLmRhdGEoKSArIHN0YXJ0LCBsZW5ndGgpKTsK
KyAgICAgICAgICAgICAgICBjb21wbGV0ZShXVEY6OlN0cmluZyhjb250ZW50UnVsZUxpc3QtPmRh
dGFQb2ludGVyKCkgKyBzdGFydCwgbGVuZ3RoKSk7CiAgICAgICAgICAgICBlbHNlIHsKICAgICAg
ICAgICAgICAgICBBU1NFUlQoIShsZW5ndGggJSBzaXplb2YoVUNoYXIpKSk7Ci0gICAgICAgICAg
ICAgICAgY29tcGxldGUoV1RGOjpTdHJpbmcocmVpbnRlcnByZXRfY2FzdDxjb25zdCBVQ2hhcio+
KGZpbGVEYXRhLmRhdGEoKSArIHN0YXJ0KSwgbGVuZ3RoIC8gc2l6ZW9mKFVDaGFyKSkpOworICAg
ICAgICAgICAgICAgIGNvbXBsZXRlKFdURjo6U3RyaW5nKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
VUNoYXIqPihjb250ZW50UnVsZUxpc3QtPmRhdGFQb2ludGVyKCkgKyBzdGFydCksIGxlbmd0aCAv
IHNpemVvZihVQ2hhcikpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxl
TGlzdFN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUNvbnRlbnRSdWxlTGlzdFN0b3JlLmgJKHJldmlzaW9uIDI0MjY2MykKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw2ICszMSwxMCBAQAogI2luY2x1ZGUgPHN5c3RlbV9lcnJvcj4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgU2hhcmVk
QnVmZmVyOworfQorCiBuYW1lc3BhY2UgV1RGIHsKIGNsYXNzIFdvcmtRdWV1ZTsKIH0KQEAgLTcy
LDYgKzc2LDggQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRSdWxlTGlzdFZl
cnNpb24oY29uc3QgV1RGOjpTdHJpbmcmIGlkZW50aWZpZXIpOwogICAgIHZvaWQgZ2V0Q29udGVu
dFJ1bGVMaXN0U291cmNlKGNvbnN0IFdURjo6U3RyaW5nJiBpZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFdURjo6U3RyaW5nKT4pOwogCisgICAgc3RhdGljIFJlZlB0cjxXZWJDb3Jl
OjpTaGFyZWRCdWZmZXI+IHJlYWRDb250ZW50c09mRmlsZShjb25zdCBXVEY6OlN0cmluZyYgcGF0
aCk7CisKIHByaXZhdGU6CiAgICAgV1RGOjpTdHJpbmcgZGVmYXVsdFN0b3JlUGF0aChib29sIGxl
Z2FjeUZpbGVuYW1lKTsKICAgICBzdGF0aWMgQ29udGVudFJ1bGVMaXN0U3RvcmUmIGxlZ2FjeURl
ZmF1bHRTdG9yZSgpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL0FQ
SUNvbnRlbnRSdWxlTGlzdFN0b3JlQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlQ29jb2EubW0JKHJl
dmlzaW9uIDI0MjY2MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9BUElD
b250ZW50UnVsZUxpc3RTdG9yZUNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3
IEBACiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKIAogI2luY2x1ZGUgIlNhbmRib3hV
dGlsaXRpZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogCiBuYW1lc3Bh
Y2UgQVBJIHsKIApAQCAtNjMsNiArNjQsMTUgQEAgV1RGOjpTdHJpbmcgQ29udGVudFJ1bGVMaXN0
U3RvcmU6OmRlZmF1bAogICAgIHJldHVybiBjb250ZW50UnVsZUxpc3RTdG9yZVVSTC5hYnNvbHV0
ZVVSTC5wYXRoLmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbjsKIH0KIAorUmVmUHRyPFdlYkNvcmU6
OlNoYXJlZEJ1ZmZlcj4gQ29udGVudFJ1bGVMaXN0U3RvcmU6OnJlYWRDb250ZW50c09mRmlsZShj
b25zdCBTdHJpbmcmIGZpbGVQYXRoKQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwor
ICAgIE5TRGF0YSAqZGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhDb250ZW50c09mVVJMOltOU1VSTCBm
aWxlVVJMV2l0aFBhdGg6ZmlsZVBhdGggaXNEaXJlY3Rvcnk6Tk9dXTsKKyAgICBpZiAoIWRhdGEp
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBXZWJDb3JlOjpTaGFyZWRCdWZm
ZXI6OmNyZWF0ZShkYXRhKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgQVBJCiAKICNlbmRpZiAvLyBF
TkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0U3RvcmUubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0U3RvcmUubW0JKHJl
dmlzaW9uIDI0MjY2MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Nv
bnRlbnRSdWxlTGlzdFN0b3JlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAj
aW1wb3J0ICJXS0NvbnRlbnRSdWxlTGlzdFN0b3JlSW50ZXJuYWwuaCIKIAogI2ltcG9ydCAiQVBJ
Q29udGVudFJ1bGVMaXN0U3RvcmUuaCIKKyNpbXBvcnQgIk5ldHdvcmtDYWNoZUZpbGVzeXN0ZW0u
aCIKICNpbXBvcnQgIldLRXJyb3JJbnRlcm5hbC5oIgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+
CiAjaW1wb3J0IDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTEyNSw2ICsxMjYsMTEgQEAg
LSAoQVBJOjpPYmplY3QmKV9hcGlPYmplY3QKIAogLy8gRm9yIHRlc3Rpbmcgb25seS4KIAorKyAo
dm9pZClfcmVnaXN0ZXJQYXRoQXNVbnNhZmVUb01lbW9yeU1hcEZvclRlc3Rpbmc6KE5TU3RyaW5n
ICopZmlsZW5hbWUKK3sKKyAgICBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6cmVnaXN0ZXJQYXRoQXNV
bnNhZmVUb01lbW9yeU1hcEZvclRlc3RpbmcoZmlsZW5hbWUpOworfQorCiAtICh2b2lkKV9yZW1v
dmVBbGxDb250ZW50UnVsZUxpc3RzCiB7CiAgICAgX2NvbnRlbnRSdWxlTGlzdFN0b3JlLT5zeW5j
aHJvbm91c1JlbW92ZUFsbENvbnRlbnRSdWxlTGlzdHMoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdFN0b3JlUHJpdmF0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxl
TGlzdFN0b3JlUHJpdmF0ZS5oCShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50UnVsZUxpc3RTdG9yZVByaXZhdGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogLSAodm9pZClfcmVtb3ZlQWxsQ29udGVudFJ1bGVM
aXN0czsKIC0gKHZvaWQpX2ludmFsaWRhdGVDb250ZW50UnVsZUxpc3RWZXJzaW9uRm9ySWRlbnRp
ZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyOwogLSAodm9pZClfZ2V0Q29udGVudFJ1bGVMaXN0
U291cmNlRm9ySWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyIGNvbXBsZXRpb25IYW5k
bGVyOih2b2lkICheKShOU1N0cmluZyopKWNvbXBsZXRpb25IYW5kbGVyOworKyAodm9pZClfcmVn
aXN0ZXJQYXRoQXNVbnNhZmVUb01lbW9yeU1hcEZvclRlc3Rpbmc6KE5TU3RyaW5nICopZmlsZW5h
bWU7CiAKIC8vIE5TX1JFTEVBU0VTX0FSR1VNRU5UIHRvIGtlZXAgcGVhayBtZW1vcnkgdXNhZ2Ug
bG93LgogLSAodm9pZClfY29tcGlsZUNvbnRlbnRSdWxlTGlzdEZvcklkZW50aWZpZXI6KE5TU3Ry
aW5nICopaWRlbnRpZmllciBlbmNvZGVkQ29udGVudFJ1bGVMaXN0OihOU1N0cmluZyAqKSBOU19S
RUxFQVNFU19BUkdVTUVOVCBlbmNvZGVkQ29udGVudFJ1bGVMaXN0IGNvbXBsZXRpb25IYW5kbGVy
Oih2b2lkICheKShXS0NvbnRlbnRSdWxlTGlzdCAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5k
bGVyOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250
ZW50RmlsdGVyLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tVc2VyQ29udGVudEZpbHRlci5tbQkocmV2aXNpb24gMjQyNjYzKQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVyLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Niw0ICs1Niw5IEBAIC0gKGlkKV9pbml0V2l0aFdLQ29udGVudFJ1bGVM
aXN0OihXS0NvbnQKICAgICByZXR1cm4gc2VsZjsKIH0KIAorLSAoQk9PTCl1c2VzQ29waWVkTWVt
b3J5Cit7CisgICAgcmV0dXJuIF9jb250ZW50UnVsZUxpc3QtPl9jb250ZW50UnVsZUxpc3QtPnVz
ZXNDb3BpZWRNZW1vcnkoKTsKK30KKwogQGVuZApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVyUHJpdmF0ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEZpbHRlclBy
aXZhdGUuaAkocmV2aXNpb24gMjQyNjYzKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVyUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw1ICszMCw2IEBACiBAaW50ZXJmYWNlIF9XS1VzZXJDb250ZW50RmlsdGVyIChXS1ByaXZhdGUp
CiAKIC0gKGlkKV9pbml0V2l0aFdLQ29udGVudFJ1bGVMaXN0OihXS0NvbnRlbnRSdWxlTGlzdCop
Y29udGVudFJ1bGVMaXN0IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjAp
KTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCB1c2VzQ29waWVkTWVtb3J5
OwogCiBAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2Vi
VXNlckNvbnRlbnRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcAkocmV2aXNp
b24gMjQyNjYzKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVz
ZXJDb250ZW50Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0OCwxMSArMzQ4LDEw
IEBAIHZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjpyZW1vdmVVc2UKICNlbmRpZgogCiAj
aWYgRU5BQkxFKENPTlRFTlRfRVhURU5TSU9OUykKLXZvaWQgV2ViVXNlckNvbnRlbnRDb250cm9s
bGVyOjphZGRDb250ZW50UnVsZUxpc3RzKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBX
ZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+PiYgY29udGVudFJ1bGVMaXN0cykKK3ZvaWQg
V2ViVXNlckNvbnRlbnRDb250cm9sbGVyOjphZGRDb250ZW50UnVsZUxpc3RzKFZlY3RvcjxzdGQ6
OnBhaXI8U3RyaW5nLCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+PiYmIGNvbnRlbnRS
dWxlTGlzdHMpCiB7Ci0gICAgZm9yIChjb25zdCBhdXRvJiBjb250ZW50UnVsZUxpc3QgOiBjb250
ZW50UnVsZUxpc3RzKSB7Ci0gICAgICAgIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSBj
b250ZW50UnVsZUxpc3REYXRhID0gY29udGVudFJ1bGVMaXN0LnNlY29uZDsKLSAgICAgICAgYXV0
byBjb21waWxlZENvbnRlbnRSdWxlTGlzdCA9IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0Ojpj
cmVhdGUoV1RGTW92ZShjb250ZW50UnVsZUxpc3REYXRhKSk7CisgICAgZm9yIChhdXRvJiYgY29u
dGVudFJ1bGVMaXN0IDogY29udGVudFJ1bGVMaXN0cykgeworICAgICAgICBhdXRvIGNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0ID0gV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmNyZWF0ZShXVEZN
b3ZlKGNvbnRlbnRSdWxlTGlzdC5zZWNvbmQpKTsKIAogICAgICAgICBtX2NvbnRlbnRFeHRlbnNp
b25CYWNrZW5kLmFkZENvbnRlbnRFeHRlbnNpb24oY29udGVudFJ1bGVMaXN0LmZpcnN0LCBXVEZN
b3ZlKGNvbXBpbGVkQ29udGVudFJ1bGVMaXN0KSk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29u
dGVudENvbnRyb2xsZXIuaAkocmV2aXNpb24gMjQyNjYzKQorKysgU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1VzZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFVzZXJTdHlsZVNoZWV0
cyhjb25zdCBWZWN0b3I8V2ViVXNlclN0eWxlU2hlZXREYXRhPiYpOwogICAgIHZvaWQgYWRkVXNl
clNjcmlwdE1lc3NhZ2VIYW5kbGVycyhjb25zdCBWZWN0b3I8V2ViU2NyaXB0TWVzc2FnZUhhbmRs
ZXJEYXRhPiYpOwogI2lmIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCi0gICAgdm9pZCBhZGRD
b250ZW50UnVsZUxpc3RzKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb21waWxl
ZENvbnRlbnRSdWxlTGlzdERhdGE+PiYpOworICAgIHZvaWQgYWRkQ29udGVudFJ1bGVMaXN0cyhW
ZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhPj4m
Jik7CiAjZW5kaWYKIAogcHJpdmF0ZToKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAyNDI2NjMpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjM3LDcg
KzYzNyw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBXZWJQYWcKICAgICBt
X3VzZXJDb250ZW50Q29udHJvbGxlci0+YWRkVXNlclN0eWxlU2hlZXRzKHBhcmFtZXRlcnMudXNl
clN0eWxlU2hlZXRzKTsKICAgICBtX3VzZXJDb250ZW50Q29udHJvbGxlci0+YWRkVXNlclNjcmlw
dE1lc3NhZ2VIYW5kbGVycyhwYXJhbWV0ZXJzLm1lc3NhZ2VIYW5kbGVycyk7CiAjaWYgRU5BQkxF
KENPTlRFTlRfRVhURU5TSU9OUykKLSAgICBtX3VzZXJDb250ZW50Q29udHJvbGxlci0+YWRkQ29u
dGVudFJ1bGVMaXN0cyhwYXJhbWV0ZXJzLmNvbnRlbnRSdWxlTGlzdHMpOworICAgIG1fdXNlckNv
bnRlbnRDb250cm9sbGVyLT5hZGRDb250ZW50UnVsZUxpc3RzKFdURk1vdmUocGFyYW1ldGVycy5j
b250ZW50UnVsZUxpc3RzKSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCklu
ZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiAyNDI2NzApCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxNiBAQAorMjAxOS0wMy0wOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJr
aXQub3JnPgorCisgICAgICAgIEFkZCBhIFdLQ29udGVudFJ1bGVMaXN0IHZhcmlhbnQgdGhhdCB1
c2VzIGNvcGllZCBtZW1vcnkgaW5zdGVhZCBvZiBtbWFwJ2Qgc2hhcmVkIG1lbW9yeSBmb3IgY2xh
c3MgQSBjb250YWluZXJpemVkIGFwcHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5NTUxMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDQ4NzMyNjk+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVudEV4dGVuc2lvblN0b3JlLm1tOgorICAg
ICAgICAoLVtUZXN0U2NoZW1lSGFuZGxlclN1YnJlc291cmNlU2hvdWxkQmVCbG9ja2VkIHdlYlZp
ZXc6c3RhcnRVUkxTY2hlbWVUYXNrOl0pOgorICAgICAgICAoLVtUZXN0U2NoZW1lSGFuZGxlclN1
YnJlc291cmNlU2hvdWxkQmVCbG9ja2VkIHdlYlZpZXc6c3RvcFVSTFNjaGVtZVRhc2s6XSk6Cisg
ICAgICAgIChURVNUX0YpOgorCiAyMDE5LTAzLTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIERldmljZSBPcmllbnRhdGlvbiAvIE1v
dGlvbiBwZXJtaXNzaW9uIEFQSQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS0NvbnRlbnRFeHRlbnNpb25TdG9yZS5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVudEV4dGVuc2lvblN0b3JlLm1t
CShyZXZpc2lvbiAyNDI2NjMpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1dLQ29udGVudEV4dGVuc2lvblN0b3JlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw5ICsy
OCwxNCBAQAogCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVGVzdC5o
IgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGVudFJ1
bGVMaXN0Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tDb250ZW50UnVsZUxpc3RTdG9yZVByaXZhdGUu
aD4KKyNpbXBvcnQgPFdlYktpdC9fV0tVc2VyQ29udGVudEZpbHRlclByaXZhdGUuaD4KICNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4K
KyNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CisjaW1wb3J0IDx3dGYvdGV4
dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIAogY2xhc3MgV0tDb250ZW50UnVsZUxpc3RT
dG9yZVRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CkBAIC0zNzcsMyArMzgy
LDEwMiBAQCBURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIEFkZFJlCiAgICAgW3dl
YlZpZXcgcmVsb2FkXTsKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkQWxl
cnQpOwogfQorCitAaW50ZXJmYWNlIFRlc3RTY2hlbWVIYW5kbGVyU3VicmVzb3VyY2VTaG91bGRC
ZUJsb2NrZWQgOiBOU09iamVjdCA8V0tVUkxTY2hlbWVIYW5kbGVyPgorQGVuZAorQGltcGxlbWVu
dGF0aW9uIFRlc3RTY2hlbWVIYW5kbGVyU3VicmVzb3VyY2VTaG91bGRCZUJsb2NrZWQKKy0gKHZv
aWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzdGFydFVSTFNjaGVtZVRhc2s6KGlkIDxX
S1VSTFNjaGVtZVRhc2s+KXRhc2sKK3sKKyAgICBFWFBFQ1RfVFJVRShbdGFzay5yZXF1ZXN0LlVS
TC5wYXRoIGlzRXF1YWxUb1N0cmluZzpAIi9zaG91bGRsb2FkIl0pOworICAgIFt0YXNrIGRpZFJl
Y2VpdmVSZXNwb25zZTpbW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDp0YXNrLnJl
cXVlc3QuVVJMIE1JTUVUeXBlOkAidGV4dC9odG1sIiBleHBlY3RlZENvbnRlbnRMZW5ndGg6MCB0
ZXh0RW5jb2RpbmdOYW1lOm5pbF0gYXV0b3JlbGVhc2VdXTsKKyAgICBbdGFzayBkaWRGaW5pc2hd
OworfQorLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0b3BVUkxTY2hlbWVU
YXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YXNrCit7CisgICAgRVhQRUNUX1RSVUUoZmFsc2Up
OworfQorQGVuZAorCitURVNUX0YoV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3QsIFVuc2FmZU1N
YXApCit7CisgICAgTlNTdHJpbmcgKnRlbXBEaXIgPSBbTlNUZW1wb3JhcnlEaXJlY3RvcnkoKSBz
dHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJVbnNhZmVNTWFwVGVzdCJdOworICAgIFdL
Q29udGVudFJ1bGVMaXN0U3RvcmUgKnN0b3JlID0gW1dLQ29udGVudFJ1bGVMaXN0U3RvcmUgc3Rv
cmVXaXRoVVJMOltOU1VSTCBmaWxlVVJMV2l0aFBhdGg6dGVtcERpciBpc0RpcmVjdG9yeTpZRVNd
XTsKKyAgICBOU1N0cmluZyAqaWRlbnRpZmllciA9IEAiVGVzdFJ1bGVMaXN0IjsKKyAgICBOU1N0
cmluZyAqZmlsZU5hbWUgPSBAIkNvbnRlbnRSdWxlTGlzdC1UZXN0UnVsZUxpc3QiOworICAgIE5T
U3RyaW5nICpmaWxlUGF0aCA9IFt0ZW1wRGlyIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVu
dDpmaWxlTmFtZV07CisgICAgTlNTdHJpbmcgKnJ1bGVMaXN0U291cmNlU3RyaW5nID0gQCJbe1wi
YWN0aW9uXCI6e1widHlwZVwiOlwiYmxvY2tcIn0sXCJ0cmlnZ2VyXCI6e1widXJsLWZpbHRlclwi
OlwiYmxvY2tlZHN1YnJlc291cmNlXCJ9fV0iOworCisgICAgYXV0byBydW5UZXN0ID0gWyZdIChi
b29sIHNob3VsZFVzZUNvcGllZE1lbW9yeSkgeworICAgICAgICBFWFBFQ1RfRkFMU0UoW1tOU0Zp
bGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmZpbGVQYXRoXSk7Cisg
ICAgICAgIAorICAgICAgICBfX2Jsb2NrIGJvb2wgZG9uZUNvbXBpbGluZyA9IGZhbHNlOworICAg
ICAgICBfX2Jsb2NrIFJldGFpblB0cjxXS0NvbnRlbnRSdWxlTGlzdD4gcnVsZUxpc3Q7CisgICAg
ICAgIFtzdG9yZSBjb21waWxlQ29udGVudFJ1bGVMaXN0Rm9ySWRlbnRpZmllcjppZGVudGlmaWVy
IGVuY29kZWRDb250ZW50UnVsZUxpc3Q6cnVsZUxpc3RTb3VyY2VTdHJpbmcgY29tcGxldGlvbkhh
bmRsZXI6XihXS0NvbnRlbnRSdWxlTGlzdCAqZmlsdGVyLCBOU0Vycm9yICplcnJvcikgeworICAg
ICAgICAgICAgRVhQRUNUX05PVF9OVUxMKGZpbHRlcik7CisgICAgICAgICAgICBFWFBFQ1RfTlVM
TChlcnJvcik7CisgICAgICAgICAgICBkb25lQ29tcGlsaW5nID0gdHJ1ZTsKKyAgICAgICAgICAg
IHJ1bGVMaXN0ID0gZmlsdGVyOworICAgICAgICAgICAgRVhQRUNUX1RSVUUoW1tbW19XS1VzZXJD
b250ZW50RmlsdGVyIGFsbG9jXSBfaW5pdFdpdGhXS0NvbnRlbnRSdWxlTGlzdDpmaWx0ZXJdIGF1
dG9yZWxlYXNlXSB1c2VzQ29waWVkTWVtb3J5XSA9PSBzaG91bGRVc2VDb3BpZWRNZW1vcnkpOwor
ICAgICAgICB9XTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ29tcGls
aW5nKTsKKyAgICAgICAgCisgICAgICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBkZWZh
dWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpmaWxlUGF0aF0pOworCisgICAgICAgIGF1dG8g
aGFuZGxlciA9IGFkb3B0TlMoW1Rlc3RTY2hlbWVIYW5kbGVyU3VicmVzb3VyY2VTaG91bGRCZUJs
b2NrZWQgbmV3XSk7CisgICAgICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNj
aGVtZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBmb3JVUkxTY2hlbWU6QCJ0ZXN0bW1hcCJdOworICAg
ICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRDb250ZW50UnVs
ZUxpc3Q6cnVsZUxpc3QuZ2V0KCldOworICAgICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
VGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwg
NjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICAgICAgW3dlYlZp
ZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOkAiPGh0bWw+bWFpbiByZXNvdXJjZSBjb250
ZW50PC9odG1sPiIgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3RtbWFwOi8vd2Vi
a2l0Lm9yZy9tYWlucmVzb3VyY2UiXV07CisKKyAgICAgICAgYXV0byBsb2FkaW5nU2hvdWxkU3Vj
Y2VlZCA9IFsmXSAoTlNTdHJpbmcgKnJlc291cmNlUGF0aCwgTlNTdHJpbmcgKnNob3VsZFN1Y2Nl
ZWQpIHsKKyAgICAgICAgICAgIF9fYmxvY2sgYm9vbCBkb25lRXZhbHVhdGluZyA9IGZhbHNlOwor
ICAgICAgICAgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OltOU1N0cmluZyBzdHJpbmdX
aXRoRm9ybWF0OkAidmFyIGNhdWdodCA9IGZhbHNlOyB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1
ZXN0KCk7IHhoci5vcGVuKCdHRVQnLCAnJUAnLCBmYWxzZSk7IHRyeXsgeGhyLnNlbmQoKSB9IGNh
dGNoKGUpIHsgY2F1Z2h0ID0gdHJ1ZTsgfTsgY2F1Z2h0ICE9ICVAID8gJ3N1Y2Nlc3MnIDogJ2Zh
aWx1cmUnIiwgcmVzb3VyY2VQYXRoLCBzaG91bGRTdWNjZWVkXSBjb21wbGV0aW9uSGFuZGxlcjpe
KGlkIHJlc3VsdCwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgICAgICAgICBFWFBFQ1RfTlVM
TChlcnJvcik7CisgICAgICAgICAgICAgICAgRVhQRUNUX1RSVUUoW0Aic3VjY2VzcyIgaXNFcXVh
bFRvU3RyaW5nOnJlc3VsdF0pOworICAgICAgICAgICAgICAgIGRvbmVFdmFsdWF0aW5nID0gdHJ1
ZTsKKyAgICAgICAgICAgIH1dOworICAgICAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lRXZhbHVhdGluZyk7CisgICAgICAgIH07CisgICAgICAgIGxvYWRpbmdTaG91bGRTdWNj
ZWVkKEAiL3Nob3VsZGxvYWQiLCBAInRydWUiKTsKKyAgICAgICAgbG9hZGluZ1Nob3VsZFN1Y2Nl
ZWQoQCIvYmxvY2tlZHN1YnJlc291cmNlIiwgQCJmYWxzZSIpOworCisgICAgICAgIFtbY29uZmln
dXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIHJlbW92ZUNvbnRlbnRSdWxlTGlzdDpydWxl
TGlzdC5nZXQoKV07CisgICAgICAgIAorICAgICAgICBfX2Jsb2NrIGJvb2wgZG9uZUxvb2tpbmdV
cCA9IGZhbHNlOworICAgICAgICBbc3RvcmUgbG9va1VwQ29udGVudFJ1bGVMaXN0Rm9ySWRlbnRp
ZmllcjppZGVudGlmaWVyIGNvbXBsZXRpb25IYW5kbGVyOl4oV0tDb250ZW50UnVsZUxpc3QgKmZp
bHRlciwgTlNFcnJvciAqZXJyb3IpIHsKKyAgICAgICAgICAgIEVYUEVDVF9OT1RfTlVMTChmaWx0
ZXIpOworICAgICAgICAgICAgRVhQRUNUX05VTEwoZXJyb3IpOworICAgICAgICAgICAgCisgICAg
ICAgICAgICBkb25lTG9va2luZ1VwID0gdHJ1ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
RVhQRUNUX1RSVUUoW1tbW19XS1VzZXJDb250ZW50RmlsdGVyIGFsbG9jXSBfaW5pdFdpdGhXS0Nv
bnRlbnRSdWxlTGlzdDpmaWx0ZXJdIGF1dG9yZWxlYXNlXSB1c2VzQ29waWVkTWVtb3J5XSA9PSBz
aG91bGRVc2VDb3BpZWRNZW1vcnkpOworICAgICAgICAgICAgcnVsZUxpc3QgPSBmaWx0ZXI7Cisg
ICAgICAgIH1dOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVMb29raW5n
VXApOworCisgICAgICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFk
ZENvbnRlbnRSdWxlTGlzdDpydWxlTGlzdC5nZXQoKV07CisgICAgICAgIGxvYWRpbmdTaG91bGRT
dWNjZWVkKEAiL3Nob3VsZGxvYWQiLCBAInRydWUiKTsKKyAgICAgICAgbG9hZGluZ1Nob3VsZFN1
Y2NlZWQoQCIvYmxvY2tlZHN1YnJlc291cmNlIiwgQCJmYWxzZSIpOworCisgICAgICAgIF9fYmxv
Y2sgYm9vbCBkb25lQ2hlY2tpbmdTb3VyY2UgPSBmYWxzZTsKKyAgICAgICAgW3N0b3JlIF9nZXRD
b250ZW50UnVsZUxpc3RTb3VyY2VGb3JJZGVudGlmaWVyOmlkZW50aWZpZXIgY29tcGxldGlvbkhh
bmRsZXI6XihOU1N0cmluZyAqc291cmNlKSB7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRShbc291
cmNlIGlzRXF1YWxUb1N0cmluZzpydWxlTGlzdFNvdXJjZVN0cmluZ10pOworICAgICAgICAgICAg
ZG9uZUNoZWNraW5nU291cmNlID0gdHJ1ZTsKKyAgICAgICAgfV07CisgICAgICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZUNoZWNraW5nU291cmNlKTsKKyAgICAgICAgCisgICAgICAg
IF9fYmxvY2sgYm9vbCBkb25lUmVtb3ZpbmcgPSBmYWxzZTsKKyAgICAgICAgW3N0b3JlIHJlbW92
ZUNvbnRlbnRSdWxlTGlzdEZvcklkZW50aWZpZXI6aWRlbnRpZmllciBjb21wbGV0aW9uSGFuZGxl
cjpeKE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgICAgICBFWFBFQ1RfTlVMTChlcnJvcik7Cisg
ICAgICAgICAgICBkb25lUmVtb3ZpbmcgPSB0cnVlOworICAgICAgICB9XTsKKyAgICAgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lUmVtb3ZpbmcpOworCisgICAgICAgIEVYUEVDVF9G
QUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6Zmls
ZVBhdGhdKTsKKyAgICB9OworICAgIAorICAgIHJ1blRlc3QoZmFsc2UpOworICAgIFtXS0NvbnRl
bnRSdWxlTGlzdFN0b3JlIF9yZWdpc3RlclBhdGhBc1Vuc2FmZVRvTWVtb3J5TWFwRm9yVGVzdGlu
ZzpmaWxlUGF0aF07CisgICAgcnVuVGVzdCh0cnVlKTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>364274</attachid>
            <date>2019-03-11 11:50:27 -0700</date>
            <delta_ts>2019-03-11 11:50:27 -0700</delta_ts>
            <desc>crash log</desc>
            <filename>TestWebKitAPI_2019-03-11-111752_bot153.crash</filename>
            <type>text/plain</type>
            <size>72135</size>
            <attacher name="Truitt Savell">tsavell</attacher>
            
              <data encoding="base64">UHJvY2VzczogICAgICAgICAgICAgICBUZXN0V2ViS2l0QVBJIFsyMjMxOF0KUGF0aDogICAgICAg
ICAgICAgICAgICAvVm9sdW1lcy9WT0xVTUUvKi9UZXN0V2ViS2l0QVBJCklkZW50aWZpZXI6ICAg
ICAgICAgICAgVGVzdFdlYktpdEFQSQpWZXJzaW9uOiAgICAgICAgICAgICAgIDAKQ29kZSBUeXBl
OiAgICAgICAgICAgICBYODYtNjQgKE5hdGl2ZSkKUGFyZW50IFByb2Nlc3M6ICAgICAgICBQeXRo
b24gWzIwNDQ4XQpSZXNwb25zaWJsZTogICAgICAgICAgIFRlc3RXZWJLaXRBUEkgWzIyMzE4XQpV
c2VyIElEOiAgICAgICAgICAgICAgIDUwMQoKRGF0ZS9UaW1lOiAgICAgICAgICAgICAyMDE5LTAz
LTExIDExOjE3OjQ4LjEyNiAtMDcwMApPUyBWZXJzaW9uOiAgICAgICAgICAgIE1hYyBPUyBYIDEw
LjEzLjQgKDE3RTE5OSkKUmVwb3J0IFZlcnNpb246ICAgICAgICAxMgpBbm9ueW1vdXMgVVVJRDog
ICAgICAgIEE5QjJBNTk5LTM1RjYtNzVDQy1DRjA0LTU4MDg3RTNCM0NFNgoKClRpbWUgQXdha2Ug
U2luY2UgQm9vdDogMTUwMDAwMCBzZWNvbmRzCgpTeXN0ZW0gSW50ZWdyaXR5IFByb3RlY3Rpb246
IGVuYWJsZWQKCkNyYXNoZWQgVGhyZWFkOiAgICAgICAgMCAgRGlzcGF0Y2ggcXVldWU6IGNvbS5h
cHBsZS5tYWluLXRocmVhZAoKRXhjZXB0aW9uIFR5cGU6ICAgICAgICBFWENfQkFEX0FDQ0VTUyAo
U0lHU0VHVikKRXhjZXB0aW9uIENvZGVzOiAgICAgICBLRVJOX0lOVkFMSURfQUREUkVTUyBhdCAw
eDAwMDAwMDJmMDA3MzAwNzAKRXhjZXB0aW9uIE5vdGU6ICAgICAgICBFWENfQ09SUFNFX05PVElG
WQoKVGVybWluYXRpb24gU2lnbmFsOiAgICBTZWdtZW50YXRpb24gZmF1bHQ6IDExClRlcm1pbmF0
aW9uIFJlYXNvbjogICAgTmFtZXNwYWNlIFNJR05BTCwgQ29kZSAweGIKVGVybWluYXRpbmcgUHJv
Y2VzczogICBleGMgaGFuZGxlciBbMF0KClZNIFJlZ2lvbnMgTmVhciAweDJmMDA3MzAwNzA6CiAg
ICBfX0xJTktFRElUICAgICAgICAgICAgIDAwMDAwMDAxMzEyMGEwMDAtMDAwMDAwMDEzMTNhYjAw
MCBbIDE2NjhLXSByLS0vcnd4IFNNPUNPVyAgL1N5c3RlbS9MaWJyYXJ5L0V4dGVuc2lvbnMvQXBw
bGVJbnRlbEhENDAwMEdyYXBoaWNzR0xEcml2ZXIuYnVuZGxlL0NvbnRlbnRzL01hY09TL0FwcGxl
SW50ZWxIRDQwMDBHcmFwaGljc0dMRHJpdmVyCi0tPiAKICAgIEpTIEpJVCBnZW5lcmF0ZWQgY29k
ZSAgMDAwMDAyZDRhYmE2MzAwMC0wMDAwMDJkNGFiYTY0MDAwIFsgICAgNEtdIC0tLS9yd3ggU009
TlVMICAKClRocmVhZCAwIENyYXNoZWQ6OiBEaXNwYXRjaCBxdWV1ZTogY29tLmFwcGxlLm1haW4t
dGhyZWFkCjAgICBsaWJvYmpjLkEuZHlsaWIgICAgICAgICAgICAgICAJMHgwMDAwN2ZmZjVmN2Nk
YjdiIHJlYWxpemVDbGFzcyhvYmpjX2NsYXNzKikgKyA0NQoxICAgbGlib2JqYy5BLmR5bGliICAg
ICAgICAgICAgICAgCTB4MDAwMDdmZmY1ZjdjZGM1MSByZWFsaXplQ2xhc3Mob2JqY19jbGFzcyop
ICsgMjU5CjIgICBsaWJvYmpjLkEuZHlsaWIgICAgICAgICAgICAgICAJMHgwMDAwN2ZmZjVmN2Qx
MDlhIF9jbGFzc19nZXROb25NZXRhQ2xhc3MgKyAxMjcKMyAgIGxpYm9iamMuQS5keWxpYiAgICAg
ICAgICAgICAgIAkweDAwMDA3ZmZmNWY3ZDBlODMgbG9va1VwSW1wT3JGb3J3YXJkICsgMjIwCjQg
ICBsaWJvYmpjLkEuZHlsaWIgICAgICAgICAgICAgICAJMHgwMDAwN2ZmZjVmN2QwOTE0IF9vYmpj
X21zZ1NlbmRfdW5jYWNoZWQgKyA2OAo1ICAgbGlic3lzdGVtX2Jsb2Nrcy5keWxpYiAgICAgICAg
CTB4MDAwMDdmZmY2MDQ0MmJhYiBfQmxvY2tfb2JqZWN0X2Fzc2lnbiArIDIwNwo2ICAgVGVzdFdl
YktpdEFQSSAgICAgICAgICAgICAgICAgCTB4MDAwMDAwMDEwZTRiMjJiYiBfX2NvcHlfaGVscGVy
X2Jsb2NrXy4zOTkgKyA1OSAoV0tDb250ZW50RXh0ZW5zaW9uU3RvcmUubW06NDY0KQo3ICAgbGli
c3lzdGVtX2Jsb2Nrcy5keWxpYiAgICAgICAgCTB4MDAwMDdmZmY2MDQ0MjhmMCBfQmxvY2tfY29w
eSArIDExMwo4ICAgY29tLmFwcGxlLldlYktpdCAgICAgICAgICAgICAgCTB4MDAwMDAwMDExNGI4
ODlhYyAtW1dLQ29udGVudFJ1bGVMaXN0U3RvcmUoV0tQcml2YXRlKSBfZ2V0Q29udGVudFJ1bGVM
aXN0U291cmNlRm9ySWRlbnRpZmllcjpjb21wbGV0aW9uSGFuZGxlcjpdICsgNDQgKFdLQ29udGVu
dFJ1bGVMaXN0U3RvcmUubW06MTQ2KQo5ICAgVGVzdFdlYktpdEFQSSAgICAgICAgICAgICAgICAg
CTB4MDAwMDAwMDEwZTRhZWViZCBXS0NvbnRlbnRSdWxlTGlzdFN0b3JlVGVzdF9VbnNhZmVNTWFw
X1Rlc3Q6OlRlc3RCb2R5KCk6OiRfMDo6b3BlcmF0b3IoKShib29sKSBjb25zdCArIDM0NjkgKFdL
Q29udGVudEV4dGVuc2lvblN0b3JlLm1tOjQ2NCkKMTAgIFRlc3RXZWJLaXRBUEkgICAgICAgICAg
ICAgICAgIAkweDAwMDAwMDAxMGU0YWUwZjQgV0tDb250ZW50UnVsZUxpc3RTdG9yZVRlc3RfVW5z
YWZlTU1hcF9UZXN0OjpUZXN0Qm9keSgpICsgMjQ0IChXS0NvbnRlbnRFeHRlbnNpb25TdG9yZS5t
bTo0ODEpCjExICBUZXN0V2ViS2l0QVBJICAgICAgICAgICAgICAgICAJMHgwMDAwMDAwMTBlNWM4
MjNlIHZvaWQgdGVzdGluZzo6aW50ZXJuYWw6OkhhbmRsZVNlaEV4Y2VwdGlvbnNJbk1ldGhvZElm
U3VwcG9ydGVkPHRlc3Rpbmc6OlRlc3QsIHZvaWQ+KHRlc3Rpbmc6OlRlc3QqLCB2b2lkICh0ZXN0
aW5nOjpUZXN0OjoqKSgpLCBjaGFyIGNvbnN0KikgKyAxMjYgKGd0ZXN0LmNjOjI0NDMpCjEyICBU
ZXN0V2ViS2l0QVBJICAgICAgICAgICAgICAgICAJMHgwMDAwMDAwMTBlNTZmMTdiIHZvaWQgdGVz
dGluZzo6aW50ZXJuYWw6OkhhbmRsZUV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9ydGVkPHRlc3Rp
bmc6OlRlc3QsIHZvaWQ+KHRlc3Rpbmc6OlRlc3QqLCB2b2lkICh0ZXN0aW5nOjpUZXN0OjoqKSgp
LCBjaGFyIGNvbnN0KikgKyAxMjMgKGd0ZXN0LmNjOjI0NzkpCjEzICBUZXN0V2ViS2l0QVBJICAg
ICAgICAgICAgICAgICAJMHgwMDAwMDAwMTBlNTZmMGE2IHRlc3Rpbmc6OlRlc3Q6OlJ1bigpICsg
MTk4CjE0ICBUZXN0V2ViS2l0QVBJICAgICAgICAgICAgICAgICAJMHgwMDAwMDAwMTBlNTcwZDMy
IHRlc3Rpbmc6OlRlc3RJbmZvOjpSdW4oKSArIDIxMAoxNSAgVGVzdFdlYktpdEFQSSAgICAgICAg
ICAgICAgICAgCTB4MDAwMDAwMDEwZTU3MjNiYyB0ZXN0aW5nOjpUZXN0Q2FzZTo6UnVuKCkgKyAy
MzYgKGd0ZXN0LmNjOjI4MTApCjE2ICBUZXN0V2ViS2l0QVBJICAgICAgICAgICAgICAgICAJMHgw
MDAwMDAwMTBlNThiZjE1IHRlc3Rpbmc6OmludGVybmFsOjpVbml0VGVzdEltcGw6OlJ1bkFsbFRl
c3RzKCkgKyA4NjkgKGd0ZXN0LmNjOjUxNzYpCjE3ICBUZXN0V2ViS2l0QVBJICAgICAgICAgICAg
ICAgICAJMHgwMDAwMDAwMTBlNWNjNDRlIGJvb2wgdGVzdGluZzo6aW50ZXJuYWw6OkhhbmRsZVNl
aEV4Y2VwdGlvbnNJbk1ldGhvZElmU3VwcG9ydGVkPHRlc3Rpbmc6OmludGVybmFsOjpVbml0VGVz
dEltcGwsIGJvb2w+KHRlc3Rpbmc6OmludGVybmFsOjpVbml0VGVzdEltcGwqLCBib29sICh0ZXN0
aW5nOjppbnRlcm5hbDo6VW5pdFRlc3RJbXBsOjoqKSgpLCBjaGFyIGNvbnN0KikgKyAxMjYgKGd0
ZXN0LmNjOjI0NDMpCjE4ICBUZXN0V2ViS2l0QVBJICAgICAgICAgICAgICAgICAJMHgwMDAwMDAw
MTBlNThiOTNiIGJvb2wgdGVzdGluZzo6aW50ZXJuYWw6OkhhbmRsZUV4Y2VwdGlvbnNJbk1ldGhv
ZElmU3VwcG9ydGVkPHRlc3Rpbmc6OmludGVybmFsOjpVbml0VGVzdEltcGwsIGJvb2w+KHRlc3Rp
bmc6OmludGVybmFsOjpVbml0VGVzdEltcGwqLCBib29sICh0ZXN0aW5nOjppbnRlcm5hbDo6VW5p
dFRlc3RJbXBsOjoqKSgpLCBjaGFyIGNvbnN0KikgKyAxMjMgKGd0ZXN0LmNjOjI0NzkpCjE5ICBU
ZXN0V2ViS2l0QVBJICAgICAgICAgICAgICAgICAJMHgwMDAwMDAwMTBlNThiN2ZjIHRlc3Rpbmc6
OlVuaXRUZXN0OjpSdW4oKSArIDQxMiAoZ3Rlc3QuY2M6NDc4NikKMjAgIFRlc3RXZWJLaXRBUEkg
ICAgICAgICAgICAgICAgIAkweDAwMDAwMDAxMGUzODZiMjEgUlVOX0FMTF9URVNUUygpICsgMTcg
KGd0ZXN0Lmg6MjM0MSkKMjEgIFRlc3RXZWJLaXRBUEkgICAgICAgICAgICAgICAgIAkweDAwMDAw
MDAxMGUzODZhYjQgVGVzdFdlYktpdEFQSTo6VGVzdHNDb250cm9sbGVyOjpydW4oaW50LCBjaGFy
KiopICsgMTY0IChUZXN0c0NvbnRyb2xsZXIuY3BwOjg2KQoyMiAgVGVzdFdlYktpdEFQSSAgICAg
ICAgICAgICAgICAgCTB4MDAwMDAwMDEwZTUyODUyZiBtYWluICsgNDQ3IChtYWluTWFjLm1tOjUy
KQoyMyAgbGliZHlsZC5keWxpYiAgICAgICAgICAgICAgICAgCTB4MDAwMDdmZmY2MDNmNDAxNSBz
dGFydCArIDEKClRocmVhZCAxOgowICAgbGlic3lzdGVtX2tlcm5lbC5keWxpYiAgICAgICAgCTB4
MDAwMDdmZmY2MDU0NTI5MiBfX3dvcmtxX2tlcm5yZXR1cm4gKyAxMAoxICAgbGlic3lzdGVtX3B0
aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDdmZmY2MDcwYzAwOSBfcHRocmVhZF93cXRocmVhZCAr
IDEwMzUKMiAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDA3ZmZmNjA3MGJi
ZTkgc3RhcnRfd3F0aHJlYWQgKyAxMwoKVGhyZWFkIDI6CjAgICBsaWJzeXN0ZW1fa2VybmVsLmR5
bGliICAgICAgICAJMHgwMDAwN2ZmZjYwNTQ1MjkyIF9fd29ya3Ffa2VybnJldHVybiArIDEwCjEg
ICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZjYwNzBjMDA5IF9wdGhy
ZWFkX3dxdGhyZWFkICsgMTAzNQoyICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4
MDAwMDdmZmY2MDcwYmJlOSBzdGFydF93cXRocmVhZCArIDEzCgpUaHJlYWQgMzo6IEphdmFTY3Jp
cHRDb3JlIGJtYWxsb2Mgc2NhdmVuZ2VyCjAgICBsaWJzeXN0ZW1fa2VybmVsLmR5bGliICAgICAg
ICAJMHgwMDAwN2ZmZjYwNTQ0YTFlIF9fcHN5bmNoX2N2d2FpdCArIDEwCjEgICBsaWJzeXN0ZW1f
cHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZjYwNzBkNTg5IF9wdGhyZWFkX2NvbmRfd2Fp
dCArIDczMgoyICAgbGliYysrLjEuZHlsaWIgICAgICAgICAgICAgICAgCTB4MDAwMDdmZmY1ZTM1
NWQ0MyBzdGQ6Ol9fMTo6Y29uZGl0aW9uX3ZhcmlhYmxlOjpfX2RvX3RpbWVkX3dhaXQoc3RkOjpf
XzE6OnVuaXF1ZV9sb2NrPHN0ZDo6X18xOjptdXRleD4mLCBzdGQ6Ol9fMTo6Y2hyb25vOjp0aW1l
X3BvaW50PHN0ZDo6X18xOjpjaHJvbm86OnN5c3RlbV9jbG9jaywgc3RkOjpfXzE6OmNocm9ubzo6
ZHVyYXRpb248bG9uZyBsb25nLCBzdGQ6Ol9fMTo6cmF0aW88MWwsIDEwMDAwMDAwMDBsPiA+ID4p
ICsgOTMKMyAgIGNvbS5hcHBsZS5KYXZhU2NyaXB0Q29yZSAgICAgIAkweDAwMDAwMDAxMGYzYTQy
MzUgc3RkOjpfXzE6OmN2X3N0YXR1cyBzdGQ6Ol9fMTo6Y29uZGl0aW9uX3ZhcmlhYmxlOjp3YWl0
X2Zvcjxsb25nIGxvbmcsIHN0ZDo6X18xOjpyYXRpbzwxbCwgMTAwMDAwMDAwMGw+ID4oc3RkOjpf
XzE6OnVuaXF1ZV9sb2NrPHN0ZDo6X18xOjptdXRleD4mLCBzdGQ6Ol9fMTo6Y2hyb25vOjpkdXJh
dGlvbjxsb25nIGxvbmcsIHN0ZDo6X18xOjpyYXRpbzwxbCwgMTAwMDAwMDAwMGw+ID4gY29uc3Qm
KSArIDM0MjkgKF9fbXV0ZXhfYmFzZTo0MTYpCjQgICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUg
ICAgICAJMHgwMDAwMDAwMTBmM2EzM2ZmIHN0ZDo6X18xOjpjdl9zdGF0dXMgc3RkOjpfXzE6OmNv
bmRpdGlvbl92YXJpYWJsZTo6d2FpdF91bnRpbDxzdGQ6Ol9fMTo6Y2hyb25vOjpzdGVhZHlfY2xv
Y2ssIHN0ZDo6X18xOjpjaHJvbm86OmR1cmF0aW9uPGxvbmcgbG9uZywgc3RkOjpfXzE6OnJhdGlv
PDFsLCAxMDAwMDAwMDAwbD4gPiA+KHN0ZDo6X18xOjp1bmlxdWVfbG9jazxzdGQ6Ol9fMTo6bXV0
ZXg+Jiwgc3RkOjpfXzE6OmNocm9ubzo6dGltZV9wb2ludDxzdGQ6Ol9fMTo6Y2hyb25vOjpzdGVh
ZHlfY2xvY2ssIHN0ZDo6X18xOjpjaHJvbm86OmR1cmF0aW9uPGxvbmcgbG9uZywgc3RkOjpfXzE6
OnJhdGlvPDFsLCAxMDAwMDAwMDAwbD4gPiA+IGNvbnN0JikgKyA0NzkgKF9fbXV0ZXhfYmFzZToz
ODUpCjUgICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUgICAgICAJMHgwMDAwMDAwMTBmM2EzMGZi
IHN0ZDo6X18xOjpjdl9zdGF0dXMgc3RkOjpfXzE6OmNvbmRpdGlvbl92YXJpYWJsZV9hbnk6Ondh
aXRfdW50aWw8c3RkOjpfXzE6OnVuaXF1ZV9sb2NrPGJtYWxsb2M6Ok11dGV4Piwgc3RkOjpfXzE6
OmNocm9ubzo6c3RlYWR5X2Nsb2NrLCBzdGQ6Ol9fMTo6Y2hyb25vOjpkdXJhdGlvbjxsb25nIGxv
bmcsIHN0ZDo6X18xOjpyYXRpbzwxbCwgMTAwMDAwMDAwMGw+ID4gPihzdGQ6Ol9fMTo6dW5pcXVl
X2xvY2s8Ym1hbGxvYzo6TXV0ZXg+Jiwgc3RkOjpfXzE6OmNocm9ubzo6dGltZV9wb2ludDxzdGQ6
Ol9fMTo6Y2hyb25vOjpzdGVhZHlfY2xvY2ssIHN0ZDo6X18xOjpjaHJvbm86OmR1cmF0aW9uPGxv
bmcgbG9uZywgc3RkOjpfXzE6OnJhdGlvPDFsLCAxMDAwMDAwMDAwbD4gPiA+IGNvbnN0JikgKyA2
MzUgKGNvbmRpdGlvbl92YXJpYWJsZToyMjYpCjYgICBjb20uYXBwbGUuSmF2YVNjcmlwdENvcmUg
ICAgICAJMHgwMDAwMDAwMTBmMzllNmEyIGJtYWxsb2M6OlNjYXZlbmdlcjo6dGhyZWFkUnVuTG9v
cCgpICsgMTk1NCAoU2NhdmVuZ2VyLmNwcDozODcpCjcgICBjb20uYXBwbGUuSmF2YVNjcmlwdENv
cmUgICAgICAJMHgwMDAwMDAwMTBmMzljN2Y1IGJtYWxsb2M6OlNjYXZlbmdlcjo6dGhyZWFkRW50
cnlQb2ludChibWFsbG9jOjpTY2F2ZW5nZXIqKSArIDIxCjggICBjb20uYXBwbGUuSmF2YVNjcmlw
dENvcmUgICAgICAJMHgwMDAwMDAwMTBmM2EyOTJlIHZvaWQqIHN0ZDo6X18xOjpfX3RocmVhZF9w
cm94eTxzdGQ6Ol9fMTo6dHVwbGU8c3RkOjpfXzE6OnVuaXF1ZV9wdHI8c3RkOjpfXzE6Ol9fdGhy
ZWFkX3N0cnVjdCwgc3RkOjpfXzE6OmRlZmF1bHRfZGVsZXRlPHN0ZDo6X18xOjpfX3RocmVhZF9z
dHJ1Y3Q+ID4sIHZvaWQgKCopKGJtYWxsb2M6OlNjYXZlbmdlciopLCBibWFsbG9jOjpTY2F2ZW5n
ZXIqPiA+KHZvaWQqKSArIDUyNgo5ICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4
MDAwMDdmZmY2MDcwYzY2MSBfcHRocmVhZF9ib2R5ICsgMzQwCjEwICBsaWJzeXN0ZW1fcHRocmVh
ZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZjYwNzBjNTBkIF9wdGhyZWFkX3N0YXJ0ICsgMzc3CjEx
ICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZjYwNzBiYmY5IHRocmVh
ZF9zdGFydCArIDEzCgpUaHJlYWQgNDoKMCAgIGxpYnN5c3RlbV9rZXJuZWwuZHlsaWIgICAgICAg
IAkweDAwMDA3ZmZmNjA1NDUyOTIgX193b3JrcV9rZXJucmV0dXJuICsgMTAKMSAgIGxpYnN5c3Rl
bV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDA3ZmZmNjA3MGMwMDkgX3B0aHJlYWRfd3F0aHJl
YWQgKyAxMDM1CjIgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZjYw
NzBiYmU5IHN0YXJ0X3dxdGhyZWFkICsgMTMKClRocmVhZCA1OgowICAgbGlic3lzdGVtX2tlcm5l
bC5keWxpYiAgICAgICAgCTB4MDAwMDdmZmY2MDU0NTI5MiBfX3dvcmtxX2tlcm5yZXR1cm4gKyAx
MAoxICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIgICAgICAgCTB4MDAwMDdmZmY2MDcwYzAwOSBf
cHRocmVhZF93cXRocmVhZCArIDEwMzUKMiAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAg
IAkweDAwMDA3ZmZmNjA3MGJiZTkgc3RhcnRfd3F0aHJlYWQgKyAxMwoKVGhyZWFkIDY6OiBjb20u
YXBwbGUuY29yZWFuaW1hdGlvbi5yZW5kZXItc2VydmVyCjAgICBsaWJzeXN0ZW1fa2VybmVsLmR5
bGliICAgICAgICAJMHgwMDAwN2ZmZjYwNTNiMjBhIG1hY2hfbXNnX3RyYXAgKyAxMAoxICAgbGli
c3lzdGVtX2tlcm5lbC5keWxpYiAgICAgICAgCTB4MDAwMDdmZmY2MDUzYTcyNCBtYWNoX21zZyAr
IDYwCjIgICBjb20uYXBwbGUuUXVhcnR6Q29yZSAgICAgICAgICAJMHgwMDAwN2ZmZjQzMzhkYTE2
IENBOjpSZW5kZXI6OlNlcnZlcjo6c2VydmVyX3RocmVhZCh2b2lkKikgKyA4NzAKMyAgIGNvbS5h
cHBsZS5RdWFydHpDb3JlICAgICAgICAgIAkweDAwMDA3ZmZmNDMzOGQ2YTYgdGhyZWFkX2Z1biAr
IDI1CjQgICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAgICAgICAJMHgwMDAwN2ZmZjYwNzBjNjYx
IF9wdGhyZWFkX2JvZHkgKyAzNDAKNSAgIGxpYnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkw
eDAwMDA3ZmZmNjA3MGM1MGQgX3B0aHJlYWRfc3RhcnQgKyAzNzcKNiAgIGxpYnN5c3RlbV9wdGhy
ZWFkLmR5bGliICAgICAgIAkweDAwMDA3ZmZmNjA3MGJiZjkgdGhyZWFkX3N0YXJ0ICsgMTMKClRo
cmVhZCA3OgowICAgbGlic3lzdGVtX2tlcm5lbC5keWxpYiAgICAgICAgCTB4MDAwMDdmZmY2MDU0
NTI5MiBfX3dvcmtxX2tlcm5yZXR1cm4gKyAxMAoxICAgbGlic3lzdGVtX3B0aHJlYWQuZHlsaWIg
ICAgICAgCTB4MDAwMDdmZmY2MDcwYzAwOSBfcHRocmVhZF93cXRocmVhZCArIDEwMzUKMiAgIGxp
YnN5c3RlbV9wdGhyZWFkLmR5bGliICAgICAgIAkweDAwMDA3ZmZmNjA3MGJiZTkgc3RhcnRfd3F0
aHJlYWQgKyAxMwoKVGhyZWFkIDg6CgpUaHJlYWQgMCBjcmFzaGVkIHdpdGggWDg2IFRocmVhZCBT
dGF0ZSAoNjQtYml0KToKICByYXg6IDB4MDAwMDdmZTQ5NDQxMjI5MCAgcmJ4OiAweDAwMDAwMDJm
MDA3MzAwNzAgIHJjeDogMHgwMDAwMDAwMDAwMDAwMDA3ICByZHg6IDB4ZmZmZmZmZmZmZmZmZmYw
MAogIHJkaTogMHgwMDAwN2ZlNDk0NDEyMjkwICByc2k6IDB4MDAwMDAwMDAwMDAwMDAwMCAgcmJw
OiAweDAwMDA3ZmZlZTFlMWVhZTAgIHJzcDogMHgwMDAwN2ZmZWUxZTFlYTgwCiAgIHI4OiAweDAw
MDAwMDAwNDk0NzEyOTIgICByOTogMHgwMDAwMDAwMDAwMDAwMDAzICByMTA6IDB4MDAwMDAwMDBm
ZmZjMDAwMCAgcjExOiAweDAwMDA3ZmU0OTQ3MDAwMDAKICByMTI6IDB4MDAwMDdmZmZmZmZmZmZm
OCAgcjEzOiAweDAwMDA3ZmU0OTQ0MTIyOTAgIHIxNDogMHgwMDVmMDAyZjAwNzMwMDcyICByMTU6
IDB4MDAwMDAwMDAxNjBmOTVhMQogIHJpcDogMHgwMDAwN2ZmZjVmN2NkYjdiICByZmw6IDB4MDAw
MDAwMDAwMDAxMDIwMiAgY3IyOiAweDAwMDAwMDJmMDA3MzAwNzAKICAKTG9naWNhbCBDUFU6ICAg
ICAyCkVycm9yIENvZGU6ICAgICAgMHgwMDAwMDAwNApUcmFwIE51bWJlcjogICAgIDE0CgoKQmlu
YXJ5IEltYWdlczoKICAgICAgIDB4MTBkZGUwMDAwIC0gICAgICAgIDB4MTBlNmZjZmZmICtUZXN0
V2ViS2l0QVBJICgwKSA8OTVCMjE5QTYtOUQ5Ri0zOEE2LThCREMtQzUxMzdEQUUxMEE4PiAvVm9s
dW1lcy9WT0xVTUUvKi9UZXN0V2ViS2l0QVBJCiAgICAgICAweDEwZjI2NTAwMCAtICAgICAgICAw
eDExMTMxMWZmNyAgY29tLmFwcGxlLkphdmFTY3JpcHRDb3JlICg2MDgrIC0gNjA4LjEuOSspIDxF
RkNBMjA5Ri05MTEyLTNERDEtOTFDQy1ENEE3NkQ0NENCNjc+IC9Wb2x1bWVzL1ZPTFVNRS8qL0ph
dmFTY3JpcHRDb3JlLmZyYW1ld29yay9WZXJzaW9ucy9BL0phdmFTY3JpcHRDb3JlCiAgICAgICAw
eDExNDRhYTAwMCAtICAgICAgICAweDExNDRhYWZmZiAgY29tLmFwcGxlLldlYkluc3BlY3RvclVJ
ICgxMzYwOCAtIDEzNjA4LjEuNikgPEFBMkE4MkE3LTNFMzAtMzMwMy04OTIyLUU5MTkyMDhGRDZB
RT4gL1ZvbHVtZXMvVk9MVU1FLyovV2ViSW5zcGVjdG9yVUkuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
V2ViSW5zcGVjdG9yVUkKICAgICAgIDB4MTE0NGIwMDAwIC0gICAgICAgIDB4MTE2MGFjZmY3ICBj
b20uYXBwbGUuV2ViS2l0ICg2MDgrIC0gNjA4LjEuOSspIDwzQzNGMEMzMC1EMzFCLTNEQjYtQThG
NC1FREZBNzgxMTAzMDI+IC9Wb2x1bWVzL1ZPTFVNRS8qL1dlYktpdC5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9XZWJLaXQKICAgICAgIDB4MTE5ZTdhMDAwIC0gICAgICAgIDB4MTE5ZWM0OWRmICBkeWxk
ICg1NTEuMykgPEFGQUI0RUZBLTcwMjAtMzRCMS1CQkVGLTBGMjZDNkQzQ0EzNj4gL3Vzci9saWIv
ZHlsZAogICAgICAgMHgxMTlmMTgwMDAgLSAgICAgICAgMHgxMWExOTFmZmYgK2xpYldlYkNvcmVU
ZXN0U3VwcG9ydC5keWxpYiAoMCkgPEMyQTUzN0I3LTdBQzAtMzQzRC1CN0NDLTQ1RDNGRDNCQjE4
MT4gL1ZvbHVtZXMvVk9MVU1FLyovbGliV2ViQ29yZVRlc3RTdXBwb3J0LmR5bGliCiAgICAgICAw
eDExYTY0ZDAwMCAtICAgICAgICAweDExYWFjMWZmZiAgY29tLmFwcGxlLldlYktpdExlZ2FjeSAo
NjA4KyAtIDYwOC4xLjkrKSA8NzlCMDg5NjAtN0ZDRi0zNTk4LTkxQkItMDQ3ODQ0QTlBMDFEPiAv
Vm9sdW1lcy9WT0xVTUUvKi9XZWJLaXRMZWdhY3kuZnJhbWV3b3JrL1ZlcnNpb25zL0EvV2ViS2l0
TGVnYWN5CiAgICAgICAweDExYjI0YjAwMCAtICAgICAgICAweDEyMDc0N2ZmYiAgY29tLmFwcGxl
LldlYkNvcmUgKDYwOCsgLSA2MDguMS45KykgPDMwOEMxRkI1LUU4MjQtMzU2RS04RkQwLUYyRjdG
OTczRDBBRT4gL1ZvbHVtZXMvVk9MVU1FLyovV2ViQ29yZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9X
ZWJDb3JlCiAgICAgICAweDEyYjgwODAwMCAtICAgICAgICAweDEyYzhiZWZlNyArbGlid2VicnRj
LmR5bGliICgwKSA8MDM0OTk1NTctQzAwQy0zNDI4LTkyMjktMzg1QTgzNDRBMDQ0PiAvVm9sdW1l
cy9WT0xVTUUvKi9saWJ3ZWJydGMuZHlsaWIKICAgICAgIDB4MTMwYzQwMDAwIC0gICAgICAgIDB4
MTMxMTczZmZmICBjb20uYXBwbGUuZHJpdmVyLkFwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dMRHJp
dmVyICgxMC4zMi40OCAtIDEwLjMuMikgPDBCNDhGNEExLTlBQjktM0E4OC1BQUM0LTUwREQ5OUMy
RTk0Mz4gL1N5c3RlbS9MaWJyYXJ5L0V4dGVuc2lvbnMvQXBwbGVJbnRlbEhENDAwMEdyYXBoaWNz
R0xEcml2ZXIuYnVuZGxlL0NvbnRlbnRzL01hY09TL0FwcGxlSW50ZWxIRDQwMDBHcmFwaGljc0dM
RHJpdmVyCiAgICAweDdmZmYzMDJmMTAwMCAtICAgICAweDdmZmYzMDYzZmZmZiAgY29tLmFwcGxl
LlJhd0NhbWVyYS5idW5kbGUgKDguMDMuMCAtIDEwMTcuMy40KSA8RkM2QTRBRkQtMkY2MC0zMDA2
LTlDNDItNTc3RjYyRjlCMkE0PiAvU3lzdGVtL0xpYnJhcnkvQ29yZVNlcnZpY2VzL1Jhd0NhbWVy
YS5idW5kbGUvQ29udGVudHMvTWFjT1MvUmF3Q2FtZXJhCiAgICAweDdmZmYzM2YxMzAwMCAtICAg
ICAweDdmZmYzNDBmMmZmZiAgY29tLmFwcGxlLmF2Zm91bmRhdGlvbiAoMi4wIC0gMTUzNS40Mikg
PEE0RTc0NTIxLTNDMDItMzI5QS1CQ0I3LUMyQzQzMDhERUNEND4gL1N5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvQVZGb3VuZGF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL0FWRm91bmRhdGlvbgog
ICAgMHg3ZmZmMzQwZjMwMDAgLSAgICAgMHg3ZmZmMzQxYWNmZmYgIGNvbS5hcHBsZS5hdWRpby5B
VkZBdWRpbyAoMS4wIC0gPz8/KSA8RUNFNjNCQTMtNDM0NC0zNTIyLTkwNEItNzFGODk2NzdBQzdE
PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BVkZvdW5kYXRpb24uZnJhbWV3b3JrL1ZlcnNp
b25zL0EvRnJhbWV3b3Jrcy9BVkZBdWRpby5mcmFtZXdvcmsvVmVyc2lvbnMvQS9BVkZBdWRpbwog
ICAgMHg3ZmZmMzQyYjIwMDAgLSAgICAgMHg3ZmZmMzQyYjJmZmYgIGNvbS5hcHBsZS5BY2NlbGVy
YXRlICgxLjExIC0gQWNjZWxlcmF0ZSAxLjExKSA8MkVGMDBFRkUtMDZFOC0zMDgyLTg1QzMtMjk4
OEI0MjJBMTlEPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29y
ay9WZXJzaW9ucy9BL0FjY2VsZXJhdGUKICAgIDB4N2ZmZjM0MmIzMDAwIC0gICAgIDB4N2ZmZjM0
MmNhZmY3ICBsaWJDR0ludGVyZmFjZXMuZHlsaWIgKDQxNy4yKSA8RTM3MzI3MjAtMEIyQy0zRkE2
LTlEMDUtNUM3MTk5MDEwMkNFPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2NlbGVyYXRl
LmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvdkltYWdlLmZyYW1ld29yay9WZXJzaW9u
cy9BL0xpYnJhcmllcy9saWJDR0ludGVyZmFjZXMuZHlsaWIKICAgIDB4N2ZmZjM0MmNiMDAwIC0g
ICAgIDB4N2ZmZjM0YTE5ZmZiICBjb20uYXBwbGUudkltYWdlICg4LjEgLSA/Pz8pIDw1NkMyNzVD
MS00NTlGLTM3Q0QtQkYyOS0yRTZEODFDMjlFNTM+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L0FjY2VsZXJhdGUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy92SW1hZ2UuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvdkltYWdlCiAgICAweDdmZmYzNGExYTAwMCAtICAgICAweDdmZmYzNGJi
YWZmMyAgbGliQkxBUy5keWxpYiAoMTIxMS41MC4yKSA8OTMyNTkyMjItMkQ5NC0zMzNELUExRUIt
MDlDNkZDNEE2NEI0PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2NlbGVyYXRlLmZyYW1l
d29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvdmVjTGliLmZyYW1ld29yay9WZXJzaW9ucy9BL2xp
YkJMQVMuZHlsaWIKICAgIDB4N2ZmZjM0YmJiMDAwIC0gICAgIDB4N2ZmZjM0YmY1ZmVmICBsaWJC
Tk5TLmR5bGliICgzOC4xKSA8MEFBRTAxMDktNzFENS0zQjI2LTg0MDEtM0U2MkRERjk3NjI0PiAv
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29yay9WZXJzaW9ucy9B
L0ZyYW1ld29ya3MvdmVjTGliLmZyYW1ld29yay9WZXJzaW9ucy9BL2xpYkJOTlMuZHlsaWIKICAg
IDB4N2ZmZjM0YmY2MDAwIC0gICAgIDB4N2ZmZjM0ZmNmZmY3ICBsaWJMQVBBQ0suZHlsaWIgKDEy
MTEuNTAuMikgPDcwNzgxRDBCLUFFQUQtMzNFQi05OTAwLTEwREMzMEYzN0Q2MT4gL1N5c3RlbS9M
aWJyYXJ5L0ZyYW1ld29ya3MvQWNjZWxlcmF0ZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdv
cmtzL3ZlY0xpYi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9saWJMQVBBQ0suZHlsaWIKICAgIDB4N2Zm
ZjM0ZmQwMDAwIC0gICAgIDB4N2ZmZjM0ZmU2ZmY3ICBsaWJMaW5lYXJBbGdlYnJhLmR5bGliICgx
MjExLjUwLjIpIDxGQjVBMzVFQS1ENjM2LTNENjktQUI1My1CNjdFMUVCODEzNEM+IC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3
b3Jrcy92ZWNMaWIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvbGliTGluZWFyQWxnZWJyYS5keWxpYgog
ICAgMHg3ZmZmMzRmZTcwMDAgLSAgICAgMHg3ZmZmMzRmZWNmZjMgIGxpYlF1YWRyYXR1cmUuZHls
aWIgKDMpIDwzRDZCRjY2QS01NUIyLTM2OTItQkFDNy1ERUIwQzY3NkVEMjk+IC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jr
cy92ZWNMaWIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvbGliUXVhZHJhdHVyZS5keWxpYgogICAgMHg3
ZmZmMzRmZWQwMDAgLSAgICAgMHg3ZmZmMzUwNmRmZmYgIGxpYlNwYXJzZS5keWxpYiAoNzkuNTAu
MikgPDBEQzI1Q0RELUY4QzEtM0Q2RS1CNDcyLThCMDYwNzA4NDI0Rj4gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvQWNjZWxlcmF0ZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL3Zl
Y0xpYi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9saWJTcGFyc2UuZHlsaWIKICAgIDB4N2ZmZjM1MDZl
MDAwIC0gICAgIDB4N2ZmZjM1MDgwZmY3ICBsaWJTcGFyc2VCTEFTLmR5bGliICgxMjExLjUwLjIp
IDw5OTRBN0Q3RS1GQTNCLTM5NDMtQTU5Qy04MTUwQjlBRjg2QkU+IC9TeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL0FjY2VsZXJhdGUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy92ZWNM
aWIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvbGliU3BhcnNlQkxBUy5keWxpYgogICAgMHg3ZmZmMzUw
ODEwMDAgLSAgICAgMHg3ZmZmMzUxZjRmZTcgIGxpYnZEU1AuZHlsaWIgKDYyMi41MC41KSA8NEJG
MzEwRjQtMzFBMy0zREE1LTgwRTQtN0Y4MDE0QUQzODBCPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9BY2NlbGVyYXRlLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvdmVjTGliLmZy
YW1ld29yay9WZXJzaW9ucy9BL2xpYnZEU1AuZHlsaWIKICAgIDB4N2ZmZjM1MWY1MDAwIC0gICAg
IDB4N2ZmZjM1MmFiZmVmICBsaWJ2TWlzYy5keWxpYiAoNjIyLjUwLjUpIDw4ODE0M0E4OC00RkRF
LTM1QTEtODVGRS01NEZGMEMyQTlFNDM+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FjY2Vs
ZXJhdGUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy92ZWNMaWIuZnJhbWV3b3JrL1Zl
cnNpb25zL0EvbGlidk1pc2MuZHlsaWIKICAgIDB4N2ZmZjM1MmFjMDAwIC0gICAgIDB4N2ZmZjM1
MmFjZmZmICBjb20uYXBwbGUuQWNjZWxlcmF0ZS52ZWNMaWIgKDMuMTEgLSB2ZWNMaWIgMy4xMSkg
PDg4MERFRjQwLTM4OUEtM0Y1Ni1BQ0ExLUI2MkE1QkM1N0U1OT4gL1N5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvQWNjZWxlcmF0ZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL3ZlY0xp
Yi5mcmFtZXdvcmsvVmVyc2lvbnMvQS92ZWNMaWIKICAgIDB4N2ZmZjM1MmFkMDAwIC0gICAgIDB4
N2ZmZjM1MzA3ZmY3ICBjb20uYXBwbGUuQWNjb3VudHMgKDExMyAtIDExMykgPEQyODkyQjJCLTI4
NDYtM0U3NS05QTRCLTIyNEE5RjM0M0E0ND4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQWNj
b3VudHMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQWNjb3VudHMKICAgIDB4N2ZmZjM1MzA4MDAwIC0g
ICAgIDB4N2ZmZjM1NTllZmY3ICBjb20uYXBwbGUuQWRkcmVzc0Jvb2suZnJhbWV3b3JrICgxMS4w
IC0gMTgwOC43KSA8NzU5N0Q1QjUtOTUxOC0zNTFFLUFBRkYtODA2NTg3NEZFNUVFPiAvU3lzdGVt
L0xpYnJhcnkvRnJhbWV3b3Jrcy9BZGRyZXNzQm9vay5mcmFtZXdvcmsvVmVyc2lvbnMvQS9BZGRy
ZXNzQm9vawogICAgMHg3ZmZmMzU1OWYwMDAgLSAgICAgMHg3ZmZmMzYzZmRmZmYgIGNvbS5hcHBs
ZS5BcHBLaXQgKDYuOSAtIDE1NjEuNDAuMTEyKSA8QzgzOUIwQzEtRjdFRS0zMDU2LTk4NUMtNjND
RjFBMDMwRUM0PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBLaXQuZnJhbWV3b3JrL1Zl
cnNpb25zL0MvQXBwS2l0CiAgICAweDdmZmYzNjQ0ZjAwMCAtICAgICAweDdmZmYzNjQ0ZmZmZiAg
Y29tLmFwcGxlLkFwcGxpY2F0aW9uU2VydmljZXMgKDQ4IC0gNTApIDw4REE0N0QzOC1CMDdCLTNB
RTItQjM0My00NTc5ODY0NDMwQzY+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0
aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQXBwbGljYXRpb25TZXJ2aWNlcwogICAg
MHg3ZmZmMzY0NTAwMDAgLSAgICAgMHg3ZmZmMzY0YjZmZmYgIGNvbS5hcHBsZS5BcHBsaWNhdGlv
blNlcnZpY2VzLkFUUyAoMzc3IC0gNDQ1LjMpIDwwMDBDNEU5Ri1FMEQ5LTM3MUQtQjMwNC04M0JB
Mzc0NjA3MjQ+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9BVFMuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
QVRTCiAgICAweDdmZmYzNjU0ZjAwMCAtICAgICAweDdmZmYzNjY3MWZmZiAgbGliRm9udFBhcnNl
ci5keWxpYiAoMjIyLjEuNCkgPEZGNjhGQUY2LTcwQkItM0UzOS1BMjYzLUUxN0I2RjVFMDBEMD4g
L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9GcmFtZXdvcmtzL0FUUy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMv
bGliRm9udFBhcnNlci5keWxpYgogICAgMHg3ZmZmMzY2NzIwMDAgLSAgICAgMHg3ZmZmMzY2YmNm
ZjcgIGxpYkZvbnRSZWdpc3RyeS5keWxpYiAoMjIxLjMpIDxDODRGNzExMi00NzY0LTNGNEItOUZC
QS00QTAyMkNGNjM0NkI+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2Vy
dmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9BVFMuZnJhbWV3b3JrL1ZlcnNp
b25zL0EvUmVzb3VyY2VzL2xpYkZvbnRSZWdpc3RyeS5keWxpYgogICAgMHg3ZmZmMzY3ZmUwMDAg
LSAgICAgMHg3ZmZmMzY4MDJmZjMgIGNvbS5hcHBsZS5Db2xvclN5bmNMZWdhY3kgKDQuMTMuMCAt
IDEpIDxBNUZCMjY5NC0xNTU5LTM0QTgtQTNEMy0yMDI5RjY4QTYzQ0E+IC9TeXN0ZW0vTGlicmFy
eS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJh
bWV3b3Jrcy9Db2xvclN5bmNMZWdhY3kuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29sb3JTeW5jTGVn
YWN5CiAgICAweDdmZmYzNjhhMjAwMCAtICAgICAweDdmZmYzNjhmNGZmYiAgY29tLmFwcGxlLkhJ
U2VydmljZXMgKDEuMjIgLSA2MjQpIDw4MjhFMTg5QS02MkY5LTM5NjEtOEE4OS0yMkY1MDg4NzBD
QzU+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9ISVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9B
L0hJU2VydmljZXMKICAgIDB4N2ZmZjM2OGY1MDAwIC0gICAgIDB4N2ZmZjM2OTAzZmZmICBjb20u
YXBwbGUuTGFuZ0FuYWx5c2lzICgxLjcuMCAtIDEuNy4wKSA8QjY1RkY3RTYtRTlCNS0zNEQ4LThD
QTctNjNENDE1QThBOUE2PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9BcHBsaWNhdGlvblNl
cnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvTGFuZ0FuYWx5c2lzLmZyYW1l
d29yay9WZXJzaW9ucy9BL0xhbmdBbmFseXNpcwogICAgMHg3ZmZmMzY5MDQwMDAgLSAgICAgMHg3
ZmZmMzY5NTBmZmYgIGNvbS5hcHBsZS5wcmludC5mcmFtZXdvcmsuUHJpbnRDb3JlICgxMy40IC0g
NTAzLjIpIDxCOTBDNjdDMS0wMjkyLTNDRUMtODg1RC1GMTg4MkNEMTA0QkU+IC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
RnJhbWV3b3Jrcy9QcmludENvcmUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvUHJpbnRDb3JlCiAgICAw
eDdmZmYzNjk1MTAwMCAtICAgICAweDdmZmYzNjk4YmZmZiAgY29tLmFwcGxlLlFEICgzLjEyIC0g
NDA0LjIpIDwzOEIyMEFGRi05RDU0LTNCNTItQTZEQy1DMEQ3MTM4MEFBNUY+IC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
RnJhbWV3b3Jrcy9RRC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9RRAogICAgMHg3ZmZmMzY5OGMwMDAg
LSAgICAgMHg3ZmZmMzY5OThmZmYgIGNvbS5hcHBsZS5zcGVlY2guc3ludGhlc2lzLmZyYW1ld29y
ayAoNy41LjEgLSA3LjUuMSkgPDg0QURERjM4LTM2RjEtM0QzQi1CMjhELTg4NjVGQTEwRkNENz4g
L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRpb25TZXJ2aWNlcy5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9GcmFtZXdvcmtzL1NwZWVjaFN5bnRoZXNpcy5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9TcGVlY2hTeW50aGVzaXMKICAgIDB4N2ZmZjM2OTk5MDAwIC0gICAgIDB4N2ZmZjM2YzI2ZmY3
ICBjb20uYXBwbGUuYXVkaW8udG9vbGJveC5BdWRpb1Rvb2xib3ggKDEuMTQgLSAxLjE0KSA8ODdE
ODE3MTQtRjE2Ny0zOUY1LUI1RTctQTdBNDMyRURBQjVCPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9BdWRpb1Rvb2xib3guZnJhbWV3b3JrL1ZlcnNpb25zL0EvQXVkaW9Ub29sYm94CiAgICAw
eDdmZmYzNmMyODAwMCAtICAgICAweDdmZmYzNmMyOGZmZiAgY29tLmFwcGxlLmF1ZGlvLnVuaXRz
LkF1ZGlvVW5pdCAoMS4xNCAtIDEuMTQpIDw1MTNDOUE0Qi00RjZELTNBMjEtOTIxRi0yQ0ExMDFC
OTc4MzA+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0F1ZGlvVW5pdC5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9BdWRpb1VuaXQKICAgIDB4N2ZmZjM2ZjRhMDAwIC0gICAgIDB4N2ZmZjM3MmU0ZmY3
ICBjb20uYXBwbGUuQ0ZOZXR3b3JrICg4OTcuMTUgLSA4OTcuMTUpIDwwQzAzQUYzOS0zNTI3LTNF
MEQtODQxMy04RTFCMkE5NjJGMEQ+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NGTmV0d29y
ay5mcmFtZXdvcmsvVmVyc2lvbnMvQS9DRk5ldHdvcmsKICAgIDB4N2ZmZjM3MmY5MDAwIC0gICAg
IDB4N2ZmZjM3MmY5ZmZmICBjb20uYXBwbGUuQ2FyYm9uICgxNTggLSAxNTgpIDxGOEIzNzBEOS0y
MTAzLTMyNzYtODIxRC1BQ0M3NTYxNjdGODY+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0Nh
cmJvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9DYXJib24KICAgIDB4N2ZmZjM3MmZhMDAwIC0gICAg
IDB4N2ZmZjM3MmZkZmZiICBjb20uYXBwbGUuQ29tbW9uUGFuZWxzICgxLjIuNiAtIDk4KSA8MjM5
MTc2MUMtNUNBQS0zRjY4LTg2QjctNTBCMzc5MjdCMTA0PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9DYXJib24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9Db21tb25QYW5lbHMu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29tbW9uUGFuZWxzCiAgICAweDdmZmYzNzJmZTAwMCAtICAg
ICAweDdmZmYzNzYwM2ZmZiAgY29tLmFwcGxlLkhJVG9vbGJveCAoMi4xLjEgLSA5MTEuMTApIDxC
RjdGOUMwRS1DNzMyLTNGQjItOUJCQy0zNjI4ODhCREE1N0I+IC9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL0hJVG9vbGJveC5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9ISVRvb2xib3gKICAgIDB4N2ZmZjM3NjA0MDAwIC0gICAgIDB4
N2ZmZjM3NjA3ZmZiICBjb20uYXBwbGUuaGVscCAoMS4zLjggLSA2NikgPERFQkFERkE4LUMxODkt
MzE5NS1CMEQ2LUExRjJERTk1ODgyQT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9u
LmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvSGVscC5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9IZWxwCiAgICAweDdmZmYzNzYwODAwMCAtICAgICAweDdmZmYzNzYwZGZmZiAgY29tLmFwcGxl
LkltYWdlQ2FwdHVyZSAoOS4wIC0gOS4wKSA8MjNCNDkxNkYtM0I0My0zREZGLUI5NTYtRkMzOTBF
RUNBMjg0PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrL1ZlcnNp
b25zL0EvRnJhbWV3b3Jrcy9JbWFnZUNhcHR1cmUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSW1hZ2VD
YXB0dXJlCiAgICAweDdmZmYzNzYwZTAwMCAtICAgICAweDdmZmYzNzZhM2ZmYiAgY29tLmFwcGxl
Lmluay5mcmFtZXdvcmsgKDEwLjkgLSAyMjEpIDw1MjA2QzhCMC0yMkRBLTM2QzktOTk4RS04NDZF
REI2MjZENUI+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9GcmFtZXdvcmtzL0luay5mcmFtZXdvcmsvVmVyc2lvbnMvQS9JbmsKICAgIDB4N2Zm
ZjM3NmE0MDAwIC0gICAgIDB4N2ZmZjM3NmJlZmY3ICBjb20uYXBwbGUub3BlbnNjcmlwdGluZyAo
MS43IC0gMTc0KSA8MUIyQTFGOUUtNTUzNC0zRDYxLTgzQ0EtOTE5OUIzOUU4NzA4PiAvU3lzdGVt
L0xpYnJhcnkvRnJhbWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3b3Jr
cy9PcGVuU2NyaXB0aW5nLmZyYW1ld29yay9WZXJzaW9ucy9BL09wZW5TY3JpcHRpbmcKICAgIDB4
N2ZmZjM3NmRmMDAwIC0gICAgIDB4N2ZmZjM3NmUwZmZmICBjb20uYXBwbGUucHJpbnQuZnJhbWV3
b3JrLlByaW50ICgxMiAtIDI2NykgPDM2ODJBQkZCLTI1NjEtMzQxOS04NDdELTAyQzI0N0Y0ODAw
RD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ2FyYm9uLmZyYW1ld29yay9WZXJzaW9ucy9B
L0ZyYW1ld29ya3MvUHJpbnQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvUHJpbnQKICAgIDB4N2ZmZjM3
NmUxMDAwIC0gICAgIDB4N2ZmZjM3NmUzZmY3ICBjb20uYXBwbGUuc2VjdXJpdHloaSAoOS4wIC0g
NTUwMDYpIDxDMTQwNkI4RC03RDA1LTM5NTktODA4Ri05QzgyMTg5Q0Y1N0Y+IC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL1Nl
Y3VyaXR5SEkuZnJhbWV3b3JrL1ZlcnNpb25zL0EvU2VjdXJpdHlISQogICAgMHg3ZmZmMzc2ZTQw
MDAgLSAgICAgMHg3ZmZmMzc2ZWFmZmYgIGNvbS5hcHBsZS5zcGVlY2gucmVjb2duaXRpb24uZnJh
bWV3b3JrICg2LjAuMyAtIDYuMC4zKSA8MkVEODY0M0QtQjBDMy0zRjE3LTgyQTItQkJGMTNFNkNC
QUJDPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrL1ZlcnNpb25z
L0EvRnJhbWV3b3Jrcy9TcGVlY2hSZWNvZ25pdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9TcGVl
Y2hSZWNvZ25pdGlvbgogICAgMHg3ZmZmMzc4MGIwMDAgLSAgICAgMHg3ZmZmMzc4MGJmZmYgIGNv
bS5hcHBsZS5Db2NvYSAoNi4xMSAtIDIyKSA8NENGOEUzMUMtQjVDNy0zNjdCLUI3M0QtMUE4QUM4
RTQxQjdGPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db2NvYS5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9Db2NvYQogICAgMHg3ZmZmMzc4MTkwMDAgLSAgICAgMHg3ZmZmMzc4ZDJmZmYgIGNvbS5h
cHBsZS5Db2xvclN5bmMgKDQuMTMuMCAtIDMzMjUpIDxEMjgzQzI4NS00NDdELTMyNTgtQTdFNC01
OTUzMjEyM0I4RkY+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvbG9yU3luYy5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9Db2xvclN5bmMKICAgIDB4N2ZmZjM3YTVmMDAwIC0gICAgIDB4N2ZmZjM3
YWYyZmY3ICBjb20uYXBwbGUuYXVkaW8uQ29yZUF1ZGlvICg0LjMuMCAtIDQuMy4wKSA8NkUzRjk1
OEQtNzlCQi0zNjU4LTk5QUQtNTlGMTZCRjc1NkYxPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr
cy9Db3JlQXVkaW8uZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZUF1ZGlvCiAgICAweDdmZmYzN2I1
OTAwMCAtICAgICAweDdmZmYzN2I4MmZmYiAgY29tLmFwcGxlLkNvcmVCbHVldG9vdGggKDEuMCAt
IDEpIDxFMTMzNTA3NC05RDA3LTM3MEUtODQ0MC02MUM0ODc0QkFDNTY+IC9TeXN0ZW0vTGlicmFy
eS9GcmFtZXdvcmtzL0NvcmVCbHVldG9vdGguZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZUJsdWV0
b290aAogICAgMHg3ZmZmMzdiODMwMDAgLSAgICAgMHg3ZmZmMzdlZTdmZjMgIGNvbS5hcHBsZS5D
b3JlRGF0YSAoMTIwIC0gODUxKSA8OEQ2MDU0NjYtODY3Ni0zRDQ1LTlBNEItODk4MDk3MTU1MUMz
PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlRGF0YS5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9Db3JlRGF0YQogICAgMHg3ZmZmMzdlZTgwMDAgLSAgICAgMHg3ZmZmMzdmY2RmZjcgIGNvbS5h
cHBsZS5Db3JlRGlzcGxheSAoMS4wIC0gOTcuMTYpIDxGQ0ZCMkE4Qy03QTVFLTMxNEItQUExMi0w
NEQzMzY1NkEwRTY+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVEaXNwbGF5LmZyYW1l
d29yay9WZXJzaW9ucy9BL0NvcmVEaXNwbGF5CiAgICAweDdmZmYzN2ZjZTAwMCAtICAgICAweDdm
ZmYzODQ2OGZmNyAgY29tLmFwcGxlLkNvcmVGb3VuZGF0aW9uICg2LjkgLSAxNDUyLjIzKSA8MzU4
QzU0N0QtRTIyNy0zMjI4LTgyMTgtNjIzMjdGNDYwNUM4PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9Db3JlRm91bmRhdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db3JlRm91bmRhdGlvbgog
ICAgMHg3ZmZmMzg0NmEwMDAgLSAgICAgMHg3ZmZmMzhhOThmZjcgIGNvbS5hcHBsZS5Db3JlR3Jh
cGhpY3MgKDIuMCAtIDExNjEuMTApIDwzQjgwOERFNC1EMzczLTNFMTktQTNGRC05OUI0RUIyMUFE
MDE+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVHcmFwaGljcy5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9Db3JlR3JhcGhpY3MKICAgIDB4N2ZmZjM4YTlhMDAwIC0gICAgIDB4N2ZmZjM4ZDg5
ZmZmICBjb20uYXBwbGUuQ29yZUltYWdlICgxMy4wLjAgLSA1NzkuNC4xMSkgPDcwMkY4MDM1LTI2
RkUtM0M3OC04NTg3LTRDOTU2M0UwM0NDND4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29y
ZUltYWdlLmZyYW1ld29yay9WZXJzaW9ucy9BL0NvcmVJbWFnZQogICAgMHg3ZmZmMzhkOGEwMDAg
LSAgICAgMHg3ZmZmMzhkZjVmZjcgIGNvbS5hcHBsZS5jb3JlbG9jYXRpb24gKDIyNDUuMC40MSkg
PDk4Mjk2ODU4LTM0RjEtM0Y4Mi05M0YwLTU5RTIxNTBBODlGMT4gL1N5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvQ29yZUxvY2F0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL0NvcmVMb2NhdGlvbgog
ICAgMHg3ZmZmMzkwMTgwMDAgLSAgICAgMHg3ZmZmMzkxMDFmZjcgIGNvbS5hcHBsZS5Db3JlTWVk
aWEgKDEuMCAtIDIyNzUuNjEuMSkgPEM0NDAxODhELUJDMTMtM0UxQy1BMzIyLTVGMUZGNzBCREIz
ND4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZU1lZGlhLmZyYW1ld29yay9WZXJzaW9u
cy9BL0NvcmVNZWRpYQogICAgMHg3ZmZmMzkxMDIwMDAgLSAgICAgMHg3ZmZmMzkxNTBmZmYgIGNv
bS5hcHBsZS5Db3JlTWVkaWFJTyAoODEyLjAgLSA0OTk0KSA8NUEzQjk0ODItMjFBQy0zOEEzLUIw
MTQtNjcwMTJGM0MzOUM3PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlTWVkaWFJTy5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9Db3JlTWVkaWFJTwogICAgMHg3ZmZmMzkxNTEwMDAgLSAgICAg
MHg3ZmZmMzkxNTFmZmYgIGNvbS5hcHBsZS5Db3JlU2VydmljZXMgKDgyMi4zMSAtIDgyMi4zMSkg
PDYxNTkxOUEyLUFFMTEtM0YyNy05QTM3LUZCMENGRjhEMzZCNj4gL1N5c3RlbS9MaWJyYXJ5L0Zy
YW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0NvcmVTZXJ2aWNlcwog
ICAgMHg3ZmZmMzkxNTIwMDAgLSAgICAgMHg3ZmZmMzkxYzZmZmIgIGNvbS5hcHBsZS5BRSAoNzM1
LjEgLSA3MzUuMSkgPDA4RUJBMTg0LTIwRjctMzcyNS1BRUE2LUMzMTQ0NDgxNjFDNj4gL1N5c3Rl
bS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0Zy
YW1ld29ya3MvQUUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQUUKICAgIDB4N2ZmZjM5MWM3MDAwIC0g
ICAgIDB4N2ZmZjM5NDllZmZmICBjb20uYXBwbGUuQ29yZVNlcnZpY2VzLkNhcmJvbkNvcmUgKDEx
NzguNCAtIDExNzguNCkgPDBENUUxOUJGLTE4Q0ItM0ZBNC04QTVGLUY2Qzc4N0M1RUUwOD4gL1N5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29yZVNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9B
L0ZyYW1ld29ya3MvQ2FyYm9uQ29yZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9DYXJib25Db3JlCiAg
ICAweDdmZmYzOTQ5ZjAwMCAtICAgICAweDdmZmYzOTRkM2ZmZiAgY29tLmFwcGxlLkRpY3Rpb25h
cnlTZXJ2aWNlcyAoMS4yIC0gMjg0LjIpIDw2NTA1QjA3NS00MUMzLTNDNjItQTRDMy04NUNFM0Y2
ODI1Q0Q+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9GcmFtZXdvcmtzL0RpY3Rpb25hcnlTZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9EaWN0aW9uYXJ5U2VydmljZXMKICAgIDB4N2ZmZjM5NGQ0MDAwIC0gICAgIDB4N2ZmZjM5
NGRjZmZiICBjb20uYXBwbGUuQ29yZVNlcnZpY2VzLkZTRXZlbnRzICgxMjM5LjUwLjEgLSAxMjM5
LjUwLjEpIDwzNjM3Q0VDNy1ERjBFLTMyMEUtOTYzNC00NEE0NDI5MjVDNjU+IC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdv
cmtzL0ZTRXZlbnRzLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZTRXZlbnRzCiAgICAweDdmZmYzOTRk
ZDAwMCAtICAgICAweDdmZmYzOTY5YWZmNyAgY29tLmFwcGxlLkxhdW5jaFNlcnZpY2VzICg4MjIu
MzEgLSA4MjIuMzEpIDxCREZBQjBGRi1DMkM2LTM3NUItOUU4NC1FNDNFMjY3RTJGODI+IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9G
cmFtZXdvcmtzL0xhdW5jaFNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0xhdW5jaFNlcnZp
Y2VzCiAgICAweDdmZmYzOTY5YjAwMCAtICAgICAweDdmZmYzOTc0YmZmNyAgY29tLmFwcGxlLk1l
dGFkYXRhICgxMC43LjAgLSAxMTkxLjQuMTMpIDxCNUMyMkU3MC1DMjY1LTNDOUYtODY1Ri1CMTM4
OTk0QTQxOEQ+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVTZXJ2aWNlcy5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL01ldGFkYXRhLmZyYW1ld29yay9WZXJzaW9ucy9BL01l
dGFkYXRhCiAgICAweDdmZmYzOTc0YzAwMCAtICAgICAweDdmZmYzOTdhY2ZmZiAgY29tLmFwcGxl
LkNvcmVTZXJ2aWNlcy5PU1NlcnZpY2VzICg4MjIuMzEgLSA4MjIuMzEpIDw2OTBFM0M5My04Nzk5
LTM5RkYtODY2My0xOTBBNDlCMDAyRTM+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVT
ZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL09TU2VydmljZXMuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvT1NTZXJ2aWNlcwogICAgMHg3ZmZmMzk3YWQwMDAgLSAgICAgMHg3ZmZm
Mzk4MWJmZmYgIGNvbS5hcHBsZS5TZWFyY2hLaXQgKDEuNC4wIC0gMS40LjApIDwzNjYyNTQ1QS1C
MUNGLTMwNzktQkRDRC1DODM4NTVDRUZFRUU+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0Nv
cmVTZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GcmFtZXdvcmtzL1NlYXJjaEtpdC5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9TZWFyY2hLaXQKICAgIDB4N2ZmZjM5ODFjMDAwIC0gICAgIDB4N2Zm
ZjM5ODQwZmZiICBjb20uYXBwbGUuY29yZXNlcnZpY2VzLlNoYXJlZEZpbGVMaXN0ICg3MS4yMSAt
IDcxLjIxKSA8N0RCNzlENzgtOTkyNS0zM0Y4LTk2QkEtMzVBQjdBRUIzMjZBPiAvU3lzdGVtL0xp
YnJhcnkvRnJhbWV3b3Jrcy9Db3JlU2VydmljZXMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvRnJhbWV3
b3Jrcy9TaGFyZWRGaWxlTGlzdC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9TaGFyZWRGaWxlTGlzdAog
ICAgMHg3ZmZmMzlhZTEwMDAgLSAgICAgMHg3ZmZmMzljMzFmZmYgIGNvbS5hcHBsZS5Db3JlVGV4
dCAoMzUyLjAgLSA1NzguMTgpIDxCODQ1NDExNS0yQTRCLTM1ODUtQTdBMS1CNDdBNjM4RjJFRUI+
IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0NvcmVUZXh0LmZyYW1ld29yay9WZXJzaW9ucy9B
L0NvcmVUZXh0CiAgICAweDdmZmYzOWMzMjAwMCAtICAgICAweDdmZmYzOWM2Y2ZmZiAgY29tLmFw
cGxlLkNvcmVWaWRlbyAoMS44IC0gMC4wKSA8ODZDQ0MwMzYtNTFCQi0zREQxLTk2MDEtRDkzNzk4
QkNDRDBGPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Db3JlVmlkZW8uZnJhbWV3b3JrL1Zl
cnNpb25zL0EvQ29yZVZpZGVvCiAgICAweDdmZmYzOWM2ZDAwMCAtICAgICAweDdmZmYzOWNmOGZm
MyAgY29tLmFwcGxlLmZyYW1ld29yay5Db3JlV0xBTiAoMTMuMCAtIDEzNTAuMSkgPEU4NjJDQzAy
LTY5RDItMzUwMy04ODdCLUI2RTgyMjMwODFFNz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
Q29yZVdMQU4uZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZVdMQU4KICAgIDB4N2ZmZjM5ZTg2MDAw
IC0gICAgIDB4N2ZmZjM5ZTkxZmY3ICBjb20uYXBwbGUuRGlyZWN0b3J5U2VydmljZS5GcmFtZXdv
cmsgKDEwLjEzIC0gMjA3LjUwLjEpIDwyOUQyMTQzNy03QjQxLTNFOUQtQjVENC00NjI5ODZBRUQ4
M0Y+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0RpcmVjdG9yeVNlcnZpY2UuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvRGlyZWN0b3J5U2VydmljZQogICAgMHg3ZmZmMzlmNzMwMDAgLSAgICAgMHg3
ZmZmMzlmNzhmZmYgIGNvbS5hcHBsZS5EaXNrQXJiaXRyYXRpb24gKDIuNyAtIDIuNykgPEE2NDUw
MjI3LUREMjMtMzEwMC1BREJGLURCMUMyMUU5NzlGNz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29y
a3MvRGlza0FyYml0cmF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL0Rpc2tBcmJpdHJhdGlvbgog
ICAgMHg3ZmZmM2ExMzkwMDAgLSAgICAgMHg3ZmZmM2E0ZmZmZmYgIGNvbS5hcHBsZS5Gb3VuZGF0
aW9uICg2LjkgLSAxNDUyLjIzKSA8RTY0NTQwQUQtMTc1NS0zQzE2LTg1MzctNTUyQTAwRTkyNTQx
PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Gb3VuZGF0aW9uLmZyYW1ld29yay9WZXJzaW9u
cy9DL0ZvdW5kYXRpb24KICAgIDB4N2ZmZjNhNTZmMDAwIC0gICAgIDB4N2ZmZjNhNTlmZmZmICBj
b20uYXBwbGUuR1NTICg0LjAgLSAyLjApIDw0MTA4NzI3OC03NEFFLTNGQTUtOEMwRS05Qzc4RUI2
OTYyOTk+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0dTUy5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9HU1MKICAgIDB4N2ZmZjNhNmIxMDAwIC0gICAgIDB4N2ZmZjNhN2I1ZmZiICBjb20uYXBwbGUu
Qmx1ZXRvb3RoICg2LjAuNSAtIDYuMC41ZjMpIDw4NUYxQjVBNi0wM0M1LTNENUEtOTBCOC01RkM4
NjM0OUUzMzA+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0lPQmx1ZXRvb3RoLmZyYW1ld29y
ay9WZXJzaW9ucy9BL0lPQmx1ZXRvb3RoCiAgICAweDdmZmYzYTgxNTAwMCAtICAgICAweDdmZmYz
YThiMGZmNyAgY29tLmFwcGxlLmZyYW1ld29yay5JT0tpdCAoMi4wLjIgLSAxNDQ1LjUwLjI2KSA8
QTYzQ0FDOEQtQkY1Ny0zNEZELTlBODgtMkY3NDU0NkYyMDAwPiAvU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3Jrcy9JT0tpdC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9JT0tpdAogICAgMHg3ZmZmM2E4YjIw
MDAgLSAgICAgMHg3ZmZmM2E4YjlmZmIgIGNvbS5hcHBsZS5JT1N1cmZhY2UgKDIxMS4xMiAtIDIx
MS4xMikgPDM5MkNBN0RFLUIzNjUtMzY0RS1BRjRBLTMzRUMyQ0M0OEU2Rj4gL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvSU9TdXJmYWNlLmZyYW1ld29yay9WZXJzaW9ucy9BL0lPU3VyZmFjZQog
ICAgMHg3ZmZmM2E4YmEwMDAgLSAgICAgMHg3ZmZmM2E5MGZmZjMgIGNvbS5hcHBsZS5JbWFnZUNh
cHR1cmVDb3JlICg3LjAgLSA3LjApIDwwREFCM0Q3RS04QzNGLTM1REUtOTZERi1DMzcwQUQzNUVC
NjU+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0ltYWdlQ2FwdHVyZUNvcmUuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvSW1hZ2VDYXB0dXJlQ29yZQogICAgMHg3ZmZmM2E5MTAwMDAgLSAgICAgMHg3
ZmZmM2FhOGRmZmYgIGNvbS5hcHBsZS5JbWFnZUlPLmZyYW1ld29yayAoMy4zLjAgLSAxNzM5LjEp
IDw0RDJGNENBMi0zOTg3LTNBMTUtOTE0OS05NTJFNDYxQzZEMTE+IC9TeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL0ltYWdlSU8uZnJhbWV3b3JrL1ZlcnNpb25zL0EvSW1hZ2VJTwogICAgMHg3ZmZm
M2FhOGUwMDAgLSAgICAgMHg3ZmZmM2FhOTJmZmIgIGxpYkdJRi5keWxpYiAoMTczOS4xKSA8NkM2
RjI5NEItMjJBRC0zRkZFLUI0NUUtM0IwOEQzMEYyRkQzPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9JbWFnZUlPLmZyYW1ld29yay9WZXJzaW9ucy9BL1Jlc291cmNlcy9saWJHSUYuZHlsaWIK
ICAgIDB4N2ZmZjNhYTkzMDAwIC0gICAgIDB4N2ZmZjNhYjdhZmZmICBsaWJKUDIuZHlsaWIgKDE3
MzkuMSkgPDdFNTg0OTA3LUM4NTYtMzIwNS1CMUQyLUUyRTVCMUQ5M0JCRT4gL1N5c3RlbS9MaWJy
YXJ5L0ZyYW1ld29ya3MvSW1hZ2VJTy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMvbGli
SlAyLmR5bGliCiAgICAweDdmZmYzYWI3YjAwMCAtICAgICAweDdmZmYzYWI5ZWZmZiAgbGliSlBF
Ry5keWxpYiAoMTczOS4xKSA8NUREMzhCMTAtNEZEQS0zQkY4LUFENkQtQ0YwOEFFMjgwOEQwPiAv
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9JbWFnZUlPLmZyYW1ld29yay9WZXJzaW9ucy9BL1Jl
c291cmNlcy9saWJKUEVHLmR5bGliCiAgICAweDdmZmYzYWU3YjAwMCAtICAgICAweDdmZmYzYWVh
MWZmMyAgbGliUG5nLmR5bGliICgxNzM5LjEpIDw2RDc5OTRFMi1CODQ3LTMzM0EtOUYwMy1DODBF
MTFBQzlCQjA+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0ltYWdlSU8uZnJhbWV3b3JrL1Zl
cnNpb25zL0EvUmVzb3VyY2VzL2xpYlBuZy5keWxpYgogICAgMHg3ZmZmM2FlYTIwMDAgLSAgICAg
MHg3ZmZmM2FlYTRmZjMgIGxpYlJhZGlhbmNlLmR5bGliICgxNzM5LjEpIDwzMzIwNTE2Qy1BNzRB
LTMyM0MtOUJFOS1DMDFEMkU2QTIzRUI+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0ltYWdl
SU8uZnJhbWV3b3JrL1ZlcnNpb25zL0EvUmVzb3VyY2VzL2xpYlJhZGlhbmNlLmR5bGliCiAgICAw
eDdmZmYzYWVhNTAwMCAtICAgICAweDdmZmYzYWVmMmZmMyAgbGliVElGRi5keWxpYiAoMTczOS4x
KSA8RjA4QjI5N0UtNjM2Ni0zREI2LUEzQjQtMkIxNThENzk2RUM5PiAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9JbWFnZUlPLmZyYW1ld29yay9WZXJzaW9ucy9BL1Jlc291cmNlcy9saWJUSUZG
LmR5bGliCiAgICAweDdmZmYzYmQ4ZTAwMCAtICAgICAweDdmZmYzYmRhN2ZmNyAgY29tLmFwcGxl
LktlcmJlcm9zICgzLjAgLSAxKSA8Rjg2RENDREYtOTNDMS0zOEIzLTgyQzItNDc3QzEyRThFRTZE
PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9LZXJiZXJvcy5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9LZXJiZXJvcwogICAgMHg3ZmZmM2JkYTgwMDAgLSAgICAgMHg3ZmZmM2JkZGRmZmYgIGNvbS5h
cHBsZS5MREFQRnJhbWV3b3JrICgyLjQuMjggLSAxOTQuNSkgPDA4ODg4MjE1LUJCQ0UtMzQwMi04
MTQyLTJDOUFEQjA5MTU4MD4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvTERBUC5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9MREFQCiAgICAweDdmZmYzYmUyNzAwMCAtICAgICAweDdmZmYzYmU0NGZm
YiAgY29tLmFwcGxlLkNvcmVBdXRoZW50aWNhdGlvbi5TaGFyZWRVdGlscyAoMS4wIC0gNDI1LjUw
LjY4KSA8RjZDNzlDREYtREJCRS0zMEY3LTgyQzAtRjA3NEFDQ0JCQjQ3PiAvU3lzdGVtL0xpYnJh
cnkvRnJhbWV3b3Jrcy9Mb2NhbEF1dGhlbnRpY2F0aW9uLmZyYW1ld29yay9TdXBwb3J0L1NoYXJl
ZFV0aWxzLmZyYW1ld29yay9WZXJzaW9ucy9BL1NoYXJlZFV0aWxzCiAgICAweDdmZmYzYmU0NTAw
MCAtICAgICAweDdmZmYzYmU1YmZmNyAgY29tLmFwcGxlLkxvY2FsQXV0aGVudGljYXRpb24gKDEu
MCAtIDQyNS41MC42OCkgPENBQ0VFQzIzLTcxNzMtMzE3OC04QkU2LURFNERBNkVCNEU5OD4gL1N5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvTG9jYWxBdXRoZW50aWNhdGlvbi5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9Mb2NhbEF1dGhlbnRpY2F0aW9uCiAgICAweDdmZmYzYzA2NTAwMCAtICAgICAweDdm
ZmYzYzA2Y2ZmZiAgY29tLmFwcGxlLk1lZGlhQWNjZXNzaWJpbGl0eSAoMS4wIC0gMTE0KSA8OUY3
MkFBQ0QtQkFFQi0zNjQ2LUJEMEYtMTJDNDc1OTFDMjBEPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9NZWRpYUFjY2Vzc2liaWxpdHkuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTWVkaWFBY2Nlc3Np
YmlsaXR5CiAgICAweDdmZmYzYzExODAwMCAtICAgICAweDdmZmYzYzc3ZmZmNyAgY29tLmFwcGxl
Lk1lZGlhVG9vbGJveCAoMS4wIC0gMjI3NS42MS4xKSA8RTkyQjg0ODctQUUxQy0zRUE5LUE4MEIt
OTlCNDNBRDc1RkMwPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9NZWRpYVRvb2xib3guZnJh
bWV3b3JrL1ZlcnNpb25zL0EvTWVkaWFUb29sYm94CiAgICAweDdmZmYzYzc4MTAwMCAtICAgICAw
eDdmZmYzYzgwMmZmNyAgY29tLmFwcGxlLk1ldGFsICgxMjUuMjUgLSAxMjUuMjUpIDxCMkVDQTA1
MC00QzEzLTNFQUQtQTFDOC1BQzIxRUZGMTIyRjE+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L01ldGFsLmZyYW1ld29yay9WZXJzaW9ucy9BL01ldGFsCiAgICAweDdmZmYzYzgxZjAwMCAtICAg
ICAweDdmZmYzYzgzYWZmZiAgY29tLmFwcGxlLk1ldGFsUGVyZm9ybWFuY2VTaGFkZXJzLk1QU0Nv
cmUgKDEuMCAtIDEpIDwwQjQ0NTVGRS01Qzk3LTM0NUMtQjQxNi0zMjVFQzZEODhBMkE+IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL01ldGFsUGVyZm9ybWFuY2VTaGFkZXJzLmZyYW1ld29yay9G
cmFtZXdvcmtzL01QU0NvcmUuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTVBTQ29yZQogICAgMHg3ZmZm
M2M4M2IwMDAgLSAgICAgMHg3ZmZmM2M4YWFmZWYgIGNvbS5hcHBsZS5NZXRhbFBlcmZvcm1hbmNl
U2hhZGVycy5NUFNJbWFnZSAoMS4wIC0gMSkgPDg3RjE0MTk5LUM0NDUtMzRDMi05MEY4LTU3QzI5
MjEyNDgzRT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvTWV0YWxQZXJmb3JtYW5jZVNoYWRl
cnMuZnJhbWV3b3JrL0ZyYW1ld29ya3MvTVBTSW1hZ2UuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTVBT
SW1hZ2UKICAgIDB4N2ZmZjNjOGFiMDAwIC0gICAgIDB4N2ZmZjNjOGNmZmZmICBjb20uYXBwbGUu
TWV0YWxQZXJmb3JtYW5jZVNoYWRlcnMuTVBTTWF0cml4ICgxLjAgLSAxKSA8QkQ1MEZEOUMtQ0U5
Mi0zNEFGLTg2NjMtOTY4QkY4OTIwMkEwPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9NZXRh
bFBlcmZvcm1hbmNlU2hhZGVycy5mcmFtZXdvcmsvRnJhbWV3b3Jrcy9NUFNNYXRyaXguZnJhbWV3
b3JrL1ZlcnNpb25zL0EvTVBTTWF0cml4CiAgICAweDdmZmYzYzhkMDAwMCAtICAgICAweDdmZmYz
YzliN2ZmNyAgY29tLmFwcGxlLk1ldGFsUGVyZm9ybWFuY2VTaGFkZXJzLk1QU05ldXJhbE5ldHdv
cmsgKDEuMCAtIDEpIDxGQkREQ0FFNi1FQzZFLTM2MUYtQjkyNC1CM0VCREVBQzJEMkY+IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL01ldGFsUGVyZm9ybWFuY2VTaGFkZXJzLmZyYW1ld29yay9G
cmFtZXdvcmtzL01QU05ldXJhbE5ldHdvcmsuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTVBTTmV1cmFs
TmV0d29yawogICAgMHg3ZmZmM2M5YjgwMDAgLSAgICAgMHg3ZmZmM2M5YjhmZjcgIGNvbS5hcHBs
ZS5NZXRhbFBlcmZvcm1hbmNlU2hhZGVycy5NZXRhbFBlcmZvcm1hbmNlU2hhZGVycyAoMS4wIC0g
MSkgPDIwRUNCNTJCLUI1QzItMzlFQS04OEUzLURGRUMwQzNDQzlGRj4gL1N5c3RlbS9MaWJyYXJ5
L0ZyYW1ld29ya3MvTWV0YWxQZXJmb3JtYW5jZVNoYWRlcnMuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
TWV0YWxQZXJmb3JtYW5jZVNoYWRlcnMKICAgIDB4N2ZmZjNkOWI3MDAwIC0gICAgIDB4N2ZmZjNk
OWMzZmZiICBjb20uYXBwbGUuTmV0RlMgKDYuMCAtIDQuMCkgPDQ3MUREOTZGLUZBMkUtM0ZFOS05
NzQ2LTI1MTlBNjc4MEQxQT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvTmV0RlMuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvTmV0RlMKICAgIDB4N2ZmZjQwN2FjMDAwIC0gICAgIDB4N2ZmZjQwN2I0
ZmVmICBsaWJjbGRjcHVlbmdpbmUuZHlsaWIgKDIuOC43KSA8RUY5QTkxQUMtMDI5Qy0zMDBBLTk5
RTctNDk1MkMxNURBMDlGPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9PcGVuQ0wuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvTGlicmFyaWVzL2xpYmNsZGNwdWVuZ2luZS5keWxpYgogICAgMHg3ZmZm
NDA3YjUwMDAgLSAgICAgMHg3ZmZmNDA4MDNmZmYgIGNvbS5hcHBsZS5vcGVuY2wgKDIuOC4xNSAt
IDIuOC4xNSkgPDgzRUQzOUQwLTFEMzktMzU5My1CQTI1LTcwQThBOTExREU3MT4gL1N5c3RlbS9M
aWJyYXJ5L0ZyYW1ld29ya3MvT3BlbkNMLmZyYW1ld29yay9WZXJzaW9ucy9BL09wZW5DTAogICAg
MHg3ZmZmNDA4MDQwMDAgLSAgICAgMHg3ZmZmNDA4MjBmZmIgIGNvbS5hcHBsZS5DRk9wZW5EaXJl
Y3RvcnkgKDEwLjEzIC0gMjA3LjUwLjEpIDxDMjcxNUE3QS0yRTVDLTNBMjEtQURCNC03MjZGNzA3
QTEyOTQ+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL09wZW5EaXJlY3RvcnkuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvRnJhbWV3b3Jrcy9DRk9wZW5EaXJlY3RvcnkuZnJhbWV3b3JrL1ZlcnNpb25z
L0EvQ0ZPcGVuRGlyZWN0b3J5CiAgICAweDdmZmY0MDgyMTAwMCAtICAgICAweDdmZmY0MDgyY2Zm
ZiAgY29tLmFwcGxlLk9wZW5EaXJlY3RvcnkgKDEwLjEzIC0gMjA3LjUwLjEpIDwyMjBGQjZGMi00
ODkyLTNBNjYtODgzOC1DMTM0Q0Y2NTdEM0E+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL09w
ZW5EaXJlY3RvcnkuZnJhbWV3b3JrL1ZlcnNpb25zL0EvT3BlbkRpcmVjdG9yeQogICAgMHg3ZmZm
NDE5YWIwMDAgLSAgICAgMHg3ZmZmNDE5YWRmZmYgIGxpYkNWTVNQbHVnaW5TdXBwb3J0LmR5bGli
ICgxNi41LjEwKSA8QkY1RDA2NUEtQTM4Qi0zNDQ2LTk0MTgtNzk5RjU5ODA3MkVGPiAvU3lzdGVt
L0xpYnJhcnkvRnJhbWV3b3Jrcy9PcGVuR0wuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTGlicmFyaWVz
L2xpYkNWTVNQbHVnaW5TdXBwb3J0LmR5bGliCiAgICAweDdmZmY0MTlhZTAwMCAtICAgICAweDdm
ZmY0MTliM2ZmYiAgbGliQ29yZUZTQ2FjaGUuZHlsaWIgKDE2Mi42LjEpIDw4NzlCMjczOC0yRThB
LTM1OTYtQUZGOC05QzNGQjFCNjgyOEI+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL09wZW5H
TC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9MaWJyYXJpZXMvbGliQ29yZUZTQ2FjaGUuZHlsaWIKICAg
IDB4N2ZmZjQxOWI0MDAwIC0gICAgIDB4N2ZmZjQxOWI4ZmZmICBsaWJDb3JlVk1DbGllbnQuZHls
aWIgKDE2Mi42LjEpIDw2NEVEMEE4NC0yMjVGLTM5QkMtQkUwRC1DODk2QUNGNUI1MEE+IC9TeXN0
ZW0vTGlicmFyeS9GcmFtZXdvcmtzL09wZW5HTC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9MaWJyYXJp
ZXMvbGliQ29yZVZNQ2xpZW50LmR5bGliCiAgICAweDdmZmY0MTliOTAwMCAtICAgICAweDdmZmY0
MTljMmZmNyAgbGliR0ZYU2hhcmVkLmR5bGliICgxNi41LjEwKSA8NjAyNEIxRkUtQUNENy0zMzE0
LUIzOTAtODU5NzJDQjlCNzc4PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9PcGVuR0wuZnJh
bWV3b3JrL1ZlcnNpb25zL0EvTGlicmFyaWVzL2xpYkdGWFNoYXJlZC5keWxpYgogICAgMHg3ZmZm
NDE5YzMwMDAgLSAgICAgMHg3ZmZmNDE5Y2VmZmYgIGxpYkdMLmR5bGliICgxNi41LjEwKSA8QUI4
QjZDNzMtODQ5Ni0zNzg0LTgzRjYtMjc3MzdFRDAzQjA5PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3
b3Jrcy9PcGVuR0wuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTGlicmFyaWVzL2xpYkdMLmR5bGliCiAg
ICAweDdmZmY0MTljZjAwMCAtICAgICAweDdmZmY0MWEwYWZlNyAgbGliR0xJbWFnZS5keWxpYiAo
MTYuNS4xMCkgPDVCNDFEMDc0LTMxMzItMzU4Ny05MUI2LUU0NDFCQThDOUYxMz4gL1N5c3RlbS9M
aWJyYXJ5L0ZyYW1ld29ya3MvT3BlbkdMLmZyYW1ld29yay9WZXJzaW9ucy9BL0xpYnJhcmllcy9s
aWJHTEltYWdlLmR5bGliCiAgICAweDdmZmY0MWEwYjAwMCAtICAgICAweDdmZmY0MWI3N2ZmZiAg
bGliR0xQcm9ncmFtbWFiaWxpdHkuZHlsaWIgKDE2LjUuMTApIDwzODM5MjY2RC1DQTkzLTNCMzUt
QTZEMC1DQzg1MUFFNzIzNjc+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL09wZW5HTC5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9MaWJyYXJpZXMvbGliR0xQcm9ncmFtbWFiaWxpdHkuZHlsaWIKICAg
IDB4N2ZmZjQxYjc4MDAwIC0gICAgIDB4N2ZmZjQxYmI2ZmZiICBsaWJHTFUuZHlsaWIgKDE2LjUu
MTApIDxGNjg0NDkxMi0xQjg2LTM0REYtOUZCNS1BNDI4Q0M3QjVCMTg+IC9TeXN0ZW0vTGlicmFy
eS9GcmFtZXdvcmtzL09wZW5HTC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9MaWJyYXJpZXMvbGliR0xV
LmR5bGliCiAgICAweDdmZmY0MjUyZTAwMCAtICAgICAweDdmZmY0MjUzZGZmZiAgY29tLmFwcGxl
Lm9wZW5nbCAoMTYuNS4xMCAtIDE2LjUuMTApIDxCQzRFRUZFMy1BMDlCLTM5OTgtQjcyMy0xNDE1
Qjk5NUIwRUU+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL09wZW5HTC5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9PcGVuR0wKICAgIDB4N2ZmZjQyNTNlMDAwIC0gICAgIDB4N2ZmZjQyNmQ1ZmY3ICBH
TEVuZ2luZSAoMTYuNS4xMCkgPEZDQzAxQkY1LTczNUItMzI3NS05MTBGLTIxODAzRDNDNTdEOD4g
L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvT3BlbkdMLmZyYW1ld29yay9WZXJzaW9ucy9BL1Jl
c291cmNlcy9HTEVuZ2luZS5idW5kbGUvR0xFbmdpbmUKICAgIDB4N2ZmZjQyNmQ2MDAwIC0gICAg
IDB4N2ZmZjQyNmZlZmZiICBHTFJlbmRlcmVyRmxvYXQgKDE2LjUuMTApIDw3MTg2RUVGMy03QjhG
LTM3NkUtQkQyRS1DNDhCQ0Q0MDY3Rjk+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL09wZW5H
TC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZXNvdXJjZXMvR0xSZW5kZXJlckZsb2F0LmJ1bmRsZS9H
TFJlbmRlcmVyRmxvYXQKICAgIDB4N2ZmZjQyOGI3MDAwIC0gICAgIDB4N2ZmZjQyYTAzZmY3ICBj
b20uYXBwbGUuUVRLaXQgKDcuNy4zIC0gMzAxNC44KSA8M0Y5OEU5QzEtRTlGMC0zM0U4LTkwMkMt
NjExOTRGQzY4ODgzPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9RVEtpdC5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9RVEtpdAogICAgMHg3ZmZmNDJhMDQwMDAgLSAgICAgMHg3ZmZmNDJjNjlmZjcg
IGNvbS5hcHBsZS5pbWFnZUtpdCAoMy4wIC0gMTA0MykgPDQ5QTIwRURCLUY1MjktM0UzRi1CQ0Y5
LTI2MjQ3MjJGOEE3Qj4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvUXVhcnR6LmZyYW1ld29y
ay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvSW1hZ2VLaXQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSW1h
Z2VLaXQKICAgIDB4N2ZmZjQyYzZhMDAwIC0gICAgIDB4N2ZmZjQyZDU5ZmZiICBjb20uYXBwbGUu
UERGS2l0ICgxLjAgLSA2NzcuNjcpIDw2QkQxMUMyMy0xQUVBLTMwNzgtOEQwQy1BNzE1MkJDRjkw
MzE+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1F1YXJ0ei5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9GcmFtZXdvcmtzL1BERktpdC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9QREZLaXQKICAgIDB4N2Zm
ZjQyZDVhMDAwIC0gICAgIDB4N2ZmZjQzMjZjZmY3ICBjb20uYXBwbGUuUXVhcnR6Q29tcG9zZXIg
KDUuMSAtIDM2NCkgPDEzNjlENkRBLTg4NDItMzg3OC1CNTQ2LTFEMDk4MjgzMzFGNT4gL1N5c3Rl
bS9MaWJyYXJ5L0ZyYW1ld29ya3MvUXVhcnR6LmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29y
a3MvUXVhcnR6Q29tcG9zZXIuZnJhbWV3b3JrL1ZlcnNpb25zL0EvUXVhcnR6Q29tcG9zZXIKICAg
IDB4N2ZmZjQzMjZkMDAwIC0gICAgIDB4N2ZmZjQzMjkwZmZmICBjb20uYXBwbGUucXVhcnR6Zmls
dGVycyAoMS4xMC4wIC0gMS4xMC4wKSA8Qzk1Q0I4OUQtMTQ4RC0zNDFCLUJDNTAtODJEOEMzMkJG
NzY3PiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9RdWFydHouZnJhbWV3b3JrL1ZlcnNpb25z
L0EvRnJhbWV3b3Jrcy9RdWFydHpGaWx0ZXJzLmZyYW1ld29yay9WZXJzaW9ucy9BL1F1YXJ0ekZp
bHRlcnMKICAgIDB4N2ZmZjQzMjkxMDAwIC0gICAgIDB4N2ZmZjQzMzhhZmY3ICBjb20uYXBwbGUu
UXVpY2tMb29rVUlGcmFtZXdvcmsgKDUuMCAtIDc0My4xMykgPDA5QjI5NkIzLTQyNDItMzIyNC05
RjQ0LTVERkI0QUI4OTRDQz4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvUXVhcnR6LmZyYW1l
d29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvUXVpY2tMb29rVUkuZnJhbWV3b3JrL1ZlcnNpb25z
L0EvUXVpY2tMb29rVUkKICAgIDB4N2ZmZjQzMzhiMDAwIC0gICAgIDB4N2ZmZjQzMzhiZmZmICBj
b20uYXBwbGUucXVhcnR6ZnJhbWV3b3JrICgxLjUgLSAyMSkgPERDRUIwRkNDLTJDMzItM0QwMi04
NzUyLTdCNkZBMDA5QUI4NT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvUXVhcnR6LmZyYW1l
d29yay9WZXJzaW9ucy9BL1F1YXJ0egogICAgMHg3ZmZmNDMzOGMwMDAgLSAgICAgMHg3ZmZmNDM1
ZDdmZjcgIGNvbS5hcHBsZS5RdWFydHpDb3JlICgxLjExIC0gNTg0LjQwKSA8QUJDN0Y4RkEtNUY1
QS0zMUY0LTg2OEItRkRDNDE3NUJBRkFDPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9RdWFy
dHpDb3JlLmZyYW1ld29yay9WZXJzaW9ucy9BL1F1YXJ0ekNvcmUKICAgIDB4N2ZmZjQzNWQ4MDAw
IC0gICAgIDB4N2ZmZjQzNjJmZmY3ICBjb20uYXBwbGUuUXVpY2tMb29rRnJhbWV3b3JrICg1LjAg
LSA3NDMuMTMpIDw0RkE1NDY5MC0wMzJCLTNERTItQjA4OC02Nzc0MDM0REVEQjk+IC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL1F1aWNrTG9vay5mcmFtZXdvcmsvVmVyc2lvbnMvQS9RdWlja0xv
b2sKICAgIDB4N2ZmZjQzN2Y0MDAwIC0gICAgIDB4N2ZmZjQzODBiZmY3ICBjb20uYXBwbGUuU2Fm
YXJpU2VydmljZXMuZnJhbWV3b3JrICgxMzYwNSAtIDEzNjA1LjEuMzMuMS4yKSA8OTkxRDM2OTgt
NTI5RC0zQjBELUI5QkQtNjNGMjdCMTcxRjkwPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9T
YWZhcmlTZXJ2aWNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9TYWZhcmlTZXJ2aWNlcwogICAgMHg3
ZmZmNDNlMGIwMDAgLSAgICAgMHg3ZmZmNDQxMzNmZmYgIGNvbS5hcHBsZS5zZWN1cml0eSAoNy4w
IC0gNTgyODYuNTEuNikgPDcyMTJEMjU3LTUzMjQtM0RCQS04QzI2LTUwNEQ2QjhGNjMyQT4gL1N5
c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHkuZnJhbWV3b3JrL1ZlcnNpb25zL0EvU2Vj
dXJpdHkKICAgIDB4N2ZmZjQ0MTM0MDAwIC0gICAgIDB4N2ZmZjQ0MWMwZmY3ICBjb20uYXBwbGUu
c2VjdXJpdHlmb3VuZGF0aW9uICg2LjAgLSA1NTE4NS41MC41KSA8MDg3RDYwMUUtNzgxMy0zRjlF
LTk3RUUtQkM3MDgxRjUyMEJEPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9TZWN1cml0eUZv
dW5kYXRpb24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvU2VjdXJpdHlGb3VuZGF0aW9uCiAgICAweDdm
ZmY0NDFjMTAwMCAtICAgICAweDdmZmY0NDFmMWZmZiAgY29tLmFwcGxlLnNlY3VyaXR5aW50ZXJm
YWNlICgxMC4wIC0gNTUxMDkuNTAuNikgPDM0M0ZGQTkxLTg5Q0YtM0EzRi04MzNBLUQ2NUEyNjQ3
Q0NGMT4gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvU2VjdXJpdHlJbnRlcmZhY2UuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvU2VjdXJpdHlJbnRlcmZhY2UKICAgIDB4N2ZmZjQ0MWYyMDAwIC0gICAg
IDB4N2ZmZjQ0MWY2ZmZiICBjb20uYXBwbGUueHBjLlNlcnZpY2VNYW5hZ2VtZW50ICgxLjAgLSAx
KSA8NUJGREIzRUQtNzNBNy0zMDM1LUE1QkMtQURBNkU0Rjc0QkZEPiAvU3lzdGVtL0xpYnJhcnkv
RnJhbWV3b3Jrcy9TZXJ2aWNlTWFuYWdlbWVudC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9TZXJ2aWNl
TWFuYWdlbWVudAogICAgMHg3ZmZmNDQxZjcwMDAgLSAgICAgMHg3ZmZmNDQyNDFmZjcgIGNvbS5h
cHBsZS5zb2NpYWxkLlNvY2lhbCAoPz8/KSA8NjVFQUY4MkUtRjQ2Ri0zNUExLUFFRDgtMzQyMTQ0
NzdGRDFDPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9Tb2NpYWwuZnJhbWV3b3JrL1ZlcnNp
b25zL0EvU29jaWFsCiAgICAweDdmZmY0NDU5YjAwMCAtICAgICAweDdmZmY0NDYwYmZmMyAgY29t
LmFwcGxlLlN5c3RlbUNvbmZpZ3VyYXRpb24gKDEuMTcgLSAxLjE3KSA8ODUzMkI4RTktN0UzMC0z
NUEzLUJDNEEtRERFOEUwNjE0RkRBPiAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9TeXN0ZW1D
b25maWd1cmF0aW9uLmZyYW1ld29yay9WZXJzaW9ucy9BL1N5c3RlbUNvbmZpZ3VyYXRpb24KICAg
IDB4N2ZmZjQ0N2MwMDAwIC0gICAgIDB4N2ZmZjQ0YjNiZmZmICBjb20uYXBwbGUuVmlkZW9Ub29s
Ym94ICgxLjAgLSAyMjc1LjYxLjEpIDxCOEU2MEYyMC1ERUI3LTM4Q0EtQjI5NC1GRDFEQjNGMjMz
RUM+IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL1ZpZGVvVG9vbGJveC5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9WaWRlb1Rvb2xib3gKICAgIDB4N2ZmZjQ3NGZjMDAwIC0gICAgIDB4N2ZmZjQ3NThm
ZmY3ICBjb20uYXBwbGUuQVBGUyAoMS4wIC0gMSkgPEQxQ0U1MkUwLTQ1QzAtMzBDNC1CNDQwLUUy
Q0YyRjc0Q0VFNT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0FQRlMuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvQVBGUwogICAgMHg3ZmZmNDdiNmIwMDAgLSAgICAgMHg3ZmZmNDdjMGRm
ZjMgIGNvbS5hcHBsZS5hY2NvdW50cy5BY2NvdW50c0RhZW1vbiAoMTEzIC0gMTEzKSA8RTA4MTkx
MkQtQ0JCMS0zQTA5LThFQzctNjlGRUZEMDA2RjY3PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZy
YW1ld29ya3MvQWNjb3VudHNEYWVtb24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvQWNjb3VudHNEYWVt
b24KICAgIDB4N2ZmZjQ3YzBlMDAwIC0gICAgIDB4N2ZmZjQ3YzQ0ZmYzICBjb20uYXBwbGUuZnJh
bWV3b3JrLmFjY291bnRzdWkgKDEuMCAtIDYzLjAuMC4yKSA8OEM1NTgzNjUtOTc5QS0zMTBDLTlB
MjQtMDMxRTM0QTlGREFEPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQWNjb3Vu
dHNVSS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9BY2NvdW50c1VJCiAgICAweDdmZmY0ODFhYTAwMCAt
ICAgICAweDdmZmY0ODFkMmZmZiAgY29tLmFwcGxlLmZyYW1ld29yay5BcHBsZTgwMjExICgxMy4w
IC0gMTM2MS43KSA8MTY2Mjc4NzYtOENGNS0zNTAyLUExRDYtMzVGQ0JERDVFNzlBPiAvU3lzdGVt
L0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQXBwbGU4MDIxMS5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9BcHBsZTgwMjExCiAgICAweDdmZmY0ODFkNDAwMCAtICAgICAweDdmZmY0ODFlM2ZlZiAgY29t
LmFwcGxlLkFwcGxlRlNDb21wcmVzc2lvbiAoOTYuMzAuMiAtIDEuMCkgPEFCRkYyMjRCLTIyRDYt
MzVGNi1BMDcyLTk1NDhGRDM4OEVCNz4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtz
L0FwcGxlRlNDb21wcmVzc2lvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9BcHBsZUZTQ29tcHJlc3Np
b24KICAgIDB4N2ZmZjQ4MzI1MDAwIC0gICAgIDB4N2ZmZjQ4MzZkZmYzICBjb20uYXBwbGUuQXBw
bGVKUEVHICgxLjAgLSAxKSA8OERENDEwQ0ItNzZBMS0zRjIyLTlBOUYtMDQ5MUZBMENFQjRBPiAv
U3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQXBwbGVKUEVHLmZyYW1ld29yay9WZXJz
aW9ucy9BL0FwcGxlSlBFRwogICAgMHg3ZmZmNDgzODAwMDAgLSAgICAgMHg3ZmZmNDgzOWVmZjMg
IGNvbS5hcHBsZS5hcHMuZnJhbWV3b3JrICg0LjAgLSA0LjApIDwxNDJBMzhCQy04MjY2LTM0NjIt
ODZBNy1DMzkxOTg2NTFGMkE+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9BcHBs
ZVB1c2hTZXJ2aWNlLmZyYW1ld29yay9WZXJzaW9ucy9BL0FwcGxlUHVzaFNlcnZpY2UKICAgIDB4
N2ZmZjQ4MzlmMDAwIC0gICAgIDB4N2ZmZjQ4M2E3ZmYzICBjb20uYXBwbGUuQXBwbGVTUlAgKDUu
MCAtIDEpIDw0Q0VDMzRDRi02M0UzLTMwMjMtQjYxQi1GOEQxMzM2OTg1MzQ+IC9TeXN0ZW0vTGli
cmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9BcHBsZVNSUC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9BcHBs
ZVNSUAogICAgMHg3ZmZmNDgzYTgwMDAgLSAgICAgMHg3ZmZmNDgzZDBmZmYgIGNvbS5hcHBsZS5h
cHBsZXNhdWNlICgxLjAgLSA/Pz8pIDxDQ0E4QjA5NC0xQkNFLTNBRTMtQTBBNy1ENTQ0QzgxOERF
MzY+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9BcHBsZVNhdWNlLmZyYW1ld29y
ay9WZXJzaW9ucy9BL0FwcGxlU2F1Y2UKICAgIDB4N2ZmZjQ4NDk5MDAwIC0gICAgIDB4N2ZmZjQ4
NDljZmYzICBjb20uYXBwbGUuQXBwbGVTeXN0ZW1JbmZvICgzLjEuNSAtIDMuMS41KSA8MEUzMzQw
MUQtN0I5Qy0zNzhBLThFRTgtMEUzRDQwQjYzQzhEPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZy
YW1ld29ya3MvQXBwbGVTeXN0ZW1JbmZvLmZyYW1ld29yay9WZXJzaW9ucy9BL0FwcGxlU3lzdGVt
SW5mbwogICAgMHg3ZmZmNDg0OWQwMDAgLSAgICAgMHg3ZmZmNDg0ZWRmZjcgIGNvbS5hcHBsZS5B
cHBsZVZBRnJhbWV3b3JrICg1LjAuNDEgLSA1LjAuNDEpIDw4MTY5QUJDNC01NkYwLTMwMUUtQjkx
My1BNzYyRjdFNDBEQkY+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9BcHBsZVZB
LmZyYW1ld29yay9WZXJzaW9ucy9BL0FwcGxlVkEKICAgIDB4N2ZmZjQ4YmYwMDAwIC0gICAgIDB4
N2ZmZjQ4YmY3ZmY3ICBjb20uYXBwbGUuY29yZXNlcnZpY2VzLkJhY2tncm91bmRUYXNrTWFuYWdl
bWVudCAoMS4wIC0gNTcuMSkgPDUxQTQxQ0EzLURCMUQtMzM4MC05OTNFLTk5QzU0QUVFNTE4RT4g
L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0JhY2tncm91bmRUYXNrTWFuYWdlbWVu
dC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9CYWNrZ3JvdW5kVGFza01hbmFnZW1lbnQKICAgIDB4N2Zm
ZjQ4YmY4MDAwIC0gICAgIDB4N2ZmZjQ4YzdmZmY3ICBjb20uYXBwbGUuYmFja3VwLmZyYW1ld29y
ayAoMS45LjUgLSAxLjkuNSkgPEJDMDIwQkRELTdDOTMtMzdFNS1BNzYyLTRGRENCRDIwNTZBOD4g
L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0JhY2t1cC5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9CYWNrdXAKICAgIDB4N2ZmZjQ4Yzg4MDAwIC0gICAgIDB4N2ZmZjQ4YzhlZmYzICBjb20u
YXBwbGUuQmV6ZWxTZXJ2aWNlc0ZXICgzMDUgLSAzMDUpIDxGRUVEMTkzRC0zMzYzLTNDOEEtOTgx
NS00QTYxMjhFNjQwRTM+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9CZXplbFNl
cnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0JlemVsU2VydmljZXMKICAgIDB4N2ZmZjQ4Y2Y4
MDAwIC0gICAgIDB4N2ZmZjQ4ZDM0ZmZmICBjb20uYXBwbGUuYm9tICgxNC4wIC0gMTk0LjIpIDxF
QUM1QUI4Ni1DQzU3LTNBQ0QtOEM3MS1CNkY5MUEwNjJEOUI+IC9TeXN0ZW0vTGlicmFyeS9Qcml2
YXRlRnJhbWV3b3Jrcy9Cb20uZnJhbWV3b3JrL1ZlcnNpb25zL0EvQm9tCiAgICAweDdmZmY0OTM2
NTAwMCAtICAgICAweDdmZmY0OTM5MmZmZiAgY29tLmFwcGxlLkNhbGVuZGFyQWdlbnRMaW5rICg4
LjAgLSAyNTApIDw1NUI2MEIwNC0yRUFBLTNGMjItODhFRi0xNjAyMTI5RDUyOTQ+IC9TeXN0ZW0v
TGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9DYWxlbmRhckFnZW50TGluay5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9DYWxlbmRhckFnZW50TGluawogICAgMHg3ZmZmNDlhNWQwMDAgLSAgICAgMHg3ZmZm
NDlhYWNmZjMgIGNvbS5hcHBsZS5DaHVua2luZ0xpYnJhcnkgKDE4OSAtIDE4OSkgPEMwMjFBMEVC
LTgyRTctM0ExRS1BNzcyLTk2QjBFN0UwMzhEOT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFt
ZXdvcmtzL0NodW5raW5nTGlicmFyeS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9DaHVua2luZ0xpYnJh
cnkKICAgIDB4N2ZmZjRhNjM1MDAwIC0gICAgIDB4N2ZmZjRhNjNlZmYzICBjb20uYXBwbGUuQ29t
bW9uQXV0aCAoNC4wIC0gMi4wKSA8NEQyMzdCMjUtMjdFNS0zNTc3LTk0OEItMDczNjU5RjZEM0Mw
PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQ29tbW9uQXV0aC5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9Db21tb25BdXRoCiAgICAweDdmZmY0YTY1MzAwMCAtICAgICAweDdmZmY0YTY2
OGZmNyAgY29tLmFwcGxlLmNvbW1vbnV0aWxpdGllcyAoOC4wIC0gOTAwKSA8NUVDMDJCRDQtRjFG
OC0zQTk2LUJFMUEtNjYyMEQzMDgwQ0Q0PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29y
a3MvQ29tbW9uVXRpbGl0aWVzLmZyYW1ld29yay9WZXJzaW9ucy9BL0NvbW1vblV0aWxpdGllcwog
ICAgMHg3ZmZmNGE4OTcwMDAgLSAgICAgMHg3ZmZmNGE4ZjdmZmYgIGNvbS5hcHBsZS5BZGRyZXNz
Qm9vay5Db250YWN0c0ZvdW5kYXRpb24gKDguMCAtID8/PykgPDk5N0FBREE0LUREOEEtMzhDNS1C
NDQxLUMzRkVEQzVBRkNFNz4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NvbnRh
Y3RzRm91bmRhdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db250YWN0c0ZvdW5kYXRpb24KICAg
IDB4N2ZmZjRhOGY4MDAwIC0gICAgIDB4N2ZmZjRhOTFhZmZmICBjb20uYXBwbGUuY29udGFjdHMu
Q29udGFjdHNQZXJzaXN0ZW5jZSAoMS4wIC0gMjMzMC4zKSA8QjdFQTJEMEEtOEE0My0zRTlDLUE3
RDItRTk1ODUwNjRDMzI4PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQ29udGFj
dHNQZXJzaXN0ZW5jZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db250YWN0c1BlcnNpc3RlbmNlCiAg
ICAweDdmZmY0YTk3YTAwMCAtICAgICAweDdmZmY0YWQ4MmZmZiAgY29tLmFwcGxlLkNvcmVBVUMg
KDI1OS4wLjAgLSAyNTkuMC4wKSA8MUUwRkIyQzctMTA5RS0zOTI0LThFN0YtOEM2QUNENzhBRjI2
PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQ29yZUFVQy5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9Db3JlQVVDCiAgICAweDdmZmY0YWQ4MzAwMCAtICAgICAweDdmZmY0YWRiM2ZmNyAg
Y29tLmFwcGxlLkNvcmVBVkNIRCAoNS45LjAgLSA1OTAwLjQuMSkgPEU5RkY5NTc0LTEyMkEtMzk2
Ni1BQTJCLTU0NkU1MTJBQ0QwNj4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0Nv
cmVBVkNIRC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Db3JlQVZDSEQKICAgIDB4N2ZmZjRhZGNhMDAw
IC0gICAgIDB4N2ZmZjRhZGY3ZmZmICBjb20uYXBwbGUuQ29yZUFuYWx5dGljcy5Db3JlQW5hbHl0
aWNzICgxLjAgLSAxKSA8QTUwOEM3NEMtMTE0RC0zMTU2LUFDODctOEYxMkEyQzAyM0M5PiAvU3lz
dGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvQ29yZUFuYWx5dGljcy5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9Db3JlQW5hbHl0aWNzCiAgICAweDdmZmY0YWU0OTAwMCAtICAgICAweDdmZmY0YWU4
YmZmMyAgY29tLmFwcGxlLmNvcmVicmlnaHRuZXNzICgxLjAgLSAxKSA8RjQwRkZERjMtNURGNC0z
MDhBLThGNDYtQzdBOUJFRDVEOEJCPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3Mv
Q29yZUJyaWdodG5lc3MuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZUJyaWdodG5lc3MKICAgIDB4
N2ZmZjRhZmNhMDAwIC0gICAgIDB4N2ZmZjRhZmQzZmY3ICBjb20uYXBwbGUuZnJhbWV3b3Jrcy5D
b3JlRGFlbW9uICgxLjMgLSAxLjMpIDwzNUE0MzU4NC0yQUY4LTMyMDItQTEzOS0yN0Q5MTZFNDQ0
QkU+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Db3JlRGFlbW9uLmZyYW1ld29y
ay9WZXJzaW9ucy9CL0NvcmVEYWVtb24KICAgIDB4N2ZmZjRiMTQxMDAwIC0gICAgIDB4N2ZmZjRi
MTUxZmY3ICBjb20uYXBwbGUuQ29yZUVtb2ppICgxLjAgLSA2OS4zKSA8QTQzNTdGNUMtMEMzOC0z
QTYxLUI0NTYtRDczMjFFQjJDRUU1PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3Mv
Q29yZUVtb2ppLmZyYW1ld29yay9WZXJzaW9ucy9BL0NvcmVFbW9qaQogICAgMHg3ZmZmNGJhMGMw
MDAgLSAgICAgMHg3ZmZmNGJhMjJmZjcgIGNvbS5hcHBsZS5Db3JlTWVkaWFBdXRob3JpbmcgKDIu
MiAtIDk1NikgPEZCQTI4QTc2LTk3RTItMzAyMy1BM0Y2LUQwMzI4MEFFMjg4OT4gL1N5c3RlbS9M
aWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NvcmVNZWRpYUF1dGhvcmluZy5mcmFtZXdvcmsvVmVy
c2lvbnMvQS9Db3JlTWVkaWFBdXRob3JpbmcKICAgIDB4N2ZmZjRiZDUxMDAwIC0gICAgIDB4N2Zm
ZjRiZDU2ZmY3ICBjb20uYXBwbGUuQ29yZU9wdGltaXphdGlvbiAoMS4wIC0gMSkgPDc4NUI2MjJC
LThGN0QtM0I0RC04M0FGLUVCOThDQjc5RkZGNj4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFt
ZXdvcmtzL0NvcmVPcHRpbWl6YXRpb24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZU9wdGltaXph
dGlvbgogICAgMHg3ZmZmNGJkNTcwMDAgLSAgICAgMHg3ZmZmNGJkZmNmZmYgIGNvbS5hcHBsZS5D
b3JlUERGICg0LjAgLSA0MTQpIDxENjREMTdDMy05QUQwLTNBMjktODlERS0zNkJFRjAxNTYzODE+
IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Db3JlUERGLmZyYW1ld29yay9WZXJz
aW9ucy9BL0NvcmVQREYKICAgIDB4N2ZmZjRiZTljMDAwIC0gICAgIDB4N2ZmZjRiZWE0ZmYzICBj
b20uYXBwbGUuQ29yZVBob25lTnVtYmVycyAoMS4wIC0gMSkgPEE1RDQxMjUxLTlGMzgtM0FCOS05
REU3LUY3NzAyM0ZBQUE0ND4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NvcmVQ
aG9uZU51bWJlcnMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZVBob25lTnVtYmVycwogICAgMHg3
ZmZmNGJlYTUwMDAgLSAgICAgMHg3ZmZmNGJmMDFmZmYgIGNvbS5hcHBsZS5Db3JlUHJlZGljdGlv
biAoMS4wIC0gMSkgPEEyNjQyNURGLUUyMjItMzMzQi04Q0FFLTYxNDFBNThCMTcyQz4gL1N5c3Rl
bS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NvcmVQcmVkaWN0aW9uLmZyYW1ld29yay9WZXJz
aW9ucy9BL0NvcmVQcmVkaWN0aW9uCiAgICAweDdmZmY0YzAyZjAwMCAtICAgICAweDdmZmY0YzA2
MGZmMyAgY29tLmFwcGxlLkNvcmVTZXJ2aWNlc0ludGVybmFsICgzMDkuMSAtIDMwOS4xKSA8RUIw
OUNBRkMtQUU5Qi0zMjU3LUJFNDUtNTQ3MUQ5RjY0QUFEPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0
ZUZyYW1ld29ya3MvQ29yZVNlcnZpY2VzSW50ZXJuYWwuZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29y
ZVNlcnZpY2VzSW50ZXJuYWwKICAgIDB4N2ZmZjRjMzljMDAwIC0gICAgIDB4N2ZmZjRjNDJkZmZm
ICBjb20uYXBwbGUuQ29yZVN5bWJvbGljYXRpb24gKDkuMyAtIDY0MDI2KSA8QkFGM0NFNkUtODE0
MC0zMTU5LUJGMUItQjk1MzgxNjQ1OUEwPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29y
a3MvQ29yZVN5bWJvbGljYXRpb24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZVN5bWJvbGljYXRp
b24KICAgIDB4N2ZmZjRjNGIwMDAwIC0gICAgIDB4N2ZmZjRjNWU0ZmZmICBjb20uYXBwbGUuY29y
ZXVpICgyLjEgLSA0OTQuMSkgPDE5NjI0Q0FBLTc0REUtM0REMy05NTg1LUU2NEJFODY2RUJGRj4g
L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0NvcmVVSS5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9Db3JlVUkKICAgIDB4N2ZmZjRjNWU1MDAwIC0gICAgIDB4N2ZmZjRjNzE1ZmY3ICBjb20u
YXBwbGUuQ29yZVV0aWxzICg1LjUgLSA1NTAuNDQpIDxERkMzNjRDMy0wODEyLTMxQjUtOUM3OS1D
ODFDMkRGRERCOEI+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Db3JlVXRpbHMu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvQ29yZVV0aWxzCiAgICAweDdmZmY0Yzc2YTAwMCAtICAgICAw
eDdmZmY0YzdjZWZmZiAgY29tLmFwcGxlLmZyYW1ld29yay5Db3JlV2lGaSAoMTMuMCAtIDEzNTAu
MSkgPDZFQzVERUIzLTZFMkYtM0RDMi1CRTU5LTFGRDA1MTc1RkIwQz4gL1N5c3RlbS9MaWJyYXJ5
L1ByaXZhdGVGcmFtZXdvcmtzL0NvcmVXaUZpLmZyYW1ld29yay9WZXJzaW9ucy9BL0NvcmVXaUZp
CiAgICAweDdmZmY0YzdjZjAwMCAtICAgICAweDdmZmY0YzdkZmZmNyAgY29tLmFwcGxlLkNyYXNo
UmVwb3J0ZXJTdXBwb3J0ICgxMC4xMyAtIDEpIDw0RDBERjc0MS04QkZBLTNCQ0YtOTcxRC02RUY4
NDkwMTk1MzQ+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9DcmFzaFJlcG9ydGVy
U3VwcG9ydC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9DcmFzaFJlcG9ydGVyU3VwcG9ydAogICAgMHg3
ZmZmNGM4NWQwMDAgLSAgICAgMHg3ZmZmNGM4NmNmZjcgIGNvbS5hcHBsZS5mcmFtZXdvcmsuREZS
Rm91bmRhdGlvbiAoMS4wIC0gMTkxLjcpIDwzQjhFRDZGNy01REZGLTM0QzMtQkE5MC1EREI4NTY3
OTY4NEM+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9ERlJGb3VuZGF0aW9uLmZy
YW1ld29yay9WZXJzaW9ucy9BL0RGUkZvdW5kYXRpb24KICAgIDB4N2ZmZjRjODZmMDAwIC0gICAg
IDB4N2ZmZjRjODczZmZiICBjb20uYXBwbGUuRFNFeHRlcm5hbERpc3BsYXkgKDMuMSAtIDM4MCkg
PDhEMDNEMzQ2LTg4N0EtM0NFNy05NDgzLTRBRDc4MDREMUZCQj4gL1N5c3RlbS9MaWJyYXJ5L1By
aXZhdGVGcmFtZXdvcmtzL0RTRXh0ZXJuYWxEaXNwbGF5LmZyYW1ld29yay9WZXJzaW9ucy9BL0RT
RXh0ZXJuYWxEaXNwbGF5CiAgICAweDdmZmY0YzhiNDAwMCAtICAgICAweDdmZmY0YzhmNGZmYiAg
Y29tLmFwcGxlLmRhdGFkZXRlY3RvcnMgKDUuMCAtIDM3Ni4xKSA8MTJCRjgzNEMtMEIxOS0zNzE5
LUJDQzQtNzk2NTY4OTAxMTA3PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvRGF0
YURldGVjdG9ycy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9EYXRhRGV0ZWN0b3JzCiAgICAweDdmZmY0
YzhmNTAwMCAtICAgICAweDdmZmY0Yzk2YmZmZiAgY29tLmFwcGxlLmRhdGFkZXRlY3RvcnNjb3Jl
ICg3LjAgLSA1OTAuMykgPDgzRTg1QTYyLTQ0QTgtMzNGOC1BRDc5LUFDNEM4MDcxODRDND4gL1N5
c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0RhdGFEZXRlY3RvcnNDb3JlLmZyYW1ld29y
ay9WZXJzaW9ucy9BL0RhdGFEZXRlY3RvcnNDb3JlCiAgICAweDdmZmY0YzliOTAwMCAtICAgICAw
eDdmZmY0YzlmOWZmNyAgY29tLmFwcGxlLkRlYnVnU3ltYm9scyAoMTgxLjAgLSAxODEuMCkgPDI5
OUEwMjM4LUVENzgtMzY3Ni1CMTMxLTI3NEQ5NzI4MjRBQT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZh
dGVGcmFtZXdvcmtzL0RlYnVnU3ltYm9scy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9EZWJ1Z1N5bWJv
bHMKICAgIDB4N2ZmZjRjOWZhMDAwIC0gICAgIDB4N2ZmZjRjYjI5ZmZmICBjb20uYXBwbGUuZGVz
a3RvcHNlcnZpY2VzICgxLjEyLjQgLSAxLjEyLjQpIDw0N0MzRkJGMy01RTc1LTM4MjEtQjAwMy0y
QTREQzM2NTdEOEQ+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9EZXNrdG9wU2Vy
dmljZXNQcml2LmZyYW1ld29yay9WZXJzaW9ucy9BL0Rlc2t0b3BTZXJ2aWNlc1ByaXYKICAgIDB4
N2ZmZjRjYjliMDAwIC0gICAgIDB4N2ZmZjRjYjljZmY3ICBjb20uYXBwbGUuZGlhZ25vc3RpY2xv
Z2NvbGxlY3Rpb24gKDEwLjAgLSAxMDAwKSA8REEyNDI3RDEtODJBQS0zNzE4LTkwN0YtMDU1NDM2
NjUxODRCPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvRGlhZ25vc3RpY0xvZ0Nv
bGxlY3Rpb24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvRGlhZ25vc3RpY0xvZ0NvbGxlY3Rpb24KICAg
IDB4N2ZmZjRjZGY0MDAwIC0gICAgIDB4N2ZmZjRjZGY4ZmY3ICBjb20uYXBwbGUuRGlzcGxheVNl
cnZpY2VzRlcgKDMuMSAtIDM4MCkgPDc5QzVGOUI1LUQ5NUYtM0I4Ni1CRjk4LUMxMDNCODYyRUZF
Mz4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0Rpc3BsYXlTZXJ2aWNlcy5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9EaXNwbGF5U2VydmljZXMKICAgIDB4N2ZmZjRkNWU2MDAwIC0gICAg
IDB4N2ZmZjRkNWZlZmZmICBjb20uYXBwbGUuRW5ncmFtICgxLjAgLSAxKSA8NDdCNTY4QUYtREY3
NS0zMDM5LUFENTUtODAyQTJDODI2RDA4PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29y
a3MvRW5ncmFtLmZyYW1ld29yay9WZXJzaW9ucy9BL0VuZ3JhbQogICAgMHg3ZmZmNGQ5NDAwMDAg
LSAgICAgMHg3ZmZmNGRkNmVmZmYgIGNvbS5hcHBsZS52aXNpb24uRmFjZUNvcmUgKDMuMy4yIC0g
My4zLjIpIDxCNTc0RkUzMy00QTQxLTM2MTEtOTczOC0zODhFQkFGMDNFMzc+IC9TeXN0ZW0vTGli
cmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9GYWNlQ29yZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9GYWNl
Q29yZQogICAgMHg3ZmZmNTEwMmEwMDAgLSAgICAgMHg3ZmZmNTEwMzVmZjcgIGxpYkdQVVN1cHBv
cnRNZXJjdXJ5LmR5bGliICgxNi41LjEwKSA8Q0VBRTI3MTQtN0Q2Ri0zQjI2LTlGMUUtNTAxRTc5
Qzk3OUEyPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvR1BVU3VwcG9ydC5mcmFt
ZXdvcmsvVmVyc2lvbnMvQS9MaWJyYXJpZXMvbGliR1BVU3VwcG9ydE1lcmN1cnkuZHlsaWIKICAg
IDB4N2ZmZjUxMDM2MDAwIC0gICAgIDB4N2ZmZjUxMDNiZmY3ICBjb20uYXBwbGUuR1BVV3Jhbmds
ZXIgKDMuMTguNDggLSAzLjE4LjQ4KSA8RDJCQTRDRkEtRUQwQS0zRkVDLUI1RkYtMkQ2QzA1NTcz
MzRFPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvR1BVV3JhbmdsZXIuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvR1BVV3JhbmdsZXIKICAgIDB4N2ZmZjUxM2VmMDAwIC0gICAgIDB4N2Zm
ZjUxNDE0ZmYzICBjb20uYXBwbGUuR2VuZXJhdGlvbmFsU3RvcmFnZSAoMi4wIC0gMjg1LjMpIDwx
M0I5NjQwMC1GRjcwLTM3NkItQjIwRS1GQjdENjEwNjQ4MDA+IC9TeXN0ZW0vTGlicmFyeS9Qcml2
YXRlRnJhbWV3b3Jrcy9HZW5lcmF0aW9uYWxTdG9yYWdlLmZyYW1ld29yay9WZXJzaW9ucy9BL0dl
bmVyYXRpb25hbFN0b3JhZ2UKICAgIDB4N2ZmZjUxNDJjMDAwIC0gICAgIDB4N2ZmZjUxZDZlZmY3
ICBjb20uYXBwbGUuR2VvU2VydmljZXMgKDEuMCAtIDEzNjMuMjQuOC4xNS41OCkgPEJBQjZGMzAw
LUE3QzAtM0NFOC1BMTVELURBRTA3ODZBQjQ1OD4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFt
ZXdvcmtzL0dlb1NlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9ucy9BL0dlb1NlcnZpY2VzCiAgICAw
eDdmZmY1MWRiMTAwMCAtICAgICAweDdmZmY1MWRjMGZmZiAgY29tLmFwcGxlLkdyYXBoVmlzdWFs
aXplciAoMS4wIC0gNSkgPEI5OTNCOEEyLTU3MDAtM0RGQy05RUI3LTRDQ0VFOEY5NTlGMT4gL1N5
c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0dyYXBoVmlzdWFsaXplci5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9HcmFwaFZpc3VhbGl6ZXIKICAgIDB4N2ZmZjUxZTQzMDAwIC0gICAgIDB4N2Zm
ZjUxZWI3ZmZmICBjb20uYXBwbGUuSGVpbWRhbCAoNC4wIC0gMi4wKSA8MTg2MDdENzUtREI3OC0z
Q0M3LTk0N0UtQUM3NjkxOTUxNjRDPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3Mv
SGVpbWRhbC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9IZWltZGFsCiAgICAweDdmZmY1MWY1MjAwMCAt
ICAgICAweDdmZmY1MjA2N2ZmZiAgY29tLmFwcGxlLmlkcyAoMTAuMCAtIDEwMDApIDxGNTQwNUJC
NC0xMzQ0LTM0NUYtOTA2NS0wRTkyMzBENjlERDI+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJh
bWV3b3Jrcy9JRFMuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSURTCiAgICAweDdmZmY1MjA2ODAwMCAt
ICAgICAweDdmZmY1MjE0OGZmYiAgY29tLmFwcGxlLmlkc2ZvdW5kYXRpb24gKDEwLjAgLSAxMDAw
KSA8MjgyNEJDMDItNzUzRi0zMEJDLUExNkItMkIyQzE3N0EzRjBFPiAvU3lzdGVtL0xpYnJhcnkv
UHJpdmF0ZUZyYW1ld29ya3MvSURTRm91bmRhdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9JRFNG
b3VuZGF0aW9uCiAgICAweDdmZmY1MjY4NTAwMCAtICAgICAweDdmZmY1MjZlYmZmMyAgY29tLmFw
cGxlLmltZm91bmRhdGlvbiAoMTAuMCAtIDEwMDApIDxFOTE0NjBBQi01QTM4LTMwRkUtQUUwOC02
NTlCRjBDMzE5NzE+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JTUZvdW5kYXRp
b24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvSU1Gb3VuZGF0aW9uCiAgICAweDdmZmY1MjdiMzAwMCAt
ICAgICAweDdmZmY1MjdiYWZmNyAgY29tLmFwcGxlLklPQWNjZWxlcmF0b3IgKDM3OC4xOC4xIC0g
Mzc4LjE4LjEpIDxFNDdEREU2Ni0xQjJCLTMxMEYtQTA2MC02MzhDQTVEODZGOUM+IC9TeXN0ZW0v
TGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9JT0FjY2VsZXJhdG9yLmZyYW1ld29yay9WZXJzaW9u
cy9BL0lPQWNjZWxlcmF0b3IKICAgIDB4N2ZmZjUyN2JlMDAwIC0gICAgIDB4N2ZmZjUyN2Q2ZmZm
ICBjb20uYXBwbGUuSU9QcmVzZW50bWVudCAoMS4wIC0gMzUuMSkgPDIxNEFENTgyLTQ2NkYtMzg0
NC1BMEE0LURFMDc0MkE4Qjg5OT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0lP
UHJlc2VudG1lbnQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvSU9QcmVzZW50bWVudAogICAgMHg3ZmZm
NTJiYTEwMDAgLSAgICAgMHg3ZmZmNTJiYzdmZmIgIGNvbS5hcHBsZS5JY29uU2VydmljZXMgKDk3
LjYgLSA5Ny42KSA8QTU2RDgyNkQtMjBEMi0zNEJFLUFBQ0MtQTgwQ0ZDQjRFOTE1PiAvU3lzdGVt
L0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvSWNvblNlcnZpY2VzLmZyYW1ld29yay9WZXJzaW9u
cy9BL0ljb25TZXJ2aWNlcwogICAgMHg3ZmZmNTJjZDMwMDAgLSAgICAgMHg3ZmZmNTJjZDZmZjMg
IGNvbS5hcHBsZS5JbnRlcm5hdGlvbmFsU3VwcG9ydCAoMS4wIC0gMSkgPDVBQjM4MkZELUJGODEt
MzZBMS05NTY1LTYxRjFGRDM5OEVDQT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtz
L0ludGVybmF0aW9uYWxTdXBwb3J0LmZyYW1ld29yay9WZXJzaW9ucy9BL0ludGVybmF0aW9uYWxT
dXBwb3J0CiAgICAweDdmZmY1MmQ0NDAwMCAtICAgICAweDdmZmY1MmQ1NGZmYiAgY29tLmFwcGxl
LkludGxQcmVmZXJlbmNlcyAoMi4wIC0gMjI3LjUuMikgPDQzNkJCRTlCLTU5NUItMzdFQi04QjU0
LUIzMzJCNkFFM0U1Nz4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0ludGxQcmVm
ZXJlbmNlcy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9JbnRsUHJlZmVyZW5jZXMKICAgIDB4N2ZmZjUy
ZTVmMDAwIC0gICAgIDB4N2ZmZjUyZjU0ZmY3ICBjb20uYXBwbGUuTGFuZ3VhZ2VNb2RlbGluZyAo
MS4wIC0gMTU5LjUuMykgPDdGMEFDMjAwLUUzREQtMzlGQi04QTk1LTAwREQ3MEI2NkE5Rj4gL1N5
c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL0xhbmd1YWdlTW9kZWxpbmcuZnJhbWV3b3Jr
L1ZlcnNpb25zL0EvTGFuZ3VhZ2VNb2RlbGluZwogICAgMHg3ZmZmNTJmNTUwMDAgLSAgICAgMHg3
ZmZmNTJmOTdmZmYgIGNvbS5hcHBsZS5MZXhpY29uLWZyYW1ld29yayAoMS4wIC0gMzMuNSkgPERD
OTRDRjlFLTFFQjQtM0MwRS1CMjk4LUNBMTE5MDg4NTI3Nj4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZh
dGVGcmFtZXdvcmtzL0xleGljb24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvTGV4aWNvbgogICAgMHg3
ZmZmNTJmOWIwMDAgLSAgICAgMHg3ZmZmNTJmYTJmZjcgIGNvbS5hcHBsZS5MaW5ndWlzdGljRGF0
YSAoMS4wIC0gMjM4LjMpIDw0OUE1NDY0OS0xMDIxLTNEQkQtOTlCOC0xQjJFREZGQTUzNzg+IC9T
eXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9MaW5ndWlzdGljRGF0YS5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9MaW5ndWlzdGljRGF0YQogICAgMHg3ZmZmNTMwZTMwMDAgLSAgICAgMHg3ZmZm
NTMxMDBmZjcgIGNvbS5hcHBsZS5Mb29rdXBGcmFtZXdvcmsgKDEuMiAtIDIzOS4xKSA8OUE1RTUy
MjYtNkVBMi0zNDg3LTg4N0ItOTdBMDNCNDE2OUUwPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZy
YW1ld29ya3MvTG9va3VwLmZyYW1ld29yay9WZXJzaW9ucy9BL0xvb2t1cAogICAgMHg3ZmZmNTM3
YTEwMDAgLSAgICAgMHg3ZmZmNTM3YTRmZmYgIGNvbS5hcHBsZS5NYW5ncm92ZSAoMS4wIC0gMSkg
PDI3RDZERjc2LUI1RjgtMzQ0My04ODI2LUQyNUIyODQzMzFCRj4gL1N5c3RlbS9MaWJyYXJ5L1By
aXZhdGVGcmFtZXdvcmtzL01hbmdyb3ZlLmZyYW1ld29yay9WZXJzaW9ucy9BL01hbmdyb3ZlCiAg
ICAweDdmZmY1MzgzMDAwMCAtICAgICAweDdmZmY1MzgzMmZmNyAgY29tLmFwcGxlLm1hcmNvICgx
MC4wIC0gMTAwMCkgPEYwOUYxN0ZBLUQ0MjAtM0MyNC04QzQ3LThEQzE2Mzc0NTNCQT4gL1N5c3Rl
bS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL01hcmNvLmZyYW1ld29yay9WZXJzaW9ucy9BL01h
cmNvCiAgICAweDdmZmY1M2M4MTAwMCAtICAgICAweDdmZmY1M2NlYWZmNyAgY29tLmFwcGxlLmdw
dXN3Lk1ldGFsVG9vbHMgKDEuMCAtIDEpIDxCNUY2NkNGNC1CRTc1LTNBMEItQTZBMC0yRjIyQzdD
MjU5RDk+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9NZXRhbFRvb2xzLmZyYW1l
d29yay9WZXJzaW9ucy9BL01ldGFsVG9vbHMKICAgIDB4N2ZmZjUzY2YzMDAwIC0gICAgIDB4N2Zm
ZjUzZDBhZmY3ICBjb20uYXBwbGUuTW9iaWxlQXNzZXRzICgxLjAgLSA0MzcuNTAuMzcpIDw2NzUw
NjNDRC04MzM1LTMyQzItQUFBRi00NkNBNUMyNjU4MDA+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRl
RnJhbWV3b3Jrcy9Nb2JpbGVBc3NldC5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Nb2JpbGVBc3NldAog
ICAgMHg3ZmZmNTNlNjIwMDAgLSAgICAgMHg3ZmZmNTNlN2JmZjcgIGNvbS5hcHBsZS5Nb2JpbGVL
ZXlCYWcgKDIuMCAtIDEuMCkgPDg4ODc2QjhELUE2OEEtMzQ2MS04NEYzLUExQThENUYzRDQ5Nz4g
L1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL01vYmlsZUtleUJhZy5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9Nb2JpbGVLZXlCYWcKICAgIDB4N2ZmZjUzZjA3MDAwIC0gICAgIDB4N2ZmZjUz
ZjMxZmZiICBjb20uYXBwbGUuTXVsdGl0b3VjaFN1cHBvcnQuZnJhbWV3b3JrICgxNDA0LjQgLSAx
NDA0LjQpIDw0NTM3NEEyQS1DMEJDLTNBNzAtODE4My0zNzI5NTIwNUNERkE+IC9TeXN0ZW0vTGli
cmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9NdWx0aXRvdWNoU3VwcG9ydC5mcmFtZXdvcmsvVmVyc2lv
bnMvQS9NdWx0aXRvdWNoU3VwcG9ydAogICAgMHg3ZmZmNTQxOTgwMDAgLSAgICAgMHg3ZmZmNTQx
YTNmZmYgIGNvbS5hcHBsZS5OZXRBdXRoICg2LjIgLSA2LjIpIDxCMzc5NUY2My1DMTRBLTMzRTEt
OUVFNi0wMkEyRTc2NjEzMjE+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9OZXRB
dXRoLmZyYW1ld29yay9WZXJzaW9ucy9BL05ldEF1dGgKICAgIDB4N2ZmZjU0MWIwMDAwIC0gICAg
IDB4N2ZmZjU0MjliZmYzICBjb20uYXBwbGUuTmV0d29yayAoMS4wIC0gMSkgPDAzQTVFMjI5LTBG
RTYtMzUxNC1CNzc1LTNBNjI1MjY2NkI4Nz4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdv
cmtzL05ldHdvcmsuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTmV0d29yawogICAgMHg3ZmZmNTRhMDcw
MDAgLSAgICAgMHg3ZmZmNTRhMDlmZmYgIGNvbS5hcHBsZS5PQXV0aCAoMjUgLSAyNSkgPEEwQjNE
MDU0LThGNzQtMzcxOS05OUY5LUU5NDNCOEFERDY3Mz4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVG
cmFtZXdvcmtzL09BdXRoLmZyYW1ld29yay9WZXJzaW9ucy9BL09BdXRoCiAgICAweDdmZmY1NWEz
NTAwMCAtICAgICAweDdmZmY1NWE0NWZmYiAgY29tLmFwcGxlLlBlcmZvcm1hbmNlQW5hbHlzaXMg
KDEuMTk0IC0gMTk0KSA8RDAyMTFBRDEtNzJCMy0zNDkzLTkyQzktQjRGNDBFRDU4MUQ1PiAvU3lz
dGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvUGVyZm9ybWFuY2VBbmFseXNpcy5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9QZXJmb3JtYW5jZUFuYWx5c2lzCiAgICAweDdmZmY1NWFiZDAwMCAtICAg
ICAweDdmZmY1NWFiZGZmNyAgY29tLmFwcGxlLlBob25lTnVtYmVycyAoMS4wIC0gMSkgPEVCODI2
NDVDLUFGMTktMzc1MS04QTUzLUY2MTQ4Rjc3RUMzOD4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVG
cmFtZXdvcmtzL1Bob25lTnVtYmVycy5mcmFtZXdvcmsvVmVyc2lvbnMvQS9QaG9uZU51bWJlcnMK
ICAgIDB4N2ZmZjU3NDhmMDAwIC0gICAgIDB4N2ZmZjU3NGI0ZmZmICBjb20uYXBwbGUucGx1Z2lu
a2l0LmZyYW1ld29yayAoMS4wIC0gMSkgPDJEQ0E0OTlCLUQ3RDAtMzgzRS1CNjg2LTk5ODQ1NkZE
REY4RD4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1BsdWdJbktpdC5mcmFtZXdv
cmsvVmVyc2lvbnMvQS9QbHVnSW5LaXQKICAgIDB4N2ZmZjU3ODAzMDAwIC0gICAgIDB4N2ZmZjU3
ODIxZmZmICBjb20uYXBwbGUuUHJvdG9jb2xCdWZmZXIgKDEgLSAyNjApIDw0MDcwNDc0MC00QTUz
LTMwMTAtQTQ5Qi0wOEQxRDY5RDFENUU+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jr
cy9Qcm90b2NvbEJ1ZmZlci5mcmFtZXdvcmsvVmVyc2lvbnMvQS9Qcm90b2NvbEJ1ZmZlcgogICAg
MHg3ZmZmNTc5OGUwMDAgLSAgICAgMHg3ZmZmNTc5YTRmZjcgIGNvbS5hcHBsZS5RdWlja0xvb2tU
aHVtYm5haWxpbmcgKDEuMCAtIDEpIDw4RjAwOTJFNC02NDk0LTM0OUQtQjRDOS00OTRERjI5M0Q3
MTY+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9RdWlja0xvb2tUaHVtYm5haWxp
bmcuZnJhbWV3b3JrL1ZlcnNpb25zL0EvUXVpY2tMb29rVGh1bWJuYWlsaW5nCiAgICAweDdmZmY1
NzllZTAwMCAtICAgICAweDdmZmY1NzlmYWZmZiAgY29tLmFwcGxlLnhwYy5SZW1vdGVTZXJ2aWNl
RGlzY292ZXJ5ICgxLjAgLSAxMjA1LjUwLjc2KSA8QzczNTAzOEEtQkM3RS0zREUzLUIzNTAtNjQ0
OTQwNEZDMjU5PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvUmVtb3RlU2Vydmlj
ZURpc2NvdmVyeS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9SZW1vdGVTZXJ2aWNlRGlzY292ZXJ5CiAg
ICAweDdmZmY1NzlmYjAwMCAtICAgICAweDdmZmY1N2ExZWZmYiAgY29tLmFwcGxlLlJlbW90ZVZp
ZXdTZXJ2aWNlcyAoMi4wIC0gMTI1KSA8NTkyMzIzRDEtQ0I0NC0zNUYxLTk5MjEtNEMyQUI4RDky
MEEwPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvUmVtb3RlVmlld1NlcnZpY2Vz
LmZyYW1ld29yay9WZXJzaW9ucy9BL1JlbW90ZVZpZXdTZXJ2aWNlcwogICAgMHg3ZmZmNTdhMWYw
MDAgLSAgICAgMHg3ZmZmNTdhMzNmZjcgIGNvbS5hcHBsZS54cGMuUmVtb3RlWFBDICgxLjAgLSAx
MjA1LjUwLjc2KSA8NkU2N0E2NTYtNTQyQS0zNEJELUI1OTgtNTZCOEQ1QTcwODE0PiAvU3lzdGVt
L0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvUmVtb3RlWFBDLmZyYW1ld29yay9WZXJzaW9ucy9B
L1JlbW90ZVhQQwogICAgMHg3ZmZmNTg3ZmQwMDAgLSAgICAgMHg3ZmZmNTg4NDdmZjcgIGNvbS5h
cHBsZS5TYWZhcmkuU2FmZUJyb3dzaW5nICgxMzYwNSAtIDEzNjA1LjEuMzMuMS4yKSA8Njg3QzQ5
ODYtNjg4OC0zMTBBLTlGMTktMzY2M0YxQzdENjZDPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZy
YW1ld29ya3MvU2FmYXJpU2FmZUJyb3dzaW5nLmZyYW1ld29yay9WZXJzaW9ucy9BL1NhZmFyaVNh
ZmVCcm93c2luZwogICAgMHg3ZmZmNTkyYWYwMDAgLSAgICAgMHg3ZmZmNTkzMmRmZjcgIGNvbS5h
cHBsZS5TaGFyZUtpdCAoMS4wIC0gNTAwKSA8MDcwMUNGMDMtOEM0Ri0zMjVCLTgzMUEtMTQxMzUz
M0IxNDVGPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvU2hhcmVLaXQuZnJhbWV3
b3JrL1ZlcnNpb25zL0EvU2hhcmVLaXQKICAgIDB4N2ZmZjU5MzNiMDAwIC0gICAgIDB4N2ZmZjU5
NDRkZmZmICBjb20uYXBwbGUuU2hhcmluZyAoMTAxOS40NiAtIDEwMTkuNDYpIDwxMjY2QzQxRS0z
Q0E5LTNFRkMtODQxMy1BMzdENTJFQTlGQjI+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3
b3Jrcy9TaGFyaW5nLmZyYW1ld29yay9WZXJzaW9ucy9BL1NoYXJpbmcKICAgIDB4N2ZmZjU5NDc4
MDAwIC0gICAgIDB4N2ZmZjU5NDc5ZmY3ICBjb20uYXBwbGUucGVyZm9ybWFuY2UuU2lnbnBvc3RO
b3RpZmljYXRpb24gKDEuMi40IC0gMi40KSA8OTk1N0IyQzAtNEQ0OC0zMzM3LThBNEQtNUU0NTdD
QzdCNTQyPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvU2lnbnBvc3ROb3RpZmlj
YXRpb24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvU2lnbnBvc3ROb3RpZmljYXRpb24KICAgIDB4N2Zm
ZjVhMWMxMDAwIC0gICAgIDB4N2ZmZjVhNDVkZmZmICBjb20uYXBwbGUuU2t5TGlnaHQgKDEuNjAw
LjAgLSAzMTIuNTApIDwwQ0Y0QzYwOC04NzQ4LTMyQkYtOTU4Ni1BMTYwMTk0NUY4MkM+IC9TeXN0
ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9Ta3lMaWdodC5mcmFtZXdvcmsvVmVyc2lvbnMv
QS9Ta3lMaWdodAogICAgMHg3ZmZmNWFjMjMwMDAgLSAgICAgMHg3ZmZmNWFjMzBmZjcgIGNvbS5h
cHBsZS5TcGVlY2hSZWNvZ25pdGlvbkNvcmUgKDQuMC4xMyAtIDQuMC4xMykgPDhCNTQxOEE0LUNE
QzUtMzIwMC1BRUYwLUYxMDlFMERGOTAxOT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdv
cmtzL1NwZWVjaFJlY29nbml0aW9uQ29yZS5mcmFtZXdvcmsvVmVyc2lvbnMvQS9TcGVlY2hSZWNv
Z25pdGlvbkNvcmUKICAgIDB4N2ZmZjViMGRiMDAwIC0gICAgIDB4N2ZmZjViMTAyZmZmICBjb20u
YXBwbGUuU3RyZWFtaW5nWmlwICgxLjAgLSAxKSA8M0RFOTJBNkQtNTY1RS0zNDc3LTgyQjEtNjYw
OTg3MzE3QkQ4PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvU3RyZWFtaW5nWmlw
LmZyYW1ld29yay9WZXJzaW9ucy9BL1N0cmVhbWluZ1ppcAogICAgMHg3ZmZmNWI3ZDQwMDAgLSAg
ICAgMHg3ZmZmNWI4NWRmYzcgIGNvbS5hcHBsZS5TeW1ib2xpY2F0aW9uICg5LjMgLSA2NDAzMykg
PEZBQTE3MjUyLTYzNzgtMzRBNC1CQkJCLTIyREY1NEVDMTYyNj4gL1N5c3RlbS9MaWJyYXJ5L1By
aXZhdGVGcmFtZXdvcmtzL1N5bWJvbGljYXRpb24uZnJhbWV3b3JrL1ZlcnNpb25zL0EvU3ltYm9s
aWNhdGlvbgogICAgMHg3ZmZmNWJkY2QwMDAgLSAgICAgMHg3ZmZmNWJkZDVmZjcgIGNvbS5hcHBs
ZS5UQ0MgKDEuMCAtIDEpIDxFMUVCNzI3Mi1GRTZGLTM5QUItODNDQS1CMkI1RjJBODhEOUI+IC9T
eXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3b3Jrcy9UQ0MuZnJhbWV3b3JrL1ZlcnNpb25zL0Ev
VENDCiAgICAweDdmZmY1YmZlMjAwMCAtICAgICAweDdmZmY1YzA5ZmZmNyAgY29tLmFwcGxlLlRl
eHR1cmVJTyAoMy43IC0gMy43KSA8RjhCQUM5NTQtNDA1RC0zQ0MzLUFCN0ItMDQ4Qzg2NkVGOTgw
PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvVGV4dHVyZUlPLmZyYW1ld29yay9W
ZXJzaW9ucy9BL1RleHR1cmVJTwogICAgMHg3ZmZmNWMwZjIwMDAgLSAgICAgMHg3ZmZmNWMxMGRm
ZmIgIGNvbS5hcHBsZS5Ub25lS2l0ICgxLjAgLSAxKSA8MDMwRDIyOUYtMDg0Qi0zODUyLTlFRjgt
MUE2MDhBNUM5QjUwPiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvVG9uZUtpdC5m
cmFtZXdvcmsvVmVyc2lvbnMvQS9Ub25lS2l0CiAgICAweDdmZmY1YzEwZTAwMCAtICAgICAweDdm
ZmY1YzEzNWZmZiAgY29tLmFwcGxlLlRvbmVMaWJyYXJ5ICgxLjAgLSAxKSA8NDA2NjlBODctMkU0
OC0zQTQyLTgzMTAtMzQwNDY1ODBDNjg0PiAvU3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29y
a3MvVG9uZUxpYnJhcnkuZnJhbWV3b3JrL1ZlcnNpb25zL0EvVG9uZUxpYnJhcnkKICAgIDB4N2Zm
ZjVjMTQ1MDAwIC0gICAgIDB4N2ZmZjVjMTQ2ZmZmICBjb20uYXBwbGUuVHJ1c3RFdmFsdWF0aW9u
QWdlbnQgKDIuMCAtIDMxKSA8MzlGNTMzQjItMjExRS0zNjM1LUFGNDctMjNGMjc3NDlGRjRBPiAv
U3lzdGVtL0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvVHJ1c3RFdmFsdWF0aW9uQWdlbnQuZnJh
bWV3b3JrL1ZlcnNpb25zL0EvVHJ1c3RFdmFsdWF0aW9uQWdlbnQKICAgIDB4N2ZmZjVjMTRjMDAw
IC0gICAgIDB4N2ZmZjVjMmZiZmZmICBjb20uYXBwbGUuVUlGb3VuZGF0aW9uICgxLjAgLSA1NDcu
MykgPEFDQzEyREY1LUU1MjgtMzNGMy1BMzU4LTRFMUJFQTY4MjM5Qz4gL1N5c3RlbS9MaWJyYXJ5
L1ByaXZhdGVGcmFtZXdvcmtzL1VJRm91bmRhdGlvbi5mcmFtZXdvcmsvVmVyc2lvbnMvQS9VSUZv
dW5kYXRpb24KICAgIDB4N2ZmZjVjZmQwMDAwIC0gICAgIDB4N2ZmZjVkMDlmZmY3ICBjb20uYXBw
bGUuVmlld0JyaWRnZSAoMzQzLjIgLSAzNDMuMikgPDU1MTlGQ0VELTFGODgtM0JFNi05QkUxLTY5
OTkyMDg2QjAxQj4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1ZpZXdCcmlkZ2Uu
ZnJhbWV3b3JrL1ZlcnNpb25zL0EvVmlld0JyaWRnZQogICAgMHg3ZmZmNWQ0MDcwMDAgLSAgICAg
MHg3ZmZmNWQ2MzJmZmIgIGxpYkFXRFN1cHBvcnRGcmFtZXdvcmsuZHlsaWIgKDc5MykgPEQxNDNC
QkVBLTI3NkMtM0MzMy05ODAxLUM2QjY2ODI0RThFQz4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVG
cmFtZXdvcmtzL1dpcmVsZXNzRGlhZ25vc3RpY3MuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTGlicmFy
aWVzL2xpYkFXRFN1cHBvcnRGcmFtZXdvcmsuZHlsaWIKICAgIDB4N2ZmZjVkNjMzMDAwIC0gICAg
IDB4N2ZmZjVkNjQ0ZmY3ICBsaWJwcm90b2J1Zi1saXRlLmR5bGliICg3OTMpIDwwQ0JBOTJGNS1E
QUM3LTM4NTgtQjNFNS00REY3OTJDM0VBQkI+IC9TeXN0ZW0vTGlicmFyeS9Qcml2YXRlRnJhbWV3
b3Jrcy9XaXJlbGVzc0RpYWdub3N0aWNzLmZyYW1ld29yay9WZXJzaW9ucy9BL0xpYnJhcmllcy9s
aWJwcm90b2J1Zi1saXRlLmR5bGliCiAgICAweDdmZmY1ZDY0NTAwMCAtICAgICAweDdmZmY1ZDZh
N2ZmZiAgbGlicHJvdG9idWYuZHlsaWIgKDc5MykgPENFNEI4REJDLTE3RkQtM0U1Ny1CMUJFLUQw
OTdERjYzNDUxMz4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFtZXdvcmtzL1dpcmVsZXNzRGlh
Z25vc3RpY3MuZnJhbWV3b3JrL1ZlcnNpb25zL0EvTGlicmFyaWVzL2xpYnByb3RvYnVmLmR5bGli
CiAgICAweDdmZmY1ZDZhODAwMCAtICAgICAweDdmZmY1ZDZlYmZmNyAgY29tLmFwcGxlLmF3ZCAo
MS4wIC0gOTMwKSA8MUQxOTlBNzYtRThDQi0zOEJCLUIwMEMtMkFBRUExQjlFNzEyPiAvU3lzdGVt
L0xpYnJhcnkvUHJpdmF0ZUZyYW1ld29ya3MvV2lyZWxlc3NEaWFnbm9zdGljcy5mcmFtZXdvcmsv
VmVyc2lvbnMvQS9XaXJlbGVzc0RpYWdub3N0aWNzCiAgICAweDdmZmY1ZDlmNTAwMCAtICAgICAw
eDdmZmY1ZDlmN2ZmYiAgY29tLmFwcGxlLmxvZ2luc3VwcG9ydCAoMS4wIC0gMSkgPEQxMjMyQzFC
LTgwRUEtM0RGOC05NDY2LTAxMzY5NUQwODQ2RT4gL1N5c3RlbS9MaWJyYXJ5L1ByaXZhdGVGcmFt
ZXdvcmtzL2xvZ2luLmZyYW1ld29yay9WZXJzaW9ucy9BL0ZyYW1ld29ya3MvbG9naW5zdXBwb3J0
LmZyYW1ld29yay9WZXJzaW9ucy9BL2xvZ2luc3VwcG9ydAogICAgMHg3ZmZmNWRhMzgwMDAgLSAg
ICAgMHg3ZmZmNWRhNjVmZmYgIGNvbS5hcHBsZS5jb250YWN0cy52Q2FyZCAoMS4wIC0gMjMzMC4z
KSA8MDJBQjlERjAtMDQ3MS0zRkRBLThFQzYtMjdDNzJFMDBERDc1PiAvU3lzdGVtL0xpYnJhcnkv
UHJpdmF0ZUZyYW1ld29ya3MvdkNhcmQuZnJhbWV3b3JrL1ZlcnNpb25zL0EvdkNhcmQKICAgIDB4
N2ZmZjVkYjVlMDAwIC0gICAgIDB4N2ZmZjVkYjkxZmY3ICBsaWJjbG9zdXJlZC5keWxpYiAoNTUx
LjMpIDxEQzNEQTY3OC05QzQwLTMzOUMtQTlDNi0zMkFCNzRGQ0M2ODI+IC91c3IvbGliL2Nsb3N1
cmUvbGliY2xvc3VyZWQuZHlsaWIKICAgIDB4N2ZmZjVkYzRiMDAwIC0gICAgIDB4N2ZmZjVkYzg0
ZmY3ICBsaWJDUkZTdWl0ZS5keWxpYiAoNDEpIDxGRTVFREI2OC0yNTkzLTNDMkUtQkJBRi0xQzUy
RDIwNkYyOTY+IC91c3IvbGliL2xpYkNSRlN1aXRlLmR5bGliCiAgICAweDdmZmY1ZGM4NTAwMCAt
ICAgICAweDdmZmY1ZGM5MGZmZiAgbGliQ2hpbmVzZVRva2VuaXplci5keWxpYiAoMjgpIDw1MzYz
M0M5Qi1BM0E4LTM2RjctQTUzQy00MzJEODAyRjRCQjg+IC91c3IvbGliL2xpYkNoaW5lc2VUb2tl
bml6ZXIuZHlsaWIKICAgIDB4N2ZmZjVkZDIyMDAwIC0gICAgIDB4N2ZmZjVkZDIzZmYzICBsaWJE
aWFnbm9zdGljTWVzc2FnZXNDbGllbnQuZHlsaWIgKDEwNCkgPDk3MTJFOTgwLTc2RUUtM0E4OS1B
RUE2LURGNEJBRjVDMDU3ND4gL3Vzci9saWIvbGliRGlhZ25vc3RpY01lc3NhZ2VzQ2xpZW50LmR5
bGliCiAgICAweDdmZmY1ZGQ1YTAwMCAtICAgICAweDdmZmY1ZGYyNGZmMyAgbGliRm9zbF9keW5h
bWljLmR5bGliICgxNy44KSA8QzU4RUQ3N0EtNDk4Ni0zMUMyLTk5NEMtMzREREZCODEwNkYwPiAv
dXNyL2xpYi9saWJGb3NsX2R5bmFtaWMuZHlsaWIKICAgIDB4N2ZmZjVkZjQ0MDAwIC0gICAgIDB4
N2ZmZjVkZjRiZmZmICBsaWJNYXRjaC4xLmR5bGliICgzMSkgPDc0QUI0ODE1LTExRDEtMzkzMC1B
NTU5LUJENjU1MENFNTg2NT4gL3Vzci9saWIvbGliTWF0Y2guMS5keWxpYgogICAgMHg3ZmZmNWRm
NWMwMDAgLSAgICAgMHg3ZmZmNWRmNWNmZmYgIGxpYk9wZW5TY3JpcHRpbmdVdGlsLmR5bGliICgx
NzQpIDw2MTBGMDI0Mi03Q0U1LTNDODYtOTUxQi1CNjQ2NTYyNjk0QUY+IC91c3IvbGliL2xpYk9w
ZW5TY3JpcHRpbmdVdGlsLmR5bGliCiAgICAweDdmZmY1ZTA5MzAwMCAtICAgICAweDdmZmY1ZTA5
N2ZmYiAgbGliU2NyZWVuUmVhZGVyLmR5bGliICg1NjIuMTguNCkgPEUyMzk5MjNELTU0QzktM0JC
Ri04NTJGLTg3QzA5REVGNDA5MT4gL3Vzci9saWIvbGliU2NyZWVuUmVhZGVyLmR5bGliCiAgICAw
eDdmZmY1ZTA5ODAwMCAtICAgICAweDdmZmY1ZTA5OWZmYiAgbGliU3lzdGVtLkIuZHlsaWIgKDEy
NTIuNTAuNCkgPEM3ODEwRUE3LUE2MUYtMzgxNy04RTU0LUUyRUM0RTI2Rjk0Nj4gL3Vzci9saWIv
bGliU3lzdGVtLkIuZHlsaWIKICAgIDB4N2ZmZjVlMDlhMDAwIC0gICAgIDB4N2ZmZjVlMTE3ZmZm
ICBsaWJUZWxlcGhvbnlVdGlsRHluYW1pYy5keWxpYiAoMzMxMikgPDE1MzRBODg3LUYxMUQtM0Iw
OS05NUNDLUFGNDU2MzRGREY0Nj4gL3Vzci9saWIvbGliVGVsZXBob255VXRpbER5bmFtaWMuZHls
aWIKICAgIDB4N2ZmZjVlMTJjMDAwIC0gICAgIDB4N2ZmZjVlMTJjZmZmICBsaWJhcHBsZV9jcnlw
dG8uZHlsaWIgKDEwOS41MC4xNCkgPDQ4QkEyRTc2LUJGMkYtMzUyMi1BNTRFLUQ3RkI3RUFGN0E1
Nz4gL3Vzci9saWIvbGliYXBwbGVfY3J5cHRvLmR5bGliCiAgICAweDdmZmY1ZTEyZDAwMCAtICAg
ICAweDdmZmY1ZTE0M2ZmNyAgbGliYXBwbGVfbmdodHRwMi5keWxpYiAoMS4yNCkgPDAxNDAyQkM0
LTQ4MjItMzY3Ni05QzgwLTUwRDgzRjgxNjQyND4gL3Vzci9saWIvbGliYXBwbGVfbmdodHRwMi5k
eWxpYgogICAgMHg3ZmZmNWUxNDQwMDAgLSAgICAgMHg3ZmZmNWUxNmVmZjMgIGxpYmFyY2hpdmUu
Mi5keWxpYiAoNTQpIDw4RkMyOEREOC1FMzE1LTNDM0UtOTVGRS1EMUQyQ0JFNDk4ODg+IC91c3Iv
bGliL2xpYmFyY2hpdmUuMi5keWxpYgogICAgMHg3ZmZmNWUxNmYwMDAgLSAgICAgMHg3ZmZmNWUy
NzJmZTcgIGxpYmF0ZS5keWxpYiAoMS4xMy4xKSA8REFCRUExQjEtODA2Qy0zNEM5LThBRkYtREVC
NkFCMjgyOUUzPiAvdXNyL2xpYi9saWJhdGUuZHlsaWIKICAgIDB4N2ZmZjVlMjc2MDAwIC0gICAg
IDB4N2ZmZjVlMjc2ZmYzICBsaWJhdXRvLmR5bGliICgxODcpIDxBMDVDNzkwMC1GOEM3LTNFNzUt
OEQzRi05MDlCNDBDMTk3MTc+IC91c3IvbGliL2xpYmF1dG8uZHlsaWIKICAgIDB4N2ZmZjVlMjc3
MDAwIC0gICAgIDB4N2ZmZjVlMzJmZmYzICBsaWJib3Jpbmdzc2wuZHlsaWIgKDEwOS41MC4xNCkg
PEU2ODEzRjg3LUI1RTQtM0Y3Ri1BNzI1LUU2QTdGMkJEMDJFQz4gL3Vzci9saWIvbGliYm9yaW5n
c3NsLmR5bGliCiAgICAweDdmZmY1ZTMzMDAwMCAtICAgICAweDdmZmY1ZTM0MGZmMyAgbGliYnNt
LjAuZHlsaWIgKDM5KSA8NkJDOTZBNzItQUZCRS0zNEZELTkxQjEtNzQ4QTUzMEQ4QUU2PiAvdXNy
L2xpYi9saWJic20uMC5keWxpYgogICAgMHg3ZmZmNWUzNDEwMDAgLSAgICAgMHg3ZmZmNWUzNGVm
ZmIgIGxpYmJ6Mi4xLjAuZHlsaWIgKDM4KSA8MEE1MDg2QkItNDcyNC0zQzE0LTk3OUQtNUFENEYy
NkI1QjQ1PiAvdXNyL2xpYi9saWJiejIuMS4wLmR5bGliCiAgICAweDdmZmY1ZTM0ZjAwMCAtICAg
ICAweDdmZmY1ZTNhNWZmZiAgbGliYysrLjEuZHlsaWIgKDQwMC45KSA8N0QzREFDQ0MtMzgwNC0z
OTNDLUFCQzEtMUE1ODBGRDAwQ0I2PiAvdXNyL2xpYi9saWJjKysuMS5keWxpYgogICAgMHg3ZmZm
NWUzYTYwMDAgLSAgICAgMHg3ZmZmNWUzY2FmZjcgIGxpYmMrK2FiaS5keWxpYiAoNDAwLjguMikg
PEVGNUUzN0Q3LTExRDktMzUzMC1CRTQ1LUI5ODY2MTJEMTNFMj4gL3Vzci9saWIvbGliYysrYWJp
LmR5bGliCiAgICAweDdmZmY1ZTNjYzAwMCAtICAgICAweDdmZmY1ZTNkY2ZmZiAgbGliY21waC5k
eWxpYiAoNikgPEE1NTA5RUU4LTdFMDAtMzIyNC04ODE0LTAxNUIwNzdBM0NGNT4gL3Vzci9saWIv
bGliY21waC5keWxpYgogICAgMHg3ZmZmNWUzZGQwMDAgLSAgICAgMHg3ZmZmNWUzZjNmZmIgIGxp
YmNvbXByZXNzaW9uLmR5bGliICg0Ny41MC4xKSA8MTJEQjkxRTQtRTRFRS0zQUU5LUEwMDAtQkNB
Q0U3NzQ5REI2PiAvdXNyL2xpYi9saWJjb21wcmVzc2lvbi5keWxpYgogICAgMHg3ZmZmNWU2OWUw
MDAgLSAgICAgMHg3ZmZmNWU2YjZmZjcgIGxpYmNvcmV0bHMuZHlsaWIgKDE1NS41MC4xKSA8RDM1
MDA1MkUtREM0RC0zMTg1LUFEQkEtQkE0OEVEQ0VFOTU1PiAvdXNyL2xpYi9saWJjb3JldGxzLmR5
bGliCiAgICAweDdmZmY1ZTZiNzAwMCAtICAgICAweDdmZmY1ZTZiOGZmMyAgbGliY29yZXRsc19j
ZmhlbHBlcnMuZHlsaWIgKDE1NS41MC4xKSA8QjI5N0Y1RDgtRjJGRS0zNTY2LUE3NTItRTlEOTk4
QjlDMDM5PiAvdXNyL2xpYi9saWJjb3JldGxzX2NmaGVscGVycy5keWxpYgogICAgMHg3ZmZmNWU4
NTEwMDAgLSAgICAgMHg3ZmZmNWU5ZTJmZmYgIGxpYmNyeXB0by4zNS5keWxpYiAoMjIuNTAuMikg
PDk3ODI4QkZELTQ2NzUtMzVERi1CRTJFLUM2RDE1NTVCQjcxRD4gL3Vzci9saWIvbGliY3J5cHRv
LjM1LmR5bGliCiAgICAweDdmZmY1ZWI4OTAwMCAtICAgICAweDdmZmY1ZWJkZmZmMyAgbGliY3Vw
cy4yLmR5bGliICg0NjIuMikgPDY0ODY0Q0JFLTAzQTMtMzRDNy05REJCLUM5MzYwMUYxODNGRD4g
L3Vzci9saWIvbGliY3Vwcy4yLmR5bGliCiAgICAweDdmZmY1ZWQxZjAwMCAtICAgICAweDdmZmY1
ZWQxZmZmZiAgbGliZW5lcmd5dHJhY2UuZHlsaWIgKDE2KSA8QTkyQUI4QjgtQjk4Ni0zQ0U2LTk4
MEQtRDU1MDkwRkVGMzg3PiAvdXNyL2xpYi9saWJlbmVyZ3l0cmFjZS5keWxpYgogICAgMHg3ZmZm
NWVkNTYwMDAgLSAgICAgMHg3ZmZmNWVkNWJmZjMgIGxpYmhlaW1kYWwtYXNuMS5keWxpYiAoNTIw
LjUwLjYpIDxFMzU4NDQ1QS1CODRFLTMxQjUtQkNDRC03RTEzOTc1MTlEOTY+IC91c3IvbGliL2xp
YmhlaW1kYWwtYXNuMS5keWxpYgogICAgMHg3ZmZmNWVkODcwMDAgLSAgICAgMHg3ZmZmNWVlNzhm
ZjcgIGxpYmljb252LjIuZHlsaWIgKDUxLjUwLjEpIDwyRkVDOTcwNy0zRkFGLTM4MjgtQTUwRC04
NjA1MDg2RDA2MEY+IC91c3IvbGliL2xpYmljb252LjIuZHlsaWIKICAgIDB4N2ZmZjVlZTc5MDAw
IC0gICAgIDB4N2ZmZjVmMGEwZmZiICBsaWJpY3Vjb3JlLkEuZHlsaWIgKDU5MTczLjAuMSkgPENF
Q0FENUU1LTNFRkQtM0FBQy1BRDlCLUUzNTVCMkRENUU5Qz4gL3Vzci9saWIvbGliaWN1Y29yZS5B
LmR5bGliCiAgICAweDdmZmY1ZjBlZDAwMCAtICAgICAweDdmZmY1ZjBlZWZmZiAgbGlibGFuZ2lk
LmR5bGliICgxMjgpIDwzOUMzOTM5My0wRDA1LTMwMUQtOTNCMi1GMjI0RkM0OTQ5QUE+IC91c3Iv
bGliL2xpYmxhbmdpZC5keWxpYgogICAgMHg3ZmZmNWYwZWYwMDAgLSAgICAgMHg3ZmZmNWYxMDhm
ZmIgIGxpYmx6bWEuNS5keWxpYiAoMTApIDwzRDQxOUE1MC05NjFGLTM3RDItOEEwMS0zREM3QUI3
QjhEMTg+IC91c3IvbGliL2xpYmx6bWEuNS5keWxpYgogICAgMHg3ZmZmNWYxMDkwMDAgLSAgICAg
MHg3ZmZmNWYxMWZmZjcgIGxpYm1hcmlzYS5keWxpYiAoOSkgPEQ2RDJENTVELTFEMkUtMzQ0Mi1C
MTUyLUIxODgwM0MwQUJCND4gL3Vzci9saWIvbGlibWFyaXNhLmR5bGliCiAgICAweDdmZmY1ZjFk
MDAwMCAtICAgICAweDdmZmY1ZjNmOGZmNyAgbGlibWVjYWJyYS5keWxpYiAoNzc5LjcuNikgPEY0
NjJGMTcwLUU4NzItM0QwOS1CMjE5LTk3M0Q1RTk5QzA5Rj4gL3Vzci9saWIvbGlibWVjYWJyYS5k
eWxpYgogICAgMHg3ZmZmNWY1ZDAwMDAgLSAgICAgMHg3ZmZmNWY3NGFmZmYgIGxpYm5ldHdvcmsu
ZHlsaWIgKDEyMjkuNTEuMikgPEQ2NEZFMkExLUNCRkQtMzgxNy1BNzAxLTlBMEREQkQ3MERDRj4g
L3Vzci9saWIvbGlibmV0d29yay5keWxpYgogICAgMHg3ZmZmNWY3YzkwMDAgLSAgICAgMHg3ZmZm
NWZiYmEzYjcgIGxpYm9iamMuQS5keWxpYiAoNzIzKSA8QkVFQTUxRTItMUM0RC0zNjcyLTg3RjYt
RjI2N0I0QUM2MjIxPiAvdXNyL2xpYi9saWJvYmpjLkEuZHlsaWIKICAgIDB4N2ZmZjVmYmNkMDAw
IC0gICAgIDB4N2ZmZjVmYmQxZmZmICBsaWJwYW0uMi5keWxpYiAoMjIpIDw3QjREMkNFMi0xNDM4
LTM4N0EtOTgwMi01Q0VFRkJGMjZGODY+IC91c3IvbGliL2xpYnBhbS4yLmR5bGliCiAgICAweDdm
ZmY1ZmJkNDAwMCAtICAgICAweDdmZmY1ZmMwOGZmZiAgbGlicGNhcC5BLmR5bGliICg3OS4yMC4x
KSA8RkExMzkxOEItQTI0Ny0zMTgxLUIyNTYtOUI4NTJDN0JBMzE2PiAvdXNyL2xpYi9saWJwY2Fw
LkEuZHlsaWIKICAgIDB4N2ZmZjVmYzg3MDAwIC0gICAgIDB4N2ZmZjVmY2EzZmZiICBsaWJyZXNv
bHYuOS5keWxpYiAoNjUpIDxFOEYzNDE1Qi00NDcyLTMyMDItODkwMS00MUZEODc5ODFEQjI+IC91
c3IvbGliL2xpYnJlc29sdi45LmR5bGliCiAgICAweDdmZmY1ZmNhNTAwMCAtICAgICAweDdmZmY1
ZmNkZWZmMyAgbGlic2FuZGJveC4xLmR5bGliICg3NjUuNTAuNTEpIDw3NUIyMEZBRi0wQUVELTNG
MTgtOTM5OS0xQkM3NUE5MTY0MTU+IC91c3IvbGliL2xpYnNhbmRib3guMS5keWxpYgogICAgMHg3
ZmZmNWZjZGYwMDAgLSAgICAgMHg3ZmZmNWZjZjFmZmYgIGxpYnNhc2wyLjIuZHlsaWIgKDIxMSkg
PDA0RUYzRjYxLTEyRUMtMzMxOS1BNjQ5LTg1MTk5OUY0QzdBND4gL3Vzci9saWIvbGlic2FzbDIu
Mi5keWxpYgogICAgMHg3ZmZmNWZjZjIwMDAgLSAgICAgMHg3ZmZmNWZjZjNmZjMgIGxpYnNwaW5k
dW1wLmR5bGliICgyNTIpIDxEOEUyNzA1Ny1FM0NDLTNEN0YtQTAxMC00QTg3ODMwRjZBODM+IC91
c3IvbGliL2xpYnNwaW5kdW1wLmR5bGliCiAgICAweDdmZmY1ZmNmNDAwMCAtICAgICAweDdmZmY1
ZmU4MWZmNyAgbGlic3FsaXRlMy5keWxpYiAoMjc0LjguMSkgPEI3MEEyOTA4LUUwRjctMzY0RS05
NTJBLTFEMkQxOTc4N0I4OT4gL3Vzci9saWIvbGlic3FsaXRlMy5keWxpYgogICAgMHg3ZmZmNjAw
MDgwMDAgLSAgICAgMHg3ZmZmNjAwM2RmZmYgIGxpYnRpZHkuQS5keWxpYiAoMTUuMTguMSkgPEQx
RkYzMUFGLTMwMDAtMzY2RC04NzE0LTA5QjIzMzAwMDdCNT4gL3Vzci9saWIvbGlidGlkeS5BLmR5
bGliCiAgICAweDdmZmY2MDA1NTAwMCAtICAgICAweDdmZmY2MDBiNWZmMyAgbGlidXNydGNwLmR5
bGliICgxMjI5LjUxLjIpIDwzRDg4MDZEOS00QkE5LTM1RUUtQkM0NC1GNThCQzJBMDk2MkQ+IC91
c3IvbGliL2xpYnVzcnRjcC5keWxpYgogICAgMHg3ZmZmNjAwYjYwMDAgLSAgICAgMHg3ZmZmNjAw
YjlmZmIgIGxpYnV0aWwuZHlsaWIgKDUxLjIwLjEpIDwyMTZEMThFNS0wQkFGLTNFQUYtQTM4RS1G
NkFDMzdDQkFCRDk+IC91c3IvbGliL2xpYnV0aWwuZHlsaWIKICAgIDB4N2ZmZjYwMGJhMDAwIC0g
ICAgIDB4N2ZmZjYwMGM3ZmZmICBsaWJ4YXIuMS5keWxpYiAoNDAwKSA8MDMxNjEyOEQtM0I0Ny0z
MDUyLTk5NUQtOTdCNEZFNTQ5MURDPiAvdXNyL2xpYi9saWJ4YXIuMS5keWxpYgogICAgMHg3ZmZm
NjAwY2IwMDAgLSAgICAgMHg3ZmZmNjAxYjJmZmYgIGxpYnhtbDIuMi5keWxpYiAoMzEuMTApIDw1
MDM3MjFEQi0wRDhELTM3OUUtQjc0My0xOENFNTkzMDQxNTU+IC91c3IvbGliL2xpYnhtbDIuMi5k
eWxpYgogICAgMHg3ZmZmNjAxYjMwMDAgLSAgICAgMHg3ZmZmNjAxZGJmZmYgIGxpYnhzbHQuMS5k
eWxpYiAoMTUuMTIpIDw0QTVFMDExRC04QjI5LTMxMzUtQTUyQi05QTkwNzBBQkQ3NTI+IC91c3Iv
bGliL2xpYnhzbHQuMS5keWxpYgogICAgMHg3ZmZmNjAxZGMwMDAgLSAgICAgMHg3ZmZmNjAxZWVm
ZmIgIGxpYnouMS5keWxpYiAoNzApIDw0OEM2N0NGQy05NDBELTM4NTctOERBRC04NTc3NzQ2MDUz
NTI+IC91c3IvbGliL2xpYnouMS5keWxpYgogICAgMHg3ZmZmNjAyOGEwMDAgLSAgICAgMHg3ZmZm
NjAyOGVmZjcgIGxpYmNhY2hlLmR5bGliICg4MCkgPDA5MjQ3OUNCLTEwMDgtM0E4My1CRUNGLUUx
MTVGMjREMTNDMT4gL3Vzci9saWIvc3lzdGVtL2xpYmNhY2hlLmR5bGliCiAgICAweDdmZmY2MDI4
ZjAwMCAtICAgICAweDdmZmY2MDI5OWZmMyAgbGliY29tbW9uQ3J5cHRvLmR5bGliICg2MDExOC41
MC4xKSA8MDI5RjU5ODUtOUI2RS0zRENCLTlCOTYtRkQwMDc2NzhDNkE3PiAvdXNyL2xpYi9zeXN0
ZW0vbGliY29tbW9uQ3J5cHRvLmR5bGliCiAgICAweDdmZmY2MDI5YTAwMCAtICAgICAweDdmZmY2
MDJhMWZmZiAgbGliY29tcGlsZXJfcnQuZHlsaWIgKDYyKSA8OTY4QjhFM0YtMzY4MS0zMjMwLTlE
NzgtQkI4NzMyMDI0RjZFPiAvdXNyL2xpYi9zeXN0ZW0vbGliY29tcGlsZXJfcnQuZHlsaWIKICAg
IDB4N2ZmZjYwMmEyMDAwIC0gICAgIDB4N2ZmZjYwMmFiZmZiICBsaWJjb3B5ZmlsZS5keWxpYiAo
MTQ2LjUwLjUpIDwzODg1MDgzRC01MEQ4LTNFRUMtQjQ4MS1CMkU2MDUxODBEN0Y+IC91c3IvbGli
L3N5c3RlbS9saWJjb3B5ZmlsZS5keWxpYgogICAgMHg3ZmZmNjAyYWMwMDAgLSAgICAgMHg3ZmZm
NjAzMzFmZmYgIGxpYmNvcmVjcnlwdG8uZHlsaWIgKDU2Mi41MC4xNykgPDY3MDA3Mjc5LTI0RTEt
M0YzMC04MDJELUE1NUNENUMyNzk0Nj4gL3Vzci9saWIvc3lzdGVtL2xpYmNvcmVjcnlwdG8uZHls
aWIKICAgIDB4N2ZmZjYwM2I5MDAwIC0gICAgIDB4N2ZmZjYwM2YyZmY3ICBsaWJkaXNwYXRjaC5k
eWxpYiAoOTEzLjUwLjEyKSA8ODQ4RUVFNTctNDIzNS0zQTYxLTlBNTItQzAwOTdERDJBQjVFPiAv
dXNyL2xpYi9zeXN0ZW0vbGliZGlzcGF0Y2guZHlsaWIKICAgIDB4N2ZmZjYwM2YzMDAwIC0gICAg
IDB4N2ZmZjYwNDEwZmY3ICBsaWJkeWxkLmR5bGliICg1NTEuMykgPENGNTlBNUE1LTI4OEItMzBF
Ni1CRDQyLTkwNTZCNEU0MTM5QT4gL3Vzci9saWIvc3lzdGVtL2xpYmR5bGQuZHlsaWIKICAgIDB4
N2ZmZjYwNDExMDAwIC0gICAgIDB4N2ZmZjYwNDExZmZiICBsaWJrZXltZ3IuZHlsaWIgKDI4KSA8
RTM0RTI4M0UtOTBGQS0zQzU5LUI0OEUtMTI3N0NEQjlDRENFPiAvdXNyL2xpYi9zeXN0ZW0vbGli
a2V5bWdyLmR5bGliCiAgICAweDdmZmY2MDQxMjAwMCAtICAgICAweDdmZmY2MDQxZWZmMyAgbGli
a3hsZC5keWxpYiAoNDU3MC41MS4xKSA8QzJCOTI3RjMtRTlEOS0zQUNGLUEzNTgtQTUxQTYxNzQ5
RkI0PiAvdXNyL2xpYi9zeXN0ZW0vbGlia3hsZC5keWxpYgogICAgMHg3ZmZmNjA0MWYwMDAgLSAg
ICAgMHg3ZmZmNjA0MWZmZjcgIGxpYmxhdW5jaC5keWxpYiAoMTIwNS41MC43NikgPDRENTJCQjY0
LUM1NjgtM0EzNi04OTM1LTI0ODA0MjdFRTJBMj4gL3Vzci9saWIvc3lzdGVtL2xpYmxhdW5jaC5k
eWxpYgogICAgMHg3ZmZmNjA0MjAwMDAgLSAgICAgMHg3ZmZmNjA0MjRmZmIgIGxpYm1hY2hvLmR5
bGliICg5MDYpIDwxOTAyQTYxMS0wODFBLTM0NTItQjExRS1FQkQxQjE2NkU4MzE+IC91c3IvbGli
L3N5c3RlbS9saWJtYWNoby5keWxpYgogICAgMHg3ZmZmNjA0MjUwMDAgLSAgICAgMHg3ZmZmNjA0
MjdmZjMgIGxpYnF1YXJhbnRpbmUuZHlsaWIgKDg2KSA8MjZDMEJBMjItOEY5My0zQTA3LTlBNEUt
QzhENTNEMkNFNDJFPiAvdXNyL2xpYi9zeXN0ZW0vbGlicXVhcmFudGluZS5keWxpYgogICAgMHg3
ZmZmNjA0MjgwMDAgLSAgICAgMHg3ZmZmNjA0MjlmZjMgIGxpYnJlbW92ZWZpbGUuZHlsaWIgKDQ1
KSA8NzExRTE4QjItNUJCRS0zMjExLUE5MTYtNTY3NDBDMjdEMTdBPiAvdXNyL2xpYi9zeXN0ZW0v
bGlicmVtb3ZlZmlsZS5keWxpYgogICAgMHg3ZmZmNjA0MmEwMDAgLSAgICAgMHg3ZmZmNjA0NDFm
ZmYgIGxpYnN5c3RlbV9hc2wuZHlsaWIgKDM1Ni41MC4xKSA8M0IyNEYyRDEtQjU3OC0zNTlELUFE
QjItMEVEMTlBMzY0QzM4PiAvdXNyL2xpYi9zeXN0ZW0vbGlic3lzdGVtX2FzbC5keWxpYgogICAg
MHg3ZmZmNjA0NDIwMDAgLSAgICAgMHg3ZmZmNjA0NDJmZmYgIGxpYnN5c3RlbV9ibG9ja3MuZHls
aWIgKDY3KSA8MTczMDNGREYtMEQyRC0zOTYzLUIwNUUtQjRERjYzMDUyRDQ3PiAvdXNyL2xpYi9z
eXN0ZW0vbGlic3lzdGVtX2Jsb2Nrcy5keWxpYgogICAgMHg3ZmZmNjA0NDMwMDAgLSAgICAgMHg3
ZmZmNjA0Y2NmZjcgIGxpYnN5c3RlbV9jLmR5bGliICgxMjQ0LjUwLjkpIDwxMTg3QkZFOC00NTc2
LTMyNDctODE3Ny00ODE1NTRFMUY5RTc+IC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1fYy5keWxp
YgogICAgMHg3ZmZmNjA0Y2QwMDAgLSAgICAgMHg3ZmZmNjA0ZDBmZmIgIGxpYnN5c3RlbV9jb25m
aWd1cmF0aW9uLmR5bGliICg5NjMuNTAuOCkgPERGNkI1Mjg3LTIwM0UtMzBDQi05OTQ3LTc4REY0
NDZDNzJCOD4gL3Vzci9saWIvc3lzdGVtL2xpYnN5c3RlbV9jb25maWd1cmF0aW9uLmR5bGliCiAg
ICAweDdmZmY2MDRkMTAwMCAtICAgICAweDdmZmY2MDRkNGZmYiAgbGlic3lzdGVtX2NvcmVzZXJ2
aWNlcy5keWxpYiAoNTEpIDw0ODYwMDBEMy1EOENCLTNCRTctOEVFNS04QkYzODBERTZERjc+IC91
c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1fY29yZXNlcnZpY2VzLmR5bGliCiAgICAweDdmZmY2MDRk
NTAwMCAtICAgICAweDdmZmY2MDRkNmZmZiAgbGlic3lzdGVtX2Rhcndpbi5keWxpYiAoMTI0NC41
MC45KSA8MDlDMjFBNEEtOUVFMC0zODhCLUE5RDktREZGOEY2NzU4NzkxPiAvdXNyL2xpYi9zeXN0
ZW0vbGlic3lzdGVtX2Rhcndpbi5keWxpYgogICAgMHg3ZmZmNjA0ZDcwMDAgLSAgICAgMHg3ZmZm
NjA0ZGRmZjcgIGxpYnN5c3RlbV9kbnNzZC5keWxpYiAoODc4LjUwLjE3KSA8OTAzM0I5MDktQkNG
Ny0zN0VCLUEwNDAtQURFODA4MTYxMUQ2PiAvdXNyL2xpYi9zeXN0ZW0vbGlic3lzdGVtX2Ruc3Nk
LmR5bGliCiAgICAweDdmZmY2MDRkZTAwMCAtICAgICAweDdmZmY2MDUyN2ZmNyAgbGlic3lzdGVt
X2luZm8uZHlsaWIgKDUxNy4zMC4xKSA8QUI2MzRBOTgtQjhBQS0zODA0LTg0MzYtMzgyNjFGQzhF
QzREPiAvdXNyL2xpYi9zeXN0ZW0vbGlic3lzdGVtX2luZm8uZHlsaWIKICAgIDB4N2ZmZjYwNTI4
MDAwIC0gICAgIDB4N2ZmZjYwNTRlZmY3ICBsaWJzeXN0ZW1fa2VybmVsLmR5bGliICg0NTcwLjUx
LjEpIDw1Q0FBQjA5Mi0wMkNDLTNBMzctOUQ1Ri1DNEFEMTA4M0FCOTY+IC91c3IvbGliL3N5c3Rl
bS9saWJzeXN0ZW1fa2VybmVsLmR5bGliCiAgICAweDdmZmY2MDU0ZjAwMCAtICAgICAweDdmZmY2
MDU5YWZjYiAgbGlic3lzdGVtX20uZHlsaWIgKDMxNDcuNTAuMSkgPEZDMkU1OEJBLUU2RDUtM0Qy
QS04OUNBLTY3RjIxMjI5NDEzNj4gL3Vzci9saWIvc3lzdGVtL2xpYnN5c3RlbV9tLmR5bGliCiAg
ICAweDdmZmY2MDU5YjAwMCAtICAgICAweDdmZmY2MDViYWZmZiAgbGlic3lzdGVtX21hbGxvYy5k
eWxpYiAoMTQwLjUwLjYpIDw3RkQ0MzczNS05RERELTMwMEUtOEM0QS1GOTA5QTc0QkRGNDk+IC91
c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1fbWFsbG9jLmR5bGliCiAgICAweDdmZmY2MDViYjAwMCAt
ICAgICAweDdmZmY2MDZlYmZmMyAgbGlic3lzdGVtX25ldHdvcmsuZHlsaWIgKDEyMjkuNTEuMikg
PEY2NUVEMDk1LThBQkEtMzM1NS05M0Y4LUI5RDA1MDU5MzJGND4gL3Vzci9saWIvc3lzdGVtL2xp
YnN5c3RlbV9uZXR3b3JrLmR5bGliCiAgICAweDdmZmY2MDZlYzAwMCAtICAgICAweDdmZmY2MDZm
NmZmYiAgbGlic3lzdGVtX25ldHdvcmtleHRlbnNpb24uZHlsaWIgKDc2Ny41MC4yNSkgPDc1OEYx
NDE0LTc5NkQtMzQyMi04M0M5LTkyRDI5MTVBMDZDRT4gL3Vzci9saWIvc3lzdGVtL2xpYnN5c3Rl
bV9uZXR3b3JrZXh0ZW5zaW9uLmR5bGliCiAgICAweDdmZmY2MDZmNzAwMCAtICAgICAweDdmZmY2
MDcwMGZmMyAgbGlic3lzdGVtX25vdGlmeS5keWxpYiAoMTcyKSA8MDgwMTJFQzAtMkNEMi0zNEJF
LUJGOTMtRTdGNTY0OTEyOTlBPiAvdXNyL2xpYi9zeXN0ZW0vbGlic3lzdGVtX25vdGlmeS5keWxp
YgogICAgMHg3ZmZmNjA3MDEwMDAgLSAgICAgMHg3ZmZmNjA3MDhmZjcgIGxpYnN5c3RlbV9wbGF0
Zm9ybS5keWxpYiAoMTYxLjUwLjEpIDw2MzU1RUUyRC01NDU2LTNDQTgtQTIyNy1COTZFOEYxRTJB
Rjg+IC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1fcGxhdGZvcm0uZHlsaWIKICAgIDB4N2ZmZjYw
NzA5MDAwIC0gICAgIDB4N2ZmZjYwNzE0ZmZmICBsaWJzeXN0ZW1fcHRocmVhZC5keWxpYiAoMzAx
LjUwLjEpIDwwRTUxQ0NCQS05MUYyLTM0RTEtQkYyQS1GRUVGRDNEMzIxRTQ+IC91c3IvbGliL3N5
c3RlbS9saWJzeXN0ZW1fcHRocmVhZC5keWxpYgogICAgMHg3ZmZmNjA3MTUwMDAgLSAgICAgMHg3
ZmZmNjA3MThmZmYgIGxpYnN5c3RlbV9zYW5kYm94LmR5bGliICg3NjUuNTAuNTEpIDxCNDhEMjU2
RS1EN0RCLTNENEYtQkM5NS0zNDU1NzE3MEM3QUE+IC91c3IvbGliL3N5c3RlbS9saWJzeXN0ZW1f
c2FuZGJveC5keWxpYgogICAgMHg3ZmZmNjA3MTkwMDAgLSAgICAgMHg3ZmZmNjA3MWFmZjMgIGxp
YnN5c3RlbV9zZWNpbml0LmR5bGliICgzMCkgPERFOEQxNEU4LUEyNzYtM0ZGOC1BRTEzLTc3Rjcw
NDBGMzNDMT4gL3Vzci9saWIvc3lzdGVtL2xpYnN5c3RlbV9zZWNpbml0LmR5bGliCiAgICAweDdm
ZmY2MDcxYjAwMCAtICAgICAweDdmZmY2MDcyMmZmNyAgbGlic3lzdGVtX3N5bXB0b21zLmR5bGli
ICg4MjAuNTAuMzcpIDxFRDczNTBFMC1CNjhCLTM3NEEtOUFCNy1EQzFGMTk1QTgzMjc+IC91c3Iv
bGliL3N5c3RlbS9saWJzeXN0ZW1fc3ltcHRvbXMuZHlsaWIKICAgIDB4N2ZmZjYwNzIzMDAwIC0g
ICAgIDB4N2ZmZjYwNzM2ZmZmICBsaWJzeXN0ZW1fdHJhY2UuZHlsaWIgKDgyOS41MC4xNykgPDY1
NjhENjhCLTFENEMtMzhFRS05MEE5LTU0ODIxRDY0MDNDMD4gL3Vzci9saWIvc3lzdGVtL2xpYnN5
c3RlbV90cmFjZS5keWxpYgogICAgMHg3ZmZmNjA3MzgwMDAgLSAgICAgMHg3ZmZmNjA3M2RmZjcg
IGxpYnVud2luZC5keWxpYiAoMzUuMykgPEJFRjNGQjQ5LTU2MDQtM0I1Ri04MkI1LTMzMkI4MDAy
M0FDMz4gL3Vzci9saWIvc3lzdGVtL2xpYnVud2luZC5keWxpYgogICAgMHg3ZmZmNjA3M2UwMDAg
LSAgICAgMHg3ZmZmNjA3NmJmZmYgIGxpYnhwYy5keWxpYiAoMTIwNS41MC43NikgPDI1REIyNDRF
LTIxN0QtM0NFMC1BOEYyLTBDNDI1NTc4M0I0Mj4gL3Vzci9saWIvc3lzdGVtL2xpYnhwYy5keWxp
YgoKRXh0ZXJuYWwgTW9kaWZpY2F0aW9uIFN1bW1hcnk6CiAgQ2FsbHMgbWFkZSBieSBvdGhlciBw
cm9jZXNzZXMgdGFyZ2V0aW5nIHRoaXMgcHJvY2VzczoKICAgIHRhc2tfZm9yX3BpZDogMAogICAg
dGhyZWFkX2NyZWF0ZTogMAogICAgdGhyZWFkX3NldF9zdGF0ZTogMAogIENhbGxzIG1hZGUgYnkg
dGhpcyBwcm9jZXNzOgogICAgdGFza19mb3JfcGlkOiAwCiAgICB0aHJlYWRfY3JlYXRlOiAwCiAg
ICB0aHJlYWRfc2V0X3N0YXRlOiAwCiAgQ2FsbHMgbWFkZSBieSBhbGwgcHJvY2Vzc2VzIG9uIHRo
aXMgbWFjaGluZToKICAgIHRhc2tfZm9yX3BpZDogMTE2MjIxMgogICAgdGhyZWFkX2NyZWF0ZTog
MAogICAgdGhyZWFkX3NldF9zdGF0ZTogNTcyCgpWTSBSZWdpb24gU3VtbWFyeToKUmVhZE9ubHkg
cG9ydGlvbiBvZiBMaWJyYXJpZXM6IFRvdGFsPTg5NS4wTSByZXNpZGVudD0wSygwJSkgc3dhcHBl
ZF9vdXRfb3JfdW5hbGxvY2F0ZWQ9ODk1LjBNKDEwMCUpCldyaXRhYmxlIHJlZ2lvbnM6IFRvdGFs
PTEuMUcgd3JpdHRlbj0wSygwJSkgcmVzaWRlbnQ9MEsoMCUpIHN3YXBwZWRfb3V0PTBLKDAlKSB1
bmFsbG9jYXRlZD0xLjFHKDEwMCUpCiAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBW
SVJUVUFMICAgUkVHSU9OIApSRUdJT04gVFlQRSAgICAgICAgICAgICAgICAgICAgICAgIFNJWkUg
ICAgQ09VTlQgKG5vbi1jb2FsZXNjZWQpIAo9PT09PT09PT09PSAgICAgICAgICAgICAgICAgICAg
ID09PT09PT0gID09PT09PT0gCkFjdGl2aXR5IFRyYWNpbmcgICAgICAgICAgICAgICAgICAgMjU2
SyAgICAgICAgMiAKQ29yZVNlcnZpY2VzICAgICAgICAgICAgICAgICAgICAgICAxODhLICAgICAg
ICAyIApDb3JlVUkgaW1hZ2UgZmlsZSAgICAgICAgICAgICAgICAgIDEyNEsgICAgICAgIDMgCkRp
c3BhdGNoIGNvbnRpbnVhdGlvbnMgICAgICAgICAgICAxNi4wTSAgICAgICAgMiAKRm91bmRhdGlv
biAgICAgICAgICAgICAgICAgICAgICAgICAgIDRLICAgICAgICAyIApKUyBKSVQgZ2VuZXJhdGVk
IGNvZGUgICAgICAgICAgICAgIDEuMEcgICAgICAgIDQgCktlcm5lbCBBbGxvYyBPbmNlICAgICAg
ICAgICAgICAgICAgICA4SyAgICAgICAgMiAKTUFMTE9DICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDg2LjJNICAgICAgIDE5IApNQUxMT0MgZ3VhcmQgcGFnZSAgICAgICAgICAgICAgICAgICA0
OEsgICAgICAgMTMgClNUQUNLIEdVQVJEICAgICAgICAgICAgICAgICAgICAgICA1Ni4wTSAgICAg
ICAgOSAKU3RhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDExLjZNICAgICAgICA5IApW
TV9BTExPQ0FURSAgICAgICAgICAgICAgICAgICAgICAgICA0MEsgICAgICAgIDQgCldlYktpdCBN
YWxsb2MgICAgICAgICAgICAgICAgICAgICA4NDQ0SyAgICAgICAgOCAKX19EQVRBICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDM4LjRNICAgICAgMzMxIApfX0ZPTlRfREFUQSAgICAgICAgICAg
ICAgICAgICAgICAgICAgNEsgICAgICAgIDIgCl9fR0xTTEJVSUxUSU5TICAgICAgICAgICAgICAg
ICAgICAyNTg4SyAgICAgICAgMiAKX19MSU5LRURJVCAgICAgICAgICAgICAgICAgICAgICAgNTA4
LjZNICAgICAgIDEyIApfX1RFWFQgICAgICAgICAgICAgICAgICAgICAgICAgICAzODYuM00gICAg
ICAzMjcgCl9fVU5JQ09ERSAgICAgICAgICAgICAgICAgICAgICAgICAgNTYwSyAgICAgICAgMiAK
bWFwcGVkIGZpbGUgICAgICAgICAgICAgICAgICAgICAgIDMyLjVNICAgICAgICA5IApzaGFyZWQg
bWVtb3J5ICAgICAgICAgICAgICAgICAgICAgIDYyOEsgICAgICAgMTEgCj09PT09PT09PT09ICAg
ICAgICAgICAgICAgICAgICAgPT09PT09PSAgPT09PT09PSAKVE9UQUwgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAyLjFHICAgICAgNzU0IAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>364279</attachid>
            <date>2019-03-11 12:49:24 -0700</date>
            <delta_ts>2019-03-11 13:21:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-195511-20190311124923.patch</filename>
            <type>text/plain</type>
            <size>48071</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDI3MjEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDY0IEBACisyMDE5LTAzLTExICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGEgV0tDb250
ZW50UnVsZUxpc3QgdmFyaWFudCB0aGF0IHVzZXMgY29waWVkIG1lbW9yeSBpbnN0ZWFkIG9mIG1t
YXAnZCBzaGFyZWQgbWVtb3J5IGZvciBjbGFzcyBBIGNvbnRhaW5lcml6ZWQgYXBwcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NTExCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80NDg3MzI2OT4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFn
ZXI6OmFkZENvbnRlbnRSdWxlTGlzdHMpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdv
cmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2Fj
aGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtD
YWNoZTo6cGF0aFJlZ2lzdGVyZWRBc1Vuc2FmZVRvTWVtb3J5TWFwRm9yVGVzdGluZyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6cmVnaXN0ZXJQYXRoQXNVbnNhZmVUb01lbW9yeU1h
cEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OmlzU2FmZVRvVXNl
TWVtb3J5TWFwRm9yUGF0aCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29y
a0NhY2hlRmlsZVN5c3RlbS5oOgorICAgICAgICAqIFNoYXJlZC9XZWJDb21waWxlZENvbnRlbnRS
dWxlTGlzdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0
Ojp1c2VzQ29waWVkTWVtb3J5IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcGlsZWRD
b250ZW50UnVsZUxpc3Q6OmNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbiBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0OjpmaWx0ZXJzV2l0aG91dENv
bmRpdGlvbnNCeXRlY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29u
dGVudFJ1bGVMaXN0OjpmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZSBjb25zdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0Ojp0b3BVUkxGaWx0ZXJzQnl0
ZWNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dDo6YWN0aW9ucyBjb25zdCk6CisgICAgICAgICogU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1
bGVMaXN0Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6
c2l6ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0
RGF0YTo6ZGF0YVBvaW50ZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdERhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2Vi
Q29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBp
bGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdC5jcHA6CisgICAgICAg
IChBUEk6OkNvbnRlbnRSdWxlTGlzdDo6dXNlc0NvcGllZE1lbW9yeSBjb25zdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3QuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcDoKKyAgICAgICAgKEFQSTo6Z2V0RGF0
YSk6CisgICAgICAgIChBUEk6OmRlY29kZUNvbnRlbnRSdWxlTGlzdE1ldGFEYXRhKToKKyAgICAg
ICAgKEFQSTo6Q29udGVudFJ1bGVMaXN0U3RvcmU6OnJlYWRDb250ZW50c09mRmlsZSk6CisgICAg
ICAgIChBUEk6Ok1hcHBlZE9yQ29waWVkRGF0YTo6ZGF0YVBvaW50ZXIgY29uc3QpOgorICAgICAg
ICAoQVBJOjpvcGVuQW5kTWFwT3JDb3B5Q29udGVudFJ1bGVMaXN0KToKKyAgICAgICAgKEFQSTo6
Y29tcGlsZWRUb0ZpbGUpOgorICAgICAgICAoQVBJOjpjcmVhdGVFeHRlbnNpb24pOgorICAgICAg
ICAoQVBJOjpDb250ZW50UnVsZUxpc3RTdG9yZTo6bG9va3VwQ29udGVudFJ1bGVMaXN0KToKKyAg
ICAgICAgKEFQSTo6Q29udGVudFJ1bGVMaXN0U3RvcmU6OmNvbXBpbGVDb250ZW50UnVsZUxpc3Qp
OgorICAgICAgICAoQVBJOjpDb250ZW50UnVsZUxpc3RTdG9yZTo6Z2V0Q29udGVudFJ1bGVMaXN0
U291cmNlKToKKyAgICAgICAgKEFQSTo6b3BlbkFuZE1hcENvbnRlbnRSdWxlTGlzdCk6IERlbGV0
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmVDb2Nv
YS5tbToKKyAgICAgICAgKEFQSTo6Q29udGVudFJ1bGVMaXN0U3RvcmU6OnJlYWRDb250ZW50c09m
RmlsZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdFN0
b3JlLm1tOgorICAgICAgICAoK1tXS0NvbnRlbnRSdWxlTGlzdFN0b3JlIF9yZWdpc3RlclBhdGhB
c1Vuc2FmZVRvTWVtb3J5TWFwRm9yVGVzdGluZzpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQ29udGVudFJ1bGVMaXN0U3RvcmVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tVc2VyQ29udGVudEZpbHRlci5tbToKKyAgICAgICAgKC1bX1dLVXNl
ckNvbnRlbnRGaWx0ZXIgdXNlc0NvcGllZE1lbW9yeV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXJQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OmFkZENvbnRlbnRSdWxlTGlzdHMpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVy
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjptX2hvc3RGaWxlRGVzY3JpcHRvcik6CisKIDIwMTktMDMtMTEgIFJ5YW4gSGFkZGFk
ICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjI0MjY4OCwgcjI0MjY0MywgcjI0MjYyNC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFn
ZXIuY3BwCShyZXZpc2lvbiAyNDI3MjEpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L05ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjYs
MTUgKzY2LDE0IEBAIHZvaWQgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI6OmNvbnQKICAg
ICBtX25ldHdvcmtQcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkNvbnRlbnRFeHRlbnNpb25SdWxlcyB7IGlkZW50aWZp
ZXIgfSwgMCk7CiB9CiAKLXZvaWQgTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXI6OmFkZENv
bnRlbnRSdWxlTGlzdHMoVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciBpZGVudGlmaWVy
LCBjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFN0cmluZywgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxp
c3REYXRhPj4mIGNvbnRlbnRSdWxlTGlzdHMpCit2b2lkIE5ldHdvcmtDb250ZW50UnVsZUxpc3RN
YW5hZ2VyOjphZGRDb250ZW50UnVsZUxpc3RzKFVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZp
ZXIgaWRlbnRpZmllciwgVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVu
dFJ1bGVMaXN0RGF0YT4+JiYgY29udGVudFJ1bGVMaXN0cykKIHsKICAgICBhdXRvJiBiYWNrZW5k
ID0gKm1fY29udGVudEV4dGVuc2lvbkJhY2tlbmRzLmVuc3VyZShpZGVudGlmaWVyLCBbXSB7CiAg
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OjpDb250ZW50RXh0ZW5zaW9uc0JhY2tlbmQ+KCk7CiAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwog
Ci0gICAgZm9yIChjb25zdCBhdXRvJiBjb250ZW50UnVsZUxpc3QgOiBjb250ZW50UnVsZUxpc3Rz
KSB7Ci0gICAgICAgIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSBjb250ZW50UnVsZUxp
c3REYXRhID0gY29udGVudFJ1bGVMaXN0LnNlY29uZDsKLSAgICAgICAgYXV0byBjb21waWxlZENv
bnRlbnRSdWxlTGlzdCA9IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0OjpjcmVhdGUoV1RGTW92
ZShjb250ZW50UnVsZUxpc3REYXRhKSk7CisgICAgZm9yIChhdXRvJiYgY29udGVudFJ1bGVMaXN0
IDogY29udGVudFJ1bGVMaXN0cykgeworICAgICAgICBhdXRvIGNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0ID0gV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OmNyZWF0ZShXVEZNb3ZlKGNvbnRlbnRS
dWxlTGlzdC5zZWNvbmQpKTsKICAgICAgICAgYmFja2VuZC5hZGRDb250ZW50RXh0ZW5zaW9uKGNv
bnRlbnRSdWxlTGlzdC5maXJzdCwgV1RGTW92ZShjb21waWxlZENvbnRlbnRSdWxlTGlzdCksIENv
bnRlbnRFeHRlbnNpb25zOjpDb250ZW50RXh0ZW5zaW9uOjpTaG91bGRDb21waWxlQ1NTOjpObyk7
CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250
ZW50UnVsZUxpc3RNYW5hZ2VyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlci5oCShyZXZpc2lvbiAyNDI3MjEp
CisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDb250ZW50UnVsZUxpc3RN
YW5hZ2VyLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHZv
aWQgY29udGVudEV4dGVuc2lvbnNCYWNrZW5kKFVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZp
ZXIsIEJhY2tlbmRDYWxsYmFjayYmKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIGFkZENvbnRlbnRS
dWxlTGlzdHMoVXNlckNvbnRlbnRDb250cm9sbGVySWRlbnRpZmllciwgY29uc3QgVmVjdG9yPHN0
ZDo6cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4+Jik7CisgICAg
dm9pZCBhZGRDb250ZW50UnVsZUxpc3RzKFVzZXJDb250ZW50Q29udHJvbGxlcklkZW50aWZpZXIs
IFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGE+
PiYmKTsKICAgICB2b2lkIHJlbW92ZUNvbnRlbnRSdWxlTGlzdChVc2VyQ29udGVudENvbnRyb2xs
ZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUpOwogICAgIHZvaWQgcmVtb3ZlQWxsQ29u
dGVudFJ1bGVMaXN0cyhVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyKTsKICAgICB2b2lk
IHJlbW92ZShVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyKTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVGaWxlU3lzdGVtLmNwcAkocmV2aXNpb24gMjQyNzIxKQorKysgU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVGaWxlU3lzdGVtLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTQ1LDggKzE0NSwyMyBAQCB2b2lkIHVwZGF0ZUZpbGVNb2RpZmljYXRpb25UaW1lSWZO
ZWVkZWQoCiAjZW5kaWYKIH0KIAorc3RhdGljIFN0cmluZyYgcGF0aFJlZ2lzdGVyZWRBc1Vuc2Fm
ZVRvTWVtb3J5TWFwRm9yVGVzdGluZygpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0
cmluZz4gcGF0aDsKKyAgICByZXR1cm4gcGF0aC5nZXQoKTsKK30KKwordm9pZCByZWdpc3RlclBh
dGhBc1Vuc2FmZVRvTWVtb3J5TWFwRm9yVGVzdGluZyhjb25zdCBTdHJpbmcmIHBhdGgpCit7Cisg
ICAgcGF0aFJlZ2lzdGVyZWRBc1Vuc2FmZVRvTWVtb3J5TWFwRm9yVGVzdGluZygpID0gcGF0aDsK
K30KKworICAgIAogYm9vbCBpc1NhZmVUb1VzZU1lbW9yeU1hcEZvclBhdGgoY29uc3QgU3RyaW5n
JiBwYXRoKQogeworICAgIGlmIChwYXRoID09IHBhdGhSZWdpc3RlcmVkQXNVbnNhZmVUb01lbW9y
eU1hcEZvclRlc3RpbmcoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKQogICAgIHN0cnVj
dCB7CiAgICAgICAgIHVpbnQzMl90IGxlbmd0aDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlRmlsZVN5c3RlbS5o
CShyZXZpc2lvbiAyNDI3MjEpCisrKyBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L05ldHdvcmtDYWNoZUZpbGVTeXN0ZW0uaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBA
QCBGaWxlVGltZXMgZmlsZVRpbWVzKGNvbnN0IFN0cmluZyYgcGF0aCk7CiB2b2lkIHVwZGF0ZUZp
bGVNb2RpZmljYXRpb25UaW1lSWZOZWVkZWQoY29uc3QgU3RyaW5nJiBwYXRoKTsKIAogYm9vbCBp
c1NhZmVUb1VzZU1lbW9yeU1hcEZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKTsKK3ZvaWQgcmVn
aXN0ZXJQYXRoQXNVbnNhZmVUb01lbW9yeU1hcEZvclRlc3RpbmcoY29uc3QgU3RyaW5nJik7CiAK
IH0KIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdC5jcHAJKHJldmlzaW9uIDI0MjcyMSkKKysrIFNvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQs
MTQgKzQ0LDE5IEBAIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0Ojp+V2ViQ29tcGlsZWQKIHsK
IH0KIAorYm9vbCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6dXNlc0NvcGllZE1lbW9yeSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8UmVmUHRyPFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcj4+KG1fZGF0YS5kYXRhKTsKK30KKwogYm9vbCBXZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdDo6Y29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDMyX3QqPihyZWludGVycHJldF9jYXN0PHVp
bnQ4X3QqPihtX2RhdGEuZGF0YS0+ZGF0YSgpKSArIG1fZGF0YS5jb25kaXRpb25zQXBwbHlPbmx5
VG9Eb21haW5PZmZzZXQpOworICAgIHJldHVybiAqcmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50
MzJfdCo+KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KG1fZGF0YS5kYXRhUG9pbnRl
cigpKSArIG1fZGF0YS5jb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW5PZmZzZXQpOwogfQogCiBj
b25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGUqIFdlYkNvbXBpbGVk
Q29udGVudFJ1bGVMaXN0OjpmaWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZSgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNp
b25zOjpERkFCeXRlY29kZSo+KG1fZGF0YS5kYXRhLT5kYXRhKCkpICsgbV9kYXRhLmZpbHRlcnNX
aXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0OworICAgIHJldHVybiBzdGF0aWNfY2FzdDxj
b25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGUqPihtX2RhdGEuZGF0
YVBvaW50ZXIoKSkgKyBtX2RhdGEuZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVPZmZz
ZXQ7CiB9CiAKIHVuc2lnbmVkIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0OjpmaWx0ZXJzV2l0
aG91dENvbmRpdGlvbnNCeXRlY29kZUxlbmd0aCgpIGNvbnN0CkBAIC02MSw3ICs2Niw3IEBAIHVu
c2lnbmVkIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0OjpmaWwKIAogY29uc3QgV2ViQ29yZTo6
Q29udGVudEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlKiBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlz
dDo6ZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGUoKSBjb25zdAogewotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxjb25zdCBXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6REZBQnl0ZWNvZGUq
PihtX2RhdGEuZGF0YS0+ZGF0YSgpKSArIG1fZGF0YS5maWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRl
Y29kZU9mZnNldDsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgV2ViQ29yZTo6Q29udGVu
dEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlKj4obV9kYXRhLmRhdGFQb2ludGVyKCkpICsgbV9kYXRh
LmZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0OwogfQogCiB1bnNpZ25lZCBXZWJD
b21waWxlZENvbnRlbnRSdWxlTGlzdDo6ZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVMZW5n
dGgoKSBjb25zdApAQCAtNzEsNyArNzYsNyBAQCB1bnNpZ25lZCBXZWJDb21waWxlZENvbnRlbnRS
dWxlTGlzdDo6ZmlsCiAKIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpERkFCeXRl
Y29kZSogV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OnRvcFVSTEZpbHRlcnNCeXRlY29kZSgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRF
eHRlbnNpb25zOjpERkFCeXRlY29kZSo+KG1fZGF0YS5kYXRhLT5kYXRhKCkpICsgbV9kYXRhLnRv
cFVSTEZpbHRlcnNCeXRlY29kZU9mZnNldDsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3Qg
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OkRGQUJ5dGVjb2RlKj4obV9kYXRhLmRhdGFQb2lu
dGVyKCkpICsgbV9kYXRhLnRvcFVSTEZpbHRlcnNCeXRlY29kZU9mZnNldDsKIH0KIAogdW5zaWdu
ZWQgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3Q6OnRvcFVSTEZpbHRlcnNCeXRlY29kZUxlbmd0
aCgpIGNvbnN0CkBAIC04MSw3ICs4Niw3IEBAIHVuc2lnbmVkIFdlYkNvbXBpbGVkQ29udGVudFJ1
bGVMaXN0Ojp0b3AKIAogY29uc3QgV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlNlcmlhbGl6
ZWRBY3Rpb25CeXRlKiBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdDo6YWN0aW9ucygpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNp
b25zOjpTZXJpYWxpemVkQWN0aW9uQnl0ZSo+KG1fZGF0YS5kYXRhLT5kYXRhKCkpICsgbV9kYXRh
LmFjdGlvbnNPZmZzZXQ7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IFdlYkNvcmU6OkNv
bnRlbnRFeHRlbnNpb25zOjpTZXJpYWxpemVkQWN0aW9uQnl0ZSo+KG1fZGF0YS5kYXRhUG9pbnRl
cigpKSArIG1fZGF0YS5hY3Rpb25zT2Zmc2V0OwogfQogCiB1bnNpZ25lZCBXZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdDo6YWN0aW9uc0xlbmd0aCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0LmgJKHJldmlzaW9uIDI0
MjcyMSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDggKzM4LDEwIEBAIHB1YmxpYzoKICAgICBzdGF0aWMg
UmVmPFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0PiBjcmVhdGUoV2ViQ29tcGlsZWRDb250ZW50
UnVsZUxpc3REYXRhJiYpOwogICAgIHZpcnR1YWwgfldlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0
KCk7CiAKLSAgICBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEgZGF0YSgpIGNvbnN0IHsg
cmV0dXJuIG1fZGF0YTsgfQorICAgIGNvbnN0IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0
YSYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YTsgfQogCisgICAgYm9vbCB1c2VzQ29waWVk
TWVtb3J5KCkgY29uc3Q7CisgICAgCiBwcml2YXRlOgogICAgIFdlYkNvbXBpbGVkQ29udGVudFJ1
bGVMaXN0KFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSYmKTsKIApJbmRleDogU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERh
dGEuY3BwCShyZXZpc2lvbiAyNDI3MjEpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21w
aWxlZENvbnRlbnRSdWxlTGlzdERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxNCArMjks
MzggQEAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogCiAjaW5jbHVkZSAiQXJndW1l
bnRDb2RlcnMuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgiCiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCitzaXplX3QgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRh
OjpzaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihkYXRhLCBbXSAoY29u
c3QgYXV0byYgc2hhcmVkTWVtb3J5T3JCdWZmZXIpIHsKKyAgICAgICAgcmV0dXJuIHNoYXJlZE1l
bW9yeU9yQnVmZmVyLT5zaXplKCk7CisgICAgfSk7Cit9CisKK2NvbnN0IHZvaWQqIFdlYkNvbXBp
bGVkQ29udGVudFJ1bGVMaXN0RGF0YTo6ZGF0YVBvaW50ZXIoKSBjb25zdAoreworICAgIHJldHVy
biBXVEY6OnN3aXRjaE9uKGRhdGEsIFtdIChjb25zdCBhdXRvJiBzaGFyZWRNZW1vcnlPckJ1ZmZl
cikgLT4gY29uc3Qgdm9pZCogeworICAgICAgICByZXR1cm4gc2hhcmVkTWVtb3J5T3JCdWZmZXIt
PmRhdGEoKTsKKyAgICB9KTsKK30KKwogdm9pZCBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERh
dGE6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgU2hhcmVkTWVt
b3J5OjpIYW5kbGUgaGFuZGxlOwotICAgIGRhdGEtPmNyZWF0ZUhhbmRsZShoYW5kbGUsIFNoYXJl
ZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwotICAgIGVuY29kZXIgPDwgaGFuZGxlOwor
ICAgIGlmIChhdXRvIHNoYXJlZE1lbW9yeSA9IFdURjo6Z2V0X2lmPFJlZlB0cjxTaGFyZWRNZW1v
cnk+PihkYXRhKSkgeworICAgICAgICBlbmNvZGVyIDw8IHRydWU7CisgICAgICAgIFNoYXJlZE1l
bW9yeTo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgc2hhcmVkTWVtb3J5LT5nZXQoKS0+Y3JlYXRl
SGFuZGxlKGhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAg
ICAgIGVuY29kZXIgPDwgaGFuZGxlOworICAgIH0gZWxzZSB7CisgICAgICAgIGVuY29kZXIgPDwg
ZmFsc2U7CisgICAgICAgIGVuY29kZXIgPDwgSVBDOjpTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNl
IHsgKldURjo6Z2V0PFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+PihkYXRhKSB9OworICAg
IH0KKworICAgIC8vIGZpbGVEYXRhIG5lZWRzIHRvIGJlIGtlcHQgaW4gdGhlIFVJUHJvY2Vzcywg
YnV0IGl0IGRvZXMgbm90IG5lZWQgdG8gYmUgc2VyaWFsaXplZC4KKyAgICAvLyBGSVhNRTogTW92
ZSBpdCB0byBBUEk6OkNvbnRlbnRSdWxlTGlzdAogCiAgICAgZW5jb2RlciA8PCBjb25kaXRpb25z
QXBwbHlPbmx5VG9Eb21haW5PZmZzZXQ7CiAgICAgZW5jb2RlciA8PCBhY3Rpb25zT2Zmc2V0OwpA
QCAtNTIsMTAgKzc2LDIyIEBAIHZvaWQgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhOjpl
bmMKIE9wdGlvbmFsPFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4gV2ViQ29tcGlsZWRD
b250ZW50UnVsZUxpc3REYXRhOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyKQogewogICAg
IFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSBjb21waWxlZENvbnRlbnRSdWxlTGlzdERh
dGE7Ci0gICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOwotICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoaGFuZGxlKSkKLSAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICBjb21waWxl
ZENvbnRlbnRSdWxlTGlzdERhdGEuZGF0YSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRsZSwgU2hh
cmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisKKyAgICBPcHRpb25hbDxib29sPiBo
YXNTaGFyZWRNZW1vcnk7CisgICAgZGVjb2RlciA+PiBoYXNTaGFyZWRNZW1vcnk7CisgICAgaWYg
KCFoYXNTaGFyZWRNZW1vcnkpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgaWYg
KCpoYXNTaGFyZWRNZW1vcnkpIHsKKyAgICAgICAgU2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxl
OworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhbmRsZSkpCisgICAgICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworICAgICAgICBjb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEuZGF0
YSA9IHsgU2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246
OlJlYWRPbmx5KSB9OworICAgIH0gZWxzZSB7CisgICAgICAgIElQQzo6RGF0YVJlZmVyZW5jZSBk
YXRhUmVmZXJlbmNlOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGRhdGFSZWZlcmVuY2Up
KQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAgICAgY29tcGlsZWRDb250
ZW50UnVsZUxpc3REYXRhLmRhdGEgPSB7IFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+KFdl
YkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGFSZWZlcmVuY2UuZGF0YSgpLCBkYXRhUmVm
ZXJlbmNlLnNpemUoKSkpIH07CisgICAgfQogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb21w
aWxlZENvbnRlbnRSdWxlTGlzdERhdGEuY29uZGl0aW9uc0FwcGx5T25seVRvRG9tYWluT2Zmc2V0
KSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YS5oCShyZXZpc2lv
biAyNDI3MjEpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb21waWxlZENvbnRlbnRSdWxl
TGlzdERhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjksOSBAQAogCiAjaW5jbHVkZSAi
TmV0d29ya0NhY2hlRGF0YS5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorI2luY2x1
ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKIG5hbWVzcGFjZSBJUEMgewogY2xhc3MgRGVjb2RlcjsKQEAg
LTQyLDcgKzQ0LDcgQEAgY2xhc3MgV2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhIHsKIHB1
YmxpYzoKICAgICBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEoKSA9IGRlZmF1bHQ7CiAK
LSAgICBXZWJDb21waWxlZENvbnRlbnRSdWxlTGlzdERhdGEoUmVmUHRyPFNoYXJlZE1lbW9yeT4m
JiBkYXRhLCBOZXR3b3JrQ2FjaGU6OkRhdGEgZmlsZURhdGEsIHVuc2lnbmVkIGNvbmRpdGlvbnNB
cHBseU9ubHlUb0RvbWFpbk9mZnNldCwgdW5zaWduZWQgYWN0aW9uc09mZnNldCwgdW5zaWduZWQg
YWN0aW9uc1NpemUsIHVuc2lnbmVkIGZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlT2Zm
c2V0LCB1bnNpZ25lZCBmaWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUsIHVuc2ln
bmVkIGZpbHRlcnNXaXRoQ29uZGl0aW9uc0J5dGVjb2RlT2Zmc2V0LCB1bnNpZ25lZCBmaWx0ZXJz
V2l0aENvbmRpdGlvbnNCeXRlY29kZVNpemUsIHVuc2lnbmVkIHRvcFVSTEZpbHRlcnNCeXRlY29k
ZU9mZnNldCwgdW5zaWduZWQgdG9wVVJMRmlsdGVyc0J5dGVjb2RlU2l6ZSkKKyAgICBXZWJDb21w
aWxlZENvbnRlbnRSdWxlTGlzdERhdGEoVmFyaWFudDxSZWZQdHI8U2hhcmVkTWVtb3J5PiwgUmVm
UHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4+JiYgZGF0YSwgTmV0d29ya0NhY2hlOjpEYXRhIGZp
bGVEYXRhLCB1bnNpZ25lZCBjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW5PZmZzZXQsIHVuc2ln
bmVkIGFjdGlvbnNPZmZzZXQsIHVuc2lnbmVkIGFjdGlvbnNTaXplLCB1bnNpZ25lZCBmaWx0ZXJz
V2l0aG91dENvbmRpdGlvbnNCeXRlY29kZU9mZnNldCwgdW5zaWduZWQgZmlsdGVyc1dpdGhvdXRD
b25kaXRpb25zQnl0ZWNvZGVTaXplLCB1bnNpZ25lZCBmaWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRl
Y29kZU9mZnNldCwgdW5zaWduZWQgZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplLCB1
bnNpZ25lZCB0b3BVUkxGaWx0ZXJzQnl0ZWNvZGVPZmZzZXQsIHVuc2lnbmVkIHRvcFVSTEZpbHRl
cnNCeXRlY29kZVNpemUpCiAgICAgICAgIDogZGF0YShXVEZNb3ZlKGRhdGEpKQogICAgICAgICAs
IGZpbGVEYXRhKGZpbGVEYXRhKQogICAgICAgICAsIGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFp
bk9mZnNldChjb25kaXRpb25zQXBwbHlPbmx5VG9Eb21haW5PZmZzZXQpCkBAIC02MCw3ICs2Miwx
MCBAQCBwdWJsaWM6CiAgICAgdm9pZCBlbmNvZGUoSVBDOjpFbmNvZGVyJikgY29uc3Q7CiAgICAg
c3RhdGljIE9wdGlvbmFsPFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4gZGVjb2RlKElQ
Qzo6RGVjb2RlciYpOwogCi0gICAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gZGF0YTsKKyAgICBzaXpl
X3Qgc2l6ZSgpIGNvbnN0OworICAgIGNvbnN0IHZvaWQqIGRhdGFQb2ludGVyKCkgY29uc3Q7Cisg
ICAgCisgICAgVmFyaWFudDxSZWZQdHI8U2hhcmVkTWVtb3J5PiwgUmVmUHRyPFdlYkNvcmU6OlNo
YXJlZEJ1ZmZlcj4+IGRhdGE7CiAgICAgTmV0d29ya0NhY2hlOjpEYXRhIGZpbGVEYXRhOwogICAg
IHVuc2lnbmVkIGNvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbk9mZnNldCB7IDAgfTsKICAgICB1
bnNpZ25lZCBhY3Rpb25zT2Zmc2V0IHsgMCB9OwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdC5jcHAJKHJldmlzaW9uIDI0MjcyMSkK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3QuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0MiwxMSBAQCBDb250ZW50UnVsZUxpc3Q6On5Db250ZW50
UnVsZUxpc3QoKQogewogfQogCitib29sIENvbnRlbnRSdWxlTGlzdDo6dXNlc0NvcGllZE1lbW9y
eSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29tcGlsZWRSdWxlTGlzdC0+dXNlc0NvcGllZE1l
bW9yeSgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBBUEkKIAogI2VuZGlmIC8vIEVOQUJMRShDT05U
RU5UX0VYVEVOU0lPTlMpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29u
dGVudFJ1bGVMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSUNvbnRlbnRSdWxlTGlzdC5oCShyZXZpc2lvbiAyNDI3MjEpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4
LDYgKzQ4LDggQEAgcHVibGljOgogICAgIGNvbnN0IFdURjo6U3RyaW5nJiBuYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9uYW1lOyB9CiAgICAgY29uc3QgV2ViS2l0OjpXZWJDb21waWxlZENvbnRlbnRS
dWxlTGlzdCYgY29tcGlsZWRSdWxlTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fY29tcGlsZWRSdWxl
TGlzdC5nZXQoKTsgfQogCisgICAgYm9vbCB1c2VzQ29waWVkTWVtb3J5KCkgY29uc3Q7CisKIHBy
aXZhdGU6CiAgICAgV1RGOjpTdHJpbmcgbV9uYW1lOwogICAgIFJlZjxXZWJLaXQ6OldlYkNvbXBp
bGVkQ29udGVudFJ1bGVMaXN0PiBtX2NvbXBpbGVkUnVsZUxpc3Q7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9yZS5j
cHAJKHJldmlzaW9uIDI0MjcyMSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElD
b250ZW50UnVsZUxpc3RTdG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0NvbnRlbnRFeHRlbnNpb25FcnJvci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQ29udGVudEV4dGVuc2lvblBhcnNlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUXVhbGlm
aWVkTmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAjaW5jbHVkZSA8
c3RyaW5nPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0
Zi9GaWxlU3lzdGVtLmg+CkBAIC0xNTYsMTAgKzE1NywyMiBAQCBzdGF0aWMgV2ViS2l0OjpOZXR3
b3JrQ2FjaGU6OkRhdGEgZW5jb2RlCiAgICAgcmV0dXJuIFdlYktpdDo6TmV0d29ya0NhY2hlOjpE
YXRhKGVuY29kZXIuYnVmZmVyKCksIGVuY29kZXIuYnVmZmVyU2l6ZSgpKTsKIH0KIAotc3RhdGlj
IGJvb2wgZGVjb2RlQ29udGVudFJ1bGVMaXN0TWV0YURhdGEoQ29udGVudFJ1bGVMaXN0TWV0YURh
dGEmIG1ldGFEYXRhLCBjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSYgZmlsZURhdGEp
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGdldERhdGEoY29uc3QgVCYsIGNvbnN0IEZ1bmN0
aW9uPGJvb2woY29uc3QgdWludDhfdCosIHNpemVfdCk+Jik7Cit0ZW1wbGF0ZTw+IHZvaWQgZ2V0
RGF0YShjb25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSYgZGF0YSwgY29uc3QgRnVuY3Rp
b248Ym9vbChjb25zdCB1aW50OF90Kiwgc2l6ZV90KT4mIGZ1bmN0aW9uKQoreworICAgIGRhdGEu
YXBwbHkoZnVuY3Rpb24pOworfQordGVtcGxhdGU8PiB2b2lkIGdldERhdGEoY29uc3QgV2ViQ29y
ZTo6U2hhcmVkQnVmZmVyJiBkYXRhLCBjb25zdCBGdW5jdGlvbjxib29sKGNvbnN0IHVpbnQ4X3Qq
LCBzaXplX3QpPiYgZnVuY3Rpb24pCit7CisgICAgZnVuY3Rpb24ocmVpbnRlcnByZXRfY2FzdDxj
b25zdCB1aW50OF90Kj4oZGF0YS5kYXRhKCkpLCBkYXRhLnNpemUoKSk7Cit9CisKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+CitzdGF0aWMgT3B0aW9uYWw8Q29udGVudFJ1bGVMaXN0TWV0YURhdGE+IGRl
Y29kZUNvbnRlbnRSdWxlTGlzdE1ldGFEYXRhKGNvbnN0IFQmIGZpbGVEYXRhKQogewogICAgIGJv
b2wgc3VjY2VzcyA9IGZhbHNlOwotICAgIGZpbGVEYXRhLmFwcGx5KFsmbWV0YURhdGEsICZzdWNj
ZXNzLCAmZmlsZURhdGFdKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKSB7CisgICAg
Q29udGVudFJ1bGVMaXN0TWV0YURhdGEgbWV0YURhdGE7CisgICAgZ2V0RGF0YShmaWxlRGF0YSwg
WyZtZXRhRGF0YSwgJnN1Y2Nlc3MsICZmaWxlRGF0YV0oY29uc3QgdWludDhfdCogZGF0YSwgc2l6
ZV90IHNpemUpIHsKICAgICAgICAgLy8gVGhlIGZpbGUgZGF0YSBzaG91bGQgYmUgbWFwcGVkIGlu
dG8gb25lIGNvbnRpbnVvdXMgbWVtb3J5IHNlZ21lbnQgc28gdGhlIHNpemUKICAgICAgICAgLy8g
cGFzc2VkIHRvIHRoZSBhcHBsaWVyIHNob3VsZCBhbHdheXMgZXF1YWwgdGhlIGRhdGEgc2l6ZS4K
ICAgICAgICAgaWYgKHNpemUgIT0gZmlsZURhdGEuc2l6ZSgpKQpAQCAtMTgzLDE5ICsxOTYsNTIg
QEAgc3RhdGljIGJvb2wgZGVjb2RlQ29udGVudFJ1bGVMaXN0TWV0YURhdAogICAgICAgICBzdWNj
ZXNzID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0pOwotICAgIHJldHVybiBz
dWNjZXNzOworICAgIGlmICghc3VjY2VzcykKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
KyAgICByZXR1cm4gV1RGTW92ZShtZXRhRGF0YSk7CiB9CiAKLXN0YXRpYyBib29sIG9wZW5BbmRN
YXBDb250ZW50UnVsZUxpc3QoY29uc3QgV1RGOjpTdHJpbmcmIHBhdGgsIENvbnRlbnRSdWxlTGlz
dE1ldGFEYXRhJiBtZXRhRGF0YSwgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGEmIGZpbGVEYXRh
KQorI2lmICFQTEFURk9STShDT0NPQSkKK1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IENv
bnRlbnRSdWxlTGlzdFN0b3JlOjpyZWFkQ29udGVudHNPZkZpbGUoY29uc3QgV1RGOjpTdHJpbmcm
IGZpbGVQYXRoKQogewotICAgIGZpbGVEYXRhID0gbWFwRmlsZShmaWxlU3lzdGVtUmVwcmVzZW50
YXRpb24ocGF0aCkuZGF0YSgpKTsKLSAgICBpZiAoZmlsZURhdGEuaXNOdWxsKCkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKyNlbmRpZgogCi0gICAgaWYgKCFkZWNvZGVDb250ZW50UnVsZUxpc3RNZXRhRGF0
YShtZXRhRGF0YSwgZmlsZURhdGEpKQotICAgICAgICByZXR1cm4gZmFsc2U7CitzdHJ1Y3QgTWFw
cGVkT3JDb3BpZWREYXRhIHsKKyAgICBDb250ZW50UnVsZUxpc3RNZXRhRGF0YSBtZXRhRGF0YTsK
KyAgICBWYXJpYW50PFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhLCBSZWZQdHI8V2ViQ29yZTo6
U2hhcmVkQnVmZmVyPj4gZGF0YTsKKyAgICAKKyAgICBjb25zdCB1aW50OF90KiBkYXRhUG9pbnRl
cigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihkYXRhLCBbXSAo
Y29uc3QgV2ViS2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGEmIGRhdGEpIHsKKyAgICAgICAgICAgIHJl
dHVybiBkYXRhLmRhdGEoKTsKKyAgICAgICAgfSwgW10gKGNvbnN0IFJlZlB0cjxXZWJDb3JlOjpT
aGFyZWRCdWZmZXI+JiBzaGFyZWRCdWZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihzaGFyZWRCdWZmZXItPmRhdGEoKSk7CisgICAgICAg
IH0pOworICAgIH0KK307CisKK3N0YXRpYyBPcHRpb25hbDxNYXBwZWRPckNvcGllZERhdGE+IG9w
ZW5BbmRNYXBPckNvcHlDb250ZW50UnVsZUxpc3QoY29uc3QgV1RGOjpTdHJpbmcmIHBhdGgpCit7
CisgICAgaWYgKCFXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6aXNTYWZlVG9Vc2VNZW1vcnlNYXBGb3JQ
YXRoKHBhdGgpKSB7CisgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGJ1ZmZl
ciA9IENvbnRlbnRSdWxlTGlzdFN0b3JlOjpyZWFkQ29udGVudHNPZkZpbGUocGF0aCk7CisgICAg
ICAgIGlmICghYnVmZmVyKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICAg
ICAgYXV0byBtZXRhRGF0YSA9IGRlY29kZUNvbnRlbnRSdWxlTGlzdE1ldGFEYXRhKCpidWZmZXIp
OworICAgICAgICBpZiAoIW1ldGFEYXRhKQorICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKKyAgICAgICAgcmV0dXJuIHt7IFdURk1vdmUoKm1ldGFEYXRhKSwgeyBidWZmZXIucmVsZWFz
ZU5vbk51bGwoKSB9fX07CisgICAgfQogCi0gICAgcmV0dXJuIHRydWU7CisgICAgV2ViS2l0OjpO
ZXR3b3JrQ2FjaGU6OkRhdGEgZmlsZURhdGEgPSBtYXBGaWxlKGZpbGVTeXN0ZW1SZXByZXNlbnRh
dGlvbihwYXRoKS5kYXRhKCkpOworICAgIGlmIChmaWxlRGF0YS5pc051bGwoKSkKKyAgICAgICAg
cmV0dXJuIFdURjo6bnVsbG9wdDsKKyAgICBhdXRvIG1ldGFEYXRhID0gZGVjb2RlQ29udGVudFJ1
bGVMaXN0TWV0YURhdGEoZmlsZURhdGEpOworICAgIGlmICghbWV0YURhdGEpCisgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisgICAgcmV0dXJuIHt7IFdURk1vdmUoKm1ldGFEYXRhKSwgeyBX
VEZNb3ZlKGZpbGVEYXRhKSB9fX07CiB9CiAKIHN0YXRpYyBib29sIHdyaXRlRGF0YVRvRmlsZShj
b25zdCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSYgZmlsZURhdGEsIFBsYXRmb3JtRmlsZUhh
bmRsZSBmZCkKQEAgLTIxMiw3ICsyNTgsNyBAQCBzdGF0aWMgYm9vbCB3cml0ZURhdGFUb0ZpbGUo
Y29uc3QgV2ViS2l0CiAgICAgcmV0dXJuIHN1Y2Nlc3M7CiB9CiAKLXN0YXRpYyBzdGQ6OmVycm9y
X2NvZGUgY29tcGlsZWRUb0ZpbGUoV1RGOjpTdHJpbmcmJiBqc29uLCBWZWN0b3I8V2ViQ29yZTo6
Q29udGVudEV4dGVuc2lvbnM6OkNvbnRlbnRFeHRlbnNpb25SdWxlPiYmIHBhcnNlZFJ1bGVzLCBj
b25zdCBXVEY6OlN0cmluZyYgZmluYWxGaWxlUGF0aCwgQ29udGVudFJ1bGVMaXN0TWV0YURhdGEm
IG1ldGFEYXRhLCBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSYgbWFwcGVkRGF0YSkKK3N0YXRp
YyBFeHBlY3RlZDxNYXBwZWRPckNvcGllZERhdGEsIHN0ZDo6ZXJyb3JfY29kZT4gY29tcGlsZWRU
b0ZpbGUoV1RGOjpTdHJpbmcmJiBqc29uLCBWZWN0b3I8V2ViQ29yZTo6Q29udGVudEV4dGVuc2lv
bnM6OkNvbnRlbnRFeHRlbnNpb25SdWxlPiYmIHBhcnNlZFJ1bGVzLCBjb25zdCBXVEY6OlN0cmlu
ZyYgZmluYWxGaWxlUGF0aCkKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTo6Q29udGVu
dEV4dGVuc2lvbnM7CiAKQEAgLTMyOSw3ICszNzUsNyBAQCBzdGF0aWMgc3RkOjplcnJvcl9jb2Rl
IGNvbXBpbGVkVG9GaWxlKFdUCiAgICAgV1RGOjpTdHJpbmcgdGVtcG9yYXJ5RmlsZVBhdGggPSBv
cGVuVGVtcG9yYXJ5RmlsZSgiQ29udGVudFJ1bGVMaXN0IiwgdGVtcG9yYXJ5RmlsZUhhbmRsZSk7
CiAgICAgaWYgKHRlbXBvcmFyeUZpbGVIYW5kbGUgPT0gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRs
ZSkgewogICAgICAgICBXVEZMb2dBbHdheXMoIkNvbnRlbnQgUnVsZSBMaXN0IGNvbXBpbGluZyBm
YWlsZWQ6IE9wZW5pbmcgdGVtcG9yYXJ5IGZpbGUgZmFpbGVkLiIpOwotICAgICAgICByZXR1cm4g
Q29udGVudFJ1bGVMaXN0U3RvcmU6OkVycm9yOjpDb21waWxlRmFpbGVkOworICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudFJ1bGVMaXN0U3RvcmU6OkVycm9yOjpDb21waWxlRmFp
bGVkKTsKICAgICB9CiAgICAgCiAgICAgY2hhciBpbnZhbGlkSGVhZGVyW0NvbnRlbnRSdWxlTGlz
dEZpbGVIZWFkZXJTaXplXTsKQEAgLTMzOCw2MiArMzg0LDc3IEBAIHN0YXRpYyBzdGQ6OmVycm9y
X2NvZGUgY29tcGlsZWRUb0ZpbGUoV1QKICAgICBpZiAod3JpdGVUb0ZpbGUodGVtcG9yYXJ5Rmls
ZUhhbmRsZSwgaW52YWxpZEhlYWRlciwgc2l6ZW9mKGludmFsaWRIZWFkZXIpKSA9PSAtMSkgewog
ICAgICAgICBXVEZMb2dBbHdheXMoIkNvbnRlbnQgUnVsZSBMaXN0IGNvbXBpbGluZyBmYWlsZWQ6
IFdyaXRpbmcgaGVhZGVyIHRvIGZpbGUgZmFpbGVkLiIpOwogICAgICAgICBjbG9zZUZpbGUodGVt
cG9yYXJ5RmlsZUhhbmRsZSk7Ci0gICAgICAgIHJldHVybiBDb250ZW50UnVsZUxpc3RTdG9yZTo6
RXJyb3I6OkNvbXBpbGVGYWlsZWQ7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250
ZW50UnVsZUxpc3RTdG9yZTo6RXJyb3I6OkNvbXBpbGVGYWlsZWQpOwogICAgIH0KIAorICAgIENv
bnRlbnRSdWxlTGlzdE1ldGFEYXRhIG1ldGFEYXRhOwogICAgIENvbXBpbGF0aW9uQ2xpZW50IGNv
bXBpbGF0aW9uQ2xpZW50KHRlbXBvcmFyeUZpbGVIYW5kbGUsIG1ldGFEYXRhKTsKICAgICAKICAg
ICBpZiAoYXV0byBjb21waWxlckVycm9yID0gY29tcGlsZVJ1bGVMaXN0KGNvbXBpbGF0aW9uQ2xp
ZW50LCBXVEZNb3ZlKGpzb24pLCBXVEZNb3ZlKHBhcnNlZFJ1bGVzKSkpIHsKICAgICAgICAgV1RG
TG9nQWx3YXlzKCJDb250ZW50IFJ1bGUgTGlzdCBjb21waWxpbmcgZmFpbGVkOiBDb21waWxpbmcg
ZmFpbGVkLiIpOwogICAgICAgICBjbG9zZUZpbGUodGVtcG9yYXJ5RmlsZUhhbmRsZSk7Ci0gICAg
ICAgIHJldHVybiBjb21waWxlckVycm9yOworICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQo
Y29tcGlsZXJFcnJvcik7CiAgICAgfQogICAgIGlmIChjb21waWxhdGlvbkNsaWVudC5oYWRFcnJv
cldoaWxlV3JpdGluZ1RvRmlsZSgpKSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5cygiQ29udGVudCBS
dWxlIExpc3QgY29tcGlsaW5nIGZhaWxlZDogV3JpdGluZyB0byBmaWxlIGZhaWxlZC4iKTsKICAg
ICAgICAgY2xvc2VGaWxlKHRlbXBvcmFyeUZpbGVIYW5kbGUpOwotICAgICAgICByZXR1cm4gQ29u
dGVudFJ1bGVMaXN0U3RvcmU6OkVycm9yOjpDb21waWxlRmFpbGVkOworICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoQ29udGVudFJ1bGVMaXN0U3RvcmU6OkVycm9yOjpDb21waWxlRmFpbGVk
KTsKICAgICB9CiAKLSAgICBtYXBwZWREYXRhID0gYWRvcHRBbmRNYXBGaWxlKHRlbXBvcmFyeUZp
bGVIYW5kbGUsIDAsIG1ldGFEYXRhLmZpbGVTaXplKCkpOworICAgIGF1dG8gbWFwcGVkRGF0YSA9
IGFkb3B0QW5kTWFwRmlsZSh0ZW1wb3JhcnlGaWxlSGFuZGxlLCAwLCBtZXRhRGF0YS5maWxlU2l6
ZSgpKTsKICAgICBpZiAobWFwcGVkRGF0YS5pc051bGwoKSkgewogICAgICAgICBXVEZMb2dBbHdh
eXMoIkNvbnRlbnQgUnVsZSBMaXN0IGNvbXBpbGluZyBmYWlsZWQ6IE1hcHBpbmcgZmlsZSBmYWls
ZWQuIik7Ci0gICAgICAgIHJldHVybiBDb250ZW50UnVsZUxpc3RTdG9yZTo6RXJyb3I6OkNvbXBp
bGVGYWlsZWQ7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50UnVsZUxpc3RT
dG9yZTo6RXJyb3I6OkNvbXBpbGVGYWlsZWQpOwogICAgIH0KIAogICAgIGlmICghbW92ZUZpbGUo
dGVtcG9yYXJ5RmlsZVBhdGgsIGZpbmFsRmlsZVBhdGgpKSB7CiAgICAgICAgIFdURkxvZ0Fsd2F5
cygiQ29udGVudCBSdWxlIExpc3QgY29tcGlsaW5nIGZhaWxlZDogTW92aW5nIGZpbGUgZmFpbGVk
LiIpOwotICAgICAgICByZXR1cm4gQ29udGVudFJ1bGVMaXN0U3RvcmU6OkVycm9yOjpDb21waWxl
RmFpbGVkOworICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudFJ1bGVMaXN0U3Rv
cmU6OkVycm9yOjpDb21waWxlRmFpbGVkKTsKICAgICB9CiAKLSAgICByZXR1cm4geyB9OworICAg
IGlmICghaXNTYWZlVG9Vc2VNZW1vcnlNYXBGb3JQYXRoKGZpbmFsRmlsZVBhdGgpKSB7CisgICAg
ICAgIGF1dG8gY29udGVudHMgPSBDb250ZW50UnVsZUxpc3RTdG9yZTo6cmVhZENvbnRlbnRzT2ZG
aWxlKGZpbmFsRmlsZVBhdGgpOworICAgICAgICBpZiAoIWNvbnRlbnRzKQorICAgICAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRSdWxlTGlzdFN0b3JlOjpFcnJvcjo6Q29tcGls
ZUZhaWxlZCk7CisgICAgICAgIHJldHVybiB7eyBXVEZNb3ZlKG1ldGFEYXRhKSwgV1RGTW92ZShj
b250ZW50cykgfX07CisgICAgfQorICAgIAorICAgIHJldHVybiB7eyBXVEZNb3ZlKG1ldGFEYXRh
KSwgV1RGTW92ZShtYXBwZWREYXRhKSB9fTsKIH0KIAotc3RhdGljIFJlZjxBUEk6OkNvbnRlbnRS
dWxlTGlzdD4gY3JlYXRlRXh0ZW5zaW9uKGNvbnN0IFdURjo6U3RyaW5nJiBpZGVudGlmaWVyLCBj
b25zdCBDb250ZW50UnVsZUxpc3RNZXRhRGF0YSYgbWV0YURhdGEsIGNvbnN0IFdlYktpdDo6TmV0
d29ya0NhY2hlOjpEYXRhJiBmaWxlRGF0YSkKK3N0YXRpYyBSZWY8QVBJOjpDb250ZW50UnVsZUxp
c3Q+IGNyZWF0ZUV4dGVuc2lvbihjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRpZmllciwgTWFwcGVk
T3JDb3BpZWREYXRhJiYgZGF0YSkKIHsKLSAgICAvLyBDb250ZW50IGV4dGVuc2lvbnMgYXJlIGFs
d2F5cyBjb21waWxlZCB0byBmaWxlcywgYW5kIGF0IHRoaXMgcG9pbnQgdGhlIGZpbGUKLSAgICAv
LyBoYXMgYmVlbiBhbHJlYWR5IG1hcHBlZCwgdGhlcmVmb3JlIHRyeUNyZWF0ZVNoYXJlZE1lbW9y
eSgpIGNhbm5vdCBmYWlsLgotICAgIGF1dG8gc2hhcmVkTWVtb3J5ID0gZmlsZURhdGEudHJ5Q3Jl
YXRlU2hhcmVkTWVtb3J5KCk7Ci0gICAgQVNTRVJUKHNoYXJlZE1lbW9yeSk7CisgICAgUmVmUHRy
PFdlYktpdDo6U2hhcmVkTWVtb3J5PiBzaGFyZWRNZW1vcnk7CisgICAgaWYgKGF1dG8gbWFwcGVk
RmlsZURhdGEgPSBXVEY6OmdldF9pZjxXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YT4oZGF0YS5k
YXRhKSkgeworICAgICAgICBzaGFyZWRNZW1vcnkgPSBtYXBwZWRGaWxlRGF0YS0+dHJ5Q3JlYXRl
U2hhcmVkTWVtb3J5KCk7CisKKyAgICAgICAgLy8gQ29udGVudCBleHRlbnNpb25zIGFyZSBhbHdh
eXMgY29tcGlsZWQgdG8gZmlsZXMsIGFuZCBhdCB0aGlzIHBvaW50IHRoZSBmaWxlCisgICAgICAg
IC8vIGhhcyBiZWVuIGFscmVhZHkgbWFwcGVkLCB0aGVyZWZvcmUgdHJ5Q3JlYXRlU2hhcmVkTWVt
b3J5KCkgY2Fubm90IGZhaWwuCisgICAgICAgIEFTU0VSVChzaGFyZWRNZW1vcnkpOworICAgIH0K
KyAgICBhdXRvIG1hcHBlZE9yQ29waWVkRmlsZURhdGEgPSBzaGFyZWRNZW1vcnkgPworICAgICAg
ICBWYXJpYW50PFJlZlB0cjxXZWJLaXQ6OlNoYXJlZE1lbW9yeT4sIFJlZlB0cjxXZWJDb3JlOjpT
aGFyZWRCdWZmZXI+PiB7IHNoYXJlZE1lbW9yeSB9CisgICAgICAgIDogVmFyaWFudDxSZWZQdHI8
V2ViS2l0OjpTaGFyZWRNZW1vcnk+LCBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPj4geyBX
VEZNb3ZlKFdURjo6Z2V0PFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+PihkYXRhLmRhdGEp
KSB9OwogCi0gICAgY29uc3Qgc2l6ZV90IGhlYWRlckFuZFNvdXJjZVNpemUgPSBDb250ZW50UnVs
ZUxpc3RGaWxlSGVhZGVyU2l6ZSArIG1ldGFEYXRhLnNvdXJjZVNpemU7CisgICAgY29uc3Qgc2l6
ZV90IGhlYWRlckFuZFNvdXJjZVNpemUgPSBDb250ZW50UnVsZUxpc3RGaWxlSGVhZGVyU2l6ZSAr
IGRhdGEubWV0YURhdGEuc291cmNlU2l6ZTsKICAgICBhdXRvIGNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0RGF0YSA9IFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50UnVsZUxpc3REYXRhKAotICAgICAg
ICBXVEZNb3ZlKHNoYXJlZE1lbW9yeSksCi0gICAgICAgIGZpbGVEYXRhLAorICAgICAgICBXVEZN
b3ZlKG1hcHBlZE9yQ29waWVkRmlsZURhdGEpLAorICAgICAgICBXVEY6OmhvbGRzX2FsdGVybmF0
aXZlPFdlYktpdDo6TmV0d29ya0NhY2hlOjpEYXRhPihkYXRhLmRhdGEpID8gV1RGOjpnZXQ8V2Vi
S2l0OjpOZXR3b3JrQ2FjaGU6OkRhdGE+KGRhdGEuZGF0YSkgOiBXZWJLaXQ6Ok5ldHdvcmtDYWNo
ZTo6RGF0YSB7IH0sCiAgICAgICAgIENvbmRpdGlvbnNBcHBseU9ubHlUb0RvbWFpbk9mZnNldCwK
ICAgICAgICAgaGVhZGVyQW5kU291cmNlU2l6ZSwKLSAgICAgICAgbWV0YURhdGEuYWN0aW9uc1Np
emUsCisgICAgICAgIGRhdGEubWV0YURhdGEuYWN0aW9uc1NpemUsCiAgICAgICAgIGhlYWRlckFu
ZFNvdXJjZVNpemUKLSAgICAgICAgICAgICsgbWV0YURhdGEuYWN0aW9uc1NpemUsCi0gICAgICAg
IG1ldGFEYXRhLmZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZSwKKyAgICAgICAg
ICAgICsgZGF0YS5tZXRhRGF0YS5hY3Rpb25zU2l6ZSwKKyAgICAgICAgZGF0YS5tZXRhRGF0YS5m
aWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUsCiAgICAgICAgIGhlYWRlckFuZFNv
dXJjZVNpemUKLSAgICAgICAgICAgICsgbWV0YURhdGEuYWN0aW9uc1NpemUKLSAgICAgICAgICAg
ICsgbWV0YURhdGEuZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVTaXplLAotICAgICAg
ICBtZXRhRGF0YS5maWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZVNpemUsCisgICAgICAgICAg
ICArIGRhdGEubWV0YURhdGEuYWN0aW9uc1NpemUKKyAgICAgICAgICAgICsgZGF0YS5tZXRhRGF0
YS5maWx0ZXJzV2l0aG91dENvbmRpdGlvbnNCeXRlY29kZVNpemUsCisgICAgICAgIGRhdGEubWV0
YURhdGEuZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplLAogICAgICAgICBoZWFkZXJB
bmRTb3VyY2VTaXplCi0gICAgICAgICAgICArIG1ldGFEYXRhLmFjdGlvbnNTaXplCi0gICAgICAg
ICAgICArIG1ldGFEYXRhLmZpbHRlcnNXaXRob3V0Q29uZGl0aW9uc0J5dGVjb2RlU2l6ZQotICAg
ICAgICAgICAgKyBtZXRhRGF0YS5maWx0ZXJzV2l0aENvbmRpdGlvbnNCeXRlY29kZVNpemUsCi0g
ICAgICAgIG1ldGFEYXRhLmNvbmRpdGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZQorICAgICAgICAg
ICAgKyBkYXRhLm1ldGFEYXRhLmFjdGlvbnNTaXplCisgICAgICAgICAgICArIGRhdGEubWV0YURh
dGEuZmlsdGVyc1dpdGhvdXRDb25kaXRpb25zQnl0ZWNvZGVTaXplCisgICAgICAgICAgICArIGRh
dGEubWV0YURhdGEuZmlsdGVyc1dpdGhDb25kaXRpb25zQnl0ZWNvZGVTaXplLAorICAgICAgICBk
YXRhLm1ldGFEYXRhLmNvbmRpdGlvbmVkRmlsdGVyc0J5dGVjb2RlU2l6ZQogICAgICk7CiAgICAg
YXV0byBjb21waWxlZENvbnRlbnRSdWxlTGlzdCA9IFdlYktpdDo6V2ViQ29tcGlsZWRDb250ZW50
UnVsZUxpc3Q6OmNyZWF0ZShXVEZNb3ZlKGNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YSkpOwog
ICAgIHJldHVybiBBUEk6OkNvbnRlbnRSdWxlTGlzdDo6Y3JlYXRlKGlkZW50aWZpZXIsIFdURk1v
dmUoY29tcGlsZWRDb250ZW50UnVsZUxpc3QpKTsKQEAgLTQwNCwyNCArNDY1LDIzIEBAIHZvaWQg
Q29udGVudFJ1bGVMaXN0U3RvcmU6Omxvb2t1cENvbnRlbnQKICAgICBtX3JlYWRRdWV1ZS0+ZGlz
cGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaWRlbnRpZmllciA9IGlkZW50
aWZpZXIuaXNvbGF0ZWRDb3B5KCksIHN0b3JlUGF0aCA9IG1fc3RvcmVQYXRoLmlzb2xhdGVkQ29w
eSgpLCBsZWdhY3lGaWxlbmFtZSA9IG1fbGVnYWN5RmlsZW5hbWUsIGNvbXBsZXRpb25IYW5kbGVy
ID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8g
cGF0aCA9IGNvbnN0cnVjdGVkUGF0aChzdG9yZVBhdGgsIGlkZW50aWZpZXIsIGxlZ2FjeUZpbGVu
YW1lKTsKICAgICAgICAgCi0gICAgICAgIENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhIG1ldGFEYXRh
OwotICAgICAgICBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSBmaWxlRGF0YTsKLSAgICAgICAg
aWYgKCFvcGVuQW5kTWFwQ29udGVudFJ1bGVMaXN0KHBhdGgsIG1ldGFEYXRhLCBmaWxlRGF0YSkp
IHsKKyAgICAgICAgYXV0byBjb250ZW50UnVsZUxpc3QgPSBvcGVuQW5kTWFwT3JDb3B5Q29udGVu
dFJ1bGVMaXN0KHBhdGgpOworICAgICAgICBpZiAoIWNvbnRlbnRSdWxlTGlzdCkgewogICAgICAg
ICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShw
cm90ZWN0ZWRUaGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobnVs
bHB0ciwgRXJyb3I6Okxvb2t1cEZhaWxlZCk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgaWYgKG1ldGFEYXRhLnZlcnNp
b24gIT0gQ29udGVudFJ1bGVMaXN0U3RvcmU6OkN1cnJlbnRDb250ZW50UnVsZUxpc3RGaWxlVmVy
c2lvbikgeworICAgICAgICBpZiAoY29udGVudFJ1bGVMaXN0LT5tZXRhRGF0YS52ZXJzaW9uICE9
IENvbnRlbnRSdWxlTGlzdFN0b3JlOjpDdXJyZW50Q29udGVudFJ1bGVMaXN0RmlsZVZlcnNpb24p
IHsKICAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9
IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKG51bGxwdHIsIEVycm9yOjpWZXJzaW9uTWlzbWF0Y2gpOwogICAgICAgICAgICAgfSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIFJ1bkxv
b3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhp
cyksIGlkZW50aWZpZXIgPSBpZGVudGlmaWVyLmlzb2xhdGVkQ29weSgpLCBmaWxlRGF0YSA9IFdU
Rk1vdmUoZmlsZURhdGEpLCBtZXRhRGF0YSA9IFdURk1vdmUobWV0YURhdGEpLCBjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKLSAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNyZWF0ZUV4dGVuc2lvbihpZGVudGlmaWVyLCBtZXRh
RGF0YSwgZmlsZURhdGEpLCB7IH0pOworICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2go
W3Byb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBpZGVudGlmaWVyID0gaWRl
bnRpZmllci5pc29sYXRlZENvcHkoKSwgY29udGVudFJ1bGVMaXN0ID0gV1RGTW92ZSgqY29udGVu
dFJ1bGVMaXN0KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjcmVhdGVFeHRl
bnNpb24oaWRlbnRpZmllciwgV1RGTW92ZShjb250ZW50UnVsZUxpc3QpKSwgeyB9KTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CiB9CkBAIC00NTUsMTkgKzUxNSwxNyBAQCB2b2lkIENvbnRlbnRSdWxl
TGlzdFN0b3JlOjpjb21waWxlQ29udGVuCiAgICAgbV9jb21waWxlUXVldWUtPmRpc3BhdGNoKFtw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGlkZW50aWZpZXIgPSBpZGVudGlmaWVyLmlz
b2xhdGVkQ29weSgpLCBsZWdhY3lGaWxlbmFtZSA9IG1fbGVnYWN5RmlsZW5hbWUsIGpzb24gPSBq
c29uLmlzb2xhdGVkQ29weSgpLCBwYXJzZWRSdWxlcyA9IHBhcnNlZFJ1bGVzLnZhbHVlKCkuaXNv
bGF0ZWRDb3B5KCksIHN0b3JlUGF0aCA9IG1fc3RvcmVQYXRoLmlzb2xhdGVkQ29weSgpLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsK
ICAgICAgICAgYXV0byBwYXRoID0gY29uc3RydWN0ZWRQYXRoKHN0b3JlUGF0aCwgaWRlbnRpZmll
ciwgbGVnYWN5RmlsZW5hbWUpOwogCi0gICAgICAgIENvbnRlbnRSdWxlTGlzdE1ldGFEYXRhIG1l
dGFEYXRhOwotICAgICAgICBXZWJLaXQ6Ok5ldHdvcmtDYWNoZTo6RGF0YSBmaWxlRGF0YTsKLSAg
ICAgICAgYXV0byBlcnJvciA9IGNvbXBpbGVkVG9GaWxlKFdURk1vdmUoanNvbiksIFdURk1vdmUo
cGFyc2VkUnVsZXMpLCBwYXRoLCBtZXRhRGF0YSwgZmlsZURhdGEpOwotICAgICAgICBpZiAoZXJy
b3IpIHsKLSAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhp
cyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGVycm9yID0gV1RGTW92ZShlcnJvciksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewor
ICAgICAgICBhdXRvIHJlc3VsdCA9IGNvbXBpbGVkVG9GaWxlKFdURk1vdmUoanNvbiksIFdURk1v
dmUocGFyc2VkUnVsZXMpLCBwYXRoKTsKKyAgICAgICAgaWYgKCFyZXN1bHQuaGFzX3ZhbHVlKCkp
IHsKKyAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9
IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIGVycm9yID0gV1RGTW92ZShyZXN1bHQuZXJyb3IoKSks
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFi
bGUgewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIsIGVycm9yKTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAg
ICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90
ZWN0ZWRUaGlzKSwgaWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllciksIGZpbGVEYXRhID0g
V1RGTW92ZShmaWxlRGF0YSksIG1ldGFEYXRhID0gV1RGTW92ZShtZXRhRGF0YSksIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewotICAg
ICAgICAgICAgUmVmUHRyPEFQSTo6Q29udGVudFJ1bGVMaXN0PiBjb250ZW50UnVsZUxpc3QgPSBj
cmVhdGVFeHRlbnNpb24oaWRlbnRpZmllciwgbWV0YURhdGEsIGZpbGVEYXRhKTsKLSAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnRlbnRSdWxlTGlzdCwgeyB9KTsKKyAgICAgICAgUnVu
TG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRU
aGlzKSwgaWRlbnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllciksIGRhdGEgPSBXVEZNb3ZlKHJl
c3VsdC52YWx1ZSgpKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0gKCkgbXV0YWJsZSB7CisgICAgICAgICAgICBhdXRvIGNvbnRlbnRSdWxlTGlzdCA9IGNy
ZWF0ZUV4dGVuc2lvbihpZGVudGlmaWVyLCBXVEZNb3ZlKGRhdGEpKTsKKyAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKGNvbnRlbnRSdWxlTGlzdC5wdHIoKSwgeyB9KTsKICAgICAgICAgfSk7
CiAgICAgfSk7CiB9CkBAIC01MTcsMjkgKzU3NSwyOCBAQCB2b2lkIENvbnRlbnRSdWxlTGlzdFN0
b3JlOjpnZXRDb250ZW50UnVsCiAgICAgICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc291
cmNlKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9OwotICAgICAgICAKLSAgICAgICAgQ29u
dGVudFJ1bGVMaXN0TWV0YURhdGEgbWV0YURhdGE7Ci0gICAgICAgIFdlYktpdDo6TmV0d29ya0Nh
Y2hlOjpEYXRhIGZpbGVEYXRhOwotICAgICAgICBpZiAoIW9wZW5BbmRNYXBDb250ZW50UnVsZUxp
c3QocGF0aCwgbWV0YURhdGEsIGZpbGVEYXRhKSkgeworCisgICAgICAgIGF1dG8gY29udGVudFJ1
bGVMaXN0ID0gb3BlbkFuZE1hcE9yQ29weUNvbnRlbnRSdWxlTGlzdChwYXRoKTsKKyAgICAgICAg
aWYgKCFjb250ZW50UnVsZUxpc3QpIHsKICAgICAgICAgICAgIGNvbXBsZXRlKHsgfSk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHN3aXRjaCAobWV0
YURhdGEudmVyc2lvbikgeworICAgICAgICBzd2l0Y2ggKGNvbnRlbnRSdWxlTGlzdC0+bWV0YURh
dGEudmVyc2lvbikgewogICAgICAgICBjYXNlIDk6CiAgICAgICAgIGNhc2UgMTA6Ci0gICAgICAg
ICAgICBpZiAoIW1ldGFEYXRhLnNvdXJjZVNpemUpIHsKKyAgICAgICAgICAgIGlmICghY29udGVu
dFJ1bGVMaXN0LT5tZXRhRGF0YS5zb3VyY2VTaXplKSB7CiAgICAgICAgICAgICAgICAgY29tcGxl
dGUoeyB9KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBib29sIGlzOEJpdCA9IGZpbGVEYXRhLmRhdGEoKVtDb250ZW50UnVsZUxpc3RGaWxlSGVh
ZGVyU2l6ZV07CisgICAgICAgICAgICBib29sIGlzOEJpdCA9IGNvbnRlbnRSdWxlTGlzdC0+ZGF0
YVBvaW50ZXIoKVtDb250ZW50UnVsZUxpc3RGaWxlSGVhZGVyU2l6ZV07CiAgICAgICAgICAgICBz
aXplX3Qgc3RhcnQgPSBDb250ZW50UnVsZUxpc3RGaWxlSGVhZGVyU2l6ZSArIHNpemVvZihib29s
KTsKLSAgICAgICAgICAgIHNpemVfdCBsZW5ndGggPSBtZXRhRGF0YS5zb3VyY2VTaXplIC0gc2l6
ZW9mKGJvb2wpOworICAgICAgICAgICAgc2l6ZV90IGxlbmd0aCA9IGNvbnRlbnRSdWxlTGlzdC0+
bWV0YURhdGEuc291cmNlU2l6ZSAtIHNpemVvZihib29sKTsKICAgICAgICAgICAgIGlmIChpczhC
aXQpCi0gICAgICAgICAgICAgICAgY29tcGxldGUoV1RGOjpTdHJpbmcoZmlsZURhdGEuZGF0YSgp
ICsgc3RhcnQsIGxlbmd0aCkpOworICAgICAgICAgICAgICAgIGNvbXBsZXRlKFdURjo6U3RyaW5n
KGNvbnRlbnRSdWxlTGlzdC0+ZGF0YVBvaW50ZXIoKSArIHN0YXJ0LCBsZW5ndGgpKTsKICAgICAg
ICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIEFTU0VSVCghKGxlbmd0aCAlIHNpemVvZihV
Q2hhcikpKTsKLSAgICAgICAgICAgICAgICBjb21wbGV0ZShXVEY6OlN0cmluZyhyZWludGVycHJl
dF9jYXN0PGNvbnN0IFVDaGFyKj4oZmlsZURhdGEuZGF0YSgpICsgc3RhcnQpLCBsZW5ndGggLyBz
aXplb2YoVUNoYXIpKSk7CisgICAgICAgICAgICAgICAgY29tcGxldGUoV1RGOjpTdHJpbmcocmVp
bnRlcnByZXRfY2FzdDxjb25zdCBVQ2hhcio+KGNvbnRlbnRSdWxlTGlzdC0+ZGF0YVBvaW50ZXIo
KSArIHN0YXJ0KSwgbGVuZ3RoIC8gc2l6ZW9mKFVDaGFyKSkpOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuaAkocmV2aXNpb24gMjQy
NzIxKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0
b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVkZSA8c3lzdGVt
X2Vycm9yPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitjbGFzcyBTaGFyZWRCdWZmZXI7Cit9CisKIG5hbWVzcGFjZSBXVEYgewogY2xhc3Mg
V29ya1F1ZXVlOwogfQpAQCAtNzIsNiArNzYsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbnZhbGlk
YXRlQ29udGVudFJ1bGVMaXN0VmVyc2lvbihjb25zdCBXVEY6OlN0cmluZyYgaWRlbnRpZmllcik7
CiAgICAgdm9pZCBnZXRDb250ZW50UnVsZUxpc3RTb3VyY2UoY29uc3QgV1RGOjpTdHJpbmcmIGlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV1RGOjpTdHJpbmcpPik7CiAKKyAgICBz
dGF0aWMgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gcmVhZENvbnRlbnRzT2ZGaWxlKGNv
bnN0IFdURjo6U3RyaW5nJiBwYXRoKTsKKwogcHJpdmF0ZToKICAgICBXVEY6OlN0cmluZyBkZWZh
dWx0U3RvcmVQYXRoKGJvb2wgbGVnYWN5RmlsZW5hbWUpOwogICAgIHN0YXRpYyBDb250ZW50UnVs
ZUxpc3RTdG9yZSYgbGVnYWN5RGVmYXVsdFN0b3JlKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmVDb2NvYS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJQ29udGVudFJ1bGVM
aXN0U3RvcmVDb2NvYS5tbQkocmV2aXNpb24gMjQyNzIxKQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlQ29jb2EubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQog
CiAjaW5jbHVkZSAiU2FuZGJveFV0aWxpdGllcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVk
QnVmZmVyLmg+CiAKIG5hbWVzcGFjZSBBUEkgewogCkBAIC02Myw2ICs2NCwxNSBAQCBXVEY6OlN0
cmluZyBDb250ZW50UnVsZUxpc3RTdG9yZTo6ZGVmYXVsCiAgICAgcmV0dXJuIGNvbnRlbnRSdWxl
TGlzdFN0b3JlVVJMLmFic29sdXRlVVJMLnBhdGguZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uOwog
fQogCitSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBDb250ZW50UnVsZUxpc3RTdG9yZTo6
cmVhZENvbnRlbnRzT2ZGaWxlKGNvbnN0IFN0cmluZyYgZmlsZVBhdGgpCit7CisgICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CisgICAgTlNEYXRhICpkYXRhID0gW05TRGF0YSBkYXRhV2l0aENv
bnRlbnRzT2ZVUkw6W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpmaWxlUGF0aCBpc0RpcmVjdG9yeTpO
T11dOworICAgIGlmICghZGF0YSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJu
IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBBUEkKIAogI2VuZGlmIC8vIEVOQUJMRShDT05URU5UX0VYVEVOU0lPTlMpCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50UnVsZUxpc3RTdG9yZS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZW50
UnVsZUxpc3RTdG9yZS5tbQkocmV2aXNpb24gMjQyNzIxKQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0U3RvcmUubW0JKHdvcmtpbmcgY29weSkK
QEAgLTI4LDYgKzI4LDcgQEAKICNpbXBvcnQgIldLQ29udGVudFJ1bGVMaXN0U3RvcmVJbnRlcm5h
bC5oIgogCiAjaW1wb3J0ICJBUElDb250ZW50UnVsZUxpc3RTdG9yZS5oIgorI2ltcG9ydCAiTmV0
d29ya0NhY2hlRmlsZXN5c3RlbS5oIgogI2ltcG9ydCAiV0tFcnJvckludGVybmFsLmgiCiAjaW1w
b3J0IDx3dGYvQmxvY2tQdHIuaD4KICNpbXBvcnQgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgpA
QCAtMTI1LDYgKzEyNiwxMSBAQCAtIChBUEk6Ok9iamVjdCYpX2FwaU9iamVjdAogCiAvLyBGb3Ig
dGVzdGluZyBvbmx5LgogCisrICh2b2lkKV9yZWdpc3RlclBhdGhBc1Vuc2FmZVRvTWVtb3J5TWFw
Rm9yVGVzdGluZzooTlNTdHJpbmcgKilmaWxlbmFtZQoreworICAgIFdlYktpdDo6TmV0d29ya0Nh
Y2hlOjpyZWdpc3RlclBhdGhBc1Vuc2FmZVRvTWVtb3J5TWFwRm9yVGVzdGluZyhmaWxlbmFtZSk7
Cit9CisKIC0gKHZvaWQpX3JlbW92ZUFsbENvbnRlbnRSdWxlTGlzdHMKIHsKICAgICBfY29udGVu
dFJ1bGVMaXN0U3RvcmUtPnN5bmNocm9ub3VzUmVtb3ZlQWxsQ29udGVudFJ1bGVMaXN0cygpOwpJ
bmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0
U3RvcmVQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQ29udGVudFJ1bGVMaXN0U3RvcmVQcml2YXRlLmgJKHJldmlzaW9uIDI0MjcyMSkK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdFN0
b3JlUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAtICh2b2lkKV9y
ZW1vdmVBbGxDb250ZW50UnVsZUxpc3RzOwogLSAodm9pZClfaW52YWxpZGF0ZUNvbnRlbnRSdWxl
TGlzdFZlcnNpb25Gb3JJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50aWZpZXI7CiAtICh2b2lk
KV9nZXRDb250ZW50UnVsZUxpc3RTb3VyY2VGb3JJZGVudGlmaWVyOihOU1N0cmluZyAqKWlkZW50
aWZpZXIgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TU3RyaW5nKikpY29tcGxldGlvbkhh
bmRsZXI7CisrICh2b2lkKV9yZWdpc3RlclBhdGhBc1Vuc2FmZVRvTWVtb3J5TWFwRm9yVGVzdGlu
ZzooTlNTdHJpbmcgKilmaWxlbmFtZTsKIAogLy8gTlNfUkVMRUFTRVNfQVJHVU1FTlQgdG8ga2Vl
cCBwZWFrIG1lbW9yeSB1c2FnZSBsb3cuCiAtICh2b2lkKV9jb21waWxlQ29udGVudFJ1bGVMaXN0
Rm9ySWRlbnRpZmllcjooTlNTdHJpbmcgKilpZGVudGlmaWVyIGVuY29kZWRDb250ZW50UnVsZUxp
c3Q6KE5TU3RyaW5nICopIE5TX1JFTEVBU0VTX0FSR1VNRU5UIGVuY29kZWRDb250ZW50UnVsZUxp
c3QgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKFdLQ29udGVudFJ1bGVMaXN0ICosIE5TRXJy
b3IgKikpY29tcGxldGlvbkhhbmRsZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXIubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1VzZXJDb250ZW50RmlsdGVyLm1tCShyZXZpc2lv
biAyNDI3MjEpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNv
bnRlbnRGaWx0ZXIubW0JKHdvcmtpbmcgY29weSkKQEAgLTU2LDQgKzU2LDkgQEAgLSAoaWQpX2lu
aXRXaXRoV0tDb250ZW50UnVsZUxpc3Q6KFdLQ29udAogICAgIHJldHVybiBzZWxmOwogfQogCist
IChCT09MKXVzZXNDb3BpZWRNZW1vcnkKK3sKKyAgICByZXR1cm4gX2NvbnRlbnRSdWxlTGlzdC0+
X2NvbnRlbnRSdWxlTGlzdC0+dXNlc0NvcGllZE1lbW9yeSgpOworfQorCiBAZW5kCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXJQcml2
YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1VzZXJDb250ZW50RmlsdGVyUHJpdmF0ZS5oCShyZXZpc2lvbiAyNDI3MjEpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLVXNlckNvbnRlbnRGaWx0ZXJQcml2YXRlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDUgKzMwLDYgQEAKIEBpbnRlcmZhY2UgX1dLVXNlckNvbnRl
bnRGaWx0ZXIgKFdLUHJpdmF0ZSkKIAogLSAoaWQpX2luaXRXaXRoV0tDb250ZW50UnVsZUxpc3Q6
KFdLQ29udGVudFJ1bGVMaXN0Kiljb250ZW50UnVsZUxpc3QgV0tfQVBJX0FWQUlMQUJMRShtYWNv
c3goMTAuMTMpLCBpb3MoMTEuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBC
T09MIHVzZXNDb3BpZWRNZW1vcnk7CiAKIEBlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Vc2VyQ29udGVudC9XZWJVc2VyQ29udGVudENv
bnRyb2xsZXIuY3BwCShyZXZpc2lvbiAyNDI3MjEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzQ4LDExICszNDgsMTAgQEAgdm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OnJl
bW92ZVVzZQogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotdm9pZCBX
ZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OmFkZENvbnRlbnRSdWxlTGlzdHMoY29uc3QgVmVjdG9y
PHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4+JiBjb250
ZW50UnVsZUxpc3RzKQordm9pZCBXZWJVc2VyQ29udGVudENvbnRyb2xsZXI6OmFkZENvbnRlbnRS
dWxlTGlzdHMoVmVjdG9yPHN0ZDo6cGFpcjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVM
aXN0RGF0YT4+JiYgY29udGVudFJ1bGVMaXN0cykKIHsKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGNv
bnRlbnRSdWxlTGlzdCA6IGNvbnRlbnRSdWxlTGlzdHMpIHsKLSAgICAgICAgV2ViQ29tcGlsZWRD
b250ZW50UnVsZUxpc3REYXRhIGNvbnRlbnRSdWxlTGlzdERhdGEgPSBjb250ZW50UnVsZUxpc3Qu
c2Vjb25kOwotICAgICAgICBhdXRvIGNvbXBpbGVkQ29udGVudFJ1bGVMaXN0ID0gV2ViQ29tcGls
ZWRDb250ZW50UnVsZUxpc3Q6OmNyZWF0ZShXVEZNb3ZlKGNvbnRlbnRSdWxlTGlzdERhdGEpKTsK
KyAgICBmb3IgKGF1dG8mJiBjb250ZW50UnVsZUxpc3QgOiBjb250ZW50UnVsZUxpc3RzKSB7Cisg
ICAgICAgIGF1dG8gY29tcGlsZWRDb250ZW50UnVsZUxpc3QgPSBXZWJDb21waWxlZENvbnRlbnRS
dWxlTGlzdDo6Y3JlYXRlKFdURk1vdmUoY29udGVudFJ1bGVMaXN0LnNlY29uZCkpOwogCiAgICAg
ICAgIG1fY29udGVudEV4dGVuc2lvbkJhY2tlbmQuYWRkQ29udGVudEV4dGVuc2lvbihjb250ZW50
UnVsZUxpc3QuZmlyc3QsIFdURk1vdmUoY29tcGlsZWRDb250ZW50UnVsZUxpc3QpKTsKICAgICB9
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRl
bnRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Vz
ZXJDb250ZW50L1dlYlVzZXJDb250ZW50Q29udHJvbGxlci5oCShyZXZpc2lvbiAyNDI3MjEpCisr
KyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvVXNlckNvbnRlbnQvV2ViVXNlckNvbnRlbnRDb250
cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgIHZv
aWQgYWRkVXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3RvcjxXZWJVc2VyU3R5bGVTaGVldERhdGE+
Jik7CiAgICAgdm9pZCBhZGRVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJzKGNvbnN0IFZlY3RvcjxX
ZWJTY3JpcHRNZXNzYWdlSGFuZGxlckRhdGE+Jik7CiAjaWYgRU5BQkxFKENPTlRFTlRfRVhURU5T
SU9OUykKLSAgICB2b2lkIGFkZENvbnRlbnRSdWxlTGlzdHMoY29uc3QgVmVjdG9yPHN0ZDo6cGFp
cjxTdHJpbmcsIFdlYkNvbXBpbGVkQ29udGVudFJ1bGVMaXN0RGF0YT4+Jik7CisgICAgdm9pZCBh
ZGRDb250ZW50UnVsZUxpc3RzKFZlY3RvcjxzdGQ6OnBhaXI8U3RyaW5nLCBXZWJDb21waWxlZENv
bnRlbnRSdWxlTGlzdERhdGE+PiYmKTsKICNlbmRpZgogCiBwcml2YXRlOgpJbmRleDogU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHJldmlzaW9uIDI0Mjcy
MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MzcsNyArNjM3LDcgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50NjRfdCBw
YWdlSUQsIFdlYlBhZwogICAgIG1fdXNlckNvbnRlbnRDb250cm9sbGVyLT5hZGRVc2VyU3R5bGVT
aGVldHMocGFyYW1ldGVycy51c2VyU3R5bGVTaGVldHMpOwogICAgIG1fdXNlckNvbnRlbnRDb250
cm9sbGVyLT5hZGRVc2VyU2NyaXB0TWVzc2FnZUhhbmRsZXJzKHBhcmFtZXRlcnMubWVzc2FnZUhh
bmRsZXJzKTsKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotICAgIG1fdXNlckNvbnRl
bnRDb250cm9sbGVyLT5hZGRDb250ZW50UnVsZUxpc3RzKHBhcmFtZXRlcnMuY29udGVudFJ1bGVM
aXN0cyk7CisgICAgbV91c2VyQ29udGVudENvbnRyb2xsZXItPmFkZENvbnRlbnRSdWxlTGlzdHMo
V1RGTW92ZShwYXJhbWV0ZXJzLmNvbnRlbnRSdWxlTGlzdHMpKTsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MjcyMSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE5LTAzLTExICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIGEgV0tDb250ZW50UnVs
ZUxpc3QgdmFyaWFudCB0aGF0IHVzZXMgY29waWVkIG1lbW9yeSBpbnN0ZWFkIG9mIG1tYXAnZCBz
aGFyZWQgbWVtb3J5IGZvciBjbGFzcyBBIGNvbnRhaW5lcml6ZWQgYXBwcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NTExCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS80NDg3MzI2OT4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50RXh0
ZW5zaW9uU3RvcmUubW06CisgICAgICAgICgtW1Rlc3RTY2hlbWVIYW5kbGVyU3VicmVzb3VyY2VT
aG91bGRCZUJsb2NrZWQgd2ViVmlldzpzdGFydFVSTFNjaGVtZVRhc2s6XSk6CisgICAgICAgICgt
W1Rlc3RTY2hlbWVIYW5kbGVyU3VicmVzb3VyY2VTaG91bGRCZUJsb2NrZWQgd2ViVmlldzpzdG9w
VVJMU2NoZW1lVGFzazpdKToKKyAgICAgICAgKFRFU1RfRik6CisKIDIwMTktMDMtMDggIERld2Vp
IFpodSAgPGRld2VpX3podUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIE1vdGlvbk1hcmstMS4x
IHBsYW4gZmlsZSBmb3IgcnVuLWJlbmNobWFyayBzY3JpcHQuCkluZGV4OiBUb29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQ29udGVudEV4dGVuc2lvblN0b3JlLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50
RXh0ZW5zaW9uU3RvcmUubW0JKHJldmlzaW9uIDI0MjcyMSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tDb250ZW50RXh0ZW5zaW9uU3RvcmUubW0JKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDkgKzI4LDE0IEBACiAKICNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgi
CiAjaW1wb3J0ICJUZXN0LmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCiAjaW1wb3J0IDxX
ZWJLaXQvV0tDb250ZW50UnVsZUxpc3QuaD4KICNpbXBvcnQgPFdlYktpdC9XS0NvbnRlbnRSdWxl
TGlzdFN0b3JlUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS1VzZXJDb250ZW50RmlsdGVy
UHJpdmF0ZS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL3RleHQv
U3RyaW5nQnVpbGRlci5oPgorI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGUuaD4K
KyNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiBjbGFzcyBX
S0NvbnRlbnRSdWxlTGlzdFN0b3JlVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKIHB1Ymxp
YzoKQEAgLTM3NywzICszODIsMTAyIEBAIFRFU1RfRihXS0NvbnRlbnRSdWxlTGlzdFN0b3JlVGVz
dCwgQWRkUmUKICAgICBbd2ViVmlldyByZWxvYWRdOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcmVjZWl2ZWRBbGVydCk7CiB9CisKK0BpbnRlcmZhY2UgVGVzdFNjaGVtZUhhbmRsZXJT
dWJyZXNvdXJjZVNob3VsZEJlQmxvY2tlZCA6IE5TT2JqZWN0IDxXS1VSTFNjaGVtZUhhbmRsZXI+
CitAZW5kCitAaW1wbGVtZW50YXRpb24gVGVzdFNjaGVtZUhhbmRsZXJTdWJyZXNvdXJjZVNob3Vs
ZEJlQmxvY2tlZAorLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0VVJM
U2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdGFzaworeworICAgIEVYUEVDVF9UUlVF
KFt0YXNrLnJlcXVlc3QuVVJMLnBhdGggaXNFcXVhbFRvU3RyaW5nOkAiL3Nob3VsZGxvYWQiXSk7
CisgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOltbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGlu
aXRXaXRoVVJMOnRhc2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVk
Q29udGVudExlbmd0aDowIHRleHRFbmNvZGluZ05hbWU6bmlsXSBhdXRvcmVsZWFzZV1dOworICAg
IFt0YXNrIGRpZEZpbmlzaF07Cit9CistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgc3RvcFVSTFNjaGVtZVRhc2s6KGlkIDxXS1VSTFNjaGVtZVRhc2s+KXRhc2sKK3sKKyAgICBF
WFBFQ1RfVFJVRShmYWxzZSk7Cit9CitAZW5kCisKK1RFU1RfRihXS0NvbnRlbnRSdWxlTGlzdFN0
b3JlVGVzdCwgVW5zYWZlTU1hcCkKK3sKKyAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IHRlbXBEaXIg
PSBbTlNUZW1wb3JhcnlEaXJlY3RvcnkoKSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6
QCJVbnNhZmVNTWFwVGVzdCJdOworICAgIFJldGFpblB0cjxXS0NvbnRlbnRSdWxlTGlzdFN0b3Jl
PiBzdG9yZSA9IFtXS0NvbnRlbnRSdWxlTGlzdFN0b3JlIHN0b3JlV2l0aFVSTDpbTlNVUkwgZmls
ZVVSTFdpdGhQYXRoOnRlbXBEaXIuZ2V0KCkgaXNEaXJlY3Rvcnk6WUVTXV07CisgICAgc3RhdGlj
IE5TU3RyaW5nICppZGVudGlmaWVyID0gQCJUZXN0UnVsZUxpc3QiOworICAgIHN0YXRpYyBOU1N0
cmluZyAqZmlsZU5hbWUgPSBAIkNvbnRlbnRSdWxlTGlzdC1UZXN0UnVsZUxpc3QiOworICAgIHN0
YXRpYyBOU1N0cmluZyAqcnVsZUxpc3RTb3VyY2VTdHJpbmcgPSBAIlt7XCJhY3Rpb25cIjp7XCJ0
eXBlXCI6XCJibG9ja1wifSxcInRyaWdnZXJcIjp7XCJ1cmwtZmlsdGVyXCI6XCJibG9ja2Vkc3Vi
cmVzb3VyY2VcIn19XSI7CisgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBmaWxlUGF0aCA9IFt0ZW1w
RGlyIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpmaWxlTmFtZV07CisKKyAgICBhdXRv
IHJ1blRlc3QgPSBbJl0gKGJvb2wgc2hvdWxkVXNlQ29waWVkTWVtb3J5KSB7CisgICAgICAgIEVY
UEVDVF9GQUxTRShbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBh
dGg6ZmlsZVBhdGguZ2V0KCldKTsKKyAgICAgICAgCisgICAgICAgIF9fYmxvY2sgYm9vbCBkb25l
Q29tcGlsaW5nID0gZmFsc2U7CisgICAgICAgIF9fYmxvY2sgUmV0YWluUHRyPFdLQ29udGVudFJ1
bGVMaXN0PiBydWxlTGlzdDsKKyAgICAgICAgW3N0b3JlIGNvbXBpbGVDb250ZW50UnVsZUxpc3RG
b3JJZGVudGlmaWVyOmlkZW50aWZpZXIgZW5jb2RlZENvbnRlbnRSdWxlTGlzdDpydWxlTGlzdFNv
dXJjZVN0cmluZyBjb21wbGV0aW9uSGFuZGxlcjpeKFdLQ29udGVudFJ1bGVMaXN0ICpmaWx0ZXIs
IE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgICAgICBFWFBFQ1RfTk9UX05VTEwoZmlsdGVyKTsK
KyAgICAgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgICAgIGRvbmVDb21waWxp
bmcgPSB0cnVlOworICAgICAgICAgICAgcnVsZUxpc3QgPSBmaWx0ZXI7CisgICAgICAgICAgICBF
WFBFQ1RfVFJVRShbW1tbX1dLVXNlckNvbnRlbnRGaWx0ZXIgYWxsb2NdIF9pbml0V2l0aFdLQ29u
dGVudFJ1bGVMaXN0OmZpbHRlcl0gYXV0b3JlbGVhc2VdIHVzZXNDb3BpZWRNZW1vcnldID09IHNo
b3VsZFVzZUNvcGllZE1lbW9yeSk7CisgICAgICAgIH1dOworICAgICAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmVDb21waWxpbmcpOworICAgICAgICAKKyAgICAgICAgRVhQRUNUX1RS
VUUoW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmZpbGVQ
YXRoLmdldCgpXSk7CisKKyAgICAgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbVGVzdFNjaGVt
ZUhhbmRsZXJTdWJyZXNvdXJjZVNob3VsZEJlQmxvY2tlZCBuZXddKTsKKyAgICAgICAgYXV0byBj
b25maWd1cmF0aW9uID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddKTsKKyAg
ICAgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpoYW5kbGVyLmdldCgpIGZv
clVSTFNjaGVtZTpAInRlc3RtbWFwIl07CisgICAgICAgIFtbY29uZmlndXJhdGlvbiB1c2VyQ29u
dGVudENvbnRyb2xsZXJdIGFkZENvbnRlbnRSdWxlTGlzdDpydWxlTGlzdC5nZXQoKV07CisgICAg
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbi5nZXQoKV0pOworICAgICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJp
bmc6QCI8aHRtbD5tYWluIHJlc291cmNlIGNvbnRlbnQ8L2h0bWw+IiBiYXNlVVJMOltOU1VSTCBV
UkxXaXRoU3RyaW5nOkAidGVzdG1tYXA6Ly93ZWJraXQub3JnL21haW5yZXNvdXJjZSJdXTsKKwor
ICAgICAgICBhdXRvIGxvYWRpbmdTaG91bGRTdWNjZWVkID0gWyZdIChOU1N0cmluZyAqcmVzb3Vy
Y2VQYXRoLCBOU1N0cmluZyAqc2hvdWxkU3VjY2VlZCkgeworICAgICAgICAgICAgX19ibG9jayBi
b29sIGRvbmVFdmFsdWF0aW5nID0gZmFsc2U7CisgICAgICAgICAgICBbd2ViVmlldyBldmFsdWF0
ZUphdmFTY3JpcHQ6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJ2YXIgY2F1Z2h0ID0gZmFs
c2U7IHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsgeGhyLm9wZW4oJ0dFVCcsICclQCcs
IGZhbHNlKTsgdHJ5eyB4aHIuc2VuZCgpIH0gY2F0Y2goZSkgeyBjYXVnaHQgPSB0cnVlOyB9OyBj
YXVnaHQgIT0gJUAgPyAnc3VjY2VzcycgOiAnZmFpbHVyZSciLCByZXNvdXJjZVBhdGgsIHNob3Vs
ZFN1Y2NlZWRdIGNvbXBsZXRpb25IYW5kbGVyOl4oaWQgcmVzdWx0LCBOU0Vycm9yICplcnJvcikg
eworICAgICAgICAgICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgICAgICAgICBF
WFBFQ1RfVFJVRShbQCJzdWNjZXNzIiBpc0VxdWFsVG9TdHJpbmc6cmVzdWx0XSk7CisgICAgICAg
ICAgICAgICAgZG9uZUV2YWx1YXRpbmcgPSB0cnVlOworICAgICAgICAgICAgfV07CisgICAgICAg
ICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVFdmFsdWF0aW5nKTsKKyAgICAgICAg
fTsKKyAgICAgICAgbG9hZGluZ1Nob3VsZFN1Y2NlZWQoQCIvc2hvdWxkbG9hZCIsIEAidHJ1ZSIp
OworICAgICAgICBsb2FkaW5nU2hvdWxkU3VjY2VlZChAIi9ibG9ja2Vkc3VicmVzb3VyY2UiLCBA
ImZhbHNlIik7CisKKyAgICAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxl
cl0gcmVtb3ZlQ29udGVudFJ1bGVMaXN0OnJ1bGVMaXN0LmdldCgpXTsKKyAgICAgICAgCisgICAg
ICAgIF9fYmxvY2sgYm9vbCBkb25lTG9va2luZ1VwID0gZmFsc2U7CisgICAgICAgIFtzdG9yZSBs
b29rVXBDb250ZW50UnVsZUxpc3RGb3JJZGVudGlmaWVyOmlkZW50aWZpZXIgY29tcGxldGlvbkhh
bmRsZXI6XihXS0NvbnRlbnRSdWxlTGlzdCAqZmlsdGVyLCBOU0Vycm9yICplcnJvcikgeworICAg
ICAgICAgICAgRVhQRUNUX05PVF9OVUxMKGZpbHRlcik7CisgICAgICAgICAgICBFWFBFQ1RfTlVM
TChlcnJvcik7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRvbmVMb29raW5nVXAgPSB0cnVl
OworICAgICAgICAgICAgCisgICAgICAgICAgICBFWFBFQ1RfVFJVRShbW1tbX1dLVXNlckNvbnRl
bnRGaWx0ZXIgYWxsb2NdIF9pbml0V2l0aFdLQ29udGVudFJ1bGVMaXN0OmZpbHRlcl0gYXV0b3Jl
bGVhc2VdIHVzZXNDb3BpZWRNZW1vcnldID09IHNob3VsZFVzZUNvcGllZE1lbW9yeSk7CisgICAg
ICAgICAgICBydWxlTGlzdCA9IGZpbHRlcjsKKyAgICAgICAgfV07CisgICAgICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmZG9uZUxvb2tpbmdVcCk7CisKKyAgICAgICAgW1tjb25maWd1cmF0
aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkQ29udGVudFJ1bGVMaXN0OnJ1bGVMaXN0Lmdl
dCgpXTsKKyAgICAgICAgbG9hZGluZ1Nob3VsZFN1Y2NlZWQoQCIvc2hvdWxkbG9hZCIsIEAidHJ1
ZSIpOworICAgICAgICBsb2FkaW5nU2hvdWxkU3VjY2VlZChAIi9ibG9ja2Vkc3VicmVzb3VyY2Ui
LCBAImZhbHNlIik7CisKKyAgICAgICAgX19ibG9jayBib29sIGRvbmVDaGVja2luZ1NvdXJjZSA9
IGZhbHNlOworICAgICAgICBbc3RvcmUgX2dldENvbnRlbnRSdWxlTGlzdFNvdXJjZUZvcklkZW50
aWZpZXI6aWRlbnRpZmllciBjb21wbGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nICpzb3VyY2UpIHsK
KyAgICAgICAgICAgIEVYUEVDVF9UUlVFKFtzb3VyY2UgaXNFcXVhbFRvU3RyaW5nOnJ1bGVMaXN0
U291cmNlU3RyaW5nXSk7CisgICAgICAgICAgICBkb25lQ2hlY2tpbmdTb3VyY2UgPSB0cnVlOwor
ICAgICAgICB9XTsKKyAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lQ2hlY2tp
bmdTb3VyY2UpOworICAgICAgICAKKyAgICAgICAgX19ibG9jayBib29sIGRvbmVSZW1vdmluZyA9
IGZhbHNlOworICAgICAgICBbc3RvcmUgcmVtb3ZlQ29udGVudFJ1bGVMaXN0Rm9ySWRlbnRpZmll
cjppZGVudGlmaWVyIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNFcnJvciAqZXJyb3IpIHsKKyAgICAg
ICAgICAgIEVYUEVDVF9OVUxMKGVycm9yKTsKKyAgICAgICAgICAgIGRvbmVSZW1vdmluZyA9IHRy
dWU7CisgICAgICAgIH1dOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmVS
ZW1vdmluZyk7CisKKyAgICAgICAgRVhQRUNUX0ZBTFNFKFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0
TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpmaWxlUGF0aC5nZXQoKV0pOworICAgIH07CisgICAg
CisgICAgcnVuVGVzdChmYWxzZSk7CisgICAgW1dLQ29udGVudFJ1bGVMaXN0U3RvcmUgX3JlZ2lz
dGVyUGF0aEFzVW5zYWZlVG9NZW1vcnlNYXBGb3JUZXN0aW5nOmZpbGVQYXRoLmdldCgpXTsKKyAg
ICBydW5UZXN0KHRydWUpOworfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>