<?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>101729</bug_id>
          
          <creation_ts>2012-11-09 01:52:32 -0800</creation_ts>
          <short_desc>Web Inspector: NMI add instrumentation for WebAudo related stuff. It uses about 16Mb for shared data on pages with webaudio. As example Angry Birds app.</short_desc>
          <delta_ts>2012-11-18 15:35:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>apavlov</cc>
    
    <cc>crogers</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gustavo</cc>
    
    <cc>haraken</cc>
    
    <cc>keishi</cc>
    
    <cc>levin+threading</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>philn</cc>
    
    <cc>pmuellr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>762718</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-09 01:52:32 -0800</bug_when>
    <thetext>EOM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762852</commentid>
    <comment_count>1</comment_count>
      <attachid>173268</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-09 05:02:55 -0800</bug_when>
    <thetext>Created attachment 173268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762860</commentid>
    <comment_count>2</comment_count>
      <attachid>173268</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-09 05:11:12 -0800</bug_when>
    <thetext>Comment on attachment 173268
Patch

Attachment 173268 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14770616</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762862</commentid>
    <comment_count>3</comment_count>
      <attachid>173268</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-09 05:13:13 -0800</bug_when>
    <thetext>Comment on attachment 173268
Patch

Attachment 173268 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14683453</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762864</commentid>
    <comment_count>4</comment_count>
      <attachid>173268</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-09 05:17:31 -0800</bug_when>
    <thetext>Comment on attachment 173268
Patch

Attachment 173268 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14788132</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762866</commentid>
    <comment_count>5</comment_count>
      <attachid>173271</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-09 05:17:46 -0800</bug_when>
    <thetext>Created attachment 173271
for qt bot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762914</commentid>
    <comment_count>6</comment_count>
      <attachid>173271</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-09 05:54:09 -0800</bug_when>
    <thetext>Comment on attachment 173271
for qt bot

Attachment 173271 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14778396</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762917</commentid>
    <comment_count>7</comment_count>
      <attachid>173268</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-09 05:56:09 -0800</bug_when>
    <thetext>Comment on attachment 173268
Patch

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

&gt; Source/WebCore/dom/ActiveDOMObject.cpp:98
&gt; +    UNUSED_PARAM(info);

Please remove this.

&gt; Source/WebCore/dom/ContextDestructionObserver.h:43
&gt; +    virtual void reportMemoryUsage(MemoryObjectInfo*) const;

We shouldn&apos;t add reportMemoryUsage to abstract interfaces as we don&apos;t control their implementations.

&gt; Source/WebCore/dom/WebCoreMemoryInstrumentation.h:48
&gt; +    static MemoryObjectType Audio;

Should go into PlatformMemoryInstrumentation.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762921</commentid>
    <comment_count>8</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-09 05:58:46 -0800</bug_when>
    <thetext>Except for the comments above the instrumentation looks good. But I&apos;d like someone familiar with web audio code to look at AudioContext::reportMemoryUsage and AutoLocker call in it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762928</commentid>
    <comment_count>9</comment_count>
      <attachid>173287</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-09 06:04:19 -0800</bug_when>
    <thetext>Created attachment 173287
with fix for mac and win bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762983</commentid>
    <comment_count>10</comment_count>
      <attachid>173287</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-09 07:07:53 -0800</bug_when>
    <thetext>Comment on attachment 173287
with fix for mac and win bots.

Attachment 173287 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14785201</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763023</commentid>
    <comment_count>11</comment_count>
      <attachid>173287</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-09 07:56:18 -0800</bug_when>
    <thetext>Comment on attachment 173287
with fix for mac and win bots.

Attachment 173287 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14771712</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763629</commentid>
    <comment_count>12</comment_count>
      <attachid>173442</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-10 04:14:43 -0800</bug_when>
    <thetext>Created attachment 173442
with fix for mac, gtk and win bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764101</commentid>
    <comment_count>13</comment_count>
      <attachid>173573</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-11 23:33:16 -0800</bug_when>
    <thetext>Created attachment 173573
with additional instrumentation for fft arrays. total ~36mb</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>764104</commentid>
    <comment_count>14</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-11 23:42:54 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 173268 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=173268&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/ActiveDOMObject.cpp:98
&gt; &gt; +    UNUSED_PARAM(info);
&gt; 
&gt; Please remove this.

done

&gt; 
&gt; &gt; Source/WebCore/dom/ContextDestructionObserver.h:43
&gt; &gt; +    virtual void reportMemoryUsage(MemoryObjectInfo*) const;
&gt; 
&gt; We shouldn&apos;t add reportMemoryUsage to abstract interfaces as we don&apos;t control their implementations.

done

&gt; 
&gt; &gt; Source/WebCore/dom/WebCoreMemoryInstrumentation.h:48
&gt; &gt; +    static MemoryObjectType Audio;
&gt; 
&gt; Should go into PlatformMemoryInstrumentation.h

done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766734</commentid>
    <comment_count>15</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2012-11-14 04:13:46 -0800</bug_when>
    <thetext>Committed r134593: &lt;http://trac.webkit.org/changeset/134593&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766766</commentid>
    <comment_count>16</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-14 05:05:56 -0800</bug_when>
    <thetext>It looks like this patch broke inspector-protocol/nmi-webaudio.html. I will mark it as FAIL. Please fix it soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770199</commentid>
    <comment_count>17</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-11-18 15:35:48 -0800</bug_when>
    <thetext>That test is also asserting in Mac debug builds:
http://build.webkit.org/results/Apple%20MountainLion%20Debug%20WK1%20(Tests)/r135081%20(2941)/inspector-protocol/nmi-webaudio-crash-log.txt</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173268</attachid>
            <date>2012-11-09 05:02:55 -0800</date>
            <delta_ts>2012-11-09 06:04:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101729-20121109170102.patch</filename>
            <type>text/plain</type>
            <size>31105</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmE0NWVhZmM0YzQ1MWM2
ZWQ3YmU1NzI3NDc3ODhlZWMwZTlkNWQzNS4uNDdjOWJlYjFjOTIzYWZiMzUxNTcxMDA5YTJjMmVh
MTcyMzUyNWQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDEyLTExLTA5ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUkgYWRkIGluc3RydW1lbnRhdGlvbiBmb3IgV2ViQXVkbyByZWxhdGVkIHN0dWZmLgor
ICAgICAgICBUaGV5IHVzZSBhYm91dCAxNk1iIGZvciBzaGFyZWQgZGF0YSBvbiBwYWdlcyB3aXRo
IHdlYmF1ZGlvLgorICAgICAgICBBcyBleGFtcGxlIEFuZ3J5IEJpcmRzIGFwcC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTcyOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsYWluIHZhbmlsbGEgaW5z
dHJ1bWVudGF0aW9uIGZvciBhdWRpbyBhbmQgd2ViYXVkaW8gY2xhc3Nlcy4KKyAgICAgICAgQXVk
aW9Db250ZXh0IGlzIGEga2luZCBvZiBBY3RpdmVET01PYmplY3QuIEkgZm91bmQgdGhhdCB0aGVz
ZSBvYmplY3RzCisgICAgICAgIGFyZSBhY2Nlc3NpYmxlIHRocm91Z2ggU2NyaXB0RXhlY3V0dWlv
bkNvbnRleHQgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKKyAgICAgICAgaXMgYW4gYW5jZXN0
b3Igb2YgRG9jdW1lbnQuIERvY3VtZW50IGNsYXNzIHdhcyBpbnN0cnVtZW50ZWQgZWFybGVyLgor
ICAgICAgICBJIGluc3RydW1lbnRlZCBBY3RpdmVET01PYmplY3QsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgYW5kIG90aGVyIGFuY2VzdG9ycworICAgICAgICBhbmQgbm93IEF1ZGlvQ29udGV4dCBh
bmQgb3RoZXIgQWN0aXZlRE9NT2JqZWN0cyBhcmUgcmVhY2hlYWJsZSBmcm9tIERvY3VtZW50Lgor
CisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8uaHRtbAorCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9Db250ZXh0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAo
QXVkaW9Db250ZXh0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmg6Cisg
ICAgICAgIChBdWRpb05vZGUpOgorICAgICAgICAqIGRvbS9BY3RpdmVET01PYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWN0aXZlRE9NT2JqZWN0OjpyZXBvcnRNZW1vcnlVc2FnZSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vQWN0aXZlRE9NT2JqZWN0Lmg6CisgICAg
ICAgIChBY3RpdmVET01PYmplY3QpOgorICAgICAgICAqIGRvbS9Db250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
cjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9t
L0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmg6CisgICAgICAgIChDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcik6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpOgorICAgICAgICAqIGRvbS9TZWN1cml0eUNvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2VjdXJpdHlDb250ZXh0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBkb20vU2VjdXJpdHlDb250ZXh0Lmg6CisgICAgICAgIChTZWN1cml0
eUNvbnRleHQpOgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlTWVtb3J5VHlwZXMpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaDoKKyAgICAgICAgKEF1ZGlvQXJyYXkpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9BcnJheTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9GRlRGcmFtZS5oOgorICAgICAgICAoRkZURnJhbWUpOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIUlRGRGF0YWJh
c2U6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5oOgorICAgICAgICAoSFJURkRhdGFiYXNlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFJURkRhdGFiYXNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIu
aDoKKyAgICAgICAgKEhSVEZEYXRhYmFzZUxvYWRlcik6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vSFJURkVsZXZhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIUlRGRWxldmF0aW9uOjpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9IUlRGRWxldmF0aW9uLmg6CisgICAgICAgIChIUlRGRWxldmF0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGS2VybmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhS
VEZLZXJuZWw6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuaDoKKyAgICAgICAgKEhSVEZLZXJuZWwpOgor
CiAyMDEyLTExLTA4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IHNwbGl0IFNwbGl0VmlldyBpbnRvIFNwbGl0VmlldyBhbmQg
U2lkZWJhclZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmNwcAppbmRleCA5ZjY1ODgwMTY5MzdkYWY3MTY3NjFkMjdkMmY3N2VhNzZkMGU1YTZh
Li45NGJmYmI0NDAxNGQxMDM3ZmE0ZTk4ZTA1MGUzZmQ5OGM1OTkzMWU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCkBAIC01Nyw2ICs1
Nyw5IEBACiAjaW5jbHVkZSAiU2NyaXB0UHJvY2Vzc29yTm9kZS5oIgogI2luY2x1ZGUgIldhdmVT
aGFwZXJOb2RlLmgiCiAjaW5jbHVkZSAiV2F2ZVRhYmxlLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b25IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5o
PgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgpA
QCAtOTYyLDYgKzk2NSwzMSBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6ZGVjcmVtZW50QWN0aXZlU291
cmNlQ291bnQoKQogICAgIGF0b21pY0RlY3JlbWVudCgmbV9hY3RpdmVTb3VyY2VDb3VudCk7CiB9
CiAKK3ZvaWQgQXVkaW9Db250ZXh0OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIEF1dG9Mb2NrZXIgbG9ja2VyKGNvbnN0
X2Nhc3Q8QXVkaW9Db250ZXh0Kj4odGhpcykpOworCisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8o
bWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpBdWRpbyk7CisgICAg
QWN0aXZlRE9NT2JqZWN0OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2RvY3VtZW50KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Rlc3Rp
bmF0aW9uTm9kZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9saXN0ZW5lcik7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9maW5pc2hlZE5vZGVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3JlZmVyZW5j
ZWROb2Rlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ub2Rlc01hcmtlZEZvckRlbGV0aW9uKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX25vZGVzVG9EZWxldGUpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fZGlydHlTdW1taW5nSnVuY3Rpb25zKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2RpcnR5QXVk
aW9Ob2RlT3V0cHV0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9hdXRvbWF0aWNQdWxsTm9kZXMp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVuZGVyaW5nQXV0b21hdGljUHVsbE5vZGVzKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2NvbnRleHRHcmFwaE11dGV4KTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2RlZmVycmVkRmluaXNoRGVyZWZMaXN0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2hydGZE
YXRhYmFzZUxvYWRlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9ldmVudFRhcmdldERhdGEpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fcmVuZGVyVGFyZ2V0KTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2F1ZGlvRGVjb2Rlcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuaAppbmRleCAzMDk4ZDhlYzZjMTBiN2Q2NmM1Yjk2ODJlMGQ5MjA0MWJhODY0
MTk4Li5hZTcwMzI4Y2I3ZWM5YjA3NGM4ZjU4ZDU4OTQ1MjFmMTdkZTI0OWJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKQEAgLTI0NSw3ICsy
NDUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJlQ29tcGxldGlvbkV2ZW50KCk7CiAgICAgCiAg
ICAgc3RhdGljIHVuc2lnbmVkIHNfaGFyZHdhcmVDb250ZXh0Q291bnQ7Ci0gICAgCisKKyAgICB2
aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9W
RVJSSURFOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEF1ZGlvQ29udGV4dChEb2N1bWVudCop
OwogICAgIEF1ZGlvQ29udGV4dChEb2N1bWVudCosIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMs
IHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKaW5kZXggNjlmZDkwYmIxNzYzNjFl
N2FiNWM5MWM3ZTVkMWE3ODNmOGRjZGZkYy4uZDE0ZWIzZGZjM2ExNTIyZjYyYzU5MTEwZjMyYmFj
YzJkYzEwN2YxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9O
b2RlLmNwcApAQCAtMzMsOCArMzMsMTAgQEAKICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIK
ICNpbmNsdWRlICJBdWRpb1BhcmFtLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXRv
bWljcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL01lbW9y
eUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiAjaWYgREVCVUdfQVVESU9OT0RFX1JFRkVSRU5D
RVMKICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtNDAyLDYgKzQwNCwxNCBAQCB2b2lkIEF1ZGlvTm9k
ZTo6ZmluaXNoRGVyZWYoUmVmVHlwZSByZWZUeXBlKQogICAgIH0KIH0KIAordm9pZCBBdWRpb05v
ZGU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgV2ViQ29yZU1lbW9yeVR5cGVzOjpBdWRpbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb250
ZXh0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2lucHV0cyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9vdXRwdXRzKTsKK30KKwogI2lmIERFQlVHX0FVRElPTk9ERV9SRUZFUkVOQ0VTCiAKIGJvb2wg
QXVkaW9Ob2RlOjpzX2lzTm9kZUNvdW50SW5pdGlhbGl6ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCmluZGV4IDRlZjNlNjU2MGI3ZmZlOGQ5
YzA3ZDBjNzI0ZmRlOWM0YjNjZGMwODkuLjYxYjVhMjBiMTU0MTk1NzUwNTkzMWQ0ZmYxODU4ODY5
MTFkYjM2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUu
aApAQCAtMjUsNiArMjUsNyBAQAogI2lmbmRlZiBBdWRpb05vZGVfaAogI2RlZmluZSBBdWRpb05v
ZGVfaAogCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBA
IC0xNTYsNiArMTU3LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBlbmFibGVPdXRwdXRzSWZOZWNl
c3NhcnkoKTsKICAgICB2b2lkIGRpc2FibGVPdXRwdXRzSWZOZWNlc3NhcnkoKTsKKworICAgIHZv
aWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90ZWN0
ZWQ6CiAgICAgLy8gSW5wdXRzIGFuZCBvdXRwdXRzIG11c3QgYmUgY3JlYXRlZCBiZWZvcmUgdGhl
IEF1ZGlvTm9kZSBpcyBpbml0aWFsaXplZC4KICAgICB2b2lkIGFkZElucHV0KFBhc3NPd25QdHI8
QXVkaW9Ob2RlSW5wdXQ+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVE
T01PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAKaW5k
ZXggMWZlODMyYWVlY2EzOTU4Mzc1YjU3YWVmM2VkNjFmM2ZiOGU2N2U0Ni4uMmZiNjg0NTEyOTk2
ZDU1MDMwYjAzYzhiZTg0OGEzMDBkMDNhMDU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURP
TU9iamVjdC5jcHAKQEAgLTkxLDQgKzkxLDEyIEBAIHZvaWQgQWN0aXZlRE9NT2JqZWN0OjpzdG9w
KCkKIHsKIH0KIAordm9pZCBBY3RpdmVET01PYmplY3Q6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00p
OworICAgIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpyZXBvcnRNZW1vcnlVc2FnZShtZW1v
cnlPYmplY3RJbmZvKTsKKyAgICBVTlVTRURfUEFSQU0oaW5mbyk7Cit9CisKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCmluZGV4IGI0YWJk
YTAzOTAyYWI0ZjZmNmQ0YzQ1NjBiYzQzNTVhODRhNjY4ODcuLmNmYWE2ZTQyNzFkMWJlMzZkZDEw
YzMzYjA5NWU5ZGFiNWU0YWI4OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3Rp
dmVET01PYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgK
QEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
LmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTc2LDYgKzc3LDggQEAgcHVibGljOgogICAg
ICAgICB0aGlzT2JqZWN0LT5kZXJlZigpOwogICAgIH0KIAorICAgIHZpcnR1YWwgdm9pZCByZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByb3Rl
Y3RlZDoKICAgICB2aXJ0dWFsIH5BY3RpdmVET01PYmplY3QoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAKaW5kZXggYTU1N2RjN2Mw
MWIwMGQ0M2QwODExOWVmODE1NGNmMDMyOWEyZGE4NC4uYzc5MGRjNDA5OTc1YTNjYTNkNDljY2Fk
OTYzOThmODkxMjBiMTljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHRE
ZXN0cnVjdGlvbk9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dERl
c3RydWN0aW9uT2JzZXJ2ZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKIAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtNjIsNCArNjMsMTEgQEAgdm9pZCBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcjo6Y29udGV4dERlc3Ryb3llZCgpCiAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0ID0gMDsKIH0KIAordm9pZCBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6cmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAg
ICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworfQorCisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RGVzdHJ1
Y3Rpb25PYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9i
c2VydmVyLmgKaW5kZXggY2E5NTZhYmM4ZDIwYTIzMTQ3YjE5NDJiNTQ2NDg1MTc2OWY5MzU5MS4u
M2QxNTRjN2Q1YTZmNTg2ZTE1ZDI2MDA0ZTJmNDk4OGFlYzZkMDRiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgKQEAgLTI3LDYgKzI3LDgg
QEAKICNpZm5kZWYgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXJfaAogI2RlZmluZSBDb250ZXh0
RGVzdHJ1Y3Rpb25PYnNlcnZlcl9oCiAKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CkBAIC0zOCw2
ICs0MCw4IEBAIHB1YmxpYzoKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
IH0KIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KikgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5Db250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlcigpOwogICAgIHZvaWQgb2JzZXJ2ZUNvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMGJhOGM4YjhjZGQ0YzNlNmY3Y2ZhNTM0
YTA2OTZkYjRkYjFjNWZjOC4uODBlZWUwYzgxMGI1MjQwYjkwMTJhNWE5NTliNTU5MzJjYmVhMWQ0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01OTIwLDYgKzU5MjAsOCBAQCB2b2lkIERv
Y3VtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJ
bmZvKSBjb25zdAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8s
IHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKICAgICBDb250YWluZXJOb2RlOjpyZXBv
cnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBUcmVlU2NvcGU6OnJlcG9ydE1l
bW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwogICAgIGluZm8uYWRkTWVtYmVy
KG1fc3R5bGVSZXNvbHZlcik7CiAgICAgaW5mby5hZGRNZW1iZXIobV91cmwpOwogICAgIGluZm8u
YWRkTWVtYmVyKG1fYmFzZVVSTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5jcHAKaW5kZXggMzlhM2RjZDYwMzZhZDViYjlmYjVhYTA3MTMxODk1M2M2ZDAz
NDE0ZS4uNzJhMTFjNGM2Mjc5MTE4ZDE3YzAzYzIzN2NkOGU3Y2I0NGEzOGU0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApAQCAtMjgsNyArMjgs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCIKIAotI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgorI2luY2x1ZGUgIkF1ZGlvQ29u
dGV4dC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkRP
TVRpbWVyLmgiCiAjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgpAQCAtMzcsMTIgKzM3LDE0IEBACiAj
aW5jbHVkZSAiRmlsZVRocmVhZC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVk
ZSAiUHVibGljVVJMTWFuYWdlci5oIgotI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgotI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRl
ICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4
dC5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFk
Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaD4KKyNpbmNs
dWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNDA5LDYgKzQxMSwyMSBAQCBkb3VibGUg
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6dGltZXJBbGlnbm1lbnRJbnRlcnZhbCgpIGNvbnN0CiAg
ICAgcmV0dXJuIFNldHRpbmdzOjpkZWZhdWx0RE9NVGltZXJBbGlnbm1lbnRJbnRlcnZhbCgpOwog
fQogCit2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00p
OworICAgIFNlY3VyaXR5Q29udGV4dDo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5m
byk7CisgICAgaW5mby5hZGRNZW1iZXIobV9tZXNzYWdlUG9ydHMpOworICAgIGluZm8uYWRkTWVt
YmVyKG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYWN0aXZl
RE9NT2JqZWN0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV90aW1lb3V0cyk7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9wZW5kaW5nRXhjZXB0aW9ucyk7CisjaWYgRU5BQkxFKEJMT0IpCisgICAgaW5m
by5hZGRNZW1iZXIobV9wdWJsaWNVUkxNYW5hZ2VyKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Zp
bGVUaHJlYWQpOworI2VuZGlmCit9CisKIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s6On5U
YXNrKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
CmluZGV4IGI4ZGNhMjkwNmZkMzlkNDdiOThlNDFkNDViZWViZDM4MzQxMDgzOTkuLmM4OWQwOWFl
Y2QxYTBkYjE2MWFmZWM2MmIzNGQzYTM3MjlhNjgwZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMTYxLDYgKzE2MSw4IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgRXZlbnRRdWV1ZSogZXZlbnRRdWV1ZSgpIGNvbnN0ID0gMDsKIAorICAgIHZp
cnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZF
UlJJREU7CisKIHByb3RlY3RlZDoKICAgICBjbGFzcyBBZGRDb25zb2xlTWVzc2FnZVRhc2sgOiBw
dWJsaWMgVGFzayB7CiAgICAgcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1NlY3VyaXR5Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0
LmNwcAppbmRleCA3ZTlmODM5MjBiYzA3MWJhYjUxMjJhNTU3NDBhNWJiNzhiMWY2ZjQyLi40Yzgx
Y2ZkYjdjOGM3ZTI5ZjgyNDZmOWY3ZmU5OTQzMmI2MTk5YzZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2VjdXJpdHlDb250ZXh0LmNwcApAQCAtMTIyLDQgKzEyMiwxMSBAQCBTYW5kYm94RmxhZ3MgU2Vj
dXJpdHlDb250ZXh0OjpwYXJzZVNhbmRib3hQb2xpY3koY29uc3QgU3RyaW5nJiBwb2xpY3kpCiAg
ICAgcmV0dXJuIGZsYWdzOwogfQogCit2b2lkIFNlY3VyaXR5Q29udGV4dDo6cmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBN
ZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5
VHlwZXM6OkRPTSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zZWN1cml0eU9yaWdpbik7CisgICAg
aW5mby5hZGRNZW1iZXIobV9jb250ZW50U2VjdXJpdHlQb2xpY3kpOworfQorCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2VjdXJpdHlDb250ZXh0LmgKaW5kZXggOWNmNDlkMzk4YWEwMjg0MTEyYjAxZWZiMjEy
YWIyYzhlMWVjZTgyYS4uN2MwOTdlN2U5NGI0NDA5NTkyZWE0MzRjZmE1OGQ2ZWNkN2Y4MDU2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuaApAQCAtNzMsNiArNzMsOCBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgU2FuZGJveEZsYWdzIHBhcnNlU2FuZGJveFBvbGljeShjb25zdCBT
dHJpbmcmIHBvbGljeSk7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgU2VjdXJpdHlDb250ZXh0
KCk7CiAgICAgdmlydHVhbCB+U2VjdXJpdHlDb250ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggNzE0MTBhMTRl
ZmU4NmMxMTE1MmYyYzc2OTE2ZTk5YzcxNzM4MTFjMi4uN2Y3MDg3NzI3MWNkNjBmOWVjODgzMjI1
Y2QxZWUzM2FhOGY0MDZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVN
ZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3Jl
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcApAQCAtMzcsNiArMzcsOCBAQCBNZW1vcnlPYmplY3RU
eXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6UGFnZSA9ICJQYWdlIjsKIE1lbW9yeU9iamVjdFR5cGUg
V2ViQ29yZU1lbW9yeVR5cGVzOjpET00gPSAiUGFnZS5ET00iOwogTWVtb3J5T2JqZWN0VHlwZSBX
ZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyA9ICJQYWdlLkNTUyI7CiBNZW1vcnlPYmplY3RUeXBlIFdl
YkNvcmVNZW1vcnlUeXBlczo6QmluZGluZyA9ICJQYWdlLkJpbmRpbmciOworTWVtb3J5T2JqZWN0
VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkF1ZGlvID0gIlBhZ2UuQXVkaW8iOworTWVtb3J5T2Jq
ZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkF1ZGlvU2hhcmVkRGF0YSA9ICJQYWdlLkF1ZGlv
LlNoYXJlZERhdGEiOwogCiBNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6TWVt
b3J5Q2FjaGVTdHJ1Y3R1cmVzID0gIk1lbW9yeUNhY2hlLkludGVybmFsU3RydWN0dXJlcyI7CiBN
ZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6Q2FjaGVkUmVzb3VyY2UgPSAiTWVt
b3J5Q2FjaGUuUmVzb3VyY2UiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNv
cmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggNzQ3OWUwNTM0MTdkMGVkMDZkYTNlZmFhMmQyYWQz
Zjc1ZGEzOTEyZS4uYmEzOTcyZTVjZGIxYjAwOWFmOTFiYjliYWFhZmU4NjA2OGZiMzg5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5o
CkBAIC00NSw2ICs0NSw4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBE
T007CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgQ1NTOwogICAgIHN0YXRpYyBNZW1vcnlP
YmplY3RUeXBlIEJpbmRpbmc7CisgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgQXVkaW87Cisg
ICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgQXVkaW9TaGFyZWREYXRhOwogCiAgICAgc3RhdGlj
IE1lbW9yeU9iamVjdFR5cGUgTWVtb3J5Q2FjaGVTdHJ1Y3R1cmVzOwogICAgIHN0YXRpYyBNZW1v
cnlPYmplY3RUeXBlIENhY2hlZFJlc291cmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9BcnJheS5oCmluZGV4IGQyZDk5ZTE4MzEzNWI5MGE3ZTk1NGRmYTdkYTZmMzE3ODhi
ODVjYzcuLjJhNTFiMDE1ZDkzZTgwYzIzNmUxZDc1NDBiNDA0Mjc0YzdjOWYzMzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKQEAgLTE0Miw2ICsxNDIsMTMg
QEAgcHVibGljOgogICAgICAgICBtZW1jcHkodGhpcy0+ZGF0YSgpICsgc3RhcnQsIHNvdXJjZURh
dGEsIHNpemVvZihUKSAqIChlbmQgLSBzdGFydCkpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIE1lbW9yeU9iamVjdEluZm8+CisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAorICAgIHsKKyAgICAgICAgdHlw
ZW5hbWUgTWVtb3J5T2JqZWN0SW5mbzo6Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywg
dGhpcyk7CisgICAgICAgIGluZm8uYWRkUmF3QnVmZmVyKG1fYWxsb2NhdGlvbiwgbV9zaXplICog
c2l6ZW9mKFQpKTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgc3RhdGljIFQqIGFsaWduZWRBZGRy
ZXNzKFQqIGFkZHJlc3MsIGludHB0cl90IGFsaWdubWVudCkKICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHAKaW5kZXggYTFhMGE1MGRhY2ViY2I2ZDkwMzY0
NGM2MDJkMTQ0OGM4MDI5YjIyYi4uMzViZThkOTU5ZjhmYjk2MzMyNjI5NGI1YTE0MTIyZjFhZWY5
ZDkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmNwcApAQCAt
MzcsNiArMzcsNyBAQAogI2VuZGlmCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAi
V2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV4Lmg+
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBA
IC0yNDgsNiArMjQ5LDQ4IEBAIHZvaWQgRkZURnJhbWU6OmFkZENvbnN0YW50R3JvdXBEZWxheShk
b3VibGUgc2FtcGxlRnJhbWVEZWxheSkKICAgICB9CiB9CiAKK3ZvaWQgRkZURnJhbWU6OnJlcG9y
dE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7
CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29y
ZU1lbW9yeVR5cGVzOjpBdWRpb1NoYXJlZERhdGEpOworI2lmIFVTRV9BQ0NFTEVSQVRFX0ZGVAor
ICAgIGluZm8uYWRkTWVtYmVyKG1fRkZUU2V0dXApOworICAgIGluZm8uYWRkTWVtYmVyKG1fZnJh
bWUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVhbERhdGEpOworICAgIGluZm8uYWRkTWVtYmVy
KG1faW1hZ0RhdGEpOworI2Vsc2UgLy8gIVVTRV9BQ0NFTEVSQVRFX0ZGVAorCisjaWYgVVNFKFdF
QkFVRElPX01LTCkKKyAgICBpbmZvLmFkZE1lbWJlcihtX2hhbmRsZSk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9jb21wbGV4RGF0YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZWFsRGF0YSk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9pbWFnRGF0YSk7CisjZW5kaWYgLy8gVVNFKFdFQkFVRElPX01L
TCkKKworI2lmIFVTRShXRUJBVURJT19GRk1QRUcpCisgICAgaW5mby5hZGRNZW1iZXIobV9jb21w
bGV4RGF0YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZWFsRGF0YSk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9pbWFnRGF0YSk7CisjZW5kaWYgLy8gVVNFKFdFQkFVRElPX0ZGTVBFRykKKworI2lm
IFVTRShXRUJBVURJT19HU1RSRUFNRVIpCisgICAgaW5mby5hZGRNZW1iZXIobV9mZnQpOworICAg
IGluZm8uYWRkTWVtYmVyKG1faW52ZXJzZUZmdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb21w
bGV4RGF0YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZWFsRGF0YSk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9pbWFnRGF0YSk7CisjZW5kaWYgLy8gVVNFKFdFQkFVRElPX0dTVFJFQU1FUikKKwor
I2lmIFVTRShXRUJBVURJT19JUFApCisgICAgaW5mby5hZGRNZW1iZXIobV9idWZmZXIpOworICAg
IGluZm8uYWRkTWVtYmVyKG1fREZUU3BlYyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb21wbGV4
RGF0YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZWFsRGF0YSk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9pbWFnRGF0YSk7CisjZW5kaWYgLy8gVVNFKFdFQkFVRElPX0lQUCkKKworI2VuZGlmIC8v
ICFVU0VfQUNDRUxFUkFURV9GRlQKK30KKwogI2lmbmRlZiBOREVCVUcKIHZvaWQgRkZURnJhbWU6
OnByaW50KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZG
VEZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5oCmluZGV4
IDNmYjNhNzgyZjMwMDk1ZjU0ZWUyZTRjNWZmOWMzMTU3OWI1OTAwYmYuLjZjMTUzNDlkOTcxODY4
OWUzNTM5M2Y4YzBlNWRlYjJhNTgyM2E0NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vRkZURnJhbWUuaApAQCAtNjQsNiArNjQsNyBAQCBzdHJ1Y3QgUkRGVENvbnRleHQ7CiAjaW5j
bHVkZSA8aXBwcy5oPgogI2VuZGlmIC8vIFVTRShXRUJBVURJT19JUFApCiAKKyNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgpAQCAtMTA2LDYgKzEwNyw4
IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBmZnRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9GRlRT
aXplOyB9CiAgICAgdW5zaWduZWQgbG9nMkZGVFNpemUoKSBjb25zdCB7IHJldHVybiBtX2xvZzJG
RlRTaXplOyB9CiAKKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
KSBjb25zdDsKKwogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX0ZGVFNpemU7CiAgICAgdW5zaWdu
ZWQgbV9sb2cyRkZUU2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0hSVEZEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRG
RGF0YWJhc2UuY3BwCmluZGV4IDg1NTg2OTgwMzI2ZjUyMDdhYmJiMGRkNDIzMmNmYTAzMDg1Y2Y5
MjcuLjE4OGFkMzY4NWJmYzk2MTM2ZTFkODViNmQ4NzViZWFiNGM1OTgxMGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlLmNwcApAQCAtMzMsNiArMzMs
OCBAQAogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZS5oIgogCiAjaW5jbHVkZSAiSFJURkVsZXZhdGlv
bi5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRl
IDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CiAKQEAgLTExOSw2ICsxMjEsMTIgQEAgdW5zaWduZWQgSFJURkRhdGFiYXNlOjppbmRleEZy
b21FbGV2YXRpb25BbmdsZShkb3VibGUgZWxldmF0aW9uQW5nbGUpCiAgICAgcmV0dXJuIGVsZXZh
dGlvbkluZGV4OwogfQogCit2b2lkIEhSVEZEYXRhYmFzZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFz
c0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkF1
ZGlvU2hhcmVkRGF0YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9lbGV2YXRpb25zKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlLmgKaW5kZXggOGE5NmEw
NDQ0YmI2NGU4OTM5MWM2NmM5MTM3NGVhN2I1YTRlZmYyYy4uODhmMzI4YTU4YzcyMDhlMDRkNmQ3
NzIyM2ExOTQ1NWJiOGIxMDRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vSFJURkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
SFJURkRhdGFiYXNlLmgKQEAgLTMwLDE0ICszMCwxMSBAQAogI2RlZmluZSBIUlRGRGF0YWJhc2Vf
aAogCiAjaW5jbHVkZSAiSFJURkVsZXZhdGlvbi5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
ICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC02Miw2ICs1OSw4IEBAIHB1YmxpYzoK
ICAgICAvLyBOdW1iZXIgb2YgZWxldmF0aW9ucyBsb2FkZWQgZnJvbSByZXNvdXJjZS4KICAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgTnVtYmVyT2ZSYXdFbGV2YXRpb25zOwogCisgICAgdm9pZCBy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByaXZhdGU6CiAg
ICAgZXhwbGljaXQgSFJURkRhdGFiYXNlKGZsb2F0IHNhbXBsZVJhdGUpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAppbmRl
eCA4Zjk2Yzk2OTRkMmY2NTgzNDY4MzlmNTdkYmU4MmJjZmNkY2FhYTlmLi40NDUwOGYwNzRmYzY4
ZjAyODc1ZGI4ZTE2M2IxZGRlYWZkYzg5NzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAK
ICNpbmNsdWRlICJIUlRGRGF0YWJhc2VMb2FkZXIuaCIKIAogI2luY2x1ZGUgIkhSVEZEYXRhYmFz
ZS5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0xMzEsNiArMTMy
LDEyIEBAIEhSVEZEYXRhYmFzZSogSFJURkRhdGFiYXNlTG9hZGVyOjpkZWZhdWx0SFJURkRhdGFi
YXNlKCkKICAgICByZXR1cm4gc19sb2FkZXItPmRhdGFiYXNlKCk7CiB9CiAKK3ZvaWQgSFJURkRh
dGFiYXNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVj
dEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6QXVkaW9TaGFyZWREYXRhKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2hydGZEYXRhYmFzZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5oCmluZGV4IGU2NzcwN2U4MTRhMWRh
YzdjYmVmNWJjZTY4ZTEwNzQzMDc5Y2VhODQuLmMxNmZiOWYyZWI3MDQ0MjhhYmJjNWQ4OGQzMDY4
NTFkNWY4NTVhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hS
VEZEYXRhYmFzZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hS
VEZEYXRhYmFzZUxvYWRlci5oCkBAIC03MCw2ICs3MCw4IEBAIHB1YmxpYzoKICAgICAvLyBpcyBz
dGlsbCBhbGl2ZS4gIE90aGVyd2lzZSB0aGlzIHdpbGwgcmV0dXJuIDAuCiAgICAgc3RhdGljIEhS
VEZEYXRhYmFzZSogZGVmYXVsdEhSVEZEYXRhYmFzZSgpOwogCisgICAgdm9pZCByZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgLy8gQm90
aCBjb25zdHJ1Y3RvciBhbmQgZGVzdHJ1Y3RvciBtdXN0IGJlIGNhbGxlZCBmcm9tIHRoZSBtYWlu
IHRocmVhZC4KICAgICBleHBsaWNpdCBIUlRGRGF0YWJhc2VMb2FkZXIoZmxvYXQgc2FtcGxlUmF0
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3Bw
CmluZGV4IGNmZTEzZWQ4NTMwNmI1MTcxMmFhMzA3NGI5YzhkYzM5MmNkNDY1MmQuLmZiNWU1YzZk
ZTJmYWMwMGI2OWUxOGE5OTZlNzhhZmFmZGNlMmI5MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCkBAIC0zNyw4ICszNywxMCBAQAogI2lu
Y2x1ZGUgIkJpcXVhZC5oIgogI2luY2x1ZGUgIkZGVEZyYW1lLmgiCiAjaW5jbHVkZSAiSFJURlBh
bm5lci5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNs
dWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBzdGQ7CkBAIC0zMzcsNiArMzM5LDEzIEBAIHZvaWQgSFJURkVsZXZhdGlvbjo6
Z2V0S2VybmVsc0Zyb21BemltdXRoKGRvdWJsZSBhemltdXRoQmxlbmQsIHVuc2lnbmVkIGF6aW11
dGhJCiAgICAgZnJhbWVEZWxheVIgPSAoMS4wIC0gYXppbXV0aEJsZW5kKSAqIGZyYW1lRGVsYXlS
ICsgYXppbXV0aEJsZW5kICogZnJhbWVEZWxheTJSOwogfQogCit2b2lkIEhSVEZFbGV2YXRpb246
OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNv
bnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywg
V2ViQ29yZU1lbW9yeVR5cGVzOjpBdWRpb1NoYXJlZERhdGEpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fa2VybmVsTGlzdEwpOworICAgIGluZm8uYWRkTWVtYmVyKG1fa2VybmVsTGlzdFIpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZhdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZhdGlvbi5oCmluZGV4IDQ0
NmU2NmQwZTc2NGQ3YzJhZTY4ODFlZDNmYzBlMDFiNjU3NzVmZTUuLmRhZWU0YWFmNmM1YzUxODRi
MzQ2MTQwMGYxYzI5OGUwYTk4Y2Q1MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9IUlRGRWxldmF0aW9uLmgKQEAgLTkxLDYgKzkxLDkgQEAgcHVibGljOgogICAgIC8vIFJl
dHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgogICAgIHN0YXRpYyBib29sIGNhbGN1bGF0ZVN5bW1ldHJp
Y0tlcm5lbHNGb3JBemltdXRoRWxldmF0aW9uKGludCBhemltdXRoLCBpbnQgZWxldmF0aW9uLCBm
bG9hdCBzYW1wbGVSYXRlLCBjb25zdCBTdHJpbmcmIHN1YmplY3ROYW1lLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxI
UlRGS2VybmVsPiYga2VybmVsTCwgUmVmUHRyPEhSVEZLZXJuZWw+JiBrZXJuZWxSKTsKKworICAg
IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2
YXRlOgogICAgIEhSVEZFbGV2YXRpb24oUGFzc093blB0cjxIUlRGS2VybmVsTGlzdD4ga2VybmVs
TGlzdEwsIFBhc3NPd25QdHI8SFJURktlcm5lbExpc3Q+IGtlcm5lbExpc3RSLCBpbnQgZWxldmF0
aW9uLCBmbG9hdCBzYW1wbGVSYXRlKQogICAgICAgICA6IG1fa2VybmVsTGlzdEwoa2VybmVsTGlz
dEwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGS2VybmVs
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuY3BwCmluZGV4
IDM5MWY5MDQwMjAwNDQyMDNmM2FhMGU0MDRjMDBjYmE1MmU5MGRhNGQuLjhjNGQwZWZiMTgwN2Fj
ZTVkZWYxNTMxZjU4NzM4NjA1Y2I3ZTk1NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0hSVEZLZXJuZWwuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiQmlxdWFk
LmgiCiAjaW5jbHVkZSAiRkZURnJhbWUuaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIK
KyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3Rm
L01hdGhFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTE0MSw2ICsxNDIsMTIg
QEAgUGFzc1JlZlB0cjxIUlRGS2VybmVsPiBIUlRGS2VybmVsOjpjcmVhdGVJbnRlcnBvbGF0ZWRL
ZXJuZWwoSFJURktlcm5lbCoga2VybmVsMSwKICAgICByZXR1cm4gSFJURktlcm5lbDo6Y3JlYXRl
KGludGVycG9sYXRlZEZyYW1lLnJlbGVhc2UoKSwgZnJhbWVEZWxheSwgc2FtcGxlUmF0ZTEpOwog
fQogCit2b2lkIEhSVEZLZXJuZWw6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVt
b3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpBdWRpb1NoYXJlZERhdGEp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fZmZ0RnJhbWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURktlcm5lbC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vSFJURktlcm5lbC5oCmluZGV4IDNhOGRiZmRlMmYzMjdkYTMxNzU2MzUyZjk1
MDc5ZjFkOWFhYWQ3NWYuLmVkMThjMjhhMGJjM2NkZGUyYmY4MDBhODgzYTIzOTAzYjRhZmI2YzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGS2VybmVsLmgKQEAgLTc1LDYg
Kzc1LDggQEAgcHVibGljOgogICAgIC8vIENvbnZlcnRzIGJhY2sgaW50byBpbXB1bHNlLXJlc3Bv
bnNlIGZvcm0uCiAgICAgUGFzc093blB0cjxBdWRpb0NoYW5uZWw+IGNyZWF0ZUltcHVsc2VSZXNw
b25zZSgpOwogCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikg
Y29uc3Q7CisKIHByaXZhdGU6CiAgICAgLy8gTm90ZTogdGhpcyBpcyBkZXN0cnVjdGl2ZSBvbiB0
aGUgcGFzc2VkIGluIEF1ZGlvQ2hhbm5lbC4KICAgICBIUlRGS2VybmVsKEF1ZGlvQ2hhbm5lbCos
IHNpemVfdCBmZnRTaXplLCBmbG9hdCBzYW1wbGVSYXRlLCBib29sIGJhc3NCb29zdCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNWViNmE1N2JjOGU4NTMyNjEzMDM0N2MwMWZkM2ZlM2I2NDcyMjc3ZS4uM2VjNmVmNTVmZDNk
NTkyYTRmZTM3NzcxMWZlMWY0OGU3Mjc1MDU1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEy
LTExLTA5ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBOTUkgYWRkIGluc3RydW1lbnRhdGlvbiBmb3IgV2ViQXVkbyByZWxh
dGVkIHN0dWZmLgorICAgICAgICBUaGV5IHVzZSBhYm91dCAxNk1iIGZvciBzaGFyZWQgZGF0YSBv
biBwYWdlcyB3aXRoIHdlYmF1ZGlvLgorICAgICAgICBBcyBleGFtcGxlIEFuZ3J5IEJpcmRzIGFw
cC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTcy
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsYWlu
IHZhbmlsbGEgaW5zdHJ1bWVudGF0aW9uIGZvciBhdWRpbyBhbmQgd2ViYXVkaW8gY2xhc3Nlcy4K
KyAgICAgICAgQXVkaW9Db250ZXh0IGlzIGEga2luZCBvZiBBY3RpdmVET01PYmplY3QuIEkgZm91
bmQgdGhhdCB0aGVzZSBvYmplY3RzCisgICAgICAgIGFyZSBhY2Nlc3NpYmxlIHRocm91Z2ggU2Ny
aXB0RXhlY3V0dWlvbkNvbnRleHQgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKKyAgICAgICAg
aXMgYW4gYW5jZXN0b3Igb2YgRG9jdW1lbnQuIERvY3VtZW50IGNsYXNzIHdhcyBpbnN0cnVtZW50
ZWQgZWFybGVyLgorICAgICAgICBJIGluc3RydW1lbnRlZCBBY3RpdmVET01PYmplY3QsIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQgYW5kIG90aGVyIGFuY2VzdG9ycworICAgICAgICBhbmQgbm93IEF1
ZGlvQ29udGV4dCBhbmQgb3RoZXIgQWN0aXZlRE9NT2JqZWN0cyBhcmUgcmVhY2hlYWJsZSBmcm9t
IERvY3VtZW50LgorCisgICAgICAgICogaW5zcGVjdG9yLXByb3RvY29sL25taS13ZWJhdWRpby1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9ubWktd2Vi
YXVkaW8uaHRtbDogQWRkZWQuCisKIDIwMTItMTEtMDkgIEphZWh1biBMaW0gIDxsamFlaHVuLmxp
bUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBjc3MzL2ZsZXhib3gvbXVsdGlsaW5lLWp1
c3RpZnktY29udGVudC5odG1sIGRvZXNuJ3QgY3Jhc2gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yLXByb3RvY29sL25taS13ZWJhdWRpby1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWRkZjJhZjA2ODUwOGU5M2MxZTMyMWQzZTQxNDFiMTAyNzBmNDFlZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8tZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorUEFTUzogcmVjZWl2ZWQgc2l6ZSBmb3IgdHlwZSBQYWdl
LkF1ZGlvIGlzIG1vcmUgdGhhbiAxNTAwMDAwMAorUEFTUzogcmVjZWl2ZWQgc2l6ZSBmb3IgdHlw
ZSBQYWdlLkF1ZGlvLlNoYXJlZERhdGEgaXMgbW9yZSB0aGFuIDE1MDAwMDAwCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8uaHRtbCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMzIzMTM5YTIyNjlkY2RiNDYwODVkNjc4NzRjODYzNmY0ZmY0NjY4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL25taS13ZWJhdWRpby5odG1sCkBA
IC0wLDAgKzEsNzkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJv
dG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorCit2YXIgc2FtcGxlUmF0ZSA9IDQ0
MTAwLjA7Cit2YXIgcmVuZGVyTGVuZ3RoU2Vjb25kcyA9IDAuMTI1OworCitmdW5jdGlvbiBjcmVh
dGVTaW5XYXZlQnVmZmVyKGNvbnRleHQsIGxlbmd0aEluU2Vjb25kcywgZnJlcXVlbmN5KQorewor
ICAgIHZhciBhdWRpb0J1ZmZlciA9IGNvbnRleHQuY3JlYXRlQnVmZmVyKDEsIGxlbmd0aEluU2Vj
b25kcyAqIHNhbXBsZVJhdGUsIHNhbXBsZVJhdGUpOworICAgIHZhciBkYXRhID0gYXVkaW9CdWZm
ZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhdWRpb0J1ZmZl
ci5sZW5ndGg7ICsraSkKKyAgICAgICAgZGF0YVtpXSA9IE1hdGguc2luKGZyZXF1ZW5jeSAqIDIg
KiBNYXRoLlBJICogaSAvIHNhbXBsZVJhdGUpOworICAgIHJldHVybiBhdWRpb0J1ZmZlcjsKK30K
KworZnVuY3Rpb24gcnVuUGFnZVRlc3QoKQoreworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworCisgICAgLy8gQ3JlYXRlIG9mZmxpbmUgYXVkaW8gY29udGV4dC4KKyAgICB2YXIgY29u
dGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoMSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0
aFNlY29uZHMsIHNhbXBsZVJhdGUpOworCisgICAgdmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQu
Y3JlYXRlQnVmZmVyU291cmNlKCk7CisgICAgYnVmZmVyU291cmNlLmJ1ZmZlciA9IGNyZWF0ZVNp
bldhdmVCdWZmZXIoY29udGV4dCwgcmVuZGVyTGVuZ3RoU2Vjb25kcywgODgwKTsKKyAgICBidWZm
ZXJTb3VyY2UuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uKTsKKyAgICBjb250ZXh0Lm9uY29t
cGxldGUgPSBydW5UZXN0OworICAgIGNvbnRleHQuc3RhcnRSZW5kZXJpbmcoKTsKK30KKworZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgZnVuY3Rpb24gc2l6ZUZvclR5cGUoZW50cnksIHR5cGVOYW1l
KQorICAgIHsKKyAgICAgICAgaWYgKGVudHJ5Lm5hbWUgPT09IHR5cGVOYW1lKQorICAgICAgICAg
ICAgcmV0dXJuIGVudHJ5LnNpemU7CisKKyAgICAgICAgaWYgKCFlbnRyeS5jaGlsZHJlbikKKyAg
ICAgICAgICAgIHJldHVybiAtMTsKKworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVudHJ5
LmNoaWxkcmVuLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgc2l6ZSA9IHNpemVGb3JU
eXBlKGVudHJ5LmNoaWxkcmVuW2ldLCB0eXBlTmFtZSk7CisgICAgICAgICAgICBpZiAoc2l6ZSA+
IC0xKQorICAgICAgICAgICAgICAgIHJldHVybiBzaXplOworICAgICAgICB9CisKKyAgICAgICAg
cmV0dXJuIC0xOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJlY2VpdmVkU2l6ZU1vcmVUaGFuKG1l
c3NhZ2VPYmplY3QsIHR5cGVOYW1lLCBleHBlY3RlZFNpemUpCisgICAgeworICAgICAgICB2YXIg
ZW50cnkgPSBtZXNzYWdlT2JqZWN0WyJyZXN1bHQiXVsiZGlzdHJpYnV0aW9uIl07CisgICAgICAg
IHZhciBzaXplID0gc2l6ZUZvclR5cGUoZW50cnksIHR5cGVOYW1lKTsKKyAgICAgICAgaWYgKHNp
emUgPiBleHBlY3RlZFNpemUpCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzog
cmVjZWl2ZWQgc2l6ZSBmb3IgdHlwZSAiICsgdHlwZU5hbWUgKyAiIGlzIG1vcmUgdGhhbiAiICsg
ZXhwZWN0ZWRTaXplKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2coIkZBSUw6IHJlY2VpdmVkIHNpemUgIiArIHNpemUgKyAiIGZvciB0eXBlICIgKyB0eXBlTmFt
ZSArICIgaXMgbGVzcyB0aGFuICIgKyBleHBlY3RlZFNpemUpOworICAgIH0KKworICAgIGZ1bmN0
aW9uIGhhbmRsZU1lbW9yeVNuYXBzaG90KG1lc3NhZ2VPYmplY3QpCisgICAgeworICAgICAgICBp
ZiAoImVycm9yIiBpbiBtZXNzYWdlT2JqZWN0KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5s
b2cobWVzc2FnZU9iamVjdC5lcnJvci5tZXNzYWdlKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICByZWNlaXZlZFNpemVNb3JlVGhhbihtZXNzYWdlT2JqZWN0LCAiUGFnZS5BdWRpbyIsIDE1
MDAwMDAwKTsKKyAgICAgICAgICAgIHJlY2VpdmVkU2l6ZU1vcmVUaGFuKG1lc3NhZ2VPYmplY3Qs
ICJQYWdlLkF1ZGlvLlNoYXJlZERhdGEiLCAxNTAwMDAwMCk7CisgICAgICAgIH0KKworICAgICAg
ICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgIH0KKworICAgIEluc3BlY3RvclRl
c3Quc2VuZENvbW1hbmQoIk1lbW9yeS5nZXRQcm9jZXNzTWVtb3J5RGlzdHJpYnV0aW9uIiwge30s
IGhhbmRsZU1lbW9yeVNuYXBzaG90KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25M
b2FkPSJydW5QYWdlVGVzdCgpOyI+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173271</attachid>
            <date>2012-11-09 05:17:46 -0800</date>
            <delta_ts>2012-11-09 06:04:10 -0800</delta_ts>
            <desc>for qt bot</desc>
            <filename>bug-101729-20121109171552.patch</filename>
            <type>text/plain</type>
            <size>31474</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmE0NWVhZmM0YzQ1MWM2
