<?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>102510</bug_id>
          
          <creation_ts>2012-11-16 07:32:19 -0800</creation_ts>
          <short_desc>Memory instrumentation: extract MemoryObjectInfo declaration into a separate file</short_desc>
          <delta_ts>2012-11-23 06:48:00 -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>
          
          <blocked>103137</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yury Semikhatsky">yurys</reporter>
          <assigned_to name="Yury Semikhatsky">yurys</assigned_to>
          <cc>apavlov</cc>
    
    <cc>benjamin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>peter+ews</cc>
    
    <cc>pfeldman</cc>
    
    <cc>philn</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rakuco</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</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>769259</commentid>
    <comment_count>0</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-16 07:32:19 -0800</bug_when>
    <thetext>We are planning to store more information about instrumented object in MemoryObjectInfo. It means that it will depend on other WTF classes(strings, collections etc.) but we don&apos;t want to include declarations of those classes into MemoryInstrumentation.h The solution is to move MemoryObjectInfo into its own header and make MemoryInstrumentation.h depend only on its forward declaration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769306</commentid>
    <comment_count>1</comment_count>
      <attachid>174692</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-16 08:24:22 -0800</bug_when>
    <thetext>Created attachment 174692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769308</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-16 08:28:13 -0800</bug_when>
    <thetext>Attachment 174692 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WTF/ChangeLog&apos;, u&apos;Source/WTF/GNUmak...&quot; exit_code: 1
Source/WTF/wtf/MemoryInstrumentation.cpp:37:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769319</commentid>
    <comment_count>3</comment_count>
      <attachid>174692</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-16 08:41:06 -0800</bug_when>
    <thetext>Comment on attachment 174692
Patch

Attachment 174692 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14844943</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769346</commentid>
    <comment_count>4</comment_count>
      <attachid>174692</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-16 09:18:28 -0800</bug_when>
    <thetext>Comment on attachment 174692
Patch

Attachment 174692 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14861241</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769352</commentid>
    <comment_count>5</comment_count>
      <attachid>174692</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-16 09:23:50 -0800</bug_when>
    <thetext>Comment on attachment 174692
Patch

Attachment 174692 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14857700</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769827</commentid>
    <comment_count>6</comment_count>
      <attachid>174692</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-16 18:19:17 -0800</bug_when>
    <thetext>Comment on attachment 174692
Patch

Attachment 174692 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14872353</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>769862</commentid>
    <comment_count>7</comment_count>
      <attachid>174692</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-11-16 19:42:31 -0800</bug_when>
    <thetext>Comment on attachment 174692
Patch

Attachment 174692 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14876131</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770421</commentid>
    <comment_count>8</comment_count>
      <attachid>174904</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-19 00:24:19 -0800</bug_when>
    <thetext>Created attachment 174904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770425</commentid>
    <comment_count>9</comment_count>
      <attachid>174904</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-19 00:31:36 -0800</bug_when>
    <thetext>Comment on attachment 174904
Patch

Attachment 174904 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14907097</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770441</commentid>
    <comment_count>10</comment_count>
      <attachid>174904</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-19 00:58:19 -0800</bug_when>
    <thetext>Comment on attachment 174904
Patch

Attachment 174904 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14899093</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770456</commentid>
    <comment_count>11</comment_count>
      <attachid>174909</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-19 01:10:49 -0800</bug_when>
    <thetext>Created attachment 174909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770459</commentid>
    <comment_count>12</comment_count>
      <attachid>174909</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2012-11-19 01:16:12 -0800</bug_when>
    <thetext>Comment on attachment 174909
Patch

Attachment 174909 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14876856</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770465</commentid>
    <comment_count>13</comment_count>
      <attachid>174911</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-19 01:22:17 -0800</bug_when>
    <thetext>Created attachment 174911
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770489</commentid>
    <comment_count>14</comment_count>
      <attachid>174911</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-19 01:54:46 -0800</bug_when>
    <thetext>Comment on attachment 174911
Patch

Attachment 174911 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14905117</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770504</commentid>
    <comment_count>15</comment_count>
      <attachid>174921</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-19 02:09:04 -0800</bug_when>
    <thetext>Created attachment 174921
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770505</commentid>
    <comment_count>16</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-19 02:12:26 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; Created an attachment (id=174921) [details]
&gt; Patch

Added WTF_EXPORT_PRIVATE to methods whose implementation moved to MemoryInstrumentation.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770529</commentid>
    <comment_count>17</comment_count>
      <attachid>174921</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-19 02:54:07 -0800</bug_when>
    <thetext>Comment on attachment 174921
Patch

Attachment 174921 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14904158</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770682</commentid>
    <comment_count>18</comment_count>
      <attachid>174968</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-19 06:39:06 -0800</bug_when>
    <thetext>Created attachment 174968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770685</commentid>
    <comment_count>19</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-19 06:39:53 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; Created an attachment (id=174968) [details]
&gt; Patch

Added new symbols to JavaScriptCore.def to make patch compile on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>770768</commentid>
    <comment_count>20</comment_count>
      <attachid>174968</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-11-19 08:27:20 -0800</bug_when>
    <thetext>Comment on attachment 174968
Patch

Attachment 174968 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14899240</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773945</commentid>
    <comment_count>21</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-22 07:38:12 -0800</bug_when>
    <thetext>gns@, could you help us understand what we are doing wrong in GTK build system, looking at the GNUmakefiles at seems that we have entries for MemoryInstrumentation.cpp in same places as for WTFString.cpp still Tools/TestWebKitAPI/Tests/WTF/WTFString.cpp compiles fine while Tools/TestWebKitAPI/Tests/WTF/MemoryInstrumentationTest.cpp doesn&apos;t link?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774496</commentid>
    <comment_count>22</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-23 06:08:56 -0800</bug_when>
    <thetext>Committed r135603: &lt;http://trac.webkit.org/changeset/135603&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774515</commentid>
    <comment_count>23</comment_count>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-11-23 06:48:00 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; Committed r135603: &lt;http://trac.webkit.org/changeset/135603&gt;

I filed a bug on the Gtk build error https://bugs.webkit.org/show_bug.cgi?id=103137 and removed MemoryInstrumentationTest.cpp from  Tools/TestWebKitAPI/GNUmakefile.am until we resolve the issue.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174692</attachid>
            <date>2012-11-16 08:24:22 -0800</date>
            <delta_ts>2012-11-19 00:24:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102510-20121116202216.patch</filename>
            <type>text/plain</type>
            <size>34647</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0OTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGNjZTkyZTgxOWJmZjdmYmEzZmI2ZDQx
ZTA4NmNhYzE4OTM2MTRhYzMuLmNkOWFjMmMwOGZjYzFiOTQxNzZhZTVjZmM4NjNlZDU3ZjdiOTRi
OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTItMTEtMTYgIFl1cnkgU2VtaWtoYXRza3kgIDx5
dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWVtb3J5IGluc3RydW1lbnRhdGlvbjogZXh0
cmFjdCBNZW1vcnlPYmplY3RJbmZvIGRlY2xhcmF0aW9uIGludG8gYSBzZXBhcmF0ZSBmaWxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI1MTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCBNZW1v
cnlPYmplY3RJbmZvIGludG8gc2VwYXJhdGUgaGVhZGVyLiBNb3ZlZCBkZWZpbml0aW9uIG9mIE1l
bW9yeUluc3RydW1lbnRhdGlvbgorICAgICAgICBtZXRob2RzIHRoYXQgZGVwZW5kIG9uIE1lbW9y
eU9iamVjdEluZm8gZGVjbGFyYXRpb24gaW50byBNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwIHRv
CisgICAgICAgIG1ha2UgTWVtb3J5SW5zdHJ1bWVudGF0aW9uIHJlcXVpcmUgb25seSBmb3J3YXJk
IGRlY2xhcmF0aW9uIG9mIE1lbW9yeU9iamVjdEluZm8uCisKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIFdURi5neXBpOgorICAgICAgICAqIFdURi5wcm86CisgICAg
ICAgICogV1RGLnZjcHJvai9XVEYudmNwcm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDogQWRkZWQuCisgICAg
ICAgIChXVEYpOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246Ok1lbW9yeUlu
c3RydW1lbnRhdGlvbik6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6fk1l
bW9yeUluc3RydW1lbnRhdGlvbik6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlv
bjo6Z2V0T2JqZWN0VHlwZSk6IHRoaXMgbWV0aG9kIGFsbG93cyB0byBnZXQgb2JqZWN0IHR5cGUg
d2l0aG91dAorICAgICAgICBwdWxsaW5nIGluIE1lbW9yeU9iamVjdEluZm8uaCBhbmQgYWxsIGl0
cyBkZXBlbmRlbmNpZXMuCisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6Y2Fs
bFJlcG9ydE9iamVjdEluZm8pOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246
Okluc3RydW1lbnRlZFBvaW50ZXJCYXNlOjpJbnN0cnVtZW50ZWRQb2ludGVyQmFzZSk6CisgICAg
ICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U6
OnByb2Nlc3MpOgorICAgICAgICAoV1RGOjpNZW1vcnlDbGFzc0luZm86OmluaXQpOgorICAgICAg
ICAoV1RGOjpNZW1vcnlDbGFzc0luZm86OmFkZFJhd0J1ZmZlcik6CisgICAgICAgIChXVEY6Ok1l
bW9yeUNsYXNzSW5mbzo6YWRkUHJpdmF0ZUJ1ZmZlcik6CisgICAgICAgICogd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKToKKyAgICAg
ICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRSb290T2JqZWN0KToKKyAgICAgICAg
KEluc3RydW1lbnRlZFBvaW50ZXJCYXNlKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVu
dGF0aW9uOjpyZXBvcnRPYmplY3RNZW1vcnlVc2FnZSk6CisgICAgICAgIChJbnN0cnVtZW50ZWRQ
b2ludGVyKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3Qp
OiB3ZSBub3cgcGFzcyBvd25lcidzIE1lbW9yeU9iamVjdEluZm8gaW4gYWxsIHBsYWNlcworICAg
ICAgICB3aGVyZSB3ZSByZXBvcnQgb2JqZWN0cyBwb2ludGVkIGJ5IHRoZSBvd25lci4KKyAgICAg
ICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPd25pbmdUcmFpdHM6OmFkZE9iamVjdCk6
CisgICAgICAgIChXVEY6Ok1lbW9yeUNsYXNzSW5mbzo6TWVtb3J5Q2xhc3NJbmZvKToKKyAgICAg
ICAgKFdURjo6TWVtb3J5Q2xhc3NJbmZvOjphZGRNZW1iZXIpOgorICAgICAgICAoTWVtb3J5Q2xh
c3NJbmZvKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJ
bXBsKToKKyAgICAgICAgKFdURjo6OjpJbnN0cnVtZW50ZWRQb2ludGVyKToKKyAgICAgICAgKFdU
Rjo6OjpjYWxsUmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIHd0Zi9NZW1vcnlPYmplY3RJ
bmZvLmg6IEFkZGVkLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKE1lbW9yeU9iamVjdEluZm8p
OgorICAgICAgICAoV1RGOjpNZW1vcnlPYmplY3RJbmZvOjpNZW1vcnlPYmplY3RJbmZvKToKKyAg
ICAgICAgKFdURjo6TWVtb3J5T2JqZWN0SW5mbzo6b2JqZWN0VHlwZSk6CisgICAgICAgIChXVEY6
Ok1lbW9yeU9iamVjdEluZm86Om9iamVjdFNpemUpOgorICAgICAgICAoV1RGOjpNZW1vcnlPYmpl
Y3RJbmZvOjpyZXBvcnRlZFBvaW50ZXIpOgorICAgICAgICAoV1RGOjpNZW1vcnlPYmplY3RJbmZv
OjptZW1vcnlJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAoV1RGOjpNZW1vcnlPYmplY3RJbmZv
OjpyZXBvcnRPYmplY3RJbmZvKToKKwogMjAxMi0xMS0xNSAgWXVyeSBTZW1pa2hhdHNreSAgPHl1
cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBNZW1vcnkgaW5zdHJ1bWVudGF0aW9uOiBhZGQg
Y29kZSBmb3IgcmVwb3J0aW5nIHN0YWNrIHRyYWNlcyBvZiB1bmtub3duIGluc3RydW1lbnRlZCBv
YmplY3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggOWQ0ZjBkN2U1YjA3OWEyY2RhZjBjNTM1
MGE5MGFiYzJjNTk5OWNmZS4uZjlkYjhjMDJjMTQwODE5YWI2ZmUwZGEyODE1NGQ2ZWUzZTM2YTFl
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtODAsNiArODAsNyBAQCB3dGZfc291cmNlcyAr
PSBcCiAgICAgU291cmNlL1dURi93dGYvTWF0aEV4dHJhcy5oIFwKICAgICBTb3VyY2UvV1RGL3d0
Zi9NZWRpYVRpbWUuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWVkaWFUaW1lLmNwcCBcCisgICAg
U291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBcCiAgICAgU291cmNlL1dU
Ri93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lbW9y
eUluc3RydW1lbnRhdGlvbkFycmF5QnVmZmVyVmlldy5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oIFwKQEAgLTkwLDYgKzkxLDcgQEAg
d3RmX3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlv
blNlcXVlbmNlLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblN0
cmluZy5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3Iu
aCBcCisgICAgU291cmNlL1dURi93dGYvTWVtb3J5T2JqZWN0SW5mby5oIFwKICAgICBTb3VyY2Uv
V1RGL3d0Zi9NZXNzYWdlUXVldWUuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRv
ci5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3RmL01ldGFBbGxvY2F0b3IuaCBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL1dURi5neXBpIGIvU291cmNlL1dURi9XVEYuZ3lwaQppbmRleCBmNTQwNzdk
ODQwZjk5YTJjNjMxMjY4ZWE5MjdhNmM3NzAzMWU0NzUyLi4yOGViNTc2NjQ3NDUyZGVjYWY4ZDYw
ZTJmNjhmZDk3ZmIxNWM4ZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi5neXBpCisrKyBi
L1NvdXJjZS9XVEYvV1RGLmd5cGkKQEAgLTUwLDYgKzUwLDcgQEAKICAgICAgICAgICAgICd3dGYv
TUQ1LmgnLAogICAgICAgICAgICAgJ3d0Zi9NYWluVGhyZWFkLmgnLAogICAgICAgICAgICAgJ3d0
Zi9NYXRoRXh0cmFzLmgnLAorICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24u
Y3BwJywKICAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgnLAogICAgICAg
ICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25BcnJheUJ1ZmZlclZpZXcuaCcsCiAgICAg
ICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmgnLApAQCAt
NjAsNiArNjEsNyBAQAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25TZXF1
ZW5jZS5oJywKICAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmgn
LAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCcsCisgICAg
ICAgICAgICAnd3RmL01lbW9yeU9iamVjdEluZm8uaCcsCiAgICAgICAgICAgICAnd3RmL01lc3Nh
Z2VRdWV1ZS5oJywKICAgICAgICAgICAgICd3dGYvTm9uQ29weWluZ1NvcnQuaCcsCiAgICAgICAg
ICAgICAnd3RmL05vbmNvcHlhYmxlLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYucHJv
IGIvU291cmNlL1dURi9XVEYucHJvCmluZGV4IDhiZDMwM2IxYzA1OWJkM2I2NDA1ODY0M2ZmYmY3
YmMwZTBiNjZkNDcuLjgwY2ZmMmFiMzJiNjlkMDliMjY1MzM1YTkwNDYzZDlkYTdlMzhjODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnBybworKysgYi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAg
LTk3LDYgKzk3LDcgQEAgSEVBREVSUyArPSBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2Vx
dWVuY2UuaCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmggXAogICAgIE1lbW9y
eUluc3RydW1lbnRhdGlvblZlY3Rvci5oIFwKKyAgICBNZW1vcnlPYmplY3RJbmZvLmggXAogICAg
IE1lc3NhZ2VRdWV1ZS5oIFwKICAgICBNZXRhQWxsb2NhdG9yLmggXAogICAgIE1ldGFBbGxvY2F0
b3JIYW5kbGUuaCBcCkBAIC0yMTQsNiArMjE1LDcgQEAgU09VUkNFUyArPSBcCiAgICAgTUQ1LmNw
cCBcCiAgICAgTWFpblRocmVhZC5jcHAgXAogICAgIE1lZGlhVGltZS5jcHAgXAorICAgIE1lbW9y
eUluc3RydW1lbnRhdGlvbi5jcHAgXAogICAgIE1ldGFBbGxvY2F0b3IuY3BwIFwKICAgICBOdWxs
UHRyLmNwcCBcCiAgICAgTnVtYmVyT2ZDb3Jlcy5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJv
agppbmRleCBlNTQ3ZmMyMzJhZDY0OTQwYTdiMzhiOTZkYzAwZDQ4YzNjMGRmZjBlLi42ODYzM2Fm
NDJjNTg0NGEyZjI4ZjY1YjNhN2JmMDJkOThiNGU4NTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZj
cHJvagpAQCAtOTA1LDYgKzkwNSwxMCBAQAogCQkJPgogCQk8L0ZpbGU+CiAJCTxGaWxlCisJCSAg
ICAgICAgUmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCIKKwkJ
CT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cd3RmXE1l
bW9yeUluc3RydW1lbnRhdGlvbi5oIgogCQkJPgogCQk8L0ZpbGU+CkBAIC05NDEsNiArOTQ1LDEw
IEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZpbGUKKwkJICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4u
XHd0ZlxNZW1vcnlPYmplY3RJbmZvLmgiCisJCQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKIAkJCVJl
bGF0aXZlUGF0aD0iLi5cd3RmXE1lc3NhZ2VRdWV1ZS5oIgogCQkJPgogCQk8L0ZpbGU+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA4YWVlYmVkNjk5NWE0YTE3
NjdhMGVjZDMzMzRjOGNlY2I4MjgxNzUwLi5iMjc2MzFkMWZjZDM3YWI1ZTE3ZDBmZjMyYmIzOWFi
MjFiOTYzYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTI5Myw2ICsyOTMsOCBAQAogCQlDRDU0OTdBQzE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1l
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5
N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovOyB9OwogCQlDRDU0OTdBRDE1
ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU0OTdBQjE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1l
LmggKi87IH07CiAJCUVCOTVFMUYwMTYxQTcyNDEwMDg5QTJGNSAvKiBCeXRlT3JkZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCOTVFMUVGMTYxQTcy
NDEwMDg5QTJGNSAvKiBCeXRlT3JkZXIuaCAqLzsgfTsKKwkJRjMyMkNDREYxNjU2OTlGRjAwNDg1
MkREIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzIyQ0NERTE2NTY5OUZGMDA0ODUyREQgLyogTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmNwcCAqLzsgfTsKKwkJRjMyMkNDRTExNjU2OUExMDAwNDg1MkREIC8q
IE1lbW9yeU9iamVjdEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEYzMjJDQ0UwMTY1NjlBMTAwMDQ4NTJERCAvKiBNZW1vcnlPYmplY3RJbmZvLmgg
Ki87IH07CiAJCUYzNTI1RTJBMTYxNDlGRjQwMDI3OEJDMSAvKiBNZW1vcnlJbnN0cnVtZW50YXRp
b25MaXN0SGFzaFNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjM1MjVFMjkxNjE0OUZGNDAwMjc4QkMxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkxp
c3RIYXNoU2V0LmggKi87IH07CiAJCUYzNTI1RTQ2MTYxOUE0RUUwMDI3OEJDMSAvKiBNZW1vcnlJ
bnN0cnVtZW50YXRpb25IYXNoTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGMzUyNUU0NTE2MTlBNEVFMDAyNzhCQzEgLyogTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uSGFzaE1hcC5oICovOyB9OwogCQlGM0ZCQzcxRTE2MUFGN0JGMDBCQjRCRDQgLyogTWVt
b3J5SW5zdHJ1bWVudGF0aW9uSGFzaENvdW50ZWRTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzRkJDNzFEMTYxQUY3QkYwMEJCNEJENCAvKiBNZW1v
cnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oICovOyB9OwpAQCAtNTkzLDYgKzU5NSw4
IEBACiAJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFUaW1lLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVRpbWUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUI5NUUxRUYxNjFBNzI0MTAwODlBMkY1IC8qIEJ5dGVPcmRl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCeXRlT3JkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjMyMkNDREUxNjU2OTlGRjAwNDg1MkREIC8qIE1lbW9y
eUluc3RydW1lbnRhdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGMzIyQ0NFMDE2NTY5QTEwMDA0ODUyREQgLyogTWVtb3J5T2JqZWN0SW5mby5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlPYmplY3RJbmZvLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUYzNTI1RTI5MTYxNDlGRjQwMDI3OEJDMSAvKiBNZW1vcnlJbnN0
cnVtZW50YXRpb25MaXN0SGFzaFNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGMzUyNUU0NTE2MTlBNEVFMDAyNzhCQzEgLyogTWVtb3J5SW5zdHJ1bWVudGF0
aW9uSGFzaE1hcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlJbnN0
cnVtZW50YXRpb25IYXNoTWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzRkJD
NzFEMTYxQUY3QkYwMEJCNEJENCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNl
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlJbnN0cnVtZW50YXRp
b25IYXNoQ291bnRlZFNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzQwLDYg
Kzc0NCw3IEBACiAJCQkJQThBNDcyQ0IxNTFBODI1QjAwNDEyM0ZGIC8qIE1ENS5oICovLAogCQkJ
CUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovLAogCQkJCUNENTQ5
N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCAqLywKKwkJCQlGMzIyQ0NERTE2NTY5
OUZGMDA0ODUyREQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCAqLywKIAkJCQk0RjFEMTE1
MzE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggKi8sCiAJCQkJNEZE
ODU1NDYxNjEzM0UwRTAwQzVCNzA0IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkFycmF5QnVmZmVy
Vmlldy5oICovLAogCQkJCUYzRkJDNzFEMTYxQUY3QkYwMEJCNEJENCAvKiBNZW1vcnlJbnN0cnVt
ZW50YXRpb25IYXNoQ291bnRlZFNldC5oICovLApAQCAtNzUwLDYgKzc1NSw3IEBACiAJCQkJRjNG
QkM3MUYxNjFBRjdDRDAwQkI0QkQ0IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblNlcXVlbmNlLmgg
Ki8sCiAJCQkJNEZDRjI3RTAxNjE3MkU4NjAwQ0JGMDM3IC8qIE1lbW9yeUluc3RydW1lbnRhdGlv
blN0cmluZy5oICovLAogCQkJCTRGQ0I3MTA5MTYwQTFBMDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0
cnVtZW50YXRpb25WZWN0b3IuaCAqLywKKwkJCQlGMzIyQ0NFMDE2NTY5QTEwMDA0ODUyREQgLyog
TWVtb3J5T2JqZWN0SW5mby5oICovLAogCQkJCUE4QTQ3MkNDMTUxQTgyNUIwMDQxMjNGRiAvKiBN
ZXNzYWdlUXVldWUuaCAqLywKIAkJCQlBOEE0NzJDRDE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFs
bG9jYXRvci5jcHAgKi8sCiAJCQkJQThBNDcyQ0UxNTFBODI1QjAwNDEyM0ZGIC8qIE1ldGFBbGxv
Y2F0b3IuaCAqLywKQEAgLTExMDksNiArMTExNSw3IEBACiAJCQkJRjNGQkM3MjAxNjFBRjdDRDAw
QkI0QkQ0IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblNlcXVlbmNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0RkNGMjdFMTE2MTcyRTg2MDBDQkYwMzcgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uU3Ry
aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RkNCNzEwQTE2MEExQTA3MDA4NDI1RUMgLyogTWVt
b3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJCQlGMzIyQ0NFMTE2
NTY5QTEwMDA0ODUyREQgLyogTWVtb3J5T2JqZWN0SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QThBNDczRUIxNTFBODI1QjAwNDEyM0ZGIC8qIE1lc3NhZ2VRdWV1ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThBNDczRUQxNTFBODI1QjAwNDEyM0ZGIC8qIE1ldGFBbGxvY2F0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUE4QTQ3M0VFMTUxQTgyNUIwMDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9ySGFu
ZGxlLmggaW4gSGVhZGVycyAqLywKQEAgLTEzMzYsNiArMTM0Myw3IEBACiAJCQkJQThBNDczRTQx
NTFBODI1QjAwNDEyM0ZGIC8qIE1haW5UaHJlYWRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlB
OEE0NzNFOTE1MUE4MjVCMDA0MTIzRkYgLyogTUQ1LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNE
NTQ5N0FDMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJRjMyMkNDREYxNjU2OTlGRjAwNDg1MkREIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNFQzE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFsbG9j
YXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNGMjE1MUE4MjVCMDA0MTIzRkYgLyog
TnVsbFB0ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNGNDE1MUE4MjVCMDA0MTIzRkYg
LyogTnVtYmVyT2ZDb3Jlcy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5k
ZXggZGE4ZGVkOTNiZDQ2MDliZDQzOGZmOTQ5ZTY2Njk3OTQ1MjUwNjc0NS4uODBhMWNiMWRiMmYx
OGM2MTFlODE3NDBhYTFkNzk5ZGM2MTUxMTQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
Q01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTQ2
LDYgKzQ2LDE3IEBAIFNFVChXVEZfSEVBREVSUwogICAgIE1hbGxvY1pvbmVTdXBwb3J0LmgKICAg
ICBNYXRoRXh0cmFzLmgKICAgICBNZWRpYVRpbWUuaAorICAgIE1lbW9yeUluc3RydW1lbnRhdGlv
bi5oCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uQXJyYXlCdWZmZXJWaWV3LmgKKyAgICBNZW1v
cnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0
aW9uSGFzaE1hcC5oCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaFNldC5oCisgICAgTWVt
b3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaAorICAgIE1lbW9yeUluc3RydW1lbnRhdGlv
blBhcnNlZFVSTC5oCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2VxdWVuY2UuaAorICAgIE1l
bW9yeUluc3RydW1lbnRhdGlvblN0cmluZy5oCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVj
dG9yLmgKKyAgICBNZW1vcnlPYmplY3RJbmZvLmgnLAogICAgIE1lc3NhZ2VRdWV1ZS5oCiAgICAg
TWV0YUFsbG9jYXRvci5oCiAgICAgTWV0YUFsbG9jYXRvckhhbmRsZS5oCkBAIC0xNTcsNiArMTY4
LDcgQEAgU0VUKFdURl9TT1VSQ0VTCiAgICAgTWVkaWFUaW1lLmNwcAogICAgIE1ldGFBbGxvY2F0
b3IuY3BwCiAgICAgT1NSYW5kb21Tb3VyY2UuY3BwCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9u
LmNwcAogICAgIE51bWJlck9mQ29yZXMuY3BwCiAgICAgUkFNU2l6ZS5jcHAKICAgICBQYWdlQWxs
b2NhdGlvbkFsaWduZWQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0
cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iY2QyOTg2YWU1ZWMwYTUyZDk1M2JhOGI3NGRkNzMwY2I5YTk0YjExCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNw
cApAQCAtMCwwICsxLDExMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJNZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCIKKworI2luY2x1ZGUgPHd0Zi9NZW1vcnlPYmplY3RJbmZvLmg+CisK
KyNpZiBERUJVR19QT0lOVEVSX0lOU1RSVU1FTlRBVElPTgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRp
b25zLmg+CisjaW5jbHVkZSA8c3RkaW8uaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV1RGIHsKKwor
TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpNZW1vcnlJbnN0cnVtZW50YXRpb24oTWVtb3J5SW5zdHJ1
bWVudGF0aW9uQ2xpZW50KiBjbGllbnQpCisgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgLCBt
X3Jvb3RPYmplY3RJbmZvKGFkb3B0UHRyKG5ldyBNZW1vcnlPYmplY3RJbmZvKHRoaXMsIDApKSkK
K3sKK30KKworTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjp+TWVtb3J5SW5zdHJ1bWVudGF0aW9uKCkK
K3sKK30KKworTWVtb3J5T2JqZWN0VHlwZSBNZW1vcnlJbnN0cnVtZW50YXRpb246OmdldE9iamVj
dFR5cGUoTWVtb3J5T2JqZWN0SW5mbyogb2JqZWN0SW5mbykKK3sKKyAgICByZXR1cm4gb2JqZWN0
SW5mby0+b2JqZWN0VHlwZSgpOworfQorCit2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6Y2Fs
bFJlcG9ydE9iamVjdEluZm8oTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbywgY29u
c3Qgdm9pZCogcG9pbnRlciwgTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RUeXBlLCBzaXplX3Qgb2Jq
ZWN0U2l6ZSkKK3sKKyAgICBtZW1vcnlPYmplY3RJbmZvLT5yZXBvcnRPYmplY3RJbmZvKHBvaW50
ZXIsIG9iamVjdFR5cGUsIG9iamVjdFNpemUpOworfQorCitNZW1vcnlJbnN0cnVtZW50YXRpb246
Okluc3RydW1lbnRlZFBvaW50ZXJCYXNlOjpJbnN0cnVtZW50ZWRQb2ludGVyQmFzZShNZW1vcnlP
YmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKQorICAgIDogbV9vd25lck9iamVjdFR5cGUobWVt
b3J5T2JqZWN0SW5mby0+b2JqZWN0VHlwZSgpKQoreworI2lmIERFQlVHX1BPSU5URVJfSU5TVFJV
TUVOVEFUSU9OCisgICAgbV9jYWxsU3RhY2tTaXplID0gc19tYXhDYWxsU3RhY2tTaXplOworICAg
IFdURkdldEJhY2t0cmFjZShtX2NhbGxTdGFjaywgJm1fY2FsbFN0YWNrU2l6ZSk7CisjZW5kaWYK
K30KKwordm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBvaW50ZXJCYXNl
Ojpwcm9jZXNzKE1lbW9yeUluc3RydW1lbnRhdGlvbiogbWVtb3J5SW5zdHJ1bWVudGF0aW9uKQor
eworICAgIE1lbW9yeU9iamVjdEluZm8gbWVtb3J5T2JqZWN0SW5mbyhtZW1vcnlJbnN0cnVtZW50
YXRpb24sIG1fb3duZXJPYmplY3RUeXBlKTsKKyAgICBjb25zdCB2b2lkKiBvcmlnaW5hbFBvaW50
ZXIgPSBjYWxsUmVwb3J0TWVtb3J5VXNhZ2UoJm1lbW9yeU9iamVjdEluZm8pOworCisgICAgY29u
c3Qgdm9pZCogcG9pbnRlciA9IG1lbW9yeU9iamVjdEluZm8ucmVwb3J0ZWRQb2ludGVyKCk7Cisg
ICAgQVNTRVJUKHBvaW50ZXIpOworICAgIGlmIChwb2ludGVyICE9IG9yaWdpbmFsUG9pbnRlciAm
JiBtZW1vcnlJbnN0cnVtZW50YXRpb24tPnZpc2l0ZWQocG9pbnRlcikpCisgICAgICAgIHJldHVy
bjsKKyAgICBtZW1vcnlJbnN0cnVtZW50YXRpb24tPmNvdW50T2JqZWN0U2l6ZShwb2ludGVyLCBt
ZW1vcnlPYmplY3RJbmZvLm9iamVjdFR5cGUoKSwgbWVtb3J5T2JqZWN0SW5mby5vYmplY3RTaXpl
KCkpOworICAgIGlmICghbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5jaGVja0NvdW50ZWRPYmplY3Qo
cG9pbnRlcikpIHsKKyNpZiBERUJVR19QT0lOVEVSX0lOU1RSVU1FTlRBVElPTgorICAgICAgICBm
cHV0cygiVW5rbm93biBvYmplY3QgY291bnRlZDpcbiIsIHN0ZGVycik7CisgICAgICAgIFdURlBy
aW50QmFja3RyYWNlKG1fY2FsbFN0YWNrLCBtX2NhbGxTdGFja1NpemUpOworI2VuZGlmCisgICAg
fQorfQorCit2b2lkIE1lbW9yeUNsYXNzSW5mbzo6aW5pdChjb25zdCB2b2lkKiBwb2ludGVyLCBN
ZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUsIHNpemVfdCBhY3R1YWxTaXplKQoreworICAgIG1f
bWVtb3J5T2JqZWN0SW5mby0+cmVwb3J0T2JqZWN0SW5mbyhwb2ludGVyLCBvYmplY3RUeXBlLCBh
Y3R1YWxTaXplKTsKKyAgICBtX21lbW9yeUluc3RydW1lbnRhdGlvbiA9IG1fbWVtb3J5T2JqZWN0
SW5mby0+bWVtb3J5SW5zdHJ1bWVudGF0aW9uKCk7CisgICAgbV9vYmplY3RUeXBlID0gbV9tZW1v
cnlPYmplY3RJbmZvLT5vYmplY3RUeXBlKCk7Cit9CisKK3ZvaWQgTWVtb3J5Q2xhc3NJbmZvOjph
ZGRSYXdCdWZmZXIoY29uc3Qgdm9pZCogY29uc3QmIGJ1ZmZlciwgc2l6ZV90IHNpemUpCit7Cisg
ICAgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZFJhd0J1ZmZlcihidWZmZXIsIG1fb2JqZWN0
VHlwZSwgc2l6ZSk7Cit9CisKK3ZvaWQgTWVtb3J5Q2xhc3NJbmZvOjphZGRQcml2YXRlQnVmZmVy
KHNpemVfdCBzaXplLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSkKK3sKKyAgICBp
ZiAoIXNpemUpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIW93bmVyT2JqZWN0VHlwZSkKKyAg
ICAgICAgb3duZXJPYmplY3RUeXBlID0gbV9vYmplY3RUeXBlOworICAgIG1fbWVtb3J5SW5zdHJ1
bWVudGF0aW9uLT5jb3VudE9iamVjdFNpemUoMCwgb3duZXJPYmplY3RUeXBlLCBzaXplKTsKK30K
KworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5o
CmluZGV4IDFjMzgyNDNlNmIxNTU2MjhmMzkzOTY3ZWQwYjZhZjM2NmIyNWU5YzYuLjQ3ZjEwODkz
MTFjYWJhZDRjNTg2YzU1OWI1YTQ0OWI3ZTk3NDUxZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvbi5oCkBAIC0zNywxMSArMzcsNiBAQAogCiAjZGVmaW5lIERFQlVHX1BPSU5U
RVJfSU5TVFJVTUVOVEFUSU9OIDAKIAotI2lmIERFQlVHX1BPSU5URVJfSU5TVFJVTUVOVEFUSU9O
Ci0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDxzdGRpby5oPgotI2VuZGlm
Ci0KIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBNZW1vcnlDbGFzc0luZm87CkBAIC01NSw0MyAr
NTAsNiBAQCBlbnVtIE1lbW9yeU93bmluZ1R5cGUgewogICAgIGJ5UmVmZXJlbmNlCiB9OwogCi1j
bGFzcyBNZW1vcnlPYmplY3RJbmZvIHsKLXB1YmxpYzoKLSAgICBNZW1vcnlPYmplY3RJbmZvKE1l
bW9yeUluc3RydW1lbnRhdGlvbiogbWVtb3J5SW5zdHJ1bWVudGF0aW9uLCBNZW1vcnlPYmplY3RU
eXBlIG93bmVyT2JqZWN0VHlwZSkKLSAgICAgICAgOiBtX21lbW9yeUluc3RydW1lbnRhdGlvbiht
ZW1vcnlJbnN0cnVtZW50YXRpb24pCi0gICAgICAgICwgbV9vYmplY3RUeXBlKG93bmVyT2JqZWN0
VHlwZSkKLSAgICAgICAgLCBtX29iamVjdFNpemUoMCkKLSAgICAgICAgLCBtX3BvaW50ZXIoMCkK
LSAgICB7IH0KLQotICAgIHR5cGVkZWYgTWVtb3J5Q2xhc3NJbmZvIENsYXNzSW5mbzsKLQotICAg
IE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0VHlw
ZTsgfQotICAgIHNpemVfdCBvYmplY3RTaXplKCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RTaXpl
OyB9Ci0gICAgY29uc3Qgdm9pZCogcmVwb3J0ZWRQb2ludGVyKCkgY29uc3QgeyByZXR1cm4gbV9w
b2ludGVyOyB9Ci0KLSAgICBNZW1vcnlJbnN0cnVtZW50YXRpb24qIG1lbW9yeUluc3RydW1lbnRh
dGlvbigpIHsgcmV0dXJuIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uOyB9Ci0KLXByaXZhdGU6Ci0g
ICAgZnJpZW5kIGNsYXNzIE1lbW9yeUNsYXNzSW5mbzsKLSAgICBmcmllbmQgY2xhc3MgTWVtb3J5
SW5zdHJ1bWVudGF0aW9uOwotCi0gICAgdm9pZCByZXBvcnRPYmplY3RJbmZvKGNvbnN0IHZvaWQq
IHBvaW50ZXIsIE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0VHlwZSwgc2l6ZV90IG9iamVjdFNpemUp
Ci0gICAgewotICAgICAgICBpZiAoIW1fb2JqZWN0U2l6ZSkgewotICAgICAgICAgICAgbV9wb2lu
dGVyID0gcG9pbnRlcjsKLSAgICAgICAgICAgIG1fb2JqZWN0U2l6ZSA9IG9iamVjdFNpemU7Ci0g
ICAgICAgICAgICBpZiAob2JqZWN0VHlwZSkKLSAgICAgICAgICAgICAgICBtX29iamVjdFR5cGUg
PSBvYmplY3RUeXBlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgTWVtb3J5SW5zdHJ1bWVudGF0
aW9uKiBtX21lbW9yeUluc3RydW1lbnRhdGlvbjsKLSAgICBNZW1vcnlPYmplY3RUeXBlIG1fb2Jq
ZWN0VHlwZTsKLSAgICBzaXplX3QgbV9vYmplY3RTaXplOwotICAgIGNvbnN0IHZvaWQqIG1fcG9p
bnRlcjsKLX07Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
Y29uc3QgVCogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CiAKIGNsYXNzIE1lbW9yeUluc3Ry
dW1lbnRhdGlvbkNsaWVudCB7CkBAIC0xMDQsMjAgKzYyLDMyIEBAIHB1YmxpYzoKIAogY2xhc3Mg
TWVtb3J5SW5zdHJ1bWVudGF0aW9uIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBNZW1vcnlJbnN0
cnVtZW50YXRpb24oTWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xpZW50KiBjbGllbnQpIDogbV9jbGll
bnQoY2xpZW50KSB7IH0KLSAgICB2aXJ0dWFsIH5NZW1vcnlJbnN0cnVtZW50YXRpb24oKSB7IH0K
KyAgICBleHBsaWNpdCBNZW1vcnlJbnN0cnVtZW50YXRpb24oTWVtb3J5SW5zdHJ1bWVudGF0aW9u
Q2xpZW50Kik7CisgICAgdmlydHVhbCB+TWVtb3J5SW5zdHJ1bWVudGF0aW9uKCk7CiAKICAgICB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRSb290T2JqZWN0KGNvbnN0IFQmIHQsIE1lbW9y
eU9iamVjdFR5cGUgb2JqZWN0VHlwZSA9IDApCiAgICAgewotICAgICAgICBhZGRPYmplY3QodCwg
b2JqZWN0VHlwZSk7CisgICAgICAgIGFkZE9iamVjdCh0LCBtX3Jvb3RPYmplY3RJbmZvLmdldCgp
KTsKICAgICAgICAgcHJvY2Vzc0RlZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnMoKTsKICAgICB9
CiAKIHByb3RlY3RlZDoKICAgICBjbGFzcyBJbnN0cnVtZW50ZWRQb2ludGVyQmFzZSB7CiAgICAg
cHVibGljOgorICAgICAgICBJbnN0cnVtZW50ZWRQb2ludGVyQmFzZShNZW1vcnlPYmplY3RJbmZv
Kik7CiAgICAgICAgIHZpcnR1YWwgfkluc3RydW1lbnRlZFBvaW50ZXJCYXNlKCkgeyB9Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzKE1lbW9yeUluc3RydW1lbnRhdGlvbiopID0gMDsKKyAg
ICAgICAgdm9pZCBwcm9jZXNzKE1lbW9yeUluc3RydW1lbnRhdGlvbiopOworCisgICAgcHJvdGVj
dGVkOgorICAgICAgICB2aXJ0dWFsIGNvbnN0IHZvaWQqIGNhbGxSZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKikgPSAwOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgY29uc3QgTWVt
b3J5T2JqZWN0VHlwZSBtX293bmVyT2JqZWN0VHlwZTsKKyNpZiBERUJVR19QT0lOVEVSX0lOU1RS
VU1FTlRBVElPTgorICAgICAgICBzdGF0aWMgY29uc3QgaW50IHNfbWF4Q2FsbFN0YWNrU2l6ZSA9
IDMyOworICAgICAgICB2b2lkKiBtX2NhbGxTdGFja1tzX21heENhbGxTdGFja1NpemVdOworICAg
ICAgICBpbnQgbV9jYWxsU3RhY2tTaXplOworI2VuZGlmCiAgICAgfTsKIAogcHJpdmF0ZToKQEAg
LTEyOCw2ICs5OCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRlZmVySW5zdHJ1bWVu
dGVkUG9pbnRlcihQYXNzT3duUHRyPEluc3RydW1lbnRlZFBvaW50ZXJCYXNlPikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBwcm9jZXNzRGVmZXJyZWRJbnN0cnVtZW50ZWRQb2ludGVycygpID0gMDsK
IAorICAgIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIGdldE9iamVjdFR5cGUoTWVtb3J5T2JqZWN0
SW5mbyopOworCiAgICAgZnJpZW5kIGNsYXNzIE1lbW9yeUNsYXNzSW5mbzsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPiBmcmllbmQgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBUKiBjb25z
dCYsIE1lbW9yeU9iamVjdEluZm8qKTsKIApAQCAtMTQ4LDI5ICsxMjAsMjUgQEAgcHJpdmF0ZToK
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBUeXBlPgogICAgIHN0YXRpYyB2b2lk
IHJlcG9ydE9iamVjdE1lbW9yeVVzYWdlKGNvbnN0IFQqIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9i
amVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8sIC4uLikKICAgICB7Ci0gICAgICAgIG1lbW9yeU9i
amVjdEluZm8tPnJlcG9ydE9iamVjdEluZm8ob2JqZWN0LCAwLCBzaXplb2YoVCkpOworICAgICAg
ICBjYWxsUmVwb3J0T2JqZWN0SW5mbyhtZW1vcnlPYmplY3RJbmZvLCBvYmplY3QsIDAsIHNpemVv
ZihUKSk7CiAgICAgfQorICAgIHN0YXRpYyB2b2lkIGNhbGxSZXBvcnRPYmplY3RJbmZvKE1lbW9y
eU9iamVjdEluZm8qLCBjb25zdCB2b2lkKiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlLCBzaXpl
X3Qgb2JqZWN0U2l6ZSk7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIHN0YXRpYyB2
b2lkIGNvdW50Tm90SW5zdHJ1bWVudGVkT2JqZWN0KGNvbnN0IFQqIGNvbnN0JiwgTWVtb3J5T2Jq
ZWN0SW5mbyopOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgSW5zdHJ1bWVudGVk
UG9pbnRlciA6IHB1YmxpYyBJbnN0cnVtZW50ZWRQb2ludGVyQmFzZSB7CiAgICAgcHVibGljOgot
ICAgICAgICBJbnN0cnVtZW50ZWRQb2ludGVyKGNvbnN0IFQqIHBvaW50ZXIsIE1lbW9yeU9iamVj
dFR5cGUgb3duZXJPYmplY3RUeXBlKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3MoTWVt
b3J5SW5zdHJ1bWVudGF0aW9uKikgT1ZFUlJJREU7CisgICAgICAgIEluc3RydW1lbnRlZFBvaW50
ZXIoY29uc3QgVCogcG9pbnRlciwgTWVtb3J5T2JqZWN0SW5mbyogb3duZXJPYmplY3RJbmZvKTsK
KworICAgIHByb3RlY3RlZDoKKyAgICAgICAgdmlydHVhbCBjb25zdCB2b2lkKiBjYWxsUmVwb3J0
TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIE9WRVJSSURFOwogCiAgICAgcHJpdmF0ZToK
ICAgICAgICAgY29uc3QgVCogbV9wb2ludGVyOwotICAgICAgICBjb25zdCBNZW1vcnlPYmplY3RU
eXBlIG1fb3duZXJPYmplY3RUeXBlOwotCi0jaWYgREVCVUdfUE9JTlRFUl9JTlNUUlVNRU5UQVRJ
T04KLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBzX21heENhbGxTdGFja1NpemUgPSAzMjsKLSAg
ICAgICAgdm9pZCogbV9jYWxsU3RhY2tbc19tYXhDYWxsU3RhY2tTaXplXTsKLSAgICAgICAgaW50
IG1fY2FsbFN0YWNrU2l6ZTsKLSNlbmRpZgogICAgIH07CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiB2b2lkIGFkZE9iamVjdChjb25zdCBUJiB0LCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2Jq
ZWN0VHlwZSkgeyBPd25pbmdUcmFpdHM8VD46OmFkZE9iamVjdCh0aGlzLCB0LCBvd25lck9iamVj
dFR5cGUpOyB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBhZGRPYmplY3QoY29uc3Qg
VCYgdCwgTWVtb3J5T2JqZWN0SW5mbyogb3duZXJPYmplY3RJbmZvKSB7IE93bmluZ1RyYWl0czxU
Pjo6YWRkT2JqZWN0KHRoaXMsIHQsIG93bmVyT2JqZWN0SW5mbyk7IH0KICAgICB2b2lkIGFkZFJh
d0J1ZmZlcihjb25zdCB2b2lkKiBjb25zdCYgYnVmZmVyLCBNZW1vcnlPYmplY3RUeXBlIG93bmVy
T2JqZWN0VHlwZSwgc2l6ZV90IHNpemUpCiAgICAgewogICAgICAgICBpZiAoIWJ1ZmZlciB8fCB2
aXNpdGVkKGJ1ZmZlcikpCkBAIC0xODAsNDkgKzE0OCw0OCBAQCBwcml2YXRlOgogCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4KICAgICBzdHJ1Y3QgT3duaW5nVHJhaXRzIHsgLy8gRGVmYXVsdCBi
eVJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbi4KLSAgICAgICAgc3RhdGljIHZvaWQgYWRkT2JqZWN0
KE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uLCBjb25zdCBUJiB0LCBNZW1v
cnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSkKKyAgICAgICAgc3RhdGljIHZvaWQgYWRkT2Jq
ZWN0KE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uLCBjb25zdCBUJiB0LCBN
ZW1vcnlPYmplY3RJbmZvKiBvd25lck9iamVjdEluZm8pCiAgICAgICAgIHsKLSAgICAgICAgICAg
IGluc3RydW1lbnRhdGlvbi0+YWRkT2JqZWN0SW1wbCgmdCwgb3duZXJPYmplY3RUeXBlLCBieVJl
ZmVyZW5jZSk7CisgICAgICAgICAgICBpbnN0cnVtZW50YXRpb24tPmFkZE9iamVjdEltcGwoJnQs
IG93bmVyT2JqZWN0SW5mbywgYnlSZWZlcmVuY2UpOwogICAgICAgICB9CiAgICAgfTsKIAogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgc3RydWN0IE93bmluZ1RyYWl0czxUKj4geyAvLyBD
dXN0b20gYnlQb2ludGVyIGltcGxlbWVudGF0aW9uLgotICAgICAgICBzdGF0aWMgdm9pZCBhZGRP
YmplY3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFQqIGNv
bnN0JiB0LCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSkKKyAgICAgICAgc3RhdGlj
IHZvaWQgYWRkT2JqZWN0KE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0aW9uLCBj
b25zdCBUKiBjb25zdCYgdCwgTWVtb3J5T2JqZWN0SW5mbyogb3duZXJPYmplY3RJbmZvKQogICAg
ICAgICB7Ci0gICAgICAgICAgICBpbnN0cnVtZW50YXRpb24tPmFkZE9iamVjdEltcGwodCwgb3du
ZXJPYmplY3RUeXBlLCBieVBvaW50ZXIpOworICAgICAgICAgICAgaW5zdHJ1bWVudGF0aW9uLT5h
ZGRPYmplY3RJbXBsKHQsIG93bmVyT2JqZWN0SW5mbywgYnlQb2ludGVyKTsKICAgICAgICAgfQog
ICAgIH07CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGFkZE9iamVjdEltcGwoY29u
c3QgVCogY29uc3QmLCBNZW1vcnlPYmplY3RUeXBlLCBNZW1vcnlPd25pbmdUeXBlKTsKLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGFkZE9iamVjdEltcGwoY29uc3QgT3duUHRyPFQ+KiBj
b25zdCYsIE1lbW9yeU9iamVjdFR5cGUsIE1lbW9yeU93bmluZ1R5cGUpOwotICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHZvaWQgYWRkT2JqZWN0SW1wbChjb25zdCBSZWZQdHI8VD4qIGNvbnN0Jiwg
TWVtb3J5T2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlwZSk7CisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4gdm9pZCBhZGRPYmplY3RJbXBsKGNvbnN0IFQqIGNvbnN0JiwgTWVtb3J5T2JqZWN0SW5m
byosIE1lbW9yeU93bmluZ1R5cGUpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgYWRk
T2JqZWN0SW1wbChjb25zdCBPd25QdHI8VD4qIGNvbnN0JiwgTWVtb3J5T2JqZWN0SW5mbyosIE1l
bW9yeU93bmluZ1R5cGUpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgYWRkT2JqZWN0
SW1wbChjb25zdCBSZWZQdHI8VD4qIGNvbnN0JiwgTWVtb3J5T2JqZWN0SW5mbyosIE1lbW9yeU93
bmluZ1R5cGUpOwogCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xpZW50KiBtX2NsaWVudDsK
KyAgICBPd25QdHI8TWVtb3J5T2JqZWN0SW5mbz4gbV9yb290T2JqZWN0SW5mbzsKIH07CiAKIGNs
YXNzIE1lbW9yeUNsYXNzSW5mbyB7CiBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4K
LSAgICBNZW1vcnlDbGFzc0luZm8oTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbywg
Y29uc3QgVCogcG9pbnRlciwgTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RUeXBlID0gMCwgc2l6ZV90
IGFjdHVhbFNpemUgPSAwKQorICAgIE1lbW9yeUNsYXNzSW5mbyhNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvLCBjb25zdCBUKiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlIG9iamVj
dFR5cGUgPSAwLCBzaXplX3QgYWN0dWFsU2l6ZSA9IHNpemVvZihUKSkKICAgICAgICAgOiBtX21l
bW9yeU9iamVjdEluZm8obWVtb3J5T2JqZWN0SW5mbykKLSAgICAgICAgLCBtX21lbW9yeUluc3Ry
dW1lbnRhdGlvbihtZW1vcnlPYmplY3RJbmZvLT5tZW1vcnlJbnN0cnVtZW50YXRpb24oKSkKKyAg
ICAgICAgLCBtX21lbW9yeUluc3RydW1lbnRhdGlvbigwKQorICAgICAgICAsIG1fb2JqZWN0VHlw
ZSgwKQogICAgIHsKLSAgICAgICAgbV9tZW1vcnlPYmplY3RJbmZvLT5yZXBvcnRPYmplY3RJbmZv
KHBvaW50ZXIsIG9iamVjdFR5cGUsIGFjdHVhbFNpemUgPyBhY3R1YWxTaXplIDogc2l6ZW9mKFQp
KTsKLSAgICAgICAgbV9vYmplY3RUeXBlID0gbWVtb3J5T2JqZWN0SW5mby0+b2JqZWN0VHlwZSgp
OworICAgICAgICBpbml0KHBvaW50ZXIsIG9iamVjdFR5cGUsIGFjdHVhbFNpemUpOwogICAgIH0K
IAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIE0+IHZvaWQgYWRkTWVtYmVyKGNvbnN0IE0mIG1lbWJl
cikgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkT2JqZWN0KG1lbWJlciwgbV9vYmplY3RU
eXBlKTsgfQotICAgIHZvaWQgYWRkUmF3QnVmZmVyKGNvbnN0IHZvaWQqIGNvbnN0JiBidWZmZXIs
IHNpemVfdCBzaXplKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRSYXdCdWZmZXIoYnVm
ZmVyLCBtX29iamVjdFR5cGUsIHNpemUpOyB9Ci0gICAgdm9pZCBhZGRQcml2YXRlQnVmZmVyKHNp
emVfdCBzaXplLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSA9IDApCi0gICAgewot
ICAgICAgICBpZiAoc2l6ZSkKLSAgICAgICAgICAgIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5j
b3VudE9iamVjdFNpemUoMCwgb3duZXJPYmplY3RUeXBlID8gb3duZXJPYmplY3RUeXBlIDogbV9v
YmplY3RUeXBlLCBzaXplKTsKLSAgICB9CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgTT4gdm9pZCBh
ZGRNZW1iZXIoY29uc3QgTSYgbWVtYmVyKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRP
YmplY3QobWVtYmVyLCBtX21lbW9yeU9iamVjdEluZm8pOyB9CisgICAgdm9pZCBhZGRSYXdCdWZm
ZXIoY29uc3Qgdm9pZCogY29uc3QmIGJ1ZmZlciwgc2l6ZV90KTsKKyAgICB2b2lkIGFkZFByaXZh
dGVCdWZmZXIoc2l6ZV90LCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSA9IDApOwog
CiAgICAgdm9pZCBhZGRXZWFrUG9pbnRlcih2b2lkKikgeyB9CiAKIHByaXZhdGU6CisgICAgdm9p
ZCBpbml0KGNvbnN0IHZvaWQqIHBvaW50ZXIsIE1lbW9yeU9iamVjdFR5cGUsIHNpemVfdCBhY3R1
YWxTaXplKTsKKwogICAgIE1lbW9yeU9iamVjdEluZm8qIG1fbWVtb3J5T2JqZWN0SW5mbzsKICAg
ICBNZW1vcnlJbnN0cnVtZW50YXRpb24qIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uOwogICAgIE1l
bW9yeU9iamVjdFR5cGUgbV9vYmplY3RUeXBlOwpAQCAtMjM1LDYyICsyMDIsNDUgQEAgdm9pZCBy
ZXBvcnRNZW1vcnlVc2FnZShjb25zdCBUKiBjb25zdCYgb2JqZWN0LCBNZW1vcnlPYmplY3RJbmZv
KiBtZW1vcnlPYmplY3RJbmYKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLXZvaWQgTWVtb3J5
SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJbXBsKGNvbnN0IFQqIGNvbnN0JiBvYmplY3QsIE1l
bW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBNZW1vcnlPd25pbmdUeXBlIG93bmluZ1R5
cGUpCit2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0SW1wbChjb25zdCBUKiBj
b25zdCYgb2JqZWN0LCBNZW1vcnlPYmplY3RJbmZvKiBvd25lck9iamVjdEluZm8sIE1lbW9yeU93
bmluZ1R5cGUgb3duaW5nVHlwZSkKIHsKLSAgICBpZiAob3duaW5nVHlwZSA9PSBieVJlZmVyZW5j
ZSkgewotICAgICAgICBNZW1vcnlPYmplY3RJbmZvIG1lbW9yeU9iamVjdEluZm8odGhpcywgb3du
ZXJPYmplY3RUeXBlKTsKLSAgICAgICAgcmVwb3J0TWVtb3J5VXNhZ2Uob2JqZWN0LCAmbWVtb3J5
T2JqZWN0SW5mbyk7Ci0gICAgfSBlbHNlIHsKKyAgICBpZiAob3duaW5nVHlwZSA9PSBieVJlZmVy
ZW5jZSkKKyAgICAgICAgcmVwb3J0TWVtb3J5VXNhZ2Uob2JqZWN0LCBvd25lck9iamVjdEluZm8p
OworICAgIGVsc2UgewogICAgICAgICBpZiAoIW9iamVjdCB8fCB2aXNpdGVkKG9iamVjdCkpCiAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGRlZmVySW5zdHJ1bWVudGVkUG9pbnRlcihhZG9w
dFB0cihuZXcgSW5zdHJ1bWVudGVkUG9pbnRlcjxUPihvYmplY3QsIG93bmVyT2JqZWN0VHlwZSkp
KTsKKyAgICAgICAgZGVmZXJJbnN0cnVtZW50ZWRQb2ludGVyKGFkb3B0UHRyKG5ldyBJbnN0cnVt
ZW50ZWRQb2ludGVyPFQ+KG9iamVjdCwgb3duZXJPYmplY3RJbmZvKSkpOwogICAgIH0KIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgVD4KLXZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmpl
Y3RJbXBsKGNvbnN0IE93blB0cjxUPiogY29uc3QmIG9iamVjdCwgTWVtb3J5T2JqZWN0VHlwZSBv
d25lck9iamVjdFR5cGUsIE1lbW9yeU93bmluZ1R5cGUgb3duaW5nVHlwZSkKK3ZvaWQgTWVtb3J5
SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJbXBsKGNvbnN0IE93blB0cjxUPiogY29uc3QmIG9i
amVjdCwgTWVtb3J5T2JqZWN0SW5mbyogb3duZXJPYmplY3RJbmZvLCBNZW1vcnlPd25pbmdUeXBl
IG93bmluZ1R5cGUpCiB7CiAgICAgaWYgKG93bmluZ1R5cGUgPT0gYnlQb2ludGVyICYmICF2aXNp
dGVkKG9iamVjdCkpCi0gICAgICAgIGNvdW50T2JqZWN0U2l6ZShvYmplY3QsIG93bmVyT2JqZWN0
VHlwZSwgc2l6ZW9mKCpvYmplY3QpKTsKLSAgICBhZGRPYmplY3RJbXBsKG9iamVjdC0+Z2V0KCks
IG93bmVyT2JqZWN0VHlwZSwgYnlQb2ludGVyKTsKKyAgICAgICAgY291bnRPYmplY3RTaXplKG9i
amVjdCwgZ2V0T2JqZWN0VHlwZShvd25lck9iamVjdEluZm8pLCBzaXplb2YoKm9iamVjdCkpOwor
ICAgIGFkZE9iamVjdEltcGwob2JqZWN0LT5nZXQoKSwgb3duZXJPYmplY3RJbmZvLCBieVBvaW50
ZXIpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRp
b246OmFkZE9iamVjdEltcGwoY29uc3QgUmVmUHRyPFQ+KiBjb25zdCYgb2JqZWN0LCBNZW1vcnlP
YmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlwZSBvd25pbmdUeXBlKQor
dm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZE9iamVjdEltcGwoY29uc3QgUmVmUHRyPFQ+
KiBjb25zdCYgb2JqZWN0LCBNZW1vcnlPYmplY3RJbmZvKiBvd25lck9iamVjdEluZm8sIE1lbW9y
eU93bmluZ1R5cGUgb3duaW5nVHlwZSkKIHsKICAgICBpZiAob3duaW5nVHlwZSA9PSBieVBvaW50
ZXIgJiYgIXZpc2l0ZWQob2JqZWN0KSkKLSAgICAgICAgY291bnRPYmplY3RTaXplKG9iamVjdCwg
b3duZXJPYmplY3RUeXBlLCBzaXplb2YoKm9iamVjdCkpOwotICAgIGFkZE9iamVjdEltcGwob2Jq
ZWN0LT5nZXQoKSwgb3duZXJPYmplY3RUeXBlLCBieVBvaW50ZXIpOworICAgICAgICBjb3VudE9i
amVjdFNpemUob2JqZWN0LCBnZXRPYmplY3RUeXBlKG93bmVyT2JqZWN0SW5mbyksIHNpemVvZigq
b2JqZWN0KSk7CisgICAgYWRkT2JqZWN0SW1wbChvYmplY3QtPmdldCgpLCBvd25lck9iamVjdElu
Zm8sIGJ5UG9pbnRlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1NZW1vcnlJbnN0cnVt
ZW50YXRpb246Okluc3RydW1lbnRlZFBvaW50ZXI8VD46Okluc3RydW1lbnRlZFBvaW50ZXIoY29u
c3QgVCogcG9pbnRlciwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUpCi0gICAgOiBt
X3BvaW50ZXIocG9pbnRlcikKLSAgICAsIG1fb3duZXJPYmplY3RUeXBlKG93bmVyT2JqZWN0VHlw
ZSkKK01lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVudGVkUG9pbnRlcjxUPjo6SW5zdHJ1
bWVudGVkUG9pbnRlcihjb25zdCBUKiBwb2ludGVyLCBNZW1vcnlPYmplY3RJbmZvKiBvd25lck9i
amVjdEluZm8pCisgICAgOiBJbnN0cnVtZW50ZWRQb2ludGVyQmFzZShvd25lck9iamVjdEluZm8p
CisgICAgLCBtX3BvaW50ZXIocG9pbnRlcikKIHsKLSNpZiBERUJVR19QT0lOVEVSX0lOU1RSVU1F
TlRBVElPTgotICAgIG1fY2FsbFN0YWNrU2l6ZSA9IHNfbWF4Q2FsbFN0YWNrU2l6ZTsKLSAgICBX
VEZHZXRCYWNrdHJhY2UobV9jYWxsU3RhY2ssICZtX2NhbGxTdGFja1NpemUpOwotI2VuZGlmCiB9
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5z
dHJ1bWVudGVkUG9pbnRlcjxUPjo6cHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50YXRpb24qIG1lbW9y
eUluc3RydW1lbnRhdGlvbikKK2NvbnN0IHZvaWQqIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5z
dHJ1bWVudGVkUG9pbnRlcjxUPjo6Y2FsbFJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qIG1lbW9yeU9iamVjdEluZm8pCiB7Ci0gICAgTWVtb3J5T2JqZWN0SW5mbyBtZW1vcnlPYmpl
Y3RJbmZvKG1lbW9yeUluc3RydW1lbnRhdGlvbiwgbV9vd25lck9iamVjdFR5cGUpOwotICAgIHJl
cG9ydE1lbW9yeVVzYWdlKG1fcG9pbnRlciwgJm1lbW9yeU9iamVjdEluZm8pOwotCi0gICAgY29u
c3Qgdm9pZCogcG9pbnRlciA9IG1lbW9yeU9iamVjdEluZm8ucmVwb3J0ZWRQb2ludGVyKCk7Ci0g
ICAgQVNTRVJUKHBvaW50ZXIpOwotICAgIGlmIChwb2ludGVyICE9IG1fcG9pbnRlciAmJiBtZW1v
cnlJbnN0cnVtZW50YXRpb24tPnZpc2l0ZWQocG9pbnRlcikpCi0gICAgICAgIHJldHVybjsKLSAg
ICBtZW1vcnlJbnN0cnVtZW50YXRpb24tPmNvdW50T2JqZWN0U2l6ZShwb2ludGVyLCBtZW1vcnlP
YmplY3RJbmZvLm9iamVjdFR5cGUoKSwgbWVtb3J5T2JqZWN0SW5mby5vYmplY3RTaXplKCkpOwot
ICAgIGlmICghbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5jaGVja0NvdW50ZWRPYmplY3QocG9pbnRl
cikpIHsKLSNpZiBERUJVR19QT0lOVEVSX0lOU1RSVU1FTlRBVElPTgotICAgICAgICBmcHV0cygi
VW5rbm93biBvYmplY3QgY291bnRlZDpcbiIsIHN0ZGVycik7Ci0gICAgICAgIFdURlByaW50QmFj
a3RyYWNlKG1fY2FsbFN0YWNrLCBtX2NhbGxTdGFja1NpemUpOwotI2VuZGlmCi0gICAgfQorICAg
IHJlcG9ydE1lbW9yeVVzYWdlKG1fcG9pbnRlciwgbWVtb3J5T2JqZWN0SW5mbyk7CisgICAgcmV0
dXJuIG1fcG9pbnRlcjsKIH0KIAogLy8gTGluayB0aW1lIGd1YXJkIGZvciBjbGFzc2VzIHdpdGgg
ZXh0ZXJuYWwgbWVtb3J5IGluc3RydW1lbnRhdGlvbi4KQEAgLTMyOSw2ICsyNzksNCBAQCB2b2lk
IHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFVSTFN0cmluZyogY29uc3QmLCBNZW1vcnlPYmplY3RJ
bmZvKik7CiAKIH0gLy8gbmFtZXNwYWNlIFdURgogCi0jdW5kZWYgREVCVUdfUE9JTlRFUl9JTlNU
UlVNRU5UQVRJT04KLQogI2VuZGlmIC8vICFkZWZpbmVkKE1lbW9yeUluc3RydW1lbnRhdGlvbl9o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5T2JqZWN0SW5mby5oIGIvU291cmNl
L1dURi93dGYvTWVtb3J5T2JqZWN0SW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjN2ZlNmM4MzYyYzFhNGYx
NTI0YmQ1YTM5Mjg3NWE4NmFiZDgyMzUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9NZW1vcnlPYmplY3RJbmZvLmgKQEAgLTAsMCArMSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTWVtb3J5T2JqZWN0
SW5mb19oCisjZGVmaW5lIE1lbW9yeU9iamVjdEluZm9faAorCituYW1lc3BhY2UgV1RGIHsKKwor
Y2xhc3MgTWVtb3J5Q2xhc3NJbmZvOworY2xhc3MgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOworCit0
eXBlZGVmIGNvbnN0IGNoYXIqIE1lbW9yeU9iamVjdFR5cGU7CisKK2NsYXNzIE1lbW9yeU9iamVj
dEluZm8geworcHVibGljOgorICAgIE1lbW9yeU9iamVjdEluZm8oTWVtb3J5SW5zdHJ1bWVudGF0
aW9uKiBtZW1vcnlJbnN0cnVtZW50YXRpb24sIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RU
eXBlKQorICAgICAgICA6IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uKG1lbW9yeUluc3RydW1lbnRh
dGlvbikKKyAgICAgICAgLCBtX29iamVjdFR5cGUob3duZXJPYmplY3RUeXBlKQorICAgICAgICAs
IG1fb2JqZWN0U2l6ZSgwKQorICAgICAgICAsIG1fcG9pbnRlcigwKQorICAgIHsgfQorCisgICAg
dHlwZWRlZiBNZW1vcnlDbGFzc0luZm8gQ2xhc3NJbmZvOworCisgICAgTWVtb3J5T2JqZWN0VHlw
ZSBvYmplY3RUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RUeXBlOyB9CisgICAgc2l6ZV90
IG9iamVjdFNpemUoKSBjb25zdCB7IHJldHVybiBtX29iamVjdFNpemU7IH0KKyAgICBjb25zdCB2
b2lkKiByZXBvcnRlZFBvaW50ZXIoKSBjb25zdCB7IHJldHVybiBtX3BvaW50ZXI7IH0KKworICAg
IE1lbW9yeUluc3RydW1lbnRhdGlvbiogbWVtb3J5SW5zdHJ1bWVudGF0aW9uKCkgeyByZXR1cm4g
bV9tZW1vcnlJbnN0cnVtZW50YXRpb247IH0KKworcHJpdmF0ZToKKyAgICBmcmllbmQgY2xhc3Mg
TWVtb3J5Q2xhc3NJbmZvOworICAgIGZyaWVuZCBjbGFzcyBNZW1vcnlJbnN0cnVtZW50YXRpb247
CisKKyAgICB2b2lkIHJlcG9ydE9iamVjdEluZm8oY29uc3Qgdm9pZCogcG9pbnRlciwgTWVtb3J5
T2JqZWN0VHlwZSBvYmplY3RUeXBlLCBzaXplX3Qgb2JqZWN0U2l6ZSkKKyAgICB7CisgICAgICAg
IGlmICghbV9vYmplY3RTaXplKSB7CisgICAgICAgICAgICBtX3BvaW50ZXIgPSBwb2ludGVyOwor
ICAgICAgICAgICAgbV9vYmplY3RTaXplID0gb2JqZWN0U2l6ZTsKKyAgICAgICAgICAgIGlmIChv
YmplY3RUeXBlKQorICAgICAgICAgICAgICAgIG1fb2JqZWN0VHlwZSA9IG9iamVjdFR5cGU7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb24qIG1fbWVtb3J5SW5z
dHJ1bWVudGF0aW9uOworICAgIE1lbW9yeU9iamVjdFR5cGUgbV9vYmplY3RUeXBlOworICAgIHNp
emVfdCBtX29iamVjdFNpemU7CisgICAgY29uc3Qgdm9pZCogbV9wb2ludGVyOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCisKKyNlbmRpZiAvLyAhZGVmaW5lZChNZW1vcnlPYmplY3RJbmZvX2gp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHAKaW5kZXggNjNjODdk
ZGM5Mjk2MWNhYTBlODQ2OTc1YjYyMDViOTExMTc5ZmZjOS4uZWVlNDVkZThhYjNkMmMwMmIxZTI2
NzIzYzM2NGIwZGY5MGRkNWM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vRkZURnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZG
VEZyYW1lLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXguaD4KICNpbmNsdWRlIDx3dGYv
TWF0aEV4dHJhcy5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlPYmplY3RJbmZvLmg+CiAjaW5jbHVk
ZSA8d3RmL093blB0ci5oPgogCiAjaWYgIVVTRV9BQ0NFTEVSQVRFX0ZGVCAmJiBVU0UoV0VCQVVE
SU9fRkZNUEVHKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHAKaW5kZXggZDdmNDE4MTZhZDAzYjhiMWViMDhhZmZiOTgyMmJhYzhlMjA2MDUwYi4uNmVj
YWEwNDE3YTgwYWJmMDEyNmVjMTU2NWMyMGZiZDI2ZjAxMjNhNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAj
ZW5kaWYKICNpbmNsdWRlICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVk
ZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9NZW1v
cnlPYmplY3RJbmZvLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUg
PGFsZ29yaXRobT4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IGIxYmE1OTg2YTQ5MjJmZGM1NTM1
YjFhNGRiNDc1ZWMyNzI0ZWFmN2QuLjQzNGUzY2NmMDgzNzkwZThjYjVjNTMyYzJkYmI0YjFlZDRh
MTM4YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJS
ZW5kZXJTdHlsZUNvbnN0YW50cy5oIgogI2luY2x1ZGUgIlNoYWRvd0RhdGEuaCIKICNpbmNsdWRl
ICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSA8d3RmL01lbW9yeU9i
amVjdEluZm8uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5j
cHAKaW5kZXggMWM2Y2IxODc5YjJkOTVjODU4MGE5OTE4ZTNiZGZhNjM3ODI3MzZjNC4uZWQ5ZTlh
MmVmZDQ5ZjBkMjQ0ZjhiY2EyMjYyNWVjNmE0ZTNmZGE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oPgog
I2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KKyNpbmNsdWRlIDx3
dGYvTWVtb3J5T2JqZWN0SW5mby5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174904</attachid>
            <date>2012-11-19 00:24:19 -0800</date>
            <delta_ts>2012-11-19 01:10:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102510-20121119122209.patch</filename>
            <type>text/plain</type>
            <size>35256</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJjMzBjY2U2Y2U4OGRiM2M0ZWY0Yzcz
NTlkNDE0OTA4MGFmNDFhMTcuLmNkNWYxZTg0NDhhNjg5YTQ1NDJlZmU0NTQwMDEwYzc1ZWViYTI5
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTItMTEtMTYgIFl1cnkgU2VtaWtoYXRza3kgIDx5
dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWVtb3J5IGluc3RydW1lbnRhdGlvbjogZXh0
cmFjdCBNZW1vcnlPYmplY3RJbmZvIGRlY2xhcmF0aW9uIGludG8gYSBzZXBhcmF0ZSBmaWxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI1MTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCBNZW1v
cnlPYmplY3RJbmZvIGludG8gc2VwYXJhdGUgaGVhZGVyLiBNb3ZlZCBkZWZpbml0aW9uIG9mIE1l
bW9yeUluc3RydW1lbnRhdGlvbgorICAgICAgICBtZXRob2RzIHRoYXQgZGVwZW5kIG9uIE1lbW9y
eU9iamVjdEluZm8gZGVjbGFyYXRpb24gaW50byBNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwIHRv
CisgICAgICAgIG1ha2UgTWVtb3J5SW5zdHJ1bWVudGF0aW9uIHJlcXVpcmUgb25seSBmb3J3YXJk
IGRlY2xhcmF0aW9uIG9mIE1lbW9yeU9iamVjdEluZm8uCisKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIFdURi5neXBpOgorICAgICAgICAqIFdURi5wcm86CisgICAg
ICAgICogV1RGLnZjcHJvai9XVEYudmNwcm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDogQWRkZWQuCisgICAg
ICAgIChXVEYpOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246Ok1lbW9yeUlu
c3RydW1lbnRhdGlvbik6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6fk1l
bW9yeUluc3RydW1lbnRhdGlvbik6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlv
bjo6Z2V0T2JqZWN0VHlwZSk6IHRoaXMgbWV0aG9kIGFsbG93cyB0byBnZXQgb2JqZWN0IHR5cGUg
d2l0aG91dAorICAgICAgICBwdWxsaW5nIGluIE1lbW9yeU9iamVjdEluZm8uaCBhbmQgYWxsIGl0
cyBkZXBlbmRlbmNpZXMuCisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6Y2Fs
bFJlcG9ydE9iamVjdEluZm8pOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246
Okluc3RydW1lbnRlZFBvaW50ZXJCYXNlOjpJbnN0cnVtZW50ZWRQb2ludGVyQmFzZSk6CisgICAg
ICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U6
OnByb2Nlc3MpOgorICAgICAgICAoV1RGOjpNZW1vcnlDbGFzc0luZm86OmluaXQpOgorICAgICAg
ICAoV1RGOjpNZW1vcnlDbGFzc0luZm86OmFkZFJhd0J1ZmZlcik6CisgICAgICAgIChXVEY6Ok1l
bW9yeUNsYXNzSW5mbzo6YWRkUHJpdmF0ZUJ1ZmZlcik6CisgICAgICAgICogd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKToKKyAgICAg
ICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRSb290T2JqZWN0KToKKyAgICAgICAg
KEluc3RydW1lbnRlZFBvaW50ZXJCYXNlKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVu
dGF0aW9uOjpyZXBvcnRPYmplY3RNZW1vcnlVc2FnZSk6CisgICAgICAgIChJbnN0cnVtZW50ZWRQ
b2ludGVyKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3Qp
OiB3ZSBub3cgcGFzcyBvd25lcidzIE1lbW9yeU9iamVjdEluZm8gaW4gYWxsIHBsYWNlcworICAg
ICAgICB3aGVyZSB3ZSByZXBvcnQgb2JqZWN0cyBwb2ludGVkIGJ5IHRoZSBvd25lci4KKyAgICAg
ICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPd25pbmdUcmFpdHM6OmFkZE9iamVjdCk6
CisgICAgICAgIChXVEY6Ok1lbW9yeUNsYXNzSW5mbzo6TWVtb3J5Q2xhc3NJbmZvKToKKyAgICAg
ICAgKFdURjo6TWVtb3J5Q2xhc3NJbmZvOjphZGRNZW1iZXIpOgorICAgICAgICAoTWVtb3J5Q2xh
c3NJbmZvKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJ
bXBsKToKKyAgICAgICAgKFdURjo6OjpJbnN0cnVtZW50ZWRQb2ludGVyKToKKyAgICAgICAgKFdU
Rjo6OjpjYWxsUmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIHd0Zi9NZW1vcnlPYmplY3RJ
bmZvLmg6IEFkZGVkLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKE1lbW9yeU9iamVjdEluZm8p
OgorICAgICAgICAoV1RGOjpNZW1vcnlPYmplY3RJbmZvOjpNZW1vcnlPYmplY3RJbmZvKToKKyAg
ICAgICAgKFdURjo6TWVtb3J5T2JqZWN0SW5mbzo6b2JqZWN0VHlwZSk6CisgICAgICAgIChXVEY6
Ok1lbW9yeU9iamVjdEluZm86Om9iamVjdFNpemUpOgorICAgICAgICAoV1RGOjpNZW1vcnlPYmpl
Y3RJbmZvOjpyZXBvcnRlZFBvaW50ZXIpOgorICAgICAgICAoV1RGOjpNZW1vcnlPYmplY3RJbmZv
OjptZW1vcnlJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAoV1RGOjpNZW1vcnlPYmplY3RJbmZv
OjpyZXBvcnRPYmplY3RJbmZvKToKKwogMjAxMi0xMS0xOCAgTGFzemxvIEdvbWJvcyAgPGwuZ29t
Ym9zQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFJlbW92ZSBub24tZXhpc3RlbnQgZGlyZWN0b3Jp
ZXMgZnJvbSB0aGUgbWFrZSBzeXN0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZp
bGUubGlzdC5hbSBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5ZDRmMGQ3
ZTViMDc5YTJjZGFmMGM1MzUwYTkwYWJjMmM1OTk5Y2ZlLi5mOWRiOGMwMmMxNDA4MTlhYjZmZTBk
YTI4MTU0ZDZlZTNlMzZhMWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxp
c3QuYW0KKysrIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC04MCw2ICs4MCw3
IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmggXAog
ICAgIFNvdXJjZS9XVEYvd3RmL01lZGlhVGltZS5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZWRp
YVRpbWUuY3BwIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uY3Bw
IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBcCiAgICAgU291
cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uQXJyYXlCdWZmZXJWaWV3LmggXAogICAg
IFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmggXApA
QCAtOTAsNiArOTEsNyBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uU2VxdWVuY2UuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvblZlY3Rvci5oIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlPYmplY3RJbmZv
LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oIFwKICAgICBTb3VyY2UvV1RG
L3d0Zi9NZXRhQWxsb2NhdG9yLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRv
ci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3VyY2UvV1RGL1dURi5n
eXBpCmluZGV4IGY1NDA3N2Q4NDBmOTlhMmM2MzEyNjhlYTkyN2E2Yzc3MDMxZTQ3NTIuLjI4ZWI1
NzY2NDc0NTJkZWNhZjhkNjBlMmY2OGZkOTdmYjE1YzhmOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvV1RGLmd5cGkKKysrIGIvU291cmNlL1dURi9XVEYuZ3lwaQpAQCAtNTAsNiArNTAsNyBAQAog
ICAgICAgICAgICAgJ3d0Zi9NRDUuaCcsCiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQuaCcs
CiAgICAgICAgICAgICAnd3RmL01hdGhFeHRyYXMuaCcsCisgICAgICAgICAgICAnd3RmL01lbW9y
eUluc3RydW1lbnRhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50
YXRpb24uaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkFycmF5QnVm
ZmVyVmlldy5oJywKICAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaENv
dW50ZWRTZXQuaCcsCkBAIC02MCw2ICs2MSw3IEBACiAgICAgICAgICAgICAnd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvblNlcXVlbmNlLmgnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25TdHJpbmcuaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlv
blZlY3Rvci5oJywKKyAgICAgICAgICAgICd3dGYvTWVtb3J5T2JqZWN0SW5mby5oJywKICAgICAg
ICAgICAgICd3dGYvTWVzc2FnZVF1ZXVlLmgnLAogICAgICAgICAgICAgJ3d0Zi9Ob25Db3B5aW5n
U29ydC5oJywKICAgICAgICAgICAgICd3dGYvTm9uY29weWFibGUuaCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8KaW5kZXggOGJkMzAzYjFjMDU5
YmQzYjY0MDU4NjQzZmZiZjdiYzBlMGI2NmQ0Ny4uODBjZmYyYWIzMmI2OWQwOWIyNjUzMzVhOTA0
NjNkOWRhN2UzOGM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYucHJvCisrKyBiL1NvdXJj
ZS9XVEYvV1RGLnBybwpAQCAtOTcsNiArOTcsNyBAQCBIRUFERVJTICs9IFwKICAgICBNZW1vcnlJ
bnN0cnVtZW50YXRpb25TZXF1ZW5jZS5oIFwKICAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25TdHJp
bmcuaCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggXAorICAgIE1lbW9yeU9i
amVjdEluZm8uaCBcCiAgICAgTWVzc2FnZVF1ZXVlLmggXAogICAgIE1ldGFBbGxvY2F0b3IuaCBc
CiAgICAgTWV0YUFsbG9jYXRvckhhbmRsZS5oIFwKQEAgLTIxNCw2ICsyMTUsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBNRDUuY3BwIFwKICAgICBNYWluVGhyZWFkLmNwcCBcCiAgICAgTWVkaWFUaW1l
LmNwcCBcCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBcCiAgICAgTWV0YUFsbG9jYXRv
ci5jcHAgXAogICAgIE51bGxQdHIuY3BwIFwKICAgICBOdW1iZXJPZkNvcmVzLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvaiBiL1NvdXJjZS9XVEYvV1RG
LnZjcHJvai9XVEYudmNwcm9qCmluZGV4IGU1NDdmYzIzMmFkNjQ5NDBhN2IzOGI5NmRjMDBkNDhj
M2MwZGZmMGUuLjY4NjMzYWY0MmM1ODQ0YTJmMjhmNjViM2E3YmYwMmQ5OGI0ZTg1MTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCisrKyBiL1NvdXJjZS9XVEYv
V1RGLnZjcHJvai9XVEYudmNwcm9qCkBAIC05MDUsNiArOTA1LDEwIEBACiAJCQk+CiAJCTwvRmls
ZT4KIAkJPEZpbGUKKwkJICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxNZW1vcnlJbnN0cnVt
ZW50YXRpb24uY3BwIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCiAJCSAgICAgICAgUmVsYXRp
dmVQYXRoPSIuLlx3dGZcTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAJCQk+CiAJCTwvRmlsZT4K
QEAgLTk0MSw2ICs5NDUsMTAgQEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQorCQkgICAgICAg
IFJlbGF0aXZlUGF0aD0iLi5cd3RmXE1lbW9yeU9iamVjdEluZm8uaCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVzc2FnZVF1ZXVlLmgiCiAJCQk+
CiAJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDhhZWViZWQ2OTk1YTRhMTc2N2EwZWNkMzMzNGM4Y2VjYjgyODE3NTAuLmIyNzYzMWQxZmNkMzdh
YjVlMTdkMGZmMzJiYjM5YWIyMWI5NjNhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjkzLDYgKzI5Myw4IEBACiAJCUNENTQ5N0FDMTU4NTdEMDMwMEI1
QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi87
IH07CiAJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdEMDMwMEI1
QkMzMCAvKiBNZWRpYVRpbWUuaCAqLzsgfTsKIAkJRUI5NUUxRjAxNjFBNzI0MTAwODlBMkY1IC8q
IEJ5dGVPcmRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRUI5NUUxRUYxNjFBNzI0MTAwODlBMkY1IC8qIEJ5dGVPcmRlci5oICovOyB9OworCQlGMzIy
Q0NERjE2NTY5OUZGMDA0ODUyREQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzMjJDQ0RFMTY1Njk5RkYw
MDQ4NTJERCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwICovOyB9OworCQlGMzIyQ0NFMTE2
NTY5QTEwMDA0ODUyREQgLyogTWVtb3J5T2JqZWN0SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjMyMkNDRTAxNjU2OUExMDAwNDg1MkREIC8qIE1l
bW9yeU9iamVjdEluZm8uaCAqLzsgfTsKIAkJRjM1MjVFMkExNjE0OUZGNDAwMjc4QkMxIC8qIE1l
bW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzUyNUUyOTE2MTQ5RkY0MDAyNzhCQzEgLyogTWVtb3J5
SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCAqLzsgfTsKIAkJRjM1MjVFNDYxNjE5QTRFRTAw
Mjc4QkMxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzNTI1RTQ1MTYxOUE0RUUwMDI3OEJDMSAv
KiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmggKi87IH07CiAJCUYzRkJDNzFFMTYxQUY3
QkYwMEJCNEJENCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNGQkM3MUQxNjFBRjdC
RjAwQkI0QkQ0IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmggKi87IH07
CkBAIC01OTMsNiArNTk1LDggQEAKIAkJQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlh
VGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRpbWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0OTdBQjE1ODU3RDAzMDBCNUJD
MzAgLyogTWVkaWFUaW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
VGltZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjk1RTFFRjE2MUE3MjQxMDA4
OUEyRjUgLyogQnl0ZU9yZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ5
dGVPcmRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGMzIyQ0NERTE2NTY5OUZG
MDA0ODUyREQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUYzMjJDQ0UwMTY1NjlBMTAwMDQ4NTJERCAvKiBNZW1vcnlPYmpl
Y3RJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeU9iamVjdElu
Zm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM1MjVFMjkxNjE0OUZGNDAwMjc4
QkMxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzNTI1RTQ1MTYxOUE0RUUwMDI3OEJDMSAvKiBN
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjNGQkM3MUQxNjFBRjdCRjAwQkI0QkQ0IC8qIE1lbW9yeUluc3RydW1lbnRh
dGlvbkhhc2hDb3VudGVkU2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
bW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC03NDAsNiArNzQ0LDcgQEAKIAkJCQlBOEE0NzJDQjE1MUE4MjVCMDA0MTIzRkYg
LyogTUQ1LmggKi8sCiAJCQkJQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5j
cHAgKi8sCiAJCQkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oICovLAor
CQkJCUYzMjJDQ0RFMTY1Njk5RkYwMDQ4NTJERCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb24uY3Bw
ICovLAogCQkJCTRGMUQxMTUzMTVGRjExQkUwMDI2RTkwOCAvKiBNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCAqLywKIAkJCQk0RkQ4NTU0NjE2MTMzRTBFMDBDNUI3MDQgLyogTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uQXJyYXlCdWZmZXJWaWV3LmggKi8sCiAJCQkJRjNGQkM3MUQxNjFBRjdCRjAwQkI0QkQ0
IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmggKi8sCkBAIC03NTAsNiAr
NzU1LDcgQEAKIAkJCQlGM0ZCQzcxRjE2MUFGN0NEMDBCQjRCRDQgLyogTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uU2VxdWVuY2UuaCAqLywKIAkJCQk0RkNGMjdFMDE2MTcyRTg2MDBDQkYwMzcgLyogTWVt
b3J5SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmggKi8sCiAJCQkJNEZDQjcxMDkxNjBBMUEwNzAwODQy
NUVDIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oICovLAorCQkJCUYzMjJDQ0UwMTY1
NjlBMTAwMDQ4NTJERCAvKiBNZW1vcnlPYmplY3RJbmZvLmggKi8sCiAJCQkJQThBNDcyQ0MxNTFB
ODI1QjAwNDEyM0ZGIC8qIE1lc3NhZ2VRdWV1ZS5oICovLAogCQkJCUE4QTQ3MkNEMTUxQTgyNUIw
MDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9yLmNwcCAqLywKIAkJCQlBOEE0NzJDRTE1MUE4MjVCMDA0
MTIzRkYgLyogTWV0YUFsbG9jYXRvci5oICovLApAQCAtMTEwOSw2ICsxMTE1LDcgQEAKIAkJCQlG
M0ZCQzcyMDE2MUFGN0NEMDBCQjRCRDQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2VxdWVuY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTRGQ0YyN0UxMTYxNzJFODYwMENCRjAzNyAvKiBNZW1vcnlJ
bnN0cnVtZW50YXRpb25TdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGQ0I3MTBBMTYwQTFB
MDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCBpbiBIZWFkZXJzICov
LAorCQkJCUYzMjJDQ0UxMTY1NjlBMTAwMDQ4NTJERCAvKiBNZW1vcnlPYmplY3RJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEE0NzNFQjE1MUE4MjVCMDA0MTIzRkYgLyogTWVzc2FnZVF1ZXVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNFRDE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFs
bG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRUUxNTFBODI1QjAwNDEyM0ZGIC8q
IE1ldGFBbGxvY2F0b3JIYW5kbGUuaCBpbiBIZWFkZXJzICovLApAQCAtMTMzNiw2ICsxMzQzLDcg
QEAKIAkJCQlBOEE0NzNFNDE1MUE4MjVCMDA0MTIzRkYgLyogTWFpblRocmVhZE1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3M0U5MTUxQTgyNUIwMDQxMjNGRiAvKiBNRDUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQ0Q1NDk3QUMxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlGMzIyQ0NERjE2NTY5OUZGMDA0ODUyREQgLyogTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0VDMTUxQTgyNUIwMDQx
MjNGRiAvKiBNZXRhQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0YyMTUx
QTgyNUIwMDQxMjNGRiAvKiBOdWxsUHRyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y0
MTUxQTgyNUIwMDQxMjNGRiAvKiBOdW1iZXJPZkNvcmVzLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9D
TWFrZUxpc3RzLnR4dAppbmRleCBkYThkZWQ5M2JkNDYwOWJkNDM4ZmY5NDllNjY2OTc5NDUyNTA2
NzQ1Li44MGExY2IxZGIyZjE4YzYxMWU4MTc0MGFhMWQ3OTlkYzYxNTExNDMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFr
ZUxpc3RzLnR4dApAQCAtNDYsNiArNDYsMTcgQEAgU0VUKFdURl9IRUFERVJTCiAgICAgTWFsbG9j
Wm9uZVN1cHBvcnQuaAogICAgIE1hdGhFeHRyYXMuaAogICAgIE1lZGlhVGltZS5oCisgICAgTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25BcnJheUJ1ZmZl
clZpZXcuaAorICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmgKKyAgICBN
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmgKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25I
YXNoU2V0LmgKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oCisgICAgTWVt
b3J5SW5zdHJ1bWVudGF0aW9uUGFyc2VkVVJMLmgKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25T
ZXF1ZW5jZS5oCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmgKKyAgICBNZW1vcnlJ
bnN0cnVtZW50YXRpb25WZWN0b3IuaAorICAgIE1lbW9yeU9iamVjdEluZm8uaCcsCiAgICAgTWVz
c2FnZVF1ZXVlLmgKICAgICBNZXRhQWxsb2NhdG9yLmgKICAgICBNZXRhQWxsb2NhdG9ySGFuZGxl
LmgKQEAgLTE1Nyw2ICsxNjgsNyBAQCBTRVQoV1RGX1NPVVJDRVMKICAgICBNZWRpYVRpbWUuY3Bw
CiAgICAgTWV0YUFsbG9jYXRvci5jcHAKICAgICBPU1JhbmRvbVNvdXJjZS5jcHAKKyAgICBNZW1v
cnlJbnN0cnVtZW50YXRpb24uY3BwCiAgICAgTnVtYmVyT2ZDb3Jlcy5jcHAKICAgICBSQU1TaXpl
LmNwcAogICAgIFBhZ2VBbGxvY2F0aW9uQWxpZ25lZC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
VEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb24uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0YmUyYjZkY2ZiNDY2ZjUyMTZkOTcxYzcx
M2YyYTM5MTkxMjVlMzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb24uY3BwCkBAIC0wLDAgKzEsMTExIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIk1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorCisjaW5jbHVkZSA8d3RmL01lbW9y
eU9iamVjdEluZm8uaD4KKworI2lmIERFQlVHX1BPSU5URVJfSU5TVFJVTUVOVEFUSU9OCisjaW5j
bHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2VuZGlmCisKK25h
bWVzcGFjZSBXVEYgeworCitNZW1vcnlJbnN0cnVtZW50YXRpb246Ok1lbW9yeUluc3RydW1lbnRh
dGlvbihNZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50
KGNsaWVudCkKKyAgICAsIG1fcm9vdE9iamVjdEluZm8oYWRvcHRQdHIobmV3IE1lbW9yeU9iamVj
dEluZm8odGhpcywgMCkpKQoreworfQorCitNZW1vcnlJbnN0cnVtZW50YXRpb246On5NZW1vcnlJ
bnN0cnVtZW50YXRpb24oKQoreworfQorCitNZW1vcnlPYmplY3RUeXBlIE1lbW9yeUluc3RydW1l
bnRhdGlvbjo6Z2V0T2JqZWN0VHlwZShNZW1vcnlPYmplY3RJbmZvKiBvYmplY3RJbmZvKQorewor
ICAgIHJldHVybiBvYmplY3RJbmZvLT5vYmplY3RUeXBlKCk7Cit9CisKK3ZvaWQgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uOjpjYWxsUmVwb3J0T2JqZWN0SW5mbyhNZW1vcnlPYmplY3RJbmZvKiBtZW1v
cnlPYmplY3RJbmZvLCBjb25zdCB2b2lkKiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlIG9iamVj
dFR5cGUsIHNpemVfdCBvYmplY3RTaXplKQoreworICAgIG1lbW9yeU9iamVjdEluZm8tPnJlcG9y
dE9iamVjdEluZm8ocG9pbnRlciwgb2JqZWN0VHlwZSwgb2JqZWN0U2l6ZSk7Cit9CisKK01lbW9y
eUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U6Okluc3RydW1lbnRlZFBv
aW50ZXJCYXNlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pCisgICAgOiBtX293
bmVyT2JqZWN0VHlwZShtZW1vcnlPYmplY3RJbmZvLT5vYmplY3RUeXBlKCkpCit7CisjaWYgREVC
VUdfUE9JTlRFUl9JTlNUUlVNRU5UQVRJT04KKyAgICBtX2NhbGxTdGFja1NpemUgPSBzX21heENh
bGxTdGFja1NpemU7CisgICAgV1RGR2V0QmFja3RyYWNlKG1fY2FsbFN0YWNrLCAmbV9jYWxsU3Rh
Y2tTaXplKTsKKyNlbmRpZgorfQorCit2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1
bWVudGVkUG9pbnRlckJhc2U6OnByb2Nlc3MoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBtZW1vcnlJ
bnN0cnVtZW50YXRpb24pCit7CisgICAgTWVtb3J5T2JqZWN0SW5mbyBtZW1vcnlPYmplY3RJbmZv
KG1lbW9yeUluc3RydW1lbnRhdGlvbiwgbV9vd25lck9iamVjdFR5cGUpOworICAgIGNvbnN0IHZv
aWQqIG9yaWdpbmFsUG9pbnRlciA9IGNhbGxSZXBvcnRNZW1vcnlVc2FnZSgmbWVtb3J5T2JqZWN0
SW5mbyk7CisKKyAgICBjb25zdCB2b2lkKiBwb2ludGVyID0gbWVtb3J5T2JqZWN0SW5mby5yZXBv
cnRlZFBvaW50ZXIoKTsKKyAgICBBU1NFUlQocG9pbnRlcik7CisgICAgaWYgKHBvaW50ZXIgIT0g
b3JpZ2luYWxQb2ludGVyICYmIG1lbW9yeUluc3RydW1lbnRhdGlvbi0+dmlzaXRlZChwb2ludGVy
KSkKKyAgICAgICAgcmV0dXJuOworICAgIG1lbW9yeUluc3RydW1lbnRhdGlvbi0+Y291bnRPYmpl
Y3RTaXplKHBvaW50ZXIsIG1lbW9yeU9iamVjdEluZm8ub2JqZWN0VHlwZSgpLCBtZW1vcnlPYmpl
Y3RJbmZvLm9iamVjdFNpemUoKSk7CisgICAgaWYgKCFtZW1vcnlJbnN0cnVtZW50YXRpb24tPmNo
ZWNrQ291bnRlZE9iamVjdChwb2ludGVyKSkgeworI2lmIERFQlVHX1BPSU5URVJfSU5TVFJVTUVO
VEFUSU9OCisgICAgICAgIGZwdXRzKCJVbmtub3duIG9iamVjdCBjb3VudGVkOlxuIiwgc3RkZXJy
KTsKKyAgICAgICAgV1RGUHJpbnRCYWNrdHJhY2UobV9jYWxsU3RhY2ssIG1fY2FsbFN0YWNrU2l6
ZSk7CisjZW5kaWYKKyAgICB9Cit9CisKK3ZvaWQgTWVtb3J5Q2xhc3NJbmZvOjppbml0KGNvbnN0
IHZvaWQqIHBvaW50ZXIsIE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0VHlwZSwgc2l6ZV90IGFjdHVh
bFNpemUpCit7CisgICAgbV9tZW1vcnlPYmplY3RJbmZvLT5yZXBvcnRPYmplY3RJbmZvKHBvaW50
ZXIsIG9iamVjdFR5cGUsIGFjdHVhbFNpemUpOworICAgIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9u
ID0gbV9tZW1vcnlPYmplY3RJbmZvLT5tZW1vcnlJbnN0cnVtZW50YXRpb24oKTsKKyAgICBtX29i
amVjdFR5cGUgPSBtX21lbW9yeU9iamVjdEluZm8tPm9iamVjdFR5cGUoKTsKK30KKwordm9pZCBN
ZW1vcnlDbGFzc0luZm86OmFkZFJhd0J1ZmZlcihjb25zdCB2b2lkKiBjb25zdCYgYnVmZmVyLCBz
aXplX3Qgc2l6ZSkKK3sKKyAgICBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+YWRkUmF3QnVmZmVy
KGJ1ZmZlciwgbV9vYmplY3RUeXBlLCBzaXplKTsKK30KKwordm9pZCBNZW1vcnlDbGFzc0luZm86
OmFkZFByaXZhdGVCdWZmZXIoc2l6ZV90IHNpemUsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmpl
Y3RUeXBlKQoreworICAgIGlmICghc2l6ZSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmICghb3du
ZXJPYmplY3RUeXBlKQorICAgICAgICBvd25lck9iamVjdFR5cGUgPSBtX29iamVjdFR5cGU7Cisg
ICAgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmNvdW50T2JqZWN0U2l6ZSgwLCBvd25lck9iamVj
dFR5cGUsIHNpemUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dURi93dGYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggMWMzODI0M2U2YjE1NTYyOGYzOTM5NjdlZDBiNmFmMzY2
YjI1ZTljNi4uNDdmMTA4OTMxMWNhYmFkNGM1ODZjNTU5YjVhNDQ5YjdlOTc0NTFkZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNl
L1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTM3LDExICszNyw2IEBACiAKICNk
ZWZpbmUgREVCVUdfUE9JTlRFUl9JTlNUUlVNRU5UQVRJT04gMAogCi0jaWYgREVCVUdfUE9JTlRF
Ul9JTlNUUlVNRU5UQVRJT04KLSNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUg
PHN0ZGlvLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdURiB7CiAKIGNsYXNzIE1lbW9yeUNsYXNz
SW5mbzsKQEAgLTU1LDQzICs1MCw2IEBAIGVudW0gTWVtb3J5T3duaW5nVHlwZSB7CiAgICAgYnlS
ZWZlcmVuY2UKIH07CiAKLWNsYXNzIE1lbW9yeU9iamVjdEluZm8gewotcHVibGljOgotICAgIE1l
bW9yeU9iamVjdEluZm8oTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBtZW1vcnlJbnN0cnVtZW50YXRp
b24sIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlKQotICAgICAgICA6IG1fbWVtb3J5
SW5zdHJ1bWVudGF0aW9uKG1lbW9yeUluc3RydW1lbnRhdGlvbikKLSAgICAgICAgLCBtX29iamVj
dFR5cGUob3duZXJPYmplY3RUeXBlKQotICAgICAgICAsIG1fb2JqZWN0U2l6ZSgwKQotICAgICAg
ICAsIG1fcG9pbnRlcigwKQotICAgIHsgfQotCi0gICAgdHlwZWRlZiBNZW1vcnlDbGFzc0luZm8g
Q2xhc3NJbmZvOwotCi0gICAgTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RUeXBlKCkgY29uc3QgeyBy
ZXR1cm4gbV9vYmplY3RUeXBlOyB9Ci0gICAgc2l6ZV90IG9iamVjdFNpemUoKSBjb25zdCB7IHJl
dHVybiBtX29iamVjdFNpemU7IH0KLSAgICBjb25zdCB2b2lkKiByZXBvcnRlZFBvaW50ZXIoKSBj
b25zdCB7IHJldHVybiBtX3BvaW50ZXI7IH0KLQotICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbiog
bWVtb3J5SW5zdHJ1bWVudGF0aW9uKCkgeyByZXR1cm4gbV9tZW1vcnlJbnN0cnVtZW50YXRpb247
IH0KLQotcHJpdmF0ZToKLSAgICBmcmllbmQgY2xhc3MgTWVtb3J5Q2xhc3NJbmZvOwotICAgIGZy
aWVuZCBjbGFzcyBNZW1vcnlJbnN0cnVtZW50YXRpb247Ci0KLSAgICB2b2lkIHJlcG9ydE9iamVj
dEluZm8oY29uc3Qgdm9pZCogcG9pbnRlciwgTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RUeXBlLCBz
aXplX3Qgb2JqZWN0U2l6ZSkKLSAgICB7Ci0gICAgICAgIGlmICghbV9vYmplY3RTaXplKSB7Ci0g
ICAgICAgICAgICBtX3BvaW50ZXIgPSBwb2ludGVyOwotICAgICAgICAgICAgbV9vYmplY3RTaXpl
ID0gb2JqZWN0U2l6ZTsKLSAgICAgICAgICAgIGlmIChvYmplY3RUeXBlKQotICAgICAgICAgICAg
ICAgIG1fb2JqZWN0VHlwZSA9IG9iamVjdFR5cGU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBN
ZW1vcnlJbnN0cnVtZW50YXRpb24qIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uOwotICAgIE1lbW9y
eU9iamVjdFR5cGUgbV9vYmplY3RUeXBlOwotICAgIHNpemVfdCBtX29iamVjdFNpemU7Ci0gICAg
Y29uc3Qgdm9pZCogbV9wb2ludGVyOwotfTsKLQogdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBy
ZXBvcnRNZW1vcnlVc2FnZShjb25zdCBUKiBjb25zdCYsIE1lbW9yeU9iamVjdEluZm8qKTsKIAog
Y2xhc3MgTWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xpZW50IHsKQEAgLTEwNCwyMCArNjIsMzIgQEAg
cHVibGljOgogCiBjbGFzcyBNZW1vcnlJbnN0cnVtZW50YXRpb24gewogcHVibGljOgotICAgIGV4
cGxpY2l0IE1lbW9yeUluc3RydW1lbnRhdGlvbihNZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnQq
IGNsaWVudCkgOiBtX2NsaWVudChjbGllbnQpIHsgfQotICAgIHZpcnR1YWwgfk1lbW9yeUluc3Ry
dW1lbnRhdGlvbigpIHsgfQorICAgIGV4cGxpY2l0IE1lbW9yeUluc3RydW1lbnRhdGlvbihNZW1v
cnlJbnN0cnVtZW50YXRpb25DbGllbnQqKTsKKyAgICB2aXJ0dWFsIH5NZW1vcnlJbnN0cnVtZW50
YXRpb24oKTsKIAogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZFJvb3RPYmplY3Qo
Y29uc3QgVCYgdCwgTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RUeXBlID0gMCkKICAgICB7Ci0gICAg
ICAgIGFkZE9iamVjdCh0LCBvYmplY3RUeXBlKTsKKyAgICAgICAgYWRkT2JqZWN0KHQsIG1fcm9v
dE9iamVjdEluZm8uZ2V0KCkpOwogICAgICAgICBwcm9jZXNzRGVmZXJyZWRJbnN0cnVtZW50ZWRQ
b2ludGVycygpOwogICAgIH0KIAogcHJvdGVjdGVkOgogICAgIGNsYXNzIEluc3RydW1lbnRlZFBv
aW50ZXJCYXNlIHsKICAgICBwdWJsaWM6CisgICAgICAgIEluc3RydW1lbnRlZFBvaW50ZXJCYXNl
KE1lbW9yeU9iamVjdEluZm8qKTsKICAgICAgICAgdmlydHVhbCB+SW5zdHJ1bWVudGVkUG9pbnRl
ckJhc2UoKSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3MoTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uKikgPSAwOworICAgICAgICB2b2lkIHByb2Nlc3MoTWVtb3J5SW5zdHJ1bWVudGF0aW9u
Kik7CisKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZpcnR1YWwgY29uc3Qgdm9pZCogY2FsbFJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSA9IDA7CisKKyAgICBwcml2YXRlOgor
ICAgICAgICBjb25zdCBNZW1vcnlPYmplY3RUeXBlIG1fb3duZXJPYmplY3RUeXBlOworI2lmIERF
QlVHX1BPSU5URVJfSU5TVFJVTUVOVEFUSU9OCisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgc19t
YXhDYWxsU3RhY2tTaXplID0gMzI7CisgICAgICAgIHZvaWQqIG1fY2FsbFN0YWNrW3NfbWF4Q2Fs
bFN0YWNrU2l6ZV07CisgICAgICAgIGludCBtX2NhbGxTdGFja1NpemU7CisjZW5kaWYKICAgICB9
OwogCiBwcml2YXRlOgpAQCAtMTI4LDYgKzk4LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgZGVmZXJJbnN0cnVtZW50ZWRQb2ludGVyKFBhc3NPd25QdHI8SW5zdHJ1bWVudGVkUG9pbnRl
ckJhc2U+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEZWZlcnJlZEluc3RydW1lbnRl
ZFBvaW50ZXJzKCkgPSAwOwogCisgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgZ2V0T2JqZWN0
VHlwZShNZW1vcnlPYmplY3RJbmZvKik7CisKICAgICBmcmllbmQgY2xhc3MgTWVtb3J5Q2xhc3NJ
bmZvOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGZyaWVuZCB2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKGNvbnN0IFQqIGNvbnN0JiwgTWVtb3J5T2JqZWN0SW5mbyopOwogCkBAIC0xNDgsMjkgKzEy
MCwyNSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFR5cGU+
CiAgICAgc3RhdGljIHZvaWQgcmVwb3J0T2JqZWN0TWVtb3J5VXNhZ2UoY29uc3QgVCogY29uc3Qm
IG9iamVjdCwgTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbywgLi4uKQogICAgIHsK
LSAgICAgICAgbWVtb3J5T2JqZWN0SW5mby0+cmVwb3J0T2JqZWN0SW5mbyhvYmplY3QsIDAsIHNp
emVvZihUKSk7CisgICAgICAgIGNhbGxSZXBvcnRPYmplY3RJbmZvKG1lbW9yeU9iamVjdEluZm8s
IG9iamVjdCwgMCwgc2l6ZW9mKFQpKTsKICAgICB9CisgICAgc3RhdGljIHZvaWQgY2FsbFJlcG9y
dE9iamVjdEluZm8oTWVtb3J5T2JqZWN0SW5mbyosIGNvbnN0IHZvaWQqIHBvaW50ZXIsIE1lbW9y
eU9iamVjdFR5cGUsIHNpemVfdCBvYmplY3RTaXplKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+CiAgICAgc3RhdGljIHZvaWQgY291bnROb3RJbnN0cnVtZW50ZWRPYmplY3QoY29uc3QgVCog
Y29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBj
bGFzcyBJbnN0cnVtZW50ZWRQb2ludGVyIDogcHVibGljIEluc3RydW1lbnRlZFBvaW50ZXJCYXNl
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEluc3RydW1lbnRlZFBvaW50ZXIoY29uc3QgVCogcG9p
bnRlciwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUpOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgcHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50YXRpb24qKSBPVkVSUklERTsKKyAgICAgICAg
SW5zdHJ1bWVudGVkUG9pbnRlcihjb25zdCBUKiBwb2ludGVyLCBNZW1vcnlPYmplY3RJbmZvKiBv
d25lck9iamVjdEluZm8pOworCisgICAgcHJvdGVjdGVkOgorICAgICAgICB2aXJ0dWFsIGNvbnN0
IHZvaWQqIGNhbGxSZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgT1ZFUlJJREU7
CiAKICAgICBwcml2YXRlOgogICAgICAgICBjb25zdCBUKiBtX3BvaW50ZXI7Ci0gICAgICAgIGNv
bnN0IE1lbW9yeU9iamVjdFR5cGUgbV9vd25lck9iamVjdFR5cGU7Ci0KLSNpZiBERUJVR19QT0lO
VEVSX0lOU1RSVU1FTlRBVElPTgotICAgICAgICBzdGF0aWMgY29uc3QgaW50IHNfbWF4Q2FsbFN0
YWNrU2l6ZSA9IDMyOwotICAgICAgICB2b2lkKiBtX2NhbGxTdGFja1tzX21heENhbGxTdGFja1Np
emVdOwotICAgICAgICBpbnQgbV9jYWxsU3RhY2tTaXplOwotI2VuZGlmCiAgICAgfTsKIAotICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgYWRkT2JqZWN0KGNvbnN0IFQmIHQsIE1lbW9yeU9i
amVjdFR5cGUgb3duZXJPYmplY3RUeXBlKSB7IE93bmluZ1RyYWl0czxUPjo6YWRkT2JqZWN0KHRo
aXMsIHQsIG93bmVyT2JqZWN0VHlwZSk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lk
IGFkZE9iamVjdChjb25zdCBUJiB0LCBNZW1vcnlPYmplY3RJbmZvKiBvd25lck9iamVjdEluZm8p
IHsgT3duaW5nVHJhaXRzPFQ+OjphZGRPYmplY3QodGhpcywgdCwgb3duZXJPYmplY3RJbmZvKTsg
fQogICAgIHZvaWQgYWRkUmF3QnVmZmVyKGNvbnN0IHZvaWQqIGNvbnN0JiBidWZmZXIsIE1lbW9y
eU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBzaXplX3Qgc2l6ZSkKICAgICB7CiAgICAgICAg
IGlmICghYnVmZmVyIHx8IHZpc2l0ZWQoYnVmZmVyKSkKQEAgLTE4MCw0OSArMTQ4LDQ4IEBAIHBy
aXZhdGU6CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIHN0cnVjdCBPd25pbmdUcmFp
dHMgeyAvLyBEZWZhdWx0IGJ5UmVmZXJlbmNlIGltcGxlbWVudGF0aW9uLgotICAgICAgICBzdGF0
aWMgdm9pZCBhZGRPYmplY3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24s
IGNvbnN0IFQmIHQsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlKQorICAgICAgICBz
dGF0aWMgdm9pZCBhZGRPYmplY3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRp
b24sIGNvbnN0IFQmIHQsIE1lbW9yeU9iamVjdEluZm8qIG93bmVyT2JqZWN0SW5mbykKICAgICAg
ICAgewotICAgICAgICAgICAgaW5zdHJ1bWVudGF0aW9uLT5hZGRPYmplY3RJbXBsKCZ0LCBvd25l
ck9iamVjdFR5cGUsIGJ5UmVmZXJlbmNlKTsKKyAgICAgICAgICAgIGluc3RydW1lbnRhdGlvbi0+
YWRkT2JqZWN0SW1wbCgmdCwgb3duZXJPYmplY3RJbmZvLCBieVJlZmVyZW5jZSk7CiAgICAgICAg
IH0KICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBzdHJ1Y3QgT3duaW5n
VHJhaXRzPFQqPiB7IC8vIEN1c3RvbSBieVBvaW50ZXIgaW1wbGVtZW50YXRpb24uCi0gICAgICAg
IHN0YXRpYyB2b2lkIGFkZE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRh
dGlvbiwgY29uc3QgVCogY29uc3QmIHQsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBl
KQorICAgICAgICBzdGF0aWMgdm9pZCBhZGRPYmplY3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBp
bnN0cnVtZW50YXRpb24sIGNvbnN0IFQqIGNvbnN0JiB0LCBNZW1vcnlPYmplY3RJbmZvKiBvd25l
ck9iamVjdEluZm8pCiAgICAgICAgIHsKLSAgICAgICAgICAgIGluc3RydW1lbnRhdGlvbi0+YWRk
T2JqZWN0SW1wbCh0LCBvd25lck9iamVjdFR5cGUsIGJ5UG9pbnRlcik7CisgICAgICAgICAgICBp
bnN0cnVtZW50YXRpb24tPmFkZE9iamVjdEltcGwodCwgb3duZXJPYmplY3RJbmZvLCBieVBvaW50
ZXIpOwogICAgICAgICB9CiAgICAgfTsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQg
YWRkT2JqZWN0SW1wbChjb25zdCBUKiBjb25zdCYsIE1lbW9yeU9iamVjdFR5cGUsIE1lbW9yeU93
bmluZ1R5cGUpOwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgYWRkT2JqZWN0SW1wbChj
b25zdCBPd25QdHI8VD4qIGNvbnN0JiwgTWVtb3J5T2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlw
ZSk7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBhZGRPYmplY3RJbXBsKGNvbnN0IFJl
ZlB0cjxUPiogY29uc3QmLCBNZW1vcnlPYmplY3RUeXBlLCBNZW1vcnlPd25pbmdUeXBlKTsKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGFkZE9iamVjdEltcGwoY29uc3QgVCogY29uc3Qm
LCBNZW1vcnlPYmplY3RJbmZvKiwgTWVtb3J5T3duaW5nVHlwZSk7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gdm9pZCBhZGRPYmplY3RJbXBsKGNvbnN0IE93blB0cjxUPiogY29uc3QmLCBNZW1v
cnlPYmplY3RJbmZvKiwgTWVtb3J5T3duaW5nVHlwZSk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gdm9pZCBhZGRPYmplY3RJbXBsKGNvbnN0IFJlZlB0cjxUPiogY29uc3QmLCBNZW1vcnlPYmpl
Y3RJbmZvKiwgTWVtb3J5T3duaW5nVHlwZSk7CiAKICAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25D
bGllbnQqIG1fY2xpZW50OworICAgIE93blB0cjxNZW1vcnlPYmplY3RJbmZvPiBtX3Jvb3RPYmpl
Y3RJbmZvOwogfTsKIAogY2xhc3MgTWVtb3J5Q2xhc3NJbmZvIHsKIHB1YmxpYzoKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgotICAgIE1lbW9yeUNsYXNzSW5mbyhNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvLCBjb25zdCBUKiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlIG9iamVj
dFR5cGUgPSAwLCBzaXplX3QgYWN0dWFsU2l6ZSA9IDApCisgICAgTWVtb3J5Q2xhc3NJbmZvKE1l
bW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8sIGNvbnN0IFQqIHBvaW50ZXIsIE1lbW9y
eU9iamVjdFR5cGUgb2JqZWN0VHlwZSA9IDAsIHNpemVfdCBhY3R1YWxTaXplID0gc2l6ZW9mKFQp
KQogICAgICAgICA6IG1fbWVtb3J5T2JqZWN0SW5mbyhtZW1vcnlPYmplY3RJbmZvKQotICAgICAg
ICAsIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uKG1lbW9yeU9iamVjdEluZm8tPm1lbW9yeUluc3Ry
dW1lbnRhdGlvbigpKQorICAgICAgICAsIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uKDApCisgICAg
ICAgICwgbV9vYmplY3RUeXBlKDApCiAgICAgewotICAgICAgICBtX21lbW9yeU9iamVjdEluZm8t
PnJlcG9ydE9iamVjdEluZm8ocG9pbnRlciwgb2JqZWN0VHlwZSwgYWN0dWFsU2l6ZSA/IGFjdHVh
bFNpemUgOiBzaXplb2YoVCkpOwotICAgICAgICBtX29iamVjdFR5cGUgPSBtZW1vcnlPYmplY3RJ
bmZvLT5vYmplY3RUeXBlKCk7CisgICAgICAgIGluaXQocG9pbnRlciwgb2JqZWN0VHlwZSwgYWN0
dWFsU2l6ZSk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgTT4gdm9pZCBhZGRNZW1i
ZXIoY29uc3QgTSYgbWVtYmVyKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRPYmplY3Qo
bWVtYmVyLCBtX29iamVjdFR5cGUpOyB9Ci0gICAgdm9pZCBhZGRSYXdCdWZmZXIoY29uc3Qgdm9p
ZCogY29uc3QmIGJ1ZmZlciwgc2l6ZV90IHNpemUpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24t
PmFkZFJhd0J1ZmZlcihidWZmZXIsIG1fb2JqZWN0VHlwZSwgc2l6ZSk7IH0KLSAgICB2b2lkIGFk
ZFByaXZhdGVCdWZmZXIoc2l6ZV90IHNpemUsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RU
eXBlID0gMCkKLSAgICB7Ci0gICAgICAgIGlmIChzaXplKQotICAgICAgICAgICAgbV9tZW1vcnlJ
bnN0cnVtZW50YXRpb24tPmNvdW50T2JqZWN0U2l6ZSgwLCBvd25lck9iamVjdFR5cGUgPyBvd25l
ck9iamVjdFR5cGUgOiBtX29iamVjdFR5cGUsIHNpemUpOwotICAgIH0KKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBNPiB2b2lkIGFkZE1lbWJlcihjb25zdCBNJiBtZW1iZXIpIHsgbV9tZW1vcnlJbnN0
cnVtZW50YXRpb24tPmFkZE9iamVjdChtZW1iZXIsIG1fbWVtb3J5T2JqZWN0SW5mbyk7IH0KKyAg
ICB2b2lkIGFkZFJhd0J1ZmZlcihjb25zdCB2b2lkKiBjb25zdCYgYnVmZmVyLCBzaXplX3QpOwor
ICAgIHZvaWQgYWRkUHJpdmF0ZUJ1ZmZlcihzaXplX3QsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJP
YmplY3RUeXBlID0gMCk7CiAKICAgICB2b2lkIGFkZFdlYWtQb2ludGVyKHZvaWQqKSB7IH0KIAog
cHJpdmF0ZToKKyAgICB2b2lkIGluaXQoY29uc3Qgdm9pZCogcG9pbnRlciwgTWVtb3J5T2JqZWN0
VHlwZSwgc2l6ZV90IGFjdHVhbFNpemUpOworCiAgICAgTWVtb3J5T2JqZWN0SW5mbyogbV9tZW1v
cnlPYmplY3RJbmZvOwogICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbiogbV9tZW1vcnlJbnN0cnVt
ZW50YXRpb247CiAgICAgTWVtb3J5T2JqZWN0VHlwZSBtX29iamVjdFR5cGU7CkBAIC0yMzUsNjIg
KzIwMiw0NSBAQCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFQqIGNvbnN0JiBvYmplY3Qs
IE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgotdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZE9iamVjdEltcGwoY29uc3QgVCog
Y29uc3QmIG9iamVjdCwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUsIE1lbW9yeU93
bmluZ1R5cGUgb3duaW5nVHlwZSkKK3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmpl
Y3RJbXBsKGNvbnN0IFQqIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdEluZm8qIG93bmVyT2Jq
ZWN0SW5mbywgTWVtb3J5T3duaW5nVHlwZSBvd25pbmdUeXBlKQogewotICAgIGlmIChvd25pbmdU
eXBlID09IGJ5UmVmZXJlbmNlKSB7Ci0gICAgICAgIE1lbW9yeU9iamVjdEluZm8gbWVtb3J5T2Jq
ZWN0SW5mbyh0aGlzLCBvd25lck9iamVjdFR5cGUpOwotICAgICAgICByZXBvcnRNZW1vcnlVc2Fn
ZShvYmplY3QsICZtZW1vcnlPYmplY3RJbmZvKTsKLSAgICB9IGVsc2UgeworICAgIGlmIChvd25p
bmdUeXBlID09IGJ5UmVmZXJlbmNlKQorICAgICAgICByZXBvcnRNZW1vcnlVc2FnZShvYmplY3Qs
IG93bmVyT2JqZWN0SW5mbyk7CisgICAgZWxzZSB7CiAgICAgICAgIGlmICghb2JqZWN0IHx8IHZp
c2l0ZWQob2JqZWN0KSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgZGVmZXJJbnN0cnVt
ZW50ZWRQb2ludGVyKGFkb3B0UHRyKG5ldyBJbnN0cnVtZW50ZWRQb2ludGVyPFQ+KG9iamVjdCwg
b3duZXJPYmplY3RUeXBlKSkpOworICAgICAgICBkZWZlckluc3RydW1lbnRlZFBvaW50ZXIoYWRv
cHRQdHIobmV3IEluc3RydW1lbnRlZFBvaW50ZXI8VD4ob2JqZWN0LCBvd25lck9iamVjdEluZm8p
KSk7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotdm9pZCBNZW1vcnlJbnN0cnVt
ZW50YXRpb246OmFkZE9iamVjdEltcGwoY29uc3QgT3duUHRyPFQ+KiBjb25zdCYgb2JqZWN0LCBN
ZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlwZSBvd25pbmdU
eXBlKQordm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZE9iamVjdEltcGwoY29uc3QgT3du
UHRyPFQ+KiBjb25zdCYgb2JqZWN0LCBNZW1vcnlPYmplY3RJbmZvKiBvd25lck9iamVjdEluZm8s
IE1lbW9yeU93bmluZ1R5cGUgb3duaW5nVHlwZSkKIHsKICAgICBpZiAob3duaW5nVHlwZSA9PSBi
eVBvaW50ZXIgJiYgIXZpc2l0ZWQob2JqZWN0KSkKLSAgICAgICAgY291bnRPYmplY3RTaXplKG9i
amVjdCwgb3duZXJPYmplY3RUeXBlLCBzaXplb2YoKm9iamVjdCkpOwotICAgIGFkZE9iamVjdElt
cGwob2JqZWN0LT5nZXQoKSwgb3duZXJPYmplY3RUeXBlLCBieVBvaW50ZXIpOworICAgICAgICBj
b3VudE9iamVjdFNpemUob2JqZWN0LCBnZXRPYmplY3RUeXBlKG93bmVyT2JqZWN0SW5mbyksIHNp
emVvZigqb2JqZWN0KSk7CisgICAgYWRkT2JqZWN0SW1wbChvYmplY3QtPmdldCgpLCBvd25lck9i
amVjdEluZm8sIGJ5UG9pbnRlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkIE1l
bW9yeUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0SW1wbChjb25zdCBSZWZQdHI8VD4qIGNvbnN0
JiBvYmplY3QsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBNZW1vcnlPd25pbmdU
eXBlIG93bmluZ1R5cGUpCit2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0SW1w
bChjb25zdCBSZWZQdHI8VD4qIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdEluZm8qIG93bmVy
T2JqZWN0SW5mbywgTWVtb3J5T3duaW5nVHlwZSBvd25pbmdUeXBlKQogewogICAgIGlmIChvd25p
bmdUeXBlID09IGJ5UG9pbnRlciAmJiAhdmlzaXRlZChvYmplY3QpKQotICAgICAgICBjb3VudE9i
amVjdFNpemUob2JqZWN0LCBvd25lck9iamVjdFR5cGUsIHNpemVvZigqb2JqZWN0KSk7Ci0gICAg
YWRkT2JqZWN0SW1wbChvYmplY3QtPmdldCgpLCBvd25lck9iamVjdFR5cGUsIGJ5UG9pbnRlcik7
CisgICAgICAgIGNvdW50T2JqZWN0U2l6ZShvYmplY3QsIGdldE9iamVjdFR5cGUob3duZXJPYmpl
Y3RJbmZvKSwgc2l6ZW9mKCpvYmplY3QpKTsKKyAgICBhZGRPYmplY3RJbXBsKG9iamVjdC0+Z2V0
KCksIG93bmVyT2JqZWN0SW5mbywgYnlQb2ludGVyKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUg
VD4KLU1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVudGVkUG9pbnRlcjxUPjo6SW5zdHJ1
bWVudGVkUG9pbnRlcihjb25zdCBUKiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2Jq
ZWN0VHlwZSkKLSAgICA6IG1fcG9pbnRlcihwb2ludGVyKQotICAgICwgbV9vd25lck9iamVjdFR5
cGUob3duZXJPYmplY3RUeXBlKQorTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpJbnN0cnVtZW50ZWRQ
b2ludGVyPFQ+OjpJbnN0cnVtZW50ZWRQb2ludGVyKGNvbnN0IFQqIHBvaW50ZXIsIE1lbW9yeU9i
amVjdEluZm8qIG93bmVyT2JqZWN0SW5mbykKKyAgICA6IEluc3RydW1lbnRlZFBvaW50ZXJCYXNl
KG93bmVyT2JqZWN0SW5mbykKKyAgICAsIG1fcG9pbnRlcihwb2ludGVyKQogewotI2lmIERFQlVH
X1BPSU5URVJfSU5TVFJVTUVOVEFUSU9OCi0gICAgbV9jYWxsU3RhY2tTaXplID0gc19tYXhDYWxs
U3RhY2tTaXplOwotICAgIFdURkdldEJhY2t0cmFjZShtX2NhbGxTdGFjaywgJm1fY2FsbFN0YWNr
U2l6ZSk7Ci0jZW5kaWYKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLXZvaWQgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyPFQ+Ojpwcm9jZXNzKE1lbW9yeUluc3Ry
dW1lbnRhdGlvbiogbWVtb3J5SW5zdHJ1bWVudGF0aW9uKQorY29uc3Qgdm9pZCogTWVtb3J5SW5z
dHJ1bWVudGF0aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyPFQ+OjpjYWxsUmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKIHsKLSAgICBNZW1vcnlPYmpl
Y3RJbmZvIG1lbW9yeU9iamVjdEluZm8obWVtb3J5SW5zdHJ1bWVudGF0aW9uLCBtX293bmVyT2Jq
ZWN0VHlwZSk7Ci0gICAgcmVwb3J0TWVtb3J5VXNhZ2UobV9wb2ludGVyLCAmbWVtb3J5T2JqZWN0
SW5mbyk7Ci0KLSAgICBjb25zdCB2b2lkKiBwb2ludGVyID0gbWVtb3J5T2JqZWN0SW5mby5yZXBv
cnRlZFBvaW50ZXIoKTsKLSAgICBBU1NFUlQocG9pbnRlcik7Ci0gICAgaWYgKHBvaW50ZXIgIT0g
bV9wb2ludGVyICYmIG1lbW9yeUluc3RydW1lbnRhdGlvbi0+dmlzaXRlZChwb2ludGVyKSkKLSAg
ICAgICAgcmV0dXJuOwotICAgIG1lbW9yeUluc3RydW1lbnRhdGlvbi0+Y291bnRPYmplY3RTaXpl
KHBvaW50ZXIsIG1lbW9yeU9iamVjdEluZm8ub2JqZWN0VHlwZSgpLCBtZW1vcnlPYmplY3RJbmZv
Lm9iamVjdFNpemUoKSk7Ci0gICAgaWYgKCFtZW1vcnlJbnN0cnVtZW50YXRpb24tPmNoZWNrQ291
bnRlZE9iamVjdChwb2ludGVyKSkgewotI2lmIERFQlVHX1BPSU5URVJfSU5TVFJVTUVOVEFUSU9O
Ci0gICAgICAgIGZwdXRzKCJVbmtub3duIG9iamVjdCBjb3VudGVkOlxuIiwgc3RkZXJyKTsKLSAg
ICAgICAgV1RGUHJpbnRCYWNrdHJhY2UobV9jYWxsU3RhY2ssIG1fY2FsbFN0YWNrU2l6ZSk7Ci0j
ZW5kaWYKLSAgICB9CisgICAgcmVwb3J0TWVtb3J5VXNhZ2UobV9wb2ludGVyLCBtZW1vcnlPYmpl
Y3RJbmZvKTsKKyAgICByZXR1cm4gbV9wb2ludGVyOwogfQogCiAvLyBMaW5rIHRpbWUgZ3VhcmQg
Zm9yIGNsYXNzZXMgd2l0aCBleHRlcm5hbCBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uLgpAQCAtMzI5
LDYgKzI3OSw0IEBAIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgVVJMU3RyaW5nKiBjb25z
dCYsIE1lbW9yeU9iamVjdEluZm8qKTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKLSN1bmRlZiBE
RUJVR19QT0lOVEVSX0lOU1RSVU1FTlRBVElPTgotCiAjZW5kaWYgLy8gIWRlZmluZWQoTWVtb3J5
SW5zdHJ1bWVudGF0aW9uX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlPYmpl
Y3RJbmZvLmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlPYmplY3RJbmZvLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWM3ZmU2YzgzNjJjMWE0ZjE1MjRiZDVhMzkyODc1YTg2YWJkODIzNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeU9iamVjdEluZm8uaApAQCAtMCwwICsxLDgwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBNZW1vcnlPYmplY3RJbmZvX2gKKyNkZWZpbmUgTWVtb3J5T2JqZWN0SW5mb19oCisKK25h
bWVzcGFjZSBXVEYgeworCitjbGFzcyBNZW1vcnlDbGFzc0luZm87CitjbGFzcyBNZW1vcnlJbnN0
cnVtZW50YXRpb247CisKK3R5cGVkZWYgY29uc3QgY2hhciogTWVtb3J5T2JqZWN0VHlwZTsKKwor
Y2xhc3MgTWVtb3J5T2JqZWN0SW5mbyB7CitwdWJsaWM6CisgICAgTWVtb3J5T2JqZWN0SW5mbyhN
ZW1vcnlJbnN0cnVtZW50YXRpb24qIG1lbW9yeUluc3RydW1lbnRhdGlvbiwgTWVtb3J5T2JqZWN0
VHlwZSBvd25lck9iamVjdFR5cGUpCisgICAgICAgIDogbV9tZW1vcnlJbnN0cnVtZW50YXRpb24o
bWVtb3J5SW5zdHJ1bWVudGF0aW9uKQorICAgICAgICAsIG1fb2JqZWN0VHlwZShvd25lck9iamVj
dFR5cGUpCisgICAgICAgICwgbV9vYmplY3RTaXplKDApCisgICAgICAgICwgbV9wb2ludGVyKDAp
CisgICAgeyB9CisKKyAgICB0eXBlZGVmIE1lbW9yeUNsYXNzSW5mbyBDbGFzc0luZm87CisKKyAg
ICBNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUoKSBjb25zdCB7IHJldHVybiBtX29iamVjdFR5
cGU7IH0KKyAgICBzaXplX3Qgb2JqZWN0U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0U2l6
ZTsgfQorICAgIGNvbnN0IHZvaWQqIHJlcG9ydGVkUG9pbnRlcigpIGNvbnN0IHsgcmV0dXJuIG1f
cG9pbnRlcjsgfQorCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBtZW1vcnlJbnN0cnVtZW50
YXRpb24oKSB7IHJldHVybiBtX21lbW9yeUluc3RydW1lbnRhdGlvbjsgfQorCitwcml2YXRlOgor
ICAgIGZyaWVuZCBjbGFzcyBNZW1vcnlDbGFzc0luZm87CisgICAgZnJpZW5kIGNsYXNzIE1lbW9y
eUluc3RydW1lbnRhdGlvbjsKKworICAgIHZvaWQgcmVwb3J0T2JqZWN0SW5mbyhjb25zdCB2b2lk
KiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUsIHNpemVfdCBvYmplY3RTaXpl
KQorICAgIHsKKyAgICAgICAgaWYgKCFtX29iamVjdFNpemUpIHsKKyAgICAgICAgICAgIG1fcG9p
bnRlciA9IHBvaW50ZXI7CisgICAgICAgICAgICBtX29iamVjdFNpemUgPSBvYmplY3RTaXplOwor
ICAgICAgICAgICAgaWYgKG9iamVjdFR5cGUpCisgICAgICAgICAgICAgICAgbV9vYmplY3RUeXBl
ID0gb2JqZWN0VHlwZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIE1lbW9yeUluc3RydW1lbnRh
dGlvbiogbV9tZW1vcnlJbnN0cnVtZW50YXRpb247CisgICAgTWVtb3J5T2JqZWN0VHlwZSBtX29i
amVjdFR5cGU7CisgICAgc2l6ZV90IG1fb2JqZWN0U2l6ZTsKKyAgICBjb25zdCB2b2lkKiBtX3Bv
aW50ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vICFkZWZpbmVkKE1l
bW9yeU9iamVjdEluZm9faCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0ZGVEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1l
LmNwcAppbmRleCA2M2M4N2RkYzkyOTYxY2FhMGU4NDY5NzViNjIwNWI5MTExNzlmZmM5Li5lZWU0
NWRlOGFiM2QyYzAyYjFlMjY3MjNjMzY0YjBkZjkwZGQ1Yzk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAi
UGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxleC5o
PgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeU9iamVj
dEluZm8uaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKICNpZiAhVVNFX0FDQ0VMRVJBVEVf
RkZUICYmIFVTRShXRUJBVURJT19GRk1QRUcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBkN2Y0MTgxNmFkMDNiOGIxZWIwOGFmZmI5ODIy
YmFjOGUyMDYwNTBiLi42ZWNhYTA0MTdhODBhYmYwMTI2ZWMxNTY1YzIwZmJkMjZmMDEyM2E0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAg
LTQxLDYgKzQxLDcgQEAKICNlbmRpZgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+Cisj
aW5jbHVkZSA8d3RmL01lbW9yeU9iamVjdEluZm8uaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0
cmFzLmg+CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggYjFi
YTU5ODZhNDkyMmZkYzU1MzViMWE0ZGI0NzVlYzI3MjRlYWY3ZC4uNDM0ZTNjY2YwODM3OTBlOGNi
NWM1MzJjMmRiYjRiMWVkNGExMzhiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU2hhZG93
RGF0YS5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNs
dWRlIDx3dGYvTWVtb3J5T2JqZWN0SW5mby5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCAxYzZjYjE4NzliMmQ5NWM4NTgwYTk5MThlM2JkZmE2
Mzc4MjczNmM0Li5lZDllOWEyZWZkNDlmMGQyNDRmOGJjYTIyNjI1ZWM2YTRlM2ZkYTVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViQ29y
ZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50
YXRpb25IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rv
ci5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlPYmplY3RJbmZvLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcAppbmRleCA3MzQ4MDYyZDkxNDcyNmU5MDFhM2Q1
MDU3YjlhN2JiMDI3NzEyYmE0Li5kYWQwOGRkYTQ1ZDcyZWNmZGU4NzRiNjNkMzMwMTRmYjc5Mjkw
NWVlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZW1vcnlJbnN0
cnVtZW50YXRpb25UZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUg
PHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25TdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1
bWVudGF0aW9uVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeU9iamVjdEluZm8uaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174909</attachid>
            <date>2012-11-19 01:10:49 -0800</date>
            <delta_ts>2012-11-19 01:22:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102510-20121119130839.patch</filename>
            <type>text/plain</type>
            <size>35313</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJjMzBjY2U2Y2U4OGRiM2M0ZWY0Yzcz
NTlkNDE0OTA4MGFmNDFhMTcuLmNkNWYxZTg0NDhhNjg5YTQ1NDJlZmU0NTQwMDEwYzc1ZWViYTI5
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTItMTEtMTYgIFl1cnkgU2VtaWtoYXRza3kgIDx5
dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWVtb3J5IGluc3RydW1lbnRhdGlvbjogZXh0
cmFjdCBNZW1vcnlPYmplY3RJbmZvIGRlY2xhcmF0aW9uIGludG8gYSBzZXBhcmF0ZSBmaWxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI1MTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCBNZW1v
cnlPYmplY3RJbmZvIGludG8gc2VwYXJhdGUgaGVhZGVyLiBNb3ZlZCBkZWZpbml0aW9uIG9mIE1l
bW9yeUluc3RydW1lbnRhdGlvbgorICAgICAgICBtZXRob2RzIHRoYXQgZGVwZW5kIG9uIE1lbW9y
eU9iamVjdEluZm8gZGVjbGFyYXRpb24gaW50byBNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwIHRv
CisgICAgICAgIG1ha2UgTWVtb3J5SW5zdHJ1bWVudGF0aW9uIHJlcXVpcmUgb25seSBmb3J3YXJk
IGRlY2xhcmF0aW9uIG9mIE1lbW9yeU9iamVjdEluZm8uCisKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIFdURi5neXBpOgorICAgICAgICAqIFdURi5wcm86CisgICAg
ICAgICogV1RGLnZjcHJvai9XVEYudmNwcm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDogQWRkZWQuCisgICAg
ICAgIChXVEYpOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246Ok1lbW9yeUlu
c3RydW1lbnRhdGlvbik6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6fk1l
bW9yeUluc3RydW1lbnRhdGlvbik6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlv
bjo6Z2V0T2JqZWN0VHlwZSk6IHRoaXMgbWV0aG9kIGFsbG93cyB0byBnZXQgb2JqZWN0IHR5cGUg
d2l0aG91dAorICAgICAgICBwdWxsaW5nIGluIE1lbW9yeU9iamVjdEluZm8uaCBhbmQgYWxsIGl0
cyBkZXBlbmRlbmNpZXMuCisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6Y2Fs
bFJlcG9ydE9iamVjdEluZm8pOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246
Okluc3RydW1lbnRlZFBvaW50ZXJCYXNlOjpJbnN0cnVtZW50ZWRQb2ludGVyQmFzZSk6CisgICAg
ICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U6
OnByb2Nlc3MpOgorICAgICAgICAoV1RGOjpNZW1vcnlDbGFzc0luZm86OmluaXQpOgorICAgICAg
ICAoV1RGOjpNZW1vcnlDbGFzc0luZm86OmFkZFJhd0J1ZmZlcik6CisgICAgICAgIChXVEY6Ok1l
bW9yeUNsYXNzSW5mbzo6YWRkUHJpdmF0ZUJ1ZmZlcik6CisgICAgICAgICogd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKToKKyAgICAg
ICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRSb290T2JqZWN0KToKKyAgICAgICAg
KEluc3RydW1lbnRlZFBvaW50ZXJCYXNlKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVu
dGF0aW9uOjpyZXBvcnRPYmplY3RNZW1vcnlVc2FnZSk6CisgICAgICAgIChJbnN0cnVtZW50ZWRQ
b2ludGVyKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3Qp
OiB3ZSBub3cgcGFzcyBvd25lcidzIE1lbW9yeU9iamVjdEluZm8gaW4gYWxsIHBsYWNlcworICAg
ICAgICB3aGVyZSB3ZSByZXBvcnQgb2JqZWN0cyBwb2ludGVkIGJ5IHRoZSBvd25lci4KKyAgICAg
ICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPd25pbmdUcmFpdHM6OmFkZE9iamVjdCk6
CisgICAgICAgIChXVEY6Ok1lbW9yeUNsYXNzSW5mbzo6TWVtb3J5Q2xhc3NJbmZvKToKKyAgICAg
ICAgKFdURjo6TWVtb3J5Q2xhc3NJbmZvOjphZGRNZW1iZXIpOgorICAgICAgICAoTWVtb3J5Q2xh
c3NJbmZvKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJ
bXBsKToKKyAgICAgICAgKFdURjo6OjpJbnN0cnVtZW50ZWRQb2ludGVyKToKKyAgICAgICAgKFdU
Rjo6OjpjYWxsUmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIHd0Zi9NZW1vcnlPYmplY3RJ
bmZvLmg6IEFkZGVkLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKE1lbW9yeU9iamVjdEluZm8p
OgorICAgICAgICAoV1RGOjpNZW1vcnlPYmplY3RJbmZvOjpNZW1vcnlPYmplY3RJbmZvKToKKyAg
ICAgICAgKFdURjo6TWVtb3J5T2JqZWN0SW5mbzo6b2JqZWN0VHlwZSk6CisgICAgICAgIChXVEY6
Ok1lbW9yeU9iamVjdEluZm86Om9iamVjdFNpemUpOgorICAgICAgICAoV1RGOjpNZW1vcnlPYmpl
Y3RJbmZvOjpyZXBvcnRlZFBvaW50ZXIpOgorICAgICAgICAoV1RGOjpNZW1vcnlPYmplY3RJbmZv
OjptZW1vcnlJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAoV1RGOjpNZW1vcnlPYmplY3RJbmZv
OjpyZXBvcnRPYmplY3RJbmZvKToKKwogMjAxMi0xMS0xOCAgTGFzemxvIEdvbWJvcyAgPGwuZ29t
Ym9zQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFJlbW92ZSBub24tZXhpc3RlbnQgZGlyZWN0b3Jp
ZXMgZnJvbSB0aGUgbWFrZSBzeXN0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZp
bGUubGlzdC5hbSBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5ZDRmMGQ3
ZTViMDc5YTJjZGFmMGM1MzUwYTkwYWJjMmM1OTk5Y2ZlLi5mOWRiOGMwMmMxNDA4MTlhYjZmZTBk
YTI4MTU0ZDZlZTNlMzZhMWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxp
c3QuYW0KKysrIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC04MCw2ICs4MCw3
IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmggXAog
ICAgIFNvdXJjZS9XVEYvd3RmL01lZGlhVGltZS5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZWRp
YVRpbWUuY3BwIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uY3Bw
IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBcCiAgICAgU291
cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uQXJyYXlCdWZmZXJWaWV3LmggXAogICAg
IFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmggXApA
QCAtOTAsNiArOTEsNyBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uU2VxdWVuY2UuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvblZlY3Rvci5oIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlPYmplY3RJbmZv
LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oIFwKICAgICBTb3VyY2UvV1RG
L3d0Zi9NZXRhQWxsb2NhdG9yLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRv
ci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3VyY2UvV1RGL1dURi5n
eXBpCmluZGV4IGY1NDA3N2Q4NDBmOTlhMmM2MzEyNjhlYTkyN2E2Yzc3MDMxZTQ3NTIuLjI4ZWI1
NzY2NDc0NTJkZWNhZjhkNjBlMmY2OGZkOTdmYjE1YzhmOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvV1RGLmd5cGkKKysrIGIvU291cmNlL1dURi9XVEYuZ3lwaQpAQCAtNTAsNiArNTAsNyBAQAog
ICAgICAgICAgICAgJ3d0Zi9NRDUuaCcsCiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQuaCcs
CiAgICAgICAgICAgICAnd3RmL01hdGhFeHRyYXMuaCcsCisgICAgICAgICAgICAnd3RmL01lbW9y
eUluc3RydW1lbnRhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50
YXRpb24uaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkFycmF5QnVm
ZmVyVmlldy5oJywKICAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaENv
dW50ZWRTZXQuaCcsCkBAIC02MCw2ICs2MSw3IEBACiAgICAgICAgICAgICAnd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvblNlcXVlbmNlLmgnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25TdHJpbmcuaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlv
blZlY3Rvci5oJywKKyAgICAgICAgICAgICd3dGYvTWVtb3J5T2JqZWN0SW5mby5oJywKICAgICAg
ICAgICAgICd3dGYvTWVzc2FnZVF1ZXVlLmgnLAogICAgICAgICAgICAgJ3d0Zi9Ob25Db3B5aW5n
U29ydC5oJywKICAgICAgICAgICAgICd3dGYvTm9uY29weWFibGUuaCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8KaW5kZXggOGJkMzAzYjFjMDU5
YmQzYjY0MDU4NjQzZmZiZjdiYzBlMGI2NmQ0Ny4uODBjZmYyYWIzMmI2OWQwOWIyNjUzMzVhOTA0
NjNkOWRhN2UzOGM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYucHJvCisrKyBiL1NvdXJj
ZS9XVEYvV1RGLnBybwpAQCAtOTcsNiArOTcsNyBAQCBIRUFERVJTICs9IFwKICAgICBNZW1vcnlJ
bnN0cnVtZW50YXRpb25TZXF1ZW5jZS5oIFwKICAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25TdHJp
bmcuaCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggXAorICAgIE1lbW9yeU9i
amVjdEluZm8uaCBcCiAgICAgTWVzc2FnZVF1ZXVlLmggXAogICAgIE1ldGFBbGxvY2F0b3IuaCBc
CiAgICAgTWV0YUFsbG9jYXRvckhhbmRsZS5oIFwKQEAgLTIxNCw2ICsyMTUsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBNRDUuY3BwIFwKICAgICBNYWluVGhyZWFkLmNwcCBcCiAgICAgTWVkaWFUaW1l
LmNwcCBcCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBcCiAgICAgTWV0YUFsbG9jYXRv
ci5jcHAgXAogICAgIE51bGxQdHIuY3BwIFwKICAgICBOdW1iZXJPZkNvcmVzLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvaiBiL1NvdXJjZS9XVEYvV1RG
LnZjcHJvai9XVEYudmNwcm9qCmluZGV4IGU1NDdmYzIzMmFkNjQ5NDBhN2IzOGI5NmRjMDBkNDhj
M2MwZGZmMGUuLjY4NjMzYWY0MmM1ODQ0YTJmMjhmNjViM2E3YmYwMmQ5OGI0ZTg1MTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCisrKyBiL1NvdXJjZS9XVEYv
V1RGLnZjcHJvai9XVEYudmNwcm9qCkBAIC05MDUsNiArOTA1LDEwIEBACiAJCQk+CiAJCTwvRmls
ZT4KIAkJPEZpbGUKKwkJICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxNZW1vcnlJbnN0cnVt
ZW50YXRpb24uY3BwIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCiAJCSAgICAgICAgUmVsYXRp
dmVQYXRoPSIuLlx3dGZcTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAJCQk+CiAJCTwvRmlsZT4K
QEAgLTk0MSw2ICs5NDUsMTAgQEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQorCQkgICAgICAg
IFJlbGF0aXZlUGF0aD0iLi5cd3RmXE1lbW9yeU9iamVjdEluZm8uaCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVzc2FnZVF1ZXVlLmgiCiAJCQk+
CiAJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDhhZWViZWQ2OTk1YTRhMTc2N2EwZWNkMzMzNGM4Y2VjYjgyODE3NTAuLmIyNzYzMWQxZmNkMzdh
YjVlMTdkMGZmMzJiYjM5YWIyMWI5NjNhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjkzLDYgKzI5Myw4IEBACiAJCUNENTQ5N0FDMTU4NTdEMDMwMEI1
QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi87
IH07CiAJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdEMDMwMEI1
QkMzMCAvKiBNZWRpYVRpbWUuaCAqLzsgfTsKIAkJRUI5NUUxRjAxNjFBNzI0MTAwODlBMkY1IC8q
IEJ5dGVPcmRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRUI5NUUxRUYxNjFBNzI0MTAwODlBMkY1IC8qIEJ5dGVPcmRlci5oICovOyB9OworCQlGMzIy
Q0NERjE2NTY5OUZGMDA0ODUyREQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzMjJDQ0RFMTY1Njk5RkYw
MDQ4NTJERCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwICovOyB9OworCQlGMzIyQ0NFMTE2
NTY5QTEwMDA0ODUyREQgLyogTWVtb3J5T2JqZWN0SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjMyMkNDRTAxNjU2OUExMDAwNDg1MkREIC8qIE1l
bW9yeU9iamVjdEluZm8uaCAqLzsgfTsKIAkJRjM1MjVFMkExNjE0OUZGNDAwMjc4QkMxIC8qIE1l
bW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzUyNUUyOTE2MTQ5RkY0MDAyNzhCQzEgLyogTWVtb3J5
SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCAqLzsgfTsKIAkJRjM1MjVFNDYxNjE5QTRFRTAw
Mjc4QkMxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzNTI1RTQ1MTYxOUE0RUUwMDI3OEJDMSAv
KiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmggKi87IH07CiAJCUYzRkJDNzFFMTYxQUY3
QkYwMEJCNEJENCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNGQkM3MUQxNjFBRjdC
RjAwQkI0QkQ0IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmggKi87IH07
CkBAIC01OTMsNiArNTk1LDggQEAKIAkJQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlh
VGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRpbWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0OTdBQjE1ODU3RDAzMDBCNUJD
MzAgLyogTWVkaWFUaW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
VGltZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjk1RTFFRjE2MUE3MjQxMDA4
OUEyRjUgLyogQnl0ZU9yZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ5
dGVPcmRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGMzIyQ0NERTE2NTY5OUZG
MDA0ODUyREQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUYzMjJDQ0UwMTY1NjlBMTAwMDQ4NTJERCAvKiBNZW1vcnlPYmpl
Y3RJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeU9iamVjdElu
Zm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM1MjVFMjkxNjE0OUZGNDAwMjc4
QkMxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzNTI1RTQ1MTYxOUE0RUUwMDI3OEJDMSAvKiBN
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjNGQkM3MUQxNjFBRjdCRjAwQkI0QkQ0IC8qIE1lbW9yeUluc3RydW1lbnRh
dGlvbkhhc2hDb3VudGVkU2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
bW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC03NDAsNiArNzQ0LDcgQEAKIAkJCQlBOEE0NzJDQjE1MUE4MjVCMDA0MTIzRkYg
LyogTUQ1LmggKi8sCiAJCQkJQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5j
cHAgKi8sCiAJCQkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oICovLAor
CQkJCUYzMjJDQ0RFMTY1Njk5RkYwMDQ4NTJERCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb24uY3Bw
ICovLAogCQkJCTRGMUQxMTUzMTVGRjExQkUwMDI2RTkwOCAvKiBNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCAqLywKIAkJCQk0RkQ4NTU0NjE2MTMzRTBFMDBDNUI3MDQgLyogTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uQXJyYXlCdWZmZXJWaWV3LmggKi8sCiAJCQkJRjNGQkM3MUQxNjFBRjdCRjAwQkI0QkQ0
IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmggKi8sCkBAIC03NTAsNiAr
NzU1LDcgQEAKIAkJCQlGM0ZCQzcxRjE2MUFGN0NEMDBCQjRCRDQgLyogTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uU2VxdWVuY2UuaCAqLywKIAkJCQk0RkNGMjdFMDE2MTcyRTg2MDBDQkYwMzcgLyogTWVt
b3J5SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmggKi8sCiAJCQkJNEZDQjcxMDkxNjBBMUEwNzAwODQy
NUVDIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oICovLAorCQkJCUYzMjJDQ0UwMTY1
NjlBMTAwMDQ4NTJERCAvKiBNZW1vcnlPYmplY3RJbmZvLmggKi8sCiAJCQkJQThBNDcyQ0MxNTFB
ODI1QjAwNDEyM0ZGIC8qIE1lc3NhZ2VRdWV1ZS5oICovLAogCQkJCUE4QTQ3MkNEMTUxQTgyNUIw
MDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9yLmNwcCAqLywKIAkJCQlBOEE0NzJDRTE1MUE4MjVCMDA0
MTIzRkYgLyogTWV0YUFsbG9jYXRvci5oICovLApAQCAtMTEwOSw2ICsxMTE1LDcgQEAKIAkJCQlG
M0ZCQzcyMDE2MUFGN0NEMDBCQjRCRDQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2VxdWVuY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTRGQ0YyN0UxMTYxNzJFODYwMENCRjAzNyAvKiBNZW1vcnlJ
bnN0cnVtZW50YXRpb25TdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGQ0I3MTBBMTYwQTFB
MDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCBpbiBIZWFkZXJzICov
LAorCQkJCUYzMjJDQ0UxMTY1NjlBMTAwMDQ4NTJERCAvKiBNZW1vcnlPYmplY3RJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEE0NzNFQjE1MUE4MjVCMDA0MTIzRkYgLyogTWVzc2FnZVF1ZXVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNFRDE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFs
bG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRUUxNTFBODI1QjAwNDEyM0ZGIC8q
IE1ldGFBbGxvY2F0b3JIYW5kbGUuaCBpbiBIZWFkZXJzICovLApAQCAtMTMzNiw2ICsxMzQzLDcg
QEAKIAkJCQlBOEE0NzNFNDE1MUE4MjVCMDA0MTIzRkYgLyogTWFpblRocmVhZE1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3M0U5MTUxQTgyNUIwMDQxMjNGRiAvKiBNRDUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQ0Q1NDk3QUMxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlGMzIyQ0NERjE2NTY5OUZGMDA0ODUyREQgLyogTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0VDMTUxQTgyNUIwMDQx
MjNGRiAvKiBNZXRhQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0YyMTUx
QTgyNUIwMDQxMjNGRiAvKiBOdWxsUHRyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y0
MTUxQTgyNUIwMDQxMjNGRiAvKiBOdW1iZXJPZkNvcmVzLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9D
TWFrZUxpc3RzLnR4dAppbmRleCBkYThkZWQ5M2JkNDYwOWJkNDM4ZmY5NDllNjY2OTc5NDUyNTA2
NzQ1Li42MTlkZTc5YzYyMTA2NjJlY2U4NTFjZWU2NWRjNDUxZmQ0MTc5ZDMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFr
ZUxpc3RzLnR4dApAQCAtNDYsNiArNDYsMTcgQEAgU0VUKFdURl9IRUFERVJTCiAgICAgTWFsbG9j
Wm9uZVN1cHBvcnQuaAogICAgIE1hdGhFeHRyYXMuaAogICAgIE1lZGlhVGltZS5oCisgICAgTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25BcnJheUJ1ZmZl
clZpZXcuaAorICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmgKKyAgICBN
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmgKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25I
YXNoU2V0LmgKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oCisgICAgTWVt
b3J5SW5zdHJ1bWVudGF0aW9uUGFyc2VkVVJMLmgKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25T
ZXF1ZW5jZS5oCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmgKKyAgICBNZW1vcnlJ
bnN0cnVtZW50YXRpb25WZWN0b3IuaAorICAgIE1lbW9yeU9iamVjdEluZm8uaCwKICAgICBNZXNz
YWdlUXVldWUuaAogICAgIE1ldGFBbGxvY2F0b3IuaAogICAgIE1ldGFBbGxvY2F0b3JIYW5kbGUu
aApAQCAtMTU3LDYgKzE2OCw3IEBAIFNFVChXVEZfU09VUkNFUwogICAgIE1lZGlhVGltZS5jcHAK
ICAgICBNZXRhQWxsb2NhdG9yLmNwcAogICAgIE9TUmFuZG9tU291cmNlLmNwcAorICAgIE1lbW9y
eUluc3RydW1lbnRhdGlvbi5jcHAKICAgICBOdW1iZXJPZkNvcmVzLmNwcAogICAgIFJBTVNpemUu
Y3BwCiAgICAgUGFnZUFsbG9jYXRpb25BbGlnbmVkLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDRiZTJiNmRjZmI0NjZmNTIxNmQ5NzFjNzEz
ZjJhMzkxOTEyNWUzNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvbi5jcHAKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCisKKyNpbmNsdWRlIDx3dGYvTWVtb3J5
T2JqZWN0SW5mby5oPgorCisjaWYgREVCVUdfUE9JTlRFUl9JTlNUUlVNRU5UQVRJT04KKyNpbmNs
dWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjZW5kaWYKKworbmFt
ZXNwYWNlIFdURiB7CisKK01lbW9yeUluc3RydW1lbnRhdGlvbjo6TWVtb3J5SW5zdHJ1bWVudGF0
aW9uKE1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudCogY2xpZW50KQorICAgIDogbV9jbGllbnQo
Y2xpZW50KQorICAgICwgbV9yb290T2JqZWN0SW5mbyhhZG9wdFB0cihuZXcgTWVtb3J5T2JqZWN0
SW5mbyh0aGlzLCAwKSkpCit7Cit9CisKK01lbW9yeUluc3RydW1lbnRhdGlvbjo6fk1lbW9yeUlu
c3RydW1lbnRhdGlvbigpCit7Cit9CisKK01lbW9yeU9iamVjdFR5cGUgTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uOjpnZXRPYmplY3RUeXBlKE1lbW9yeU9iamVjdEluZm8qIG9iamVjdEluZm8pCit7Cisg
ICAgcmV0dXJuIG9iamVjdEluZm8tPm9iamVjdFR5cGUoKTsKK30KKwordm9pZCBNZW1vcnlJbnN0
cnVtZW50YXRpb246OmNhbGxSZXBvcnRPYmplY3RJbmZvKE1lbW9yeU9iamVjdEluZm8qIG1lbW9y
eU9iamVjdEluZm8sIGNvbnN0IHZvaWQqIHBvaW50ZXIsIE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0
VHlwZSwgc2l6ZV90IG9iamVjdFNpemUpCit7CisgICAgbWVtb3J5T2JqZWN0SW5mby0+cmVwb3J0
T2JqZWN0SW5mbyhwb2ludGVyLCBvYmplY3RUeXBlLCBvYmplY3RTaXplKTsKK30KKworTWVtb3J5
SW5zdHJ1bWVudGF0aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyQmFzZTo6SW5zdHJ1bWVudGVkUG9p
bnRlckJhc2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKKyAgICA6IG1fb3du
ZXJPYmplY3RUeXBlKG1lbW9yeU9iamVjdEluZm8tPm9iamVjdFR5cGUoKSkKK3sKKyNpZiBERUJV
R19QT0lOVEVSX0lOU1RSVU1FTlRBVElPTgorICAgIG1fY2FsbFN0YWNrU2l6ZSA9IHNfbWF4Q2Fs
bFN0YWNrU2l6ZTsKKyAgICBXVEZHZXRCYWNrdHJhY2UobV9jYWxsU3RhY2ssICZtX2NhbGxTdGFj
a1NpemUpOworI2VuZGlmCit9CisKK3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpJbnN0cnVt
ZW50ZWRQb2ludGVyQmFzZTo6cHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50YXRpb24qIG1lbW9yeUlu
c3RydW1lbnRhdGlvbikKK3sKKyAgICBNZW1vcnlPYmplY3RJbmZvIG1lbW9yeU9iamVjdEluZm8o
bWVtb3J5SW5zdHJ1bWVudGF0aW9uLCBtX293bmVyT2JqZWN0VHlwZSk7CisgICAgY29uc3Qgdm9p
ZCogb3JpZ2luYWxQb2ludGVyID0gY2FsbFJlcG9ydE1lbW9yeVVzYWdlKCZtZW1vcnlPYmplY3RJ
bmZvKTsKKworICAgIGNvbnN0IHZvaWQqIHBvaW50ZXIgPSBtZW1vcnlPYmplY3RJbmZvLnJlcG9y
dGVkUG9pbnRlcigpOworICAgIEFTU0VSVChwb2ludGVyKTsKKyAgICBpZiAocG9pbnRlciAhPSBv
cmlnaW5hbFBvaW50ZXIgJiYgbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT52aXNpdGVkKHBvaW50ZXIp
KQorICAgICAgICByZXR1cm47CisgICAgbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5jb3VudE9iamVj
dFNpemUocG9pbnRlciwgbWVtb3J5T2JqZWN0SW5mby5vYmplY3RUeXBlKCksIG1lbW9yeU9iamVj
dEluZm8ub2JqZWN0U2l6ZSgpKTsKKyAgICBpZiAoIW1lbW9yeUluc3RydW1lbnRhdGlvbi0+Y2hl
Y2tDb3VudGVkT2JqZWN0KHBvaW50ZXIpKSB7CisjaWYgREVCVUdfUE9JTlRFUl9JTlNUUlVNRU5U
QVRJT04KKyAgICAgICAgZnB1dHMoIlVua25vd24gb2JqZWN0IGNvdW50ZWQ6XG4iLCBzdGRlcnIp
OworICAgICAgICBXVEZQcmludEJhY2t0cmFjZShtX2NhbGxTdGFjaywgbV9jYWxsU3RhY2tTaXpl
KTsKKyNlbmRpZgorICAgIH0KK30KKwordm9pZCBNZW1vcnlDbGFzc0luZm86OmluaXQoY29uc3Qg
dm9pZCogcG9pbnRlciwgTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RUeXBlLCBzaXplX3QgYWN0dWFs
U2l6ZSkKK3sKKyAgICBtX21lbW9yeU9iamVjdEluZm8tPnJlcG9ydE9iamVjdEluZm8ocG9pbnRl
ciwgb2JqZWN0VHlwZSwgYWN0dWFsU2l6ZSk7CisgICAgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24g
PSBtX21lbW9yeU9iamVjdEluZm8tPm1lbW9yeUluc3RydW1lbnRhdGlvbigpOworICAgIG1fb2Jq
ZWN0VHlwZSA9IG1fbWVtb3J5T2JqZWN0SW5mby0+b2JqZWN0VHlwZSgpOworfQorCit2b2lkIE1l
bW9yeUNsYXNzSW5mbzo6YWRkUmF3QnVmZmVyKGNvbnN0IHZvaWQqIGNvbnN0JiBidWZmZXIsIHNp
emVfdCBzaXplKQoreworICAgIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRSYXdCdWZmZXIo
YnVmZmVyLCBtX29iamVjdFR5cGUsIHNpemUpOworfQorCit2b2lkIE1lbW9yeUNsYXNzSW5mbzo6
YWRkUHJpdmF0ZUJ1ZmZlcihzaXplX3Qgc2l6ZSwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVj
dFR5cGUpCit7CisgICAgaWYgKCFzaXplKQorICAgICAgICByZXR1cm47CisgICAgaWYgKCFvd25l
ck9iamVjdFR5cGUpCisgICAgICAgIG93bmVyT2JqZWN0VHlwZSA9IG1fb2JqZWN0VHlwZTsKKyAg
ICBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+Y291bnRPYmplY3RTaXplKDAsIG93bmVyT2JqZWN0
VHlwZSwgc2l6ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb24uaAppbmRleCAxYzM4MjQzZTZiMTU1NjI4ZjM5Mzk2N2VkMGI2YWYzNjZi
MjVlOWM2Li40YzUyOWNlM2NjNTVmZmI2M2JmMWJlZDZjMWFmYWFhMzA2NmExY2FmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaApAQCAtMzcsMTEgKzM3LDYgQEAKIAogI2Rl
ZmluZSBERUJVR19QT0lOVEVSX0lOU1RSVU1FTlRBVElPTiAwCiAKLSNpZiBERUJVR19QT0lOVEVS
X0lOU1RSVU1FTlRBVElPTgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8
c3RkaW8uaD4KLSNlbmRpZgotCiBuYW1lc3BhY2UgV1RGIHsKIAogY2xhc3MgTWVtb3J5Q2xhc3NJ
bmZvOwpAQCAtNTUsNDMgKzUwLDYgQEAgZW51bSBNZW1vcnlPd25pbmdUeXBlIHsKICAgICBieVJl
ZmVyZW5jZQogfTsKIAotY2xhc3MgTWVtb3J5T2JqZWN0SW5mbyB7Ci1wdWJsaWM6Ci0gICAgTWVt
b3J5T2JqZWN0SW5mbyhNZW1vcnlJbnN0cnVtZW50YXRpb24qIG1lbW9yeUluc3RydW1lbnRhdGlv
biwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUpCi0gICAgICAgIDogbV9tZW1vcnlJ
bnN0cnVtZW50YXRpb24obWVtb3J5SW5zdHJ1bWVudGF0aW9uKQotICAgICAgICAsIG1fb2JqZWN0
VHlwZShvd25lck9iamVjdFR5cGUpCi0gICAgICAgICwgbV9vYmplY3RTaXplKDApCi0gICAgICAg
ICwgbV9wb2ludGVyKDApCi0gICAgeyB9Ci0KLSAgICB0eXBlZGVmIE1lbW9yeUNsYXNzSW5mbyBD
bGFzc0luZm87Ci0KLSAgICBNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUoKSBjb25zdCB7IHJl
dHVybiBtX29iamVjdFR5cGU7IH0KLSAgICBzaXplX3Qgb2JqZWN0U2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fb2JqZWN0U2l6ZTsgfQotICAgIGNvbnN0IHZvaWQqIHJlcG9ydGVkUG9pbnRlcigpIGNv
bnN0IHsgcmV0dXJuIG1fcG9pbnRlcjsgfQotCi0gICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBt
ZW1vcnlJbnN0cnVtZW50YXRpb24oKSB7IHJldHVybiBtX21lbW9yeUluc3RydW1lbnRhdGlvbjsg
fQotCi1wcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBNZW1vcnlDbGFzc0luZm87Ci0gICAgZnJp
ZW5kIGNsYXNzIE1lbW9yeUluc3RydW1lbnRhdGlvbjsKLQotICAgIHZvaWQgcmVwb3J0T2JqZWN0
SW5mbyhjb25zdCB2b2lkKiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUsIHNp
emVfdCBvYmplY3RTaXplKQotICAgIHsKLSAgICAgICAgaWYgKCFtX29iamVjdFNpemUpIHsKLSAg
ICAgICAgICAgIG1fcG9pbnRlciA9IHBvaW50ZXI7Ci0gICAgICAgICAgICBtX29iamVjdFNpemUg
PSBvYmplY3RTaXplOwotICAgICAgICAgICAgaWYgKG9iamVjdFR5cGUpCi0gICAgICAgICAgICAg
ICAgbV9vYmplY3RUeXBlID0gb2JqZWN0VHlwZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIE1l
bW9yeUluc3RydW1lbnRhdGlvbiogbV9tZW1vcnlJbnN0cnVtZW50YXRpb247Ci0gICAgTWVtb3J5
T2JqZWN0VHlwZSBtX29iamVjdFR5cGU7Ci0gICAgc2l6ZV90IG1fb2JqZWN0U2l6ZTsKLSAgICBj
b25zdCB2b2lkKiBtX3BvaW50ZXI7Ci19OwotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHJl
cG9ydE1lbW9yeVVzYWdlKGNvbnN0IFQqIGNvbnN0JiwgTWVtb3J5T2JqZWN0SW5mbyopOwogCiBj
bGFzcyBNZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnQgewpAQCAtMTA0LDIwICs2MiwzMiBAQCBw
dWJsaWM6CiAKIGNsYXNzIE1lbW9yeUluc3RydW1lbnRhdGlvbiB7CiBwdWJsaWM6Ci0gICAgZXhw
bGljaXQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uKE1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudCog
Y2xpZW50KSA6IG1fY2xpZW50KGNsaWVudCkgeyB9Ci0gICAgdmlydHVhbCB+TWVtb3J5SW5zdHJ1
bWVudGF0aW9uKCkgeyB9CisgICAgZXhwbGljaXQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uKE1lbW9y
eUluc3RydW1lbnRhdGlvbkNsaWVudCopOworICAgIHZpcnR1YWwgfk1lbW9yeUluc3RydW1lbnRh
dGlvbigpOwogCi0gICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IHZvaWQgYWRkUm9vdE9iamVjdChj
b25zdCBUJiB0LCBNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUgPSAwKQorICAgIHRlbXBsYXRl
IDx0eXBlbmFtZSBUPiB2b2lkIGFkZFJvb3RPYmplY3QoY29uc3QgVCYgdCkKICAgICB7Ci0gICAg
ICAgIGFkZE9iamVjdCh0LCBvYmplY3RUeXBlKTsKKyAgICAgICAgYWRkT2JqZWN0KHQsIG1fcm9v
dE9iamVjdEluZm8uZ2V0KCkpOwogICAgICAgICBwcm9jZXNzRGVmZXJyZWRJbnN0cnVtZW50ZWRQ
b2ludGVycygpOwogICAgIH0KIAogcHJvdGVjdGVkOgogICAgIGNsYXNzIEluc3RydW1lbnRlZFBv
aW50ZXJCYXNlIHsKICAgICBwdWJsaWM6CisgICAgICAgIEluc3RydW1lbnRlZFBvaW50ZXJCYXNl
KE1lbW9yeU9iamVjdEluZm8qKTsKICAgICAgICAgdmlydHVhbCB+SW5zdHJ1bWVudGVkUG9pbnRl
ckJhc2UoKSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3MoTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uKikgPSAwOworICAgICAgICB2b2lkIHByb2Nlc3MoTWVtb3J5SW5zdHJ1bWVudGF0aW9u
Kik7CisKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZpcnR1YWwgY29uc3Qgdm9pZCogY2FsbFJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSA9IDA7CisKKyAgICBwcml2YXRlOgor
ICAgICAgICBjb25zdCBNZW1vcnlPYmplY3RUeXBlIG1fb3duZXJPYmplY3RUeXBlOworI2lmIERF
QlVHX1BPSU5URVJfSU5TVFJVTUVOVEFUSU9OCisgICAgICAgIHN0YXRpYyBjb25zdCBpbnQgc19t
YXhDYWxsU3RhY2tTaXplID0gMzI7CisgICAgICAgIHZvaWQqIG1fY2FsbFN0YWNrW3NfbWF4Q2Fs
bFN0YWNrU2l6ZV07CisgICAgICAgIGludCBtX2NhbGxTdGFja1NpemU7CisjZW5kaWYKICAgICB9
OwogCiBwcml2YXRlOgpAQCAtMTI4LDYgKzk4LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgZGVmZXJJbnN0cnVtZW50ZWRQb2ludGVyKFBhc3NPd25QdHI8SW5zdHJ1bWVudGVkUG9pbnRl
ckJhc2U+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEZWZlcnJlZEluc3RydW1lbnRl
ZFBvaW50ZXJzKCkgPSAwOwogCisgICAgc3RhdGljIE1lbW9yeU9iamVjdFR5cGUgZ2V0T2JqZWN0
VHlwZShNZW1vcnlPYmplY3RJbmZvKik7CisKICAgICBmcmllbmQgY2xhc3MgTWVtb3J5Q2xhc3NJ
bmZvOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGZyaWVuZCB2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKGNvbnN0IFQqIGNvbnN0JiwgTWVtb3J5T2JqZWN0SW5mbyopOwogCkBAIC0xNDgsMjkgKzEy
MCwyNSBAQCBwcml2YXRlOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFR5cGU+
CiAgICAgc3RhdGljIHZvaWQgcmVwb3J0T2JqZWN0TWVtb3J5VXNhZ2UoY29uc3QgVCogY29uc3Qm
IG9iamVjdCwgTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbywgLi4uKQogICAgIHsK
LSAgICAgICAgbWVtb3J5T2JqZWN0SW5mby0+cmVwb3J0T2JqZWN0SW5mbyhvYmplY3QsIDAsIHNp
emVvZihUKSk7CisgICAgICAgIGNhbGxSZXBvcnRPYmplY3RJbmZvKG1lbW9yeU9iamVjdEluZm8s
IG9iamVjdCwgMCwgc2l6ZW9mKFQpKTsKICAgICB9CisgICAgc3RhdGljIHZvaWQgY2FsbFJlcG9y
dE9iamVjdEluZm8oTWVtb3J5T2JqZWN0SW5mbyosIGNvbnN0IHZvaWQqIHBvaW50ZXIsIE1lbW9y
eU9iamVjdFR5cGUsIHNpemVfdCBvYmplY3RTaXplKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+CiAgICAgc3RhdGljIHZvaWQgY291bnROb3RJbnN0cnVtZW50ZWRPYmplY3QoY29uc3QgVCog
Y29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBj
bGFzcyBJbnN0cnVtZW50ZWRQb2ludGVyIDogcHVibGljIEluc3RydW1lbnRlZFBvaW50ZXJCYXNl
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEluc3RydW1lbnRlZFBvaW50ZXIoY29uc3QgVCogcG9p
bnRlciwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUpOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgcHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50YXRpb24qKSBPVkVSUklERTsKKyAgICAgICAg
SW5zdHJ1bWVudGVkUG9pbnRlcihjb25zdCBUKiBwb2ludGVyLCBNZW1vcnlPYmplY3RJbmZvKiBv
d25lck9iamVjdEluZm8pOworCisgICAgcHJvdGVjdGVkOgorICAgICAgICB2aXJ0dWFsIGNvbnN0
IHZvaWQqIGNhbGxSZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgT1ZFUlJJREU7
CiAKICAgICBwcml2YXRlOgogICAgICAgICBjb25zdCBUKiBtX3BvaW50ZXI7Ci0gICAgICAgIGNv
bnN0IE1lbW9yeU9iamVjdFR5cGUgbV9vd25lck9iamVjdFR5cGU7Ci0KLSNpZiBERUJVR19QT0lO
VEVSX0lOU1RSVU1FTlRBVElPTgotICAgICAgICBzdGF0aWMgY29uc3QgaW50IHNfbWF4Q2FsbFN0
YWNrU2l6ZSA9IDMyOwotICAgICAgICB2b2lkKiBtX2NhbGxTdGFja1tzX21heENhbGxTdGFja1Np
emVdOwotICAgICAgICBpbnQgbV9jYWxsU3RhY2tTaXplOwotI2VuZGlmCiAgICAgfTsKIAotICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgYWRkT2JqZWN0KGNvbnN0IFQmIHQsIE1lbW9yeU9i
amVjdFR5cGUgb3duZXJPYmplY3RUeXBlKSB7IE93bmluZ1RyYWl0czxUPjo6YWRkT2JqZWN0KHRo
aXMsIHQsIG93bmVyT2JqZWN0VHlwZSk7IH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lk
IGFkZE9iamVjdChjb25zdCBUJiB0LCBNZW1vcnlPYmplY3RJbmZvKiBvd25lck9iamVjdEluZm8p
IHsgT3duaW5nVHJhaXRzPFQ+OjphZGRPYmplY3QodGhpcywgdCwgb3duZXJPYmplY3RJbmZvKTsg
fQogICAgIHZvaWQgYWRkUmF3QnVmZmVyKGNvbnN0IHZvaWQqIGNvbnN0JiBidWZmZXIsIE1lbW9y
eU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBzaXplX3Qgc2l6ZSkKICAgICB7CiAgICAgICAg
IGlmICghYnVmZmVyIHx8IHZpc2l0ZWQoYnVmZmVyKSkKQEAgLTE4MCw0OSArMTQ4LDQ4IEBAIHBy
aXZhdGU6CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIHN0cnVjdCBPd25pbmdUcmFp
dHMgeyAvLyBEZWZhdWx0IGJ5UmVmZXJlbmNlIGltcGxlbWVudGF0aW9uLgotICAgICAgICBzdGF0
aWMgdm9pZCBhZGRPYmplY3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24s
IGNvbnN0IFQmIHQsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlKQorICAgICAgICBz
dGF0aWMgdm9pZCBhZGRPYmplY3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRp
b24sIGNvbnN0IFQmIHQsIE1lbW9yeU9iamVjdEluZm8qIG93bmVyT2JqZWN0SW5mbykKICAgICAg
ICAgewotICAgICAgICAgICAgaW5zdHJ1bWVudGF0aW9uLT5hZGRPYmplY3RJbXBsKCZ0LCBvd25l
ck9iamVjdFR5cGUsIGJ5UmVmZXJlbmNlKTsKKyAgICAgICAgICAgIGluc3RydW1lbnRhdGlvbi0+
YWRkT2JqZWN0SW1wbCgmdCwgb3duZXJPYmplY3RJbmZvLCBieVJlZmVyZW5jZSk7CiAgICAgICAg
IH0KICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KICAgICBzdHJ1Y3QgT3duaW5n
VHJhaXRzPFQqPiB7IC8vIEN1c3RvbSBieVBvaW50ZXIgaW1wbGVtZW50YXRpb24uCi0gICAgICAg
IHN0YXRpYyB2b2lkIGFkZE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRh
dGlvbiwgY29uc3QgVCogY29uc3QmIHQsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBl
KQorICAgICAgICBzdGF0aWMgdm9pZCBhZGRPYmplY3QoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBp
bnN0cnVtZW50YXRpb24sIGNvbnN0IFQqIGNvbnN0JiB0LCBNZW1vcnlPYmplY3RJbmZvKiBvd25l
ck9iamVjdEluZm8pCiAgICAgICAgIHsKLSAgICAgICAgICAgIGluc3RydW1lbnRhdGlvbi0+YWRk
T2JqZWN0SW1wbCh0LCBvd25lck9iamVjdFR5cGUsIGJ5UG9pbnRlcik7CisgICAgICAgICAgICBp
bnN0cnVtZW50YXRpb24tPmFkZE9iamVjdEltcGwodCwgb3duZXJPYmplY3RJbmZvLCBieVBvaW50
ZXIpOwogICAgICAgICB9CiAgICAgfTsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQg
YWRkT2JqZWN0SW1wbChjb25zdCBUKiBjb25zdCYsIE1lbW9yeU9iamVjdFR5cGUsIE1lbW9yeU93
bmluZ1R5cGUpOwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgYWRkT2JqZWN0SW1wbChj
b25zdCBPd25QdHI8VD4qIGNvbnN0JiwgTWVtb3J5T2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlw
ZSk7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBhZGRPYmplY3RJbXBsKGNvbnN0IFJl
ZlB0cjxUPiogY29uc3QmLCBNZW1vcnlPYmplY3RUeXBlLCBNZW1vcnlPd25pbmdUeXBlKTsKKyAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGFkZE9iamVjdEltcGwoY29uc3QgVCogY29uc3Qm
LCBNZW1vcnlPYmplY3RJbmZvKiwgTWVtb3J5T3duaW5nVHlwZSk7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gdm9pZCBhZGRPYmplY3RJbXBsKGNvbnN0IE93blB0cjxUPiogY29uc3QmLCBNZW1v
cnlPYmplY3RJbmZvKiwgTWVtb3J5T3duaW5nVHlwZSk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gdm9pZCBhZGRPYmplY3RJbXBsKGNvbnN0IFJlZlB0cjxUPiogY29uc3QmLCBNZW1vcnlPYmpl
Y3RJbmZvKiwgTWVtb3J5T3duaW5nVHlwZSk7CiAKICAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25D
bGllbnQqIG1fY2xpZW50OworICAgIE93blB0cjxNZW1vcnlPYmplY3RJbmZvPiBtX3Jvb3RPYmpl
Y3RJbmZvOwogfTsKIAogY2xhc3MgTWVtb3J5Q2xhc3NJbmZvIHsKIHB1YmxpYzoKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgotICAgIE1lbW9yeUNsYXNzSW5mbyhNZW1vcnlPYmplY3RJbmZvKiBt
ZW1vcnlPYmplY3RJbmZvLCBjb25zdCBUKiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlIG9iamVj
dFR5cGUgPSAwLCBzaXplX3QgYWN0dWFsU2l6ZSA9IDApCisgICAgTWVtb3J5Q2xhc3NJbmZvKE1l
bW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8sIGNvbnN0IFQqIHBvaW50ZXIsIE1lbW9y
eU9iamVjdFR5cGUgb2JqZWN0VHlwZSA9IDAsIHNpemVfdCBhY3R1YWxTaXplID0gc2l6ZW9mKFQp
KQogICAgICAgICA6IG1fbWVtb3J5T2JqZWN0SW5mbyhtZW1vcnlPYmplY3RJbmZvKQotICAgICAg
ICAsIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uKG1lbW9yeU9iamVjdEluZm8tPm1lbW9yeUluc3Ry
dW1lbnRhdGlvbigpKQorICAgICAgICAsIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uKDApCisgICAg
ICAgICwgbV9vYmplY3RUeXBlKDApCiAgICAgewotICAgICAgICBtX21lbW9yeU9iamVjdEluZm8t
PnJlcG9ydE9iamVjdEluZm8ocG9pbnRlciwgb2JqZWN0VHlwZSwgYWN0dWFsU2l6ZSA/IGFjdHVh
bFNpemUgOiBzaXplb2YoVCkpOwotICAgICAgICBtX29iamVjdFR5cGUgPSBtZW1vcnlPYmplY3RJ
bmZvLT5vYmplY3RUeXBlKCk7CisgICAgICAgIGluaXQocG9pbnRlciwgb2JqZWN0VHlwZSwgYWN0
dWFsU2l6ZSk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgTT4gdm9pZCBhZGRNZW1i
ZXIoY29uc3QgTSYgbWVtYmVyKSB7IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5hZGRPYmplY3Qo
bWVtYmVyLCBtX29iamVjdFR5cGUpOyB9Ci0gICAgdm9pZCBhZGRSYXdCdWZmZXIoY29uc3Qgdm9p
ZCogY29uc3QmIGJ1ZmZlciwgc2l6ZV90IHNpemUpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24t
PmFkZFJhd0J1ZmZlcihidWZmZXIsIG1fb2JqZWN0VHlwZSwgc2l6ZSk7IH0KLSAgICB2b2lkIGFk
ZFByaXZhdGVCdWZmZXIoc2l6ZV90IHNpemUsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RU
eXBlID0gMCkKLSAgICB7Ci0gICAgICAgIGlmIChzaXplKQotICAgICAgICAgICAgbV9tZW1vcnlJ
bnN0cnVtZW50YXRpb24tPmNvdW50T2JqZWN0U2l6ZSgwLCBvd25lck9iamVjdFR5cGUgPyBvd25l
ck9iamVjdFR5cGUgOiBtX29iamVjdFR5cGUsIHNpemUpOwotICAgIH0KKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBNPiB2b2lkIGFkZE1lbWJlcihjb25zdCBNJiBtZW1iZXIpIHsgbV9tZW1vcnlJbnN0
cnVtZW50YXRpb24tPmFkZE9iamVjdChtZW1iZXIsIG1fbWVtb3J5T2JqZWN0SW5mbyk7IH0KKyAg
ICB2b2lkIGFkZFJhd0J1ZmZlcihjb25zdCB2b2lkKiBjb25zdCYgYnVmZmVyLCBzaXplX3QpOwor
ICAgIHZvaWQgYWRkUHJpdmF0ZUJ1ZmZlcihzaXplX3QsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJP
YmplY3RUeXBlID0gMCk7CiAKICAgICB2b2lkIGFkZFdlYWtQb2ludGVyKHZvaWQqKSB7IH0KIAog
cHJpdmF0ZToKKyAgICB2b2lkIGluaXQoY29uc3Qgdm9pZCogcG9pbnRlciwgTWVtb3J5T2JqZWN0
VHlwZSwgc2l6ZV90IGFjdHVhbFNpemUpOworCiAgICAgTWVtb3J5T2JqZWN0SW5mbyogbV9tZW1v
cnlPYmplY3RJbmZvOwogICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbiogbV9tZW1vcnlJbnN0cnVt
ZW50YXRpb247CiAgICAgTWVtb3J5T2JqZWN0VHlwZSBtX29iamVjdFR5cGU7CkBAIC0yMzUsNjIg
KzIwMiw0NSBAQCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFQqIGNvbnN0JiBvYmplY3Qs
IE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgotdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZE9iamVjdEltcGwoY29uc3QgVCog
Y29uc3QmIG9iamVjdCwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUsIE1lbW9yeU93
bmluZ1R5cGUgb3duaW5nVHlwZSkKK3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmpl
Y3RJbXBsKGNvbnN0IFQqIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdEluZm8qIG93bmVyT2Jq
ZWN0SW5mbywgTWVtb3J5T3duaW5nVHlwZSBvd25pbmdUeXBlKQogewotICAgIGlmIChvd25pbmdU
eXBlID09IGJ5UmVmZXJlbmNlKSB7Ci0gICAgICAgIE1lbW9yeU9iamVjdEluZm8gbWVtb3J5T2Jq
ZWN0SW5mbyh0aGlzLCBvd25lck9iamVjdFR5cGUpOwotICAgICAgICByZXBvcnRNZW1vcnlVc2Fn
ZShvYmplY3QsICZtZW1vcnlPYmplY3RJbmZvKTsKLSAgICB9IGVsc2UgeworICAgIGlmIChvd25p
bmdUeXBlID09IGJ5UmVmZXJlbmNlKQorICAgICAgICByZXBvcnRNZW1vcnlVc2FnZShvYmplY3Qs
IG93bmVyT2JqZWN0SW5mbyk7CisgICAgZWxzZSB7CiAgICAgICAgIGlmICghb2JqZWN0IHx8IHZp
c2l0ZWQob2JqZWN0KSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgZGVmZXJJbnN0cnVt
ZW50ZWRQb2ludGVyKGFkb3B0UHRyKG5ldyBJbnN0cnVtZW50ZWRQb2ludGVyPFQ+KG9iamVjdCwg
b3duZXJPYmplY3RUeXBlKSkpOworICAgICAgICBkZWZlckluc3RydW1lbnRlZFBvaW50ZXIoYWRv
cHRQdHIobmV3IEluc3RydW1lbnRlZFBvaW50ZXI8VD4ob2JqZWN0LCBvd25lck9iamVjdEluZm8p
KSk7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotdm9pZCBNZW1vcnlJbnN0cnVt
ZW50YXRpb246OmFkZE9iamVjdEltcGwoY29uc3QgT3duUHRyPFQ+KiBjb25zdCYgb2JqZWN0LCBN
ZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSwgTWVtb3J5T3duaW5nVHlwZSBvd25pbmdU
eXBlKQordm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZE9iamVjdEltcGwoY29uc3QgT3du
UHRyPFQ+KiBjb25zdCYgb2JqZWN0LCBNZW1vcnlPYmplY3RJbmZvKiBvd25lck9iamVjdEluZm8s
IE1lbW9yeU93bmluZ1R5cGUgb3duaW5nVHlwZSkKIHsKICAgICBpZiAob3duaW5nVHlwZSA9PSBi
eVBvaW50ZXIgJiYgIXZpc2l0ZWQob2JqZWN0KSkKLSAgICAgICAgY291bnRPYmplY3RTaXplKG9i
amVjdCwgb3duZXJPYmplY3RUeXBlLCBzaXplb2YoKm9iamVjdCkpOwotICAgIGFkZE9iamVjdElt
cGwob2JqZWN0LT5nZXQoKSwgb3duZXJPYmplY3RUeXBlLCBieVBvaW50ZXIpOworICAgICAgICBj
b3VudE9iamVjdFNpemUob2JqZWN0LCBnZXRPYmplY3RUeXBlKG93bmVyT2JqZWN0SW5mbyksIHNp
emVvZigqb2JqZWN0KSk7CisgICAgYWRkT2JqZWN0SW1wbChvYmplY3QtPmdldCgpLCBvd25lck9i
amVjdEluZm8sIGJ5UG9pbnRlcik7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkIE1l
bW9yeUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0SW1wbChjb25zdCBSZWZQdHI8VD4qIGNvbnN0
JiBvYmplY3QsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBNZW1vcnlPd25pbmdU
eXBlIG93bmluZ1R5cGUpCit2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0SW1w
bChjb25zdCBSZWZQdHI8VD4qIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdEluZm8qIG93bmVy
T2JqZWN0SW5mbywgTWVtb3J5T3duaW5nVHlwZSBvd25pbmdUeXBlKQogewogICAgIGlmIChvd25p
bmdUeXBlID09IGJ5UG9pbnRlciAmJiAhdmlzaXRlZChvYmplY3QpKQotICAgICAgICBjb3VudE9i
amVjdFNpemUob2JqZWN0LCBvd25lck9iamVjdFR5cGUsIHNpemVvZigqb2JqZWN0KSk7Ci0gICAg
YWRkT2JqZWN0SW1wbChvYmplY3QtPmdldCgpLCBvd25lck9iamVjdFR5cGUsIGJ5UG9pbnRlcik7
CisgICAgICAgIGNvdW50T2JqZWN0U2l6ZShvYmplY3QsIGdldE9iamVjdFR5cGUob3duZXJPYmpl
Y3RJbmZvKSwgc2l6ZW9mKCpvYmplY3QpKTsKKyAgICBhZGRPYmplY3RJbXBsKG9iamVjdC0+Z2V0
KCksIG93bmVyT2JqZWN0SW5mbywgYnlQb2ludGVyKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUg
VD4KLU1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVudGVkUG9pbnRlcjxUPjo6SW5zdHJ1
bWVudGVkUG9pbnRlcihjb25zdCBUKiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2Jq
ZWN0VHlwZSkKLSAgICA6IG1fcG9pbnRlcihwb2ludGVyKQotICAgICwgbV9vd25lck9iamVjdFR5
cGUob3duZXJPYmplY3RUeXBlKQorTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpJbnN0cnVtZW50ZWRQ
b2ludGVyPFQ+OjpJbnN0cnVtZW50ZWRQb2ludGVyKGNvbnN0IFQqIHBvaW50ZXIsIE1lbW9yeU9i
amVjdEluZm8qIG93bmVyT2JqZWN0SW5mbykKKyAgICA6IEluc3RydW1lbnRlZFBvaW50ZXJCYXNl
KG93bmVyT2JqZWN0SW5mbykKKyAgICAsIG1fcG9pbnRlcihwb2ludGVyKQogewotI2lmIERFQlVH
X1BPSU5URVJfSU5TVFJVTUVOVEFUSU9OCi0gICAgbV9jYWxsU3RhY2tTaXplID0gc19tYXhDYWxs
U3RhY2tTaXplOwotICAgIFdURkdldEJhY2t0cmFjZShtX2NhbGxTdGFjaywgJm1fY2FsbFN0YWNr
U2l6ZSk7Ci0jZW5kaWYKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLXZvaWQgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyPFQ+Ojpwcm9jZXNzKE1lbW9yeUluc3Ry
dW1lbnRhdGlvbiogbWVtb3J5SW5zdHJ1bWVudGF0aW9uKQorY29uc3Qgdm9pZCogTWVtb3J5SW5z
dHJ1bWVudGF0aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyPFQ+OjpjYWxsUmVwb3J0TWVtb3J5VXNh
Z2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykKIHsKLSAgICBNZW1vcnlPYmpl
Y3RJbmZvIG1lbW9yeU9iamVjdEluZm8obWVtb3J5SW5zdHJ1bWVudGF0aW9uLCBtX293bmVyT2Jq
ZWN0VHlwZSk7Ci0gICAgcmVwb3J0TWVtb3J5VXNhZ2UobV9wb2ludGVyLCAmbWVtb3J5T2JqZWN0
SW5mbyk7Ci0KLSAgICBjb25zdCB2b2lkKiBwb2ludGVyID0gbWVtb3J5T2JqZWN0SW5mby5yZXBv
cnRlZFBvaW50ZXIoKTsKLSAgICBBU1NFUlQocG9pbnRlcik7Ci0gICAgaWYgKHBvaW50ZXIgIT0g
bV9wb2ludGVyICYmIG1lbW9yeUluc3RydW1lbnRhdGlvbi0+dmlzaXRlZChwb2ludGVyKSkKLSAg
ICAgICAgcmV0dXJuOwotICAgIG1lbW9yeUluc3RydW1lbnRhdGlvbi0+Y291bnRPYmplY3RTaXpl
KHBvaW50ZXIsIG1lbW9yeU9iamVjdEluZm8ub2JqZWN0VHlwZSgpLCBtZW1vcnlPYmplY3RJbmZv
Lm9iamVjdFNpemUoKSk7Ci0gICAgaWYgKCFtZW1vcnlJbnN0cnVtZW50YXRpb24tPmNoZWNrQ291
bnRlZE9iamVjdChwb2ludGVyKSkgewotI2lmIERFQlVHX1BPSU5URVJfSU5TVFJVTUVOVEFUSU9O
Ci0gICAgICAgIGZwdXRzKCJVbmtub3duIG9iamVjdCBjb3VudGVkOlxuIiwgc3RkZXJyKTsKLSAg
ICAgICAgV1RGUHJpbnRCYWNrdHJhY2UobV9jYWxsU3RhY2ssIG1fY2FsbFN0YWNrU2l6ZSk7Ci0j
ZW5kaWYKLSAgICB9CisgICAgcmVwb3J0TWVtb3J5VXNhZ2UobV9wb2ludGVyLCBtZW1vcnlPYmpl
Y3RJbmZvKTsKKyAgICByZXR1cm4gbV9wb2ludGVyOwogfQogCiAvLyBMaW5rIHRpbWUgZ3VhcmQg
Zm9yIGNsYXNzZXMgd2l0aCBleHRlcm5hbCBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uLgpAQCAtMzI5
LDYgKzI3OSw0IEBAIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgVVJMU3RyaW5nKiBjb25z
dCYsIE1lbW9yeU9iamVjdEluZm8qKTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKLSN1bmRlZiBE
RUJVR19QT0lOVEVSX0lOU1RSVU1FTlRBVElPTgotCiAjZW5kaWYgLy8gIWRlZmluZWQoTWVtb3J5
SW5zdHJ1bWVudGF0aW9uX2gpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlPYmpl
Y3RJbmZvLmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlPYmplY3RJbmZvLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MWM3ZmU2YzgzNjJjMWE0ZjE1MjRiZDVhMzkyODc1YTg2YWJkODIzNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeU9iamVjdEluZm8uaApAQCAtMCwwICsxLDgwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAq
IGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4g
bm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisg
KiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBNZW1vcnlPYmplY3RJbmZvX2gKKyNkZWZpbmUgTWVtb3J5T2JqZWN0SW5mb19oCisKK25h
bWVzcGFjZSBXVEYgeworCitjbGFzcyBNZW1vcnlDbGFzc0luZm87CitjbGFzcyBNZW1vcnlJbnN0
cnVtZW50YXRpb247CisKK3R5cGVkZWYgY29uc3QgY2hhciogTWVtb3J5T2JqZWN0VHlwZTsKKwor
Y2xhc3MgTWVtb3J5T2JqZWN0SW5mbyB7CitwdWJsaWM6CisgICAgTWVtb3J5T2JqZWN0SW5mbyhN
ZW1vcnlJbnN0cnVtZW50YXRpb24qIG1lbW9yeUluc3RydW1lbnRhdGlvbiwgTWVtb3J5T2JqZWN0
VHlwZSBvd25lck9iamVjdFR5cGUpCisgICAgICAgIDogbV9tZW1vcnlJbnN0cnVtZW50YXRpb24o
bWVtb3J5SW5zdHJ1bWVudGF0aW9uKQorICAgICAgICAsIG1fb2JqZWN0VHlwZShvd25lck9iamVj
dFR5cGUpCisgICAgICAgICwgbV9vYmplY3RTaXplKDApCisgICAgICAgICwgbV9wb2ludGVyKDAp
CisgICAgeyB9CisKKyAgICB0eXBlZGVmIE1lbW9yeUNsYXNzSW5mbyBDbGFzc0luZm87CisKKyAg
ICBNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUoKSBjb25zdCB7IHJldHVybiBtX29iamVjdFR5
cGU7IH0KKyAgICBzaXplX3Qgb2JqZWN0U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0U2l6
ZTsgfQorICAgIGNvbnN0IHZvaWQqIHJlcG9ydGVkUG9pbnRlcigpIGNvbnN0IHsgcmV0dXJuIG1f
cG9pbnRlcjsgfQorCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBtZW1vcnlJbnN0cnVtZW50
YXRpb24oKSB7IHJldHVybiBtX21lbW9yeUluc3RydW1lbnRhdGlvbjsgfQorCitwcml2YXRlOgor
ICAgIGZyaWVuZCBjbGFzcyBNZW1vcnlDbGFzc0luZm87CisgICAgZnJpZW5kIGNsYXNzIE1lbW9y
eUluc3RydW1lbnRhdGlvbjsKKworICAgIHZvaWQgcmVwb3J0T2JqZWN0SW5mbyhjb25zdCB2b2lk
KiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUsIHNpemVfdCBvYmplY3RTaXpl
KQorICAgIHsKKyAgICAgICAgaWYgKCFtX29iamVjdFNpemUpIHsKKyAgICAgICAgICAgIG1fcG9p
bnRlciA9IHBvaW50ZXI7CisgICAgICAgICAgICBtX29iamVjdFNpemUgPSBvYmplY3RTaXplOwor
ICAgICAgICAgICAgaWYgKG9iamVjdFR5cGUpCisgICAgICAgICAgICAgICAgbV9vYmplY3RUeXBl
ID0gb2JqZWN0VHlwZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIE1lbW9yeUluc3RydW1lbnRh
dGlvbiogbV9tZW1vcnlJbnN0cnVtZW50YXRpb247CisgICAgTWVtb3J5T2JqZWN0VHlwZSBtX29i
amVjdFR5cGU7CisgICAgc2l6ZV90IG1fb2JqZWN0U2l6ZTsKKyAgICBjb25zdCB2b2lkKiBtX3Bv
aW50ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlmIC8vICFkZWZpbmVkKE1l
bW9yeU9iamVjdEluZm9faCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL0ZGVEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1l
LmNwcAppbmRleCA2M2M4N2RkYzkyOTYxY2FhMGU4NDY5NzViNjIwNWI5MTExNzlmZmM5Li5lZWU0
NWRlOGFiM2QyYzAyYjFlMjY3MjNjMzY0YjBkZjkwZGQ1Yzk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAi
UGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxleC5o
PgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeU9iamVj
dEluZm8uaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKICNpZiAhVVNFX0FDQ0VMRVJBVEVf
RkZUICYmIFVTRShXRUJBVURJT19GRk1QRUcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBkN2Y0MTgxNmFkMDNiOGIxZWIwOGFmZmI5ODIy
YmFjOGUyMDYwNTBiLi42ZWNhYTA0MTdhODBhYmYwMTI2ZWMxNTY1YzIwZmJkMjZmMDEyM2E0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAg
LTQxLDYgKzQxLDcgQEAKICNlbmRpZgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50
YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmg+Cisj
aW5jbHVkZSA8d3RmL01lbW9yeU9iamVjdEluZm8uaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0
cmFzLmg+CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggYjFi
YTU5ODZhNDkyMmZkYzU1MzViMWE0ZGI0NzVlYzI3MjRlYWY3ZC4uNDM0ZTNjY2YwODM3OTBlOGNi
NWM1MzJjMmRiYjRiMWVkNGExMzhiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApAQCAtMjgsNiArMjgs
NyBAQAogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiU2hhZG93
RGF0YS5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNs
dWRlIDx3dGYvTWVtb3J5T2JqZWN0SW5mby5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCAxYzZjYjE4NzliMmQ5NWM4NTgwYTk5MThlM2JkZmE2
Mzc4MjczNmM0Li5lZDllOWEyZWZkNDlmMGQyNDRmOGJjYTIyNjI1ZWM2YTRlM2ZkYTVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJp
dGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViQ29y
ZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50
YXRpb25IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rv
ci5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlPYmplY3RJbmZvLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcAppbmRleCA3MzQ4MDYyZDkxNDcyNmU5MDFhM2Q1
MDU3YjlhN2JiMDI3NzEyYmE0Li5kYWQwOGRkYTQ1ZDcyZWNmZGU4NzRiNjNkMzMwMTRmYjc5Mjkw
NWVlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZW1vcnlJbnN0
cnVtZW50YXRpb25UZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUg
PHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9N
ZW1vcnlJbnN0cnVtZW50YXRpb25TdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1
bWVudGF0aW9uVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeU9iamVjdEluZm8uaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174911</attachid>
            <date>2012-11-19 01:22:17 -0800</date>
            <delta_ts>2012-11-19 02:08:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102510-20121119132007.patch</filename>
            <type>text/plain</type>
            <size>35312</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJjMzBjY2U2Y2U4OGRiM2M0ZWY0Yzcz
NTlkNDE0OTA4MGFmNDFhMTcuLmNkNWYxZTg0NDhhNjg5YTQ1NDJlZmU0NTQwMDEwYzc1ZWViYTI5
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTItMTEtMTYgIFl1cnkgU2VtaWtoYXRza3kgIDx5
dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWVtb3J5IGluc3RydW1lbnRhdGlvbjogZXh0
cmFjdCBNZW1vcnlPYmplY3RJbmZvIGRlY2xhcmF0aW9uIGludG8gYSBzZXBhcmF0ZSBmaWxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI1MTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCBNZW1v
cnlPYmplY3RJbmZvIGludG8gc2VwYXJhdGUgaGVhZGVyLiBNb3ZlZCBkZWZpbml0aW9uIG9mIE1l
bW9yeUluc3RydW1lbnRhdGlvbgorICAgICAgICBtZXRob2RzIHRoYXQgZGVwZW5kIG9uIE1lbW9y
eU9iamVjdEluZm8gZGVjbGFyYXRpb24gaW50byBNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwIHRv
CisgICAgICAgIG1ha2UgTWVtb3J5SW5zdHJ1bWVudGF0aW9uIHJlcXVpcmUgb25seSBmb3J3YXJk
IGRlY2xhcmF0aW9uIG9mIE1lbW9yeU9iamVjdEluZm8uCisKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIFdURi5neXBpOgorICAgICAgICAqIFdURi5wcm86CisgICAg
ICAgICogV1RGLnZjcHJvai9XVEYudmNwcm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDogQWRkZWQuCisgICAg
ICAgIChXVEYpOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246Ok1lbW9yeUlu
c3RydW1lbnRhdGlvbik6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6fk1l
bW9yeUluc3RydW1lbnRhdGlvbik6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlv
bjo6Z2V0T2JqZWN0VHlwZSk6IHRoaXMgbWV0aG9kIGFsbG93cyB0byBnZXQgb2JqZWN0IHR5cGUg
d2l0aG91dAorICAgICAgICBwdWxsaW5nIGluIE1lbW9yeU9iamVjdEluZm8uaCBhbmQgYWxsIGl0
cyBkZXBlbmRlbmNpZXMuCisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6Y2Fs
bFJlcG9ydE9iamVjdEluZm8pOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246
Okluc3RydW1lbnRlZFBvaW50ZXJCYXNlOjpJbnN0cnVtZW50ZWRQb2ludGVyQmFzZSk6CisgICAg
ICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U6
OnByb2Nlc3MpOgorICAgICAgICAoV1RGOjpNZW1vcnlDbGFzc0luZm86OmluaXQpOgorICAgICAg
ICAoV1RGOjpNZW1vcnlDbGFzc0luZm86OmFkZFJhd0J1ZmZlcik6CisgICAgICAgIChXVEY6Ok1l
bW9yeUNsYXNzSW5mbzo6YWRkUHJpdmF0ZUJ1ZmZlcik6CisgICAgICAgICogd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKToKKyAgICAg
ICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRSb290T2JqZWN0KToKKyAgICAgICAg
KEluc3RydW1lbnRlZFBvaW50ZXJCYXNlKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVu
dGF0aW9uOjpyZXBvcnRPYmplY3RNZW1vcnlVc2FnZSk6CisgICAgICAgIChJbnN0cnVtZW50ZWRQ
b2ludGVyKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3Qp
OiB3ZSBub3cgcGFzcyBvd25lcidzIE1lbW9yeU9iamVjdEluZm8gaW4gYWxsIHBsYWNlcworICAg
ICAgICB3aGVyZSB3ZSByZXBvcnQgb2JqZWN0cyBwb2ludGVkIGJ5IHRoZSBvd25lci4KKyAgICAg
ICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPd25pbmdUcmFpdHM6OmFkZE9iamVjdCk6
CisgICAgICAgIChXVEY6Ok1lbW9yeUNsYXNzSW5mbzo6TWVtb3J5Q2xhc3NJbmZvKToKKyAgICAg
ICAgKFdURjo6TWVtb3J5Q2xhc3NJbmZvOjphZGRNZW1iZXIpOgorICAgICAgICAoTWVtb3J5Q2xh
c3NJbmZvKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJ
bXBsKToKKyAgICAgICAgKFdURjo6OjpJbnN0cnVtZW50ZWRQb2ludGVyKToKKyAgICAgICAgKFdU
Rjo6OjpjYWxsUmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIHd0Zi9NZW1vcnlPYmplY3RJ
bmZvLmg6IEFkZGVkLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKE1lbW9yeU9iamVjdEluZm8p
OgorICAgICAgICAoV1RGOjpNZW1vcnlPYmplY3RJbmZvOjpNZW1vcnlPYmplY3RJbmZvKToKKyAg
ICAgICAgKFdURjo6TWVtb3J5T2JqZWN0SW5mbzo6b2JqZWN0VHlwZSk6CisgICAgICAgIChXVEY6
Ok1lbW9yeU9iamVjdEluZm86Om9iamVjdFNpemUpOgorICAgICAgICAoV1RGOjpNZW1vcnlPYmpl
Y3RJbmZvOjpyZXBvcnRlZFBvaW50ZXIpOgorICAgICAgICAoV1RGOjpNZW1vcnlPYmplY3RJbmZv
OjptZW1vcnlJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAoV1RGOjpNZW1vcnlPYmplY3RJbmZv
OjpyZXBvcnRPYmplY3RJbmZvKToKKwogMjAxMi0xMS0xOCAgTGFzemxvIEdvbWJvcyAgPGwuZ29t
Ym9zQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFJlbW92ZSBub24tZXhpc3RlbnQgZGlyZWN0b3Jp
ZXMgZnJvbSB0aGUgbWFrZSBzeXN0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZp
bGUubGlzdC5hbSBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5ZDRmMGQ3
ZTViMDc5YTJjZGFmMGM1MzUwYTkwYWJjMmM1OTk5Y2ZlLi5mOWRiOGMwMmMxNDA4MTlhYjZmZTBk
YTI4MTU0ZDZlZTNlMzZhMWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxp
c3QuYW0KKysrIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC04MCw2ICs4MCw3
IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmggXAog
ICAgIFNvdXJjZS9XVEYvd3RmL01lZGlhVGltZS5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZWRp
YVRpbWUuY3BwIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uY3Bw
IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBcCiAgICAgU291
cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uQXJyYXlCdWZmZXJWaWV3LmggXAogICAg
IFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmggXApA
QCAtOTAsNiArOTEsNyBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uU2VxdWVuY2UuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvblZlY3Rvci5oIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlPYmplY3RJbmZv
LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oIFwKICAgICBTb3VyY2UvV1RG
L3d0Zi9NZXRhQWxsb2NhdG9yLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRv
ci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3VyY2UvV1RGL1dURi5n
eXBpCmluZGV4IGY1NDA3N2Q4NDBmOTlhMmM2MzEyNjhlYTkyN2E2Yzc3MDMxZTQ3NTIuLjI4ZWI1
NzY2NDc0NTJkZWNhZjhkNjBlMmY2OGZkOTdmYjE1YzhmOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvV1RGLmd5cGkKKysrIGIvU291cmNlL1dURi9XVEYuZ3lwaQpAQCAtNTAsNiArNTAsNyBAQAog
ICAgICAgICAgICAgJ3d0Zi9NRDUuaCcsCiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQuaCcs
CiAgICAgICAgICAgICAnd3RmL01hdGhFeHRyYXMuaCcsCisgICAgICAgICAgICAnd3RmL01lbW9y
eUluc3RydW1lbnRhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50
YXRpb24uaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkFycmF5QnVm
ZmVyVmlldy5oJywKICAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaENv
dW50ZWRTZXQuaCcsCkBAIC02MCw2ICs2MSw3IEBACiAgICAgICAgICAgICAnd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvblNlcXVlbmNlLmgnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25TdHJpbmcuaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlv
blZlY3Rvci5oJywKKyAgICAgICAgICAgICd3dGYvTWVtb3J5T2JqZWN0SW5mby5oJywKICAgICAg
ICAgICAgICd3dGYvTWVzc2FnZVF1ZXVlLmgnLAogICAgICAgICAgICAgJ3d0Zi9Ob25Db3B5aW5n
U29ydC5oJywKICAgICAgICAgICAgICd3dGYvTm9uY29weWFibGUuaCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8KaW5kZXggOGJkMzAzYjFjMDU5
YmQzYjY0MDU4NjQzZmZiZjdiYzBlMGI2NmQ0Ny4uODBjZmYyYWIzMmI2OWQwOWIyNjUzMzVhOTA0
NjNkOWRhN2UzOGM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYucHJvCisrKyBiL1NvdXJj
ZS9XVEYvV1RGLnBybwpAQCAtOTcsNiArOTcsNyBAQCBIRUFERVJTICs9IFwKICAgICBNZW1vcnlJ
bnN0cnVtZW50YXRpb25TZXF1ZW5jZS5oIFwKICAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25TdHJp
bmcuaCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggXAorICAgIE1lbW9yeU9i
amVjdEluZm8uaCBcCiAgICAgTWVzc2FnZVF1ZXVlLmggXAogICAgIE1ldGFBbGxvY2F0b3IuaCBc
CiAgICAgTWV0YUFsbG9jYXRvckhhbmRsZS5oIFwKQEAgLTIxNCw2ICsyMTUsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBNRDUuY3BwIFwKICAgICBNYWluVGhyZWFkLmNwcCBcCiAgICAgTWVkaWFUaW1l
LmNwcCBcCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBcCiAgICAgTWV0YUFsbG9jYXRv
ci5jcHAgXAogICAgIE51bGxQdHIuY3BwIFwKICAgICBOdW1iZXJPZkNvcmVzLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvaiBiL1NvdXJjZS9XVEYvV1RG
LnZjcHJvai9XVEYudmNwcm9qCmluZGV4IGU1NDdmYzIzMmFkNjQ5NDBhN2IzOGI5NmRjMDBkNDhj
M2MwZGZmMGUuLjY4NjMzYWY0MmM1ODQ0YTJmMjhmNjViM2E3YmYwMmQ5OGI0ZTg1MTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCisrKyBiL1NvdXJjZS9XVEYv
V1RGLnZjcHJvai9XVEYudmNwcm9qCkBAIC05MDUsNiArOTA1LDEwIEBACiAJCQk+CiAJCTwvRmls
ZT4KIAkJPEZpbGUKKwkJICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxNZW1vcnlJbnN0cnVt
ZW50YXRpb24uY3BwIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCiAJCSAgICAgICAgUmVsYXRp
dmVQYXRoPSIuLlx3dGZcTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAJCQk+CiAJCTwvRmlsZT4K
QEAgLTk0MSw2ICs5NDUsMTAgQEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQorCQkgICAgICAg
IFJlbGF0aXZlUGF0aD0iLi5cd3RmXE1lbW9yeU9iamVjdEluZm8uaCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVzc2FnZVF1ZXVlLmgiCiAJCQk+
CiAJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDhhZWViZWQ2OTk1YTRhMTc2N2EwZWNkMzMzNGM4Y2VjYjgyODE3NTAuLmIyNzYzMWQxZmNkMzdh
YjVlMTdkMGZmMzJiYjM5YWIyMWI5NjNhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjkzLDYgKzI5Myw4IEBACiAJCUNENTQ5N0FDMTU4NTdEMDMwMEI1
QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi87
IH07CiAJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdEMDMwMEI1
QkMzMCAvKiBNZWRpYVRpbWUuaCAqLzsgfTsKIAkJRUI5NUUxRjAxNjFBNzI0MTAwODlBMkY1IC8q
IEJ5dGVPcmRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRUI5NUUxRUYxNjFBNzI0MTAwODlBMkY1IC8qIEJ5dGVPcmRlci5oICovOyB9OworCQlGMzIy
Q0NERjE2NTY5OUZGMDA0ODUyREQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzMjJDQ0RFMTY1Njk5RkYw
MDQ4NTJERCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwICovOyB9OworCQlGMzIyQ0NFMTE2
NTY5QTEwMDA0ODUyREQgLyogTWVtb3J5T2JqZWN0SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjMyMkNDRTAxNjU2OUExMDAwNDg1MkREIC8qIE1l
bW9yeU9iamVjdEluZm8uaCAqLzsgfTsKIAkJRjM1MjVFMkExNjE0OUZGNDAwMjc4QkMxIC8qIE1l
bW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzUyNUUyOTE2MTQ5RkY0MDAyNzhCQzEgLyogTWVtb3J5
SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCAqLzsgfTsKIAkJRjM1MjVFNDYxNjE5QTRFRTAw
Mjc4QkMxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzNTI1RTQ1MTYxOUE0RUUwMDI3OEJDMSAv
KiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmggKi87IH07CiAJCUYzRkJDNzFFMTYxQUY3
QkYwMEJCNEJENCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNGQkM3MUQxNjFBRjdC
RjAwQkI0QkQ0IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmggKi87IH07
CkBAIC01OTMsNiArNTk1LDggQEAKIAkJQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlh
VGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRpbWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0OTdBQjE1ODU3RDAzMDBCNUJD
MzAgLyogTWVkaWFUaW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
VGltZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjk1RTFFRjE2MUE3MjQxMDA4
OUEyRjUgLyogQnl0ZU9yZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ5
dGVPcmRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGMzIyQ0NERTE2NTY5OUZG
MDA0ODUyREQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUYzMjJDQ0UwMTY1NjlBMTAwMDQ4NTJERCAvKiBNZW1vcnlPYmpl
Y3RJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeU9iamVjdElu
Zm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM1MjVFMjkxNjE0OUZGNDAwMjc4
QkMxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzNTI1RTQ1MTYxOUE0RUUwMDI3OEJDMSAvKiBN
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjNGQkM3MUQxNjFBRjdCRjAwQkI0QkQ0IC8qIE1lbW9yeUluc3RydW1lbnRh
dGlvbkhhc2hDb3VudGVkU2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
bW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC03NDAsNiArNzQ0LDcgQEAKIAkJCQlBOEE0NzJDQjE1MUE4MjVCMDA0MTIzRkYg
LyogTUQ1LmggKi8sCiAJCQkJQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5j
cHAgKi8sCiAJCQkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oICovLAor
CQkJCUYzMjJDQ0RFMTY1Njk5RkYwMDQ4NTJERCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb24uY3Bw
ICovLAogCQkJCTRGMUQxMTUzMTVGRjExQkUwMDI2RTkwOCAvKiBNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCAqLywKIAkJCQk0RkQ4NTU0NjE2MTMzRTBFMDBDNUI3MDQgLyogTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uQXJyYXlCdWZmZXJWaWV3LmggKi8sCiAJCQkJRjNGQkM3MUQxNjFBRjdCRjAwQkI0QkQ0
IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmggKi8sCkBAIC03NTAsNiAr
NzU1LDcgQEAKIAkJCQlGM0ZCQzcxRjE2MUFGN0NEMDBCQjRCRDQgLyogTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uU2VxdWVuY2UuaCAqLywKIAkJCQk0RkNGMjdFMDE2MTcyRTg2MDBDQkYwMzcgLyogTWVt
b3J5SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmggKi8sCiAJCQkJNEZDQjcxMDkxNjBBMUEwNzAwODQy
NUVDIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oICovLAorCQkJCUYzMjJDQ0UwMTY1
NjlBMTAwMDQ4NTJERCAvKiBNZW1vcnlPYmplY3RJbmZvLmggKi8sCiAJCQkJQThBNDcyQ0MxNTFB
ODI1QjAwNDEyM0ZGIC8qIE1lc3NhZ2VRdWV1ZS5oICovLAogCQkJCUE4QTQ3MkNEMTUxQTgyNUIw
MDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9yLmNwcCAqLywKIAkJCQlBOEE0NzJDRTE1MUE4MjVCMDA0
MTIzRkYgLyogTWV0YUFsbG9jYXRvci5oICovLApAQCAtMTEwOSw2ICsxMTE1LDcgQEAKIAkJCQlG
M0ZCQzcyMDE2MUFGN0NEMDBCQjRCRDQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2VxdWVuY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTRGQ0YyN0UxMTYxNzJFODYwMENCRjAzNyAvKiBNZW1vcnlJ
bnN0cnVtZW50YXRpb25TdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGQ0I3MTBBMTYwQTFB
MDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCBpbiBIZWFkZXJzICov
LAorCQkJCUYzMjJDQ0UxMTY1NjlBMTAwMDQ4NTJERCAvKiBNZW1vcnlPYmplY3RJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEE0NzNFQjE1MUE4MjVCMDA0MTIzRkYgLyogTWVzc2FnZVF1ZXVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNFRDE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFs
bG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRUUxNTFBODI1QjAwNDEyM0ZGIC8q
IE1ldGFBbGxvY2F0b3JIYW5kbGUuaCBpbiBIZWFkZXJzICovLApAQCAtMTMzNiw2ICsxMzQzLDcg
QEAKIAkJCQlBOEE0NzNFNDE1MUE4MjVCMDA0MTIzRkYgLyogTWFpblRocmVhZE1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3M0U5MTUxQTgyNUIwMDQxMjNGRiAvKiBNRDUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQ0Q1NDk3QUMxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlGMzIyQ0NERjE2NTY5OUZGMDA0ODUyREQgLyogTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0VDMTUxQTgyNUIwMDQx
MjNGRiAvKiBNZXRhQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0YyMTUx
QTgyNUIwMDQxMjNGRiAvKiBOdWxsUHRyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y0
MTUxQTgyNUIwMDQxMjNGRiAvKiBOdW1iZXJPZkNvcmVzLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9D
TWFrZUxpc3RzLnR4dAppbmRleCBkYThkZWQ5M2JkNDYwOWJkNDM4ZmY5NDllNjY2OTc5NDUyNTA2
NzQ1Li5jYWZlMTA0NGIwMWRjOTNkNDJkOGZhODhhNGYyMTZjYTEwNmNiMmRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFr
ZUxpc3RzLnR4dApAQCAtNDYsNiArNDYsMTcgQEAgU0VUKFdURl9IRUFERVJTCiAgICAgTWFsbG9j
Wm9uZVN1cHBvcnQuaAogICAgIE1hdGhFeHRyYXMuaAogICAgIE1lZGlhVGltZS5oCisgICAgTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25BcnJheUJ1ZmZl
clZpZXcuaAorICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmgKKyAgICBN
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmgKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25I
YXNoU2V0LmgKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oCisgICAgTWVt
b3J5SW5zdHJ1bWVudGF0aW9uUGFyc2VkVVJMLmgKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25T
ZXF1ZW5jZS5oCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmgKKyAgICBNZW1vcnlJ
bnN0cnVtZW50YXRpb25WZWN0b3IuaAorICAgIE1lbW9yeU9iamVjdEluZm8uaAogICAgIE1lc3Nh
Z2VRdWV1ZS5oCiAgICAgTWV0YUFsbG9jYXRvci5oCiAgICAgTWV0YUFsbG9jYXRvckhhbmRsZS5o
CkBAIC0xNTcsNiArMTY4LDcgQEAgU0VUKFdURl9TT1VSQ0VTCiAgICAgTWVkaWFUaW1lLmNwcAog
ICAgIE1ldGFBbGxvY2F0b3IuY3BwCiAgICAgT1NSYW5kb21Tb3VyY2UuY3BwCisgICAgTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmNwcAogICAgIE51bWJlck9mQ29yZXMuY3BwCiAgICAgUkFNU2l6ZS5j
cHAKICAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGJlMmI2ZGNmYjQ2NmY1MjE2ZDk3MWM3MTNm
MmEzOTE5MTI1ZTM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmNwcApAQCAtMCwwICsxLDExMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKworI2luY2x1ZGUgPHd0Zi9NZW1vcnlP
YmplY3RJbmZvLmg+CisKKyNpZiBERUJVR19QT0lOVEVSX0lOU1RSVU1FTlRBVElPTgorI2luY2x1
ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNlbmRpZgorCituYW1l
c3BhY2UgV1RGIHsKKworTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpNZW1vcnlJbnN0cnVtZW50YXRp
b24oTWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xpZW50KiBjbGllbnQpCisgICAgOiBtX2NsaWVudChj
bGllbnQpCisgICAgLCBtX3Jvb3RPYmplY3RJbmZvKGFkb3B0UHRyKG5ldyBNZW1vcnlPYmplY3RJ
bmZvKHRoaXMsIDApKSkKK3sKK30KKworTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjp+TWVtb3J5SW5z
dHJ1bWVudGF0aW9uKCkKK3sKK30KKworTWVtb3J5T2JqZWN0VHlwZSBNZW1vcnlJbnN0cnVtZW50
YXRpb246OmdldE9iamVjdFR5cGUoTWVtb3J5T2JqZWN0SW5mbyogb2JqZWN0SW5mbykKK3sKKyAg
ICByZXR1cm4gb2JqZWN0SW5mby0+b2JqZWN0VHlwZSgpOworfQorCit2b2lkIE1lbW9yeUluc3Ry
dW1lbnRhdGlvbjo6Y2FsbFJlcG9ydE9iamVjdEluZm8oTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5
T2JqZWN0SW5mbywgY29uc3Qgdm9pZCogcG9pbnRlciwgTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RU
eXBlLCBzaXplX3Qgb2JqZWN0U2l6ZSkKK3sKKyAgICBtZW1vcnlPYmplY3RJbmZvLT5yZXBvcnRP
YmplY3RJbmZvKHBvaW50ZXIsIG9iamVjdFR5cGUsIG9iamVjdFNpemUpOworfQorCitNZW1vcnlJ
bnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBvaW50ZXJCYXNlOjpJbnN0cnVtZW50ZWRQb2lu
dGVyQmFzZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKQorICAgIDogbV9vd25l
ck9iamVjdFR5cGUobWVtb3J5T2JqZWN0SW5mby0+b2JqZWN0VHlwZSgpKQoreworI2lmIERFQlVH
X1BPSU5URVJfSU5TVFJVTUVOVEFUSU9OCisgICAgbV9jYWxsU3RhY2tTaXplID0gc19tYXhDYWxs
U3RhY2tTaXplOworICAgIFdURkdldEJhY2t0cmFjZShtX2NhbGxTdGFjaywgJm1fY2FsbFN0YWNr
U2l6ZSk7CisjZW5kaWYKK30KKwordm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1l
bnRlZFBvaW50ZXJCYXNlOjpwcm9jZXNzKE1lbW9yeUluc3RydW1lbnRhdGlvbiogbWVtb3J5SW5z
dHJ1bWVudGF0aW9uKQoreworICAgIE1lbW9yeU9iamVjdEluZm8gbWVtb3J5T2JqZWN0SW5mbyht
ZW1vcnlJbnN0cnVtZW50YXRpb24sIG1fb3duZXJPYmplY3RUeXBlKTsKKyAgICBjb25zdCB2b2lk
KiBvcmlnaW5hbFBvaW50ZXIgPSBjYWxsUmVwb3J0TWVtb3J5VXNhZ2UoJm1lbW9yeU9iamVjdElu
Zm8pOworCisgICAgY29uc3Qgdm9pZCogcG9pbnRlciA9IG1lbW9yeU9iamVjdEluZm8ucmVwb3J0
ZWRQb2ludGVyKCk7CisgICAgQVNTRVJUKHBvaW50ZXIpOworICAgIGlmIChwb2ludGVyICE9IG9y
aWdpbmFsUG9pbnRlciAmJiBtZW1vcnlJbnN0cnVtZW50YXRpb24tPnZpc2l0ZWQocG9pbnRlcikp
CisgICAgICAgIHJldHVybjsKKyAgICBtZW1vcnlJbnN0cnVtZW50YXRpb24tPmNvdW50T2JqZWN0
U2l6ZShwb2ludGVyLCBtZW1vcnlPYmplY3RJbmZvLm9iamVjdFR5cGUoKSwgbWVtb3J5T2JqZWN0
SW5mby5vYmplY3RTaXplKCkpOworICAgIGlmICghbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5jaGVj
a0NvdW50ZWRPYmplY3QocG9pbnRlcikpIHsKKyNpZiBERUJVR19QT0lOVEVSX0lOU1RSVU1FTlRB
VElPTgorICAgICAgICBmcHV0cygiVW5rbm93biBvYmplY3QgY291bnRlZDpcbiIsIHN0ZGVycik7
CisgICAgICAgIFdURlByaW50QmFja3RyYWNlKG1fY2FsbFN0YWNrLCBtX2NhbGxTdGFja1NpemUp
OworI2VuZGlmCisgICAgfQorfQorCit2b2lkIE1lbW9yeUNsYXNzSW5mbzo6aW5pdChjb25zdCB2
b2lkKiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUsIHNpemVfdCBhY3R1YWxT
aXplKQoreworICAgIG1fbWVtb3J5T2JqZWN0SW5mby0+cmVwb3J0T2JqZWN0SW5mbyhwb2ludGVy
LCBvYmplY3RUeXBlLCBhY3R1YWxTaXplKTsKKyAgICBtX21lbW9yeUluc3RydW1lbnRhdGlvbiA9
IG1fbWVtb3J5T2JqZWN0SW5mby0+bWVtb3J5SW5zdHJ1bWVudGF0aW9uKCk7CisgICAgbV9vYmpl
Y3RUeXBlID0gbV9tZW1vcnlPYmplY3RJbmZvLT5vYmplY3RUeXBlKCk7Cit9CisKK3ZvaWQgTWVt
b3J5Q2xhc3NJbmZvOjphZGRSYXdCdWZmZXIoY29uc3Qgdm9pZCogY29uc3QmIGJ1ZmZlciwgc2l6
ZV90IHNpemUpCit7CisgICAgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZFJhd0J1ZmZlcihi
dWZmZXIsIG1fb2JqZWN0VHlwZSwgc2l6ZSk7Cit9CisKK3ZvaWQgTWVtb3J5Q2xhc3NJbmZvOjph
ZGRQcml2YXRlQnVmZmVyKHNpemVfdCBzaXplLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0
VHlwZSkKK3sKKyAgICBpZiAoIXNpemUpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIW93bmVy
T2JqZWN0VHlwZSkKKyAgICAgICAgb3duZXJPYmplY3RUeXBlID0gbV9vYmplY3RUeXBlOworICAg
IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5jb3VudE9iamVjdFNpemUoMCwgb3duZXJPYmplY3RU
eXBlLCBzaXplKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvbi5oCmluZGV4IDFjMzgyNDNlNmIxNTU2MjhmMzkzOTY3ZWQwYjZhZjM2NmIy
NWU5YzYuLjRjNTI5Y2UzY2M1NWZmYjYzYmYxYmVkNmMxYWZhYWEzMDY2YTFjYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC0zNywxMSArMzcsNiBAQAogCiAjZGVm
aW5lIERFQlVHX1BPSU5URVJfSU5TVFJVTUVOVEFUSU9OIDAKIAotI2lmIERFQlVHX1BPSU5URVJf
SU5TVFJVTUVOVEFUSU9OCi0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDxz
dGRpby5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBNZW1vcnlDbGFzc0lu
Zm87CkBAIC01NSw0MyArNTAsNiBAQCBlbnVtIE1lbW9yeU93bmluZ1R5cGUgewogICAgIGJ5UmVm
ZXJlbmNlCiB9OwogCi1jbGFzcyBNZW1vcnlPYmplY3RJbmZvIHsKLXB1YmxpYzoKLSAgICBNZW1v
cnlPYmplY3RJbmZvKE1lbW9yeUluc3RydW1lbnRhdGlvbiogbWVtb3J5SW5zdHJ1bWVudGF0aW9u
LCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSkKLSAgICAgICAgOiBtX21lbW9yeUlu
c3RydW1lbnRhdGlvbihtZW1vcnlJbnN0cnVtZW50YXRpb24pCi0gICAgICAgICwgbV9vYmplY3RU
eXBlKG93bmVyT2JqZWN0VHlwZSkKLSAgICAgICAgLCBtX29iamVjdFNpemUoMCkKLSAgICAgICAg
LCBtX3BvaW50ZXIoMCkKLSAgICB7IH0KLQotICAgIHR5cGVkZWYgTWVtb3J5Q2xhc3NJbmZvIENs
YXNzSW5mbzsKLQotICAgIE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0VHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fb2JqZWN0VHlwZTsgfQotICAgIHNpemVfdCBvYmplY3RTaXplKCkgY29uc3QgeyByZXR1
cm4gbV9vYmplY3RTaXplOyB9Ci0gICAgY29uc3Qgdm9pZCogcmVwb3J0ZWRQb2ludGVyKCkgY29u
c3QgeyByZXR1cm4gbV9wb2ludGVyOyB9Ci0KLSAgICBNZW1vcnlJbnN0cnVtZW50YXRpb24qIG1l
bW9yeUluc3RydW1lbnRhdGlvbigpIHsgcmV0dXJuIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uOyB9
Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIE1lbW9yeUNsYXNzSW5mbzsKLSAgICBmcmll
bmQgY2xhc3MgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOwotCi0gICAgdm9pZCByZXBvcnRPYmplY3RJ
bmZvKGNvbnN0IHZvaWQqIHBvaW50ZXIsIE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0VHlwZSwgc2l6
ZV90IG9iamVjdFNpemUpCi0gICAgewotICAgICAgICBpZiAoIW1fb2JqZWN0U2l6ZSkgewotICAg
ICAgICAgICAgbV9wb2ludGVyID0gcG9pbnRlcjsKLSAgICAgICAgICAgIG1fb2JqZWN0U2l6ZSA9
IG9iamVjdFNpemU7Ci0gICAgICAgICAgICBpZiAob2JqZWN0VHlwZSkKLSAgICAgICAgICAgICAg
ICBtX29iamVjdFR5cGUgPSBvYmplY3RUeXBlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgTWVt
b3J5SW5zdHJ1bWVudGF0aW9uKiBtX21lbW9yeUluc3RydW1lbnRhdGlvbjsKLSAgICBNZW1vcnlP
YmplY3RUeXBlIG1fb2JqZWN0VHlwZTsKLSAgICBzaXplX3QgbV9vYmplY3RTaXplOwotICAgIGNv
bnN0IHZvaWQqIG1fcG9pbnRlcjsKLX07Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoY29uc3QgVCogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CiAKIGNs
YXNzIE1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudCB7CkBAIC0xMDQsMjAgKzYyLDMyIEBAIHB1
YmxpYzoKIAogY2xhc3MgTWVtb3J5SW5zdHJ1bWVudGF0aW9uIHsKIHB1YmxpYzoKLSAgICBleHBs
aWNpdCBNZW1vcnlJbnN0cnVtZW50YXRpb24oTWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xpZW50KiBj
bGllbnQpIDogbV9jbGllbnQoY2xpZW50KSB7IH0KLSAgICB2aXJ0dWFsIH5NZW1vcnlJbnN0cnVt
ZW50YXRpb24oKSB7IH0KKyAgICBleHBsaWNpdCBNZW1vcnlJbnN0cnVtZW50YXRpb24oTWVtb3J5
SW5zdHJ1bWVudGF0aW9uQ2xpZW50Kik7CisgICAgdmlydHVhbCB+TWVtb3J5SW5zdHJ1bWVudGF0
aW9uKCk7CiAKLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRSb290T2JqZWN0KGNv
bnN0IFQmIHQsIE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0VHlwZSA9IDApCisgICAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+IHZvaWQgYWRkUm9vdE9iamVjdChjb25zdCBUJiB0KQogICAgIHsKLSAgICAg
ICAgYWRkT2JqZWN0KHQsIG9iamVjdFR5cGUpOworICAgICAgICBhZGRPYmplY3QodCwgbV9yb290
T2JqZWN0SW5mby5nZXQoKSk7CiAgICAgICAgIHByb2Nlc3NEZWZlcnJlZEluc3RydW1lbnRlZFBv
aW50ZXJzKCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CiAgICAgY2xhc3MgSW5zdHJ1bWVudGVkUG9p
bnRlckJhc2UgewogICAgIHB1YmxpYzoKKyAgICAgICAgSW5zdHJ1bWVudGVkUG9pbnRlckJhc2Uo
TWVtb3J5T2JqZWN0SW5mbyopOwogICAgICAgICB2aXJ0dWFsIH5JbnN0cnVtZW50ZWRQb2ludGVy
QmFzZSgpIHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgcHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50
YXRpb24qKSA9IDA7CisgICAgICAgIHZvaWQgcHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50YXRpb24q
KTsKKworICAgIHByb3RlY3RlZDoKKyAgICAgICAgdmlydHVhbCBjb25zdCB2b2lkKiBjYWxsUmVw
b3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopID0gMDsKKworICAgIHByaXZhdGU6Cisg
ICAgICAgIGNvbnN0IE1lbW9yeU9iamVjdFR5cGUgbV9vd25lck9iamVjdFR5cGU7CisjaWYgREVC
VUdfUE9JTlRFUl9JTlNUUlVNRU5UQVRJT04KKyAgICAgICAgc3RhdGljIGNvbnN0IGludCBzX21h
eENhbGxTdGFja1NpemUgPSAzMjsKKyAgICAgICAgdm9pZCogbV9jYWxsU3RhY2tbc19tYXhDYWxs
U3RhY2tTaXplXTsKKyAgICAgICAgaW50IG1fY2FsbFN0YWNrU2l6ZTsKKyNlbmRpZgogICAgIH07
CiAKIHByaXZhdGU6CkBAIC0xMjgsNiArOTgsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBkZWZlckluc3RydW1lbnRlZFBvaW50ZXIoUGFzc093blB0cjxJbnN0cnVtZW50ZWRQb2ludGVy
QmFzZT4pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RlZmVycmVkSW5zdHJ1bWVudGVk
UG9pbnRlcnMoKSA9IDA7CiAKKyAgICBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBnZXRPYmplY3RU
eXBlKE1lbW9yeU9iamVjdEluZm8qKTsKKwogICAgIGZyaWVuZCBjbGFzcyBNZW1vcnlDbGFzc0lu
Zm87CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gZnJpZW5kIHZvaWQgcmVwb3J0TWVtb3J5VXNh
Z2UoY29uc3QgVCogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CiAKQEAgLTE0OCwyOSArMTIw
LDI1IEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVHlwZT4K
ICAgICBzdGF0aWMgdm9pZCByZXBvcnRPYmplY3RNZW1vcnlVc2FnZShjb25zdCBUKiBjb25zdCYg
b2JqZWN0LCBNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvLCAuLi4pCiAgICAgewot
ICAgICAgICBtZW1vcnlPYmplY3RJbmZvLT5yZXBvcnRPYmplY3RJbmZvKG9iamVjdCwgMCwgc2l6
ZW9mKFQpKTsKKyAgICAgICAgY2FsbFJlcG9ydE9iamVjdEluZm8obWVtb3J5T2JqZWN0SW5mbywg
b2JqZWN0LCAwLCBzaXplb2YoVCkpOwogICAgIH0KKyAgICBzdGF0aWMgdm9pZCBjYWxsUmVwb3J0
T2JqZWN0SW5mbyhNZW1vcnlPYmplY3RJbmZvKiwgY29uc3Qgdm9pZCogcG9pbnRlciwgTWVtb3J5
T2JqZWN0VHlwZSwgc2l6ZV90IG9iamVjdFNpemUpOwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4KICAgICBzdGF0aWMgdm9pZCBjb3VudE5vdEluc3RydW1lbnRlZE9iamVjdChjb25zdCBUKiBj
b25zdCYsIE1lbW9yeU9iamVjdEluZm8qKTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNs
YXNzIEluc3RydW1lbnRlZFBvaW50ZXIgOiBwdWJsaWMgSW5zdHJ1bWVudGVkUG9pbnRlckJhc2Ug
ewogICAgIHB1YmxpYzoKLSAgICAgICAgSW5zdHJ1bWVudGVkUG9pbnRlcihjb25zdCBUKiBwb2lu
dGVyLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSk7Ci0gICAgICAgIHZpcnR1YWwg
dm9pZCBwcm9jZXNzKE1lbW9yeUluc3RydW1lbnRhdGlvbiopIE9WRVJSSURFOworICAgICAgICBJ
bnN0cnVtZW50ZWRQb2ludGVyKGNvbnN0IFQqIHBvaW50ZXIsIE1lbW9yeU9iamVjdEluZm8qIG93
bmVyT2JqZWN0SW5mbyk7CisKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZpcnR1YWwgY29uc3Qg
dm9pZCogY2FsbFJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBPVkVSUklERTsK
IAogICAgIHByaXZhdGU6CiAgICAgICAgIGNvbnN0IFQqIG1fcG9pbnRlcjsKLSAgICAgICAgY29u
c3QgTWVtb3J5T2JqZWN0VHlwZSBtX293bmVyT2JqZWN0VHlwZTsKLQotI2lmIERFQlVHX1BPSU5U
RVJfSU5TVFJVTUVOVEFUSU9OCi0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgc19tYXhDYWxsU3Rh
Y2tTaXplID0gMzI7Ci0gICAgICAgIHZvaWQqIG1fY2FsbFN0YWNrW3NfbWF4Q2FsbFN0YWNrU2l6
ZV07Ci0gICAgICAgIGludCBtX2NhbGxTdGFja1NpemU7Ci0jZW5kaWYKICAgICB9OwogCi0gICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBhZGRPYmplY3QoY29uc3QgVCYgdCwgTWVtb3J5T2Jq
ZWN0VHlwZSBvd25lck9iamVjdFR5cGUpIHsgT3duaW5nVHJhaXRzPFQ+OjphZGRPYmplY3QodGhp
cywgdCwgb3duZXJPYmplY3RUeXBlKTsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQg
YWRkT2JqZWN0KGNvbnN0IFQmIHQsIE1lbW9yeU9iamVjdEluZm8qIG93bmVyT2JqZWN0SW5mbykg
eyBPd25pbmdUcmFpdHM8VD46OmFkZE9iamVjdCh0aGlzLCB0LCBvd25lck9iamVjdEluZm8pOyB9
CiAgICAgdm9pZCBhZGRSYXdCdWZmZXIoY29uc3Qgdm9pZCogY29uc3QmIGJ1ZmZlciwgTWVtb3J5
T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUsIHNpemVfdCBzaXplKQogICAgIHsKICAgICAgICAg
aWYgKCFidWZmZXIgfHwgdmlzaXRlZChidWZmZXIpKQpAQCAtMTgwLDQ5ICsxNDgsNDggQEAgcHJp
dmF0ZToKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgc3RydWN0IE93bmluZ1RyYWl0
cyB7IC8vIERlZmF1bHQgYnlSZWZlcmVuY2UgaW1wbGVtZW50YXRpb24uCi0gICAgICAgIHN0YXRp
YyB2b2lkIGFkZE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlvbiwg
Y29uc3QgVCYgdCwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUpCisgICAgICAgIHN0
YXRpYyB2b2lkIGFkZE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1lbnRhdGlv
biwgY29uc3QgVCYgdCwgTWVtb3J5T2JqZWN0SW5mbyogb3duZXJPYmplY3RJbmZvKQogICAgICAg
ICB7Ci0gICAgICAgICAgICBpbnN0cnVtZW50YXRpb24tPmFkZE9iamVjdEltcGwoJnQsIG93bmVy
T2JqZWN0VHlwZSwgYnlSZWZlcmVuY2UpOworICAgICAgICAgICAgaW5zdHJ1bWVudGF0aW9uLT5h
ZGRPYmplY3RJbXBsKCZ0LCBvd25lck9iamVjdEluZm8sIGJ5UmVmZXJlbmNlKTsKICAgICAgICAg
fQogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIHN0cnVjdCBPd25pbmdU
cmFpdHM8VCo+IHsgLy8gQ3VzdG9tIGJ5UG9pbnRlciBpbXBsZW1lbnRhdGlvbi4KLSAgICAgICAg
c3RhdGljIHZvaWQgYWRkT2JqZWN0KE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5zdHJ1bWVudGF0
aW9uLCBjb25zdCBUKiBjb25zdCYgdCwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUp
CisgICAgICAgIHN0YXRpYyB2b2lkIGFkZE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGlu
c3RydW1lbnRhdGlvbiwgY29uc3QgVCogY29uc3QmIHQsIE1lbW9yeU9iamVjdEluZm8qIG93bmVy
T2JqZWN0SW5mbykKICAgICAgICAgewotICAgICAgICAgICAgaW5zdHJ1bWVudGF0aW9uLT5hZGRP
YmplY3RJbXBsKHQsIG93bmVyT2JqZWN0VHlwZSwgYnlQb2ludGVyKTsKKyAgICAgICAgICAgIGlu
c3RydW1lbnRhdGlvbi0+YWRkT2JqZWN0SW1wbCh0LCBvd25lck9iamVjdEluZm8sIGJ5UG9pbnRl
cik7CiAgICAgICAgIH0KICAgICB9OwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBh
ZGRPYmplY3RJbXBsKGNvbnN0IFQqIGNvbnN0JiwgTWVtb3J5T2JqZWN0VHlwZSwgTWVtb3J5T3du
aW5nVHlwZSk7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBhZGRPYmplY3RJbXBsKGNv
bnN0IE93blB0cjxUPiogY29uc3QmLCBNZW1vcnlPYmplY3RUeXBlLCBNZW1vcnlPd25pbmdUeXBl
KTsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGFkZE9iamVjdEltcGwoY29uc3QgUmVm
UHRyPFQ+KiBjb25zdCYsIE1lbW9yeU9iamVjdFR5cGUsIE1lbW9yeU93bmluZ1R5cGUpOworICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgYWRkT2JqZWN0SW1wbChjb25zdCBUKiBjb25zdCYs
IE1lbW9yeU9iamVjdEluZm8qLCBNZW1vcnlPd25pbmdUeXBlKTsKKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPiB2b2lkIGFkZE9iamVjdEltcGwoY29uc3QgT3duUHRyPFQ+KiBjb25zdCYsIE1lbW9y
eU9iamVjdEluZm8qLCBNZW1vcnlPd25pbmdUeXBlKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiB2b2lkIGFkZE9iamVjdEltcGwoY29uc3QgUmVmUHRyPFQ+KiBjb25zdCYsIE1lbW9yeU9iamVj
dEluZm8qLCBNZW1vcnlPd25pbmdUeXBlKTsKIAogICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkNs
aWVudCogbV9jbGllbnQ7CisgICAgT3duUHRyPE1lbW9yeU9iamVjdEluZm8+IG1fcm9vdE9iamVj
dEluZm87CiB9OwogCiBjbGFzcyBNZW1vcnlDbGFzc0luZm8gewogcHVibGljOgogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+Ci0gICAgTWVtb3J5Q2xhc3NJbmZvKE1lbW9yeU9iamVjdEluZm8qIG1l
bW9yeU9iamVjdEluZm8sIGNvbnN0IFQqIHBvaW50ZXIsIE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0
VHlwZSA9IDAsIHNpemVfdCBhY3R1YWxTaXplID0gMCkKKyAgICBNZW1vcnlDbGFzc0luZm8oTWVt
b3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbywgY29uc3QgVCogcG9pbnRlciwgTWVtb3J5
T2JqZWN0VHlwZSBvYmplY3RUeXBlID0gMCwgc2l6ZV90IGFjdHVhbFNpemUgPSBzaXplb2YoVCkp
CiAgICAgICAgIDogbV9tZW1vcnlPYmplY3RJbmZvKG1lbW9yeU9iamVjdEluZm8pCi0gICAgICAg
ICwgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24obWVtb3J5T2JqZWN0SW5mby0+bWVtb3J5SW5zdHJ1
bWVudGF0aW9uKCkpCisgICAgICAgICwgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24oMCkKKyAgICAg
ICAgLCBtX29iamVjdFR5cGUoMCkKICAgICB7Ci0gICAgICAgIG1fbWVtb3J5T2JqZWN0SW5mby0+
cmVwb3J0T2JqZWN0SW5mbyhwb2ludGVyLCBvYmplY3RUeXBlLCBhY3R1YWxTaXplID8gYWN0dWFs
U2l6ZSA6IHNpemVvZihUKSk7Ci0gICAgICAgIG1fb2JqZWN0VHlwZSA9IG1lbW9yeU9iamVjdElu
Zm8tPm9iamVjdFR5cGUoKTsKKyAgICAgICAgaW5pdChwb2ludGVyLCBvYmplY3RUeXBlLCBhY3R1
YWxTaXplKTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNPiB2b2lkIGFkZE1lbWJl
cihjb25zdCBNJiBtZW1iZXIpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZE9iamVjdCht
ZW1iZXIsIG1fb2JqZWN0VHlwZSk7IH0KLSAgICB2b2lkIGFkZFJhd0J1ZmZlcihjb25zdCB2b2lk
KiBjb25zdCYgYnVmZmVyLCBzaXplX3Qgc2l6ZSkgeyBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+
YWRkUmF3QnVmZmVyKGJ1ZmZlciwgbV9vYmplY3RUeXBlLCBzaXplKTsgfQotICAgIHZvaWQgYWRk
UHJpdmF0ZUJ1ZmZlcihzaXplX3Qgc2l6ZSwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5
cGUgPSAwKQotICAgIHsKLSAgICAgICAgaWYgKHNpemUpCi0gICAgICAgICAgICBtX21lbW9yeUlu
c3RydW1lbnRhdGlvbi0+Y291bnRPYmplY3RTaXplKDAsIG93bmVyT2JqZWN0VHlwZSA/IG93bmVy
T2JqZWN0VHlwZSA6IG1fb2JqZWN0VHlwZSwgc2l6ZSk7Ci0gICAgfQorICAgIHRlbXBsYXRlPHR5
cGVuYW1lIE0+IHZvaWQgYWRkTWVtYmVyKGNvbnN0IE0mIG1lbWJlcikgeyBtX21lbW9yeUluc3Ry
dW1lbnRhdGlvbi0+YWRkT2JqZWN0KG1lbWJlciwgbV9tZW1vcnlPYmplY3RJbmZvKTsgfQorICAg
IHZvaWQgYWRkUmF3QnVmZmVyKGNvbnN0IHZvaWQqIGNvbnN0JiBidWZmZXIsIHNpemVfdCk7Cisg
ICAgdm9pZCBhZGRQcml2YXRlQnVmZmVyKHNpemVfdCwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9i
amVjdFR5cGUgPSAwKTsKIAogICAgIHZvaWQgYWRkV2Vha1BvaW50ZXIodm9pZCopIHsgfQogCiBw
cml2YXRlOgorICAgIHZvaWQgaW5pdChjb25zdCB2b2lkKiBwb2ludGVyLCBNZW1vcnlPYmplY3RU
eXBlLCBzaXplX3QgYWN0dWFsU2l6ZSk7CisKICAgICBNZW1vcnlPYmplY3RJbmZvKiBtX21lbW9y
eU9iamVjdEluZm87CiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBtX21lbW9yeUluc3RydW1l
bnRhdGlvbjsKICAgICBNZW1vcnlPYmplY3RUeXBlIG1fb2JqZWN0VHlwZTsKQEAgLTIzNSw2MiAr
MjAyLDQ1IEBAIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgVCogY29uc3QmIG9iamVjdCwg
TWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mCiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+Ci12b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0SW1wbChjb25zdCBUKiBj
b25zdCYgb2JqZWN0LCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSwgTWVtb3J5T3du
aW5nVHlwZSBvd25pbmdUeXBlKQordm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZE9iamVj
dEltcGwoY29uc3QgVCogY29uc3QmIG9iamVjdCwgTWVtb3J5T2JqZWN0SW5mbyogb3duZXJPYmpl
Y3RJbmZvLCBNZW1vcnlPd25pbmdUeXBlIG93bmluZ1R5cGUpCiB7Ci0gICAgaWYgKG93bmluZ1R5
cGUgPT0gYnlSZWZlcmVuY2UpIHsKLSAgICAgICAgTWVtb3J5T2JqZWN0SW5mbyBtZW1vcnlPYmpl
Y3RJbmZvKHRoaXMsIG93bmVyT2JqZWN0VHlwZSk7Ci0gICAgICAgIHJlcG9ydE1lbW9yeVVzYWdl
KG9iamVjdCwgJm1lbW9yeU9iamVjdEluZm8pOwotICAgIH0gZWxzZSB7CisgICAgaWYgKG93bmlu
Z1R5cGUgPT0gYnlSZWZlcmVuY2UpCisgICAgICAgIHJlcG9ydE1lbW9yeVVzYWdlKG9iamVjdCwg
b3duZXJPYmplY3RJbmZvKTsKKyAgICBlbHNlIHsKICAgICAgICAgaWYgKCFvYmplY3QgfHwgdmlz
aXRlZChvYmplY3QpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBkZWZlckluc3RydW1l
bnRlZFBvaW50ZXIoYWRvcHRQdHIobmV3IEluc3RydW1lbnRlZFBvaW50ZXI8VD4ob2JqZWN0LCBv
d25lck9iamVjdFR5cGUpKSk7CisgICAgICAgIGRlZmVySW5zdHJ1bWVudGVkUG9pbnRlcihhZG9w
dFB0cihuZXcgSW5zdHJ1bWVudGVkUG9pbnRlcjxUPihvYmplY3QsIG93bmVyT2JqZWN0SW5mbykp
KTsKICAgICB9CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkIE1lbW9yeUluc3RydW1l
bnRhdGlvbjo6YWRkT2JqZWN0SW1wbChjb25zdCBPd25QdHI8VD4qIGNvbnN0JiBvYmplY3QsIE1l
bW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBNZW1vcnlPd25pbmdUeXBlIG93bmluZ1R5
cGUpCit2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0SW1wbChjb25zdCBPd25Q
dHI8VD4qIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdEluZm8qIG93bmVyT2JqZWN0SW5mbywg
TWVtb3J5T3duaW5nVHlwZSBvd25pbmdUeXBlKQogewogICAgIGlmIChvd25pbmdUeXBlID09IGJ5
UG9pbnRlciAmJiAhdmlzaXRlZChvYmplY3QpKQotICAgICAgICBjb3VudE9iamVjdFNpemUob2Jq
ZWN0LCBvd25lck9iamVjdFR5cGUsIHNpemVvZigqb2JqZWN0KSk7Ci0gICAgYWRkT2JqZWN0SW1w
bChvYmplY3QtPmdldCgpLCBvd25lck9iamVjdFR5cGUsIGJ5UG9pbnRlcik7CisgICAgICAgIGNv
dW50T2JqZWN0U2l6ZShvYmplY3QsIGdldE9iamVjdFR5cGUob3duZXJPYmplY3RJbmZvKSwgc2l6
ZW9mKCpvYmplY3QpKTsKKyAgICBhZGRPYmplY3RJbXBsKG9iamVjdC0+Z2V0KCksIG93bmVyT2Jq
ZWN0SW5mbywgYnlQb2ludGVyKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLXZvaWQgTWVt
b3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJbXBsKGNvbnN0IFJlZlB0cjxUPiogY29uc3Qm
IG9iamVjdCwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUsIE1lbW9yeU93bmluZ1R5
cGUgb3duaW5nVHlwZSkKK3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJbXBs
KGNvbnN0IFJlZlB0cjxUPiogY29uc3QmIG9iamVjdCwgTWVtb3J5T2JqZWN0SW5mbyogb3duZXJP
YmplY3RJbmZvLCBNZW1vcnlPd25pbmdUeXBlIG93bmluZ1R5cGUpCiB7CiAgICAgaWYgKG93bmlu
Z1R5cGUgPT0gYnlQb2ludGVyICYmICF2aXNpdGVkKG9iamVjdCkpCi0gICAgICAgIGNvdW50T2Jq
ZWN0U2l6ZShvYmplY3QsIG93bmVyT2JqZWN0VHlwZSwgc2l6ZW9mKCpvYmplY3QpKTsKLSAgICBh
ZGRPYmplY3RJbXBsKG9iamVjdC0+Z2V0KCksIG93bmVyT2JqZWN0VHlwZSwgYnlQb2ludGVyKTsK
KyAgICAgICAgY291bnRPYmplY3RTaXplKG9iamVjdCwgZ2V0T2JqZWN0VHlwZShvd25lck9iamVj
dEluZm8pLCBzaXplb2YoKm9iamVjdCkpOworICAgIGFkZE9iamVjdEltcGwob2JqZWN0LT5nZXQo
KSwgb3duZXJPYmplY3RJbmZvLCBieVBvaW50ZXIpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgotTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyPFQ+OjpJbnN0cnVt
ZW50ZWRQb2ludGVyKGNvbnN0IFQqIHBvaW50ZXIsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmpl
Y3RUeXBlKQotICAgIDogbV9wb2ludGVyKHBvaW50ZXIpCi0gICAgLCBtX293bmVyT2JqZWN0VHlw
ZShvd25lck9iamVjdFR5cGUpCitNZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBv
aW50ZXI8VD46Okluc3RydW1lbnRlZFBvaW50ZXIoY29uc3QgVCogcG9pbnRlciwgTWVtb3J5T2Jq
ZWN0SW5mbyogb3duZXJPYmplY3RJbmZvKQorICAgIDogSW5zdHJ1bWVudGVkUG9pbnRlckJhc2Uo
b3duZXJPYmplY3RJbmZvKQorICAgICwgbV9wb2ludGVyKHBvaW50ZXIpCiB7Ci0jaWYgREVCVUdf
UE9JTlRFUl9JTlNUUlVNRU5UQVRJT04KLSAgICBtX2NhbGxTdGFja1NpemUgPSBzX21heENhbGxT
dGFja1NpemU7Ci0gICAgV1RGR2V0QmFja3RyYWNlKG1fY2FsbFN0YWNrLCAmbV9jYWxsU3RhY2tT
aXplKTsKLSNlbmRpZgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotdm9pZCBNZW1vcnlJbnN0
cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBvaW50ZXI8VD46OnByb2Nlc3MoTWVtb3J5SW5zdHJ1
bWVudGF0aW9uKiBtZW1vcnlJbnN0cnVtZW50YXRpb24pCitjb25zdCB2b2lkKiBNZW1vcnlJbnN0
cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBvaW50ZXI8VD46OmNhbGxSZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKQogewotICAgIE1lbW9yeU9iamVj
dEluZm8gbWVtb3J5T2JqZWN0SW5mbyhtZW1vcnlJbnN0cnVtZW50YXRpb24sIG1fb3duZXJPYmpl
Y3RUeXBlKTsKLSAgICByZXBvcnRNZW1vcnlVc2FnZShtX3BvaW50ZXIsICZtZW1vcnlPYmplY3RJ
bmZvKTsKLQotICAgIGNvbnN0IHZvaWQqIHBvaW50ZXIgPSBtZW1vcnlPYmplY3RJbmZvLnJlcG9y
dGVkUG9pbnRlcigpOwotICAgIEFTU0VSVChwb2ludGVyKTsKLSAgICBpZiAocG9pbnRlciAhPSBt
X3BvaW50ZXIgJiYgbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT52aXNpdGVkKHBvaW50ZXIpKQotICAg
ICAgICByZXR1cm47Ci0gICAgbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5jb3VudE9iamVjdFNpemUo
cG9pbnRlciwgbWVtb3J5T2JqZWN0SW5mby5vYmplY3RUeXBlKCksIG1lbW9yeU9iamVjdEluZm8u
b2JqZWN0U2l6ZSgpKTsKLSAgICBpZiAoIW1lbW9yeUluc3RydW1lbnRhdGlvbi0+Y2hlY2tDb3Vu
dGVkT2JqZWN0KHBvaW50ZXIpKSB7Ci0jaWYgREVCVUdfUE9JTlRFUl9JTlNUUlVNRU5UQVRJT04K
LSAgICAgICAgZnB1dHMoIlVua25vd24gb2JqZWN0IGNvdW50ZWQ6XG4iLCBzdGRlcnIpOwotICAg
ICAgICBXVEZQcmludEJhY2t0cmFjZShtX2NhbGxTdGFjaywgbV9jYWxsU3RhY2tTaXplKTsKLSNl
bmRpZgotICAgIH0KKyAgICByZXBvcnRNZW1vcnlVc2FnZShtX3BvaW50ZXIsIG1lbW9yeU9iamVj
dEluZm8pOworICAgIHJldHVybiBtX3BvaW50ZXI7CiB9CiAKIC8vIExpbmsgdGltZSBndWFyZCBm
b3IgY2xhc3NlcyB3aXRoIGV4dGVybmFsIG1lbW9yeSBpbnN0cnVtZW50YXRpb24uCkBAIC0zMjks
NiArMjc5LDQgQEAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBVUkxTdHJpbmcqIGNvbnN0
JiwgTWVtb3J5T2JqZWN0SW5mbyopOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAotI3VuZGVmIERF
QlVHX1BPSU5URVJfSU5TVFJVTUVOVEFUSU9OCi0KICNlbmRpZiAvLyAhZGVmaW5lZChNZW1vcnlJ
bnN0cnVtZW50YXRpb25faCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeU9iamVj
dEluZm8uaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeU9iamVjdEluZm8uaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
YzdmZTZjODM2MmMxYTRmMTUyNGJkNWEzOTI4NzVhODZhYmQ4MjM1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvTWVtb3J5T2JqZWN0SW5mby5oCkBAIC0wLDAgKzEsODAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIE1lbW9yeU9iamVjdEluZm9faAorI2RlZmluZSBNZW1vcnlPYmplY3RJbmZvX2gKKworbmFt
ZXNwYWNlIFdURiB7CisKK2NsYXNzIE1lbW9yeUNsYXNzSW5mbzsKK2NsYXNzIE1lbW9yeUluc3Ry
dW1lbnRhdGlvbjsKKwordHlwZWRlZiBjb25zdCBjaGFyKiBNZW1vcnlPYmplY3RUeXBlOworCitj
bGFzcyBNZW1vcnlPYmplY3RJbmZvIHsKK3B1YmxpYzoKKyAgICBNZW1vcnlPYmplY3RJbmZvKE1l
bW9yeUluc3RydW1lbnRhdGlvbiogbWVtb3J5SW5zdHJ1bWVudGF0aW9uLCBNZW1vcnlPYmplY3RU
eXBlIG93bmVyT2JqZWN0VHlwZSkKKyAgICAgICAgOiBtX21lbW9yeUluc3RydW1lbnRhdGlvbiht
ZW1vcnlJbnN0cnVtZW50YXRpb24pCisgICAgICAgICwgbV9vYmplY3RUeXBlKG93bmVyT2JqZWN0
VHlwZSkKKyAgICAgICAgLCBtX29iamVjdFNpemUoMCkKKyAgICAgICAgLCBtX3BvaW50ZXIoMCkK
KyAgICB7IH0KKworICAgIHR5cGVkZWYgTWVtb3J5Q2xhc3NJbmZvIENsYXNzSW5mbzsKKworICAg
IE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0VHlw
ZTsgfQorICAgIHNpemVfdCBvYmplY3RTaXplKCkgY29uc3QgeyByZXR1cm4gbV9vYmplY3RTaXpl
OyB9CisgICAgY29uc3Qgdm9pZCogcmVwb3J0ZWRQb2ludGVyKCkgY29uc3QgeyByZXR1cm4gbV9w
b2ludGVyOyB9CisKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb24qIG1lbW9yeUluc3RydW1lbnRh
dGlvbigpIHsgcmV0dXJuIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uOyB9CisKK3ByaXZhdGU6Cisg
ICAgZnJpZW5kIGNsYXNzIE1lbW9yeUNsYXNzSW5mbzsKKyAgICBmcmllbmQgY2xhc3MgTWVtb3J5
SW5zdHJ1bWVudGF0aW9uOworCisgICAgdm9pZCByZXBvcnRPYmplY3RJbmZvKGNvbnN0IHZvaWQq
IHBvaW50ZXIsIE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0VHlwZSwgc2l6ZV90IG9iamVjdFNpemUp
CisgICAgeworICAgICAgICBpZiAoIW1fb2JqZWN0U2l6ZSkgeworICAgICAgICAgICAgbV9wb2lu
dGVyID0gcG9pbnRlcjsKKyAgICAgICAgICAgIG1fb2JqZWN0U2l6ZSA9IG9iamVjdFNpemU7Cisg
ICAgICAgICAgICBpZiAob2JqZWN0VHlwZSkKKyAgICAgICAgICAgICAgICBtX29iamVjdFR5cGUg
PSBvYmplY3RUeXBlOworICAgICAgICB9CisgICAgfQorCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0
aW9uKiBtX21lbW9yeUluc3RydW1lbnRhdGlvbjsKKyAgICBNZW1vcnlPYmplY3RUeXBlIG1fb2Jq
ZWN0VHlwZTsKKyAgICBzaXplX3QgbV9vYmplY3RTaXplOworICAgIGNvbnN0IHZvaWQqIG1fcG9p
bnRlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gIWRlZmluZWQoTWVt
b3J5T2JqZWN0SW5mb19oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vRkZURnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUu
Y3BwCmluZGV4IDYzYzg3ZGRjOTI5NjFjYWEwZTg0Njk3NWI2MjA1YjkxMTE3OWZmYzkuLmVlZTQ1
ZGU4YWIzZDJjMDJiMWUyNjcyM2MzNjRiMGRmOTBkZDVjOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJQ
bGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV4Lmg+
CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5T2JqZWN0
SW5mby5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogI2lmICFVU0VfQUNDRUxFUkFURV9G
RlQgJiYgVVNFKFdFQkFVRElPX0ZGTVBFRykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IGQ3ZjQxODE2YWQwM2I4YjFlYjA4YWZmYjk4MjJi
YWM4ZTIwNjA1MGIuLjZlY2FhMDQxN2E4MGFiZjAxMjZlYzE1NjVjMjBmYmQyNmYwMTIzYTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAt
NDEsNiArNDEsNyBAQAogI2VuZGlmCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRh
dGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KKyNp
bmNsdWRlIDx3dGYvTWVtb3J5T2JqZWN0SW5mby5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KICNpbmNsdWRlIDxhbGdvcml0aG0+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAppbmRleCBiMWJh
NTk4NmE0OTIyZmRjNTUzNWIxYTRkYjQ3NWVjMjcyNGVhZjdkLi40MzRlM2NjZjA4Mzc5MGU4Y2I1
YzUzMmMyZGJiNGIxZWQ0YTEzOGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRlICJTaGFkb3dE
YXRhLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1
ZGUgPHd0Zi9NZW1vcnlPYmplY3RJbmZvLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuY3BwCmluZGV4IDFjNmNiMTg3OWIyZDk1Yzg1ODBhOTkxOGUzYmRmYTYz
NzgyNzM2YzQuLmVkOWU5YTJlZmQ0OWYwZDI0NGY4YmNhMjI2MjVlYzZhNGUzZmRhNWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0
ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJXZWJDb3Jl
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRh
dGlvbkhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9y
Lmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeU9iamVjdEluZm8uaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZW1vcnlJ
bnN0cnVtZW50YXRpb25UZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01l
bW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCmluZGV4IDczNDgwNjJkOTE0NzI2ZTkwMWEzZDUw
NTdiOWE3YmIwMjc3MTJiYTQuLmRhZDA4ZGRhNDVkNzJlY2ZkZTg3NGI2M2QzMzAxNGZiNzkyOTA1
ZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01lbW9yeUluc3Ry
dW1lbnRhdGlvblRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01l
bW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSA8
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL01l
bW9yeUluc3RydW1lbnRhdGlvblN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5T2JqZWN0SW5mby5oPgogI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174921</attachid>
            <date>2012-11-19 02:09:04 -0800</date>
            <delta_ts>2012-11-19 06:38:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102510-20121119140654.patch</filename>
            <type>text/plain</type>
            <size>35492</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDJjMzBjY2U2Y2U4OGRiM2M0ZWY0Yzcz
NTlkNDE0OTA4MGFmNDFhMTcuLmNkNWYxZTg0NDhhNjg5YTQ1NDJlZmU0NTQwMDEwYzc1ZWViYTI5
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMTItMTEtMTYgIFl1cnkgU2VtaWtoYXRza3kgIDx5
dXJ5c0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTWVtb3J5IGluc3RydW1lbnRhdGlvbjogZXh0
cmFjdCBNZW1vcnlPYmplY3RJbmZvIGRlY2xhcmF0aW9uIGludG8gYSBzZXBhcmF0ZSBmaWxlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI1MTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlZCBNZW1v
cnlPYmplY3RJbmZvIGludG8gc2VwYXJhdGUgaGVhZGVyLiBNb3ZlZCBkZWZpbml0aW9uIG9mIE1l
bW9yeUluc3RydW1lbnRhdGlvbgorICAgICAgICBtZXRob2RzIHRoYXQgZGVwZW5kIG9uIE1lbW9y
eU9iamVjdEluZm8gZGVjbGFyYXRpb24gaW50byBNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwIHRv
CisgICAgICAgIG1ha2UgTWVtb3J5SW5zdHJ1bWVudGF0aW9uIHJlcXVpcmUgb25seSBmb3J3YXJk
IGRlY2xhcmF0aW9uIG9mIE1lbW9yeU9iamVjdEluZm8uCisKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIFdURi5neXBpOgorICAgICAgICAqIFdURi5wcm86CisgICAg
ICAgICogV1RGLnZjcHJvai9XVEYudmNwcm9qOgorICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcDogQWRkZWQuCisgICAg
ICAgIChXVEYpOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246Ok1lbW9yeUlu
c3RydW1lbnRhdGlvbik6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6fk1l
bW9yeUluc3RydW1lbnRhdGlvbik6CisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlv
bjo6Z2V0T2JqZWN0VHlwZSk6IHRoaXMgbWV0aG9kIGFsbG93cyB0byBnZXQgb2JqZWN0IHR5cGUg
d2l0aG91dAorICAgICAgICBwdWxsaW5nIGluIE1lbW9yeU9iamVjdEluZm8uaCBhbmQgYWxsIGl0
cyBkZXBlbmRlbmNpZXMuCisgICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6Y2Fs
bFJlcG9ydE9iamVjdEluZm8pOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246
Okluc3RydW1lbnRlZFBvaW50ZXJCYXNlOjpJbnN0cnVtZW50ZWRQb2ludGVyQmFzZSk6CisgICAg
ICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U6
OnByb2Nlc3MpOgorICAgICAgICAoV1RGOjpNZW1vcnlDbGFzc0luZm86OmluaXQpOgorICAgICAg
ICAoV1RGOjpNZW1vcnlDbGFzc0luZm86OmFkZFJhd0J1ZmZlcik6CisgICAgICAgIChXVEY6Ok1l
bW9yeUNsYXNzSW5mbzo6YWRkUHJpdmF0ZUJ1ZmZlcik6CisgICAgICAgICogd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKToKKyAgICAg
ICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRSb290T2JqZWN0KToKKyAgICAgICAg
KEluc3RydW1lbnRlZFBvaW50ZXJCYXNlKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVu
dGF0aW9uOjpyZXBvcnRPYmplY3RNZW1vcnlVc2FnZSk6CisgICAgICAgIChJbnN0cnVtZW50ZWRQ
b2ludGVyKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3Qp
OiB3ZSBub3cgcGFzcyBvd25lcidzIE1lbW9yeU9iamVjdEluZm8gaW4gYWxsIHBsYWNlcworICAg
ICAgICB3aGVyZSB3ZSByZXBvcnQgb2JqZWN0cyBwb2ludGVkIGJ5IHRoZSBvd25lci4KKyAgICAg
ICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpPd25pbmdUcmFpdHM6OmFkZE9iamVjdCk6
CisgICAgICAgIChXVEY6Ok1lbW9yeUNsYXNzSW5mbzo6TWVtb3J5Q2xhc3NJbmZvKToKKyAgICAg
ICAgKFdURjo6TWVtb3J5Q2xhc3NJbmZvOjphZGRNZW1iZXIpOgorICAgICAgICAoTWVtb3J5Q2xh
c3NJbmZvKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJ
bXBsKToKKyAgICAgICAgKFdURjo6OjpJbnN0cnVtZW50ZWRQb2ludGVyKToKKyAgICAgICAgKFdU
Rjo6OjpjYWxsUmVwb3J0TWVtb3J5VXNhZ2UpOgorICAgICAgICAqIHd0Zi9NZW1vcnlPYmplY3RJ
bmZvLmg6IEFkZGVkLgorICAgICAgICAoV1RGKToKKyAgICAgICAgKE1lbW9yeU9iamVjdEluZm8p
OgorICAgICAgICAoV1RGOjpNZW1vcnlPYmplY3RJbmZvOjpNZW1vcnlPYmplY3RJbmZvKToKKyAg
ICAgICAgKFdURjo6TWVtb3J5T2JqZWN0SW5mbzo6b2JqZWN0VHlwZSk6CisgICAgICAgIChXVEY6
Ok1lbW9yeU9iamVjdEluZm86Om9iamVjdFNpemUpOgorICAgICAgICAoV1RGOjpNZW1vcnlPYmpl
Y3RJbmZvOjpyZXBvcnRlZFBvaW50ZXIpOgorICAgICAgICAoV1RGOjpNZW1vcnlPYmplY3RJbmZv
OjptZW1vcnlJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAoV1RGOjpNZW1vcnlPYmplY3RJbmZv
OjpyZXBvcnRPYmplY3RJbmZvKToKKwogMjAxMi0xMS0xOCAgTGFzemxvIEdvbWJvcyAgPGwuZ29t
Ym9zQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFJlbW92ZSBub24tZXhpc3RlbnQgZGlyZWN0b3Jp
ZXMgZnJvbSB0aGUgbWFrZSBzeXN0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05VbWFrZWZp
bGUubGlzdC5hbSBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5ZDRmMGQ3
ZTViMDc5YTJjZGFmMGM1MzUwYTkwYWJjMmM1OTk5Y2ZlLi5mOWRiOGMwMmMxNDA4MTlhYjZmZTBk
YTI4MTU0ZDZlZTNlMzZhMWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxp
c3QuYW0KKysrIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC04MCw2ICs4MCw3
IEBAIHd0Zl9zb3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmggXAog
ICAgIFNvdXJjZS9XVEYvd3RmL01lZGlhVGltZS5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZWRp
YVRpbWUuY3BwIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uY3Bw
IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBcCiAgICAgU291
cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uQXJyYXlCdWZmZXJWaWV3LmggXAogICAg
IFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmggXApA
QCAtOTAsNiArOTEsNyBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uU2VxdWVuY2UuaCBcCiAgICAgU291cmNlL1dURi93dGYvTWVtb3J5
SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3Ry
dW1lbnRhdGlvblZlY3Rvci5oIFwKKyAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlPYmplY3RJbmZv
LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oIFwKICAgICBTb3VyY2UvV1RG
L3d0Zi9NZXRhQWxsb2NhdG9yLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRv
ci5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLmd5cGkgYi9Tb3VyY2UvV1RGL1dURi5n
eXBpCmluZGV4IGY1NDA3N2Q4NDBmOTlhMmM2MzEyNjhlYTkyN2E2Yzc3MDMxZTQ3NTIuLjI4ZWI1
NzY2NDc0NTJkZWNhZjhkNjBlMmY2OGZkOTdmYjE1YzhmOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvV1RGLmd5cGkKKysrIGIvU291cmNlL1dURi9XVEYuZ3lwaQpAQCAtNTAsNiArNTAsNyBAQAog
ICAgICAgICAgICAgJ3d0Zi9NRDUuaCcsCiAgICAgICAgICAgICAnd3RmL01haW5UaHJlYWQuaCcs
CiAgICAgICAgICAgICAnd3RmL01hdGhFeHRyYXMuaCcsCisgICAgICAgICAgICAnd3RmL01lbW9y
eUluc3RydW1lbnRhdGlvbi5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50
YXRpb24uaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkFycmF5QnVm
ZmVyVmlldy5oJywKICAgICAgICAgICAgICd3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaENv
dW50ZWRTZXQuaCcsCkBAIC02MCw2ICs2MSw3IEBACiAgICAgICAgICAgICAnd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvblNlcXVlbmNlLmgnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25TdHJpbmcuaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1lbnRhdGlv
blZlY3Rvci5oJywKKyAgICAgICAgICAgICd3dGYvTWVtb3J5T2JqZWN0SW5mby5oJywKICAgICAg
ICAgICAgICd3dGYvTWVzc2FnZVF1ZXVlLmgnLAogICAgICAgICAgICAgJ3d0Zi9Ob25Db3B5aW5n
U29ydC5oJywKICAgICAgICAgICAgICd3dGYvTm9uY29weWFibGUuaCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL1dURi5wcm8gYi9Tb3VyY2UvV1RGL1dURi5wcm8KaW5kZXggOGJkMzAzYjFjMDU5
YmQzYjY0MDU4NjQzZmZiZjdiYzBlMGI2NmQ0Ny4uODBjZmYyYWIzMmI2OWQwOWIyNjUzMzVhOTA0
NjNkOWRhN2UzOGM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9XVEYucHJvCisrKyBiL1NvdXJj
ZS9XVEYvV1RGLnBybwpAQCAtOTcsNiArOTcsNyBAQCBIRUFERVJTICs9IFwKICAgICBNZW1vcnlJ
bnN0cnVtZW50YXRpb25TZXF1ZW5jZS5oIFwKICAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25TdHJp
bmcuaCBcCiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmggXAorICAgIE1lbW9yeU9i
amVjdEluZm8uaCBcCiAgICAgTWVzc2FnZVF1ZXVlLmggXAogICAgIE1ldGFBbGxvY2F0b3IuaCBc
CiAgICAgTWV0YUFsbG9jYXRvckhhbmRsZS5oIFwKQEAgLTIxNCw2ICsyMTUsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBNRDUuY3BwIFwKICAgICBNYWluVGhyZWFkLmNwcCBcCiAgICAgTWVkaWFUaW1l
LmNwcCBcCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBcCiAgICAgTWV0YUFsbG9jYXRv
ci5jcHAgXAogICAgIE51bGxQdHIuY3BwIFwKICAgICBOdW1iZXJPZkNvcmVzLmNwcCBcCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvaiBiL1NvdXJjZS9XVEYvV1RG
LnZjcHJvai9XVEYudmNwcm9qCmluZGV4IGU1NDdmYzIzMmFkNjQ5NDBhN2IzOGI5NmRjMDBkNDhj
M2MwZGZmMGUuLjY4NjMzYWY0MmM1ODQ0YTJmMjhmNjViM2E3YmYwMmQ5OGI0ZTg1MTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjcHJvai9XVEYudmNwcm9qCisrKyBiL1NvdXJjZS9XVEYv
V1RGLnZjcHJvai9XVEYudmNwcm9qCkBAIC05MDUsNiArOTA1LDEwIEBACiAJCQk+CiAJCTwvRmls
ZT4KIAkJPEZpbGUKKwkJICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxNZW1vcnlJbnN0cnVt
ZW50YXRpb24uY3BwIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCiAJCSAgICAgICAgUmVsYXRp
dmVQYXRoPSIuLlx3dGZcTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAJCQk+CiAJCTwvRmlsZT4K
QEAgLTk0MSw2ICs5NDUsMTAgQEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQorCQkgICAgICAg
IFJlbGF0aXZlUGF0aD0iLi5cd3RmXE1lbW9yeU9iamVjdEluZm8uaCIKKwkJCT4KKwkJPC9GaWxl
PgorCQk8RmlsZQogCQkJUmVsYXRpdmVQYXRoPSIuLlx3dGZcTWVzc2FnZVF1ZXVlLmgiCiAJCQk+
CiAJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDhhZWViZWQ2OTk1YTRhMTc2N2EwZWNkMzMzNGM4Y2VjYjgyODE3NTAuLmIyNzYzMWQxZmNkMzdh
YjVlMTdkMGZmMzJiYjM5YWIyMWI5NjNhNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjkzLDYgKzI5Myw4IEBACiAJCUNENTQ5N0FDMTU4NTdEMDMwMEI1
QkMzMCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAgKi87
IH07CiAJCUNENTQ5N0FEMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRpYVRpbWUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FCMTU4NTdEMDMwMEI1
QkMzMCAvKiBNZWRpYVRpbWUuaCAqLzsgfTsKIAkJRUI5NUUxRjAxNjFBNzI0MTAwODlBMkY1IC8q
IEJ5dGVPcmRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRUI5NUUxRUYxNjFBNzI0MTAwODlBMkY1IC8qIEJ5dGVPcmRlci5oICovOyB9OworCQlGMzIy
Q0NERjE2NTY5OUZGMDA0ODUyREQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzMjJDQ0RFMTY1Njk5RkYw
MDQ4NTJERCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwICovOyB9OworCQlGMzIyQ0NFMTE2
NTY5QTEwMDA0ODUyREQgLyogTWVtb3J5T2JqZWN0SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjMyMkNDRTAxNjU2OUExMDAwNDg1MkREIC8qIE1l
bW9yeU9iamVjdEluZm8uaCAqLzsgfTsKIAkJRjM1MjVFMkExNjE0OUZGNDAwMjc4QkMxIC8qIE1l
bW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzUyNUUyOTE2MTQ5RkY0MDAyNzhCQzEgLyogTWVtb3J5
SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hTZXQuaCAqLzsgfTsKIAkJRjM1MjVFNDYxNjE5QTRFRTAw
Mjc4QkMxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzNTI1RTQ1MTYxOUE0RUUwMDI3OEJDMSAv
KiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmggKi87IH07CiAJCUYzRkJDNzFFMTYxQUY3
QkYwMEJCNEJENCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjNGQkM3MUQxNjFBRjdC
RjAwQkI0QkQ0IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmggKi87IH07
CkBAIC01OTMsNiArNTk1LDggQEAKIAkJQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlh
VGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZWRpYVRpbWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU0OTdBQjE1ODU3RDAzMDBCNUJD
MzAgLyogTWVkaWFUaW1lLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlh
VGltZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjk1RTFFRjE2MUE3MjQxMDA4
OUEyRjUgLyogQnl0ZU9yZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ5
dGVPcmRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGMzIyQ0NERTE2NTY5OUZG
MDA0ODUyREQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUYzMjJDQ0UwMTY1NjlBMTAwMDQ4NTJERCAvKiBNZW1vcnlPYmpl
Y3RJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeU9iamVjdElu
Zm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjM1MjVFMjkxNjE0OUZGNDAwMjc4
QkMxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzNTI1RTQ1MTYxOUE0RUUwMDI3OEJDMSAvKiBN
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjNGQkM3MUQxNjFBRjdCRjAwQkI0QkQ0IC8qIE1lbW9yeUluc3RydW1lbnRh
dGlvbkhhc2hDb3VudGVkU2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1l
bW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC03NDAsNiArNzQ0LDcgQEAKIAkJCQlBOEE0NzJDQjE1MUE4MjVCMDA0MTIzRkYg
LyogTUQ1LmggKi8sCiAJCQkJQ0Q1NDk3QUExNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5j
cHAgKi8sCiAJCQkJQ0Q1NDk3QUIxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oICovLAor
CQkJCUYzMjJDQ0RFMTY1Njk5RkYwMDQ4NTJERCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb24uY3Bw
ICovLAogCQkJCTRGMUQxMTUzMTVGRjExQkUwMDI2RTkwOCAvKiBNZW1vcnlJbnN0cnVtZW50YXRp
b24uaCAqLywKIAkJCQk0RkQ4NTU0NjE2MTMzRTBFMDBDNUI3MDQgLyogTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uQXJyYXlCdWZmZXJWaWV3LmggKi8sCiAJCQkJRjNGQkM3MUQxNjFBRjdCRjAwQkI0QkQ0
IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmggKi8sCkBAIC03NTAsNiAr
NzU1LDcgQEAKIAkJCQlGM0ZCQzcxRjE2MUFGN0NEMDBCQjRCRDQgLyogTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uU2VxdWVuY2UuaCAqLywKIAkJCQk0RkNGMjdFMDE2MTcyRTg2MDBDQkYwMzcgLyogTWVt
b3J5SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmggKi8sCiAJCQkJNEZDQjcxMDkxNjBBMUEwNzAwODQy
NUVDIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oICovLAorCQkJCUYzMjJDQ0UwMTY1
NjlBMTAwMDQ4NTJERCAvKiBNZW1vcnlPYmplY3RJbmZvLmggKi8sCiAJCQkJQThBNDcyQ0MxNTFB
ODI1QjAwNDEyM0ZGIC8qIE1lc3NhZ2VRdWV1ZS5oICovLAogCQkJCUE4QTQ3MkNEMTUxQTgyNUIw
MDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9yLmNwcCAqLywKIAkJCQlBOEE0NzJDRTE1MUE4MjVCMDA0
MTIzRkYgLyogTWV0YUFsbG9jYXRvci5oICovLApAQCAtMTEwOSw2ICsxMTE1LDcgQEAKIAkJCQlG
M0ZCQzcyMDE2MUFGN0NEMDBCQjRCRDQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2VxdWVuY2Uu
aCBpbiBIZWFkZXJzICovLAogCQkJCTRGQ0YyN0UxMTYxNzJFODYwMENCRjAzNyAvKiBNZW1vcnlJ
bnN0cnVtZW50YXRpb25TdHJpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTRGQ0I3MTBBMTYwQTFB
MDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCBpbiBIZWFkZXJzICov
LAorCQkJCUYzMjJDQ0UxMTY1NjlBMTAwMDQ4NTJERCAvKiBNZW1vcnlPYmplY3RJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBOEE0NzNFQjE1MUE4MjVCMDA0MTIzRkYgLyogTWVzc2FnZVF1ZXVl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzNFRDE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFs
bG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRUUxNTFBODI1QjAwNDEyM0ZGIC8q
IE1ldGFBbGxvY2F0b3JIYW5kbGUuaCBpbiBIZWFkZXJzICovLApAQCAtMTMzNiw2ICsxMzQzLDcg
QEAKIAkJCQlBOEE0NzNFNDE1MUE4MjVCMDA0MTIzRkYgLyogTWFpblRocmVhZE1hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUE4QTQ3M0U5MTUxQTgyNUIwMDQxMjNGRiAvKiBNRDUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQ0Q1NDk3QUMxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlGMzIyQ0NERjE2NTY5OUZGMDA0ODUyREQgLyogTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0VDMTUxQTgyNUIwMDQx
MjNGRiAvKiBNZXRhQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0YyMTUx
QTgyNUIwMDQxMjNGRiAvKiBOdWxsUHRyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y0
MTUxQTgyNUIwMDQxMjNGRiAvKiBOdW1iZXJPZkNvcmVzLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9D
TWFrZUxpc3RzLnR4dAppbmRleCBkYThkZWQ5M2JkNDYwOWJkNDM4ZmY5NDllNjY2OTc5NDUyNTA2
NzQ1Li5jYWZlMTA0NGIwMWRjOTNkNDJkOGZhODhhNGYyMTZjYTEwNmNiMmRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFr
ZUxpc3RzLnR4dApAQCAtNDYsNiArNDYsMTcgQEAgU0VUKFdURl9IRUFERVJTCiAgICAgTWFsbG9j
Wm9uZVN1cHBvcnQuaAogICAgIE1hdGhFeHRyYXMuaAogICAgIE1lZGlhVGltZS5oCisgICAgTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25BcnJheUJ1ZmZl
clZpZXcuaAorICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbkhhc2hDb3VudGVkU2V0LmgKKyAgICBN
ZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmgKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25I
YXNoU2V0LmgKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oCisgICAgTWVt
b3J5SW5zdHJ1bWVudGF0aW9uUGFyc2VkVVJMLmgKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25T
ZXF1ZW5jZS5oCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmgKKyAgICBNZW1vcnlJ
bnN0cnVtZW50YXRpb25WZWN0b3IuaAorICAgIE1lbW9yeU9iamVjdEluZm8uaAogICAgIE1lc3Nh
Z2VRdWV1ZS5oCiAgICAgTWV0YUFsbG9jYXRvci5oCiAgICAgTWV0YUFsbG9jYXRvckhhbmRsZS5o
CkBAIC0xNTcsNiArMTY4LDcgQEAgU0VUKFdURl9TT1VSQ0VTCiAgICAgTWVkaWFUaW1lLmNwcAog
ICAgIE1ldGFBbGxvY2F0b3IuY3BwCiAgICAgT1NSYW5kb21Tb3VyY2UuY3BwCisgICAgTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmNwcAogICAgIE51bWJlck9mQ29yZXMuY3BwCiAgICAgUkFNU2l6ZS5j
cHAKICAgICBQYWdlQWxsb2NhdGlvbkFsaWduZWQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGJlMmI2ZGNmYjQ2NmY1MjE2ZDk3MWM3MTNm
MmEzOTE5MTI1ZTM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uLmNwcApAQCAtMCwwICsxLDExMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKKworI2luY2x1ZGUgPHd0Zi9NZW1vcnlP
YmplY3RJbmZvLmg+CisKKyNpZiBERUJVR19QT0lOVEVSX0lOU1RSVU1FTlRBVElPTgorI2luY2x1
ZGUgPHN0ZGlvLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNlbmRpZgorCituYW1l
c3BhY2UgV1RGIHsKKworTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpNZW1vcnlJbnN0cnVtZW50YXRp
b24oTWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xpZW50KiBjbGllbnQpCisgICAgOiBtX2NsaWVudChj
bGllbnQpCisgICAgLCBtX3Jvb3RPYmplY3RJbmZvKGFkb3B0UHRyKG5ldyBNZW1vcnlPYmplY3RJ
bmZvKHRoaXMsIDApKSkKK3sKK30KKworTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjp+TWVtb3J5SW5z
dHJ1bWVudGF0aW9uKCkKK3sKK30KKworTWVtb3J5T2JqZWN0VHlwZSBNZW1vcnlJbnN0cnVtZW50
YXRpb246OmdldE9iamVjdFR5cGUoTWVtb3J5T2JqZWN0SW5mbyogb2JqZWN0SW5mbykKK3sKKyAg
ICByZXR1cm4gb2JqZWN0SW5mby0+b2JqZWN0VHlwZSgpOworfQorCit2b2lkIE1lbW9yeUluc3Ry
dW1lbnRhdGlvbjo6Y2FsbFJlcG9ydE9iamVjdEluZm8oTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5
T2JqZWN0SW5mbywgY29uc3Qgdm9pZCogcG9pbnRlciwgTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RU
eXBlLCBzaXplX3Qgb2JqZWN0U2l6ZSkKK3sKKyAgICBtZW1vcnlPYmplY3RJbmZvLT5yZXBvcnRP
YmplY3RJbmZvKHBvaW50ZXIsIG9iamVjdFR5cGUsIG9iamVjdFNpemUpOworfQorCitNZW1vcnlJ
bnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBvaW50ZXJCYXNlOjpJbnN0cnVtZW50ZWRQb2lu
dGVyQmFzZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKQorICAgIDogbV9vd25l
ck9iamVjdFR5cGUobWVtb3J5T2JqZWN0SW5mby0+b2JqZWN0VHlwZSgpKQoreworI2lmIERFQlVH
X1BPSU5URVJfSU5TVFJVTUVOVEFUSU9OCisgICAgbV9jYWxsU3RhY2tTaXplID0gc19tYXhDYWxs
U3RhY2tTaXplOworICAgIFdURkdldEJhY2t0cmFjZShtX2NhbGxTdGFjaywgJm1fY2FsbFN0YWNr
U2l6ZSk7CisjZW5kaWYKK30KKwordm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1l
bnRlZFBvaW50ZXJCYXNlOjpwcm9jZXNzKE1lbW9yeUluc3RydW1lbnRhdGlvbiogbWVtb3J5SW5z
dHJ1bWVudGF0aW9uKQoreworICAgIE1lbW9yeU9iamVjdEluZm8gbWVtb3J5T2JqZWN0SW5mbyht
ZW1vcnlJbnN0cnVtZW50YXRpb24sIG1fb3duZXJPYmplY3RUeXBlKTsKKyAgICBjb25zdCB2b2lk
KiBvcmlnaW5hbFBvaW50ZXIgPSBjYWxsUmVwb3J0TWVtb3J5VXNhZ2UoJm1lbW9yeU9iamVjdElu
Zm8pOworCisgICAgY29uc3Qgdm9pZCogcG9pbnRlciA9IG1lbW9yeU9iamVjdEluZm8ucmVwb3J0
ZWRQb2ludGVyKCk7CisgICAgQVNTRVJUKHBvaW50ZXIpOworICAgIGlmIChwb2ludGVyICE9IG9y
aWdpbmFsUG9pbnRlciAmJiBtZW1vcnlJbnN0cnVtZW50YXRpb24tPnZpc2l0ZWQocG9pbnRlcikp
CisgICAgICAgIHJldHVybjsKKyAgICBtZW1vcnlJbnN0cnVtZW50YXRpb24tPmNvdW50T2JqZWN0
U2l6ZShwb2ludGVyLCBtZW1vcnlPYmplY3RJbmZvLm9iamVjdFR5cGUoKSwgbWVtb3J5T2JqZWN0
SW5mby5vYmplY3RTaXplKCkpOworICAgIGlmICghbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5jaGVj
a0NvdW50ZWRPYmplY3QocG9pbnRlcikpIHsKKyNpZiBERUJVR19QT0lOVEVSX0lOU1RSVU1FTlRB
VElPTgorICAgICAgICBmcHV0cygiVW5rbm93biBvYmplY3QgY291bnRlZDpcbiIsIHN0ZGVycik7
CisgICAgICAgIFdURlByaW50QmFja3RyYWNlKG1fY2FsbFN0YWNrLCBtX2NhbGxTdGFja1NpemUp
OworI2VuZGlmCisgICAgfQorfQorCit2b2lkIE1lbW9yeUNsYXNzSW5mbzo6aW5pdChjb25zdCB2
b2lkKiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUsIHNpemVfdCBhY3R1YWxT
aXplKQoreworICAgIG1fbWVtb3J5T2JqZWN0SW5mby0+cmVwb3J0T2JqZWN0SW5mbyhwb2ludGVy
LCBvYmplY3RUeXBlLCBhY3R1YWxTaXplKTsKKyAgICBtX21lbW9yeUluc3RydW1lbnRhdGlvbiA9
IG1fbWVtb3J5T2JqZWN0SW5mby0+bWVtb3J5SW5zdHJ1bWVudGF0aW9uKCk7CisgICAgbV9vYmpl
Y3RUeXBlID0gbV9tZW1vcnlPYmplY3RJbmZvLT5vYmplY3RUeXBlKCk7Cit9CisKK3ZvaWQgTWVt
b3J5Q2xhc3NJbmZvOjphZGRSYXdCdWZmZXIoY29uc3Qgdm9pZCogY29uc3QmIGJ1ZmZlciwgc2l6
ZV90IHNpemUpCit7CisgICAgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZFJhd0J1ZmZlcihi
dWZmZXIsIG1fb2JqZWN0VHlwZSwgc2l6ZSk7Cit9CisKK3ZvaWQgTWVtb3J5Q2xhc3NJbmZvOjph
ZGRQcml2YXRlQnVmZmVyKHNpemVfdCBzaXplLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0
VHlwZSkKK3sKKyAgICBpZiAoIXNpemUpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoIW93bmVy
T2JqZWN0VHlwZSkKKyAgICAgICAgb3duZXJPYmplY3RUeXBlID0gbV9vYmplY3RUeXBlOworICAg
IG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5jb3VudE9iamVjdFNpemUoMCwgb3duZXJPYmplY3RU
eXBlLCBzaXplKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvbi5oCmluZGV4IDFjMzgyNDNlNmIxNTU2MjhmMzkzOTY3ZWQwYjZhZjM2NmIy
NWU5YzYuLjk4NDI4NDA0YzU5YjdhZjZlNmM0YjQ3OWFlODQ2NzhhZmZjYjJmMmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5oCkBAIC0zNywxMSArMzcsNiBAQAogCiAjZGVm
aW5lIERFQlVHX1BPSU5URVJfSU5TVFJVTUVOVEFUSU9OIDAKIAotI2lmIERFQlVHX1BPSU5URVJf
SU5TVFJVTUVOVEFUSU9OCi0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDxz
dGRpby5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXVEYgewogCiBjbGFzcyBNZW1vcnlDbGFzc0lu
Zm87CkBAIC01NSw0MyArNTAsNiBAQCBlbnVtIE1lbW9yeU93bmluZ1R5cGUgewogICAgIGJ5UmVm
ZXJlbmNlCiB9OwogCi1jbGFzcyBNZW1vcnlPYmplY3RJbmZvIHsKLXB1YmxpYzoKLSAgICBNZW1v
cnlPYmplY3RJbmZvKE1lbW9yeUluc3RydW1lbnRhdGlvbiogbWVtb3J5SW5zdHJ1bWVudGF0aW9u
LCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSkKLSAgICAgICAgOiBtX21lbW9yeUlu
c3RydW1lbnRhdGlvbihtZW1vcnlJbnN0cnVtZW50YXRpb24pCi0gICAgICAgICwgbV9vYmplY3RU
eXBlKG93bmVyT2JqZWN0VHlwZSkKLSAgICAgICAgLCBtX29iamVjdFNpemUoMCkKLSAgICAgICAg
LCBtX3BvaW50ZXIoMCkKLSAgICB7IH0KLQotICAgIHR5cGVkZWYgTWVtb3J5Q2xhc3NJbmZvIENs
YXNzSW5mbzsKLQotICAgIE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0VHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fb2JqZWN0VHlwZTsgfQotICAgIHNpemVfdCBvYmplY3RTaXplKCkgY29uc3QgeyByZXR1
cm4gbV9vYmplY3RTaXplOyB9Ci0gICAgY29uc3Qgdm9pZCogcmVwb3J0ZWRQb2ludGVyKCkgY29u
c3QgeyByZXR1cm4gbV9wb2ludGVyOyB9Ci0KLSAgICBNZW1vcnlJbnN0cnVtZW50YXRpb24qIG1l
bW9yeUluc3RydW1lbnRhdGlvbigpIHsgcmV0dXJuIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uOyB9
Ci0KLXByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIE1lbW9yeUNsYXNzSW5mbzsKLSAgICBmcmll
bmQgY2xhc3MgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOwotCi0gICAgdm9pZCByZXBvcnRPYmplY3RJ
bmZvKGNvbnN0IHZvaWQqIHBvaW50ZXIsIE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0VHlwZSwgc2l6
ZV90IG9iamVjdFNpemUpCi0gICAgewotICAgICAgICBpZiAoIW1fb2JqZWN0U2l6ZSkgewotICAg
ICAgICAgICAgbV9wb2ludGVyID0gcG9pbnRlcjsKLSAgICAgICAgICAgIG1fb2JqZWN0U2l6ZSA9
IG9iamVjdFNpemU7Ci0gICAgICAgICAgICBpZiAob2JqZWN0VHlwZSkKLSAgICAgICAgICAgICAg
ICBtX29iamVjdFR5cGUgPSBvYmplY3RUeXBlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgTWVt
b3J5SW5zdHJ1bWVudGF0aW9uKiBtX21lbW9yeUluc3RydW1lbnRhdGlvbjsKLSAgICBNZW1vcnlP
YmplY3RUeXBlIG1fb2JqZWN0VHlwZTsKLSAgICBzaXplX3QgbV9vYmplY3RTaXplOwotICAgIGNv
bnN0IHZvaWQqIG1fcG9pbnRlcjsKLX07Ci0KIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgcmVw
b3J0TWVtb3J5VXNhZ2UoY29uc3QgVCogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CiAKIGNs
YXNzIE1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudCB7CkBAIC0xMDQsMjAgKzYyLDMyIEBAIHB1
YmxpYzoKIAogY2xhc3MgTWVtb3J5SW5zdHJ1bWVudGF0aW9uIHsKIHB1YmxpYzoKLSAgICBleHBs
aWNpdCBNZW1vcnlJbnN0cnVtZW50YXRpb24oTWVtb3J5SW5zdHJ1bWVudGF0aW9uQ2xpZW50KiBj
bGllbnQpIDogbV9jbGllbnQoY2xpZW50KSB7IH0KLSAgICB2aXJ0dWFsIH5NZW1vcnlJbnN0cnVt
ZW50YXRpb24oKSB7IH0KKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uKE1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudCopOworICAgIFdURl9FWFBP
UlRfUFJJVkFURSB2aXJ0dWFsIH5NZW1vcnlJbnN0cnVtZW50YXRpb24oKTsKIAotICAgIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPiB2b2lkIGFkZFJvb3RPYmplY3QoY29uc3QgVCYgdCwgTWVtb3J5T2Jq
ZWN0VHlwZSBvYmplY3RUeXBlID0gMCkKKyAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBh
ZGRSb290T2JqZWN0KGNvbnN0IFQmIHQpCiAgICAgewotICAgICAgICBhZGRPYmplY3QodCwgb2Jq
ZWN0VHlwZSk7CisgICAgICAgIGFkZE9iamVjdCh0LCBtX3Jvb3RPYmplY3RJbmZvLmdldCgpKTsK
ICAgICAgICAgcHJvY2Vzc0RlZmVycmVkSW5zdHJ1bWVudGVkUG9pbnRlcnMoKTsKICAgICB9CiAK
IHByb3RlY3RlZDoKICAgICBjbGFzcyBJbnN0cnVtZW50ZWRQb2ludGVyQmFzZSB7CiAgICAgcHVi
bGljOgorICAgICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgZXhwbGljaXQgSW5zdHJ1bWVudGVkUG9p
bnRlckJhc2UoTWVtb3J5T2JqZWN0SW5mbyopOwogICAgICAgICB2aXJ0dWFsIH5JbnN0cnVtZW50
ZWRQb2ludGVyQmFzZSgpIHsgfQotICAgICAgICB2aXJ0dWFsIHZvaWQgcHJvY2VzcyhNZW1vcnlJ
bnN0cnVtZW50YXRpb24qKSA9IDA7CisgICAgICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHBy
b2Nlc3MoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKik7CisKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAg
IHZpcnR1YWwgY29uc3Qgdm9pZCogY2FsbFJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdElu
Zm8qKSA9IDA7CisKKyAgICBwcml2YXRlOgorICAgICAgICBjb25zdCBNZW1vcnlPYmplY3RUeXBl
IG1fb3duZXJPYmplY3RUeXBlOworI2lmIERFQlVHX1BPSU5URVJfSU5TVFJVTUVOVEFUSU9OCisg
ICAgICAgIHN0YXRpYyBjb25zdCBpbnQgc19tYXhDYWxsU3RhY2tTaXplID0gMzI7CisgICAgICAg
IHZvaWQqIG1fY2FsbFN0YWNrW3NfbWF4Q2FsbFN0YWNrU2l6ZV07CisgICAgICAgIGludCBtX2Nh
bGxTdGFja1NpemU7CisjZW5kaWYKICAgICB9OwogCiBwcml2YXRlOgpAQCAtMTI4LDYgKzk4LDgg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGVmZXJJbnN0cnVtZW50ZWRQb2ludGVyKFBh
c3NPd25QdHI8SW5zdHJ1bWVudGVkUG9pbnRlckJhc2U+KSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHByb2Nlc3NEZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJzKCkgPSAwOwogCisgICAgV1RGX0VY
UE9SVF9QUklWQVRFIHN0YXRpYyBNZW1vcnlPYmplY3RUeXBlIGdldE9iamVjdFR5cGUoTWVtb3J5
T2JqZWN0SW5mbyopOworCiAgICAgZnJpZW5kIGNsYXNzIE1lbW9yeUNsYXNzSW5mbzsKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBmcmllbmQgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBU
KiBjb25zdCYsIE1lbW9yeU9iamVjdEluZm8qKTsKIApAQCAtMTQ4LDI5ICsxMjAsMjUgQEAgcHJp
dmF0ZToKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBUeXBlPgogICAgIHN0YXRp
YyB2b2lkIHJlcG9ydE9iamVjdE1lbW9yeVVzYWdlKGNvbnN0IFQqIGNvbnN0JiBvYmplY3QsIE1l
bW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8sIC4uLikKICAgICB7Ci0gICAgICAgIG1l
bW9yeU9iamVjdEluZm8tPnJlcG9ydE9iamVjdEluZm8ob2JqZWN0LCAwLCBzaXplb2YoVCkpOwor
ICAgICAgICBjYWxsUmVwb3J0T2JqZWN0SW5mbyhtZW1vcnlPYmplY3RJbmZvLCBvYmplY3QsIDAs
IHNpemVvZihUKSk7CiAgICAgfQorICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgdm9pZCBj
YWxsUmVwb3J0T2JqZWN0SW5mbyhNZW1vcnlPYmplY3RJbmZvKiwgY29uc3Qgdm9pZCogcG9pbnRl
ciwgTWVtb3J5T2JqZWN0VHlwZSwgc2l6ZV90IG9iamVjdFNpemUpOwogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4KICAgICBzdGF0aWMgdm9pZCBjb3VudE5vdEluc3RydW1lbnRlZE9iamVjdChj
b25zdCBUKiBjb25zdCYsIE1lbW9yeU9iamVjdEluZm8qKTsKIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+IGNsYXNzIEluc3RydW1lbnRlZFBvaW50ZXIgOiBwdWJsaWMgSW5zdHJ1bWVudGVkUG9p
bnRlckJhc2UgewogICAgIHB1YmxpYzoKLSAgICAgICAgSW5zdHJ1bWVudGVkUG9pbnRlcihjb25z
dCBUKiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSk7Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCBwcm9jZXNzKE1lbW9yeUluc3RydW1lbnRhdGlvbiopIE9WRVJSSURFOwor
ICAgICAgICBJbnN0cnVtZW50ZWRQb2ludGVyKGNvbnN0IFQqIHBvaW50ZXIsIE1lbW9yeU9iamVj
dEluZm8qIG93bmVyT2JqZWN0SW5mbyk7CisKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIHZpcnR1
YWwgY29uc3Qgdm9pZCogY2FsbFJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBP
VkVSUklERTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIGNvbnN0IFQqIG1fcG9pbnRlcjsKLSAg
ICAgICAgY29uc3QgTWVtb3J5T2JqZWN0VHlwZSBtX293bmVyT2JqZWN0VHlwZTsKLQotI2lmIERF
QlVHX1BPSU5URVJfSU5TVFJVTUVOVEFUSU9OCi0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgc19t
YXhDYWxsU3RhY2tTaXplID0gMzI7Ci0gICAgICAgIHZvaWQqIG1fY2FsbFN0YWNrW3NfbWF4Q2Fs
bFN0YWNrU2l6ZV07Ci0gICAgICAgIGludCBtX2NhbGxTdGFja1NpemU7Ci0jZW5kaWYKICAgICB9
OwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBhZGRPYmplY3QoY29uc3QgVCYgdCwg
TWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUpIHsgT3duaW5nVHJhaXRzPFQ+OjphZGRP
YmplY3QodGhpcywgdCwgb3duZXJPYmplY3RUeXBlKTsgfQorICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+IHZvaWQgYWRkT2JqZWN0KGNvbnN0IFQmIHQsIE1lbW9yeU9iamVjdEluZm8qIG93bmVyT2Jq
ZWN0SW5mbykgeyBPd25pbmdUcmFpdHM8VD46OmFkZE9iamVjdCh0aGlzLCB0LCBvd25lck9iamVj
dEluZm8pOyB9CiAgICAgdm9pZCBhZGRSYXdCdWZmZXIoY29uc3Qgdm9pZCogY29uc3QmIGJ1ZmZl
ciwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUsIHNpemVfdCBzaXplKQogICAgIHsK
ICAgICAgICAgaWYgKCFidWZmZXIgfHwgdmlzaXRlZChidWZmZXIpKQpAQCAtMTgwLDQ5ICsxNDgs
NDggQEAgcHJpdmF0ZToKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiAgICAgc3RydWN0IE93
bmluZ1RyYWl0cyB7IC8vIERlZmF1bHQgYnlSZWZlcmVuY2UgaW1wbGVtZW50YXRpb24uCi0gICAg
ICAgIHN0YXRpYyB2b2lkIGFkZE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3RydW1l
bnRhdGlvbiwgY29uc3QgVCYgdCwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUpCisg
ICAgICAgIHN0YXRpYyB2b2lkIGFkZE9iamVjdChNZW1vcnlJbnN0cnVtZW50YXRpb24qIGluc3Ry
dW1lbnRhdGlvbiwgY29uc3QgVCYgdCwgTWVtb3J5T2JqZWN0SW5mbyogb3duZXJPYmplY3RJbmZv
KQogICAgICAgICB7Ci0gICAgICAgICAgICBpbnN0cnVtZW50YXRpb24tPmFkZE9iamVjdEltcGwo
JnQsIG93bmVyT2JqZWN0VHlwZSwgYnlSZWZlcmVuY2UpOworICAgICAgICAgICAgaW5zdHJ1bWVu
dGF0aW9uLT5hZGRPYmplY3RJbXBsKCZ0LCBvd25lck9iamVjdEluZm8sIGJ5UmVmZXJlbmNlKTsK
ICAgICAgICAgfQogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogICAgIHN0cnVj
dCBPd25pbmdUcmFpdHM8VCo+IHsgLy8gQ3VzdG9tIGJ5UG9pbnRlciBpbXBsZW1lbnRhdGlvbi4K
LSAgICAgICAgc3RhdGljIHZvaWQgYWRkT2JqZWN0KE1lbW9yeUluc3RydW1lbnRhdGlvbiogaW5z
dHJ1bWVudGF0aW9uLCBjb25zdCBUKiBjb25zdCYgdCwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9i
amVjdFR5cGUpCisgICAgICAgIHN0YXRpYyB2b2lkIGFkZE9iamVjdChNZW1vcnlJbnN0cnVtZW50
YXRpb24qIGluc3RydW1lbnRhdGlvbiwgY29uc3QgVCogY29uc3QmIHQsIE1lbW9yeU9iamVjdElu
Zm8qIG93bmVyT2JqZWN0SW5mbykKICAgICAgICAgewotICAgICAgICAgICAgaW5zdHJ1bWVudGF0
aW9uLT5hZGRPYmplY3RJbXBsKHQsIG93bmVyT2JqZWN0VHlwZSwgYnlQb2ludGVyKTsKKyAgICAg
ICAgICAgIGluc3RydW1lbnRhdGlvbi0+YWRkT2JqZWN0SW1wbCh0LCBvd25lck9iamVjdEluZm8s
IGJ5UG9pbnRlcik7CiAgICAgICAgIH0KICAgICB9OwogCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4gdm9pZCBhZGRPYmplY3RJbXBsKGNvbnN0IFQqIGNvbnN0JiwgTWVtb3J5T2JqZWN0VHlwZSwg
TWVtb3J5T3duaW5nVHlwZSk7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBhZGRPYmpl
Y3RJbXBsKGNvbnN0IE93blB0cjxUPiogY29uc3QmLCBNZW1vcnlPYmplY3RUeXBlLCBNZW1vcnlP
d25pbmdUeXBlKTsKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGFkZE9iamVjdEltcGwo
Y29uc3QgUmVmUHRyPFQ+KiBjb25zdCYsIE1lbW9yeU9iamVjdFR5cGUsIE1lbW9yeU93bmluZ1R5
cGUpOworICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgYWRkT2JqZWN0SW1wbChjb25zdCBU
KiBjb25zdCYsIE1lbW9yeU9iamVjdEluZm8qLCBNZW1vcnlPd25pbmdUeXBlKTsKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGFkZE9iamVjdEltcGwoY29uc3QgT3duUHRyPFQ+KiBjb25z
dCYsIE1lbW9yeU9iamVjdEluZm8qLCBNZW1vcnlPd25pbmdUeXBlKTsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPiB2b2lkIGFkZE9iamVjdEltcGwoY29uc3QgUmVmUHRyPFQ+KiBjb25zdCYsIE1l
bW9yeU9iamVjdEluZm8qLCBNZW1vcnlPd25pbmdUeXBlKTsKIAogICAgIE1lbW9yeUluc3RydW1l
bnRhdGlvbkNsaWVudCogbV9jbGllbnQ7CisgICAgT3duUHRyPE1lbW9yeU9iamVjdEluZm8+IG1f
cm9vdE9iamVjdEluZm87CiB9OwogCiBjbGFzcyBNZW1vcnlDbGFzc0luZm8gewogcHVibGljOgog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci0gICAgTWVtb3J5Q2xhc3NJbmZvKE1lbW9yeU9iamVj
dEluZm8qIG1lbW9yeU9iamVjdEluZm8sIGNvbnN0IFQqIHBvaW50ZXIsIE1lbW9yeU9iamVjdFR5
cGUgb2JqZWN0VHlwZSA9IDAsIHNpemVfdCBhY3R1YWxTaXplID0gMCkKKyAgICBNZW1vcnlDbGFz
c0luZm8oTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbywgY29uc3QgVCogcG9pbnRl
ciwgTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RUeXBlID0gMCwgc2l6ZV90IGFjdHVhbFNpemUgPSBz
aXplb2YoVCkpCiAgICAgICAgIDogbV9tZW1vcnlPYmplY3RJbmZvKG1lbW9yeU9iamVjdEluZm8p
Ci0gICAgICAgICwgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24obWVtb3J5T2JqZWN0SW5mby0+bWVt
b3J5SW5zdHJ1bWVudGF0aW9uKCkpCisgICAgICAgICwgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24o
MCkKKyAgICAgICAgLCBtX29iamVjdFR5cGUoMCkKICAgICB7Ci0gICAgICAgIG1fbWVtb3J5T2Jq
ZWN0SW5mby0+cmVwb3J0T2JqZWN0SW5mbyhwb2ludGVyLCBvYmplY3RUeXBlLCBhY3R1YWxTaXpl
ID8gYWN0dWFsU2l6ZSA6IHNpemVvZihUKSk7Ci0gICAgICAgIG1fb2JqZWN0VHlwZSA9IG1lbW9y
eU9iamVjdEluZm8tPm9iamVjdFR5cGUoKTsKKyAgICAgICAgaW5pdChwb2ludGVyLCBvYmplY3RU
eXBlLCBhY3R1YWxTaXplKTsKICAgICB9CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNPiB2b2lk
IGFkZE1lbWJlcihjb25zdCBNJiBtZW1iZXIpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFk
ZE9iamVjdChtZW1iZXIsIG1fb2JqZWN0VHlwZSk7IH0KLSAgICB2b2lkIGFkZFJhd0J1ZmZlcihj
b25zdCB2b2lkKiBjb25zdCYgYnVmZmVyLCBzaXplX3Qgc2l6ZSkgeyBtX21lbW9yeUluc3RydW1l
bnRhdGlvbi0+YWRkUmF3QnVmZmVyKGJ1ZmZlciwgbV9vYmplY3RUeXBlLCBzaXplKTsgfQotICAg
IHZvaWQgYWRkUHJpdmF0ZUJ1ZmZlcihzaXplX3Qgc2l6ZSwgTWVtb3J5T2JqZWN0VHlwZSBvd25l
ck9iamVjdFR5cGUgPSAwKQotICAgIHsKLSAgICAgICAgaWYgKHNpemUpCi0gICAgICAgICAgICBt
X21lbW9yeUluc3RydW1lbnRhdGlvbi0+Y291bnRPYmplY3RTaXplKDAsIG93bmVyT2JqZWN0VHlw
ZSA/IG93bmVyT2JqZWN0VHlwZSA6IG1fb2JqZWN0VHlwZSwgc2l6ZSk7Ci0gICAgfQorICAgIHRl
bXBsYXRlPHR5cGVuYW1lIE0+IHZvaWQgYWRkTWVtYmVyKGNvbnN0IE0mIG1lbWJlcikgeyBtX21l
bW9yeUluc3RydW1lbnRhdGlvbi0+YWRkT2JqZWN0KG1lbWJlciwgbV9tZW1vcnlPYmplY3RJbmZv
KTsgfQorICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFkZFJhd0J1ZmZlcihjb25zdCB2b2lk
KiBjb25zdCYgYnVmZmVyLCBzaXplX3QpOworICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGFk
ZFByaXZhdGVCdWZmZXIoc2l6ZV90LCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSA9
IDApOwogCiAgICAgdm9pZCBhZGRXZWFrUG9pbnRlcih2b2lkKikgeyB9CiAKIHByaXZhdGU6Cisg
ICAgV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgaW5pdChjb25zdCB2b2lkKiBwb2ludGVyLCBNZW1v
cnlPYmplY3RUeXBlLCBzaXplX3QgYWN0dWFsU2l6ZSk7CisKICAgICBNZW1vcnlPYmplY3RJbmZv
KiBtX21lbW9yeU9iamVjdEluZm87CiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uKiBtX21lbW9y
eUluc3RydW1lbnRhdGlvbjsKICAgICBNZW1vcnlPYmplY3RUeXBlIG1fb2JqZWN0VHlwZTsKQEAg
LTIzNSw2MiArMjAyLDQ1IEBAIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoY29uc3QgVCogY29uc3Qm
IG9iamVjdCwgTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mCiB9CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+Ci12b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0SW1wbChj
b25zdCBUKiBjb25zdCYgb2JqZWN0LCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSwg
TWVtb3J5T3duaW5nVHlwZSBvd25pbmdUeXBlKQordm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246
OmFkZE9iamVjdEltcGwoY29uc3QgVCogY29uc3QmIG9iamVjdCwgTWVtb3J5T2JqZWN0SW5mbyog
b3duZXJPYmplY3RJbmZvLCBNZW1vcnlPd25pbmdUeXBlIG93bmluZ1R5cGUpCiB7Ci0gICAgaWYg
KG93bmluZ1R5cGUgPT0gYnlSZWZlcmVuY2UpIHsKLSAgICAgICAgTWVtb3J5T2JqZWN0SW5mbyBt
ZW1vcnlPYmplY3RJbmZvKHRoaXMsIG93bmVyT2JqZWN0VHlwZSk7Ci0gICAgICAgIHJlcG9ydE1l
bW9yeVVzYWdlKG9iamVjdCwgJm1lbW9yeU9iamVjdEluZm8pOwotICAgIH0gZWxzZSB7CisgICAg
aWYgKG93bmluZ1R5cGUgPT0gYnlSZWZlcmVuY2UpCisgICAgICAgIHJlcG9ydE1lbW9yeVVzYWdl
KG9iamVjdCwgb3duZXJPYmplY3RJbmZvKTsKKyAgICBlbHNlIHsKICAgICAgICAgaWYgKCFvYmpl
Y3QgfHwgdmlzaXRlZChvYmplY3QpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBkZWZl
ckluc3RydW1lbnRlZFBvaW50ZXIoYWRvcHRQdHIobmV3IEluc3RydW1lbnRlZFBvaW50ZXI8VD4o
b2JqZWN0LCBvd25lck9iamVjdFR5cGUpKSk7CisgICAgICAgIGRlZmVySW5zdHJ1bWVudGVkUG9p
bnRlcihhZG9wdFB0cihuZXcgSW5zdHJ1bWVudGVkUG9pbnRlcjxUPihvYmplY3QsIG93bmVyT2Jq
ZWN0SW5mbykpKTsKICAgICB9CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkIE1lbW9y
eUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0SW1wbChjb25zdCBPd25QdHI8VD4qIGNvbnN0JiBv
YmplY3QsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBNZW1vcnlPd25pbmdUeXBl
IG93bmluZ1R5cGUpCit2b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0SW1wbChj
b25zdCBPd25QdHI8VD4qIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdEluZm8qIG93bmVyT2Jq
ZWN0SW5mbywgTWVtb3J5T3duaW5nVHlwZSBvd25pbmdUeXBlKQogewogICAgIGlmIChvd25pbmdU
eXBlID09IGJ5UG9pbnRlciAmJiAhdmlzaXRlZChvYmplY3QpKQotICAgICAgICBjb3VudE9iamVj
dFNpemUob2JqZWN0LCBvd25lck9iamVjdFR5cGUsIHNpemVvZigqb2JqZWN0KSk7Ci0gICAgYWRk
T2JqZWN0SW1wbChvYmplY3QtPmdldCgpLCBvd25lck9iamVjdFR5cGUsIGJ5UG9pbnRlcik7Cisg
ICAgICAgIGNvdW50T2JqZWN0U2l6ZShvYmplY3QsIGdldE9iamVjdFR5cGUob3duZXJPYmplY3RJ
bmZvKSwgc2l6ZW9mKCpvYmplY3QpKTsKKyAgICBhZGRPYmplY3RJbXBsKG9iamVjdC0+Z2V0KCks
IG93bmVyT2JqZWN0SW5mbywgYnlQb2ludGVyKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4K
LXZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRPYmplY3RJbXBsKGNvbnN0IFJlZlB0cjxU
PiogY29uc3QmIG9iamVjdCwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUsIE1lbW9y
eU93bmluZ1R5cGUgb3duaW5nVHlwZSkKK3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjphZGRP
YmplY3RJbXBsKGNvbnN0IFJlZlB0cjxUPiogY29uc3QmIG9iamVjdCwgTWVtb3J5T2JqZWN0SW5m
byogb3duZXJPYmplY3RJbmZvLCBNZW1vcnlPd25pbmdUeXBlIG93bmluZ1R5cGUpCiB7CiAgICAg
aWYgKG93bmluZ1R5cGUgPT0gYnlQb2ludGVyICYmICF2aXNpdGVkKG9iamVjdCkpCi0gICAgICAg
IGNvdW50T2JqZWN0U2l6ZShvYmplY3QsIG93bmVyT2JqZWN0VHlwZSwgc2l6ZW9mKCpvYmplY3Qp
KTsKLSAgICBhZGRPYmplY3RJbXBsKG9iamVjdC0+Z2V0KCksIG93bmVyT2JqZWN0VHlwZSwgYnlQ
b2ludGVyKTsKKyAgICAgICAgY291bnRPYmplY3RTaXplKG9iamVjdCwgZ2V0T2JqZWN0VHlwZShv
d25lck9iamVjdEluZm8pLCBzaXplb2YoKm9iamVjdCkpOworICAgIGFkZE9iamVjdEltcGwob2Jq
ZWN0LT5nZXQoKSwgb3duZXJPYmplY3RJbmZvLCBieVBvaW50ZXIpOwogfQogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgotTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyPFQ+
OjpJbnN0cnVtZW50ZWRQb2ludGVyKGNvbnN0IFQqIHBvaW50ZXIsIE1lbW9yeU9iamVjdFR5cGUg
b3duZXJPYmplY3RUeXBlKQotICAgIDogbV9wb2ludGVyKHBvaW50ZXIpCi0gICAgLCBtX293bmVy
T2JqZWN0VHlwZShvd25lck9iamVjdFR5cGUpCitNZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3Ry
dW1lbnRlZFBvaW50ZXI8VD46Okluc3RydW1lbnRlZFBvaW50ZXIoY29uc3QgVCogcG9pbnRlciwg
TWVtb3J5T2JqZWN0SW5mbyogb3duZXJPYmplY3RJbmZvKQorICAgIDogSW5zdHJ1bWVudGVkUG9p
bnRlckJhc2Uob3duZXJPYmplY3RJbmZvKQorICAgICwgbV9wb2ludGVyKHBvaW50ZXIpCiB7Ci0j
aWYgREVCVUdfUE9JTlRFUl9JTlNUUlVNRU5UQVRJT04KLSAgICBtX2NhbGxTdGFja1NpemUgPSBz
X21heENhbGxTdGFja1NpemU7Ci0gICAgV1RGR2V0QmFja3RyYWNlKG1fY2FsbFN0YWNrLCAmbV9j
YWxsU3RhY2tTaXplKTsKLSNlbmRpZgogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotdm9pZCBN
ZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBvaW50ZXI8VD46OnByb2Nlc3MoTWVt
b3J5SW5zdHJ1bWVudGF0aW9uKiBtZW1vcnlJbnN0cnVtZW50YXRpb24pCitjb25zdCB2b2lkKiBN
ZW1vcnlJbnN0cnVtZW50YXRpb246Okluc3RydW1lbnRlZFBvaW50ZXI8VD46OmNhbGxSZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKQogewotICAgIE1l
bW9yeU9iamVjdEluZm8gbWVtb3J5T2JqZWN0SW5mbyhtZW1vcnlJbnN0cnVtZW50YXRpb24sIG1f
b3duZXJPYmplY3RUeXBlKTsKLSAgICByZXBvcnRNZW1vcnlVc2FnZShtX3BvaW50ZXIsICZtZW1v
cnlPYmplY3RJbmZvKTsKLQotICAgIGNvbnN0IHZvaWQqIHBvaW50ZXIgPSBtZW1vcnlPYmplY3RJ
bmZvLnJlcG9ydGVkUG9pbnRlcigpOwotICAgIEFTU0VSVChwb2ludGVyKTsKLSAgICBpZiAocG9p
bnRlciAhPSBtX3BvaW50ZXIgJiYgbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT52aXNpdGVkKHBvaW50
ZXIpKQotICAgICAgICByZXR1cm47Ci0gICAgbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5jb3VudE9i
amVjdFNpemUocG9pbnRlciwgbWVtb3J5T2JqZWN0SW5mby5vYmplY3RUeXBlKCksIG1lbW9yeU9i
amVjdEluZm8ub2JqZWN0U2l6ZSgpKTsKLSAgICBpZiAoIW1lbW9yeUluc3RydW1lbnRhdGlvbi0+
Y2hlY2tDb3VudGVkT2JqZWN0KHBvaW50ZXIpKSB7Ci0jaWYgREVCVUdfUE9JTlRFUl9JTlNUUlVN
RU5UQVRJT04KLSAgICAgICAgZnB1dHMoIlVua25vd24gb2JqZWN0IGNvdW50ZWQ6XG4iLCBzdGRl
cnIpOwotICAgICAgICBXVEZQcmludEJhY2t0cmFjZShtX2NhbGxTdGFjaywgbV9jYWxsU3RhY2tT
aXplKTsKLSNlbmRpZgotICAgIH0KKyAgICByZXBvcnRNZW1vcnlVc2FnZShtX3BvaW50ZXIsIG1l
bW9yeU9iamVjdEluZm8pOworICAgIHJldHVybiBtX3BvaW50ZXI7CiB9CiAKIC8vIExpbmsgdGlt
ZSBndWFyZCBmb3IgY2xhc3NlcyB3aXRoIGV4dGVybmFsIG1lbW9yeSBpbnN0cnVtZW50YXRpb24u
CkBAIC0zMjksNiArMjc5LDQgQEAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShjb25zdCBVUkxTdHJp
bmcqIGNvbnN0JiwgTWVtb3J5T2JqZWN0SW5mbyopOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIAot
I3VuZGVmIERFQlVHX1BPSU5URVJfSU5TVFJVTUVOVEFUSU9OCi0KICNlbmRpZiAvLyAhZGVmaW5l
ZChNZW1vcnlJbnN0cnVtZW50YXRpb25faCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01l
bW9yeU9iamVjdEluZm8uaCBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeU9iamVjdEluZm8uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xYzdmZTZjODM2MmMxYTRmMTUyNGJkNWEzOTI4NzVhODZhYmQ4MjM1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dURi93dGYvTWVtb3J5T2JqZWN0SW5mby5oCkBAIC0wLDAgKzEs
ODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAq
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICog
aW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2Vk
IHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIE1lbW9yeU9iamVjdEluZm9faAorI2RlZmluZSBNZW1vcnlPYmplY3RJbmZv
X2gKKworbmFtZXNwYWNlIFdURiB7CisKK2NsYXNzIE1lbW9yeUNsYXNzSW5mbzsKK2NsYXNzIE1l
bW9yeUluc3RydW1lbnRhdGlvbjsKKwordHlwZWRlZiBjb25zdCBjaGFyKiBNZW1vcnlPYmplY3RU
eXBlOworCitjbGFzcyBNZW1vcnlPYmplY3RJbmZvIHsKK3B1YmxpYzoKKyAgICBNZW1vcnlPYmpl
Y3RJbmZvKE1lbW9yeUluc3RydW1lbnRhdGlvbiogbWVtb3J5SW5zdHJ1bWVudGF0aW9uLCBNZW1v
cnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSkKKyAgICAgICAgOiBtX21lbW9yeUluc3RydW1l
bnRhdGlvbihtZW1vcnlJbnN0cnVtZW50YXRpb24pCisgICAgICAgICwgbV9vYmplY3RUeXBlKG93
bmVyT2JqZWN0VHlwZSkKKyAgICAgICAgLCBtX29iamVjdFNpemUoMCkKKyAgICAgICAgLCBtX3Bv
aW50ZXIoMCkKKyAgICB7IH0KKworICAgIHR5cGVkZWYgTWVtb3J5Q2xhc3NJbmZvIENsYXNzSW5m
bzsKKworICAgIE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
b2JqZWN0VHlwZTsgfQorICAgIHNpemVfdCBvYmplY3RTaXplKCkgY29uc3QgeyByZXR1cm4gbV9v
YmplY3RTaXplOyB9CisgICAgY29uc3Qgdm9pZCogcmVwb3J0ZWRQb2ludGVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9wb2ludGVyOyB9CisKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb24qIG1lbW9yeUlu
c3RydW1lbnRhdGlvbigpIHsgcmV0dXJuIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uOyB9CisKK3By
aXZhdGU6CisgICAgZnJpZW5kIGNsYXNzIE1lbW9yeUNsYXNzSW5mbzsKKyAgICBmcmllbmQgY2xh
c3MgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOworCisgICAgdm9pZCByZXBvcnRPYmplY3RJbmZvKGNv
bnN0IHZvaWQqIHBvaW50ZXIsIE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0VHlwZSwgc2l6ZV90IG9i
amVjdFNpemUpCisgICAgeworICAgICAgICBpZiAoIW1fb2JqZWN0U2l6ZSkgeworICAgICAgICAg
ICAgbV9wb2ludGVyID0gcG9pbnRlcjsKKyAgICAgICAgICAgIG1fb2JqZWN0U2l6ZSA9IG9iamVj
dFNpemU7CisgICAgICAgICAgICBpZiAob2JqZWN0VHlwZSkKKyAgICAgICAgICAgICAgICBtX29i
amVjdFR5cGUgPSBvYmplY3RUeXBlOworICAgICAgICB9CisgICAgfQorCisgICAgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uKiBtX21lbW9yeUluc3RydW1lbnRhdGlvbjsKKyAgICBNZW1vcnlPYmplY3RU
eXBlIG1fb2JqZWN0VHlwZTsKKyAgICBzaXplX3QgbV9vYmplY3RTaXplOworICAgIGNvbnN0IHZv
aWQqIG1fcG9pbnRlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gIWRl
ZmluZWQoTWVtb3J5T2JqZWN0SW5mb19oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vRkZURnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
RkZURnJhbWUuY3BwCmluZGV4IDYzYzg3ZGRjOTI5NjFjYWEwZTg0Njk3NWI2MjA1YjkxMTE3OWZm
YzkuLmVlZTQ1ZGU4YWIzZDJjMDJiMWUyNjcyM2MzNjRiMGRmOTBkZDVjOTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNp
bmNsdWRlICJQbGF0Zm9ybU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9D
b21wbGV4Lmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvTWVt
b3J5T2JqZWN0SW5mby5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogI2lmICFVU0VfQUND
RUxFUkFURV9GRlQgJiYgVVNFKFdFQkFVRElPX0ZGTVBFRykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IGQ3ZjQxODE2YWQwM2I4YjFlYjA4
YWZmYjk4MjJiYWM4ZTIwNjA1MGIuLjZlY2FhMDQxN2E4MGFiZjAxMjZlYzE1NjVjMjBmYmQyNmYw
MTIzYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2VuZGlmCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUlu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0
b3IuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5T2JqZWN0SW5mby5oPgogI2luY2x1ZGUgPHd0Zi9T
dGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDxhbGdvcml0aG0+CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcApp
bmRleCBiMWJhNTk4NmE0OTIyZmRjNTUzNWIxYTRkYjQ3NWVjMjcyNGVhZjdkLi40MzRlM2NjZjA4
Mzc5MGU4Y2I1YzUzMmMyZGJiNGIxZWQ0YTEzOGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCkBAIC0y
OCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKICNpbmNsdWRl
ICJTaGFkb3dEYXRhLmgiCiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5o
IgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlPYmplY3RJbmZvLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFy
ZU5vbkluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCmluZGV4IDFjNmNiMTg3OWIyZDk1Yzg1ODBhOTkx
OGUzYmRmYTYzNzgyNzM2YzQuLmVkOWU5YTJlZmQ0OWYwZDI0NGY4YmNhMjI2MjVlYzZhNGUzZmRh
NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVO
b25Jbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRl
ICJXZWJDb3JlTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL01lbW9yeUlu
c3RydW1lbnRhdGlvbkhhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0
aW9uVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeU9iamVjdEluZm8uaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCmluZGV4IDczNDgwNjJkOTE0NzI2
ZTkwMWEzZDUwNTdiOWE3YmIwMjc3MTJiYTQuLmRhZDA4ZGRhNDVkNzJlY2ZkZTg3NGI2M2QzMzAx
NGZiNzkyOTA1ZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01l
bW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL01lbW9yeUluc3RydW1lbnRhdGlvblRlc3QuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAj
aW5jbHVkZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL01lbW9yeUluc3RydW1lbnRhdGlvblN0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9NZW1v
cnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaD4KKyNpbmNsdWRlIDx3dGYvTWVtb3J5T2JqZWN0SW5m
by5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174968</attachid>
            <date>2012-11-19 06:39:06 -0800</date>
            <delta_ts>2012-11-19 08:27:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102510-20121119183655.patch</filename>
            <type>text/plain</type>
            <size>42036</size>
            <attacher name="Yury Semikhatsky">yurys</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1MTIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
NDc1NzJmOTg1M2VmOWE5YzYzYTM1ZDczMmE2Zjk4MjA3NDJlZGE2Li41MTQ2NDM4ZDVjZjY3NjVi
NDlhNGExNzcwYzIyNmJkYjlkZjRjNzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxMi0xMS0xNiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBNZW1vcnkgaW5zdHJ1bWVudGF0aW9uOiBleHRyYWN0IE1lbW9yeU9i
amVjdEluZm8gZGVjbGFyYXRpb24gaW50byBhIHNlcGFyYXRlIGZpbGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjUxMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIG5ldyBzeW1ib2xzIGZvciB0
aGUgbWV0aG9kcyB0aGF0IGhhdmUgbW92ZWQgaW50byAuLi4vd3RmL01lbW9yeUluc3RydW1lbnRh
dGlvbi5jcHAKKworICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5kZWY6CisKIDIwMTItMTEtMTggIERhbiBCZXJuc3RlaW4gIDxtaXR6
QGFwcGxlLmNvbT4KIAogICAgICAgICBUcnkgdG8gZml4IHRoZSBERkcgYnVpbGQgYWZ0ZXIgcjEz
NTA5OS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFu
Z2VMb2cKaW5kZXggMmMzMGNjZTZjZTg4ZGIzYzRlZjRjNzM1OWQ0MTQ5MDgwYWY0MWExNy4uY2Q1
ZjFlODQ0OGE2ODlhNDU0MmVmZTQ1NDAwMTBjNzVlZWJhMjljMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NiBA
QAorMjAxMi0xMS0xNiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBNZW1vcnkgaW5zdHJ1bWVudGF0aW9uOiBleHRyYWN0IE1lbW9yeU9iamVjdEluZm8g
ZGVjbGFyYXRpb24gaW50byBhIHNlcGFyYXRlIGZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjUxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmVkIE1lbW9yeU9iamVjdEluZm8gaW50byBzZXBh
cmF0ZSBoZWFkZXIuIE1vdmVkIGRlZmluaXRpb24gb2YgTWVtb3J5SW5zdHJ1bWVudGF0aW9uCisg
ICAgICAgIG1ldGhvZHMgdGhhdCBkZXBlbmQgb24gTWVtb3J5T2JqZWN0SW5mbyBkZWNsYXJhdGlv
biBpbnRvIE1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAgdG8KKyAgICAgICAgbWFrZSBNZW1vcnlJ
bnN0cnVtZW50YXRpb24gcmVxdWlyZSBvbmx5IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgTWVtb3J5
T2JqZWN0SW5mby4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICog
V1RGLmd5cGk6CisgICAgICAgICogV1RGLnBybzoKKyAgICAgICAgKiBXVEYudmNwcm9qL1dURi52
Y3Byb2o6CisgICAgICAgICogd3RmL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIHd0Zi9NZW1v
cnlJbnN0cnVtZW50YXRpb24uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURik6CisgICAgICAgIChX
VEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uKToKKyAgICAg
ICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjp+TWVtb3J5SW5zdHJ1bWVudGF0aW9uKToK
KyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpnZXRPYmplY3RUeXBlKTogdGhp
cyBtZXRob2QgYWxsb3dzIHRvIGdldCBvYmplY3QgdHlwZSB3aXRob3V0CisgICAgICAgIHB1bGxp
bmcgaW4gTWVtb3J5T2JqZWN0SW5mby5oIGFuZCBhbGwgaXRzIGRlcGVuZGVuY2llcy4KKyAgICAg
ICAgKFdURjo6TWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpjYWxsUmVwb3J0T2JqZWN0SW5mbyk6Cisg
ICAgICAgIChXVEY6Ok1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVudGVkUG9pbnRlckJh
c2U6Okluc3RydW1lbnRlZFBvaW50ZXJCYXNlKToKKyAgICAgICAgKFdURjo6TWVtb3J5SW5zdHJ1
bWVudGF0aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyQmFzZTo6cHJvY2Vzcyk6CisgICAgICAgIChX
VEY6Ok1lbW9yeUNsYXNzSW5mbzo6aW5pdCk6CisgICAgICAgIChXVEY6Ok1lbW9yeUNsYXNzSW5m
bzo6YWRkUmF3QnVmZmVyKToKKyAgICAgICAgKFdURjo6TWVtb3J5Q2xhc3NJbmZvOjphZGRQcml2
YXRlQnVmZmVyKToKKyAgICAgICAgKiB3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmg6CisgICAg
ICAgIChNZW1vcnlJbnN0cnVtZW50YXRpb24pOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVt
ZW50YXRpb246OmFkZFJvb3RPYmplY3QpOgorICAgICAgICAoSW5zdHJ1bWVudGVkUG9pbnRlckJh
c2UpOgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVtZW50YXRpb246OnJlcG9ydE9iamVjdE1l
bW9yeVVzYWdlKToKKyAgICAgICAgKEluc3RydW1lbnRlZFBvaW50ZXIpOgorICAgICAgICAoV1RG
OjpNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZE9iamVjdCk6IHdlIG5vdyBwYXNzIG93bmVyJ3Mg
TWVtb3J5T2JqZWN0SW5mbyBpbiBhbGwgcGxhY2VzCisgICAgICAgIHdoZXJlIHdlIHJlcG9ydCBv
YmplY3RzIHBvaW50ZWQgYnkgdGhlIG93bmVyLgorICAgICAgICAoV1RGOjpNZW1vcnlJbnN0cnVt
ZW50YXRpb246Ok93bmluZ1RyYWl0czo6YWRkT2JqZWN0KToKKyAgICAgICAgKFdURjo6TWVtb3J5
Q2xhc3NJbmZvOjpNZW1vcnlDbGFzc0luZm8pOgorICAgICAgICAoV1RGOjpNZW1vcnlDbGFzc0lu
Zm86OmFkZE1lbWJlcik6CisgICAgICAgIChNZW1vcnlDbGFzc0luZm8pOgorICAgICAgICAoV1RG
OjpNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZE9iamVjdEltcGwpOgorICAgICAgICAoV1RGOjo6
Okluc3RydW1lbnRlZFBvaW50ZXIpOgorICAgICAgICAoV1RGOjo6OmNhbGxSZXBvcnRNZW1vcnlV
c2FnZSk6CisgICAgICAgICogd3RmL01lbW9yeU9iamVjdEluZm8uaDogQWRkZWQuCisgICAgICAg
IChXVEYpOgorICAgICAgICAoTWVtb3J5T2JqZWN0SW5mbyk6CisgICAgICAgIChXVEY6Ok1lbW9y
eU9iamVjdEluZm86Ok1lbW9yeU9iamVjdEluZm8pOgorICAgICAgICAoV1RGOjpNZW1vcnlPYmpl
Y3RJbmZvOjpvYmplY3RUeXBlKToKKyAgICAgICAgKFdURjo6TWVtb3J5T2JqZWN0SW5mbzo6b2Jq
ZWN0U2l6ZSk6CisgICAgICAgIChXVEY6Ok1lbW9yeU9iamVjdEluZm86OnJlcG9ydGVkUG9pbnRl
cik6CisgICAgICAgIChXVEY6Ok1lbW9yeU9iamVjdEluZm86Om1lbW9yeUluc3RydW1lbnRhdGlv
bik6CisgICAgICAgIChXVEY6Ok1lbW9yeU9iamVjdEluZm86OnJlcG9ydE9iamVjdEluZm8pOgor
CiAyMDEyLTExLTE4ICBMYXN6bG8gR29tYm9zICA8bC5nb21ib3NAc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIG5vbi1leGlzdGVudCBkaXJlY3RvcmllcyBmcm9tIHRoZSBtYWtlIHN5c3Rl
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCmluZGV4IDliYWY1OWI3ZjFlYmVmODgxM2VjOGQ0ZTEwNDhlZTIxMjcxODA0N2Eu
LjRhMDU3ODVjN2Q0MGE1NWM1MTNiMzhjZmI0ZWExNzkzZThiZjFjZjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMi0xMS0xNiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBNZW1vcnkgaW5zdHJ1bWVudGF0aW9uOiBleHRyYWN0IE1lbW9y
eU9iamVjdEluZm8gZGVjbGFyYXRpb24gaW50byBhIHNlcGFyYXRlIGZpbGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjUxMAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIG5lY2Vzc2FyeSBpbmNs
dWRlcyB3aGVyZSBNZW1vcnlPYmplY3RJbmZvIGRlY2xhcmF0aW9uIGlzIHJlcXVpcmVkLgorCisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuY3BwOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZUluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhLmNwcDoKKwogMjAxMi0xMS0xOCAgSWx5YSBUaWtob25vdnNreSAg
PGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgd2ViYXVkaW86IGNsZWFuLXVwLiBSZXBs
YWNlIEF1ZGlvQ29udGV4dDo6bV9kb2N1bWVudCBtZW1iZXIgd2l0aCBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgppbmRleCA2MDcwYmE2YTIxNTkz
NDk0NDM3NzA5NTc1MmU4Y2EzOGIyNWY1YTk0Li43MjJiYzBhZDRiODBmYmRjNmIyMmJhNjljOWIw
NjYwMGUxMTU5ODUxIDEwMDc1NQotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmRlZgpAQCAtMTIsNiArMTIsNyBAQCBFWFBPUlRTCiAgICAgPz8wRHluYW1p
Y0dsb2JhbE9iamVjdFNjb3BlQEpTQ0BAUUFFQEFBVkpTR2xvYmFsRGF0YUAxQFBBVkpTR2xvYmFs
T2JqZWN0QDFAQFogCiAgICAgPz8wRXJyb3JIYW5kbGluZ01vZGVASW50ZXJwcmV0ZXJASlNDQEBR
QUVAUEFWRXhlY1N0YXRlQDJAQFoKICAgICA/PzFFcnJvckhhbmRsaW5nTW9kZUBJbnRlcnByZXRl
ckBKU0NAQFFBRUBYWgorICAgID8/MEluc3RydW1lbnRlZFBvaW50ZXJCYXNlQE1lbW9yeUluc3Ry
dW1lbnRhdGlvbkBXVEZAQFFBRUBQQVZNZW1vcnlPYmplY3RJbmZvQDJAQFoKICAgICA/PzBJbnRl
cm5hbEZ1bmN0aW9uQEpTQ0BASUFFQFBBVkpTR2xvYmFsT2JqZWN0QDFAUEFWU3RydWN0dXJlQDFA
QFoKICAgICA/PzBKU0dsb2JhbE9iamVjdEBKU0NAQElBRUBBQVZKU0dsb2JhbERhdGFAMUBQQVZT
dHJ1Y3R1cmVAMUBQQlVHbG9iYWxPYmplY3RNZXRob2RUYWJsZUAxQEBaCiAgICAgPz8wSlNMb2Nr
SG9sZGVyQEpTQ0BAUUFFQEFBVkpTR2xvYmFsRGF0YUAxQEBaCkBAIC0xOSw2ICsyMCw3IEBAIEVY
UE9SVFMKICAgICA/PzBKU0xvY2tIb2xkZXJASlNDQEBRQUVAUEFWSlNHbG9iYWxEYXRhQDFAQFoK
ICAgICA/PzBNRDVAV1RGQEBRQUVAWFoKICAgICA/PzBNZWRpYVRpbWVAV1RGQEBRQUVAX0pISUBa
IAorICAgID8/ME1lbW9yeUluc3RydW1lbnRhdGlvbkBXVEZAQFFBRUBQQVZNZW1vcnlJbnN0cnVt
ZW50YXRpb25DbGllbnRAMUBAWgogICAgID8/ME11dGV4QFdURkBAUUFFQFhaCiAgICAgPz8wUGFy
YWxsZWxFbnZpcm9ubWVudEBXVEZAQFFBRUBQNkFYUEFYQFpJSEBaCiAgICAgPz8wUmVmQ291bnRl
ZExlYWtDb3VudGVyQFdURkBAUUFFQFBCREBaCkBAIC0zOCw2ICs0MCw3IEBAIEVYUE9SVFMKICAg
ICA/PzFKU0dsb2JhbE9iamVjdEBKU0NAQFFBRUBYWgogICAgID8/MUpTTG9ja0hvbGRlckBKU0NA
QFFBRUBYWgogICAgID8/MU1lZGlhVGltZUBXVEZAQFFBRUBYWiAKKyAgICA/PzFNZW1vcnlJbnN0
cnVtZW50YXRpb25AV1RGQEBVQUVAWFoKICAgICA/PzFNdXRleEBXVEZAQFFBRUBYWgogICAgID8/
MVJlZkNvdW50ZWRMZWFrQ291bnRlckBXVEZAQFFBRUBYWgogICAgID8/MVNvdXJjZVByb3ZpZGVy
Q2FjaGVASlNDQEBRQUVAWFoKQEAgLTY1LDYgKzY4LDggQEAgRVhQT1JUUwogICAgID9hZGRQcm9w
ZXJ0eVRyYW5zaXRpb25AU3RydWN0dXJlQEpTQ0BAU0FQQVYxMkBBQVZKU0dsb2JhbERhdGFAMkBQ
QVYxMkBWUHJvcGVydHlOYW1lQDJASVBBVkpTQ2VsbEAyQEFBSEBaCiAgICAgP2FkZFByb3BlcnR5
VHJhbnNpdGlvblRvRXhpc3RpbmdTdHJ1Y3R1cmVAU3RydWN0dXJlQEpTQ0BAU0FQQVYxMkBQQVYx
MkBWUHJvcGVydHlOYW1lQDJASVBBVkpTQ2VsbEAyQEFBSEBaCiAgICAgP2FkZFByb3BlcnR5V2l0
aG91dFRyYW5zaXRpb25AU3RydWN0dXJlQEpTQ0BAUUFFSEFBVkpTR2xvYmFsRGF0YUAyQFZQcm9w
ZXJ0eU5hbWVAMkBJUEFWSlNDZWxsQDJAQFoKKyAgICA/YWRkUHJpdmF0ZUJ1ZmZlckBNZW1vcnlD
bGFzc0luZm9AV1RGQEBRQUVYSVBCREBaCisgICAgP2FkZFJhd0J1ZmZlckBNZW1vcnlDbGFzc0lu
Zm9AV1RGQEBRQUVYQUJRQlhJQFoKICAgICA/YWRkU2xvd0Nhc2VASWRlbnRpZmllckBKU0NAQENB
P0FWPyRQYXNzUmVmUHRyQFZTdHJpbmdJbXBsQFdURkBAQFdURkBAUEFWRXhlY1N0YXRlQDJAUEFW
U3RyaW5nSW1wbEA0QEBaCiAgICAgP2FkZFNsb3dDYXNlQElkZW50aWZpZXJASlNDQEBDQT9BVj8k
UGFzc1JlZlB0ckBWU3RyaW5nSW1wbEBXVEZAQEBXVEZAQFBBVkpTR2xvYmFsRGF0YUAyQFBBVlN0
cmluZ0ltcGxANEBAWgogICAgID9hZGRTdGF0aWNHbG9iYWxzQEpTR2xvYmFsT2JqZWN0QEpTQ0BA
SUFFWFBBVUdsb2JhbFByb3BlcnR5SW5mb0AxMkBIQFoKQEAgLTk0LDYgKzk5LDcgQEAgRVhQT1JU
UwogICAgID9jYWxsSG9zdEZ1bmN0aW9uQXNDb25zdHJ1Y3RvckBKU0NAQFlJX0pQQVZFeGVjU3Rh
dGVAMUBAWgogICAgID9jYWxsT25NYWluVGhyZWFkQFdURkBAWUFYUDZBWFBBWEBaMEBaCiAgICAg
P2NhbGxPbk1haW5UaHJlYWRBbmRXYWl0QFdURkBAWUFYUDZBWFBBWEBaMEBaCisgICAgP2NhbGxS
ZXBvcnRPYmplY3RJbmZvQE1lbW9yeUluc3RydW1lbnRhdGlvbkBXVEZAQENBWFBBVk1lbW9yeU9i
amVjdEluZm9AMkBQQlhQQkRJQFoKICAgICA/Y2FuY2VsQ2FsbE9uTWFpblRocmVhZEBXVEZAQFlB
WFA2QVhQQVhAWjBAWgogICAgID9jYW5TaHJpbmtAU3RyaW5nQnVpbGRlckBXVEZAQFFCRV9OWFoK
ICAgICA/Y2FwYWNpdHlASGVhcEBKU0NAQFFBRUlYWgpAQCAtMjIwLDYgKzIyNiw3IEBAIEVYUE9S
VFMKICAgICA/Z2V0Q2FsbERhdGFASlNDZWxsQEpTQ0BAU0E/QVc0Q2FsbFR5cGVAMkBQQVYxMkBB
QVRDYWxsRGF0YUAyQEBaCiAgICAgP2dldENvbnN0cnVjdERhdGFASlNDZWxsQEpTQ0BAU0E/QVc0
Q29uc3RydWN0VHlwZUAyQFBBVjEyQEFBVENvbnN0cnVjdERhdGFAMkBAWgogICAgID9nZXRPYmpl
Y3RASlNDZWxsQEpTQ0BAUUFFUEFWSlNPYmplY3RAMkBYWgorICAgID9nZXRPYmplY3RUeXBlQE1l
bW9yeUluc3RydW1lbnRhdGlvbkBXVEZAQENBUEJEUEFWTWVtb3J5T2JqZWN0SW5mb0AyQEBaCiAg
ICAgP2dldE93bk5vbkluZGV4UHJvcGVydHlOYW1lc0BKU09iamVjdEBKU0NAQFNBWFBBVjEyQFBB
VkV4ZWNTdGF0ZUAyQEFBVlByb3BlcnR5TmFtZUFycmF5QDJAVzRFbnVtZXJhdGlvbk1vZGVAMkBA
WgogICAgID9nZXRPd25Ob25JbmRleFByb3BlcnR5TmFtZXNASlNTeW1ib2xUYWJsZU9iamVjdEBK
U0NAQFNBWFBBVkpTT2JqZWN0QDJAUEFWRXhlY1N0YXRlQDJAQUFWUHJvcGVydHlOYW1lQXJyYXlA
MkBXNEVudW1lcmF0aW9uTW9kZUAyQEBaCiAgICAgP2dldE93blByb3BlcnR5RGVzY3JpcHRvckBK
U0dsb2JhbE9iamVjdEBKU0NAQFNBX05QQVZKU09iamVjdEAyQFBBVkV4ZWNTdGF0ZUAyQFZQcm9w
ZXJ0eU5hbWVAMkBBQVZQcm9wZXJ0eURlc2NyaXB0b3JAMkBAWgpAQCAtMjUxLDYgKzI1OCw3IEBA
IEVYUE9SVFMKICAgICA/aW5kZWZpbml0ZVRpbWVATWVkaWFUaW1lQFdURkBAU0FBQlYxMkBYWiAK
ICAgICA/aW5pdEBBdG9taWNTdHJpbmdAV1RGQEBTQVhYWgogICAgID9pbml0QEpTR2xvYmFsT2Jq
ZWN0QEpTQ0BAQUFFWFBBVkpTT2JqZWN0QDJAQFoKKyAgICA/aW5pdEBNZW1vcnlDbGFzc0luZm9A
V1RGQEBBQUVYUEJYUEJESUBaCiAgICAgP2luaXRpYWxpemVAZG91YmxlX2NvbnZlcnNpb25AV1RG
QEBZQVhYWgogICAgID9pbml0aWFsaXplTWFpblRocmVhZEBXVEZAQFlBWFhaCiAgICAgP2luaXRp
YWxpemVUaHJlYWRpbmdASlNDQEBZQVhYWgpAQCAtMjkyLDYgKzMwMCw3IEBAIEVYUE9SVFMKICAg
ICA/cGFyc2VEYXRlRnJvbU51bGxUZXJtaW5hdGVkQ2hhcmFjdGVyc0BXVEZAQFlBTlBCREBaCiAg
ICAgP3BhcnNlRG91YmxlRnJvbUxvbmdTdHJpbmdASW50ZXJuYWxAV1RGQEBZQU5QQl9XSUFBSUBa
CiAgICAgP3Bvc2l0aXZlSW5maW5pdGVUaW1lQE1lZGlhVGltZUBXVEZAQFNBQUJWMTJAWFogCisg
ICAgP3Byb2Nlc3NASW5zdHJ1bWVudGVkUG9pbnRlckJhc2VATWVtb3J5SW5zdHJ1bWVudGF0aW9u
QFdURkBAUUFFWFBBVjIzQEBaCiAgICAgP3Byb2ZpbGVyQFByb2ZpbGVyQEpTQ0BAU0FQQVYxMkBY
WgogICAgID9wcm90ZWN0QEhlYXBASlNDQEBRQUVYVkpTVmFsdWVAMkBAWgogICAgID9wcm90ZWN0
ZWRHbG9iYWxPYmplY3RDb3VudEBIZWFwQEpTQ0BAUUFFSVhaCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3QuYW0K
aW5kZXggOWQ0ZjBkN2U1YjA3OWEyY2RhZjBjNTM1MGE5MGFiYzJjNTk5OWNmZS4uZjlkYjhjMDJj
MTQwODE5YWI2ZmUwZGEyODE1NGQ2ZWUzZTM2YTFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9H
TlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtODAsNiArODAsNyBAQCB3dGZfc291cmNlcyArPSBcCiAgICAgU291cmNlL1dURi93dGYvTWF0
aEV4dHJhcy5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZWRpYVRpbWUuaCBcCiAgICAgU291cmNl
L1dURi93dGYvTWVkaWFUaW1lLmNwcCBcCisgICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmNwcCBcCiAgICAgU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9u
LmggXAogICAgIFNvdXJjZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvbkFycmF5QnVmZmVy
Vmlldy5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291
bnRlZFNldC5oIFwKQEAgLTkwLDYgKzkxLDcgQEAgd3RmX3NvdXJjZXMgKz0gXAogICAgIFNvdXJj
ZS9XVEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblNlcXVlbmNlLmggXAogICAgIFNvdXJjZS9X
VEYvd3RmL01lbW9yeUluc3RydW1lbnRhdGlvblN0cmluZy5oIFwKICAgICBTb3VyY2UvV1RGL3d0
Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCBcCisgICAgU291cmNlL1dURi93dGYvTWVt
b3J5T2JqZWN0SW5mby5oIFwKICAgICBTb3VyY2UvV1RGL3d0Zi9NZXNzYWdlUXVldWUuaCBcCiAg
ICAgU291cmNlL1dURi93dGYvTWV0YUFsbG9jYXRvci5jcHAgXAogICAgIFNvdXJjZS9XVEYvd3Rm
L01ldGFBbGxvY2F0b3IuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi5neXBpIGIvU291
cmNlL1dURi9XVEYuZ3lwaQppbmRleCBmNTQwNzdkODQwZjk5YTJjNjMxMjY4ZWE5MjdhNmM3NzAz
MWU0NzUyLi4yOGViNTc2NjQ3NDUyZGVjYWY4ZDYwZTJmNjhmZDk3ZmIxNWM4ZjlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL1dURi5neXBpCisrKyBiL1NvdXJjZS9XVEYvV1RGLmd5cGkKQEAgLTUw
LDYgKzUwLDcgQEAKICAgICAgICAgICAgICd3dGYvTUQ1LmgnLAogICAgICAgICAgICAgJ3d0Zi9N
YWluVGhyZWFkLmgnLAogICAgICAgICAgICAgJ3d0Zi9NYXRoRXh0cmFzLmgnLAorICAgICAgICAg
ICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uY3BwJywKICAgICAgICAgICAgICd3dGYvTWVt
b3J5SW5zdHJ1bWVudGF0aW9uLmgnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJbnN0cnVtZW50
YXRpb25BcnJheUJ1ZmZlclZpZXcuaCcsCiAgICAgICAgICAgICAnd3RmL01lbW9yeUluc3RydW1l
bnRhdGlvbkhhc2hDb3VudGVkU2V0LmgnLApAQCAtNjAsNiArNjEsNyBAQAogICAgICAgICAgICAg
J3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25TZXF1ZW5jZS5oJywKICAgICAgICAgICAgICd3dGYv
TWVtb3J5SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmgnLAogICAgICAgICAgICAgJ3d0Zi9NZW1vcnlJ
bnN0cnVtZW50YXRpb25WZWN0b3IuaCcsCisgICAgICAgICAgICAnd3RmL01lbW9yeU9iamVjdElu
Zm8uaCcsCiAgICAgICAgICAgICAnd3RmL01lc3NhZ2VRdWV1ZS5oJywKICAgICAgICAgICAgICd3
dGYvTm9uQ29weWluZ1NvcnQuaCcsCiAgICAgICAgICAgICAnd3RmL05vbmNvcHlhYmxlLmgnLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYucHJvIGIvU291cmNlL1dURi9XVEYucHJvCmluZGV4
IDhiZDMwM2IxYzA1OWJkM2I2NDA1ODY0M2ZmYmY3YmMwZTBiNjZkNDcuLjgwY2ZmMmFiMzJiNjlk
MDliMjY1MzM1YTkwNDYzZDlkYTdlMzhjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnBy
bworKysgYi9Tb3VyY2UvV1RGL1dURi5wcm8KQEAgLTk3LDYgKzk3LDcgQEAgSEVBREVSUyArPSBc
CiAgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uU2VxdWVuY2UuaCBcCiAgICAgTWVtb3J5SW5zdHJ1
bWVudGF0aW9uU3RyaW5nLmggXAogICAgIE1lbW9yeUluc3RydW1lbnRhdGlvblZlY3Rvci5oIFwK
KyAgICBNZW1vcnlPYmplY3RJbmZvLmggXAogICAgIE1lc3NhZ2VRdWV1ZS5oIFwKICAgICBNZXRh
QWxsb2NhdG9yLmggXAogICAgIE1ldGFBbGxvY2F0b3JIYW5kbGUuaCBcCkBAIC0yMTQsNiArMjE1
LDcgQEAgU09VUkNFUyArPSBcCiAgICAgTUQ1LmNwcCBcCiAgICAgTWFpblRocmVhZC5jcHAgXAog
ICAgIE1lZGlhVGltZS5jcHAgXAorICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAgXAogICAg
IE1ldGFBbGxvY2F0b3IuY3BwIFwKICAgICBOdWxsUHRyLmNwcCBcCiAgICAgTnVtYmVyT2ZDb3Jl
cy5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYudmNwcm9qL1dURi52Y3Byb2ogYi9T
b3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagppbmRleCBlNTQ3ZmMyMzJhZDY0OTQwYTdi
MzhiOTZkYzAwZDQ4YzNjMGRmZjBlLi42ODYzM2FmNDJjNTg0NGEyZjI4ZjY1YjNhN2JmMDJkOThi
NGU4NTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagorKysg
Yi9Tb3VyY2UvV1RGL1dURi52Y3Byb2ovV1RGLnZjcHJvagpAQCAtOTA1LDYgKzkwNSwxMCBAQAog
CQkJPgogCQk8L0ZpbGU+CiAJCTxGaWxlCisJCSAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlx3dGZc
TWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCIKKwkJCT4KKwkJPC9GaWxlPgorCQk8RmlsZQogCQkg
ICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cd3RmXE1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogCQkJ
PgogCQk8L0ZpbGU+CkBAIC05NDEsNiArOTQ1LDEwIEBACiAJCQk+CiAJCTwvRmlsZT4KIAkJPEZp
bGUKKwkJICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXHd0ZlxNZW1vcnlPYmplY3RJbmZvLmgiCisJ
CQk+CisJCTwvRmlsZT4KKwkJPEZpbGUKIAkJCVJlbGF0aXZlUGF0aD0iLi5cd3RmXE1lc3NhZ2VR
dWV1ZS5oIgogCQkJPgogCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL1dURi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA4YWVlYmVkNjk5NWE0YTE3NjdhMGVjZDMzMzRjOGNlY2I4MjgxNzUwLi5i
Mjc2MzFkMWZjZDM3YWI1ZTE3ZDBmZjMyYmIzOWFiMjFiOTYzYTVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XVEYvV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI5Myw2ICsyOTMsOCBAQAogCQlDRDU0OTdB
QzE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRp
YVRpbWUuY3BwICovOyB9OwogCQlDRDU0OTdBRDE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1l
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU0OTdB
QjE1ODU3RDAzMDBCNUJDMzAgLyogTWVkaWFUaW1lLmggKi87IH07CiAJCUVCOTVFMUYwMTYxQTcy
NDEwMDg5QTJGNSAvKiBCeXRlT3JkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEVCOTVFMUVGMTYxQTcyNDEwMDg5QTJGNSAvKiBCeXRlT3JkZXIuaCAq
LzsgfTsKKwkJRjMyMkNDREYxNjU2OTlGRjAwNDg1MkREIC8qIE1lbW9yeUluc3RydW1lbnRhdGlv
bi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzIy
Q0NERTE2NTY5OUZGMDA0ODUyREQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCAqLzsgfTsK
KwkJRjMyMkNDRTExNjU2OUExMDAwNDg1MkREIC8qIE1lbW9yeU9iamVjdEluZm8uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYzMjJDQ0UwMTY1NjlBMTAw
MDQ4NTJERCAvKiBNZW1vcnlPYmplY3RJbmZvLmggKi87IH07CiAJCUYzNTI1RTJBMTYxNDlGRjQw
MDI3OEJDMSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjM1MjVFMjkxNjE0OUZGNDAwMjc4
QkMxIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbkxpc3RIYXNoU2V0LmggKi87IH07CiAJCUYzNTI1
RTQ2MTYxOUE0RUUwMDI3OEJDMSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGMzUyNUU0NTE2MTlB
NEVFMDAyNzhCQzEgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oICovOyB9OwogCQlG
M0ZCQzcxRTE2MUFGN0JGMDBCQjRCRDQgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaENvdW50
ZWRTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEYz
RkJDNzFEMTYxQUY3QkYwMEJCNEJENCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRl
ZFNldC5oICovOyB9OwpAQCAtNTkzLDYgKzU5NSw4IEBACiAJCUNENTQ5N0FBMTU4NTdEMDMwMEI1
QkMzMCAvKiBNZWRpYVRpbWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTWVkaWFUaW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q1NDk3QUIx
NTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBNZWRpYVRpbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUI5NUUx
RUYxNjFBNzI0MTAwODlBMkY1IC8qIEJ5dGVPcmRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBCeXRlT3JkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjMy
MkNDREUxNjU2OTlGRjAwNDg1MkREIC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZW1vcnlJbnN0cnVtZW50YXRpb24uY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGMzIyQ0NFMDE2NTY5QTEwMDA0ODUyREQg
LyogTWVtb3J5T2JqZWN0SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBN
ZW1vcnlPYmplY3RJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzNTI1RTI5
MTYxNDlGRjQwMDI3OEJDMSAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0
SGFzaFNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGMzUyNUU0NTE2MTlBNEVF
MDAyNzhCQzEgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUYzRkJDNzFEMTYxQUY3QkYwMEJCNEJENCAvKiBNZW1v
cnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzQwLDYgKzc0NCw3IEBACiAJCQkJQThBNDcyQ0IxNTFB
ODI1QjAwNDEyM0ZGIC8qIE1ENS5oICovLAogCQkJCUNENTQ5N0FBMTU4NTdEMDMwMEI1QkMzMCAv
KiBNZWRpYVRpbWUuY3BwICovLAogCQkJCUNENTQ5N0FCMTU4NTdEMDMwMEI1QkMzMCAvKiBNZWRp
YVRpbWUuaCAqLywKKwkJCQlGMzIyQ0NERTE2NTY5OUZGMDA0ODUyREQgLyogTWVtb3J5SW5zdHJ1
bWVudGF0aW9uLmNwcCAqLywKIAkJCQk0RjFEMTE1MzE1RkYxMUJFMDAyNkU5MDggLyogTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmggKi8sCiAJCQkJNEZEODU1NDYxNjEzM0UwRTAwQzVCNzA0IC8qIE1l
bW9yeUluc3RydW1lbnRhdGlvbkFycmF5QnVmZmVyVmlldy5oICovLAogCQkJCUYzRkJDNzFEMTYx
QUY3QkYwMEJCNEJENCAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRlZFNldC5oICov
LApAQCAtNzUwLDYgKzc1NSw3IEBACiAJCQkJRjNGQkM3MUYxNjFBRjdDRDAwQkI0QkQ0IC8qIE1l
bW9yeUluc3RydW1lbnRhdGlvblNlcXVlbmNlLmggKi8sCiAJCQkJNEZDRjI3RTAxNjE3MkU4NjAw
Q0JGMDM3IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvblN0cmluZy5oICovLAogCQkJCTRGQ0I3MTA5
MTYwQTFBMDcwMDg0MjVFQyAvKiBNZW1vcnlJbnN0cnVtZW50YXRpb25WZWN0b3IuaCAqLywKKwkJ
CQlGMzIyQ0NFMDE2NTY5QTEwMDA0ODUyREQgLyogTWVtb3J5T2JqZWN0SW5mby5oICovLAogCQkJ
CUE4QTQ3MkNDMTUxQTgyNUIwMDQxMjNGRiAvKiBNZXNzYWdlUXVldWUuaCAqLywKIAkJCQlBOEE0
NzJDRDE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFsbG9jYXRvci5jcHAgKi8sCiAJCQkJQThBNDcy
Q0UxNTFBODI1QjAwNDEyM0ZGIC8qIE1ldGFBbGxvY2F0b3IuaCAqLywKQEAgLTExMDksNiArMTEx
NSw3IEBACiAJCQkJRjNGQkM3MjAxNjFBRjdDRDAwQkI0QkQ0IC8qIE1lbW9yeUluc3RydW1lbnRh
dGlvblNlcXVlbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0RkNGMjdFMTE2MTcyRTg2MDBDQkYw
MzcgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uU3RyaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
RkNCNzEwQTE2MEExQTA3MDA4NDI1RUMgLyogTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmgg
aW4gSGVhZGVycyAqLywKKwkJCQlGMzIyQ0NFMTE2NTY5QTEwMDA0ODUyREQgLyogTWVtb3J5T2Jq
ZWN0SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRUIxNTFBODI1QjAwNDEyM0ZGIC8q
IE1lc3NhZ2VRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDczRUQxNTFBODI1QjAwNDEy
M0ZGIC8qIE1ldGFBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3M0VFMTUxQTgy
NUIwMDQxMjNGRiAvKiBNZXRhQWxsb2NhdG9ySGFuZGxlLmggaW4gSGVhZGVycyAqLywKQEAgLTEz
MzYsNiArMTM0Myw3IEBACiAJCQkJQThBNDczRTQxNTFBODI1QjAwNDEyM0ZGIC8qIE1haW5UaHJl
YWRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNFOTE1MUE4MjVCMDA0MTIzRkYgLyog
TUQ1LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNENTQ5N0FDMTU4NTdEMDMwMEI1QkMzMCAvKiBN
ZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRjMyMkNDREYxNjU2OTlGRjAwNDg1MkRE
IC8qIE1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNF
QzE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBOEE0NzNGMjE1MUE4MjVCMDA0MTIzRkYgLyogTnVsbFB0ci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlBOEE0NzNGNDE1MUE4MjVCMDA0MTIzRkYgLyogTnVtYmVyT2ZDb3Jlcy5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggZGE4ZGVkOTNiZDQ2MDliZDQzOGZmOTQ5
ZTY2Njk3OTQ1MjUwNjc0NS4uY2FmZTEwNDRiMDFkYzkzZDQyZDhmYTg4YTRmMjE2Y2ExMDZjYjJk
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTQ2LDYgKzQ2LDE3IEBAIFNFVChXVEZfSEVBREVS
UwogICAgIE1hbGxvY1pvbmVTdXBwb3J0LmgKICAgICBNYXRoRXh0cmFzLmgKICAgICBNZWRpYVRp
bWUuaAorICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbi5oCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0
aW9uQXJyYXlCdWZmZXJWaWV3LmgKKyAgICBNZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoQ291bnRl
ZFNldC5oCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oCisgICAgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uSGFzaFNldC5oCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uTGlzdEhhc2hT
ZXQuaAorICAgIE1lbW9yeUluc3RydW1lbnRhdGlvblBhcnNlZFVSTC5oCisgICAgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uU2VxdWVuY2UuaAorICAgIE1lbW9yeUluc3RydW1lbnRhdGlvblN0cmluZy5o
CisgICAgTWVtb3J5SW5zdHJ1bWVudGF0aW9uVmVjdG9yLmgKKyAgICBNZW1vcnlPYmplY3RJbmZv
LmgKICAgICBNZXNzYWdlUXVldWUuaAogICAgIE1ldGFBbGxvY2F0b3IuaAogICAgIE1ldGFBbGxv
Y2F0b3JIYW5kbGUuaApAQCAtMTU3LDYgKzE2OCw3IEBAIFNFVChXVEZfU09VUkNFUwogICAgIE1l
ZGlhVGltZS5jcHAKICAgICBNZXRhQWxsb2NhdG9yLmNwcAogICAgIE9TUmFuZG9tU291cmNlLmNw
cAorICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKICAgICBOdW1iZXJPZkNvcmVzLmNwcAog
ICAgIFJBTVNpemUuY3BwCiAgICAgUGFnZUFsbG9jYXRpb25BbGlnbmVkLmNwcApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDRiZTJiNmRjZmI0NjZm
NTIxNmQ5NzFjNzEzZjJhMzkxOTEyNWUzNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYv
d3RmL01lbW9yeUluc3RydW1lbnRhdGlvbi5jcHAKQEAgLTAsMCArMSwxMTEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCisKKyNpbmNsdWRl
IDx3dGYvTWVtb3J5T2JqZWN0SW5mby5oPgorCisjaWYgREVCVUdfUE9JTlRFUl9JTlNUUlVNRU5U
QVRJT04KKyNpbmNsdWRlIDxzdGRpby5oPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Cisj
ZW5kaWYKKworbmFtZXNwYWNlIFdURiB7CisKK01lbW9yeUluc3RydW1lbnRhdGlvbjo6TWVtb3J5
SW5zdHJ1bWVudGF0aW9uKE1lbW9yeUluc3RydW1lbnRhdGlvbkNsaWVudCogY2xpZW50KQorICAg
IDogbV9jbGllbnQoY2xpZW50KQorICAgICwgbV9yb290T2JqZWN0SW5mbyhhZG9wdFB0cihuZXcg
TWVtb3J5T2JqZWN0SW5mbyh0aGlzLCAwKSkpCit7Cit9CisKK01lbW9yeUluc3RydW1lbnRhdGlv
bjo6fk1lbW9yeUluc3RydW1lbnRhdGlvbigpCit7Cit9CisKK01lbW9yeU9iamVjdFR5cGUgTWVt
b3J5SW5zdHJ1bWVudGF0aW9uOjpnZXRPYmplY3RUeXBlKE1lbW9yeU9iamVjdEluZm8qIG9iamVj
dEluZm8pCit7CisgICAgcmV0dXJuIG9iamVjdEluZm8tPm9iamVjdFR5cGUoKTsKK30KKwordm9p
ZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmNhbGxSZXBvcnRPYmplY3RJbmZvKE1lbW9yeU9iamVj
dEluZm8qIG1lbW9yeU9iamVjdEluZm8sIGNvbnN0IHZvaWQqIHBvaW50ZXIsIE1lbW9yeU9iamVj
dFR5cGUgb2JqZWN0VHlwZSwgc2l6ZV90IG9iamVjdFNpemUpCit7CisgICAgbWVtb3J5T2JqZWN0
SW5mby0+cmVwb3J0T2JqZWN0SW5mbyhwb2ludGVyLCBvYmplY3RUeXBlLCBvYmplY3RTaXplKTsK
K30KKworTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyQmFzZTo6SW5z
dHJ1bWVudGVkUG9pbnRlckJhc2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5mbykK
KyAgICA6IG1fb3duZXJPYmplY3RUeXBlKG1lbW9yeU9iamVjdEluZm8tPm9iamVjdFR5cGUoKSkK
K3sKKyNpZiBERUJVR19QT0lOVEVSX0lOU1RSVU1FTlRBVElPTgorICAgIG1fY2FsbFN0YWNrU2l6
ZSA9IHNfbWF4Q2FsbFN0YWNrU2l6ZTsKKyAgICBXVEZHZXRCYWNrdHJhY2UobV9jYWxsU3RhY2ss
ICZtX2NhbGxTdGFja1NpemUpOworI2VuZGlmCit9CisKK3ZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0
aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyQmFzZTo6cHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50YXRp
b24qIG1lbW9yeUluc3RydW1lbnRhdGlvbikKK3sKKyAgICBNZW1vcnlPYmplY3RJbmZvIG1lbW9y
eU9iamVjdEluZm8obWVtb3J5SW5zdHJ1bWVudGF0aW9uLCBtX293bmVyT2JqZWN0VHlwZSk7Cisg
ICAgY29uc3Qgdm9pZCogb3JpZ2luYWxQb2ludGVyID0gY2FsbFJlcG9ydE1lbW9yeVVzYWdlKCZt
ZW1vcnlPYmplY3RJbmZvKTsKKworICAgIGNvbnN0IHZvaWQqIHBvaW50ZXIgPSBtZW1vcnlPYmpl
Y3RJbmZvLnJlcG9ydGVkUG9pbnRlcigpOworICAgIEFTU0VSVChwb2ludGVyKTsKKyAgICBpZiAo
cG9pbnRlciAhPSBvcmlnaW5hbFBvaW50ZXIgJiYgbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT52aXNp
dGVkKHBvaW50ZXIpKQorICAgICAgICByZXR1cm47CisgICAgbWVtb3J5SW5zdHJ1bWVudGF0aW9u
LT5jb3VudE9iamVjdFNpemUocG9pbnRlciwgbWVtb3J5T2JqZWN0SW5mby5vYmplY3RUeXBlKCks
IG1lbW9yeU9iamVjdEluZm8ub2JqZWN0U2l6ZSgpKTsKKyAgICBpZiAoIW1lbW9yeUluc3RydW1l
bnRhdGlvbi0+Y2hlY2tDb3VudGVkT2JqZWN0KHBvaW50ZXIpKSB7CisjaWYgREVCVUdfUE9JTlRF
Ul9JTlNUUlVNRU5UQVRJT04KKyAgICAgICAgZnB1dHMoIlVua25vd24gb2JqZWN0IGNvdW50ZWQ6
XG4iLCBzdGRlcnIpOworICAgICAgICBXVEZQcmludEJhY2t0cmFjZShtX2NhbGxTdGFjaywgbV9j
YWxsU3RhY2tTaXplKTsKKyNlbmRpZgorICAgIH0KK30KKwordm9pZCBNZW1vcnlDbGFzc0luZm86
OmluaXQoY29uc3Qgdm9pZCogcG9pbnRlciwgTWVtb3J5T2JqZWN0VHlwZSBvYmplY3RUeXBlLCBz
aXplX3QgYWN0dWFsU2l6ZSkKK3sKKyAgICBtX21lbW9yeU9iamVjdEluZm8tPnJlcG9ydE9iamVj
dEluZm8ocG9pbnRlciwgb2JqZWN0VHlwZSwgYWN0dWFsU2l6ZSk7CisgICAgbV9tZW1vcnlJbnN0
cnVtZW50YXRpb24gPSBtX21lbW9yeU9iamVjdEluZm8tPm1lbW9yeUluc3RydW1lbnRhdGlvbigp
OworICAgIG1fb2JqZWN0VHlwZSA9IG1fbWVtb3J5T2JqZWN0SW5mby0+b2JqZWN0VHlwZSgpOwor
fQorCit2b2lkIE1lbW9yeUNsYXNzSW5mbzo6YWRkUmF3QnVmZmVyKGNvbnN0IHZvaWQqIGNvbnN0
JiBidWZmZXIsIHNpemVfdCBzaXplKQoreworICAgIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uLT5h
ZGRSYXdCdWZmZXIoYnVmZmVyLCBtX29iamVjdFR5cGUsIHNpemUpOworfQorCit2b2lkIE1lbW9y
eUNsYXNzSW5mbzo6YWRkUHJpdmF0ZUJ1ZmZlcihzaXplX3Qgc2l6ZSwgTWVtb3J5T2JqZWN0VHlw
ZSBvd25lck9iamVjdFR5cGUpCit7CisgICAgaWYgKCFzaXplKQorICAgICAgICByZXR1cm47Cisg
ICAgaWYgKCFvd25lck9iamVjdFR5cGUpCisgICAgICAgIG93bmVyT2JqZWN0VHlwZSA9IG1fb2Jq
ZWN0VHlwZTsKKyAgICBtX21lbW9yeUluc3RydW1lbnRhdGlvbi0+Y291bnRPYmplY3RTaXplKDAs
IG93bmVyT2JqZWN0VHlwZSwgc2l6ZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV1RG
L3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAppbmRleCAxYzM4MjQzZTZiMTU1NjI4ZjM5Mzk2
N2VkMGI2YWYzNjZiMjVlOWM2Li4yYTY4MzJiNzFmNmNlNzNkZmIzNTZkNmM2Nzg5NTBmOTc0NDhj
MDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb24uaApAQCAtMzcsMTEgKzM3
LDYgQEAKIAogI2RlZmluZSBERUJVR19QT0lOVEVSX0lOU1RSVU1FTlRBVElPTiAwCiAKLSNpZiBE
RUJVR19QT0lOVEVSX0lOU1RSVU1FTlRBVElPTgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+
Ci0jaW5jbHVkZSA8c3RkaW8uaD4KLSNlbmRpZgotCiBuYW1lc3BhY2UgV1RGIHsKIAogY2xhc3Mg
TWVtb3J5Q2xhc3NJbmZvOwpAQCAtNTUsNDMgKzUwLDYgQEAgZW51bSBNZW1vcnlPd25pbmdUeXBl
IHsKICAgICBieVJlZmVyZW5jZQogfTsKIAotY2xhc3MgTWVtb3J5T2JqZWN0SW5mbyB7Ci1wdWJs
aWM6Ci0gICAgTWVtb3J5T2JqZWN0SW5mbyhNZW1vcnlJbnN0cnVtZW50YXRpb24qIG1lbW9yeUlu
c3RydW1lbnRhdGlvbiwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUpCi0gICAgICAg
IDogbV9tZW1vcnlJbnN0cnVtZW50YXRpb24obWVtb3J5SW5zdHJ1bWVudGF0aW9uKQotICAgICAg
ICAsIG1fb2JqZWN0VHlwZShvd25lck9iamVjdFR5cGUpCi0gICAgICAgICwgbV9vYmplY3RTaXpl
KDApCi0gICAgICAgICwgbV9wb2ludGVyKDApCi0gICAgeyB9Ci0KLSAgICB0eXBlZGVmIE1lbW9y
eUNsYXNzSW5mbyBDbGFzc0luZm87Ci0KLSAgICBNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUo
KSBjb25zdCB7IHJldHVybiBtX29iamVjdFR5cGU7IH0KLSAgICBzaXplX3Qgb2JqZWN0U2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fb2JqZWN0U2l6ZTsgfQotICAgIGNvbnN0IHZvaWQqIHJlcG9ydGVk
UG9pbnRlcigpIGNvbnN0IHsgcmV0dXJuIG1fcG9pbnRlcjsgfQotCi0gICAgTWVtb3J5SW5zdHJ1
bWVudGF0aW9uKiBtZW1vcnlJbnN0cnVtZW50YXRpb24oKSB7IHJldHVybiBtX21lbW9yeUluc3Ry
dW1lbnRhdGlvbjsgfQotCi1wcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBNZW1vcnlDbGFzc0lu
Zm87Ci0gICAgZnJpZW5kIGNsYXNzIE1lbW9yeUluc3RydW1lbnRhdGlvbjsKLQotICAgIHZvaWQg
cmVwb3J0T2JqZWN0SW5mbyhjb25zdCB2b2lkKiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlIG9i
amVjdFR5cGUsIHNpemVfdCBvYmplY3RTaXplKQotICAgIHsKLSAgICAgICAgaWYgKCFtX29iamVj
dFNpemUpIHsKLSAgICAgICAgICAgIG1fcG9pbnRlciA9IHBvaW50ZXI7Ci0gICAgICAgICAgICBt
X29iamVjdFNpemUgPSBvYmplY3RTaXplOwotICAgICAgICAgICAgaWYgKG9iamVjdFR5cGUpCi0g
ICAgICAgICAgICAgICAgbV9vYmplY3RUeXBlID0gb2JqZWN0VHlwZTsKLSAgICAgICAgfQotICAg
IH0KLQotICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbiogbV9tZW1vcnlJbnN0cnVtZW50YXRpb247
Ci0gICAgTWVtb3J5T2JqZWN0VHlwZSBtX29iamVjdFR5cGU7Ci0gICAgc2l6ZV90IG1fb2JqZWN0
U2l6ZTsKLSAgICBjb25zdCB2b2lkKiBtX3BvaW50ZXI7Ci19OwotCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNvbnN0IFQqIGNvbnN0JiwgTWVtb3J5T2JqZWN0
SW5mbyopOwogCiBjbGFzcyBNZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnQgewpAQCAtMTA0LDIw
ICs2MiwzMiBAQCBwdWJsaWM6CiAKIGNsYXNzIE1lbW9yeUluc3RydW1lbnRhdGlvbiB7CiBwdWJs
aWM6Ci0gICAgZXhwbGljaXQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uKE1lbW9yeUluc3RydW1lbnRh
dGlvbkNsaWVudCogY2xpZW50KSA6IG1fY2xpZW50KGNsaWVudCkgeyB9Ci0gICAgdmlydHVhbCB+
TWVtb3J5SW5zdHJ1bWVudGF0aW9uKCkgeyB9CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIGV4cGxp
Y2l0IE1lbW9yeUluc3RydW1lbnRhdGlvbihNZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnQqKTsK
KyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdmlydHVhbCB+TWVtb3J5SW5zdHJ1bWVudGF0aW9uKCk7
CiAKLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gdm9pZCBhZGRSb290T2JqZWN0KGNvbnN0IFQm
IHQsIE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0VHlwZSA9IDApCisgICAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+IHZvaWQgYWRkUm9vdE9iamVjdChjb25zdCBUJiB0KQogICAgIHsKLSAgICAgICAgYWRk
T2JqZWN0KHQsIG9iamVjdFR5cGUpOworICAgICAgICBhZGRPYmplY3QodCwgbV9yb290T2JqZWN0
SW5mby5nZXQoKSk7CiAgICAgICAgIHByb2Nlc3NEZWZlcnJlZEluc3RydW1lbnRlZFBvaW50ZXJz
KCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CiAgICAgY2xhc3MgSW5zdHJ1bWVudGVkUG9pbnRlckJh
c2UgewogICAgIHB1YmxpYzoKKyAgICAgICAgV1RGX0VYUE9SVF9QUklWQVRFIGV4cGxpY2l0IElu
c3RydW1lbnRlZFBvaW50ZXJCYXNlKE1lbW9yeU9iamVjdEluZm8qKTsKICAgICAgICAgdmlydHVh
bCB+SW5zdHJ1bWVudGVkUG9pbnRlckJhc2UoKSB7IH0KLSAgICAgICAgdmlydHVhbCB2b2lkIHBy
b2Nlc3MoTWVtb3J5SW5zdHJ1bWVudGF0aW9uKikgPSAwOworICAgICAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCBwcm9jZXNzKE1lbW9yeUluc3RydW1lbnRhdGlvbiopOworCisgICAgcHJvdGVj
dGVkOgorICAgICAgICB2aXJ0dWFsIGNvbnN0IHZvaWQqIGNhbGxSZXBvcnRNZW1vcnlVc2FnZShN
ZW1vcnlPYmplY3RJbmZvKikgPSAwOworCisgICAgcHJpdmF0ZToKKyAgICAgICAgY29uc3QgTWVt
b3J5T2JqZWN0VHlwZSBtX293bmVyT2JqZWN0VHlwZTsKKyNpZiBERUJVR19QT0lOVEVSX0lOU1RS
VU1FTlRBVElPTgorICAgICAgICBzdGF0aWMgY29uc3QgaW50IHNfbWF4Q2FsbFN0YWNrU2l6ZSA9
IDMyOworICAgICAgICB2b2lkKiBtX2NhbGxTdGFja1tzX21heENhbGxTdGFja1NpemVdOworICAg
ICAgICBpbnQgbV9jYWxsU3RhY2tTaXplOworI2VuZGlmCiAgICAgfTsKIAogcHJpdmF0ZToKQEAg
LTEyOCw2ICs5OCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRlZmVySW5zdHJ1bWVu
dGVkUG9pbnRlcihQYXNzT3duUHRyPEluc3RydW1lbnRlZFBvaW50ZXJCYXNlPikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBwcm9jZXNzRGVmZXJyZWRJbnN0cnVtZW50ZWRQb2ludGVycygpID0gMDsK
IAorICAgIFdURl9FWFBPUlRfUFJJVkFURSBzdGF0aWMgTWVtb3J5T2JqZWN0VHlwZSBnZXRPYmpl
Y3RUeXBlKE1lbW9yeU9iamVjdEluZm8qKTsKKwogICAgIGZyaWVuZCBjbGFzcyBNZW1vcnlDbGFz
c0luZm87CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gZnJpZW5kIHZvaWQgcmVwb3J0TWVtb3J5
VXNhZ2UoY29uc3QgVCogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CiAKQEAgLTE0OCwyOSAr
MTIwLDIyIEBAIHByaXZhdGU6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVHlw
ZT4KICAgICBzdGF0aWMgdm9pZCByZXBvcnRPYmplY3RNZW1vcnlVc2FnZShjb25zdCBUKiBjb25z
dCYgb2JqZWN0LCBNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvLCAuLi4pCiAgICAg
ewotICAgICAgICBtZW1vcnlPYmplY3RJbmZvLT5yZXBvcnRPYmplY3RJbmZvKG9iamVjdCwgMCwg
c2l6ZW9mKFQpKTsKKyAgICAgICAgY2FsbFJlcG9ydE9iamVjdEluZm8obWVtb3J5T2JqZWN0SW5m
bywgb2JqZWN0LCAwLCBzaXplb2YoVCkpOwogICAgIH0KLQotICAgIHRlbXBsYXRlPHR5cGVuYW1l
IFQ+Ci0gICAgc3RhdGljIHZvaWQgY291bnROb3RJbnN0cnVtZW50ZWRPYmplY3QoY29uc3QgVCog
Y29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKik7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyB2b2lkIGNhbGxSZXBvcnRPYmplY3RJbmZvKE1lbW9yeU9iamVjdEluZm8qLCBjb25zdCB2b2lk
KiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlLCBzaXplX3Qgb2JqZWN0U2l6ZSk7CiAKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBJbnN0cnVtZW50ZWRQb2ludGVyIDogcHVibGljIElu
c3RydW1lbnRlZFBvaW50ZXJCYXNlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEluc3RydW1lbnRl
ZFBvaW50ZXIoY29uc3QgVCogcG9pbnRlciwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5
cGUpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgcHJvY2VzcyhNZW1vcnlJbnN0cnVtZW50YXRpb24q
KSBPVkVSUklERTsKKyAgICAgICAgSW5zdHJ1bWVudGVkUG9pbnRlcihjb25zdCBUKiBwb2ludGVy
LCBNZW1vcnlPYmplY3RJbmZvKiBvd25lck9iamVjdEluZm8pOworCisgICAgcHJvdGVjdGVkOgor
ICAgICAgICB2aXJ0dWFsIGNvbnN0IHZvaWQqIGNhbGxSZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlP
YmplY3RJbmZvKikgT1ZFUlJJREU7CiAKICAgICBwcml2YXRlOgogICAgICAgICBjb25zdCBUKiBt
X3BvaW50ZXI7Ci0gICAgICAgIGNvbnN0IE1lbW9yeU9iamVjdFR5cGUgbV9vd25lck9iamVjdFR5
cGU7Ci0KLSNpZiBERUJVR19QT0lOVEVSX0lOU1RSVU1FTlRBVElPTgotICAgICAgICBzdGF0aWMg
Y29uc3QgaW50IHNfbWF4Q2FsbFN0YWNrU2l6ZSA9IDMyOwotICAgICAgICB2b2lkKiBtX2NhbGxT
dGFja1tzX21heENhbGxTdGFja1NpemVdOwotICAgICAgICBpbnQgbV9jYWxsU3RhY2tTaXplOwot
I2VuZGlmCiAgICAgfTsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgYWRkT2JqZWN0
KGNvbnN0IFQmIHQsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlKSB7IE93bmluZ1Ry
YWl0czxUPjo6YWRkT2JqZWN0KHRoaXMsIHQsIG93bmVyT2JqZWN0VHlwZSk7IH0KKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGFkZE9iamVjdChjb25zdCBUJiB0LCBNZW1vcnlPYmplY3RJ
bmZvKiBvd25lck9iamVjdEluZm8pIHsgT3duaW5nVHJhaXRzPFQ+OjphZGRPYmplY3QodGhpcywg
dCwgb3duZXJPYmplY3RJbmZvKTsgfQogICAgIHZvaWQgYWRkUmF3QnVmZmVyKGNvbnN0IHZvaWQq
IGNvbnN0JiBidWZmZXIsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmplY3RUeXBlLCBzaXplX3Qg
c2l6ZSkKICAgICB7CiAgICAgICAgIGlmICghYnVmZmVyIHx8IHZpc2l0ZWQoYnVmZmVyKSkKQEAg
LTE4MCw0OSArMTQ1LDQ4IEBAIHByaXZhdGU6CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgog
ICAgIHN0cnVjdCBPd25pbmdUcmFpdHMgeyAvLyBEZWZhdWx0IGJ5UmVmZXJlbmNlIGltcGxlbWVu
dGF0aW9uLgotICAgICAgICBzdGF0aWMgdm9pZCBhZGRPYmplY3QoTWVtb3J5SW5zdHJ1bWVudGF0
aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFQmIHQsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJP
YmplY3RUeXBlKQorICAgICAgICBzdGF0aWMgdm9pZCBhZGRPYmplY3QoTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFQmIHQsIE1lbW9yeU9iamVjdEluZm8qIG93
bmVyT2JqZWN0SW5mbykKICAgICAgICAgewotICAgICAgICAgICAgaW5zdHJ1bWVudGF0aW9uLT5h
ZGRPYmplY3RJbXBsKCZ0LCBvd25lck9iamVjdFR5cGUsIGJ5UmVmZXJlbmNlKTsKKyAgICAgICAg
ICAgIGluc3RydW1lbnRhdGlvbi0+YWRkT2JqZWN0SW1wbCgmdCwgb3duZXJPYmplY3RJbmZvLCBi
eVJlZmVyZW5jZSk7CiAgICAgICAgIH0KICAgICB9OwogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4KICAgICBzdHJ1Y3QgT3duaW5nVHJhaXRzPFQqPiB7IC8vIEN1c3RvbSBieVBvaW50ZXIgaW1w
bGVtZW50YXRpb24uCi0gICAgICAgIHN0YXRpYyB2b2lkIGFkZE9iamVjdChNZW1vcnlJbnN0cnVt
ZW50YXRpb24qIGluc3RydW1lbnRhdGlvbiwgY29uc3QgVCogY29uc3QmIHQsIE1lbW9yeU9iamVj
dFR5cGUgb3duZXJPYmplY3RUeXBlKQorICAgICAgICBzdGF0aWMgdm9pZCBhZGRPYmplY3QoTWVt
b3J5SW5zdHJ1bWVudGF0aW9uKiBpbnN0cnVtZW50YXRpb24sIGNvbnN0IFQqIGNvbnN0JiB0LCBN
ZW1vcnlPYmplY3RJbmZvKiBvd25lck9iamVjdEluZm8pCiAgICAgICAgIHsKLSAgICAgICAgICAg
IGluc3RydW1lbnRhdGlvbi0+YWRkT2JqZWN0SW1wbCh0LCBvd25lck9iamVjdFR5cGUsIGJ5UG9p
bnRlcik7CisgICAgICAgICAgICBpbnN0cnVtZW50YXRpb24tPmFkZE9iamVjdEltcGwodCwgb3du
ZXJPYmplY3RJbmZvLCBieVBvaW50ZXIpOwogICAgICAgICB9CiAgICAgfTsKIAotICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+IHZvaWQgYWRkT2JqZWN0SW1wbChjb25zdCBUKiBjb25zdCYsIE1lbW9y
eU9iamVjdFR5cGUsIE1lbW9yeU93bmluZ1R5cGUpOwotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
IHZvaWQgYWRkT2JqZWN0SW1wbChjb25zdCBPd25QdHI8VD4qIGNvbnN0JiwgTWVtb3J5T2JqZWN0
VHlwZSwgTWVtb3J5T3duaW5nVHlwZSk7Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBh
ZGRPYmplY3RJbXBsKGNvbnN0IFJlZlB0cjxUPiogY29uc3QmLCBNZW1vcnlPYmplY3RUeXBlLCBN
ZW1vcnlPd25pbmdUeXBlKTsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGFkZE9iamVj
dEltcGwoY29uc3QgVCogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKiwgTWVtb3J5T3duaW5nVHlw
ZSk7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBhZGRPYmplY3RJbXBsKGNvbnN0IE93
blB0cjxUPiogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKiwgTWVtb3J5T3duaW5nVHlwZSk7Cisg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBhZGRPYmplY3RJbXBsKGNvbnN0IFJlZlB0cjxU
PiogY29uc3QmLCBNZW1vcnlPYmplY3RJbmZvKiwgTWVtb3J5T3duaW5nVHlwZSk7CiAKICAgICBN
ZW1vcnlJbnN0cnVtZW50YXRpb25DbGllbnQqIG1fY2xpZW50OworICAgIE93blB0cjxNZW1vcnlP
YmplY3RJbmZvPiBtX3Jvb3RPYmplY3RJbmZvOwogfTsKIAogY2xhc3MgTWVtb3J5Q2xhc3NJbmZv
IHsKIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotICAgIE1lbW9yeUNsYXNzSW5m
byhNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvLCBjb25zdCBUKiBwb2ludGVyLCBN
ZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUgPSAwLCBzaXplX3QgYWN0dWFsU2l6ZSA9IDApCisg
ICAgTWVtb3J5Q2xhc3NJbmZvKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8sIGNv
bnN0IFQqIHBvaW50ZXIsIE1lbW9yeU9iamVjdFR5cGUgb2JqZWN0VHlwZSA9IDAsIHNpemVfdCBh
Y3R1YWxTaXplID0gc2l6ZW9mKFQpKQogICAgICAgICA6IG1fbWVtb3J5T2JqZWN0SW5mbyhtZW1v
cnlPYmplY3RJbmZvKQotICAgICAgICAsIG1fbWVtb3J5SW5zdHJ1bWVudGF0aW9uKG1lbW9yeU9i
amVjdEluZm8tPm1lbW9yeUluc3RydW1lbnRhdGlvbigpKQorICAgICAgICAsIG1fbWVtb3J5SW5z
dHJ1bWVudGF0aW9uKDApCisgICAgICAgICwgbV9vYmplY3RUeXBlKDApCiAgICAgewotICAgICAg
ICBtX21lbW9yeU9iamVjdEluZm8tPnJlcG9ydE9iamVjdEluZm8ocG9pbnRlciwgb2JqZWN0VHlw
ZSwgYWN0dWFsU2l6ZSA/IGFjdHVhbFNpemUgOiBzaXplb2YoVCkpOwotICAgICAgICBtX29iamVj
dFR5cGUgPSBtZW1vcnlPYmplY3RJbmZvLT5vYmplY3RUeXBlKCk7CisgICAgICAgIGluaXQocG9p
bnRlciwgb2JqZWN0VHlwZSwgYWN0dWFsU2l6ZSk7CiAgICAgfQogCi0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgTT4gdm9pZCBhZGRNZW1iZXIoY29uc3QgTSYgbWVtYmVyKSB7IG1fbWVtb3J5SW5zdHJ1
bWVudGF0aW9uLT5hZGRPYmplY3QobWVtYmVyLCBtX29iamVjdFR5cGUpOyB9Ci0gICAgdm9pZCBh
ZGRSYXdCdWZmZXIoY29uc3Qgdm9pZCogY29uc3QmIGJ1ZmZlciwgc2l6ZV90IHNpemUpIHsgbV9t
ZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZFJhd0J1ZmZlcihidWZmZXIsIG1fb2JqZWN0VHlwZSwg
c2l6ZSk7IH0KLSAgICB2b2lkIGFkZFByaXZhdGVCdWZmZXIoc2l6ZV90IHNpemUsIE1lbW9yeU9i
amVjdFR5cGUgb3duZXJPYmplY3RUeXBlID0gMCkKLSAgICB7Ci0gICAgICAgIGlmIChzaXplKQot
ICAgICAgICAgICAgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmNvdW50T2JqZWN0U2l6ZSgwLCBv
d25lck9iamVjdFR5cGUgPyBvd25lck9iamVjdFR5cGUgOiBtX29iamVjdFR5cGUsIHNpemUpOwot
ICAgIH0KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBNPiB2b2lkIGFkZE1lbWJlcihjb25zdCBNJiBt
ZW1iZXIpIHsgbV9tZW1vcnlJbnN0cnVtZW50YXRpb24tPmFkZE9iamVjdChtZW1iZXIsIG1fbWVt
b3J5T2JqZWN0SW5mbyk7IH0KKyAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBhZGRSYXdCdWZm
ZXIoY29uc3Qgdm9pZCogY29uc3QmIGJ1ZmZlciwgc2l6ZV90KTsKKyAgICBXVEZfRVhQT1JUX1BS
SVZBVEUgdm9pZCBhZGRQcml2YXRlQnVmZmVyKHNpemVfdCwgTWVtb3J5T2JqZWN0VHlwZSBvd25l
ck9iamVjdFR5cGUgPSAwKTsKIAogICAgIHZvaWQgYWRkV2Vha1BvaW50ZXIodm9pZCopIHsgfQog
CiBwcml2YXRlOgorICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIGluaXQoY29uc3Qgdm9pZCog
cG9pbnRlciwgTWVtb3J5T2JqZWN0VHlwZSwgc2l6ZV90IGFjdHVhbFNpemUpOworCiAgICAgTWVt
b3J5T2JqZWN0SW5mbyogbV9tZW1vcnlPYmplY3RJbmZvOwogICAgIE1lbW9yeUluc3RydW1lbnRh
dGlvbiogbV9tZW1vcnlJbnN0cnVtZW50YXRpb247CiAgICAgTWVtb3J5T2JqZWN0VHlwZSBtX29i
amVjdFR5cGU7CkBAIC0yMzUsNjIgKzE5OSw0NSBAQCB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKGNv
bnN0IFQqIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZgog
fQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgotdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFk
ZE9iamVjdEltcGwoY29uc3QgVCogY29uc3QmIG9iamVjdCwgTWVtb3J5T2JqZWN0VHlwZSBvd25l
ck9iamVjdFR5cGUsIE1lbW9yeU93bmluZ1R5cGUgb3duaW5nVHlwZSkKK3ZvaWQgTWVtb3J5SW5z
dHJ1bWVudGF0aW9uOjphZGRPYmplY3RJbXBsKGNvbnN0IFQqIGNvbnN0JiBvYmplY3QsIE1lbW9y
eU9iamVjdEluZm8qIG93bmVyT2JqZWN0SW5mbywgTWVtb3J5T3duaW5nVHlwZSBvd25pbmdUeXBl
KQogewotICAgIGlmIChvd25pbmdUeXBlID09IGJ5UmVmZXJlbmNlKSB7Ci0gICAgICAgIE1lbW9y
eU9iamVjdEluZm8gbWVtb3J5T2JqZWN0SW5mbyh0aGlzLCBvd25lck9iamVjdFR5cGUpOwotICAg
ICAgICByZXBvcnRNZW1vcnlVc2FnZShvYmplY3QsICZtZW1vcnlPYmplY3RJbmZvKTsKLSAgICB9
IGVsc2UgeworICAgIGlmIChvd25pbmdUeXBlID09IGJ5UmVmZXJlbmNlKQorICAgICAgICByZXBv
cnRNZW1vcnlVc2FnZShvYmplY3QsIG93bmVyT2JqZWN0SW5mbyk7CisgICAgZWxzZSB7CiAgICAg
ICAgIGlmICghb2JqZWN0IHx8IHZpc2l0ZWQob2JqZWN0KSkKICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgZGVmZXJJbnN0cnVtZW50ZWRQb2ludGVyKGFkb3B0UHRyKG5ldyBJbnN0cnVtZW50
ZWRQb2ludGVyPFQ+KG9iamVjdCwgb3duZXJPYmplY3RUeXBlKSkpOworICAgICAgICBkZWZlcklu
c3RydW1lbnRlZFBvaW50ZXIoYWRvcHRQdHIobmV3IEluc3RydW1lbnRlZFBvaW50ZXI8VD4ob2Jq
ZWN0LCBvd25lck9iamVjdEluZm8pKSk7CiAgICAgfQogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
Pgotdm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFkZE9iamVjdEltcGwoY29uc3QgT3duUHRy
PFQ+KiBjb25zdCYgb2JqZWN0LCBNZW1vcnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSwgTWVt
b3J5T3duaW5nVHlwZSBvd25pbmdUeXBlKQordm9pZCBNZW1vcnlJbnN0cnVtZW50YXRpb246OmFk
ZE9iamVjdEltcGwoY29uc3QgT3duUHRyPFQ+KiBjb25zdCYgb2JqZWN0LCBNZW1vcnlPYmplY3RJ
bmZvKiBvd25lck9iamVjdEluZm8sIE1lbW9yeU93bmluZ1R5cGUgb3duaW5nVHlwZSkKIHsKICAg
ICBpZiAob3duaW5nVHlwZSA9PSBieVBvaW50ZXIgJiYgIXZpc2l0ZWQob2JqZWN0KSkKLSAgICAg
ICAgY291bnRPYmplY3RTaXplKG9iamVjdCwgb3duZXJPYmplY3RUeXBlLCBzaXplb2YoKm9iamVj
dCkpOwotICAgIGFkZE9iamVjdEltcGwob2JqZWN0LT5nZXQoKSwgb3duZXJPYmplY3RUeXBlLCBi
eVBvaW50ZXIpOworICAgICAgICBjb3VudE9iamVjdFNpemUob2JqZWN0LCBnZXRPYmplY3RUeXBl
KG93bmVyT2JqZWN0SW5mbyksIHNpemVvZigqb2JqZWN0KSk7CisgICAgYWRkT2JqZWN0SW1wbChv
YmplY3QtPmdldCgpLCBvd25lck9iamVjdEluZm8sIGJ5UG9pbnRlcik7CiB9CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+Ci12b2lkIE1lbW9yeUluc3RydW1lbnRhdGlvbjo6YWRkT2JqZWN0SW1wbChj
b25zdCBSZWZQdHI8VD4qIGNvbnN0JiBvYmplY3QsIE1lbW9yeU9iamVjdFR5cGUgb3duZXJPYmpl
Y3RUeXBlLCBNZW1vcnlPd25pbmdUeXBlIG93bmluZ1R5cGUpCit2b2lkIE1lbW9yeUluc3RydW1l
bnRhdGlvbjo6YWRkT2JqZWN0SW1wbChjb25zdCBSZWZQdHI8VD4qIGNvbnN0JiBvYmplY3QsIE1l
bW9yeU9iamVjdEluZm8qIG93bmVyT2JqZWN0SW5mbywgTWVtb3J5T3duaW5nVHlwZSBvd25pbmdU
eXBlKQogewogICAgIGlmIChvd25pbmdUeXBlID09IGJ5UG9pbnRlciAmJiAhdmlzaXRlZChvYmpl
Y3QpKQotICAgICAgICBjb3VudE9iamVjdFNpemUob2JqZWN0LCBvd25lck9iamVjdFR5cGUsIHNp
emVvZigqb2JqZWN0KSk7Ci0gICAgYWRkT2JqZWN0SW1wbChvYmplY3QtPmdldCgpLCBvd25lck9i
amVjdFR5cGUsIGJ5UG9pbnRlcik7CisgICAgICAgIGNvdW50T2JqZWN0U2l6ZShvYmplY3QsIGdl
dE9iamVjdFR5cGUob3duZXJPYmplY3RJbmZvKSwgc2l6ZW9mKCpvYmplY3QpKTsKKyAgICBhZGRP
YmplY3RJbXBsKG9iamVjdC0+Z2V0KCksIG93bmVyT2JqZWN0SW5mbywgYnlQb2ludGVyKTsKIH0K
IAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLU1lbW9yeUluc3RydW1lbnRhdGlvbjo6SW5zdHJ1bWVu
dGVkUG9pbnRlcjxUPjo6SW5zdHJ1bWVudGVkUG9pbnRlcihjb25zdCBUKiBwb2ludGVyLCBNZW1v
cnlPYmplY3RUeXBlIG93bmVyT2JqZWN0VHlwZSkKLSAgICA6IG1fcG9pbnRlcihwb2ludGVyKQot
ICAgICwgbV9vd25lck9iamVjdFR5cGUob3duZXJPYmplY3RUeXBlKQorTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyPFQ+OjpJbnN0cnVtZW50ZWRQb2ludGVyKGNvbnN0
IFQqIHBvaW50ZXIsIE1lbW9yeU9iamVjdEluZm8qIG93bmVyT2JqZWN0SW5mbykKKyAgICA6IElu
c3RydW1lbnRlZFBvaW50ZXJCYXNlKG93bmVyT2JqZWN0SW5mbykKKyAgICAsIG1fcG9pbnRlcihw
b2ludGVyKQogewotI2lmIERFQlVHX1BPSU5URVJfSU5TVFJVTUVOVEFUSU9OCi0gICAgbV9jYWxs
U3RhY2tTaXplID0gc19tYXhDYWxsU3RhY2tTaXplOwotICAgIFdURkdldEJhY2t0cmFjZShtX2Nh
bGxTdGFjaywgJm1fY2FsbFN0YWNrU2l6ZSk7Ci0jZW5kaWYKIH0KIAogdGVtcGxhdGU8dHlwZW5h
bWUgVD4KLXZvaWQgTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyPFQ+
Ojpwcm9jZXNzKE1lbW9yeUluc3RydW1lbnRhdGlvbiogbWVtb3J5SW5zdHJ1bWVudGF0aW9uKQor
Y29uc3Qgdm9pZCogTWVtb3J5SW5zdHJ1bWVudGF0aW9uOjpJbnN0cnVtZW50ZWRQb2ludGVyPFQ+
OjpjYWxsUmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyogbWVtb3J5T2JqZWN0SW5m
bykKIHsKLSAgICBNZW1vcnlPYmplY3RJbmZvIG1lbW9yeU9iamVjdEluZm8obWVtb3J5SW5zdHJ1
bWVudGF0aW9uLCBtX293bmVyT2JqZWN0VHlwZSk7Ci0gICAgcmVwb3J0TWVtb3J5VXNhZ2UobV9w
b2ludGVyLCAmbWVtb3J5T2JqZWN0SW5mbyk7Ci0KLSAgICBjb25zdCB2b2lkKiBwb2ludGVyID0g
bWVtb3J5T2JqZWN0SW5mby5yZXBvcnRlZFBvaW50ZXIoKTsKLSAgICBBU1NFUlQocG9pbnRlcik7
Ci0gICAgaWYgKHBvaW50ZXIgIT0gbV9wb2ludGVyICYmIG1lbW9yeUluc3RydW1lbnRhdGlvbi0+
dmlzaXRlZChwb2ludGVyKSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1lbW9yeUluc3RydW1lbnRh
dGlvbi0+Y291bnRPYmplY3RTaXplKHBvaW50ZXIsIG1lbW9yeU9iamVjdEluZm8ub2JqZWN0VHlw
ZSgpLCBtZW1vcnlPYmplY3RJbmZvLm9iamVjdFNpemUoKSk7Ci0gICAgaWYgKCFtZW1vcnlJbnN0
cnVtZW50YXRpb24tPmNoZWNrQ291bnRlZE9iamVjdChwb2ludGVyKSkgewotI2lmIERFQlVHX1BP
SU5URVJfSU5TVFJVTUVOVEFUSU9OCi0gICAgICAgIGZwdXRzKCJVbmtub3duIG9iamVjdCBjb3Vu
dGVkOlxuIiwgc3RkZXJyKTsKLSAgICAgICAgV1RGUHJpbnRCYWNrdHJhY2UobV9jYWxsU3RhY2ss
IG1fY2FsbFN0YWNrU2l6ZSk7Ci0jZW5kaWYKLSAgICB9CisgICAgcmVwb3J0TWVtb3J5VXNhZ2Uo
bV9wb2ludGVyLCBtZW1vcnlPYmplY3RJbmZvKTsKKyAgICByZXR1cm4gbV9wb2ludGVyOwogfQog
CiAvLyBMaW5rIHRpbWUgZ3VhcmQgZm9yIGNsYXNzZXMgd2l0aCBleHRlcm5hbCBtZW1vcnkgaW5z
dHJ1bWVudGF0aW9uLgpAQCAtMzI5LDYgKzI3Niw0IEBAIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
Y29uc3QgVVJMU3RyaW5nKiBjb25zdCYsIE1lbW9yeU9iamVjdEluZm8qKTsKIAogfSAvLyBuYW1l
c3BhY2UgV1RGCiAKLSN1bmRlZiBERUJVR19QT0lOVEVSX0lOU1RSVU1FTlRBVElPTgotCiAjZW5k
aWYgLy8gIWRlZmluZWQoTWVtb3J5SW5zdHJ1bWVudGF0aW9uX2gpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9NZW1vcnlPYmplY3RJbmZvLmggYi9Tb3VyY2UvV1RGL3d0Zi9NZW1vcnlPYmpl
Y3RJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM3ZmU2YzgzNjJjMWE0ZjE1MjRiZDVhMzkyODc1YTg2YWJk
ODIzNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL01lbW9yeU9iamVjdEluZm8u
aApAQCAtMCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhl
IG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBI
T0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAq
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBU
SEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZW1vcnlPYmplY3RJbmZvX2gKKyNkZWZpbmUgTWVt
b3J5T2JqZWN0SW5mb19oCisKK25hbWVzcGFjZSBXVEYgeworCitjbGFzcyBNZW1vcnlDbGFzc0lu
Zm87CitjbGFzcyBNZW1vcnlJbnN0cnVtZW50YXRpb247CisKK3R5cGVkZWYgY29uc3QgY2hhciog
TWVtb3J5T2JqZWN0VHlwZTsKKworY2xhc3MgTWVtb3J5T2JqZWN0SW5mbyB7CitwdWJsaWM6Cisg
ICAgTWVtb3J5T2JqZWN0SW5mbyhNZW1vcnlJbnN0cnVtZW50YXRpb24qIG1lbW9yeUluc3RydW1l
bnRhdGlvbiwgTWVtb3J5T2JqZWN0VHlwZSBvd25lck9iamVjdFR5cGUpCisgICAgICAgIDogbV9t
ZW1vcnlJbnN0cnVtZW50YXRpb24obWVtb3J5SW5zdHJ1bWVudGF0aW9uKQorICAgICAgICAsIG1f
b2JqZWN0VHlwZShvd25lck9iamVjdFR5cGUpCisgICAgICAgICwgbV9vYmplY3RTaXplKDApCisg
ICAgICAgICwgbV9wb2ludGVyKDApCisgICAgeyB9CisKKyAgICB0eXBlZGVmIE1lbW9yeUNsYXNz
SW5mbyBDbGFzc0luZm87CisKKyAgICBNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5cGUoKSBjb25z
dCB7IHJldHVybiBtX29iamVjdFR5cGU7IH0KKyAgICBzaXplX3Qgb2JqZWN0U2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fb2JqZWN0U2l6ZTsgfQorICAgIGNvbnN0IHZvaWQqIHJlcG9ydGVkUG9pbnRl
cigpIGNvbnN0IHsgcmV0dXJuIG1fcG9pbnRlcjsgfQorCisgICAgTWVtb3J5SW5zdHJ1bWVudGF0
aW9uKiBtZW1vcnlJbnN0cnVtZW50YXRpb24oKSB7IHJldHVybiBtX21lbW9yeUluc3RydW1lbnRh
dGlvbjsgfQorCitwcml2YXRlOgorICAgIGZyaWVuZCBjbGFzcyBNZW1vcnlDbGFzc0luZm87Cisg
ICAgZnJpZW5kIGNsYXNzIE1lbW9yeUluc3RydW1lbnRhdGlvbjsKKworICAgIHZvaWQgcmVwb3J0
T2JqZWN0SW5mbyhjb25zdCB2b2lkKiBwb2ludGVyLCBNZW1vcnlPYmplY3RUeXBlIG9iamVjdFR5
cGUsIHNpemVfdCBvYmplY3RTaXplKQorICAgIHsKKyAgICAgICAgaWYgKCFtX29iamVjdFNpemUp
IHsKKyAgICAgICAgICAgIG1fcG9pbnRlciA9IHBvaW50ZXI7CisgICAgICAgICAgICBtX29iamVj
dFNpemUgPSBvYmplY3RTaXplOworICAgICAgICAgICAgaWYgKG9iamVjdFR5cGUpCisgICAgICAg
ICAgICAgICAgbV9vYmplY3RUeXBlID0gb2JqZWN0VHlwZTsKKyAgICAgICAgfQorICAgIH0KKwor
ICAgIE1lbW9yeUluc3RydW1lbnRhdGlvbiogbV9tZW1vcnlJbnN0cnVtZW50YXRpb247CisgICAg
TWVtb3J5T2JqZWN0VHlwZSBtX29iamVjdFR5cGU7CisgICAgc2l6ZV90IG1fb2JqZWN0U2l6ZTsK
KyAgICBjb25zdCB2b2lkKiBtX3BvaW50ZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKKwor
I2VuZGlmIC8vICFkZWZpbmVkKE1lbW9yeU9iamVjdEluZm9faCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL0ZGVEZyYW1lLmNwcAppbmRleCA2M2M4N2RkYzkyOTYxY2FhMGU4NDY5NzVi
NjIwNWI5MTExNzlmZmM5Li5lZWU0NWRlOGFiM2QyYzAyYjFlMjY3MjNjMzY0YjBkZjkwZGQ1Yzk4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9GRlRGcmFtZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vRkZURnJhbWUuY3BwCkBAIC00MCw2
ICs0MCw3IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1NZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNp
bmNsdWRlIDx3dGYvQ29tcGxleC5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CisjaW5j
bHVkZSA8d3RmL01lbW9yeU9iamVjdEluZm8uaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAK
ICNpZiAhVVNFX0FDQ0VMRVJBVEVfRkZUICYmIFVTRShXRUJBVURJT19GRk1QRUcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBkN2Y0MTgx
NmFkMDNiOGIxZWIwOGFmZmI5ODIyYmFjOGUyMDYwNTBiLi42ZWNhYTA0MTdhODBhYmYwMTI2ZWMx
NTY1YzIwZmJkMjZmMDEyM2E0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNlbmRpZgogI2luY2x1ZGUgIldl
YkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1
bWVudGF0aW9uVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeU9iamVjdEluZm8uaD4KICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YS5jcHAKaW5kZXggYjFiYTU5ODZhNDkyMmZkYzU1MzViMWE0ZGI0NzVlYzI3MjRlYWY3
ZC4uNDM0ZTNjY2YwODM3OTBlOGNiNWM1MzJjMmRiYjRiMWVkNGExMzhiYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmNwcApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRz
LmgiCiAjaW5jbHVkZSAiU2hhZG93RGF0YS5oIgogI2luY2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0
cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlIDx3dGYvTWVtb3J5T2JqZWN0SW5mby5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCAxYzZjYjE4Nzli
MmQ5NWM4NTgwYTk5MThlM2JkZmE2Mzc4MjczNmM0Li5lZDllOWEyZWZkNDlmMGQyNDRmOGJjYTIy
NjI1ZWM2YTRlM2ZkYTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC0zMyw2ICszMyw3
IEBACiAjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUg
PHd0Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL01lbW9y
eUluc3RydW1lbnRhdGlvblZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi9NZW1vcnlPYmplY3RJbmZv
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQwZjI3ODQ4MzM3MWViMzZjMDcxNjY3NjA0NzA3ODVi
MjU3NzYwMTMuLmE4MDEyMzFhYTkyMWNjNTQ5Njc4Mjk3MTQ0Nzc2YjEwOTFiMTY2MDQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxMi0xMS0xNiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4K
KworICAgICAgICBNZW1vcnkgaW5zdHJ1bWVudGF0aW9uOiBleHRyYWN0IE1lbW9yeU9iamVjdElu
Zm8gZGVjbGFyYXRpb24gaW50byBhIHNlcGFyYXRlIGZpbGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjUxMAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIG1pc3NpbmcgaW5jbHVkZXMuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZW1vcnlJbnN0cnVtZW50YXRpb25UZXN0
LmNwcDoKKwogMjAxMi0xMS0xOCAgS3l1bmdUYWUgS2ltICA8a3RmLmtpbUBzYW1zdW5nLmNvbT4K
IAogICAgICAgICBbRUZMXSBOb3QgdG8gaW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIiBpbiBU
b29scwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTWVtb3J5SW5z
dHJ1bWVudGF0aW9uVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZW1v
cnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcAppbmRleCA3MzQ4MDYyZDkxNDcyNmU5MDFhM2Q1MDU3
YjlhN2JiMDI3NzEyYmE0Li5kYWQwOGRkYTQ1ZDcyZWNmZGU4NzRiNjNkMzMwMTRmYjc5MjkwNWVl
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZW1vcnlJbnN0cnVt
ZW50YXRpb25UZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NZW1v
cnlJbnN0cnVtZW50YXRpb25UZXN0LmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgPHd0
Zi9NZW1vcnlJbnN0cnVtZW50YXRpb25MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9NZW1v
cnlJbnN0cnVtZW50YXRpb25TdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL01lbW9yeU9iamVjdEluZm8uaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4K
</data>
<flag name="review"
          id="190248"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="190249"
          type_id="3"
          status="-"
          setter="gtk-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>