ZWQ3YmU1NzI3NDc3ODhlZWMwZTlkNWQzNS4uNDdjOWJlYjFjOTIzYWZiMzUxNTcxMDA5YTJjMmVh
MTcyMzUyNWQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDEyLTExLTA5ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUkgYWRkIGluc3RydW1lbnRhdGlvbiBmb3IgV2ViQXVkbyByZWxhdGVkIHN0dWZmLgor
ICAgICAgICBUaGV5IHVzZSBhYm91dCAxNk1iIGZvciBzaGFyZWQgZGF0YSBvbiBwYWdlcyB3aXRo
IHdlYmF1ZGlvLgorICAgICAgICBBcyBleGFtcGxlIEFuZ3J5IEJpcmRzIGFwcC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTcyOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsYWluIHZhbmlsbGEgaW5z
dHJ1bWVudGF0aW9uIGZvciBhdWRpbyBhbmQgd2ViYXVkaW8gY2xhc3Nlcy4KKyAgICAgICAgQXVk
aW9Db250ZXh0IGlzIGEga2luZCBvZiBBY3RpdmVET01PYmplY3QuIEkgZm91bmQgdGhhdCB0aGVz
ZSBvYmplY3RzCisgICAgICAgIGFyZSBhY2Nlc3NpYmxlIHRocm91Z2ggU2NyaXB0RXhlY3V0dWlv
bkNvbnRleHQgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKKyAgICAgICAgaXMgYW4gYW5jZXN0
b3Igb2YgRG9jdW1lbnQuIERvY3VtZW50IGNsYXNzIHdhcyBpbnN0cnVtZW50ZWQgZWFybGVyLgor
ICAgICAgICBJIGluc3RydW1lbnRlZCBBY3RpdmVET01PYmplY3QsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgYW5kIG90aGVyIGFuY2VzdG9ycworICAgICAgICBhbmQgbm93IEF1ZGlvQ29udGV4dCBh
bmQgb3RoZXIgQWN0aXZlRE9NT2JqZWN0cyBhcmUgcmVhY2hlYWJsZSBmcm9tIERvY3VtZW50Lgor
CisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8uaHRtbAorCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9Db250ZXh0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAo
QXVkaW9Db250ZXh0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmg6Cisg
ICAgICAgIChBdWRpb05vZGUpOgorICAgICAgICAqIGRvbS9BY3RpdmVET01PYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWN0aXZlRE9NT2JqZWN0OjpyZXBvcnRNZW1vcnlVc2FnZSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vQWN0aXZlRE9NT2JqZWN0Lmg6CisgICAg
ICAgIChBY3RpdmVET01PYmplY3QpOgorICAgICAgICAqIGRvbS9Db250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
cjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9t
L0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmg6CisgICAgICAgIChDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcik6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpOgorICAgICAgICAqIGRvbS9TZWN1cml0eUNvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2VjdXJpdHlDb250ZXh0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBkb20vU2VjdXJpdHlDb250ZXh0Lmg6CisgICAgICAgIChTZWN1cml0
eUNvbnRleHQpOgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlTWVtb3J5VHlwZXMpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaDoKKyAgICAgICAgKEF1ZGlvQXJyYXkpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9BcnJheTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9GRlRGcmFtZS5oOgorICAgICAgICAoRkZURnJhbWUpOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIUlRGRGF0YWJh
c2U6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5oOgorICAgICAgICAoSFJURkRhdGFiYXNlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFJURkRhdGFiYXNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIu
aDoKKyAgICAgICAgKEhSVEZEYXRhYmFzZUxvYWRlcik6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vSFJURkVsZXZhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIUlRGRWxldmF0aW9uOjpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9IUlRGRWxldmF0aW9uLmg6CisgICAgICAgIChIUlRGRWxldmF0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGS2VybmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhS
VEZLZXJuZWw6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuaDoKKyAgICAgICAgKEhSVEZLZXJuZWwpOgor
CiAyMDEyLTExLTA4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IHNwbGl0IFNwbGl0VmlldyBpbnRvIFNwbGl0VmlldyBhbmQg
U2lkZWJhclZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmNwcAppbmRleCA5ZjY1ODgwMTY5MzdkYWY3MTY3NjFkMjdkMmY3N2VhNzZkMGU1YTZh
Li45NGJmYmI0NDAxNGQxMDM3ZmE0ZTk4ZTA1MGUzZmQ5OGM1OTkzMWU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCkBAIC01Nyw2ICs1
Nyw5IEBACiAjaW5jbHVkZSAiU2NyaXB0UHJvY2Vzc29yTm9kZS5oIgogI2luY2x1ZGUgIldhdmVT
aGFwZXJOb2RlLmgiCiAjaW5jbHVkZSAiV2F2ZVRhYmxlLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b25IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5o
PgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgpA
QCAtOTYyLDYgKzk2NSwzMSBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6ZGVjcmVtZW50QWN0aXZlU291
cmNlQ291bnQoKQogICAgIGF0b21pY0RlY3JlbWVudCgmbV9hY3RpdmVTb3VyY2VDb3VudCk7CiB9
CiAKK3ZvaWQgQXVkaW9Db250ZXh0OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIEF1dG9Mb2NrZXIgbG9ja2VyKGNvbnN0
X2Nhc3Q8QXVkaW9Db250ZXh0Kj4odGhpcykpOworCisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8o
bWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpBdWRpbyk7CisgICAg
QWN0aXZlRE9NT2JqZWN0OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2RvY3VtZW50KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Rlc3Rp
bmF0aW9uTm9kZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9saXN0ZW5lcik7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9maW5pc2hlZE5vZGVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3JlZmVyZW5j
ZWROb2Rlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ub2Rlc01hcmtlZEZvckRlbGV0aW9uKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX25vZGVzVG9EZWxldGUpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fZGlydHlTdW1taW5nSnVuY3Rpb25zKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2RpcnR5QXVk
aW9Ob2RlT3V0cHV0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9hdXRvbWF0aWNQdWxsTm9kZXMp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVuZGVyaW5nQXV0b21hdGljUHVsbE5vZGVzKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2NvbnRleHRHcmFwaE11dGV4KTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2RlZmVycmVkRmluaXNoRGVyZWZMaXN0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2hydGZE
YXRhYmFzZUxvYWRlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9ldmVudFRhcmdldERhdGEpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fcmVuZGVyVGFyZ2V0KTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2F1ZGlvRGVjb2Rlcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuaAppbmRleCAzMDk4ZDhlYzZjMTBiN2Q2NmM1Yjk2ODJlMGQ5MjA0MWJhODY0
MTk4Li5hZTcwMzI4Y2I3ZWM5YjA3NGM4ZjU4ZDU4OTQ1MjFmMTdkZTI0OWJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKQEAgLTI0NSw3ICsy
NDUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJlQ29tcGxldGlvbkV2ZW50KCk7CiAgICAgCiAg
ICAgc3RhdGljIHVuc2lnbmVkIHNfaGFyZHdhcmVDb250ZXh0Q291bnQ7Ci0gICAgCisKKyAgICB2
aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9W
RVJSSURFOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEF1ZGlvQ29udGV4dChEb2N1bWVudCop
OwogICAgIEF1ZGlvQ29udGV4dChEb2N1bWVudCosIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMs
IHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKaW5kZXggNjlmZDkwYmIxNzYzNjFl
N2FiNWM5MWM3ZTVkMWE3ODNmOGRjZGZkYy4uZDE0ZWIzZGZjM2ExNTIyZjYyYzU5MTEwZjMyYmFj
YzJkYzEwN2YxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9O
b2RlLmNwcApAQCAtMzMsOCArMzMsMTAgQEAKICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIK
ICNpbmNsdWRlICJBdWRpb1BhcmFtLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXRv
bWljcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL01lbW9y
eUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiAjaWYgREVCVUdfQVVESU9OT0RFX1JFRkVSRU5D
RVMKICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtNDAyLDYgKzQwNCwxNCBAQCB2b2lkIEF1ZGlvTm9k
ZTo6ZmluaXNoRGVyZWYoUmVmVHlwZSByZWZUeXBlKQogICAgIH0KIH0KIAordm9pZCBBdWRpb05v
ZGU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgV2ViQ29yZU1lbW9yeVR5cGVzOjpBdWRpbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb250
ZXh0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2lucHV0cyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9vdXRwdXRzKTsKK30KKwogI2lmIERFQlVHX0FVRElPTk9ERV9SRUZFUkVOQ0VTCiAKIGJvb2wg
QXVkaW9Ob2RlOjpzX2lzTm9kZUNvdW50SW5pdGlhbGl6ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCmluZGV4IDRlZjNlNjU2MGI3ZmZlOGQ5
YzA3ZDBjNzI0ZmRlOWM0YjNjZGMwODkuLjYxYjVhMjBiMTU0MTk1NzUwNTkzMWQ0ZmYxODU4ODY5
MTFkYjM2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUu
aApAQCAtMjUsNiArMjUsNyBAQAogI2lmbmRlZiBBdWRpb05vZGVfaAogI2RlZmluZSBBdWRpb05v
ZGVfaAogCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBA
IC0xNTYsNiArMTU3LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBlbmFibGVPdXRwdXRzSWZOZWNl
c3NhcnkoKTsKICAgICB2b2lkIGRpc2FibGVPdXRwdXRzSWZOZWNlc3NhcnkoKTsKKworICAgIHZv
aWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90ZWN0
ZWQ6CiAgICAgLy8gSW5wdXRzIGFuZCBvdXRwdXRzIG11c3QgYmUgY3JlYXRlZCBiZWZvcmUgdGhl
IEF1ZGlvTm9kZSBpcyBpbml0aWFsaXplZC4KICAgICB2b2lkIGFkZElucHV0KFBhc3NPd25QdHI8
QXVkaW9Ob2RlSW5wdXQ+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVE
T01PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAKaW5k
ZXggMWZlODMyYWVlY2EzOTU4Mzc1YjU3YWVmM2VkNjFmM2ZiOGU2N2U0Ni4uNTZkMDNlNmJhNDUy
NDE3NjQ2MWMwZTM2ZDM0NGE3MDg2OWIzNjQ0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURP
TU9iamVjdC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKIAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJD
b3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgog
I2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogCkBAIC05MSw0ICs5MiwxMiBAQCB2b2lkIEFjdGl2
ZURPTU9iamVjdDo6c3RvcCgpCiB7CiB9CiAKK3ZvaWQgQWN0aXZlRE9NT2JqZWN0OjpyZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAorewor
ICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVN
ZW1vcnlUeXBlczo6RE9NKTsKKyAgICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6cmVwb3J0
TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgVU5VU0VEX1BBUkFNKGluZm8pOwor
fQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9BY3RpdmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmpl
Y3QuaAppbmRleCBiNGFiZGEwMzkwMmFiNGY2ZjZkNGM0NTYwYmM0MzU1YTg0YTY2ODg3Li5jZmFh
NmU0MjcxZDFiZTM2ZGQxMGMzM2IwOTVlOWRhYjVlNGFiODliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Fj
dGl2ZURPTU9iamVjdC5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJDb250ZXh0RGVz
dHJ1Y3Rpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03Niw2ICs3Nyw4
IEBAIHB1YmxpYzoKICAgICAgICAgdGhpc09iamVjdC0+ZGVyZWYoKTsKICAgICB9CiAKKyAgICB2
aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9W
RVJSSURFOworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+QWN0aXZlRE9NT2JqZWN0KCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuY3Bw
CmluZGV4IGE1NTdkYzdjMDFiMDBkNDNkMDgxMTllZjgxNTRjZjAzMjlhMmRhODQuLmM3OTBkYzQw
OTk3NWEzY2EzZDQ5Y2NhZDk2Mzk4Zjg5MTIwYjE5Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcApAQCAtMjgsNiArMjgsNyBAQAog
I2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCiAKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRh
dGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYyLDQgKzYzLDExIEBAIHZvaWQg
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OmNvbnRleHREZXN0cm95ZWQoKQogICAgIG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCA9IDA7CiB9CiAKK3ZvaWQgQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdElu
Zm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywg
dGhpcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKK30K
KworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oCmluZGV4IGNhOTU2YWJjOGQyMGEyMzE0N2IxOTQyYjU0
NjQ4NTE3NjlmOTM1OTEuLjNkMTU0YzdkNWE2ZjU4NmUxNWQyNjAwNGUyZjQ5ODhhZWM2ZDA0YjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5o
CkBAIC0yNyw2ICsyNyw4IEBACiAjaWZuZGVmIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyX2gK
ICNkZWZpbmUgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXJfaAogCisjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OwpAQCAtMzgsNiArNDAsOCBAQCBwdWJsaWM6CiAKICAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9zY3JpcHRF
eGVjdXRpb25Db250ZXh0OyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB+Q29u
dGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoKTsKICAgICB2b2lkIG9ic2VydmVDb250ZXh0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDBiYThjOGI4
Y2RkNGMzZTZmN2NmYTUzNGEwNjk2ZGI0ZGIxYzVmYzguLjgwZWVlMGM4MTBiNTI0MGI5MDEyYTVh
OTU5YjU1OTMyY2JlYTFkNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTkyMCw2ICs1
OTIwLDggQEAgdm9pZCBEb2N1bWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5m
byogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKIHsKICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyht
ZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CiAgICAgQ29u
dGFpbmVyTm9kZTo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgVHJl
ZVNjb3BlOjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKICAg
ICBpbmZvLmFkZE1lbWJlcihtX3N0eWxlUmVzb2x2ZXIpOwogICAgIGluZm8uYWRkTWVtYmVyKG1f
dXJsKTsKICAgICBpbmZvLmFkZE1lbWJlcihtX2Jhc2VVUkwpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCmluZGV4IDM5YTNkY2Q2MDM2YWQ1YmI5ZmI1
YWEwNzEzMTg5NTNjNmQwMzQxNGUuLjcyYTExYzRjNjI3OTExOGQxN2MwM2MyMzdjZDhlN2NiNDRh
MzhlNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5j
cHAKQEAgLTI4LDcgKzI4LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgiCiAKLSNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNp
bmNsdWRlICJBdWRpb0NvbnRleHQuaCIKICNpbmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3ku
aCIKICNpbmNsdWRlICJET01UaW1lci5oIgogI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKQEAgLTM3
LDEyICszNywxNCBAQAogI2luY2x1ZGUgIkZpbGVUaHJlYWQuaCIKICNpbmNsdWRlICJNZXNzYWdl
UG9ydC5oIgogI2luY2x1ZGUgIlB1YmxpY1VSTE1hbmFnZXIuaCIKLSNpbmNsdWRlICJTY3JpcHRD
YWxsU3RhY2suaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlNldHRp
bmdzLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1
ZGUgIldvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25I
YXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hTZXQuaD4K
KyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTQwOSw2ICs0
MTEsMjEgQEAgZG91YmxlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnRpbWVyQWxpZ25tZW50SW50
ZXJ2YWwoKSBjb25zdAogICAgIHJldHVybiBTZXR0aW5nczo6ZGVmYXVsdERPTVRpbWVyQWxpZ25t
ZW50SW50ZXJ2YWwoKTsKIH0KIAordm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpyZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAorewor
ICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVN
ZW1vcnlUeXBlczo6RE9NKTsKKyAgICBTZWN1cml0eUNvbnRleHQ6OnJlcG9ydE1lbW9yeVVzYWdl
KG1lbW9yeU9iamVjdEluZm8pOworICAgIGluZm8uYWRkTWVtYmVyKG1fbWVzc2FnZVBvcnRzKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2FjdGl2ZURPTU9iamVjdHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fdGltZW91
dHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcGVuZGluZ0V4Y2VwdGlvbnMpOworI2lmIEVOQUJM
RShCTE9CKQorICAgIGluZm8uYWRkTWVtYmVyKG1fcHVibGljVVJMTWFuYWdlcik7CisgICAgaW5m
by5hZGRNZW1iZXIobV9maWxlVGhyZWFkKTsKKyNlbmRpZgorfQorCiBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpUYXNrOjp+VGFzaygpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuaAppbmRleCBiOGRjYTI5MDZmZDM5ZDQ3Yjk4ZTQxZDQ1YmVlYmQzODM0
MTA4Mzk5Li5jODlkMDlhZWNkMWEwZGIxNjFhZmVjNjJiMzRkM2EzNzI5YTY4MGYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKQEAgLTE2MSw2ICsxNjEs
OCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIEV2ZW50UXVldWUqIGV2ZW50UXVldWUoKSBjb25z
dCA9IDA7CiAKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyopIGNvbnN0IE9WRVJSSURFOworCiBwcm90ZWN0ZWQ6CiAgICAgY2xhc3MgQWRkQ29uc29s
ZU1lc3NhZ2VUYXNrIDogcHVibGljIFRhc2sgewogICAgIHB1YmxpYzoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NlY3VyaXR5Q29udGV4dC5jcHAKaW5kZXggN2U5ZjgzOTIwYmMwNzFiYWI1MTIyYTU1NzQwYTVi
Yjc4YjFmNmY0Mi4uOTkyNTJmNjcyYjZkNjM4NzI1MDcxY2E5N2YyYjgzMmY0MDI3OGE4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNp
bmNsdWRlICJDb250ZW50U2VjdXJpdHlQb2xpY3kuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRp
b21zLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTIyLDQg
KzEyMywxMSBAQCBTYW5kYm94RmxhZ3MgU2VjdXJpdHlDb250ZXh0OjpwYXJzZVNhbmRib3hQb2xp
Y3koY29uc3QgU3RyaW5nJiBwb2xpY3kpCiAgICAgcmV0dXJuIGZsYWdzOwogfQogCit2b2lkIFNl
Y3VyaXR5Q29udGV4dDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5
T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmpl
Y3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkRPTSk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9zZWN1cml0eU9yaWdpbik7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb250ZW50U2VjdXJp
dHlQb2xpY3kpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJp
dHlDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmgKaW5kZXgg
OWNmNDlkMzk4YWEwMjg0MTEyYjAxZWZiMjEyYWIyYzhlMWVjZTgyYS4uN2MwOTdlN2U5NGI0NDA5
NTkyZWE0MzRjZmE1OGQ2ZWNkN2Y4MDU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1NlY3VyaXR5Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRl
eHQuaApAQCAtNzMsNiArNzMsOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgU2FuZGJveEZsYWdz
IHBhcnNlU2FuZGJveFBvbGljeShjb25zdCBTdHJpbmcmIHBvbGljeSk7CiAKKyAgICB2aXJ0dWFs
IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90
ZWN0ZWQ6CiAgICAgU2VjdXJpdHlDb250ZXh0KCk7CiAgICAgdmlydHVhbCB+U2VjdXJpdHlDb250
ZXh0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3Ry
dW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2ViQ29yZU1lbW9yeUluc3RydW1l
bnRhdGlvbi5jcHAKaW5kZXggNzE0MTBhMTRlZmU4NmMxMTE1MmYyYzc2OTE2ZTk5YzcxNzM4MTFj
Mi4uN2Y3MDg3NzI3MWNkNjBmOWVjODgzMjI1Y2QxZWUzM2FhOGY0MDZkZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcApAQCAt
MzcsNiArMzcsOCBAQCBNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6UGFnZSA9
ICJQYWdlIjsKIE1lbW9yeU9iamVjdFR5cGUgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00gPSAiUGFn
ZS5ET00iOwogTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkNTUyA9ICJQYWdl
LkNTUyI7CiBNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6QmluZGluZyA9ICJQ
YWdlLkJpbmRpbmciOworTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkF1ZGlv
ID0gIlBhZ2UuQXVkaW8iOworTWVtb3J5T2JqZWN0VHlwZSBXZWJDb3JlTWVtb3J5VHlwZXM6OkF1
ZGlvU2hhcmVkRGF0YSA9ICJQYWdlLkF1ZGlvLlNoYXJlZERhdGEiOwogCiBNZW1vcnlPYmplY3RU
eXBlIFdlYkNvcmVNZW1vcnlUeXBlczo6TWVtb3J5Q2FjaGVTdHJ1Y3R1cmVzID0gIk1lbW9yeUNh
Y2hlLkludGVybmFsU3RydWN0dXJlcyI7CiBNZW1vcnlPYmplY3RUeXBlIFdlYkNvcmVNZW1vcnlU
eXBlczo6Q2FjaGVkUmVzb3VyY2UgPSAiTWVtb3J5Q2FjaGUuUmVzb3VyY2UiOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1dlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggNzQ3
OWUwNTM0MTdkMGVkMDZkYTNlZmFhMmQyYWQzZjc1ZGEzOTEyZS4uYmEzOTcyZTVjZGIxYjAwOWFm
OTFiYjliYWFhZmU4NjA2OGZiMzg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1dl
YkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vV2Vi
Q29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC00NSw2ICs0NSw4IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBET007CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5
cGUgQ1NTOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIEJpbmRpbmc7CisgICAgc3RhdGlj
IE1lbW9yeU9iamVjdFR5cGUgQXVkaW87CisgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgQXVk
aW9TaGFyZWREYXRhOwogCiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgTWVtb3J5Q2FjaGVT
dHJ1Y3R1cmVzOwogICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIENhY2hlZFJlc291cmNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oCmluZGV4IGQyZDk5ZTE4
MzEzNWI5MGE3ZTk1NGRmYTdkYTZmMzE3ODhiODVjYzcuLjJhNTFiMDE1ZDkzZTgwYzIzNmUxZDc1
NDBiNDA0Mjc0YzdjOWYzMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0F1ZGlvQXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRp
b0FycmF5LmgKQEAgLTE0Miw2ICsxNDIsMTMgQEAgcHVibGljOgogICAgICAgICBtZW1jcHkodGhp
cy0+ZGF0YSgpICsgc3RhcnQsIHNvdXJjZURhdGEsIHNpemVvZihUKSAqIChlbmQgLSBzdGFydCkp
OwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIE1lbW9yeU9iamVjdEluZm8+CisgICAg
dm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZv
KSBjb25zdAorICAgIHsKKyAgICAgICAgdHlwZW5hbWUgTWVtb3J5T2JqZWN0SW5mbzo6Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcyk7CisgICAgICAgIGluZm8uYWRkUmF3QnVm
ZmVyKG1fYWxsb2NhdGlvbiwgbV9zaXplICogc2l6ZW9mKFQpKTsKKyAgICB9CisKIHByaXZhdGU6
CiAgICAgc3RhdGljIFQqIGFsaWduZWRBZGRyZXNzKFQqIGFkZHJlc3MsIGludHB0cl90IGFsaWdu
bWVudCkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9G
RlRGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHAK
aW5kZXggYTFhMGE1MGRhY2ViY2I2ZDkwMzY0NGM2MDJkMTQ0OGM4MDI5YjIyYi4uMzViZThkOTU5
ZjhmYjk2MzMyNjI5NGI1YTE0MTIyZjFhZWY5ZDkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0ZGVEZyYW1lLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2VuZGlmCiAKICNpbmNs
dWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5o
IgogI2luY2x1ZGUgPHd0Zi9Db21wbGV4Lmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC0yNDgsNiArMjQ5LDQ4IEBAIHZvaWQgRkZURnJh
bWU6OmFkZENvbnN0YW50R3JvdXBEZWxheShkb3VibGUgc2FtcGxlRnJhbWVEZWxheSkKICAgICB9
CiB9CiAKK3ZvaWQgRkZURnJhbWU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVt
b3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpBdWRpb1NoYXJlZERhdGEp
OworI2lmIFVTRV9BQ0NFTEVSQVRFX0ZGVAorICAgIGluZm8uYWRkTWVtYmVyKG1fRkZUU2V0dXAp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fZnJhbWUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVh
bERhdGEpOworICAgIGluZm8uYWRkTWVtYmVyKG1faW1hZ0RhdGEpOworI2Vsc2UgLy8gIVVTRV9B
Q0NFTEVSQVRFX0ZGVAorCisjaWYgVVNFKFdFQkFVRElPX01LTCkKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2hhbmRsZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb21wbGV4RGF0YSk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9yZWFsRGF0YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbWFnRGF0YSk7
CisjZW5kaWYgLy8gVVNFKFdFQkFVRElPX01LTCkKKworI2lmIFVTRShXRUJBVURJT19GRk1QRUcp
CisgICAgaW5mby5hZGRNZW1iZXIobV9jb21wbGV4RGF0YSk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9yZWFsRGF0YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbWFnRGF0YSk7CisjZW5kaWYgLy8g
VVNFKFdFQkFVRElPX0ZGTVBFRykKKworI2lmIFVTRShXRUJBVURJT19HU1RSRUFNRVIpCisgICAg
aW5mby5hZGRNZW1iZXIobV9mZnQpOworICAgIGluZm8uYWRkTWVtYmVyKG1faW52ZXJzZUZmdCk7
CisgICAgaW5mby5hZGRNZW1iZXIobV9jb21wbGV4RGF0YSk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9yZWFsRGF0YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbWFnRGF0YSk7CisjZW5kaWYgLy8g
VVNFKFdFQkFVRElPX0dTVFJFQU1FUikKKworI2lmIFVTRShXRUJBVURJT19JUFApCisgICAgaW5m
by5hZGRNZW1iZXIobV9idWZmZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fREZUU3BlYyk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9jb21wbGV4RGF0YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9y
ZWFsRGF0YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbWFnRGF0YSk7CisjZW5kaWYgLy8gVVNF
KFdFQkFVRElPX0lQUCkKKworI2VuZGlmIC8vICFVU0VfQUNDRUxFUkFURV9GRlQKK30KKwogI2lm
bmRlZiBOREVCVUcKIHZvaWQgRkZURnJhbWU6OnByaW50KCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9GRlRGcmFtZS5oCmluZGV4IDNmYjNhNzgyZjMwMDk1ZjU0ZWUyZTRjNWZmOWMz
MTU3OWI1OTAwYmYuLjZjMTUzNDlkOTcxODY4OWUzNTM5M2Y4YzBlNWRlYjJhNTgyM2E0NGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaApAQCAtNjQsNiArNjQsNyBA
QCBzdHJ1Y3QgUkRGVENvbnRleHQ7CiAjaW5jbHVkZSA8aXBwcy5oPgogI2VuZGlmIC8vIFVTRShX
RUJBVURJT19JUFApCiAKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Q
YXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1BsYXRmb3JtLmg+CiAjaW5jbHVkZSA8d3RmL1Ro
cmVhZGluZy5oPgpAQCAtMTA2LDYgKzEwNyw4IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBmZnRT
aXplKCkgY29uc3QgeyByZXR1cm4gbV9GRlRTaXplOyB9CiAgICAgdW5zaWduZWQgbG9nMkZGVFNp
emUoKSBjb25zdCB7IHJldHVybiBtX2xvZzJGRlRTaXplOyB9CiAKKyAgICB2b2lkIHJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICB1bnNp
Z25lZCBtX0ZGVFNpemU7CiAgICAgdW5zaWduZWQgbV9sb2cyRkZUU2l6ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2UuY3BwCmluZGV4IDg1NTg2OTgwMzI2
ZjUyMDdhYmJiMGRkNDIzMmNmYTAzMDg1Y2Y5MjcuLjE4OGFkMzY4NWJmYzk2MTM2ZTFkODViNmQ4
NzViZWFiNGM1OTgxMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0hSVEZEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJU
RkRhdGFiYXNlLmNwcApAQCAtMzMsNiArMzMsOCBAQAogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZS5o
IgogCiAjaW5jbHVkZSAiSFJURkVsZXZhdGlvbi5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVj
dG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTExOSw2ICsxMjEsMTIgQEAgdW5z
aWduZWQgSFJURkRhdGFiYXNlOjppbmRleEZyb21FbGV2YXRpb25BbmdsZShkb3VibGUgZWxldmF0
aW9uQW5nbGUpCiAgICAgcmV0dXJuIGVsZXZhdGlvbkluZGV4OwogfQogCit2b2lkIEhSVEZEYXRh
YmFzZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0
aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6OkF1ZGlvU2hhcmVkRGF0YSk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9lbGV2YXRpb25zKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
SFJURkRhdGFiYXNlLmgKaW5kZXggOGE5NmEwNDQ0YmI2NGU4OTM5MWM2NmM5MTM3NGVhN2I1YTRl
ZmYyYy4uODhmMzI4YTU4YzcyMDhlMDRkNmQ3NzIyM2ExOTQ1NWJiOGIxMDRhZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlLmgKQEAgLTMwLDE0ICszMCwx
MSBAQAogI2RlZmluZSBIUlRGRGF0YWJhc2VfaAogCiAjaW5jbHVkZSAiSFJURkVsZXZhdGlvbi5o
IgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4K
LSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC02Miw2ICs1OSw4IEBAIHB1YmxpYzoKICAgICAvLyBOdW1iZXIgb2YgZWxldmF0aW9ucyBs
b2FkZWQgZnJvbSByZXNvdXJjZS4KICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgTnVtYmVyT2ZS
YXdFbGV2YXRpb25zOwogCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgSFJURkRhdGFiYXNlKGZsb2F0
IHNhbXBsZVJhdGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
SFJURkRhdGFiYXNlTG9hZGVyLmNwcAppbmRleCA4Zjk2Yzk2OTRkMmY2NTgzNDY4MzlmNTdkYmU4
MmJjZmNkY2FhYTlmLi40NDUwOGYwNzRmYzY4ZjAyODc1ZGI4ZTE2M2IxZGRlYWZkYzg5NzA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxv
YWRlci5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJIUlRGRGF0YWJhc2VMb2FkZXIu
aCIKIAogI2luY2x1ZGUgIkhSVEZEYXRhYmFzZS5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC0xMzEsNiArMTMyLDEyIEBAIEhSVEZEYXRhYmFzZSogSFJURkRhdGFi
YXNlTG9hZGVyOjpkZWZhdWx0SFJURkRhdGFiYXNlKCkKICAgICByZXR1cm4gc19sb2FkZXItPmRh
dGFiYXNlKCk7CiB9CiAKK3ZvaWQgSFJURkRhdGFiYXNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9y
eUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBl
czo6QXVkaW9TaGFyZWREYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2hydGZEYXRhYmFzZSk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVE
SU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJh
c2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxv
YWRlci5oCmluZGV4IGU2NzcwN2U4MTRhMWRhYzdjYmVmNWJjZTY4ZTEwNzQzMDc5Y2VhODQuLmMx
NmZiOWYyZWI3MDQ0MjhhYmJjNWQ4OGQzMDY4NTFkNWY4NTVhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5oCkBAIC03MCw2ICs3
MCw4IEBAIHB1YmxpYzoKICAgICAvLyBpcyBzdGlsbCBhbGl2ZS4gIE90aGVyd2lzZSB0aGlzIHdp
bGwgcmV0dXJuIDAuCiAgICAgc3RhdGljIEhSVEZEYXRhYmFzZSogZGVmYXVsdEhSVEZEYXRhYmFz
ZSgpOwogCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29u
c3Q7CisKIHByaXZhdGU6CiAgICAgLy8gQm90aCBjb25zdHJ1Y3RvciBhbmQgZGVzdHJ1Y3RvciBt
dXN0IGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4KICAgICBleHBsaWNpdCBIUlRGRGF0
YWJhc2VMb2FkZXIoZmxvYXQgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCmluZGV4IGNmZTEzZWQ4NTMwNmI1MTcxMmFhMzA3
NGI5YzhkYzM5MmNkNDY1MmQuLmZiNWU1YzZkZTJmYWMwMGI2OWUxOGE5OTZlNzhhZmFmZGNlMmI5
MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24u
Y3BwCkBAIC0zNyw4ICszNywxMCBAQAogI2luY2x1ZGUgIkJpcXVhZC5oIgogI2luY2x1ZGUgIkZG
VEZyYW1lLmgiCiAjaW5jbHVkZSAiSFJURlBhbm5lci5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1v
cnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8bWF0
aC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvT3duUHRyLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC0zMzcsNiArMzM5
LDEzIEBAIHZvaWQgSFJURkVsZXZhdGlvbjo6Z2V0S2VybmVsc0Zyb21BemltdXRoKGRvdWJsZSBh
emltdXRoQmxlbmQsIHVuc2lnbmVkIGF6aW11dGhJCiAgICAgZnJhbWVEZWxheVIgPSAoMS4wIC0g
YXppbXV0aEJsZW5kKSAqIGZyYW1lRGVsYXlSICsgYXppbXV0aEJsZW5kICogZnJhbWVEZWxheTJS
OwogfQogCit2b2lkIEhSVEZFbGV2YXRpb246OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVj
dEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGlu
Zm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpBdWRpb1NoYXJl
ZERhdGEpOworICAgIGluZm8uYWRkTWVtYmVyKG1fa2VybmVsTGlzdEwpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fa2VybmVsTGlzdFIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoV0VCX0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vSFJURkVsZXZhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vSFJURkVsZXZhdGlvbi5oCmluZGV4IDQ0NmU2NmQwZTc2NGQ3YzJhZTY4ODFlZDNmYzBlMDFi
NjU3NzVmZTUuLmRhZWU0YWFmNmM1YzUxODRiMzQ2MTQwMGYxYzI5OGUwYTk4Y2Q1MWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmgKQEAgLTkxLDYg
KzkxLDkgQEAgcHVibGljOgogICAgIC8vIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgogICAgIHN0
YXRpYyBib29sIGNhbGN1bGF0ZVN5bW1ldHJpY0tlcm5lbHNGb3JBemltdXRoRWxldmF0aW9uKGlu
dCBhemltdXRoLCBpbnQgZWxldmF0aW9uLCBmbG9hdCBzYW1wbGVSYXRlLCBjb25zdCBTdHJpbmcm
IHN1YmplY3ROYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFJlZlB0cjxIUlRGS2VybmVsPiYga2VybmVsTCwgUmVmUHRyPEhS
VEZLZXJuZWw+JiBrZXJuZWxSKTsKKworICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIEhSVEZFbGV2YXRpb24oUGFzc093
blB0cjxIUlRGS2VybmVsTGlzdD4ga2VybmVsTGlzdEwsIFBhc3NPd25QdHI8SFJURktlcm5lbExp
c3Q+IGtlcm5lbExpc3RSLCBpbnQgZWxldmF0aW9uLCBmbG9hdCBzYW1wbGVSYXRlKQogICAgICAg
ICA6IG1fa2VybmVsTGlzdEwoa2VybmVsTGlzdEwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9IUlRGS2VybmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0hSVEZLZXJuZWwuY3BwCmluZGV4IDM5MWY5MDQwMjAwNDQyMDNmM2FhMGU0MDRjMDBj
YmE1MmU5MGRhNGQuLjhjNGQwZWZiMTgwN2FjZTVkZWYxNTMxZjU4NzM4NjA1Y2I3ZTk1NmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuY3BwCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSAiQmlxdWFkLmgiCiAjaW5jbHVkZSAiRkZURnJhbWUuaCIKICNp
bmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKQEAgLTE0MSw2ICsxNDIsMTIgQEAgUGFzc1JlZlB0cjxIUlRGS2VybmVsPiBIUlRG
S2VybmVsOjpjcmVhdGVJbnRlcnBvbGF0ZWRLZXJuZWwoSFJURktlcm5lbCoga2VybmVsMSwKICAg
ICByZXR1cm4gSFJURktlcm5lbDo6Y3JlYXRlKGludGVycG9sYXRlZEZyYW1lLnJlbGVhc2UoKSwg
ZnJhbWVEZWxheSwgc2FtcGxlUmF0ZTEpOwogfQogCit2b2lkIEhSVEZLZXJuZWw6OnJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7Cisg
ICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1l
bW9yeVR5cGVzOjpBdWRpb1NoYXJlZERhdGEpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZmZ0RnJh
bWUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VC
X0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURktl
cm5lbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURktlcm5lbC5oCmluZGV4
IDNhOGRiZmRlMmYzMjdkYTMxNzU2MzUyZjk1MDc5ZjFkOWFhYWQ3NWYuLmVkMThjMjhhMGJjM2Nk
ZGUyYmY4MDBhODgzYTIzOTAzYjRhZmI2YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9IUlRGS2VybmVsLmgKQEAgLTc1LDYgKzc1LDggQEAgcHVibGljOgogICAgIC8vIENvbnZl
cnRzIGJhY2sgaW50byBpbXB1bHNlLXJlc3BvbnNlIGZvcm0uCiAgICAgUGFzc093blB0cjxBdWRp
b0NoYW5uZWw+IGNyZWF0ZUltcHVsc2VSZXNwb25zZSgpOwogCisgICAgdm9pZCByZXBvcnRNZW1v
cnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgLy8gTm90
ZTogdGhpcyBpcyBkZXN0cnVjdGl2ZSBvbiB0aGUgcGFzc2VkIGluIEF1ZGlvQ2hhbm5lbC4KICAg
ICBIUlRGS2VybmVsKEF1ZGlvQ2hhbm5lbCosIHNpemVfdCBmZnRTaXplLCBmbG9hdCBzYW1wbGVS
YXRlLCBib29sIGJhc3NCb29zdCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNWViNmE1N2JjOGU4NTMyNjEzMDM0N2MwMWZk
M2ZlM2I2NDcyMjc3ZS4uM2VjNmVmNTVmZDNkNTkyYTRmZTM3NzcxMWZlMWY0OGU3Mjc1MDU1MiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTExLTA5ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9p
c2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBOTUkgYWRkIGluc3Ry
dW1lbnRhdGlvbiBmb3IgV2ViQXVkbyByZWxhdGVkIHN0dWZmLgorICAgICAgICBUaGV5IHVzZSBh
Ym91dCAxNk1iIGZvciBzaGFyZWQgZGF0YSBvbiBwYWdlcyB3aXRoIHdlYmF1ZGlvLgorICAgICAg
ICBBcyBleGFtcGxlIEFuZ3J5IEJpcmRzIGFwcC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTcyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFBsYWluIHZhbmlsbGEgaW5zdHJ1bWVudGF0aW9uIGZvciBh
dWRpbyBhbmQgd2ViYXVkaW8gY2xhc3Nlcy4KKyAgICAgICAgQXVkaW9Db250ZXh0IGlzIGEga2lu
ZCBvZiBBY3RpdmVET01PYmplY3QuIEkgZm91bmQgdGhhdCB0aGVzZSBvYmplY3RzCisgICAgICAg
IGFyZSBhY2Nlc3NpYmxlIHRocm91Z2ggU2NyaXB0RXhlY3V0dWlvbkNvbnRleHQgYW5kIFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQKKyAgICAgICAgaXMgYW4gYW5jZXN0b3Igb2YgRG9jdW1lbnQuIERv
Y3VtZW50IGNsYXNzIHdhcyBpbnN0cnVtZW50ZWQgZWFybGVyLgorICAgICAgICBJIGluc3RydW1l
bnRlZCBBY3RpdmVET01PYmplY3QsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgYW5kIG90aGVyIGFu
Y2VzdG9ycworICAgICAgICBhbmQgbm93IEF1ZGlvQ29udGV4dCBhbmQgb3RoZXIgQWN0aXZlRE9N
T2JqZWN0cyBhcmUgcmVhY2hlYWJsZSBmcm9tIERvY3VtZW50LgorCisgICAgICAgICogaW5zcGVj
dG9yLXByb3RvY29sL25taS13ZWJhdWRpby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8uaHRtbDogQWRkZWQuCisKIDIwMTItMTEt
MDkgIEphZWh1biBMaW0gIDxsamFlaHVuLmxpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZM
XSBjc3MzL2ZsZXhib3gvbXVsdGlsaW5lLWp1c3RpZnktY29udGVudC5odG1sIGRvZXNuJ3QgY3Jh
c2gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVk
aW8tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL25taS13ZWJh
dWRpby1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRkZjJhZjA2ODUwOGU5M2MxZTMyMWQzZTQx
NDFiMTAyNzBmNDFlZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9ubWktd2ViYXVkaW8tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorUEFTUzog
cmVjZWl2ZWQgc2l6ZSBmb3IgdHlwZSBQYWdlLkF1ZGlvIGlzIG1vcmUgdGhhbiAxNTAwMDAwMAor
UEFTUzogcmVjZWl2ZWQgc2l6ZSBmb3IgdHlwZSBQYWdlLkF1ZGlvLlNoYXJlZERhdGEgaXMgbW9y
ZSB0aGFuIDE1MDAwMDAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9ubWktd2ViYXVkaW8uaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9u
bWktd2ViYXVkaW8uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzIzMTM5YTIyNjlkY2RiNDYwODVkNjc4NzRj
ODYzNmY0ZmY0NjY4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXBy
b3RvY29sL25taS13ZWJhdWRpby5odG1sCkBAIC0wLDAgKzEsNzkgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9odHRwL3Rlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9yZXNvdXJjZXMvcHJvdG9jb2wtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorCit2YXIgc2FtcGxlUmF0ZSA9IDQ0MTAwLjA7Cit2YXIgcmVuZGVyTGVuZ3RoU2Vjb25k
cyA9IDAuMTI1OworCitmdW5jdGlvbiBjcmVhdGVTaW5XYXZlQnVmZmVyKGNvbnRleHQsIGxlbmd0
aEluU2Vjb25kcywgZnJlcXVlbmN5KQoreworICAgIHZhciBhdWRpb0J1ZmZlciA9IGNvbnRleHQu
Y3JlYXRlQnVmZmVyKDEsIGxlbmd0aEluU2Vjb25kcyAqIHNhbXBsZVJhdGUsIHNhbXBsZVJhdGUp
OworICAgIHZhciBkYXRhID0gYXVkaW9CdWZmZXIuZ2V0Q2hhbm5lbERhdGEoMCk7CisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBhdWRpb0J1ZmZlci5sZW5ndGg7ICsraSkKKyAgICAgICAgZGF0YVtp
XSA9IE1hdGguc2luKGZyZXF1ZW5jeSAqIDIgKiBNYXRoLlBJICogaSAvIHNhbXBsZVJhdGUpOwor
ICAgIHJldHVybiBhdWRpb0J1ZmZlcjsKK30KKworZnVuY3Rpb24gcnVuUGFnZVRlc3QoKQorewor
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgLy8gQ3JlYXRlIG9mZmxpbmUg
YXVkaW8gY29udGV4dC4KKyAgICB2YXIgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQo
MSwgc2FtcGxlUmF0ZSAqIHJlbmRlckxlbmd0aFNlY29uZHMsIHNhbXBsZVJhdGUpOworCisgICAg
dmFyIGJ1ZmZlclNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCk7CisgICAgYnVm
ZmVyU291cmNlLmJ1ZmZlciA9IGNyZWF0ZVNpbldhdmVCdWZmZXIoY29udGV4dCwgcmVuZGVyTGVu
Z3RoU2Vjb25kcywgODgwKTsKKyAgICBidWZmZXJTb3VyY2UuY29ubmVjdChjb250ZXh0LmRlc3Rp
bmF0aW9uKTsKKyAgICBjb250ZXh0Lm9uY29tcGxldGUgPSBydW5UZXN0OworICAgIGNvbnRleHQu
c3RhcnRSZW5kZXJpbmcoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgZnVuY3Rpb24g
c2l6ZUZvclR5cGUoZW50cnksIHR5cGVOYW1lKQorICAgIHsKKyAgICAgICAgaWYgKGVudHJ5Lm5h
bWUgPT09IHR5cGVOYW1lKQorICAgICAgICAgICAgcmV0dXJuIGVudHJ5LnNpemU7CisKKyAgICAg
ICAgaWYgKCFlbnRyeS5jaGlsZHJlbikKKyAgICAgICAgICAgIHJldHVybiAtMTsKKworICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGVudHJ5LmNoaWxkcmVuLmxlbmd0aDsgKytpKSB7CisgICAg
ICAgICAgICB2YXIgc2l6ZSA9IHNpemVGb3JUeXBlKGVudHJ5LmNoaWxkcmVuW2ldLCB0eXBlTmFt
ZSk7CisgICAgICAgICAgICBpZiAoc2l6ZSA+IC0xKQorICAgICAgICAgICAgICAgIHJldHVybiBz
aXplOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIC0xOworICAgIH0KKworICAgIGZ1bmN0
aW9uIHJlY2VpdmVkU2l6ZU1vcmVUaGFuKG1lc3NhZ2VPYmplY3QsIHR5cGVOYW1lLCBleHBlY3Rl
ZFNpemUpCisgICAgeworICAgICAgICB2YXIgZW50cnkgPSBtZXNzYWdlT2JqZWN0WyJyZXN1bHQi
XVsiZGlzdHJpYnV0aW9uIl07CisgICAgICAgIHZhciBzaXplID0gc2l6ZUZvclR5cGUoZW50cnks
IHR5cGVOYW1lKTsKKyAgICAgICAgaWYgKHNpemUgPiBleHBlY3RlZFNpemUpCisgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmxvZygiUEFTUzogcmVjZWl2ZWQgc2l6ZSBmb3IgdHlwZSAiICsgdHlw
ZU5hbWUgKyAiIGlzIG1vcmUgdGhhbiAiICsgZXhwZWN0ZWRTaXplKTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkZBSUw6IHJlY2VpdmVkIHNpemUgIiArIHNp
emUgKyAiIGZvciB0eXBlICIgKyB0eXBlTmFtZSArICIgaXMgbGVzcyB0aGFuICIgKyBleHBlY3Rl
ZFNpemUpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGhhbmRsZU1lbW9yeVNuYXBzaG90KG1lc3Nh
Z2VPYmplY3QpCisgICAgeworICAgICAgICBpZiAoImVycm9yIiBpbiBtZXNzYWdlT2JqZWN0KQor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2cobWVzc2FnZU9iamVjdC5lcnJvci5tZXNzYWdl
KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICByZWNlaXZlZFNpemVNb3JlVGhhbihtZXNz
YWdlT2JqZWN0LCAiUGFnZS5BdWRpbyIsIDE1MDAwMDAwKTsKKyAgICAgICAgICAgIHJlY2VpdmVk
U2l6ZU1vcmVUaGFuKG1lc3NhZ2VPYmplY3QsICJQYWdlLkF1ZGlvLlNoYXJlZERhdGEiLCAxNTAw
MDAwMCk7CisgICAgICAgIH0KKworICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgp
OworICAgIH0KKworICAgIEluc3BlY3RvclRlc3Quc2VuZENvbW1hbmQoIk1lbW9yeS5nZXRQcm9j
ZXNzTWVtb3J5RGlzdHJpYnV0aW9uIiwge30sIGhhbmRsZU1lbW9yeVNuYXBzaG90KTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25Mb2FkPSJydW5QYWdlVGVzdCgpOyI+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173287</attachid>
            <date>2012-11-09 06:04:19 -0800</date>
            <delta_ts>2012-11-10 04:14:34 -0800</delta_ts>
            <desc>with fix for mac and win bots.</desc>
            <filename>bug-101729-20121109180225.patch</filename>
            <type>text/plain</type>
            <size>31145</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmE0NWVhZmM0YzQ1MWM2
ZWQ3YmU1NzI3NDc3ODhlZWMwZTlkNWQzNS4uNDdjOWJlYjFjOTIzYWZiMzUxNTcxMDA5YTJjMmVh
MTcyMzUyNWQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDEyLTExLTA5ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUkgYWRkIGluc3RydW1lbnRhdGlvbiBmb3IgV2ViQXVkbyByZWxhdGVkIHN0dWZmLgor
ICAgICAgICBUaGV5IHVzZSBhYm91dCAxNk1iIGZvciBzaGFyZWQgZGF0YSBvbiBwYWdlcyB3aXRo
IHdlYmF1ZGlvLgorICAgICAgICBBcyBleGFtcGxlIEFuZ3J5IEJpcmRzIGFwcC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTcyOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsYWluIHZhbmlsbGEgaW5z
dHJ1bWVudGF0aW9uIGZvciBhdWRpbyBhbmQgd2ViYXVkaW8gY2xhc3Nlcy4KKyAgICAgICAgQXVk
aW9Db250ZXh0IGlzIGEga2luZCBvZiBBY3RpdmVET01PYmplY3QuIEkgZm91bmQgdGhhdCB0aGVz
ZSBvYmplY3RzCisgICAgICAgIGFyZSBhY2Nlc3NpYmxlIHRocm91Z2ggU2NyaXB0RXhlY3V0dWlv
bkNvbnRleHQgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKKyAgICAgICAgaXMgYW4gYW5jZXN0
b3Igb2YgRG9jdW1lbnQuIERvY3VtZW50IGNsYXNzIHdhcyBpbnN0cnVtZW50ZWQgZWFybGVyLgor
ICAgICAgICBJIGluc3RydW1lbnRlZCBBY3RpdmVET01PYmplY3QsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgYW5kIG90aGVyIGFuY2VzdG9ycworICAgICAgICBhbmQgbm93IEF1ZGlvQ29udGV4dCBh
bmQgb3RoZXIgQWN0aXZlRE9NT2JqZWN0cyBhcmUgcmVhY2hlYWJsZSBmcm9tIERvY3VtZW50Lgor
CisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8uaHRtbAorCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9Db250ZXh0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAo
QXVkaW9Db250ZXh0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmg6Cisg
ICAgICAgIChBdWRpb05vZGUpOgorICAgICAgICAqIGRvbS9BY3RpdmVET01PYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWN0aXZlRE9NT2JqZWN0OjpyZXBvcnRNZW1vcnlVc2FnZSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vQWN0aXZlRE9NT2JqZWN0Lmg6CisgICAg
ICAgIChBY3RpdmVET01PYmplY3QpOgorICAgICAgICAqIGRvbS9Db250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
cjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9t
L0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmg6CisgICAgICAgIChDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcik6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgICogZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpOgorICAgICAgICAqIGRvbS9TZWN1cml0eUNvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2VjdXJpdHlDb250ZXh0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiBkb20vU2VjdXJpdHlDb250ZXh0Lmg6CisgICAgICAgIChTZWN1cml0
eUNvbnRleHQpOgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9XZWJDb3JlTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlTWVtb3J5VHlwZXMpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaDoKKyAgICAgICAgKEF1ZGlvQXJyYXkpOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9BcnJheTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZGVEZyYW1lOjpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9GRlRGcmFtZS5oOgorICAgICAgICAoRkZURnJhbWUpOgorICAgICAgICAqIHBsYXRm
b3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIUlRGRGF0YWJh
c2U6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5oOgorICAgICAgICAoSFJURkRhdGFiYXNlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SFJURkRhdGFiYXNlTG9hZGVyOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIu
aDoKKyAgICAgICAgKEhSVEZEYXRhYmFzZUxvYWRlcik6CisgICAgICAgICogcGxhdGZvcm0vYXVk
aW8vSFJURkVsZXZhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIUlRGRWxldmF0aW9uOjpy
ZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9hdWRpby9IUlRGRWxldmF0aW9uLmg6CisgICAgICAgIChIUlRGRWxldmF0aW9uKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGS2VybmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhS
VEZLZXJuZWw6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuaDoKKyAgICAgICAgKEhSVEZLZXJuZWwpOgor
CiAyMDEyLTExLTA4ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IHNwbGl0IFNwbGl0VmlldyBpbnRvIFNwbGl0VmlldyBhbmQg
U2lkZWJhclZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Db250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmNwcAppbmRleCA5ZjY1ODgwMTY5MzdkYWY3MTY3NjFkMjdkMmY3N2VhNzZkMGU1YTZh
Li45NGJmYmI0NDAxNGQxMDM3ZmE0ZTk4ZTA1MGUzZmQ5OGM1OTkzMWU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCkBAIC01Nyw2ICs1
Nyw5IEBACiAjaW5jbHVkZSAiU2NyaXB0UHJvY2Vzc29yTm9kZS5oIgogI2luY2x1ZGUgIldhdmVT
aGFwZXJOb2RlLmgiCiAjaW5jbHVkZSAiV2F2ZVRhYmxlLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRp
b25IYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5o
PgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgpA
QCAtOTYyLDYgKzk2NSwzMSBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6ZGVjcmVtZW50QWN0aXZlU291
cmNlQ291bnQoKQogICAgIGF0b21pY0RlY3JlbWVudCgmbV9hY3RpdmVTb3VyY2VDb3VudCk7CiB9
CiAKK3ZvaWQgQXVkaW9Db250ZXh0OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIEF1dG9Mb2NrZXIgbG9ja2VyKGNvbnN0
X2Nhc3Q8QXVkaW9Db250ZXh0Kj4odGhpcykpOworCisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8o
bWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpBdWRpbyk7CisgICAg
QWN0aXZlRE9NT2JqZWN0OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2RvY3VtZW50KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Rlc3Rp
bmF0aW9uTm9kZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9saXN0ZW5lcik7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9maW5pc2hlZE5vZGVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3JlZmVyZW5j
ZWROb2Rlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ub2Rlc01hcmtlZEZvckRlbGV0aW9uKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX25vZGVzVG9EZWxldGUpOworICAgIGluZm8uYWRkTWVtYmVy
KG1fZGlydHlTdW1taW5nSnVuY3Rpb25zKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2RpcnR5QXVk
aW9Ob2RlT3V0cHV0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9hdXRvbWF0aWNQdWxsTm9kZXMp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fcmVuZGVyaW5nQXV0b21hdGljUHVsbE5vZGVzKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2NvbnRleHRHcmFwaE11dGV4KTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2RlZmVycmVkRmluaXNoRGVyZWZMaXN0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2hydGZE
YXRhYmFzZUxvYWRlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9ldmVudFRhcmdldERhdGEpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fcmVuZGVyVGFyZ2V0KTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2F1ZGlvRGVjb2Rlcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHQuaAppbmRleCAzMDk4ZDhlYzZjMTBiN2Q2NmM1Yjk2ODJlMGQ5MjA0MWJhODY0
MTk4Li5hZTcwMzI4Y2I3ZWM5YjA3NGM4ZjU4ZDU4OTQ1MjFmMTdkZTI0OWJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKQEAgLTI0NSw3ICsy
NDUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBmaXJlQ29tcGxldGlvbkV2ZW50KCk7CiAgICAgCiAg
ICAgc3RhdGljIHVuc2lnbmVkIHNfaGFyZHdhcmVDb250ZXh0Q291bnQ7Ci0gICAgCisKKyAgICB2
aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9W
RVJSSURFOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEF1ZGlvQ29udGV4dChEb2N1bWVudCop
OwogICAgIEF1ZGlvQ29udGV4dChEb2N1bWVudCosIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMs
IHNpemVfdCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKaW5kZXggNjlmZDkwYmIxNzYzNjFl
N2FiNWM5MWM3ZTVkMWE3ODNmOGRjZGZkYy4uZDE0ZWIzZGZjM2ExNTIyZjYyYzU5MTEwZjMyYmFj
YzJkYzEwN2YxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9O
b2RlLmNwcApAQCAtMzMsOCArMzMsMTAgQEAKICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIK
ICNpbmNsdWRlICJBdWRpb1BhcmFtLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXRv
bWljcy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL01lbW9y
eUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiAjaWYgREVCVUdfQVVESU9OT0RFX1JFRkVSRU5D
RVMKICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtNDAyLDYgKzQwNCwxNCBAQCB2b2lkIEF1ZGlvTm9k
ZTo6ZmluaXNoRGVyZWYoUmVmVHlwZSByZWZUeXBlKQogICAgIH0KIH0KIAordm9pZCBBdWRpb05v
ZGU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgV2ViQ29yZU1lbW9yeVR5cGVzOjpBdWRpbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb250
ZXh0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2lucHV0cyk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9vdXRwdXRzKTsKK30KKwogI2lmIERFQlVHX0FVRElPTk9ERV9SRUZFUkVOQ0VTCiAKIGJvb2wg
QXVkaW9Ob2RlOjpzX2lzTm9kZUNvdW50SW5pdGlhbGl6ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCmluZGV4IDRlZjNlNjU2MGI3ZmZlOGQ5
YzA3ZDBjNzI0ZmRlOWM0YjNjZGMwODkuLjYxYjVhMjBiMTU0MTk1NzUwNTkzMWQ0ZmYxODU4ODY5
MTFkYjM2ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUu
aApAQCAtMjUsNiArMjUsNyBAQAogI2lmbmRlZiBBdWRpb05vZGVfaAogI2RlZmluZSBBdWRpb05v
ZGVfaAogCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBA
IC0xNTYsNiArMTU3LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBlbmFibGVPdXRwdXRzSWZOZWNl
c3NhcnkoKTsKICAgICB2b2lkIGRpc2FibGVPdXRwdXRzSWZOZWNlc3NhcnkoKTsKKworICAgIHZv
aWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90ZWN0
ZWQ6CiAgICAgLy8gSW5wdXRzIGFuZCBvdXRwdXRzIG11c3QgYmUgY3JlYXRlZCBiZWZvcmUgdGhl
IEF1ZGlvTm9kZSBpcyBpbml0aWFsaXplZC4KICAgICB2b2lkIGFkZElucHV0KFBhc3NPd25QdHI8
QXVkaW9Ob2RlSW5wdXQ+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVE
T01PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAKaW5k
ZXggMWZlODMyYWVlY2EzOTU4Mzc1YjU3YWVmM2VkNjFmM2ZiOGU2N2U0Ni4uOTljYzdiNGNlNDlh
OTA2MTQ3ZDg5MDA2MTk5ODg0YjYzMjM0MzNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURP
TU9iamVjdC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3Qu
aCIKIAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJD
b3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgog
I2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogCkBAIC05MSw0ICs5MiwxMSBAQCB2b2lkIEFjdGl2
ZURPTU9iamVjdDo6c3RvcCgpCiB7CiB9CiAKK3ZvaWQgQWN0aXZlRE9NT2JqZWN0OjpyZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAorewor
ICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVN
ZW1vcnlUeXBlczo6RE9NKTsKKyAgICBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6cmVwb3J0
TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCmluZGV4IGI0YWJkYTAzOTAyYWI0
ZjZmNmQ0YzQ1NjBiYzQzNTVhODRhNjY4ODcuLmNmYWE2ZTQyNzFkMWJlMzZkZDEwYzMzYjA5NWU5
ZGFiNWU0YWI4OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgKQEAgLTI5LDYg
KzI5LDcgQEAKIAogI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCiAjaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTc2LDYgKzc3LDggQEAgcHVibGljOgogICAgICAgICB0aGlz
T2JqZWN0LT5kZXJlZigpOwogICAgIH0KIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByb3RlY3RlZDoKICAg
ICB2aXJ0dWFsIH5BY3RpdmVET01PYmplY3QoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAKaW5kZXggYTU1N2RjN2MwMWIwMGQ0M2Qw
ODExOWVmODE1NGNmMDMyOWEyZGE4NC4uYzc5MGRjNDA5OTc1YTNjYTNkNDljY2FkOTYzOThmODkx
MjBiMTljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHREZXN0cnVjdGlv
bk9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dERlc3RydWN0aW9u
T2JzZXJ2ZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQ29udGV4dERlc3RydWN0
aW9uT2JzZXJ2ZXIuaCIKIAogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNp
bmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNjIsNCArNjMsMTEgQEAgdm9pZCBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
cjo6Y29udGV4dERlc3Ryb3llZCgpCiAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gMDsK
IH0KIAordm9pZCBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlD
bGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgK
aW5kZXggY2E5NTZhYmM4ZDIwYTIzMTQ3YjE5NDJiNTQ2NDg1MTc2OWY5MzU5MS4uM2QxNTRjN2Q1
YTZmNTg2ZTE1ZDI2MDA0ZTJmNDk4OGFlYzZkMDRiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgKQEAgLTI3LDYgKzI3LDggQEAKICNpZm5k
ZWYgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXJfaAogI2RlZmluZSBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcl9oCiAKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgorCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CkBAIC0zOCw2ICs0MCw4IEBA
IHB1YmxpYzoKIAogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdCB7IHJldHVybiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7IH0KIAorICAg
IHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7
CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigp
OwogICAgIHZvaWQgb2JzZXJ2ZUNvbnRleHQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMGJhOGM4YjhjZGQ0YzNlNmY3Y2ZhNTM0YTA2OTZkYjRk
YjFjNWZjOC4uODBlZWUwYzgxMGI1MjQwYjkwMTJhNWE5NTliNTU5MzJjYmVhMWQ0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCkBAIC01OTIwLDYgKzU5MjAsOCBAQCB2b2lkIERvY3VtZW50Ojpy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25z
dAogewogICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdl
YkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKICAgICBDb250YWluZXJOb2RlOjpyZXBvcnRNZW1vcnlV
c2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBUcmVlU2NvcGU6OnJlcG9ydE1lbW9yeVVzYWdl
KG1lbW9yeU9iamVjdEluZm8pOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnJlcG9ydE1l
bW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwogICAgIGluZm8uYWRkTWVtYmVyKG1fc3R5bGVS
ZXNvbHZlcik7CiAgICAgaW5mby5hZGRNZW1iZXIobV91cmwpOwogICAgIGluZm8uYWRkTWVtYmVy
KG1fYmFzZVVSTCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5jcHAKaW5kZXggMzlhM2RjZDYwMzZhZDViYjlmYjVhYTA3MTMxODk1M2M2ZDAzNDE0ZS4uYWYx
NWM4Y2U4NGRkZTUzYTY5YTg0ODI4Y2U0NDAxN2ZiOWE4Y2E0ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApAQCAtMjgsNyArMjgsNiBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKIAot
I2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBv
bGljeS5oIgogI2luY2x1ZGUgIkRPTVRpbWVyLmgiCiAjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgpA
QCAtMzcsMTIgKzM2LDE0IEBACiAjaW5jbHVkZSAiRmlsZVRocmVhZC5oIgogI2luY2x1ZGUgIk1l
c3NhZ2VQb3J0LmgiCiAjaW5jbHVkZSAiUHVibGljVVJMTWFuYWdlci5oIgotI2luY2x1ZGUgIlNj
cmlwdENhbGxTdGFjay5oIgotI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAj
aW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRh
dGlvbkhhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNl
dC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNDA5
LDYgKzQxMCwyMSBAQCBkb3VibGUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6dGltZXJBbGlnbm1l
bnRJbnRlcnZhbCgpIGNvbnN0CiAgICAgcmV0dXJuIFNldHRpbmdzOjpkZWZhdWx0RE9NVGltZXJB
bGlnbm1lbnRJbnRlcnZhbCgpOwogfQogCit2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0
Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2Vi
Q29yZU1lbW9yeVR5cGVzOjpET00pOworICAgIFNlY3VyaXR5Q29udGV4dDo6cmVwb3J0TWVtb3J5
VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9tZXNzYWdlUG9y
dHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fYWN0aXZlRE9NT2JqZWN0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV90
aW1lb3V0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9wZW5kaW5nRXhjZXB0aW9ucyk7CisjaWYg
RU5BQkxFKEJMT0IpCisgICAgaW5mby5hZGRNZW1iZXIobV9wdWJsaWNVUkxNYW5hZ2VyKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2ZpbGVUaHJlYWQpOworI2VuZGlmCit9CisKIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ6OlRhc2s6On5UYXNrKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5oCmluZGV4IGI4ZGNhMjkwNmZkMzlkNDdiOThlNDFkNDViZWVi
ZDM4MzQxMDgzOTkuLmM4OWQwOWFlY2QxYTBkYjE2MWFmZWM2MmIzNGQzYTM3MjlhNjgwZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMTYxLDYg
KzE2MSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgRXZlbnRRdWV1ZSogZXZlbnRRdWV1ZSgp
IGNvbnN0ID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByb3RlY3RlZDoKICAgICBjbGFzcyBBZGRD
b25zb2xlTWVzc2FnZVRhc2sgOiBwdWJsaWMgVGFzayB7CiAgICAgcHVibGljOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcAppbmRleCA3ZTlmODM5MjBiYzA3MWJhYjUxMjJhNTU3
NDBhNWJiNzhiMWY2ZjQyLi45OTI1MmY2NzJiNmQ2Mzg3MjUwNzFjYTk3ZjJiODMyZjQwMjc4YTgy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkhUTUxQYXJz
ZXJJZGlvbXMuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIldlYkNv
cmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0x
MjIsNCArMTIzLDExIEBAIFNhbmRib3hGbGFncyBTZWN1cml0eUNvbnRleHQ6OnBhcnNlU2FuZGJv
eFBvbGljeShjb25zdCBTdHJpbmcmIHBvbGljeSkKICAgICByZXR1cm4gZmxhZ3M7CiB9CiAKK3Zv
aWQgU2VjdXJpdHlDb250ZXh0OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9y
eU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX3NlY3VyaXR5T3JpZ2luKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnRlbnRT
ZWN1cml0eVBvbGljeSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
ZWN1cml0eUNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuaApp
bmRleCA5Y2Y0OWQzOThhYTAyODQxMTJiMDFlZmIyMTJhYjJjOGUxZWNlODJhLi43YzA5N2U3ZTk0
YjQ0MDk1OTJlYTQzNGNmYTU4ZDZlY2Q3ZjgwNTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2VjdXJpdHlDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5
Q29udGV4dC5oCkBAIC03Myw2ICs3Myw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTYW5kYm94
RmxhZ3MgcGFyc2VTYW5kYm94UG9saWN5KGNvbnN0IFN0cmluZyYgcG9saWN5KTsKIAorICAgIHZp
cnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisK
IHByb3RlY3RlZDoKICAgICBTZWN1cml0eUNvbnRleHQoKTsKICAgICB2aXJ0dWFsIH5TZWN1cml0
eUNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3Jt
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBkODcyZmYwZDEyMGY5ZTI5ZWEyZDQw
NDU3N2Y0MThmMTBjMzI0MzM1Li5hNDNkM2E5OTNiNjYyMTdhMTAxZDBhYzIwMzA0NDFhZGY3Njg2
MWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1N
ZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0zNiw0ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIE1lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBlczo6SW1hZ2UgPSAiUGFn
ZS5JbWFnZSI7CiBNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkxvYWRlciA9
ICJQYWdlLkxvYWRlciI7CiAKK01lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBlczo6
QXVkaW8gPSAiUGFnZS5BdWRpbyI7CitNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlw
ZXM6OkF1ZGlvU2hhcmVkRGF0YSA9ICJQYWdlLkF1ZGlvLlNoYXJlZERhdGEiOworCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaAppbmRleCA0NmE4NGJiZDg3NWI3ZmM2NTBjZjA1
NjkyODJiNGNlMjBhNDBlZTczLi44OThiOTZkYmEzNDdmMDU3ODkzMDIzNTU2ZDliMzE2MjA2ZGZi
YjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTQzLDYgKzQzLDkgQEAgY2xhc3MgUGxhdGZvcm1NZW1v
cnlUeXBlcyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgSW1hZ2U7CiAg
ICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgTG9hZGVyOworCisgICAgc3RhdGljIE1lbW9yeU9i
amVjdFR5cGUgQXVkaW87CisgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgQXVkaW9TaGFyZWRE
YXRhOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vQXVkaW9BcnJheS5oCmluZGV4IGQyZDk5ZTE4MzEzNWI5MGE3ZTk1NGRmYTdkYTZm
MzE3ODhiODVjYzcuLjJhNTFiMDE1ZDkzZTgwYzIzNmUxZDc1NDBiNDA0Mjc0YzdjOWYzMzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKQEAgLTE0Miw2ICsx
NDIsMTMgQEAgcHVibGljOgogICAgICAgICBtZW1jcHkodGhpcy0+ZGF0YSgpICsgc3RhcnQsIHNv
dXJjZURhdGEsIHNpemVvZihUKSAqIChlbmQgLSBzdGFydCkpOwogICAgIH0KIAorICAgIHRlbXBs
YXRlPHR5cGVuYW1lIE1lbW9yeU9iamVjdEluZm8+CisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAorICAgIHsKKyAgICAg
ICAgdHlwZW5hbWUgTWVtb3J5T2JqZWN0SW5mbzo6Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgdGhpcyk7CisgICAgICAgIGluZm8uYWRkUmF3QnVmZmVyKG1fYWxsb2NhdGlvbiwgbV9z
aXplICogc2l6ZW9mKFQpKTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgc3RhdGljIFQqIGFsaWdu
ZWRBZGRyZXNzKFQqIGFkZHJlc3MsIGludHB0cl90IGFsaWdubWVudCkKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHAKaW5kZXggYTFhMGE1MGRhY2ViY2I2
ZDkwMzY0NGM2MDJkMTQ0OGM4MDI5YjIyYi4uZmZmNjJhYmY5OTJlOTJkMzVkNmY5ZmM3NGFjMWZm
Yjg3N2RkMGUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZU
RnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmNw
cApAQCAtMzcsNiArMzcsNyBAQAogI2VuZGlmCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5j
bHVkZSAiUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQ29t
cGxleC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL093blB0
ci5oPgpAQCAtMjQ4LDYgKzI0OSw0NyBAQCB2b2lkIEZGVEZyYW1lOjphZGRDb25zdGFudEdyb3Vw
RGVsYXkoZG91YmxlIHNhbXBsZUZyYW1lRGVsYXkpCiAgICAgfQogfQogCit2b2lkIEZGVEZyYW1l
OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBj
b25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMs
IFBsYXRmb3JtTWVtb3J5VHlwZXM6OkF1ZGlvU2hhcmVkRGF0YSk7CisjaWYgVVNFX0FDQ0VMRVJB
VEVfRkZUCisgICAgaW5mby5hZGRNZW1iZXIobV9mcmFtZSk7CisgICAgaW5mby5hZGRNZW1iZXIo
bV9yZWFsRGF0YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbWFnRGF0YSk7CisjZWxzZSAvLyAh
VVNFX0FDQ0VMRVJBVEVfRkZUCisKKyNpZiBVU0UoV0VCQVVESU9fTUtMKQorICAgIGluZm8uYWRk
TWVtYmVyKG1faGFuZGxlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbXBsZXhEYXRhKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX3JlYWxEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdE
YXRhKTsKKyNlbmRpZiAvLyBVU0UoV0VCQVVESU9fTUtMKQorCisjaWYgVVNFKFdFQkFVRElPX0ZG
TVBFRykKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbXBsZXhEYXRhKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX3JlYWxEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdEYXRhKTsKKyNlbmRp
ZiAvLyBVU0UoV0VCQVVESU9fRkZNUEVHKQorCisjaWYgVVNFKFdFQkFVRElPX0dTVFJFQU1FUikK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2ZmdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbnZlcnNl
RmZ0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbXBsZXhEYXRhKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX3JlYWxEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdEYXRhKTsKKyNlbmRp
ZiAvLyBVU0UoV0VCQVVESU9fR1NUUkVBTUVSKQorCisjaWYgVVNFKFdFQkFVRElPX0lQUCkKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2J1ZmZlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9ERlRTcGVj
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbXBsZXhEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX3JlYWxEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdEYXRhKTsKKyNlbmRpZiAv
LyBVU0UoV0VCQVVESU9fSVBQKQorCisjZW5kaWYgLy8gIVVTRV9BQ0NFTEVSQVRFX0ZGVAorfQor
CiAjaWZuZGVmIE5ERUJVRwogdm9pZCBGRlRGcmFtZTo6cHJpbnQoKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmgKaW5kZXggM2ZiM2E3ODJmMzAwOTVmNTRlZTJlNGM1
ZmY5YzMxNTc5YjU5MDBiZi4uNmMxNTM0OWQ5NzE4Njg5ZTM1MzkzZjhjMGU1ZGViMmE1ODIzYTQ0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5oCkBAIC02NCw2ICs2
NCw3IEBAIHN0cnVjdCBSREZUQ29udGV4dDsKICNpbmNsdWRlIDxpcHBzLmg+CiAjZW5kaWYgLy8g
VVNFKFdFQkFVRElPX0lQUCkKIAorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkaW5nLmg+CkBAIC0xMDYsNiArMTA3LDggQEAgcHVibGljOgogICAgIHVuc2lnbmVk
IGZmdFNpemUoKSBjb25zdCB7IHJldHVybiBtX0ZGVFNpemU7IH0KICAgICB1bnNpZ25lZCBsb2cy
RkZUU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9nMkZGVFNpemU7IH0KIAorICAgIHZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAg
IHVuc2lnbmVkIG1fRkZUU2l6ZTsKICAgICB1bnNpZ25lZCBtX2xvZzJGRlRTaXplOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5jcHAKaW5kZXggODU1ODY5
ODAzMjZmNTIwN2FiYmIwZGQ0MjMyY2ZhMDMwODVjZjkyNy4uZTlmMmM3MzdjNzY5MjRkMjE1Y2Y4
YjdlOGEyNDU4ZjJkZWM3MDBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vSFJURkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9IUlRGRGF0YWJhc2UuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiSFJURkRhdGFi
YXNlLmgiCiAKICNpbmNsdWRlICJIUlRGRWxldmF0aW9uLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1N
ZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0
aW9uVmVjdG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTExOSw2ICsxMjEsMTIg
QEAgdW5zaWduZWQgSFJURkRhdGFiYXNlOjppbmRleEZyb21FbGV2YXRpb25BbmdsZShkb3VibGUg
ZWxldmF0aW9uQW5nbGUpCiAgICAgcmV0dXJuIGVsZXZhdGlvbkluZGV4OwogfQogCit2b2lkIEhS
VEZEYXRhYmFzZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJ
bmZvLCB0aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpBdWRpb1NoYXJlZERhdGEpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fZWxldmF0aW9ucyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0hSVEZEYXRhYmFzZS5oCmluZGV4IDhhOTZhMDQ0NGJiNjRlODkzOTFjNjZjOTEzNzRl
YTdiNWE0ZWZmMmMuLjg4ZjMyOGE1OGM3MjA4ZTA0ZDZkNzcyMjNhMTk0NTViYjhiMTA0YWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5oCkBAIC0zMCwx
NCArMzAsMTEgQEAKICNkZWZpbmUgSFJURkRhdGFiYXNlX2gKIAogI2luY2x1ZGUgIkhSVEZFbGV2
YXRpb24uaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgot
I2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdI
YXNoLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtNjIsNiArNTksOCBAQCBwdWJsaWM6CiAgICAgLy8gTnVtYmVyIG9mIGVsZXZh
dGlvbnMgbG9hZGVkIGZyb20gcmVzb3VyY2UuCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIE51
bWJlck9mUmF3RWxldmF0aW9uczsKIAorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5
T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEhSVEZEYXRhYmFz
ZShmbG9hdCBzYW1wbGVSYXRlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5jcHAKaW5kZXggOGY5NmM5Njk0ZDJmNjU4MzQ2ODM5
ZjU3ZGJlODJiY2ZjZGNhYWE5Zi4uY2IxYjczOTQxYzZjNjA3YjRhMjE5MjJjOTI5OTdhNmRjN2Y1
NzBhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFi
YXNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0
YWJhc2VMb2FkZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSFJURkRhdGFiYXNl
TG9hZGVyLmgiCiAKICNpbmNsdWRlICJIUlRGRGF0YWJhc2UuaCIKKyNpbmNsdWRlICJQbGF0Zm9y
bU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEzMSw2ICsxMzIsMTIgQEAgSFJURkRhdGFiYXNlKiBI
UlRGRGF0YWJhc2VMb2FkZXI6OmRlZmF1bHRIUlRGRGF0YWJhc2UoKQogICAgIHJldHVybiBzX2xv
YWRlci0+ZGF0YWJhc2UoKTsKIH0KIAordm9pZCBIUlRGRGF0YWJhc2VMb2FkZXI6OnJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7Cisg
ICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1N
ZW1vcnlUeXBlczo6QXVkaW9TaGFyZWREYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2hydGZE
YXRhYmFzZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9I
UlRGRGF0YWJhc2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZE
YXRhYmFzZUxvYWRlci5oCmluZGV4IGU2NzcwN2U4MTRhMWRhYzdjYmVmNWJjZTY4ZTEwNzQzMDc5
Y2VhODQuLmMxNmZiOWYyZWI3MDQ0MjhhYmJjNWQ4OGQzMDY4NTFkNWY4NTVhM2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5oCkBA
IC03MCw2ICs3MCw4IEBAIHB1YmxpYzoKICAgICAvLyBpcyBzdGlsbCBhbGl2ZS4gIE90aGVyd2lz
ZSB0aGlzIHdpbGwgcmV0dXJuIDAuCiAgICAgc3RhdGljIEhSVEZEYXRhYmFzZSogZGVmYXVsdEhS
VEZEYXRhYmFzZSgpOwogCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgLy8gQm90aCBjb25zdHJ1Y3RvciBhbmQgZGVz
dHJ1Y3RvciBtdXN0IGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4KICAgICBleHBsaWNp
dCBIUlRGRGF0YWJhc2VMb2FkZXIoZmxvYXQgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCmluZGV4IGNmZTEzZWQ4NTMwNmI1
MTcxMmFhMzA3NGI5YzhkYzM5MmNkNDY1MmQuLjdlZWQ4OTRkN2UwYzA3YTIyNDczZWJlYzZiODQ1
ODY3MTI1ODk4ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hS
VEZFbGV2YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZF
bGV2YXRpb24uY3BwCkBAIC0zNyw4ICszNywxMCBAQAogI2luY2x1ZGUgIkJpcXVhZC5oIgogI2lu
Y2x1ZGUgIkZGVEZyYW1lLmgiCiAjaW5jbHVkZSAiSFJURlBhbm5lci5oIgorI2luY2x1ZGUgIlBs
YXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2lu
Y2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9y
Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAt
MzM3LDYgKzMzOSwxMyBAQCB2b2lkIEhSVEZFbGV2YXRpb246OmdldEtlcm5lbHNGcm9tQXppbXV0
aChkb3VibGUgYXppbXV0aEJsZW5kLCB1bnNpZ25lZCBhemltdXRoSQogICAgIGZyYW1lRGVsYXlS
ID0gKDEuMCAtIGF6aW11dGhCbGVuZCkgKiBmcmFtZURlbGF5UiArIGF6aW11dGhCbGVuZCAqIGZy
YW1lRGVsYXkyUjsKIH0KIAordm9pZCBIUlRGRWxldmF0aW9uOjpyZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNs
YXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6
OkF1ZGlvU2hhcmVkRGF0YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9rZXJuZWxMaXN0TCk7Cisg
ICAgaW5mby5hZGRNZW1iZXIobV9rZXJuZWxMaXN0Uik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmgKaW5kZXggNDQ2ZTY2ZDBlNzY0ZDdjMmFlNjg4
MWVkM2ZjMGUwMWI2NTc3NWZlNS4uZGFlZTRhYWY2YzVjNTE4NGIzNDYxNDAwZjFjMjk4ZTBhOThj
ZDUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24u
aApAQCAtOTEsNiArOTEsOSBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nl
c3MuCiAgICAgc3RhdGljIGJvb2wgY2FsY3VsYXRlU3ltbWV0cmljS2VybmVsc0ZvckF6aW11dGhF
bGV2YXRpb24oaW50IGF6aW11dGgsIGludCBlbGV2YXRpb24sIGZsb2F0IHNhbXBsZVJhdGUsIGNv
bnN0IFN0cmluZyYgc3ViamVjdE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPEhSVEZLZXJuZWw+JiBrZXJuZWxM
LCBSZWZQdHI8SFJURktlcm5lbD4mIGtlcm5lbFIpOworCisgICAgdm9pZCByZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgSFJURkVsZXZh
dGlvbihQYXNzT3duUHRyPEhSVEZLZXJuZWxMaXN0PiBrZXJuZWxMaXN0TCwgUGFzc093blB0cjxI
UlRGS2VybmVsTGlzdD4ga2VybmVsTGlzdFIsIGludCBlbGV2YXRpb24sIGZsb2F0IHNhbXBsZVJh
dGUpCiAgICAgICAgIDogbV9rZXJuZWxMaXN0TChrZXJuZWxMaXN0TCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vSFJURktlcm5lbC5jcHAKaW5kZXggMzkxZjkwNDAyMDA0NDIwM2Yz
YWEwZTQwNGMwMGNiYTUyZTkwZGE0ZC4uMzM3ZjUwZGU4NTI2MWU0ZmZhOGM1NjVhMjEyMTc2OTcx
MzdkZjEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURktl
cm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURktlcm5lbC5j
cHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJCaXF1YWQuaCIKICNpbmNsdWRlICJGRlRG
cmFtZS5oIgogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAog
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKQEAgLTE0MSw2ICsxNDIsMTIgQEAgUGFzc1JlZlB0cjxIUlRG
S2VybmVsPiBIUlRGS2VybmVsOjpjcmVhdGVJbnRlcnBvbGF0ZWRLZXJuZWwoSFJURktlcm5lbCog
a2VybmVsMSwKICAgICByZXR1cm4gSFJURktlcm5lbDo6Y3JlYXRlKGludGVycG9sYXRlZEZyYW1l
LnJlbGVhc2UoKSwgZnJhbWVEZWxheSwgc2FtcGxlUmF0ZTEpOwogfQogCit2b2lkIEhSVEZLZXJu
ZWw6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8p
IGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhp
cywgUGxhdGZvcm1NZW1vcnlUeXBlczo6QXVkaW9TaGFyZWREYXRhKTsKKyAgICBpbmZvLmFkZE1l
bWJlcihtX2ZmdEZyYW1lKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL0hSVEZLZXJuZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZL
ZXJuZWwuaAppbmRleCAzYThkYmZkZTJmMzI3ZGEzMTc1NjM1MmY5NTA3OWYxZDlhYWFkNzVmLi5l
ZDE4YzI4YTBiYzNjZGRlMmJmODAwYTg4M2EyMzkwM2I0YWZiNmMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGS2VybmVsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vYXVkaW8vSFJURktlcm5lbC5oCkBAIC03NSw2ICs3NSw4IEBAIHB1YmxpYzoK
ICAgICAvLyBDb252ZXJ0cyBiYWNrIGludG8gaW1wdWxzZS1yZXNwb25zZSBmb3JtLgogICAgIFBh
c3NPd25QdHI8QXVkaW9DaGFubmVsPiBjcmVhdGVJbXB1bHNlUmVzcG9uc2UoKTsKIAorICAgIHZv
aWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRl
OgogICAgIC8vIE5vdGU6IHRoaXMgaXMgZGVzdHJ1Y3RpdmUgb24gdGhlIHBhc3NlZCBpbiBBdWRp
b0NoYW5uZWwuCiAgICAgSFJURktlcm5lbChBdWRpb0NoYW5uZWwqLCBzaXplX3QgZmZ0U2l6ZSwg
ZmxvYXQgc2FtcGxlUmF0ZSwgYm9vbCBiYXNzQm9vc3QpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDVlYjZhNTdiYzhlODUz
MjYxMzAzNDdjMDFmZDNmZTNiNjQ3MjI3N2UuLjNlYzZlZjU1ZmQzZDU5MmE0ZmUzNzc3MTFmZTFm
NDhlNzI3NTA1NTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0xMS0wOSAgSWx5YSBUaWto
b25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
Tk1JIGFkZCBpbnN0cnVtZW50YXRpb24gZm9yIFdlYkF1ZG8gcmVsYXRlZCBzdHVmZi4KKyAgICAg
ICAgVGhleSB1c2UgYWJvdXQgMTZNYiBmb3Igc2hhcmVkIGRhdGEgb24gcGFnZXMgd2l0aCB3ZWJh
dWRpby4KKyAgICAgICAgQXMgZXhhbXBsZSBBbmdyeSBCaXJkcyBhcHAuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3MjkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQbGFpbiB2YW5pbGxhIGluc3RydW1l
bnRhdGlvbiBmb3IgYXVkaW8gYW5kIHdlYmF1ZGlvIGNsYXNzZXMuCisgICAgICAgIEF1ZGlvQ29u
dGV4dCBpcyBhIGtpbmQgb2YgQWN0aXZlRE9NT2JqZWN0LiBJIGZvdW5kIHRoYXQgdGhlc2Ugb2Jq
ZWN0cworICAgICAgICBhcmUgYWNjZXNzaWJsZSB0aHJvdWdoIFNjcmlwdEV4ZWN1dHVpb25Db250
ZXh0IGFuZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0CisgICAgICAgIGlzIGFuIGFuY2VzdG9yIG9m
IERvY3VtZW50LiBEb2N1bWVudCBjbGFzcyB3YXMgaW5zdHJ1bWVudGVkIGVhcmxlci4KKyAgICAg
ICAgSSBpbnN0cnVtZW50ZWQgQWN0aXZlRE9NT2JqZWN0LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
IGFuZCBvdGhlciBhbmNlc3RvcnMKKyAgICAgICAgYW5kIG5vdyBBdWRpb0NvbnRleHQgYW5kIG90
aGVyIEFjdGl2ZURPTU9iamVjdHMgYXJlIHJlYWNoZWFibGUgZnJvbSBEb2N1bWVudC4KKworICAg
ICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLmh0bWw6IEFkZGVk
LgorCiAyMDEyLTExLTA5ICBKYWVodW4gTGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CiAK
ICAgICAgICAgW0VGTF0gY3NzMy9mbGV4Ym94L211bHRpbGluZS1qdXN0aWZ5LWNvbnRlbnQuaHRt
bCBkb2Vzbid0IGNyYXNoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9j
b2wvbm1pLXdlYmF1ZGlvLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90
b2NvbC9ubWktd2ViYXVkaW8tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkZGYyYWYwNjg1MDhl
OTNjMWUzMjFkM2U0MTQxYjEwMjcwZjQxZWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDMgQEAKK1BBU1M6IHJlY2VpdmVkIHNpemUgZm9yIHR5cGUgUGFnZS5BdWRpbyBpcyBtb3JlIHRo
YW4gMTUwMDAwMDAKK1BBU1M6IHJlY2VpdmVkIHNpemUgZm9yIHR5cGUgUGFnZS5BdWRpby5TaGFy
ZWREYXRhIGlzIG1vcmUgdGhhbiAxNTAwMDAwMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0
b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDMyMzEzOWEyMjY5ZGNk
YjQ2MDg1ZDY3ODc0Yzg2MzZmNGZmNDY2OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8uaHRtbApAQCAtMCwwICsxLDc5IEBACis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKwordmFyIHNhbXBsZVJhdGUgPSA0NDEwMC4wOwordmFyIHJlbmRl
ckxlbmd0aFNlY29uZHMgPSAwLjEyNTsKKworZnVuY3Rpb24gY3JlYXRlU2luV2F2ZUJ1ZmZlcihj
b250ZXh0LCBsZW5ndGhJblNlY29uZHMsIGZyZXF1ZW5jeSkKK3sKKyAgICB2YXIgYXVkaW9CdWZm
ZXIgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlcigxLCBsZW5ndGhJblNlY29uZHMgKiBzYW1wbGVSYXRl
LCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgZGF0YSA9IGF1ZGlvQnVmZmVyLmdldENoYW5uZWxEYXRh
KDApOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXVkaW9CdWZmZXIubGVuZ3RoOyArK2kpCisg
ICAgICAgIGRhdGFbaV0gPSBNYXRoLnNpbihmcmVxdWVuY3kgKiAyICogTWF0aC5QSSAqIGkgLyBz
YW1wbGVSYXRlKTsKKyAgICByZXR1cm4gYXVkaW9CdWZmZXI7Cit9CisKK2Z1bmN0aW9uIHJ1blBh
Z2VUZXN0KCkKK3sKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworICAgIC8vIENy
ZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCisgICAgdmFyIGNvbnRleHQgPSBuZXcgd2Via2l0
QXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJMZW5ndGhTZWNvbmRzLCBzYW1wbGVS
YXRlKTsKKworICAgIHZhciBidWZmZXJTb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJj
ZSgpOworICAgIGJ1ZmZlclNvdXJjZS5idWZmZXIgPSBjcmVhdGVTaW5XYXZlQnVmZmVyKGNvbnRl
eHQsIHJlbmRlckxlbmd0aFNlY29uZHMsIDg4MCk7CisgICAgYnVmZmVyU291cmNlLmNvbm5lY3Qo
Y29udGV4dC5kZXN0aW5hdGlvbik7CisgICAgY29udGV4dC5vbmNvbXBsZXRlID0gcnVuVGVzdDsK
KyAgICBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQorewor
ICAgIGZ1bmN0aW9uIHNpemVGb3JUeXBlKGVudHJ5LCB0eXBlTmFtZSkKKyAgICB7CisgICAgICAg
IGlmIChlbnRyeS5uYW1lID09PSB0eXBlTmFtZSkKKyAgICAgICAgICAgIHJldHVybiBlbnRyeS5z
aXplOworCisgICAgICAgIGlmICghZW50cnkuY2hpbGRyZW4pCisgICAgICAgICAgICByZXR1cm4g
LTE7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbnRyeS5jaGlsZHJlbi5sZW5ndGg7
ICsraSkgeworICAgICAgICAgICAgdmFyIHNpemUgPSBzaXplRm9yVHlwZShlbnRyeS5jaGlsZHJl
bltpXSwgdHlwZU5hbWUpOworICAgICAgICAgICAgaWYgKHNpemUgPiAtMSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gc2l6ZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiAtMTsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiByZWNlaXZlZFNpemVNb3JlVGhhbihtZXNzYWdlT2JqZWN0LCB0eXBl
TmFtZSwgZXhwZWN0ZWRTaXplKQorICAgIHsKKyAgICAgICAgdmFyIGVudHJ5ID0gbWVzc2FnZU9i
amVjdFsicmVzdWx0Il1bImRpc3RyaWJ1dGlvbiJdOworICAgICAgICB2YXIgc2l6ZSA9IHNpemVG
b3JUeXBlKGVudHJ5LCB0eXBlTmFtZSk7CisgICAgICAgIGlmIChzaXplID4gZXhwZWN0ZWRTaXpl
KQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBBU1M6IHJlY2VpdmVkIHNpemUgZm9y
IHR5cGUgIiArIHR5cGVOYW1lICsgIiBpcyBtb3JlIHRoYW4gIiArIGV4cGVjdGVkU2l6ZSk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJGQUlMOiByZWNlaXZl
ZCBzaXplICIgKyBzaXplICsgIiBmb3IgdHlwZSAiICsgdHlwZU5hbWUgKyAiIGlzIGxlc3MgdGhh
biAiICsgZXhwZWN0ZWRTaXplKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBoYW5kbGVNZW1vcnlT
bmFwc2hvdChtZXNzYWdlT2JqZWN0KQorICAgIHsKKyAgICAgICAgaWYgKCJlcnJvciIgaW4gbWVz
c2FnZU9iamVjdCkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKG1lc3NhZ2VPYmplY3Qu
ZXJyb3IubWVzc2FnZSk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgcmVjZWl2ZWRTaXpl
TW9yZVRoYW4obWVzc2FnZU9iamVjdCwgIlBhZ2UuQXVkaW8iLCAxNTAwMDAwMCk7CisgICAgICAg
ICAgICByZWNlaXZlZFNpemVNb3JlVGhhbihtZXNzYWdlT2JqZWN0LCAiUGFnZS5BdWRpby5TaGFy
ZWREYXRhIiwgMTUwMDAwMDApOworICAgICAgICB9CisKKyAgICAgICAgSW5zcGVjdG9yVGVzdC5j
b21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21tYW5kKCJN
ZW1vcnkuZ2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbiIsIHt9LCBoYW5kbGVNZW1vcnlTbmFw
c2hvdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9uTG9hZD0icnVuUGFnZVRlc3Qo
KTsiPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173442</attachid>
            <date>2012-11-10 04:14:43 -0800</date>
            <delta_ts>2012-11-11 23:33:08 -0800</delta_ts>
            <desc>with fix for mac, gtk and win bots.</desc>
            <filename>bug-101729-20121110161248.patch</filename>
            <type>text/plain</type>
            <size>30083</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzU1YzMwZjU2ZDcwOTEx
YjhmN2Q0ZGE4NDE1MTNlMDAyNTQ3YzVmMi4uOGY2NGJkYmI3M2ZjYjMxZTM5YjRjZjJlMzA2MDg0
YjE4MTA0ZThjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDEyLTExLTA5ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUkgYWRkIGluc3RydW1lbnRhdGlvbiBmb3IgV2ViQXVkbyByZWxhdGVkIHN0dWZmLgor
ICAgICAgICBUaGV5IHVzZSBhYm91dCAxNk1iIGZvciBzaGFyZWQgZGF0YSBvbiBwYWdlcyB3aXRo
IHdlYmF1ZGlvLgorICAgICAgICBBcyBleGFtcGxlIEFuZ3J5IEJpcmRzIGFwcC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTcyOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsYWluIHZhbmlsbGEgaW5z
dHJ1bWVudGF0aW9uIGZvciBhdWRpbyBhbmQgd2ViYXVkaW8gY2xhc3Nlcy4KKyAgICAgICAgQXVk
aW9Db250ZXh0IGlzIGEga2luZCBvZiBBY3RpdmVET01PYmplY3QuIEkgZm91bmQgdGhhdCB0aGVz
ZSBvYmplY3RzCisgICAgICAgIGFyZSBhY2Nlc3NpYmxlIHRocm91Z2ggU2NyaXB0RXhlY3V0dWlv
bkNvbnRleHQgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKKyAgICAgICAgaXMgYW4gYW5jZXN0
b3Igb2YgRG9jdW1lbnQuIERvY3VtZW50IGNsYXNzIHdhcyBpbnN0cnVtZW50ZWQgZWFybGVyLgor
ICAgICAgICBJIGluc3RydW1lbnRlZCBBY3RpdmVET01PYmplY3QsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgYW5kIG90aGVyIGFuY2VzdG9ycworICAgICAgICBhbmQgbm93IEF1ZGlvQ29udGV4dCBh
bmQgb3RoZXIgQWN0aXZlRE9NT2JqZWN0cyBhcmUgcmVhY2hlYWJsZSBmcm9tIERvY3VtZW50Lgor
CisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8uaHRtbAorCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9Db250ZXh0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAo
QXVkaW9Db250ZXh0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmg6Cisg
ICAgICAgIChBdWRpb05vZGUpOgorICAgICAgICAqIGRvbS9BY3RpdmVET01PYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWN0aXZlRE9NT2JqZWN0OjpyZXBvcnRNZW1vcnlVc2FnZSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vQWN0aXZlRE9NT2JqZWN0Lmg6CisgICAg
ICAgIChBY3RpdmVET01PYmplY3QpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgIChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KToKKyAgICAgICAgKiBkb20vU2VjdXJpdHlDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5Q29udGV4dDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL1NlY3VyaXR5Q29udGV4dC5oOgorICAgICAg
ICAoU2VjdXJpdHlDb250ZXh0KToKKyAgICAgICAgKiBkb20vV2ViQ29yZU1lbW9yeUluc3RydW1l
bnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vV2ViQ29yZU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZU1lbW9yeVR5cGVzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5Lmg6CisgICAgICAgIChBdWRpb0FycmF5
KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQXJyYXk6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
RlRGcmFtZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaDoKKyAgICAgICAgKEZGVEZyYW1lKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFJURkRhdGFiYXNlOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2UuaDoKKyAgICAgICAgKEhSVEZEYXRh
YmFzZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2Up
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFi
YXNlTG9hZGVyLmg6CisgICAgICAgIChIUlRGRGF0YWJhc2VMb2FkZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFJURkVs
ZXZhdGlvbjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZhdGlvbi5oOgorICAgICAgICAoSFJURkVsZXZhdGlv
bik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURktlcm5lbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIUlRGS2VybmVsOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGS2VybmVsLmg6CisgICAgICAgIChIUlRG
S2VybmVsKToKKwogMjAxMi0xMS0wOSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAK
ICAgICAgICAgU3VwcG9ydCBsaXN0IG9mIHRyYWNrcyBpbiBjYXB0aW9uIG1lZGlhIGNvbnRyb2xz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAK
aW5kZXggOWY2NTg4MDE2OTM3ZGFmNzE2NzYxZDI3ZDJmNzdlYTc2ZDBlNWE2YS4uOTRiZmJiNDQw
MTRkMTAzN2ZhNGU5OGUwNTBlM2ZkOThjNTk5MzFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcApAQCAtNTcsNiArNTcsOSBAQAogI2lu
Y2x1ZGUgIlNjcmlwdFByb2Nlc3Nvck5vZGUuaCIKICNpbmNsdWRlICJXYXZlU2hhcGVyTm9kZS5o
IgogI2luY2x1ZGUgIldhdmVUYWJsZS5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVt
ZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5o
PgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KIAogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAjaW5jbHVkZSAiTWVkaWFTdHJlYW0uaCIKQEAgLTk2Miw2ICs5
NjUsMzEgQEAgdm9pZCBBdWRpb0NvbnRleHQ6OmRlY3JlbWVudEFjdGl2ZVNvdXJjZUNvdW50KCkK
ICAgICBhdG9taWNEZWNyZW1lbnQoJm1fYWN0aXZlU291cmNlQ291bnQpOwogfQogCit2b2lkIEF1
ZGlvQ29udGV4dDo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2Jq
ZWN0SW5mbykgY29uc3QKK3sKKyAgICBBdXRvTG9ja2VyIGxvY2tlcihjb25zdF9jYXN0PEF1ZGlv
Q29udGV4dCo+KHRoaXMpKTsKKworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVj
dEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6QXVkaW8pOworICAgIEFjdGl2ZURPTU9i
amVjdDo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9kb2N1bWVudCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9kZXN0aW5hdGlvbk5vZGUp
OworICAgIGluZm8uYWRkTWVtYmVyKG1fbGlzdGVuZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
ZmluaXNoZWROb2Rlcyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZWZlcmVuY2VkTm9kZXMpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fbm9kZXNNYXJrZWRGb3JEZWxldGlvbik7CisgICAgaW5mby5h
ZGRNZW1iZXIobV9ub2Rlc1RvRGVsZXRlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2RpcnR5U3Vt
bWluZ0p1bmN0aW9ucyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9kaXJ0eUF1ZGlvTm9kZU91dHB1
dHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fYXV0b21hdGljUHVsbE5vZGVzKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX3JlbmRlcmluZ0F1dG9tYXRpY1B1bGxOb2Rlcyk7CisgICAgaW5mby5hZGRN
ZW1iZXIobV9jb250ZXh0R3JhcGhNdXRleCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9kZWZlcnJl
ZEZpbmlzaERlcmVmTGlzdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ocnRmRGF0YWJhc2VMb2Fk
ZXIpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZXZlbnRUYXJnZXREYXRhKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX3JlbmRlclRhcmdldCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9hdWRpb0RlY29k
ZXIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VC
X0FVRElPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0
LmgKaW5kZXggMzA5OGQ4ZWM2YzEwYjdkNjZjNWI5NjgyZTBkOTIwNDFiYTg2NDE5OC4uYWU3MDMy
OGNiN2VjOWIwNzRjOGY1OGQ1ODk0NTIxZjE3ZGUyNDliYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCkBAIC0yNDUsNyArMjQ1LDkgQEAgcHVi
bGljOgogICAgIHZvaWQgZmlyZUNvbXBsZXRpb25FdmVudCgpOwogICAgIAogICAgIHN0YXRpYyB1
bnNpZ25lZCBzX2hhcmR3YXJlQ29udGV4dENvdW50OwotICAgIAorCisgICAgdmlydHVhbCB2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBBdWRpb0NvbnRleHQoRG9jdW1lbnQqKTsKICAgICBBdWRp
b0NvbnRleHQoRG9jdW1lbnQqLCB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzLCBzaXplX3QgbnVt
YmVyT2ZGcmFtZXMsIGZsb2F0IHNhbXBsZVJhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb05vZGUuY3BwCmluZGV4IDY5ZmQ5MGJiMTc2MzYxZTdhYjVjOTFjN2U1
ZDFhNzgzZjhkY2RmZGMuLmQxNGViM2RmYzNhMTUyMmY2MmM1OTExMGYzMmJhY2MyZGMxMDdmMTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKQEAg
LTMzLDggKzMzLDEwIEBACiAjaW5jbHVkZSAiQXVkaW9Ob2RlT3V0cHV0LmgiCiAjaW5jbHVkZSAi
QXVkaW9QYXJhbS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJXZWJD
b3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50
YXRpb25WZWN0b3IuaD4KIAogI2lmIERFQlVHX0FVRElPTk9ERV9SRUZFUkVOQ0VTCiAjaW5jbHVk
ZSA8c3RkaW8uaD4KQEAgLTQwMiw2ICs0MDQsMTQgQEAgdm9pZCBBdWRpb05vZGU6OmZpbmlzaERl
cmVmKFJlZlR5cGUgcmVmVHlwZSkKICAgICB9CiB9CiAKK3ZvaWQgQXVkaW9Ob2RlOjpyZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAorewor
ICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVN
ZW1vcnlUeXBlczo6QXVkaW8pOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGV4dCk7CisgICAg
aW5mby5hZGRNZW1iZXIobV9pbnB1dHMpOworICAgIGluZm8uYWRkTWVtYmVyKG1fb3V0cHV0cyk7
Cit9CisKICNpZiBERUJVR19BVURJT05PREVfUkVGRVJFTkNFUwogCiBib29sIEF1ZGlvTm9kZTo6
c19pc05vZGVDb3VudEluaXRpYWxpemVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb05vZGUuaAppbmRleCA0ZWYzZTY1NjBiN2ZmZThkOWMwN2QwYzcyNGZk
ZTljNGIzY2RjMDg5Li42MWI1YTIwYjE1NDE5NTc1MDU5MzFkNGZmMTg1ODg2OTExZGIzNmUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmgKQEAgLTI1LDYg
KzI1LDcgQEAKICNpZm5kZWYgQXVkaW9Ob2RlX2gKICNkZWZpbmUgQXVkaW9Ob2RlX2gKIAorI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9QYXNzT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMTU2LDYgKzE1
Nyw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZW5hYmxlT3V0cHV0c0lmTmVjZXNzYXJ5KCk7CiAg
ICAgdm9pZCBkaXNhYmxlT3V0cHV0c0lmTmVjZXNzYXJ5KCk7CisKKyAgICB2b2lkIHJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIC8v
IElucHV0cyBhbmQgb3V0cHV0cyBtdXN0IGJlIGNyZWF0ZWQgYmVmb3JlIHRoZSBBdWRpb05vZGUg
aXMgaW5pdGlhbGl6ZWQuCiAgICAgdm9pZCBhZGRJbnB1dChQYXNzT3duUHRyPEF1ZGlvTm9kZUlu
cHV0Pik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuY3BwCmluZGV4IDFmZTgzMmFl
ZWNhMzk1ODM3NWI1N2FlZjNlZDYxZjNmYjhlNjdlNDYuLmI0NGYwN2Q0NWFkZjMyOWMzZTIwOGM3
ZTQzYzUzZWZlMDc4NjViMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVE
T01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuY3Bw
CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAKICNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIldvcmtlckNvbnRleHQuaCIKICNpbmNsdWRlICJX
b3JrZXJUaHJlYWQuaCIKIApAQCAtOTEsNCArOTIsMTAgQEAgdm9pZCBBY3RpdmVET01PYmplY3Q6
OnN0b3AoKQogewogfQogCit2b2lkIEFjdGl2ZURPTU9iamVjdDo6cmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QKK3sKKyAgICBNZW1vcnlD
bGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJDb3JlTWVtb3J5VHlwZXM6
OkRPTSk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2
ZURPTU9iamVjdC5oCmluZGV4IGI0YWJkYTAzOTAyYWI0ZjZmNmQ0YzQ1NjBiYzQzNTVhODRhNjY4
ODcuLjhjNTZiZjliZDYyNzIyZTAyMmYxNzlkZmYxMWY4ODdlMjcyNGU2ODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQWN0aXZlRE9NT2JqZWN0LmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkNv
bnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4K
KyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTc2
LDYgKzc3LDggQEAgcHVibGljOgogICAgICAgICB0aGlzT2JqZWN0LT5kZXJlZigpOwogICAgIH0K
IAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikg
Y29uc3Q7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5BY3RpdmVET01PYmplY3QoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAK
aW5kZXggYTU1N2RjN2MwMWIwMGQ0M2QwODExOWVmODE1NGNmMDMyOWEyZGE4NC4uODQ1MGFhNDc5
YjI3NjU3OGE3OTU0MjI4M2EwOGMxYjgxMTVlOGE0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAj
aW5jbHVkZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKIAogI2luY2x1ZGUgIlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0
aW9uLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggZWE1YmU0MTAyN2E3ZDhkZThlMzE0YWE3ZmZkZmQ1NDA0MTBjYjQ2OC4uODBjZjkwYTVkYjVm
ODk0YjMzZDA1NWFhZDMxODlhYzEzODExZGJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC01OTIwLDYgKzU5MjAsOCBAQCB2b2lkIERvY3VtZW50OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogewogICAgIE1lbW9yeUNsYXNz
SW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9N
KTsKICAgICBDb250YWluZXJOb2RlOjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZv
KTsKKyAgICBUcmVlU2NvcGU6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVjdEluZm8pOwor
ICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVj
dEluZm8pOwogICAgIGluZm8uYWRkTWVtYmVyKG1fc3R5bGVSZXNvbHZlcik7CiAgICAgaW5mby5h
ZGRNZW1iZXIobV91cmwpOwogICAgIGluZm8uYWRkTWVtYmVyKG1fYmFzZVVSTCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggMzlhM2RjZDYw
MzZhZDViYjlmYjVhYTA3MTMxODk1M2M2ZDAzNDE0ZS4uZDI5Yjg3ZWZkNTI3ODdiYWI4Yzg0MGZi
MDE1Zjk1NzkxZjdjY2Q5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmNwcApAQCAtMjgsNyArMjgsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKIAotI2luY2x1ZGUgIkFjdGl2ZURPTU9i
amVjdC5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkRP
TVRpbWVyLmgiCiAjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgpAQCAtMzcsMTIgKzM2LDE0IEBACiAj
aW5jbHVkZSAiRmlsZVRocmVhZC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCiAjaW5jbHVk
ZSAiUHVibGljVVJMTWFuYWdlci5oIgotI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgotI2lu
Y2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRl
ICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4
dC5oIgogI2luY2x1ZGUgIldvcmtlclRocmVhZC5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFk
Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaD4KKyNpbmNs
dWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oPgorI2luY2x1ZGUgPHd0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNTEsNiArNTIsMTMgQEAKICNpbmNsdWRl
ICJKU0RPTVdpbmRvdy5oIgogI2VuZGlmCiAKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+
IHN0cnVjdCBTZXF1ZW5jZU1lbW9yeUluc3RydW1lbnRhdGlvblRyYWl0czxXZWJDb3JlOjpDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcio+IHsKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgST4gc3Rh
dGljIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoSSwgSSwgTWVtb3J5Q2xhc3NJbmZvJikgeyB9Cit9
OworCit9CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFByb2Nlc3NNZXNzYWdlc1Nvb25U
YXNrIDogcHVibGljIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2sgewpAQCAtNDA5LDYgKzQx
NywyMSBAQCBkb3VibGUgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6dGltZXJBbGlnbm1lbnRJbnRl
cnZhbCgpIGNvbnN0CiAgICAgcmV0dXJuIFNldHRpbmdzOjpkZWZhdWx0RE9NVGltZXJBbGlnbm1l
bnRJbnRlcnZhbCgpOwogfQogCit2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnJlcG9ydE1l
bW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7Cisg
ICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1l
bW9yeVR5cGVzOjpET00pOworICAgIFNlY3VyaXR5Q29udGV4dDo6cmVwb3J0TWVtb3J5VXNhZ2Uo
bWVtb3J5T2JqZWN0SW5mbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9tZXNzYWdlUG9ydHMpOwor
ICAgIGluZm8uYWRkTWVtYmVyKG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fYWN0aXZlRE9NT2JqZWN0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV90aW1lb3V0
cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9wZW5kaW5nRXhjZXB0aW9ucyk7CisjaWYgRU5BQkxF
KEJMT0IpCisgICAgaW5mby5hZGRNZW1iZXIobV9wdWJsaWNVUkxNYW5hZ2VyKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2ZpbGVUaHJlYWQpOworI2VuZGlmCit9CisKIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlRhc2s6On5UYXNrKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oCmluZGV4IGI4ZGNhMjkwNmZkMzlkNDdiOThlNDFkNDViZWViZDM4MzQx
MDgzOTkuLmM4OWQwOWFlY2QxYTBkYjE2MWFmZWM2MmIzNGQzYTM3MjlhNjgwZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaApAQCAtMTYxLDYgKzE2MSw4
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgRXZlbnRRdWV1ZSogZXZlbnRRdWV1ZSgpIGNvbnN0
ID0gMDsKIAorICAgIHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJ
bmZvKikgY29uc3QgT1ZFUlJJREU7CisKIHByb3RlY3RlZDoKICAgICBjbGFzcyBBZGRDb25zb2xl
TWVzc2FnZVRhc2sgOiBwdWJsaWMgVGFzayB7CiAgICAgcHVibGljOgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2VjdXJpdHlDb250ZXh0LmNwcAppbmRleCA3ZTlmODM5MjBiYzA3MWJhYjUxMjJhNTU3NDBhNWJi
NzhiMWY2ZjQyLi45OTI1MmY2NzJiNmQ2Mzg3MjUwNzFjYTk3ZjJiODMyZjQwMjc4YTgyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgIkNvbnRlbnRTZWN1cml0eVBvbGljeS5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlv
bXMuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1v
cnlJbnN0cnVtZW50YXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMjIsNCAr
MTIzLDExIEBAIFNhbmRib3hGbGFncyBTZWN1cml0eUNvbnRleHQ6OnBhcnNlU2FuZGJveFBvbGlj
eShjb25zdCBTdHJpbmcmIHBvbGljeSkKICAgICByZXR1cm4gZmxhZ3M7CiB9CiAKK3ZvaWQgU2Vj
dXJpdHlDb250ZXh0OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVj
dEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlUeXBlczo6RE9NKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX3NlY3VyaXR5T3JpZ2luKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbnRlbnRTZWN1cml0
eVBvbGljeSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0
eUNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuaAppbmRleCA5
Y2Y0OWQzOThhYTAyODQxMTJiMDFlZmIyMTJhYjJjOGUxZWNlODJhLi43YzA5N2U3ZTk0YjQ0MDk1
OTJlYTQzNGNmYTU4ZDZlY2Q3ZjgwNTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2VjdXJpdHlDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4
dC5oCkBAIC03Myw2ICs3Myw4IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBTYW5kYm94RmxhZ3Mg
cGFyc2VTYW5kYm94UG9saWN5KGNvbnN0IFN0cmluZyYgcG9saWN5KTsKIAorICAgIHZpcnR1YWwg
dm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByb3Rl
Y3RlZDoKICAgICBTZWN1cml0eUNvbnRleHQoKTsKICAgICB2aXJ0dWFsIH5TZWN1cml0eUNvbnRl
eHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmNwcAppbmRleCBkODcyZmYwZDEyMGY5ZTI5ZWEyZDQwNDU3N2Y0
MThmMTBjMzI0MzM1Li5hNDNkM2E5OTNiNjYyMTdhMTAxZDBhYzIwMzA0NDFhZGY3Njg2MWU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1l
bnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJ
bnN0cnVtZW50YXRpb24uY3BwCkBAIC0zNiw0ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IE1lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBlczo6SW1hZ2UgPSAiUGFnZS5JbWFn
ZSI7CiBNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkxvYWRlciA9ICJQYWdl
LkxvYWRlciI7CiAKK01lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBlczo6QXVkaW8g
PSAiUGFnZS5BdWRpbyI7CitNZW1vcnlPYmplY3RUeXBlIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkF1
ZGlvU2hhcmVkRGF0YSA9ICJQYWdlLkF1ZGlvLlNoYXJlZERhdGEiOworCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1N
ZW1vcnlJbnN0cnVtZW50YXRpb24uaAppbmRleCA0NmE4NGJiZDg3NWI3ZmM2NTBjZjA1NjkyODJi
NGNlMjBhNDBlZTczLi44OThiOTZkYmEzNDdmMDU3ODkzMDIzNTU2ZDliMzE2MjA2ZGZiYjRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1lbW9yeUluc3RydW1l
bnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgKQEAgLTQzLDYgKzQzLDkgQEAgY2xhc3MgUGxhdGZvcm1NZW1vcnlUeXBl
cyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgSW1hZ2U7CiAgICAgc3Rh
dGljIE1lbW9yeU9iamVjdFR5cGUgTG9hZGVyOworCisgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5
cGUgQXVkaW87CisgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgQXVkaW9TaGFyZWREYXRhOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vQXVkaW9BcnJheS5oCmluZGV4IGQyZDk5ZTE4MzEzNWI5MGE3ZTk1NGRmYTdkYTZmMzE3ODhi
ODVjYzcuLjJhNTFiMDE1ZDkzZTgwYzIzNmUxZDc1NDBiNDA0Mjc0YzdjOWYzMzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmgKQEAgLTE0Miw2ICsxNDIsMTMg
QEAgcHVibGljOgogICAgICAgICBtZW1jcHkodGhpcy0+ZGF0YSgpICsgc3RhcnQsIHNvdXJjZURh
dGEsIHNpemVvZihUKSAqIChlbmQgLSBzdGFydCkpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIE1lbW9yeU9iamVjdEluZm8+CisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAorICAgIHsKKyAgICAgICAgdHlw
ZW5hbWUgTWVtb3J5T2JqZWN0SW5mbzo6Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywg
dGhpcyk7CisgICAgICAgIGluZm8uYWRkUmF3QnVmZmVyKG1fYWxsb2NhdGlvbiwgbV9zaXplICog
c2l6ZW9mKFQpKTsKKyAgICB9CisKIHByaXZhdGU6CiAgICAgc3RhdGljIFQqIGFsaWduZWRBZGRy
ZXNzKFQqIGFkZHJlc3MsIGludHB0cl90IGFsaWdubWVudCkKICAgICB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHAKaW5kZXggYTFhMGE1MGRhY2ViY2I2ZDkwMzY0
NGM2MDJkMTQ0OGM4MDI5YjIyYi4uZmZmNjJhYmY5OTJlOTJkMzVkNmY5ZmM3NGFjMWZmYjg3N2Rk
MGUwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmNwcApAQCAt
MzcsNiArMzcsNyBAQAogI2VuZGlmCiAKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxleC5o
PgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpA
QCAtMjQ4LDYgKzI0OSw0NyBAQCB2b2lkIEZGVEZyYW1lOjphZGRDb25zdGFudEdyb3VwRGVsYXko
ZG91YmxlIHNhbXBsZUZyYW1lRGVsYXkpCiAgICAgfQogfQogCit2b2lkIEZGVEZyYW1lOjpyZXBv
cnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAor
eworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRm
b3JtTWVtb3J5VHlwZXM6OkF1ZGlvU2hhcmVkRGF0YSk7CisjaWYgVVNFX0FDQ0VMRVJBVEVfRkZU
CisgICAgaW5mby5hZGRNZW1iZXIobV9mcmFtZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9yZWFs
RGF0YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbWFnRGF0YSk7CisjZWxzZSAvLyAhVVNFX0FD
Q0VMRVJBVEVfRkZUCisKKyNpZiBVU0UoV0VCQVVESU9fTUtMKQorICAgIGluZm8uYWRkTWVtYmVy
KG1faGFuZGxlKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbXBsZXhEYXRhKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX3JlYWxEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdEYXRhKTsK
KyNlbmRpZiAvLyBVU0UoV0VCQVVESU9fTUtMKQorCisjaWYgVVNFKFdFQkFVRElPX0ZGTVBFRykK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbXBsZXhEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X3JlYWxEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdEYXRhKTsKKyNlbmRpZiAvLyBV
U0UoV0VCQVVESU9fRkZNUEVHKQorCisjaWYgVVNFKFdFQkFVRElPX0dTVFJFQU1FUikKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2ZmdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbnZlcnNlRmZ0KTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2NvbXBsZXhEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X3JlYWxEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdEYXRhKTsKKyNlbmRpZiAvLyBV
U0UoV0VCQVVESU9fR1NUUkVBTUVSKQorCisjaWYgVVNFKFdFQkFVRElPX0lQUCkKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2J1ZmZlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9ERlRTcGVjKTsKKyAg
ICBpbmZvLmFkZE1lbWJlcihtX2NvbXBsZXhEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Jl
YWxEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdEYXRhKTsKKyNlbmRpZiAvLyBVU0Uo
V0VCQVVESU9fSVBQKQorCisjZW5kaWYgLy8gIVVTRV9BQ0NFTEVSQVRFX0ZGVAorfQorCiAjaWZu
ZGVmIE5ERUJVRwogdm9pZCBGRlRGcmFtZTo6cHJpbnQoKQogewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL0ZGVEZyYW1lLmgKaW5kZXggM2ZiM2E3ODJmMzAwOTVmNTRlZTJlNGM1ZmY5YzMx
NTc5YjU5MDBiZi4uNmMxNTM0OWQ5NzE4Njg5ZTM1MzkzZjhjMGU1ZGViMmE1ODIzYTQ0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5oCkBAIC02NCw2ICs2NCw3IEBA
IHN0cnVjdCBSREZUQ29udGV4dDsKICNpbmNsdWRlIDxpcHBzLmg+CiAjZW5kaWYgLy8gVVNFKFdF
QkFVRElPX0lQUCkKIAorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Bh
c3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KICNpbmNsdWRlIDx3dGYvVGhy
ZWFkaW5nLmg+CkBAIC0xMDYsNiArMTA3LDggQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGZmdFNp
emUoKSBjb25zdCB7IHJldHVybiBtX0ZGVFNpemU7IH0KICAgICB1bnNpZ25lZCBsb2cyRkZUU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9nMkZGVFNpemU7IH0KIAorICAgIHZvaWQgcmVwb3J0TWVt
b3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIHVuc2ln
bmVkIG1fRkZUU2l6ZTsKICAgICB1bnNpZ25lZCBtX2xvZzJGRlRTaXplOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5jcHAKaW5kZXggODU1ODY5ODAzMjZm
NTIwN2FiYmIwZGQ0MjMyY2ZhMDMwODVjZjkyNy4uZTlmMmM3MzdjNzY5MjRkMjE1Y2Y4YjdlOGEy
NDU4ZjJkZWM3MDBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
SFJURkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRG
RGF0YWJhc2UuY3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiSFJURkRhdGFiYXNlLmgi
CiAKICNpbmNsdWRlICJIUlRGRWxldmF0aW9uLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVj
dG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTExOSw2ICsxMjEsMTIgQEAgdW5z
aWduZWQgSFJURkRhdGFiYXNlOjppbmRleEZyb21FbGV2YXRpb25BbmdsZShkb3VibGUgZWxldmF0
aW9uQW5nbGUpCiAgICAgcmV0dXJuIGVsZXZhdGlvbkluZGV4OwogfQogCit2b2lkIEhSVEZEYXRh
YmFzZTo6cmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykgY29uc3QKK3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0
aGlzLCBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpBdWRpb1NoYXJlZERhdGEpOworICAgIGluZm8uYWRk
TWVtYmVyKG1fZWxldmF0aW9ucyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0hSVEZEYXRhYmFzZS5oCmluZGV4IDhhOTZhMDQ0NGJiNjRlODkzOTFjNjZjOTEzNzRlYTdiNWE0
ZWZmMmMuLjg4ZjMyOGE1OGM3MjA4ZTA0ZDZkNzcyMjNhMTk0NTViYjhiMTA0YWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5oCkBAIC0zMCwxNCArMzAs
MTEgQEAKICNkZWZpbmUgSFJURkRhdGFiYXNlX2gKIAogI2luY2x1ZGUgIkhSVEZFbGV2YXRpb24u
aCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAj
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+
Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNjIsNiArNTksOCBAQCBwdWJsaWM6CiAgICAgLy8gTnVtYmVyIG9mIGVsZXZhdGlvbnMg
bG9hZGVkIGZyb20gcmVzb3VyY2UuCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIE51bWJlck9m
UmF3RWxldmF0aW9uczsKIAorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0
SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEhSVEZEYXRhYmFzZShmbG9h
dCBzYW1wbGVSYXRlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0hSVEZEYXRhYmFzZUxvYWRlci5jcHAKaW5kZXggOGY5NmM5Njk0ZDJmNjU4MzQ2ODM5ZjU3ZGJl
ODJiY2ZjZGNhYWE5Zi4uY2IxYjczOTQxYzZjNjA3YjRhMjE5MjJjOTI5OTdhNmRjN2Y1NzBhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VM
b2FkZXIuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSFJURkRhdGFiYXNlTG9hZGVy
LmgiCiAKICNpbmNsdWRlICJIUlRGRGF0YWJhc2UuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lbW9y
eUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTEzMSw2ICsxMzIsMTIgQEAgSFJURkRhdGFiYXNlKiBIUlRGRGF0
YWJhc2VMb2FkZXI6OmRlZmF1bHRIUlRGRGF0YWJhc2UoKQogICAgIHJldHVybiBzX2xvYWRlci0+
ZGF0YWJhc2UoKTsKIH0KIAordm9pZCBIUlRGRGF0YWJhc2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVt
b3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlU
eXBlczo6QXVkaW9TaGFyZWREYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2hydGZEYXRhYmFz
ZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0
YWJhc2VMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFz
ZUxvYWRlci5oCmluZGV4IGU2NzcwN2U4MTRhMWRhYzdjYmVmNWJjZTY4ZTEwNzQzMDc5Y2VhODQu
LmMxNmZiOWYyZWI3MDQ0MjhhYmJjNWQ4OGQzMDY4NTFkNWY4NTVhM2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5oCkBAIC03MCw2
ICs3MCw4IEBAIHB1YmxpYzoKICAgICAvLyBpcyBzdGlsbCBhbGl2ZS4gIE90aGVyd2lzZSB0aGlz
IHdpbGwgcmV0dXJuIDAuCiAgICAgc3RhdGljIEhSVEZEYXRhYmFzZSogZGVmYXVsdEhSVEZEYXRh
YmFzZSgpOwogCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikg
Y29uc3Q7CisKIHByaXZhdGU6CiAgICAgLy8gQm90aCBjb25zdHJ1Y3RvciBhbmQgZGVzdHJ1Y3Rv
ciBtdXN0IGJlIGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4KICAgICBleHBsaWNpdCBIUlRG
RGF0YWJhc2VMb2FkZXIoZmxvYXQgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCmluZGV4IGNmZTEzZWQ4NTMwNmI1MTcxMmFh
MzA3NGI5YzhkYzM5MmNkNDY1MmQuLjdlZWQ4OTRkN2UwYzA3YTIyNDczZWJlYzZiODQ1ODY3MTI1
ODk4ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRp
b24uY3BwCkBAIC0zNyw4ICszNywxMCBAQAogI2luY2x1ZGUgIkJpcXVhZC5oIgogI2luY2x1ZGUg
IkZGVEZyYW1lLmgiCiAjaW5jbHVkZSAiSFJURlBhbm5lci5oIgorI2luY2x1ZGUgIlBsYXRmb3Jt
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUg
PG1hdGguaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAj
aW5jbHVkZSA8d3RmL093blB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtMzM3LDYg
KzMzOSwxMyBAQCB2b2lkIEhSVEZFbGV2YXRpb246OmdldEtlcm5lbHNGcm9tQXppbXV0aChkb3Vi
bGUgYXppbXV0aEJsZW5kLCB1bnNpZ25lZCBhemltdXRoSQogICAgIGZyYW1lRGVsYXlSID0gKDEu
MCAtIGF6aW11dGhCbGVuZCkgKiBmcmFtZURlbGF5UiArIGF6aW11dGhCbGVuZCAqIGZyYW1lRGVs
YXkyUjsKIH0KIAordm9pZCBIUlRGRWxldmF0aW9uOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5m
byBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkF1ZGlv
U2hhcmVkRGF0YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9rZXJuZWxMaXN0TCk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9rZXJuZWxMaXN0Uik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9IUlRGRWxldmF0aW9uLmgKaW5kZXggNDQ2ZTY2ZDBlNzY0ZDdjMmFlNjg4MWVkM2Zj
MGUwMWI2NTc3NWZlNS4uZGFlZTRhYWY2YzVjNTE4NGIzNDYxNDAwZjFjMjk4ZTBhOThjZDUxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uaApAQCAt
OTEsNiArOTEsOSBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCiAg
ICAgc3RhdGljIGJvb2wgY2FsY3VsYXRlU3ltbWV0cmljS2VybmVsc0ZvckF6aW11dGhFbGV2YXRp
b24oaW50IGF6aW11dGgsIGludCBlbGV2YXRpb24sIGZsb2F0IHNhbXBsZVJhdGUsIGNvbnN0IFN0
cmluZyYgc3ViamVjdE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUmVmUHRyPEhSVEZLZXJuZWw+JiBrZXJuZWxMLCBSZWZQ
dHI8SFJURktlcm5lbD4mIGtlcm5lbFIpOworCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgSFJURkVsZXZhdGlvbihQ
YXNzT3duUHRyPEhSVEZLZXJuZWxMaXN0PiBrZXJuZWxMaXN0TCwgUGFzc093blB0cjxIUlRGS2Vy
bmVsTGlzdD4ga2VybmVsTGlzdFIsIGludCBlbGV2YXRpb24sIGZsb2F0IHNhbXBsZVJhdGUpCiAg
ICAgICAgIDogbV9rZXJuZWxMaXN0TChrZXJuZWxMaXN0TCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vSFJURktlcm5lbC5jcHAKaW5kZXggMzkxZjkwNDAyMDA0NDIwM2YzYWEwZTQw
NGMwMGNiYTUyZTkwZGE0ZC4uMzM3ZjUwZGU4NTI2MWU0ZmZhOGM1NjVhMjEyMTc2OTcxMzdkZjEz
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURktlcm5lbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURktlcm5lbC5jcHAKQEAg
LTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJCaXF1YWQuaCIKICNpbmNsdWRlICJGRlRGcmFtZS5o
IgogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIHN0ZDsKQEAgLTE0MSw2ICsxNDIsMTIgQEAgUGFzc1JlZlB0cjxIUlRGS2VybmVs
PiBIUlRGS2VybmVsOjpjcmVhdGVJbnRlcnBvbGF0ZWRLZXJuZWwoSFJURktlcm5lbCoga2VybmVs
MSwKICAgICByZXR1cm4gSFJURktlcm5lbDo6Y3JlYXRlKGludGVycG9sYXRlZEZyYW1lLnJlbGVh
c2UoKSwgZnJhbWVEZWxheSwgc2FtcGxlUmF0ZTEpOwogfQogCit2b2lkIEhSVEZLZXJuZWw6OnJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0
Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxh
dGZvcm1NZW1vcnlUeXBlczo6QXVkaW9TaGFyZWREYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlciht
X2ZmdEZyYW1lKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5B
QkxFKFdFQl9BVURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0hSVEZLZXJuZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwu
aAppbmRleCAzYThkYmZkZTJmMzI3ZGEzMTc1NjM1MmY5NTA3OWYxZDlhYWFkNzVmLi5lZDE4YzI4
YTBiYzNjZGRlMmJmODAwYTg4M2EyMzkwM2I0YWZiNmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGS2VybmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vSFJURktlcm5lbC5oCkBAIC03NSw2ICs3NSw4IEBAIHB1YmxpYzoKICAgICAv
LyBDb252ZXJ0cyBiYWNrIGludG8gaW1wdWxzZS1yZXNwb25zZSBmb3JtLgogICAgIFBhc3NPd25Q
dHI8QXVkaW9DaGFubmVsPiBjcmVhdGVJbXB1bHNlUmVzcG9uc2UoKTsKIAorICAgIHZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAg
IC8vIE5vdGU6IHRoaXMgaXMgZGVzdHJ1Y3RpdmUgb24gdGhlIHBhc3NlZCBpbiBBdWRpb0NoYW5u
ZWwuCiAgICAgSFJURktlcm5lbChBdWRpb0NoYW5uZWwqLCBzaXplX3QgZmZ0U2l6ZSwgZmxvYXQg
c2FtcGxlUmF0ZSwgYm9vbCBiYXNzQm9vc3QpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDkyYmIzOGNiMTE3YmIyNTJkMzU1
Y2JmZjJhNmJjMGRmODA3OGZhYzUuLmJmYWM4N2NhMTRkMzE2Mjg4ODQ2YmM2MzgwMDkxNTczNTA4
MTAzMTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0xMS0wOSAgSWx5YSBUaWtob25vdnNr
eSAgPGxvaXNsb0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTk1JIGFk
ZCBpbnN0cnVtZW50YXRpb24gZm9yIFdlYkF1ZG8gcmVsYXRlZCBzdHVmZi4KKyAgICAgICAgVGhl
eSB1c2UgYWJvdXQgMTZNYiBmb3Igc2hhcmVkIGRhdGEgb24gcGFnZXMgd2l0aCB3ZWJhdWRpby4K
KyAgICAgICAgQXMgZXhhbXBsZSBBbmdyeSBCaXJkcyBhcHAuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE3MjkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQbGFpbiB2YW5pbGxhIGluc3RydW1lbnRhdGlv
biBmb3IgYXVkaW8gYW5kIHdlYmF1ZGlvIGNsYXNzZXMuCisgICAgICAgIEF1ZGlvQ29udGV4dCBp
cyBhIGtpbmQgb2YgQWN0aXZlRE9NT2JqZWN0LiBJIGZvdW5kIHRoYXQgdGhlc2Ugb2JqZWN0cwor
ICAgICAgICBhcmUgYWNjZXNzaWJsZSB0aHJvdWdoIFNjcmlwdEV4ZWN1dHVpb25Db250ZXh0IGFu
ZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0CisgICAgICAgIGlzIGFuIGFuY2VzdG9yIG9mIERvY3Vt
ZW50LiBEb2N1bWVudCBjbGFzcyB3YXMgaW5zdHJ1bWVudGVkIGVhcmxlci4KKyAgICAgICAgSSBp
bnN0cnVtZW50ZWQgQWN0aXZlRE9NT2JqZWN0LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0IGFuZCBv
dGhlciBhbmNlc3RvcnMKKyAgICAgICAgYW5kIG5vdyBBdWRpb0NvbnRleHQgYW5kIG90aGVyIEFj
dGl2ZURPTU9iamVjdHMgYXJlIHJlYWNoZWFibGUgZnJvbSBEb2N1bWVudC4KKworICAgICAgICAq
IGluc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBpbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLmh0bWw6IEFkZGVkLgorCiAy
MDEyLTExLTA5ICBPamFuIFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU2hv
dWxkIG9ubHkgZmlyZSBhIHNpbmdsZSBzZXQgb2YgbW91c2UgZXZlbnRzIGFuZCB1cGRhdGUgaG92
ZXIgc3RhdGUgb25jZSB3aGVuIHNjcm9sbGluZyBpcyBkb25lCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjVkZGYyYWYwNjg1MDhlOTNjMWUzMjFkM2U0MTQxYjEwMjcwZjQxZWUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1BBU1M6IHJlY2VpdmVkIHNpemUgZm9yIHR5cGUg
UGFnZS5BdWRpbyBpcyBtb3JlIHRoYW4gMTUwMDAwMDAKK1BBU1M6IHJlY2VpdmVkIHNpemUgZm9y
IHR5cGUgUGFnZS5BdWRpby5TaGFyZWREYXRhIGlzIG1vcmUgdGhhbiAxNTAwMDAwMAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDMyMzEzOWEyMjY5ZGNkYjQ2MDg1ZDY3ODc0Yzg2MzZmNGZmNDY2OAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8uaHRt
bApAQCAtMCwwICsxLDc5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2Vz
L3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKwordmFyIHNhbXBsZVJhdGUg
PSA0NDEwMC4wOwordmFyIHJlbmRlckxlbmd0aFNlY29uZHMgPSAwLjEyNTsKKworZnVuY3Rpb24g
Y3JlYXRlU2luV2F2ZUJ1ZmZlcihjb250ZXh0LCBsZW5ndGhJblNlY29uZHMsIGZyZXF1ZW5jeSkK
K3sKKyAgICB2YXIgYXVkaW9CdWZmZXIgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlcigxLCBsZW5ndGhJ
blNlY29uZHMgKiBzYW1wbGVSYXRlLCBzYW1wbGVSYXRlKTsKKyAgICB2YXIgZGF0YSA9IGF1ZGlv
QnVmZmVyLmdldENoYW5uZWxEYXRhKDApOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXVkaW9C
dWZmZXIubGVuZ3RoOyArK2kpCisgICAgICAgIGRhdGFbaV0gPSBNYXRoLnNpbihmcmVxdWVuY3kg
KiAyICogTWF0aC5QSSAqIGkgLyBzYW1wbGVSYXRlKTsKKyAgICByZXR1cm4gYXVkaW9CdWZmZXI7
Cit9CisKK2Z1bmN0aW9uIHJ1blBhZ2VUZXN0KCkKK3sKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKKworICAgIC8vIENyZWF0ZSBvZmZsaW5lIGF1ZGlvIGNvbnRleHQuCisgICAgdmFy
IGNvbnRleHQgPSBuZXcgd2Via2l0QXVkaW9Db250ZXh0KDEsIHNhbXBsZVJhdGUgKiByZW5kZXJM
ZW5ndGhTZWNvbmRzLCBzYW1wbGVSYXRlKTsKKworICAgIHZhciBidWZmZXJTb3VyY2UgPSBjb250
ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpOworICAgIGJ1ZmZlclNvdXJjZS5idWZmZXIgPSBjcmVh
dGVTaW5XYXZlQnVmZmVyKGNvbnRleHQsIHJlbmRlckxlbmd0aFNlY29uZHMsIDg4MCk7CisgICAg
YnVmZmVyU291cmNlLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbik7CisgICAgY29udGV4dC5v
bmNvbXBsZXRlID0gcnVuVGVzdDsKKyAgICBjb250ZXh0LnN0YXJ0UmVuZGVyaW5nKCk7Cit9CisK
K2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGZ1bmN0aW9uIHNpemVGb3JUeXBlKGVudHJ5LCB0eXBl
TmFtZSkKKyAgICB7CisgICAgICAgIGlmIChlbnRyeS5uYW1lID09PSB0eXBlTmFtZSkKKyAgICAg
ICAgICAgIHJldHVybiBlbnRyeS5zaXplOworCisgICAgICAgIGlmICghZW50cnkuY2hpbGRyZW4p
CisgICAgICAgICAgICByZXR1cm4gLTE7CisKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBl
bnRyeS5jaGlsZHJlbi5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmFyIHNpemUgPSBzaXpl
Rm9yVHlwZShlbnRyeS5jaGlsZHJlbltpXSwgdHlwZU5hbWUpOworICAgICAgICAgICAgaWYgKHNp
emUgPiAtMSkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2l6ZTsKKyAgICAgICAgfQorCisgICAg
ICAgIHJldHVybiAtMTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiByZWNlaXZlZFNpemVNb3JlVGhh
bihtZXNzYWdlT2JqZWN0LCB0eXBlTmFtZSwgZXhwZWN0ZWRTaXplKQorICAgIHsKKyAgICAgICAg
dmFyIGVudHJ5ID0gbWVzc2FnZU9iamVjdFsicmVzdWx0Il1bImRpc3RyaWJ1dGlvbiJdOworICAg
ICAgICB2YXIgc2l6ZSA9IHNpemVGb3JUeXBlKGVudHJ5LCB0eXBlTmFtZSk7CisgICAgICAgIGlm
IChzaXplID4gZXhwZWN0ZWRTaXplKQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIlBB
U1M6IHJlY2VpdmVkIHNpemUgZm9yIHR5cGUgIiArIHR5cGVOYW1lICsgIiBpcyBtb3JlIHRoYW4g
IiArIGV4cGVjdGVkU2l6ZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKCJGQUlMOiByZWNlaXZlZCBzaXplICIgKyBzaXplICsgIiBmb3IgdHlwZSAiICsgdHlw
ZU5hbWUgKyAiIGlzIGxlc3MgdGhhbiAiICsgZXhwZWN0ZWRTaXplKTsKKyAgICB9CisKKyAgICBm
dW5jdGlvbiBoYW5kbGVNZW1vcnlTbmFwc2hvdChtZXNzYWdlT2JqZWN0KQorICAgIHsKKyAgICAg
ICAgaWYgKCJlcnJvciIgaW4gbWVzc2FnZU9iamVjdCkKKyAgICAgICAgICAgIEluc3BlY3RvclRl
c3QubG9nKG1lc3NhZ2VPYmplY3QuZXJyb3IubWVzc2FnZSk7CisgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgcmVjZWl2ZWRTaXplTW9yZVRoYW4obWVzc2FnZU9iamVjdCwgIlBhZ2UuQXVkaW8i
LCAxNTAwMDAwMCk7CisgICAgICAgICAgICByZWNlaXZlZFNpemVNb3JlVGhhbihtZXNzYWdlT2Jq
ZWN0LCAiUGFnZS5BdWRpby5TaGFyZWREYXRhIiwgMTUwMDAwMDApOworICAgICAgICB9CisKKyAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICB9CisKKyAgICBJbnNwZWN0
b3JUZXN0LnNlbmRDb21tYW5kKCJNZW1vcnkuZ2V0UHJvY2Vzc01lbW9yeURpc3RyaWJ1dGlvbiIs
IHt9LCBoYW5kbGVNZW1vcnlTbmFwc2hvdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9uTG9hZD0icnVuUGFnZVRlc3QoKTsiPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173573</attachid>
            <date>2012-11-11 23:33:16 -0800</date>
            <delta_ts>2012-11-14 00:55:30 -0800</delta_ts>
            <desc>with additional instrumentation for fft arrays. total ~36mb</desc>
            <filename>bug-101729-20121112113118.patch</filename>
            <type>text/plain</type>
            <size>32250</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmRhNzk2YTMzNTY1Y2Vj
NWNkZWE1Y2U2ZWM3ZmMzN2JiNjg2NmRhOS4uOGNlZGZlYjUwYmQ0NGZkZTBhYzRmMmNiZTA3ODE2
MzBhY2U4NjNlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDEyLTExLTA5ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBOTUkgYWRkIGluc3RydW1lbnRhdGlvbiBmb3IgV2ViQXVkbyByZWxhdGVkIHN0dWZmLgor
ICAgICAgICBUaGV5IHVzZSBhYm91dCAxNk1iIGZvciBzaGFyZWQgZGF0YSBvbiBwYWdlcyB3aXRo
IHdlYmF1ZGlvLgorICAgICAgICBBcyBleGFtcGxlIEFuZ3J5IEJpcmRzIGFwcC4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTcyOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBsYWluIHZhbmlsbGEgaW5z
dHJ1bWVudGF0aW9uIGZvciBhdWRpbyBhbmQgd2ViYXVkaW8gY2xhc3Nlcy4KKyAgICAgICAgQXVk
aW9Db250ZXh0IGlzIGEga2luZCBvZiBBY3RpdmVET01PYmplY3QuIEkgZm91bmQgdGhhdCB0aGVz
ZSBvYmplY3RzCisgICAgICAgIGFyZSBhY2Nlc3NpYmxlIHRocm91Z2ggU2NyaXB0RXhlY3V0dWlv
bkNvbnRleHQgYW5kIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKKyAgICAgICAgaXMgYW4gYW5jZXN0
b3Igb2YgRG9jdW1lbnQuIERvY3VtZW50IGNsYXNzIHdhcyBpbnN0cnVtZW50ZWQgZWFybGVyLgor
ICAgICAgICBJIGluc3RydW1lbnRlZCBBY3RpdmVET01PYmplY3QsIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQgYW5kIG90aGVyIGFuY2VzdG9ycworICAgICAgICBhbmQgbm93IEF1ZGlvQ29udGV4dCBh
bmQgb3RoZXIgQWN0aXZlRE9NT2JqZWN0cyBhcmUgcmVhY2hlYWJsZSBmcm9tIERvY3VtZW50Lgor
CisgICAgICAgIFRlc3Q6IGluc3BlY3Rvci1wcm90b2NvbC9ubWktd2ViYXVkaW8uaHRtbAorCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QXVkaW9Db250ZXh0OjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oOgorICAgICAgICAo
QXVkaW9Db250ZXh0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb05vZGU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmg6Cisg
ICAgICAgIChBdWRpb05vZGUpOgorICAgICAgICAqIGRvbS9BY3RpdmVET01PYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWN0aXZlRE9NT2JqZWN0OjpyZXBvcnRNZW1vcnlVc2FnZSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vQWN0aXZlRE9NT2JqZWN0Lmg6CisgICAg
ICAgIChBY3RpdmVET01PYmplY3QpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIGRv
bS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg6CisgICAgICAgIChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KToKKyAgICAgICAgKiBkb20vU2VjdXJpdHlDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5Q29udGV4dDo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL1NlY3VyaXR5Q29udGV4dC5oOgorICAgICAg
ICAoU2VjdXJpdHlDb250ZXh0KToKKyAgICAgICAgKiBkb20vV2ViQ29yZU1lbW9yeUluc3RydW1l
bnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vV2ViQ29yZU1l
bW9yeUluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZU1lbW9yeVR5cGVzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5Lmg6CisgICAgICAgIChBdWRpb0FycmF5
KToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQXJyYXk6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
RlRGcmFtZTo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaDoKKyAgICAgICAgKEZGVEZyYW1lKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFJURkRhdGFiYXNlOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2UuaDoKKyAgICAgICAgKEhSVEZEYXRh
YmFzZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhSVEZEYXRhYmFzZUxvYWRlcjo6cmVwb3J0TWVtb3J5VXNhZ2Up
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFi
YXNlTG9hZGVyLmg6CisgICAgICAgIChIUlRGRGF0YWJhc2VMb2FkZXIpOgorICAgICAgICAqIHBs
YXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFJURkVs
ZXZhdGlvbjo6cmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
ICogcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZhdGlvbi5oOgorICAgICAgICAoSFJURkVsZXZhdGlv
bik6CisgICAgICAgICogcGxhdGZvcm0vYXVkaW8vSFJURktlcm5lbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIUlRGS2VybmVsOjpyZXBvcnRNZW1vcnlVc2FnZSk6CisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9IUlRGS2VybmVsLmg6CisgICAgICAgIChIUlRG
S2VybmVsKToKKwogMjAxMi0xMS0xMSAgRG9uZ3dvbyBKb3NodWEgSW0gIDxkdy5pbUBzYW1zdW5n
LmNvbT4KIAogICAgICAgICBbQ1NTM10gUGFyc2luZyB0aGUgcHJvcGVydHksIHRleHQtYWxpZ24t
bGFzdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0
LmNwcAppbmRleCA5ZjY1ODgwMTY5MzdkYWY3MTY3NjFkMjdkMmY3N2VhNzZkMGU1YTZhLi45NGJm
YmI0NDAxNGQxMDM3ZmE0ZTk4ZTA1MGUzZmQ5OGM1OTkzMWU5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCkBAIC01Nyw2ICs1Nyw5IEBA
CiAjaW5jbHVkZSAiU2NyaXB0UHJvY2Vzc29yTm9kZS5oIgogI2luY2x1ZGUgIldhdmVTaGFwZXJO
b2RlLmgiCiAjaW5jbHVkZSAiV2F2ZVRhYmxlLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNo
U2V0Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogCiAj
aWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKICNpbmNsdWRlICJNZWRpYVN0cmVhbS5oIgpAQCAtOTYy
LDYgKzk2NSwzMSBAQCB2b2lkIEF1ZGlvQ29udGV4dDo6ZGVjcmVtZW50QWN0aXZlU291cmNlQ291
bnQoKQogICAgIGF0b21pY0RlY3JlbWVudCgmbV9hY3RpdmVTb3VyY2VDb3VudCk7CiB9CiAKK3Zv
aWQgQXVkaW9Db250ZXh0OjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIEF1dG9Mb2NrZXIgbG9ja2VyKGNvbnN0X2Nhc3Q8
QXVkaW9Db250ZXh0Kj4odGhpcykpOworCisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpBdWRpbyk7CisgICAgQWN0aXZl
RE9NT2JqZWN0OjpyZXBvcnRNZW1vcnlVc2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2RvY3VtZW50KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Rlc3RpbmF0aW9u
Tm9kZSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9saXN0ZW5lcik7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9maW5pc2hlZE5vZGVzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3JlZmVyZW5jZWROb2Rl
cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9ub2Rlc01hcmtlZEZvckRlbGV0aW9uKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX25vZGVzVG9EZWxldGUpOworICAgIGluZm8uYWRkTWVtYmVyKG1fZGly
dHlTdW1taW5nSnVuY3Rpb25zKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2RpcnR5QXVkaW9Ob2Rl
T3V0cHV0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9hdXRvbWF0aWNQdWxsTm9kZXMpOworICAg
IGluZm8uYWRkTWVtYmVyKG1fcmVuZGVyaW5nQXV0b21hdGljUHVsbE5vZGVzKTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2NvbnRleHRHcmFwaE11dGV4KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2Rl
ZmVycmVkRmluaXNoRGVyZWZMaXN0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2hydGZEYXRhYmFz
ZUxvYWRlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9ldmVudFRhcmdldERhdGEpOworICAgIGlu
Zm8uYWRkTWVtYmVyKG1fcmVuZGVyVGFyZ2V0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2F1ZGlv
RGVjb2Rlcik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuaAppbmRleCAzMDk4ZDhlYzZjMTBiN2Q2NmM1Yjk2ODJlMGQ5MjA0MWJhODY0MTk4Li5h
ZTcwMzI4Y2I3ZWM5YjA3NGM4ZjU4ZDU4OTQ1MjFmMTdkZTI0OWJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKQEAgLTI0NSw3ICsyNDUsOSBA
QCBwdWJsaWM6CiAgICAgdm9pZCBmaXJlQ29tcGxldGlvbkV2ZW50KCk7CiAgICAgCiAgICAgc3Rh
dGljIHVuc2lnbmVkIHNfaGFyZHdhcmVDb250ZXh0Q291bnQ7Ci0gICAgCisKKyAgICB2aXJ0dWFs
IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0IE9WRVJSSURF
OworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEF1ZGlvQ29udGV4dChEb2N1bWVudCopOwogICAg
IEF1ZGlvQ29udGV4dChEb2N1bWVudCosIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMsIHNpemVf
dCBudW1iZXJPZkZyYW1lcywgZmxvYXQgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5jcHAKaW5kZXggNjlmZDkwYmIxNzYzNjFlN2FiNWM5
MWM3ZTVkMWE3ODNmOGRjZGZkYy4uZDE0ZWIzZGZjM2ExNTIyZjYyYzU5MTEwZjMyYmFjYzJkYzEw
N2YxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmNw
cApAQCAtMzMsOCArMzMsMTAgQEAKICNpbmNsdWRlICJBdWRpb05vZGVPdXRwdXQuaCIKICNpbmNs
dWRlICJBdWRpb1BhcmFtLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1ZGUg
IldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5o
PgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvblZlY3Rvci5oPgogCiAjaWYgREVCVUdfQVVESU9OT0RFX1JFRkVSRU5DRVMKICNp
bmNsdWRlIDxzdGRpby5oPgpAQCAtNDAyLDYgKzQwNCwxNCBAQCB2b2lkIEF1ZGlvTm9kZTo6Zmlu
aXNoRGVyZWYoUmVmVHlwZSByZWZUeXBlKQogICAgIH0KIH0KIAordm9pZCBBdWRpb05vZGU6OnJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0
Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2Vi
Q29yZU1lbW9yeVR5cGVzOjpBdWRpbyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9jb250ZXh0KTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2lucHV0cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9vdXRw
dXRzKTsKK30KKwogI2lmIERFQlVHX0FVRElPTk9ERV9SRUZFUkVOQ0VTCiAKIGJvb2wgQXVkaW9O
b2RlOjpzX2lzTm9kZUNvdW50SW5pdGlhbGl6ZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTm9kZS5oCmluZGV4IDRlZjNlNjU2MGI3ZmZlOGQ5YzA3ZDBj
NzI0ZmRlOWM0YjNjZGMwODkuLjYxYjVhMjBiMTU0MTk1NzUwNTkzMWQ0ZmYxODU4ODY5MTFkYjM2
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Ob2Rl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb05vZGUuaApAQCAt
MjUsNiArMjUsNyBAQAogI2lmbmRlZiBBdWRpb05vZGVfaAogI2RlZmluZSBBdWRpb05vZGVfaAog
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CkBAIC0xNTYs
NiArMTU3LDkgQEAgcHVibGljOgogCiAgICAgdm9pZCBlbmFibGVPdXRwdXRzSWZOZWNlc3Nhcnko
KTsKICAgICB2b2lkIGRpc2FibGVPdXRwdXRzSWZOZWNlc3NhcnkoKTsKKworICAgIHZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAg
ICAgLy8gSW5wdXRzIGFuZCBvdXRwdXRzIG11c3QgYmUgY3JlYXRlZCBiZWZvcmUgdGhlIEF1ZGlv
Tm9kZSBpcyBpbml0aWFsaXplZC4KICAgICB2b2lkIGFkZElucHV0KFBhc3NPd25QdHI8QXVkaW9O
b2RlSW5wdXQ+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9BY3RpdmVET01PYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5jcHAKaW5kZXggMWZl
ODMyYWVlY2EzOTU4Mzc1YjU3YWVmM2VkNjFmM2ZiOGU2N2U0Ni4uYjQ0ZjA3ZDQ1YWRmMzI5YzNl
MjA4YzdlNDNjNTNlZmUwNzg2NWIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Fj
dGl2ZURPTU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVj
dC5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKIAog
I2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKKyNpbmNsdWRlICJXZWJDb3JlTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2luY2x1
ZGUgIldvcmtlclRocmVhZC5oIgogCkBAIC05MSw0ICs5MiwxMCBAQCB2b2lkIEFjdGl2ZURPTU9i
amVjdDo6c3RvcCgpCiB7CiB9CiAKK3ZvaWQgQWN0aXZlRE9NT2JqZWN0OjpyZXBvcnRNZW1vcnlV
c2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1l
bW9yeUNsYXNzSW5mbyBpbmZvKG1lbW9yeU9iamVjdEluZm8sIHRoaXMsIFdlYkNvcmVNZW1vcnlU
eXBlczo6RE9NKTsKK30KKworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vQWN0aXZlRE9NT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
QWN0aXZlRE9NT2JqZWN0LmgKaW5kZXggYjRhYmRhMDM5MDJhYjRmNmY2ZDRjNDU2MGJjNDM1NWE4
NGE2Njg4Ny4uOGM1NmJmOWJkNjI3MjJlMDIyZjE3OWRmZjExZjg4N2UyNzI0ZTY4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0FjdGl2ZURPTU9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9BY3RpdmVET01PYmplY3QuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVk
ZSAiQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9u
cy5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtNzYsNiArNzcsOCBAQCBwdWJsaWM6CiAgICAgICAgIHRoaXNPYmplY3QtPmRlcmVmKCk7CiAg
ICAgfQogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfkFjdGl2ZURPTU9iamVjdCgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
LmNwcAppbmRleCBhNTU3ZGM3YzAxYjAwZDQzZDA4MTE5ZWY4MTU0Y2YwMzI5YTJkYTg0Li44NDUw
YWE0NzliMjc2NTc4YTc5NTQyMjgzYTA4YzFiODExNWU4YTQzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAKQEAgLTI4LDYgKzI4LDcg
QEAKICNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgogCiAjaW5jbHVkZSAi
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVt
ZW50YXRpb24uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAppbmRleCBjNzE3ZmFjMTY1YzFiNDE3NWI2NjkzODk3M2M4MGRhNDUwNzM2OWJjLi4zZmFiNTU0
ZmM1NjBkNjQ4YzcyMzU4YjE1Y2QxNjlkOGVlMzZmOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKQEAgLTU4NzYsNiArNTg3Niw4IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5
Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVz
OjpET00pOwogICAgIENvbnRhaW5lck5vZGU6OnJlcG9ydE1lbW9yeVVzYWdlKG1lbW9yeU9iamVj
dEluZm8pOworICAgIFRyZWVTY29wZTo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5T2JqZWN0SW5m
byk7CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVwb3J0TWVtb3J5VXNhZ2UobWVtb3J5
T2JqZWN0SW5mbyk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9zdHlsZVJlc29sdmVyKTsKICAgICBp
bmZvLmFkZE1lbWJlcihtX3VybCk7CiAgICAgaW5mby5hZGRNZW1iZXIobV9iYXNlVVJMKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAppbmRleCAzOWEz
ZGNkNjAzNmFkNWJiOWZiNWFhMDcxMzE4OTUzYzZkMDM0MTRlLi5kMjliODdlZmQ1Mjc4N2JhYjhj
ODQwZmIwMTVmOTU3OTFmN2NjZDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuY3BwCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogCi0jaW5jbHVkZSAiQWN0aXZl
RE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVk
ZSAiRE9NVGltZXIuaCIKICNpbmNsdWRlICJFcnJvckV2ZW50LmgiCkBAIC0zNywxMiArMzYsMTQg
QEAKICNpbmNsdWRlICJGaWxlVGhyZWFkLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKICNp
bmNsdWRlICJQdWJsaWNVUkxNYW5hZ2VyLmgiCi0jaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgi
Ci0jaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJXb3JrZXJD
b250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyVGhyZWFkLmgiCiAjaW5jbHVkZSA8d3RmL01haW5U
aHJlYWQuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oPgor
I2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoU2V0Lmg+CisjaW5jbHVkZSA8
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC01MSw2ICs1MiwxMyBAQAogI2lu
Y2x1ZGUgIkpTRE9NV2luZG93LmgiCiAjZW5kaWYKIAorbmFtZXNwYWNlIFdURiB7CisKK3RlbXBs
YXRlPD4gc3RydWN0IFNlcXVlbmNlTWVtb3J5SW5zdHJ1bWVudGF0aW9uVHJhaXRzPFdlYkNvcmU6
OkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKj4geworICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBJ
PiBzdGF0aWMgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShJLCBJLCBNZW1vcnlDbGFzc0luZm8mKSB7
IH0KK307CisKK30KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUHJvY2Vzc01lc3NhZ2Vz
U29vblRhc2sgOiBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzayB7CkBAIC00MDks
NiArNDE3LDIxIEBAIGRvdWJsZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp0aW1lckFsaWdubWVu
dEludGVydmFsKCkgY29uc3QKICAgICByZXR1cm4gU2V0dGluZ3M6OmRlZmF1bHRET01UaW1lckFs
aWdubWVudEludGVydmFsKCk7CiB9CiAKK3ZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
K3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBXZWJD
b3JlTWVtb3J5VHlwZXM6OkRPTSk7CisgICAgU2VjdXJpdHlDb250ZXh0OjpyZXBvcnRNZW1vcnlV
c2FnZShtZW1vcnlPYmplY3RJbmZvKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX21lc3NhZ2VQb3J0
cyk7CisgICAgaW5mby5hZGRNZW1iZXIobV9kZXN0cnVjdGlvbk9ic2VydmVycyk7CisgICAgaW5m
by5hZGRNZW1iZXIobV9hY3RpdmVET01PYmplY3RzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3Rp
bWVvdXRzKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3BlbmRpbmdFeGNlcHRpb25zKTsKKyNpZiBF
TkFCTEUoQkxPQikKKyAgICBpbmZvLmFkZE1lbWJlcihtX3B1YmxpY1VSTE1hbmFnZXIpOworICAg
IGluZm8uYWRkTWVtYmVyKG1fZmlsZVRocmVhZCk7CisjZW5kaWYKK30KKwogU2NyaXB0RXhlY3V0
aW9uQ29udGV4dDo6VGFzazo6flRhc2soKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3Jp
cHRFeGVjdXRpb25Db250ZXh0LmgKaW5kZXggYjhkY2EyOTA2ZmQzOWQ0N2I5OGU0MWQ0NWJlZWJk
MzgzNDEwODM5OS4uYzg5ZDA5YWVjZDFhMGRiMTYxYWZlYzYyYjM0ZDNhMzcyOWE2ODBmMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0xNjEsNiAr
MTYxLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBFdmVudFF1ZXVlKiBldmVudFF1ZXVlKCkg
Y29uc3QgPSAwOwogCisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9i
amVjdEluZm8qKSBjb25zdCBPVkVSUklERTsKKwogcHJvdGVjdGVkOgogICAgIGNsYXNzIEFkZENv
bnNvbGVNZXNzYWdlVGFzayA6IHB1YmxpYyBUYXNrIHsKICAgICBwdWJsaWM6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TZWN1cml0eUNvbnRleHQuY3BwCmluZGV4IDdlOWY4MzkyMGJjMDcxYmFiNTEyMmE1NTc0
MGE1YmI3OGIxZjZmNDIuLjk5MjUyZjY3MmI2ZDYzODcyNTA3MWNhOTdmMmI4MzJmNDAyNzhhODIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TZWN1cml0eUNvbnRleHQuY3BwCkBAIC0zMCw2ICszMCw3IEBA
CiAjaW5jbHVkZSAiQ29udGVudFNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNl
cklkaW9tcy5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiV2ViQ29y
ZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEy
Miw0ICsxMjMsMTEgQEAgU2FuZGJveEZsYWdzIFNlY3VyaXR5Q29udGV4dDo6cGFyc2VTYW5kYm94
UG9saWN5KGNvbnN0IFN0cmluZyYgcG9saWN5KQogICAgIHJldHVybiBmbGFnczsKIH0KIAordm9p
ZCBTZWN1cml0eUNvbnRleHQ6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5
T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpET00pOworICAgIGluZm8uYWRk
TWVtYmVyKG1fc2VjdXJpdHlPcmlnaW4pOworICAgIGluZm8uYWRkTWVtYmVyKG1fY29udGVudFNl
Y3VyaXR5UG9saWN5KTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Nl
Y3VyaXR5Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlY3VyaXR5Q29udGV4dC5oCmlu
ZGV4IDljZjQ5ZDM5OGFhMDI4NDExMmIwMWVmYjIxMmFiMmM4ZTFlY2U4MmEuLjdjMDk3ZTdlOTRi
NDQwOTU5MmVhNDM0Y2ZhNThkNmVjZDdmODA1NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TZWN1cml0eUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VjdXJpdHlD
b250ZXh0LmgKQEAgLTczLDYgKzczLDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIFNhbmRib3hG
bGFncyBwYXJzZVNhbmRib3hQb2xpY3koY29uc3QgU3RyaW5nJiBwb2xpY3kpOwogCisgICAgdmly
dHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKwog
cHJvdGVjdGVkOgogICAgIFNlY3VyaXR5Q29udGV4dCgpOwogICAgIHZpcnR1YWwgflNlY3VyaXR5
Q29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1N
ZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1NZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IGQ4NzJmZjBkMTIwZjllMjllYTJkNDA0
NTc3ZjQxOGYxMGMzMjQzMzUuLmE0M2QzYTk5M2I2NjIxN2ExMDFkMGFjMjAzMDQ0MWFkZjc2ODYx
ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybU1l
bW9yeUluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTM2LDQgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogTWVtb3J5T2JqZWN0VHlwZSBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpJbWFnZSA9ICJQYWdl
LkltYWdlIjsKIE1lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBlczo6TG9hZGVyID0g
IlBhZ2UuTG9hZGVyIjsKIAorTWVtb3J5T2JqZWN0VHlwZSBQbGF0Zm9ybU1lbW9yeVR5cGVzOjpB
dWRpbyA9ICJQYWdlLkF1ZGlvIjsKK01lbW9yeU9iamVjdFR5cGUgUGxhdGZvcm1NZW1vcnlUeXBl
czo6QXVkaW9TaGFyZWREYXRhID0gIlBhZ2UuQXVkaW8uU2hhcmVkRGF0YSI7CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oCmluZGV4IDQ2YTg0YmJkODc1YjdmYzY1MGNmMDU2
OTI4MmI0Y2UyMGE0MGVlNzMuLjg5OGI5NmRiYTM0N2YwNTc4OTMwMjM1NTZkOWIzMTYyMDZkZmJi
NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1NZW1v
cnlJbnN0cnVtZW50YXRpb24uaApAQCAtNDMsNiArNDMsOSBAQCBjbGFzcyBQbGF0Zm9ybU1lbW9y
eVR5cGVzIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBJbWFnZTsKICAg
ICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBMb2FkZXI7CisKKyAgICBzdGF0aWMgTWVtb3J5T2Jq
ZWN0VHlwZSBBdWRpbzsKKyAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBBdWRpb1NoYXJlZERh
dGE7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9BdWRpb0FycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9BdWRpb0FycmF5LmgKaW5kZXggZDJkOTllMTgzMTM1YjkwYTdlOTU0ZGZhN2RhNmYz
MTc4OGI4NWNjNy4uMmE1MWIwMTVkOTNlODBjMjM2ZTFkNzU0MGI0MDQyNzRjN2M5ZjMzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vQXVkaW9BcnJheS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvQXJyYXkuaApAQCAtMTQyLDYgKzE0
MiwxMyBAQCBwdWJsaWM6CiAgICAgICAgIG1lbWNweSh0aGlzLT5kYXRhKCkgKyBzdGFydCwgc291
cmNlRGF0YSwgc2l6ZW9mKFQpICogKGVuZCAtIHN0YXJ0KSk7CiAgICAgfQogCisgICAgdGVtcGxh
dGU8dHlwZW5hbWUgTWVtb3J5T2JqZWN0SW5mbz4KKyAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdl
KE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CisgICAgeworICAgICAg
ICB0eXBlbmFtZSBNZW1vcnlPYmplY3RJbmZvOjpDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJ
bmZvLCB0aGlzKTsKKyAgICAgICAgaW5mby5hZGRSYXdCdWZmZXIobV9hbGxvY2F0aW9uLCBtX3Np
emUgKiBzaXplb2YoVCkpOworICAgIH0KKwogcHJpdmF0ZToKICAgICBzdGF0aWMgVCogYWxpZ25l
ZEFkZHJlc3MoVCogYWRkcmVzcywgaW50cHRyX3QgYWxpZ25tZW50KQogICAgIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmNwcAppbmRleCBhMWEwYTUwZGFjZWJjYjZk
OTAzNjQ0YzYwMmQxNDQ4YzgwMjliMjJiLi42M2M4N2RkYzkyOTYxY2FhMGU4NDY5NzViNjIwNWI5
MTExNzlmZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRG
cmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuY3Bw
CkBAIC0zNywxMCArMzcsMTUgQEAKICNlbmRpZgogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0Nv
bXBsZXguaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KIAorI2lmICFVU0VfQUNDRUxFUkFURV9GRlQgJiYgVVNFKFdFQkFVRElPX0ZGTVBFRykK
K3ZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgUkRGVENvbnRleHQqIGNvbnN0JiwgV1RGOjpN
ZW1vcnlPYmplY3RJbmZvKik7CisjZW5kaWYgLy8gVVNFKFdFQkFVRElPX0ZGTVBFRykKKwogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIEZGVEZyYW1lOjpkb1BhZGRlZEZGVChjb25zdCBmbG9h
dCogZGF0YSwgc2l6ZV90IGRhdGFTaXplKQpAQCAtMjQ4LDYgKzI1Myw0OSBAQCB2b2lkIEZGVEZy
YW1lOjphZGRDb25zdGFudEdyb3VwRGVsYXkoZG91YmxlIHNhbXBsZUZyYW1lRGVsYXkpCiAgICAg
fQogfQogCit2b2lkIEZGVEZyYW1lOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1l
bW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkF1ZGlvU2hhcmVkRGF0
YSk7CisjaWYgVVNFX0FDQ0VMRVJBVEVfRkZUCisgICAgaW5mby5hZGRNZW1iZXIobV9mcmFtZSk7
CisgICAgaW5mby5hZGRNZW1iZXIobV9yZWFsRGF0YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9p
bWFnRGF0YSk7CisjZWxzZSAvLyAhVVNFX0FDQ0VMRVJBVEVfRkZUCisKKyNpZiBVU0UoV0VCQVVE
SU9fTUtMKQorICAgIGluZm8uYWRkTWVtYmVyKG1faGFuZGxlKTsKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2NvbXBsZXhEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3JlYWxEYXRhKTsKKyAgICBp
bmZvLmFkZE1lbWJlcihtX2ltYWdEYXRhKTsKKyNlbmRpZiAvLyBVU0UoV0VCQVVESU9fTUtMKQor
CisjaWYgVVNFKFdFQkFVRElPX0ZGTVBFRykKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ZvcndhcmRD
b250ZXh0KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ludmVyc2VDb250ZXh0KTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2NvbXBsZXhEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3JlYWxEYXRh
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdEYXRhKTsKKyNlbmRpZiAvLyBVU0UoV0VCQVVE
SU9fRkZNUEVHKQorCisjaWYgVVNFKFdFQkFVRElPX0dTVFJFQU1FUikKKyAgICBpbmZvLmFkZE1l
bWJlcihtX2ZmdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9pbnZlcnNlRmZ0KTsKKyAgICBpbmZv
LmFkZE1lbWJlcihtX2NvbXBsZXhEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3JlYWxEYXRh
KTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdEYXRhKTsKKyNlbmRpZiAvLyBVU0UoV0VCQVVE
SU9fR1NUUkVBTUVSKQorCisjaWYgVVNFKFdFQkFVRElPX0lQUCkKKyAgICBpbmZvLmFkZE1lbWJl
cihtX2J1ZmZlcik7CisgICAgaW5mby5hZGRNZW1iZXIobV9ERlRTcGVjKTsKKyAgICBpbmZvLmFk
ZE1lbWJlcihtX2NvbXBsZXhEYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX3JlYWxEYXRhKTsK
KyAgICBpbmZvLmFkZE1lbWJlcihtX2ltYWdEYXRhKTsKKyNlbmRpZiAvLyBVU0UoV0VCQVVESU9f
SVBQKQorCisjZW5kaWYgLy8gIVVTRV9BQ0NFTEVSQVRFX0ZGVAorfQorCiAjaWZuZGVmIE5ERUJV
Rwogdm9pZCBGRlRGcmFtZTo6cHJpbnQoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L0ZGVEZyYW1lLmgKaW5kZXggM2ZiM2E3ODJmMzAwOTVmNTRlZTJlNGM1ZmY5YzMxNTc5YjU5MDBi
Zi4uNmMxNTM0OWQ5NzE4Njg5ZTM1MzkzZjhjMGU1ZGViMmE1ODIzYTQ0YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5oCkBAIC02NCw2ICs2NCw3IEBAIHN0cnVjdCBS
REZUQ29udGV4dDsKICNpbmNsdWRlIDxpcHBzLmg+CiAjZW5kaWYgLy8gVVNFKFdFQkFVRElPX0lQ
UCkKIAorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+
CkBAIC0xMDYsNiArMTA3LDggQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGZmdFNpemUoKSBjb25z
dCB7IHJldHVybiBtX0ZGVFNpemU7IH0KICAgICB1bnNpZ25lZCBsb2cyRkZUU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbG9nMkZGVFNpemU7IH0KIAorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fRkZU
U2l6ZTsKICAgICB1bnNpZ25lZCBtX2xvZzJGRlRTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5jcHAKaW5kZXggODU1ODY5ODAzMjZmNTIwN2FiYmIw
ZGQ0MjMyY2ZhMDMwODVjZjkyNy4uZTlmMmM3MzdjNzY5MjRkMjE1Y2Y4YjdlOGEyNDU4ZjJkZWM3
MDBiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFi
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2Uu
Y3BwCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiSFJURkRhdGFiYXNlLmgiCiAKICNpbmNs
dWRlICJIUlRGRWxldmF0aW9uLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTExOSw2ICsxMjEsMTIgQEAgdW5zaWduZWQgSFJU
RkRhdGFiYXNlOjppbmRleEZyb21FbGV2YXRpb25BbmdsZShkb3VibGUgZWxldmF0aW9uQW5nbGUp
CiAgICAgcmV0dXJuIGVsZXZhdGlvbkluZGV4OwogfQogCit2b2lkIEhSVEZEYXRhYmFzZTo6cmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykgY29uc3QK
K3sKKyAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlzLCBQbGF0
Zm9ybU1lbW9yeVR5cGVzOjpBdWRpb1NoYXJlZERhdGEpOworICAgIGluZm8uYWRkTWVtYmVyKG1f
ZWxldmF0aW9ucyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9IUlRGRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRh
YmFzZS5oCmluZGV4IDhhOTZhMDQ0NGJiNjRlODkzOTFjNjZjOTEzNzRlYTdiNWE0ZWZmMmMuLjg4
ZjMyOGE1OGM3MjA4ZTA0ZDZkNzcyMjNhMTk0NTViYjhiMTA0YWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZS5oCkBAIC0zMCwxNCArMzAsMTEgQEAKICNk
ZWZpbmUgSFJURkRhdGFiYXNlX2gKIAogI2luY2x1ZGUgIkhSVEZFbGV2YXRpb24uaCIKLSNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8
d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0jaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNjIs
NiArNTksOCBAQCBwdWJsaWM6CiAgICAgLy8gTnVtYmVyIG9mIGVsZXZhdGlvbnMgbG9hZGVkIGZy
b20gcmVzb3VyY2UuCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIE51bWJlck9mUmF3RWxldmF0
aW9uczsKIAorICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNv
bnN0OworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEhSVEZEYXRhYmFzZShmbG9hdCBzYW1wbGVS
YXRlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRh
dGFiYXNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRh
YmFzZUxvYWRlci5jcHAKaW5kZXggOGY5NmM5Njk0ZDJmNjU4MzQ2ODM5ZjU3ZGJlODJiY2ZjZGNh
YWE5Zi4uY2IxYjczOTQxYzZjNjA3YjRhMjE5MjJjOTI5OTdhNmRjN2Y1NzBhYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkRhdGFiYXNlTG9hZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2FkZXIuY3Bw
CkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSFJURkRhdGFiYXNlTG9hZGVyLmgiCiAKICNp
bmNsdWRlICJIUlRGRGF0YWJhc2UuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybU1lbW9yeUluc3RydW1l
bnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTEzMSw2ICsxMzIsMTIgQEAgSFJURkRhdGFiYXNlKiBIUlRGRGF0YWJhc2VMb2Fk
ZXI6OmRlZmF1bHRIUlRGRGF0YWJhc2UoKQogICAgIHJldHVybiBzX2xvYWRlci0+ZGF0YWJhc2Uo
KTsKIH0KIAordm9pZCBIUlRGRGF0YWJhc2VMb2FkZXI6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1vcnlUeXBlczo6QXVk
aW9TaGFyZWREYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2hydGZEYXRhYmFzZSk7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVESU8pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9IUlRGRGF0YWJhc2VMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5o
CmluZGV4IGU2NzcwN2U4MTRhMWRhYzdjYmVmNWJjZTY4ZTEwNzQzMDc5Y2VhODQuLmMxNmZiOWYy
ZWI3MDQ0MjhhYmJjNWQ4OGQzMDY4NTFkNWY4NTVhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZEYXRhYmFzZUxvYWRlci5oCkBAIC03MCw2ICs3MCw4IEBA
IHB1YmxpYzoKICAgICAvLyBpcyBzdGlsbCBhbGl2ZS4gIE90aGVyd2lzZSB0aGlzIHdpbGwgcmV0
dXJuIDAuCiAgICAgc3RhdGljIEhSVEZEYXRhYmFzZSogZGVmYXVsdEhSVEZEYXRhYmFzZSgpOwog
CisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CisK
IHByaXZhdGU6CiAgICAgLy8gQm90aCBjb25zdHJ1Y3RvciBhbmQgZGVzdHJ1Y3RvciBtdXN0IGJl
IGNhbGxlZCBmcm9tIHRoZSBtYWluIHRocmVhZC4KICAgICBleHBsaWNpdCBIUlRGRGF0YWJhc2VM
b2FkZXIoZmxvYXQgc2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9IUlRGRWxldmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0hSVEZFbGV2YXRpb24uY3BwCmluZGV4IGNmZTEzZWQ4NTMwNmI1MTcxMmFhMzA3NGI5Yzhk
YzM5MmNkNDY1MmQuLjdlZWQ4OTRkN2UwYzA3YTIyNDczZWJlYzZiODQ1ODY3MTI1ODk4ODQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uY3BwCkBA
IC0zNyw4ICszNywxMCBAQAogI2luY2x1ZGUgIkJpcXVhZC5oIgogI2luY2x1ZGUgIkZGVEZyYW1l
LmgiCiAjaW5jbHVkZSAiSFJURlBhbm5lci5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgPG1hdGguaD4K
KyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+CiAjaW5jbHVkZSA8
d3RmL093blB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtMzM3LDYgKzMzOSwxMyBA
QCB2b2lkIEhSVEZFbGV2YXRpb246OmdldEtlcm5lbHNGcm9tQXppbXV0aChkb3VibGUgYXppbXV0
aEJsZW5kLCB1bnNpZ25lZCBhemltdXRoSQogICAgIGZyYW1lRGVsYXlSID0gKDEuMCAtIGF6aW11
dGhCbGVuZCkgKiBmcmFtZURlbGF5UiArIGF6aW11dGhCbGVuZCAqIGZyYW1lRGVsYXkyUjsKIH0K
IAordm9pZCBIUlRGRWxldmF0aW9uOjpyZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAoreworICAgIE1lbW9yeUNsYXNzSW5mbyBpbmZvKG1l
bW9yeU9iamVjdEluZm8sIHRoaXMsIFBsYXRmb3JtTWVtb3J5VHlwZXM6OkF1ZGlvU2hhcmVkRGF0
YSk7CisgICAgaW5mby5hZGRNZW1iZXIobV9rZXJuZWxMaXN0TCk7CisgICAgaW5mby5hZGRNZW1i
ZXIobV9rZXJuZWxMaXN0Uik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShXRUJfQVVESU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9IUlRGRWxldmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9I
UlRGRWxldmF0aW9uLmgKaW5kZXggNDQ2ZTY2ZDBlNzY0ZDdjMmFlNjg4MWVkM2ZjMGUwMWI2NTc3
NWZlNS4uZGFlZTRhYWY2YzVjNTE4NGIzNDYxNDAwZjFjMjk4ZTBhOThjZDUxZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURkVsZXZhdGlvbi5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZFbGV2YXRpb24uaApAQCAtOTEsNiArOTEs
OSBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyB0cnVlIG9uIHN1Y2Nlc3MuCiAgICAgc3RhdGlj
IGJvb2wgY2FsY3VsYXRlU3ltbWV0cmljS2VybmVsc0ZvckF6aW11dGhFbGV2YXRpb24oaW50IGF6
aW11dGgsIGludCBlbGV2YXRpb24sIGZsb2F0IHNhbXBsZVJhdGUsIGNvbnN0IFN0cmluZyYgc3Vi
amVjdE5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUmVmUHRyPEhSVEZLZXJuZWw+JiBrZXJuZWxMLCBSZWZQdHI8SFJURktl
cm5lbD4mIGtlcm5lbFIpOworCisgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmpl
Y3RJbmZvKikgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgSFJURkVsZXZhdGlvbihQYXNzT3duUHRy
PEhSVEZLZXJuZWxMaXN0PiBrZXJuZWxMaXN0TCwgUGFzc093blB0cjxIUlRGS2VybmVsTGlzdD4g
a2VybmVsTGlzdFIsIGludCBlbGV2YXRpb24sIGZsb2F0IHNhbXBsZVJhdGUpCiAgICAgICAgIDog
bV9rZXJuZWxMaXN0TChrZXJuZWxMaXN0TCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vSFJURktlcm5lbC5jcHAKaW5kZXggMzkxZjkwNDAyMDA0NDIwM2YzYWEwZTQwNGMwMGNiYTUy
ZTkwZGE0ZC4uMzM3ZjUwZGU4NTI2MWU0ZmZhOGM1NjVhMjEyMTc2OTcxMzdkZjEzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURktlcm5lbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vSFJURktlcm5lbC5jcHAKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlICJCaXF1YWQuaCIKICNpbmNsdWRlICJGRlRGcmFtZS5oIgogI2luY2x1
ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgorI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogdXNpbmcgbmFtZXNwYWNl
IHN0ZDsKQEAgLTE0MSw2ICsxNDIsMTIgQEAgUGFzc1JlZlB0cjxIUlRGS2VybmVsPiBIUlRGS2Vy
bmVsOjpjcmVhdGVJbnRlcnBvbGF0ZWRLZXJuZWwoSFJURktlcm5lbCoga2VybmVsMSwKICAgICBy
ZXR1cm4gSFJURktlcm5lbDo6Y3JlYXRlKGludGVycG9sYXRlZEZyYW1lLnJlbGVhc2UoKSwgZnJh
bWVEZWxheSwgc2FtcGxlUmF0ZTEpOwogfQogCit2b2lkIEhSVEZLZXJuZWw6OnJlcG9ydE1lbW9y
eVVzYWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0Cit7CisgICAg
TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgUGxhdGZvcm1NZW1v
cnlUeXBlczo6QXVkaW9TaGFyZWREYXRhKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2ZmdEZyYW1l
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFdFQl9B
VURJTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJu
ZWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0hSVEZLZXJuZWwuaAppbmRleCAz
YThkYmZkZTJmMzI3ZGEzMTc1NjM1MmY5NTA3OWYxZDlhYWFkNzVmLi5lZDE4YzI4YTBiYzNjZGRl
MmJmODAwYTg4M2EyMzkwM2I0YWZiNmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9IUlRGS2VybmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vSFJURktlcm5lbC5oCkBAIC03NSw2ICs3NSw4IEBAIHB1YmxpYzoKICAgICAvLyBDb252ZXJ0
cyBiYWNrIGludG8gaW1wdWxzZS1yZXNwb25zZSBmb3JtLgogICAgIFBhc3NPd25QdHI8QXVkaW9D
aGFubmVsPiBjcmVhdGVJbXB1bHNlUmVzcG9uc2UoKTsKIAorICAgIHZvaWQgcmVwb3J0TWVtb3J5
VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OworCiBwcml2YXRlOgogICAgIC8vIE5vdGU6
IHRoaXMgaXMgZGVzdHJ1Y3RpdmUgb24gdGhlIHBhc3NlZCBpbiBBdWRpb0NoYW5uZWwuCiAgICAg
SFJURktlcm5lbChBdWRpb0NoYW5uZWwqLCBzaXplX3QgZmZ0U2l6ZSwgZmxvYXQgc2FtcGxlUmF0
ZSwgYm9vbCBiYXNzQm9vc3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vZmZtcGVnL0ZGVEZyYW1lRkZNUEVHLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2ZmbXBlZy9GRlRGcmFtZUZGTVBFRy5jcHAKaW5kZXggZDQ2MjRhNzBiNjYyM2JlMTVk
YmJjZTUzMTQ1ZGU5OThlYzhiZTU5OC4uYWMyNWMyMmI1MWIyMDg5NGU3NzdjMDM0ODI4MGY2NTc1
Y2YwMWI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZmZtcGVn
L0ZGVEZyYW1lRkZNUEVHLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9m
Zm1wZWcvRkZURnJhbWVGRk1QRUcuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJG
RlRGcmFtZS5oIgogCisjaW5jbHVkZSAiUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaCIK
ICNpbmNsdWRlICJWZWN0b3JNYXRoLmgiCiAKIGV4dGVybiAiQyIgewpAQCAtNDIsNiArNDMsNTYg
QEAgZXh0ZXJuICJDIiB7CiAKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCituYW1lc3Bh
Y2UgeworCitzdHJ1Y3QgRkZUQ29tcGxleFByb3h5IHsKKyAgICBpbnQxNl90IHJlOworICAgIGlu
dDE2X3QgaW07Cit9OworCitzdHJ1Y3QgRkZUQ29udGV4dFByb3h5IHsKKyAgICBpbnQgbmJpdHM7
CisgICAgaW50IGludmVyc2U7CisgICAgdWludDE2X3QqIHJldnRhYjsKKyAgICBGRlRDb21wbGV4
UHJveHkqIHRtcEJ1ZjsKKyAgICBpbnQgbWRjdFNpemU7CisgICAgaW50IG1kY3RCaXRzOworICAg
IHZvaWQqIHRjb3M7CisgICAgdm9pZCogdHNpbjsKKyAgICB2b2lkICgqZmZ0UGVybXV0ZSkoKTsK
KyAgICB2b2lkICgqZmZ0Q2FsYykoKTsKKyAgICB2b2lkICgqaW1kY3RDYWxjKSgpOworICAgIHZv
aWQgKCppbWRjdEhhbGYpKCk7CisgICAgdm9pZCAoKm1kY3RDYWxjKSgpOworICAgIHZvaWQgKCpt
ZGN0Q2FsY3cpKCk7CisgICAgaW50IGZmdFBlcm11dGF0aW9uOworICAgIGludCBtZGN0UGVybXV0
YXRpb247Cit9OworCitzdHJ1Y3QgUkRGVENvbnRleHRQcm94eSB7CisgICAgaW50IG5iaXRzOwor
ICAgIGludCBpbnZlcnNlOworICAgIGludCBzaWduQ29udmVudGlvbjsKKyAgICBjb25zdCB2b2lk
KiB0Y29zOworICAgIGNvbnN0IHZvaWQqIHRzaW47CisgICAgRkZUQ29udGV4dFByb3h5IGZmdDsK
KyAgICB2b2lkICgqcmRmdF9jYWxjKSgpOworfTsKKworfQorCit2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKGNvbnN0IHN0cnVjdCBSREZUQ29udGV4dCogY29uc3QmIG9iamVjdCwgV1RGOjpNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKQoreworICAgIGNvbnN0IFJERlRDb250ZXh0UHJv
eHkqIHByb3h5T2JqZWN0ID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBSREZUQ29udGV4dFByb3h5
Kj4ob2JqZWN0KTsKKworICAgIFdURjo6TWVtb3J5Q2xhc3NJbmZvIGluZm8obWVtb3J5T2JqZWN0
SW5mbywgcHJveHlPYmplY3QsIDAsIHNpemVvZihSREZUQ29udGV4dFByb3h5KSk7CisKKyAgICAv
LyBUaGUgc2l6ZSBvZiBidWZmZXJzIGlzIGNvdW50ZWQgdGhlIHNhbWUgd2F5IGFzIGl0IGlzIGNv
dW50ZWQgaW4gZmZfcmRmdF9pbml0ICYmIGZmX2ZmdF9pbml0LgorICAgIHNpemVfdCBjb3VudCA9
IDEgPDwgKHByb3h5T2JqZWN0LT5uYml0cyAtIDEpOworICAgIGluZm8uYWRkUmF3QnVmZmVyKHBy
b3h5T2JqZWN0LT5mZnQucmV2dGFiLCBjb3VudCAqIHNpemVvZih1aW50MTZfdCkpOworICAgIGlu
Zm8uYWRkUmF3QnVmZmVyKHByb3h5T2JqZWN0LT5mZnQudG1wQnVmLCBjb3VudCAqIHNpemVvZihG
RlRDb21wbGV4KSk7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgaW50IGtNYXhG
RlRQb3cyU2l6ZSA9IDI0OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBkMmQ3OGI5MzNiMTc1MmZjMGJhNWNiNDBhNDJmN2Q1
MzQ3NDA5NDAuLmIxNGMxMGM5YTAyODRmY2FmYzlhNzkwMWM1OTNiMWU4OTUyOWViNjYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMiBAQAorMjAxMi0xMS0wOSAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogTk1JIGFkZCBpbnN0cnVtZW50
YXRpb24gZm9yIFdlYkF1ZG8gcmVsYXRlZCBzdHVmZi4KKyAgICAgICAgVGhleSB1c2UgYWJvdXQg
MTZNYiBmb3Igc2hhcmVkIGRhdGEgb24gcGFnZXMgd2l0aCB3ZWJhdWRpby4KKyAgICAgICAgQXMg
ZXhhbXBsZSBBbmdyeSBCaXJkcyBhcHAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDE3MjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQbGFpbiB2YW5pbGxhIGluc3RydW1lbnRhdGlvbiBmb3IgYXVkaW8g
YW5kIHdlYmF1ZGlvIGNsYXNzZXMuCisgICAgICAgIEF1ZGlvQ29udGV4dCBpcyBhIGtpbmQgb2Yg
QWN0aXZlRE9NT2JqZWN0LiBJIGZvdW5kIHRoYXQgdGhlc2Ugb2JqZWN0cworICAgICAgICBhcmUg
YWNjZXNzaWJsZSB0aHJvdWdoIFNjcmlwdEV4ZWN1dHVpb25Db250ZXh0IGFuZCBTY3JpcHRFeGVj
dXRpb25Db250ZXh0CisgICAgICAgIGlzIGFuIGFuY2VzdG9yIG9mIERvY3VtZW50LiBEb2N1bWVu
dCBjbGFzcyB3YXMgaW5zdHJ1bWVudGVkIGVhcmxlci4KKyAgICAgICAgSSBpbnN0cnVtZW50ZWQg
QWN0aXZlRE9NT2JqZWN0LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0IGFuZCBvdGhlciBhbmNlc3Rv
cnMKKyAgICAgICAgYW5kIG5vdyBBdWRpb0NvbnRleHQgYW5kIG90aGVyIEFjdGl2ZURPTU9iamVj
dHMgYXJlIHJlYWNoZWFibGUgZnJvbSBEb2N1bWVudC4KKworICAgICAgICAqIGluc3BlY3Rvci1w
cm90b2NvbC9ubWktd2ViYXVkaW8tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNw
ZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLmh0bWw6IEFkZGVkLgorCiAyMDEyLTExLTExICBE
b25nd29vIEpvc2h1YSBJbSAgPGR3LmltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtDU1MzXSBQ
YXJzaW5nIHRoZSBwcm9wZXJ0eSwgdGV4dC1hbGlnbi1sYXN0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL25taS13ZWJhdWRpby1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ZGRmMmFmMDY4NTA4ZTkzYzFlMzIxZDNlNDE0MWIxMDI3MGY0MWVlCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL25taS13ZWJhdWRpby1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitQQVNTOiByZWNlaXZlZCBzaXplIGZvciB0eXBl
IFBhZ2UuQXVkaW8gaXMgbW9yZSB0aGFuIDE1MDAwMDAwCitQQVNTOiByZWNlaXZlZCBzaXplIGZv
ciB0eXBlIFBhZ2UuQXVkaW8uU2hhcmVkRGF0YSBpcyBtb3JlIHRoYW4gMTUwMDAwMDAKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL25taS13ZWJhdWRpby5odG1s
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL25taS13ZWJhdWRpby5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmQzMjMxMzlhMjI2OWRjZGI0NjA4NWQ2Nzg3NGM4NjM2ZjRmZjQ2NjgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvbm1pLXdlYmF1ZGlvLmh0
bWwKQEAgLTAsMCArMSw3OSBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9Ii4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNl
cy9wcm90b2NvbC10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisKK3ZhciBzYW1wbGVSYXRl
ID0gNDQxMDAuMDsKK3ZhciByZW5kZXJMZW5ndGhTZWNvbmRzID0gMC4xMjU7CisKK2Z1bmN0aW9u
IGNyZWF0ZVNpbldhdmVCdWZmZXIoY29udGV4dCwgbGVuZ3RoSW5TZWNvbmRzLCBmcmVxdWVuY3kp
Cit7CisgICAgdmFyIGF1ZGlvQnVmZmVyID0gY29udGV4dC5jcmVhdGVCdWZmZXIoMSwgbGVuZ3Ro
SW5TZWNvbmRzICogc2FtcGxlUmF0ZSwgc2FtcGxlUmF0ZSk7CisgICAgdmFyIGRhdGEgPSBhdWRp
b0J1ZmZlci5nZXRDaGFubmVsRGF0YSgwKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGF1ZGlv
QnVmZmVyLmxlbmd0aDsgKytpKQorICAgICAgICBkYXRhW2ldID0gTWF0aC5zaW4oZnJlcXVlbmN5
ICogMiAqIE1hdGguUEkgKiBpIC8gc2FtcGxlUmF0ZSk7CisgICAgcmV0dXJuIGF1ZGlvQnVmZmVy
OworfQorCitmdW5jdGlvbiBydW5QYWdlVGVzdCgpCit7CisgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisKKyAgICAvLyBDcmVhdGUgb2ZmbGluZSBhdWRpbyBjb250ZXh0LgorICAgIHZh
ciBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgxLCBzYW1wbGVSYXRlICogcmVuZGVy
TGVuZ3RoU2Vjb25kcywgc2FtcGxlUmF0ZSk7CisKKyAgICB2YXIgYnVmZmVyU291cmNlID0gY29u
dGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKTsKKyAgICBidWZmZXJTb3VyY2UuYnVmZmVyID0gY3Jl
YXRlU2luV2F2ZUJ1ZmZlcihjb250ZXh0LCByZW5kZXJMZW5ndGhTZWNvbmRzLCA4ODApOworICAg
IGJ1ZmZlclNvdXJjZS5jb25uZWN0KGNvbnRleHQuZGVzdGluYXRpb24pOworICAgIGNvbnRleHQu
b25jb21wbGV0ZSA9IHJ1blRlc3Q7CisgICAgY29udGV4dC5zdGFydFJlbmRlcmluZygpOworfQor
CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBmdW5jdGlvbiBzaXplRm9yVHlwZShlbnRyeSwgdHlw
ZU5hbWUpCisgICAgeworICAgICAgICBpZiAoZW50cnkubmFtZSA9PT0gdHlwZU5hbWUpCisgICAg
ICAgICAgICByZXR1cm4gZW50cnkuc2l6ZTsKKworICAgICAgICBpZiAoIWVudHJ5LmNoaWxkcmVu
KQorICAgICAgICAgICAgcmV0dXJuIC0xOworCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
ZW50cnkuY2hpbGRyZW4ubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBzaXplID0gc2l6
ZUZvclR5cGUoZW50cnkuY2hpbGRyZW5baV0sIHR5cGVOYW1lKTsKKyAgICAgICAgICAgIGlmIChz
aXplID4gLTEpCisgICAgICAgICAgICAgICAgcmV0dXJuIHNpemU7CisgICAgICAgIH0KKworICAg
ICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgZnVuY3Rpb24gcmVjZWl2ZWRTaXplTW9yZVRo
YW4obWVzc2FnZU9iamVjdCwgdHlwZU5hbWUsIGV4cGVjdGVkU2l6ZSkKKyAgICB7CisgICAgICAg
IHZhciBlbnRyeSA9IG1lc3NhZ2VPYmplY3RbInJlc3VsdCJdWyJkaXN0cmlidXRpb24iXTsKKyAg
ICAgICAgdmFyIHNpemUgPSBzaXplRm9yVHlwZShlbnRyeSwgdHlwZU5hbWUpOworICAgICAgICBp
ZiAoc2l6ZSA+IGV4cGVjdGVkU2l6ZSkKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJQ
QVNTOiByZWNlaXZlZCBzaXplIGZvciB0eXBlICIgKyB0eXBlTmFtZSArICIgaXMgbW9yZSB0aGFu
ICIgKyBleHBlY3RlZFNpemUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZygiRkFJTDogcmVjZWl2ZWQgc2l6ZSAiICsgc2l6ZSArICIgZm9yIHR5cGUgIiArIHR5
cGVOYW1lICsgIiBpcyBsZXNzIHRoYW4gIiArIGV4cGVjdGVkU2l6ZSk7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gaGFuZGxlTWVtb3J5U25hcHNob3QobWVzc2FnZU9iamVjdCkKKyAgICB7CisgICAg
ICAgIGlmICgiZXJyb3IiIGluIG1lc3NhZ2VPYmplY3QpCisgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmxvZyhtZXNzYWdlT2JqZWN0LmVycm9yLm1lc3NhZ2UpOworICAgICAgICBlbHNlIHsKKyAg
ICAgICAgICAgIHJlY2VpdmVkU2l6ZU1vcmVUaGFuKG1lc3NhZ2VPYmplY3QsICJQYWdlLkF1ZGlv
IiwgMTUwMDAwMDApOworICAgICAgICAgICAgcmVjZWl2ZWRTaXplTW9yZVRoYW4obWVzc2FnZU9i
amVjdCwgIlBhZ2UuQXVkaW8uU2hhcmVkRGF0YSIsIDE1MDAwMDAwKTsKKyAgICAgICAgfQorCisg
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgfQorCisgICAgSW5zcGVj
dG9yVGVzdC5zZW5kQ29tbWFuZCgiTWVtb3J5LmdldFByb2Nlc3NNZW1vcnlEaXN0cmlidXRpb24i
LCB7fSwgaGFuZGxlTWVtb3J5U25hcHNob3QpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbkxvYWQ9InJ1blBhZ2VUZXN0KCk7Ij4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="188309"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>