<?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>99077</bug_id>
          
          <creation_ts>2012-10-11 08:38:37 -0700</creation_ts>
          <short_desc>Add support for resolution media query</short_desc>
          <delta_ts>2013-09-09 14:04:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.w3.org/TR/css3-mediaqueries/#resolution</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>100865</dependson>
          <blocked>78087</blocked>
    
    <blocked>100861</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenneth Rohde Christiansen">kenneth</reporter>
          <assigned_to name="Kenneth Rohde Christiansen">kenneth</assigned_to>
          <cc>abarth</cc>
    
    <cc>abecsi</cc>
    
    <cc>alexander.shalamov</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fsamuel</cc>
    
    <cc>gtk-ews</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hausmann</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>peter</cc>
    
    <cc>peter+ews</cc>
    
    <cc>philn</cc>
    
    <cc>rakuco</cc>
    
    <cc>rbyers</cc>
    
    <cc>syoichi</cc>
    
    <cc>tabatkins</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>740003</commentid>
    <comment_count>0</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-11 08:38:37 -0700</bug_when>
    <thetext>Incl. support for dppx!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740006</commentid>
    <comment_count>1</comment_count>
      <attachid>168234</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-11 08:43:08 -0700</bug_when>
    <thetext>Created attachment 168234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740055</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-11 09:36:05 -0700</bug_when>
    <thetext>Attachment 168234 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1
Source/WebCore/css/MediaQueryExp.cpp:163:  Extra space before ( in function call  [whitespace/parens] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:507:  min_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:512:  max_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 3 in 11 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>740082</commentid>
    <comment_count>3</comment_count>
      <attachid>168234</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-11 10:08:08 -0700</bug_when>
    <thetext>Comment on attachment 168234
Patch

Attachment 168234 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14258621</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740134</commentid>
    <comment_count>4</comment_count>
      <attachid>168234</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-11 10:51:13 -0700</bug_when>
    <thetext>Comment on attachment 168234
Patch

Attachment 168234 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14248984

New failing tests:
fast/media/mq-resolution.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740659</commentid>
    <comment_count>5</comment_count>
      <attachid>168234</attachid>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-10-11 23:45:21 -0700</bug_when>
    <thetext>Comment on attachment 168234
Patch

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

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:200
&gt; +bool compareResolution(unsigned min, unsigned max, unsigned value, MediaFeaturePrefix op)

Should it be const, so that it will stay in this compilation unit. Maybe that&apos;s why mac build fails.

/Volumes/Data/EWS/WebKit/Source/WebCore/css/MediaQueryEvaluator.cpp:200:6: error: no previous prototype for function &apos;compareResolution&apos; [-Werror,-Wmissing-prototypes]
bool compareResolution(unsigned min, unsigned max, unsigned value, MediaFeaturePrefix op)
     ^
1 error generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>740660</commentid>
    <comment_count>6</comment_count>
    <who name="Alexander Shalamov">alexander.shalamov</who>
    <bug_when>2012-10-11 23:46:12 -0700</bug_when>
    <thetext>(In reply to comment #5)
Sorry, typo. const -&gt; static</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742055</commentid>
    <comment_count>7</comment_count>
      <attachid>168715</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-15 08:30:42 -0700</bug_when>
    <thetext>Created attachment 168715
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742083</commentid>
    <comment_count>8</comment_count>
      <attachid>168721</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-15 08:43:52 -0700</bug_when>
    <thetext>Created attachment 168721
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742116</commentid>
    <comment_count>9</comment_count>
      <attachid>168721</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-15 09:40:02 -0700</bug_when>
    <thetext>Comment on attachment 168721
Patch

Attachment 168721 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14300695</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742117</commentid>
    <comment_count>10</comment_count>
      <attachid>168721</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-15 09:42:00 -0700</bug_when>
    <thetext>Comment on attachment 168721
Patch

Attachment 168721 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14293722</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742123</commentid>
    <comment_count>11</comment_count>
      <attachid>168721</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-10-15 09:55:04 -0700</bug_when>
    <thetext>Comment on attachment 168721
Patch

Attachment 168721 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14293726</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742399</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-15 14:01:47 -0700</bug_when>
    <thetext>Attachment 168721 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast...&quot; exit_code: 1
Source/WebCore/css/MediaQueryEvaluator.cpp:51:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:523:  min_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:528:  max_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 3 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>742401</commentid>
    <comment_count>13</comment_count>
      <attachid>168721</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-10-15 14:02:55 -0700</bug_when>
    <thetext>Comment on attachment 168721
Patch

Attachment 168721 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14295694</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>742492</commentid>
    <comment_count>14</comment_count>
      <attachid>168721</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-15 15:04:40 -0700</bug_when>
    <thetext>Comment on attachment 168721
Patch

Attachment 168721 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14297741</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743044</commentid>
    <comment_count>15</comment_count>
      <attachid>168914</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-16 04:00:08 -0700</bug_when>
    <thetext>Created attachment 168914
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743062</commentid>
    <comment_count>16</comment_count>
      <attachid>168914</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-16 04:41:03 -0700</bug_when>
    <thetext>Comment on attachment 168914
Patch

Attachment 168914 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14391122</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743065</commentid>
    <comment_count>17</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-16 04:49:48 -0700</bug_when>
    <thetext>Any clue anyone? 

Undefined symbols for architecture x86_64:
  &quot;__ZN7WebCore8Settings21setResolutionOverrideERKNS_7IntRectE&quot;, referenced from:
     -exported_symbol[s_list] command line option
ld: symbol(s) not found for architecture x86_64</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743067</commentid>
    <comment_count>18</comment_count>
      <attachid>168914</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2012-10-16 04:55:24 -0700</bug_when>
    <thetext>Comment on attachment 168914
Patch

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

&gt; Source/WebCore/page/Settings.cpp:462
&gt; +void Settings::setResolutionOverride(const IntSize&amp; densityPerInchOverride)

I think the declaration doesn&apos;t match with your Source/WebCore/WebCore.exp.in declaration (IntSize -&gt; IntRect).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743068</commentid>
    <comment_count>19</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-16 04:55:49 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; Any clue anyone? 
&gt; 
&gt; Undefined symbols for architecture x86_64:
&gt;   &quot;__ZN7WebCore8Settings21setResolutionOverrideERKNS_7IntRectE&quot;, referenced from:
&gt;      -exported_symbol[s_list] command line option
&gt; ld: symbol(s) not found for architecture x86_64

s/IntRect/IntSize :-) need more coffee!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743074</commentid>
    <comment_count>20</comment_count>
      <attachid>168925</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-16 05:12:42 -0700</bug_when>
    <thetext>Created attachment 168925
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743108</commentid>
    <comment_count>21</comment_count>
      <attachid>168925</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 06:31:05 -0700</bug_when>
    <thetext>Comment on attachment 168925
Patch

Attachment 168925 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14396115

New failing tests:
fast/media/mq-resolution.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743120</commentid>
    <comment_count>22</comment_count>
      <attachid>168925</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-16 07:16:59 -0700</bug_when>
    <thetext>Comment on attachment 168925
Patch

Attachment 168925 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14391165

New failing tests:
fast/media/mq-resolution.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743121</commentid>
    <comment_count>23</comment_count>
      <attachid>168925</attachid>
    <who name="kov&apos;s GTK+ EWS bot">gtk-ews</who>
    <bug_when>2012-10-16 07:22:28 -0700</bug_when>
    <thetext>Comment on attachment 168925
Patch

Attachment 168925 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/14389165</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743194</commentid>
    <comment_count>24</comment_count>
      <attachid>168958</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-16 09:09:26 -0700</bug_when>
    <thetext>Created attachment 168958
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743239</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 10:09:37 -0700</bug_when>
    <thetext>Attachment 168958 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;La...&quot; exit_code: 1
Source/WebCore/css/MediaQueryEvaluator.cpp:52:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:524:  min_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:529:  max_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 3 in 19 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>743250</commentid>
    <comment_count>26</comment_count>
      <attachid>168958</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-16 10:22:07 -0700</bug_when>
    <thetext>Comment on attachment 168958
Patch

Attachment 168958 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14386210

New failing tests:
fast/media/mq-resolution.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743429</commentid>
    <comment_count>27</comment_count>
      <attachid>168958</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 12:40:41 -0700</bug_when>
    <thetext>Comment on attachment 168958
Patch

Attachment 168958 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14396235

New failing tests:
fast/media/mq-resolution.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>743497</commentid>
    <comment_count>28</comment_count>
      <attachid>168958</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-16 13:41:53 -0700</bug_when>
    <thetext>Comment on attachment 168958
Patch

Attachment 168958 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14384297

New failing tests:
fast/media/mq-resolution.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744259</commentid>
    <comment_count>29</comment_count>
      <attachid>169190</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-17 08:30:48 -0700</bug_when>
    <thetext>Created attachment 169190
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744261</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 08:33:01 -0700</bug_when>
    <thetext>Attachment 169190 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;La...&quot; exit_code: 1
LayoutTests/platform/chromium/TestExpectations:174:  Path does not exist.  [test/expectations] [5]
LayoutTests/platform/mac/TestExpectations:968:  Path does not exist.  [test/expectations] [5]
Source/WebCore/css/MediaQueryEvaluator.cpp:52:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:526:  min_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:531:  max_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 5 in 21 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>744293</commentid>
    <comment_count>31</comment_count>
      <attachid>169190</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-17 09:06:16 -0700</bug_when>
    <thetext>Comment on attachment 169190
Patch

Attachment 169190 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14392626</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744320</commentid>
    <comment_count>32</comment_count>
      <attachid>169200</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-17 09:45:52 -0700</bug_when>
    <thetext>Created attachment 169200
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744324</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 09:50:12 -0700</bug_when>
    <thetext>Attachment 169200 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;La...&quot; exit_code: 1
LayoutTests/platform/chromium/TestExpectations:174:  Path does not exist.  [test/expectations] [5]
LayoutTests/platform/mac/TestExpectations:969:  Path does not exist.  [test/expectations] [5]
Source/WebCore/css/MediaQueryEvaluator.cpp:52:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:528:  min_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:533:  max_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 5 in 21 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>744365</commentid>
    <comment_count>34</comment_count>
      <attachid>169200</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-17 10:23:24 -0700</bug_when>
    <thetext>Comment on attachment 169200
Patch

Attachment 169200 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14384606</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744426</commentid>
    <comment_count>35</comment_count>
      <attachid>169200</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 11:07:18 -0700</bug_when>
    <thetext>Comment on attachment 169200
Patch

Attachment 169200 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14392656

New failing tests:
fast/media/mq-resolution.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744469</commentid>
    <comment_count>36</comment_count>
      <attachid>169228</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-17 11:49:51 -0700</bug_when>
    <thetext>Created attachment 169228
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744471</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 11:52:23 -0700</bug_when>
    <thetext>Attachment 169228 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;La...&quot; exit_code: 1
LayoutTests/platform/chromium/TestExpectations:174:  Path does not exist.  [test/expectations] [5]
LayoutTests/platform/mac/TestExpectations:969:  Path does not exist.  [test/expectations] [5]
Source/WebCore/css/MediaQueryEvaluator.cpp:52:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:530:  min_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:535:  max_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 5 in 21 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>744472</commentid>
    <comment_count>38</comment_count>
      <attachid>169229</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-17 11:55:00 -0700</bug_when>
    <thetext>Created attachment 169229
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744475</commentid>
    <comment_count>39</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 11:57:51 -0700</bug_when>
    <thetext>Attachment 169229 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;La...&quot; exit_code: 1
LayoutTests/platform/chromium/TestExpectations:174:  Path does not exist.  [test/expectations] [5]
LayoutTests/platform/mac/TestExpectations:969:  Path does not exist.  [test/expectations] [5]
Source/WebCore/css/MediaQueryEvaluator.cpp:52:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:530:  min_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:535:  max_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 5 in 21 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>744551</commentid>
    <comment_count>40</comment_count>
      <attachid>169229</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-17 13:20:23 -0700</bug_when>
    <thetext>Comment on attachment 169229
Patch

Attachment 169229 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14387689

New failing tests:
fast/media/mq-resolution.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744559</commentid>
    <comment_count>41</comment_count>
      <attachid>169229</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 13:24:38 -0700</bug_when>
    <thetext>Comment on attachment 169229
Patch

Attachment 169229 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14388708

New failing tests:
fast/media/mq-resolution.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744611</commentid>
    <comment_count>42</comment_count>
      <attachid>169229</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-17 14:20:18 -0700</bug_when>
    <thetext>Comment on attachment 169229
Patch

Attachment 169229 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14390683

New failing tests:
fast/media/mq-resolution.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744641</commentid>
    <comment_count>43</comment_count>
      <attachid>169265</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-17 14:47:35 -0700</bug_when>
    <thetext>Created attachment 169265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>744647</commentid>
    <comment_count>44</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-17 14:50:59 -0700</bug_when>
    <thetext>Attachment 169265 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;La...&quot; exit_code: 1
Source/WebCore/css/MediaQueryEvaluator.cpp:52:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:530:  min_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:535:  max_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 3 in 21 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>747623</commentid>
    <comment_count>45</comment_count>
      <attachid>169928</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-22 09:35:38 -0700</bug_when>
    <thetext>Created attachment 169928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747625</commentid>
    <comment_count>46</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-22 09:39:38 -0700</bug_when>
    <thetext>Attachment 169928 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;La...&quot; exit_code: 1
Source/WebCore/css/MediaQueryEvaluator.cpp:52:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:557:  min_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:562:  max_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 3 in 21 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>747830</commentid>
    <comment_count>47</comment_count>
      <attachid>169969</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-22 13:32:10 -0700</bug_when>
    <thetext>Created attachment 169969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747832</commentid>
    <comment_count>48</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-22 13:35:48 -0700</bug_when>
    <thetext>Attachment 169969 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;La...&quot; exit_code: 1
Source/WebCore/css/MediaQueryEvaluator.cpp:557:  min_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:562:  max_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 21 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>747842</commentid>
    <comment_count>49</comment_count>
      <attachid>169969</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-22 13:46:04 -0700</bug_when>
    <thetext>Comment on attachment 169969
Patch

I don&apos;t see a link to a spec in the ChangeLog.  Is this part of a spec anywhere?  Also, you might want to link to the webkit-dev thread described in http://www.webkit.org/coding/adding-features.html.  Finally, isn&apos;t there already a media query for device pixel ratio?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747844</commentid>
    <comment_count>50</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-22 13:51:15 -0700</bug_when>
    <thetext>(In reply to comment #49)
&gt; (From update of attachment 169969 [details])
&gt; I don&apos;t see a link to a spec in the ChangeLog.  Is this part of a spec anywhere?  Also, you might want to link to the webkit-dev thread described in http://www.webkit.org/coding/adding-features.html.  Finally, isn&apos;t there already a media query for device pixel ratio?

I will add that; they are:

http://www.w3.org/TR/css3-mediaqueries/#resolution
http://dev.w3.org/csswg/css3-values/#resolution

Yes, basically it was discussed to push device pixel ratio to become spec&apos;ed but resolution was already specced and implemented by other, like Mozilla. As (min-resolution: 192) is harder to understand than (device-pixel-ratio: 2) the dppx syntax was added in css3-values, which represents the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747863</commentid>
    <comment_count>51</comment_count>
      <attachid>169980</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-22 14:03:54 -0700</bug_when>
    <thetext>Created attachment 169980
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747867</commentid>
    <comment_count>52</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-22 14:06:50 -0700</bug_when>
    <thetext>Attachment 169980 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;La...&quot; exit_code: 1
Source/WebCore/css/MediaQueryEvaluator.cpp:557:  min_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:562:  max_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 21 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>748393</commentid>
    <comment_count>53</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-23 02:03:46 -0700</bug_when>
    <thetext>FYI, this features (incl. dppx) is shipped by Mozilla in Firefox 16. Opera are also shipping the &apos;resolution&apos; media query, but not with dppx support yet (at least to my knowledge)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748394</commentid>
    <comment_count>54</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-23 02:05:00 -0700</bug_when>
    <thetext>(In reply to comment #53)
&gt; FYI, this features (incl. dppx) is shipped by Mozilla in Firefox 16. Opera are also shipping the &apos;resolution&apos; media query, but not with dppx support yet (at least to my knowledge)

Actually Opera has it implemented, but are not shipping it yet: https://twitter.com/frivoal/status/231420753130692608</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748397</commentid>
    <comment_count>55</comment_count>
      <attachid>169980</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-10-23 02:12:54 -0700</bug_when>
    <thetext>Comment on attachment 169980
Patch

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

&gt; Source/WebCore/css/MediaQueryEvaluator.cpp:201
&gt; +#if ENABLE(CSS_IMAGE_RESOLUTION)
&gt; +static bool compareResolution(float min, float max, float value, MediaFeaturePrefix op)

It seems bit surprising to tie this to CSS image resolution feature. Maybe the new units could be enabled globally (they shouldn&apos;t hurt even without clients) and this feature could have a feature flag of its own.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748452</commentid>
    <comment_count>56</comment_count>
      <attachid>170107</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-23 03:36:59 -0700</bug_when>
    <thetext>Created attachment 170107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748551</commentid>
    <comment_count>57</comment_count>
      <attachid>170139</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-23 06:00:08 -0700</bug_when>
    <thetext>Created attachment 170139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748554</commentid>
    <comment_count>58</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 06:03:10 -0700</bug_when>
    <thetext>Attachment 170139 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;La...&quot; exit_code: 1
Source/WebCore/css/MediaQueryEvaluator.cpp:557:  min_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Source/WebCore/css/MediaQueryEvaluator.cpp:562:  max_resolutionMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 35 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>748648</commentid>
    <comment_count>59</comment_count>
      <attachid>170139</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 07:51:55 -0700</bug_when>
    <thetext>Comment on attachment 170139
Patch

Rejecting attachment 170139 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
T (content): Merge conflict in Source/WebKit2/ChangeLog
Failed to merge in the changes.
Patch failed at 0002 [EFL][WK2] Convert WebEvent&apos;s timestamp from millisecond to second.

When you have resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 164.

Full output: http://queues.webkit.org/results/14487910</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748662</commentid>
    <comment_count>60</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-23 08:16:26 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/132227</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755301</commentid>
    <comment_count>61</comment_count>
    <who name="Rick Byers">rbyers</who>
    <bug_when>2012-10-31 07:52:30 -0700</bug_when>
    <thetext>(In reply to comment #60)
&gt; Landed in http://trac.webkit.org/changeset/132227

Thanks for doing this Kenneth!  I&apos;ve been thinking we want this in chromium as well, but had hesitated doing it myself because I wasn&apos;t sure if it would be difficult to get it to work correctly for print media.  Did you look at the print media cases at all?  I&apos;m not an expert in the relevant code, but the computation of DPI strictly from deviceScaleFactor makes me think it might not do the right thing for print.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755363</commentid>
    <comment_count>62</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-10-31 09:06:05 -0700</bug_when>
    <thetext>Yes, there are other follow up patches landed already which deals with printing. Currently it assumes a printer dpi of minimum 300.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168234</attachid>
            <date>2012-10-11 08:43:08 -0700</date>
            <delta_ts>2012-10-15 08:30:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99077-20121011174204.patch</filename>
            <type>text/plain</type>
            <size>15461</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMDM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ0YzE0MWUxNDkzMTEx
MDZjOGRlZDkzZDYxMDczMGE2NTUyYjRkNi4uNTUzNzA0NjU4NDQ0MGI4OWRmMjhkZDQ2ZDVhODgy
ZmQxODBmYWRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTEwLTExICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBX
b3JrIGluIHByb2dyZXNzCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlc29sdXRpb24gbWVk
aWEgcXVlcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk5MDc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvZiB0aGUgY2hhbmdlIHN1Y2ggYXMgYXBwcm9hY2gsIHJh
dGlvbmFsZS4gUGxlYXNlIGFkZCBwZXItZnVuY3Rpb24gZGVzY3JpcHRpb25zIGJlbG93IChPT1BT
ISkuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwKKworICAg
ICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6OmlzRGVuc2l0eVBlckluY2gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6OmlzRGVuc2l0eVBlclBpeGVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1By
aW1pdGl2ZVZhbHVlOjppc0RlbnNpdHlQZXJDZW50aW1ldGVyKToKKyAgICAgICAgKENTU1ByaW1p
dGl2ZVZhbHVlKToKKyAgICAgICAgKiBjc3MvTWVkaWFGZWF0dXJlTmFtZXMuaDoKKyAgICAgICAg
KE1lZGlhRmVhdHVyZU5hbWVzKToKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wYXJlUmVzb2x1dGlvbik6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OnJlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6Om1pbl9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAg
IChXZWJDb3JlOjptYXhfcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAqIGNz
cy9NZWRpYVF1ZXJ5RXhwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRoVmFsaWRQ
b3NpdGl2ZURlbnNpdHkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVF1ZXJ5RXhwOjpNZWRpYVF1ZXJ5RXhwKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFJlc29sdXRpb24pOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAg
KEludGVybmFscyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDEyLTEw
LTExICBBbGV4YW5kZXIgU2hhbGFtb3YgIDxhbGV4YW5kZXIuc2hhbGFtb3ZAaW50ZWwuY29tPgog
CiAgICAgICAgIFtDU1MzIE1lZGlhIFF1ZXJpZXNdIEFzcGVjdCByYXRpbyB2YWx1ZSByZS1wYXJz
ZWQgd2hlbiBtZWRpYSBxdWVyeSBleHByZXNzaW9uIGlzIGV2YWx1YXRlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAppbmRleCBhYTJkYmVhYzMyZGRiMzg3N2IxZGI1ZWZiZDBh
YWVlNzcxMmQ2ODY2Li40MWM5YzNhZjM4NDVkODg0ZTJhNWUyZGQ1Nzc5Y2VmNTMyZmJhOTA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaApAQCAtMTgxLDYgKzE4MSwxMCBA
QCBwdWJsaWM6CiAgICAgYm9vbCBpc0NhbGN1bGF0ZWQoKSBjb25zdCB7IHJldHVybiBtX3ByaW1p
dGl2ZVVuaXRUeXBlID09IENTU19DQUxDOyB9CiAgICAgYm9vbCBpc0NhbGN1bGF0ZWRQZXJjZW50
YWdlV2l0aE51bWJlcigpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfQ0FM
Q19QRVJDRU5UQUdFX1dJVEhfTlVNQkVSOyB9CiAgICAgYm9vbCBpc0NhbGN1bGF0ZWRQZXJjZW50
YWdlV2l0aExlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfQ0FM
Q19QRVJDRU5UQUdFX1dJVEhfTEVOR1RIOyB9CisgICAgYm9vbCBpc0RlbnNpdHlQZXJJbmNoKCkg
Y29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgpID09IENTU19EUEk7IH0KKyAgICBib29sIGlz
RGVuc2l0eVBlclBpeGVsKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgpID09IENTU19E
UFBYOyB9CisgICAgYm9vbCBpc0RlbnNpdHlQZXJDZW50aW1ldGVyKCkgY29uc3QgeyByZXR1cm4g
cHJpbWl0aXZlVHlwZSgpID09IENTU19EUENNOyB9CisKICNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxF
UykKICAgICBib29sIGlzVmFyaWFibGVOYW1lKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlw
ZSgpID09IENTU19WQVJJQUJMRV9OQU1FOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
RmVhdHVyZU5hbWVzLmgKaW5kZXggYjA4NDM5ZTRhMDE4MzQ5MjJmZGEwMGU4YWQ5N2VmZjIwZmJl
YzBmYy4uNGNlYzI1NDVmNTg1M2M0ZWE5ZGZhZWY1ZjE2NTc4MDVlZDY5ZDNhOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIG1hY3JvKG1heF9oZWlnaHQsICJtYXgtaGVpZ2h0IikgXAogICAgIG1h
Y3JvKG1heF9tb25vY2hyb21lLCAibWF4LW1vbm9jaHJvbWUiKSBcCiAgICAgbWFjcm8obWF4X3dp
ZHRoLCAibWF4LXdpZHRoIikgXAorICAgIG1hY3JvKG1heF9yZXNvbHV0aW9uLCAiLXdlYmtpdC1t
YXgtcmVzb2x1dGlvbiIpIFwKICAgICBtYWNybyhtaW5fY29sb3IsICJtaW4tY29sb3IiKSBcCiAg
ICAgbWFjcm8obWluX2FzcGVjdF9yYXRpbywgIm1pbi1hc3BlY3QtcmF0aW8iKSBcCiAgICAgbWFj
cm8obWluX2RldmljZV9hc3BlY3RfcmF0aW8sICJtaW4tZGV2aWNlLWFzcGVjdC1yYXRpbyIpIFwK
QEAgLTU2LDcgKzU3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKG1pbl9oZWln
aHQsICJtaW4taGVpZ2h0IikgXAogICAgIG1hY3JvKG1pbl9tb25vY2hyb21lLCAibWluLW1vbm9j
aHJvbWUiKSBcCiAgICAgbWFjcm8obWluX3dpZHRoLCAibWluLXdpZHRoIikgXAorICAgIG1hY3Jv
KG1pbl9yZXNvbHV0aW9uLCAiLXdlYmtpdC1taW4tcmVzb2x1dGlvbiIpIFwKICAgICBtYWNybyhw
b2ludGVyLCAicG9pbnRlciIpIFwKKyAgICBtYWNybyhyZXNvbHV0aW9uLCAiLXdlYmtpdC1yZXNv
bHV0aW9uIikgXAogICAgIG1hY3JvKHRyYW5zZm9ybV8yZCwgIi13ZWJraXQtdHJhbnNmb3JtLTJk
IikgXAogICAgIG1hY3JvKHRyYW5zZm9ybV8zZCwgIi13ZWJraXQtdHJhbnNmb3JtLTNkIikgXAog
ICAgIG1hY3JvKHRyYW5zaXRpb24sICItd2Via2l0LXRyYW5zaXRpb24iKSBcCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKaW5kZXggZGFhNDkwYjhiZGM4NDY4N2M3
NDlhOWI1MTBlNDRjMzljNjkxMDhlNS4uODAwYjI1NWMwMjI4NjJiMDM2ODI4ZDYxZmFiYjkzNTdj
OTBjZDY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApA
QCAtMTk3LDYgKzE5NywyMSBAQCBzdGF0aWMgYm9vbCBjb21wYXJlQXNwZWN0UmF0aW9WYWx1ZShD
U1NWYWx1ZSogdmFsdWUsIGludCB3aWR0aCwgaW50IGhlaWdodCwgTWVkaQogICAgIHJldHVybiBm
YWxzZTsKIH0KIAorYm9vbCBjb21wYXJlUmVzb2x1dGlvbih1bnNpZ25lZCBtaW4sIHVuc2lnbmVk
IG1heCwgdW5zaWduZWQgdmFsdWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKK3sKKyAgICBzd2l0
Y2ggKG9wKSB7CisgICAgY2FzZSBOb1ByZWZpeDoKKyAgICAgICAgLy8gQSDigJhyZXNvbHV0aW9u
4oCZICh3aXRob3V0IGEgIm1pbi0iIG9yICJtYXgtIiBwcmVmaXgpIHF1ZXJ5CisgICAgICAgIC8v
IG5ldmVyIG1hdGNoZXMgYSBkZXZpY2Ugd2l0aCBub24tc3F1YXJlIHBpeGVscy4KKyAgICAgICAg
cmV0dXJuIG1pbiA9PSBtYXg7CisgICAgY2FzZSBNaW5QcmVmaXg6CisgICAgICAgIHJldHVybiBt
aW4gPj0gdmFsdWU7CisgICAgY2FzZSBNYXhQcmVmaXg6CisgICAgICAgIHJldHVybiBtYXggPD0g
dmFsdWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogc3RhdGljIGJvb2wgbnVtYmVy
VmFsdWUoQ1NTVmFsdWUqIHZhbHVlLCBmbG9hdCYgcmVzdWx0KQogewogICAgIGlmICh2YWx1ZS0+
aXNQcmltaXRpdmVWYWx1ZSgpCkBAIC0yNzgsNiArMjkzLDM5IEBAIHN0YXRpYyBib29sIGRldmlj
ZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUgKnZhbHVlLCBSZW5kZXJTdHls
ZSosIEZyCiAgICAgcmV0dXJuIGZyYW1lLT5wYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCkgIT0g
MDsKIH0KIAorc3RhdGljIGJvb2wgcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUq
IHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4IG9w
KQoreworICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIENTU1ByaW1pdGl2ZVZhbHVlKiByYXdWYWx1ZSA9IHN0
YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOworICAgIGlmIChyYXdWYWx1ZS0+
aXNEZW5zaXR5UGVyUGl4ZWwoKSkgeworICAgICAgICBmbG9hdCBhY3R1YWxEZW5zaXR5ID0gZnJh
bWUtPnBhZ2UoKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICAgICAgZmxvYXQgdGVzdGVkRGVu
c2l0eSA9IHJhd1ZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQ
WCk7CisgICAgICAgIHJldHVybiBjb21wYXJlVmFsdWUoYWN0dWFsRGVuc2l0eSwgdGVzdGVkRGVu
c2l0eSwgb3ApOworICAgIH0KKworICAgIHVuc2lnbmVkIGhvcmlEUEkgPSBzY3JlZW5Ib3Jpem9u
dGFsRFBJKGZyYW1lLT52aWV3KCkpOworICAgIHVuc2lnbmVkIHZlcnREUEkgPSBzY3JlZW5WZXJ0
aWNhbERQSShmcmFtZS0+dmlldygpKTsKKyAgICB1bnNpZ25lZCBtaW5EUEkgPSBzdGQ6Om1pbiho
b3JpRFBJLCB2ZXJ0RFBJKTsKKyAgICB1bnNpZ25lZCBtYXhEUEkgPSBzdGQ6Om1heChob3JpRFBJ
LCB2ZXJ0RFBJKTsKKworICAgIGlmIChyYXdWYWx1ZS0+aXNEZW5zaXR5UGVySW5jaCgpKSB7Cisg
ICAgICAgIHVuc2lnbmVkIHRlc3RlZERlbnNpdHkgPSByYXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQSSk7CisgICAgICAgIHJldHVybiBjb21wYXJlUmVzb2x1
dGlvbihtaW5EUEksIG1heERQSSwgdGVzdGVkRGVuc2l0eSwgb3ApOworICAgIH0KKworICAgIHVu
c2lnbmVkIG1pbkRQQ00gPSBmbG9vcihtaW5EUEkgLyAyLjU0KTsgLy8gKDIuNTQgY20vaW4pCisg
ICAgdW5zaWduZWQgbWF4RFBDTSA9IGZsb29yKG1heERQSSAvIDIuNTQpOworCisgICAgaWYgKHJh
d1ZhbHVlLT5pc0RlbnNpdHlQZXJDZW50aW1ldGVyKCkpIHsKKyAgICAgICAgdW5zaWduZWQgdGVz
dGVkRGVuc2l0eSA9IHJhd1ZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfRFBDTSk7CisgICAgICAgIHJldHVybiBjb21wYXJlUmVzb2x1dGlvbihtaW5EUENNLCBtYXhE
UENNLCB0ZXN0ZWREZW5zaXR5LCBvcCk7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQor
CiBzdGF0aWMgYm9vbCBncmlkTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRl
clN0eWxlKiwgRnJhbWUqLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7CiAgICAgLy8gaWYgb3V0
cHV0IGRldmljZSBpcyBiaXRtYXAsIGdyaWQ6IDAgPT0gdHJ1ZQpAQCAtNDU2LDYgKzUwNCwxNiBA
QCBzdGF0aWMgYm9vbCBtYXhfZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSog
dmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZQogICAgIHJldHVybiBkZXZpY2Vfd2lkdGhNZWRpYUZl
YXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1heFByZWZpeCk7CiB9CiAKK3N0YXRpYyBi
b29sIG1pbl9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRl
clN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCit7CisgICAg
cmV0dXJuIHJlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1p
blByZWZpeCk7Cit9CisKK3N0YXRpYyBib29sIG1heF9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZh
bChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRp
YUZlYXR1cmVQcmVmaXgpCit7CisgICAgcmV0dXJuIHJlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFs
KHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1heFByZWZpeCk7Cit9CisKIHN0YXRpYyBib29sIGFuaW1h
dGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1l
KiwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQogewogICAgIGlmICh2YWx1ZSkgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlFeHAuY3BwCmluZGV4IDFhMDZiNzk2NWZjY2I5OGEwOTM1Njk1Njk3NThi
MjFmYzZlMjk5ODEuLmMzNzQxNjczNzQwZTEwMjRhMzljYWE3Mzg4NjllMDQ2YjVjOTFjYTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAKQEAgLTY3LDYgKzY3LDE2IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVMZW5naHRPck51bWJlcihjb25z
dCBBdG9taWNTdHJpbmcmIG1lCiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1
cmVOYW1lczo6bWluX2RldmljZV93aWR0aE1lZGlhRmVhdHVyZTsKIH0KIAorc3RhdGljIGlubGlu
ZSBib29sIGZlYXR1cmVXaXRoVmFsaWRQb3NpdGl2ZURlbnNpdHkoY29uc3QgQXRvbWljU3RyaW5n
JiBtZWRpYUZlYXR1cmUsIGNvbnN0IENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAo
KHZhbHVlLT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQWCAmJiB2YWx1ZS0+dW5p
dCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQSSAmJiB2YWx1ZS0+dW5pdCAhPSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX0RQQ00pIHx8IHZhbHVlLT5mVmFsdWUgPCAwKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICByZXR1cm4gbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
OjpyZXNvbHV0aW9uTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRp
YUZlYXR1cmVOYW1lczo6bWF4X3Jlc29sdXRpb25NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVk
aWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptaW5fcmVzb2x1dGlvbk1lZGlhRmVhdHVy
ZTsKK30KKwogc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRoUG9zaXRpdmVJbnRlZ2VyKGNv
bnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBjb25zdCBDU1NQYXJzZXJWYWx1ZSogdmFs
dWUpCiB7CiAgICAgaWYgKCF2YWx1ZS0+aXNJbnQgfHwgdmFsdWUtPmZWYWx1ZSA8IDApCkBAIC0x
NDgsNiArMTU4LDEyIEBAIGlubGluZSBNZWRpYVF1ZXJ5RXhwOjpNZWRpYVF1ZXJ5RXhwKGNvbnN0
IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBDU1NQYXJzZXJWCiAgICAgICAgICAgICBpZiAo
ZmVhdHVyZVdpdGhDU1NWYWx1ZUlEKG1lZGlhRmVhdHVyZSwgdmFsdWUpKQogICAgICAgICAgICAg
ICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcih2YWx1ZS0+
aWQpOwogCisgICAgICAgICAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IG11c3QgaGF2ZSBub24t
bmVnYXRpdmUgPGRlbnNpdHk+LCBpZS4gZHBweCwgZHBpIG9yIGRwY20uCisgICAgICAgICAgICBl
bHNlIGlmIChmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVEZW5zaXR5KG1lZGlhRmVhdHVyZSwgdmFs
dWUpKSB7CisgICAgICAgICAgICAgICAgcHJpbnRmICgiaXRzIHZhbGlkIVxuIik7CisgICAgICAg
ICAgICAgICAgbV92YWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUtPmZWYWx1
ZSwgKENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpIHZhbHVlLT51bml0KTsKKyAgICAgICAg
ICAgIH0KKwogICAgICAgICAgICAgLy8gTWVkaWEgZmVhdHVyZXMgdGhhdCBtdXN0IGhhdmUgbm9u
LW5lZ2F0aXZlIDxsZW5naHQ+IG9yIG51bWJlciB2YWx1ZS4KICAgICAgICAgICAgIGVsc2UgaWYg
KGZlYXR1cmVXaXRoVmFsaWRQb3NpdGl2ZUxlbmdodE9yTnVtYmVyKG1lZGlhRmVhdHVyZSwgdmFs
dWUpKQogICAgICAgICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRl
KHZhbHVlLT5mVmFsdWUsIChDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzKSB2YWx1ZS0+dW5p
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggYTQzMGZjNWEzNmExM2Fj
Y2FhMjczNDc0OTViOTBjMGUxNzI2NDNlNy4uYjQ5MjdkOWU0MjAwODY5ZTBkZjA5NmE2Y2MxNTY1
NjEzN2I5OTJkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMTA4OSw2
ICsxMDg5LDE1IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXROZXR3b3JrSW5mb3JtYXRpb24oRG9jdW1l
bnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGV2ZW50VHlwCiAjZW5kaWYKIH0KIAordm9pZCBJ
bnRlcm5hbHM6OnNldFJlc29sdXRpb24oRG9jdW1lbnQqIGRvY3VtZW50LCBmbG9hdCBkZW5zaXR5
UGVyUGl4ZWwsIHVuc2lnbmVkIGRlbnNpdHlQZXJJbmNoSG9yaXpvbnRhbGx5LCB1bnNpZ25lZCBk
ZW5zaXR5UGVySW5jaFZlcnRpY2FsbHkpCit7CisgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1l
bnQtPnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZG9jdW1lbnQtPnBhZ2UoKS0+c2V0
RGV2aWNlU2NhbGVGYWN0b3IoZGVuc2l0eVBlclBpeGVsKTsKKyAgICAvLyBGSVhNRTogQWRkIHdh
eXMgdG8gc2V0IERQSS4KK30KKwogYm9vbCBJbnRlcm5hbHM6Omhhc1NwZWxsaW5nTWFya2VyKERv
Y3VtZW50KiBkb2N1bWVudCwgaW50IGZyb20sIGludCBsZW5ndGgsIEV4Y2VwdGlvbkNvZGUmKQog
ewogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5mcmFtZSgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKaW5kZXggZTRhYjk2ZDY2ODQzNzc0NGQzYTg0ZmNiMDBlMGIxYzYzOWNh
NDFmNi4uZDMxYmE0ZjliNDgyYjEzYzliNTc4NTdlZjc5MjE5YjA2YzdhNTM4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xODUsNiArMTg1LDggQEAgcHVibGljOgogCiAgICAg
dm9pZCBzZXROZXR3b3JrSW5mb3JtYXRpb24oRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIGV2ZW50
VHlwZSwgZG91YmxlIGJhbmR3aWR0aCwgYm9vbCBtZXRlcmVkLCBFeGNlcHRpb25Db2RlJik7CiAK
KyAgICB2b2lkIHNldFJlc29sdXRpb24oRG9jdW1lbnQqLCBmbG9hdCBkZW5zaXR5UGVyUGl4ZWws
IHVuc2lnbmVkIGRlbnNpdHlQZXJJbmNoSG9yaXpvbnRhbGx5LCB1bnNpZ25lZCBkZW5zaXR5UGVy
SW5jaFZlcnRpY2FsbHkpOworCiAgICAgdm9pZCBzdXNwZW5kQW5pbWF0aW9ucyhEb2N1bWVudCos
IEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICB2b2lkIHJlc3VtZUFuaW1hdGlvbnMoRG9jdW1l
bnQqLCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAppbmRleCBjMzlkODBjMGQxNWJiZjg5ZDBlNDhiNmQ5MjkyZGM2NDVjYjU2ZjE1Li4xNDkz
MTU5NGU1MjRkMTY0Y2U4ZjVlNGIxYmY5Yjc2YjY2NDEzMWUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCkBAIC0xNzQsNiArMTc0LDggQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAg
ICAgIHZvaWQgc2V0TmV0d29ya0luZm9ybWF0aW9uKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBE
T01TdHJpbmcgZXZlbnRUeXBlLCBpbiBkb3VibGUgYmFuZHdpZHRoLCBpbiBib29sZWFuIG1ldGVy
ZWQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICNlbmRpZgogCisgICAgICAgIHZvaWQgc2V0UmVz
b2x1dGlvbihpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gZG91YmxlIGRlbnNpdHlQZXJQaXhlbCwg
aW4gdW5zaWduZWQgbG9uZyBkZW5zaXR5UGVySW5jaEhvcml6b250YWxseSwgaW4gdW5zaWduZWQg
bG9uZyBkZW5zaXR5UGVySW5jaFZlcnRpY2FsbHkpOworCiAgICAgICAgIFtDb25kaXRpb25hbD1J
TlNQRUNUT1JdIHVuc2lnbmVkIGxvbmcgbnVtYmVyT2ZMaXZlTm9kZXMoKTsKICAgICAgICAgW0Nv
bmRpdGlvbmFsPUlOU1BFQ1RPUl0gdW5zaWduZWQgbG9uZyBudW1iZXJPZkxpdmVEb2N1bWVudHMo
KTsKICAgICAgICAgW0NvbmRpdGlvbmFsPUlOU1BFQ1RPUl0gc2VxdWVuY2U8U3RyaW5nPiBjb25z
b2xlTWVzc2FnZUFyZ3VtZW50Q291bnRzKGluIERvY3VtZW50IGRvY3VtZW50KTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBl
YzBiNGViOTI3MzYzZGY0NjY5OGU3OGUzNmFiODE1YTU2YWZiZDBlLi40MGZkNWE4NTkzNGM0OTBk
OWNiZWI1NTljN2MzNjI1M2VmMDk0OGVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMTAt
MTEgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisg
ICAgICAgIFdvcmsgaW4gcHJvZ3Jlc3MKKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1
dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRpdGlvbmFsIGluZm9ybWF0aW9uIG9mIHRoZSBjaGFuZ2Ugc3VjaCBhcyBhcHBy
b2FjaCwgcmF0aW9uYWxlLiBQbGVhc2UgYWRkIHBlci1mdW5jdGlvbiBkZXNjcmlwdGlvbnMgYmVs
b3cgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sOiBB
ZGRlZC4KKwogMjAxMi0xMC0xMSAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtFbGVtZW50c10gQnJlYWRjcnVtYnMgYXJl
IG5vdCB1cGRhdGVkIHVwb24gaW52b2x2ZWQgZWxlbWVudHMnIGNsYXNzTmFtZSBjaGFuZ2VzCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40Yzk3YmQ5MjMxOWEzZTcwNTRjZmI1NDMyMDhlNGMyYzM3NjgyY2U2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitDU1MzIG1lZGlhIHF1ZXJ5IHRlc3Q6IHJlc29sdXRp
b24gcXVlcnkgd2l0aCBkcHB4LiBVc2luZyBzdHlsZSBlbGVtZW50LCBAbWVkaWEgY3NzIHJ1bGUu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG1hdGNoTWVkaWEoJygtd2Vi
a2l0LXJlc29sdXRpb246IDEuNWRwcHgpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIHdpbmRvdy5k
ZXZpY2VQaXhlbFJhdGlvIGlzIDEuNQorUEFTUyBkZXZpY2VQaXhlbFJhdGlvRnJvbVN0eWxlKCkg
aXMgMS41CitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDJkcHB4KScpLm1h
dGNoZXMgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyBpcyAyCitQQVNTIGRl
dmljZVBpeGVsUmF0aW9Gcm9tU3R5bGUoKSBpcyAyCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0
LXJlc29sdXRpb246IDFkcHB4KScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuZGV2aWNl
UGl4ZWxSYXRpbyBpcyAxCitQQVNTIGRldmljZVBpeGVsUmF0aW9Gcm9tU3R5bGUoKSBpcyAxCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MjQ5NTIwNDQz
ZjhlYTM3MTZkZGY1MzVhNWJlNmQ4NDIxYmFjMmMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImRldGVjdG9yIj48L2Rpdj4K
KworPHN0eWxlPgorICAgICNkZXRlY3RvciB7IHdpZHRoOiAxMHB4OyB9CisgICAgQG1lZGlhICgt
d2Via2l0LXJlc29sdXRpb246ICAgMWRwcHgpIHsgI2RldGVjdG9yIHsgd2lkdGg6IDEwcHg7IH0g
fQorICAgIEBtZWRpYSAoLXdlYmtpdC1yZXNvbHV0aW9uOiAxLjVkcHB4KSB7ICNkZXRlY3RvciB7
IHdpZHRoOiAxNXB4OyB9IH0KKyAgICBAbWVkaWEgKC13ZWJraXQtcmVzb2x1dGlvbjogICAyZHBw
eCkgeyAjZGV0ZWN0b3IgeyB3aWR0aDogMjBweDsgfSB9Cis8L3N0eWxlPgorCis8c2NyaXB0Pgor
ICAgIGRlc2NyaXB0aW9uKCJDU1MzIG1lZGlhIHF1ZXJ5IHRlc3Q6IHJlc29sdXRpb24gcXVlcnkg
d2l0aCBkcHB4LiBVc2luZyBzdHlsZSBlbGVtZW50LCBAbWVkaWEgY3NzIHJ1bGUuIikKKworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHdp
bmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgICAgICBmdW5jdGlvbiBkZXZpY2VQ
aXhlbFJhdGlvRnJvbVN0eWxlKCkgeworICAgICAgICAgICAgdmFyIHdpZHRoID0gZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGV0ZWN0b3IiKSkud2lkdGg7CisgICAg
ICAgICAgICBzd2l0Y2ggKHdpZHRoKSB7CisgICAgICAgICAgICAgICAgY2FzZSAiMTBweCI6Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIGNhc2UgIjE1cHgi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gMS41OworICAgICAgICAgICAgICAgIGNhc2Ug
IjIwcHgiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgICAgICBk
ZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgICAg
ICAgfQorICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXRSZXNvbHV0aW9u
KGRvY3VtZW50LCAxLjUsIDk2LCA5Nik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCco
LXdlYmtpdC1yZXNvbHV0aW9uOiAxLjVkcHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAg
ICBzaG91bGRCZSgid2luZG93LmRldmljZVBpeGVsUmF0aW8iLCAiMS41Iik7CisgICAgICAgIHNo
b3VsZEJlKCJkZXZpY2VQaXhlbFJhdGlvRnJvbVN0eWxlKCkiLCAiMS41Iik7CisKKyAgICAgICAg
d2luZG93LmludGVybmFscy5zZXRSZXNvbHV0aW9uKGRvY3VtZW50LCAyLCA5NiwgOTYpOworICAg
ICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMmRwcHgpJyku
bWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuZGV2aWNlUGl4ZWxS
YXRpbyIsICIyIik7CisgICAgICAgIHNob3VsZEJlKCJkZXZpY2VQaXhlbFJhdGlvRnJvbVN0eWxl
KCkiLCAiMiIpOworCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UmVzb2x1dGlvbihkb2N1
bWVudCwgMSwgOTYsIDk2KTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0
LXJlc29sdXRpb246IDFkcHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRC
ZSgid2luZG93LmRldmljZVBpeGVsUmF0aW8iLCAiMSIpOworICAgICAgICBzaG91bGRCZSgiZGV2
aWNlUGl4ZWxSYXRpb0Zyb21TdHlsZSgpIiwgIjEiKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168715</attachid>
            <date>2012-10-15 08:30:42 -0700</date>
            <delta_ts>2012-10-15 08:43:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99077-20121015172932.patch</filename>
            <type>text/plain</type>
            <size>26559</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjEyN2MzNWI4NTgxYTlh
MWFkZmFhOGRmOTU1YTE4ZDc1YWRkY2QzYS4uYjdkM2VlYTgxNDJmZDkzNzQ0YjA2YTQ3Nzc0MmUy
MTIxNmM4N2FiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEyLTEwLTE1ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBt
ZWRpYSBxdWVyeSBmZWF0dXJlIHdpdGggLXdlYmtpdAorICAgICAgICBwcmVmaXggZHVlIHRvIHRo
ZSBzdXBwb3J0IG9mIHRoZSBwcm9wb3NlZCBkcHB4IHZhbHVlcy4KKworICAgICAgICBBZGQgaW5m
cmFzdHJ1Y3R1cmUgdG8gbWFrZSBpdCB0ZXN0YWJsZS4KKworICAgICAgICBUZXN0OiBmYXN0L21l
ZGlhL21xLXJlc29sdXRpb24uaHRtbAorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNEZW5zaXR5UGVySW5j
aCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNEZW5zaXR5UGVyUGl4
ZWwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmlzRGVuc2l0eVBlckNl
bnRpbWV0ZXIpOgorICAgICAgICAoQ1NTUHJpbWl0aXZlVmFsdWUpOgorCisgICAgICAgICAgICBB
ZGQgZnVuY3Rpb24gZm9yIGNoZWNraW5nIHRoZSByZWNlbnRseSBhZGRlZCBkZW5zaXR5IHR5cGVz
LgorCisgICAgICAgICogY3NzL01lZGlhRmVhdHVyZU5hbWVzLmg6CisgICAgICAgIChNZWRpYUZl
YXR1cmVOYW1lcyk6CisKKyAgICAgICAgICAgIEFkZCBzdXBwb3J0IGZvciAtd2Via2l0LXJlc29s
dXRpb24sIC13ZWJraXQtbWluLXJlc29sdXRpb24KKyAgICAgICAgICAgIGFuZCAtd2Via2l0LW1h
eC1yZXNvbHV0aW9uLgorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y29tcGFyZVJlc29sdXRpb24pOiBBZGQgbWV0aG9kcyBmb3IgY29t
cGFyaW5nIHJlc29sdXRpb25zLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpyZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjptaW5fcmVz
b2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6bWF4X3Jlc29sdXRp
b25NZWRpYUZlYXR1cmVFdmFsKToKKworICAgICAgICAgICAgSW1wbGVtZW50IHRoZSByZXNvbHV0
aW9uIG1ldGhvZCBldmFsdWF0aW9uLgorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlFeHAuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6ZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZlRGVuc2l0eSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRob3V0VmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUV4cDo6TWVkaWFRdWVyeUV4cCk6CisKKyAg
ICAgICAgICAgIEhvb2sgdXAgcmVzb2x1dGlvbiB3aXRoIHRoZSByaWdodCBwcmUtY2hlY2tzLgor
CisgICAgICAgKiBwYWdlL1NjcmVlbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW46Omhv
cml6b250YWxEUEkpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuOjp2ZXJ0aWNhbERQSSk6CisK
KyAgICAgICAgICAgIENoZWNrIHdoZXRoZXIgYW4gb3ZlcnJpZGUgZXhpc3RzLCBhbmQgaWYgc28s
IHVzZXMgaXQuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNldHRpbmdzOjpzZXRSZXNvbHV0aW9uT3ZlcnJpZGUpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoU2V0dGluZ3MpOgorICAgICAg
ICAoV2ViQ29yZTo6U2V0dGluZ3M6OnJlc29sdXRpb25PdmVycmlkZSk6CisKKyAgICAgICAgICAg
IEFkZCBhIHJlc29sdXRpb24gb3ZlcnJpZGUgdG8gc2V0dGluZ3MuCisKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0
aW5nczo6QmFja3VwOjpCYWNrdXApOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5n
czo6QmFja3VwOjpyZXN0b3JlVG8pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5n
czo6c2V0UmVzb2x1dGlvbk92ZXJyaWRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAgICAoQmFja3VwKToKKyAgICAgICAg
KEludGVybmFsU2V0dGluZ3MpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5p
ZGw6CisKKyAgICAgICAgICAgIEFkZCBhIG5ldyBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUgbWV0aG9k
IHRvIGludGVybmFscy5zZXR0aW5ncy4KKwogMjAxMi0xMC0xMiAgSWx5YSBUaWtob25vdnNreSAg
PGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTk1JIHJlbW92
ZSBoYW5kIG1hZGUgb2JqZWN0IGJ1aWxkZXJzIHdpdGggYXV0b21hdGljIGJ1aWxkZXIuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCmluZGV4IGFhMmRiZWFjMzJkZGIzODc3YjFk
YjVlZmJkMGFhZWU3NzEyZDY4NjYuLjQxYzljM2FmMzg0NWQ4ODRlMmE1ZTJkZDU3NzljZWY1MzJm
YmE5MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCkBAIC0xODEsNiAr
MTgxLDEwIEBAIHB1YmxpYzoKICAgICBib29sIGlzQ2FsY3VsYXRlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX0NBTEM7IH0KICAgICBib29sIGlzQ2FsY3VsYXRl
ZFBlcmNlbnRhZ2VXaXRoTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgpID09
IENTU19DQUxDX1BFUkNFTlRBR0VfV0lUSF9OVU1CRVI7IH0KICAgICBib29sIGlzQ2FsY3VsYXRl
ZFBlcmNlbnRhZ2VXaXRoTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgpID09
IENTU19DQUxDX1BFUkNFTlRBR0VfV0lUSF9MRU5HVEg7IH0KKyAgICBib29sIGlzRGVuc2l0eVBl
ckluY2goKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0RQSTsgfQorICAg
IGJvb2wgaXNEZW5zaXR5UGVyUGl4ZWwoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkg
PT0gQ1NTX0RQUFg7IH0KKyAgICBib29sIGlzRGVuc2l0eVBlckNlbnRpbWV0ZXIoKSBjb25zdCB7
IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0RQQ007IH0KKwogI2lmIEVOQUJMRShDU1Nf
VkFSSUFCTEVTKQogICAgIGJvb2wgaXNWYXJpYWJsZU5hbWUoKSBjb25zdCB7IHJldHVybiBwcmlt
aXRpdmVUeXBlKCkgPT0gQ1NTX1ZBUklBQkxFX05BTUU7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFGZWF0dXJlTmFtZXMuaAppbmRleCBiMDg0MzllNGEwMTgzNDkyMmZkYTAwZThhZDk3
ZWZmMjBmYmVjMGZjLi40Y2VjMjU0NWY1ODUzYzRlYTlkZmFlZjVmMTY1NzgwNWVkNjlkM2E4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaApAQCAtNDcsNiArNDcsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8obWF4X2hlaWdodCwgIm1heC1oZWlnaHQiKSBc
CiAgICAgbWFjcm8obWF4X21vbm9jaHJvbWUsICJtYXgtbW9ub2Nocm9tZSIpIFwKICAgICBtYWNy
byhtYXhfd2lkdGgsICJtYXgtd2lkdGgiKSBcCisgICAgbWFjcm8obWF4X3Jlc29sdXRpb24sICIt
d2Via2l0LW1heC1yZXNvbHV0aW9uIikgXAogICAgIG1hY3JvKG1pbl9jb2xvciwgIm1pbi1jb2xv
ciIpIFwKICAgICBtYWNybyhtaW5fYXNwZWN0X3JhdGlvLCAibWluLWFzcGVjdC1yYXRpbyIpIFwK
ICAgICBtYWNybyhtaW5fZGV2aWNlX2FzcGVjdF9yYXRpbywgIm1pbi1kZXZpY2UtYXNwZWN0LXJh
dGlvIikgXApAQCAtNTYsNyArNTcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8o
bWluX2hlaWdodCwgIm1pbi1oZWlnaHQiKSBcCiAgICAgbWFjcm8obWluX21vbm9jaHJvbWUsICJt
aW4tbW9ub2Nocm9tZSIpIFwKICAgICBtYWNybyhtaW5fd2lkdGgsICJtaW4td2lkdGgiKSBcCisg
ICAgbWFjcm8obWluX3Jlc29sdXRpb24sICItd2Via2l0LW1pbi1yZXNvbHV0aW9uIikgXAogICAg
IG1hY3JvKHBvaW50ZXIsICJwb2ludGVyIikgXAorICAgIG1hY3JvKHJlc29sdXRpb24sICItd2Vi
a2l0LXJlc29sdXRpb24iKSBcCiAgICAgbWFjcm8odHJhbnNmb3JtXzJkLCAiLXdlYmtpdC10cmFu
c2Zvcm0tMmQiKSBcCiAgICAgbWFjcm8odHJhbnNmb3JtXzNkLCAiLXdlYmtpdC10cmFuc2Zvcm0t
M2QiKSBcCiAgICAgbWFjcm8odHJhbnNpdGlvbiwgIi13ZWJraXQtdHJhbnNpdGlvbiIpIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCBkYWE0OTBiOGJk
Yzg0Njg3Yzc0OWE5YjUxMGU0NGMzOWM2OTEwOGU1Li40OTY0ODFmMDVkMmFkMTZmMTM2NWFmYTdm
MTc5ZTQ4NTYyZjc1ODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV2YWx1YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0
b3IuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1
ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJTY3Jl
ZW4uaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KIApAQCAtMTk3LDYgKzE5OCwyMSBAQCBzdGF0aWMgYm9vbCBjb21wYXJlQXNwZWN0UmF0aW9W
YWx1ZShDU1NWYWx1ZSogdmFsdWUsIGludCB3aWR0aCwgaW50IGhlaWdodCwgTWVkaQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAorc3RhdGljIGJvb2wgY29tcGFyZVJlc29sdXRpb24odW5zaWduZWQg
bWluLCB1bnNpZ25lZCBtYXgsIHVuc2lnbmVkIHZhbHVlLCBNZWRpYUZlYXR1cmVQcmVmaXggb3Ap
Cit7CisgICAgc3dpdGNoIChvcCkgeworICAgIGNhc2UgTm9QcmVmaXg6CisgICAgICAgIC8vIEEg
J3Jlc29sdXRpb24nICh3aXRob3V0IGEgIm1pbi0iIG9yICJtYXgtIiBwcmVmaXgpIHF1ZXJ5Cisg
ICAgICAgIC8vIG5ldmVyIG1hdGNoZXMgYSBkZXZpY2Ugd2l0aCBub24tc3F1YXJlIHBpeGVscy4K
KyAgICAgICAgcmV0dXJuIG1pbiA9PSBtYXg7CisgICAgY2FzZSBNaW5QcmVmaXg6CisgICAgICAg
IHJldHVybiBtaW4gPj0gdmFsdWU7CisgICAgY2FzZSBNYXhQcmVmaXg6CisgICAgICAgIHJldHVy
biBtYXggPD0gdmFsdWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogc3RhdGljIGJv
b2wgbnVtYmVyVmFsdWUoQ1NTVmFsdWUqIHZhbHVlLCBmbG9hdCYgcmVzdWx0KQogewogICAgIGlm
ICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpCkBAIC0yNzgsNiArMjk0LDU0IEBAIHN0YXRpYyBi
b29sIGRldmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUgKnZhbHVlLCBS
ZW5kZXJTdHlsZSosIEZyCiAgICAgcmV0dXJuIGZyYW1lLT5wYWdlKCktPmRldmljZVNjYWxlRmFj
dG9yKCkgIT0gMDsKIH0KIAorc3RhdGljIGJvb2wgcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwo
Q1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJl
UHJlZml4IG9wKQoreworICAgIHVuc2lnbmVkIGhvcmlEUEkgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+
ZG9tV2luZG93KCktPnNjcmVlbigpLT5ob3Jpem9udGFsRFBJKCk7CisgICAgdW5zaWduZWQgdmVy
dERQSSA9IGZyYW1lLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+c2NyZWVuKCktPnZlcnRpY2Fs
RFBJKCk7CisKKyAgICB1bnNpZ25lZCBtaW5EUEkgPSBzdGQ6Om1pbihob3JpRFBJLCB2ZXJ0RFBJ
KTsKKyAgICB1bnNpZ25lZCBtYXhEUEkgPSBzdGQ6Om1heChob3JpRFBJLCB2ZXJ0RFBJKTsKKwor
ICAgIC8vIEFjY29yZGluZyB0byBzcGVjLCAocmVzb2x1dGlvbikgd2lsbCBldmFsdWF0ZSB0byB0
cnVlIGlmIChyZXNvbHV0aW9uOngpCisgICAgLy8gd2lsbCBldmFsdWF0ZSB0byB0cnVlIGZvciBh
IHZhbHVlIHggb3RoZXIgdGhhbiB6ZXJvIG9yIHplcm8gZm9sbG93ZWQgYnkKKyAgICAvLyBhIHZh
bGlkIHVuaXQgaWRlbnRpZmllciAoaS5lLiwgb3RoZXIgdGhhbiAwLCAwZHBpLCAwZHBjbSwgb3Ig
MGRwcHguKS4KKyAgICAvLworICAgIC8vIFRoaXMgaXMgYWN0dWFsbHkgYWx3YXlzIHRoZSBjYXNl
IHdpdGggdGhlIGRwcHgsIHdoaWNoIHdlIGlnbm9yZSBhcyBpdCBpcworICAgIC8vIGEgc3BlY2lh
bC1jYXNlIGluIHRoZSBzZW5zZSBpdCBjYW4gYmUgb3V0IG9mIHN5bmMgd2l0aCBkcGkgYW5kIGRw
Y20uIEZvcgorICAgIC8vIGluc3RhbmNlLCBib3RoIGEgZGV2aWNlIHdpdGggOTZkcGkgYW5kIDE2
MGRwaSBjYW4gaGF2ZSBhIGRwcHggb2YgMS4KKyAgICAvLworICAgIC8vIFRoaXMgbGVhdmVzIHRo
ZSBjYXNlIG9mIHNxdWFyZWQgcGl4ZWxzLgorICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgQVNT
RVJUKG9wID09IE5vUHJlZml4KTsKKyAgICAgICAgcmV0dXJuIG1pbkRQSSA9PSBtYXhEUEk7Cisg
ICAgfQorCisgICAgaWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcmF3VmFsdWUgPSBzdGF0aWNfY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKKyAgICBpZiAocmF3VmFsdWUtPmlzRGVuc2l0
eVBlclBpeGVsKCkpIHsKKyAgICAgICAgZmxvYXQgYWN0dWFsRGVuc2l0eSA9IGZyYW1lLT5wYWdl
KCktPmRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgICAgIGZsb2F0IHRlc3RlZERlbnNpdHkgPSBy
YXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQUFgpOworICAg
ICAgICByZXR1cm4gY29tcGFyZVZhbHVlKGFjdHVhbERlbnNpdHksIHRlc3RlZERlbnNpdHksIG9w
KTsKKyAgICB9CisKKyAgICBpZiAocmF3VmFsdWUtPmlzRGVuc2l0eVBlckluY2goKSkgeworICAg
ICAgICB1bnNpZ25lZCB0ZXN0ZWREZW5zaXR5ID0gcmF3VmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19EUEkpOworICAgICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRp
b24obWluRFBJLCBtYXhEUEksIHRlc3RlZERlbnNpdHksIG9wKTsKKyAgICB9CisKKyAgICB1bnNp
Z25lZCBtaW5EUENNID0gZmxvb3IobWluRFBJIC8gMi41NCk7IC8vICgyLjU0IGNtL2luKQorICAg
IHVuc2lnbmVkIG1heERQQ00gPSBmbG9vcihtYXhEUEkgLyAyLjU0KTsKKworICAgIGlmIChyYXdW
YWx1ZS0+aXNEZW5zaXR5UGVyQ2VudGltZXRlcigpKSB7CisgICAgICAgIHVuc2lnbmVkIHRlc3Rl
ZERlbnNpdHkgPSByYXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X0RQQ00pOworICAgICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24obWluRFBDTSwgbWF4RFBD
TSwgdGVzdGVkRGVuc2l0eSwgb3ApOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwog
c3RhdGljIGJvb2wgZ3JpZE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJT
dHlsZSosIEZyYW1lKiwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQogewogICAgIC8vIGlmIG91dHB1
dCBkZXZpY2UgaXMgYml0bWFwLCBncmlkOiAwID09IHRydWUKQEAgLTQ1Niw2ICs1MjAsMTYgQEAg
c3RhdGljIGJvb2wgbWF4X2RldmljZV93aWR0aE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZh
bHVlLCBSZW5kZXJTdHlsZSogc3R5bGUKICAgICByZXR1cm4gZGV2aWNlX3dpZHRoTWVkaWFGZWF0
dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNYXhQcmVmaXgpOwogfQogCitzdGF0aWMgYm9v
bCBtaW5fcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJT
dHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQoreworICAgIHJl
dHVybiByZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNaW5Q
cmVmaXgpOworfQorCitzdGF0aWMgYm9vbCBtYXhfcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwo
Q1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFG
ZWF0dXJlUHJlZml4KQoreworICAgIHJldHVybiByZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCh2
YWx1ZSwgc3R5bGUsIGZyYW1lLCBNYXhQcmVmaXgpOworfQorCiBzdGF0aWMgYm9vbCBhbmltYXRp
b25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSos
IE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsKICAgICBpZiAodmFsdWUpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5RXhwLmNwcAppbmRleCAxYTA2Yjc5NjVmY2NiOThhMDkzNTY5NTY5NzU4YjIx
ZmM2ZTI5OTgxLi5lMGUyYjMxZWIxNGM0ODk4MmZkNGVkNGQwMzI2OTUxMmZkOTI3Y2Q3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwCkBAIC02Nyw2ICs2NywxNiBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZlTGVuZ2h0T3JOdW1iZXIoY29uc3Qg
QXRvbWljU3RyaW5nJiBtZQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJl
TmFtZXM6Om1pbl9kZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmU7CiB9CiAKK3N0YXRpYyBpbmxpbmUg
Ym9vbCBmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVEZW5zaXR5KGNvbnN0IEF0b21pY1N0cmluZyYg
bWVkaWFGZWF0dXJlLCBjb25zdCBDU1NQYXJzZXJWYWx1ZSogdmFsdWUpCit7CisgICAgaWYgKCh2
YWx1ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQUFggJiYgdmFsdWUtPnVuaXQg
IT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUEkgJiYgdmFsdWUtPnVuaXQgIT0gQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19EUENNKSB8fCB2YWx1ZS0+ZlZhbHVlIDwgMCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6
cmVzb2x1dGlvbk1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFG
ZWF0dXJlTmFtZXM6Om1heF9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX3Jlc29sdXRpb25NZWRpYUZlYXR1cmU7
Cit9CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFBvc2l0aXZlSW50ZWdlcihjb25z
dCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgY29uc3QgQ1NTUGFyc2VyVmFsdWUqIHZhbHVl
KQogewogICAgIGlmICghdmFsdWUtPmlzSW50IHx8IHZhbHVlLT5mVmFsdWUgPCAwKQpAQCAtMTE0
LDYgKzEyNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aEFzcGVjdFJhdGlvKGNv
bnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlKQogCiBzdGF0aWMgaW5saW5lIGJvb2wgZmVh
dHVyZVdpdGhvdXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSkKIHsKKyAg
ICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IGFyZSBwcmVmaXhlZCBieSBtaW4vbWF4IGNhbm5vdCBi
ZSB1c2VkIHdpdGhvdXQgYSB2YWx1ZS4KICAgICByZXR1cm4gbWVkaWFGZWF0dXJlID09IE1lZGlh
RmVhdHVyZU5hbWVzOjptb25vY2hyb21lTWVkaWFGZWF0dXJlCiAgICAgICAgIHx8IG1lZGlhRmVh
dHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6Y29sb3JNZWRpYUZlYXR1cmUKICAgICAgICAgfHwg
bWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpncmlkTWVkaWFGZWF0dXJlCkBAIC0x
MzEsNyArMTQyLDggQEAgc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRob3V0VmFsdWUoY29u
c3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUpCiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9
PSBNZWRpYUZlYXR1cmVOYW1lczo6YW5pbWF0aW9uTWVkaWFGZWF0dXJlCiAgICAgICAgIHx8IG1l
ZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dmlld19tb2RlTWVkaWFGZWF0dXJlCiAg
ICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6cG9pbnRlck1lZGlh
RmVhdHVyZQotICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmRl
dmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZTsKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09
IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmUKKyAgICAg
ICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpyZXNvbHV0aW9uTWVkaWFG
ZWF0dXJlOwogfQogCiBpbmxpbmUgTWVkaWFRdWVyeUV4cDo6TWVkaWFRdWVyeUV4cChjb25zdCBB
dG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgQ1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3Qp
CkBAIC0xNDgsNiArMTYwLDEwIEBAIGlubGluZSBNZWRpYVF1ZXJ5RXhwOjpNZWRpYVF1ZXJ5RXhw
KGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBDU1NQYXJzZXJWCiAgICAgICAgICAg
ICBpZiAoZmVhdHVyZVdpdGhDU1NWYWx1ZUlEKG1lZGlhRmVhdHVyZSwgdmFsdWUpKQogICAgICAg
ICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcih2
YWx1ZS0+aWQpOwogCisgICAgICAgICAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IG11c3QgaGF2
ZSBub24tbmVnYXRpdmUgPGRlbnNpdHk+LCBpZS4gZHBweCwgZHBpIG9yIGRwY20uCisgICAgICAg
ICAgICBlbHNlIGlmIChmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVEZW5zaXR5KG1lZGlhRmVhdHVy
ZSwgdmFsdWUpKQorICAgICAgICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6
Y3JlYXRlKHZhbHVlLT5mVmFsdWUsIChDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzKSB2YWx1
ZS0+dW5pdCk7CisKICAgICAgICAgICAgIC8vIE1lZGlhIGZlYXR1cmVzIHRoYXQgbXVzdCBoYXZl
IG5vbi1uZWdhdGl2ZSA8bGVuZ2h0PiBvciBudW1iZXIgdmFsdWUuCiAgICAgICAgICAgICBlbHNl
IGlmIChmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVMZW5naHRPck51bWJlcihtZWRpYUZlYXR1cmUs
IHZhbHVlKSkKICAgICAgICAgICAgICAgICBtX3ZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNy
ZWF0ZSh2YWx1ZS0+ZlZhbHVlLCAoQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcykgdmFsdWUt
PnVuaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCmluZGV4IGUxZTFkMTE3Mzg2ZjYyMmVlM2MxOTNi
M2U1MDIyYzg4M2E4YzI1YjEuLjQwYTM4OGVkMjNhNGE1ODgzZTAxOGRhMTVjMWY1YTgzYTQ5MjRj
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
V2lkZ2V0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDYgKzQ5LDExIEBAIHVuc2ln
bmVkIFNjcmVlbjo6aG9yaXpvbnRhbERQSSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQog
ICAgICAgICByZXR1cm4gMDsKKworICAgIEludFNpemUgb3ZlcnJpZGUgPSBtX2ZyYW1lLT5wYWdl
KCktPnNldHRpbmdzKCktPnJlc29sdXRpb25PdmVycmlkZSgpOworICAgIGlmICghb3ZlcnJpZGUu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gb3ZlcnJpZGUud2lkdGgoKTsKKwogICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2NyZWVuSG9yaXpvbnRhbERQSShtX2ZyYW1lLT52aWV3
KCkpKTsKIH0KIApAQCAtNTUsNiArNjEsMTEgQEAgdW5zaWduZWQgU2NyZWVuOjp2ZXJ0aWNhbERQ
SSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4gMDsKKworICAg
IEludFNpemUgb3ZlcnJpZGUgPSBtX2ZyYW1lLT5wYWdlKCktPnNldHRpbmdzKCktPnJlc29sdXRp
b25PdmVycmlkZSgpOworICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gb3ZlcnJpZGUuaGVpZ2h0KCk7CisKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KHNjcmVlblZlcnRpY2FsRFBJKG1fZnJhbWUtPnZpZXcoKSkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuY3BwCmluZGV4IDk4NzZhZjVjNzZkMjI1NWNlYjJmODgwYjg0OTUxOWQyNmMzZDNlZDQu
Ljc0YjkyZjlmOWMzOTcxMTU5OTQ0MmM3MTQ0YjlkYWViZTVkNzc3OGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuY3BwCkBAIC00NTksNiArNDU5LDE1IEBAIHZvaWQgU2V0dGluZ3M6OnNldFRleHRB
dXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKGZsb2F0IGZvbnRTY2FsZUZhY3RvcikKIAogI2VuZGlm
CiAKK3ZvaWQgU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVycmlkZShjb25zdCBJbnRTaXplJiBk
ZW5zaXR5UGVySW5jaE92ZXJyaWRlKQoreworICAgIGlmIChtX3Jlc29sdXRpb25EZW5zaXR5UGVy
SW5jaE92ZXJyaWRlID09IGRlbnNpdHlQZXJJbmNoT3ZlcnJpZGUpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJpZGUgPSBkZW5zaXR5UGVySW5j
aE92ZXJyaWRlOworICAgIG1fcGFnZS0+c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7
Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShib29sIGxv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSkKIHsKICAgICBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxs
eSA9IGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCA4
OTc4NWQxMmY2ZTI5MTY2ZGFjM2JhZmNiZWY3MGIwNWRlZmZiNDZhLi5jNzFmMzJlODYxZDcxZDdj
NjI4NDM2MDlhY2Y0ZTM1NTJiYTQzMDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0yOSw2
ICsyOSw3IEBACiAKICNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgogI2luY2x1ZGUg
IkZvbnRSZW5kZXJpbmdNb2RlLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIktV
UkwuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBA
IC0zNywxMCArMzgsNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4K
ICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CiAKLSNpZiBFTkFCTEUoVEVYVF9BVVRP
U0laSU5HKQotI2luY2x1ZGUgIkludFNpemUuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICBjbGFzcyBQYWdlOwpAQCAtMTIzLDYgKzEyMCwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIGNvbnN0IEludFNpemUmIHRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92
ZXJyaWRlKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlk
ZTsgfQogI2VuZGlmCiAKKyAgICAgICAgLy8gT25seSBzZXQgYnkgTGF5b3V0IFRlc3RzLgorICAg
ICAgICB2b2lkIHNldFJlc29sdXRpb25PdmVycmlkZShjb25zdCBJbnRTaXplJik7CisgICAgICAg
IGNvbnN0IEludFNpemUmIHJlc29sdXRpb25PdmVycmlkZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVz
b2x1dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJpZGU7IH0KKwogICAgICAgICAvLyBVbmxpa2UgYXJl
SW1hZ2VzRW5hYmxlZCwgdGhpcyBvbmx5IHN1cHByZXNzZXMgdGhlIG5ldHdvcmsgbG9hZCBvZgog
ICAgICAgICAvLyB0aGUgaW1hZ2UgVVJMLiAgQSBjYWNoZWQgaW1hZ2Ugd2lsbCBzdGlsbCBiZSBy
ZW5kZXJlZCBpZiByZXF1ZXN0ZWQuCiAgICAgICAgIHZvaWQgc2V0TG9hZHNJbWFnZXNBdXRvbWF0
aWNhbGx5KGJvb2wpOwpAQCAtNjg2LDYgKzY4Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgSW50U2l6ZSBtX3RleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlOwogICAgICAg
ICBib29sIG1fdGV4dEF1dG9zaXppbmdFbmFibGVkIDogMTsKICNlbmRpZgorICAgICAgICBJbnRT
aXplIG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJpZGU7CiAgICAgICAgIGJvb2wgbV9p
c1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9pc0phdmFFbmFi
bGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzIDogMTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IDhkOGYw
Y2I0MDkwMDM2NWU2MGE0Mzg0ZWNiMDk3NDA1NDc3MTVhZjkuLmEwYWRlM2EzNGI5ZmI1MDcyZTgy
ZDQwNmY5NTJlNzVjYWQ3YjBkYTggMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcApAQCAtOTcsNiArOTcsNyBAQCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6
OkJhY2t1cChQYWdlKiBwYWdlLCBTZXR0aW5ncyogc2V0dGluZ3MpCiAgICAgLCBtX29yaWdpbmFs
VGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoc2V0dGluZ3MtPnRleHRBdXRvc2l6aW5n
V2luZG93U2l6ZU92ZXJyaWRlKCkpCiAgICAgLCBtX29yaWdpbmFsVGV4dEF1dG9zaXppbmdGb250
U2NhbGVGYWN0b3Ioc2V0dGluZ3MtPnRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKCkpCiAj
ZW5kaWYKKyAgICAsIG1fb3JpZ2luYWxEZXZpY2VTY2FsZUZhY3RvcihwYWdlLT5kZXZpY2VTY2Fs
ZUZhY3RvcigpKQogI2lmIEVOQUJMRShESUFMT0dfRUxFTUVOVCkKICAgICAsIG1fb3JpZ2luYWxE
aWFsb2dFbGVtZW50RW5hYmxlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpkaWFsb2dFbGVtZW50
RW5hYmxlZCgpKQogI2VuZGlmCkBAIC0xMzYsNiArMTM3LDcgQEAgdm9pZCBJbnRlcm5hbFNldHRp
bmdzOjpCYWNrdXA6OnJlc3RvcmVUbyhQYWdlKiBwYWdlLCBTZXR0aW5ncyogc2V0dGluZ3MpCiAg
ICAgc2V0dGluZ3MtPnNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKG1fb3JpZ2lu
YWxUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSk7CiAgICAgc2V0dGluZ3MtPnNldFRl
eHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ0ZvbnRT
Y2FsZUZhY3Rvcik7CiAjZW5kaWYKKyAgICBwYWdlLT5zZXREZXZpY2VTY2FsZUZhY3RvcihtX29y
aWdpbmFsRGV2aWNlU2NhbGVGYWN0b3IpOwogI2lmIEVOQUJMRShESUFMT0dfRUxFTUVOVCkKICAg
ICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXREaWFsb2dFbGVtZW50RW5hYmxlZChtX29yaWdp
bmFsRGlhbG9nRWxlbWVudEVuYWJsZWQpOwogI2VuZGlmCkBAIC00MTMsNiArNDE1LDE0IEBAIHZv
aWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0VGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUo
aW50IHdpZHRoLCBpbnQgaGVpZ2h0CiAjZW5kaWYKIH0KIAordm9pZCBJbnRlcm5hbFNldHRpbmdz
OjpzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoZmxvYXQgZGVuc2l0eVBlclBpeGVsLCBpbnQgZGVuc2l0
eVBlckluY2hIb3Jpem9udGFsbHksIGludCBkZW5zaXR5UGVySW5jaFZlcnRpY2FsbHksIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7
CisgICAgLy8gQW4gZW1wdHkgc2l6ZSByZXNldHMgdGhlIG92ZXJyaWRlLgorICAgIHNldHRpbmdz
KCktPnNldFJlc29sdXRpb25PdmVycmlkZShJbnRTaXplKGRlbnNpdHlQZXJJbmNoSG9yaXpvbnRh
bGx5LCBkZW5zaXR5UGVySW5jaFZlcnRpY2FsbHkpKTsKKyAgICBwYWdlKCktPnNldERldmljZVNj
YWxlRmFjdG9yKGRlbnNpdHlQZXJQaXhlbCk7Cit9CisKIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6
c2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoZmxvYXQgZm9udFNjYWxlRmFjdG9yLCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCA3OGYzNmUwMTc2MWNlYmRj
MzFkODk0MjE5ZDMyMGI2MDJhMTY5YjRmLi5iZmFjNTdmNjQyMDYxNDkwYTFhMWI4M2M3OTVhYTJm
NDI4NzNlMzZjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApA
QCAtNzksNiArNzksNyBAQCBwdWJsaWM6CiAgICAgICAgIEludFNpemUgbV9vcmlnaW5hbFRleHRB
dXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlOwogICAgICAgICBmbG9hdCBtX29yaWdpbmFsVGV4
dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3I7CiAjZW5kaWYKKyAgICAgICAgZmxvYXQgbV9vcmln
aW5hbERldmljZVNjYWxlRmFjdG9yOwogI2lmIEVOQUJMRShESUFMT0dfRUxFTUVOVCkKICAgICAg
ICAgYm9vbCBtX29yaWdpbmFsRGlhbG9nRWxlbWVudEVuYWJsZWQ7CiAjZW5kaWYKQEAgLTEyNyw2
ICsxMjgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoYm9v
bCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRUZXh0QXV0b3NpemluZ1dp
bmRvd1NpemVPdmVycmlkZShpbnQgd2lkdGgsIGludCBoZWlnaHQsIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKGZsb2F0IGZvbnRTY2Fs
ZUZhY3RvciwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0UmVzb2x1dGlvbk92ZXJyaWRl
KGZsb2F0IGRlbnNpdHlQZXJQaXhlbCwgaW50IGRlbnNpdHlQZXJJbmNoSG9yaXpvbnRhbGx5LCBp
bnQgZGVuc2l0eVBlckluY2hWZXJ0aWNhbGx5LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBz
ZXRFbmFibGVTY3JvbGxBbmltYXRvcihib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICBib29sIHNjcm9sbEFuaW1hdG9yRW5hYmxlZChFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBz
ZXRDU1NFeGNsdXNpb25zRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IGYzNDY0YmU5
YTRlYzY0NTY0YjQzNDUwOTc4N2RmODQ3ZTNlZTgxY2UuLjE3ZjcxYWE4OWQwZDY0MWJhMDAyYWMx
YjBjNzFkZGQ0NWVmYTY2YWQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmlkbApAQCAtNTYsNiArNTYsNyBAQAogICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdF
bmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9p
ZCBzZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShpbiBsb25nIHdpZHRoLCBpbiBs
b25nIGhlaWdodCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRUZXh0QXV0b3Np
emluZ0ZvbnRTY2FsZUZhY3RvcihpbiBmbG9hdCBmb250U2NhbGVGYWN0b3IpIHJhaXNlcyhET01F
eGNlcHRpb24pOworICAgIHZvaWQgc2V0UmVzb2x1dGlvbk92ZXJyaWRlKGluIGZsb2F0IGRlbnNp
dHlQZXJQaXhlbCwgaW4gbG9uZyBkZW5zaXR5UGVySW5jaEhvcml6b250YWxseSwgaW4gbG9uZyBk
ZW5zaXR5UGVySW5jaFZlcnRpY2FsbHkpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQg
c2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKICAgICBib29sZWFuIHNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpIHJhaXNlcyhET01F
eGNlcHRpb24pOwogICAgIHZvaWQgc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQoaW4gYm9vbGVhbiBl
bmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3NDk4N2VkYmFlMzY4NGE5Yjkx
N2I3NWFmMzQxYzU4YTM5NDkzMDUwLi4wYzViMzEyNjA1NTVmZWRhNzRlMWY3ZmRjN2E0ZjhiYTZk
MmZlYWNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTAtMTUgIEtlbm5ldGggUm9oZGUg
Q2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciByZXNvbHV0aW9uIG1lZGlhIHF1ZXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05OTA3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRlc3QgKHJlc29sdXRpb246IHgpIG1lZGlhIHF1ZXJ5IHRvIGVu
c3VyZSBjb21wbGlhbmNlCisgICAgICAgIHdpdGggc3BlYyBwbHVzIHByb3Bvc2VkIGRwcHggdmFs
dWVzLgorCisgICAgICAgICogZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWw6IEFkZGVkLgor
CiAyMDEyLTEwLTE1ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLCBUZXN0RXhwZWN0YXRpb25z
IHVwZGF0ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZTE2ZThiOTI4ZDQ5NzBkYjk2ODUxODMwZThlMjFjNTVk
NzE4Y2EzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNv
bHV0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM4IEBACitDU1MzIG1lZGlhIHF1ZXJ5IHRl
c3Q6IHJlc29sdXRpb24gcXVlcnkgd2l0aCBkcHB4LiBVc2luZyBzdHlsZSBlbGVtZW50LCBAbWVk
aWEgY3NzIHJ1bGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG1hdGNo
TWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDEuNWRwcHgpJykubWF0Y2hlcyBpcyB0cnVlCitQ
QVNTIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIGlzIDEuNQorUEFTUyBkZXZpY2VQaXhlbFJhdGlv
RnJvbVN0eWxlKCkgaXMgMS41CitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246
IDJkcHB4KScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyBp
cyAyCitQQVNTIGRldmljZVBpeGVsUmF0aW9Gcm9tU3R5bGUoKSBpcyAyCitQQVNTIG1hdGNoTWVk
aWEoJygtd2Via2l0LXJlc29sdXRpb246IDFkcHB4KScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyB3
aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyBpcyAxCitQQVNTIGRldmljZVBpeGVsUmF0aW9Gcm9tU3R5
bGUoKSBpcyAxCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb24pJykubWF0Y2hl
cyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDI1NGRwaSkn
KS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRp
b246IDI1NGRwaSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQt
bWF4LXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRp
YSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1Mg
bWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyBp
cyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAxMDBkcGNt
KScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9u
KScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlv
bjogMjU0ZHBpKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQt
cmVzb2x1dGlvbjogMjYwZHBpKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgn
KC13ZWJraXQtbWluLXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1Mg
bWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDI2MGRwaSknKS5tYXRjaGVzIGlz
IGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAyNTRkcGkp
JykubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1
dGlvbjogMjYwZHBpKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtp
dC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRp
YSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMTAyZHBjbSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNT
IG1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMg
aXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMTAyZHBj
bSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNv
bHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13
ZWJraXQtbWF4LXJlc29sdXRpb246IDEwMmRwY20pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzUyZmY2MjQzZTYxYzE4
NjZjOGEwYzY0NjRkYWUzYTQ5OGNiNTZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwKQEAgLTAsMCArMSw4NCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImRldGVjdG9yIj48L2Rpdj4KKworPHN0
eWxlPgorICAgICNkZXRlY3RvciB7IHdpZHRoOiAxMHB4OyB9CisgICAgQG1lZGlhICgtd2Via2l0
LXJlc29sdXRpb246ICAgMWRwcHgpIHsgI2RldGVjdG9yIHsgd2lkdGg6IDEwcHg7IH0gfQorICAg
IEBtZWRpYSAoLXdlYmtpdC1yZXNvbHV0aW9uOiAxLjVkcHB4KSB7ICNkZXRlY3RvciB7IHdpZHRo
OiAxNXB4OyB9IH0KKyAgICBAbWVkaWEgKC13ZWJraXQtcmVzb2x1dGlvbjogICAyZHBweCkgeyAj
ZGV0ZWN0b3IgeyB3aWR0aDogMjBweDsgfSB9Cis8L3N0eWxlPgorCis8c2NyaXB0PgorICAgIGRl
c2NyaXB0aW9uKCJDU1MzIG1lZGlhIHF1ZXJ5IHRlc3Q6IHJlc29sdXRpb24gcXVlcnkgd2l0aCBk
cHB4LiBVc2luZyBzdHlsZSBlbGVtZW50LCBAbWVkaWEgY3NzIHJ1bGUuIikKKworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHdpbmRvdy50
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgICAgICBmdW5jdGlvbiBkZXZpY2VQaXhlbFJh
dGlvRnJvbVN0eWxlKCkgeworICAgICAgICAgICAgdmFyIHdpZHRoID0gZ2V0Q29tcHV0ZWRTdHls
ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGV0ZWN0b3IiKSkud2lkdGg7CisgICAgICAgICAg
ICBzd2l0Y2ggKHdpZHRoKSB7CisgICAgICAgICAgICAgICAgY2FzZSAiMTBweCI6CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIGNhc2UgIjE1cHgiOgorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gMS41OworICAgICAgICAgICAgICAgIGNhc2UgIjIwcHgi
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjsKKyAgICAgICAgICAgICAgICBkZWZhdWx0
OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0
aW9uT3ZlcnJpZGUoMS41LCA5NiwgOTYpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgn
KC13ZWJraXQtcmVzb2x1dGlvbjogMS41ZHBweCknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAg
ICAgc2hvdWxkQmUoIndpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIiwgIjEuNSIpOworICAgICAgICBz
aG91bGRCZSgiZGV2aWNlUGl4ZWxSYXRpb0Zyb21TdHlsZSgpIiwgIjEuNSIpOworCisgICAgICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDIsIDk2LCA5
Nik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAy
ZHBweCknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5kZXZp
Y2VQaXhlbFJhdGlvIiwgIjIiKTsKKyAgICAgICAgc2hvdWxkQmUoImRldmljZVBpeGVsUmF0aW9G
cm9tU3R5bGUoKSIsICIyIik7CisKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5z
ZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMSwgOTYsIDk2KTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNo
TWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDFkcHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIpOwor
ICAgICAgICBzaG91bGRCZSgid2luZG93LmRldmljZVBpeGVsUmF0aW8iLCAiMSIpOworICAgICAg
ICBzaG91bGRCZSgiZGV2aWNlUGl4ZWxSYXRpb0Zyb21TdHlsZSgpIiwgIjEiKTsKKworICAgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgxLCAyNTQs
IDI1NCk7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9u
KScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13
ZWJraXQtcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBz
aG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDI1NGRwaSknKS5t
YXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0
LW1heC1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyIsICJ0cnVlIik7CisKKyAgICAgICAg
c2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0
Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1t
aW4tcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hv
dWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1h
dGNoZXMiLCAidHJ1ZSIpOworCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0
UmVzb2x1dGlvbk92ZXJyaWRlKDEsIDI1NCwgMjYwKTsKKyAgICAgICAgLy8gTm9uLXNxdWFyZSBt
dXN0IG5ldmVyIG1hdGNoLgorICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQt
cmVzb2x1dGlvbiknKS5tYXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRj
aE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIp
OworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMjYw
ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRp
YSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIiwgInRydWUiKTsK
KyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAy
NjBkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRp
YSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7
CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjog
MjYwZHBpKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworCisgICAgICAgIC8vIE5vbi1zcXVhcmUgbXVz
dCBuZXZlciBtYXRjaC4KKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJl
c29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRC
ZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMTAyZHBjbSknKS5tYXRjaGVzIiwg
ImZhbHNlIik7CisKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1y
ZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRC
ZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDEwMmRwY20pJykubWF0Y2hl
cyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4
LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91
bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDEwMmRwY20pJykubWF0
Y2hlcyIsICJ0cnVlIik7CisgICAgfQorPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168721</attachid>
            <date>2012-10-15 08:43:52 -0700</date>
            <delta_ts>2012-10-16 04:00:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99077-20121015174242.patch</filename>
            <type>text/plain</type>
            <size>27089</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxMjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjEyN2MzNWI4NTgxYTlh
MWFkZmFhOGRmOTU1YTE4ZDc1YWRkY2QzYS4uYjdkM2VlYTgxNDJmZDkzNzQ0YjA2YTQ3Nzc0MmUy
MTIxNmM4N2FiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEyLTEwLTE1ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBt
ZWRpYSBxdWVyeSBmZWF0dXJlIHdpdGggLXdlYmtpdAorICAgICAgICBwcmVmaXggZHVlIHRvIHRo
ZSBzdXBwb3J0IG9mIHRoZSBwcm9wb3NlZCBkcHB4IHZhbHVlcy4KKworICAgICAgICBBZGQgaW5m
cmFzdHJ1Y3R1cmUgdG8gbWFrZSBpdCB0ZXN0YWJsZS4KKworICAgICAgICBUZXN0OiBmYXN0L21l
ZGlhL21xLXJlc29sdXRpb24uaHRtbAorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNEZW5zaXR5UGVySW5j
aCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNEZW5zaXR5UGVyUGl4
ZWwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmlzRGVuc2l0eVBlckNl
bnRpbWV0ZXIpOgorICAgICAgICAoQ1NTUHJpbWl0aXZlVmFsdWUpOgorCisgICAgICAgICAgICBB
ZGQgZnVuY3Rpb24gZm9yIGNoZWNraW5nIHRoZSByZWNlbnRseSBhZGRlZCBkZW5zaXR5IHR5cGVz
LgorCisgICAgICAgICogY3NzL01lZGlhRmVhdHVyZU5hbWVzLmg6CisgICAgICAgIChNZWRpYUZl
YXR1cmVOYW1lcyk6CisKKyAgICAgICAgICAgIEFkZCBzdXBwb3J0IGZvciAtd2Via2l0LXJlc29s
dXRpb24sIC13ZWJraXQtbWluLXJlc29sdXRpb24KKyAgICAgICAgICAgIGFuZCAtd2Via2l0LW1h
eC1yZXNvbHV0aW9uLgorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y29tcGFyZVJlc29sdXRpb24pOiBBZGQgbWV0aG9kcyBmb3IgY29t
cGFyaW5nIHJlc29sdXRpb25zLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpyZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjptaW5fcmVz
b2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6bWF4X3Jlc29sdXRp
b25NZWRpYUZlYXR1cmVFdmFsKToKKworICAgICAgICAgICAgSW1wbGVtZW50IHRoZSByZXNvbHV0
aW9uIG1ldGhvZCBldmFsdWF0aW9uLgorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlFeHAuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6ZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZlRGVuc2l0eSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRob3V0VmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUV4cDo6TWVkaWFRdWVyeUV4cCk6CisKKyAg
ICAgICAgICAgIEhvb2sgdXAgcmVzb2x1dGlvbiB3aXRoIHRoZSByaWdodCBwcmUtY2hlY2tzLgor
CisgICAgICAgKiBwYWdlL1NjcmVlbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW46Omhv
cml6b250YWxEUEkpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuOjp2ZXJ0aWNhbERQSSk6CisK
KyAgICAgICAgICAgIENoZWNrIHdoZXRoZXIgYW4gb3ZlcnJpZGUgZXhpc3RzLCBhbmQgaWYgc28s
IHVzZXMgaXQuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNldHRpbmdzOjpzZXRSZXNvbHV0aW9uT3ZlcnJpZGUpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoU2V0dGluZ3MpOgorICAgICAg
ICAoV2ViQ29yZTo6U2V0dGluZ3M6OnJlc29sdXRpb25PdmVycmlkZSk6CisKKyAgICAgICAgICAg
IEFkZCBhIHJlc29sdXRpb24gb3ZlcnJpZGUgdG8gc2V0dGluZ3MuCisKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0
aW5nczo6QmFja3VwOjpCYWNrdXApOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5n
czo6QmFja3VwOjpyZXN0b3JlVG8pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5n
czo6c2V0UmVzb2x1dGlvbk92ZXJyaWRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAgICAoQmFja3VwKToKKyAgICAgICAg
KEludGVybmFsU2V0dGluZ3MpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5p
ZGw6CisKKyAgICAgICAgICAgIEFkZCBhIG5ldyBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUgbWV0aG9k
IHRvIGludGVybmFscy5zZXR0aW5ncy4KKwogMjAxMi0xMC0xMiAgSWx5YSBUaWtob25vdnNreSAg
PGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogTk1JIHJlbW92
ZSBoYW5kIG1hZGUgb2JqZWN0IGJ1aWxkZXJzIHdpdGggYXV0b21hdGljIGJ1aWxkZXIuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCmluZGV4IGFhMmRiZWFjMzJkZGIzODc3YjFk
YjVlZmJkMGFhZWU3NzEyZDY4NjYuLjQxYzljM2FmMzg0NWQ4ODRlMmE1ZTJkZDU3NzljZWY1MzJm
YmE5MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCkBAIC0xODEsNiAr
MTgxLDEwIEBAIHB1YmxpYzoKICAgICBib29sIGlzQ2FsY3VsYXRlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX0NBTEM7IH0KICAgICBib29sIGlzQ2FsY3VsYXRl
ZFBlcmNlbnRhZ2VXaXRoTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgpID09
IENTU19DQUxDX1BFUkNFTlRBR0VfV0lUSF9OVU1CRVI7IH0KICAgICBib29sIGlzQ2FsY3VsYXRl
ZFBlcmNlbnRhZ2VXaXRoTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgpID09
IENTU19DQUxDX1BFUkNFTlRBR0VfV0lUSF9MRU5HVEg7IH0KKyAgICBib29sIGlzRGVuc2l0eVBl
ckluY2goKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0RQSTsgfQorICAg
IGJvb2wgaXNEZW5zaXR5UGVyUGl4ZWwoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkg
PT0gQ1NTX0RQUFg7IH0KKyAgICBib29sIGlzRGVuc2l0eVBlckNlbnRpbWV0ZXIoKSBjb25zdCB7
IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0RQQ007IH0KKwogI2lmIEVOQUJMRShDU1Nf
VkFSSUFCTEVTKQogICAgIGJvb2wgaXNWYXJpYWJsZU5hbWUoKSBjb25zdCB7IHJldHVybiBwcmlt
aXRpdmVUeXBlKCkgPT0gQ1NTX1ZBUklBQkxFX05BTUU7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFGZWF0dXJlTmFtZXMuaAppbmRleCBiMDg0MzllNGEwMTgzNDkyMmZkYTAwZThhZDk3
ZWZmMjBmYmVjMGZjLi40Y2VjMjU0NWY1ODUzYzRlYTlkZmFlZjVmMTY1NzgwNWVkNjlkM2E4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaApAQCAtNDcsNiArNDcsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8obWF4X2hlaWdodCwgIm1heC1oZWlnaHQiKSBc
CiAgICAgbWFjcm8obWF4X21vbm9jaHJvbWUsICJtYXgtbW9ub2Nocm9tZSIpIFwKICAgICBtYWNy
byhtYXhfd2lkdGgsICJtYXgtd2lkdGgiKSBcCisgICAgbWFjcm8obWF4X3Jlc29sdXRpb24sICIt
d2Via2l0LW1heC1yZXNvbHV0aW9uIikgXAogICAgIG1hY3JvKG1pbl9jb2xvciwgIm1pbi1jb2xv
ciIpIFwKICAgICBtYWNybyhtaW5fYXNwZWN0X3JhdGlvLCAibWluLWFzcGVjdC1yYXRpbyIpIFwK
ICAgICBtYWNybyhtaW5fZGV2aWNlX2FzcGVjdF9yYXRpbywgIm1pbi1kZXZpY2UtYXNwZWN0LXJh
dGlvIikgXApAQCAtNTYsNyArNTcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8o
bWluX2hlaWdodCwgIm1pbi1oZWlnaHQiKSBcCiAgICAgbWFjcm8obWluX21vbm9jaHJvbWUsICJt
aW4tbW9ub2Nocm9tZSIpIFwKICAgICBtYWNybyhtaW5fd2lkdGgsICJtaW4td2lkdGgiKSBcCisg
ICAgbWFjcm8obWluX3Jlc29sdXRpb24sICItd2Via2l0LW1pbi1yZXNvbHV0aW9uIikgXAogICAg
IG1hY3JvKHBvaW50ZXIsICJwb2ludGVyIikgXAorICAgIG1hY3JvKHJlc29sdXRpb24sICItd2Vi
a2l0LXJlc29sdXRpb24iKSBcCiAgICAgbWFjcm8odHJhbnNmb3JtXzJkLCAiLXdlYmtpdC10cmFu
c2Zvcm0tMmQiKSBcCiAgICAgbWFjcm8odHJhbnNmb3JtXzNkLCAiLXdlYmtpdC10cmFuc2Zvcm0t
M2QiKSBcCiAgICAgbWFjcm8odHJhbnNpdGlvbiwgIi13ZWJraXQtdHJhbnNpdGlvbiIpIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCBkYWE0OTBiOGJk
Yzg0Njg3Yzc0OWE5YjUxMGU0NGMzOWM2OTEwOGU1Li40OTY0ODFmMDVkMmFkMTZmMTM2NWFmYTdm
MTc5ZTQ4NTYyZjc1ODIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV2YWx1YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0
b3IuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1
ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJTY3Jl
ZW4uaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KIApAQCAtMTk3LDYgKzE5OCwyMSBAQCBzdGF0aWMgYm9vbCBjb21wYXJlQXNwZWN0UmF0aW9W
YWx1ZShDU1NWYWx1ZSogdmFsdWUsIGludCB3aWR0aCwgaW50IGhlaWdodCwgTWVkaQogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAorc3RhdGljIGJvb2wgY29tcGFyZVJlc29sdXRpb24odW5zaWduZWQg
bWluLCB1bnNpZ25lZCBtYXgsIHVuc2lnbmVkIHZhbHVlLCBNZWRpYUZlYXR1cmVQcmVmaXggb3Ap
Cit7CisgICAgc3dpdGNoIChvcCkgeworICAgIGNhc2UgTm9QcmVmaXg6CisgICAgICAgIC8vIEEg
J3Jlc29sdXRpb24nICh3aXRob3V0IGEgIm1pbi0iIG9yICJtYXgtIiBwcmVmaXgpIHF1ZXJ5Cisg
ICAgICAgIC8vIG5ldmVyIG1hdGNoZXMgYSBkZXZpY2Ugd2l0aCBub24tc3F1YXJlIHBpeGVscy4K
KyAgICAgICAgcmV0dXJuIG1pbiA9PSBtYXg7CisgICAgY2FzZSBNaW5QcmVmaXg6CisgICAgICAg
IHJldHVybiBtaW4gPj0gdmFsdWU7CisgICAgY2FzZSBNYXhQcmVmaXg6CisgICAgICAgIHJldHVy
biBtYXggPD0gdmFsdWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKwogc3RhdGljIGJv
b2wgbnVtYmVyVmFsdWUoQ1NTVmFsdWUqIHZhbHVlLCBmbG9hdCYgcmVzdWx0KQogewogICAgIGlm
ICh2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpCkBAIC0yNzgsNiArMjk0LDU0IEBAIHN0YXRpYyBi
b29sIGRldmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUgKnZhbHVlLCBS
ZW5kZXJTdHlsZSosIEZyCiAgICAgcmV0dXJuIGZyYW1lLT5wYWdlKCktPmRldmljZVNjYWxlRmFj
dG9yKCkgIT0gMDsKIH0KIAorc3RhdGljIGJvb2wgcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwo
Q1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJl
UHJlZml4IG9wKQoreworICAgIHVuc2lnbmVkIGhvcmlEUEkgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+
ZG9tV2luZG93KCktPnNjcmVlbigpLT5ob3Jpem9udGFsRFBJKCk7CisgICAgdW5zaWduZWQgdmVy
dERQSSA9IGZyYW1lLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+c2NyZWVuKCktPnZlcnRpY2Fs
RFBJKCk7CisKKyAgICB1bnNpZ25lZCBtaW5EUEkgPSBzdGQ6Om1pbihob3JpRFBJLCB2ZXJ0RFBJ
KTsKKyAgICB1bnNpZ25lZCBtYXhEUEkgPSBzdGQ6Om1heChob3JpRFBJLCB2ZXJ0RFBJKTsKKwor
ICAgIC8vIEFjY29yZGluZyB0byBzcGVjLCAocmVzb2x1dGlvbikgd2lsbCBldmFsdWF0ZSB0byB0
cnVlIGlmIChyZXNvbHV0aW9uOngpCisgICAgLy8gd2lsbCBldmFsdWF0ZSB0byB0cnVlIGZvciBh
IHZhbHVlIHggb3RoZXIgdGhhbiB6ZXJvIG9yIHplcm8gZm9sbG93ZWQgYnkKKyAgICAvLyBhIHZh
bGlkIHVuaXQgaWRlbnRpZmllciAoaS5lLiwgb3RoZXIgdGhhbiAwLCAwZHBpLCAwZHBjbSwgb3Ig
MGRwcHguKS4KKyAgICAvLworICAgIC8vIFRoaXMgaXMgYWN0dWFsbHkgYWx3YXlzIHRoZSBjYXNl
IHdpdGggdGhlIGRwcHgsIHdoaWNoIHdlIGlnbm9yZSBhcyBpdCBpcworICAgIC8vIGEgc3BlY2lh
bC1jYXNlIGluIHRoZSBzZW5zZSBpdCBjYW4gYmUgb3V0IG9mIHN5bmMgd2l0aCBkcGkgYW5kIGRw
Y20uIEZvcgorICAgIC8vIGluc3RhbmNlLCBib3RoIGEgZGV2aWNlIHdpdGggOTZkcGkgYW5kIDE2
MGRwaSBjYW4gaGF2ZSBhIGRwcHggb2YgMS4KKyAgICAvLworICAgIC8vIFRoaXMgbGVhdmVzIHRo
ZSBjYXNlIG9mIHNxdWFyZWQgcGl4ZWxzLgorICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgQVNT
RVJUKG9wID09IE5vUHJlZml4KTsKKyAgICAgICAgcmV0dXJuIG1pbkRQSSA9PSBtYXhEUEk7Cisg
ICAgfQorCisgICAgaWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcmF3VmFsdWUgPSBzdGF0aWNfY2Fz
dDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKKyAgICBpZiAocmF3VmFsdWUtPmlzRGVuc2l0
eVBlclBpeGVsKCkpIHsKKyAgICAgICAgZmxvYXQgYWN0dWFsRGVuc2l0eSA9IGZyYW1lLT5wYWdl
KCktPmRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgICAgIGZsb2F0IHRlc3RlZERlbnNpdHkgPSBy
YXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQUFgpOworICAg
ICAgICByZXR1cm4gY29tcGFyZVZhbHVlKGFjdHVhbERlbnNpdHksIHRlc3RlZERlbnNpdHksIG9w
KTsKKyAgICB9CisKKyAgICBpZiAocmF3VmFsdWUtPmlzRGVuc2l0eVBlckluY2goKSkgeworICAg
ICAgICB1bnNpZ25lZCB0ZXN0ZWREZW5zaXR5ID0gcmF3VmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19EUEkpOworICAgICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRp
b24obWluRFBJLCBtYXhEUEksIHRlc3RlZERlbnNpdHksIG9wKTsKKyAgICB9CisKKyAgICB1bnNp
Z25lZCBtaW5EUENNID0gZmxvb3IobWluRFBJIC8gMi41NCk7IC8vICgyLjU0IGNtL2luKQorICAg
IHVuc2lnbmVkIG1heERQQ00gPSBmbG9vcihtYXhEUEkgLyAyLjU0KTsKKworICAgIGlmIChyYXdW
YWx1ZS0+aXNEZW5zaXR5UGVyQ2VudGltZXRlcigpKSB7CisgICAgICAgIHVuc2lnbmVkIHRlc3Rl
ZERlbnNpdHkgPSByYXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X0RQQ00pOworICAgICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24obWluRFBDTSwgbWF4RFBD
TSwgdGVzdGVkRGVuc2l0eSwgb3ApOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwog
c3RhdGljIGJvb2wgZ3JpZE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJT
dHlsZSosIEZyYW1lKiwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQogewogICAgIC8vIGlmIG91dHB1
dCBkZXZpY2UgaXMgYml0bWFwLCBncmlkOiAwID09IHRydWUKQEAgLTQ1Niw2ICs1MjAsMTYgQEAg
c3RhdGljIGJvb2wgbWF4X2RldmljZV93aWR0aE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZh
bHVlLCBSZW5kZXJTdHlsZSogc3R5bGUKICAgICByZXR1cm4gZGV2aWNlX3dpZHRoTWVkaWFGZWF0
dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNYXhQcmVmaXgpOwogfQogCitzdGF0aWMgYm9v
bCBtaW5fcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJT
dHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQoreworICAgIHJl
dHVybiByZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNaW5Q
cmVmaXgpOworfQorCitzdGF0aWMgYm9vbCBtYXhfcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwo
Q1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFG
ZWF0dXJlUHJlZml4KQoreworICAgIHJldHVybiByZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCh2
YWx1ZSwgc3R5bGUsIGZyYW1lLCBNYXhQcmVmaXgpOworfQorCiBzdGF0aWMgYm9vbCBhbmltYXRp
b25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSos
IE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsKICAgICBpZiAodmFsdWUpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5RXhwLmNwcAppbmRleCAxYTA2Yjc5NjVmY2NiOThhMDkzNTY5NTY5NzU4YjIx
ZmM2ZTI5OTgxLi5lMGUyYjMxZWIxNGM0ODk4MmZkNGVkNGQwMzI2OTUxMmZkOTI3Y2Q3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwCkBAIC02Nyw2ICs2NywxNiBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZlTGVuZ2h0T3JOdW1iZXIoY29uc3Qg
QXRvbWljU3RyaW5nJiBtZQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJl
TmFtZXM6Om1pbl9kZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmU7CiB9CiAKK3N0YXRpYyBpbmxpbmUg
Ym9vbCBmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVEZW5zaXR5KGNvbnN0IEF0b21pY1N0cmluZyYg
bWVkaWFGZWF0dXJlLCBjb25zdCBDU1NQYXJzZXJWYWx1ZSogdmFsdWUpCit7CisgICAgaWYgKCh2
YWx1ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQUFggJiYgdmFsdWUtPnVuaXQg
IT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUEkgJiYgdmFsdWUtPnVuaXQgIT0gQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19EUENNKSB8fCB2YWx1ZS0+ZlZhbHVlIDwgMCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6
cmVzb2x1dGlvbk1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFG
ZWF0dXJlTmFtZXM6Om1heF9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX3Jlc29sdXRpb25NZWRpYUZlYXR1cmU7
Cit9CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFBvc2l0aXZlSW50ZWdlcihjb25z
dCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgY29uc3QgQ1NTUGFyc2VyVmFsdWUqIHZhbHVl
KQogewogICAgIGlmICghdmFsdWUtPmlzSW50IHx8IHZhbHVlLT5mVmFsdWUgPCAwKQpAQCAtMTE0
LDYgKzEyNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aEFzcGVjdFJhdGlvKGNv
bnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlKQogCiBzdGF0aWMgaW5saW5lIGJvb2wgZmVh
dHVyZVdpdGhvdXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSkKIHsKKyAg
ICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IGFyZSBwcmVmaXhlZCBieSBtaW4vbWF4IGNhbm5vdCBi
ZSB1c2VkIHdpdGhvdXQgYSB2YWx1ZS4KICAgICByZXR1cm4gbWVkaWFGZWF0dXJlID09IE1lZGlh
RmVhdHVyZU5hbWVzOjptb25vY2hyb21lTWVkaWFGZWF0dXJlCiAgICAgICAgIHx8IG1lZGlhRmVh
dHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6Y29sb3JNZWRpYUZlYXR1cmUKICAgICAgICAgfHwg
bWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpncmlkTWVkaWFGZWF0dXJlCkBAIC0x
MzEsNyArMTQyLDggQEAgc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRob3V0VmFsdWUoY29u
c3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUpCiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9
PSBNZWRpYUZlYXR1cmVOYW1lczo6YW5pbWF0aW9uTWVkaWFGZWF0dXJlCiAgICAgICAgIHx8IG1l
ZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dmlld19tb2RlTWVkaWFGZWF0dXJlCiAg
ICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6cG9pbnRlck1lZGlh
RmVhdHVyZQotICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmRl
dmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZTsKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09
IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmUKKyAgICAg
ICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpyZXNvbHV0aW9uTWVkaWFG
ZWF0dXJlOwogfQogCiBpbmxpbmUgTWVkaWFRdWVyeUV4cDo6TWVkaWFRdWVyeUV4cChjb25zdCBB
dG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgQ1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxpc3Qp
CkBAIC0xNDgsNiArMTYwLDEwIEBAIGlubGluZSBNZWRpYVF1ZXJ5RXhwOjpNZWRpYVF1ZXJ5RXhw
KGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBDU1NQYXJzZXJWCiAgICAgICAgICAg
ICBpZiAoZmVhdHVyZVdpdGhDU1NWYWx1ZUlEKG1lZGlhRmVhdHVyZSwgdmFsdWUpKQogICAgICAg
ICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmllcih2
YWx1ZS0+aWQpOwogCisgICAgICAgICAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IG11c3QgaGF2
ZSBub24tbmVnYXRpdmUgPGRlbnNpdHk+LCBpZS4gZHBweCwgZHBpIG9yIGRwY20uCisgICAgICAg
ICAgICBlbHNlIGlmIChmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVEZW5zaXR5KG1lZGlhRmVhdHVy
ZSwgdmFsdWUpKQorICAgICAgICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6
Y3JlYXRlKHZhbHVlLT5mVmFsdWUsIChDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzKSB2YWx1
ZS0+dW5pdCk7CisKICAgICAgICAgICAgIC8vIE1lZGlhIGZlYXR1cmVzIHRoYXQgbXVzdCBoYXZl
IG5vbi1uZWdhdGl2ZSA8bGVuZ2h0PiBvciBudW1iZXIgdmFsdWUuCiAgICAgICAgICAgICBlbHNl
IGlmIChmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVMZW5naHRPck51bWJlcihtZWRpYUZlYXR1cmUs
IHZhbHVlKSkKICAgICAgICAgICAgICAgICBtX3ZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNy
ZWF0ZSh2YWx1ZS0+ZlZhbHVlLCAoQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcykgdmFsdWUt
PnVuaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCmluZGV4IGUxZTFkMTE3Mzg2ZjYyMmVlM2MxOTNi
M2U1MDIyYzg4M2E4YzI1YjEuLjQwYTM4OGVkMjNhNGE1ODgzZTAxOGRhMTVjMWY1YTgzYTQ5MjRj
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
V2lkZ2V0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDYgKzQ5LDExIEBAIHVuc2ln
bmVkIFNjcmVlbjo6aG9yaXpvbnRhbERQSSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQog
ICAgICAgICByZXR1cm4gMDsKKworICAgIEludFNpemUgb3ZlcnJpZGUgPSBtX2ZyYW1lLT5wYWdl
KCktPnNldHRpbmdzKCktPnJlc29sdXRpb25PdmVycmlkZSgpOworICAgIGlmICghb3ZlcnJpZGUu
aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gb3ZlcnJpZGUud2lkdGgoKTsKKwogICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2NyZWVuSG9yaXpvbnRhbERQSShtX2ZyYW1lLT52aWV3
KCkpKTsKIH0KIApAQCAtNTUsNiArNjEsMTEgQEAgdW5zaWduZWQgU2NyZWVuOjp2ZXJ0aWNhbERQ
SSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4gMDsKKworICAg
IEludFNpemUgb3ZlcnJpZGUgPSBtX2ZyYW1lLT5wYWdlKCktPnNldHRpbmdzKCktPnJlc29sdXRp
b25PdmVycmlkZSgpOworICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gb3ZlcnJpZGUuaGVpZ2h0KCk7CisKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KHNjcmVlblZlcnRpY2FsRFBJKG1fZnJhbWUtPnZpZXcoKSkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuY3BwCmluZGV4IDk4NzZhZjVjNzZkMjI1NWNlYjJmODgwYjg0OTUxOWQyNmMzZDNlZDQu
Ljc0YjkyZjlmOWMzOTcxMTU5OTQ0MmM3MTQ0YjlkYWViZTVkNzc3OGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuY3BwCkBAIC00NTksNiArNDU5LDE1IEBAIHZvaWQgU2V0dGluZ3M6OnNldFRleHRB
dXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKGZsb2F0IGZvbnRTY2FsZUZhY3RvcikKIAogI2VuZGlm
CiAKK3ZvaWQgU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVycmlkZShjb25zdCBJbnRTaXplJiBk
ZW5zaXR5UGVySW5jaE92ZXJyaWRlKQoreworICAgIGlmIChtX3Jlc29sdXRpb25EZW5zaXR5UGVy
SW5jaE92ZXJyaWRlID09IGRlbnNpdHlQZXJJbmNoT3ZlcnJpZGUpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJpZGUgPSBkZW5zaXR5UGVySW5j
aE92ZXJyaWRlOworICAgIG1fcGFnZS0+c2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7
Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShib29sIGxv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSkKIHsKICAgICBtX2xvYWRzSW1hZ2VzQXV0b21hdGljYWxs
eSA9IGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCA4
OTc4NWQxMmY2ZTI5MTY2ZGFjM2JhZmNiZWY3MGIwNWRlZmZiNDZhLi5jNzFmMzJlODYxZDcxZDdj
NjI4NDM2MDlhY2Y0ZTM1NTJiYTQzMDMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0yOSw2
ICsyOSw3IEBACiAKICNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgogI2luY2x1ZGUg
IkZvbnRSZW5kZXJpbmdNb2RlLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIktV
UkwuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCkBA
IC0zNywxMCArMzgsNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4K
ICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CiAKLSNpZiBFTkFCTEUoVEVYVF9BVVRP
U0laSU5HKQotI2luY2x1ZGUgIkludFNpemUuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKICAgICBjbGFzcyBQYWdlOwpAQCAtMTIzLDYgKzEyMCwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIGNvbnN0IEludFNpemUmIHRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92
ZXJyaWRlKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlk
ZTsgfQogI2VuZGlmCiAKKyAgICAgICAgLy8gT25seSBzZXQgYnkgTGF5b3V0IFRlc3RzLgorICAg
ICAgICB2b2lkIHNldFJlc29sdXRpb25PdmVycmlkZShjb25zdCBJbnRTaXplJik7CisgICAgICAg
IGNvbnN0IEludFNpemUmIHJlc29sdXRpb25PdmVycmlkZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVz
b2x1dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJpZGU7IH0KKwogICAgICAgICAvLyBVbmxpa2UgYXJl
SW1hZ2VzRW5hYmxlZCwgdGhpcyBvbmx5IHN1cHByZXNzZXMgdGhlIG5ldHdvcmsgbG9hZCBvZgog
ICAgICAgICAvLyB0aGUgaW1hZ2UgVVJMLiAgQSBjYWNoZWQgaW1hZ2Ugd2lsbCBzdGlsbCBiZSBy
ZW5kZXJlZCBpZiByZXF1ZXN0ZWQuCiAgICAgICAgIHZvaWQgc2V0TG9hZHNJbWFnZXNBdXRvbWF0
aWNhbGx5KGJvb2wpOwpAQCAtNjg2LDYgKzY4Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgSW50U2l6ZSBtX3RleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlOwogICAgICAg
ICBib29sIG1fdGV4dEF1dG9zaXppbmdFbmFibGVkIDogMTsKICNlbmRpZgorICAgICAgICBJbnRT
aXplIG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJpZGU7CiAgICAgICAgIGJvb2wgbV9p
c1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7CiAgICAgICAgIGJvb2wgbV9pc0phdmFFbmFi
bGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJsZWRGb3JMb2NhbEZpbGVzIDogMTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IDhkOGYw
Y2I0MDkwMDM2NWU2MGE0Mzg0ZWNiMDk3NDA1NDc3MTVhZjkuLmFiNDViMmE3ZGU4MzVhZmIzZjEy
YTE1YjJhNGZkZmQ4NGNhN2NhNWMgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcApAQCAtOTcsNiArOTcsOCBAQCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6
OkJhY2t1cChQYWdlKiBwYWdlLCBTZXR0aW5ncyogc2V0dGluZ3MpCiAgICAgLCBtX29yaWdpbmFs
VGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoc2V0dGluZ3MtPnRleHRBdXRvc2l6aW5n
V2luZG93U2l6ZU92ZXJyaWRlKCkpCiAgICAgLCBtX29yaWdpbmFsVGV4dEF1dG9zaXppbmdGb250
U2NhbGVGYWN0b3Ioc2V0dGluZ3MtPnRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKCkpCiAj
ZW5kaWYKKyAgICAsIG1fb3JpZ2luYWxEZXZpY2VTY2FsZUZhY3RvcihwYWdlLT5kZXZpY2VTY2Fs
ZUZhY3RvcigpKQorICAgICwgbV9vcmlnaW5hbFJlc29sdXRpb25PdmVycmlkZShzZXR0aW5ncy0+
cmVzb2x1dGlvbk92ZXJyaWRlKCkpCiAjaWYgRU5BQkxFKERJQUxPR19FTEVNRU5UKQogICAgICwg
bV9vcmlnaW5hbERpYWxvZ0VsZW1lbnRFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmRp
YWxvZ0VsZW1lbnRFbmFibGVkKCkpCiAjZW5kaWYKQEAgLTEzNiw2ICsxMzgsOCBAQCB2b2lkIElu
dGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKFBhZ2UqIHBhZ2UsIFNldHRpbmdzKiBz
ZXR0aW5ncykKICAgICBzZXR0aW5ncy0+c2V0VGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJp
ZGUobV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKTsKICAgICBzZXR0
aW5ncy0+c2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IobV9vcmlnaW5hbFRleHRBdXRv
c2l6aW5nRm9udFNjYWxlRmFjdG9yKTsKICNlbmRpZgorICAgIHBhZ2UtPnNldERldmljZVNjYWxl
RmFjdG9yKG1fb3JpZ2luYWxEZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgc2V0dGluZ3MtPnNldFJl
c29sdXRpb25PdmVycmlkZShtX29yaWdpbmFsUmVzb2x1dGlvbk92ZXJyaWRlKTsKICNpZiBFTkFC
TEUoRElBTE9HX0VMRU1FTlQpCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0RGlhbG9n
RWxlbWVudEVuYWJsZWQobV9vcmlnaW5hbERpYWxvZ0VsZW1lbnRFbmFibGVkKTsKICNlbmRpZgpA
QCAtNDEzLDYgKzQxNywxNCBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFRleHRBdXRvc2l6
aW5nV2luZG93U2l6ZU92ZXJyaWRlKGludCB3aWR0aCwgaW50IGhlaWdodAogI2VuZGlmCiB9CiAK
K3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0UmVzb2x1dGlvbk92ZXJyaWRlKGZsb2F0IGRlbnNp
dHlQZXJQaXhlbCwgaW50IGRlbnNpdHlQZXJJbmNoSG9yaXpvbnRhbGx5LCBpbnQgZGVuc2l0eVBl
ckluY2hWZXJ0aWNhbGx5LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJbnRlcm5hbFNldHRp
bmdzR3VhcmRGb3JTZXR0aW5ncygpOworICAgIC8vIEFuIGVtcHR5IHNpemUgcmVzZXRzIHRoZSBv
dmVycmlkZS4KKyAgICBzZXR0aW5ncygpLT5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoSW50U2l6ZShk
ZW5zaXR5UGVySW5jaEhvcml6b250YWxseSwgZGVuc2l0eVBlckluY2hWZXJ0aWNhbGx5KSk7Cisg
ICAgcGFnZSgpLT5zZXREZXZpY2VTY2FsZUZhY3RvcihkZW5zaXR5UGVyUGl4ZWwpOworfQorCiB2
b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKGZs
b2F0IGZvbnRTY2FsZUZhY3RvciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAjaWYgRU5BQkxFKFRF
WFRfQVVUT1NJWklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgK
aW5kZXggNzhmMzZlMDE3NjFjZWJkYzMxZDg5NDIxOWQzMjBiNjAyYTE2OWI0Zi4uMGYwYmI1OWMz
YWVhOGRhZWJhMDkwNjc5ZGI3NjEyNGExZGU3YWVjMCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTI3LDE1ICsyNywxMiBAQAogI2RlZmluZSBJbnRlcm5h
bFNldHRpbmdzX2gKIAogI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgiCisjaW5jbHVk
ZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlJlZkNvdW50ZWRTdXBwbGVtZW50LmgiCiAjaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykK
LSNpbmNsdWRlICJJbnRTaXplLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0
eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwpAQCAtNzksNiArNzYsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIEludFNpemUgbV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlOwog
ICAgICAgICBmbG9hdCBtX29yaWdpbmFsVGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3I7CiAj
ZW5kaWYKKyAgICAgICAgZmxvYXQgbV9vcmlnaW5hbERldmljZVNjYWxlRmFjdG9yOworICAgICAg
ICBJbnRTaXplIG1fb3JpZ2luYWxSZXNvbHV0aW9uT3ZlcnJpZGU7CiAjaWYgRU5BQkxFKERJQUxP
R19FTEVNRU5UKQogICAgICAgICBib29sIG1fb3JpZ2luYWxEaWFsb2dFbGVtZW50RW5hYmxlZDsK
ICNlbmRpZgpAQCAtMTI3LDYgKzEyNiw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRleHRBdXRv
c2l6aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNl
dFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKGludCB3aWR0aCwgaW50IGhlaWdodCwg
RXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0
b3IoZmxvYXQgZm9udFNjYWxlRmFjdG9yLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRS
ZXNvbHV0aW9uT3ZlcnJpZGUoZmxvYXQgZGVuc2l0eVBlclBpeGVsLCBpbnQgZGVuc2l0eVBlcklu
Y2hIb3Jpem9udGFsbHksIGludCBkZW5zaXR5UGVySW5jaFZlcnRpY2FsbHksIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGJvb2wgZW5hYmxlZCwgRXhj
ZXB0aW9uQ29kZSYpOwogICAgIGJvb2wgc2Nyb2xsQW5pbWF0b3JFbmFibGVkKEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICB2b2lkIHNldENTU0V4Y2x1c2lvbnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhj
ZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5p
ZGwKaW5kZXggZjM0NjRiZTlhNGVjNjQ1NjRiNDM0NTA5Nzg3ZGY4NDdlM2VlODFjZS4uMTdmNzFh
YTg5ZDBkNjQxYmEwMDJhYzFiMGM3MWRkZDQ1ZWZhNjZhZCAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC01Niw2ICs1Niw3IEBACiAgICAgdm9pZCBz
ZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKGlu
IGxvbmcgd2lkdGgsIGluIGxvbmcgaGVpZ2h0KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2
b2lkIHNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKGluIGZsb2F0IGZvbnRTY2FsZUZh
Y3RvcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgdm9pZCBzZXRSZXNvbHV0aW9uT3ZlcnJp
ZGUoaW4gZmxvYXQgZGVuc2l0eVBlclBpeGVsLCBpbiBsb25nIGRlbnNpdHlQZXJJbmNoSG9yaXpv
bnRhbGx5LCBpbiBsb25nIGRlbnNpdHlQZXJJbmNoVmVydGljYWxseSkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAgICAgdm9pZCBzZXRFbmFibGVTY3JvbGxBbmltYXRvcihpbiBib29sZWFuIGVuYWJs
ZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIGJvb2xlYW4gc2Nyb2xsQW5pbWF0b3JFbmFi
bGVkKCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRDU1NFeGNsdXNpb25zRW5h
YmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc0
OTg3ZWRiYWUzNjg0YTliOTE3Yjc1YWYzNDFjNThhMzk0OTMwNTAuLjBjNWIzMTI2MDU1NWZlZGE3
NGUxZjdmZGM3YTRmOGJhNmQyZmVhY2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMC0x
NSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlc29sdXRpb24gbWVkaWEgcXVlcnkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5MDc3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCAocmVzb2x1dGlvbjogeCkg
bWVkaWEgcXVlcnkgdG8gZW5zdXJlIGNvbXBsaWFuY2UKKyAgICAgICAgd2l0aCBzcGVjIHBsdXMg
cHJvcG9zZWQgZHBweCB2YWx1ZXMuCisKKyAgICAgICAgKiBmYXN0L21lZGlhL21xLXJlc29sdXRp
b24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21xLXJlc29sdXRp
b24uaHRtbDogQWRkZWQuCisKIDIwMTItMTAtMTUgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5yZXZpZXdlZCBnYXJkZW5pbmcs
IFRlc3RFeHBlY3RhdGlvbnMgdXBkYXRlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
L21xLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlMTZlOGI5MjhkNDk3MGRi
OTY4NTE4MzBlOGUyMWM1NWQ3MThjYTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21xLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzggQEAKK0NT
UzMgbWVkaWEgcXVlcnkgdGVzdDogcmVzb2x1dGlvbiBxdWVyeSB3aXRoIGRwcHguIFVzaW5nIHN0
eWxlIGVsZW1lbnQsIEBtZWRpYSBjc3MgcnVsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMS41ZHBweCknKS5t
YXRjaGVzIGlzIHRydWUKK1BBU1Mgd2luZG93LmRldmljZVBpeGVsUmF0aW8gaXMgMS41CitQQVNT
IGRldmljZVBpeGVsUmF0aW9Gcm9tU3R5bGUoKSBpcyAxLjUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13
ZWJraXQtcmVzb2x1dGlvbjogMmRwcHgpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIHdpbmRvdy5k
ZXZpY2VQaXhlbFJhdGlvIGlzIDIKK1BBU1MgZGV2aWNlUGl4ZWxSYXRpb0Zyb21TdHlsZSgpIGlz
IDIKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMWRwcHgpJykubWF0Y2hl
cyBpcyB0cnVlCitQQVNTIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIGlzIDEKK1BBU1MgZGV2aWNl
UGl4ZWxSYXRpb0Zyb21TdHlsZSgpIGlzIDEKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVz
b2x1dGlvbiknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVz
b2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdl
YmtpdC1taW4tcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRj
aE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMgaXMgdHJ1
ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNo
ZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMTAw
ZHBjbSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJl
c29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygt
d2Via2l0LXJlc29sdXRpb24pJykubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCco
LXdlYmtpdC1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRj
aE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0Y2hlcyBpcyBmYWxzZQor
UEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNo
ZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMjYw
ZHBpKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJl
c29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygt
d2Via2l0LW1heC1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1h
dGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyBpcyBmYWxz
ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxMDJkcGNtKScpLm1hdGNo
ZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDEw
MGRwY20pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1y
ZXNvbHV0aW9uOiAxMDJkcGNtKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgn
KC13ZWJraXQtbWF4LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyBpcyBmYWxzZQorUEFT
UyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMTAyZHBjbSknKS5tYXRjaGVz
IGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQzNTJmZjYyNDNlNjFjMTg2NmM4YTBjNjQ2NGRhZTNhNDk4Y2I1NmMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRtbApAQCAtMCwwICsx
LDg0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKworPGRpdiBpZD0iZGV0ZWN0
b3IiPjwvZGl2PgorCis8c3R5bGU+CisgICAgI2RldGVjdG9yIHsgd2lkdGg6IDEwcHg7IH0KKyAg
ICBAbWVkaWEgKC13ZWJraXQtcmVzb2x1dGlvbjogICAxZHBweCkgeyAjZGV0ZWN0b3IgeyB3aWR0
aDogMTBweDsgfSB9CisgICAgQG1lZGlhICgtd2Via2l0LXJlc29sdXRpb246IDEuNWRwcHgpIHsg
I2RldGVjdG9yIHsgd2lkdGg6IDE1cHg7IH0gfQorICAgIEBtZWRpYSAoLXdlYmtpdC1yZXNvbHV0
aW9uOiAgIDJkcHB4KSB7ICNkZXRlY3RvciB7IHdpZHRoOiAyMHB4OyB9IH0KKzwvc3R5bGU+CisK
KzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNTUzMgbWVkaWEgcXVlcnkgdGVzdDogcmVzb2x1
dGlvbiBxdWVyeSB3aXRoIGRwcHguIFVzaW5nIHN0eWxlIGVsZW1lbnQsIEBtZWRpYSBjc3MgcnVs
ZS4iKQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIGZ1bmN0
aW9uIGRldmljZVBpeGVsUmF0aW9Gcm9tU3R5bGUoKSB7CisgICAgICAgICAgICB2YXIgd2lkdGgg
PSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXRlY3RvciIpKS53
aWR0aDsKKyAgICAgICAgICAgIHN3aXRjaCAod2lkdGgpIHsKKyAgICAgICAgICAgICAgICBjYXNl
ICIxMHB4IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAg
Y2FzZSAiMTVweCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxLjU7CisgICAgICAgICAg
ICAgICAgY2FzZSAiMjBweCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAg
ICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgxLjUsIDk2LCA5Nik7CisgICAgICAgIHNob3Vs
ZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxLjVkcHB4KScpLm1hdGNoZXMi
LCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgid2luZG93LmRldmljZVBpeGVsUmF0aW8iLCAi
MS41Iik7CisgICAgICAgIHNob3VsZEJlKCJkZXZpY2VQaXhlbFJhdGlvRnJvbVN0eWxlKCkiLCAi
MS41Iik7CisKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0aW9u
T3ZlcnJpZGUoMiwgOTYsIDk2KTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Vi
a2l0LXJlc29sdXRpb246IDJkcHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91
bGRCZSgid2luZG93LmRldmljZVBpeGVsUmF0aW8iLCAiMiIpOworICAgICAgICBzaG91bGRCZSgi
ZGV2aWNlUGl4ZWxSYXRpb0Zyb21TdHlsZSgpIiwgIjIiKTsKKworICAgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgxLCA5NiwgOTYpOworICAgICAg
ICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMWRwcHgpJykubWF0
Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuZGV2aWNlUGl4ZWxSYXRp
byIsICIxIik7CisgICAgICAgIHNob3VsZEJlKCJkZXZpY2VQaXhlbFJhdGlvRnJvbVN0eWxlKCki
LCAiMSIpOworCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlv
bk92ZXJyaWRlKDEsIDI1NCwgMjU0KTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygt
d2Via2l0LXJlc29sdXRpb24pJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJl
KCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyIsICJ0
cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1
dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgibWF0
Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIiwgInRy
dWUiKTsKKworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlv
bjogMTAwZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNo
TWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMiLCAidHJ1
ZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRp
b246IDEwMGRwY20pJykubWF0Y2hlcyIsICJ0cnVlIik7CisKKyAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMSwgMjU0LCAyNjApOworICAgICAg
ICAvLyBOb24tc3F1YXJlIG11c3QgbmV2ZXIgbWF0Y2guCisgICAgICAgIHNob3VsZEJlKCJtYXRj
aE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAg
ICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDI1NGRwaSknKS5t
YXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtp
dC1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOworCisgICAgICAgIHNo
b3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1h
dGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQt
bWluLXJlc29sdXRpb246IDI2MGRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNo
b3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1h
dGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0
LW1heC1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0Y2hlcyIsICJ0cnVlIik7CisKKyAgICAgICAg
Ly8gTm9uLXNxdWFyZSBtdXN0IG5ldmVyIG1hdGNoLgorICAgICAgICBzaG91bGRCZSgibWF0Y2hN
ZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIiwgImZhbHNlIik7
CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxMDJk
cGNtKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRp
YSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyIsICJ0cnVlIik7
CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjog
MTAyZHBjbSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1l
ZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIiwgImZhbHNl
Iik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlv
bjogMTAyZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICB9Cis8L3NjcmlwdD4KKworPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168914</attachid>
            <date>2012-10-16 04:00:08 -0700</date>
            <delta_ts>2012-10-16 05:12:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99077-20121016125856.patch</filename>
            <type>text/plain</type>
            <size>28834</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjNiZTgxZjRmYzk5NjM1
Y2FlN2ZiMmVjYTc0ODM3ODFjMTgxNWVhYi4uYWVlYjc2NDVkZTI1ZTFmMWRjYjlmNWNhNjgzM2I0
MzgzMmMwMDhlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEyLTEwLTE1ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBt
ZWRpYSBxdWVyeSBmZWF0dXJlIHdpdGggLXdlYmtpdAorICAgICAgICBwcmVmaXggZHVlIHRvIHRo
ZSBzdXBwb3J0IG9mIHRoZSBwcm9wb3NlZCBkcHB4IHZhbHVlcy4KKworICAgICAgICBBZGQgaW5m
cmFzdHJ1Y3R1cmUgdG8gbWFrZSBpdCB0ZXN0YWJsZS4KKworICAgICAgICBUZXN0OiBmYXN0L21l
ZGlhL21xLXJlc29sdXRpb24uaHRtbAorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNEZW5zaXR5UGVySW5j
aCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNEZW5zaXR5UGVyUGl4
ZWwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmlzRGVuc2l0eVBlckNl
bnRpbWV0ZXIpOgorICAgICAgICAoQ1NTUHJpbWl0aXZlVmFsdWUpOgorCisgICAgICAgICAgICBB
ZGQgZnVuY3Rpb24gZm9yIGNoZWNraW5nIHRoZSByZWNlbnRseSBhZGRlZCBkZW5zaXR5IHR5cGVz
LgorCisgICAgICAgICogY3NzL01lZGlhRmVhdHVyZU5hbWVzLmg6CisgICAgICAgIChNZWRpYUZl
YXR1cmVOYW1lcyk6CisKKyAgICAgICAgICAgIEFkZCBzdXBwb3J0IGZvciAtd2Via2l0LXJlc29s
dXRpb24sIC13ZWJraXQtbWluLXJlc29sdXRpb24KKyAgICAgICAgICAgIGFuZCAtd2Via2l0LW1h
eC1yZXNvbHV0aW9uLgorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Y29tcGFyZVJlc29sdXRpb24pOiBBZGQgbWV0aG9kcyBmb3IgY29t
cGFyaW5nIHJlc29sdXRpb25zLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpyZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjptaW5fcmVz
b2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6bWF4X3Jlc29sdXRp
b25NZWRpYUZlYXR1cmVFdmFsKToKKworICAgICAgICAgICAgSW1wbGVtZW50IHRoZSByZXNvbHV0
aW9uIG1ldGhvZCBldmFsdWF0aW9uLgorCisgICAgICAgICogY3NzL01lZGlhUXVlcnlFeHAuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6ZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZlRGVuc2l0eSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRob3V0VmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUV4cDo6TWVkaWFRdWVyeUV4cCk6CisKKyAg
ICAgICAgICAgIEhvb2sgdXAgcmVzb2x1dGlvbiB3aXRoIHRoZSByaWdodCBwcmUtY2hlY2tzLgor
CisgICAgICAgKiBwYWdlL1NjcmVlbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW46Omhv
cml6b250YWxEUEkpOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuOjp2ZXJ0aWNhbERQSSk6CisK
KyAgICAgICAgICAgIENoZWNrIHdoZXRoZXIgYW4gb3ZlcnJpZGUgZXhpc3RzLCBhbmQgaWYgc28s
IHVzZXMgaXQuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNldHRpbmdzOjpzZXRSZXNvbHV0aW9uT3ZlcnJpZGUpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoU2V0dGluZ3MpOgorICAgICAg
ICAoV2ViQ29yZTo6U2V0dGluZ3M6OnJlc29sdXRpb25PdmVycmlkZSk6CisKKyAgICAgICAgICAg
IEFkZCBhIHJlc29sdXRpb24gb3ZlcnJpZGUgdG8gc2V0dGluZ3MuCisKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0
aW5nczo6QmFja3VwOjpCYWNrdXApOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5n
czo6QmFja3VwOjpyZXN0b3JlVG8pOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5n
czo6c2V0UmVzb2x1dGlvbk92ZXJyaWRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAgICAoQmFja3VwKToKKyAgICAgICAg
KEludGVybmFsU2V0dGluZ3MpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5p
ZGw6CisKKyAgICAgICAgICAgIEFkZCBhIG5ldyBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUgbWV0aG9k
IHRvIGludGVybmFscy5zZXR0aW5ncy4KKwogMjAxMi0xMC0xNiAgS2VudCBUYW11cmEgIDx0a2Vu
dEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRml4IHNvbWUgYXBwZWFyYW5jZSBnbGl0Y2hlcyBv
ZiBtdWx0aXBsZSBmaWVsZHMgaW5wdXQgZWxlbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXgg
ODcwZmI3MTlmYzAwZmZjMGNiZDQxYTg2ZTg1YjFmOTIyYTE2NTRmOC4uMGI5M2QxMTNhMGQ1ZjU3
NjQ3Y2Q3YjYwNDBhOWE5YWViZDc5YWZlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTk1Nyw2
ICs5NTcsNyBAQCBfX1pON1dlYkNvcmU4U2V0dGluZ3M0MHNldFRleHREaXJlY3Rpb25TdWJtZW51
SW5jbHVzaW9uQmVoYXZpb3JFTlNfMzdUZXh0RGlyZWN0aQogX19aTjdXZWJDb3JlOFNldHRpbmdz
NDFzZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrc0ViCiBfX1pON1dlYkNv
cmU4U2V0dGluZ3M0NHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5n
RWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczQ1c2V0U2hvdWxkUmVzcGVjdFByaW9yaXR5SW5DU1NB
dHRyaWJ1dGVTZXR0ZXJzRWIKK19fWk43V2ViQ29yZThTZXR0aW5nczIxc2V0UmVzb2x1dGlvbk92
ZXJyaWRlRVJLTlNfN0ludFJlY3RFCiBfX1pON1dlYkNvcmU4YmxhbmtVUkxFdgogX19aTjdXZWJD
b3JlOG1ha2VSR0JBRWlpaWkKIF9fWk43V2ViQ29yZThvcGVuRmlsZUVSS04zV1RGNlN0cmluZ0VO
U18xMkZpbGVPcGVuTW9kZUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKaW5k
ZXggYWEyZGJlYWMzMmRkYjM4NzdiMWRiNWVmYmQwYWFlZTc3MTJkNjg2Ni4uNDFjOWMzYWYzODQ1
ZDg4NGUyYTVlMmRkNTc3OWNlZjUzMmZiYTkwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmgKQEAgLTE4MSw2ICsxODEsMTAgQEAgcHVibGljOgogICAgIGJvb2wgaXNDYWxj
dWxhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfQ0FMQzsg
fQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdpdGhOdW1iZXIoKSBjb25zdCB7IHJl
dHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVSQ0VOVEFHRV9XSVRIX05VTUJFUjsg
fQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdpdGhMZW5ndGgoKSBjb25zdCB7IHJl
dHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVSQ0VOVEFHRV9XSVRIX0xFTkdUSDsg
fQorICAgIGJvb2wgaXNEZW5zaXR5UGVySW5jaCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5
cGUoKSA9PSBDU1NfRFBJOyB9CisgICAgYm9vbCBpc0RlbnNpdHlQZXJQaXhlbCgpIGNvbnN0IHsg
cmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBQWDsgfQorICAgIGJvb2wgaXNEZW5zaXR5
UGVyQ2VudGltZXRlcigpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBD
TTsgfQorCiAjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCiAgICAgYm9vbCBpc1ZhcmlhYmxlTmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfVkFSSUFCTEVfTkFNRTsg
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFt
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCmluZGV4IGIwODQz
OWU0YTAxODM0OTIyZmRhMDBlOGFkOTdlZmYyMGZiZWMwZmMuLjRjZWMyNTQ1ZjU4NTNjNGVhOWRm
YWVmNWYxNjU3ODA1ZWQ2OWQzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRp
YUZlYXR1cmVOYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1l
cy5oCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhtYXhf
aGVpZ2h0LCAibWF4LWhlaWdodCIpIFwKICAgICBtYWNybyhtYXhfbW9ub2Nocm9tZSwgIm1heC1t
b25vY2hyb21lIikgXAogICAgIG1hY3JvKG1heF93aWR0aCwgIm1heC13aWR0aCIpIFwKKyAgICBt
YWNybyhtYXhfcmVzb2x1dGlvbiwgIi13ZWJraXQtbWF4LXJlc29sdXRpb24iKSBcCiAgICAgbWFj
cm8obWluX2NvbG9yLCAibWluLWNvbG9yIikgXAogICAgIG1hY3JvKG1pbl9hc3BlY3RfcmF0aW8s
ICJtaW4tYXNwZWN0LXJhdGlvIikgXAogICAgIG1hY3JvKG1pbl9kZXZpY2VfYXNwZWN0X3JhdGlv
LCAibWluLWRldmljZS1hc3BlY3QtcmF0aW8iKSBcCkBAIC01Niw3ICs1Nyw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBtYWNybyhtaW5faGVpZ2h0LCAibWluLWhlaWdodCIpIFwKICAgICBt
YWNybyhtaW5fbW9ub2Nocm9tZSwgIm1pbi1tb25vY2hyb21lIikgXAogICAgIG1hY3JvKG1pbl93
aWR0aCwgIm1pbi13aWR0aCIpIFwKKyAgICBtYWNybyhtaW5fcmVzb2x1dGlvbiwgIi13ZWJraXQt
bWluLXJlc29sdXRpb24iKSBcCiAgICAgbWFjcm8ocG9pbnRlciwgInBvaW50ZXIiKSBcCisgICAg
bWFjcm8ocmVzb2x1dGlvbiwgIi13ZWJraXQtcmVzb2x1dGlvbiIpIFwKICAgICBtYWNybyh0cmFu
c2Zvcm1fMmQsICItd2Via2l0LXRyYW5zZm9ybS0yZCIpIFwKICAgICBtYWNybyh0cmFuc2Zvcm1f
M2QsICItd2Via2l0LXRyYW5zZm9ybS0zZCIpIFwKICAgICBtYWNybyh0cmFuc2l0aW9uLCAiLXdl
YmtpdC10cmFuc2l0aW9uIikgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0
b3IuY3BwCmluZGV4IGRhYTQ5MGI4YmRjODQ2ODdjNzQ5YTliNTEwZTQ0YzM5YzY5MTA4ZTUuLjFl
NTNiOWUwNzc3NmVjMzY4NmE3ZDRlNzQ5NzhkNjI5OTdkOTFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNp
bmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRl
ICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgpAQCAtNDgsNiArNDksNyBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJS
ZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU2NyZWVuLmgi
CiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAK
QEAgLTE5Nyw2ICsxOTksMjEgQEAgc3RhdGljIGJvb2wgY29tcGFyZUFzcGVjdFJhdGlvVmFsdWUo
Q1NTVmFsdWUqIHZhbHVlLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIE1lZGkKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKK3N0YXRpYyBib29sIGNvbXBhcmVSZXNvbHV0aW9uKHVuc2lnbmVkIG1pbiwg
dW5zaWduZWQgbWF4LCB1bnNpZ25lZCB2YWx1ZSwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQorewor
ICAgIHN3aXRjaCAob3ApIHsKKyAgICBjYXNlIE5vUHJlZml4OgorICAgICAgICAvLyBBICdyZXNv
bHV0aW9uJyAod2l0aG91dCBhICJtaW4tIiBvciAibWF4LSIgcHJlZml4KSBxdWVyeQorICAgICAg
ICAvLyBuZXZlciBtYXRjaGVzIGEgZGV2aWNlIHdpdGggbm9uLXNxdWFyZSBwaXhlbHMuCisgICAg
ICAgIHJldHVybiBtaW4gPT0gbWF4OworICAgIGNhc2UgTWluUHJlZml4OgorICAgICAgICByZXR1
cm4gbWluID49IHZhbHVlOworICAgIGNhc2UgTWF4UHJlZml4OgorICAgICAgICByZXR1cm4gbWF4
IDw9IHZhbHVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyBib29sIG51
bWJlclZhbHVlKENTU1ZhbHVlKiB2YWx1ZSwgZmxvYXQmIHJlc3VsdCkKIHsKICAgICBpZiAodmFs
dWUtPmlzUHJpbWl0aXZlVmFsdWUoKQpAQCAtMjc4LDYgKzI5NSw1NCBAQCBzdGF0aWMgYm9vbCBk
ZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlICp2YWx1ZSwgUmVuZGVy
U3R5bGUqLCBGcgogICAgIHJldHVybiBmcmFtZS0+cGFnZSgpLT5kZXZpY2VTY2FsZUZhY3Rvcigp
ICE9IDA7CiB9CiAKK3N0YXRpYyBib29sIHJlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1Zh
bHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZp
eCBvcCkKK3sKKyAgICB1bnNpZ25lZCBob3JpRFBJID0gZnJhbWUtPmRvY3VtZW50KCktPmRvbVdp
bmRvdygpLT5zY3JlZW4oKS0+aG9yaXpvbnRhbERQSSgpOworICAgIHVuc2lnbmVkIHZlcnREUEkg
PSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPnNjcmVlbigpLT52ZXJ0aWNhbERQSSgp
OworCisgICAgdW5zaWduZWQgbWluRFBJID0gc3RkOjptaW4oaG9yaURQSSwgdmVydERQSSk7Cisg
ICAgdW5zaWduZWQgbWF4RFBJID0gc3RkOjptYXgoaG9yaURQSSwgdmVydERQSSk7CisKKyAgICAv
LyBBY2NvcmRpbmcgdG8gc3BlYywgKHJlc29sdXRpb24pIHdpbGwgZXZhbHVhdGUgdG8gdHJ1ZSBp
ZiAocmVzb2x1dGlvbjp4KQorICAgIC8vIHdpbGwgZXZhbHVhdGUgdG8gdHJ1ZSBmb3IgYSB2YWx1
ZSB4IG90aGVyIHRoYW4gemVybyBvciB6ZXJvIGZvbGxvd2VkIGJ5CisgICAgLy8gYSB2YWxpZCB1
bml0IGlkZW50aWZpZXIgKGkuZS4sIG90aGVyIHRoYW4gMCwgMGRwaSwgMGRwY20sIG9yIDBkcHB4
LikuCisgICAgLy8KKyAgICAvLyBUaGlzIGlzIGFjdHVhbGx5IGFsd2F5cyB0aGUgY2FzZSB3aXRo
IHRoZSBkcHB4LCB3aGljaCB3ZSBpZ25vcmUgYXMgaXQgaXMKKyAgICAvLyBhIHNwZWNpYWwtY2Fz
ZSBpbiB0aGUgc2Vuc2UgaXQgY2FuIGJlIG91dCBvZiBzeW5jIHdpdGggZHBpIGFuZCBkcGNtLiBG
b3IKKyAgICAvLyBpbnN0YW5jZSwgYm90aCBhIGRldmljZSB3aXRoIDk2ZHBpIGFuZCAxNjBkcGkg
Y2FuIGhhdmUgYSBkcHB4IG9mIDEuCisgICAgLy8KKyAgICAvLyBUaGlzIGxlYXZlcyB0aGUgY2Fz
ZSBvZiBzcXVhcmVkIHBpeGVscy4KKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAgIEFTU0VSVChv
cCA9PSBOb1ByZWZpeCk7CisgICAgICAgIHJldHVybiBtaW5EUEkgPT0gbWF4RFBJOworICAgIH0K
KworICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHJhd1ZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7CisgICAgaWYgKHJhd1ZhbHVlLT5pc0RlbnNpdHlQZXJQ
aXhlbCgpKSB7CisgICAgICAgIGZsb2F0IGFjdHVhbERlbnNpdHkgPSBmcmFtZS0+cGFnZSgpLT5k
ZXZpY2VTY2FsZUZhY3RvcigpOworICAgICAgICBmbG9hdCB0ZXN0ZWREZW5zaXR5ID0gcmF3VmFs
dWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUFBYKTsKKyAgICAgICAg
cmV0dXJuIGNvbXBhcmVWYWx1ZShhY3R1YWxEZW5zaXR5LCB0ZXN0ZWREZW5zaXR5LCBvcCk7Cisg
ICAgfQorCisgICAgaWYgKHJhd1ZhbHVlLT5pc0RlbnNpdHlQZXJJbmNoKCkpIHsKKyAgICAgICAg
dW5zaWduZWQgdGVzdGVkRGVuc2l0eSA9IHJhd1ZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfRFBJKTsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmVSZXNvbHV0aW9uKG1p
bkRQSSwgbWF4RFBJLCB0ZXN0ZWREZW5zaXR5LCBvcCk7CisgICAgfQorCisgICAgdW5zaWduZWQg
bWluRFBDTSA9IGZsb29yKG1pbkRQSSAvIDIuNTQpOyAvLyAoMi41NCBjbS9pbikKKyAgICB1bnNp
Z25lZCBtYXhEUENNID0gZmxvb3IobWF4RFBJIC8gMi41NCk7CisKKyAgICBpZiAocmF3VmFsdWUt
PmlzRGVuc2l0eVBlckNlbnRpbWV0ZXIoKSkgeworICAgICAgICB1bnNpZ25lZCB0ZXN0ZWREZW5z
aXR5ID0gcmF3VmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUENN
KTsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmVSZXNvbHV0aW9uKG1pbkRQQ00sIG1heERQQ00sIHRl
c3RlZERlbnNpdHksIG9wKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRp
YyBib29sIGdyaWRNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUq
LCBGcmFtZSosIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsKICAgICAvLyBpZiBvdXRwdXQgZGV2
aWNlIGlzIGJpdG1hcCwgZ3JpZDogMCA9PSB0cnVlCkBAIC00NTYsNiArNTIxLDE2IEBAIHN0YXRp
YyBib29sIG1heF9kZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwg
UmVuZGVyU3R5bGUqIHN0eWxlCiAgICAgcmV0dXJuIGRldmljZV93aWR0aE1lZGlhRmVhdHVyZUV2
YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWF4UHJlZml4KTsKIH0KIAorc3RhdGljIGJvb2wgbWlu
X3Jlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUq
IHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKK3sKKyAgICByZXR1cm4g
cmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWluUHJlZml4
KTsKK30KKworc3RhdGljIGJvb2wgbWF4X3Jlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1Zh
bHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVy
ZVByZWZpeCkKK3sKKyAgICByZXR1cm4gcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwodmFsdWUs
IHN0eWxlLCBmcmFtZSwgTWF4UHJlZml4KTsKK30KKwogc3RhdGljIGJvb2wgYW5pbWF0aW9uTWVk
aWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqLCBNZWRp
YUZlYXR1cmVQcmVmaXggb3ApCiB7CiAgICAgaWYgKHZhbHVlKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeUV4cC5jcHAKaW5kZXggMWEwNmI3OTY1ZmNjYjk4YTA5MzU2OTU2OTc1OGIyMWZjNmUy
OTk4MS4uZTBlMmIzMWViMTRjNDg5ODJmZDRlZDRkMDMyNjk1MTJmZDkyN2NkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcApAQCAtNjcsNiArNjcsMTYgQEAgc3RhdGljIGlubGlu
ZSBib29sIGZlYXR1cmVXaXRoVmFsaWRQb3NpdGl2ZUxlbmdodE9yTnVtYmVyKGNvbnN0IEF0b21p
Y1N0cmluZyYgbWUKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
OjptaW5fZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wg
ZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZlRGVuc2l0eShjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlh
RmVhdHVyZSwgY29uc3QgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlKQoreworICAgIGlmICgodmFsdWUt
PnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUFBYICYmIHZhbHVlLT51bml0ICE9IENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBJICYmIHZhbHVlLT51bml0ICE9IENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfRFBDTSkgfHwgdmFsdWUtPmZWYWx1ZSA8IDApCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIHJldHVybiBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnJlc29s
dXRpb25NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVy
ZU5hbWVzOjptYXhfcmVzb2x1dGlvbk1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1
cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbl9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlOworfQor
CiBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhQb3NpdGl2ZUludGVnZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBtZWRpYUZlYXR1cmUsIGNvbnN0IENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKIHsK
ICAgICBpZiAoIXZhbHVlLT5pc0ludCB8fCB2YWx1ZS0+ZlZhbHVlIDwgMCkKQEAgLTExNCw2ICsx
MjQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhBc3BlY3RSYXRpbyhjb25zdCBB
dG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSkKIAogc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVX
aXRob3V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUpCiB7CisgICAgLy8g
TWVkaWEgZmVhdHVyZXMgdGhhdCBhcmUgcHJlZml4ZWQgYnkgbWluL21heCBjYW5ub3QgYmUgdXNl
ZCB3aXRob3V0IGEgdmFsdWUuCiAgICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1
cmVOYW1lczo6bW9ub2Nocm9tZU1lZGlhRmVhdHVyZQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUg
PT0gTWVkaWFGZWF0dXJlTmFtZXM6OmNvbG9yTWVkaWFGZWF0dXJlCiAgICAgICAgIHx8IG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6Z3JpZE1lZGlhRmVhdHVyZQpAQCAtMTMxLDcg
KzE0Miw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aG91dFZhbHVlKGNvbnN0IEF0
b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlKQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVk
aWFGZWF0dXJlTmFtZXM6OmFuaW1hdGlvbk1lZGlhRmVhdHVyZQogICAgICAgICB8fCBtZWRpYUZl
YXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnZpZXdfbW9kZU1lZGlhRmVhdHVyZQogICAgICAg
ICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnBvaW50ZXJNZWRpYUZlYXR1
cmUKLSAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2Vf
cGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmU7CisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRp
YUZlYXR1cmVOYW1lczo6ZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlCisgICAgICAgIHx8
IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6cmVzb2x1dGlvbk1lZGlhRmVhdHVy
ZTsKIH0KIAogaW5saW5lIE1lZGlhUXVlcnlFeHA6Ok1lZGlhUXVlcnlFeHAoY29uc3QgQXRvbWlj
U3RyaW5nJiBtZWRpYUZlYXR1cmUsIENTU1BhcnNlclZhbHVlTGlzdCogdmFsdWVMaXN0KQpAQCAt
MTQ4LDYgKzE2MCwxMCBAQCBpbmxpbmUgTWVkaWFRdWVyeUV4cDo6TWVkaWFRdWVyeUV4cChjb25z
dCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgQ1NTUGFyc2VyVgogICAgICAgICAgICAgaWYg
KGZlYXR1cmVXaXRoQ1NTVmFsdWVJRChtZWRpYUZlYXR1cmUsIHZhbHVlKSkKICAgICAgICAgICAg
ICAgICBtX3ZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIodmFsdWUt
PmlkKTsKIAorICAgICAgICAgICAgLy8gTWVkaWEgZmVhdHVyZXMgdGhhdCBtdXN0IGhhdmUgbm9u
LW5lZ2F0aXZlIDxkZW5zaXR5PiwgaWUuIGRwcHgsIGRwaSBvciBkcGNtLgorICAgICAgICAgICAg
ZWxzZSBpZiAoZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZlRGVuc2l0eShtZWRpYUZlYXR1cmUsIHZh
bHVlKSkKKyAgICAgICAgICAgICAgICBtX3ZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZSh2YWx1ZS0+ZlZhbHVlLCAoQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcykgdmFsdWUtPnVu
aXQpOworCiAgICAgICAgICAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IG11c3QgaGF2ZSBub24t
bmVnYXRpdmUgPGxlbmdodD4gb3IgbnVtYmVyIHZhbHVlLgogICAgICAgICAgICAgZWxzZSBpZiAo
ZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZlTGVuZ2h0T3JOdW1iZXIobWVkaWFGZWF0dXJlLCB2YWx1
ZSkpCiAgICAgICAgICAgICAgICAgbV92YWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUo
dmFsdWUtPmZWYWx1ZSwgKENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpIHZhbHVlLT51bml0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcAppbmRleCBlMWUxZDExNzM4NmY2MjJlZTNjMTkzYjNlNTAy
MmM4ODNhOGMyNWIxLi40MGEzODhlZDIzYTRhNTg4M2UwMThkYTE1YzFmNWE4M2E0OTI0Y2JkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TY3JlZW4uY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1TY3JlZW4uaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldpZGdl
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OCw2ICs0OSwxMSBAQCB1bnNpZ25lZCBT
Y3JlZW46Omhvcml6b250YWxEUEkoKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKICAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICBJbnRTaXplIG92ZXJyaWRlID0gbV9mcmFtZS0+cGFnZSgpLT5z
ZXR0aW5ncygpLT5yZXNvbHV0aW9uT3ZlcnJpZGUoKTsKKyAgICBpZiAoIW92ZXJyaWRlLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIG92ZXJyaWRlLndpZHRoKCk7CisKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHNjcmVlbkhvcml6b250YWxEUEkobV9mcmFtZS0+dmlldygpKSk7
CiB9CiAKQEAgLTU1LDYgKzYxLDExIEBAIHVuc2lnbmVkIFNjcmVlbjo6dmVydGljYWxEUEkoKSBj
b25zdAogewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIDA7CisKKyAgICBJbnRT
aXplIG92ZXJyaWRlID0gbV9mcmFtZS0+cGFnZSgpLT5zZXR0aW5ncygpLT5yZXNvbHV0aW9uT3Zl
cnJpZGUoKTsKKyAgICBpZiAoIW92ZXJyaWRlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG92
ZXJyaWRlLmhlaWdodCgpOworCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzY3Jl
ZW5WZXJ0aWNhbERQSShtX2ZyYW1lLT52aWV3KCkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcAppbmRleCA5ODc2YWY1Yzc2ZDIyNTVjZWIyZjg4MGI4NDk1MTlkMjZjM2QzZWQ0Li43NGI5
MmY5ZjljMzk3MTE1OTk0NDJjNzE0NGI5ZGFlYmU1ZDc3NzhlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmNwcApAQCAtNDU5LDYgKzQ1OSwxNSBAQCB2b2lkIFNldHRpbmdzOjpzZXRUZXh0QXV0b3Np
emluZ0ZvbnRTY2FsZUZhY3RvcihmbG9hdCBmb250U2NhbGVGYWN0b3IpCiAKICNlbmRpZgogCit2
b2lkIFNldHRpbmdzOjpzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoY29uc3QgSW50U2l6ZSYgZGVuc2l0
eVBlckluY2hPdmVycmlkZSkKK3sKKyAgICBpZiAobV9yZXNvbHV0aW9uRGVuc2l0eVBlckluY2hP
dmVycmlkZSA9PSBkZW5zaXR5UGVySW5jaE92ZXJyaWRlKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3Jlc29sdXRpb25EZW5zaXR5UGVySW5jaE92ZXJyaWRlID0gZGVuc2l0eVBlckluY2hPdmVy
cmlkZTsKKyAgICBtX3BhZ2UtPnNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOworfQor
CiB2b2lkIFNldHRpbmdzOjpzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoYm9vbCBsb2Fkc0lt
YWdlc0F1dG9tYXRpY2FsbHkpCiB7CiAgICAgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgPSBs
b2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggODk3ODVk
MTJmNmUyOTE2NmRhYzNiYWZjYmVmNzBiMDVkZWZmYjQ2YS4uYzcxZjMyZTg2MWQ3MWQ3YzYyODQz
NjA5YWNmNGUzNTUyYmE0MzAzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMjksNiArMjks
NyBAQAogCiAjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCIKICNpbmNsdWRlICJGb250
UmVuZGVyaW5nTW9kZS5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJLVVJMLmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJUaW1lci5oIgpAQCAtMzcs
MTAgKzM4LDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+CiAjaW5j
bHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgogCi0jaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklO
RykKLSNpbmNsdWRlICJJbnRTaXplLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgY2xhc3MgUGFnZTsKQEAgLTEyMyw2ICsxMjAsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBjb25zdCBJbnRTaXplJiB0ZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlk
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGU7IH0K
ICNlbmRpZgogCisgICAgICAgIC8vIE9ubHkgc2V0IGJ5IExheW91dCBUZXN0cy4KKyAgICAgICAg
dm9pZCBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoY29uc3QgSW50U2l6ZSYpOworICAgICAgICBjb25z
dCBJbnRTaXplJiByZXNvbHV0aW9uT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdXRp
b25EZW5zaXR5UGVySW5jaE92ZXJyaWRlOyB9CisKICAgICAgICAgLy8gVW5saWtlIGFyZUltYWdl
c0VuYWJsZWQsIHRoaXMgb25seSBzdXBwcmVzc2VzIHRoZSBuZXR3b3JrIGxvYWQgb2YKICAgICAg
ICAgLy8gdGhlIGltYWdlIFVSTC4gIEEgY2FjaGVkIGltYWdlIHdpbGwgc3RpbGwgYmUgcmVuZGVy
ZWQgaWYgcmVxdWVzdGVkLgogICAgICAgICB2b2lkIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxs
eShib29sKTsKQEAgLTY4Niw2ICs2ODcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IEludFNpemUgbV90ZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZTsKICAgICAgICAgYm9v
bCBtX3RleHRBdXRvc2l6aW5nRW5hYmxlZCA6IDE7CiAjZW5kaWYKKyAgICAgICAgSW50U2l6ZSBt
X3Jlc29sdXRpb25EZW5zaXR5UGVySW5jaE92ZXJyaWRlOwogICAgICAgICBib29sIG1faXNTcGF0
aWFsTmF2aWdhdGlvbkVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNKYXZhRW5hYmxlZCA6
IDE7CiAgICAgICAgIGJvb2wgbV9pc0phdmFFbmFibGVkRm9yTG9jYWxGaWxlcyA6IDE7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCA4ZDhmMGNiNDA5
MDAzNjVlNjBhNDM4NGVjYjA5NzQwNTQ3NzE1YWY5Li5hYjQ1YjJhN2RlODM1YWZiM2YxMmExNWIy
YTRmZGZkODRjYTdjYTVjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5jcHAKQEAgLTk3LDYgKzk3LDggQEAgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNr
dXAoUGFnZSogcGFnZSwgU2V0dGluZ3MqIHNldHRpbmdzKQogICAgICwgbV9vcmlnaW5hbFRleHRB
dXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKHNldHRpbmdzLT50ZXh0QXV0b3NpemluZ1dpbmRv
d1NpemVPdmVycmlkZSgpKQogICAgICwgbV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nRm9udFNjYWxl
RmFjdG9yKHNldHRpbmdzLT50ZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcigpKQogI2VuZGlm
CisgICAgLCBtX29yaWdpbmFsRGV2aWNlU2NhbGVGYWN0b3IocGFnZS0+ZGV2aWNlU2NhbGVGYWN0
b3IoKSkKKyAgICAsIG1fb3JpZ2luYWxSZXNvbHV0aW9uT3ZlcnJpZGUoc2V0dGluZ3MtPnJlc29s
dXRpb25PdmVycmlkZSgpKQogI2lmIEVOQUJMRShESUFMT0dfRUxFTUVOVCkKICAgICAsIG1fb3Jp
Z2luYWxEaWFsb2dFbGVtZW50RW5hYmxlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpkaWFsb2dF
bGVtZW50RW5hYmxlZCgpKQogI2VuZGlmCkBAIC0xMzYsNiArMTM4LDggQEAgdm9pZCBJbnRlcm5h
bFNldHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVUbyhQYWdlKiBwYWdlLCBTZXR0aW5ncyogc2V0dGlu
Z3MpCiAgICAgc2V0dGluZ3MtPnNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKG1f
b3JpZ2luYWxUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSk7CiAgICAgc2V0dGluZ3Mt
PnNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKG1fb3JpZ2luYWxUZXh0QXV0b3Npemlu
Z0ZvbnRTY2FsZUZhY3Rvcik7CiAjZW5kaWYKKyAgICBwYWdlLT5zZXREZXZpY2VTY2FsZUZhY3Rv
cihtX29yaWdpbmFsRGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHNldHRpbmdzLT5zZXRSZXNvbHV0
aW9uT3ZlcnJpZGUobV9vcmlnaW5hbFJlc29sdXRpb25PdmVycmlkZSk7CiAjaWYgRU5BQkxFKERJ
QUxPR19FTEVNRU5UKQogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldERpYWxvZ0VsZW1l
bnRFbmFibGVkKG1fb3JpZ2luYWxEaWFsb2dFbGVtZW50RW5hYmxlZCk7CiAjZW5kaWYKQEAgLTQx
Myw2ICs0MTcsMTQgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRUZXh0QXV0b3NpemluZ1dp
bmRvd1NpemVPdmVycmlkZShpbnQgd2lkdGgsIGludCBoZWlnaHQKICNlbmRpZgogfQogCit2b2lk
IEludGVybmFsU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVycmlkZShmbG9hdCBkZW5zaXR5UGVy
UGl4ZWwsIGludCBkZW5zaXR5UGVySW5jaEhvcml6b250YWxseSwgaW50IGRlbnNpdHlQZXJJbmNo
VmVydGljYWxseSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSW50ZXJuYWxTZXR0aW5nc0d1
YXJkRm9yU2V0dGluZ3MoKTsKKyAgICAvLyBBbiBlbXB0eSBzaXplIHJlc2V0cyB0aGUgb3ZlcnJp
ZGUuCisgICAgc2V0dGluZ3MoKS0+c2V0UmVzb2x1dGlvbk92ZXJyaWRlKEludFNpemUoZGVuc2l0
eVBlckluY2hIb3Jpem9udGFsbHksIGRlbnNpdHlQZXJJbmNoVmVydGljYWxseSkpOworICAgIHBh
Z2UoKS0+c2V0RGV2aWNlU2NhbGVGYWN0b3IoZGVuc2l0eVBlclBpeGVsKTsKK30KKwogdm9pZCBJ
bnRlcm5hbFNldHRpbmdzOjpzZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcihmbG9hdCBm
b250U2NhbGVGYWN0b3IsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogI2lmIEVOQUJMRShURVhUX0FV
VE9TSVpJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4
IDc4ZjM2ZTAxNzYxY2ViZGMzMWQ4OTQyMTlkMzIwYjYwMmExNjliNGYuLjBmMGJiNTljM2FlYThk
YWViYTA5MDY3OWRiNzYxMjRhMWRlN2FlYzAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5oCkBAIC0yNywxNSArMjcsMTIgQEAKICNkZWZpbmUgSW50ZXJuYWxTZXR0
aW5nc19oCiAKICNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgorI2luY2x1ZGUgIklu
dFNpemUuaCIKICNpbmNsdWRlICJSZWZDb3VudGVkU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCi0jaW5j
bHVkZSAiSW50U2l6ZS5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdHlwZWRl
ZiBpbnQgRXhjZXB0aW9uQ29kZTsKQEAgLTc5LDYgKzc2LDggQEAgcHVibGljOgogICAgICAgICBJ
bnRTaXplIG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZTsKICAgICAg
ICAgZmxvYXQgbV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yOwogI2VuZGlm
CisgICAgICAgIGZsb2F0IG1fb3JpZ2luYWxEZXZpY2VTY2FsZUZhY3RvcjsKKyAgICAgICAgSW50
U2l6ZSBtX29yaWdpbmFsUmVzb2x1dGlvbk92ZXJyaWRlOwogI2lmIEVOQUJMRShESUFMT0dfRUxF
TUVOVCkKICAgICAgICAgYm9vbCBtX29yaWdpbmFsRGlhbG9nRWxlbWVudEVuYWJsZWQ7CiAjZW5k
aWYKQEAgLTEyNyw2ICsxMjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUZXh0QXV0b3Npemlu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRUZXh0
QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShpbnQgd2lkdGgsIGludCBoZWlnaHQsIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKGZs
b2F0IGZvbnRTY2FsZUZhY3RvciwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0UmVzb2x1
dGlvbk92ZXJyaWRlKGZsb2F0IGRlbnNpdHlQZXJQaXhlbCwgaW50IGRlbnNpdHlQZXJJbmNoSG9y
aXpvbnRhbGx5LCBpbnQgZGVuc2l0eVBlckluY2hWZXJ0aWNhbGx5LCBFeGNlcHRpb25Db2RlJik7
CiAgICAgdm9pZCBzZXRFbmFibGVTY3JvbGxBbmltYXRvcihib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICBib29sIHNjcm9sbEFuaW1hdG9yRW5hYmxlZChFeGNlcHRpb25Db2RlJik7
CiAgICAgdm9pZCBzZXRDU1NFeGNsdXNpb25zRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmlu
ZGV4IGYzNDY0YmU5YTRlYzY0NTY0YjQzNDUwOTc4N2RmODQ3ZTNlZTgxY2UuLjE3ZjcxYWE4OWQw
ZDY0MWJhMDAyYWMxYjBjNzFkZGQ0NWVmYTY2YWQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtNTYsNiArNTYsNyBAQAogICAgIHZvaWQgc2V0VGV4
dEF1dG9zaXppbmdFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgdm9pZCBzZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShpbiBsb25n
IHdpZHRoLCBpbiBsb25nIGhlaWdodCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBz
ZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcihpbiBmbG9hdCBmb250U2NhbGVGYWN0b3Ip
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgIHZvaWQgc2V0UmVzb2x1dGlvbk92ZXJyaWRlKGlu
IGZsb2F0IGRlbnNpdHlQZXJQaXhlbCwgaW4gbG9uZyBkZW5zaXR5UGVySW5jaEhvcml6b250YWxs
eSwgaW4gbG9uZyBkZW5zaXR5UGVySW5jaFZlcnRpY2FsbHkpIHJhaXNlcyhET01FeGNlcHRpb24p
OwogICAgIHZvaWQgc2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoaW4gYm9vbGVhbiBlbmFibGVkKSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICBib29sZWFuIHNjcm9sbEFuaW1hdG9yRW5hYmxlZCgp
IHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQo
aW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMu
ZmlsdGVyCmluZGV4IGFlZDU0YWYyMWFjOGM4ODRiZGVlMjI0ZTg5YmUyZTZjYTg0NWFmZGYuLmNm
NDUzNjQ2M2U3NjMwYzAwYmY5OGNlMTEyZmQwNDQ4MjJkOWU2NDIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xz
LmZpbHRlcgpAQCAtMTc1LDYgKzE3NSw3IEBAIF9aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRNb2Nr
U2Nyb2xsYmFyc0VuYWJsZWRFYjsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRVc2VzT3Zlcmxh
eVNjcm9sbGJhcnNFYjsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRTdG9yYWdlQmxvY2tpbmdQ
b2xpY3lFTlNfMTRTZWN1cml0eU9yaWdpbjIxU3RvcmFnZUJsb2NraW5nUG9saWN5RTsKIF9aTjdX
ZWJDb3JlOFNldHRpbmdzMzdzZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lRWI7
CitfWk43V2ViQ29yZThTZXR0aW5nczIxc2V0UmVzb2x1dGlvbk92ZXJyaWRlRVJLTlNfN0ludFNp
emVFCiBfWk43V2ViQ29yZTlGcmFtZVZpZXcxN3BhaW50Q29udHJvbFRpbnRzRXY7CiBfWk43V2Vi
Q29yZTlGcmFtZVZpZXcxOXNjcm9sbEVsZW1lbnRUb1JlY3RFUE5TXzdFbGVtZW50RVJLTlNfN0lu
dFJlY3RFOwogX1pON1dlYkNvcmUyMlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMzMWlzTXVsdGlwbGVT
aGFkb3dTdWJ0cmVlc0VuYWJsZWRFOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDliZWYzZDRhNTBmMjI5M2I5Y2RlOTM4OTY3
MzUxYmY2NWNjZWRmM2IuLjdlMDNkOTQ2NzAzZmY2OGMxYWMzMTkyZDk5NWE2ZWJhZmMxZTUxMzcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMC0xNSAgS2VubmV0aCBSb2hkZSBDaHJpc3Rp
YW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJl
c29sdXRpb24gbWVkaWEgcXVlcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk5MDc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdCAocmVzb2x1dGlvbjogeCkgbWVkaWEgcXVlcnkgdG8gZW5zdXJlIGNv
bXBsaWFuY2UKKyAgICAgICAgd2l0aCBzcGVjIHBsdXMgcHJvcG9zZWQgZHBweCB2YWx1ZXMuCisK
KyAgICAgICAgKiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRtbDogQWRkZWQuCisKIDIwMTIt
MTAtMTYgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRk
IHRlc3QgdGhhdCBjaGVja3MgdGhhdCByZWxvYWRpbmcgYWZ0ZXIgc2V0dGluZyBhIHZhbHVlIGZv
ciBhbiBpbnB1dCBlbGVtZW50IGZyb20gYSBzdWdnZXN0aW9uIHBpY2tlciByZXNldHMgdGhlIHZh
bHVlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMmUxNmU4YjkyOGQ0OTcwZGI5Njg1MTgzMGU4ZTIxYzU1ZDcxOGNh
MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlv
bi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOCBAQAorQ1NTMyBtZWRpYSBxdWVyeSB0ZXN0OiBy
ZXNvbHV0aW9uIHF1ZXJ5IHdpdGggZHBweC4gVXNpbmcgc3R5bGUgZWxlbWVudCwgQG1lZGlhIGNz
cyBydWxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBtYXRjaE1lZGlh
KCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxLjVkcHB4KScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyB3
aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyBpcyAxLjUKK1BBU1MgZGV2aWNlUGl4ZWxSYXRpb0Zyb21T
dHlsZSgpIGlzIDEuNQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyZHBw
eCknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1Mgd2luZG93LmRldmljZVBpeGVsUmF0aW8gaXMgMgor
UEFTUyBkZXZpY2VQaXhlbFJhdGlvRnJvbVN0eWxlKCkgaXMgMgorUEFTUyBtYXRjaE1lZGlhKCco
LXdlYmtpdC1yZXNvbHV0aW9uOiAxZHBweCknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1Mgd2luZG93
LmRldmljZVBpeGVsUmF0aW8gaXMgMQorUEFTUyBkZXZpY2VQaXhlbFJhdGlvRnJvbVN0eWxlKCkg
aXMgMQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uKScpLm1hdGNoZXMgaXMg
dHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0
Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAy
NTRkcGkpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1y
ZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygt
d2Via2l0LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNo
TWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMgaXMgdHJ1
ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5t
YXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbiknKS5t
YXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDI1
NGRwaSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29s
dXRpb246IDI2MGRwaSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Vi
a2l0LW1pbi1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNo
TWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0Y2hlcyBpcyBmYWxz
ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1h
dGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246
IDI2MGRwaSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVz
b2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygt
d2Via2l0LXJlc29sdXRpb246IDEwMmRwY20pJykubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRj
aE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIGlzIHRy
dWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDEwMmRwY20pJyku
bWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlv
bjogMTAwZHBjbSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0
LW1heC1yZXNvbHV0aW9uOiAxMDJkcGNtKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDM1MmZmNjI0M2U2MWMxODY2Yzhh
MGM2NDY0ZGFlM2E0OThjYjU2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorCis8ZGl2IGlkPSJkZXRlY3RvciI+PC9kaXY+CisKKzxzdHlsZT4K
KyAgICAjZGV0ZWN0b3IgeyB3aWR0aDogMTBweDsgfQorICAgIEBtZWRpYSAoLXdlYmtpdC1yZXNv
bHV0aW9uOiAgIDFkcHB4KSB7ICNkZXRlY3RvciB7IHdpZHRoOiAxMHB4OyB9IH0KKyAgICBAbWVk
aWEgKC13ZWJraXQtcmVzb2x1dGlvbjogMS41ZHBweCkgeyAjZGV0ZWN0b3IgeyB3aWR0aDogMTVw
eDsgfSB9CisgICAgQG1lZGlhICgtd2Via2l0LXJlc29sdXRpb246ICAgMmRwcHgpIHsgI2RldGVj
dG9yIHsgd2lkdGg6IDIwcHg7IH0gfQorPC9zdHlsZT4KKworPHNjcmlwdD4KKyAgICBkZXNjcmlw
dGlvbigiQ1NTMyBtZWRpYSBxdWVyeSB0ZXN0OiByZXNvbHV0aW9uIHF1ZXJ5IHdpdGggZHBweC4g
VXNpbmcgc3R5bGUgZWxlbWVudCwgQG1lZGlhIGNzcyBydWxlLiIpCisKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB3aW5kb3cudGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgZnVuY3Rpb24gZGV2aWNlUGl4ZWxSYXRpb0Zy
b21TdHlsZSgpIHsKKyAgICAgICAgICAgIHZhciB3aWR0aCA9IGdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRldGVjdG9yIikpLndpZHRoOworICAgICAgICAgICAgc3dp
dGNoICh3aWR0aCkgeworICAgICAgICAgICAgICAgIGNhc2UgIjEwcHgiOgorICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICBjYXNlICIxNXB4IjoKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIDEuNTsKKyAgICAgICAgICAgICAgICBjYXNlICIyMHB4IjoKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlvbk92
ZXJyaWRlKDEuNSwgOTYsIDk2KTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Vi
a2l0LXJlc29sdXRpb246IDEuNWRwcHgpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNo
b3VsZEJlKCJ3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyIsICIxLjUiKTsKKyAgICAgICAgc2hvdWxk
QmUoImRldmljZVBpeGVsUmF0aW9Gcm9tU3R5bGUoKSIsICIxLjUiKTsKKworICAgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgyLCA5NiwgOTYpOwor
ICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMmRwcHgp
JykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuZGV2aWNlUGl4
ZWxSYXRpbyIsICIyIik7CisgICAgICAgIHNob3VsZEJlKCJkZXZpY2VQaXhlbFJhdGlvRnJvbVN0
eWxlKCkiLCAiMiIpOworCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVz
b2x1dGlvbk92ZXJyaWRlKDEsIDk2LCA5Nik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlh
KCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxZHBweCknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAg
ICAgc2hvdWxkQmUoIndpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIiwgIjEiKTsKKyAgICAgICAgc2hv
dWxkQmUoImRldmljZVBpeGVsUmF0aW9Gcm9tU3R5bGUoKSIsICIxIik7CisKKyAgICAgICAgd2lu
ZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMSwgMjU0LCAyNTQp
OworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbiknKS5t
YXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0
LXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxk
QmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hl
cyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgt
cmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworCisgICAgICAgIHNob3Vs
ZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMi
LCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJl
c29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJl
KCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVz
IiwgInRydWUiKTsKKworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29s
dXRpb25PdmVycmlkZSgxLCAyNTQsIDI2MCk7CisgICAgICAgIC8vIE5vbi1zcXVhcmUgbXVzdCBu
ZXZlciBtYXRjaC4KKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29s
dXRpb24pJykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRp
YSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAg
ICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDI2MGRwaSkn
KS5tYXRjaGVzIiwgImZhbHNlIik7CisKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygt
d2Via2l0LW1pbi1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAg
ICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMjYwZHBp
KScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygt
d2Via2l0LW1heC1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOworICAg
ICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDI2MGRw
aSknKS5tYXRjaGVzIiwgInRydWUiKTsKKworICAgICAgICAvLyBOb24tc3F1YXJlIG11c3QgbmV2
ZXIgbWF0Y2guCisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0
aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1h
dGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDEwMmRwY20pJykubWF0Y2hlcyIsICJmYWxz
ZSIpOworCisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1
dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1h
dGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAxMDJkcGNtKScpLm1hdGNoZXMiLCAi
ZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNv
bHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUo
Im1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAxMDJkcGNtKScpLm1hdGNoZXMi
LCAidHJ1ZSIpOworICAgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168925</attachid>
            <date>2012-10-16 05:12:42 -0700</date>
            <delta_ts>2012-10-16 09:09:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99077-20121016141130.patch</filename>
            <type>text/plain</type>
            <size>30951</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjNiZTgxZjRmYzk5NjM1
Y2FlN2ZiMmVjYTc0ODM3ODFjMTgxNWVhYi4uNzhkNjI3OWYxZTJiZWE0ZDA0ZmNjYWJkNGRiYzYz
OWQ0N2Q1YzQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEyLTEwLTE1ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBt
ZWRpYSBxdWVyeSBmZWF0dXJlIHdpdGggLXdlYmtpdAorICAgICAgICBwcmVmaXggZHVlIHRvIHRo
ZSBzdXBwb3J0IG9mIHRoZSBwcm9wb3NlZCBkcHB4IHZhbHVlcy4KKworICAgICAgICBBZGQgaW5m
cmFzdHJ1Y3R1cmUgdG8gbWFrZSBpdCB0ZXN0YWJsZS4KKworICAgICAgICBUZXN0OiBmYXN0L21l
ZGlhL21xLXJlc29sdXRpb24uaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisKKyAg
ICAgICAgICAgIEV4cG9ydCB0aGUgV2ViQ29yZTo6U2V0dGluZ3Mgc2V0dGluZy4KKworICAgICAg
ICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzRGVuc2l0eVBlckluY2gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzRGVuc2l0eVBlclBpeGVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjppc0RlbnNpdHlQZXJDZW50aW1ldGVyKToKKyAgICAgICAgKENTU1ByaW1pdGl2
ZVZhbHVlKToKKworICAgICAgICAgICAgQWRkIGZ1bmN0aW9uIGZvciBjaGVja2luZyB0aGUgcmVj
ZW50bHkgYWRkZWQgZGVuc2l0eSB0eXBlcy4KKworICAgICAgICAqIGNzcy9NZWRpYUZlYXR1cmVO
YW1lcy5oOgorICAgICAgICAoTWVkaWFGZWF0dXJlTmFtZXMpOgorCisgICAgICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgLXdlYmtpdC1yZXNvbHV0aW9uLCAtd2Via2l0LW1pbi1yZXNvbHV0aW9uCisg
ICAgICAgICAgICBhbmQgLXdlYmtpdC1tYXgtcmVzb2x1dGlvbi4KKworICAgICAgICAqIGNzcy9N
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVSZXNvbHV0
aW9uKTogQWRkIG1ldGhvZHMgZm9yIGNvbXBhcmluZyByZXNvbHV0aW9ucy4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6bWluX3Jlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6Om1heF9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCk6CisKKyAgICAgICAg
ICAgIEltcGxlbWVudCB0aGUgcmVzb2x1dGlvbiBtZXRob2QgZXZhbHVhdGlvbi4KKworICAgICAg
ICAqIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRo
VmFsaWRQb3NpdGl2ZURlbnNpdHkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpmZWF0dXJlV2l0aG91dFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlF
eHA6Ok1lZGlhUXVlcnlFeHApOgorCisgICAgICAgICAgICBIb29rIHVwIHJlc29sdXRpb24gd2l0
aCB0aGUgcmlnaHQgcHJlLWNoZWNrcy4KKworICAgICAgICogcGFnZS9TY3JlZW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyZWVuOjpob3Jpem9udGFsRFBJKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmVlbjo6dmVydGljYWxEUEkpOgorCisgICAgICAgICAgICBDaGVjayB3aGV0aGVyIGFuIG92
ZXJyaWRlIGV4aXN0cywgYW5kIGlmIHNvLCB1c2VzIGl0LgorCisgICAgICAgICogcGFnZS9TZXR0
aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0UmVzb2x1dGlvbk92ZXJy
aWRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAg
ICAgICAgKFNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpyZXNvbHV0aW9u
T3ZlcnJpZGUpOgorCisgICAgICAgICAgICBBZGQgYSByZXNvbHV0aW9uIG92ZXJyaWRlIHRvIHNl
dHRpbmdzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVycmlkZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAg
ICAgICAgKEJhY2t1cCk6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCisgICAgICAgICAgICBBZGQgYSBuZXcgc2V0
UmVzb2x1dGlvbk92ZXJyaWRlIG1ldGhvZCB0byBpbnRlcm5hbHMuc2V0dGluZ3MuCisKIDIwMTIt
MTAtMTYgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCBz
b21lIGFwcGVhcmFuY2UgZ2xpdGNoZXMgb2YgbXVsdGlwbGUgZmllbGRzIGlucHV0IGVsZW1lbnRz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggNzEwZTBmNWVkMWI0NDdhODA4ZGU4YTYxN2NiOTU5YzVhYmVhNjg2NC4u
ODU0MGIzODkxMzgxNzY4NDc5NDI2MGFiNjNiOTM0ODEzOWM4MmUyNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDEyLTEwLTE2ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtl
bm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBt
ZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHdpbi9XZWJLaXQyLmRlZjoKKworICAgICAgICAgICAgQWRkIGV4cG9ydHMgZm9yIHRoZSBX
ZWJDb3JlOjpTZXR0aW5ncyBzZXR0aW5nLgorCiAyMDEyLTEwLTE2ICBTemlsYXJkIExlZGFuICA8
c3psZWRhbkBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgU2VwYXJhdGUgV2ViS2l0MiBpbnN0
YW5jZXMgdXNlIHRoZSBzYW1lIGxvY2FsIHN0b3JhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXgg
ODcwZmI3MTlmYzAwZmZjMGNiZDQxYTg2ZTg1YjFmOTIyYTE2NTRmOC4uMDkyZjY3NDRiYzVmN2Fl
NWY1Nzg4NzdmZGIyMzVjZWI5YjgxMWEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTk1Nyw2
ICs5NTcsNyBAQCBfX1pON1dlYkNvcmU4U2V0dGluZ3M0MHNldFRleHREaXJlY3Rpb25TdWJtZW51
SW5jbHVzaW9uQmVoYXZpb3JFTlNfMzdUZXh0RGlyZWN0aQogX19aTjdXZWJDb3JlOFNldHRpbmdz
NDFzZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrc0ViCiBfX1pON1dlYkNv
cmU4U2V0dGluZ3M0NHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5n
RWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczQ1c2V0U2hvdWxkUmVzcGVjdFByaW9yaXR5SW5DU1NB
dHRyaWJ1dGVTZXR0ZXJzRWIKK19fWk43V2ViQ29yZThTZXR0aW5nczIxc2V0UmVzb2x1dGlvbk92
ZXJyaWRlRVJLTlNfN0ludFNpemVFCiBfX1pON1dlYkNvcmU4YmxhbmtVUkxFdgogX19aTjdXZWJD
b3JlOG1ha2VSR0JBRWlpaWkKIF9fWk43V2ViQ29yZThvcGVuRmlsZUVSS04zV1RGNlN0cmluZ0VO
U18xMkZpbGVPcGVuTW9kZUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKaW5k
ZXggYWEyZGJlYWMzMmRkYjM4NzdiMWRiNWVmYmQwYWFlZTc3MTJkNjg2Ni4uNDFjOWMzYWYzODQ1
ZDg4NGUyYTVlMmRkNTc3OWNlZjUzMmZiYTkwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmgKQEAgLTE4MSw2ICsxODEsMTAgQEAgcHVibGljOgogICAgIGJvb2wgaXNDYWxj
dWxhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfQ0FMQzsg
fQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdpdGhOdW1iZXIoKSBjb25zdCB7IHJl
dHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVSQ0VOVEFHRV9XSVRIX05VTUJFUjsg
fQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdpdGhMZW5ndGgoKSBjb25zdCB7IHJl
dHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVSQ0VOVEFHRV9XSVRIX0xFTkdUSDsg
fQorICAgIGJvb2wgaXNEZW5zaXR5UGVySW5jaCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5
cGUoKSA9PSBDU1NfRFBJOyB9CisgICAgYm9vbCBpc0RlbnNpdHlQZXJQaXhlbCgpIGNvbnN0IHsg
cmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBQWDsgfQorICAgIGJvb2wgaXNEZW5zaXR5
UGVyQ2VudGltZXRlcigpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBD
TTsgfQorCiAjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCiAgICAgYm9vbCBpc1ZhcmlhYmxlTmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfVkFSSUFCTEVfTkFNRTsg
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFt
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCmluZGV4IGIwODQz
OWU0YTAxODM0OTIyZmRhMDBlOGFkOTdlZmYyMGZiZWMwZmMuLjRjZWMyNTQ1ZjU4NTNjNGVhOWRm
YWVmNWYxNjU3ODA1ZWQ2OWQzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRp
YUZlYXR1cmVOYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1l
cy5oCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhtYXhf
aGVpZ2h0LCAibWF4LWhlaWdodCIpIFwKICAgICBtYWNybyhtYXhfbW9ub2Nocm9tZSwgIm1heC1t
b25vY2hyb21lIikgXAogICAgIG1hY3JvKG1heF93aWR0aCwgIm1heC13aWR0aCIpIFwKKyAgICBt
YWNybyhtYXhfcmVzb2x1dGlvbiwgIi13ZWJraXQtbWF4LXJlc29sdXRpb24iKSBcCiAgICAgbWFj
cm8obWluX2NvbG9yLCAibWluLWNvbG9yIikgXAogICAgIG1hY3JvKG1pbl9hc3BlY3RfcmF0aW8s
ICJtaW4tYXNwZWN0LXJhdGlvIikgXAogICAgIG1hY3JvKG1pbl9kZXZpY2VfYXNwZWN0X3JhdGlv
LCAibWluLWRldmljZS1hc3BlY3QtcmF0aW8iKSBcCkBAIC01Niw3ICs1Nyw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBtYWNybyhtaW5faGVpZ2h0LCAibWluLWhlaWdodCIpIFwKICAgICBt
YWNybyhtaW5fbW9ub2Nocm9tZSwgIm1pbi1tb25vY2hyb21lIikgXAogICAgIG1hY3JvKG1pbl93
aWR0aCwgIm1pbi13aWR0aCIpIFwKKyAgICBtYWNybyhtaW5fcmVzb2x1dGlvbiwgIi13ZWJraXQt
bWluLXJlc29sdXRpb24iKSBcCiAgICAgbWFjcm8ocG9pbnRlciwgInBvaW50ZXIiKSBcCisgICAg
bWFjcm8ocmVzb2x1dGlvbiwgIi13ZWJraXQtcmVzb2x1dGlvbiIpIFwKICAgICBtYWNybyh0cmFu
c2Zvcm1fMmQsICItd2Via2l0LXRyYW5zZm9ybS0yZCIpIFwKICAgICBtYWNybyh0cmFuc2Zvcm1f
M2QsICItd2Via2l0LXRyYW5zZm9ybS0zZCIpIFwKICAgICBtYWNybyh0cmFuc2l0aW9uLCAiLXdl
YmtpdC10cmFuc2l0aW9uIikgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0
b3IuY3BwCmluZGV4IGRhYTQ5MGI4YmRjODQ2ODdjNzQ5YTliNTEwZTQ0YzM5YzY5MTA4ZTUuLjFl
NTNiOWUwNzc3NmVjMzY4NmE3ZDRlNzQ5NzhkNjI5OTdkOTFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNp
bmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRl
ICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgpAQCAtNDgsNiArNDksNyBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJS
ZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU2NyZWVuLmgi
CiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAK
QEAgLTE5Nyw2ICsxOTksMjEgQEAgc3RhdGljIGJvb2wgY29tcGFyZUFzcGVjdFJhdGlvVmFsdWUo
Q1NTVmFsdWUqIHZhbHVlLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIE1lZGkKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKK3N0YXRpYyBib29sIGNvbXBhcmVSZXNvbHV0aW9uKHVuc2lnbmVkIG1pbiwg
dW5zaWduZWQgbWF4LCB1bnNpZ25lZCB2YWx1ZSwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQorewor
ICAgIHN3aXRjaCAob3ApIHsKKyAgICBjYXNlIE5vUHJlZml4OgorICAgICAgICAvLyBBICdyZXNv
bHV0aW9uJyAod2l0aG91dCBhICJtaW4tIiBvciAibWF4LSIgcHJlZml4KSBxdWVyeQorICAgICAg
ICAvLyBuZXZlciBtYXRjaGVzIGEgZGV2aWNlIHdpdGggbm9uLXNxdWFyZSBwaXhlbHMuCisgICAg
ICAgIHJldHVybiBtaW4gPT0gbWF4OworICAgIGNhc2UgTWluUHJlZml4OgorICAgICAgICByZXR1
cm4gbWluID49IHZhbHVlOworICAgIGNhc2UgTWF4UHJlZml4OgorICAgICAgICByZXR1cm4gbWF4
IDw9IHZhbHVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyBib29sIG51
bWJlclZhbHVlKENTU1ZhbHVlKiB2YWx1ZSwgZmxvYXQmIHJlc3VsdCkKIHsKICAgICBpZiAodmFs
dWUtPmlzUHJpbWl0aXZlVmFsdWUoKQpAQCAtMjc4LDYgKzI5NSw1NCBAQCBzdGF0aWMgYm9vbCBk
ZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlICp2YWx1ZSwgUmVuZGVy
U3R5bGUqLCBGcgogICAgIHJldHVybiBmcmFtZS0+cGFnZSgpLT5kZXZpY2VTY2FsZUZhY3Rvcigp
ICE9IDA7CiB9CiAKK3N0YXRpYyBib29sIHJlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1Zh
bHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZp
eCBvcCkKK3sKKyAgICB1bnNpZ25lZCBob3JpRFBJID0gZnJhbWUtPmRvY3VtZW50KCktPmRvbVdp
bmRvdygpLT5zY3JlZW4oKS0+aG9yaXpvbnRhbERQSSgpOworICAgIHVuc2lnbmVkIHZlcnREUEkg
PSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPnNjcmVlbigpLT52ZXJ0aWNhbERQSSgp
OworCisgICAgdW5zaWduZWQgbWluRFBJID0gc3RkOjptaW4oaG9yaURQSSwgdmVydERQSSk7Cisg
ICAgdW5zaWduZWQgbWF4RFBJID0gc3RkOjptYXgoaG9yaURQSSwgdmVydERQSSk7CisKKyAgICAv
LyBBY2NvcmRpbmcgdG8gc3BlYywgKHJlc29sdXRpb24pIHdpbGwgZXZhbHVhdGUgdG8gdHJ1ZSBp
ZiAocmVzb2x1dGlvbjp4KQorICAgIC8vIHdpbGwgZXZhbHVhdGUgdG8gdHJ1ZSBmb3IgYSB2YWx1
ZSB4IG90aGVyIHRoYW4gemVybyBvciB6ZXJvIGZvbGxvd2VkIGJ5CisgICAgLy8gYSB2YWxpZCB1
bml0IGlkZW50aWZpZXIgKGkuZS4sIG90aGVyIHRoYW4gMCwgMGRwaSwgMGRwY20sIG9yIDBkcHB4
LikuCisgICAgLy8KKyAgICAvLyBUaGlzIGlzIGFjdHVhbGx5IGFsd2F5cyB0aGUgY2FzZSB3aXRo
IHRoZSBkcHB4LCB3aGljaCB3ZSBpZ25vcmUgYXMgaXQgaXMKKyAgICAvLyBhIHNwZWNpYWwtY2Fz
ZSBpbiB0aGUgc2Vuc2UgaXQgY2FuIGJlIG91dCBvZiBzeW5jIHdpdGggZHBpIGFuZCBkcGNtLiBG
b3IKKyAgICAvLyBpbnN0YW5jZSwgYm90aCBhIGRldmljZSB3aXRoIDk2ZHBpIGFuZCAxNjBkcGkg
Y2FuIGhhdmUgYSBkcHB4IG9mIDEuCisgICAgLy8KKyAgICAvLyBUaGlzIGxlYXZlcyB0aGUgY2Fz
ZSBvZiBzcXVhcmVkIHBpeGVscy4KKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAgIEFTU0VSVChv
cCA9PSBOb1ByZWZpeCk7CisgICAgICAgIHJldHVybiBtaW5EUEkgPT0gbWF4RFBJOworICAgIH0K
KworICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHJhd1ZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7CisgICAgaWYgKHJhd1ZhbHVlLT5pc0RlbnNpdHlQZXJQ
aXhlbCgpKSB7CisgICAgICAgIGZsb2F0IGFjdHVhbERlbnNpdHkgPSBmcmFtZS0+cGFnZSgpLT5k
ZXZpY2VTY2FsZUZhY3RvcigpOworICAgICAgICBmbG9hdCB0ZXN0ZWREZW5zaXR5ID0gcmF3VmFs
dWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUFBYKTsKKyAgICAgICAg
cmV0dXJuIGNvbXBhcmVWYWx1ZShhY3R1YWxEZW5zaXR5LCB0ZXN0ZWREZW5zaXR5LCBvcCk7Cisg
ICAgfQorCisgICAgaWYgKHJhd1ZhbHVlLT5pc0RlbnNpdHlQZXJJbmNoKCkpIHsKKyAgICAgICAg
dW5zaWduZWQgdGVzdGVkRGVuc2l0eSA9IHJhd1ZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfRFBJKTsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmVSZXNvbHV0aW9uKG1p
bkRQSSwgbWF4RFBJLCB0ZXN0ZWREZW5zaXR5LCBvcCk7CisgICAgfQorCisgICAgdW5zaWduZWQg
bWluRFBDTSA9IGZsb29yKG1pbkRQSSAvIDIuNTQpOyAvLyAoMi41NCBjbS9pbikKKyAgICB1bnNp
Z25lZCBtYXhEUENNID0gZmxvb3IobWF4RFBJIC8gMi41NCk7CisKKyAgICBpZiAocmF3VmFsdWUt
PmlzRGVuc2l0eVBlckNlbnRpbWV0ZXIoKSkgeworICAgICAgICB1bnNpZ25lZCB0ZXN0ZWREZW5z
aXR5ID0gcmF3VmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUENN
KTsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmVSZXNvbHV0aW9uKG1pbkRQQ00sIG1heERQQ00sIHRl
c3RlZERlbnNpdHksIG9wKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRp
YyBib29sIGdyaWRNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUq
LCBGcmFtZSosIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsKICAgICAvLyBpZiBvdXRwdXQgZGV2
aWNlIGlzIGJpdG1hcCwgZ3JpZDogMCA9PSB0cnVlCkBAIC00NTYsNiArNTIxLDE2IEBAIHN0YXRp
YyBib29sIG1heF9kZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwg
UmVuZGVyU3R5bGUqIHN0eWxlCiAgICAgcmV0dXJuIGRldmljZV93aWR0aE1lZGlhRmVhdHVyZUV2
YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWF4UHJlZml4KTsKIH0KIAorc3RhdGljIGJvb2wgbWlu
X3Jlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUq
IHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKK3sKKyAgICByZXR1cm4g
cmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWluUHJlZml4
KTsKK30KKworc3RhdGljIGJvb2wgbWF4X3Jlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1Zh
bHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVy
ZVByZWZpeCkKK3sKKyAgICByZXR1cm4gcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwodmFsdWUs
IHN0eWxlLCBmcmFtZSwgTWF4UHJlZml4KTsKK30KKwogc3RhdGljIGJvb2wgYW5pbWF0aW9uTWVk
aWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqLCBNZWRp
YUZlYXR1cmVQcmVmaXggb3ApCiB7CiAgICAgaWYgKHZhbHVlKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeUV4cC5jcHAKaW5kZXggMWEwNmI3OTY1ZmNjYjk4YTA5MzU2OTU2OTc1OGIyMWZjNmUy
OTk4MS4uZTBlMmIzMWViMTRjNDg5ODJmZDRlZDRkMDMyNjk1MTJmZDkyN2NkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcApAQCAtNjcsNiArNjcsMTYgQEAgc3RhdGljIGlubGlu
ZSBib29sIGZlYXR1cmVXaXRoVmFsaWRQb3NpdGl2ZUxlbmdodE9yTnVtYmVyKGNvbnN0IEF0b21p
Y1N0cmluZyYgbWUKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
OjptaW5fZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wg
ZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZlRGVuc2l0eShjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlh
RmVhdHVyZSwgY29uc3QgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlKQoreworICAgIGlmICgodmFsdWUt
PnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUFBYICYmIHZhbHVlLT51bml0ICE9IENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBJICYmIHZhbHVlLT51bml0ICE9IENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfRFBDTSkgfHwgdmFsdWUtPmZWYWx1ZSA8IDApCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIHJldHVybiBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnJlc29s
dXRpb25NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVy
ZU5hbWVzOjptYXhfcmVzb2x1dGlvbk1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1
cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbl9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlOworfQor
CiBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhQb3NpdGl2ZUludGVnZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBtZWRpYUZlYXR1cmUsIGNvbnN0IENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKIHsK
ICAgICBpZiAoIXZhbHVlLT5pc0ludCB8fCB2YWx1ZS0+ZlZhbHVlIDwgMCkKQEAgLTExNCw2ICsx
MjQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhBc3BlY3RSYXRpbyhjb25zdCBB
dG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSkKIAogc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVX
aXRob3V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUpCiB7CisgICAgLy8g
TWVkaWEgZmVhdHVyZXMgdGhhdCBhcmUgcHJlZml4ZWQgYnkgbWluL21heCBjYW5ub3QgYmUgdXNl
ZCB3aXRob3V0IGEgdmFsdWUuCiAgICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1
cmVOYW1lczo6bW9ub2Nocm9tZU1lZGlhRmVhdHVyZQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUg
PT0gTWVkaWFGZWF0dXJlTmFtZXM6OmNvbG9yTWVkaWFGZWF0dXJlCiAgICAgICAgIHx8IG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6Z3JpZE1lZGlhRmVhdHVyZQpAQCAtMTMxLDcg
KzE0Miw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aG91dFZhbHVlKGNvbnN0IEF0
b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlKQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVk
aWFGZWF0dXJlTmFtZXM6OmFuaW1hdGlvbk1lZGlhRmVhdHVyZQogICAgICAgICB8fCBtZWRpYUZl
YXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnZpZXdfbW9kZU1lZGlhRmVhdHVyZQogICAgICAg
ICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnBvaW50ZXJNZWRpYUZlYXR1
cmUKLSAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2Vf
cGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmU7CisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRp
YUZlYXR1cmVOYW1lczo6ZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlCisgICAgICAgIHx8
IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6cmVzb2x1dGlvbk1lZGlhRmVhdHVy
ZTsKIH0KIAogaW5saW5lIE1lZGlhUXVlcnlFeHA6Ok1lZGlhUXVlcnlFeHAoY29uc3QgQXRvbWlj
U3RyaW5nJiBtZWRpYUZlYXR1cmUsIENTU1BhcnNlclZhbHVlTGlzdCogdmFsdWVMaXN0KQpAQCAt
MTQ4LDYgKzE2MCwxMCBAQCBpbmxpbmUgTWVkaWFRdWVyeUV4cDo6TWVkaWFRdWVyeUV4cChjb25z
dCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgQ1NTUGFyc2VyVgogICAgICAgICAgICAgaWYg
KGZlYXR1cmVXaXRoQ1NTVmFsdWVJRChtZWRpYUZlYXR1cmUsIHZhbHVlKSkKICAgICAgICAgICAg
ICAgICBtX3ZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIodmFsdWUt
PmlkKTsKIAorICAgICAgICAgICAgLy8gTWVkaWEgZmVhdHVyZXMgdGhhdCBtdXN0IGhhdmUgbm9u
LW5lZ2F0aXZlIDxkZW5zaXR5PiwgaWUuIGRwcHgsIGRwaSBvciBkcGNtLgorICAgICAgICAgICAg
ZWxzZSBpZiAoZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZlRGVuc2l0eShtZWRpYUZlYXR1cmUsIHZh
bHVlKSkKKyAgICAgICAgICAgICAgICBtX3ZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZSh2YWx1ZS0+ZlZhbHVlLCAoQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcykgdmFsdWUtPnVu
aXQpOworCiAgICAgICAgICAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IG11c3QgaGF2ZSBub24t
bmVnYXRpdmUgPGxlbmdodD4gb3IgbnVtYmVyIHZhbHVlLgogICAgICAgICAgICAgZWxzZSBpZiAo
ZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZlTGVuZ2h0T3JOdW1iZXIobWVkaWFGZWF0dXJlLCB2YWx1
ZSkpCiAgICAgICAgICAgICAgICAgbV92YWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUo
dmFsdWUtPmZWYWx1ZSwgKENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpIHZhbHVlLT51bml0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcAppbmRleCBlMWUxZDExNzM4NmY2MjJlZTNjMTkzYjNlNTAy
MmM4ODNhOGMyNWIxLi40MGEzODhlZDIzYTRhNTg4M2UwMThkYTE1YzFmNWE4M2E0OTI0Y2JkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TY3JlZW4uY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1TY3JlZW4uaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldpZGdl
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OCw2ICs0OSwxMSBAQCB1bnNpZ25lZCBT
Y3JlZW46Omhvcml6b250YWxEUEkoKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKICAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICBJbnRTaXplIG92ZXJyaWRlID0gbV9mcmFtZS0+cGFnZSgpLT5z
ZXR0aW5ncygpLT5yZXNvbHV0aW9uT3ZlcnJpZGUoKTsKKyAgICBpZiAoIW92ZXJyaWRlLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIG92ZXJyaWRlLndpZHRoKCk7CisKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHNjcmVlbkhvcml6b250YWxEUEkobV9mcmFtZS0+dmlldygpKSk7
CiB9CiAKQEAgLTU1LDYgKzYxLDExIEBAIHVuc2lnbmVkIFNjcmVlbjo6dmVydGljYWxEUEkoKSBj
b25zdAogewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIDA7CisKKyAgICBJbnRT
aXplIG92ZXJyaWRlID0gbV9mcmFtZS0+cGFnZSgpLT5zZXR0aW5ncygpLT5yZXNvbHV0aW9uT3Zl
cnJpZGUoKTsKKyAgICBpZiAoIW92ZXJyaWRlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG92
ZXJyaWRlLmhlaWdodCgpOworCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzY3Jl
ZW5WZXJ0aWNhbERQSShtX2ZyYW1lLT52aWV3KCkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcAppbmRleCA5ODc2YWY1Yzc2ZDIyNTVjZWIyZjg4MGI4NDk1MTlkMjZjM2QzZWQ0Li43NGI5
MmY5ZjljMzk3MTE1OTk0NDJjNzE0NGI5ZGFlYmU1ZDc3NzhlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmNwcApAQCAtNDU5LDYgKzQ1OSwxNSBAQCB2b2lkIFNldHRpbmdzOjpzZXRUZXh0QXV0b3Np
emluZ0ZvbnRTY2FsZUZhY3RvcihmbG9hdCBmb250U2NhbGVGYWN0b3IpCiAKICNlbmRpZgogCit2
b2lkIFNldHRpbmdzOjpzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoY29uc3QgSW50U2l6ZSYgZGVuc2l0
eVBlckluY2hPdmVycmlkZSkKK3sKKyAgICBpZiAobV9yZXNvbHV0aW9uRGVuc2l0eVBlckluY2hP
dmVycmlkZSA9PSBkZW5zaXR5UGVySW5jaE92ZXJyaWRlKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3Jlc29sdXRpb25EZW5zaXR5UGVySW5jaE92ZXJyaWRlID0gZGVuc2l0eVBlckluY2hPdmVy
cmlkZTsKKyAgICBtX3BhZ2UtPnNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOworfQor
CiB2b2lkIFNldHRpbmdzOjpzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoYm9vbCBsb2Fkc0lt
YWdlc0F1dG9tYXRpY2FsbHkpCiB7CiAgICAgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgPSBs
b2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggODk3ODVk
MTJmNmUyOTE2NmRhYzNiYWZjYmVmNzBiMDVkZWZmYjQ2YS4uYzcxZjMyZTg2MWQ3MWQ3YzYyODQz
NjA5YWNmNGUzNTUyYmE0MzAzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMjksNiArMjks
NyBAQAogCiAjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCIKICNpbmNsdWRlICJGb250
UmVuZGVyaW5nTW9kZS5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJLVVJMLmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJUaW1lci5oIgpAQCAtMzcs
MTAgKzM4LDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+CiAjaW5j
bHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgogCi0jaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklO
RykKLSNpbmNsdWRlICJJbnRTaXplLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgY2xhc3MgUGFnZTsKQEAgLTEyMyw2ICsxMjAsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBjb25zdCBJbnRTaXplJiB0ZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlk
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGU7IH0K
ICNlbmRpZgogCisgICAgICAgIC8vIE9ubHkgc2V0IGJ5IExheW91dCBUZXN0cy4KKyAgICAgICAg
dm9pZCBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoY29uc3QgSW50U2l6ZSYpOworICAgICAgICBjb25z
dCBJbnRTaXplJiByZXNvbHV0aW9uT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdXRp
b25EZW5zaXR5UGVySW5jaE92ZXJyaWRlOyB9CisKICAgICAgICAgLy8gVW5saWtlIGFyZUltYWdl
c0VuYWJsZWQsIHRoaXMgb25seSBzdXBwcmVzc2VzIHRoZSBuZXR3b3JrIGxvYWQgb2YKICAgICAg
ICAgLy8gdGhlIGltYWdlIFVSTC4gIEEgY2FjaGVkIGltYWdlIHdpbGwgc3RpbGwgYmUgcmVuZGVy
ZWQgaWYgcmVxdWVzdGVkLgogICAgICAgICB2b2lkIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxs
eShib29sKTsKQEAgLTY4Niw2ICs2ODcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IEludFNpemUgbV90ZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZTsKICAgICAgICAgYm9v
bCBtX3RleHRBdXRvc2l6aW5nRW5hYmxlZCA6IDE7CiAjZW5kaWYKKyAgICAgICAgSW50U2l6ZSBt
X3Jlc29sdXRpb25EZW5zaXR5UGVySW5jaE92ZXJyaWRlOwogICAgICAgICBib29sIG1faXNTcGF0
aWFsTmF2aWdhdGlvbkVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNKYXZhRW5hYmxlZCA6
IDE7CiAgICAgICAgIGJvb2wgbV9pc0phdmFFbmFibGVkRm9yTG9jYWxGaWxlcyA6IDE7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCA4ZDhmMGNiNDA5
MDAzNjVlNjBhNDM4NGVjYjA5NzQwNTQ3NzE1YWY5Li5hYjQ1YjJhN2RlODM1YWZiM2YxMmExNWIy
YTRmZGZkODRjYTdjYTVjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5jcHAKQEAgLTk3LDYgKzk3LDggQEAgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNr
dXAoUGFnZSogcGFnZSwgU2V0dGluZ3MqIHNldHRpbmdzKQogICAgICwgbV9vcmlnaW5hbFRleHRB
dXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKHNldHRpbmdzLT50ZXh0QXV0b3NpemluZ1dpbmRv
d1NpemVPdmVycmlkZSgpKQogICAgICwgbV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nRm9udFNjYWxl
RmFjdG9yKHNldHRpbmdzLT50ZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcigpKQogI2VuZGlm
CisgICAgLCBtX29yaWdpbmFsRGV2aWNlU2NhbGVGYWN0b3IocGFnZS0+ZGV2aWNlU2NhbGVGYWN0
b3IoKSkKKyAgICAsIG1fb3JpZ2luYWxSZXNvbHV0aW9uT3ZlcnJpZGUoc2V0dGluZ3MtPnJlc29s
dXRpb25PdmVycmlkZSgpKQogI2lmIEVOQUJMRShESUFMT0dfRUxFTUVOVCkKICAgICAsIG1fb3Jp
Z2luYWxEaWFsb2dFbGVtZW50RW5hYmxlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpkaWFsb2dF
bGVtZW50RW5hYmxlZCgpKQogI2VuZGlmCkBAIC0xMzYsNiArMTM4LDggQEAgdm9pZCBJbnRlcm5h
bFNldHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVUbyhQYWdlKiBwYWdlLCBTZXR0aW5ncyogc2V0dGlu
Z3MpCiAgICAgc2V0dGluZ3MtPnNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKG1f
b3JpZ2luYWxUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSk7CiAgICAgc2V0dGluZ3Mt
PnNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKG1fb3JpZ2luYWxUZXh0QXV0b3Npemlu
Z0ZvbnRTY2FsZUZhY3Rvcik7CiAjZW5kaWYKKyAgICBwYWdlLT5zZXREZXZpY2VTY2FsZUZhY3Rv
cihtX29yaWdpbmFsRGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHNldHRpbmdzLT5zZXRSZXNvbHV0
aW9uT3ZlcnJpZGUobV9vcmlnaW5hbFJlc29sdXRpb25PdmVycmlkZSk7CiAjaWYgRU5BQkxFKERJ
QUxPR19FTEVNRU5UKQogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldERpYWxvZ0VsZW1l
bnRFbmFibGVkKG1fb3JpZ2luYWxEaWFsb2dFbGVtZW50RW5hYmxlZCk7CiAjZW5kaWYKQEAgLTQx
Myw2ICs0MTcsMTQgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRUZXh0QXV0b3NpemluZ1dp
bmRvd1NpemVPdmVycmlkZShpbnQgd2lkdGgsIGludCBoZWlnaHQKICNlbmRpZgogfQogCit2b2lk
IEludGVybmFsU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVycmlkZShmbG9hdCBkZW5zaXR5UGVy
UGl4ZWwsIGludCBkZW5zaXR5UGVySW5jaEhvcml6b250YWxseSwgaW50IGRlbnNpdHlQZXJJbmNo
VmVydGljYWxseSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSW50ZXJuYWxTZXR0aW5nc0d1
YXJkRm9yU2V0dGluZ3MoKTsKKyAgICAvLyBBbiBlbXB0eSBzaXplIHJlc2V0cyB0aGUgb3ZlcnJp
ZGUuCisgICAgc2V0dGluZ3MoKS0+c2V0UmVzb2x1dGlvbk92ZXJyaWRlKEludFNpemUoZGVuc2l0
eVBlckluY2hIb3Jpem9udGFsbHksIGRlbnNpdHlQZXJJbmNoVmVydGljYWxseSkpOworICAgIHBh
Z2UoKS0+c2V0RGV2aWNlU2NhbGVGYWN0b3IoZGVuc2l0eVBlclBpeGVsKTsKK30KKwogdm9pZCBJ
bnRlcm5hbFNldHRpbmdzOjpzZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcihmbG9hdCBm
b250U2NhbGVGYWN0b3IsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogI2lmIEVOQUJMRShURVhUX0FV
VE9TSVpJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4
IDc4ZjM2ZTAxNzYxY2ViZGMzMWQ4OTQyMTlkMzIwYjYwMmExNjliNGYuLjBmMGJiNTljM2FlYThk
YWViYTA5MDY3OWRiNzYxMjRhMWRlN2FlYzAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5oCkBAIC0yNywxNSArMjcsMTIgQEAKICNkZWZpbmUgSW50ZXJuYWxTZXR0
aW5nc19oCiAKICNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgorI2luY2x1ZGUgIklu
dFNpemUuaCIKICNpbmNsdWRlICJSZWZDb3VudGVkU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCi0jaW5j
bHVkZSAiSW50U2l6ZS5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdHlwZWRl
ZiBpbnQgRXhjZXB0aW9uQ29kZTsKQEAgLTc5LDYgKzc2LDggQEAgcHVibGljOgogICAgICAgICBJ
bnRTaXplIG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZTsKICAgICAg
ICAgZmxvYXQgbV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yOwogI2VuZGlm
CisgICAgICAgIGZsb2F0IG1fb3JpZ2luYWxEZXZpY2VTY2FsZUZhY3RvcjsKKyAgICAgICAgSW50
U2l6ZSBtX29yaWdpbmFsUmVzb2x1dGlvbk92ZXJyaWRlOwogI2lmIEVOQUJMRShESUFMT0dfRUxF
TUVOVCkKICAgICAgICAgYm9vbCBtX29yaWdpbmFsRGlhbG9nRWxlbWVudEVuYWJsZWQ7CiAjZW5k
aWYKQEAgLTEyNyw2ICsxMjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUZXh0QXV0b3Npemlu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRUZXh0
QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShpbnQgd2lkdGgsIGludCBoZWlnaHQsIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKGZs
b2F0IGZvbnRTY2FsZUZhY3RvciwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0UmVzb2x1
dGlvbk92ZXJyaWRlKGZsb2F0IGRlbnNpdHlQZXJQaXhlbCwgaW50IGRlbnNpdHlQZXJJbmNoSG9y
aXpvbnRhbGx5LCBpbnQgZGVuc2l0eVBlckluY2hWZXJ0aWNhbGx5LCBFeGNlcHRpb25Db2RlJik7
CiAgICAgdm9pZCBzZXRFbmFibGVTY3JvbGxBbmltYXRvcihib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICBib29sIHNjcm9sbEFuaW1hdG9yRW5hYmxlZChFeGNlcHRpb25Db2RlJik7
CiAgICAgdm9pZCBzZXRDU1NFeGNsdXNpb25zRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmlu
ZGV4IGYzNDY0YmU5YTRlYzY0NTY0YjQzNDUwOTc4N2RmODQ3ZTNlZTgxY2UuLjE3ZjcxYWE4OWQw
ZDY0MWJhMDAyYWMxYjBjNzFkZGQ0NWVmYTY2YWQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtNTYsNiArNTYsNyBAQAogICAgIHZvaWQgc2V0VGV4
dEF1dG9zaXppbmdFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgdm9pZCBzZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShpbiBsb25n
IHdpZHRoLCBpbiBsb25nIGhlaWdodCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBz
ZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcihpbiBmbG9hdCBmb250U2NhbGVGYWN0b3Ip
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgIHZvaWQgc2V0UmVzb2x1dGlvbk92ZXJyaWRlKGlu
IGZsb2F0IGRlbnNpdHlQZXJQaXhlbCwgaW4gbG9uZyBkZW5zaXR5UGVySW5jaEhvcml6b250YWxs
eSwgaW4gbG9uZyBkZW5zaXR5UGVySW5jaFZlcnRpY2FsbHkpIHJhaXNlcyhET01FeGNlcHRpb24p
OwogICAgIHZvaWQgc2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoaW4gYm9vbGVhbiBlbmFibGVkKSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICBib29sZWFuIHNjcm9sbEFuaW1hdG9yRW5hYmxlZCgp
IHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQo
aW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LmRlZgppbmRleCAxOTZiYmYwNTk1YjNiMDViN2U0MTMxYmRlOWI3Mzg1YjE0NDAyZmFiLi5iMWQy
NmI4ZGRiMGMzYmMwMTkzMGM5OTBjOTk4ZmMyNzdlNTM2YzFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIu
ZGVmCkBAIC0yNDIsNiArMjQyLDcgQEAgRVhQT1JUUwogICAgICAgICA/c2V0U3RvcmFnZUJsb2Nr
aW5nUG9saWN5QFNldHRpbmdzQFdlYkNvcmVAQFFBRVhXNFN0b3JhZ2VCbG9ja2luZ1BvbGljeUBT
ZWN1cml0eU9yaWdpbkAyQEBaCiAgICAgICAgID9zZXRTdWdnZXN0ZWRWYWx1ZUBIVE1MSW5wdXRF
bGVtZW50QFdlYkNvcmVAQFFBRVhBQlZTdHJpbmdAV1RGQEBAWgogICAgICAgICA/c2V0RWRpdGlu
Z1ZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUFFWEFCVlN0cmluZ0BXVEZAQEBaCisg
ICAgICAgID9zZXRSZXNvbHV0aW9uT3ZlcnJpZGVAU2V0dGluZ3NAV2ViQ29yZUBAUUFFWEFCVklu
dFNpemVAMkBAWgogICAgICAgICA/c2V0dGluZ3NARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWU2V0
dGluZ3NAMkBYWgogICAgICAgICA/c2V0dGluZ3NARnJhbWVAV2ViQ29yZUBAUUJFUEFWU2V0dGlu
Z3NAMkBYWgogICAgICAgICA/c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZUBT
ZXR0aW5nc0BXZWJDb3JlQEBRQUVYX05AWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9z
eW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggYWVk
NTRhZjIxYWM4Yzg4NGJkZWUyMjRlODliZTJlNmNhODQ1YWZkZi4uY2Y0NTM2NDYzZTc2MzBjMDBi
Zjk4Y2UxMTJmZDA0NDgyMmQ5ZTY0MiAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1i
b2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC0xNzUs
NiArMTc1LDcgQEAgX1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldE1vY2tTY3JvbGxiYXJzRW5hYmxl
ZEViOwogX1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldFVzZXNPdmVybGF5U2Nyb2xsYmFyc0ViOwog
X1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeUVOU18xNFNlY3Vy
aXR5T3JpZ2luMjFTdG9yYWdlQmxvY2tpbmdQb2xpY3lFOwogX1pON1dlYkNvcmU4U2V0dGluZ3Mz
N3NldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWVFYjsKK19aTjdXZWJDb3JlOFNl
dHRpbmdzMjFzZXRSZXNvbHV0aW9uT3ZlcnJpZGVFUktOU183SW50U2l6ZUUKIF9aTjdXZWJDb3Jl
OUZyYW1lVmlldzE3cGFpbnRDb250cm9sVGludHNFdjsKIF9aTjdXZWJDb3JlOUZyYW1lVmlldzE5
c2Nyb2xsRWxlbWVudFRvUmVjdEVQTlNfN0VsZW1lbnRFUktOU183SW50UmVjdEU7CiBfWk43V2Vi
Q29yZTIyUnVudGltZUVuYWJsZWRGZWF0dXJlczMxaXNNdWx0aXBsZVNoYWRvd1N1YnRyZWVzRW5h
YmxlZEU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggOWJlZjNkNGE1MGYyMjkzYjljZGU5Mzg5NjczNTFiZjY1Y2NlZGYzYi4u
N2UwM2Q5NDY3MDNmZjY4YzFhYzMxOTJkOTk1YTZlYmFmYzFlNTEzNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDEyLTEwLTE1ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhA
d2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBx
dWVyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkw
NzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
IChyZXNvbHV0aW9uOiB4KSBtZWRpYSBxdWVyeSB0byBlbnN1cmUgY29tcGxpYW5jZQorICAgICAg
ICB3aXRoIHNwZWMgcGx1cyBwcm9wb3NlZCBkcHB4IHZhbHVlcy4KKworICAgICAgICAqIGZhc3Qv
bWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
bWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sOiBBZGRlZC4KKwogMjAxMi0xMC0xNiAgS2Vpc2hpIEhh
dHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgdGVzdCB0aGF0IGNoZWNr
cyB0aGF0IHJlbG9hZGluZyBhZnRlciBzZXR0aW5nIGEgdmFsdWUgZm9yIGFuIGlucHV0IGVsZW1l
bnQgZnJvbSBhIHN1Z2dlc3Rpb24gcGlja2VyIHJlc2V0cyB0aGUgdmFsdWVzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yZTE2ZThiOTI4ZDQ5NzBkYjk2ODUxODMwZThlMjFjNTVkNzE4Y2EzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDM4IEBACitDU1MzIG1lZGlhIHF1ZXJ5IHRlc3Q6IHJlc29sdXRpb24gcXVlcnkg
d2l0aCBkcHB4LiBVc2luZyBzdHlsZSBlbGVtZW50LCBAbWVkaWEgY3NzIHJ1bGUuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29s
dXRpb246IDEuNWRwcHgpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIHdpbmRvdy5kZXZpY2VQaXhl
bFJhdGlvIGlzIDEuNQorUEFTUyBkZXZpY2VQaXhlbFJhdGlvRnJvbVN0eWxlKCkgaXMgMS41CitQ
QVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDJkcHB4KScpLm1hdGNoZXMgaXMg
dHJ1ZQorUEFTUyB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyBpcyAyCitQQVNTIGRldmljZVBpeGVs
UmF0aW9Gcm9tU3R5bGUoKSBpcyAyCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRp
b246IDFkcHB4KScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRp
byBpcyAxCitQQVNTIGRldmljZVBpeGVsUmF0aW9Gcm9tU3R5bGUoKSBpcyAxCitQQVNTIG1hdGNo
TWVkaWEoJygtd2Via2l0LXJlc29sdXRpb24pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNo
TWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIGlzIHRydWUKK1BB
U1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVz
IGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDI1NGRw
aSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlv
bjogMTAwZHBjbSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQt
bWluLXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVk
aWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMgaXMgdHJ1ZQor
UEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uKScpLm1hdGNoZXMgaXMgZmFsc2UK
K1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMg
aXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMjYwZHBpKScp
Lm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRp
b246IDI1NGRwaSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQt
bWluLXJlc29sdXRpb246IDI2MGRwaSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVk
aWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyBpcyBmYWxzZQor
UEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMjYwZHBpKScpLm1hdGNo
ZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxMDBkcGNt
KScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlv
bjogMTAyZHBjbSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0
LW1pbi1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1l
ZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMTAyZHBjbSknKS5tYXRjaGVzIGlzIGZhbHNl
CitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1h
dGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246
IDEwMmRwY20pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tcS1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRp
b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40MzUyZmY2MjQzZTYxYzE4NjZjOGEwYzY0NjRkYWUzYTQ5OGNi
NTZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0
aW9uLmh0bWwKQEAgLTAsMCArMSw4NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5
PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
CisKKzxkaXYgaWQ9ImRldGVjdG9yIj48L2Rpdj4KKworPHN0eWxlPgorICAgICNkZXRlY3RvciB7
IHdpZHRoOiAxMHB4OyB9CisgICAgQG1lZGlhICgtd2Via2l0LXJlc29sdXRpb246ICAgMWRwcHgp
IHsgI2RldGVjdG9yIHsgd2lkdGg6IDEwcHg7IH0gfQorICAgIEBtZWRpYSAoLXdlYmtpdC1yZXNv
bHV0aW9uOiAxLjVkcHB4KSB7ICNkZXRlY3RvciB7IHdpZHRoOiAxNXB4OyB9IH0KKyAgICBAbWVk
aWEgKC13ZWJraXQtcmVzb2x1dGlvbjogICAyZHBweCkgeyAjZGV0ZWN0b3IgeyB3aWR0aDogMjBw
eDsgfSB9Cis8L3N0eWxlPgorCis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCJDU1MzIG1lZGlh
IHF1ZXJ5IHRlc3Q6IHJlc29sdXRpb24gcXVlcnkgd2l0aCBkcHB4LiBVc2luZyBzdHlsZSBlbGVt
ZW50LCBAbWVkaWEgY3NzIHJ1bGUuIikKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKworICAgICAgICBmdW5jdGlvbiBkZXZpY2VQaXhlbFJhdGlvRnJvbVN0eWxlKCkgeworICAg
ICAgICAgICAgdmFyIHdpZHRoID0gZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZGV0ZWN0b3IiKSkud2lkdGg7CisgICAgICAgICAgICBzd2l0Y2ggKHdpZHRoKSB7Cisg
ICAgICAgICAgICAgICAgY2FzZSAiMTBweCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAx
OworICAgICAgICAgICAgICAgIGNhc2UgIjE1cHgiOgorICAgICAgICAgICAgICAgICAgICByZXR1
cm4gMS41OworICAgICAgICAgICAgICAgIGNhc2UgIjIwcHgiOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gMjsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAg
d2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMS41LCA5Niwg
OTYpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjog
MS41ZHBweCknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5k
ZXZpY2VQaXhlbFJhdGlvIiwgIjEuNSIpOworICAgICAgICBzaG91bGRCZSgiZGV2aWNlUGl4ZWxS
YXRpb0Zyb21TdHlsZSgpIiwgIjEuNSIpOworCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDIsIDk2LCA5Nik7CisgICAgICAgIHNob3VsZEJl
KCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyZHBweCknKS5tYXRjaGVzIiwgInRy
dWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIiwgIjIiKTsK
KyAgICAgICAgc2hvdWxkQmUoImRldmljZVBpeGVsUmF0aW9Gcm9tU3R5bGUoKSIsICIyIik7CisK
KyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUo
MSwgOTYsIDk2KTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29s
dXRpb246IDFkcHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgid2lu
ZG93LmRldmljZVBpeGVsUmF0aW8iLCAiMSIpOworICAgICAgICBzaG91bGRCZSgiZGV2aWNlUGl4
ZWxSYXRpb0Zyb21TdHlsZSgpIiwgIjEiKTsKKworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgxLCAyNTQsIDI1NCk7CisgICAgICAgIHNob3Vs
ZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uKScpLm1hdGNoZXMiLCAidHJ1ZSIp
OworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMjU0
ZHBpKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgn
KC13ZWJraXQtbWluLXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAg
ICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAyNTRk
cGkpJykubWF0Y2hlcyIsICJ0cnVlIik7CisKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEo
Jygtd2Via2l0LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAg
ICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMTAwZHBj
bSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygt
d2Via2l0LW1heC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworCisg
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDEs
IDI1NCwgMjYwKTsKKyAgICAgICAgLy8gTm9uLXNxdWFyZSBtdXN0IG5ldmVyIG1hdGNoLgorICAg
ICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbiknKS5tYXRjaGVz
IiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNv
bHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRCZSgi
bWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMjYwZHBpKScpLm1hdGNoZXMiLCAiZmFs
c2UiKTsKKworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29s
dXRpb246IDI1NGRwaSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1h
dGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0Y2hlcyIsICJm
YWxzZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29s
dXRpb246IDI1NGRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJt
YXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMjYwZHBpKScpLm1hdGNoZXMiLCAi
dHJ1ZSIpOworCisgICAgICAgIC8vIE5vbi1zcXVhcmUgbXVzdCBuZXZlciBtYXRjaC4KKyAgICAg
ICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDEwMGRwY20pJyku
bWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJr
aXQtcmVzb2x1dGlvbjogMTAyZHBjbSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisKKyAgICAgICAg
c2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAxMDBkcGNtKScp
Lm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJr
aXQtbWluLXJlc29sdXRpb246IDEwMmRwY20pJykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAg
ICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDEwMGRwY20p
JykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13
ZWJraXQtbWF4LXJlc29sdXRpb246IDEwMmRwY20pJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAg
fQorPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBi
L0NoYW5nZUxvZwppbmRleCBmMzAxZmQyMGI0YWQ1MThhNzhmYjBiY2RhMWExMTdjMzM3YWZhNDI2
Li5kN2RiYmUxZjFjNThhY2JhMDVjMGE3MzZkYjk4OTQ1ZDZlM2VlNTk0IDEwMDY0NAotLS0gYS9D
aGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMTYgIEtl
bm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciByZXNvbHV0aW9uIG1lZGlhIHF1ZXJ5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTA3NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xz
LmZpbHRlcjoKKworICAgICAgICAgICAgRXhwb3J0IHRoZSBXZWJDb3JlOjpTZXR0aW5ncyBzZXR0
aW5nLgorCiAyMDEyLTEwLTE1ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4K
IAogICAgICAgICBbRUZMXSBTaGFyZSByZXNvdXJjZXMgaW5zdGFsbGVkIGZvciBpbnNwZWN0b3IK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>168958</attachid>
            <date>2012-10-16 09:09:26 -0700</date>
            <delta_ts>2012-10-17 08:30:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99077-20121016180813.patch</filename>
            <type>text/plain</type>
            <size>30952</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjNiZTgxZjRmYzk5NjM1
Y2FlN2ZiMmVjYTc0ODM3ODFjMTgxNWVhYi4uNzhkNjI3OWYxZTJiZWE0ZDA0ZmNjYWJkNGRiYzYz
OWQ0N2Q1YzQ2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEyLTEwLTE1ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBt
ZWRpYSBxdWVyeSBmZWF0dXJlIHdpdGggLXdlYmtpdAorICAgICAgICBwcmVmaXggZHVlIHRvIHRo
ZSBzdXBwb3J0IG9mIHRoZSBwcm9wb3NlZCBkcHB4IHZhbHVlcy4KKworICAgICAgICBBZGQgaW5m
cmFzdHJ1Y3R1cmUgdG8gbWFrZSBpdCB0ZXN0YWJsZS4KKworICAgICAgICBUZXN0OiBmYXN0L21l
ZGlhL21xLXJlc29sdXRpb24uaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisKKyAg
ICAgICAgICAgIEV4cG9ydCB0aGUgV2ViQ29yZTo6U2V0dGluZ3Mgc2V0dGluZy4KKworICAgICAg
ICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzRGVuc2l0eVBlckluY2gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzRGVuc2l0eVBlclBpeGVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjppc0RlbnNpdHlQZXJDZW50aW1ldGVyKToKKyAgICAgICAgKENTU1ByaW1pdGl2
ZVZhbHVlKToKKworICAgICAgICAgICAgQWRkIGZ1bmN0aW9uIGZvciBjaGVja2luZyB0aGUgcmVj
ZW50bHkgYWRkZWQgZGVuc2l0eSB0eXBlcy4KKworICAgICAgICAqIGNzcy9NZWRpYUZlYXR1cmVO
YW1lcy5oOgorICAgICAgICAoTWVkaWFGZWF0dXJlTmFtZXMpOgorCisgICAgICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgLXdlYmtpdC1yZXNvbHV0aW9uLCAtd2Via2l0LW1pbi1yZXNvbHV0aW9uCisg
ICAgICAgICAgICBhbmQgLXdlYmtpdC1tYXgtcmVzb2x1dGlvbi4KKworICAgICAgICAqIGNzcy9N
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVSZXNvbHV0
aW9uKTogQWRkIG1ldGhvZHMgZm9yIGNvbXBhcmluZyByZXNvbHV0aW9ucy4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6bWluX3Jlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6Om1heF9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCk6CisKKyAgICAgICAg
ICAgIEltcGxlbWVudCB0aGUgcmVzb2x1dGlvbiBtZXRob2QgZXZhbHVhdGlvbi4KKworICAgICAg
ICAqIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRo
VmFsaWRQb3NpdGl2ZURlbnNpdHkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpmZWF0dXJlV2l0aG91dFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlF
eHA6Ok1lZGlhUXVlcnlFeHApOgorCisgICAgICAgICAgICBIb29rIHVwIHJlc29sdXRpb24gd2l0
aCB0aGUgcmlnaHQgcHJlLWNoZWNrcy4KKworICAgICAgICogcGFnZS9TY3JlZW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyZWVuOjpob3Jpem9udGFsRFBJKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmVlbjo6dmVydGljYWxEUEkpOgorCisgICAgICAgICAgICBDaGVjayB3aGV0aGVyIGFuIG92
ZXJyaWRlIGV4aXN0cywgYW5kIGlmIHNvLCB1c2VzIGl0LgorCisgICAgICAgICogcGFnZS9TZXR0
aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0UmVzb2x1dGlvbk92ZXJy
aWRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAg
ICAgICAgKFNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpyZXNvbHV0aW9u
T3ZlcnJpZGUpOgorCisgICAgICAgICAgICBBZGQgYSByZXNvbHV0aW9uIG92ZXJyaWRlIHRvIHNl
dHRpbmdzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVycmlkZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAg
ICAgICAgKEJhY2t1cCk6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCisgICAgICAgICAgICBBZGQgYSBuZXcgc2V0
UmVzb2x1dGlvbk92ZXJyaWRlIG1ldGhvZCB0byBpbnRlcm5hbHMuc2V0dGluZ3MuCisKIDIwMTIt
MTAtMTYgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCBz
b21lIGFwcGVhcmFuY2UgZ2xpdGNoZXMgb2YgbXVsdGlwbGUgZmllbGRzIGlucHV0IGVsZW1lbnRz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggNzEwZTBmNWVkMWI0NDdhODA4ZGU4YTYxN2NiOTU5YzVhYmVhNjg2NC4u
ODU0MGIzODkxMzgxNzY4NDc5NDI2MGFiNjNiOTM0ODEzOWM4MmUyNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDEyLTEwLTE2ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtl
bm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBt
ZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHdpbi9XZWJLaXQyLmRlZjoKKworICAgICAgICAgICAgQWRkIGV4cG9ydHMgZm9yIHRoZSBX
ZWJDb3JlOjpTZXR0aW5ncyBzZXR0aW5nLgorCiAyMDEyLTEwLTE2ICBTemlsYXJkIExlZGFuICA8
c3psZWRhbkBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgU2VwYXJhdGUgV2ViS2l0MiBpbnN0
YW5jZXMgdXNlIHRoZSBzYW1lIGxvY2FsIHN0b3JhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXgg
ODcwZmI3MTlmYzAwZmZjMGNiZDQxYTg2ZTg1YjFmOTIyYTE2NTRmOC4uMDkyZjY3NDRiYzVmN2Fl
NWY1Nzg4NzdmZGIyMzVjZWI5YjgxMWEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTk1Nyw2
ICs5NTcsNyBAQCBfX1pON1dlYkNvcmU4U2V0dGluZ3M0MHNldFRleHREaXJlY3Rpb25TdWJtZW51
SW5jbHVzaW9uQmVoYXZpb3JFTlNfMzdUZXh0RGlyZWN0aQogX19aTjdXZWJDb3JlOFNldHRpbmdz
NDFzZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrc0ViCiBfX1pON1dlYkNv
cmU4U2V0dGluZ3M0NHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5n
RWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczQ1c2V0U2hvdWxkUmVzcGVjdFByaW9yaXR5SW5DU1NB
dHRyaWJ1dGVTZXR0ZXJzRWIKK19fWk43V2ViQ29yZThTZXR0aW5nczIxc2V0UmVzb2x1dGlvbk92
ZXJyaWRlRVJLTlNfN0ludFNpemVFCiBfX1pON1dlYkNvcmU4YmxhbmtVUkxFdgogX19aTjdXZWJD
b3JlOG1ha2VSR0JBRWlpaWkKIF9fWk43V2ViQ29yZThvcGVuRmlsZUVSS04zV1RGNlN0cmluZ0VO
U18xMkZpbGVPcGVuTW9kZUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKaW5k
ZXggYWEyZGJlYWMzMmRkYjM4NzdiMWRiNWVmYmQwYWFlZTc3MTJkNjg2Ni4uNDFjOWMzYWYzODQ1
ZDg4NGUyYTVlMmRkNTc3OWNlZjUzMmZiYTkwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmgKQEAgLTE4MSw2ICsxODEsMTAgQEAgcHVibGljOgogICAgIGJvb2wgaXNDYWxj
dWxhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfQ0FMQzsg
fQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdpdGhOdW1iZXIoKSBjb25zdCB7IHJl
dHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVSQ0VOVEFHRV9XSVRIX05VTUJFUjsg
fQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdpdGhMZW5ndGgoKSBjb25zdCB7IHJl
dHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVSQ0VOVEFHRV9XSVRIX0xFTkdUSDsg
fQorICAgIGJvb2wgaXNEZW5zaXR5UGVySW5jaCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5
cGUoKSA9PSBDU1NfRFBJOyB9CisgICAgYm9vbCBpc0RlbnNpdHlQZXJQaXhlbCgpIGNvbnN0IHsg
cmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBQWDsgfQorICAgIGJvb2wgaXNEZW5zaXR5
UGVyQ2VudGltZXRlcigpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBD
TTsgfQorCiAjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCiAgICAgYm9vbCBpc1ZhcmlhYmxlTmFt
ZSgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfVkFSSUFCTEVfTkFNRTsg
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFt
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCmluZGV4IGIwODQz
OWU0YTAxODM0OTIyZmRhMDBlOGFkOTdlZmYyMGZiZWMwZmMuLjRjZWMyNTQ1ZjU4NTNjNGVhOWRm
YWVmNWYxNjU3ODA1ZWQ2OWQzYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRp
YUZlYXR1cmVOYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1l
cy5oCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhtYXhf
aGVpZ2h0LCAibWF4LWhlaWdodCIpIFwKICAgICBtYWNybyhtYXhfbW9ub2Nocm9tZSwgIm1heC1t
b25vY2hyb21lIikgXAogICAgIG1hY3JvKG1heF93aWR0aCwgIm1heC13aWR0aCIpIFwKKyAgICBt
YWNybyhtYXhfcmVzb2x1dGlvbiwgIi13ZWJraXQtbWF4LXJlc29sdXRpb24iKSBcCiAgICAgbWFj
cm8obWluX2NvbG9yLCAibWluLWNvbG9yIikgXAogICAgIG1hY3JvKG1pbl9hc3BlY3RfcmF0aW8s
ICJtaW4tYXNwZWN0LXJhdGlvIikgXAogICAgIG1hY3JvKG1pbl9kZXZpY2VfYXNwZWN0X3JhdGlv
LCAibWluLWRldmljZS1hc3BlY3QtcmF0aW8iKSBcCkBAIC01Niw3ICs1Nyw5IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBtYWNybyhtaW5faGVpZ2h0LCAibWluLWhlaWdodCIpIFwKICAgICBt
YWNybyhtaW5fbW9ub2Nocm9tZSwgIm1pbi1tb25vY2hyb21lIikgXAogICAgIG1hY3JvKG1pbl93
aWR0aCwgIm1pbi13aWR0aCIpIFwKKyAgICBtYWNybyhtaW5fcmVzb2x1dGlvbiwgIi13ZWJraXQt
bWluLXJlc29sdXRpb24iKSBcCiAgICAgbWFjcm8ocG9pbnRlciwgInBvaW50ZXIiKSBcCisgICAg
bWFjcm8ocmVzb2x1dGlvbiwgIi13ZWJraXQtcmVzb2x1dGlvbiIpIFwKICAgICBtYWNybyh0cmFu
c2Zvcm1fMmQsICItd2Via2l0LXRyYW5zZm9ybS0yZCIpIFwKICAgICBtYWNybyh0cmFuc2Zvcm1f
M2QsICItd2Via2l0LXRyYW5zZm9ybS0zZCIpIFwKICAgICBtYWNybyh0cmFuc2l0aW9uLCAiLXdl
YmtpdC10cmFuc2l0aW9uIikgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0
b3IuY3BwCmluZGV4IGRhYTQ5MGI4YmRjODQ2ODdjNzQ5YTliNTEwZTQ0YzM5YzY5MTA4ZTUuLjFl
NTNiOWUwNzc3NmVjMzY4NmE3ZDRlNzQ5NzhkNjI5OTdkOTFlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNp
bmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRl
ICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgpAQCAtNDgsNiArNDksNyBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJS
ZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiU2NyZWVuLmgi
CiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAK
QEAgLTE5Nyw2ICsxOTksMjEgQEAgc3RhdGljIGJvb2wgY29tcGFyZUFzcGVjdFJhdGlvVmFsdWUo
Q1NTVmFsdWUqIHZhbHVlLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIE1lZGkKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKK3N0YXRpYyBib29sIGNvbXBhcmVSZXNvbHV0aW9uKHVuc2lnbmVkIG1pbiwg
dW5zaWduZWQgbWF4LCB1bnNpZ25lZCB2YWx1ZSwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQorewor
ICAgIHN3aXRjaCAob3ApIHsKKyAgICBjYXNlIE5vUHJlZml4OgorICAgICAgICAvLyBBICdyZXNv
bHV0aW9uJyAod2l0aG91dCBhICJtaW4tIiBvciAibWF4LSIgcHJlZml4KSBxdWVyeQorICAgICAg
ICAvLyBuZXZlciBtYXRjaGVzIGEgZGV2aWNlIHdpdGggbm9uLXNxdWFyZSBwaXhlbHMuCisgICAg
ICAgIHJldHVybiBtaW4gPT0gbWF4OworICAgIGNhc2UgTWluUHJlZml4OgorICAgICAgICByZXR1
cm4gbWluID49IHZhbHVlOworICAgIGNhc2UgTWF4UHJlZml4OgorICAgICAgICByZXR1cm4gbWF4
IDw9IHZhbHVlOworICAgIH0KKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRpYyBib29sIG51
bWJlclZhbHVlKENTU1ZhbHVlKiB2YWx1ZSwgZmxvYXQmIHJlc3VsdCkKIHsKICAgICBpZiAodmFs
dWUtPmlzUHJpbWl0aXZlVmFsdWUoKQpAQCAtMjc4LDYgKzI5NSw1NCBAQCBzdGF0aWMgYm9vbCBk
ZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlICp2YWx1ZSwgUmVuZGVy
U3R5bGUqLCBGcgogICAgIHJldHVybiBmcmFtZS0+cGFnZSgpLT5kZXZpY2VTY2FsZUZhY3Rvcigp
ICE9IDA7CiB9CiAKK3N0YXRpYyBib29sIHJlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1Zh
bHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZp
eCBvcCkKK3sKKyAgICB1bnNpZ25lZCBob3JpRFBJID0gZnJhbWUtPmRvY3VtZW50KCktPmRvbVdp
bmRvdygpLT5zY3JlZW4oKS0+aG9yaXpvbnRhbERQSSgpOworICAgIHVuc2lnbmVkIHZlcnREUEkg
PSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPnNjcmVlbigpLT52ZXJ0aWNhbERQSSgp
OworCisgICAgdW5zaWduZWQgbWluRFBJID0gc3RkOjptaW4oaG9yaURQSSwgdmVydERQSSk7Cisg
ICAgdW5zaWduZWQgbWF4RFBJID0gc3RkOjptYXgoaG9yaURQSSwgdmVydERQSSk7CisKKyAgICAv
LyBBY2NvcmRpbmcgdG8gc3BlYywgKHJlc29sdXRpb24pIHdpbGwgZXZhbHVhdGUgdG8gdHJ1ZSBp
ZiAocmVzb2x1dGlvbjp4KQorICAgIC8vIHdpbGwgZXZhbHVhdGUgdG8gdHJ1ZSBmb3IgYSB2YWx1
ZSB4IG90aGVyIHRoYW4gemVybyBvciB6ZXJvIGZvbGxvd2VkIGJ5CisgICAgLy8gYSB2YWxpZCB1
bml0IGlkZW50aWZpZXIgKGkuZS4sIG90aGVyIHRoYW4gMCwgMGRwaSwgMGRwY20sIG9yIDBkcHB4
LikuCisgICAgLy8KKyAgICAvLyBUaGlzIGlzIGFjdHVhbGx5IGFsd2F5cyB0aGUgY2FzZSB3aXRo
IHRoZSBkcHB4LCB3aGljaCB3ZSBpZ25vcmUgYXMgaXQgaXMKKyAgICAvLyBhIHNwZWNpYWwtY2Fz
ZSBpbiB0aGUgc2Vuc2UgaXQgY2FuIGJlIG91dCBvZiBzeW5jIHdpdGggZHBpIGFuZCBkcGNtLiBG
b3IKKyAgICAvLyBpbnN0YW5jZSwgYm90aCBhIGRldmljZSB3aXRoIDk2ZHBpIGFuZCAxNjBkcGkg
Y2FuIGhhdmUgYSBkcHB4IG9mIDEuCisgICAgLy8KKyAgICAvLyBUaGlzIGxlYXZlcyB0aGUgY2Fz
ZSBvZiBzcXVhcmVkIHBpeGVscy4KKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAgIEFTU0VSVChv
cCA9PSBOb1ByZWZpeCk7CisgICAgICAgIHJldHVybiBtaW5EUEkgPT0gbWF4RFBJOworICAgIH0K
KworICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHJhd1ZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7CisgICAgaWYgKHJhd1ZhbHVlLT5pc0RlbnNpdHlQZXJQ
aXhlbCgpKSB7CisgICAgICAgIGZsb2F0IGFjdHVhbERlbnNpdHkgPSBmcmFtZS0+cGFnZSgpLT5k
ZXZpY2VTY2FsZUZhY3RvcigpOworICAgICAgICBmbG9hdCB0ZXN0ZWREZW5zaXR5ID0gcmF3VmFs
dWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUFBYKTsKKyAgICAgICAg
cmV0dXJuIGNvbXBhcmVWYWx1ZShhY3R1YWxEZW5zaXR5LCB0ZXN0ZWREZW5zaXR5LCBvcCk7Cisg
ICAgfQorCisgICAgaWYgKHJhd1ZhbHVlLT5pc0RlbnNpdHlQZXJJbmNoKCkpIHsKKyAgICAgICAg
dW5zaWduZWQgdGVzdGVkRGVuc2l0eSA9IHJhd1ZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfRFBJKTsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmVSZXNvbHV0aW9uKG1p
bkRQSSwgbWF4RFBJLCB0ZXN0ZWREZW5zaXR5LCBvcCk7CisgICAgfQorCisgICAgdW5zaWduZWQg
bWluRFBDTSA9IGZsb29yKG1pbkRQSSAvIDIuNTQpOyAvLyAoMi41NCBjbS9pbikKKyAgICB1bnNp
Z25lZCBtYXhEUENNID0gZmxvb3IobWF4RFBJIC8gMi41NCk7CisKKyAgICBpZiAocmF3VmFsdWUt
PmlzRGVuc2l0eVBlckNlbnRpbWV0ZXIoKSkgeworICAgICAgICB1bnNpZ25lZCB0ZXN0ZWREZW5z
aXR5ID0gcmF3VmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUENN
KTsKKyAgICAgICAgcmV0dXJuIGNvbXBhcmVSZXNvbHV0aW9uKG1pbkRQQ00sIG1heERQQ00sIHRl
c3RlZERlbnNpdHksIG9wKTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIHN0YXRp
YyBib29sIGdyaWRNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUq
LCBGcmFtZSosIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsKICAgICAvLyBpZiBvdXRwdXQgZGV2
aWNlIGlzIGJpdG1hcCwgZ3JpZDogMCA9PSB0cnVlCkBAIC00NTYsNiArNTIxLDE2IEBAIHN0YXRp
YyBib29sIG1heF9kZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwg
UmVuZGVyU3R5bGUqIHN0eWxlCiAgICAgcmV0dXJuIGRldmljZV93aWR0aE1lZGlhRmVhdHVyZUV2
YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWF4UHJlZml4KTsKIH0KIAorc3RhdGljIGJvb2wgbWlu
X3Jlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUq
IHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKK3sKKyAgICByZXR1cm4g
cmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWluUHJlZml4
KTsKK30KKworc3RhdGljIGJvb2wgbWF4X3Jlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1Zh
bHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVy
ZVByZWZpeCkKK3sKKyAgICByZXR1cm4gcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwodmFsdWUs
IHN0eWxlLCBmcmFtZSwgTWF4UHJlZml4KTsKK30KKwogc3RhdGljIGJvb2wgYW5pbWF0aW9uTWVk
aWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqLCBNZWRp
YUZlYXR1cmVQcmVmaXggb3ApCiB7CiAgICAgaWYgKHZhbHVlKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFRdWVyeUV4cC5jcHAKaW5kZXggMWEwNmI3OTY1ZmNjYjk4YTA5MzU2OTU2OTc1OGIyMWZjNmUy
OTk4MS4uZTBlMmIzMWViMTRjNDg5ODJmZDRlZDRkMDMyNjk1MTJmZDkyN2NkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcApAQCAtNjcsNiArNjcsMTYgQEAgc3RhdGljIGlubGlu
ZSBib29sIGZlYXR1cmVXaXRoVmFsaWRQb3NpdGl2ZUxlbmdodE9yTnVtYmVyKGNvbnN0IEF0b21p
Y1N0cmluZyYgbWUKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
OjptaW5fZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlOwogfQogCitzdGF0aWMgaW5saW5lIGJvb2wg
ZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZlRGVuc2l0eShjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlh
RmVhdHVyZSwgY29uc3QgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlKQoreworICAgIGlmICgodmFsdWUt
PnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUFBYICYmIHZhbHVlLT51bml0ICE9IENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBJICYmIHZhbHVlLT51bml0ICE9IENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfRFBDTSkgfHwgdmFsdWUtPmZWYWx1ZSA8IDApCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIHJldHVybiBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnJlc29s
dXRpb25NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVy
ZU5hbWVzOjptYXhfcmVzb2x1dGlvbk1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1
cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbl9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlOworfQor
CiBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhQb3NpdGl2ZUludGVnZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBtZWRpYUZlYXR1cmUsIGNvbnN0IENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKIHsK
ICAgICBpZiAoIXZhbHVlLT5pc0ludCB8fCB2YWx1ZS0+ZlZhbHVlIDwgMCkKQEAgLTExNCw2ICsx
MjQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhBc3BlY3RSYXRpbyhjb25zdCBB
dG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSkKIAogc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVX
aXRob3V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUpCiB7CisgICAgLy8g
TWVkaWEgZmVhdHVyZXMgdGhhdCBhcmUgcHJlZml4ZWQgYnkgbWluL21heCBjYW5ub3QgYmUgdXNl
ZCB3aXRob3V0IGEgdmFsdWUuCiAgICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1
cmVOYW1lczo6bW9ub2Nocm9tZU1lZGlhRmVhdHVyZQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUg
PT0gTWVkaWFGZWF0dXJlTmFtZXM6OmNvbG9yTWVkaWFGZWF0dXJlCiAgICAgICAgIHx8IG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6Z3JpZE1lZGlhRmVhdHVyZQpAQCAtMTMxLDcg
KzE0Miw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aG91dFZhbHVlKGNvbnN0IEF0
b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlKQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVk
aWFGZWF0dXJlTmFtZXM6OmFuaW1hdGlvbk1lZGlhRmVhdHVyZQogICAgICAgICB8fCBtZWRpYUZl
YXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnZpZXdfbW9kZU1lZGlhRmVhdHVyZQogICAgICAg
ICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnBvaW50ZXJNZWRpYUZlYXR1
cmUKLSAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2Vf
cGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmU7CisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRp
YUZlYXR1cmVOYW1lczo6ZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlCisgICAgICAgIHx8
IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6cmVzb2x1dGlvbk1lZGlhRmVhdHVy
ZTsKIH0KIAogaW5saW5lIE1lZGlhUXVlcnlFeHA6Ok1lZGlhUXVlcnlFeHAoY29uc3QgQXRvbWlj
U3RyaW5nJiBtZWRpYUZlYXR1cmUsIENTU1BhcnNlclZhbHVlTGlzdCogdmFsdWVMaXN0KQpAQCAt
MTQ4LDYgKzE2MCwxMCBAQCBpbmxpbmUgTWVkaWFRdWVyeUV4cDo6TWVkaWFRdWVyeUV4cChjb25z
dCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgQ1NTUGFyc2VyVgogICAgICAgICAgICAgaWYg
KGZlYXR1cmVXaXRoQ1NTVmFsdWVJRChtZWRpYUZlYXR1cmUsIHZhbHVlKSkKICAgICAgICAgICAg
ICAgICBtX3ZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIodmFsdWUt
PmlkKTsKIAorICAgICAgICAgICAgLy8gTWVkaWEgZmVhdHVyZXMgdGhhdCBtdXN0IGhhdmUgbm9u
LW5lZ2F0aXZlIDxkZW5zaXR5PiwgaWUuIGRwcHgsIGRwaSBvciBkcGNtLgorICAgICAgICAgICAg
ZWxzZSBpZiAoZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZlRGVuc2l0eShtZWRpYUZlYXR1cmUsIHZh
bHVlKSkKKyAgICAgICAgICAgICAgICBtX3ZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZSh2YWx1ZS0+ZlZhbHVlLCAoQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcykgdmFsdWUtPnVu
aXQpOworCiAgICAgICAgICAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IG11c3QgaGF2ZSBub24t
bmVnYXRpdmUgPGxlbmdodD4gb3IgbnVtYmVyIHZhbHVlLgogICAgICAgICAgICAgZWxzZSBpZiAo
ZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZlTGVuZ2h0T3JOdW1iZXIobWVkaWFGZWF0dXJlLCB2YWx1
ZSkpCiAgICAgICAgICAgICAgICAgbV92YWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUo
dmFsdWUtPmZWYWx1ZSwgKENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpIHZhbHVlLT51bml0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcAppbmRleCBlMWUxZDExNzM4NmY2MjJlZTNjMTkzYjNlNTAy
MmM4ODNhOGMyNWIxLi40MGEzODhlZDIzYTRhNTg4M2UwMThkYTE1YzFmNWE4M2E0OTI0Y2JkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TY3JlZW4uY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1TY3JlZW4uaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldpZGdl
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OCw2ICs0OSwxMSBAQCB1bnNpZ25lZCBT
Y3JlZW46Omhvcml6b250YWxEUEkoKSBjb25zdAogewogICAgIGlmICghbV9mcmFtZSkKICAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICBJbnRTaXplIG92ZXJyaWRlID0gbV9mcmFtZS0+cGFnZSgpLT5z
ZXR0aW5ncygpLT5yZXNvbHV0aW9uT3ZlcnJpZGUoKTsKKyAgICBpZiAoIW92ZXJyaWRlLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIG92ZXJyaWRlLndpZHRoKCk7CisKICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHNjcmVlbkhvcml6b250YWxEUEkobV9mcmFtZS0+dmlldygpKSk7
CiB9CiAKQEAgLTU1LDYgKzYxLDExIEBAIHVuc2lnbmVkIFNjcmVlbjo6dmVydGljYWxEUEkoKSBj
b25zdAogewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIDA7CisKKyAgICBJbnRT
aXplIG92ZXJyaWRlID0gbV9mcmFtZS0+cGFnZSgpLT5zZXR0aW5ncygpLT5yZXNvbHV0aW9uT3Zl
cnJpZGUoKTsKKyAgICBpZiAoIW92ZXJyaWRlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG92
ZXJyaWRlLmhlaWdodCgpOworCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzY3Jl
ZW5WZXJ0aWNhbERQSShtX2ZyYW1lLT52aWV3KCkpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcAppbmRleCA5ODc2YWY1Yzc2ZDIyNTVjZWIyZjg4MGI4NDk1MTlkMjZjM2QzZWQ0Li43NGI5
MmY5ZjljMzk3MTE1OTk0NDJjNzE0NGI5ZGFlYmU1ZDc3NzhlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmNwcApAQCAtNDU5LDYgKzQ1OSwxNSBAQCB2b2lkIFNldHRpbmdzOjpzZXRUZXh0QXV0b3Np
emluZ0ZvbnRTY2FsZUZhY3RvcihmbG9hdCBmb250U2NhbGVGYWN0b3IpCiAKICNlbmRpZgogCit2
b2lkIFNldHRpbmdzOjpzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoY29uc3QgSW50U2l6ZSYgZGVuc2l0
eVBlckluY2hPdmVycmlkZSkKK3sKKyAgICBpZiAobV9yZXNvbHV0aW9uRGVuc2l0eVBlckluY2hP
dmVycmlkZSA9PSBkZW5zaXR5UGVySW5jaE92ZXJyaWRlKQorICAgICAgICByZXR1cm47CisKKyAg
ICBtX3Jlc29sdXRpb25EZW5zaXR5UGVySW5jaE92ZXJyaWRlID0gZGVuc2l0eVBlckluY2hPdmVy
cmlkZTsKKyAgICBtX3BhZ2UtPnNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOworfQor
CiB2b2lkIFNldHRpbmdzOjpzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoYm9vbCBsb2Fkc0lt
YWdlc0F1dG9tYXRpY2FsbHkpCiB7CiAgICAgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgPSBs
b2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggODk3ODVk
MTJmNmUyOTE2NmRhYzNiYWZjYmVmNzBiMDVkZWZmYjQ2YS4uYzcxZjMyZTg2MWQ3MWQ3YzYyODQz
NjA5YWNmNGUzNTUyYmE0MzAzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMjksNiArMjks
NyBAQAogCiAjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCIKICNpbmNsdWRlICJGb250
UmVuZGVyaW5nTW9kZS5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJLVVJMLmgi
CiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJUaW1lci5oIgpAQCAtMzcs
MTAgKzM4LDYgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+CiAjaW5j
bHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgogCi0jaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklO
RykKLSNpbmNsdWRlICJJbnRTaXplLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgY2xhc3MgUGFnZTsKQEAgLTEyMyw2ICsxMjAsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICBjb25zdCBJbnRTaXplJiB0ZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlk
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGU7IH0K
ICNlbmRpZgogCisgICAgICAgIC8vIE9ubHkgc2V0IGJ5IExheW91dCBUZXN0cy4KKyAgICAgICAg
dm9pZCBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoY29uc3QgSW50U2l6ZSYpOworICAgICAgICBjb25z
dCBJbnRTaXplJiByZXNvbHV0aW9uT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdXRp
b25EZW5zaXR5UGVySW5jaE92ZXJyaWRlOyB9CisKICAgICAgICAgLy8gVW5saWtlIGFyZUltYWdl
c0VuYWJsZWQsIHRoaXMgb25seSBzdXBwcmVzc2VzIHRoZSBuZXR3b3JrIGxvYWQgb2YKICAgICAg
ICAgLy8gdGhlIGltYWdlIFVSTC4gIEEgY2FjaGVkIGltYWdlIHdpbGwgc3RpbGwgYmUgcmVuZGVy
ZWQgaWYgcmVxdWVzdGVkLgogICAgICAgICB2b2lkIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxs
eShib29sKTsKQEAgLTY4Niw2ICs2ODcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IEludFNpemUgbV90ZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZTsKICAgICAgICAgYm9v
bCBtX3RleHRBdXRvc2l6aW5nRW5hYmxlZCA6IDE7CiAjZW5kaWYKKyAgICAgICAgSW50U2l6ZSBt
X3Jlc29sdXRpb25EZW5zaXR5UGVySW5jaE92ZXJyaWRlOwogICAgICAgICBib29sIG1faXNTcGF0
aWFsTmF2aWdhdGlvbkVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNKYXZhRW5hYmxlZCA6
IDE7CiAgICAgICAgIGJvb2wgbV9pc0phdmFFbmFibGVkRm9yTG9jYWxGaWxlcyA6IDE7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCA4ZDhmMGNiNDA5
MDAzNjVlNjBhNDM4NGVjYjA5NzQwNTQ3NzE1YWY5Li5hYjQ1YjJhN2RlODM1YWZiM2YxMmExNWIy
YTRmZGZkODRjYTdjYTVjIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5jcHAKQEAgLTk3LDYgKzk3LDggQEAgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNr
dXAoUGFnZSogcGFnZSwgU2V0dGluZ3MqIHNldHRpbmdzKQogICAgICwgbV9vcmlnaW5hbFRleHRB
dXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKHNldHRpbmdzLT50ZXh0QXV0b3NpemluZ1dpbmRv
d1NpemVPdmVycmlkZSgpKQogICAgICwgbV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nRm9udFNjYWxl
RmFjdG9yKHNldHRpbmdzLT50ZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcigpKQogI2VuZGlm
CisgICAgLCBtX29yaWdpbmFsRGV2aWNlU2NhbGVGYWN0b3IocGFnZS0+ZGV2aWNlU2NhbGVGYWN0
b3IoKSkKKyAgICAsIG1fb3JpZ2luYWxSZXNvbHV0aW9uT3ZlcnJpZGUoc2V0dGluZ3MtPnJlc29s
dXRpb25PdmVycmlkZSgpKQogI2lmIEVOQUJMRShESUFMT0dfRUxFTUVOVCkKICAgICAsIG1fb3Jp
Z2luYWxEaWFsb2dFbGVtZW50RW5hYmxlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpkaWFsb2dF
bGVtZW50RW5hYmxlZCgpKQogI2VuZGlmCkBAIC0xMzYsNiArMTM4LDggQEAgdm9pZCBJbnRlcm5h
bFNldHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVUbyhQYWdlKiBwYWdlLCBTZXR0aW5ncyogc2V0dGlu
Z3MpCiAgICAgc2V0dGluZ3MtPnNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKG1f
b3JpZ2luYWxUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSk7CiAgICAgc2V0dGluZ3Mt
PnNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKG1fb3JpZ2luYWxUZXh0QXV0b3Npemlu
Z0ZvbnRTY2FsZUZhY3Rvcik7CiAjZW5kaWYKKyAgICBwYWdlLT5zZXREZXZpY2VTY2FsZUZhY3Rv
cihtX29yaWdpbmFsRGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHNldHRpbmdzLT5zZXRSZXNvbHV0
aW9uT3ZlcnJpZGUobV9vcmlnaW5hbFJlc29sdXRpb25PdmVycmlkZSk7CiAjaWYgRU5BQkxFKERJ
QUxPR19FTEVNRU5UKQogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldERpYWxvZ0VsZW1l
bnRFbmFibGVkKG1fb3JpZ2luYWxEaWFsb2dFbGVtZW50RW5hYmxlZCk7CiAjZW5kaWYKQEAgLTQx
Myw2ICs0MTcsMTQgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRUZXh0QXV0b3NpemluZ1dp
bmRvd1NpemVPdmVycmlkZShpbnQgd2lkdGgsIGludCBoZWlnaHQKICNlbmRpZgogfQogCit2b2lk
IEludGVybmFsU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVycmlkZShmbG9hdCBkZW5zaXR5UGVy
UGl4ZWwsIGludCBkZW5zaXR5UGVySW5jaEhvcml6b250YWxseSwgaW50IGRlbnNpdHlQZXJJbmNo
VmVydGljYWxseSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSW50ZXJuYWxTZXR0aW5nc0d1
YXJkRm9yU2V0dGluZ3MoKTsKKyAgICAvLyBBbiBlbXB0eSBzaXplIHJlc2V0cyB0aGUgb3ZlcnJp
ZGUuCisgICAgc2V0dGluZ3MoKS0+c2V0UmVzb2x1dGlvbk92ZXJyaWRlKEludFNpemUoZGVuc2l0
eVBlckluY2hIb3Jpem9udGFsbHksIGRlbnNpdHlQZXJJbmNoVmVydGljYWxseSkpOworICAgIHBh
Z2UoKS0+c2V0RGV2aWNlU2NhbGVGYWN0b3IoZGVuc2l0eVBlclBpeGVsKTsKK30KKwogdm9pZCBJ
bnRlcm5hbFNldHRpbmdzOjpzZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcihmbG9hdCBm
b250U2NhbGVGYWN0b3IsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogI2lmIEVOQUJMRShURVhUX0FV
VE9TSVpJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4
IDc4ZjM2ZTAxNzYxY2ViZGMzMWQ4OTQyMTlkMzIwYjYwMmExNjliNGYuLjBmMGJiNTljM2FlYThk
YWViYTA5MDY3OWRiNzYxMjRhMWRlN2FlYzAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5oCkBAIC0yNywxNSArMjcsMTIgQEAKICNkZWZpbmUgSW50ZXJuYWxTZXR0
aW5nc19oCiAKICNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgorI2luY2x1ZGUgIklu
dFNpemUuaCIKICNpbmNsdWRlICJSZWZDb3VudGVkU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCi0jaW5j
bHVkZSAiSW50U2l6ZS5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdHlwZWRl
ZiBpbnQgRXhjZXB0aW9uQ29kZTsKQEAgLTc5LDYgKzc2LDggQEAgcHVibGljOgogICAgICAgICBJ
bnRTaXplIG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZTsKICAgICAg
ICAgZmxvYXQgbV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yOwogI2VuZGlm
CisgICAgICAgIGZsb2F0IG1fb3JpZ2luYWxEZXZpY2VTY2FsZUZhY3RvcjsKKyAgICAgICAgSW50
U2l6ZSBtX29yaWdpbmFsUmVzb2x1dGlvbk92ZXJyaWRlOwogI2lmIEVOQUJMRShESUFMT0dfRUxF
TUVOVCkKICAgICAgICAgYm9vbCBtX29yaWdpbmFsRGlhbG9nRWxlbWVudEVuYWJsZWQ7CiAjZW5k
aWYKQEAgLTEyNyw2ICsxMjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUZXh0QXV0b3Npemlu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRUZXh0
QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShpbnQgd2lkdGgsIGludCBoZWlnaHQsIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKGZs
b2F0IGZvbnRTY2FsZUZhY3RvciwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0UmVzb2x1
dGlvbk92ZXJyaWRlKGZsb2F0IGRlbnNpdHlQZXJQaXhlbCwgaW50IGRlbnNpdHlQZXJJbmNoSG9y
aXpvbnRhbGx5LCBpbnQgZGVuc2l0eVBlckluY2hWZXJ0aWNhbGx5LCBFeGNlcHRpb25Db2RlJik7
CiAgICAgdm9pZCBzZXRFbmFibGVTY3JvbGxBbmltYXRvcihib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICBib29sIHNjcm9sbEFuaW1hdG9yRW5hYmxlZChFeGNlcHRpb25Db2RlJik7
CiAgICAgdm9pZCBzZXRDU1NFeGNsdXNpb25zRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmlu
ZGV4IGYzNDY0YmU5YTRlYzY0NTY0YjQzNDUwOTc4N2RmODQ3ZTNlZTgxY2UuLjE3ZjcxYWE4OWQw
ZDY0MWJhMDAyYWMxYjBjNzFkZGQ0NWVmYTY2YWQgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmlkbApAQCAtNTYsNiArNTYsNyBAQAogICAgIHZvaWQgc2V0VGV4
dEF1dG9zaXppbmdFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7CiAgICAgdm9pZCBzZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShpbiBsb25n
IHdpZHRoLCBpbiBsb25nIGhlaWdodCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBz
ZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcihpbiBmbG9hdCBmb250U2NhbGVGYWN0b3Ip
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgIHZvaWQgc2V0UmVzb2x1dGlvbk92ZXJyaWRlKGlu
IGZsb2F0IGRlbnNpdHlQZXJQaXhlbCwgaW4gbG9uZyBkZW5zaXR5UGVySW5jaEhvcml6b250YWxs
eSwgaW4gbG9uZyBkZW5zaXR5UGVySW5jaFZlcnRpY2FsbHkpIHJhaXNlcyhET01FeGNlcHRpb24p
OwogICAgIHZvaWQgc2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoaW4gYm9vbGVhbiBlbmFibGVkKSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICBib29sZWFuIHNjcm9sbEFuaW1hdG9yRW5hYmxlZCgp
IHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQo
aW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LmRlZgppbmRleCAxOTZiYmYwNTk1YjNiMDViN2U0MTMxYmRlOWI3Mzg1YjE0NDAyZmFiLi5iMWQy
NmI4ZGRiMGMzYmMwMTkzMGM5OTBjOTk4ZmMyNzdlNTM2YzFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIu
ZGVmCkBAIC0yNDIsNiArMjQyLDcgQEAgRVhQT1JUUwogICAgICAgICA/c2V0U3RvcmFnZUJsb2Nr
aW5nUG9saWN5QFNldHRpbmdzQFdlYkNvcmVAQFFBRVhXNFN0b3JhZ2VCbG9ja2luZ1BvbGljeUBT
ZWN1cml0eU9yaWdpbkAyQEBaCiAgICAgICAgID9zZXRTdWdnZXN0ZWRWYWx1ZUBIVE1MSW5wdXRF
bGVtZW50QFdlYkNvcmVAQFFBRVhBQlZTdHJpbmdAV1RGQEBAWgogICAgICAgICA/c2V0RWRpdGlu
Z1ZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUFFWEFCVlN0cmluZ0BXVEZAQEBaCisg
ICAgICAgID9zZXRSZXNvbHV0aW9uT3ZlcnJpZGVAU2V0dGluZ3NAV2ViQ29yZUBAUUFFWEFCVklu
dFNpemVAMkBAWgogICAgICAgICA/c2V0dGluZ3NARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWU2V0
dGluZ3NAMkBYWgogICAgICAgICA/c2V0dGluZ3NARnJhbWVAV2ViQ29yZUBAUUJFUEFWU2V0dGlu
Z3NAMkBYWgogICAgICAgICA/c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZUBT
ZXR0aW5nc0BXZWJDb3JlQEBRQUVYX05AWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9z
eW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggYWVk
NTRhZjIxYWM4Yzg4NGJkZWUyMjRlODliZTJlNmNhODQ1YWZkZi4uMzJlZmU1YTlkZWRmMGEyMTg3
ZmY5MThmNWJkMGI0ODk0YTIyNDVmZCAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1i
b2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC0xNzUs
NiArMTc1LDcgQEAgX1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldE1vY2tTY3JvbGxiYXJzRW5hYmxl
ZEViOwogX1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldFVzZXNPdmVybGF5U2Nyb2xsYmFyc0ViOwog
X1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeUVOU18xNFNlY3Vy
aXR5T3JpZ2luMjFTdG9yYWdlQmxvY2tpbmdQb2xpY3lFOwogX1pON1dlYkNvcmU4U2V0dGluZ3Mz
N3NldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWVFYjsKK19aTjdXZWJDb3JlOFNl
dHRpbmdzMjFzZXRSZXNvbHV0aW9uT3ZlcnJpZGVFUktOU183SW50U2l6ZUU7CiBfWk43V2ViQ29y
ZTlGcmFtZVZpZXcxN3BhaW50Q29udHJvbFRpbnRzRXY7CiBfWk43V2ViQ29yZTlGcmFtZVZpZXcx
OXNjcm9sbEVsZW1lbnRUb1JlY3RFUE5TXzdFbGVtZW50RVJLTlNfN0ludFJlY3RFOwogX1pON1dl
YkNvcmUyMlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMzMWlzTXVsdGlwbGVTaGFkb3dTdWJ0cmVlc0Vu
YWJsZWRFOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDliZWYzZDRhNTBmMjI5M2I5Y2RlOTM4OTY3MzUxYmY2NWNjZWRmM2Iu
LjdlMDNkOTQ2NzAzZmY2OGMxYWMzMTkyZDk5NWE2ZWJhZmMxZTUxMzcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNiBAQAorMjAxMi0xMC0xNSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRo
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlc29sdXRpb24gbWVkaWEg
cXVlcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5
MDc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dCAocmVzb2x1dGlvbjogeCkgbWVkaWEgcXVlcnkgdG8gZW5zdXJlIGNvbXBsaWFuY2UKKyAgICAg
ICAgd2l0aCBzcGVjIHBsdXMgcHJvcG9zZWQgZHBweCB2YWx1ZXMuCisKKyAgICAgICAgKiBmYXN0
L21lZGlhL21xLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L21lZGlhL21xLXJlc29sdXRpb24uaHRtbDogQWRkZWQuCisKIDIwMTItMTAtMTYgIEtlaXNoaSBI
YXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIHRlc3QgdGhhdCBjaGVj
a3MgdGhhdCByZWxvYWRpbmcgYWZ0ZXIgc2V0dGluZyBhIHZhbHVlIGZvciBhbiBpbnB1dCBlbGVt
ZW50IGZyb20gYSBzdWdnZXN0aW9uIHBpY2tlciByZXNldHMgdGhlIHZhbHVlcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmUxNmU4YjkyOGQ0OTcwZGI5Njg1MTgzMGU4ZTIxYzU1ZDcxOGNhMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzOCBAQAorQ1NTMyBtZWRpYSBxdWVyeSB0ZXN0OiByZXNvbHV0aW9uIHF1ZXJ5
IHdpdGggZHBweC4gVXNpbmcgc3R5bGUgZWxlbWVudCwgQG1lZGlhIGNzcyBydWxlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNv
bHV0aW9uOiAxLjVkcHB4KScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuZGV2aWNlUGl4
ZWxSYXRpbyBpcyAxLjUKK1BBU1MgZGV2aWNlUGl4ZWxSYXRpb0Zyb21TdHlsZSgpIGlzIDEuNQor
UEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyZHBweCknKS5tYXRjaGVzIGlz
IHRydWUKK1BBU1Mgd2luZG93LmRldmljZVBpeGVsUmF0aW8gaXMgMgorUEFTUyBkZXZpY2VQaXhl
bFJhdGlvRnJvbVN0eWxlKCkgaXMgMgorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0
aW9uOiAxZHBweCknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1Mgd2luZG93LmRldmljZVBpeGVsUmF0
aW8gaXMgMQorUEFTUyBkZXZpY2VQaXhlbFJhdGlvRnJvbVN0eWxlKCkgaXMgMQorUEFTUyBtYXRj
aE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRj
aE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyBpcyB0cnVlCitQ
QVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hl
cyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAyNTRk
cGkpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRp
b246IDEwMGRwY20pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0
LW1pbi1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1l
ZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIGlzIHRydWUK
K1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbiknKS5tYXRjaGVzIGlzIGZhbHNl
CitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVz
IGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDI2MGRwaSkn
KS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0
aW9uOiAyNTRkcGkpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0
LW1pbi1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1l
ZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMgaXMgZmFsc2UK
K1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDI2MGRwaSknKS5tYXRj
aGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMTAwZHBj
bSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRp
b246IDEwMmRwY20pJykubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtp
dC1taW4tcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hN
ZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDEwMmRwY20pJykubWF0Y2hlcyBpcyBmYWxz
ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5t
YXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9u
OiAxMDJkcGNtKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWEvbXEtcmVzb2x1dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0
aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDM1MmZmNjI0M2U2MWMxODY2YzhhMGM2NDY0ZGFlM2E0OThj
YjU2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1
dGlvbi5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorCis8ZGl2IGlkPSJkZXRlY3RvciI+PC9kaXY+CisKKzxzdHlsZT4KKyAgICAjZGV0ZWN0b3Ig
eyB3aWR0aDogMTBweDsgfQorICAgIEBtZWRpYSAoLXdlYmtpdC1yZXNvbHV0aW9uOiAgIDFkcHB4
KSB7ICNkZXRlY3RvciB7IHdpZHRoOiAxMHB4OyB9IH0KKyAgICBAbWVkaWEgKC13ZWJraXQtcmVz
b2x1dGlvbjogMS41ZHBweCkgeyAjZGV0ZWN0b3IgeyB3aWR0aDogMTVweDsgfSB9CisgICAgQG1l
ZGlhICgtd2Via2l0LXJlc29sdXRpb246ICAgMmRwcHgpIHsgI2RldGVjdG9yIHsgd2lkdGg6IDIw
cHg7IH0gfQorPC9zdHlsZT4KKworPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ1NTMyBtZWRp
YSBxdWVyeSB0ZXN0OiByZXNvbHV0aW9uIHF1ZXJ5IHdpdGggZHBweC4gVXNpbmcgc3R5bGUgZWxl
bWVudCwgQG1lZGlhIGNzcyBydWxlLiIpCisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmludGVybmFscykgeworICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisKKyAgICAgICAgZnVuY3Rpb24gZGV2aWNlUGl4ZWxSYXRpb0Zyb21TdHlsZSgpIHsKKyAg
ICAgICAgICAgIHZhciB3aWR0aCA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImRldGVjdG9yIikpLndpZHRoOworICAgICAgICAgICAgc3dpdGNoICh3aWR0aCkgewor
ICAgICAgICAgICAgICAgIGNhc2UgIjEwcHgiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
MTsKKyAgICAgICAgICAgICAgICBjYXNlICIxNXB4IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIDEuNTsKKyAgICAgICAgICAgICAgICBjYXNlICIyMHB4IjoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDEuNSwgOTYs
IDk2KTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246
IDEuNWRwcHgpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
ZGV2aWNlUGl4ZWxSYXRpbyIsICIxLjUiKTsKKyAgICAgICAgc2hvdWxkQmUoImRldmljZVBpeGVs
UmF0aW9Gcm9tU3R5bGUoKSIsICIxLjUiKTsKKworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgyLCA5NiwgOTYpOworICAgICAgICBzaG91bGRC
ZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMmRwcHgpJykubWF0Y2hlcyIsICJ0
cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyIsICIyIik7
CisgICAgICAgIHNob3VsZEJlKCJkZXZpY2VQaXhlbFJhdGlvRnJvbVN0eWxlKCkiLCAiMiIpOwor
CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRl
KDEsIDk2LCA5Nik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNv
bHV0aW9uOiAxZHBweCknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIndp
bmRvdy5kZXZpY2VQaXhlbFJhdGlvIiwgIjEiKTsKKyAgICAgICAgc2hvdWxkQmUoImRldmljZVBp
eGVsUmF0aW9Gcm9tU3R5bGUoKSIsICIxIik7CisKKyAgICAgICAgd2luZG93LmludGVybmFscy5z
ZXR0aW5ncy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMSwgMjU0LCAyNTQpOworICAgICAgICBzaG91
bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbiknKS5tYXRjaGVzIiwgInRydWUi
KTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDI1
NGRwaSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEo
Jygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyIsICJ0cnVlIik7Cisg
ICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMjU0
ZHBpKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworCisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlh
KCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAg
ICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDEwMGRw
Y20pJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCco
LXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsKKwor
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgx
LCAyNTQsIDI2MCk7CisgICAgICAgIC8vIE5vbi1zcXVhcmUgbXVzdCBuZXZlciBtYXRjaC4KKyAg
ICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb24pJykubWF0Y2hl
cyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVz
b2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUo
Im1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDI2MGRwaSknKS5tYXRjaGVzIiwgImZh
bHNlIik7CisKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNv
bHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJt
YXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMjYwZHBpKScpLm1hdGNoZXMiLCAi
ZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNv
bHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRCZSgi
bWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDI2MGRwaSknKS5tYXRjaGVzIiwg
InRydWUiKTsKKworICAgICAgICAvLyBOb24tc3F1YXJlIG11c3QgbmV2ZXIgbWF0Y2guCisgICAg
ICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxMDBkcGNtKScp
Lm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Vi
a2l0LXJlc29sdXRpb246IDEwMmRwY20pJykubWF0Y2hlcyIsICJmYWxzZSIpOworCisgICAgICAg
IHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMTAwZHBjbSkn
KS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Vi
a2l0LW1pbi1yZXNvbHV0aW9uOiAxMDJkcGNtKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAg
ICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAxMDBkcGNt
KScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygt
d2Via2l0LW1heC1yZXNvbHV0aW9uOiAxMDJkcGNtKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAg
IH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cg
Yi9DaGFuZ2VMb2cKaW5kZXggZjMwMWZkMjBiNGFkNTE4YTc4ZmIwYmNkYTFhMTE3YzMzN2FmYTQy
Ni4uZDdkYmJlMWYxYzU4YWNiYTA1YzBhNzM2ZGI5ODk0NWQ2ZTNlZTU5NCAxMDA2NDQKLS0tIGEv
Q2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTEwLTE2ICBL
ZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9s
cy5maWx0ZXI6CisKKyAgICAgICAgICAgIEV4cG9ydCB0aGUgV2ViQ29yZTo6U2V0dGluZ3Mgc2V0
dGluZy4KKwogMjAxMi0xMC0xNSAgUnl1YW4gQ2hvaSAgPHJ5dWFuLmNob2lAc2Ftc3VuZy5jb20+
CiAKICAgICAgICAgW0VGTF0gU2hhcmUgcmVzb3VyY2VzIGluc3RhbGxlZCBmb3IgaW5zcGVjdG9y
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169190</attachid>
            <date>2012-10-17 08:30:48 -0700</date>
            <delta_ts>2012-10-17 09:45:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99077-20121017172934.patch</filename>
            <type>text/plain</type>
            <size>33243</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWM1MzcwN2RhYjU1NDM4
MjEwNTk5ZmJlMDVkYmM1ZDc0MWVmZWE0Ny4uMTgxYzhmNWU0YzZhZDliNjA3OGQ2OWI3NGZhNjU2
NmY1ODExMjNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEyLTEwLTE1ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBt
ZWRpYSBxdWVyeSBmZWF0dXJlIHdpdGggLXdlYmtpdAorICAgICAgICBwcmVmaXggZHVlIHRvIHRo
ZSBzdXBwb3J0IG9mIHRoZSBwcm9wb3NlZCBkcHB4IHZhbHVlcy4KKworICAgICAgICBBZGQgaW5m
cmFzdHJ1Y3R1cmUgdG8gbWFrZSBpdCB0ZXN0YWJsZS4KKworICAgICAgICBUZXN0OiBmYXN0L21l
ZGlhL21xLXJlc29sdXRpb24uaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisKKyAg
ICAgICAgICAgIEV4cG9ydCB0aGUgV2ViQ29yZTo6U2V0dGluZ3Mgc2V0dGluZy4KKworICAgICAg
ICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzRGVuc2l0eVBlckluY2gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzRGVuc2l0eVBlclBpeGVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjppc0RlbnNpdHlQZXJDZW50aW1ldGVyKToKKyAgICAgICAgKENTU1ByaW1pdGl2
ZVZhbHVlKToKKworICAgICAgICAgICAgQWRkIGZ1bmN0aW9uIGZvciBjaGVja2luZyB0aGUgcmVj
ZW50bHkgYWRkZWQgZGVuc2l0eSB0eXBlcy4KKworICAgICAgICAqIGNzcy9NZWRpYUZlYXR1cmVO
YW1lcy5oOgorICAgICAgICAoTWVkaWFGZWF0dXJlTmFtZXMpOgorCisgICAgICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgLXdlYmtpdC1yZXNvbHV0aW9uLCAtd2Via2l0LW1pbi1yZXNvbHV0aW9uCisg
ICAgICAgICAgICBhbmQgLXdlYmtpdC1tYXgtcmVzb2x1dGlvbi4KKworICAgICAgICAqIGNzcy9N
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVSZXNvbHV0
aW9uKTogQWRkIG1ldGhvZHMgZm9yIGNvbXBhcmluZyByZXNvbHV0aW9ucy4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6bWluX3Jlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6Om1heF9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCk6CisKKyAgICAgICAg
ICAgIEltcGxlbWVudCB0aGUgcmVzb2x1dGlvbiBtZXRob2QgZXZhbHVhdGlvbi4KKworICAgICAg
ICAqIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRo
VmFsaWRQb3NpdGl2ZURlbnNpdHkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpmZWF0dXJlV2l0aG91dFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlF
eHA6Ok1lZGlhUXVlcnlFeHApOgorCisgICAgICAgICAgICBIb29rIHVwIHJlc29sdXRpb24gd2l0
aCB0aGUgcmlnaHQgcHJlLWNoZWNrcy4KKworICAgICAgICogcGFnZS9TY3JlZW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyZWVuOjpob3Jpem9udGFsRFBJKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmVlbjo6dmVydGljYWxEUEkpOgorCisgICAgICAgICAgICBDaGVjayB3aGV0aGVyIGFuIG92
ZXJyaWRlIGV4aXN0cywgYW5kIGlmIHNvLCB1c2VzIGl0LgorCisgICAgICAgICogcGFnZS9TZXR0
aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0UmVzb2x1dGlvbk92ZXJy
aWRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAg
ICAgICAgKFNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpyZXNvbHV0aW9u
T3ZlcnJpZGUpOgorCisgICAgICAgICAgICBBZGQgYSByZXNvbHV0aW9uIG92ZXJyaWRlIHRvIHNl
dHRpbmdzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVycmlkZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAg
ICAgICAgKEJhY2t1cCk6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCisgICAgICAgICAgICBBZGQgYSBuZXcgc2V0
UmVzb2x1dGlvbk92ZXJyaWRlIG1ldGhvZCB0byBpbnRlcm5hbHMuc2V0dGluZ3MuCisKIDIwMTIt
MTAtMTYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IE5NSSBpbnN0cnVtZW50IEltYWdlRGVjb2Rlci4gSXQgb3ducyBhIGJ1
ZmZlciB0aGF0IGNvdWxkIGJlIHF1aXRlIGJpZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5Y2M0NWNkMmEyOThh
M2JhNTkwMTdjZGQ1NzE1MTM2M2VjYjNiZjZiLi4zMzhhZmMyMzMzNTdjMzBkODBiMTBmOTVjMTc5
YTgzMjI5YmQ4OTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMTYgIEtl
bm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciByZXNvbHV0aW9uIG1lZGlhIHF1ZXJ5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTA3NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2luL1dlYktpdDIuZGVmOgorCisgICAg
ICAgICAgICBBZGQgZXhwb3J0cyBmb3IgdGhlIFdlYkNvcmU6OlNldHRpbmdzIHNldHRpbmcuCisK
IDIwMTItMTAtMTcgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5j
b20+CiAKICAgICAgICAgW1dLMl1bRUZMXSBBZGQgdW5pdCB0ZXN0cyBmb3IgU3BlbGxpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KaW5kZXggZThlZjI0MzFkNjI4NmQ1NTY4ZDczMGQ4OGUwMjEyYmQwY2Vl
ODk4Zi4uM2UxN2I1ZDAzOGVhZTIxOWFjNmM2NDEyMTEyNTc0MzQxNDVjZGZjNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KQEAgLTk2MCw2ICs5NjAsNyBAQCBfX1pON1dlYkNvcmU4U2V0dGluZ3M0MHNl
dFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JFTlNfMzdUZXh0RGlyZWN0aQog
X19aTjdXZWJDb3JlOFNldHRpbmdzNDFzZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlv
blF1aXJrc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3M0NHNldExvYWRzU2l0ZUljb25zSWdub3Jp
bmdJbWFnZUxvYWRpbmdTZXR0aW5nRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczQ1c2V0U2hvdWxk
UmVzcGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzRWIKK19fWk43V2ViQ29yZThTZXR0
aW5nczIxc2V0UmVzb2x1dGlvbk92ZXJyaWRlRVJLTlNfN0ludFNpemVFCiBfX1pON1dlYkNvcmU4
YmxhbmtVUkxFdgogX19aTjdXZWJDb3JlOG1ha2VSR0JBRWlpaWkKIF9fWk43V2ViQ29yZThvcGVu
RmlsZUVSS04zV1RGNlN0cmluZ0VOU18xMkZpbGVPcGVuTW9kZUUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmgKaW5kZXggYWEyZGJlYWMzMmRkYjM4NzdiMWRiNWVmYmQwYWFlZTc3
MTJkNjg2Ni4uNDFjOWMzYWYzODQ1ZDg4NGUyYTVlMmRkNTc3OWNlZjUzMmZiYTkwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKQEAgLTE4MSw2ICsxODEsMTAgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNDYWxjdWxhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVV
bml0VHlwZSA9PSBDU1NfQ0FMQzsgfQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdp
dGhOdW1iZXIoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVS
Q0VOVEFHRV9XSVRIX05VTUJFUjsgfQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdp
dGhMZW5ndGgoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVS
Q0VOVEFHRV9XSVRIX0xFTkdUSDsgfQorICAgIGJvb2wgaXNEZW5zaXR5UGVySW5jaCgpIGNvbnN0
IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBJOyB9CisgICAgYm9vbCBpc0RlbnNp
dHlQZXJQaXhlbCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBQWDsg
fQorICAgIGJvb2wgaXNEZW5zaXR5UGVyQ2VudGltZXRlcigpIGNvbnN0IHsgcmV0dXJuIHByaW1p
dGl2ZVR5cGUoKSA9PSBDU1NfRFBDTTsgfQorCiAjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCiAg
ICAgYm9vbCBpc1ZhcmlhYmxlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9
PSBDU1NfVkFSSUFCTEVfTkFNRTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1
cmVOYW1lcy5oCmluZGV4IGIwODQzOWU0YTAxODM0OTIyZmRhMDBlOGFkOTdlZmYyMGZiZWMwZmMu
LjRjZWMyNTQ1ZjU4NTNjNGVhOWRmYWVmNWYxNjU3ODA1ZWQ2OWQzYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyhtYXhfaGVpZ2h0LCAibWF4LWhlaWdodCIpIFwKICAgICBtYWNybyht
YXhfbW9ub2Nocm9tZSwgIm1heC1tb25vY2hyb21lIikgXAogICAgIG1hY3JvKG1heF93aWR0aCwg
Im1heC13aWR0aCIpIFwKKyAgICBtYWNybyhtYXhfcmVzb2x1dGlvbiwgIi13ZWJraXQtbWF4LXJl
c29sdXRpb24iKSBcCiAgICAgbWFjcm8obWluX2NvbG9yLCAibWluLWNvbG9yIikgXAogICAgIG1h
Y3JvKG1pbl9hc3BlY3RfcmF0aW8sICJtaW4tYXNwZWN0LXJhdGlvIikgXAogICAgIG1hY3JvKG1p
bl9kZXZpY2VfYXNwZWN0X3JhdGlvLCAibWluLWRldmljZS1hc3BlY3QtcmF0aW8iKSBcCkBAIC01
Niw3ICs1Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhtaW5faGVpZ2h0LCAi
bWluLWhlaWdodCIpIFwKICAgICBtYWNybyhtaW5fbW9ub2Nocm9tZSwgIm1pbi1tb25vY2hyb21l
IikgXAogICAgIG1hY3JvKG1pbl93aWR0aCwgIm1pbi13aWR0aCIpIFwKKyAgICBtYWNybyhtaW5f
cmVzb2x1dGlvbiwgIi13ZWJraXQtbWluLXJlc29sdXRpb24iKSBcCiAgICAgbWFjcm8ocG9pbnRl
ciwgInBvaW50ZXIiKSBcCisgICAgbWFjcm8ocmVzb2x1dGlvbiwgIi13ZWJraXQtcmVzb2x1dGlv
biIpIFwKICAgICBtYWNybyh0cmFuc2Zvcm1fMmQsICItd2Via2l0LXRyYW5zZm9ybS0yZCIpIFwK
ICAgICBtYWNybyh0cmFuc2Zvcm1fM2QsICItd2Via2l0LXRyYW5zZm9ybS0zZCIpIFwKICAgICBt
YWNybyh0cmFuc2l0aW9uLCAiLXdlYmtpdC10cmFuc2l0aW9uIikgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IGRhYTQ5MGI4YmRjODQ2ODdjNzQ5YTli
NTEwZTQ0YzM5YzY5MTA4ZTUuLmVjYmZmMTI2MDg3ZmU2MzUyMzdmMDJlNGU2NjYxMmNlODY1Yzkx
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTM0
LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNT
U1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJE
T01XaW5kb3cuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtNDgsNiArNDksNyBAQAogI2luY2x1ZGUgIlJlbmRl
clZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CisjaW5jbHVkZSAiU2NyZWVuLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKQEAgLTY2LDE1ICs2OCwxMyBAQCB0eXBlZGVmIEhhc2hNYXA8
QXRvbWljU3RyaW5nSW1wbCosIEV2YWxGdW5jPiBGdW5jdGlvbk1hcDsKIHN0YXRpYyBGdW5jdGlv
bk1hcCogZ0Z1bmN0aW9uTWFwOwogCiAvKgotICogRklYTUU6IGZvbGxvd2luZyBtZWRpYSBmZWF0
dXJlcyBhcmUgbm90IGltcGxlbWVudGVkOiBjb2xvcl9pbmRleCwgc2NhbiwgcmVzb2x1dGlvbgor
ICogRklYTUU6IGZvbGxvd2luZyBtZWRpYSBmZWF0dXJlcyBhcmUgbm90IGltcGxlbWVudGVkOiBj
b2xvcl9pbmRleCwgc2NhbgogICoKICAqIGNvbG9yX2luZGV4LCBtaW4tY29sb3ItaW5kZXgsIG1h
eF9jb2xvcl9pbmRleDogSXQncyB1bmtub3duIGhvdyB0byByZXRyaWV2ZQogICogdGhlIGluZm9y
bWF0aW9uIGlmIHRoZSBkaXNwbGF5IG1vZGUgaXMgaW5kZXhlZAogICogc2NhbjogVGhlICJzY2Fu
IiBtZWRpYSBmZWF0dXJlIGRlc2NyaWJlcyB0aGUgc2Nhbm5pbmcgcHJvY2VzcyBvZgogICogdHYg
b3V0cHV0IGRldmljZXMuIEl0J3MgdW5rbm93biBob3cgdG8gcmV0cmlldmUgdGhpcyBpbmZvcm1h
dGlvbiBmcm9tCiAgKiB0aGUgcGxhdGZvcm0KLSAqIHJlc29sdXRpb24sIG1pbi1yZXNvbHV0aW9u
LCBtYXgtcmVzb2x1dGlvbjogY3NzIHBhcnNlciBkb2Vzbid0IHNlZW0gdG8KLSAqIHN1cHBvcnQg
Q1NTX0RJTUVOU0lPTgogICovCiAKIE1lZGlhUXVlcnlFdmFsdWF0b3I6Ok1lZGlhUXVlcnlFdmFs
dWF0b3IoYm9vbCBtZWRpYUZlYXR1cmVSZXN1bHQpCkBAIC0xOTcsNiArMTk3LDIzIEBAIHN0YXRp
YyBib29sIGNvbXBhcmVBc3BlY3RSYXRpb1ZhbHVlKENTU1ZhbHVlKiB2YWx1ZSwgaW50IHdpZHRo
LCBpbnQgaGVpZ2h0LCBNZWRpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgRU5BQkxFKENT
U19JTUFHRV9SRVNPTFVUSU9OKQorc3RhdGljIGJvb2wgY29tcGFyZVJlc29sdXRpb24odW5zaWdu
ZWQgbWluLCB1bnNpZ25lZCBtYXgsIHVuc2lnbmVkIHZhbHVlLCBNZWRpYUZlYXR1cmVQcmVmaXgg
b3ApCit7CisgICAgc3dpdGNoIChvcCkgeworICAgIGNhc2UgTm9QcmVmaXg6CisgICAgICAgIC8v
IEEgJ3Jlc29sdXRpb24nICh3aXRob3V0IGEgIm1pbi0iIG9yICJtYXgtIiBwcmVmaXgpIHF1ZXJ5
CisgICAgICAgIC8vIG5ldmVyIG1hdGNoZXMgYSBkZXZpY2Ugd2l0aCBub24tc3F1YXJlIHBpeGVs
cy4KKyAgICAgICAgcmV0dXJuIG1pbiA9PSBtYXg7CisgICAgY2FzZSBNaW5QcmVmaXg6CisgICAg
ICAgIHJldHVybiBtaW4gPj0gdmFsdWU7CisgICAgY2FzZSBNYXhQcmVmaXg6CisgICAgICAgIHJl
dHVybiBtYXggPD0gdmFsdWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgor
CiBzdGF0aWMgYm9vbCBudW1iZXJWYWx1ZShDU1NWYWx1ZSogdmFsdWUsIGZsb2F0JiByZXN1bHQp
CiB7CiAgICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkKQEAgLTI3OCw2ICsyOTUsNTYg
QEAgc3RhdGljIGJvb2wgZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1
ZSAqdmFsdWUsIFJlbmRlclN0eWxlKiwgRnIKICAgICByZXR1cm4gZnJhbWUtPnBhZ2UoKS0+ZGV2
aWNlU2NhbGVGYWN0b3IoKSAhPSAwOwogfQogCitzdGF0aWMgYm9vbCByZXNvbHV0aW9uTWVkaWFG
ZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBN
ZWRpYUZlYXR1cmVQcmVmaXggb3ApCit7CisgICAgdW5zaWduZWQgaG9yaURQSSA9IGZyYW1lLT5k
b2N1bWVudCgpLT5kb21XaW5kb3coKS0+c2NyZWVuKCktPmhvcml6b250YWxEUEkoKTsKKyAgICB1
bnNpZ25lZCB2ZXJ0RFBJID0gZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5zY3JlZW4o
KS0+dmVydGljYWxEUEkoKTsKKworICAgIHVuc2lnbmVkIG1pbkRQSSA9IHN0ZDo6bWluKGhvcmlE
UEksIHZlcnREUEkpOworICAgIHVuc2lnbmVkIG1heERQSSA9IHN0ZDo6bWF4KGhvcmlEUEksIHZl
cnREUEkpOworCisgICAgLy8gQWNjb3JkaW5nIHRvIHNwZWMsIChyZXNvbHV0aW9uKSB3aWxsIGV2
YWx1YXRlIHRvIHRydWUgaWYgKHJlc29sdXRpb246eCkKKyAgICAvLyB3aWxsIGV2YWx1YXRlIHRv
IHRydWUgZm9yIGEgdmFsdWUgeCBvdGhlciB0aGFuIHplcm8gb3IgemVybyBmb2xsb3dlZCBieQor
ICAgIC8vIGEgdmFsaWQgdW5pdCBpZGVudGlmaWVyIChpLmUuLCBvdGhlciB0aGFuIDAsIDBkcGks
IDBkcGNtLCBvciAwZHBweC4pLgorICAgIC8vCisgICAgLy8gVGhpcyBpcyBhY3R1YWxseSBhbHdh
eXMgdGhlIGNhc2Ugd2l0aCB0aGUgZHBweCwgd2hpY2ggd2UgaWdub3JlIGFzIGl0IGlzCisgICAg
Ly8gYSBzcGVjaWFsLWNhc2UgaW4gdGhlIHNlbnNlIGl0IGNhbiBiZSBvdXQgb2Ygc3luYyB3aXRo
IGRwaSBhbmQgZHBjbS4gRm9yCisgICAgLy8gaW5zdGFuY2UsIGJvdGggYSBkZXZpY2Ugd2l0aCA5
NmRwaSBhbmQgMTYwZHBpIGNhbiBoYXZlIGEgZHBweCBvZiAxLgorICAgIC8vCisgICAgLy8gVGhp
cyBsZWF2ZXMgdGhlIGNhc2Ugb2Ygc3F1YXJlZCBwaXhlbHMuCisgICAgaWYgKCF2YWx1ZSkgewor
ICAgICAgICBBU1NFUlQob3AgPT0gTm9QcmVmaXgpOworICAgICAgICByZXR1cm4gbWluRFBJID09
IG1heERQSTsKKyAgICB9CisKKyNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04pCisgICAg
aWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcmF3VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZSo+KHZhbHVlKTsKKyAgICBpZiAocmF3VmFsdWUtPmlzRGVuc2l0eVBlclBpeGVsKCkp
IHsKKyAgICAgICAgZmxvYXQgYWN0dWFsRGVuc2l0eSA9IGZyYW1lLT5wYWdlKCktPmRldmljZVNj
YWxlRmFjdG9yKCk7CisgICAgICAgIGZsb2F0IHRlc3RlZERlbnNpdHkgPSByYXdWYWx1ZS0+Z2V0
RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQUFgpOworICAgICAgICByZXR1cm4g
Y29tcGFyZVZhbHVlKGFjdHVhbERlbnNpdHksIHRlc3RlZERlbnNpdHksIG9wKTsKKyAgICB9CisK
KyAgICBpZiAocmF3VmFsdWUtPmlzRGVuc2l0eVBlckluY2goKSkgeworICAgICAgICB1bnNpZ25l
ZCB0ZXN0ZWREZW5zaXR5ID0gcmF3VmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19EUEkpOworICAgICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24obWluRFBJLCBt
YXhEUEksIHRlc3RlZERlbnNpdHksIG9wKTsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBtaW5EUENN
ID0gZmxvb3IobWluRFBJIC8gMi41NCk7IC8vICgyLjU0IGNtL2luKQorICAgIHVuc2lnbmVkIG1h
eERQQ00gPSBmbG9vcihtYXhEUEkgLyAyLjU0KTsKKworICAgIGlmIChyYXdWYWx1ZS0+aXNEZW5z
aXR5UGVyQ2VudGltZXRlcigpKSB7CisgICAgICAgIHVuc2lnbmVkIHRlc3RlZERlbnNpdHkgPSBy
YXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQQ00pOworICAg
ICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24obWluRFBDTSwgbWF4RFBDTSwgdGVzdGVkRGVu
c2l0eSwgb3ApOworICAgIH0KKyNlbmRpZgorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBzdGF0
aWMgYm9vbCBncmlkTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxl
KiwgRnJhbWUqLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7CiAgICAgLy8gaWYgb3V0cHV0IGRl
dmljZSBpcyBiaXRtYXAsIGdyaWQ6IDAgPT0gdHJ1ZQpAQCAtNDU2LDYgKzUyMywxNiBAQCBzdGF0
aWMgYm9vbCBtYXhfZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUs
IFJlbmRlclN0eWxlKiBzdHlsZQogICAgIHJldHVybiBkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVF
dmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1heFByZWZpeCk7CiB9CiAKK3N0YXRpYyBib29sIG1p
bl9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxl
KiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCit7CisgICAgcmV0dXJu
IHJlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1pblByZWZp
eCk7Cit9CisKK3N0YXRpYyBib29sIG1heF9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbChDU1NW
YWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1
cmVQcmVmaXgpCit7CisgICAgcmV0dXJuIHJlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKHZhbHVl
LCBzdHlsZSwgZnJhbWUsIE1heFByZWZpeCk7Cit9CisKIHN0YXRpYyBib29sIGFuaW1hdGlvbk1l
ZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiwgTWVk
aWFGZWF0dXJlUHJlZml4IG9wKQogewogICAgIGlmICh2YWx1ZSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01l
ZGlhUXVlcnlFeHAuY3BwCmluZGV4IDFhMDZiNzk2NWZjY2I5OGEwOTM1Njk1Njk3NThiMjFmYzZl
Mjk5ODEuLmUwZTJiMzFlYjE0YzQ4OTgyZmQ0ZWQ0ZDAzMjY5NTEyZmQ5MjdjZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAKQEAgLTY3LDYgKzY3LDE2IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVMZW5naHRPck51bWJlcihjb25zdCBBdG9t
aWNTdHJpbmcmIG1lCiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1l
czo6bWluX2RldmljZV93aWR0aE1lZGlhRmVhdHVyZTsKIH0KIAorc3RhdGljIGlubGluZSBib29s
IGZlYXR1cmVXaXRoVmFsaWRQb3NpdGl2ZURlbnNpdHkoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRp
YUZlYXR1cmUsIGNvbnN0IENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAoKHZhbHVl
LT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQWCAmJiB2YWx1ZS0+dW5pdCAhPSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQSSAmJiB2YWx1ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX0RQQ00pIHx8IHZhbHVlLT5mVmFsdWUgPCAwKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICByZXR1cm4gbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpyZXNv
bHV0aW9uTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1
cmVOYW1lczo6bWF4X3Jlc29sdXRpb25NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0
dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptaW5fcmVzb2x1dGlvbk1lZGlhRmVhdHVyZTsKK30K
Kwogc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRoUG9zaXRpdmVJbnRlZ2VyKGNvbnN0IEF0
b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBjb25zdCBDU1NQYXJzZXJWYWx1ZSogdmFsdWUpCiB7
CiAgICAgaWYgKCF2YWx1ZS0+aXNJbnQgfHwgdmFsdWUtPmZWYWx1ZSA8IDApCkBAIC0xMTQsNiAr
MTI0LDcgQEAgc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRoQXNwZWN0UmF0aW8oY29uc3Qg
QXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUpCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJl
V2l0aG91dFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlKQogeworICAgIC8v
IE1lZGlhIGZlYXR1cmVzIHRoYXQgYXJlIHByZWZpeGVkIGJ5IG1pbi9tYXggY2Fubm90IGJlIHVz
ZWQgd2l0aG91dCBhIHZhbHVlLgogICAgIHJldHVybiBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0
dXJlTmFtZXM6Om1vbm9jaHJvbWVNZWRpYUZlYXR1cmUKICAgICAgICAgfHwgbWVkaWFGZWF0dXJl
ID09IE1lZGlhRmVhdHVyZU5hbWVzOjpjb2xvck1lZGlhRmVhdHVyZQogICAgICAgICB8fCBtZWRp
YUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmdyaWRNZWRpYUZlYXR1cmUKQEAgLTEzMSw3
ICsxNDIsOCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhvdXRWYWx1ZShjb25zdCBB
dG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSkKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1l
ZGlhRmVhdHVyZU5hbWVzOjphbmltYXRpb25NZWRpYUZlYXR1cmUKICAgICAgICAgfHwgbWVkaWFG
ZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjp2aWV3X21vZGVNZWRpYUZlYXR1cmUKICAgICAg
ICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpwb2ludGVyTWVkaWFGZWF0
dXJlCi0gICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6ZGV2aWNl
X3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlOworICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVk
aWFGZWF0dXJlTmFtZXM6OmRldmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZQorICAgICAgICB8
fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnJlc29sdXRpb25NZWRpYUZlYXR1
cmU7CiB9CiAKIGlubGluZSBNZWRpYVF1ZXJ5RXhwOjpNZWRpYVF1ZXJ5RXhwKGNvbnN0IEF0b21p
Y1N0cmluZyYgbWVkaWFGZWF0dXJlLCBDU1NQYXJzZXJWYWx1ZUxpc3QqIHZhbHVlTGlzdCkKQEAg
LTE0OCw2ICsxNjAsMTAgQEAgaW5saW5lIE1lZGlhUXVlcnlFeHA6Ok1lZGlhUXVlcnlFeHAoY29u
c3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUsIENTU1BhcnNlclYKICAgICAgICAgICAgIGlm
IChmZWF0dXJlV2l0aENTU1ZhbHVlSUQobWVkaWFGZWF0dXJlLCB2YWx1ZSkpCiAgICAgICAgICAg
ICAgICAgbV92YWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKHZhbHVl
LT5pZCk7CiAKKyAgICAgICAgICAgIC8vIE1lZGlhIGZlYXR1cmVzIHRoYXQgbXVzdCBoYXZlIG5v
bi1uZWdhdGl2ZSA8ZGVuc2l0eT4sIGllLiBkcHB4LCBkcGkgb3IgZHBjbS4KKyAgICAgICAgICAg
IGVsc2UgaWYgKGZlYXR1cmVXaXRoVmFsaWRQb3NpdGl2ZURlbnNpdHkobWVkaWFGZWF0dXJlLCB2
YWx1ZSkpCisgICAgICAgICAgICAgICAgbV92YWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVh
dGUodmFsdWUtPmZWYWx1ZSwgKENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpIHZhbHVlLT51
bml0KTsKKwogICAgICAgICAgICAgLy8gTWVkaWEgZmVhdHVyZXMgdGhhdCBtdXN0IGhhdmUgbm9u
LW5lZ2F0aXZlIDxsZW5naHQ+IG9yIG51bWJlciB2YWx1ZS4KICAgICAgICAgICAgIGVsc2UgaWYg
KGZlYXR1cmVXaXRoVmFsaWRQb3NpdGl2ZUxlbmdodE9yTnVtYmVyKG1lZGlhRmVhdHVyZSwgdmFs
dWUpKQogICAgICAgICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRl
KHZhbHVlLT5mVmFsdWUsIChDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdFR5cGVzKSB2YWx1ZS0+dW5p
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKaW5kZXggZTFlMWQxMTczODZmNjIyZWUzYzE5M2IzZTUw
MjJjODgzYThjMjViMS4uNDBhMzg4ZWQyM2E0YTU4ODNlMDE4ZGExNWMxZjVhODNhNDkyNGNiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkZyYW1l
Vmlldy5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtU2NyZWVuLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXaWRn
ZXQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDgsNiArNDksMTEgQEAgdW5zaWduZWQg
U2NyZWVuOjpob3Jpem9udGFsRFBJKCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAg
ICAgIHJldHVybiAwOworCisgICAgSW50U2l6ZSBvdmVycmlkZSA9IG1fZnJhbWUtPnBhZ2UoKS0+
c2V0dGluZ3MoKS0+cmVzb2x1dGlvbk92ZXJyaWRlKCk7CisgICAgaWYgKCFvdmVycmlkZS5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybiBvdmVycmlkZS53aWR0aCgpOworCiAgICAgcmV0dXJuIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihzY3JlZW5Ib3Jpem9udGFsRFBJKG1fZnJhbWUtPnZpZXcoKSkp
OwogfQogCkBAIC01NSw2ICs2MSwxMSBAQCB1bnNpZ25lZCBTY3JlZW46OnZlcnRpY2FsRFBJKCkg
Y29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybiAwOworCisgICAgSW50
U2l6ZSBvdmVycmlkZSA9IG1fZnJhbWUtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+cmVzb2x1dGlvbk92
ZXJyaWRlKCk7CisgICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBv
dmVycmlkZS5oZWlnaHQoKTsKKwogICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2Ny
ZWVuVmVydGljYWxEUEkobV9mcmFtZS0+dmlldygpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAKaW5kZXggOTg3NmFmNWM3NmQyMjU1Y2ViMmY4ODBiODQ5NTE5ZDI2YzNkM2VkNC4uNzRi
OTJmOWY5YzM5NzExNTk5NDQyYzcxNDRiOWRhZWJlNWQ3Nzc4ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5jcHAKQEAgLTQ1OSw2ICs0NTksMTUgQEAgdm9pZCBTZXR0aW5nczo6c2V0VGV4dEF1dG9z
aXppbmdGb250U2NhbGVGYWN0b3IoZmxvYXQgZm9udFNjYWxlRmFjdG9yKQogCiAjZW5kaWYKIAor
dm9pZCBTZXR0aW5nczo6c2V0UmVzb2x1dGlvbk92ZXJyaWRlKGNvbnN0IEludFNpemUmIGRlbnNp
dHlQZXJJbmNoT3ZlcnJpZGUpCit7CisgICAgaWYgKG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNo
T3ZlcnJpZGUgPT0gZGVuc2l0eVBlckluY2hPdmVycmlkZSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9yZXNvbHV0aW9uRGVuc2l0eVBlckluY2hPdmVycmlkZSA9IGRlbnNpdHlQZXJJbmNoT3Zl
cnJpZGU7CisgICAgbV9wYWdlLT5zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKK30K
Kwogdm9pZCBTZXR0aW5nczo6c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJvb2wgbG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5KQogewogICAgIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5ID0g
bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDg5Nzg1
ZDEyZjZlMjkxNjZkYWMzYmFmY2JlZjcwYjA1ZGVmZmI0NmEuLmM3MWYzMmU4NjFkNzFkN2M2Mjg0
MzYwOWFjZjRlMzU1MmJhNDMwMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTI5LDYgKzI5
LDcgQEAKIAogI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgiCiAjaW5jbHVkZSAiRm9u
dFJlbmRlcmluZ01vZGUuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiS1VSTC5o
IgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTM3
LDEwICszOCw2IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nSGFzaC5oPgogI2lu
Y2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KIAotI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJ
TkcpCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogICAgIGNsYXNzIFBhZ2U7CkBAIC0xMjMsNiArMTIwLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgY29uc3QgSW50U2l6ZSYgdGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJp
ZGUoKSBjb25zdCB7IHJldHVybiBtX3RleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlOyB9
CiAjZW5kaWYKIAorICAgICAgICAvLyBPbmx5IHNldCBieSBMYXlvdXQgVGVzdHMuCisgICAgICAg
IHZvaWQgc2V0UmVzb2x1dGlvbk92ZXJyaWRlKGNvbnN0IEludFNpemUmKTsKKyAgICAgICAgY29u
c3QgSW50U2l6ZSYgcmVzb2x1dGlvbk92ZXJyaWRlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHV0
aW9uRGVuc2l0eVBlckluY2hPdmVycmlkZTsgfQorCiAgICAgICAgIC8vIFVubGlrZSBhcmVJbWFn
ZXNFbmFibGVkLCB0aGlzIG9ubHkgc3VwcHJlc3NlcyB0aGUgbmV0d29yayBsb2FkIG9mCiAgICAg
ICAgIC8vIHRoZSBpbWFnZSBVUkwuICBBIGNhY2hlZCBpbWFnZSB3aWxsIHN0aWxsIGJlIHJlbmRl
cmVkIGlmIHJlcXVlc3RlZC4KICAgICAgICAgdm9pZCBzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2Fs
bHkoYm9vbCk7CkBAIC02ODYsNiArNjg3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBJbnRTaXplIG1fdGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGU7CiAgICAgICAgIGJv
b2wgbV90ZXh0QXV0b3NpemluZ0VuYWJsZWQgOiAxOwogI2VuZGlmCisgICAgICAgIEludFNpemUg
bV9yZXNvbHV0aW9uRGVuc2l0eVBlckluY2hPdmVycmlkZTsKICAgICAgICAgYm9vbCBtX2lzU3Bh
dGlhbE5hdmlnYXRpb25FbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJsZWQg
OiAxOwogICAgICAgICBib29sIG1faXNKYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMgOiAxOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggOGQ4ZjBjYjQw
OTAwMzY1ZTYwYTQzODRlY2IwOTc0MDU0NzcxNWFmOS4uYWI0NWIyYTdkZTgzNWFmYjNmMTJhMTVi
MmE0ZmRmZDg0Y2E3Y2E1YyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwCkBAIC05Nyw2ICs5Nyw4IEBAIEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFj
a3VwKFBhZ2UqIHBhZ2UsIFNldHRpbmdzKiBzZXR0aW5ncykKICAgICAsIG1fb3JpZ2luYWxUZXh0
QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShzZXR0aW5ncy0+dGV4dEF1dG9zaXppbmdXaW5k
b3dTaXplT3ZlcnJpZGUoKSkKICAgICAsIG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ0ZvbnRTY2Fs
ZUZhY3RvcihzZXR0aW5ncy0+dGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoKSkKICNlbmRp
ZgorICAgICwgbV9vcmlnaW5hbERldmljZVNjYWxlRmFjdG9yKHBhZ2UtPmRldmljZVNjYWxlRmFj
dG9yKCkpCisgICAgLCBtX29yaWdpbmFsUmVzb2x1dGlvbk92ZXJyaWRlKHNldHRpbmdzLT5yZXNv
bHV0aW9uT3ZlcnJpZGUoKSkKICNpZiBFTkFCTEUoRElBTE9HX0VMRU1FTlQpCiAgICAgLCBtX29y
aWdpbmFsRGlhbG9nRWxlbWVudEVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6ZGlhbG9n
RWxlbWVudEVuYWJsZWQoKSkKICNlbmRpZgpAQCAtMTM2LDYgKzEzOCw4IEBAIHZvaWQgSW50ZXJu
YWxTZXR0aW5nczo6QmFja3VwOjpyZXN0b3JlVG8oUGFnZSogcGFnZSwgU2V0dGluZ3MqIHNldHRp
bmdzKQogICAgIHNldHRpbmdzLT5zZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSht
X29yaWdpbmFsVGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUpOwogICAgIHNldHRpbmdz
LT5zZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcihtX29yaWdpbmFsVGV4dEF1dG9zaXpp
bmdGb250U2NhbGVGYWN0b3IpOwogI2VuZGlmCisgICAgcGFnZS0+c2V0RGV2aWNlU2NhbGVGYWN0
b3IobV9vcmlnaW5hbERldmljZVNjYWxlRmFjdG9yKTsKKyAgICBzZXR0aW5ncy0+c2V0UmVzb2x1
dGlvbk92ZXJyaWRlKG1fb3JpZ2luYWxSZXNvbHV0aW9uT3ZlcnJpZGUpOwogI2lmIEVOQUJMRShE
SUFMT0dfRUxFTUVOVCkKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXREaWFsb2dFbGVt
ZW50RW5hYmxlZChtX29yaWdpbmFsRGlhbG9nRWxlbWVudEVuYWJsZWQpOwogI2VuZGlmCkBAIC00
MTMsNiArNDE3LDE0IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0VGV4dEF1dG9zaXppbmdX
aW5kb3dTaXplT3ZlcnJpZGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0CiAjZW5kaWYKIH0KIAordm9p
ZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoZmxvYXQgZGVuc2l0eVBl
clBpeGVsLCBpbnQgZGVuc2l0eVBlckluY2hIb3Jpem9udGFsbHksIGludCBkZW5zaXR5UGVySW5j
aFZlcnRpY2FsbHksIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEludGVybmFsU2V0dGluZ3NH
dWFyZEZvclNldHRpbmdzKCk7CisgICAgLy8gQW4gZW1wdHkgc2l6ZSByZXNldHMgdGhlIG92ZXJy
aWRlLgorICAgIHNldHRpbmdzKCktPnNldFJlc29sdXRpb25PdmVycmlkZShJbnRTaXplKGRlbnNp
dHlQZXJJbmNoSG9yaXpvbnRhbGx5LCBkZW5zaXR5UGVySW5jaFZlcnRpY2FsbHkpKTsKKyAgICBw
YWdlKCktPnNldERldmljZVNjYWxlRmFjdG9yKGRlbnNpdHlQZXJQaXhlbCk7Cit9CisKIHZvaWQg
SW50ZXJuYWxTZXR0aW5nczo6c2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoZmxvYXQg
Zm9udFNjYWxlRmFjdG9yLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICNpZiBFTkFCTEUoVEVYVF9B
VVRPU0laSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRl
eCA3OGYzNmUwMTc2MWNlYmRjMzFkODk0MjE5ZDMyMGI2MDJhMTY5YjRmLi4wZjBiYjU5YzNhZWE4
ZGFlYmEwOTA2NzlkYjc2MTI0YTFkZTdhZWMwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaApAQCAtMjcsMTUgKzI3LDEyIEBACiAjZGVmaW5lIEludGVybmFsU2V0
dGluZ3NfaAogCiAjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCIKKyNpbmNsdWRlICJJ
bnRTaXplLmgiCiAjaW5jbHVkZSAiUmVmQ291bnRlZFN1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQotI2lu
Y2x1ZGUgIkludFNpemUuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHR5cGVk
ZWYgaW50IEV4Y2VwdGlvbkNvZGU7CkBAIC03OSw2ICs3Niw4IEBAIHB1YmxpYzoKICAgICAgICAg
SW50U2l6ZSBtX29yaWdpbmFsVGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGU7CiAgICAg
ICAgIGZsb2F0IG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcjsKICNlbmRp
ZgorICAgICAgICBmbG9hdCBtX29yaWdpbmFsRGV2aWNlU2NhbGVGYWN0b3I7CisgICAgICAgIElu
dFNpemUgbV9vcmlnaW5hbFJlc29sdXRpb25PdmVycmlkZTsKICNpZiBFTkFCTEUoRElBTE9HX0VM
RU1FTlQpCiAgICAgICAgIGJvb2wgbV9vcmlnaW5hbERpYWxvZ0VsZW1lbnRFbmFibGVkOwogI2Vu
ZGlmCkBAIC0xMjcsNiArMTI2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGV4dEF1dG9zaXpp
bmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0VGV4
dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBFeGNl
cHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3Rvcihm
bG9hdCBmb250U2NhbGVGYWN0b3IsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldFJlc29s
dXRpb25PdmVycmlkZShmbG9hdCBkZW5zaXR5UGVyUGl4ZWwsIGludCBkZW5zaXR5UGVySW5jaEhv
cml6b250YWxseSwgaW50IGRlbnNpdHlQZXJJbmNoVmVydGljYWxseSwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIHZvaWQgc2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoYm9vbCBlbmFibGVkLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgYm9vbCBzY3JvbGxBbmltYXRvckVuYWJsZWQoRXhjZXB0aW9uQ29kZSYp
OwogICAgIHZvaWQgc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRp
b25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbApp
bmRleCBmMzQ2NGJlOWE0ZWM2NDU2NGI0MzQ1MDk3ODdkZjg0N2UzZWU4MWNlLi4xN2Y3MWFhODlk
MGQ2NDFiYTAwMmFjMWIwYzcxZGRkNDVlZmE2NmFkIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTU2LDYgKzU2LDcgQEAKICAgICB2b2lkIHNldFRl
eHRBdXRvc2l6aW5nRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRp
b24pOwogICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoaW4gbG9u
ZyB3aWR0aCwgaW4gbG9uZyBoZWlnaHQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQg
c2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoaW4gZmxvYXQgZm9udFNjYWxlRmFjdG9y
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICB2b2lkIHNldFJlc29sdXRpb25PdmVycmlkZShp
biBmbG9hdCBkZW5zaXR5UGVyUGl4ZWwsIGluIGxvbmcgZGVuc2l0eVBlckluY2hIb3Jpem9udGFs
bHksIGluIGxvbmcgZGVuc2l0eVBlckluY2hWZXJ0aWNhbGx5KSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKICAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGluIGJvb2xlYW4gZW5hYmxlZCkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgYm9vbGVhbiBzY3JvbGxBbmltYXRvckVuYWJsZWQo
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldENTU0V4Y2x1c2lvbnNFbmFibGVk
KGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
Mi5kZWYKaW5kZXggMTk2YmJmMDU5NWIzYjA1YjdlNDEzMWJkZTliNzM4NWIxNDQwMmZhYi4uYjFk
MjZiOGRkYjBjM2JjMDE5MzBjOTkwYzk5OGZjMjc3ZTUzNmMxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LmRlZgpAQCAtMjQyLDYgKzI0Miw3IEBAIEVYUE9SVFMKICAgICAgICAgP3NldFN0b3JhZ2VCbG9j
a2luZ1BvbGljeUBTZXR0aW5nc0BXZWJDb3JlQEBRQUVYVzRTdG9yYWdlQmxvY2tpbmdQb2xpY3lA
U2VjdXJpdHlPcmlnaW5AMkBAWgogICAgICAgICA/c2V0U3VnZ2VzdGVkVmFsdWVASFRNTElucHV0
RWxlbWVudEBXZWJDb3JlQEBRQUVYQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP3NldEVkaXRp
bmdWYWx1ZUBIVE1MSW5wdXRFbGVtZW50QFdlYkNvcmVAQFFBRVhBQlZTdHJpbmdAV1RGQEBAWgor
ICAgICAgICA/c2V0UmVzb2x1dGlvbk92ZXJyaWRlQFNldHRpbmdzQFdlYkNvcmVAQFFBRVhBQlZJ
bnRTaXplQDJAQFoKICAgICAgICAgP3NldHRpbmdzQERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlNl
dHRpbmdzQDJAWFoKICAgICAgICAgP3NldHRpbmdzQEZyYW1lQFdlYkNvcmVAQFFCRVBBVlNldHRp
bmdzQDJAWFoKICAgICAgICAgP3NldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWVA
U2V0dGluZ3NAV2ViQ29yZUBAUUFFWF9OQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMv
c3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IGFl
ZDU0YWYyMWFjOGM4ODRiZGVlMjI0ZTg5YmUyZTZjYTg0NWFmZGYuLjMyZWZlNWE5ZGVkZjBhMjE4
N2ZmOTE4ZjViZDBiNDg5NGEyMjQ1ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3lt
Ym9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtMTc1
LDYgKzE3NSw3IEBAIF9aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRNb2NrU2Nyb2xsYmFyc0VuYWJs
ZWRFYjsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnNFYjsK
IF9aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3lFTlNfMTRTZWN1
cml0eU9yaWdpbjIxU3RvcmFnZUJsb2NraW5nUG9saWN5RTsKIF9aTjdXZWJDb3JlOFNldHRpbmdz
MzdzZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lRWI7CitfWk43V2ViQ29yZThT
ZXR0aW5nczIxc2V0UmVzb2x1dGlvbk92ZXJyaWRlRVJLTlNfN0ludFNpemVFOwogX1pON1dlYkNv
cmU5RnJhbWVWaWV3MTdwYWludENvbnRyb2xUaW50c0V2OwogX1pON1dlYkNvcmU5RnJhbWVWaWV3
MTlzY3JvbGxFbGVtZW50VG9SZWN0RVBOU183RWxlbWVudEVSS05TXzdJbnRSZWN0RTsKIF9aTjdX
ZWJDb3JlMjJSdW50aW1lRW5hYmxlZEZlYXR1cmVzMzFpc011bHRpcGxlU2hhZG93U3VidHJlZXNF
bmFibGVkRTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA1OWI2ZTY0YmE2OTBkNDQyYzdiODg4M2Q0NDljY2RiMmUxMmM0ZmU3
Li42Mzg2MmVlNmQ1ZjcxYTFjODE1Mjk1NzdhMTUzYTRlMTU4ZDRjMDI5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMTItMTAtMTUgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0
aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXNvbHV0aW9uIG1lZGlh
IHF1ZXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
OTA3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRl
c3QgKHJlc29sdXRpb246IHgpIG1lZGlhIHF1ZXJ5IHRvIGVuc3VyZSBjb21wbGlhbmNlCisgICAg
ICAgIHdpdGggc3BlYyBwbHVzIHByb3Bvc2VkIGRwcHggdmFsdWVzLgorCisgICAgICAgICogZmFz
dC9tZWRpYS9tcS1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWw6IEFkZGVkLgorCisgICAgICAgICogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKworICAgICAgICAgICAgU2tpcCB0
aGUgdGVzdCBhcyB0aGUgcG9ydHMgZG8gbm90IGVuYWJsZSBDU1MgSW1hZ2UgUmVzb2x1dGlvbi4K
KwogMjAxMi0xMC0xNyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGlu
dGVsLmNvbT4KIAogICAgICAgICBbV0syXVtXVFJdIEluamVjdGVkQnVuZGxlUGFnZTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbigpIHNob3VsZCBwcmludCBvbmx5IGZpbGVuYW1lIHBh
cnQgb2YgbG9jYWwgVVJMcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1y
ZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1
dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmUxNmU4YjkyOGQ0OTcwZGI5Njg1MTgzMGU4
ZTIxYzU1ZDcxOGNhMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEv
bXEtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzOCBAQAorQ1NTMyBtZWRpYSBx
dWVyeSB0ZXN0OiByZXNvbHV0aW9uIHF1ZXJ5IHdpdGggZHBweC4gVXNpbmcgc3R5bGUgZWxlbWVu
dCwgQG1lZGlhIGNzcyBydWxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxLjVkcHB4KScpLm1hdGNoZXMgaXMg
dHJ1ZQorUEFTUyB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyBpcyAxLjUKK1BBU1MgZGV2aWNlUGl4
ZWxSYXRpb0Zyb21TdHlsZSgpIGlzIDEuNQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNv
bHV0aW9uOiAyZHBweCknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1Mgd2luZG93LmRldmljZVBpeGVs
UmF0aW8gaXMgMgorUEFTUyBkZXZpY2VQaXhlbFJhdGlvRnJvbVN0eWxlKCkgaXMgMgorUEFTUyBt
YXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxZHBweCknKS5tYXRjaGVzIGlzIHRydWUK
K1BBU1Mgd2luZG93LmRldmljZVBpeGVsUmF0aW8gaXMgMQorUEFTUyBkZXZpY2VQaXhlbFJhdGlv
RnJvbVN0eWxlKCkgaXMgMQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uKScp
Lm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAy
NTRkcGkpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1y
ZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygt
d2Via2l0LW1heC1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1h
dGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyBpcyB0cnVl
CitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1h
dGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjog
MTAwZHBjbSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVz
b2x1dGlvbiknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJl
c29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygt
d2Via2l0LXJlc29sdXRpb246IDI2MGRwaSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNo
TWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyBpcyB0cnVl
CitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0
Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjog
MjU0ZHBpKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4
LXJlc29sdXRpb246IDI2MGRwaSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgn
KC13ZWJraXQtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1h
dGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDEwMmRwY20pJykubWF0Y2hlcyBpcyBmYWxz
ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMTAwZHBjbSknKS5t
YXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246
IDEwMmRwY20pJykubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1t
YXgtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVk
aWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAxMDJkcGNtKScpLm1hdGNoZXMgaXMgdHJ1ZQor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDM1MmZmNjI0
M2U2MWMxODY2YzhhMGM2NDY0ZGFlM2E0OThjYjU2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorCis8ZGl2IGlkPSJkZXRlY3RvciI+PC9kaXY+
CisKKzxzdHlsZT4KKyAgICAjZGV0ZWN0b3IgeyB3aWR0aDogMTBweDsgfQorICAgIEBtZWRpYSAo
LXdlYmtpdC1yZXNvbHV0aW9uOiAgIDFkcHB4KSB7ICNkZXRlY3RvciB7IHdpZHRoOiAxMHB4OyB9
IH0KKyAgICBAbWVkaWEgKC13ZWJraXQtcmVzb2x1dGlvbjogMS41ZHBweCkgeyAjZGV0ZWN0b3Ig
eyB3aWR0aDogMTVweDsgfSB9CisgICAgQG1lZGlhICgtd2Via2l0LXJlc29sdXRpb246ICAgMmRw
cHgpIHsgI2RldGVjdG9yIHsgd2lkdGg6IDIwcHg7IH0gfQorPC9zdHlsZT4KKworPHNjcmlwdD4K
KyAgICBkZXNjcmlwdGlvbigiQ1NTMyBtZWRpYSBxdWVyeSB0ZXN0OiByZXNvbHV0aW9uIHF1ZXJ5
IHdpdGggZHBweC4gVXNpbmcgc3R5bGUgZWxlbWVudCwgQG1lZGlhIGNzcyBydWxlLiIpCisKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgICAgICB3
aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKKyAgICAgICAgZnVuY3Rpb24gZGV2aWNl
UGl4ZWxSYXRpb0Zyb21TdHlsZSgpIHsKKyAgICAgICAgICAgIHZhciB3aWR0aCA9IGdldENvbXB1
dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRldGVjdG9yIikpLndpZHRoOworICAg
ICAgICAgICAgc3dpdGNoICh3aWR0aCkgeworICAgICAgICAgICAgICAgIGNhc2UgIjEwcHgiOgor
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgICAgICBjYXNlICIxNXB4
IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDEuNTsKKyAgICAgICAgICAgICAgICBjYXNl
ICIyMHB4IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0
UmVzb2x1dGlvbk92ZXJyaWRlKDEuNSwgOTYsIDk2KTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNo
TWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDEuNWRwcHgpJykubWF0Y2hlcyIsICJ0cnVlIik7
CisgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyIsICIxLjUiKTsKKyAg
ICAgICAgc2hvdWxkQmUoImRldmljZVBpeGVsUmF0aW9Gcm9tU3R5bGUoKSIsICIxLjUiKTsKKwor
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgy
LCA5NiwgOTYpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1
dGlvbjogMmRwcHgpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJ3aW5k
b3cuZGV2aWNlUGl4ZWxSYXRpbyIsICIyIik7CisgICAgICAgIHNob3VsZEJlKCJkZXZpY2VQaXhl
bFJhdGlvRnJvbVN0eWxlKCkiLCAiMiIpOworCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDEsIDk2LCA5Nik7CisgICAgICAgIHNob3VsZEJl
KCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxZHBweCknKS5tYXRjaGVzIiwgInRy
dWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIiwgIjEiKTsK
KyAgICAgICAgc2hvdWxkQmUoImRldmljZVBpeGVsUmF0aW9Gcm9tU3R5bGUoKSIsICIxIik7CisK
KyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUo
MSwgMjU0LCAyNTQpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVz
b2x1dGlvbiknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVk
aWEoJygtd2Via2l0LXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAg
ICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAyNTRk
cGkpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCco
LXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworCisg
ICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxMDBkcGNt
KScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13
ZWJraXQtbWluLXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAg
ICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMTAwZHBj
bSknKS5tYXRjaGVzIiwgInRydWUiKTsKKworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRp
bmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgxLCAyNTQsIDI2MCk7CisgICAgICAgIC8vIE5vbi1z
cXVhcmUgbXVzdCBuZXZlciBtYXRjaC4KKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygt
d2Via2l0LXJlc29sdXRpb24pJykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRC
ZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAi
ZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRp
b246IDI2MGRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisKKyAgICAgICAgc2hvdWxkQmUoIm1h
dGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyIsICJ0
cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1
dGlvbjogMjYwZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1h
dGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyIsICJm
YWxzZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29s
dXRpb246IDI2MGRwaSknKS5tYXRjaGVzIiwgInRydWUiKTsKKworICAgICAgICAvLyBOb24tc3F1
YXJlIG11c3QgbmV2ZXIgbWF0Y2guCisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdl
YmtpdC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAg
c2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDEwMmRwY20pJykubWF0
Y2hlcyIsICJmYWxzZSIpOworCisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtp
dC1taW4tcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAg
c2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAxMDJkcGNtKScp
Lm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Vi
a2l0LW1heC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAg
ICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAxMDJkcGNt
KScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA4ZTdkNjBlZTY1MTM2MTllNjYxMWYzOTRhODc3ZDhmZTY3NWU5MThkLi5kN2ExZWYyMDFj
YWE2ZTBhNmI4ZTRjMDg3YjYxODJmN2Y3MzA3OGRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3MSw2ICsxNzEsNyBAQCB3ZWJraXQu
b3JnL2IvNzUxMjMgd2ViaW50ZW50cy9pbnRlbnQtdGFnLmh0bWwKIAogIyBDU1MgaW1hZ2UtcmVz
b2x1dGlvbiBpcyBub3QgeWV0IGVuYWJsZWQuCiB3ZWJraXQub3JnL2IvODUyNjIgZmFzdC9jc3Mv
aW1hZ2UtcmVzb2x1dGlvbgord2Via2l0Lm9yZy9iLzg1MjYyIGZhc3QvbWVkaWEvbXEtcmVzb2x1
dGlvbgogCiAjIENTUyBpbWFnZS1vcmllbnRhdGlvbiBpcyBub3QgeWV0IGVuYWJsZWQuCiB3ZWJr
aXQub3JnL2IvODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNmFkODlmZTBjNTA4NzU3MDg4NjIxZDRk
Nzc1YmNjOTE4YzJhZDI4Yi4uZDgwZjc3MGQ0NDZiMTgzMmQ1MzM5NGI1ZGFiNWY5NmQyN2JiY2Jl
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTk2NSw2
ICs5NjUsNyBAQCB3ZWJraXQub3JnL2IvODc5MDggZWRpdGluZy91bmRvbWFuYWdlcgogCiAjIENT
UyBpbWFnZS1yZXNvbHV0aW9uIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi84NTI2
MiBmYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uCit3ZWJraXQub3JnL2IvODUyNjIgZmFzdC9tZWRp
YS9tcS1yZXNvbHV0aW9uCiAKICMgQ1NTIGltYWdlLW9yaWVudGF0aW9uIGlzIG5vdCB5ZXQgZW5h
YmxlZC4KIHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgpkaWZm
IC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGRkOGRjMzg3MDhjYzA2MmJkYzUy
NjhiZTYxMDFiYTk4ZTJkOGQ3YjAuLjk3MGVlN2Y3MDQ0MGI4NGMxZDQ5ZWNiZWI4YWM0M2Y0NzRh
OGE3YWUgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxMi0xMC0xNiAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlc29sdXRpb24gbWVkaWEgcXVl
cnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5MDc3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3Vy
Y2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgorCisgICAgICAgICAgICBFeHBvcnQgdGhlIFdl
YkNvcmU6OlNldHRpbmdzIHNldHRpbmcuCisKIDIwMTItMTAtMTcgIEdyemVnb3J6IEN6YWprb3dz
a2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5jb20+LCBNaWNoYWwgUm9qIDxtLnJvakBzYXNtdW5n
LmNvbT4KIAogICAgICAgICBbV0syXVtFRkxdIEltcGxlbWVudGF0aW9uIG9mIHNwZWxsY2hlY2tp
bmcgZmVhdHVyZS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169200</attachid>
            <date>2012-10-17 09:45:52 -0700</date>
            <delta_ts>2012-10-17 11:49:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99077-20121017184437.patch</filename>
            <type>text/plain</type>
            <size>33273</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWM1MzcwN2RhYjU1NDM4
MjEwNTk5ZmJlMDVkYmM1ZDc0MWVmZWE0Ny4uMTgxYzhmNWU0YzZhZDliNjA3OGQ2OWI3NGZhNjU2
NmY1ODExMjNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEyLTEwLTE1ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBt
ZWRpYSBxdWVyeSBmZWF0dXJlIHdpdGggLXdlYmtpdAorICAgICAgICBwcmVmaXggZHVlIHRvIHRo
ZSBzdXBwb3J0IG9mIHRoZSBwcm9wb3NlZCBkcHB4IHZhbHVlcy4KKworICAgICAgICBBZGQgaW5m
cmFzdHJ1Y3R1cmUgdG8gbWFrZSBpdCB0ZXN0YWJsZS4KKworICAgICAgICBUZXN0OiBmYXN0L21l
ZGlhL21xLXJlc29sdXRpb24uaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisKKyAg
ICAgICAgICAgIEV4cG9ydCB0aGUgV2ViQ29yZTo6U2V0dGluZ3Mgc2V0dGluZy4KKworICAgICAg
ICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzRGVuc2l0eVBlckluY2gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzRGVuc2l0eVBlclBpeGVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjppc0RlbnNpdHlQZXJDZW50aW1ldGVyKToKKyAgICAgICAgKENTU1ByaW1pdGl2
ZVZhbHVlKToKKworICAgICAgICAgICAgQWRkIGZ1bmN0aW9uIGZvciBjaGVja2luZyB0aGUgcmVj
ZW50bHkgYWRkZWQgZGVuc2l0eSB0eXBlcy4KKworICAgICAgICAqIGNzcy9NZWRpYUZlYXR1cmVO
YW1lcy5oOgorICAgICAgICAoTWVkaWFGZWF0dXJlTmFtZXMpOgorCisgICAgICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgLXdlYmtpdC1yZXNvbHV0aW9uLCAtd2Via2l0LW1pbi1yZXNvbHV0aW9uCisg
ICAgICAgICAgICBhbmQgLXdlYmtpdC1tYXgtcmVzb2x1dGlvbi4KKworICAgICAgICAqIGNzcy9N
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVSZXNvbHV0
aW9uKTogQWRkIG1ldGhvZHMgZm9yIGNvbXBhcmluZyByZXNvbHV0aW9ucy4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6bWluX3Jlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6Om1heF9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCk6CisKKyAgICAgICAg
ICAgIEltcGxlbWVudCB0aGUgcmVzb2x1dGlvbiBtZXRob2QgZXZhbHVhdGlvbi4KKworICAgICAg
ICAqIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRo
VmFsaWRQb3NpdGl2ZURlbnNpdHkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpmZWF0dXJlV2l0aG91dFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlF
eHA6Ok1lZGlhUXVlcnlFeHApOgorCisgICAgICAgICAgICBIb29rIHVwIHJlc29sdXRpb24gd2l0
aCB0aGUgcmlnaHQgcHJlLWNoZWNrcy4KKworICAgICAgICogcGFnZS9TY3JlZW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyZWVuOjpob3Jpem9udGFsRFBJKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmVlbjo6dmVydGljYWxEUEkpOgorCisgICAgICAgICAgICBDaGVjayB3aGV0aGVyIGFuIG92
ZXJyaWRlIGV4aXN0cywgYW5kIGlmIHNvLCB1c2VzIGl0LgorCisgICAgICAgICogcGFnZS9TZXR0
aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0UmVzb2x1dGlvbk92ZXJy
aWRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAg
ICAgICAgKFNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpyZXNvbHV0aW9u
T3ZlcnJpZGUpOgorCisgICAgICAgICAgICBBZGQgYSByZXNvbHV0aW9uIG92ZXJyaWRlIHRvIHNl
dHRpbmdzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVycmlkZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAg
ICAgICAgKEJhY2t1cCk6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCisgICAgICAgICAgICBBZGQgYSBuZXcgc2V0
UmVzb2x1dGlvbk92ZXJyaWRlIG1ldGhvZCB0byBpbnRlcm5hbHMuc2V0dGluZ3MuCisKIDIwMTIt
MTAtMTYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IE5NSSBpbnN0cnVtZW50IEltYWdlRGVjb2Rlci4gSXQgb3ducyBhIGJ1
ZmZlciB0aGF0IGNvdWxkIGJlIHF1aXRlIGJpZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5Y2M0NWNkMmEyOThh
M2JhNTkwMTdjZGQ1NzE1MTM2M2VjYjNiZjZiLi4zMzhhZmMyMzMzNTdjMzBkODBiMTBmOTVjMTc5
YTgzMjI5YmQ4OTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMTYgIEtl
bm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciByZXNvbHV0aW9uIG1lZGlhIHF1ZXJ5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTA3NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2luL1dlYktpdDIuZGVmOgorCisgICAg
ICAgICAgICBBZGQgZXhwb3J0cyBmb3IgdGhlIFdlYkNvcmU6OlNldHRpbmdzIHNldHRpbmcuCisK
IDIwMTItMTAtMTcgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5j
b20+CiAKICAgICAgICAgW1dLMl1bRUZMXSBBZGQgdW5pdCB0ZXN0cyBmb3IgU3BlbGxpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KaW5kZXggZThlZjI0MzFkNjI4NmQ1NTY4ZDczMGQ4OGUwMjEyYmQwY2Vl
ODk4Zi4uM2UxN2I1ZDAzOGVhZTIxOWFjNmM2NDEyMTEyNTc0MzQxNDVjZGZjNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KQEAgLTk2MCw2ICs5NjAsNyBAQCBfX1pON1dlYkNvcmU4U2V0dGluZ3M0MHNl
dFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JFTlNfMzdUZXh0RGlyZWN0aQog
X19aTjdXZWJDb3JlOFNldHRpbmdzNDFzZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlv
blF1aXJrc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3M0NHNldExvYWRzU2l0ZUljb25zSWdub3Jp
bmdJbWFnZUxvYWRpbmdTZXR0aW5nRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczQ1c2V0U2hvdWxk
UmVzcGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzRWIKK19fWk43V2ViQ29yZThTZXR0
aW5nczIxc2V0UmVzb2x1dGlvbk92ZXJyaWRlRVJLTlNfN0ludFNpemVFCiBfX1pON1dlYkNvcmU4
YmxhbmtVUkxFdgogX19aTjdXZWJDb3JlOG1ha2VSR0JBRWlpaWkKIF9fWk43V2ViQ29yZThvcGVu
RmlsZUVSS04zV1RGNlN0cmluZ0VOU18xMkZpbGVPcGVuTW9kZUUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmgKaW5kZXggYWEyZGJlYWMzMmRkYjM4NzdiMWRiNWVmYmQwYWFlZTc3
MTJkNjg2Ni4uNDFjOWMzYWYzODQ1ZDg4NGUyYTVlMmRkNTc3OWNlZjUzMmZiYTkwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKQEAgLTE4MSw2ICsxODEsMTAgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNDYWxjdWxhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVV
bml0VHlwZSA9PSBDU1NfQ0FMQzsgfQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdp
dGhOdW1iZXIoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVS
Q0VOVEFHRV9XSVRIX05VTUJFUjsgfQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdp
dGhMZW5ndGgoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVS
Q0VOVEFHRV9XSVRIX0xFTkdUSDsgfQorICAgIGJvb2wgaXNEZW5zaXR5UGVySW5jaCgpIGNvbnN0
IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBJOyB9CisgICAgYm9vbCBpc0RlbnNp
dHlQZXJQaXhlbCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBQWDsg
fQorICAgIGJvb2wgaXNEZW5zaXR5UGVyQ2VudGltZXRlcigpIGNvbnN0IHsgcmV0dXJuIHByaW1p
dGl2ZVR5cGUoKSA9PSBDU1NfRFBDTTsgfQorCiAjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCiAg
ICAgYm9vbCBpc1ZhcmlhYmxlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9
PSBDU1NfVkFSSUFCTEVfTkFNRTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1
cmVOYW1lcy5oCmluZGV4IGIwODQzOWU0YTAxODM0OTIyZmRhMDBlOGFkOTdlZmYyMGZiZWMwZmMu
LjRjZWMyNTQ1ZjU4NTNjNGVhOWRmYWVmNWYxNjU3ODA1ZWQ2OWQzYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyhtYXhfaGVpZ2h0LCAibWF4LWhlaWdodCIpIFwKICAgICBtYWNybyht
YXhfbW9ub2Nocm9tZSwgIm1heC1tb25vY2hyb21lIikgXAogICAgIG1hY3JvKG1heF93aWR0aCwg
Im1heC13aWR0aCIpIFwKKyAgICBtYWNybyhtYXhfcmVzb2x1dGlvbiwgIi13ZWJraXQtbWF4LXJl
c29sdXRpb24iKSBcCiAgICAgbWFjcm8obWluX2NvbG9yLCAibWluLWNvbG9yIikgXAogICAgIG1h
Y3JvKG1pbl9hc3BlY3RfcmF0aW8sICJtaW4tYXNwZWN0LXJhdGlvIikgXAogICAgIG1hY3JvKG1p
bl9kZXZpY2VfYXNwZWN0X3JhdGlvLCAibWluLWRldmljZS1hc3BlY3QtcmF0aW8iKSBcCkBAIC01
Niw3ICs1Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhtaW5faGVpZ2h0LCAi
bWluLWhlaWdodCIpIFwKICAgICBtYWNybyhtaW5fbW9ub2Nocm9tZSwgIm1pbi1tb25vY2hyb21l
IikgXAogICAgIG1hY3JvKG1pbl93aWR0aCwgIm1pbi13aWR0aCIpIFwKKyAgICBtYWNybyhtaW5f
cmVzb2x1dGlvbiwgIi13ZWJraXQtbWluLXJlc29sdXRpb24iKSBcCiAgICAgbWFjcm8ocG9pbnRl
ciwgInBvaW50ZXIiKSBcCisgICAgbWFjcm8ocmVzb2x1dGlvbiwgIi13ZWJraXQtcmVzb2x1dGlv
biIpIFwKICAgICBtYWNybyh0cmFuc2Zvcm1fMmQsICItd2Via2l0LXRyYW5zZm9ybS0yZCIpIFwK
ICAgICBtYWNybyh0cmFuc2Zvcm1fM2QsICItd2Via2l0LXRyYW5zZm9ybS0zZCIpIFwKICAgICBt
YWNybyh0cmFuc2l0aW9uLCAiLXdlYmtpdC10cmFuc2l0aW9uIikgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IGRhYTQ5MGI4YmRjODQ2ODdjNzQ5YTli
NTEwZTQ0YzM5YzY5MTA4ZTUuLmJmNmRjY2FkMmUzNGNmMGQ0Yzk3OWFhMGZmYTY3YWViZjY2NDFi
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTM0
LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNT
U1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJE
T01XaW5kb3cuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtNDgsNiArNDksNyBAQAogI2luY2x1ZGUgIlJlbmRl
clZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CisjaW5jbHVkZSAiU2NyZWVuLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKQEAgLTY2LDE1ICs2OCwxMyBAQCB0eXBlZGVmIEhhc2hNYXA8
QXRvbWljU3RyaW5nSW1wbCosIEV2YWxGdW5jPiBGdW5jdGlvbk1hcDsKIHN0YXRpYyBGdW5jdGlv
bk1hcCogZ0Z1bmN0aW9uTWFwOwogCiAvKgotICogRklYTUU6IGZvbGxvd2luZyBtZWRpYSBmZWF0
dXJlcyBhcmUgbm90IGltcGxlbWVudGVkOiBjb2xvcl9pbmRleCwgc2NhbiwgcmVzb2x1dGlvbgor
ICogRklYTUU6IGZvbGxvd2luZyBtZWRpYSBmZWF0dXJlcyBhcmUgbm90IGltcGxlbWVudGVkOiBj
b2xvcl9pbmRleCwgc2NhbgogICoKICAqIGNvbG9yX2luZGV4LCBtaW4tY29sb3ItaW5kZXgsIG1h
eF9jb2xvcl9pbmRleDogSXQncyB1bmtub3duIGhvdyB0byByZXRyaWV2ZQogICogdGhlIGluZm9y
bWF0aW9uIGlmIHRoZSBkaXNwbGF5IG1vZGUgaXMgaW5kZXhlZAogICogc2NhbjogVGhlICJzY2Fu
IiBtZWRpYSBmZWF0dXJlIGRlc2NyaWJlcyB0aGUgc2Nhbm5pbmcgcHJvY2VzcyBvZgogICogdHYg
b3V0cHV0IGRldmljZXMuIEl0J3MgdW5rbm93biBob3cgdG8gcmV0cmlldmUgdGhpcyBpbmZvcm1h
dGlvbiBmcm9tCiAgKiB0aGUgcGxhdGZvcm0KLSAqIHJlc29sdXRpb24sIG1pbi1yZXNvbHV0aW9u
LCBtYXgtcmVzb2x1dGlvbjogY3NzIHBhcnNlciBkb2Vzbid0IHNlZW0gdG8KLSAqIHN1cHBvcnQg
Q1NTX0RJTUVOU0lPTgogICovCiAKIE1lZGlhUXVlcnlFdmFsdWF0b3I6Ok1lZGlhUXVlcnlFdmFs
dWF0b3IoYm9vbCBtZWRpYUZlYXR1cmVSZXN1bHQpCkBAIC0xOTcsNiArMTk3LDIzIEBAIHN0YXRp
YyBib29sIGNvbXBhcmVBc3BlY3RSYXRpb1ZhbHVlKENTU1ZhbHVlKiB2YWx1ZSwgaW50IHdpZHRo
LCBpbnQgaGVpZ2h0LCBNZWRpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgRU5BQkxFKENT
U19JTUFHRV9SRVNPTFVUSU9OKQorc3RhdGljIGJvb2wgY29tcGFyZVJlc29sdXRpb24odW5zaWdu
ZWQgbWluLCB1bnNpZ25lZCBtYXgsIHVuc2lnbmVkIHZhbHVlLCBNZWRpYUZlYXR1cmVQcmVmaXgg
b3ApCit7CisgICAgc3dpdGNoIChvcCkgeworICAgIGNhc2UgTm9QcmVmaXg6CisgICAgICAgIC8v
IEEgJ3Jlc29sdXRpb24nICh3aXRob3V0IGEgIm1pbi0iIG9yICJtYXgtIiBwcmVmaXgpIHF1ZXJ5
CisgICAgICAgIC8vIG5ldmVyIG1hdGNoZXMgYSBkZXZpY2Ugd2l0aCBub24tc3F1YXJlIHBpeGVs
cy4KKyAgICAgICAgcmV0dXJuIG1pbiA9PSBtYXg7CisgICAgY2FzZSBNaW5QcmVmaXg6CisgICAg
ICAgIHJldHVybiBtaW4gPj0gdmFsdWU7CisgICAgY2FzZSBNYXhQcmVmaXg6CisgICAgICAgIHJl
dHVybiBtYXggPD0gdmFsdWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgor
CiBzdGF0aWMgYm9vbCBudW1iZXJWYWx1ZShDU1NWYWx1ZSogdmFsdWUsIGZsb2F0JiByZXN1bHQp
CiB7CiAgICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkKQEAgLTI3OCw2ICsyOTUsNTgg
QEAgc3RhdGljIGJvb2wgZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1
ZSAqdmFsdWUsIFJlbmRlclN0eWxlKiwgRnIKICAgICByZXR1cm4gZnJhbWUtPnBhZ2UoKS0+ZGV2
aWNlU2NhbGVGYWN0b3IoKSAhPSAwOwogfQogCitzdGF0aWMgYm9vbCByZXNvbHV0aW9uTWVkaWFG
ZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBN
ZWRpYUZlYXR1cmVQcmVmaXggb3ApCit7CisjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9O
KQorICAgIHVuc2lnbmVkIGhvcmlEUEkgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkt
PnNjcmVlbigpLT5ob3Jpem9udGFsRFBJKCk7CisgICAgdW5zaWduZWQgdmVydERQSSA9IGZyYW1l
LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+c2NyZWVuKCktPnZlcnRpY2FsRFBJKCk7CisKKyAg
ICB1bnNpZ25lZCBtaW5EUEkgPSBzdGQ6Om1pbihob3JpRFBJLCB2ZXJ0RFBJKTsKKyAgICB1bnNp
Z25lZCBtYXhEUEkgPSBzdGQ6Om1heChob3JpRFBJLCB2ZXJ0RFBJKTsKKworICAgIC8vIEFjY29y
ZGluZyB0byBzcGVjLCAocmVzb2x1dGlvbikgd2lsbCBldmFsdWF0ZSB0byB0cnVlIGlmIChyZXNv
bHV0aW9uOngpCisgICAgLy8gd2lsbCBldmFsdWF0ZSB0byB0cnVlIGZvciBhIHZhbHVlIHggb3Ro
ZXIgdGhhbiB6ZXJvIG9yIHplcm8gZm9sbG93ZWQgYnkKKyAgICAvLyBhIHZhbGlkIHVuaXQgaWRl
bnRpZmllciAoaS5lLiwgb3RoZXIgdGhhbiAwLCAwZHBpLCAwZHBjbSwgb3IgMGRwcHguKS4KKyAg
ICAvLworICAgIC8vIFRoaXMgaXMgYWN0dWFsbHkgYWx3YXlzIHRoZSBjYXNlIHdpdGggdGhlIGRw
cHgsIHdoaWNoIHdlIGlnbm9yZSBhcyBpdCBpcworICAgIC8vIGEgc3BlY2lhbC1jYXNlIGluIHRo
ZSBzZW5zZSBpdCBjYW4gYmUgb3V0IG9mIHN5bmMgd2l0aCBkcGkgYW5kIGRwY20uIEZvcgorICAg
IC8vIGluc3RhbmNlLCBib3RoIGEgZGV2aWNlIHdpdGggOTZkcGkgYW5kIDE2MGRwaSBjYW4gaGF2
ZSBhIGRwcHggb2YgMS4KKyAgICAvLworICAgIC8vIFRoaXMgbGVhdmVzIHRoZSBjYXNlIG9mIHNx
dWFyZWQgcGl4ZWxzLgorICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgQVNTRVJUKG9wID09IE5v
UHJlZml4KTsKKyAgICAgICAgcmV0dXJuIG1pbkRQSSA9PSBtYXhEUEk7CisgICAgfQorCisgICAg
aWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcmF3VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZSo+KHZhbHVlKTsKKyAgICBpZiAocmF3VmFsdWUtPmlzRGVuc2l0eVBlclBpeGVsKCkp
IHsKKyAgICAgICAgZmxvYXQgYWN0dWFsRGVuc2l0eSA9IGZyYW1lLT5wYWdlKCktPmRldmljZVNj
YWxlRmFjdG9yKCk7CisgICAgICAgIGZsb2F0IHRlc3RlZERlbnNpdHkgPSByYXdWYWx1ZS0+Z2V0
RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQUFgpOworICAgICAgICByZXR1cm4g
Y29tcGFyZVZhbHVlKGFjdHVhbERlbnNpdHksIHRlc3RlZERlbnNpdHksIG9wKTsKKyAgICB9CisK
KyAgICBpZiAocmF3VmFsdWUtPmlzRGVuc2l0eVBlckluY2goKSkgeworICAgICAgICB1bnNpZ25l
ZCB0ZXN0ZWREZW5zaXR5ID0gcmF3VmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19EUEkpOworICAgICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24obWluRFBJLCBt
YXhEUEksIHRlc3RlZERlbnNpdHksIG9wKTsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBtaW5EUENN
ID0gZmxvb3IobWluRFBJIC8gMi41NCk7IC8vICgyLjU0IGNtL2luKQorICAgIHVuc2lnbmVkIG1h
eERQQ00gPSBmbG9vcihtYXhEUEkgLyAyLjU0KTsKKworICAgIGlmIChyYXdWYWx1ZS0+aXNEZW5z
aXR5UGVyQ2VudGltZXRlcigpKSB7CisgICAgICAgIHVuc2lnbmVkIHRlc3RlZERlbnNpdHkgPSBy
YXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQQ00pOworICAg
ICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24obWluRFBDTSwgbWF4RFBDTSwgdGVzdGVkRGVu
c2l0eSwgb3ApOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG9wKTsKKyNlbmRpZgor
CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgYm9vbCBncmlkTWVkaWFGZWF0dXJlRXZh
bChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqLCBNZWRpYUZlYXR1cmVQcmVm
aXggb3ApCiB7CiAgICAgLy8gaWYgb3V0cHV0IGRldmljZSBpcyBiaXRtYXAsIGdyaWQ6IDAgPT0g
dHJ1ZQpAQCAtNDU2LDYgKzUyNSwxNiBAQCBzdGF0aWMgYm9vbCBtYXhfZGV2aWNlX3dpZHRoTWVk
aWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZQogICAgIHJl
dHVybiBkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1h
eFByZWZpeCk7CiB9CiAKK3N0YXRpYyBib29sIG1pbl9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZh
bChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRp
YUZlYXR1cmVQcmVmaXgpCit7CisgICAgcmV0dXJuIHJlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFs
KHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1pblByZWZpeCk7Cit9CisKK3N0YXRpYyBib29sIG1heF9y
ZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBz
dHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCit7CisgICAgcmV0dXJuIHJl
c29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1heFByZWZpeCk7
Cit9CisKIHN0YXRpYyBib29sIGFuaW1hdGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZh
bHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQogewogICAg
IGlmICh2YWx1ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlF
eHAuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwCmluZGV4IDFhMDZi
Nzk2NWZjY2I5OGEwOTM1Njk1Njk3NThiMjFmYzZlMjk5ODEuLmUwZTJiMzFlYjE0YzQ4OTgyZmQ0
ZWQ0ZDAzMjY5NTEyZmQ5MjdjZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRp
YVF1ZXJ5RXhwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAK
QEAgLTY3LDYgKzY3LDE2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFZhbGlkUG9z
aXRpdmVMZW5naHRPck51bWJlcihjb25zdCBBdG9taWNTdHJpbmcmIG1lCiAgICAgICAgIHx8IG1l
ZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX2RldmljZV93aWR0aE1lZGlhRmVh
dHVyZTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRoVmFsaWRQb3NpdGl2ZURl
bnNpdHkoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUsIGNvbnN0IENTU1BhcnNlclZh
bHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAoKHZhbHVlLT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfRFBQWCAmJiB2YWx1ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQSSAm
JiB2YWx1ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQQ00pIHx8IHZhbHVlLT5m
VmFsdWUgPCAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gbWVkaWFGZWF0
dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpyZXNvbHV0aW9uTWVkaWFGZWF0dXJlCisgICAgICAg
IHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWF4X3Jlc29sdXRpb25NZWRp
YUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpt
aW5fcmVzb2x1dGlvbk1lZGlhRmVhdHVyZTsKK30KKwogc3RhdGljIGlubGluZSBib29sIGZlYXR1
cmVXaXRoUG9zaXRpdmVJbnRlZ2VyKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBj
b25zdCBDU1NQYXJzZXJWYWx1ZSogdmFsdWUpCiB7CiAgICAgaWYgKCF2YWx1ZS0+aXNJbnQgfHwg
dmFsdWUtPmZWYWx1ZSA8IDApCkBAIC0xMTQsNiArMTI0LDcgQEAgc3RhdGljIGlubGluZSBib29s
IGZlYXR1cmVXaXRoQXNwZWN0UmF0aW8oY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUp
CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aG91dFZhbHVlKGNvbnN0IEF0b21pY1N0
cmluZyYgbWVkaWFGZWF0dXJlKQogeworICAgIC8vIE1lZGlhIGZlYXR1cmVzIHRoYXQgYXJlIHBy
ZWZpeGVkIGJ5IG1pbi9tYXggY2Fubm90IGJlIHVzZWQgd2l0aG91dCBhIHZhbHVlLgogICAgIHJl
dHVybiBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1vbm9jaHJvbWVNZWRpYUZl
YXR1cmUKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpjb2xv
ck1lZGlhRmVhdHVyZQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFt
ZXM6OmdyaWRNZWRpYUZlYXR1cmUKQEAgLTEzMSw3ICsxNDIsOCBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgZmVhdHVyZVdpdGhvdXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSkK
ICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjphbmltYXRpb25N
ZWRpYUZlYXR1cmUKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
Ojp2aWV3X21vZGVNZWRpYUZlYXR1cmUKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlh
RmVhdHVyZU5hbWVzOjpwb2ludGVyTWVkaWFGZWF0dXJlCi0gICAgICAgIHx8IG1lZGlhRmVhdHVy
ZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6ZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlOwor
ICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmRldmljZV9waXhl
bF9yYXRpb01lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0
dXJlTmFtZXM6OnJlc29sdXRpb25NZWRpYUZlYXR1cmU7CiB9CiAKIGlubGluZSBNZWRpYVF1ZXJ5
RXhwOjpNZWRpYVF1ZXJ5RXhwKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBDU1NQ
YXJzZXJWYWx1ZUxpc3QqIHZhbHVlTGlzdCkKQEAgLTE0OCw2ICsxNjAsMTAgQEAgaW5saW5lIE1l
ZGlhUXVlcnlFeHA6Ok1lZGlhUXVlcnlFeHAoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1
cmUsIENTU1BhcnNlclYKICAgICAgICAgICAgIGlmIChmZWF0dXJlV2l0aENTU1ZhbHVlSUQobWVk
aWFGZWF0dXJlLCB2YWx1ZSkpCiAgICAgICAgICAgICAgICAgbV92YWx1ZSA9IENTU1ByaW1pdGl2
ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKHZhbHVlLT5pZCk7CiAKKyAgICAgICAgICAgIC8vIE1l
ZGlhIGZlYXR1cmVzIHRoYXQgbXVzdCBoYXZlIG5vbi1uZWdhdGl2ZSA8ZGVuc2l0eT4sIGllLiBk
cHB4LCBkcGkgb3IgZHBjbS4KKyAgICAgICAgICAgIGVsc2UgaWYgKGZlYXR1cmVXaXRoVmFsaWRQ
b3NpdGl2ZURlbnNpdHkobWVkaWFGZWF0dXJlLCB2YWx1ZSkpCisgICAgICAgICAgICAgICAgbV92
YWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUtPmZWYWx1ZSwgKENTU1ByaW1p
dGl2ZVZhbHVlOjpVbml0VHlwZXMpIHZhbHVlLT51bml0KTsKKwogICAgICAgICAgICAgLy8gTWVk
aWEgZmVhdHVyZXMgdGhhdCBtdXN0IGhhdmUgbm9uLW5lZ2F0aXZlIDxsZW5naHQ+IG9yIG51bWJl
ciB2YWx1ZS4KICAgICAgICAgICAgIGVsc2UgaWYgKGZlYXR1cmVXaXRoVmFsaWRQb3NpdGl2ZUxl
bmdodE9yTnVtYmVyKG1lZGlhRmVhdHVyZSwgdmFsdWUpKQogICAgICAgICAgICAgICAgIG1fdmFs
dWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5mVmFsdWUsIChDU1NQcmltaXRp
dmVWYWx1ZTo6VW5pdFR5cGVzKSB2YWx1ZS0+dW5pdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NjcmVlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKaW5k
ZXggZTFlMWQxMTczODZmNjIyZWUzYzE5M2IzZTUwMjJjODgzYThjMjViMS4uNDBhMzg4ZWQyM2E0
YTU4ODNlMDE4ZGExNWMxZjVhODNhNDkyNGNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TY3JlZW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcApAQCAt
MzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCisjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtNDgsNiArNDksMTEgQEAgdW5zaWduZWQgU2NyZWVuOjpob3Jpem9udGFsRFBJKCkgY29u
c3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybiAwOworCisgICAgSW50U2l6
ZSBvdmVycmlkZSA9IG1fZnJhbWUtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+cmVzb2x1dGlvbk92ZXJy
aWRlKCk7CisgICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBvdmVy
cmlkZS53aWR0aCgpOworCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzY3JlZW5I
b3Jpem9udGFsRFBJKG1fZnJhbWUtPnZpZXcoKSkpOwogfQogCkBAIC01NSw2ICs2MSwxMSBAQCB1
bnNpZ25lZCBTY3JlZW46OnZlcnRpY2FsRFBJKCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUp
CiAgICAgICAgIHJldHVybiAwOworCisgICAgSW50U2l6ZSBvdmVycmlkZSA9IG1fZnJhbWUtPnBh
Z2UoKS0+c2V0dGluZ3MoKS0+cmVzb2x1dGlvbk92ZXJyaWRlKCk7CisgICAgaWYgKCFvdmVycmlk
ZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBvdmVycmlkZS5oZWlnaHQoKTsKKwogICAgIHJl
dHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2NyZWVuVmVydGljYWxEUEkobV9mcmFtZS0+dmll
dygpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggOTg3NmFmNWM3NmQyMjU1
Y2ViMmY4ODBiODQ5NTE5ZDI2YzNkM2VkNC4uNzRiOTJmOWY5YzM5NzExNTk5NDQyYzcxNDRiOWRh
ZWJlNWQ3Nzc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTQ1OSw2ICs0NTksMTUg
QEAgdm9pZCBTZXR0aW5nczo6c2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoZmxvYXQg
Zm9udFNjYWxlRmFjdG9yKQogCiAjZW5kaWYKIAordm9pZCBTZXR0aW5nczo6c2V0UmVzb2x1dGlv
bk92ZXJyaWRlKGNvbnN0IEludFNpemUmIGRlbnNpdHlQZXJJbmNoT3ZlcnJpZGUpCit7CisgICAg
aWYgKG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJpZGUgPT0gZGVuc2l0eVBlckluY2hP
dmVycmlkZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9yZXNvbHV0aW9uRGVuc2l0eVBlcklu
Y2hPdmVycmlkZSA9IGRlbnNpdHlQZXJJbmNoT3ZlcnJpZGU7CisgICAgbV9wYWdlLT5zZXROZWVk
c1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKK30KKwogdm9pZCBTZXR0aW5nczo6c2V0TG9hZHNJ
bWFnZXNBdXRvbWF0aWNhbGx5KGJvb2wgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KQogewogICAg
IG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5ID0gbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDg5Nzg1ZDEyZjZlMjkxNjZkYWMzYmFmY2JlZjcwYjA1
ZGVmZmI0NmEuLmM3MWYzMmU4NjFkNzFkN2M2Mjg0MzYwOWFjZjRlMzU1MmJhNDMwMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkVkaXRpbmdC
ZWhhdmlvclR5cGVzLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKKyNpbmNsdWRl
ICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2lu
LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTM3LDEwICszOCw2IEBACiAjaW5jbHVkZSA8d3Rm
L3RleHQvQXRvbWljU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUu
aD4KIAotI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgot
I2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFBhZ2U7CkBAIC0xMjMs
NiArMTIwLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY29uc3QgSW50U2l6ZSYg
dGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBtX3RleHRB
dXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlOyB9CiAjZW5kaWYKIAorICAgICAgICAvLyBPbmx5
IHNldCBieSBMYXlvdXQgVGVzdHMuCisgICAgICAgIHZvaWQgc2V0UmVzb2x1dGlvbk92ZXJyaWRl
KGNvbnN0IEludFNpemUmKTsKKyAgICAgICAgY29uc3QgSW50U2l6ZSYgcmVzb2x1dGlvbk92ZXJy
aWRlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHV0aW9uRGVuc2l0eVBlckluY2hPdmVycmlkZTsg
fQorCiAgICAgICAgIC8vIFVubGlrZSBhcmVJbWFnZXNFbmFibGVkLCB0aGlzIG9ubHkgc3VwcHJl
c3NlcyB0aGUgbmV0d29yayBsb2FkIG9mCiAgICAgICAgIC8vIHRoZSBpbWFnZSBVUkwuICBBIGNh
Y2hlZCBpbWFnZSB3aWxsIHN0aWxsIGJlIHJlbmRlcmVkIGlmIHJlcXVlc3RlZC4KICAgICAgICAg
dm9pZCBzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoYm9vbCk7CkBAIC02ODYsNiArNjg3LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBJbnRTaXplIG1fdGV4dEF1dG9zaXppbmdX
aW5kb3dTaXplT3ZlcnJpZGU7CiAgICAgICAgIGJvb2wgbV90ZXh0QXV0b3NpemluZ0VuYWJsZWQg
OiAxOwogI2VuZGlmCisgICAgICAgIEludFNpemUgbV9yZXNvbHV0aW9uRGVuc2l0eVBlckluY2hP
dmVycmlkZTsKICAgICAgICAgYm9vbCBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkIDogMTsK
ICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNKYXZh
RW5hYmxlZEZvckxvY2FsRmlsZXMgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5jcHAKaW5kZXggOGQ4ZjBjYjQwOTAwMzY1ZTYwYTQzODRlY2IwOTc0MDU0Nzcx
NWFmOS4uYWI0NWIyYTdkZTgzNWFmYjNmMTJhMTViMmE0ZmRmZDg0Y2E3Y2E1YyAxMDA3NTUKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC05Nyw2ICs5Nyw4IEBA
IEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKFBhZ2UqIHBhZ2UsIFNldHRpbmdzKiBz
ZXR0aW5ncykKICAgICAsIG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlk
ZShzZXR0aW5ncy0+dGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoKSkKICAgICAsIG1f
b3JpZ2luYWxUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcihzZXR0aW5ncy0+dGV4dEF1dG9z
aXppbmdGb250U2NhbGVGYWN0b3IoKSkKICNlbmRpZgorICAgICwgbV9vcmlnaW5hbERldmljZVNj
YWxlRmFjdG9yKHBhZ2UtPmRldmljZVNjYWxlRmFjdG9yKCkpCisgICAgLCBtX29yaWdpbmFsUmVz
b2x1dGlvbk92ZXJyaWRlKHNldHRpbmdzLT5yZXNvbHV0aW9uT3ZlcnJpZGUoKSkKICNpZiBFTkFC
TEUoRElBTE9HX0VMRU1FTlQpCiAgICAgLCBtX29yaWdpbmFsRGlhbG9nRWxlbWVudEVuYWJsZWQo
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6ZGlhbG9nRWxlbWVudEVuYWJsZWQoKSkKICNlbmRpZgpA
QCAtMTM2LDYgKzEzOCw4IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0b3Jl
VG8oUGFnZSogcGFnZSwgU2V0dGluZ3MqIHNldHRpbmdzKQogICAgIHNldHRpbmdzLT5zZXRUZXh0
QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShtX29yaWdpbmFsVGV4dEF1dG9zaXppbmdXaW5k
b3dTaXplT3ZlcnJpZGUpOwogICAgIHNldHRpbmdzLT5zZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2Fs
ZUZhY3RvcihtX29yaWdpbmFsVGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IpOwogI2VuZGlm
CisgICAgcGFnZS0+c2V0RGV2aWNlU2NhbGVGYWN0b3IobV9vcmlnaW5hbERldmljZVNjYWxlRmFj
dG9yKTsKKyAgICBzZXR0aW5ncy0+c2V0UmVzb2x1dGlvbk92ZXJyaWRlKG1fb3JpZ2luYWxSZXNv
bHV0aW9uT3ZlcnJpZGUpOwogI2lmIEVOQUJMRShESUFMT0dfRUxFTUVOVCkKICAgICBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXREaWFsb2dFbGVtZW50RW5hYmxlZChtX29yaWdpbmFsRGlhbG9n
RWxlbWVudEVuYWJsZWQpOwogI2VuZGlmCkBAIC00MTMsNiArNDE3LDE0IEBAIHZvaWQgSW50ZXJu
YWxTZXR0aW5nczo6c2V0VGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoaW50IHdpZHRo
LCBpbnQgaGVpZ2h0CiAjZW5kaWYKIH0KIAordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRSZXNv
bHV0aW9uT3ZlcnJpZGUoZmxvYXQgZGVuc2l0eVBlclBpeGVsLCBpbnQgZGVuc2l0eVBlckluY2hI
b3Jpem9udGFsbHksIGludCBkZW5zaXR5UGVySW5jaFZlcnRpY2FsbHksIEV4Y2VwdGlvbkNvZGUm
IGVjKQoreworICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CisgICAgLy8g
QW4gZW1wdHkgc2l6ZSByZXNldHMgdGhlIG92ZXJyaWRlLgorICAgIHNldHRpbmdzKCktPnNldFJl
c29sdXRpb25PdmVycmlkZShJbnRTaXplKGRlbnNpdHlQZXJJbmNoSG9yaXpvbnRhbGx5LCBkZW5z
aXR5UGVySW5jaFZlcnRpY2FsbHkpKTsKKyAgICBwYWdlKCktPnNldERldmljZVNjYWxlRmFjdG9y
KGRlbnNpdHlQZXJQaXhlbCk7Cit9CisKIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0VGV4dEF1
dG9zaXppbmdGb250U2NhbGVGYWN0b3IoZmxvYXQgZm9udFNjYWxlRmFjdG9yLCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRleCA3OGYzNmUwMTc2MWNlYmRjMzFkODk0MjE5
ZDMyMGI2MDJhMTY5YjRmLi4wZjBiYjU5YzNhZWE4ZGFlYmEwOTA2NzlkYjc2MTI0YTFkZTdhZWMw
IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAtMjcsMTUg
KzI3LDEyIEBACiAjZGVmaW5lIEludGVybmFsU2V0dGluZ3NfaAogCiAjaW5jbHVkZSAiRWRpdGlu
Z0JlaGF2aW9yVHlwZXMuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiUmVmQ291
bnRlZFN1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNp
ZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQotI2luY2x1ZGUgIkludFNpemUuaCIKLSNlbmRpZgot
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CkBAIC03
OSw2ICs3Niw4IEBAIHB1YmxpYzoKICAgICAgICAgSW50U2l6ZSBtX29yaWdpbmFsVGV4dEF1dG9z
aXppbmdXaW5kb3dTaXplT3ZlcnJpZGU7CiAgICAgICAgIGZsb2F0IG1fb3JpZ2luYWxUZXh0QXV0
b3NpemluZ0ZvbnRTY2FsZUZhY3RvcjsKICNlbmRpZgorICAgICAgICBmbG9hdCBtX29yaWdpbmFs
RGV2aWNlU2NhbGVGYWN0b3I7CisgICAgICAgIEludFNpemUgbV9vcmlnaW5hbFJlc29sdXRpb25P
dmVycmlkZTsKICNpZiBFTkFCTEUoRElBTE9HX0VMRU1FTlQpCiAgICAgICAgIGJvb2wgbV9vcmln
aW5hbERpYWxvZ0VsZW1lbnRFbmFibGVkOwogI2VuZGlmCkBAIC0xMjcsNiArMTI2LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhj
ZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJp
ZGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRU
ZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcihmbG9hdCBmb250U2NhbGVGYWN0b3IsIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldFJlc29sdXRpb25PdmVycmlkZShmbG9hdCBkZW5zaXR5
UGVyUGl4ZWwsIGludCBkZW5zaXR5UGVySW5jaEhvcml6b250YWxseSwgaW50IGRlbnNpdHlQZXJJ
bmNoVmVydGljYWxseSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RW5hYmxlU2Nyb2xs
QW5pbWF0b3IoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgYm9vbCBzY3JvbGxB
bmltYXRvckVuYWJsZWQoRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0Q1NTRXhjbHVzaW9u
c0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCBmMzQ2NGJlOWE0ZWM2NDU2NGI0MzQ1
MDk3ODdkZjg0N2UzZWU4MWNlLi4xN2Y3MWFhODlkMGQ2NDFiYTAwMmFjMWIwYzcxZGRkNDVlZmE2
NmFkIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAg
LTU2LDYgKzU2LDcgQEAKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nRW5hYmxlZChpbiBib29s
ZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0VGV4dEF1dG9z
aXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoaW4gbG9uZyB3aWR0aCwgaW4gbG9uZyBoZWlnaHQpIHJh
aXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVG
YWN0b3IoaW4gZmxvYXQgZm9udFNjYWxlRmFjdG9yKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAg
ICB2b2lkIHNldFJlc29sdXRpb25PdmVycmlkZShpbiBmbG9hdCBkZW5zaXR5UGVyUGl4ZWwsIGlu
IGxvbmcgZGVuc2l0eVBlckluY2hIb3Jpem9udGFsbHksIGluIGxvbmcgZGVuc2l0eVBlckluY2hW
ZXJ0aWNhbGx5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldEVuYWJsZVNjcm9s
bEFuaW1hdG9yKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAg
Ym9vbGVhbiBzY3JvbGxBbmltYXRvckVuYWJsZWQoKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAg
ICB2b2lkIHNldENTU0V4Y2x1c2lvbnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5k
ZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggMTk2YmJmMDU5NWIzYjA1
YjdlNDEzMWJkZTliNzM4NWIxNDQwMmZhYi4uYjFkMjZiOGRkYjBjM2JjMDE5MzBjOTkwYzk5OGZj
Mjc3ZTUzNmMxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisr
KyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMjQyLDYgKzI0Miw3IEBAIEVY
UE9SVFMKICAgICAgICAgP3NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeUBTZXR0aW5nc0BXZWJDb3Jl
QEBRQUVYVzRTdG9yYWdlQmxvY2tpbmdQb2xpY3lAU2VjdXJpdHlPcmlnaW5AMkBAWgogICAgICAg
ICA/c2V0U3VnZ2VzdGVkVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJDb3JlQEBRQUVYQUJWU3Ry
aW5nQFdURkBAQFoKICAgICAgICAgP3NldEVkaXRpbmdWYWx1ZUBIVE1MSW5wdXRFbGVtZW50QFdl
YkNvcmVAQFFBRVhBQlZTdHJpbmdAV1RGQEBAWgorICAgICAgICA/c2V0UmVzb2x1dGlvbk92ZXJy
aWRlQFNldHRpbmdzQFdlYkNvcmVAQFFBRVhBQlZJbnRTaXplQDJAQFoKICAgICAgICAgP3NldHRp
bmdzQERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAgICAgICAgP3NldHRp
bmdzQEZyYW1lQFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAgICAgICAgP3NldEZpeGVk
RWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWVAU2V0dGluZ3NAV2ViQ29yZUBAUUFFWF9OQFoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0
b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IGFlZDU0YWYyMWFjOGM4ODRiZGVlMjI0ZTg5YmUy
ZTZjYTg0NWFmZGYuLjMyZWZlNWE5ZGVkZjBhMjE4N2ZmOTE4ZjViZDBiNDg5NGEyMjQ1ZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1
dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtMTc1LDYgKzE3NSw3IEBAIF9aTjdXZWJDb3JlOFNl
dHRpbmdzMjRzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWRFYjsKIF9aTjdXZWJDb3JlOFNldHRpbmdz
MjRzZXRVc2VzT3ZlcmxheVNjcm9sbGJhcnNFYjsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRT
dG9yYWdlQmxvY2tpbmdQb2xpY3lFTlNfMTRTZWN1cml0eU9yaWdpbjIxU3RvcmFnZUJsb2NraW5n
UG9saWN5RTsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMzdzZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVs
YXRpdmVUb0ZyYW1lRWI7CitfWk43V2ViQ29yZThTZXR0aW5nczIxc2V0UmVzb2x1dGlvbk92ZXJy
aWRlRVJLTlNfN0ludFNpemVFOwogX1pON1dlYkNvcmU5RnJhbWVWaWV3MTdwYWludENvbnRyb2xU
aW50c0V2OwogX1pON1dlYkNvcmU5RnJhbWVWaWV3MTlzY3JvbGxFbGVtZW50VG9SZWN0RVBOU183
RWxlbWVudEVSS05TXzdJbnRSZWN0RTsKIF9aTjdXZWJDb3JlMjJSdW50aW1lRW5hYmxlZEZlYXR1
cmVzMzFpc011bHRpcGxlU2hhZG93U3VidHJlZXNFbmFibGVkRTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1OWI2ZTY0YmE2
OTBkNDQyYzdiODg4M2Q0NDljY2RiMmUxMmM0ZmU3Li42Mzg2MmVlNmQ1ZjcxYTFjODE1Mjk1Nzdh
MTUzYTRlMTU4ZDRjMDI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTItMTAtMTUgIEtlbm5l
dGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciByZXNvbHV0aW9uIG1lZGlhIHF1ZXJ5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTA3NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgKHJlc29sdXRpb246IHgpIG1lZGlhIHF1
ZXJ5IHRvIGVuc3VyZSBjb21wbGlhbmNlCisgICAgICAgIHdpdGggc3BlYyBwbHVzIHByb3Bvc2Vk
IGRwcHggdmFsdWVzLgorCisgICAgICAgICogZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWw6
IEFkZGVkLgorCisgICAgICAgICogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVj
dGF0aW9uczoKKworICAgICAgICAgICAgU2tpcCB0aGUgdGVzdCBhcyB0aGUgcG9ydHMgZG8gbm90
IGVuYWJsZSBDU1MgSW1hZ2UgUmVzb2x1dGlvbi4KKwogMjAxMi0xMC0xNyAgTWlraGFpbCBQb3pk
bnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KIAogICAgICAgICBbV0syXVtX
VFJdIEluamVjdGVkQnVuZGxlUGFnZTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbigp
IHNob3VsZCBwcmludCBvbmx5IGZpbGVuYW1lIHBhcnQgb2YgbG9jYWwgVVJMcwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmUxNmU4YjkyOGQ0OTcwZGI5Njg1MTgzMGU4ZTIxYzU1ZDcxOGNhMwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzOCBAQAorQ1NTMyBtZWRpYSBxdWVyeSB0ZXN0OiByZXNvbHV0aW9uIHF1ZXJ5
IHdpdGggZHBweC4gVXNpbmcgc3R5bGUgZWxlbWVudCwgQG1lZGlhIGNzcyBydWxlLgorCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNv
bHV0aW9uOiAxLjVkcHB4KScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuZGV2aWNlUGl4
ZWxSYXRpbyBpcyAxLjUKK1BBU1MgZGV2aWNlUGl4ZWxSYXRpb0Zyb21TdHlsZSgpIGlzIDEuNQor
UEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyZHBweCknKS5tYXRjaGVzIGlz
IHRydWUKK1BBU1Mgd2luZG93LmRldmljZVBpeGVsUmF0aW8gaXMgMgorUEFTUyBkZXZpY2VQaXhl
bFJhdGlvRnJvbVN0eWxlKCkgaXMgMgorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0
aW9uOiAxZHBweCknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1Mgd2luZG93LmRldmljZVBpeGVsUmF0
aW8gaXMgMQorUEFTUyBkZXZpY2VQaXhlbFJhdGlvRnJvbVN0eWxlKCkgaXMgMQorUEFTUyBtYXRj
aE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRj
aE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyBpcyB0cnVlCitQ
QVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hl
cyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAyNTRk
cGkpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRp
b246IDEwMGRwY20pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0
LW1pbi1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1l
ZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIGlzIHRydWUK
K1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbiknKS5tYXRjaGVzIGlzIGZhbHNl
CitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVz
IGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDI2MGRwaSkn
KS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0
aW9uOiAyNTRkcGkpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0
LW1pbi1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1l
ZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMgaXMgZmFsc2UK
K1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDI2MGRwaSknKS5tYXRj
aGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMTAwZHBj
bSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRp
b246IDEwMmRwY20pJykubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtp
dC1taW4tcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hN
ZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDEwMmRwY20pJykubWF0Y2hlcyBpcyBmYWxz
ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5t
YXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9u
OiAxMDJkcGNtKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWEvbXEtcmVzb2x1dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0
aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDM1MmZmNjI0M2U2MWMxODY2YzhhMGM2NDY0ZGFlM2E0OThj
YjU2YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1
dGlvbi5odG1sCkBAIC0wLDAgKzEsODQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9k
eT4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorCis8ZGl2IGlkPSJkZXRlY3RvciI+PC9kaXY+CisKKzxzdHlsZT4KKyAgICAjZGV0ZWN0b3Ig
eyB3aWR0aDogMTBweDsgfQorICAgIEBtZWRpYSAoLXdlYmtpdC1yZXNvbHV0aW9uOiAgIDFkcHB4
KSB7ICNkZXRlY3RvciB7IHdpZHRoOiAxMHB4OyB9IH0KKyAgICBAbWVkaWEgKC13ZWJraXQtcmVz
b2x1dGlvbjogMS41ZHBweCkgeyAjZGV0ZWN0b3IgeyB3aWR0aDogMTVweDsgfSB9CisgICAgQG1l
ZGlhICgtd2Via2l0LXJlc29sdXRpb246ICAgMmRwcHgpIHsgI2RldGVjdG9yIHsgd2lkdGg6IDIw
cHg7IH0gfQorPC9zdHlsZT4KKworPHNjcmlwdD4KKyAgICBkZXNjcmlwdGlvbigiQ1NTMyBtZWRp
YSBxdWVyeSB0ZXN0OiByZXNvbHV0aW9uIHF1ZXJ5IHdpdGggZHBweC4gVXNpbmcgc3R5bGUgZWxl
bWVudCwgQG1lZGlhIGNzcyBydWxlLiIpCisKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYg
d2luZG93LmludGVybmFscykgeworICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisKKyAgICAgICAgZnVuY3Rpb24gZGV2aWNlUGl4ZWxSYXRpb0Zyb21TdHlsZSgpIHsKKyAg
ICAgICAgICAgIHZhciB3aWR0aCA9IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImRldGVjdG9yIikpLndpZHRoOworICAgICAgICAgICAgc3dpdGNoICh3aWR0aCkgewor
ICAgICAgICAgICAgICAgIGNhc2UgIjEwcHgiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g
MTsKKyAgICAgICAgICAgICAgICBjYXNlICIxNXB4IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIDEuNTsKKyAgICAgICAgICAgICAgICBjYXNlICIyMHB4IjoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIDI7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHVuZGVmaW5lZDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDEuNSwgOTYs
IDk2KTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246
IDEuNWRwcHgpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
ZGV2aWNlUGl4ZWxSYXRpbyIsICIxLjUiKTsKKyAgICAgICAgc2hvdWxkQmUoImRldmljZVBpeGVs
UmF0aW9Gcm9tU3R5bGUoKSIsICIxLjUiKTsKKworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgyLCA5NiwgOTYpOworICAgICAgICBzaG91bGRC
ZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMmRwcHgpJykubWF0Y2hlcyIsICJ0
cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyIsICIyIik7
CisgICAgICAgIHNob3VsZEJlKCJkZXZpY2VQaXhlbFJhdGlvRnJvbVN0eWxlKCkiLCAiMiIpOwor
CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRl
KDEsIDk2LCA5Nik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNv
bHV0aW9uOiAxZHBweCknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIndp
bmRvdy5kZXZpY2VQaXhlbFJhdGlvIiwgIjEiKTsKKyAgICAgICAgc2hvdWxkQmUoImRldmljZVBp
eGVsUmF0aW9Gcm9tU3R5bGUoKSIsICIxIik7CisKKyAgICAgICAgd2luZG93LmludGVybmFscy5z
ZXR0aW5ncy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMSwgMjU0LCAyNTQpOworICAgICAgICBzaG91
bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbiknKS5tYXRjaGVzIiwgInRydWUi
KTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDI1
NGRwaSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEo
Jygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyIsICJ0cnVlIik7Cisg
ICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMjU0
ZHBpKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworCisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlh
KCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAg
ICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDEwMGRw
Y20pJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCco
LXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsKKwor
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgx
LCAyNTQsIDI2MCk7CisgICAgICAgIC8vIE5vbi1zcXVhcmUgbXVzdCBuZXZlciBtYXRjaC4KKyAg
ICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb24pJykubWF0Y2hl
cyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVz
b2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUo
Im1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDI2MGRwaSknKS5tYXRjaGVzIiwgImZh
bHNlIik7CisKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNv
bHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJt
YXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMjYwZHBpKScpLm1hdGNoZXMiLCAi
ZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNv
bHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRCZSgi
bWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDI2MGRwaSknKS5tYXRjaGVzIiwg
InRydWUiKTsKKworICAgICAgICAvLyBOb24tc3F1YXJlIG11c3QgbmV2ZXIgbWF0Y2guCisgICAg
ICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxMDBkcGNtKScp
Lm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Vi
a2l0LXJlc29sdXRpb246IDEwMmRwY20pJykubWF0Y2hlcyIsICJmYWxzZSIpOworCisgICAgICAg
IHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMTAwZHBjbSkn
KS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Vi
a2l0LW1pbi1yZXNvbHV0aW9uOiAxMDJkcGNtKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAg
ICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAxMDBkcGNt
KScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygt
d2Via2l0LW1heC1yZXNvbHV0aW9uOiAxMDJkcGNtKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAg
IH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4ZTdkNjBlZTY1MTM2MTllNjYxMWYz
OTRhODc3ZDhmZTY3NWU5MThkLi5kN2ExZWYyMDFjYWE2ZTBhNmI4ZTRjMDg3YjYxODJmN2Y3MzA3
OGRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTE3MSw2ICsxNzEsNyBAQCB3ZWJraXQub3JnL2IvNzUxMjMgd2ViaW50ZW50cy9pbnRl
bnQtdGFnLmh0bWwKIAogIyBDU1MgaW1hZ2UtcmVzb2x1dGlvbiBpcyBub3QgeWV0IGVuYWJsZWQu
CiB3ZWJraXQub3JnL2IvODUyNjIgZmFzdC9jc3MvaW1hZ2UtcmVzb2x1dGlvbgord2Via2l0Lm9y
Zy9iLzg1MjYyIGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbgogCiAjIENTUyBpbWFnZS1vcmllbnRh
dGlvbiBpcyBub3QgeWV0IGVuYWJsZWQuCiB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9jc3MvaW1h
Z2Utb3JpZW50YXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0
RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggNmFkODlmZTBjNTA4NzU3MDg4NjIxZDRkNzc1YmNjOTE4YzJhZDI4Yi4uZDgwZjc3MGQ0
NDZiMTgzMmQ1MzM5NGI1ZGFiNWY5NmQyN2JiY2JlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTk2NSw2ICs5NjUsNyBAQCB3ZWJraXQub3JnL2IvODc5
MDggZWRpdGluZy91bmRvbWFuYWdlcgogCiAjIENTUyBpbWFnZS1yZXNvbHV0aW9uIGlzIG5vdCB5
ZXQgZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi84NTI2MiBmYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9u
Cit3ZWJraXQub3JnL2IvODUyNjIgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uCiAKICMgQ1NTIGlt
YWdlLW9yaWVudGF0aW9uIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi84OTA1MiBm
YXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdl
TG9nCmluZGV4IGRkOGRjMzg3MDhjYzA2MmJkYzUyNjhiZTYxMDFiYTk4ZTJkOGQ3YjAuLjk3MGVl
N2Y3MDQ0MGI4NGMxZDQ5ZWNiZWI4YWM0M2Y0NzRhOGE3YWUgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxv
ZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMC0xNiAgS2VubmV0aCBS
b2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHN1
cHBvcnQgZm9yIHJlc29sdXRpb24gbWVkaWEgcXVlcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5MDc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
OgorCisgICAgICAgICAgICBFeHBvcnQgdGhlIFdlYkNvcmU6OlNldHRpbmdzIHNldHRpbmcuCisK
IDIwMTItMTAtMTcgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5j
b20+LCBNaWNoYWwgUm9qIDxtLnJvakBzYXNtdW5nLmNvbT4KIAogICAgICAgICBbV0syXVtFRkxd
IEltcGxlbWVudGF0aW9uIG9mIHNwZWxsY2hlY2tpbmcgZmVhdHVyZS4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169228</attachid>
            <date>2012-10-17 11:49:51 -0700</date>
            <delta_ts>2012-10-17 11:54:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99077-20121017204836.patch</filename>
            <type>text/plain</type>
            <size>33325</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWM1MzcwN2RhYjU1NDM4
MjEwNTk5ZmJlMDVkYmM1ZDc0MWVmZWE0Ny4uMTgxYzhmNWU0YzZhZDliNjA3OGQ2OWI3NGZhNjU2
NmY1ODExMjNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEyLTEwLTE1ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBt
ZWRpYSBxdWVyeSBmZWF0dXJlIHdpdGggLXdlYmtpdAorICAgICAgICBwcmVmaXggZHVlIHRvIHRo
ZSBzdXBwb3J0IG9mIHRoZSBwcm9wb3NlZCBkcHB4IHZhbHVlcy4KKworICAgICAgICBBZGQgaW5m
cmFzdHJ1Y3R1cmUgdG8gbWFrZSBpdCB0ZXN0YWJsZS4KKworICAgICAgICBUZXN0OiBmYXN0L21l
ZGlhL21xLXJlc29sdXRpb24uaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisKKyAg
ICAgICAgICAgIEV4cG9ydCB0aGUgV2ViQ29yZTo6U2V0dGluZ3Mgc2V0dGluZy4KKworICAgICAg
ICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzRGVuc2l0eVBlckluY2gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzRGVuc2l0eVBlclBpeGVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjppc0RlbnNpdHlQZXJDZW50aW1ldGVyKToKKyAgICAgICAgKENTU1ByaW1pdGl2
ZVZhbHVlKToKKworICAgICAgICAgICAgQWRkIGZ1bmN0aW9uIGZvciBjaGVja2luZyB0aGUgcmVj
ZW50bHkgYWRkZWQgZGVuc2l0eSB0eXBlcy4KKworICAgICAgICAqIGNzcy9NZWRpYUZlYXR1cmVO
YW1lcy5oOgorICAgICAgICAoTWVkaWFGZWF0dXJlTmFtZXMpOgorCisgICAgICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgLXdlYmtpdC1yZXNvbHV0aW9uLCAtd2Via2l0LW1pbi1yZXNvbHV0aW9uCisg
ICAgICAgICAgICBhbmQgLXdlYmtpdC1tYXgtcmVzb2x1dGlvbi4KKworICAgICAgICAqIGNzcy9N
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVSZXNvbHV0
aW9uKTogQWRkIG1ldGhvZHMgZm9yIGNvbXBhcmluZyByZXNvbHV0aW9ucy4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6bWluX3Jlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6Om1heF9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCk6CisKKyAgICAgICAg
ICAgIEltcGxlbWVudCB0aGUgcmVzb2x1dGlvbiBtZXRob2QgZXZhbHVhdGlvbi4KKworICAgICAg
ICAqIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRo
VmFsaWRQb3NpdGl2ZURlbnNpdHkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpmZWF0dXJlV2l0aG91dFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlF
eHA6Ok1lZGlhUXVlcnlFeHApOgorCisgICAgICAgICAgICBIb29rIHVwIHJlc29sdXRpb24gd2l0
aCB0aGUgcmlnaHQgcHJlLWNoZWNrcy4KKworICAgICAgICogcGFnZS9TY3JlZW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyZWVuOjpob3Jpem9udGFsRFBJKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmVlbjo6dmVydGljYWxEUEkpOgorCisgICAgICAgICAgICBDaGVjayB3aGV0aGVyIGFuIG92
ZXJyaWRlIGV4aXN0cywgYW5kIGlmIHNvLCB1c2VzIGl0LgorCisgICAgICAgICogcGFnZS9TZXR0
aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0UmVzb2x1dGlvbk92ZXJy
aWRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAg
ICAgICAgKFNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpyZXNvbHV0aW9u
T3ZlcnJpZGUpOgorCisgICAgICAgICAgICBBZGQgYSByZXNvbHV0aW9uIG92ZXJyaWRlIHRvIHNl
dHRpbmdzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVycmlkZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAg
ICAgICAgKEJhY2t1cCk6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCisgICAgICAgICAgICBBZGQgYSBuZXcgc2V0
UmVzb2x1dGlvbk92ZXJyaWRlIG1ldGhvZCB0byBpbnRlcm5hbHMuc2V0dGluZ3MuCisKIDIwMTIt
MTAtMTYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IE5NSSBpbnN0cnVtZW50IEltYWdlRGVjb2Rlci4gSXQgb3ducyBhIGJ1
ZmZlciB0aGF0IGNvdWxkIGJlIHF1aXRlIGJpZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5Y2M0NWNkMmEyOThh
M2JhNTkwMTdjZGQ1NzE1MTM2M2VjYjNiZjZiLi4zMzhhZmMyMzMzNTdjMzBkODBiMTBmOTVjMTc5
YTgzMjI5YmQ4OTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMTYgIEtl
bm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciByZXNvbHV0aW9uIG1lZGlhIHF1ZXJ5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTA3NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2luL1dlYktpdDIuZGVmOgorCisgICAg
ICAgICAgICBBZGQgZXhwb3J0cyBmb3IgdGhlIFdlYkNvcmU6OlNldHRpbmdzIHNldHRpbmcuCisK
IDIwMTItMTAtMTcgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5j
b20+CiAKICAgICAgICAgW1dLMl1bRUZMXSBBZGQgdW5pdCB0ZXN0cyBmb3IgU3BlbGxpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KaW5kZXggZThlZjI0MzFkNjI4NmQ1NTY4ZDczMGQ4OGUwMjEyYmQwY2Vl
ODk4Zi4uM2UxN2I1ZDAzOGVhZTIxOWFjNmM2NDEyMTEyNTc0MzQxNDVjZGZjNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KQEAgLTk2MCw2ICs5NjAsNyBAQCBfX1pON1dlYkNvcmU4U2V0dGluZ3M0MHNl
dFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JFTlNfMzdUZXh0RGlyZWN0aQog
X19aTjdXZWJDb3JlOFNldHRpbmdzNDFzZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlv
blF1aXJrc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3M0NHNldExvYWRzU2l0ZUljb25zSWdub3Jp
bmdJbWFnZUxvYWRpbmdTZXR0aW5nRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczQ1c2V0U2hvdWxk
UmVzcGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzRWIKK19fWk43V2ViQ29yZThTZXR0
aW5nczIxc2V0UmVzb2x1dGlvbk92ZXJyaWRlRVJLTlNfN0ludFNpemVFCiBfX1pON1dlYkNvcmU4
YmxhbmtVUkxFdgogX19aTjdXZWJDb3JlOG1ha2VSR0JBRWlpaWkKIF9fWk43V2ViQ29yZThvcGVu
RmlsZUVSS04zV1RGNlN0cmluZ0VOU18xMkZpbGVPcGVuTW9kZUUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmgKaW5kZXggYWEyZGJlYWMzMmRkYjM4NzdiMWRiNWVmYmQwYWFlZTc3
MTJkNjg2Ni4uNDFjOWMzYWYzODQ1ZDg4NGUyYTVlMmRkNTc3OWNlZjUzMmZiYTkwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKQEAgLTE4MSw2ICsxODEsMTAgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNDYWxjdWxhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVV
bml0VHlwZSA9PSBDU1NfQ0FMQzsgfQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdp
dGhOdW1iZXIoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVS
Q0VOVEFHRV9XSVRIX05VTUJFUjsgfQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdp
dGhMZW5ndGgoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVS
Q0VOVEFHRV9XSVRIX0xFTkdUSDsgfQorICAgIGJvb2wgaXNEZW5zaXR5UGVySW5jaCgpIGNvbnN0
IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBJOyB9CisgICAgYm9vbCBpc0RlbnNp
dHlQZXJQaXhlbCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBQWDsg
fQorICAgIGJvb2wgaXNEZW5zaXR5UGVyQ2VudGltZXRlcigpIGNvbnN0IHsgcmV0dXJuIHByaW1p
dGl2ZVR5cGUoKSA9PSBDU1NfRFBDTTsgfQorCiAjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCiAg
ICAgYm9vbCBpc1ZhcmlhYmxlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9
PSBDU1NfVkFSSUFCTEVfTkFNRTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1
cmVOYW1lcy5oCmluZGV4IGIwODQzOWU0YTAxODM0OTIyZmRhMDBlOGFkOTdlZmYyMGZiZWMwZmMu
LjRjZWMyNTQ1ZjU4NTNjNGVhOWRmYWVmNWYxNjU3ODA1ZWQ2OWQzYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyhtYXhfaGVpZ2h0LCAibWF4LWhlaWdodCIpIFwKICAgICBtYWNybyht
YXhfbW9ub2Nocm9tZSwgIm1heC1tb25vY2hyb21lIikgXAogICAgIG1hY3JvKG1heF93aWR0aCwg
Im1heC13aWR0aCIpIFwKKyAgICBtYWNybyhtYXhfcmVzb2x1dGlvbiwgIi13ZWJraXQtbWF4LXJl
c29sdXRpb24iKSBcCiAgICAgbWFjcm8obWluX2NvbG9yLCAibWluLWNvbG9yIikgXAogICAgIG1h
Y3JvKG1pbl9hc3BlY3RfcmF0aW8sICJtaW4tYXNwZWN0LXJhdGlvIikgXAogICAgIG1hY3JvKG1p
bl9kZXZpY2VfYXNwZWN0X3JhdGlvLCAibWluLWRldmljZS1hc3BlY3QtcmF0aW8iKSBcCkBAIC01
Niw3ICs1Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhtaW5faGVpZ2h0LCAi
bWluLWhlaWdodCIpIFwKICAgICBtYWNybyhtaW5fbW9ub2Nocm9tZSwgIm1pbi1tb25vY2hyb21l
IikgXAogICAgIG1hY3JvKG1pbl93aWR0aCwgIm1pbi13aWR0aCIpIFwKKyAgICBtYWNybyhtaW5f
cmVzb2x1dGlvbiwgIi13ZWJraXQtbWluLXJlc29sdXRpb24iKSBcCiAgICAgbWFjcm8ocG9pbnRl
ciwgInBvaW50ZXIiKSBcCisgICAgbWFjcm8ocmVzb2x1dGlvbiwgIi13ZWJraXQtcmVzb2x1dGlv
biIpIFwKICAgICBtYWNybyh0cmFuc2Zvcm1fMmQsICItd2Via2l0LXRyYW5zZm9ybS0yZCIpIFwK
ICAgICBtYWNybyh0cmFuc2Zvcm1fM2QsICItd2Via2l0LXRyYW5zZm9ybS0zZCIpIFwKICAgICBt
YWNybyh0cmFuc2l0aW9uLCAiLXdlYmtpdC10cmFuc2l0aW9uIikgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IGRhYTQ5MGI4YmRjODQ2ODdjNzQ5YTli
NTEwZTQ0YzM5YzY5MTA4ZTUuLmVlZWZlMDZlZjQ5YWY2YzdlMjRiNDkxYWY3MzFkYWFkMzQ3OGMw
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTM0
LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNT
U1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJE
T01XaW5kb3cuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtNDgsNiArNDksNyBAQAogI2luY2x1ZGUgIlJlbmRl
clZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CisjaW5jbHVkZSAiU2NyZWVuLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKQEAgLTY2LDE1ICs2OCwxMyBAQCB0eXBlZGVmIEhhc2hNYXA8
QXRvbWljU3RyaW5nSW1wbCosIEV2YWxGdW5jPiBGdW5jdGlvbk1hcDsKIHN0YXRpYyBGdW5jdGlv
bk1hcCogZ0Z1bmN0aW9uTWFwOwogCiAvKgotICogRklYTUU6IGZvbGxvd2luZyBtZWRpYSBmZWF0
dXJlcyBhcmUgbm90IGltcGxlbWVudGVkOiBjb2xvcl9pbmRleCwgc2NhbiwgcmVzb2x1dGlvbgor
ICogRklYTUU6IGZvbGxvd2luZyBtZWRpYSBmZWF0dXJlcyBhcmUgbm90IGltcGxlbWVudGVkOiBj
b2xvcl9pbmRleCwgc2NhbgogICoKICAqIGNvbG9yX2luZGV4LCBtaW4tY29sb3ItaW5kZXgsIG1h
eF9jb2xvcl9pbmRleDogSXQncyB1bmtub3duIGhvdyB0byByZXRyaWV2ZQogICogdGhlIGluZm9y
bWF0aW9uIGlmIHRoZSBkaXNwbGF5IG1vZGUgaXMgaW5kZXhlZAogICogc2NhbjogVGhlICJzY2Fu
IiBtZWRpYSBmZWF0dXJlIGRlc2NyaWJlcyB0aGUgc2Nhbm5pbmcgcHJvY2VzcyBvZgogICogdHYg
b3V0cHV0IGRldmljZXMuIEl0J3MgdW5rbm93biBob3cgdG8gcmV0cmlldmUgdGhpcyBpbmZvcm1h
dGlvbiBmcm9tCiAgKiB0aGUgcGxhdGZvcm0KLSAqIHJlc29sdXRpb24sIG1pbi1yZXNvbHV0aW9u
LCBtYXgtcmVzb2x1dGlvbjogY3NzIHBhcnNlciBkb2Vzbid0IHNlZW0gdG8KLSAqIHN1cHBvcnQg
Q1NTX0RJTUVOU0lPTgogICovCiAKIE1lZGlhUXVlcnlFdmFsdWF0b3I6Ok1lZGlhUXVlcnlFdmFs
dWF0b3IoYm9vbCBtZWRpYUZlYXR1cmVSZXN1bHQpCkBAIC0xOTcsNiArMTk3LDIzIEBAIHN0YXRp
YyBib29sIGNvbXBhcmVBc3BlY3RSYXRpb1ZhbHVlKENTU1ZhbHVlKiB2YWx1ZSwgaW50IHdpZHRo
LCBpbnQgaGVpZ2h0LCBNZWRpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgRU5BQkxFKENT
U19JTUFHRV9SRVNPTFVUSU9OKQorc3RhdGljIGJvb2wgY29tcGFyZVJlc29sdXRpb24odW5zaWdu
ZWQgbWluLCB1bnNpZ25lZCBtYXgsIHVuc2lnbmVkIHZhbHVlLCBNZWRpYUZlYXR1cmVQcmVmaXgg
b3ApCit7CisgICAgc3dpdGNoIChvcCkgeworICAgIGNhc2UgTm9QcmVmaXg6CisgICAgICAgIC8v
IEEgJ3Jlc29sdXRpb24nICh3aXRob3V0IGEgIm1pbi0iIG9yICJtYXgtIiBwcmVmaXgpIHF1ZXJ5
CisgICAgICAgIC8vIG5ldmVyIG1hdGNoZXMgYSBkZXZpY2Ugd2l0aCBub24tc3F1YXJlIHBpeGVs
cy4KKyAgICAgICAgcmV0dXJuIG1pbiA9PSBtYXg7CisgICAgY2FzZSBNaW5QcmVmaXg6CisgICAg
ICAgIHJldHVybiBtaW4gPj0gdmFsdWU7CisgICAgY2FzZSBNYXhQcmVmaXg6CisgICAgICAgIHJl
dHVybiBtYXggPD0gdmFsdWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgor
CiBzdGF0aWMgYm9vbCBudW1iZXJWYWx1ZShDU1NWYWx1ZSogdmFsdWUsIGZsb2F0JiByZXN1bHQp
CiB7CiAgICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkKQEAgLTI3OCw2ICsyOTUsNjAg
QEAgc3RhdGljIGJvb2wgZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1
ZSAqdmFsdWUsIFJlbmRlclN0eWxlKiwgRnIKICAgICByZXR1cm4gZnJhbWUtPnBhZ2UoKS0+ZGV2
aWNlU2NhbGVGYWN0b3IoKSAhPSAwOwogfQogCitzdGF0aWMgYm9vbCByZXNvbHV0aW9uTWVkaWFG
ZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBN
ZWRpYUZlYXR1cmVQcmVmaXggb3ApCit7CisjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9O
KQorICAgIHVuc2lnbmVkIGhvcmlEUEkgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkt
PnNjcmVlbigpLT5ob3Jpem9udGFsRFBJKCk7CisgICAgdW5zaWduZWQgdmVydERQSSA9IGZyYW1l
LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+c2NyZWVuKCktPnZlcnRpY2FsRFBJKCk7CisKKyAg
ICB1bnNpZ25lZCBtaW5EUEkgPSBzdGQ6Om1pbihob3JpRFBJLCB2ZXJ0RFBJKTsKKyAgICB1bnNp
Z25lZCBtYXhEUEkgPSBzdGQ6Om1heChob3JpRFBJLCB2ZXJ0RFBJKTsKKworICAgIC8vIEFjY29y
ZGluZyB0byBzcGVjLCAocmVzb2x1dGlvbikgd2lsbCBldmFsdWF0ZSB0byB0cnVlIGlmIChyZXNv
bHV0aW9uOngpCisgICAgLy8gd2lsbCBldmFsdWF0ZSB0byB0cnVlIGZvciBhIHZhbHVlIHggb3Ro
ZXIgdGhhbiB6ZXJvIG9yIHplcm8gZm9sbG93ZWQgYnkKKyAgICAvLyBhIHZhbGlkIHVuaXQgaWRl
bnRpZmllciAoaS5lLiwgb3RoZXIgdGhhbiAwLCAwZHBpLCAwZHBjbSwgb3IgMGRwcHguKS4KKyAg
ICAvLworICAgIC8vIFRoaXMgaXMgYWN0dWFsbHkgYWx3YXlzIHRoZSBjYXNlIHdpdGggdGhlIGRw
cHgsIHdoaWNoIHdlIGlnbm9yZSBhcyBpdCBpcworICAgIC8vIGEgc3BlY2lhbC1jYXNlIGluIHRo
ZSBzZW5zZSBpdCBjYW4gYmUgb3V0IG9mIHN5bmMgd2l0aCBkcGkgYW5kIGRwY20uIEZvcgorICAg
IC8vIGluc3RhbmNlLCBib3RoIGEgZGV2aWNlIHdpdGggOTZkcGkgYW5kIDE2MGRwaSBjYW4gaGF2
ZSBhIGRwcHggb2YgMS4KKyAgICAvLworICAgIC8vIFRoaXMgbGVhdmVzIHRoZSBjYXNlIG9mIHNx
dWFyZWQgcGl4ZWxzLgorICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgQVNTRVJUKG9wID09IE5v
UHJlZml4KTsKKyAgICAgICAgcmV0dXJuIG1pbkRQSSA9PSBtYXhEUEk7CisgICAgfQorCisgICAg
aWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcmF3VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZSo+KHZhbHVlKTsKKyAgICBpZiAocmF3VmFsdWUtPmlzRGVuc2l0eVBlclBpeGVsKCkp
IHsKKyAgICAgICAgZmxvYXQgYWN0dWFsRGVuc2l0eSA9IGZyYW1lLT5wYWdlKCktPmRldmljZVNj
YWxlRmFjdG9yKCk7CisgICAgICAgIGZsb2F0IHRlc3RlZERlbnNpdHkgPSByYXdWYWx1ZS0+Z2V0
RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQUFgpOworICAgICAgICByZXR1cm4g
Y29tcGFyZVZhbHVlKGFjdHVhbERlbnNpdHksIHRlc3RlZERlbnNpdHksIG9wKTsKKyAgICB9CisK
KyAgICBpZiAocmF3VmFsdWUtPmlzRGVuc2l0eVBlckluY2goKSkgeworICAgICAgICB1bnNpZ25l
ZCB0ZXN0ZWREZW5zaXR5ID0gcmF3VmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19EUEkpOworICAgICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24obWluRFBJLCBt
YXhEUEksIHRlc3RlZERlbnNpdHksIG9wKTsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBtaW5EUENN
ID0gZmxvb3IobWluRFBJIC8gMi41NCk7IC8vICgyLjU0IGNtL2luKQorICAgIHVuc2lnbmVkIG1h
eERQQ00gPSBmbG9vcihtYXhEUEkgLyAyLjU0KTsKKworICAgIGlmIChyYXdWYWx1ZS0+aXNEZW5z
aXR5UGVyQ2VudGltZXRlcigpKSB7CisgICAgICAgIHVuc2lnbmVkIHRlc3RlZERlbnNpdHkgPSBy
YXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQQ00pOworICAg
ICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24obWluRFBDTSwgbWF4RFBDTSwgdGVzdGVkRGVu
c2l0eSwgb3ApOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHZhbHVlKTsKKyAgICBV
TlVTRURfUEFSQU0oZnJhbWUpOworICAgIFVOVVNFRF9QQVJBTShvcCk7CisjZW5kaWYKKworICAg
IHJldHVybiBmYWxzZTsKK30KKwogc3RhdGljIGJvb2wgZ3JpZE1lZGlhRmVhdHVyZUV2YWwoQ1NT
VmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiwgTWVkaWFGZWF0dXJlUHJlZml4IG9w
KQogewogICAgIC8vIGlmIG91dHB1dCBkZXZpY2UgaXMgYml0bWFwLCBncmlkOiAwID09IHRydWUK
QEAgLTQ1Niw2ICs1MjcsMTYgQEAgc3RhdGljIGJvb2wgbWF4X2RldmljZV93aWR0aE1lZGlhRmVh
dHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUKICAgICByZXR1cm4g
ZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNYXhQcmVm
aXgpOwogfQogCitzdGF0aWMgYm9vbCBtaW5fcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NT
VmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0
dXJlUHJlZml4KQoreworICAgIHJldHVybiByZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCh2YWx1
ZSwgc3R5bGUsIGZyYW1lLCBNaW5QcmVmaXgpOworfQorCitzdGF0aWMgYm9vbCBtYXhfcmVzb2x1
dGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUs
IEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQoreworICAgIHJldHVybiByZXNvbHV0
aW9uTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNYXhQcmVmaXgpOworfQor
CiBzdGF0aWMgYm9vbCBhbmltYXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwg
UmVuZGVyU3R5bGUqLCBGcmFtZSosIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsKICAgICBpZiAo
dmFsdWUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcAppbmRleCAxYTA2Yjc5NjVm
Y2NiOThhMDkzNTY5NTY5NzU4YjIxZmM2ZTI5OTgxLi5lMGUyYjMxZWIxNGM0ODk4MmZkNGVkNGQw
MzI2OTUxMmZkOTI3Y2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV4cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwCkBAIC02
Nyw2ICs2NywxNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZl
TGVuZ2h0T3JOdW1iZXIoY29uc3QgQXRvbWljU3RyaW5nJiBtZQogICAgICAgICB8fCBtZWRpYUZl
YXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbl9kZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmU7
CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVEZW5zaXR5
KGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBjb25zdCBDU1NQYXJzZXJWYWx1ZSog
dmFsdWUpCit7CisgICAgaWYgKCh2YWx1ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X0RQUFggJiYgdmFsdWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUEkgJiYgdmFs
dWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUENNKSB8fCB2YWx1ZS0+ZlZhbHVl
IDwgMCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9
PSBNZWRpYUZlYXR1cmVOYW1lczo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZQorICAgICAgICB8fCBt
ZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heF9yZXNvbHV0aW9uTWVkaWFGZWF0
dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX3Jl
c29sdXRpb25NZWRpYUZlYXR1cmU7Cit9CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0
aFBvc2l0aXZlSW50ZWdlcihjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgY29uc3Qg
Q1NTUGFyc2VyVmFsdWUqIHZhbHVlKQogewogICAgIGlmICghdmFsdWUtPmlzSW50IHx8IHZhbHVl
LT5mVmFsdWUgPCAwKQpAQCAtMTE0LDYgKzEyNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0
dXJlV2l0aEFzcGVjdFJhdGlvKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlKQogCiBz
dGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhvdXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcm
IG1lZGlhRmVhdHVyZSkKIHsKKyAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IGFyZSBwcmVmaXhl
ZCBieSBtaW4vbWF4IGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgYSB2YWx1ZS4KICAgICByZXR1cm4g
bWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptb25vY2hyb21lTWVkaWFGZWF0dXJl
CiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6Y29sb3JNZWRp
YUZlYXR1cmUKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpn
cmlkTWVkaWFGZWF0dXJlCkBAIC0xMzEsNyArMTQyLDggQEAgc3RhdGljIGlubGluZSBib29sIGZl
YXR1cmVXaXRob3V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUpCiAgICAg
ICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6YW5pbWF0aW9uTWVkaWFG
ZWF0dXJlCiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dmll
d19tb2RlTWVkaWFGZWF0dXJlCiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1
cmVOYW1lczo6cG9pbnRlck1lZGlhRmVhdHVyZQotICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0g
TWVkaWFGZWF0dXJlTmFtZXM6OmRldmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZTsKKyAgICAg
ICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2VfcGl4ZWxfcmF0
aW9NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5h
bWVzOjpyZXNvbHV0aW9uTWVkaWFGZWF0dXJlOwogfQogCiBpbmxpbmUgTWVkaWFRdWVyeUV4cDo6
TWVkaWFRdWVyeUV4cChjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgQ1NTUGFyc2Vy
VmFsdWVMaXN0KiB2YWx1ZUxpc3QpCkBAIC0xNDgsNiArMTYwLDEwIEBAIGlubGluZSBNZWRpYVF1
ZXJ5RXhwOjpNZWRpYVF1ZXJ5RXhwKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBD
U1NQYXJzZXJWCiAgICAgICAgICAgICBpZiAoZmVhdHVyZVdpdGhDU1NWYWx1ZUlEKG1lZGlhRmVh
dHVyZSwgdmFsdWUpKQogICAgICAgICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1
ZTo6Y3JlYXRlSWRlbnRpZmllcih2YWx1ZS0+aWQpOwogCisgICAgICAgICAgICAvLyBNZWRpYSBm
ZWF0dXJlcyB0aGF0IG11c3QgaGF2ZSBub24tbmVnYXRpdmUgPGRlbnNpdHk+LCBpZS4gZHBweCwg
ZHBpIG9yIGRwY20uCisgICAgICAgICAgICBlbHNlIGlmIChmZWF0dXJlV2l0aFZhbGlkUG9zaXRp
dmVEZW5zaXR5KG1lZGlhRmVhdHVyZSwgdmFsdWUpKQorICAgICAgICAgICAgICAgIG1fdmFsdWUg
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5mVmFsdWUsIChDU1NQcmltaXRpdmVW
YWx1ZTo6VW5pdFR5cGVzKSB2YWx1ZS0+dW5pdCk7CisKICAgICAgICAgICAgIC8vIE1lZGlhIGZl
YXR1cmVzIHRoYXQgbXVzdCBoYXZlIG5vbi1uZWdhdGl2ZSA8bGVuZ2h0PiBvciBudW1iZXIgdmFs
dWUuCiAgICAgICAgICAgICBlbHNlIGlmIChmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVMZW5naHRP
ck51bWJlcihtZWRpYUZlYXR1cmUsIHZhbHVlKSkKICAgICAgICAgICAgICAgICBtX3ZhbHVlID0g
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZS0+ZlZhbHVlLCAoQ1NTUHJpbWl0aXZlVmFs
dWU6OlVuaXRUeXBlcykgdmFsdWUtPnVuaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TY3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCmluZGV4IGUx
ZTFkMTE3Mzg2ZjYyMmVlM2MxOTNiM2U1MDIyYzg4M2E4YzI1YjEuLjQwYTM4OGVkMjNhNGE1ODgz
ZTAxOGRhMTVjMWY1YTgzYTQ5MjRjYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQ4LDYgKzQ5LDExIEBAIHVuc2lnbmVkIFNjcmVlbjo6aG9yaXpvbnRhbERQSSgpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4gMDsKKworICAgIEludFNpemUgb3Zl
cnJpZGUgPSBtX2ZyYW1lLT5wYWdlKCktPnNldHRpbmdzKCktPnJlc29sdXRpb25PdmVycmlkZSgp
OworICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gb3ZlcnJpZGUu
d2lkdGgoKTsKKwogICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2NyZWVuSG9yaXpv
bnRhbERQSShtX2ZyYW1lLT52aWV3KCkpKTsKIH0KIApAQCAtNTUsNiArNjEsMTEgQEAgdW5zaWdu
ZWQgU2NyZWVuOjp2ZXJ0aWNhbERQSSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAg
ICAgICByZXR1cm4gMDsKKworICAgIEludFNpemUgb3ZlcnJpZGUgPSBtX2ZyYW1lLT5wYWdlKCkt
PnNldHRpbmdzKCktPnJlc29sdXRpb25PdmVycmlkZSgpOworICAgIGlmICghb3ZlcnJpZGUuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gb3ZlcnJpZGUuaGVpZ2h0KCk7CisKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcmVlblZlcnRpY2FsRFBJKG1fZnJhbWUtPnZpZXcoKSkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDk4NzZhZjVjNzZkMjI1NWNlYjJm
ODgwYjg0OTUxOWQyNmMzZDNlZDQuLjc0YjkyZjlmOWMzOTcxMTU5OTQ0MmM3MTQ0YjlkYWViZTVk
Nzc3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC00NTksNiArNDU5LDE1IEBAIHZv
aWQgU2V0dGluZ3M6OnNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKGZsb2F0IGZvbnRT
Y2FsZUZhY3RvcikKIAogI2VuZGlmCiAKK3ZvaWQgU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVy
cmlkZShjb25zdCBJbnRTaXplJiBkZW5zaXR5UGVySW5jaE92ZXJyaWRlKQoreworICAgIGlmICht
X3Jlc29sdXRpb25EZW5zaXR5UGVySW5jaE92ZXJyaWRlID09IGRlbnNpdHlQZXJJbmNoT3ZlcnJp
ZGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3Zl
cnJpZGUgPSBkZW5zaXR5UGVySW5jaE92ZXJyaWRlOworICAgIG1fcGFnZS0+c2V0TmVlZHNSZWNh
bGNTdHlsZUluQWxsRnJhbWVzKCk7Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldExvYWRzSW1hZ2Vz
QXV0b21hdGljYWxseShib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSkKIHsKICAgICBtX2xv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSA9IGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaAppbmRleCA4OTc4NWQxMmY2ZTI5MTY2ZGFjM2JhZmNiZWY3MGIwNWRlZmZi
NDZhLi5jNzFmMzJlODYxZDcxZDdjNjI4NDM2MDlhY2Y0ZTM1NTJiYTQzMDMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJFZGl0aW5nQmVoYXZp
b3JUeXBlcy5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCisjaW5jbHVkZSAiSW50
U2l6ZS5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgIlRpbWVyLmgiCkBAIC0zNywxMCArMzgsNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0
L0F0b21pY1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CiAK
LSNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQotI2luY2x1ZGUgIkludFNpemUuaCIKLSNlbmRp
ZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBQYWdlOwpAQCAtMTIzLDYgKzEy
MCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IEludFNpemUmIHRleHRB
dXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0QXV0b3Np
emluZ1dpbmRvd1NpemVPdmVycmlkZTsgfQogI2VuZGlmCiAKKyAgICAgICAgLy8gT25seSBzZXQg
YnkgTGF5b3V0IFRlc3RzLgorICAgICAgICB2b2lkIHNldFJlc29sdXRpb25PdmVycmlkZShjb25z
dCBJbnRTaXplJik7CisgICAgICAgIGNvbnN0IEludFNpemUmIHJlc29sdXRpb25PdmVycmlkZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJpZGU7IH0KKwog
ICAgICAgICAvLyBVbmxpa2UgYXJlSW1hZ2VzRW5hYmxlZCwgdGhpcyBvbmx5IHN1cHByZXNzZXMg
dGhlIG5ldHdvcmsgbG9hZCBvZgogICAgICAgICAvLyB0aGUgaW1hZ2UgVVJMLiAgQSBjYWNoZWQg
aW1hZ2Ugd2lsbCBzdGlsbCBiZSByZW5kZXJlZCBpZiByZXF1ZXN0ZWQuCiAgICAgICAgIHZvaWQg
c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJvb2wpOwpAQCAtNjg2LDYgKzY4Nyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgSW50U2l6ZSBtX3RleHRBdXRvc2l6aW5nV2luZG93
U2l6ZU92ZXJyaWRlOwogICAgICAgICBib29sIG1fdGV4dEF1dG9zaXppbmdFbmFibGVkIDogMTsK
ICNlbmRpZgorICAgICAgICBJbnRTaXplIG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJp
ZGU7CiAgICAgICAgIGJvb2wgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7CiAgICAg
ICAgIGJvb2wgbV9pc0phdmFFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJs
ZWRGb3JMb2NhbEZpbGVzIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwCmluZGV4IDhkOGYwY2I0MDkwMDM2NWU2MGE0Mzg0ZWNiMDk3NDA1NDc3MTVhZjku
LmFiNDViMmE3ZGU4MzVhZmIzZjEyYTE1YjJhNGZkZmQ4NGNhN2NhNWMgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtOTcsNiArOTcsOCBAQCBJbnRl
cm5hbFNldHRpbmdzOjpCYWNrdXA6OkJhY2t1cChQYWdlKiBwYWdlLCBTZXR0aW5ncyogc2V0dGlu
Z3MpCiAgICAgLCBtX29yaWdpbmFsVGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoc2V0
dGluZ3MtPnRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKCkpCiAgICAgLCBtX29yaWdp
bmFsVGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3Ioc2V0dGluZ3MtPnRleHRBdXRvc2l6aW5n
Rm9udFNjYWxlRmFjdG9yKCkpCiAjZW5kaWYKKyAgICAsIG1fb3JpZ2luYWxEZXZpY2VTY2FsZUZh
Y3RvcihwYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpKQorICAgICwgbV9vcmlnaW5hbFJlc29sdXRp
b25PdmVycmlkZShzZXR0aW5ncy0+cmVzb2x1dGlvbk92ZXJyaWRlKCkpCiAjaWYgRU5BQkxFKERJ
QUxPR19FTEVNRU5UKQogICAgICwgbV9vcmlnaW5hbERpYWxvZ0VsZW1lbnRFbmFibGVkKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OmRpYWxvZ0VsZW1lbnRFbmFibGVkKCkpCiAjZW5kaWYKQEAgLTEz
Niw2ICsxMzgsOCBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKFBh
Z2UqIHBhZ2UsIFNldHRpbmdzKiBzZXR0aW5ncykKICAgICBzZXR0aW5ncy0+c2V0VGV4dEF1dG9z
aXppbmdXaW5kb3dTaXplT3ZlcnJpZGUobV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nV2luZG93U2l6
ZU92ZXJyaWRlKTsKICAgICBzZXR0aW5ncy0+c2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0
b3IobV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKTsKICNlbmRpZgorICAg
IHBhZ2UtPnNldERldmljZVNjYWxlRmFjdG9yKG1fb3JpZ2luYWxEZXZpY2VTY2FsZUZhY3Rvcik7
CisgICAgc2V0dGluZ3MtPnNldFJlc29sdXRpb25PdmVycmlkZShtX29yaWdpbmFsUmVzb2x1dGlv
bk92ZXJyaWRlKTsKICNpZiBFTkFCTEUoRElBTE9HX0VMRU1FTlQpCiAgICAgUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2V0RGlhbG9nRWxlbWVudEVuYWJsZWQobV9vcmlnaW5hbERpYWxvZ0VsZW1l
bnRFbmFibGVkKTsKICNlbmRpZgpAQCAtNDEzLDYgKzQxNywxNCBAQCB2b2lkIEludGVybmFsU2V0
dGluZ3M6OnNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKGludCB3aWR0aCwgaW50
IGhlaWdodAogI2VuZGlmCiB9CiAKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0UmVzb2x1dGlv
bk92ZXJyaWRlKGZsb2F0IGRlbnNpdHlQZXJQaXhlbCwgaW50IGRlbnNpdHlQZXJJbmNoSG9yaXpv
bnRhbGx5LCBpbnQgZGVuc2l0eVBlckluY2hWZXJ0aWNhbGx5LCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOworICAgIC8vIEFuIGVt
cHR5IHNpemUgcmVzZXRzIHRoZSBvdmVycmlkZS4KKyAgICBzZXR0aW5ncygpLT5zZXRSZXNvbHV0
aW9uT3ZlcnJpZGUoSW50U2l6ZShkZW5zaXR5UGVySW5jaEhvcml6b250YWxseSwgZGVuc2l0eVBl
ckluY2hWZXJ0aWNhbGx5KSk7CisgICAgcGFnZSgpLT5zZXREZXZpY2VTY2FsZUZhY3RvcihkZW5z
aXR5UGVyUGl4ZWwpOworfQorCiB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFRleHRBdXRvc2l6
aW5nRm9udFNjYWxlRmFjdG9yKGZsb2F0IGZvbnRTY2FsZUZhY3RvciwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggNzhmMzZlMDE3NjFjZWJkYzMxZDg5NDIxOWQzMjBi
NjAyYTE2OWI0Zi4uMGYwYmI1OWMzYWVhOGRhZWJhMDkwNjc5ZGI3NjEyNGExZGU3YWVjMCAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTI3LDE1ICsyNywx
MiBAQAogI2RlZmluZSBJbnRlcm5hbFNldHRpbmdzX2gKIAogI2luY2x1ZGUgIkVkaXRpbmdCZWhh
dmlvclR5cGVzLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlJlZkNvdW50ZWRT
dXBwbGVtZW50LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgRU5B
QkxFKFRFWFRfQVVUT1NJWklORykKLSNpbmNsdWRlICJJbnRTaXplLmgiCi0jZW5kaWYKLQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwpAQCAtNzksNiAr
NzYsOCBAQCBwdWJsaWM6CiAgICAgICAgIEludFNpemUgbV9vcmlnaW5hbFRleHRBdXRvc2l6aW5n
V2luZG93U2l6ZU92ZXJyaWRlOwogICAgICAgICBmbG9hdCBtX29yaWdpbmFsVGV4dEF1dG9zaXpp
bmdGb250U2NhbGVGYWN0b3I7CiAjZW5kaWYKKyAgICAgICAgZmxvYXQgbV9vcmlnaW5hbERldmlj
ZVNjYWxlRmFjdG9yOworICAgICAgICBJbnRTaXplIG1fb3JpZ2luYWxSZXNvbHV0aW9uT3ZlcnJp
ZGU7CiAjaWYgRU5BQkxFKERJQUxPR19FTEVNRU5UKQogICAgICAgICBib29sIG1fb3JpZ2luYWxE
aWFsb2dFbGVtZW50RW5hYmxlZDsKICNlbmRpZgpAQCAtMTI3LDYgKzEyNiw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKGlu
dCB3aWR0aCwgaW50IGhlaWdodCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0VGV4dEF1
dG9zaXppbmdGb250U2NhbGVGYWN0b3IoZmxvYXQgZm9udFNjYWxlRmFjdG9yLCBFeGNlcHRpb25D
b2RlJik7CisgICAgdm9pZCBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoZmxvYXQgZGVuc2l0eVBlclBp
eGVsLCBpbnQgZGVuc2l0eVBlckluY2hIb3Jpem9udGFsbHksIGludCBkZW5zaXR5UGVySW5jaFZl
cnRpY2FsbHksIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1h
dG9yKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIGJvb2wgc2Nyb2xsQW5pbWF0
b3JFbmFibGVkKEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldENTU0V4Y2x1c2lvbnNFbmFi
bGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggZjM0NjRiZTlhNGVjNjQ1NjRiNDM0NTA5Nzg3
ZGY4NDdlM2VlODFjZS4uMTdmNzFhYTg5ZDBkNjQxYmEwMDJhYzFiMGM3MWRkZDQ1ZWZhNjZhZCAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC01Niw2
ICs1Niw3IEBACiAgICAgdm9pZCBzZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoaW4gYm9vbGVhbiBl
bmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5n
V2luZG93U2l6ZU92ZXJyaWRlKGluIGxvbmcgd2lkdGgsIGluIGxvbmcgaGVpZ2h0KSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9y
KGluIGZsb2F0IGZvbnRTY2FsZUZhY3RvcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgdm9p
ZCBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoaW4gZmxvYXQgZGVuc2l0eVBlclBpeGVsLCBpbiBsb25n
IGRlbnNpdHlQZXJJbmNoSG9yaXpvbnRhbGx5LCBpbiBsb25nIGRlbnNpdHlQZXJJbmNoVmVydGlj
YWxseSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRFbmFibGVTY3JvbGxBbmlt
YXRvcihpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIGJvb2xl
YW4gc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9p
ZCBzZXRDU1NFeGNsdXNpb25zRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01F
eGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCmluZGV4IDE5NmJiZjA1OTViM2IwNWI3ZTQx
MzFiZGU5YjczODViMTQ0MDJmYWIuLmIxZDI2YjhkZGIwYzNiYzAxOTMwYzk5MGM5OThmYzI3N2U1
MzZjMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTI0Miw2ICsyNDIsNyBAQCBFWFBPUlRT
CiAgICAgICAgID9zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3lAU2V0dGluZ3NAV2ViQ29yZUBAUUFF
WFc0U3RvcmFnZUJsb2NraW5nUG9saWN5QFNlY3VyaXR5T3JpZ2luQDJAQFoKICAgICAgICAgP3Nl
dFN1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUFFWEFCVlN0cmluZ0BX
VEZAQEBaCiAgICAgICAgID9zZXRFZGl0aW5nVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJDb3Jl
QEBRQUVYQUJWU3RyaW5nQFdURkBAQFoKKyAgICAgICAgP3NldFJlc29sdXRpb25PdmVycmlkZUBT
ZXR0aW5nc0BXZWJDb3JlQEBRQUVYQUJWSW50U2l6ZUAyQEBaCiAgICAgICAgID9zZXR0aW5nc0BE
b2N1bWVudEBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAgID9zZXR0aW5nc0BG
cmFtZUBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAgID9zZXRGaXhlZEVsZW1l
bnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lQFNldHRpbmdzQFdlYkNvcmVAQFFBRVhfTkBaCmRpZmYg
LS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90b29s
cy9zeW1ib2xzLmZpbHRlcgppbmRleCBhZWQ1NGFmMjFhYzhjODg0YmRlZTIyNGU4OWJlMmU2Y2E4
NDVhZmRmLi4zMmVmZTVhOWRlZGYwYTIxODdmZjkxOGY1YmQwYjQ4OTRhMjI0NWZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRvdG9v
bHMvc3ltYm9scy5maWx0ZXIKQEAgLTE3NSw2ICsxNzUsNyBAQCBfWk43V2ViQ29yZThTZXR0aW5n
czI0c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkRWI7CiBfWk43V2ViQ29yZThTZXR0aW5nczI0c2V0
VXNlc092ZXJsYXlTY3JvbGxiYXJzRWI7CiBfWk43V2ViQ29yZThTZXR0aW5nczI0c2V0U3RvcmFn
ZUJsb2NraW5nUG9saWN5RU5TXzE0U2VjdXJpdHlPcmlnaW4yMVN0b3JhZ2VCbG9ja2luZ1BvbGlj
eUU7CiBfWk43V2ViQ29yZThTZXR0aW5nczM3c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZl
VG9GcmFtZUViOworX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFJlc29sdXRpb25PdmVycmlkZUVS
S05TXzdJbnRTaXplRTsKIF9aTjdXZWJDb3JlOUZyYW1lVmlldzE3cGFpbnRDb250cm9sVGludHNF
djsKIF9aTjdXZWJDb3JlOUZyYW1lVmlldzE5c2Nyb2xsRWxlbWVudFRvUmVjdEVQTlNfN0VsZW1l
bnRFUktOU183SW50UmVjdEU7CiBfWk43V2ViQ29yZTIyUnVudGltZUVuYWJsZWRGZWF0dXJlczMx
aXNNdWx0aXBsZVNoYWRvd1N1YnRyZWVzRW5hYmxlZEU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTliNmU2NGJhNjkwZDQ0
MmM3Yjg4ODNkNDQ5Y2NkYjJlMTJjNGZlNy4uNjM4NjJlZTZkNWY3MWExYzgxNTI5NTc3YTE1M2E0
ZTE1OGQ0YzAyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTEwLTE1ICBLZW5uZXRoIFJv
aGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IChyZXNvbHV0aW9uOiB4KSBtZWRpYSBxdWVyeSB0
byBlbnN1cmUgY29tcGxpYW5jZQorICAgICAgICB3aXRoIHNwZWMgcGx1cyBwcm9wb3NlZCBkcHB4
IHZhbHVlcy4KKworICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sOiBBZGRl
ZC4KKworICAgICAgICAqIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICAqIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlv
bnM6CisKKyAgICAgICAgICAgIFNraXAgdGhlIHRlc3QgYXMgdGhlIHBvcnRzIGRvIG5vdCBlbmFi
bGUgQ1NTIEltYWdlIFJlc29sdXRpb24uCisKIDIwMTItMTAtMTcgIE1pa2hhaWwgUG96ZG55YWtv
diAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl1bV1RSXSBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oKSBzaG91
bGQgcHJpbnQgb25seSBmaWxlbmFtZSBwYXJ0IG9mIGxvY2FsIFVSTHMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJl
MTZlOGI5MjhkNDk3MGRiOTY4NTE4MzBlOGUyMWM1NWQ3MThjYTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMzggQEAKK0NTUzMgbWVkaWEgcXVlcnkgdGVzdDogcmVzb2x1dGlvbiBxdWVyeSB3aXRo
IGRwcHguIFVzaW5nIHN0eWxlIGVsZW1lbnQsIEBtZWRpYSBjc3MgcnVsZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlv
bjogMS41ZHBweCknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1Mgd2luZG93LmRldmljZVBpeGVsUmF0
aW8gaXMgMS41CitQQVNTIGRldmljZVBpeGVsUmF0aW9Gcm9tU3R5bGUoKSBpcyAxLjUKK1BBU1Mg
bWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMmRwcHgpJykubWF0Y2hlcyBpcyB0cnVl
CitQQVNTIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIGlzIDIKK1BBU1MgZGV2aWNlUGl4ZWxSYXRp
b0Zyb21TdHlsZSgpIGlzIDIKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjog
MWRwcHgpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIGlz
IDEKK1BBU1MgZGV2aWNlUGl4ZWxSYXRpb0Zyb21TdHlsZSgpIGlzIDEKK1BBU1MgbWF0Y2hNZWRp
YSgnKC13ZWJraXQtcmVzb2x1dGlvbiknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRp
YSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBt
YXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMgaXMg
dHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMjU0ZHBpKScp
Lm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAx
MDBkcGNtKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4t
cmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgn
KC13ZWJraXQtbWF4LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNT
IG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb24pJykubWF0Y2hlcyBpcyBmYWxzZQorUEFT
UyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyBpcyBm
YWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0
Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjog
MjU0ZHBpKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4t
cmVzb2x1dGlvbjogMjYwZHBpKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgn
KC13ZWJraXQtbWF4LXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNT
IG1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0Y2hlcyBp
cyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDEwMGRwY20pJyku
bWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAx
MDJkcGNtKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWlu
LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEo
Jygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAxMDJkcGNtKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BB
U1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hl
cyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMTAy
ZHBjbSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21x
LXJlc29sdXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQzNTJmZjYyNDNlNjFjMTg2NmM4YTBjNjQ2NGRhZTNhNDk4Y2I1NmMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24u
aHRtbApAQCAtMCwwICsxLDg0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKwor
PGRpdiBpZD0iZGV0ZWN0b3IiPjwvZGl2PgorCis8c3R5bGU+CisgICAgI2RldGVjdG9yIHsgd2lk
dGg6IDEwcHg7IH0KKyAgICBAbWVkaWEgKC13ZWJraXQtcmVzb2x1dGlvbjogICAxZHBweCkgeyAj
ZGV0ZWN0b3IgeyB3aWR0aDogMTBweDsgfSB9CisgICAgQG1lZGlhICgtd2Via2l0LXJlc29sdXRp
b246IDEuNWRwcHgpIHsgI2RldGVjdG9yIHsgd2lkdGg6IDE1cHg7IH0gfQorICAgIEBtZWRpYSAo
LXdlYmtpdC1yZXNvbHV0aW9uOiAgIDJkcHB4KSB7ICNkZXRlY3RvciB7IHdpZHRoOiAyMHB4OyB9
IH0KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNTUzMgbWVkaWEgcXVl
cnkgdGVzdDogcmVzb2x1dGlvbiBxdWVyeSB3aXRoIGRwcHguIFVzaW5nIHN0eWxlIGVsZW1lbnQs
IEBtZWRpYSBjc3MgcnVsZS4iKQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
CisgICAgICAgIGZ1bmN0aW9uIGRldmljZVBpeGVsUmF0aW9Gcm9tU3R5bGUoKSB7CisgICAgICAg
ICAgICB2YXIgd2lkdGggPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJkZXRlY3RvciIpKS53aWR0aDsKKyAgICAgICAgICAgIHN3aXRjaCAod2lkdGgpIHsKKyAgICAg
ICAgICAgICAgICBjYXNlICIxMHB4IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7Cisg
ICAgICAgICAgICAgICAgY2FzZSAiMTVweCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAx
LjU7CisgICAgICAgICAgICAgICAgY2FzZSAiMjBweCI6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAyOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB1bmRlZmluZWQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgxLjUsIDk2LCA5Nik7
CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxLjVk
cHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgid2luZG93LmRldmlj
ZVBpeGVsUmF0aW8iLCAiMS41Iik7CisgICAgICAgIHNob3VsZEJlKCJkZXZpY2VQaXhlbFJhdGlv
RnJvbVN0eWxlKCkiLCAiMS41Iik7CisKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5n
cy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMiwgOTYsIDk2KTsKKyAgICAgICAgc2hvdWxkQmUoIm1h
dGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDJkcHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIp
OworICAgICAgICBzaG91bGRCZSgid2luZG93LmRldmljZVBpeGVsUmF0aW8iLCAiMiIpOworICAg
ICAgICBzaG91bGRCZSgiZGV2aWNlUGl4ZWxSYXRpb0Zyb21TdHlsZSgpIiwgIjIiKTsKKworICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgxLCA5
NiwgOTYpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlv
bjogMWRwcHgpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
ZGV2aWNlUGl4ZWxSYXRpbyIsICIxIik7CisgICAgICAgIHNob3VsZEJlKCJkZXZpY2VQaXhlbFJh
dGlvRnJvbVN0eWxlKCkiLCAiMSIpOworCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDEsIDI1NCwgMjU0KTsKKyAgICAgICAgc2hvdWxkQmUo
Im1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb24pJykubWF0Y2hlcyIsICJ0cnVlIik7Cisg
ICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNTRkcGkp
JykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdl
YmtpdC1taW4tcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAg
ICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDI1NGRwaSkn
KS5tYXRjaGVzIiwgInRydWUiKTsKKworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13
ZWJraXQtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAg
c2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAxMDBkcGNtKScp
Lm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJr
aXQtbWF4LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyIsICJ0cnVlIik7CisKKyAgICAg
ICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMSwgMjU0
LCAyNjApOworICAgICAgICAvLyBOb24tc3F1YXJlIG11c3QgbmV2ZXIgbWF0Y2guCisgICAgICAg
IHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uKScpLm1hdGNoZXMiLCAi
ZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRp
b246IDI1NGRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRj
aE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIp
OworCisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlv
bjogMjU0ZHBpKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hN
ZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDI2MGRwaSknKS5tYXRjaGVzIiwgImZhbHNl
Iik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlv
bjogMjU0ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNo
TWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0Y2hlcyIsICJ0cnVl
Iik7CisKKyAgICAgICAgLy8gTm9uLXNxdWFyZSBtdXN0IG5ldmVyIG1hdGNoLgorICAgICAgICBz
aG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRj
aGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1y
ZXNvbHV0aW9uOiAxMDJkcGNtKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKworICAgICAgICBzaG91
bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDEwMGRwY20pJykubWF0
Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1t
aW4tcmVzb2x1dGlvbjogMTAyZHBjbSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNo
b3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5t
YXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtp
dC1tYXgtcmVzb2x1dGlvbjogMTAyZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICB9Cis8
L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOGU3ZDYwZWU2NTEzNjE5ZTY2MTFmMzk0YTg3
N2Q4ZmU2NzVlOTE4ZC4uZDdhMWVmMjAxY2FhNmUwYTZiOGU0YzA4N2I2MTgyZjdmNzMwNzhkYyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xNzEsNiArMTcxLDcgQEAgd2Via2l0Lm9yZy9iLzc1MTIzIHdlYmludGVudHMvaW50ZW50LXRh
Zy5odG1sCiAKICMgQ1NTIGltYWdlLXJlc29sdXRpb24gaXMgbm90IHlldCBlbmFibGVkLgogd2Vi
a2l0Lm9yZy9iLzg1MjYyIGZhc3QvY3NzL2ltYWdlLXJlc29sdXRpb24KK3dlYmtpdC5vcmcvYi84
NTI2MiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24KIAogIyBDU1MgaW1hZ2Utb3JpZW50YXRpb24g
aXMgbm90IHlldCBlbmFibGVkLgogd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdlLW9y
aWVudGF0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDZhZDg5ZmUwYzUwODc1NzA4ODYyMWQ0ZDc3NWJjYzkxOGMyYWQyOGIuLmQ4MGY3NzBkNDQ2YjE4
MzJkNTMzOTRiNWRhYjVmOTZkMjdiYmNiZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zCkBAIC05NjUsNiArOTY1LDcgQEAgd2Via2l0Lm9yZy9iLzg3OTA4IGVk
aXRpbmcvdW5kb21hbmFnZXIKIAogIyBDU1MgaW1hZ2UtcmVzb2x1dGlvbiBpcyBub3QgeWV0IGVu
YWJsZWQuCiB3ZWJraXQub3JnL2IvODUyNjIgZmFzdC9jc3MvaW1hZ2UtcmVzb2x1dGlvbgord2Vi
a2l0Lm9yZy9iLzg1MjYyIGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbgogCiAjIENTUyBpbWFnZS1v
cmllbnRhdGlvbiBpcyBub3QgeWV0IGVuYWJsZWQuCiB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9j
c3MvaW1hZ2Utb3JpZW50YXRpb24KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwpp
bmRleCBkZDhkYzM4NzA4Y2MwNjJiZGM1MjY4YmU2MTAxYmE5OGUyZDhkN2IwLi45NzBlZTdmNzA0
NDBiODRjMWQ0OWVjYmViOGFjNDNmNDc0YThhN2FlIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysr
IGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMTYgIEtlbm5ldGggUm9oZGUg
Q2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciByZXNvbHV0aW9uIG1lZGlhIHF1ZXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05OTA3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjoKKwor
ICAgICAgICAgICAgRXhwb3J0IHRoZSBXZWJDb3JlOjpTZXR0aW5ncyBzZXR0aW5nLgorCiAyMDEy
LTEwLTE3ICBHcnplZ29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPiwg
TWljaGFsIFJvaiA8bS5yb2pAc2FzbXVuZy5jb20+CiAKICAgICAgICAgW1dLMl1bRUZMXSBJbXBs
ZW1lbnRhdGlvbiBvZiBzcGVsbGNoZWNraW5nIGZlYXR1cmUuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169229</attachid>
            <date>2012-10-17 11:55:00 -0700</date>
            <delta_ts>2012-10-17 14:47:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99077-20121017205345.patch</filename>
            <type>text/plain</type>
            <size>33343</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWM1MzcwN2RhYjU1NDM4
MjEwNTk5ZmJlMDVkYmM1ZDc0MWVmZWE0Ny4uMTgxYzhmNWU0YzZhZDliNjA3OGQ2OWI3NGZhNjU2
NmY1ODExMjNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEyLTEwLTE1ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBt
ZWRpYSBxdWVyeSBmZWF0dXJlIHdpdGggLXdlYmtpdAorICAgICAgICBwcmVmaXggZHVlIHRvIHRo
ZSBzdXBwb3J0IG9mIHRoZSBwcm9wb3NlZCBkcHB4IHZhbHVlcy4KKworICAgICAgICBBZGQgaW5m
cmFzdHJ1Y3R1cmUgdG8gbWFrZSBpdCB0ZXN0YWJsZS4KKworICAgICAgICBUZXN0OiBmYXN0L21l
ZGlhL21xLXJlc29sdXRpb24uaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisKKyAg
ICAgICAgICAgIEV4cG9ydCB0aGUgV2ViQ29yZTo6U2V0dGluZ3Mgc2V0dGluZy4KKworICAgICAg
ICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzRGVuc2l0eVBlckluY2gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzRGVuc2l0eVBlclBpeGVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjppc0RlbnNpdHlQZXJDZW50aW1ldGVyKToKKyAgICAgICAgKENTU1ByaW1pdGl2
ZVZhbHVlKToKKworICAgICAgICAgICAgQWRkIGZ1bmN0aW9uIGZvciBjaGVja2luZyB0aGUgcmVj
ZW50bHkgYWRkZWQgZGVuc2l0eSB0eXBlcy4KKworICAgICAgICAqIGNzcy9NZWRpYUZlYXR1cmVO
YW1lcy5oOgorICAgICAgICAoTWVkaWFGZWF0dXJlTmFtZXMpOgorCisgICAgICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgLXdlYmtpdC1yZXNvbHV0aW9uLCAtd2Via2l0LW1pbi1yZXNvbHV0aW9uCisg
ICAgICAgICAgICBhbmQgLXdlYmtpdC1tYXgtcmVzb2x1dGlvbi4KKworICAgICAgICAqIGNzcy9N
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVSZXNvbHV0
aW9uKTogQWRkIG1ldGhvZHMgZm9yIGNvbXBhcmluZyByZXNvbHV0aW9ucy4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6bWluX3Jlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6Om1heF9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCk6CisKKyAgICAgICAg
ICAgIEltcGxlbWVudCB0aGUgcmVzb2x1dGlvbiBtZXRob2QgZXZhbHVhdGlvbi4KKworICAgICAg
ICAqIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRo
VmFsaWRQb3NpdGl2ZURlbnNpdHkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpmZWF0dXJlV2l0aG91dFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlF
eHA6Ok1lZGlhUXVlcnlFeHApOgorCisgICAgICAgICAgICBIb29rIHVwIHJlc29sdXRpb24gd2l0
aCB0aGUgcmlnaHQgcHJlLWNoZWNrcy4KKworICAgICAgICogcGFnZS9TY3JlZW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyZWVuOjpob3Jpem9udGFsRFBJKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmVlbjo6dmVydGljYWxEUEkpOgorCisgICAgICAgICAgICBDaGVjayB3aGV0aGVyIGFuIG92
ZXJyaWRlIGV4aXN0cywgYW5kIGlmIHNvLCB1c2VzIGl0LgorCisgICAgICAgICogcGFnZS9TZXR0
aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0UmVzb2x1dGlvbk92ZXJy
aWRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAg
ICAgICAgKFNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpyZXNvbHV0aW9u
T3ZlcnJpZGUpOgorCisgICAgICAgICAgICBBZGQgYSByZXNvbHV0aW9uIG92ZXJyaWRlIHRvIHNl
dHRpbmdzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVycmlkZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAg
ICAgICAgKEJhY2t1cCk6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCisgICAgICAgICAgICBBZGQgYSBuZXcgc2V0
UmVzb2x1dGlvbk92ZXJyaWRlIG1ldGhvZCB0byBpbnRlcm5hbHMuc2V0dGluZ3MuCisKIDIwMTIt
MTAtMTYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IE5NSSBpbnN0cnVtZW50IEltYWdlRGVjb2Rlci4gSXQgb3ducyBhIGJ1
ZmZlciB0aGF0IGNvdWxkIGJlIHF1aXRlIGJpZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5Y2M0NWNkMmEyOThh
M2JhNTkwMTdjZGQ1NzE1MTM2M2VjYjNiZjZiLi4zMzhhZmMyMzMzNTdjMzBkODBiMTBmOTVjMTc5
YTgzMjI5YmQ4OTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMTYgIEtl
bm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciByZXNvbHV0aW9uIG1lZGlhIHF1ZXJ5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTA3NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2luL1dlYktpdDIuZGVmOgorCisgICAg
ICAgICAgICBBZGQgZXhwb3J0cyBmb3IgdGhlIFdlYkNvcmU6OlNldHRpbmdzIHNldHRpbmcuCisK
IDIwMTItMTAtMTcgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5j
b20+CiAKICAgICAgICAgW1dLMl1bRUZMXSBBZGQgdW5pdCB0ZXN0cyBmb3IgU3BlbGxpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KaW5kZXggZThlZjI0MzFkNjI4NmQ1NTY4ZDczMGQ4OGUwMjEyYmQwY2Vl
ODk4Zi4uM2UxN2I1ZDAzOGVhZTIxOWFjNmM2NDEyMTEyNTc0MzQxNDVjZGZjNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KQEAgLTk2MCw2ICs5NjAsNyBAQCBfX1pON1dlYkNvcmU4U2V0dGluZ3M0MHNl
dFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JFTlNfMzdUZXh0RGlyZWN0aQog
X19aTjdXZWJDb3JlOFNldHRpbmdzNDFzZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlv
blF1aXJrc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3M0NHNldExvYWRzU2l0ZUljb25zSWdub3Jp
bmdJbWFnZUxvYWRpbmdTZXR0aW5nRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczQ1c2V0U2hvdWxk
UmVzcGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzRWIKK19fWk43V2ViQ29yZThTZXR0
aW5nczIxc2V0UmVzb2x1dGlvbk92ZXJyaWRlRVJLTlNfN0ludFNpemVFCiBfX1pON1dlYkNvcmU4
YmxhbmtVUkxFdgogX19aTjdXZWJDb3JlOG1ha2VSR0JBRWlpaWkKIF9fWk43V2ViQ29yZThvcGVu
RmlsZUVSS04zV1RGNlN0cmluZ0VOU18xMkZpbGVPcGVuTW9kZUUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmgKaW5kZXggYWEyZGJlYWMzMmRkYjM4NzdiMWRiNWVmYmQwYWFlZTc3
MTJkNjg2Ni4uNDFjOWMzYWYzODQ1ZDg4NGUyYTVlMmRkNTc3OWNlZjUzMmZiYTkwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKQEAgLTE4MSw2ICsxODEsMTAgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNDYWxjdWxhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVV
bml0VHlwZSA9PSBDU1NfQ0FMQzsgfQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdp
dGhOdW1iZXIoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVS
Q0VOVEFHRV9XSVRIX05VTUJFUjsgfQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdp
dGhMZW5ndGgoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVS
Q0VOVEFHRV9XSVRIX0xFTkdUSDsgfQorICAgIGJvb2wgaXNEZW5zaXR5UGVySW5jaCgpIGNvbnN0
IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBJOyB9CisgICAgYm9vbCBpc0RlbnNp
dHlQZXJQaXhlbCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBQWDsg
fQorICAgIGJvb2wgaXNEZW5zaXR5UGVyQ2VudGltZXRlcigpIGNvbnN0IHsgcmV0dXJuIHByaW1p
dGl2ZVR5cGUoKSA9PSBDU1NfRFBDTTsgfQorCiAjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCiAg
ICAgYm9vbCBpc1ZhcmlhYmxlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9
PSBDU1NfVkFSSUFCTEVfTkFNRTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1
cmVOYW1lcy5oCmluZGV4IGIwODQzOWU0YTAxODM0OTIyZmRhMDBlOGFkOTdlZmYyMGZiZWMwZmMu
LjRjZWMyNTQ1ZjU4NTNjNGVhOWRmYWVmNWYxNjU3ODA1ZWQ2OWQzYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyhtYXhfaGVpZ2h0LCAibWF4LWhlaWdodCIpIFwKICAgICBtYWNybyht
YXhfbW9ub2Nocm9tZSwgIm1heC1tb25vY2hyb21lIikgXAogICAgIG1hY3JvKG1heF93aWR0aCwg
Im1heC13aWR0aCIpIFwKKyAgICBtYWNybyhtYXhfcmVzb2x1dGlvbiwgIi13ZWJraXQtbWF4LXJl
c29sdXRpb24iKSBcCiAgICAgbWFjcm8obWluX2NvbG9yLCAibWluLWNvbG9yIikgXAogICAgIG1h
Y3JvKG1pbl9hc3BlY3RfcmF0aW8sICJtaW4tYXNwZWN0LXJhdGlvIikgXAogICAgIG1hY3JvKG1p
bl9kZXZpY2VfYXNwZWN0X3JhdGlvLCAibWluLWRldmljZS1hc3BlY3QtcmF0aW8iKSBcCkBAIC01
Niw3ICs1Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhtaW5faGVpZ2h0LCAi
bWluLWhlaWdodCIpIFwKICAgICBtYWNybyhtaW5fbW9ub2Nocm9tZSwgIm1pbi1tb25vY2hyb21l
IikgXAogICAgIG1hY3JvKG1pbl93aWR0aCwgIm1pbi13aWR0aCIpIFwKKyAgICBtYWNybyhtaW5f
cmVzb2x1dGlvbiwgIi13ZWJraXQtbWluLXJlc29sdXRpb24iKSBcCiAgICAgbWFjcm8ocG9pbnRl
ciwgInBvaW50ZXIiKSBcCisgICAgbWFjcm8ocmVzb2x1dGlvbiwgIi13ZWJraXQtcmVzb2x1dGlv
biIpIFwKICAgICBtYWNybyh0cmFuc2Zvcm1fMmQsICItd2Via2l0LXRyYW5zZm9ybS0yZCIpIFwK
ICAgICBtYWNybyh0cmFuc2Zvcm1fM2QsICItd2Via2l0LXRyYW5zZm9ybS0zZCIpIFwKICAgICBt
YWNybyh0cmFuc2l0aW9uLCAiLXdlYmtpdC10cmFuc2l0aW9uIikgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IGRhYTQ5MGI4YmRjODQ2ODdjNzQ5YTli
NTEwZTQ0YzM5YzY5MTA4ZTUuLmVlZWZlMDZlZjQ5YWY2YzdlMjRiNDkxYWY3MzFkYWFkMzQ3OGMw
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTM0
LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNT
U1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJE
T01XaW5kb3cuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtNDgsNiArNDksNyBAQAogI2luY2x1ZGUgIlJlbmRl
clZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CisjaW5jbHVkZSAiU2NyZWVuLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKQEAgLTY2LDE1ICs2OCwxMyBAQCB0eXBlZGVmIEhhc2hNYXA8
QXRvbWljU3RyaW5nSW1wbCosIEV2YWxGdW5jPiBGdW5jdGlvbk1hcDsKIHN0YXRpYyBGdW5jdGlv
bk1hcCogZ0Z1bmN0aW9uTWFwOwogCiAvKgotICogRklYTUU6IGZvbGxvd2luZyBtZWRpYSBmZWF0
dXJlcyBhcmUgbm90IGltcGxlbWVudGVkOiBjb2xvcl9pbmRleCwgc2NhbiwgcmVzb2x1dGlvbgor
ICogRklYTUU6IGZvbGxvd2luZyBtZWRpYSBmZWF0dXJlcyBhcmUgbm90IGltcGxlbWVudGVkOiBj
b2xvcl9pbmRleCwgc2NhbgogICoKICAqIGNvbG9yX2luZGV4LCBtaW4tY29sb3ItaW5kZXgsIG1h
eF9jb2xvcl9pbmRleDogSXQncyB1bmtub3duIGhvdyB0byByZXRyaWV2ZQogICogdGhlIGluZm9y
bWF0aW9uIGlmIHRoZSBkaXNwbGF5IG1vZGUgaXMgaW5kZXhlZAogICogc2NhbjogVGhlICJzY2Fu
IiBtZWRpYSBmZWF0dXJlIGRlc2NyaWJlcyB0aGUgc2Nhbm5pbmcgcHJvY2VzcyBvZgogICogdHYg
b3V0cHV0IGRldmljZXMuIEl0J3MgdW5rbm93biBob3cgdG8gcmV0cmlldmUgdGhpcyBpbmZvcm1h
dGlvbiBmcm9tCiAgKiB0aGUgcGxhdGZvcm0KLSAqIHJlc29sdXRpb24sIG1pbi1yZXNvbHV0aW9u
LCBtYXgtcmVzb2x1dGlvbjogY3NzIHBhcnNlciBkb2Vzbid0IHNlZW0gdG8KLSAqIHN1cHBvcnQg
Q1NTX0RJTUVOU0lPTgogICovCiAKIE1lZGlhUXVlcnlFdmFsdWF0b3I6Ok1lZGlhUXVlcnlFdmFs
dWF0b3IoYm9vbCBtZWRpYUZlYXR1cmVSZXN1bHQpCkBAIC0xOTcsNiArMTk3LDIzIEBAIHN0YXRp
YyBib29sIGNvbXBhcmVBc3BlY3RSYXRpb1ZhbHVlKENTU1ZhbHVlKiB2YWx1ZSwgaW50IHdpZHRo
LCBpbnQgaGVpZ2h0LCBNZWRpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgRU5BQkxFKENT
U19JTUFHRV9SRVNPTFVUSU9OKQorc3RhdGljIGJvb2wgY29tcGFyZVJlc29sdXRpb24odW5zaWdu
ZWQgbWluLCB1bnNpZ25lZCBtYXgsIHVuc2lnbmVkIHZhbHVlLCBNZWRpYUZlYXR1cmVQcmVmaXgg
b3ApCit7CisgICAgc3dpdGNoIChvcCkgeworICAgIGNhc2UgTm9QcmVmaXg6CisgICAgICAgIC8v
IEEgJ3Jlc29sdXRpb24nICh3aXRob3V0IGEgIm1pbi0iIG9yICJtYXgtIiBwcmVmaXgpIHF1ZXJ5
CisgICAgICAgIC8vIG5ldmVyIG1hdGNoZXMgYSBkZXZpY2Ugd2l0aCBub24tc3F1YXJlIHBpeGVs
cy4KKyAgICAgICAgcmV0dXJuIG1pbiA9PSBtYXg7CisgICAgY2FzZSBNaW5QcmVmaXg6CisgICAg
ICAgIHJldHVybiBtaW4gPj0gdmFsdWU7CisgICAgY2FzZSBNYXhQcmVmaXg6CisgICAgICAgIHJl
dHVybiBtYXggPD0gdmFsdWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgor
CiBzdGF0aWMgYm9vbCBudW1iZXJWYWx1ZShDU1NWYWx1ZSogdmFsdWUsIGZsb2F0JiByZXN1bHQp
CiB7CiAgICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkKQEAgLTI3OCw2ICsyOTUsNjAg
QEAgc3RhdGljIGJvb2wgZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1
ZSAqdmFsdWUsIFJlbmRlclN0eWxlKiwgRnIKICAgICByZXR1cm4gZnJhbWUtPnBhZ2UoKS0+ZGV2
aWNlU2NhbGVGYWN0b3IoKSAhPSAwOwogfQogCitzdGF0aWMgYm9vbCByZXNvbHV0aW9uTWVkaWFG
ZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBN
ZWRpYUZlYXR1cmVQcmVmaXggb3ApCit7CisjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9O
KQorICAgIHVuc2lnbmVkIGhvcmlEUEkgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkt
PnNjcmVlbigpLT5ob3Jpem9udGFsRFBJKCk7CisgICAgdW5zaWduZWQgdmVydERQSSA9IGZyYW1l
LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+c2NyZWVuKCktPnZlcnRpY2FsRFBJKCk7CisKKyAg
ICB1bnNpZ25lZCBtaW5EUEkgPSBzdGQ6Om1pbihob3JpRFBJLCB2ZXJ0RFBJKTsKKyAgICB1bnNp
Z25lZCBtYXhEUEkgPSBzdGQ6Om1heChob3JpRFBJLCB2ZXJ0RFBJKTsKKworICAgIC8vIEFjY29y
ZGluZyB0byBzcGVjLCAocmVzb2x1dGlvbikgd2lsbCBldmFsdWF0ZSB0byB0cnVlIGlmIChyZXNv
bHV0aW9uOngpCisgICAgLy8gd2lsbCBldmFsdWF0ZSB0byB0cnVlIGZvciBhIHZhbHVlIHggb3Ro
ZXIgdGhhbiB6ZXJvIG9yIHplcm8gZm9sbG93ZWQgYnkKKyAgICAvLyBhIHZhbGlkIHVuaXQgaWRl
bnRpZmllciAoaS5lLiwgb3RoZXIgdGhhbiAwLCAwZHBpLCAwZHBjbSwgb3IgMGRwcHguKS4KKyAg
ICAvLworICAgIC8vIFRoaXMgaXMgYWN0dWFsbHkgYWx3YXlzIHRoZSBjYXNlIHdpdGggdGhlIGRw
cHgsIHdoaWNoIHdlIGlnbm9yZSBhcyBpdCBpcworICAgIC8vIGEgc3BlY2lhbC1jYXNlIGluIHRo
ZSBzZW5zZSBpdCBjYW4gYmUgb3V0IG9mIHN5bmMgd2l0aCBkcGkgYW5kIGRwY20uIEZvcgorICAg
IC8vIGluc3RhbmNlLCBib3RoIGEgZGV2aWNlIHdpdGggOTZkcGkgYW5kIDE2MGRwaSBjYW4gaGF2
ZSBhIGRwcHggb2YgMS4KKyAgICAvLworICAgIC8vIFRoaXMgbGVhdmVzIHRoZSBjYXNlIG9mIHNx
dWFyZWQgcGl4ZWxzLgorICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgQVNTRVJUKG9wID09IE5v
UHJlZml4KTsKKyAgICAgICAgcmV0dXJuIG1pbkRQSSA9PSBtYXhEUEk7CisgICAgfQorCisgICAg
aWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcmF3VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZSo+KHZhbHVlKTsKKyAgICBpZiAocmF3VmFsdWUtPmlzRGVuc2l0eVBlclBpeGVsKCkp
IHsKKyAgICAgICAgZmxvYXQgYWN0dWFsRGVuc2l0eSA9IGZyYW1lLT5wYWdlKCktPmRldmljZVNj
YWxlRmFjdG9yKCk7CisgICAgICAgIGZsb2F0IHRlc3RlZERlbnNpdHkgPSByYXdWYWx1ZS0+Z2V0
RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQUFgpOworICAgICAgICByZXR1cm4g
Y29tcGFyZVZhbHVlKGFjdHVhbERlbnNpdHksIHRlc3RlZERlbnNpdHksIG9wKTsKKyAgICB9CisK
KyAgICBpZiAocmF3VmFsdWUtPmlzRGVuc2l0eVBlckluY2goKSkgeworICAgICAgICB1bnNpZ25l
ZCB0ZXN0ZWREZW5zaXR5ID0gcmF3VmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19EUEkpOworICAgICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24obWluRFBJLCBt
YXhEUEksIHRlc3RlZERlbnNpdHksIG9wKTsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBtaW5EUENN
ID0gZmxvb3IobWluRFBJIC8gMi41NCk7IC8vICgyLjU0IGNtL2luKQorICAgIHVuc2lnbmVkIG1h
eERQQ00gPSBmbG9vcihtYXhEUEkgLyAyLjU0KTsKKworICAgIGlmIChyYXdWYWx1ZS0+aXNEZW5z
aXR5UGVyQ2VudGltZXRlcigpKSB7CisgICAgICAgIHVuc2lnbmVkIHRlc3RlZERlbnNpdHkgPSBy
YXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQQ00pOworICAg
ICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24obWluRFBDTSwgbWF4RFBDTSwgdGVzdGVkRGVu
c2l0eSwgb3ApOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHZhbHVlKTsKKyAgICBV
TlVTRURfUEFSQU0oZnJhbWUpOworICAgIFVOVVNFRF9QQVJBTShvcCk7CisjZW5kaWYKKworICAg
IHJldHVybiBmYWxzZTsKK30KKwogc3RhdGljIGJvb2wgZ3JpZE1lZGlhRmVhdHVyZUV2YWwoQ1NT
VmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiwgTWVkaWFGZWF0dXJlUHJlZml4IG9w
KQogewogICAgIC8vIGlmIG91dHB1dCBkZXZpY2UgaXMgYml0bWFwLCBncmlkOiAwID09IHRydWUK
QEAgLTQ1Niw2ICs1MjcsMTYgQEAgc3RhdGljIGJvb2wgbWF4X2RldmljZV93aWR0aE1lZGlhRmVh
dHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUKICAgICByZXR1cm4g
ZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNYXhQcmVm
aXgpOwogfQogCitzdGF0aWMgYm9vbCBtaW5fcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NT
VmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0
dXJlUHJlZml4KQoreworICAgIHJldHVybiByZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCh2YWx1
ZSwgc3R5bGUsIGZyYW1lLCBNaW5QcmVmaXgpOworfQorCitzdGF0aWMgYm9vbCBtYXhfcmVzb2x1
dGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUs
IEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQoreworICAgIHJldHVybiByZXNvbHV0
aW9uTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNYXhQcmVmaXgpOworfQor
CiBzdGF0aWMgYm9vbCBhbmltYXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwg
UmVuZGVyU3R5bGUqLCBGcmFtZSosIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsKICAgICBpZiAo
dmFsdWUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcAppbmRleCAxYTA2Yjc5NjVm
Y2NiOThhMDkzNTY5NTY5NzU4YjIxZmM2ZTI5OTgxLi5lMGUyYjMxZWIxNGM0ODk4MmZkNGVkNGQw
MzI2OTUxMmZkOTI3Y2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV4cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwCkBAIC02
Nyw2ICs2NywxNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZl
TGVuZ2h0T3JOdW1iZXIoY29uc3QgQXRvbWljU3RyaW5nJiBtZQogICAgICAgICB8fCBtZWRpYUZl
YXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbl9kZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmU7
CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVEZW5zaXR5
KGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBjb25zdCBDU1NQYXJzZXJWYWx1ZSog
dmFsdWUpCit7CisgICAgaWYgKCh2YWx1ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X0RQUFggJiYgdmFsdWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUEkgJiYgdmFs
dWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUENNKSB8fCB2YWx1ZS0+ZlZhbHVl
IDwgMCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9
PSBNZWRpYUZlYXR1cmVOYW1lczo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZQorICAgICAgICB8fCBt
ZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heF9yZXNvbHV0aW9uTWVkaWFGZWF0
dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX3Jl
c29sdXRpb25NZWRpYUZlYXR1cmU7Cit9CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0
aFBvc2l0aXZlSW50ZWdlcihjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgY29uc3Qg
Q1NTUGFyc2VyVmFsdWUqIHZhbHVlKQogewogICAgIGlmICghdmFsdWUtPmlzSW50IHx8IHZhbHVl
LT5mVmFsdWUgPCAwKQpAQCAtMTE0LDYgKzEyNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0
dXJlV2l0aEFzcGVjdFJhdGlvKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlKQogCiBz
dGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhvdXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcm
IG1lZGlhRmVhdHVyZSkKIHsKKyAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IGFyZSBwcmVmaXhl
ZCBieSBtaW4vbWF4IGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgYSB2YWx1ZS4KICAgICByZXR1cm4g
bWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptb25vY2hyb21lTWVkaWFGZWF0dXJl
CiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6Y29sb3JNZWRp
YUZlYXR1cmUKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpn
cmlkTWVkaWFGZWF0dXJlCkBAIC0xMzEsNyArMTQyLDggQEAgc3RhdGljIGlubGluZSBib29sIGZl
YXR1cmVXaXRob3V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUpCiAgICAg
ICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6YW5pbWF0aW9uTWVkaWFG
ZWF0dXJlCiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dmll
d19tb2RlTWVkaWFGZWF0dXJlCiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1
cmVOYW1lczo6cG9pbnRlck1lZGlhRmVhdHVyZQotICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0g
TWVkaWFGZWF0dXJlTmFtZXM6OmRldmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZTsKKyAgICAg
ICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2VfcGl4ZWxfcmF0
aW9NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5h
bWVzOjpyZXNvbHV0aW9uTWVkaWFGZWF0dXJlOwogfQogCiBpbmxpbmUgTWVkaWFRdWVyeUV4cDo6
TWVkaWFRdWVyeUV4cChjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgQ1NTUGFyc2Vy
VmFsdWVMaXN0KiB2YWx1ZUxpc3QpCkBAIC0xNDgsNiArMTYwLDEwIEBAIGlubGluZSBNZWRpYVF1
ZXJ5RXhwOjpNZWRpYVF1ZXJ5RXhwKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBD
U1NQYXJzZXJWCiAgICAgICAgICAgICBpZiAoZmVhdHVyZVdpdGhDU1NWYWx1ZUlEKG1lZGlhRmVh
dHVyZSwgdmFsdWUpKQogICAgICAgICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1
ZTo6Y3JlYXRlSWRlbnRpZmllcih2YWx1ZS0+aWQpOwogCisgICAgICAgICAgICAvLyBNZWRpYSBm
ZWF0dXJlcyB0aGF0IG11c3QgaGF2ZSBub24tbmVnYXRpdmUgPGRlbnNpdHk+LCBpZS4gZHBweCwg
ZHBpIG9yIGRwY20uCisgICAgICAgICAgICBlbHNlIGlmIChmZWF0dXJlV2l0aFZhbGlkUG9zaXRp
dmVEZW5zaXR5KG1lZGlhRmVhdHVyZSwgdmFsdWUpKQorICAgICAgICAgICAgICAgIG1fdmFsdWUg
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5mVmFsdWUsIChDU1NQcmltaXRpdmVW
YWx1ZTo6VW5pdFR5cGVzKSB2YWx1ZS0+dW5pdCk7CisKICAgICAgICAgICAgIC8vIE1lZGlhIGZl
YXR1cmVzIHRoYXQgbXVzdCBoYXZlIG5vbi1uZWdhdGl2ZSA8bGVuZ2h0PiBvciBudW1iZXIgdmFs
dWUuCiAgICAgICAgICAgICBlbHNlIGlmIChmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVMZW5naHRP
ck51bWJlcihtZWRpYUZlYXR1cmUsIHZhbHVlKSkKICAgICAgICAgICAgICAgICBtX3ZhbHVlID0g
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZS0+ZlZhbHVlLCAoQ1NTUHJpbWl0aXZlVmFs
dWU6OlVuaXRUeXBlcykgdmFsdWUtPnVuaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TY3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCmluZGV4IGUx
ZTFkMTE3Mzg2ZjYyMmVlM2MxOTNiM2U1MDIyYzg4M2E4YzI1YjEuLjQwYTM4OGVkMjNhNGE1ODgz
ZTAxOGRhMTVjMWY1YTgzYTQ5MjRjYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQ4LDYgKzQ5LDExIEBAIHVuc2lnbmVkIFNjcmVlbjo6aG9yaXpvbnRhbERQSSgpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4gMDsKKworICAgIEludFNpemUgb3Zl
cnJpZGUgPSBtX2ZyYW1lLT5wYWdlKCktPnNldHRpbmdzKCktPnJlc29sdXRpb25PdmVycmlkZSgp
OworICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gb3ZlcnJpZGUu
d2lkdGgoKTsKKwogICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2NyZWVuSG9yaXpv
bnRhbERQSShtX2ZyYW1lLT52aWV3KCkpKTsKIH0KIApAQCAtNTUsNiArNjEsMTEgQEAgdW5zaWdu
ZWQgU2NyZWVuOjp2ZXJ0aWNhbERQSSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAg
ICAgICByZXR1cm4gMDsKKworICAgIEludFNpemUgb3ZlcnJpZGUgPSBtX2ZyYW1lLT5wYWdlKCkt
PnNldHRpbmdzKCktPnJlc29sdXRpb25PdmVycmlkZSgpOworICAgIGlmICghb3ZlcnJpZGUuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gb3ZlcnJpZGUuaGVpZ2h0KCk7CisKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcmVlblZlcnRpY2FsRFBJKG1fZnJhbWUtPnZpZXcoKSkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDk4NzZhZjVjNzZkMjI1NWNlYjJm
ODgwYjg0OTUxOWQyNmMzZDNlZDQuLjc0YjkyZjlmOWMzOTcxMTU5OTQ0MmM3MTQ0YjlkYWViZTVk
Nzc3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC00NTksNiArNDU5LDE1IEBAIHZv
aWQgU2V0dGluZ3M6OnNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKGZsb2F0IGZvbnRT
Y2FsZUZhY3RvcikKIAogI2VuZGlmCiAKK3ZvaWQgU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVy
cmlkZShjb25zdCBJbnRTaXplJiBkZW5zaXR5UGVySW5jaE92ZXJyaWRlKQoreworICAgIGlmICht
X3Jlc29sdXRpb25EZW5zaXR5UGVySW5jaE92ZXJyaWRlID09IGRlbnNpdHlQZXJJbmNoT3ZlcnJp
ZGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3Zl
cnJpZGUgPSBkZW5zaXR5UGVySW5jaE92ZXJyaWRlOworICAgIG1fcGFnZS0+c2V0TmVlZHNSZWNh
bGNTdHlsZUluQWxsRnJhbWVzKCk7Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldExvYWRzSW1hZ2Vz
QXV0b21hdGljYWxseShib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSkKIHsKICAgICBtX2xv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSA9IGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaAppbmRleCA4OTc4NWQxMmY2ZTI5MTY2ZGFjM2JhZmNiZWY3MGIwNWRlZmZi
NDZhLi5jNzFmMzJlODYxZDcxZDdjNjI4NDM2MDlhY2Y0ZTM1NTJiYTQzMDMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJFZGl0aW5nQmVoYXZp
b3JUeXBlcy5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCisjaW5jbHVkZSAiSW50
U2l6ZS5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgIlRpbWVyLmgiCkBAIC0zNywxMCArMzgsNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0
L0F0b21pY1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CiAK
LSNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQotI2luY2x1ZGUgIkludFNpemUuaCIKLSNlbmRp
ZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBQYWdlOwpAQCAtMTIzLDYgKzEy
MCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IEludFNpemUmIHRleHRB
dXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0QXV0b3Np
emluZ1dpbmRvd1NpemVPdmVycmlkZTsgfQogI2VuZGlmCiAKKyAgICAgICAgLy8gT25seSBzZXQg
YnkgTGF5b3V0IFRlc3RzLgorICAgICAgICB2b2lkIHNldFJlc29sdXRpb25PdmVycmlkZShjb25z
dCBJbnRTaXplJik7CisgICAgICAgIGNvbnN0IEludFNpemUmIHJlc29sdXRpb25PdmVycmlkZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJpZGU7IH0KKwog
ICAgICAgICAvLyBVbmxpa2UgYXJlSW1hZ2VzRW5hYmxlZCwgdGhpcyBvbmx5IHN1cHByZXNzZXMg
dGhlIG5ldHdvcmsgbG9hZCBvZgogICAgICAgICAvLyB0aGUgaW1hZ2UgVVJMLiAgQSBjYWNoZWQg
aW1hZ2Ugd2lsbCBzdGlsbCBiZSByZW5kZXJlZCBpZiByZXF1ZXN0ZWQuCiAgICAgICAgIHZvaWQg
c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJvb2wpOwpAQCAtNjg2LDYgKzY4Nyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgSW50U2l6ZSBtX3RleHRBdXRvc2l6aW5nV2luZG93
U2l6ZU92ZXJyaWRlOwogICAgICAgICBib29sIG1fdGV4dEF1dG9zaXppbmdFbmFibGVkIDogMTsK
ICNlbmRpZgorICAgICAgICBJbnRTaXplIG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJp
ZGU7CiAgICAgICAgIGJvb2wgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7CiAgICAg
ICAgIGJvb2wgbV9pc0phdmFFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJs
ZWRGb3JMb2NhbEZpbGVzIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwCmluZGV4IDhkOGYwY2I0MDkwMDM2NWU2MGE0Mzg0ZWNiMDk3NDA1NDc3MTVhZjku
LmFiNDViMmE3ZGU4MzVhZmIzZjEyYTE1YjJhNGZkZmQ4NGNhN2NhNWMgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtOTcsNiArOTcsOCBAQCBJbnRl
cm5hbFNldHRpbmdzOjpCYWNrdXA6OkJhY2t1cChQYWdlKiBwYWdlLCBTZXR0aW5ncyogc2V0dGlu
Z3MpCiAgICAgLCBtX29yaWdpbmFsVGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoc2V0
dGluZ3MtPnRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKCkpCiAgICAgLCBtX29yaWdp
bmFsVGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3Ioc2V0dGluZ3MtPnRleHRBdXRvc2l6aW5n
Rm9udFNjYWxlRmFjdG9yKCkpCiAjZW5kaWYKKyAgICAsIG1fb3JpZ2luYWxEZXZpY2VTY2FsZUZh
Y3RvcihwYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpKQorICAgICwgbV9vcmlnaW5hbFJlc29sdXRp
b25PdmVycmlkZShzZXR0aW5ncy0+cmVzb2x1dGlvbk92ZXJyaWRlKCkpCiAjaWYgRU5BQkxFKERJ
QUxPR19FTEVNRU5UKQogICAgICwgbV9vcmlnaW5hbERpYWxvZ0VsZW1lbnRFbmFibGVkKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OmRpYWxvZ0VsZW1lbnRFbmFibGVkKCkpCiAjZW5kaWYKQEAgLTEz
Niw2ICsxMzgsOCBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKFBh
Z2UqIHBhZ2UsIFNldHRpbmdzKiBzZXR0aW5ncykKICAgICBzZXR0aW5ncy0+c2V0VGV4dEF1dG9z
aXppbmdXaW5kb3dTaXplT3ZlcnJpZGUobV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nV2luZG93U2l6
ZU92ZXJyaWRlKTsKICAgICBzZXR0aW5ncy0+c2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0
b3IobV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKTsKICNlbmRpZgorICAg
IHBhZ2UtPnNldERldmljZVNjYWxlRmFjdG9yKG1fb3JpZ2luYWxEZXZpY2VTY2FsZUZhY3Rvcik7
CisgICAgc2V0dGluZ3MtPnNldFJlc29sdXRpb25PdmVycmlkZShtX29yaWdpbmFsUmVzb2x1dGlv
bk92ZXJyaWRlKTsKICNpZiBFTkFCTEUoRElBTE9HX0VMRU1FTlQpCiAgICAgUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2V0RGlhbG9nRWxlbWVudEVuYWJsZWQobV9vcmlnaW5hbERpYWxvZ0VsZW1l
bnRFbmFibGVkKTsKICNlbmRpZgpAQCAtNDEzLDYgKzQxNywxNCBAQCB2b2lkIEludGVybmFsU2V0
dGluZ3M6OnNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKGludCB3aWR0aCwgaW50
IGhlaWdodAogI2VuZGlmCiB9CiAKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0UmVzb2x1dGlv
bk92ZXJyaWRlKGZsb2F0IGRlbnNpdHlQZXJQaXhlbCwgaW50IGRlbnNpdHlQZXJJbmNoSG9yaXpv
bnRhbGx5LCBpbnQgZGVuc2l0eVBlckluY2hWZXJ0aWNhbGx5LCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOworICAgIC8vIEFuIGVt
cHR5IHNpemUgcmVzZXRzIHRoZSBvdmVycmlkZS4KKyAgICBzZXR0aW5ncygpLT5zZXRSZXNvbHV0
aW9uT3ZlcnJpZGUoSW50U2l6ZShkZW5zaXR5UGVySW5jaEhvcml6b250YWxseSwgZGVuc2l0eVBl
ckluY2hWZXJ0aWNhbGx5KSk7CisgICAgcGFnZSgpLT5zZXREZXZpY2VTY2FsZUZhY3RvcihkZW5z
aXR5UGVyUGl4ZWwpOworfQorCiB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFRleHRBdXRvc2l6
aW5nRm9udFNjYWxlRmFjdG9yKGZsb2F0IGZvbnRTY2FsZUZhY3RvciwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggNzhmMzZlMDE3NjFjZWJkYzMxZDg5NDIxOWQzMjBi
NjAyYTE2OWI0Zi4uMGYwYmI1OWMzYWVhOGRhZWJhMDkwNjc5ZGI3NjEyNGExZGU3YWVjMCAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTI3LDE1ICsyNywx
MiBAQAogI2RlZmluZSBJbnRlcm5hbFNldHRpbmdzX2gKIAogI2luY2x1ZGUgIkVkaXRpbmdCZWhh
dmlvclR5cGVzLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlJlZkNvdW50ZWRT
dXBwbGVtZW50LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgRU5B
QkxFKFRFWFRfQVVUT1NJWklORykKLSNpbmNsdWRlICJJbnRTaXplLmgiCi0jZW5kaWYKLQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwpAQCAtNzksNiAr
NzYsOCBAQCBwdWJsaWM6CiAgICAgICAgIEludFNpemUgbV9vcmlnaW5hbFRleHRBdXRvc2l6aW5n
V2luZG93U2l6ZU92ZXJyaWRlOwogICAgICAgICBmbG9hdCBtX29yaWdpbmFsVGV4dEF1dG9zaXpp
bmdGb250U2NhbGVGYWN0b3I7CiAjZW5kaWYKKyAgICAgICAgZmxvYXQgbV9vcmlnaW5hbERldmlj
ZVNjYWxlRmFjdG9yOworICAgICAgICBJbnRTaXplIG1fb3JpZ2luYWxSZXNvbHV0aW9uT3ZlcnJp
ZGU7CiAjaWYgRU5BQkxFKERJQUxPR19FTEVNRU5UKQogICAgICAgICBib29sIG1fb3JpZ2luYWxE
aWFsb2dFbGVtZW50RW5hYmxlZDsKICNlbmRpZgpAQCAtMTI3LDYgKzEyNiw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKGlu
dCB3aWR0aCwgaW50IGhlaWdodCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0VGV4dEF1
dG9zaXppbmdGb250U2NhbGVGYWN0b3IoZmxvYXQgZm9udFNjYWxlRmFjdG9yLCBFeGNlcHRpb25D
b2RlJik7CisgICAgdm9pZCBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoZmxvYXQgZGVuc2l0eVBlclBp
eGVsLCBpbnQgZGVuc2l0eVBlckluY2hIb3Jpem9udGFsbHksIGludCBkZW5zaXR5UGVySW5jaFZl
cnRpY2FsbHksIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1h
dG9yKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIGJvb2wgc2Nyb2xsQW5pbWF0
b3JFbmFibGVkKEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldENTU0V4Y2x1c2lvbnNFbmFi
bGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggZjM0NjRiZTlhNGVjNjQ1NjRiNDM0NTA5Nzg3
ZGY4NDdlM2VlODFjZS4uMTdmNzFhYTg5ZDBkNjQxYmEwMDJhYzFiMGM3MWRkZDQ1ZWZhNjZhZCAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC01Niw2
ICs1Niw3IEBACiAgICAgdm9pZCBzZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoaW4gYm9vbGVhbiBl
bmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5n
V2luZG93U2l6ZU92ZXJyaWRlKGluIGxvbmcgd2lkdGgsIGluIGxvbmcgaGVpZ2h0KSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9y
KGluIGZsb2F0IGZvbnRTY2FsZUZhY3RvcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgdm9p
ZCBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoaW4gZmxvYXQgZGVuc2l0eVBlclBpeGVsLCBpbiBsb25n
IGRlbnNpdHlQZXJJbmNoSG9yaXpvbnRhbGx5LCBpbiBsb25nIGRlbnNpdHlQZXJJbmNoVmVydGlj
YWxseSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRFbmFibGVTY3JvbGxBbmlt
YXRvcihpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIGJvb2xl
YW4gc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9p
ZCBzZXRDU1NFeGNsdXNpb25zRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01F
eGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCmluZGV4IDE5NmJiZjA1OTViM2IwNWI3ZTQx
MzFiZGU5YjczODViMTQ0MDJmYWIuLmIxZDI2YjhkZGIwYzNiYzAxOTMwYzk5MGM5OThmYzI3N2U1
MzZjMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTI0Miw2ICsyNDIsNyBAQCBFWFBPUlRT
CiAgICAgICAgID9zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3lAU2V0dGluZ3NAV2ViQ29yZUBAUUFF
WFc0U3RvcmFnZUJsb2NraW5nUG9saWN5QFNlY3VyaXR5T3JpZ2luQDJAQFoKICAgICAgICAgP3Nl
dFN1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUFFWEFCVlN0cmluZ0BX
VEZAQEBaCiAgICAgICAgID9zZXRFZGl0aW5nVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJDb3Jl
QEBRQUVYQUJWU3RyaW5nQFdURkBAQFoKKyAgICAgICAgP3NldFJlc29sdXRpb25PdmVycmlkZUBT
ZXR0aW5nc0BXZWJDb3JlQEBRQUVYQUJWSW50U2l6ZUAyQEBaCiAgICAgICAgID9zZXR0aW5nc0BE
b2N1bWVudEBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAgID9zZXR0aW5nc0BG
cmFtZUBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAgID9zZXRGaXhlZEVsZW1l
bnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lQFNldHRpbmdzQFdlYkNvcmVAQFFBRVhfTkBaCmRpZmYg
LS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90b29s
cy9zeW1ib2xzLmZpbHRlcgppbmRleCBhZWQ1NGFmMjFhYzhjODg0YmRlZTIyNGU4OWJlMmU2Y2E4
NDVhZmRmLi4zMmVmZTVhOWRlZGYwYTIxODdmZjkxOGY1YmQwYjQ4OTRhMjI0NWZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRvdG9v
bHMvc3ltYm9scy5maWx0ZXIKQEAgLTE3NSw2ICsxNzUsNyBAQCBfWk43V2ViQ29yZThTZXR0aW5n
czI0c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkRWI7CiBfWk43V2ViQ29yZThTZXR0aW5nczI0c2V0
VXNlc092ZXJsYXlTY3JvbGxiYXJzRWI7CiBfWk43V2ViQ29yZThTZXR0aW5nczI0c2V0U3RvcmFn
ZUJsb2NraW5nUG9saWN5RU5TXzE0U2VjdXJpdHlPcmlnaW4yMVN0b3JhZ2VCbG9ja2luZ1BvbGlj
eUU7CiBfWk43V2ViQ29yZThTZXR0aW5nczM3c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZl
VG9GcmFtZUViOworX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFJlc29sdXRpb25PdmVycmlkZUVS
S05TXzdJbnRTaXplRTsKIF9aTjdXZWJDb3JlOUZyYW1lVmlldzE3cGFpbnRDb250cm9sVGludHNF
djsKIF9aTjdXZWJDb3JlOUZyYW1lVmlldzE5c2Nyb2xsRWxlbWVudFRvUmVjdEVQTlNfN0VsZW1l
bnRFUktOU183SW50UmVjdEU7CiBfWk43V2ViQ29yZTIyUnVudGltZUVuYWJsZWRGZWF0dXJlczMx
aXNNdWx0aXBsZVNoYWRvd1N1YnRyZWVzRW5hYmxlZEU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTliNmU2NGJhNjkwZDQ0
MmM3Yjg4ODNkNDQ5Y2NkYjJlMTJjNGZlNy4uNjM4NjJlZTZkNWY3MWExYzgxNTI5NTc3YTE1M2E0
ZTE1OGQ0YzAyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTEwLTE1ICBLZW5uZXRoIFJv
aGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IChyZXNvbHV0aW9uOiB4KSBtZWRpYSBxdWVyeSB0
byBlbnN1cmUgY29tcGxpYW5jZQorICAgICAgICB3aXRoIHNwZWMgcGx1cyBwcm9wb3NlZCBkcHB4
IHZhbHVlcy4KKworICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sOiBBZGRl
ZC4KKworICAgICAgICAqIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICAqIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlv
bnM6CisKKyAgICAgICAgICAgIFNraXAgdGhlIHRlc3QgYXMgdGhlIHBvcnRzIGRvIG5vdCBlbmFi
bGUgQ1NTIEltYWdlIFJlc29sdXRpb24uCisKIDIwMTItMTAtMTcgIE1pa2hhaWwgUG96ZG55YWtv
diAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl1bV1RSXSBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oKSBzaG91
bGQgcHJpbnQgb25seSBmaWxlbmFtZSBwYXJ0IG9mIGxvY2FsIFVSTHMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJl
MTZlOGI5MjhkNDk3MGRiOTY4NTE4MzBlOGUyMWM1NWQ3MThjYTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMzggQEAKK0NTUzMgbWVkaWEgcXVlcnkgdGVzdDogcmVzb2x1dGlvbiBxdWVyeSB3aXRo
IGRwcHguIFVzaW5nIHN0eWxlIGVsZW1lbnQsIEBtZWRpYSBjc3MgcnVsZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlv
bjogMS41ZHBweCknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1Mgd2luZG93LmRldmljZVBpeGVsUmF0
aW8gaXMgMS41CitQQVNTIGRldmljZVBpeGVsUmF0aW9Gcm9tU3R5bGUoKSBpcyAxLjUKK1BBU1Mg
bWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMmRwcHgpJykubWF0Y2hlcyBpcyB0cnVl
CitQQVNTIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIGlzIDIKK1BBU1MgZGV2aWNlUGl4ZWxSYXRp
b0Zyb21TdHlsZSgpIGlzIDIKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjog
MWRwcHgpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIGlz
IDEKK1BBU1MgZGV2aWNlUGl4ZWxSYXRpb0Zyb21TdHlsZSgpIGlzIDEKK1BBU1MgbWF0Y2hNZWRp
YSgnKC13ZWJraXQtcmVzb2x1dGlvbiknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRp
YSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBt
YXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMgaXMg
dHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMjU0ZHBpKScp
Lm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAx
MDBkcGNtKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4t
cmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgn
KC13ZWJraXQtbWF4LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNT
IG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb24pJykubWF0Y2hlcyBpcyBmYWxzZQorUEFT
UyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyBpcyBm
YWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0
Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjog
MjU0ZHBpKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4t
cmVzb2x1dGlvbjogMjYwZHBpKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgn
KC13ZWJraXQtbWF4LXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNT
IG1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0Y2hlcyBp
cyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDEwMGRwY20pJyku
bWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAx
MDJkcGNtKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWlu
LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEo
Jygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAxMDJkcGNtKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BB
U1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hl
cyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMTAy
ZHBjbSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21x
LXJlc29sdXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQzNTJmZjYyNDNlNjFjMTg2NmM4YTBjNjQ2NGRhZTNhNDk4Y2I1NmMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24u
aHRtbApAQCAtMCwwICsxLDg0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKwor
PGRpdiBpZD0iZGV0ZWN0b3IiPjwvZGl2PgorCis8c3R5bGU+CisgICAgI2RldGVjdG9yIHsgd2lk
dGg6IDEwcHg7IH0KKyAgICBAbWVkaWEgKC13ZWJraXQtcmVzb2x1dGlvbjogICAxZHBweCkgeyAj
ZGV0ZWN0b3IgeyB3aWR0aDogMTBweDsgfSB9CisgICAgQG1lZGlhICgtd2Via2l0LXJlc29sdXRp
b246IDEuNWRwcHgpIHsgI2RldGVjdG9yIHsgd2lkdGg6IDE1cHg7IH0gfQorICAgIEBtZWRpYSAo
LXdlYmtpdC1yZXNvbHV0aW9uOiAgIDJkcHB4KSB7ICNkZXRlY3RvciB7IHdpZHRoOiAyMHB4OyB9
IH0KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNTUzMgbWVkaWEgcXVl
cnkgdGVzdDogcmVzb2x1dGlvbiBxdWVyeSB3aXRoIGRwcHguIFVzaW5nIHN0eWxlIGVsZW1lbnQs
IEBtZWRpYSBjc3MgcnVsZS4iKQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
CisgICAgICAgIGZ1bmN0aW9uIGRldmljZVBpeGVsUmF0aW9Gcm9tU3R5bGUoKSB7CisgICAgICAg
ICAgICB2YXIgd2lkdGggPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJkZXRlY3RvciIpKS53aWR0aDsKKyAgICAgICAgICAgIHN3aXRjaCAod2lkdGgpIHsKKyAgICAg
ICAgICAgICAgICBjYXNlICIxMHB4IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7Cisg
ICAgICAgICAgICAgICAgY2FzZSAiMTVweCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAx
LjU7CisgICAgICAgICAgICAgICAgY2FzZSAiMjBweCI6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAyOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB1bmRlZmluZWQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgxLjUsIDk2LCA5Nik7
CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxLjVk
cHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgid2luZG93LmRldmlj
ZVBpeGVsUmF0aW8iLCAiMS41Iik7CisgICAgICAgIHNob3VsZEJlKCJkZXZpY2VQaXhlbFJhdGlv
RnJvbVN0eWxlKCkiLCAiMS41Iik7CisKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5n
cy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMiwgOTYsIDk2KTsKKyAgICAgICAgc2hvdWxkQmUoIm1h
dGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDJkcHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIp
OworICAgICAgICBzaG91bGRCZSgid2luZG93LmRldmljZVBpeGVsUmF0aW8iLCAiMiIpOworICAg
ICAgICBzaG91bGRCZSgiZGV2aWNlUGl4ZWxSYXRpb0Zyb21TdHlsZSgpIiwgIjIiKTsKKworICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgxLCA5
NiwgOTYpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlv
bjogMWRwcHgpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
ZGV2aWNlUGl4ZWxSYXRpbyIsICIxIik7CisgICAgICAgIHNob3VsZEJlKCJkZXZpY2VQaXhlbFJh
dGlvRnJvbVN0eWxlKCkiLCAiMSIpOworCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDEsIDI1NCwgMjU0KTsKKyAgICAgICAgc2hvdWxkQmUo
Im1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb24pJykubWF0Y2hlcyIsICJ0cnVlIik7Cisg
ICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNTRkcGkp
JykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdl
YmtpdC1taW4tcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAg
ICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDI1NGRwaSkn
KS5tYXRjaGVzIiwgInRydWUiKTsKKworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13
ZWJraXQtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAg
c2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAxMDBkcGNtKScp
Lm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJr
aXQtbWF4LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyIsICJ0cnVlIik7CisKKyAgICAg
ICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMSwgMjU0
LCAyNjApOworICAgICAgICAvLyBOb24tc3F1YXJlIG11c3QgbmV2ZXIgbWF0Y2guCisgICAgICAg
IHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uKScpLm1hdGNoZXMiLCAi
ZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRp
b246IDI1NGRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRj
aE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIp
OworCisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlv
bjogMjU0ZHBpKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hN
ZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDI2MGRwaSknKS5tYXRjaGVzIiwgImZhbHNl
Iik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlv
bjogMjU0ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNo
TWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0Y2hlcyIsICJ0cnVl
Iik7CisKKyAgICAgICAgLy8gTm9uLXNxdWFyZSBtdXN0IG5ldmVyIG1hdGNoLgorICAgICAgICBz
aG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRj
aGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1y
ZXNvbHV0aW9uOiAxMDJkcGNtKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKworICAgICAgICBzaG91
bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDEwMGRwY20pJykubWF0
Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1t
aW4tcmVzb2x1dGlvbjogMTAyZHBjbSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNo
b3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5t
YXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtp
dC1tYXgtcmVzb2x1dGlvbjogMTAyZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICB9Cis8
L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOGU3ZDYwZWU2NTEzNjE5ZTY2MTFmMzk0YTg3
N2Q4ZmU2NzVlOTE4ZC4uNWEzNDZhMjNmZjA0YmQ4YWUzNDA0ZGQyZmZhZWI4NzYxNWU4YTc4ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xNzEsNiArMTcxLDcgQEAgd2Via2l0Lm9yZy9iLzc1MTIzIHdlYmludGVudHMvaW50ZW50LXRh
Zy5odG1sCiAKICMgQ1NTIGltYWdlLXJlc29sdXRpb24gaXMgbm90IHlldCBlbmFibGVkLgogd2Vi
a2l0Lm9yZy9iLzg1MjYyIGZhc3QvY3NzL2ltYWdlLXJlc29sdXRpb24KK3dlYmtpdC5vcmcvYi84
NTI2MiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24gWyBTa2lwIF0KIAogIyBDU1MgaW1hZ2Utb3Jp
ZW50YXRpb24gaXMgbm90IHlldCBlbmFibGVkLgogd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3Nz
L2ltYWdlLW9yaWVudGF0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IDZhZDg5ZmUwYzUwODc1NzA4ODYyMWQ0ZDc3NWJjYzkxOGMyYWQyOGIuLmM4Y2Y2
OTFhNzUzMzk2YTViZDllODRkNTgwNGM2MzA0MThlNWI5ZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC05NjUsNiArOTY1LDcgQEAgd2Via2l0Lm9yZy9i
Lzg3OTA4IGVkaXRpbmcvdW5kb21hbmFnZXIKIAogIyBDU1MgaW1hZ2UtcmVzb2x1dGlvbiBpcyBu
b3QgeWV0IGVuYWJsZWQuCiB3ZWJraXQub3JnL2IvODUyNjIgZmFzdC9jc3MvaW1hZ2UtcmVzb2x1
dGlvbgord2Via2l0Lm9yZy9iLzg1MjYyIGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbiBbIFNraXAg
XQogCiAjIENTUyBpbWFnZS1vcmllbnRhdGlvbiBpcyBub3QgeWV0IGVuYWJsZWQuCiB3ZWJraXQu
b3JnL2IvODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KZGlmZiAtLWdpdCBhL0NoYW5n
ZUxvZyBiL0NoYW5nZUxvZwppbmRleCBkZDhkYzM4NzA4Y2MwNjJiZGM1MjY4YmU2MTAxYmE5OGUy
ZDhkN2IwLi45NzBlZTdmNzA0NDBiODRjMWQ0OWVjYmViOGFjNDNmNDc0YThhN2FlIDEwMDY0NAot
LS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAt
MTYgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisg
ICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXNvbHV0aW9uIG1lZGlhIHF1ZXJ5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTA3NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9z
eW1ib2xzLmZpbHRlcjoKKworICAgICAgICAgICAgRXhwb3J0IHRoZSBXZWJDb3JlOjpTZXR0aW5n
cyBzZXR0aW5nLgorCiAyMDEyLTEwLTE3ICBHcnplZ29yeiBDemFqa293c2tpICA8Zy5jemFqa293
c2tpQHNhbXN1bmcuY29tPiwgTWljaGFsIFJvaiA8bS5yb2pAc2FzbXVuZy5jb20+CiAKICAgICAg
ICAgW1dLMl1bRUZMXSBJbXBsZW1lbnRhdGlvbiBvZiBzcGVsbGNoZWNraW5nIGZlYXR1cmUuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169265</attachid>
            <date>2012-10-17 14:47:35 -0700</date>
            <delta_ts>2012-10-22 09:35:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99077-20121017234620.patch</filename>
            <type>text/plain</type>
            <size>33353</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxNTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWM1MzcwN2RhYjU1NDM4
MjEwNTk5ZmJlMDVkYmM1ZDc0MWVmZWE0Ny4uMTgxYzhmNWU0YzZhZDliNjA3OGQ2OWI3NGZhNjU2
NmY1ODExMjNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEyLTEwLTE1ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBt
ZWRpYSBxdWVyeSBmZWF0dXJlIHdpdGggLXdlYmtpdAorICAgICAgICBwcmVmaXggZHVlIHRvIHRo
ZSBzdXBwb3J0IG9mIHRoZSBwcm9wb3NlZCBkcHB4IHZhbHVlcy4KKworICAgICAgICBBZGQgaW5m
cmFzdHJ1Y3R1cmUgdG8gbWFrZSBpdCB0ZXN0YWJsZS4KKworICAgICAgICBUZXN0OiBmYXN0L21l
ZGlhL21xLXJlc29sdXRpb24uaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisKKyAg
ICAgICAgICAgIEV4cG9ydCB0aGUgV2ViQ29yZTo6U2V0dGluZ3Mgc2V0dGluZy4KKworICAgICAg
ICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzRGVuc2l0eVBlckluY2gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzRGVuc2l0eVBlclBpeGVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1p
dGl2ZVZhbHVlOjppc0RlbnNpdHlQZXJDZW50aW1ldGVyKToKKyAgICAgICAgKENTU1ByaW1pdGl2
ZVZhbHVlKToKKworICAgICAgICAgICAgQWRkIGZ1bmN0aW9uIGZvciBjaGVja2luZyB0aGUgcmVj
ZW50bHkgYWRkZWQgZGVuc2l0eSB0eXBlcy4KKworICAgICAgICAqIGNzcy9NZWRpYUZlYXR1cmVO
YW1lcy5oOgorICAgICAgICAoTWVkaWFGZWF0dXJlTmFtZXMpOgorCisgICAgICAgICAgICBBZGQg
c3VwcG9ydCBmb3IgLXdlYmtpdC1yZXNvbHV0aW9uLCAtd2Via2l0LW1pbi1yZXNvbHV0aW9uCisg
ICAgICAgICAgICBhbmQgLXdlYmtpdC1tYXgtcmVzb2x1dGlvbi4KKworICAgICAgICAqIGNzcy9N
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVSZXNvbHV0
aW9uKTogQWRkIG1ldGhvZHMgZm9yIGNvbXBhcmluZyByZXNvbHV0aW9ucy4KKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6bWluX3Jlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKToKKyAgICAg
ICAgKFdlYkNvcmU6Om1heF9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCk6CisKKyAgICAgICAg
ICAgIEltcGxlbWVudCB0aGUgcmVzb2x1dGlvbiBtZXRob2QgZXZhbHVhdGlvbi4KKworICAgICAg
ICAqIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRo
VmFsaWRQb3NpdGl2ZURlbnNpdHkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpmZWF0dXJlV2l0aG91dFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlF
eHA6Ok1lZGlhUXVlcnlFeHApOgorCisgICAgICAgICAgICBIb29rIHVwIHJlc29sdXRpb24gd2l0
aCB0aGUgcmlnaHQgcHJlLWNoZWNrcy4KKworICAgICAgICogcGFnZS9TY3JlZW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2NyZWVuOjpob3Jpem9udGFsRFBJKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcmVlbjo6dmVydGljYWxEUEkpOgorCisgICAgICAgICAgICBDaGVjayB3aGV0aGVyIGFuIG92
ZXJyaWRlIGV4aXN0cywgYW5kIGlmIHNvLCB1c2VzIGl0LgorCisgICAgICAgICogcGFnZS9TZXR0
aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0UmVzb2x1dGlvbk92ZXJy
aWRlKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAg
ICAgICAgKFNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpyZXNvbHV0aW9u
T3ZlcnJpZGUpOgorCisgICAgICAgICAgICBBZGQgYSByZXNvbHV0aW9uIG92ZXJyaWRlIHRvIHNl
dHRpbmdzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVycmlkZSk6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAg
ICAgICAgKEJhY2t1cCk6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCisgICAgICAgICAgICBBZGQgYSBuZXcgc2V0
UmVzb2x1dGlvbk92ZXJyaWRlIG1ldGhvZCB0byBpbnRlcm5hbHMuc2V0dGluZ3MuCisKIDIwMTIt
MTAtMTYgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFdlYiBJbnNwZWN0b3I6IE5NSSBpbnN0cnVtZW50IEltYWdlRGVjb2Rlci4gSXQgb3ducyBhIGJ1
ZmZlciB0aGF0IGNvdWxkIGJlIHF1aXRlIGJpZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5Y2M0NWNkMmEyOThh
M2JhNTkwMTdjZGQ1NzE1MTM2M2VjYjNiZjZiLi4zMzhhZmMyMzMzNTdjMzBkODBiMTBmOTVjMTc5
YTgzMjI5YmQ4OTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMTYgIEtl
bm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciByZXNvbHV0aW9uIG1lZGlhIHF1ZXJ5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTA3NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2luL1dlYktpdDIuZGVmOgorCisgICAg
ICAgICAgICBBZGQgZXhwb3J0cyBmb3IgdGhlIFdlYkNvcmU6OlNldHRpbmdzIHNldHRpbmcuCisK
IDIwMTItMTAtMTcgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ftc3VuZy5j
b20+CiAKICAgICAgICAgW1dLMl1bRUZMXSBBZGQgdW5pdCB0ZXN0cyBmb3IgU3BlbGxpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KaW5kZXggZThlZjI0MzFkNjI4NmQ1NTY4ZDczMGQ4OGUwMjEyYmQwY2Vl
ODk4Zi4uM2UxN2I1ZDAzOGVhZTIxOWFjNmM2NDEyMTEyNTc0MzQxNDVjZGZjNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KQEAgLTk2MCw2ICs5NjAsNyBAQCBfX1pON1dlYkNvcmU4U2V0dGluZ3M0MHNl
dFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JFTlNfMzdUZXh0RGlyZWN0aQog
X19aTjdXZWJDb3JlOFNldHRpbmdzNDFzZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlv
blF1aXJrc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3M0NHNldExvYWRzU2l0ZUljb25zSWdub3Jp
bmdJbWFnZUxvYWRpbmdTZXR0aW5nRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczQ1c2V0U2hvdWxk
UmVzcGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzRWIKK19fWk43V2ViQ29yZThTZXR0
aW5nczIxc2V0UmVzb2x1dGlvbk92ZXJyaWRlRVJLTlNfN0ludFNpemVFCiBfX1pON1dlYkNvcmU4
YmxhbmtVUkxFdgogX19aTjdXZWJDb3JlOG1ha2VSR0JBRWlpaWkKIF9fWk43V2ViQ29yZThvcGVu
RmlsZUVSS04zV1RGNlN0cmluZ0VOU18xMkZpbGVPcGVuTW9kZUUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmgKaW5kZXggYWEyZGJlYWMzMmRkYjM4NzdiMWRiNWVmYmQwYWFlZTc3
MTJkNjg2Ni4uNDFjOWMzYWYzODQ1ZDg4NGUyYTVlMmRkNTc3OWNlZjUzMmZiYTkwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKQEAgLTE4MSw2ICsxODEsMTAgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNDYWxjdWxhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVV
bml0VHlwZSA9PSBDU1NfQ0FMQzsgfQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdp
dGhOdW1iZXIoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVS
Q0VOVEFHRV9XSVRIX05VTUJFUjsgfQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdp
dGhMZW5ndGgoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVS
Q0VOVEFHRV9XSVRIX0xFTkdUSDsgfQorICAgIGJvb2wgaXNEZW5zaXR5UGVySW5jaCgpIGNvbnN0
IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBJOyB9CisgICAgYm9vbCBpc0RlbnNp
dHlQZXJQaXhlbCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBQWDsg
fQorICAgIGJvb2wgaXNEZW5zaXR5UGVyQ2VudGltZXRlcigpIGNvbnN0IHsgcmV0dXJuIHByaW1p
dGl2ZVR5cGUoKSA9PSBDU1NfRFBDTTsgfQorCiAjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCiAg
ICAgYm9vbCBpc1ZhcmlhYmxlTmFtZSgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9
PSBDU1NfVkFSSUFCTEVfTkFNRTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1
cmVOYW1lcy5oCmluZGV4IGIwODQzOWU0YTAxODM0OTIyZmRhMDBlOGFkOTdlZmYyMGZiZWMwZmMu
LjRjZWMyNTQ1ZjU4NTNjNGVhOWRmYWVmNWYxNjU3ODA1ZWQ2OWQzYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyhtYXhfaGVpZ2h0LCAibWF4LWhlaWdodCIpIFwKICAgICBtYWNybyht
YXhfbW9ub2Nocm9tZSwgIm1heC1tb25vY2hyb21lIikgXAogICAgIG1hY3JvKG1heF93aWR0aCwg
Im1heC13aWR0aCIpIFwKKyAgICBtYWNybyhtYXhfcmVzb2x1dGlvbiwgIi13ZWJraXQtbWF4LXJl
c29sdXRpb24iKSBcCiAgICAgbWFjcm8obWluX2NvbG9yLCAibWluLWNvbG9yIikgXAogICAgIG1h
Y3JvKG1pbl9hc3BlY3RfcmF0aW8sICJtaW4tYXNwZWN0LXJhdGlvIikgXAogICAgIG1hY3JvKG1p
bl9kZXZpY2VfYXNwZWN0X3JhdGlvLCAibWluLWRldmljZS1hc3BlY3QtcmF0aW8iKSBcCkBAIC01
Niw3ICs1Nyw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhtaW5faGVpZ2h0LCAi
bWluLWhlaWdodCIpIFwKICAgICBtYWNybyhtaW5fbW9ub2Nocm9tZSwgIm1pbi1tb25vY2hyb21l
IikgXAogICAgIG1hY3JvKG1pbl93aWR0aCwgIm1pbi13aWR0aCIpIFwKKyAgICBtYWNybyhtaW5f
cmVzb2x1dGlvbiwgIi13ZWJraXQtbWluLXJlc29sdXRpb24iKSBcCiAgICAgbWFjcm8ocG9pbnRl
ciwgInBvaW50ZXIiKSBcCisgICAgbWFjcm8ocmVzb2x1dGlvbiwgIi13ZWJraXQtcmVzb2x1dGlv
biIpIFwKICAgICBtYWNybyh0cmFuc2Zvcm1fMmQsICItd2Via2l0LXRyYW5zZm9ybS0yZCIpIFwK
ICAgICBtYWNybyh0cmFuc2Zvcm1fM2QsICItd2Via2l0LXRyYW5zZm9ybS0zZCIpIFwKICAgICBt
YWNybyh0cmFuc2l0aW9uLCAiLXdlYmtpdC10cmFuc2l0aW9uIikgXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IGRhYTQ5MGI4YmRjODQ2ODdjNzQ5YTli
NTEwZTQ0YzM5YzY5MTA4ZTUuLmVlZWZlMDZlZjQ5YWY2YzdlMjRiNDkxYWY3MzFkYWFkMzQ3OGMw
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKQEAgLTM0
LDYgKzM0LDcgQEAKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUgIkNT
U1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKKyNpbmNsdWRlICJE
T01XaW5kb3cuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtNDgsNiArNDksNyBAQAogI2luY2x1ZGUgIlJlbmRl
clZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgi
CisjaW5jbHVkZSAiU2NyZWVuLmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAKQEAgLTY2LDE1ICs2OCwxMyBAQCB0eXBlZGVmIEhhc2hNYXA8
QXRvbWljU3RyaW5nSW1wbCosIEV2YWxGdW5jPiBGdW5jdGlvbk1hcDsKIHN0YXRpYyBGdW5jdGlv
bk1hcCogZ0Z1bmN0aW9uTWFwOwogCiAvKgotICogRklYTUU6IGZvbGxvd2luZyBtZWRpYSBmZWF0
dXJlcyBhcmUgbm90IGltcGxlbWVudGVkOiBjb2xvcl9pbmRleCwgc2NhbiwgcmVzb2x1dGlvbgor
ICogRklYTUU6IGZvbGxvd2luZyBtZWRpYSBmZWF0dXJlcyBhcmUgbm90IGltcGxlbWVudGVkOiBj
b2xvcl9pbmRleCwgc2NhbgogICoKICAqIGNvbG9yX2luZGV4LCBtaW4tY29sb3ItaW5kZXgsIG1h
eF9jb2xvcl9pbmRleDogSXQncyB1bmtub3duIGhvdyB0byByZXRyaWV2ZQogICogdGhlIGluZm9y
bWF0aW9uIGlmIHRoZSBkaXNwbGF5IG1vZGUgaXMgaW5kZXhlZAogICogc2NhbjogVGhlICJzY2Fu
IiBtZWRpYSBmZWF0dXJlIGRlc2NyaWJlcyB0aGUgc2Nhbm5pbmcgcHJvY2VzcyBvZgogICogdHYg
b3V0cHV0IGRldmljZXMuIEl0J3MgdW5rbm93biBob3cgdG8gcmV0cmlldmUgdGhpcyBpbmZvcm1h
dGlvbiBmcm9tCiAgKiB0aGUgcGxhdGZvcm0KLSAqIHJlc29sdXRpb24sIG1pbi1yZXNvbHV0aW9u
LCBtYXgtcmVzb2x1dGlvbjogY3NzIHBhcnNlciBkb2Vzbid0IHNlZW0gdG8KLSAqIHN1cHBvcnQg
Q1NTX0RJTUVOU0lPTgogICovCiAKIE1lZGlhUXVlcnlFdmFsdWF0b3I6Ok1lZGlhUXVlcnlFdmFs
dWF0b3IoYm9vbCBtZWRpYUZlYXR1cmVSZXN1bHQpCkBAIC0xOTcsNiArMTk3LDIzIEBAIHN0YXRp
YyBib29sIGNvbXBhcmVBc3BlY3RSYXRpb1ZhbHVlKENTU1ZhbHVlKiB2YWx1ZSwgaW50IHdpZHRo
LCBpbnQgaGVpZ2h0LCBNZWRpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgRU5BQkxFKENT
U19JTUFHRV9SRVNPTFVUSU9OKQorc3RhdGljIGJvb2wgY29tcGFyZVJlc29sdXRpb24odW5zaWdu
ZWQgbWluLCB1bnNpZ25lZCBtYXgsIHVuc2lnbmVkIHZhbHVlLCBNZWRpYUZlYXR1cmVQcmVmaXgg
b3ApCit7CisgICAgc3dpdGNoIChvcCkgeworICAgIGNhc2UgTm9QcmVmaXg6CisgICAgICAgIC8v
IEEgJ3Jlc29sdXRpb24nICh3aXRob3V0IGEgIm1pbi0iIG9yICJtYXgtIiBwcmVmaXgpIHF1ZXJ5
CisgICAgICAgIC8vIG5ldmVyIG1hdGNoZXMgYSBkZXZpY2Ugd2l0aCBub24tc3F1YXJlIHBpeGVs
cy4KKyAgICAgICAgcmV0dXJuIG1pbiA9PSBtYXg7CisgICAgY2FzZSBNaW5QcmVmaXg6CisgICAg
ICAgIHJldHVybiBtaW4gPj0gdmFsdWU7CisgICAgY2FzZSBNYXhQcmVmaXg6CisgICAgICAgIHJl
dHVybiBtYXggPD0gdmFsdWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgor
CiBzdGF0aWMgYm9vbCBudW1iZXJWYWx1ZShDU1NWYWx1ZSogdmFsdWUsIGZsb2F0JiByZXN1bHQp
CiB7CiAgICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkKQEAgLTI3OCw2ICsyOTUsNjAg
QEAgc3RhdGljIGJvb2wgZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1
ZSAqdmFsdWUsIFJlbmRlclN0eWxlKiwgRnIKICAgICByZXR1cm4gZnJhbWUtPnBhZ2UoKS0+ZGV2
aWNlU2NhbGVGYWN0b3IoKSAhPSAwOwogfQogCitzdGF0aWMgYm9vbCByZXNvbHV0aW9uTWVkaWFG
ZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBN
ZWRpYUZlYXR1cmVQcmVmaXggb3ApCit7CisjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9O
KQorICAgIHVuc2lnbmVkIGhvcmlEUEkgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkt
PnNjcmVlbigpLT5ob3Jpem9udGFsRFBJKCk7CisgICAgdW5zaWduZWQgdmVydERQSSA9IGZyYW1l
LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+c2NyZWVuKCktPnZlcnRpY2FsRFBJKCk7CisKKyAg
ICB1bnNpZ25lZCBtaW5EUEkgPSBzdGQ6Om1pbihob3JpRFBJLCB2ZXJ0RFBJKTsKKyAgICB1bnNp
Z25lZCBtYXhEUEkgPSBzdGQ6Om1heChob3JpRFBJLCB2ZXJ0RFBJKTsKKworICAgIC8vIEFjY29y
ZGluZyB0byBzcGVjLCAocmVzb2x1dGlvbikgd2lsbCBldmFsdWF0ZSB0byB0cnVlIGlmIChyZXNv
bHV0aW9uOngpCisgICAgLy8gd2lsbCBldmFsdWF0ZSB0byB0cnVlIGZvciBhIHZhbHVlIHggb3Ro
ZXIgdGhhbiB6ZXJvIG9yIHplcm8gZm9sbG93ZWQgYnkKKyAgICAvLyBhIHZhbGlkIHVuaXQgaWRl
bnRpZmllciAoaS5lLiwgb3RoZXIgdGhhbiAwLCAwZHBpLCAwZHBjbSwgb3IgMGRwcHguKS4KKyAg
ICAvLworICAgIC8vIFRoaXMgaXMgYWN0dWFsbHkgYWx3YXlzIHRoZSBjYXNlIHdpdGggdGhlIGRw
cHgsIHdoaWNoIHdlIGlnbm9yZSBhcyBpdCBpcworICAgIC8vIGEgc3BlY2lhbC1jYXNlIGluIHRo
ZSBzZW5zZSBpdCBjYW4gYmUgb3V0IG9mIHN5bmMgd2l0aCBkcGkgYW5kIGRwY20uIEZvcgorICAg
IC8vIGluc3RhbmNlLCBib3RoIGEgZGV2aWNlIHdpdGggOTZkcGkgYW5kIDE2MGRwaSBjYW4gaGF2
ZSBhIGRwcHggb2YgMS4KKyAgICAvLworICAgIC8vIFRoaXMgbGVhdmVzIHRoZSBjYXNlIG9mIHNx
dWFyZWQgcGl4ZWxzLgorICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgQVNTRVJUKG9wID09IE5v
UHJlZml4KTsKKyAgICAgICAgcmV0dXJuIG1pbkRQSSA9PSBtYXhEUEk7CisgICAgfQorCisgICAg
aWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBDU1NQcmltaXRpdmVWYWx1ZSogcmF3VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZSo+KHZhbHVlKTsKKyAgICBpZiAocmF3VmFsdWUtPmlzRGVuc2l0eVBlclBpeGVsKCkp
IHsKKyAgICAgICAgZmxvYXQgYWN0dWFsRGVuc2l0eSA9IGZyYW1lLT5wYWdlKCktPmRldmljZVNj
YWxlRmFjdG9yKCk7CisgICAgICAgIGZsb2F0IHRlc3RlZERlbnNpdHkgPSByYXdWYWx1ZS0+Z2V0
RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQUFgpOworICAgICAgICByZXR1cm4g
Y29tcGFyZVZhbHVlKGFjdHVhbERlbnNpdHksIHRlc3RlZERlbnNpdHksIG9wKTsKKyAgICB9CisK
KyAgICBpZiAocmF3VmFsdWUtPmlzRGVuc2l0eVBlckluY2goKSkgeworICAgICAgICB1bnNpZ25l
ZCB0ZXN0ZWREZW5zaXR5ID0gcmF3VmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19EUEkpOworICAgICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24obWluRFBJLCBt
YXhEUEksIHRlc3RlZERlbnNpdHksIG9wKTsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBtaW5EUENN
ID0gZmxvb3IobWluRFBJIC8gMi41NCk7IC8vICgyLjU0IGNtL2luKQorICAgIHVuc2lnbmVkIG1h
eERQQ00gPSBmbG9vcihtYXhEUEkgLyAyLjU0KTsKKworICAgIGlmIChyYXdWYWx1ZS0+aXNEZW5z
aXR5UGVyQ2VudGltZXRlcigpKSB7CisgICAgICAgIHVuc2lnbmVkIHRlc3RlZERlbnNpdHkgPSBy
YXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQQ00pOworICAg
ICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24obWluRFBDTSwgbWF4RFBDTSwgdGVzdGVkRGVu
c2l0eSwgb3ApOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHZhbHVlKTsKKyAgICBV
TlVTRURfUEFSQU0oZnJhbWUpOworICAgIFVOVVNFRF9QQVJBTShvcCk7CisjZW5kaWYKKworICAg
IHJldHVybiBmYWxzZTsKK30KKwogc3RhdGljIGJvb2wgZ3JpZE1lZGlhRmVhdHVyZUV2YWwoQ1NT
VmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiwgTWVkaWFGZWF0dXJlUHJlZml4IG9w
KQogewogICAgIC8vIGlmIG91dHB1dCBkZXZpY2UgaXMgYml0bWFwLCBncmlkOiAwID09IHRydWUK
QEAgLTQ1Niw2ICs1MjcsMTYgQEAgc3RhdGljIGJvb2wgbWF4X2RldmljZV93aWR0aE1lZGlhRmVh
dHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUKICAgICByZXR1cm4g
ZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNYXhQcmVm
aXgpOwogfQogCitzdGF0aWMgYm9vbCBtaW5fcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NT
VmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0
dXJlUHJlZml4KQoreworICAgIHJldHVybiByZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCh2YWx1
ZSwgc3R5bGUsIGZyYW1lLCBNaW5QcmVmaXgpOworfQorCitzdGF0aWMgYm9vbCBtYXhfcmVzb2x1
dGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUs
IEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQoreworICAgIHJldHVybiByZXNvbHV0
aW9uTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNYXhQcmVmaXgpOworfQor
CiBzdGF0aWMgYm9vbCBhbmltYXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwg
UmVuZGVyU3R5bGUqLCBGcmFtZSosIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsKICAgICBpZiAo
dmFsdWUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcAppbmRleCAxYTA2Yjc5NjVm
Y2NiOThhMDkzNTY5NTY5NzU4YjIxZmM2ZTI5OTgxLi5lMGUyYjMxZWIxNGM0ODk4MmZkNGVkNGQw
MzI2OTUxMmZkOTI3Y2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV4cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwCkBAIC02
Nyw2ICs2NywxNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZl
TGVuZ2h0T3JOdW1iZXIoY29uc3QgQXRvbWljU3RyaW5nJiBtZQogICAgICAgICB8fCBtZWRpYUZl
YXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbl9kZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmU7
CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVEZW5zaXR5
KGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBjb25zdCBDU1NQYXJzZXJWYWx1ZSog
dmFsdWUpCit7CisgICAgaWYgKCh2YWx1ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X0RQUFggJiYgdmFsdWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUEkgJiYgdmFs
dWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUENNKSB8fCB2YWx1ZS0+ZlZhbHVl
IDwgMCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9
PSBNZWRpYUZlYXR1cmVOYW1lczo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZQorICAgICAgICB8fCBt
ZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heF9yZXNvbHV0aW9uTWVkaWFGZWF0
dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX3Jl
c29sdXRpb25NZWRpYUZlYXR1cmU7Cit9CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0
aFBvc2l0aXZlSW50ZWdlcihjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgY29uc3Qg
Q1NTUGFyc2VyVmFsdWUqIHZhbHVlKQogewogICAgIGlmICghdmFsdWUtPmlzSW50IHx8IHZhbHVl
LT5mVmFsdWUgPCAwKQpAQCAtMTE0LDYgKzEyNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0
dXJlV2l0aEFzcGVjdFJhdGlvKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlKQogCiBz
dGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhvdXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcm
IG1lZGlhRmVhdHVyZSkKIHsKKyAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IGFyZSBwcmVmaXhl
ZCBieSBtaW4vbWF4IGNhbm5vdCBiZSB1c2VkIHdpdGhvdXQgYSB2YWx1ZS4KICAgICByZXR1cm4g
bWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptb25vY2hyb21lTWVkaWFGZWF0dXJl
CiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6Y29sb3JNZWRp
YUZlYXR1cmUKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpn
cmlkTWVkaWFGZWF0dXJlCkBAIC0xMzEsNyArMTQyLDggQEAgc3RhdGljIGlubGluZSBib29sIGZl
YXR1cmVXaXRob3V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUpCiAgICAg
ICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6YW5pbWF0aW9uTWVkaWFG
ZWF0dXJlCiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dmll
d19tb2RlTWVkaWFGZWF0dXJlCiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1
cmVOYW1lczo6cG9pbnRlck1lZGlhRmVhdHVyZQotICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0g
TWVkaWFGZWF0dXJlTmFtZXM6OmRldmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZTsKKyAgICAg
ICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2VfcGl4ZWxfcmF0
aW9NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5h
bWVzOjpyZXNvbHV0aW9uTWVkaWFGZWF0dXJlOwogfQogCiBpbmxpbmUgTWVkaWFRdWVyeUV4cDo6
TWVkaWFRdWVyeUV4cChjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgQ1NTUGFyc2Vy
VmFsdWVMaXN0KiB2YWx1ZUxpc3QpCkBAIC0xNDgsNiArMTYwLDEwIEBAIGlubGluZSBNZWRpYVF1
ZXJ5RXhwOjpNZWRpYVF1ZXJ5RXhwKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBD
U1NQYXJzZXJWCiAgICAgICAgICAgICBpZiAoZmVhdHVyZVdpdGhDU1NWYWx1ZUlEKG1lZGlhRmVh
dHVyZSwgdmFsdWUpKQogICAgICAgICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1
ZTo6Y3JlYXRlSWRlbnRpZmllcih2YWx1ZS0+aWQpOwogCisgICAgICAgICAgICAvLyBNZWRpYSBm
ZWF0dXJlcyB0aGF0IG11c3QgaGF2ZSBub24tbmVnYXRpdmUgPGRlbnNpdHk+LCBpZS4gZHBweCwg
ZHBpIG9yIGRwY20uCisgICAgICAgICAgICBlbHNlIGlmIChmZWF0dXJlV2l0aFZhbGlkUG9zaXRp
dmVEZW5zaXR5KG1lZGlhRmVhdHVyZSwgdmFsdWUpKQorICAgICAgICAgICAgICAgIG1fdmFsdWUg
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5mVmFsdWUsIChDU1NQcmltaXRpdmVW
YWx1ZTo6VW5pdFR5cGVzKSB2YWx1ZS0+dW5pdCk7CisKICAgICAgICAgICAgIC8vIE1lZGlhIGZl
YXR1cmVzIHRoYXQgbXVzdCBoYXZlIG5vbi1uZWdhdGl2ZSA8bGVuZ2h0PiBvciBudW1iZXIgdmFs
dWUuCiAgICAgICAgICAgICBlbHNlIGlmIChmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVMZW5naHRP
ck51bWJlcihtZWRpYUZlYXR1cmUsIHZhbHVlKSkKICAgICAgICAgICAgICAgICBtX3ZhbHVlID0g
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZS0+ZlZhbHVlLCAoQ1NTUHJpbWl0aXZlVmFs
dWU6OlVuaXRUeXBlcykgdmFsdWUtPnVuaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TY3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCmluZGV4IGUx
ZTFkMTE3Mzg2ZjYyMmVlM2MxOTNiM2U1MDIyYzg4M2E4YzI1YjEuLjQwYTM4OGVkMjNhNGE1ODgz
ZTAxOGRhMTVjMWY1YTgzYTQ5MjRjYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQ4LDYgKzQ5LDExIEBAIHVuc2lnbmVkIFNjcmVlbjo6aG9yaXpvbnRhbERQSSgpIGNvbnN0CiB7
CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4gMDsKKworICAgIEludFNpemUgb3Zl
cnJpZGUgPSBtX2ZyYW1lLT5wYWdlKCktPnNldHRpbmdzKCktPnJlc29sdXRpb25PdmVycmlkZSgp
OworICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gb3ZlcnJpZGUu
d2lkdGgoKTsKKwogICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2NyZWVuSG9yaXpv
bnRhbERQSShtX2ZyYW1lLT52aWV3KCkpKTsKIH0KIApAQCAtNTUsNiArNjEsMTEgQEAgdW5zaWdu
ZWQgU2NyZWVuOjp2ZXJ0aWNhbERQSSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAg
ICAgICByZXR1cm4gMDsKKworICAgIEludFNpemUgb3ZlcnJpZGUgPSBtX2ZyYW1lLT5wYWdlKCkt
PnNldHRpbmdzKCktPnJlc29sdXRpb25PdmVycmlkZSgpOworICAgIGlmICghb3ZlcnJpZGUuaXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gb3ZlcnJpZGUuaGVpZ2h0KCk7CisKICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcmVlblZlcnRpY2FsRFBJKG1fZnJhbWUtPnZpZXcoKSkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDk4NzZhZjVjNzZkMjI1NWNlYjJm
ODgwYjg0OTUxOWQyNmMzZDNlZDQuLjc0YjkyZjlmOWMzOTcxMTU5OTQ0MmM3MTQ0YjlkYWViZTVk
Nzc3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC00NTksNiArNDU5LDE1IEBAIHZv
aWQgU2V0dGluZ3M6OnNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKGZsb2F0IGZvbnRT
Y2FsZUZhY3RvcikKIAogI2VuZGlmCiAKK3ZvaWQgU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVy
cmlkZShjb25zdCBJbnRTaXplJiBkZW5zaXR5UGVySW5jaE92ZXJyaWRlKQoreworICAgIGlmICht
X3Jlc29sdXRpb25EZW5zaXR5UGVySW5jaE92ZXJyaWRlID09IGRlbnNpdHlQZXJJbmNoT3ZlcnJp
ZGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3Zl
cnJpZGUgPSBkZW5zaXR5UGVySW5jaE92ZXJyaWRlOworICAgIG1fcGFnZS0+c2V0TmVlZHNSZWNh
bGNTdHlsZUluQWxsRnJhbWVzKCk7Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldExvYWRzSW1hZ2Vz
QXV0b21hdGljYWxseShib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSkKIHsKICAgICBtX2xv
YWRzSW1hZ2VzQXV0b21hdGljYWxseSA9IGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaAppbmRleCA4OTc4NWQxMmY2ZTI5MTY2ZGFjM2JhZmNiZWY3MGIwNWRlZmZi
NDZhLi5jNzFmMzJlODYxZDcxZDdjNjI4NDM2MDlhY2Y0ZTM1NTJiYTQzMDMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9TZXR0aW5ncy5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJFZGl0aW5nQmVoYXZp
b3JUeXBlcy5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCisjaW5jbHVkZSAiSW50
U2l6ZS5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgog
I2luY2x1ZGUgIlRpbWVyLmgiCkBAIC0zNywxMCArMzgsNiBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0
L0F0b21pY1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+CiAK
LSNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQotI2luY2x1ZGUgIkludFNpemUuaCIKLSNlbmRp
ZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBQYWdlOwpAQCAtMTIzLDYgKzEy
MCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IEludFNpemUmIHRleHRB
dXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0QXV0b3Np
emluZ1dpbmRvd1NpemVPdmVycmlkZTsgfQogI2VuZGlmCiAKKyAgICAgICAgLy8gT25seSBzZXQg
YnkgTGF5b3V0IFRlc3RzLgorICAgICAgICB2b2lkIHNldFJlc29sdXRpb25PdmVycmlkZShjb25z
dCBJbnRTaXplJik7CisgICAgICAgIGNvbnN0IEludFNpemUmIHJlc29sdXRpb25PdmVycmlkZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJpZGU7IH0KKwog
ICAgICAgICAvLyBVbmxpa2UgYXJlSW1hZ2VzRW5hYmxlZCwgdGhpcyBvbmx5IHN1cHByZXNzZXMg
dGhlIG5ldHdvcmsgbG9hZCBvZgogICAgICAgICAvLyB0aGUgaW1hZ2UgVVJMLiAgQSBjYWNoZWQg
aW1hZ2Ugd2lsbCBzdGlsbCBiZSByZW5kZXJlZCBpZiByZXF1ZXN0ZWQuCiAgICAgICAgIHZvaWQg
c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJvb2wpOwpAQCAtNjg2LDYgKzY4Nyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgSW50U2l6ZSBtX3RleHRBdXRvc2l6aW5nV2luZG93
U2l6ZU92ZXJyaWRlOwogICAgICAgICBib29sIG1fdGV4dEF1dG9zaXppbmdFbmFibGVkIDogMTsK
ICNlbmRpZgorICAgICAgICBJbnRTaXplIG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJp
ZGU7CiAgICAgICAgIGJvb2wgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7CiAgICAg
ICAgIGJvb2wgbV9pc0phdmFFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJs
ZWRGb3JMb2NhbEZpbGVzIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuY3BwCmluZGV4IDhkOGYwY2I0MDkwMDM2NWU2MGE0Mzg0ZWNiMDk3NDA1NDc3MTVhZjku
LmFiNDViMmE3ZGU4MzVhZmIzZjEyYTE1YjJhNGZkZmQ4NGNhN2NhNWMgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtOTcsNiArOTcsOCBAQCBJbnRl
cm5hbFNldHRpbmdzOjpCYWNrdXA6OkJhY2t1cChQYWdlKiBwYWdlLCBTZXR0aW5ncyogc2V0dGlu
Z3MpCiAgICAgLCBtX29yaWdpbmFsVGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoc2V0
dGluZ3MtPnRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKCkpCiAgICAgLCBtX29yaWdp
bmFsVGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3Ioc2V0dGluZ3MtPnRleHRBdXRvc2l6aW5n
Rm9udFNjYWxlRmFjdG9yKCkpCiAjZW5kaWYKKyAgICAsIG1fb3JpZ2luYWxEZXZpY2VTY2FsZUZh
Y3RvcihwYWdlLT5kZXZpY2VTY2FsZUZhY3RvcigpKQorICAgICwgbV9vcmlnaW5hbFJlc29sdXRp
b25PdmVycmlkZShzZXR0aW5ncy0+cmVzb2x1dGlvbk92ZXJyaWRlKCkpCiAjaWYgRU5BQkxFKERJ
QUxPR19FTEVNRU5UKQogICAgICwgbV9vcmlnaW5hbERpYWxvZ0VsZW1lbnRFbmFibGVkKFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OmRpYWxvZ0VsZW1lbnRFbmFibGVkKCkpCiAjZW5kaWYKQEAgLTEz
Niw2ICsxMzgsOCBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKFBh
Z2UqIHBhZ2UsIFNldHRpbmdzKiBzZXR0aW5ncykKICAgICBzZXR0aW5ncy0+c2V0VGV4dEF1dG9z
aXppbmdXaW5kb3dTaXplT3ZlcnJpZGUobV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nV2luZG93U2l6
ZU92ZXJyaWRlKTsKICAgICBzZXR0aW5ncy0+c2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0
b3IobV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKTsKICNlbmRpZgorICAg
IHBhZ2UtPnNldERldmljZVNjYWxlRmFjdG9yKG1fb3JpZ2luYWxEZXZpY2VTY2FsZUZhY3Rvcik7
CisgICAgc2V0dGluZ3MtPnNldFJlc29sdXRpb25PdmVycmlkZShtX29yaWdpbmFsUmVzb2x1dGlv
bk92ZXJyaWRlKTsKICNpZiBFTkFCTEUoRElBTE9HX0VMRU1FTlQpCiAgICAgUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2V0RGlhbG9nRWxlbWVudEVuYWJsZWQobV9vcmlnaW5hbERpYWxvZ0VsZW1l
bnRFbmFibGVkKTsKICNlbmRpZgpAQCAtNDEzLDYgKzQxNywxNCBAQCB2b2lkIEludGVybmFsU2V0
dGluZ3M6OnNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKGludCB3aWR0aCwgaW50
IGhlaWdodAogI2VuZGlmCiB9CiAKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0UmVzb2x1dGlv
bk92ZXJyaWRlKGZsb2F0IGRlbnNpdHlQZXJQaXhlbCwgaW50IGRlbnNpdHlQZXJJbmNoSG9yaXpv
bnRhbGx5LCBpbnQgZGVuc2l0eVBlckluY2hWZXJ0aWNhbGx5LCBFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JTZXR0aW5ncygpOworICAgIC8vIEFuIGVt
cHR5IHNpemUgcmVzZXRzIHRoZSBvdmVycmlkZS4KKyAgICBzZXR0aW5ncygpLT5zZXRSZXNvbHV0
aW9uT3ZlcnJpZGUoSW50U2l6ZShkZW5zaXR5UGVySW5jaEhvcml6b250YWxseSwgZGVuc2l0eVBl
ckluY2hWZXJ0aWNhbGx5KSk7CisgICAgcGFnZSgpLT5zZXREZXZpY2VTY2FsZUZhY3RvcihkZW5z
aXR5UGVyUGl4ZWwpOworfQorCiB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFRleHRBdXRvc2l6
aW5nRm9udFNjYWxlRmFjdG9yKGZsb2F0IGZvbnRTY2FsZUZhY3RvciwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB7CiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmgKaW5kZXggNzhmMzZlMDE3NjFjZWJkYzMxZDg5NDIxOWQzMjBi
NjAyYTE2OWI0Zi4uMGYwYmI1OWMzYWVhOGRhZWJhMDkwNjc5ZGI3NjEyNGExZGU3YWVjMCAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTI3LDE1ICsyNywx
MiBAQAogI2RlZmluZSBJbnRlcm5hbFNldHRpbmdzX2gKIAogI2luY2x1ZGUgIkVkaXRpbmdCZWhh
dmlvclR5cGVzLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlJlZkNvdW50ZWRT
dXBwbGVtZW50LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgRU5B
QkxFKFRFWFRfQVVUT1NJWklORykKLSNpbmNsdWRlICJJbnRTaXplLmgiCi0jZW5kaWYKLQogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwpAQCAtNzksNiAr
NzYsOCBAQCBwdWJsaWM6CiAgICAgICAgIEludFNpemUgbV9vcmlnaW5hbFRleHRBdXRvc2l6aW5n
V2luZG93U2l6ZU92ZXJyaWRlOwogICAgICAgICBmbG9hdCBtX29yaWdpbmFsVGV4dEF1dG9zaXpp
bmdGb250U2NhbGVGYWN0b3I7CiAjZW5kaWYKKyAgICAgICAgZmxvYXQgbV9vcmlnaW5hbERldmlj
ZVNjYWxlRmFjdG9yOworICAgICAgICBJbnRTaXplIG1fb3JpZ2luYWxSZXNvbHV0aW9uT3ZlcnJp
ZGU7CiAjaWYgRU5BQkxFKERJQUxPR19FTEVNRU5UKQogICAgICAgICBib29sIG1fb3JpZ2luYWxE
aWFsb2dFbGVtZW50RW5hYmxlZDsKICNlbmRpZgpAQCAtMTI3LDYgKzEyNiw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlv
bkNvZGUmKTsKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKGlu
dCB3aWR0aCwgaW50IGhlaWdodCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0VGV4dEF1
dG9zaXppbmdGb250U2NhbGVGYWN0b3IoZmxvYXQgZm9udFNjYWxlRmFjdG9yLCBFeGNlcHRpb25D
b2RlJik7CisgICAgdm9pZCBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoZmxvYXQgZGVuc2l0eVBlclBp
eGVsLCBpbnQgZGVuc2l0eVBlckluY2hIb3Jpem9udGFsbHksIGludCBkZW5zaXR5UGVySW5jaFZl
cnRpY2FsbHksIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1h
dG9yKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIGJvb2wgc2Nyb2xsQW5pbWF0
b3JFbmFibGVkKEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldENTU0V4Y2x1c2lvbnNFbmFi
bGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggZjM0NjRiZTlhNGVjNjQ1NjRiNDM0NTA5Nzg3
ZGY4NDdlM2VlODFjZS4uMTdmNzFhYTg5ZDBkNjQxYmEwMDJhYzFiMGM3MWRkZDQ1ZWZhNjZhZCAx
MDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC01Niw2
ICs1Niw3IEBACiAgICAgdm9pZCBzZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoaW4gYm9vbGVhbiBl
bmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5n
V2luZG93U2l6ZU92ZXJyaWRlKGluIGxvbmcgd2lkdGgsIGluIGxvbmcgaGVpZ2h0KSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9y
KGluIGZsb2F0IGZvbnRTY2FsZUZhY3RvcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgdm9p
ZCBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoaW4gZmxvYXQgZGVuc2l0eVBlclBpeGVsLCBpbiBsb25n
IGRlbnNpdHlQZXJJbmNoSG9yaXpvbnRhbGx5LCBpbiBsb25nIGRlbnNpdHlQZXJJbmNoVmVydGlj
YWxseSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRFbmFibGVTY3JvbGxBbmlt
YXRvcihpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIGJvb2xl
YW4gc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9p
ZCBzZXRDU1NFeGNsdXNpb25zRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01F
eGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCmluZGV4IDE5NmJiZjA1OTViM2IwNWI3ZTQx
MzFiZGU5YjczODViMTQ0MDJmYWIuLmIxZDI2YjhkZGIwYzNiYzAxOTMwYzk5MGM5OThmYzI3N2U1
MzZjMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTI0Miw2ICsyNDIsNyBAQCBFWFBPUlRT
CiAgICAgICAgID9zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3lAU2V0dGluZ3NAV2ViQ29yZUBAUUFF
WFc0U3RvcmFnZUJsb2NraW5nUG9saWN5QFNlY3VyaXR5T3JpZ2luQDJAQFoKICAgICAgICAgP3Nl
dFN1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUFFWEFCVlN0cmluZ0BX
VEZAQEBaCiAgICAgICAgID9zZXRFZGl0aW5nVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJDb3Jl
QEBRQUVYQUJWU3RyaW5nQFdURkBAQFoKKyAgICAgICAgP3NldFJlc29sdXRpb25PdmVycmlkZUBT
ZXR0aW5nc0BXZWJDb3JlQEBRQUVYQUJWSW50U2l6ZUAyQEBaCiAgICAgICAgID9zZXR0aW5nc0BE
b2N1bWVudEBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAgID9zZXR0aW5nc0BG
cmFtZUBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAgID9zZXRGaXhlZEVsZW1l
bnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lQFNldHRpbmdzQFdlYkNvcmVAQFFBRVhfTkBaCmRpZmYg
LS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90b29s
cy9zeW1ib2xzLmZpbHRlcgppbmRleCBhZWQ1NGFmMjFhYzhjODg0YmRlZTIyNGU4OWJlMmU2Y2E4
NDVhZmRmLi4zMmVmZTVhOWRlZGYwYTIxODdmZjkxOGY1YmQwYjQ4OTRhMjI0NWZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRvdG9v
bHMvc3ltYm9scy5maWx0ZXIKQEAgLTE3NSw2ICsxNzUsNyBAQCBfWk43V2ViQ29yZThTZXR0aW5n
czI0c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkRWI7CiBfWk43V2ViQ29yZThTZXR0aW5nczI0c2V0
VXNlc092ZXJsYXlTY3JvbGxiYXJzRWI7CiBfWk43V2ViQ29yZThTZXR0aW5nczI0c2V0U3RvcmFn
ZUJsb2NraW5nUG9saWN5RU5TXzE0U2VjdXJpdHlPcmlnaW4yMVN0b3JhZ2VCbG9ja2luZ1BvbGlj
eUU7CiBfWk43V2ViQ29yZThTZXR0aW5nczM3c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZl
VG9GcmFtZUViOworX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFJlc29sdXRpb25PdmVycmlkZUVS
S05TXzdJbnRTaXplRTsKIF9aTjdXZWJDb3JlOUZyYW1lVmlldzE3cGFpbnRDb250cm9sVGludHNF
djsKIF9aTjdXZWJDb3JlOUZyYW1lVmlldzE5c2Nyb2xsRWxlbWVudFRvUmVjdEVQTlNfN0VsZW1l
bnRFUktOU183SW50UmVjdEU7CiBfWk43V2ViQ29yZTIyUnVudGltZUVuYWJsZWRGZWF0dXJlczMx
aXNNdWx0aXBsZVNoYWRvd1N1YnRyZWVzRW5hYmxlZEU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTliNmU2NGJhNjkwZDQ0
MmM3Yjg4ODNkNDQ5Y2NkYjJlMTJjNGZlNy4uNjM4NjJlZTZkNWY3MWExYzgxNTI5NTc3YTE1M2E0
ZTE1OGQ0YzAyOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTEwLTE1ICBLZW5uZXRoIFJv
aGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgc3Vw
cG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IChyZXNvbHV0aW9uOiB4KSBtZWRpYSBxdWVyeSB0
byBlbnN1cmUgY29tcGxpYW5jZQorICAgICAgICB3aXRoIHNwZWMgcGx1cyBwcm9wb3NlZCBkcHB4
IHZhbHVlcy4KKworICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sOiBBZGRl
ZC4KKworICAgICAgICAqIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICAqIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlv
bnM6CisKKyAgICAgICAgICAgIFNraXAgdGhlIHRlc3QgYXMgdGhlIHBvcnRzIGRvIG5vdCBlbmFi
bGUgQ1NTIEltYWdlIFJlc29sdXRpb24uCisKIDIwMTItMTAtMTcgIE1pa2hhaWwgUG96ZG55YWtv
diAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAgICAgW1dLMl1bV1RSXSBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oKSBzaG91
bGQgcHJpbnQgb25seSBmaWxlbmFtZSBwYXJ0IG9mIGxvY2FsIFVSTHMKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJl
MTZlOGI5MjhkNDk3MGRiOTY4NTE4MzBlOGUyMWM1NWQ3MThjYTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMzggQEAKK0NTUzMgbWVkaWEgcXVlcnkgdGVzdDogcmVzb2x1dGlvbiBxdWVyeSB3aXRo
IGRwcHguIFVzaW5nIHN0eWxlIGVsZW1lbnQsIEBtZWRpYSBjc3MgcnVsZS4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlv
bjogMS41ZHBweCknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1Mgd2luZG93LmRldmljZVBpeGVsUmF0
aW8gaXMgMS41CitQQVNTIGRldmljZVBpeGVsUmF0aW9Gcm9tU3R5bGUoKSBpcyAxLjUKK1BBU1Mg
bWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMmRwcHgpJykubWF0Y2hlcyBpcyB0cnVl
CitQQVNTIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIGlzIDIKK1BBU1MgZGV2aWNlUGl4ZWxSYXRp
b0Zyb21TdHlsZSgpIGlzIDIKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjog
MWRwcHgpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIHdpbmRvdy5kZXZpY2VQaXhlbFJhdGlvIGlz
IDEKK1BBU1MgZGV2aWNlUGl4ZWxSYXRpb0Zyb21TdHlsZSgpIGlzIDEKK1BBU1MgbWF0Y2hNZWRp
YSgnKC13ZWJraXQtcmVzb2x1dGlvbiknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRp
YSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBt
YXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMgaXMg
dHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMjU0ZHBpKScp
Lm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAx
MDBkcGNtKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4t
cmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgn
KC13ZWJraXQtbWF4LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNT
IG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb24pJykubWF0Y2hlcyBpcyBmYWxzZQorUEFT
UyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyBpcyBm
YWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0
Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjog
MjU0ZHBpKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4t
cmVzb2x1dGlvbjogMjYwZHBpKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgn
KC13ZWJraXQtbWF4LXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNT
IG1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0Y2hlcyBp
cyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDEwMGRwY20pJyku
bWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAx
MDJkcGNtKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWlu
LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEo
Jygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAxMDJkcGNtKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BB
U1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hl
cyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMTAy
ZHBjbSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21x
LXJlc29sdXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQzNTJmZjYyNDNlNjFjMTg2NmM4YTBjNjQ2NGRhZTNhNDk4Y2I1NmMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24u
aHRtbApAQCAtMCwwICsxLDg0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKwor
PGRpdiBpZD0iZGV0ZWN0b3IiPjwvZGl2PgorCis8c3R5bGU+CisgICAgI2RldGVjdG9yIHsgd2lk
dGg6IDEwcHg7IH0KKyAgICBAbWVkaWEgKC13ZWJraXQtcmVzb2x1dGlvbjogICAxZHBweCkgeyAj
ZGV0ZWN0b3IgeyB3aWR0aDogMTBweDsgfSB9CisgICAgQG1lZGlhICgtd2Via2l0LXJlc29sdXRp
b246IDEuNWRwcHgpIHsgI2RldGVjdG9yIHsgd2lkdGg6IDE1cHg7IH0gfQorICAgIEBtZWRpYSAo
LXdlYmtpdC1yZXNvbHV0aW9uOiAgIDJkcHB4KSB7ICNkZXRlY3RvciB7IHdpZHRoOiAyMHB4OyB9
IH0KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNTUzMgbWVkaWEgcXVl
cnkgdGVzdDogcmVzb2x1dGlvbiBxdWVyeSB3aXRoIGRwcHguIFVzaW5nIHN0eWxlIGVsZW1lbnQs
IEBtZWRpYSBjc3MgcnVsZS4iKQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
CisgICAgICAgIGZ1bmN0aW9uIGRldmljZVBpeGVsUmF0aW9Gcm9tU3R5bGUoKSB7CisgICAgICAg
ICAgICB2YXIgd2lkdGggPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJkZXRlY3RvciIpKS53aWR0aDsKKyAgICAgICAgICAgIHN3aXRjaCAod2lkdGgpIHsKKyAgICAg
ICAgICAgICAgICBjYXNlICIxMHB4IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7Cisg
ICAgICAgICAgICAgICAgY2FzZSAiMTVweCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAx
LjU7CisgICAgICAgICAgICAgICAgY2FzZSAiMjBweCI6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAyOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiB1bmRlZmluZWQ7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgxLjUsIDk2LCA5Nik7
CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxLjVk
cHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgid2luZG93LmRldmlj
ZVBpeGVsUmF0aW8iLCAiMS41Iik7CisgICAgICAgIHNob3VsZEJlKCJkZXZpY2VQaXhlbFJhdGlv
RnJvbVN0eWxlKCkiLCAiMS41Iik7CisKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5n
cy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMiwgOTYsIDk2KTsKKyAgICAgICAgc2hvdWxkQmUoIm1h
dGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDJkcHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIp
OworICAgICAgICBzaG91bGRCZSgid2luZG93LmRldmljZVBpeGVsUmF0aW8iLCAiMiIpOworICAg
ICAgICBzaG91bGRCZSgiZGV2aWNlUGl4ZWxSYXRpb0Zyb21TdHlsZSgpIiwgIjIiKTsKKworICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgxLCA5
NiwgOTYpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlv
bjogMWRwcHgpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
ZGV2aWNlUGl4ZWxSYXRpbyIsICIxIik7CisgICAgICAgIHNob3VsZEJlKCJkZXZpY2VQaXhlbFJh
dGlvRnJvbVN0eWxlKCkiLCAiMSIpOworCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDEsIDI1NCwgMjU0KTsKKyAgICAgICAgc2hvdWxkQmUo
Im1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb24pJykubWF0Y2hlcyIsICJ0cnVlIik7Cisg
ICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNTRkcGkp
JykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdl
YmtpdC1taW4tcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAg
ICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDI1NGRwaSkn
KS5tYXRjaGVzIiwgInRydWUiKTsKKworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13
ZWJraXQtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAg
c2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAxMDBkcGNtKScp
Lm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJr
aXQtbWF4LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyIsICJ0cnVlIik7CisKKyAgICAg
ICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMSwgMjU0
LCAyNjApOworICAgICAgICAvLyBOb24tc3F1YXJlIG11c3QgbmV2ZXIgbWF0Y2guCisgICAgICAg
IHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uKScpLm1hdGNoZXMiLCAi
ZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRp
b246IDI1NGRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRj
aE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIp
OworCisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlv
bjogMjU0ZHBpKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hN
ZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDI2MGRwaSknKS5tYXRjaGVzIiwgImZhbHNl
Iik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlv
bjogMjU0ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNo
TWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAyNjBkcGkpJykubWF0Y2hlcyIsICJ0cnVl
Iik7CisKKyAgICAgICAgLy8gTm9uLXNxdWFyZSBtdXN0IG5ldmVyIG1hdGNoLgorICAgICAgICBz
aG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRj
aGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1y
ZXNvbHV0aW9uOiAxMDJkcGNtKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKworICAgICAgICBzaG91
bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDEwMGRwY20pJykubWF0
Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1t
aW4tcmVzb2x1dGlvbjogMTAyZHBjbSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNo
b3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5t
YXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtp
dC1tYXgtcmVzb2x1dGlvbjogMTAyZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICB9Cis8
L3NjcmlwdD4KKworPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOGU3ZDYwZWU2NTEzNjE5ZTY2MTFmMzk0YTg3
N2Q4ZmU2NzVlOTE4ZC4uMWQwOWU5OGViMGRjZGM2MmU2YzZkZGI5YWE2MGI2N2YwYTg0NWI5NCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xNzEsNiArMTcxLDcgQEAgd2Via2l0Lm9yZy9iLzc1MTIzIHdlYmludGVudHMvaW50ZW50LXRh
Zy5odG1sCiAKICMgQ1NTIGltYWdlLXJlc29sdXRpb24gaXMgbm90IHlldCBlbmFibGVkLgogd2Vi
a2l0Lm9yZy9iLzg1MjYyIGZhc3QvY3NzL2ltYWdlLXJlc29sdXRpb24KK3dlYmtpdC5vcmcvYi84
NTI2MiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRtbCBbIFNraXAgXQogCiAjIENTUyBpbWFn
ZS1vcmllbnRhdGlvbiBpcyBub3QgeWV0IGVuYWJsZWQuCiB3ZWJraXQub3JnL2IvODkwNTIgZmFz
dC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggNmFkODlmZTBjNTA4NzU3MDg4NjIxZDRkNzc1YmNjOTE4YzJhZDI4Yi4u
OWYyZDlkMDU0MzFjYTdmN2QxYjQ1MzRkMDc0ZmRiNGJlMTFjZWUyZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTk2NSw2ICs5NjUsNyBAQCB3ZWJraXQu
b3JnL2IvODc5MDggZWRpdGluZy91bmRvbWFuYWdlcgogCiAjIENTUyBpbWFnZS1yZXNvbHV0aW9u
IGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi84NTI2MiBmYXN0L2Nzcy9pbWFnZS1y
ZXNvbHV0aW9uCit3ZWJraXQub3JnL2IvODUyNjIgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0
bWwgWyBTa2lwIF0KIAogIyBDU1MgaW1hZ2Utb3JpZW50YXRpb24gaXMgbm90IHlldCBlbmFibGVk
Lgogd2Via2l0Lm9yZy9iLzg5MDUyIGZhc3QvY3NzL2ltYWdlLW9yaWVudGF0aW9uCmRpZmYgLS1n
aXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggZGQ4ZGMzODcwOGNjMDYyYmRjNTI2OGJl
NjEwMWJhOThlMmQ4ZDdiMC4uOTcwZWU3ZjcwNDQwYjg0YzFkNDllY2JlYjhhYzQzZjQ3NGE4YTdh
ZSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDEyLTEwLTE2ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0
Lm9yZz4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9h
dXRvdG9vbHMvc3ltYm9scy5maWx0ZXI6CisKKyAgICAgICAgICAgIEV4cG9ydCB0aGUgV2ViQ29y
ZTo6U2V0dGluZ3Mgc2V0dGluZy4KKwogMjAxMi0xMC0xNyAgR3J6ZWdvcnogQ3phamtvd3NraSAg
PGcuY3phamtvd3NraUBzYW1zdW5nLmNvbT4sIE1pY2hhbCBSb2ogPG0ucm9qQHNhc211bmcuY29t
PgogCiAgICAgICAgIFtXSzJdW0VGTF0gSW1wbGVtZW50YXRpb24gb2Ygc3BlbGxjaGVja2luZyBm
ZWF0dXJlLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169928</attachid>
            <date>2012-10-22 09:35:38 -0700</date>
            <delta_ts>2012-10-22 13:32:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99077-20121022183411.patch</filename>
            <type>text/plain</type>
            <size>35055</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWU0OTg0NWRhMzM3OWY1
MTgwZGI0OWJlZmE2NjhjYzBiNDdhOGRiYi4uZmVhYTY2ZDkyMGU4Nzg0MmMzMTY5MTA1MWE2NmI3
MmJmYTRiOGNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDEyLTEwLTE1ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBt
ZWRpYSBxdWVyeSBmZWF0dXJlIHdpdGggLXdlYmtpdAorICAgICAgICBwcmVmaXggZHVlIHRvIHRo
ZSBzdXBwb3J0IG9mIHRoZSBwcm9wb3NlZCBkcHB4IHZhbHVlcy4KKworICAgICAgICBBZGQgaW5m
cmFzdHJ1Y3R1cmUgdG8gbWFrZSBpdCB0ZXN0YWJsZS4KKworICAgICAgICBUZXN0OiBmYXN0L21l
ZGlhL21xLXJlc29sdXRpb24uaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisKKyAg
ICAgICAgICAgIEV4cG9ydCB0aGUgV2ViQ29yZTo6U2V0dGluZ3Mgc2V0dGluZy4KKworICAgICAg
ICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzRG90c1BlckluY2gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6OmlzRG90c1BlclBpeGVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjppc0RvdHNQZXJDZW50aW1ldGVyKToKKyAgICAgICAgKENTU1ByaW1pdGl2ZVZhbHVlKToK
KworICAgICAgICAgICAgQWRkIGZ1bmN0aW9uIGZvciBjaGVja2luZyB0aGUgcmVjZW50bHkgYWRk
ZWQgZGVuc2l0eSB0eXBlcy4KKworICAgICAgICAqIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5oOgor
ICAgICAgICAoTWVkaWFGZWF0dXJlTmFtZXMpOgorCisgICAgICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgLXdlYmtpdC1yZXNvbHV0aW9uLCAtd2Via2l0LW1pbi1yZXNvbHV0aW9uCisgICAgICAgICAg
ICBhbmQgLXdlYmtpdC1tYXgtcmVzb2x1dGlvbi4KKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVSZXNvbHV0aW9uKTogQWRk
IG1ldGhvZHMgZm9yIGNvbXBhcmluZyByZXNvbHV0aW9ucy4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAo
V2ViQ29yZTo6bWluX3Jlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAgKFdlYkNv
cmU6Om1heF9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCk6CisKKyAgICAgICAgICAgIEltcGxl
bWVudCB0aGUgcmVzb2x1dGlvbiBtZXRob2QgZXZhbHVhdGlvbi4KKworICAgICAgICAqIGNzcy9N
ZWRpYVF1ZXJ5RXhwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRoVmFsaWRQb3Np
dGl2ZURlbnNpdHkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpmZWF0
dXJlV2l0aG91dFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlFeHA6Ok1lZGlh
UXVlcnlFeHApOgorCisgICAgICAgICAgICBIb29rIHVwIHJlc29sdXRpb24gd2l0aCB0aGUgcmln
aHQgcHJlLWNoZWNrcy4KKworICAgICAgICogcGFnZS9TY3JlZW4uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyZWVuOjpob3Jpem9udGFsRFBJKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbjo6
dmVydGljYWxEUEkpOgorCisgICAgICAgICAgICBDaGVjayB3aGV0aGVyIGFuIG92ZXJyaWRlIGV4
aXN0cywgYW5kIGlmIHNvLCB1c2VzIGl0LgorCisgICAgICAgICogcGFnZS9TZXR0aW5ncy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0UmVzb2x1dGlvbk92ZXJyaWRlKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFNl
dHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpyZXNvbHV0aW9uT3ZlcnJpZGUp
OgorCisgICAgICAgICAgICBBZGQgYSByZXNvbHV0aW9uIG92ZXJyaWRlIHRvIHNldHRpbmdzLgor
CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKToKKyAgICAgICAgKFdlYkNvcmU6
OkludGVybmFsU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVycmlkZSk6CisgICAgICAgIChXZWJD
b3JlKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAgKEJh
Y2t1cCk6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaWRsOgorCisgICAgICAgICAgICBBZGQgYSBuZXcgc2V0UmVzb2x1dGlv
bk92ZXJyaWRlIG1ldGhvZCB0byBpbnRlcm5hbHMuc2V0dGluZ3MuCisKIDIwMTItMTAtMjEgIE1P
UklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgW1Y4XSBWOEVuYWJs
ZVBlckNvbnRleHQgc2hvdWxkbid0IHJlcXVpcmUgZG9jdW1lbnQoKSBhY2Nlc3NvciB0byB0aGUg
bmF0aXZlIG9iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwNzJiODcyODExYzZiNjc0NjFiMzIxMjM2MTE2
MWUzMTQ3Mjc1NGRmLi5iZTA2NGUyMjRlNTQ2MTVlYzYzZWNkNGJlMzMyYzhlZjgwNDQ2NWYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMTYgIEtlbm5ldGggUm9oZGUgQ2hy
aXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciByZXNvbHV0aW9uIG1lZGlhIHF1ZXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05OTA3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd2luL1dlYktpdDIuZGVmOgorCisgICAgICAgICAgICBBZGQgZXhw
b3J0cyBmb3IgdGhlIFdlYkNvcmU6OlNldHRpbmdzIHNldHRpbmcuCisKIDIwMTItMTAtMjEgIE1p
bGlhbiBXb2xmZiAgPG1pbGlhbi53b2xmZkBrZGFiLmNvbT4KIAogICAgICAgICBbUXRdIFFOWCBi
dWlsZCBmYWlscyB3aGVuIGJ1aWxkaW5nIGFnYWluc3QgUXQgd2l0aG91dCBjbGlwYm9hcmQgc3Vw
cG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA3OTM0NTUzMWE4ZTEzMGFjZGFkMDljNmNhY2U0
OGYwZTgwOWYxN2IzLi5mMTNkNjZlNGE0ZjM1MzlhMWIwZDUxMmZjZGU5Njg4NmI4YmZmMDM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtOTYzLDYgKzk2Myw3IEBAIF9fWk43V2ViQ29yZThTZXR0
aW5nczQwc2V0VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvckVOU18zN1RleHRE
aXJlY3RpCiBfX1pON1dlYkNvcmU4U2V0dGluZ3M0MXNldE5lZWRzS2V5Ym9hcmRFdmVudERpc2Ft
YmlndWF0aW9uUXVpcmtzRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczQ0c2V0TG9hZHNTaXRlSWNv
bnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRpbmdFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzNDVz
ZXRTaG91bGRSZXNwZWN0UHJpb3JpdHlJbkNTU0F0dHJpYnV0ZVNldHRlcnNFYgorX19aTjdXZWJD
b3JlOFNldHRpbmdzMjFzZXRSZXNvbHV0aW9uT3ZlcnJpZGVFUktOU183SW50U2l6ZUUKIF9fWk43
V2ViQ29yZThibGFua1VSTEV2CiBfX1pON1dlYkNvcmU4bWFrZVJHQkFFaWlpaQogX19aTjdXZWJD
b3JlOG9wZW5GaWxlRVJLTjNXVEY2U3RyaW5nRU5TXzEyRmlsZU9wZW5Nb2RlRQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAppbmRleCBhYTJkYmVhYzMyZGRiMzg3N2IxZGI1ZWZi
ZDBhYWVlNzcxMmQ2ODY2Li5kYzQ2NzgzNTA1OWRkNWZjY2U0ZjkxYTUyNWE3YjlkMWJiMmQ1N2Yx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaApAQCAtMTgxLDYgKzE4MSwx
MCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0NhbGN1bGF0ZWQoKSBjb25zdCB7IHJldHVybiBtX3By
aW1pdGl2ZVVuaXRUeXBlID09IENTU19DQUxDOyB9CiAgICAgYm9vbCBpc0NhbGN1bGF0ZWRQZXJj
ZW50YWdlV2l0aE51bWJlcigpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1Nf
Q0FMQ19QRVJDRU5UQUdFX1dJVEhfTlVNQkVSOyB9CiAgICAgYm9vbCBpc0NhbGN1bGF0ZWRQZXJj
ZW50YWdlV2l0aExlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1Nf
Q0FMQ19QRVJDRU5UQUdFX1dJVEhfTEVOR1RIOyB9CisgICAgYm9vbCBpc0RvdHNQZXJJbmNoKCkg
Y29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgpID09IENTU19EUEk7IH0KKyAgICBib29sIGlz
RG90c1BlclBpeGVsKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgpID09IENTU19EUFBY
OyB9CisgICAgYm9vbCBpc0RvdHNQZXJDZW50aW1ldGVyKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0
aXZlVHlwZSgpID09IENTU19EUENNOyB9CisKICNpZiBFTkFCTEUoQ1NTX1ZBUklBQkxFUykKICAg
ICBib29sIGlzVmFyaWFibGVOYW1lKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgpID09
IENTU19WQVJJQUJMRV9OQU1FOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhRmVhdHVy
ZU5hbWVzLmgKaW5kZXggYjA4NDM5ZTRhMDE4MzQ5MjJmZGEwMGU4YWQ5N2VmZjIwZmJlYzBmYy4u
NGNlYzI1NDVmNTg1M2M0ZWE5ZGZhZWY1ZjE2NTc4MDVlZDY5ZDNhOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhRmVhdHVyZU5hbWVzLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIG1hY3JvKG1heF9oZWlnaHQsICJtYXgtaGVpZ2h0IikgXAogICAgIG1hY3JvKG1h
eF9tb25vY2hyb21lLCAibWF4LW1vbm9jaHJvbWUiKSBcCiAgICAgbWFjcm8obWF4X3dpZHRoLCAi
bWF4LXdpZHRoIikgXAorICAgIG1hY3JvKG1heF9yZXNvbHV0aW9uLCAiLXdlYmtpdC1tYXgtcmVz
b2x1dGlvbiIpIFwKICAgICBtYWNybyhtaW5fY29sb3IsICJtaW4tY29sb3IiKSBcCiAgICAgbWFj
cm8obWluX2FzcGVjdF9yYXRpbywgIm1pbi1hc3BlY3QtcmF0aW8iKSBcCiAgICAgbWFjcm8obWlu
X2RldmljZV9hc3BlY3RfcmF0aW8sICJtaW4tZGV2aWNlLWFzcGVjdC1yYXRpbyIpIFwKQEAgLTU2
LDcgKzU3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKG1pbl9oZWlnaHQsICJt
aW4taGVpZ2h0IikgXAogICAgIG1hY3JvKG1pbl9tb25vY2hyb21lLCAibWluLW1vbm9jaHJvbWUi
KSBcCiAgICAgbWFjcm8obWluX3dpZHRoLCAibWluLXdpZHRoIikgXAorICAgIG1hY3JvKG1pbl9y
ZXNvbHV0aW9uLCAiLXdlYmtpdC1taW4tcmVzb2x1dGlvbiIpIFwKICAgICBtYWNybyhwb2ludGVy
LCAicG9pbnRlciIpIFwKKyAgICBtYWNybyhyZXNvbHV0aW9uLCAiLXdlYmtpdC1yZXNvbHV0aW9u
IikgXAogICAgIG1hY3JvKHRyYW5zZm9ybV8yZCwgIi13ZWJraXQtdHJhbnNmb3JtLTJkIikgXAog
ICAgIG1hY3JvKHRyYW5zZm9ybV8zZCwgIi13ZWJraXQtdHJhbnNmb3JtLTNkIikgXAogICAgIG1h
Y3JvKHRyYW5zaXRpb24sICItd2Via2l0LXRyYW5zaXRpb24iKSBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKaW5kZXggZGFhNDkwYjhiZGM4NDY4N2M3NDlhOWI1
MTBlNDRjMzljNjkxMDhlNS4uZjQzMzQ1ODNhN2U2YjFjOTEzODQzNTA3NzVkNjcwZDkzYjY0MzA5
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtMzQs
NiArMzQsNyBAQAogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NT
VmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlTGlzdC5oIgorI2luY2x1ZGUgIkRP
TVdpbmRvdy5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVWaWV3LmgiCkBAIC00OCw2ICs0OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVy
Vmlldy5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
KyNpbmNsdWRlICJTY3JlZW4uaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KIApAQCAtNjYsMTUgKzY4LDEzIEBAIHR5cGVkZWYgSGFzaE1hcDxB
dG9taWNTdHJpbmdJbXBsKiwgRXZhbEZ1bmM+IEZ1bmN0aW9uTWFwOwogc3RhdGljIEZ1bmN0aW9u
TWFwKiBnRnVuY3Rpb25NYXA7CiAKIC8qCi0gKiBGSVhNRTogZm9sbG93aW5nIG1lZGlhIGZlYXR1
cmVzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IGNvbG9yX2luZGV4LCBzY2FuLCByZXNvbHV0aW9uCisg
KiBGSVhNRTogZm9sbG93aW5nIG1lZGlhIGZlYXR1cmVzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IGNv
bG9yX2luZGV4LCBzY2FuCiAgKgogICogY29sb3JfaW5kZXgsIG1pbi1jb2xvci1pbmRleCwgbWF4
X2NvbG9yX2luZGV4OiBJdCdzIHVua25vd24gaG93IHRvIHJldHJpZXZlCiAgKiB0aGUgaW5mb3Jt
YXRpb24gaWYgdGhlIGRpc3BsYXkgbW9kZSBpcyBpbmRleGVkCiAgKiBzY2FuOiBUaGUgInNjYW4i
IG1lZGlhIGZlYXR1cmUgZGVzY3JpYmVzIHRoZSBzY2FubmluZyBwcm9jZXNzIG9mCiAgKiB0diBv
dXRwdXQgZGV2aWNlcy4gSXQncyB1bmtub3duIGhvdyB0byByZXRyaWV2ZSB0aGlzIGluZm9ybWF0
aW9uIGZyb20KICAqIHRoZSBwbGF0Zm9ybQotICogcmVzb2x1dGlvbiwgbWluLXJlc29sdXRpb24s
IG1heC1yZXNvbHV0aW9uOiBjc3MgcGFyc2VyIGRvZXNuJ3Qgc2VlbSB0bwotICogc3VwcG9ydCBD
U1NfRElNRU5TSU9OCiAgKi8KIAogTWVkaWFRdWVyeUV2YWx1YXRvcjo6TWVkaWFRdWVyeUV2YWx1
YXRvcihib29sIG1lZGlhRmVhdHVyZVJlc3VsdCkKQEAgLTE5Nyw2ICsxOTcsMjMgQEAgc3RhdGlj
IGJvb2wgY29tcGFyZUFzcGVjdFJhdGlvVmFsdWUoQ1NTVmFsdWUqIHZhbHVlLCBpbnQgd2lkdGgs
IGludCBoZWlnaHQsIE1lZGkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKyNpZiBFTkFCTEUoQ1NT
X0lNQUdFX1JFU09MVVRJT04pCitzdGF0aWMgYm9vbCBjb21wYXJlUmVzb2x1dGlvbihmbG9hdCBt
aW4sIGZsb2F0IG1heCwgZmxvYXQgdmFsdWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKK3sKKyAg
ICBzd2l0Y2ggKG9wKSB7CisgICAgY2FzZSBOb1ByZWZpeDoKKyAgICAgICAgLy8gQSAncmVzb2x1
dGlvbicgKHdpdGhvdXQgYSAibWluLSIgb3IgIm1heC0iIHByZWZpeCkgcXVlcnkKKyAgICAgICAg
Ly8gbmV2ZXIgbWF0Y2hlcyBhIGRldmljZSB3aXRoIG5vbi1zcXVhcmUgcGl4ZWxzLgorICAgICAg
ICByZXR1cm4gdmFsdWUgPT0gbWluICYmIHZhbHVlID09IG1heDsKKyAgICBjYXNlIE1pblByZWZp
eDoKKyAgICAgICAgcmV0dXJuIG1pbiA+PSB2YWx1ZTsKKyAgICBjYXNlIE1heFByZWZpeDoKKyAg
ICAgICAgcmV0dXJuIG1heCA8PSB2YWx1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQor
I2VuZGlmCisKIHN0YXRpYyBib29sIG51bWJlclZhbHVlKENTU1ZhbHVlKiB2YWx1ZSwgZmxvYXQm
IHJlc3VsdCkKIHsKICAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKQpAQCAtMjc4LDYg
KzI5NSw4NyBAQCBzdGF0aWMgYm9vbCBkZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVFdmFs
KENTU1ZhbHVlICp2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcgogICAgIHJldHVybiBmcmFtZS0+cGFn
ZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpICE9IDA7CiB9CiAKK3N0YXRpYyBib29sIHJlc29sdXRp
b25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSog
ZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKK3sKKyNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JF
U09MVVRJT04pCisgICAgLy8gVGhlIERQSSBiZWxvdyBpcyBkb3RzIHBlciBDU1MgaW5jaCBhbmQg
dGh1cyBub3QgZGV2aWNlIGluY2guIFRoZQorICAgIC8vIGZ1bmN0aW9ucyBzaG91bGQgcmVzcGVj
dCB0aGlzLgorICAgIC8vCisgICAgLy8gRm9yIHNxdWFyZSBwaXhlbHMsIGl0IGlzIHNpbXBseSB0
aGUgZGV2aWNlIHNjYWxlIGZhY3RvciAoZHBweCkgdGltZXMgOTYsCisgICAgLy8gcGVyIGRlZmlu
aXRpb24uCisgICAgLy8KKyAgICAvLyBUaGUgZGV2aWNlIHNjYWxlIGZhY3RvciBpcyBhIHByZWRl
ZmluZWQgdmFsdWUgd2hpY2ggaXMgY2FsY3VsYXRlZCBwZXIKKyAgICAvLyBkZXZpY2UgZ2l2ZW4g
dGhlIHByZWZlcnJlZCBkaXN0YW5jZSBpbiBhcm1zIGxlbmd0aCAoY29uc2lkZXJlZCBvbmUgYXJt
cworICAgIC8vIGxlbmd0aCBmb3IgZGVza3RvcCBjb21wdXRlcnMgYW5kIHVzdWFsbHkgMC42IGFy
bXMgbGVuZ3RoIGZvciBwaG9uZXMpLgorICAgIC8vCisgICAgLy8gVGhlIHZhbHVlIGNhbiBiZSBj
YWxjdWxhdGVkIGFzIGZvbGxvd3MgKHJvdW5kZWQgdG8gcXVhcnRlcnMpOgorICAgIC8vICAgICBy
b3VuZCgoZGV2aWNlRG90c1BlckluY2ggKiBkaXN0YW5jZUluQXJtc0xlbmd0aCAvIDk2KSAqIDQp
IC8gNC4KKyAgICAvLyBFeGFtcGxlIChtaWQtcmFuZ2UgcmVzb2x1dGlvbiBwaG9uZSk6CisgICAg
Ly8gICAgIHJvdW5kKCgyNDQgKiAwLjYgLyA5NikgKiA0KSAvIDQgPSAxLjUKKyAgICAvLyBFeGFt
cGxlIChoaWdoLXJhbmdlIHJlc29sdXRpb24gbGFwdG9wKToKKyAgICAvLyAgICAgcm91bmQoKDIy
MCAqIDEuMCAvIDk2KSAqIDQpIC8gNCA9IDIuMAorCisgICAgZmxvYXQgaG9yaURQSSA9IGZyYW1l
LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+c2NyZWVuKCktPmhvcml6b250YWxEUEkoKTsKKyAg
ICBmbG9hdCB2ZXJ0RFBJID0gZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5zY3JlZW4o
KS0+dmVydGljYWxEUEkoKTsKKworICAgIGZsb2F0IGxlYXN0RGVuc2VEUEkgPSBzdGQ6Om1pbiho
b3JpRFBJLCB2ZXJ0RFBJKTsKKyAgICBmbG9hdCBtb3N0RGVuc2VEUEkgPSBzdGQ6Om1heChob3Jp
RFBJLCB2ZXJ0RFBJKTsKKworICAgIC8vIEFjY29yZGluZyB0byBzcGVjLCAocmVzb2x1dGlvbikg
d2lsbCBldmFsdWF0ZSB0byB0cnVlIGlmIChyZXNvbHV0aW9uOngpCisgICAgLy8gd2lsbCBldmFs
dWF0ZSB0byB0cnVlIGZvciBhIHZhbHVlIHggb3RoZXIgdGhhbiB6ZXJvIG9yIHplcm8gZm9sbG93
ZWQgYnkKKyAgICAvLyBhIHZhbGlkIHVuaXQgaWRlbnRpZmllciAoaS5lLiwgb3RoZXIgdGhhbiAw
LCAwZHBpLCAwZHBjbSwgb3IgMGRwcHguKSwKKyAgICAvLyB3aGljaCBpcyBhbHdheXMgdGhlIGNh
c2UuIEJ1dCB0aGUgc3BlYyBzcGVjaWFsIGNhc2VzICdyZXNvbHV0aW9uJyB0bworICAgIC8vIG5l
dmVyIG1hdGNoZXMgYSBkZXZpY2Ugd2l0aCBub24tc3F1YXJlIHBpeGVscy4KKyAgICBpZiAoIXZh
bHVlKSB7CisgICAgICAgIEFTU0VSVChvcCA9PSBOb1ByZWZpeCk7CisgICAgICAgIHJldHVybiBs
ZWFzdERlbnNlRFBJID09IG1vc3REZW5zZURQSTsKKyAgICB9CisKKyAgICBpZiAoIXZhbHVlLT5p
c1ByaW1pdGl2ZVZhbHVlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIGh0dHA6
Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtdmFsdWVzLyNyZXNvbHV0aW9uIGRlZmluZXMgcmVzb2x1
dGlvbiBhcyBhCisgICAgLy8gZGltZW5zaW9uLCB3aGljaCBjb250YWlucyBhIG51bWJlciAoZGVj
aW1hbCBwb2ludCBhbGxvd2VkKSwgbm90IGp1c3QgYW4KKyAgICAvLyBpbnRlZ2VyLiBBbHNvLCBo
dHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXZhbHVlcy8jbnVtZXJpYy10eXBlcyBzYXlzCisg
ICAgLy8gIkNTUyB0aGVvcmV0aWNhbGx5IHN1cHBvcnRzIGluZmluaXRlIHByZWNpc2lvbiBhbmQg
aW5maW5pdGUgcmFuZ2VzIGZvcgorICAgIC8vIGFsbCB2YWx1ZSB0eXBlczsKKyAgICBDU1NQcmlt
aXRpdmVWYWx1ZSogcmF3VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZh
bHVlKTsKKworICAgIGlmIChyYXdWYWx1ZS0+aXNEb3RzUGVyUGl4ZWwoKSkgeworICAgICAgICAv
LyBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXZhbHVlcy8jYWJzb2x1dGUtbGVuZ3RocyBy
ZWNvbW1lbmRzCisgICAgICAgIC8vICJ0aGF0IHRoZSBwaXhlbCB1bml0IHJlZmVyIHRvIHRoZSB3
aG9sZSBudW1iZXIgb2YgZGV2aWNlIHBpeGVscyB0aGF0CisgICAgICAgIC8vIGJlc3QgYXBwcm94
aW1hdGVzIHRoZSByZWZlcmVuY2UgcGl4ZWwiLiBXZSBjb21wYXJlIHdpdGggMiBkZWNpbWFsCisg
ICAgICAgIC8vIHBvaW50cywgd2hpY2ggYWxpZ25zIHdpdGggY3VycmVudCBkZXZpY2UtcGl4ZWwt
cmF0aW8ncyBpbiB1c2UuCisgICAgICAgIGZsb2F0IGxlYXN0RGVuc2VEZW5zaXR5ID0gZmxvb3Jm
KGxlYXN0RGVuc2VEUEkgKiAxMDAgLyA5NikgLyAxMDA7CisgICAgICAgIGZsb2F0IG1vc3REZW5z
ZURlbnNpdHkgPSBmbG9vcmYobGVhc3REZW5zZURQSSAqIDEwMCAvIDk2KSAvIDEwMDsKKyAgICAg
ICAgZmxvYXQgdGVzdGVkRGVuc2l0eSA9IHJhd1ZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfRFBQWCk7CisgICAgICAgIHJldHVybiBjb21wYXJlUmVzb2x1dGlvbihs
ZWFzdERlbnNlRGVuc2l0eSwgbW9zdERlbnNlRGVuc2l0eSwgdGVzdGVkRGVuc2l0eSwgb3ApOwor
ICAgIH0KKworICAgIGlmIChyYXdWYWx1ZS0+aXNEb3RzUGVySW5jaCgpKSB7CisgICAgICAgIHVu
c2lnbmVkIHRlc3RlZERlbnNpdHkgPSByYXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX0RQSSk7CisgICAgICAgIHJldHVybiBjb21wYXJlUmVzb2x1dGlvbihsZWFz
dERlbnNlRFBJLCBtb3N0RGVuc2VEUEksIHRlc3RlZERlbnNpdHksIG9wKTsKKyAgICB9CisKKyAg
ICAvLyBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXZhbHVlcy8jYWJzb2x1dGUtbGVuZ3Ro
cyByZWNvbW1lbmRzICJ0aGF0CisgICAgLy8gdGhlIHBpeGVsIHVuaXQgcmVmZXIgdG8gdGhlIHdo
b2xlIG51bWJlciBvZiBkZXZpY2UgcGl4ZWxzIHRoYXQgYmVzdAorICAgIC8vIGFwcHJveGltYXRl
cyB0aGUgcmVmZXJlbmNlIHBpeGVsIi4KKyAgICBmbG9hdCBsZWFzdERlbnNlRFBDTSA9IHJvdW5k
ZihsZWFzdERlbnNlRFBJIC8gMi41NCk7IC8vICgyLjU0IGNtL2luKQorICAgIGZsb2F0IG1vc3RE
ZW5zZURQQ00gPSByb3VuZGYobW9zdERlbnNlRFBJIC8gMi41NCk7CisKKyAgICBpZiAocmF3VmFs
dWUtPmlzRG90c1BlckNlbnRpbWV0ZXIoKSkgeworICAgICAgICBmbG9hdCB0ZXN0ZWREZW5zaXR5
ID0gcmF3VmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUENNKTsK
KyAgICAgICAgcmV0dXJuIGNvbXBhcmVSZXNvbHV0aW9uKGxlYXN0RGVuc2VEUENNLCBtb3N0RGVu
c2VEUENNLCB0ZXN0ZWREZW5zaXR5LCBvcCk7CisgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0odmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKG9w
KTsKKyNlbmRpZgorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgYm9vbCBncmlkTWVk
aWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqLCBNZWRp
YUZlYXR1cmVQcmVmaXggb3ApCiB7CiAgICAgLy8gaWYgb3V0cHV0IGRldmljZSBpcyBiaXRtYXAs
IGdyaWQ6IDAgPT0gdHJ1ZQpAQCAtNDU2LDYgKzU1NCwxNiBAQCBzdGF0aWMgYm9vbCBtYXhfZGV2
aWNlX3dpZHRoTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBz
dHlsZQogICAgIHJldHVybiBkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHls
ZSwgZnJhbWUsIE1heFByZWZpeCk7CiB9CiAKK3N0YXRpYyBib29sIG1pbl9yZXNvbHV0aW9uTWVk
aWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUq
IGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCit7CisgICAgcmV0dXJuIHJlc29sdXRpb25NZWRp
YUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1pblByZWZpeCk7Cit9CisKK3N0YXRp
YyBib29sIG1heF9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJl
bmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCit7Cisg
ICAgcmV0dXJuIHJlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUs
IE1heFByZWZpeCk7Cit9CisKIHN0YXRpYyBib29sIGFuaW1hdGlvbk1lZGlhRmVhdHVyZUV2YWwo
Q1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiwgTWVkaWFGZWF0dXJlUHJlZml4
IG9wKQogewogICAgIGlmICh2YWx1ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L01lZGlhUXVlcnlFeHAuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3Bw
CmluZGV4IDFhMDZiNzk2NWZjY2I5OGEwOTM1Njk1Njk3NThiMjFmYzZlMjk5ODEuLjIzYmU0Mjlj
YWRlODUyMGFiYzAzOTQzZjFlMjM0ZWQxOWFjZmUwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFR
dWVyeUV4cC5jcHAKQEAgLTY3LDYgKzY3LDE2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJl
V2l0aFZhbGlkUG9zaXRpdmVMZW5naHRPck51bWJlcihjb25zdCBBdG9taWNTdHJpbmcmIG1lCiAg
ICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX2RldmljZV93
aWR0aE1lZGlhRmVhdHVyZTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRoVmFs
aWREZW5zaXR5KGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBjb25zdCBDU1NQYXJz
ZXJWYWx1ZSogdmFsdWUpCit7CisgICAgaWYgKCh2YWx1ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX0RQUFggJiYgdmFsdWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19E
UEkgJiYgdmFsdWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUENNKSB8fCB2YWx1
ZS0+ZlZhbHVlIDw9IDApCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBtZWRp
YUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnJlc29sdXRpb25NZWRpYUZlYXR1cmUKKyAg
ICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhfcmVzb2x1dGlv
bk1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFt
ZXM6Om1pbl9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlOworfQorCiBzdGF0aWMgaW5saW5lIGJvb2wg
ZmVhdHVyZVdpdGhQb3NpdGl2ZUludGVnZXIoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1
cmUsIGNvbnN0IENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKIHsKICAgICBpZiAoIXZhbHVlLT5pc0lu
dCB8fCB2YWx1ZS0+ZlZhbHVlIDwgMCkKQEAgLTExNCw2ICsxMjQsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgZmVhdHVyZVdpdGhBc3BlY3RSYXRpbyhjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVh
dHVyZSkKIAogc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRob3V0VmFsdWUoY29uc3QgQXRv
bWljU3RyaW5nJiBtZWRpYUZlYXR1cmUpCiB7CisgICAgLy8gTWVkaWEgZmVhdHVyZXMgdGhhdCBh
cmUgcHJlZml4ZWQgYnkgbWluL21heCBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IGEgdmFsdWUuCiAg
ICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bW9ub2Nocm9tZU1l
ZGlhRmVhdHVyZQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6
OmNvbG9yTWVkaWFGZWF0dXJlCiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1
cmVOYW1lczo6Z3JpZE1lZGlhRmVhdHVyZQpAQCAtMTMxLDcgKzE0Miw4IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBmZWF0dXJlV2l0aG91dFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0
dXJlKQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmFuaW1h
dGlvbk1lZGlhRmVhdHVyZQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJl
TmFtZXM6OnZpZXdfbW9kZU1lZGlhRmVhdHVyZQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0g
TWVkaWFGZWF0dXJlTmFtZXM6OnBvaW50ZXJNZWRpYUZlYXR1cmUKLSAgICAgICAgfHwgbWVkaWFG
ZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1
cmU7CisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6ZGV2aWNl
X3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRp
YUZlYXR1cmVOYW1lczo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZTsKIH0KIAogaW5saW5lIE1lZGlh
UXVlcnlFeHA6Ok1lZGlhUXVlcnlFeHAoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUs
IENTU1BhcnNlclZhbHVlTGlzdCogdmFsdWVMaXN0KQpAQCAtMTQ4LDYgKzE2MCwxMCBAQCBpbmxp
bmUgTWVkaWFRdWVyeUV4cDo6TWVkaWFRdWVyeUV4cChjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlh
RmVhdHVyZSwgQ1NTUGFyc2VyVgogICAgICAgICAgICAgaWYgKGZlYXR1cmVXaXRoQ1NTVmFsdWVJ
RChtZWRpYUZlYXR1cmUsIHZhbHVlKSkKICAgICAgICAgICAgICAgICBtX3ZhbHVlID0gQ1NTUHJp
bWl0aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIodmFsdWUtPmlkKTsKIAorICAgICAgICAgICAg
Ly8gTWVkaWEgZmVhdHVyZXMgdGhhdCBtdXN0IGhhdmUgbm9uLW5lZ2F0aXZlIDxkZW5zaXR5Piwg
aWUuIGRwcHgsIGRwaSBvciBkcGNtLgorICAgICAgICAgICAgZWxzZSBpZiAoZmVhdHVyZVdpdGhW
YWxpZERlbnNpdHkobWVkaWFGZWF0dXJlLCB2YWx1ZSkpCisgICAgICAgICAgICAgICAgbV92YWx1
ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUtPmZWYWx1ZSwgKENTU1ByaW1pdGl2
ZVZhbHVlOjpVbml0VHlwZXMpIHZhbHVlLT51bml0KTsKKwogICAgICAgICAgICAgLy8gTWVkaWEg
ZmVhdHVyZXMgdGhhdCBtdXN0IGhhdmUgbm9uLW5lZ2F0aXZlIDxsZW5naHQ+IG9yIG51bWJlciB2
YWx1ZS4KICAgICAgICAgICAgIGVsc2UgaWYgKGZlYXR1cmVXaXRoVmFsaWRQb3NpdGl2ZUxlbmdo
dE9yTnVtYmVyKG1lZGlhRmVhdHVyZSwgdmFsdWUpKQogICAgICAgICAgICAgICAgIG1fdmFsdWUg
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5mVmFsdWUsIChDU1NQcmltaXRpdmVW
YWx1ZTo6VW5pdFR5cGVzKSB2YWx1ZS0+dW5pdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NjcmVlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKaW5kZXgg
ZTFlMWQxMTczODZmNjIyZWUzYzE5M2IzZTUwMjJjODgzYThjMjViMS4uNDBhMzg4ZWQyM2E0YTU4
ODNlMDE4ZGExNWMxZjVhODNhNDkyNGNiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9TY3JlZW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcApAQCAtMzUs
NiArMzUsNyBAQAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCisjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNDgsNiArNDksMTEgQEAgdW5zaWduZWQgU2NyZWVuOjpob3Jpem9udGFsRFBJKCkgY29uc3QK
IHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybiAwOworCisgICAgSW50U2l6ZSBv
dmVycmlkZSA9IG1fZnJhbWUtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+cmVzb2x1dGlvbk92ZXJyaWRl
KCk7CisgICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBvdmVycmlk
ZS53aWR0aCgpOworCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzY3JlZW5Ib3Jp
em9udGFsRFBJKG1fZnJhbWUtPnZpZXcoKSkpOwogfQogCkBAIC01NSw2ICs2MSwxMSBAQCB1bnNp
Z25lZCBTY3JlZW46OnZlcnRpY2FsRFBJKCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAg
ICAgICAgIHJldHVybiAwOworCisgICAgSW50U2l6ZSBvdmVycmlkZSA9IG1fZnJhbWUtPnBhZ2Uo
KS0+c2V0dGluZ3MoKS0+cmVzb2x1dGlvbk92ZXJyaWRlKCk7CisgICAgaWYgKCFvdmVycmlkZS5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiBvdmVycmlkZS5oZWlnaHQoKTsKKwogICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2NyZWVuVmVydGljYWxEUEkobV9mcmFtZS0+dmlldygp
KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggOTg3NmFmNWM3NmQyMjU1Y2Vi
MmY4ODBiODQ5NTE5ZDI2YzNkM2VkNC4uNzRiOTJmOWY5YzM5NzExNTk5NDQyYzcxNDRiOWRhZWJl
NWQ3Nzc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTQ1OSw2ICs0NTksMTUgQEAg
dm9pZCBTZXR0aW5nczo6c2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoZmxvYXQgZm9u
dFNjYWxlRmFjdG9yKQogCiAjZW5kaWYKIAordm9pZCBTZXR0aW5nczo6c2V0UmVzb2x1dGlvbk92
ZXJyaWRlKGNvbnN0IEludFNpemUmIGRlbnNpdHlQZXJJbmNoT3ZlcnJpZGUpCit7CisgICAgaWYg
KG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJpZGUgPT0gZGVuc2l0eVBlckluY2hPdmVy
cmlkZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9yZXNvbHV0aW9uRGVuc2l0eVBlckluY2hP
dmVycmlkZSA9IGRlbnNpdHlQZXJJbmNoT3ZlcnJpZGU7CisgICAgbV9wYWdlLT5zZXROZWVkc1Jl
Y2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKK30KKwogdm9pZCBTZXR0aW5nczo6c2V0TG9hZHNJbWFn
ZXNBdXRvbWF0aWNhbGx5KGJvb2wgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KQogewogICAgIG1f
bG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5ID0gbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5oCmluZGV4IDg5Nzg1ZDEyZjZlMjkxNjZkYWMzYmFmY2JlZjcwYjA1ZGVm
ZmI0NmEuLmM3MWYzMmU4NjFkNzFkN2M2Mjg0MzYwOWFjZjRlMzU1MmJhNDMwMzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkVkaXRpbmdCZWhh
dmlvclR5cGVzLmgiCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKKyNpbmNsdWRlICJJ
bnRTaXplLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgi
CiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTM3LDEwICszOCw2IEBACiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQXRvbWljU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4K
IAotI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2Vu
ZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFBhZ2U7CkBAIC0xMjMsNiAr
MTIwLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY29uc3QgSW50U2l6ZSYgdGV4
dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBtX3RleHRBdXRv
c2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlOyB9CiAjZW5kaWYKIAorICAgICAgICAvLyBPbmx5IHNl
dCBieSBMYXlvdXQgVGVzdHMuCisgICAgICAgIHZvaWQgc2V0UmVzb2x1dGlvbk92ZXJyaWRlKGNv
bnN0IEludFNpemUmKTsKKyAgICAgICAgY29uc3QgSW50U2l6ZSYgcmVzb2x1dGlvbk92ZXJyaWRl
KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHV0aW9uRGVuc2l0eVBlckluY2hPdmVycmlkZTsgfQor
CiAgICAgICAgIC8vIFVubGlrZSBhcmVJbWFnZXNFbmFibGVkLCB0aGlzIG9ubHkgc3VwcHJlc3Nl
cyB0aGUgbmV0d29yayBsb2FkIG9mCiAgICAgICAgIC8vIHRoZSBpbWFnZSBVUkwuICBBIGNhY2hl
ZCBpbWFnZSB3aWxsIHN0aWxsIGJlIHJlbmRlcmVkIGlmIHJlcXVlc3RlZC4KICAgICAgICAgdm9p
ZCBzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoYm9vbCk7CkBAIC02ODYsNiArNjg3LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBJbnRTaXplIG1fdGV4dEF1dG9zaXppbmdXaW5k
b3dTaXplT3ZlcnJpZGU7CiAgICAgICAgIGJvb2wgbV90ZXh0QXV0b3NpemluZ0VuYWJsZWQgOiAx
OwogI2VuZGlmCisgICAgICAgIEludFNpemUgbV9yZXNvbHV0aW9uRGVuc2l0eVBlckluY2hPdmVy
cmlkZTsKICAgICAgICAgYm9vbCBtX2lzU3BhdGlhbE5hdmlnYXRpb25FbmFibGVkIDogMTsKICAg
ICAgICAgYm9vbCBtX2lzSmF2YUVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNKYXZhRW5h
YmxlZEZvckxvY2FsRmlsZXMgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5jcHAKaW5kZXggOGQ4ZjBjYjQwOTAwMzY1ZTYwYTQzODRlY2IwOTc0MDU0NzcxNWFm
OS4uYmRhNzBhZDgxOWQyMzhiYjQyYjhmMWJlOTRlNThjNWFiN2ZhYjc4NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC05Nyw2ICs5Nyw3IEBAIElu
dGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKFBhZ2UqIHBhZ2UsIFNldHRpbmdzKiBzZXR0
aW5ncykKICAgICAsIG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShz
ZXR0aW5ncy0+dGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoKSkKICAgICAsIG1fb3Jp
Z2luYWxUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcihzZXR0aW5ncy0+dGV4dEF1dG9zaXpp
bmdGb250U2NhbGVGYWN0b3IoKSkKICNlbmRpZgorICAgICwgbV9vcmlnaW5hbFJlc29sdXRpb25P
dmVycmlkZShzZXR0aW5ncy0+cmVzb2x1dGlvbk92ZXJyaWRlKCkpCiAjaWYgRU5BQkxFKERJQUxP
R19FTEVNRU5UKQogICAgICwgbV9vcmlnaW5hbERpYWxvZ0VsZW1lbnRFbmFibGVkKFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OmRpYWxvZ0VsZW1lbnRFbmFibGVkKCkpCiAjZW5kaWYKQEAgLTEzNiw2
ICsxMzcsNyBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVzdG9yZVRvKFBhZ2Uq
IHBhZ2UsIFNldHRpbmdzKiBzZXR0aW5ncykKICAgICBzZXR0aW5ncy0+c2V0VGV4dEF1dG9zaXpp
bmdXaW5kb3dTaXplT3ZlcnJpZGUobV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92
ZXJyaWRlKTsKICAgICBzZXR0aW5ncy0+c2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3Io
bV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKTsKICNlbmRpZgorICAgIHNl
dHRpbmdzLT5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUobV9vcmlnaW5hbFJlc29sdXRpb25PdmVycmlk
ZSk7CiAjaWYgRU5BQkxFKERJQUxPR19FTEVNRU5UKQogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNldERpYWxvZ0VsZW1lbnRFbmFibGVkKG1fb3JpZ2luYWxEaWFsb2dFbGVtZW50RW5hYmxl
ZCk7CiAjZW5kaWYKQEAgLTQxMyw2ICs0MTUsMTMgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpz
ZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShpbnQgd2lkdGgsIGludCBoZWlnaHQK
ICNlbmRpZgogfQogCit2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVycmlk
ZShpbnQgZG90c1BlckNTU0luY2hIb3Jpem9udGFsbHksIGludCBkb3RzUGVyQ1NTSW5jaFZlcnRp
Y2FsbHksIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZv
clNldHRpbmdzKCk7CisgICAgLy8gQW4gZW1wdHkgc2l6ZSByZXNldHMgdGhlIG92ZXJyaWRlLgor
ICAgIHNldHRpbmdzKCktPnNldFJlc29sdXRpb25PdmVycmlkZShJbnRTaXplKGRvdHNQZXJDU1NJ
bmNoSG9yaXpvbnRhbGx5LCBkb3RzUGVyQ1NTSW5jaFZlcnRpY2FsbHkpKTsKK30KKwogdm9pZCBJ
bnRlcm5hbFNldHRpbmdzOjpzZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcihmbG9hdCBm
b250U2NhbGVGYWN0b3IsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogI2lmIEVOQUJMRShURVhUX0FV
VE9TSVpJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0
dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4
IDc4ZjM2ZTAxNzYxY2ViZGMzMWQ4OTQyMTlkMzIwYjYwMmExNjliNGYuLmY2NzljNmZjMDI3M2Vk
MGNmMzljODVmM2VlN2FiOWEwNjM5MGVjNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5oCkBAIC0yNywxNSArMjcsMTIgQEAKICNkZWZpbmUgSW50ZXJuYWxTZXR0
aW5nc19oCiAKICNpbmNsdWRlICJFZGl0aW5nQmVoYXZpb3JUeXBlcy5oIgorI2luY2x1ZGUgIklu
dFNpemUuaCIKICNpbmNsdWRlICJSZWZDb3VudGVkU3VwcGxlbWVudC5oIgogI2luY2x1ZGUgPHd0
Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCi0jaW5j
bHVkZSAiSW50U2l6ZS5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdHlwZWRl
ZiBpbnQgRXhjZXB0aW9uQ29kZTsKQEAgLTc5LDYgKzc2LDcgQEAgcHVibGljOgogICAgICAgICBJ
bnRTaXplIG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZTsKICAgICAg
ICAgZmxvYXQgbV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yOwogI2VuZGlm
CisgICAgICAgIEludFNpemUgbV9vcmlnaW5hbFJlc29sdXRpb25PdmVycmlkZTsKICNpZiBFTkFC
TEUoRElBTE9HX0VMRU1FTlQpCiAgICAgICAgIGJvb2wgbV9vcmlnaW5hbERpYWxvZ0VsZW1lbnRF
bmFibGVkOwogI2VuZGlmCkBAIC0xMjcsNiArMTI1LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
VGV4dEF1dG9zaXppbmdFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAg
IHZvaWQgc2V0VGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoaW50IHdpZHRoLCBpbnQg
aGVpZ2h0LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRUZXh0QXV0b3NpemluZ0ZvbnRT
Y2FsZUZhY3RvcihmbG9hdCBmb250U2NhbGVGYWN0b3IsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2
b2lkIHNldFJlc29sdXRpb25PdmVycmlkZShpbnQgZG90c1BlckNTU0luY2hIb3Jpem9udGFsbHks
IGludCBkb3RzUGVyQ1NTSW5jaFZlcnRpY2FsbHksIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lk
IHNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIGJvb2wgc2Nyb2xsQW5pbWF0b3JFbmFibGVkKEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lk
IHNldENTU0V4Y2x1c2lvbnNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggZjM0NjRi
ZTlhNGVjNjQ1NjRiNDM0NTA5Nzg3ZGY4NDdlM2VlODFjZS4uMjllZTNhMDIxZDg1Y2YyYjQ1MWJk
M2FmZDU2YmZkZDVlNmIwY2I5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaWRsCkBAIC01Niw2ICs1Niw3IEBACiAgICAgdm9pZCBzZXRUZXh0QXV0b3Npemlu
Z0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2
b2lkIHNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKGluIGxvbmcgd2lkdGgsIGlu
IGxvbmcgaGVpZ2h0KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldFRleHRBdXRv
c2l6aW5nRm9udFNjYWxlRmFjdG9yKGluIGZsb2F0IGZvbnRTY2FsZUZhY3RvcikgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisgICAgdm9pZCBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoaW4gbG9uZyBkb3Rz
UGVyQ1NTSW5jaEhvcml6b250YWxseSwgaW4gbG9uZyBkb3RzUGVyQ1NTSW5jaFZlcnRpY2FsbHkp
IHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3Io
aW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICBib29sZWFuIHNj
cm9sbEFuaW1hdG9yRW5hYmxlZCgpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0
Q1NTRXhjbHVzaW9uc0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgppbmRleCBkMzlmMTRhM2NhYWMyODg2ZTkwYTkwZGE1
M2U5ZjBhYTY3MGU2YjU2Li45ZmE0NjcxMGYxMWIyNzkyMzBjYmRkNjQzYmY5N2UwNTc5YWY0NWFh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNl
L1dlYktpdDIvd2luL1dlYktpdDIuZGVmCkBAIC0yNDEsNiArMjQxLDcgQEAgRVhQT1JUUwogICAg
ICAgICA/c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5QFNldHRpbmdzQFdlYkNvcmVAQFFBRVhXNFN0
b3JhZ2VCbG9ja2luZ1BvbGljeUBTZWN1cml0eU9yaWdpbkAyQEBaCiAgICAgICAgID9zZXRTdWdn
ZXN0ZWRWYWx1ZUBIVE1MSW5wdXRFbGVtZW50QFdlYkNvcmVAQFFBRVhBQlZTdHJpbmdAV1RGQEBA
WgogICAgICAgICA/c2V0RWRpdGluZ1ZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUFF
WEFCVlN0cmluZ0BXVEZAQEBaCisgICAgICAgID9zZXRSZXNvbHV0aW9uT3ZlcnJpZGVAU2V0dGlu
Z3NAV2ViQ29yZUBAUUFFWEFCVkludFNpemVAMkBAWgogICAgICAgICA/c2V0dGluZ3NARG9jdW1l
bnRAV2ViQ29yZUBAUUJFUEFWU2V0dGluZ3NAMkBYWgogICAgICAgICA/c2V0dGluZ3NARnJhbWVA
V2ViQ29yZUBAUUJFUEFWU2V0dGluZ3NAMkBYWgogICAgICAgICA/c2V0Rml4ZWRFbGVtZW50c0xh
eW91dFJlbGF0aXZlVG9GcmFtZUBTZXR0aW5nc0BXZWJDb3JlQEBRQUVYX05AWgpkaWZmIC0tZ2l0
IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3lt
Ym9scy5maWx0ZXIKaW5kZXggYWVkNTRhZjIxYWM4Yzg4NGJkZWUyMjRlODliZTJlNmNhODQ1YWZk
Zi4uMzJlZmU1YTlkZWRmMGEyMTg3ZmY5MThmNWJkMGI0ODk0YTIyNDVmZCAxMDA2NDQKLS0tIGEv
U291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5
bWJvbHMuZmlsdGVyCkBAIC0xNzUsNiArMTc1LDcgQEAgX1pON1dlYkNvcmU4U2V0dGluZ3MyNHNl
dE1vY2tTY3JvbGxiYXJzRW5hYmxlZEViOwogX1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldFVzZXNP
dmVybGF5U2Nyb2xsYmFyc0ViOwogX1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldFN0b3JhZ2VCbG9j
a2luZ1BvbGljeUVOU18xNFNlY3VyaXR5T3JpZ2luMjFTdG9yYWdlQmxvY2tpbmdQb2xpY3lFOwog
X1pON1dlYkNvcmU4U2V0dGluZ3MzN3NldEZpeGVkRWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJh
bWVFYjsKK19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRSZXNvbHV0aW9uT3ZlcnJpZGVFUktOU183
SW50U2l6ZUU7CiBfWk43V2ViQ29yZTlGcmFtZVZpZXcxN3BhaW50Q29udHJvbFRpbnRzRXY7CiBf
Wk43V2ViQ29yZTlGcmFtZVZpZXcxOXNjcm9sbEVsZW1lbnRUb1JlY3RFUE5TXzdFbGVtZW50RVJL
TlNfN0ludFJlY3RFOwogX1pON1dlYkNvcmUyMlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMzMWlzTXVs
dGlwbGVTaGFkb3dTdWJ0cmVlc0VuYWJsZWRFOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdmZjczM2M4ZmZhNDEyNDdjYzI3
NmE4ZWRmMDgyOWQyNzU5YjIwMDcuLmJjNzE0YjEwYzI3MDVjNDQxNWUwZTlhMDMwMDRhNjg0MTk4
NWYyNDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0xMC0xNSAgS2VubmV0aCBSb2hkZSBD
aHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIHJlc29sdXRpb24gbWVkaWEgcXVlcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk5MDc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdCAocmVzb2x1dGlvbjogeCkgbWVkaWEgcXVlcnkgdG8gZW5z
dXJlIGNvbXBsaWFuY2UKKyAgICAgICAgd2l0aCBzcGVjIHBsdXMgcHJvcG9zZWQgZHBweCB2YWx1
ZXMuCisKKyAgICAgICAgKiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRtbDogQWRkZWQuCisK
KyAgICAgICAgKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAg
ICAgICAgKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgor
CisgICAgICAgICAgICBTa2lwIHRoZSB0ZXN0IGFzIHRoZSBwb3J0cyBkbyBub3QgZW5hYmxlIENT
UyBJbWFnZSBSZXNvbHV0aW9uLgorCiAyMDEyLTEwLTIyICBBbnRvbiBNdWhpbiAgPGFudG9ubUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBDaHJvbWl1bSByZWJhc2VsaW5lcy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcxOGY4YmE3MzdjYzllNTZjMWQ3NGEyZjBhNDk0NWMyYjhkOGVhYzEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24tZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDAgQEAKK0NTUzMgbWVkaWEgcXVlcnkgdGVzdDogcmVzb2x1
dGlvbiBxdWVyeSB3aXRoIGRwcHguIFVzaW5nIHN0eWxlIGVsZW1lbnQsIEBtZWRpYSBjc3MgcnVs
ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgbWF0Y2hNZWRpYSgnKC13
ZWJraXQtcmVzb2x1dGlvbjogMGRwaSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVk
aWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAwZHBpKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BB
U1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDBkcGkpJykubWF0Y2hlcyBp
cyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxLjVkcHB4KScp
Lm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyByZXNvbHV0aW9uRnJvbVN0eWxlKCkgaXMgMS41CitQQVNT
IG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDJkcHB4KScpLm1hdGNoZXMgaXMgdHJ1
ZQorUEFTUyByZXNvbHV0aW9uRnJvbVN0eWxlKCkgaXMgMgorUEFTUyBtYXRjaE1lZGlhKCcoLXdl
YmtpdC1yZXNvbHV0aW9uOiAxZHBweCknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgcmVzb2x1dGlv
bkZyb21TdHlsZSgpIGlzIDEKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjog
Mi4yNWRwcHgpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIHJlc29sdXRpb25Gcm9tU3R5bGUoKSBp
cyAyLjI1CitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb24pJykubWF0Y2hlcyBp
cyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDIxNmRwaSknKS5t
YXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246
IDIxNmRwaSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4
LXJlc29sdXRpb246IDIxNmRwaSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgn
KC13ZWJraXQtcmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRj
aE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNoZXMgaXMgdHJ1
ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogODVkcGNtKScpLm1h
dGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uKScpLm1h
dGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMjE2
ZHBpKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1
dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJr
aXQtbWluLXJlc29sdXRpb246IDIxNmRwaSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hN
ZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIGlzIGZhbHNl
CitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAyMTZkcGkpJykubWF0
Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjog
MjU0ZHBpKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNv
bHV0aW9uOiA4NWRwY20pJykubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdl
YmtpdC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hN
ZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDg1ZHBjbSknKS5tYXRjaGVzIGlzIHRydWUK
K1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDEwMGRwY20pJykubWF0
Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjog
ODVkcGNtKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4
LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
L21xLXJlc29sdXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZjMxOWRmOTFjN2QwOGNlOGZiNzhmNjMx
N2YxZGZjOWNmNzMwNWRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tcS1yZXNvbHV0aW9uLmh0bWwKQEAgLTAsMCArMSw5MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImRldGVjdG9yIj48L2Rpdj4KKworPHN0eWxlPgorICAg
ICNkZXRlY3RvciB7IHdpZHRoOiAxMHB4OyB9CisgICAgQG1lZGlhICgtd2Via2l0LXJlc29sdXRp
b246IDEuMDBkcHB4KSB7ICNkZXRlY3RvciB7IHdpZHRoOiAxMHB4OyB9IH0KKyAgICBAbWVkaWEg
KC13ZWJraXQtcmVzb2x1dGlvbjogMS41MGRwcHgpIHsgI2RldGVjdG9yIHsgd2lkdGg6IDE1cHg7
IH0gfQorICAgIEBtZWRpYSAoLXdlYmtpdC1yZXNvbHV0aW9uOiAyLjAwZHBweCkgeyAjZGV0ZWN0
b3IgeyB3aWR0aDogMjBweDsgfSB9CisgICAgQG1lZGlhICgtd2Via2l0LXJlc29sdXRpb246IDIu
MjVkcHB4KSB7ICNkZXRlY3RvciB7IHdpZHRoOiAyM3B4OyB9IH0KKzwvc3R5bGU+CisKKzxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIkNTUzMgbWVkaWEgcXVlcnkgdGVzdDogcmVzb2x1dGlvbiBx
dWVyeSB3aXRoIGRwcHguIFVzaW5nIHN0eWxlIGVsZW1lbnQsIEBtZWRpYSBjc3MgcnVsZS4iKQor
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIGZ1bmN0aW9uIHJl
c29sdXRpb25Gcm9tU3R5bGUoKSB7CisgICAgICAgICAgICB2YXIgd2lkdGggPSBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXRlY3RvciIpKS53aWR0aDsKKyAgICAg
ICAgICAgIHN3aXRjaCAod2lkdGgpIHsKKyAgICAgICAgICAgICAgICBjYXNlICIxMHB4IjoKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgY2FzZSAiMTVweCI6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxLjU7CisgICAgICAgICAgICAgICAgY2FzZSAi
MjBweCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgICAgIGNh
c2UgIjIzcHgiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gMi4yNTsKKyAgICAgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygt
d2Via2l0LXJlc29sdXRpb246IDBkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBz
aG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDBkcGkpJykubWF0
Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQt
bWF4LXJlc29sdXRpb246IDBkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOworCisgICAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDE0NCwgMTQ0KTsK
KyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDEuNWRw
cHgpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJyZXNvbHV0aW9uRnJv
bVN0eWxlKCkiLCAiMS41Iik7CisKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5z
ZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMTkyLCAxOTIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hN
ZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMmRwcHgpJykubWF0Y2hlcyIsICJ0cnVlIik7Cisg
ICAgICAgIHNob3VsZEJlKCJyZXNvbHV0aW9uRnJvbVN0eWxlKCkiLCAiMiIpOworCisgICAgICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDk2LCA5Nik7
CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxZHBw
eCknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoInJlc29sdXRpb25Gcm9t
U3R5bGUoKSIsICIxIik7CisKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRS
ZXNvbHV0aW9uT3ZlcnJpZGUoMjE2LCAyMTYpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRp
YSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMi4yNWRwcHgpJykubWF0Y2hlcyIsICJ0cnVlIik7Cisg
ICAgICAgIHNob3VsZEJlKCJyZXNvbHV0aW9uRnJvbVN0eWxlKCkiLCAiMi4yNSIpOworICAgICAg
ICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbiknKS5tYXRjaGVzIiwg
InRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRp
b246IDIxNmRwaSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNo
TWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAyMTZkcGkpJykubWF0Y2hlcyIsICJ0cnVl
Iik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlv
bjogMjE2ZHBpKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworCisgICAgICAgIHNob3VsZEJlKCJtYXRj
aE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiA4NWRwY20pJykubWF0Y2hlcyIsICJ0cnVlIik7
CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjog
ODVkcGNtKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRp
YSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDg1ZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsK
KworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlk
ZSgyMTYsIDI1NCk7CisgICAgICAgIC8vIE5vbi1zcXVhcmUgbXVzdCBuZXZlciBtYXRjaC4KKyAg
ICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb24pJykubWF0Y2hl
cyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVz
b2x1dGlvbjogMjE2ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUo
Im1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIiwgImZh
bHNlIik7CisKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNv
bHV0aW9uOiAyMTZkcGkpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJt
YXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAi
ZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNv
bHV0aW9uOiAyMTZkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRCZSgi
bWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIiwg
InRydWUiKTsKKworICAgICAgICAvLyBOb24tc3F1YXJlIG11c3QgbmV2ZXIgbWF0Y2guCisgICAg
ICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiA4NWRwY20pJyku
bWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJr
aXQtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisKKyAgICAgICAg
c2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiA4NWRwY20pJyku
bWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtp
dC1taW4tcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisgICAgICAg
IHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogODVkcGNtKScp
Lm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Vi
a2l0LW1heC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgIH0K
Kzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2YWU2OTUzOGVlYWYxZTQyZWUwOTAyODZk
NDkzYjdlZWFkY2RjZGRhLi5iZGRiOWExNmJlM2FhZjFiMDQxZmU3ZjUwYzI2MzAwMWUxOTgwNTRh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTE3MSw2ICsxNzEsNyBAQCB3ZWJraXQub3JnL2IvNzUxMjMgd2ViaW50ZW50cy9pbnRlbnQt
dGFnLmh0bWwKIAogIyBDU1MgaW1hZ2UtcmVzb2x1dGlvbiBpcyBub3QgeWV0IGVuYWJsZWQuCiB3
ZWJraXQub3JnL2IvODUyNjIgZmFzdC9jc3MvaW1hZ2UtcmVzb2x1dGlvbgord2Via2l0Lm9yZy9i
Lzg1MjYyIGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sIFsgU2tpcCBdCiAKICMgQ1NTIGlt
YWdlLW9yaWVudGF0aW9uIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi84OTA1MiBm
YXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCBiYWY3ZjhlYzg2N2RkZjRlYWE4MjIzZmQwZjJhNjg4ZjNiNmFlMTAx
Li4xM2Y3MjE0NWVhNmY0NjIzNzU4MzRkNGY5NzgxYTBiODZlODNiNTc1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTY3LDYgKzk2Nyw3IEBAIHdlYmtp
dC5vcmcvYi84NzkwOCBlZGl0aW5nL3VuZG9tYW5hZ2VyCiAKICMgQ1NTIGltYWdlLXJlc29sdXRp
b24gaXMgbm90IHlldCBlbmFibGVkLgogd2Via2l0Lm9yZy9iLzg1MjYyIGZhc3QvY3NzL2ltYWdl
LXJlc29sdXRpb24KK3dlYmtpdC5vcmcvYi84NTI2MiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24u
aHRtbCBbIFNraXAgXQogCiAjIENTUyBpbWFnZS1vcmllbnRhdGlvbiBpcyBub3QgeWV0IGVuYWJs
ZWQuCiB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3JpZW50YXRpb24KZGlmZiAt
LWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAyM2YwMzkwY2UxYjQyYjNjNzhiZDM3
MmVmZTljNmY2OTA5YThkNTBmLi40MGNiNzEwYzA1NDdjZWZjNTNhZGU2MzJmMWYxMTIzZjcyNmEw
N2Y4IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTItMTAtMTYgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJr
aXQub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXNvbHV0aW9uIG1lZGlhIHF1ZXJ5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTA3Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNl
L2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjoKKworICAgICAgICAgICAgRXhwb3J0IHRoZSBXZWJD
b3JlOjpTZXR0aW5ncyBzZXR0aW5nLgorCiAyMDEyLTEwLTE5ICBUb255IENoYW5nICA8dG9ueUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzMTkzNi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169969</attachid>
            <date>2012-10-22 13:32:10 -0700</date>
            <delta_ts>2012-10-22 14:03:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99077-20121022223042.patch</filename>
            <type>text/plain</type>
            <size>36507</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWU0OTg0NWRhMzM3OWY1
MTgwZGI0OWJlZmE2NjhjYzBiNDdhOGRiYi4uNGE4ODYzNWUwMTVhOWJkODY5Yjk5NzYwMjZkOTU3
NTQwZDE2OGUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgwIEBACisyMDEyLTEwLTE1ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBt
ZWRpYSBxdWVyeSBmZWF0dXJlIHdpdGggLXdlYmtpdAorICAgICAgICBwcmVmaXggZHVlIHRvIHRo
ZSBzdXBwb3J0IG9mIHRoZSBwcm9wb3NlZCBkcHB4IHZhbHVlcy4KKworICAgICAgICBBZGQgaW5m
cmFzdHJ1Y3R1cmUgdG8gbWFrZSBpdCB0ZXN0YWJsZS4KKworICAgICAgICBUZXN0OiBmYXN0L21l
ZGlhL21xLXJlc29sdXRpb24uaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisKKyAg
ICAgICAgICAgIEV4cG9ydCB0aGUgV2ViQ29yZTo6U2V0dGluZ3Mgc2V0dGluZy4KKworICAgICAg
ICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmlzRG90c1BlckluY2gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6OmlzRG90c1BlclBpeGVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjppc0RvdHNQZXJDZW50aW1ldGVyKToKKyAgICAgICAgKENTU1ByaW1pdGl2ZVZhbHVlKToK
KworICAgICAgICAgICAgQWRkIGZ1bmN0aW9uIGZvciBjaGVja2luZyB0aGUgcmVjZW50bHkgYWRk
ZWQgZGVuc2l0eSB0eXBlcy4KKworICAgICAgICAqIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5oOgor
ICAgICAgICAoTWVkaWFGZWF0dXJlTmFtZXMpOgorCisgICAgICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgLXdlYmtpdC1yZXNvbHV0aW9uLCAtd2Via2l0LW1pbi1yZXNvbHV0aW9uCisgICAgICAgICAg
ICBhbmQgLXdlYmtpdC1tYXgtcmVzb2x1dGlvbi4KKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVSZXNvbHV0aW9uKTogQWRk
IG1ldGhvZHMgZm9yIGNvbXBhcmluZyByZXNvbHV0aW9ucy4KKyAgICAgICAgKFdlYkNvcmUpOgor
ICAgICAgICAoV2ViQ29yZTo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAo
V2ViQ29yZTo6bWluX3Jlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAgKFdlYkNv
cmU6Om1heF9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCk6CisKKyAgICAgICAgICAgIEltcGxl
bWVudCB0aGUgcmVzb2x1dGlvbiBtZXRob2QgZXZhbHVhdGlvbi4KKworICAgICAgICAqIGNzcy9N
ZWRpYVF1ZXJ5RXhwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRoVmFsaWRQb3Np
dGl2ZURlbnNpdHkpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpmZWF0
dXJlV2l0aG91dFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlFeHA6Ok1lZGlh
UXVlcnlFeHApOgorCisgICAgICAgICAgICBIb29rIHVwIHJlc29sdXRpb24gd2l0aCB0aGUgcmln
aHQgcHJlLWNoZWNrcy4KKworICAgICAgICogcGFnZS9TY3JlZW4uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2NyZWVuOjpob3Jpem9udGFsRFBJKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbjo6
dmVydGljYWxEUEkpOgorCisgICAgICAgICAgICBDaGVjayB3aGV0aGVyIGFuIG92ZXJyaWRlIGV4
aXN0cywgYW5kIGlmIHNvLCB1c2VzIGl0LgorICAgICAgICAgICAgSWYgbm90IGNhbGN1bGF0ZSB0
aGUgdmFsdWUgZ2l2ZW4gdGhlIGRldmljZSBzY2FsZSBmYWN0b3IuCisKKyAgICAgICAgKiBwYWdl
L1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRSZXNvbHV0aW9u
T3ZlcnJpZGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5o
OgorICAgICAgICAoU2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnJlc29s
dXRpb25PdmVycmlkZSk6CisKKyAgICAgICAgICAgIEFkZCBhIHJlc29sdXRpb24gb3ZlcnJpZGUg
dG8gc2V0dGluZ3MuCisKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNrdXApOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0b3JlVG8pOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxTZXR0aW5nczo6c2V0UmVzb2x1dGlvbk92ZXJyaWRlKToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5o
OgorICAgICAgICAoQmFja3VwKToKKyAgICAgICAgKEludGVybmFsU2V0dGluZ3MpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6CisKKyAgICAgICAgICAgIEFkZCBhIG5l
dyBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUgbWV0aG9kIHRvIGludGVybmFscy5zZXR0aW5ncy4KKwog
MjAxMi0xMC0yMSAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBbVjhdIFY4RW5hYmxlUGVyQ29udGV4dCBzaG91bGRuJ3QgcmVxdWlyZSBkb2N1bWVudCgpIGFj
Y2Vzc29yIHRvIHRoZSBuYXRpdmUgb2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDA3MmI4NzI4MTFjNmI2
NzQ2MWIzMjEyMzYxMTYxZTMxNDcyNzU0ZGYuLmJlMDY0ZTIyNGU1NDYxNWVjNjNlY2Q0YmUzMzJj
OGVmODA0NDY1ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMC0xNiAgS2Vu
bmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIHJlc29sdXRpb24gbWVkaWEgcXVlcnkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5MDc3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisKKyAgICAg
ICAgICAgIEFkZCBleHBvcnRzIGZvciB0aGUgV2ViQ29yZTo6U2V0dGluZ3Mgc2V0dGluZy4KKwog
MjAxMi0xMC0yMSAgTWlsaWFuIFdvbGZmICA8bWlsaWFuLndvbGZmQGtkYWIuY29tPgogCiAgICAg
ICAgIFtRdF0gUU5YIGJ1aWxkIGZhaWxzIHdoZW4gYnVpbGRpbmcgYWdhaW5zdCBRdCB3aXRob3V0
IGNsaXBib2FyZCBzdXBwb3J0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDc5MzQ1NTMxYThlMTMw
YWNkYWQwOWM2Y2FjZTQ4ZjBlODA5ZjE3YjMuLmYxM2Q2NmU0YTRmMzUzOWExYjBkNTEyZmNkZTk2
ODg2YjhiZmYwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC05NjMsNiArOTYzLDcgQEAgX19a
TjdXZWJDb3JlOFNldHRpbmdzNDBzZXRUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2
aW9yRU5TXzM3VGV4dERpcmVjdGkKIF9fWk43V2ViQ29yZThTZXR0aW5nczQxc2V0TmVlZHNLZXli
b2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3NFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzNDRz
ZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZ0ViCiBfX1pON1dlYkNv
cmU4U2V0dGluZ3M0NXNldFNob3VsZFJlc3BlY3RQcmlvcml0eUluQ1NTQXR0cmlidXRlU2V0dGVy
c0ViCitfX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFJlc29sdXRpb25PdmVycmlkZUVSS05TXzdJ
bnRTaXplRQogX19aTjdXZWJDb3JlOGJsYW5rVVJMRXYKIF9fWk43V2ViQ29yZThtYWtlUkdCQUVp
aWlpCiBfX1pON1dlYkNvcmU4b3BlbkZpbGVFUktOM1dURjZTdHJpbmdFTlNfMTJGaWxlT3Blbk1v
ZGVFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCmluZGV4IGFhMmRiZWFjMzJk
ZGIzODc3YjFkYjVlZmJkMGFhZWU3NzEyZDY4NjYuLmRjNDY3ODM1MDU5ZGQ1ZmNjZTRmOTFhNTI1
YTdiOWQxYmIyZDU3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCkBA
IC0xODEsNiArMTgxLDEwIEBAIHB1YmxpYzoKICAgICBib29sIGlzQ2FsY3VsYXRlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX0NBTEM7IH0KICAgICBib29sIGlz
Q2FsY3VsYXRlZFBlcmNlbnRhZ2VXaXRoTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZl
VHlwZSgpID09IENTU19DQUxDX1BFUkNFTlRBR0VfV0lUSF9OVU1CRVI7IH0KICAgICBib29sIGlz
Q2FsY3VsYXRlZFBlcmNlbnRhZ2VXaXRoTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZl
VHlwZSgpID09IENTU19DQUxDX1BFUkNFTlRBR0VfV0lUSF9MRU5HVEg7IH0KKyAgICBib29sIGlz
RG90c1BlckluY2goKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0RQSTsg
fQorICAgIGJvb2wgaXNEb3RzUGVyUGl4ZWwoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBl
KCkgPT0gQ1NTX0RQUFg7IH0KKyAgICBib29sIGlzRG90c1BlckNlbnRpbWV0ZXIoKSBjb25zdCB7
IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0RQQ007IH0KKwogI2lmIEVOQUJMRShDU1Nf
VkFSSUFCTEVTKQogICAgIGJvb2wgaXNWYXJpYWJsZU5hbWUoKSBjb25zdCB7IHJldHVybiBwcmlt
aXRpdmVUeXBlKCkgPT0gQ1NTX1ZBUklBQkxFX05BTUU7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFGZWF0dXJlTmFtZXMuaAppbmRleCBiMDg0MzllNGEwMTgzNDkyMmZkYTAwZThhZDk3
ZWZmMjBmYmVjMGZjLi40Y2VjMjU0NWY1ODUzYzRlYTlkZmFlZjVmMTY1NzgwNWVkNjlkM2E4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaApAQCAtNDcsNiArNDcsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8obWF4X2hlaWdodCwgIm1heC1oZWlnaHQiKSBc
CiAgICAgbWFjcm8obWF4X21vbm9jaHJvbWUsICJtYXgtbW9ub2Nocm9tZSIpIFwKICAgICBtYWNy
byhtYXhfd2lkdGgsICJtYXgtd2lkdGgiKSBcCisgICAgbWFjcm8obWF4X3Jlc29sdXRpb24sICIt
d2Via2l0LW1heC1yZXNvbHV0aW9uIikgXAogICAgIG1hY3JvKG1pbl9jb2xvciwgIm1pbi1jb2xv
ciIpIFwKICAgICBtYWNybyhtaW5fYXNwZWN0X3JhdGlvLCAibWluLWFzcGVjdC1yYXRpbyIpIFwK
ICAgICBtYWNybyhtaW5fZGV2aWNlX2FzcGVjdF9yYXRpbywgIm1pbi1kZXZpY2UtYXNwZWN0LXJh
dGlvIikgXApAQCAtNTYsNyArNTcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8o
bWluX2hlaWdodCwgIm1pbi1oZWlnaHQiKSBcCiAgICAgbWFjcm8obWluX21vbm9jaHJvbWUsICJt
aW4tbW9ub2Nocm9tZSIpIFwKICAgICBtYWNybyhtaW5fd2lkdGgsICJtaW4td2lkdGgiKSBcCisg
ICAgbWFjcm8obWluX3Jlc29sdXRpb24sICItd2Via2l0LW1pbi1yZXNvbHV0aW9uIikgXAogICAg
IG1hY3JvKHBvaW50ZXIsICJwb2ludGVyIikgXAorICAgIG1hY3JvKHJlc29sdXRpb24sICItd2Vi
a2l0LXJlc29sdXRpb24iKSBcCiAgICAgbWFjcm8odHJhbnNmb3JtXzJkLCAiLXdlYmtpdC10cmFu
c2Zvcm0tMmQiKSBcCiAgICAgbWFjcm8odHJhbnNmb3JtXzNkLCAiLXdlYmtpdC10cmFuc2Zvcm0t
M2QiKSBcCiAgICAgbWFjcm8odHJhbnNpdGlvbiwgIi13ZWJraXQtdHJhbnNpdGlvbiIpIFwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCBkYWE0OTBiOGJk
Yzg0Njg3Yzc0OWE5YjUxMGU0NGMzOWM2OTEwOGU1Li44MzNiMDcyZDQ2OWZjOTI2ZjJlOTAzOTQ4
YzcyZGIxODg0NTlmZDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV2YWx1YXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0
b3IuY3BwCkBAIC0yOSwxMSArMjksMTIgQEAKICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9y
LmgiCiAKICNpbmNsdWRlICJDU1NBc3BlY3RSYXRpb1ZhbHVlLmgiCi0jaW5jbHVkZSAiQ2hyb21l
LmgiCi0jaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFs
dWUuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVM
aXN0LmgiCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisj
aW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTQ1LDggKzQ2LDkgQEAKICNpbmNs
dWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1TY3JlZW4uaCIKLSNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiUmVuZGVy
U3R5bGUuaCIKKyNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCisjaW5jbHVkZSAiU2NyZWVuLmgiCiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTY2LDE1ICs2OCwxMyBAQCB0eXBlZGVmIEhhc2hNYXA8QXRv
bWljU3RyaW5nSW1wbCosIEV2YWxGdW5jPiBGdW5jdGlvbk1hcDsKIHN0YXRpYyBGdW5jdGlvbk1h
cCogZ0Z1bmN0aW9uTWFwOwogCiAvKgotICogRklYTUU6IGZvbGxvd2luZyBtZWRpYSBmZWF0dXJl
cyBhcmUgbm90IGltcGxlbWVudGVkOiBjb2xvcl9pbmRleCwgc2NhbiwgcmVzb2x1dGlvbgorICog
RklYTUU6IGZvbGxvd2luZyBtZWRpYSBmZWF0dXJlcyBhcmUgbm90IGltcGxlbWVudGVkOiBjb2xv
cl9pbmRleCwgc2NhbgogICoKICAqIGNvbG9yX2luZGV4LCBtaW4tY29sb3ItaW5kZXgsIG1heF9j
b2xvcl9pbmRleDogSXQncyB1bmtub3duIGhvdyB0byByZXRyaWV2ZQogICogdGhlIGluZm9ybWF0
aW9uIGlmIHRoZSBkaXNwbGF5IG1vZGUgaXMgaW5kZXhlZAogICogc2NhbjogVGhlICJzY2FuIiBt
ZWRpYSBmZWF0dXJlIGRlc2NyaWJlcyB0aGUgc2Nhbm5pbmcgcHJvY2VzcyBvZgogICogdHYgb3V0
cHV0IGRldmljZXMuIEl0J3MgdW5rbm93biBob3cgdG8gcmV0cmlldmUgdGhpcyBpbmZvcm1hdGlv
biBmcm9tCiAgKiB0aGUgcGxhdGZvcm0KLSAqIHJlc29sdXRpb24sIG1pbi1yZXNvbHV0aW9uLCBt
YXgtcmVzb2x1dGlvbjogY3NzIHBhcnNlciBkb2Vzbid0IHNlZW0gdG8KLSAqIHN1cHBvcnQgQ1NT
X0RJTUVOU0lPTgogICovCiAKIE1lZGlhUXVlcnlFdmFsdWF0b3I6Ok1lZGlhUXVlcnlFdmFsdWF0
b3IoYm9vbCBtZWRpYUZlYXR1cmVSZXN1bHQpCkBAIC0xOTcsNiArMTk3LDIzIEBAIHN0YXRpYyBi
b29sIGNvbXBhcmVBc3BlY3RSYXRpb1ZhbHVlKENTU1ZhbHVlKiB2YWx1ZSwgaW50IHdpZHRoLCBp
bnQgaGVpZ2h0LCBNZWRpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCisjaWYgRU5BQkxFKENTU19J
TUFHRV9SRVNPTFVUSU9OKQorc3RhdGljIGJvb2wgY29tcGFyZVJlc29sdXRpb24oZmxvYXQgbWlu
LCBmbG9hdCBtYXgsIGZsb2F0IHZhbHVlLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCit7CisgICAg
c3dpdGNoIChvcCkgeworICAgIGNhc2UgTm9QcmVmaXg6CisgICAgICAgIC8vIEEgJ3Jlc29sdXRp
b24nICh3aXRob3V0IGEgIm1pbi0iIG9yICJtYXgtIiBwcmVmaXgpIHF1ZXJ5CisgICAgICAgIC8v
IG5ldmVyIG1hdGNoZXMgYSBkZXZpY2Ugd2l0aCBub24tc3F1YXJlIHBpeGVscy4KKyAgICAgICAg
cmV0dXJuIHZhbHVlID09IG1pbiAmJiB2YWx1ZSA9PSBtYXg7CisgICAgY2FzZSBNaW5QcmVmaXg6
CisgICAgICAgIHJldHVybiBtaW4gPj0gdmFsdWU7CisgICAgY2FzZSBNYXhQcmVmaXg6CisgICAg
ICAgIHJldHVybiBtYXggPD0gdmFsdWU7CisgICAgfQorICAgIHJldHVybiBmYWxzZTsKK30KKyNl
bmRpZgorCiBzdGF0aWMgYm9vbCBudW1iZXJWYWx1ZShDU1NWYWx1ZSogdmFsdWUsIGZsb2F0JiBy
ZXN1bHQpCiB7CiAgICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkKQEAgLTI3OCw2ICsy
OTUsODcgQEAgc3RhdGljIGJvb2wgZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbChD
U1NWYWx1ZSAqdmFsdWUsIFJlbmRlclN0eWxlKiwgRnIKICAgICByZXR1cm4gZnJhbWUtPnBhZ2Uo
KS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSAhPSAwOwogfQogCitzdGF0aWMgYm9vbCByZXNvbHV0aW9u
TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZy
YW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCit7CisjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNP
TFVUSU9OKQorICAgIC8vIFRoZSBEUEkgYmVsb3cgaXMgZG90cyBwZXIgQ1NTIGluY2ggYW5kIHRo
dXMgbm90IGRldmljZSBpbmNoLiBUaGUKKyAgICAvLyBmdW5jdGlvbnMgc2hvdWxkIHJlc3BlY3Qg
dGhpcy4KKyAgICAvLworICAgIC8vIEZvciBzcXVhcmUgcGl4ZWxzLCBpdCBpcyBzaW1wbHkgdGhl
IGRldmljZSBzY2FsZSBmYWN0b3IgKGRwcHgpIHRpbWVzIDk2LAorICAgIC8vIHBlciBkZWZpbml0
aW9uLgorICAgIC8vCisgICAgLy8gVGhlIGRldmljZSBzY2FsZSBmYWN0b3IgaXMgYSBwcmVkZWZp
bmVkIHZhbHVlIHdoaWNoIGlzIGNhbGN1bGF0ZWQgcGVyCisgICAgLy8gZGV2aWNlIGdpdmVuIHRo
ZSBwcmVmZXJyZWQgZGlzdGFuY2UgaW4gYXJtcyBsZW5ndGggKGNvbnNpZGVyZWQgb25lIGFybXMK
KyAgICAvLyBsZW5ndGggZm9yIGRlc2t0b3AgY29tcHV0ZXJzIGFuZCB1c3VhbGx5IDAuNiBhcm1z
IGxlbmd0aCBmb3IgcGhvbmVzKS4KKyAgICAvLworICAgIC8vIFRoZSB2YWx1ZSBjYW4gYmUgY2Fs
Y3VsYXRlZCBhcyBmb2xsb3dzIChyb3VuZGVkIHRvIHF1YXJ0ZXJzKToKKyAgICAvLyAgICAgcm91
bmQoKGRldmljZURvdHNQZXJJbmNoICogZGlzdGFuY2VJbkFybXNMZW5ndGggLyA5NikgKiA0KSAv
IDQuCisgICAgLy8gRXhhbXBsZSAobWlkLXJhbmdlIHJlc29sdXRpb24gcGhvbmUpOgorICAgIC8v
ICAgICByb3VuZCgoMjQ0ICogMC42IC8gOTYpICogNCkgLyA0ID0gMS41CisgICAgLy8gRXhhbXBs
ZSAoaGlnaC1yYW5nZSByZXNvbHV0aW9uIGxhcHRvcCk6CisgICAgLy8gICAgIHJvdW5kKCgyMjAg
KiAxLjAgLyA5NikgKiA0KSAvIDQgPSAyLjAKKworICAgIGZsb2F0IGhvcmlEUEkgPSBmcmFtZS0+
ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPnNjcmVlbigpLT5ob3Jpem9udGFsRFBJKCk7CisgICAg
ZmxvYXQgdmVydERQSSA9IGZyYW1lLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+c2NyZWVuKCkt
PnZlcnRpY2FsRFBJKCk7CisKKyAgICBmbG9hdCBsZWFzdERlbnNlRFBJID0gc3RkOjptaW4oaG9y
aURQSSwgdmVydERQSSk7CisgICAgZmxvYXQgbW9zdERlbnNlRFBJID0gc3RkOjptYXgoaG9yaURQ
SSwgdmVydERQSSk7CisKKyAgICAvLyBBY2NvcmRpbmcgdG8gc3BlYywgKHJlc29sdXRpb24pIHdp
bGwgZXZhbHVhdGUgdG8gdHJ1ZSBpZiAocmVzb2x1dGlvbjp4KQorICAgIC8vIHdpbGwgZXZhbHVh
dGUgdG8gdHJ1ZSBmb3IgYSB2YWx1ZSB4IG90aGVyIHRoYW4gemVybyBvciB6ZXJvIGZvbGxvd2Vk
IGJ5CisgICAgLy8gYSB2YWxpZCB1bml0IGlkZW50aWZpZXIgKGkuZS4sIG90aGVyIHRoYW4gMCwg
MGRwaSwgMGRwY20sIG9yIDBkcHB4LiksCisgICAgLy8gd2hpY2ggaXMgYWx3YXlzIHRoZSBjYXNl
LiBCdXQgdGhlIHNwZWMgc3BlY2lhbCBjYXNlcyAncmVzb2x1dGlvbicgdG8KKyAgICAvLyBuZXZl
ciBtYXRjaGVzIGEgZGV2aWNlIHdpdGggbm9uLXNxdWFyZSBwaXhlbHMuCisgICAgaWYgKCF2YWx1
ZSkgeworICAgICAgICBBU1NFUlQob3AgPT0gTm9QcmVmaXgpOworICAgICAgICByZXR1cm4gbGVh
c3REZW5zZURQSSA9PSBtb3N0RGVuc2VEUEk7CisgICAgfQorCisgICAgaWYgKCF2YWx1ZS0+aXNQ
cmltaXRpdmVWYWx1ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBodHRwOi8v
ZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXZhbHVlcy8jcmVzb2x1dGlvbiBkZWZpbmVzIHJlc29sdXRp
b24gYXMgYQorICAgIC8vIGRpbWVuc2lvbiwgd2hpY2ggY29udGFpbnMgYSBudW1iZXIgKGRlY2lt
YWwgcG9pbnQgYWxsb3dlZCksIG5vdCBqdXN0IGFuCisgICAgLy8gaW50ZWdlci4gQWxzbywgaHR0
cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzMy12YWx1ZXMvI251bWVyaWMtdHlwZXMgc2F5cworICAg
IC8vICJDU1MgdGhlb3JldGljYWxseSBzdXBwb3J0cyBpbmZpbml0ZSBwcmVjaXNpb24gYW5kIGlu
ZmluaXRlIHJhbmdlcyBmb3IKKyAgICAvLyBhbGwgdmFsdWUgdHlwZXM7CisgICAgQ1NTUHJpbWl0
aXZlVmFsdWUqIHJhd1ZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1
ZSk7CisKKyAgICBpZiAocmF3VmFsdWUtPmlzRG90c1BlclBpeGVsKCkpIHsKKyAgICAgICAgLy8g
aHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzMy12YWx1ZXMvI2Fic29sdXRlLWxlbmd0aHMgcmVj
b21tZW5kcworICAgICAgICAvLyAidGhhdCB0aGUgcGl4ZWwgdW5pdCByZWZlciB0byB0aGUgd2hv
bGUgbnVtYmVyIG9mIGRldmljZSBwaXhlbHMgdGhhdAorICAgICAgICAvLyBiZXN0IGFwcHJveGlt
YXRlcyB0aGUgcmVmZXJlbmNlIHBpeGVsIi4gV2UgY29tcGFyZSB3aXRoIDIgZGVjaW1hbAorICAg
ICAgICAvLyBwb2ludHMsIHdoaWNoIGFsaWducyB3aXRoIGN1cnJlbnQgZGV2aWNlLXBpeGVsLXJh
dGlvJ3MgaW4gdXNlLgorICAgICAgICBmbG9hdCBsZWFzdERlbnNlRGVuc2l0eSA9IGZsb29yZihs
ZWFzdERlbnNlRFBJICogMTAwIC8gOTYpIC8gMTAwOworICAgICAgICBmbG9hdCBtb3N0RGVuc2VE
ZW5zaXR5ID0gZmxvb3JmKGxlYXN0RGVuc2VEUEkgKiAxMDAgLyA5NikgLyAxMDA7CisgICAgICAg
IGZsb2F0IHRlc3RlZERlbnNpdHkgPSByYXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX0RQUFgpOworICAgICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24obGVh
c3REZW5zZURlbnNpdHksIG1vc3REZW5zZURlbnNpdHksIHRlc3RlZERlbnNpdHksIG9wKTsKKyAg
ICB9CisKKyAgICBpZiAocmF3VmFsdWUtPmlzRG90c1BlckluY2goKSkgeworICAgICAgICB1bnNp
Z25lZCB0ZXN0ZWREZW5zaXR5ID0gcmF3VmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19EUEkpOworICAgICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24obGVhc3RE
ZW5zZURQSSwgbW9zdERlbnNlRFBJLCB0ZXN0ZWREZW5zaXR5LCBvcCk7CisgICAgfQorCisgICAg
Ly8gaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzMy12YWx1ZXMvI2Fic29sdXRlLWxlbmd0aHMg
cmVjb21tZW5kcyAidGhhdAorICAgIC8vIHRoZSBwaXhlbCB1bml0IHJlZmVyIHRvIHRoZSB3aG9s
ZSBudW1iZXIgb2YgZGV2aWNlIHBpeGVscyB0aGF0IGJlc3QKKyAgICAvLyBhcHByb3hpbWF0ZXMg
dGhlIHJlZmVyZW5jZSBwaXhlbCIuCisgICAgZmxvYXQgbGVhc3REZW5zZURQQ00gPSByb3VuZGYo
bGVhc3REZW5zZURQSSAvIDIuNTQpOyAvLyAoMi41NCBjbS9pbikKKyAgICBmbG9hdCBtb3N0RGVu
c2VEUENNID0gcm91bmRmKG1vc3REZW5zZURQSSAvIDIuNTQpOworCisgICAgaWYgKHJhd1ZhbHVl
LT5pc0RvdHNQZXJDZW50aW1ldGVyKCkpIHsKKyAgICAgICAgZmxvYXQgdGVzdGVkRGVuc2l0eSA9
IHJhd1ZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBDTSk7Cisg
ICAgICAgIHJldHVybiBjb21wYXJlUmVzb2x1dGlvbihsZWFzdERlbnNlRFBDTSwgbW9zdERlbnNl
RFBDTSwgdGVzdGVkRGVuc2l0eSwgb3ApOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHZhbHVlKTsKKyAgICBVTlVTRURfUEFSQU0oZnJhbWUpOworICAgIFVOVVNFRF9QQVJBTShvcCk7
CisjZW5kaWYKKworICAgIHJldHVybiBmYWxzZTsKK30KKwogc3RhdGljIGJvb2wgZ3JpZE1lZGlh
RmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiwgTWVkaWFG
ZWF0dXJlUHJlZml4IG9wKQogewogICAgIC8vIGlmIG91dHB1dCBkZXZpY2UgaXMgYml0bWFwLCBn
cmlkOiAwID09IHRydWUKQEAgLTQ1Niw2ICs1NTQsMTYgQEAgc3RhdGljIGJvb2wgbWF4X2Rldmlj
ZV93aWR0aE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5
bGUKICAgICByZXR1cm4gZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUs
IGZyYW1lLCBNYXhQcmVmaXgpOwogfQogCitzdGF0aWMgYm9vbCBtaW5fcmVzb2x1dGlvbk1lZGlh
RmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBm
cmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQoreworICAgIHJldHVybiByZXNvbHV0aW9uTWVkaWFG
ZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNaW5QcmVmaXgpOworfQorCitzdGF0aWMg
Ym9vbCBtYXhfcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5k
ZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQoreworICAg
IHJldHVybiByZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBN
YXhQcmVmaXgpOworfQorCiBzdGF0aWMgYm9vbCBhbmltYXRpb25NZWRpYUZlYXR1cmVFdmFsKENT
U1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSosIE1lZGlhRmVhdHVyZVByZWZpeCBv
cCkKIHsKICAgICBpZiAodmFsdWUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5RXhwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcApp
bmRleCAxYTA2Yjc5NjVmY2NiOThhMDkzNTY5NTY5NzU4YjIxZmM2ZTI5OTgxLi4yM2JlNDI5Y2Fk
ZTg1MjBhYmMwMzk0M2YxZTIzNGVkMTlhY2ZlMDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVl
cnlFeHAuY3BwCkBAIC02Nyw2ICs2NywxNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdp
dGhWYWxpZFBvc2l0aXZlTGVuZ2h0T3JOdW1iZXIoY29uc3QgQXRvbWljU3RyaW5nJiBtZQogICAg
ICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbl9kZXZpY2Vfd2lk
dGhNZWRpYUZlYXR1cmU7CiB9CiAKK3N0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFZhbGlk
RGVuc2l0eShjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgY29uc3QgQ1NTUGFyc2Vy
VmFsdWUqIHZhbHVlKQoreworICAgIGlmICgodmFsdWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFs
dWU6OkNTU19EUFBYICYmIHZhbHVlLT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBJ
ICYmIHZhbHVlLT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBDTSkgfHwgdmFsdWUt
PmZWYWx1ZSA8PSAwKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gbWVkaWFG
ZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpyZXNvbHV0aW9uTWVkaWFGZWF0dXJlCisgICAg
ICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWF4X3Jlc29sdXRpb25N
ZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
OjptaW5fcmVzb2x1dGlvbk1lZGlhRmVhdHVyZTsKK30KKwogc3RhdGljIGlubGluZSBib29sIGZl
YXR1cmVXaXRoUG9zaXRpdmVJbnRlZ2VyKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJl
LCBjb25zdCBDU1NQYXJzZXJWYWx1ZSogdmFsdWUpCiB7CiAgICAgaWYgKCF2YWx1ZS0+aXNJbnQg
fHwgdmFsdWUtPmZWYWx1ZSA8IDApCkBAIC0xMTQsNiArMTI0LDcgQEAgc3RhdGljIGlubGluZSBi
b29sIGZlYXR1cmVXaXRoQXNwZWN0UmF0aW8oY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1
cmUpCiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aG91dFZhbHVlKGNvbnN0IEF0b21p
Y1N0cmluZyYgbWVkaWFGZWF0dXJlKQogeworICAgIC8vIE1lZGlhIGZlYXR1cmVzIHRoYXQgYXJl
IHByZWZpeGVkIGJ5IG1pbi9tYXggY2Fubm90IGJlIHVzZWQgd2l0aG91dCBhIHZhbHVlLgogICAg
IHJldHVybiBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1vbm9jaHJvbWVNZWRp
YUZlYXR1cmUKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpj
b2xvck1lZGlhRmVhdHVyZQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJl
TmFtZXM6OmdyaWRNZWRpYUZlYXR1cmUKQEAgLTEzMSw3ICsxNDIsOCBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgZmVhdHVyZVdpdGhvdXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVy
ZSkKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjphbmltYXRp
b25NZWRpYUZlYXR1cmUKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5h
bWVzOjp2aWV3X21vZGVNZWRpYUZlYXR1cmUKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1l
ZGlhRmVhdHVyZU5hbWVzOjpwb2ludGVyTWVkaWFGZWF0dXJlCi0gICAgICAgIHx8IG1lZGlhRmVh
dHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6ZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJl
OworICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmRldmljZV9w
aXhlbF9yYXRpb01lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFG
ZWF0dXJlTmFtZXM6OnJlc29sdXRpb25NZWRpYUZlYXR1cmU7CiB9CiAKIGlubGluZSBNZWRpYVF1
ZXJ5RXhwOjpNZWRpYVF1ZXJ5RXhwKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBD
U1NQYXJzZXJWYWx1ZUxpc3QqIHZhbHVlTGlzdCkKQEAgLTE0OCw2ICsxNjAsMTAgQEAgaW5saW5l
IE1lZGlhUXVlcnlFeHA6Ok1lZGlhUXVlcnlFeHAoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZl
YXR1cmUsIENTU1BhcnNlclYKICAgICAgICAgICAgIGlmIChmZWF0dXJlV2l0aENTU1ZhbHVlSUQo
bWVkaWFGZWF0dXJlLCB2YWx1ZSkpCiAgICAgICAgICAgICAgICAgbV92YWx1ZSA9IENTU1ByaW1p
dGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKHZhbHVlLT5pZCk7CiAKKyAgICAgICAgICAgIC8v
IE1lZGlhIGZlYXR1cmVzIHRoYXQgbXVzdCBoYXZlIG5vbi1uZWdhdGl2ZSA8ZGVuc2l0eT4sIGll
LiBkcHB4LCBkcGkgb3IgZHBjbS4KKyAgICAgICAgICAgIGVsc2UgaWYgKGZlYXR1cmVXaXRoVmFs
aWREZW5zaXR5KG1lZGlhRmVhdHVyZSwgdmFsdWUpKQorICAgICAgICAgICAgICAgIG1fdmFsdWUg
PSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5mVmFsdWUsIChDU1NQcmltaXRpdmVW
YWx1ZTo6VW5pdFR5cGVzKSB2YWx1ZS0+dW5pdCk7CisKICAgICAgICAgICAgIC8vIE1lZGlhIGZl
YXR1cmVzIHRoYXQgbXVzdCBoYXZlIG5vbi1uZWdhdGl2ZSA8bGVuZ2h0PiBvciBudW1iZXIgdmFs
dWUuCiAgICAgICAgICAgICBlbHNlIGlmIChmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVMZW5naHRP
ck51bWJlcihtZWRpYUZlYXR1cmUsIHZhbHVlKSkKICAgICAgICAgICAgICAgICBtX3ZhbHVlID0g
Q1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZS0+ZlZhbHVlLCAoQ1NTUHJpbWl0aXZlVmFs
dWU6OlVuaXRUeXBlcykgdmFsdWUtPnVuaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TY3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCmluZGV4IGUx
ZTFkMTE3Mzg2ZjYyMmVlM2MxOTNiM2U1MDIyYzg4M2E4YzI1YjEuLmMwODgwYzhkZTFmMTlkM2U3
MzNmZGE4ODFkN2NmNTRmM2Q5ZDU5MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKQEAgLTM1LDYg
KzM1LDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQ4LDE0ICs0OSw0MSBAQCB1bnNpZ25lZCBTY3JlZW46Omhvcml6b250YWxEUEkoKSBjb25zdAog
ewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihzY3JlZW5Ib3Jpem9udGFsRFBJKG1fZnJhbWUtPnZpZXcoKSkpOwor
CisgICAgLy8gVXNlZCBieSB0aGUgdGVzdGluZyBzeXN0ZW0sIGNhbiBiZSBzZXQgZnJvbSBpbnRl
cm5hbHMuCisgICAgSW50U2l6ZSBvdmVycmlkZSA9IG1fZnJhbWUtPnBhZ2UoKS0+c2V0dGluZ3Mo
KS0+cmVzb2x1dGlvbk92ZXJyaWRlKCk7CisgICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybiBvdmVycmlkZS53aWR0aCgpOworCisgICAgLy8gVGhlc2Ugd2VyZSBhZGRl
ZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NTYgZm9yIENo
cm9taXVtCisgICAgLy8gYnV0IHNlZW1zIHVudXNlZC4gUGxlYXNlIHJlbW92ZSBhZnRlciB2YXJp
ZnlpbmcgdGhhdCB0aGlzIGlzIGluZGVlZCB0aGUgY2FzZS4KKyAgICBpbnQgcGxhdGZvcm1WYWx1
ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzY3JlZW5Ib3Jpem9udGFsRFBJKG1fZnJhbWUtPnZp
ZXcoKSkpOworICAgIGlmIChwbGF0Zm9ybVZhbHVlID4gMCkKKyAgICAgICAgcmV0dXJuIHBsYXRm
b3JtVmFsdWU7CisKKyAgICAvLyBUaGUgRFBJIGlzIGRlZmluZWQgYXMgZG90cyBwZXIgQ1NTIGlu
Y2ggYW5kIHRodXMgbm90IGRldmljZSBpbmNoLgorICAgIHJldHVybiBtX2ZyYW1lLT5wYWdlKCkt
PmRldmljZVNjYWxlRmFjdG9yKCkgKiA5NjsKIH0KIAogdW5zaWduZWQgU2NyZWVuOjp2ZXJ0aWNh
bERQSSgpIGNvbnN0CiB7CisgICAgLy8gVGhlIERQSSBpcyBkZWZpbmVkIGFzIGRvdHMgcGVyIENT
UyBpbmNoIGFuZCB0aHVzIG5vdCBkZXZpY2UgaW5jaC4KICAgICBpZiAoIW1fZnJhbWUpCiAgICAg
ICAgIHJldHVybiAwOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2NyZWVuVmVy
dGljYWxEUEkobV9mcmFtZS0+dmlldygpKSk7CisKKyAgICAvLyBVc2VkIGJ5IHRoZSB0ZXN0aW5n
IHN5c3RlbSwgY2FuIGJlIHNldCBmcm9tIGludGVybmFscy4KKyAgICBJbnRTaXplIG92ZXJyaWRl
ID0gbV9mcmFtZS0+cGFnZSgpLT5zZXR0aW5ncygpLT5yZXNvbHV0aW9uT3ZlcnJpZGUoKTsKKyAg
ICBpZiAoIW92ZXJyaWRlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG92ZXJyaWRlLmhlaWdo
dCgpOworCisgICAgLy8gVGhlc2Ugd2VyZSBhZGRlZCBpbiBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzA1NTYgZm9yIENocm9taXVtCisgICAgLy8gYnV0IHNlZW1zIHVu
dXNlZC4gUGxlYXNlIHJlbW92ZSBhZnRlciB2YXJpZnlpbmcgdGhhdCB0aGlzIGlzIGluZGVlZCB0
aGUgY2FzZS4KKyAgICBpbnQgcGxhdGZvcm1WYWx1ZSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihz
Y3JlZW5WZXJ0aWNhbERQSShtX2ZyYW1lLT52aWV3KCkpKTsKKyAgICBpZiAocGxhdGZvcm1WYWx1
ZSA+IDApCisgICAgICAgIHJldHVybiBwbGF0Zm9ybVZhbHVlOworCisgICAgLy8gVGhlIERQSSBp
cyBkZWZpbmVkIGFzIGRvdHMgcGVyIENTUyBpbmNoIGFuZCB0aHVzIG5vdCBkZXZpY2UgaW5jaC4K
KyAgICByZXR1cm4gbV9mcmFtZS0+cGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpICogOTY7CiB9
CiAKIHVuc2lnbmVkIFNjcmVlbjo6aGVpZ2h0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5j
cHAKaW5kZXggOTg3NmFmNWM3NmQyMjU1Y2ViMmY4ODBiODQ5NTE5ZDI2YzNkM2VkNC4uNzRiOTJm
OWY5YzM5NzExNTk5NDQyYzcxNDRiOWRhZWJlNWQ3Nzc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAKQEAgLTQ1OSw2ICs0NTksMTUgQEAgdm9pZCBTZXR0aW5nczo6c2V0VGV4dEF1dG9zaXpp
bmdGb250U2NhbGVGYWN0b3IoZmxvYXQgZm9udFNjYWxlRmFjdG9yKQogCiAjZW5kaWYKIAordm9p
ZCBTZXR0aW5nczo6c2V0UmVzb2x1dGlvbk92ZXJyaWRlKGNvbnN0IEludFNpemUmIGRlbnNpdHlQ
ZXJJbmNoT3ZlcnJpZGUpCit7CisgICAgaWYgKG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3Zl
cnJpZGUgPT0gZGVuc2l0eVBlckluY2hPdmVycmlkZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9yZXNvbHV0aW9uRGVuc2l0eVBlckluY2hPdmVycmlkZSA9IGRlbnNpdHlQZXJJbmNoT3ZlcnJp
ZGU7CisgICAgbV9wYWdlLT5zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKK30KKwog
dm9pZCBTZXR0aW5nczo6c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJvb2wgbG9hZHNJbWFn
ZXNBdXRvbWF0aWNhbGx5KQogewogICAgIG1fbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5ID0gbG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDg5Nzg1ZDEy
ZjZlMjkxNjZkYWMzYmFmY2JlZjcwYjA1ZGVmZmI0NmEuLmM3MWYzMmU4NjFkNzFkN2M2Mjg0MzYw
OWFjZjRlMzU1MmJhNDMwMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTI5LDYgKzI5LDcg
QEAKIAogI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5cGVzLmgiCiAjaW5jbHVkZSAiRm9udFJl
bmRlcmluZ01vZGUuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgog
I2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKQEAgLTM3LDEw
ICszOCw2IEBACiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nSGFzaC5oPgogI2luY2x1
ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KIAotI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcp
Ci0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgIGNsYXNzIFBhZ2U7CkBAIC0xMjMsNiArMTIwLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgY29uc3QgSW50U2l6ZSYgdGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUo
KSBjb25zdCB7IHJldHVybiBtX3RleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlOyB9CiAj
ZW5kaWYKIAorICAgICAgICAvLyBPbmx5IHNldCBieSBMYXlvdXQgVGVzdHMuCisgICAgICAgIHZv
aWQgc2V0UmVzb2x1dGlvbk92ZXJyaWRlKGNvbnN0IEludFNpemUmKTsKKyAgICAgICAgY29uc3Qg
SW50U2l6ZSYgcmVzb2x1dGlvbk92ZXJyaWRlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHV0aW9u
RGVuc2l0eVBlckluY2hPdmVycmlkZTsgfQorCiAgICAgICAgIC8vIFVubGlrZSBhcmVJbWFnZXNF
bmFibGVkLCB0aGlzIG9ubHkgc3VwcHJlc3NlcyB0aGUgbmV0d29yayBsb2FkIG9mCiAgICAgICAg
IC8vIHRoZSBpbWFnZSBVUkwuICBBIGNhY2hlZCBpbWFnZSB3aWxsIHN0aWxsIGJlIHJlbmRlcmVk
IGlmIHJlcXVlc3RlZC4KICAgICAgICAgdm9pZCBzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHko
Ym9vbCk7CkBAIC02ODYsNiArNjg3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBJ
bnRTaXplIG1fdGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGU7CiAgICAgICAgIGJvb2wg
bV90ZXh0QXV0b3NpemluZ0VuYWJsZWQgOiAxOwogI2VuZGlmCisgICAgICAgIEludFNpemUgbV9y
ZXNvbHV0aW9uRGVuc2l0eVBlckluY2hPdmVycmlkZTsKICAgICAgICAgYm9vbCBtX2lzU3BhdGlh
bE5hdmlnYXRpb25FbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVuYWJsZWQgOiAx
OwogICAgICAgICBib29sIG1faXNKYXZhRW5hYmxlZEZvckxvY2FsRmlsZXMgOiAxOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggOGQ4ZjBjYjQwOTAw
MzY1ZTYwYTQzODRlY2IwOTc0MDU0NzcxNWFmOS4uYmRhNzBhZDgxOWQyMzhiYjQyYjhmMWJlOTRl
NThjNWFiN2ZhYjc4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuY3BwCkBAIC05Nyw2ICs5Nyw3IEBAIEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3Vw
KFBhZ2UqIHBhZ2UsIFNldHRpbmdzKiBzZXR0aW5ncykKICAgICAsIG1fb3JpZ2luYWxUZXh0QXV0
b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShzZXR0aW5ncy0+dGV4dEF1dG9zaXppbmdXaW5kb3dT
aXplT3ZlcnJpZGUoKSkKICAgICAsIG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZh
Y3RvcihzZXR0aW5ncy0+dGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoKSkKICNlbmRpZgor
ICAgICwgbV9vcmlnaW5hbFJlc29sdXRpb25PdmVycmlkZShzZXR0aW5ncy0+cmVzb2x1dGlvbk92
ZXJyaWRlKCkpCiAjaWYgRU5BQkxFKERJQUxPR19FTEVNRU5UKQogICAgICwgbV9vcmlnaW5hbERp
YWxvZ0VsZW1lbnRFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmRpYWxvZ0VsZW1lbnRF
bmFibGVkKCkpCiAjZW5kaWYKQEAgLTEzNiw2ICsxMzcsNyBAQCB2b2lkIEludGVybmFsU2V0dGlu
Z3M6OkJhY2t1cDo6cmVzdG9yZVRvKFBhZ2UqIHBhZ2UsIFNldHRpbmdzKiBzZXR0aW5ncykKICAg
ICBzZXR0aW5ncy0+c2V0VGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUobV9vcmlnaW5h
bFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKTsKICAgICBzZXR0aW5ncy0+c2V0VGV4
dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IobV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nRm9udFNj
YWxlRmFjdG9yKTsKICNlbmRpZgorICAgIHNldHRpbmdzLT5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUo
bV9vcmlnaW5hbFJlc29sdXRpb25PdmVycmlkZSk7CiAjaWYgRU5BQkxFKERJQUxPR19FTEVNRU5U
KQogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldERpYWxvZ0VsZW1lbnRFbmFibGVkKG1f
b3JpZ2luYWxEaWFsb2dFbGVtZW50RW5hYmxlZCk7CiAjZW5kaWYKQEAgLTQxMyw2ICs0MTUsMTMg
QEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVy
cmlkZShpbnQgd2lkdGgsIGludCBoZWlnaHQKICNlbmRpZgogfQogCit2b2lkIEludGVybmFsU2V0
dGluZ3M6OnNldFJlc29sdXRpb25PdmVycmlkZShpbnQgZG90c1BlckNTU0luY2hIb3Jpem9udGFs
bHksIGludCBkb3RzUGVyQ1NTSW5jaFZlcnRpY2FsbHksIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7CisgICAgLy8gQW4gZW1wdHkg
c2l6ZSByZXNldHMgdGhlIG92ZXJyaWRlLgorICAgIHNldHRpbmdzKCktPnNldFJlc29sdXRpb25P
dmVycmlkZShJbnRTaXplKGRvdHNQZXJDU1NJbmNoSG9yaXpvbnRhbGx5LCBkb3RzUGVyQ1NTSW5j
aFZlcnRpY2FsbHkpKTsKK30KKwogdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRUZXh0QXV0b3Np
emluZ0ZvbnRTY2FsZUZhY3RvcihmbG9hdCBmb250U2NhbGVGYWN0b3IsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IDc4ZjM2ZTAxNzYxY2ViZGMzMWQ4OTQyMTlkMzIw
YjYwMmExNjliNGYuLmY2NzljNmZjMDI3M2VkMGNmMzljODVmM2VlN2FiOWEwNjM5MGVjNzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCkBAIC0yNywxNSArMjcs
MTIgQEAKICNkZWZpbmUgSW50ZXJuYWxTZXR0aW5nc19oCiAKICNpbmNsdWRlICJFZGl0aW5nQmVo
YXZpb3JUeXBlcy5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJSZWZDb3VudGVk
U3VwcGxlbWVudC5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotI2lmIEVO
QUJMRShURVhUX0FVVE9TSVpJTkcpCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgotI2VuZGlmCi0KIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogdHlwZWRlZiBpbnQgRXhjZXB0aW9uQ29kZTsKQEAgLTc5LDYg
Kzc2LDcgQEAgcHVibGljOgogICAgICAgICBJbnRTaXplIG1fb3JpZ2luYWxUZXh0QXV0b3Npemlu
Z1dpbmRvd1NpemVPdmVycmlkZTsKICAgICAgICAgZmxvYXQgbV9vcmlnaW5hbFRleHRBdXRvc2l6
aW5nRm9udFNjYWxlRmFjdG9yOwogI2VuZGlmCisgICAgICAgIEludFNpemUgbV9vcmlnaW5hbFJl
c29sdXRpb25PdmVycmlkZTsKICNpZiBFTkFCTEUoRElBTE9HX0VMRU1FTlQpCiAgICAgICAgIGJv
b2wgbV9vcmlnaW5hbERpYWxvZ0VsZW1lbnRFbmFibGVkOwogI2VuZGlmCkBAIC0xMjcsNiArMTI1
LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKGJvb2wgZW5h
YmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdXaW5kb3dT
aXplT3ZlcnJpZGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBFeGNlcHRpb25Db2RlJik7CiAgICAg
dm9pZCBzZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcihmbG9hdCBmb250U2NhbGVGYWN0
b3IsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldFJlc29sdXRpb25PdmVycmlkZShpbnQg
ZG90c1BlckNTU0luY2hIb3Jpem9udGFsbHksIGludCBkb3RzUGVyQ1NTSW5jaFZlcnRpY2FsbHks
IEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGJvb2wg
ZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIGJvb2wgc2Nyb2xsQW5pbWF0b3JFbmFibGVk
KEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldENTU0V4Y2x1c2lvbnNFbmFibGVkKGJvb2wg
ZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5pZGwKaW5kZXggZjM0NjRiZTlhNGVjNjQ1NjRiNDM0NTA5Nzg3ZGY4NDdlM2Vl
ODFjZS4uMjllZTNhMDIxZDg1Y2YyYjQ1MWJkM2FmZDU2YmZkZDVlNmIwY2I5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC01Niw2ICs1Niw3IEBA
CiAgICAgdm9pZCBzZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6
ZU92ZXJyaWRlKGluIGxvbmcgd2lkdGgsIGluIGxvbmcgaGVpZ2h0KSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKGluIGZsb2F0
IGZvbnRTY2FsZUZhY3RvcikgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgdm9pZCBzZXRSZXNv
bHV0aW9uT3ZlcnJpZGUoaW4gbG9uZyBkb3RzUGVyQ1NTSW5jaEhvcml6b250YWxseSwgaW4gbG9u
ZyBkb3RzUGVyQ1NTSW5jaFZlcnRpY2FsbHkpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZv
aWQgc2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICAgICBib29sZWFuIHNjcm9sbEFuaW1hdG9yRW5hYmxlZCgpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQoaW4gYm9vbGVh
biBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgppbmRl
eCBkMzlmMTRhM2NhYWMyODg2ZTkwYTkwZGE1M2U5ZjBhYTY3MGU2YjU2Li45ZmE0NjcxMGYxMWIy
NzkyMzBjYmRkNjQzYmY5N2UwNTc5YWY0NWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCkBAIC0y
NDEsNiArMjQxLDcgQEAgRVhQT1JUUwogICAgICAgICA/c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5
QFNldHRpbmdzQFdlYkNvcmVAQFFBRVhXNFN0b3JhZ2VCbG9ja2luZ1BvbGljeUBTZWN1cml0eU9y
aWdpbkAyQEBaCiAgICAgICAgID9zZXRTdWdnZXN0ZWRWYWx1ZUBIVE1MSW5wdXRFbGVtZW50QFdl
YkNvcmVAQFFBRVhBQlZTdHJpbmdAV1RGQEBAWgogICAgICAgICA/c2V0RWRpdGluZ1ZhbHVlQEhU
TUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUFFWEFCVlN0cmluZ0BXVEZAQEBaCisgICAgICAgID9z
ZXRSZXNvbHV0aW9uT3ZlcnJpZGVAU2V0dGluZ3NAV2ViQ29yZUBAUUFFWEFCVkludFNpemVAMkBA
WgogICAgICAgICA/c2V0dGluZ3NARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWU2V0dGluZ3NAMkBY
WgogICAgICAgICA/c2V0dGluZ3NARnJhbWVAV2ViQ29yZUBAUUJFUEFWU2V0dGluZ3NAMkBYWgog
ICAgICAgICA/c2V0Rml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZUBTZXR0aW5nc0BX
ZWJDb3JlQEBRQUVYX05AWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZp
bHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggYWVkNTRhZjIxYWM4
Yzg4NGJkZWUyMjRlODliZTJlNmNhODQ1YWZkZi4uMzJlZmU1YTlkZWRmMGEyMTg3ZmY5MThmNWJk
MGI0ODk0YTIyNDVmZCAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRl
cgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC0xNzUsNiArMTc1LDcg
QEAgX1pON1dlYkNvcmU4U2V0dGluZ3MyNHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZEViOwogX1pO
N1dlYkNvcmU4U2V0dGluZ3MyNHNldFVzZXNPdmVybGF5U2Nyb2xsYmFyc0ViOwogX1pON1dlYkNv
cmU4U2V0dGluZ3MyNHNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeUVOU18xNFNlY3VyaXR5T3JpZ2lu
MjFTdG9yYWdlQmxvY2tpbmdQb2xpY3lFOwogX1pON1dlYkNvcmU4U2V0dGluZ3MzN3NldEZpeGVk
RWxlbWVudHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWVFYjsKK19aTjdXZWJDb3JlOFNldHRpbmdzMjFz
ZXRSZXNvbHV0aW9uT3ZlcnJpZGVFUktOU183SW50U2l6ZUU7CiBfWk43V2ViQ29yZTlGcmFtZVZp
ZXcxN3BhaW50Q29udHJvbFRpbnRzRXY7CiBfWk43V2ViQ29yZTlGcmFtZVZpZXcxOXNjcm9sbEVs
ZW1lbnRUb1JlY3RFUE5TXzdFbGVtZW50RVJLTlNfN0ludFJlY3RFOwogX1pON1dlYkNvcmUyMlJ1
bnRpbWVFbmFibGVkRmVhdHVyZXMzMWlzTXVsdGlwbGVTaGFkb3dTdWJ0cmVlc0VuYWJsZWRFOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDdmZjczM2M4ZmZhNDEyNDdjYzI3NmE4ZWRmMDgyOWQyNzU5YjIwMDcuLmJjNzE0YjEw
YzI3MDVjNDQxNWUwZTlhMDMwMDRhNjg0MTk4NWYyNDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAor
MjAxMi0xMC0xNSAgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlc29sdXRpb24gbWVkaWEgcXVlcnkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5MDc3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCAocmVzb2x1
dGlvbjogeCkgbWVkaWEgcXVlcnkgdG8gZW5zdXJlIGNvbXBsaWFuY2UKKyAgICAgICAgd2l0aCBz
cGVjIHBsdXMgcHJvcG9zZWQgZHBweCB2YWx1ZXMuCisKKyAgICAgICAgKiBmYXN0L21lZGlhL21x
LXJlc29sdXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhL21x
LXJlc29sdXRpb24uaHRtbDogQWRkZWQuCisKKyAgICAgICAgKiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorCisgICAgICAgICAgICBTa2lwIHRoZSB0ZXN0IGFz
IHRoZSBwb3J0cyBkbyBub3QgZW5hYmxlIENTUyBJbWFnZSBSZXNvbHV0aW9uLgorCiAyMDEyLTEw
LTIyICBBbnRvbiBNdWhpbiAgPGFudG9ubUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCBDaHJvbWl1bSByZWJhc2VsaW5lcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
bWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
L21xLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxOGY4YmE3MzdjYzllNTZj
MWQ3NGEyZjBhNDk0NWMyYjhkOGVhYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21xLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDAgQEAKK0NT
UzMgbWVkaWEgcXVlcnkgdGVzdDogcmVzb2x1dGlvbiBxdWVyeSB3aXRoIGRwcHguIFVzaW5nIHN0
eWxlIGVsZW1lbnQsIEBtZWRpYSBjc3MgcnVsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMGRwaSknKS5tYXRj
aGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAw
ZHBpKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJl
c29sdXRpb246IDBkcGkpJykubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdl
YmtpdC1yZXNvbHV0aW9uOiAxLjVkcHB4KScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyByZXNvbHV0
aW9uRnJvbVN0eWxlKCkgaXMgMS41CitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRp
b246IDJkcHB4KScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyByZXNvbHV0aW9uRnJvbVN0eWxlKCkg
aXMgMgorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxZHBweCknKS5tYXRj
aGVzIGlzIHRydWUKK1BBU1MgcmVzb2x1dGlvbkZyb21TdHlsZSgpIGlzIDEKK1BBU1MgbWF0Y2hN
ZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMi4yNWRwcHgpJykubWF0Y2hlcyBpcyB0cnVlCitQ
QVNTIHJlc29sdXRpb25Gcm9tU3R5bGUoKSBpcyAyLjI1CitQQVNTIG1hdGNoTWVkaWEoJygtd2Vi
a2l0LXJlc29sdXRpb24pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Vi
a2l0LXJlc29sdXRpb246IDIxNmRwaSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRp
YSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDIxNmRwaSknKS5tYXRjaGVzIGlzIHRydWUKK1BB
U1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDIxNmRwaSknKS5tYXRjaGVz
IGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogODVkcGNtKScp
Lm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlv
bjogODVkcGNtKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1t
YXgtcmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlh
KCcoLXdlYmtpdC1yZXNvbHV0aW9uKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRp
YSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMjE2ZHBpKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1Mg
bWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMgaXMgZmFs
c2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246IDIxNmRwaSknKS5t
YXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246
IDI1NGRwaSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJygtd2Via2l0LW1h
eC1yZXNvbHV0aW9uOiAyMTZkcGkpJykubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlh
KCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFT
UyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiA4NWRwY20pJykubWF0Y2hlcyBpcyBm
YWxzZQorUEFTUyBtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1h
dGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWluLXJlc29sdXRpb246
IDg1ZHBjbSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWlu
LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlh
KCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BB
U1MgbWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hl
cyBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hZjMxOWRmOTFjN2QwOGNlOGZiNzhmNjMxN2YxZGZjOWNmNzMwNWRhCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwKQEAgLTAsMCAr
MSw5MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisKKzxkaXYgaWQ9ImRldGVj
dG9yIj48L2Rpdj4KKworPHN0eWxlPgorICAgICNkZXRlY3RvciB7IHdpZHRoOiAxMHB4OyB9Cisg
ICAgQG1lZGlhICgtd2Via2l0LXJlc29sdXRpb246IDEuMDBkcHB4KSB7ICNkZXRlY3RvciB7IHdp
ZHRoOiAxMHB4OyB9IH0KKyAgICBAbWVkaWEgKC13ZWJraXQtcmVzb2x1dGlvbjogMS41MGRwcHgp
IHsgI2RldGVjdG9yIHsgd2lkdGg6IDE1cHg7IH0gfQorICAgIEBtZWRpYSAoLXdlYmtpdC1yZXNv
bHV0aW9uOiAyLjAwZHBweCkgeyAjZGV0ZWN0b3IgeyB3aWR0aDogMjBweDsgfSB9CisgICAgQG1l
ZGlhICgtd2Via2l0LXJlc29sdXRpb246IDIuMjVkcHB4KSB7ICNkZXRlY3RvciB7IHdpZHRoOiAy
M3B4OyB9IH0KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRpb24oIkNTUzMgbWVk
aWEgcXVlcnkgdGVzdDogcmVzb2x1dGlvbiBxdWVyeSB3aXRoIGRwcHguIFVzaW5nIHN0eWxlIGVs
ZW1lbnQsIEBtZWRpYSBjc3MgcnVsZS4iKQorCisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYm
IHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworCisgICAgICAgIGZ1bmN0aW9uIHJlc29sdXRpb25Gcm9tU3R5bGUoKSB7CisgICAgICAg
ICAgICB2YXIgd2lkdGggPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJkZXRlY3RvciIpKS53aWR0aDsKKyAgICAgICAgICAgIHN3aXRjaCAod2lkdGgpIHsKKyAgICAg
ICAgICAgICAgICBjYXNlICIxMHB4IjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7Cisg
ICAgICAgICAgICAgICAgY2FzZSAiMTVweCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAx
LjU7CisgICAgICAgICAgICAgICAgY2FzZSAiMjBweCI6CisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAyOworICAgICAgICAgICAgICAgIGNhc2UgIjIzcHgiOgorICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gMi4yNTsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAg
ICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDBkcGkpJykubWF0
Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQt
bWluLXJlc29sdXRpb246IDBkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91
bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDBkcGkpJykubWF0Y2hl
cyIsICJmYWxzZSIpOworCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVz
b2x1dGlvbk92ZXJyaWRlKDE0NCwgMTQ0KTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEo
Jygtd2Via2l0LXJlc29sdXRpb246IDEuNWRwcHgpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAg
ICAgIHNob3VsZEJlKCJyZXNvbHV0aW9uRnJvbVN0eWxlKCkiLCAiMS41Iik7CisKKyAgICAgICAg
d2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMTkyLCAxOTIp
OworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMmRw
cHgpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJyZXNvbHV0aW9uRnJv
bVN0eWxlKCkiLCAiMiIpOworCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0
UmVzb2x1dGlvbk92ZXJyaWRlKDk2LCA5Nik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlh
KCcoLXdlYmtpdC1yZXNvbHV0aW9uOiAxZHBweCknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAg
ICAgc2hvdWxkQmUoInJlc29sdXRpb25Gcm9tU3R5bGUoKSIsICIxIik7CisKKyAgICAgICAgd2lu
ZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMjE2LCAyMTYpOwor
ICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMi4yNWRw
cHgpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJyZXNvbHV0aW9uRnJv
bVN0eWxlKCkiLCAiMi4yNSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJr
aXQtcmVzb2x1dGlvbiknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1h
dGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRpb246IDIxNmRwaSknKS5tYXRjaGVzIiwgInRydWUi
KTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9u
OiAyMTZkcGkpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1l
ZGlhKCcoLXdlYmtpdC1tYXgtcmVzb2x1dGlvbjogMjE2ZHBpKScpLm1hdGNoZXMiLCAidHJ1ZSIp
OworCisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1yZXNvbHV0aW9uOiA4
NWRwY20pJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlh
KCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNoZXMiLCAidHJ1ZSIpOwor
ICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29sdXRpb246IDg1
ZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsKKworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgyMTYsIDI1NCk7CisgICAgICAgIC8vIE5vbi1z
cXVhcmUgbXVzdCBuZXZlciBtYXRjaC4KKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygt
d2Via2l0LXJlc29sdXRpb24pJykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRC
ZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMjE2ZHBpKScpLm1hdGNoZXMiLCAi
ZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LXJlc29sdXRp
b246IDI1NGRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisKKyAgICAgICAgc2hvdWxkQmUoIm1h
dGNoTWVkaWEoJygtd2Via2l0LW1pbi1yZXNvbHV0aW9uOiAyMTZkcGkpJykubWF0Y2hlcyIsICJ0
cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1
dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1h
dGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAyMTZkcGkpJykubWF0Y2hlcyIsICJm
YWxzZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtbWF4LXJlc29s
dXRpb246IDI1NGRwaSknKS5tYXRjaGVzIiwgInRydWUiKTsKKworICAgICAgICAvLyBOb24tc3F1
YXJlIG11c3QgbmV2ZXIgbWF0Y2guCisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdl
YmtpdC1yZXNvbHV0aW9uOiA4NWRwY20pJykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBz
aG91bGRCZSgibWF0Y2hNZWRpYSgnKC13ZWJraXQtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRj
aGVzIiwgImZhbHNlIik7CisKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0
LW1pbi1yZXNvbHV0aW9uOiA4NWRwY20pJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNo
b3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtpdC1taW4tcmVzb2x1dGlvbjogMTAwZHBjbSknKS5t
YXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcoLXdlYmtp
dC1tYXgtcmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAg
c2hvdWxkQmUoIm1hdGNoTWVkaWEoJygtd2Via2l0LW1heC1yZXNvbHV0aW9uOiAxMDBkcGNtKScp
Lm1hdGNoZXMiLCAidHJ1ZSIpOworICAgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA2YWU2OTUzOGVlYWYxZTQyZWUwOTAyODZkNDkzYjdlZWFkY2RjZGRhLi5iZGRiOWExNmJlM2Fh
ZjFiMDQxZmU3ZjUwYzI2MzAwMWUxOTgwNTRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3MSw2ICsxNzEsNyBAQCB3ZWJraXQub3Jn
L2IvNzUxMjMgd2ViaW50ZW50cy9pbnRlbnQtdGFnLmh0bWwKIAogIyBDU1MgaW1hZ2UtcmVzb2x1
dGlvbiBpcyBub3QgeWV0IGVuYWJsZWQuCiB3ZWJraXQub3JnL2IvODUyNjIgZmFzdC9jc3MvaW1h
Z2UtcmVzb2x1dGlvbgord2Via2l0Lm9yZy9iLzg1MjYyIGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlv
bi5odG1sIFsgU2tpcCBdCiAKICMgQ1NTIGltYWdlLW9yaWVudGF0aW9uIGlzIG5vdCB5ZXQgZW5h
YmxlZC4KIHdlYmtpdC5vcmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiYWY3ZjhlYzg2N2Rk
ZjRlYWE4MjIzZmQwZjJhNjg4ZjNiNmFlMTAxLi4xM2Y3MjE0NWVhNmY0NjIzNzU4MzRkNGY5Nzgx
YTBiODZlODNiNTc1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtOTY3LDYgKzk2Nyw3IEBAIHdlYmtpdC5vcmcvYi84NzkwOCBlZGl0aW5nL3VuZG9tYW5h
Z2VyCiAKICMgQ1NTIGltYWdlLXJlc29sdXRpb24gaXMgbm90IHlldCBlbmFibGVkLgogd2Via2l0
Lm9yZy9iLzg1MjYyIGZhc3QvY3NzL2ltYWdlLXJlc29sdXRpb24KK3dlYmtpdC5vcmcvYi84NTI2
MiBmYXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRtbCBbIFNraXAgXQogCiAjIENTUyBpbWFnZS1v
cmllbnRhdGlvbiBpcyBub3QgeWV0IGVuYWJsZWQuCiB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9j
c3MvaW1hZ2Utb3JpZW50YXRpb24KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwpp
bmRleCAyM2YwMzkwY2UxYjQyYjNjNzhiZDM3MmVmZTljNmY2OTA5YThkNTBmLi40MGNiNzEwYzA1
NDdjZWZjNTNhZGU2MzJmMWYxMTIzZjcyNmEwN2Y4IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysr
IGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMTYgIEtlbm5ldGggUm9oZGUg
Q2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciByZXNvbHV0aW9uIG1lZGlhIHF1ZXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05OTA3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjoKKwor
ICAgICAgICAgICAgRXhwb3J0IHRoZSBXZWJDb3JlOjpTZXR0aW5ncyBzZXR0aW5nLgorCiAyMDEy
LTEwLTE5ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjEzMTkzNi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169980</attachid>
            <date>2012-10-22 14:03:54 -0700</date>
            <delta_ts>2012-10-23 05:59:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99077-20121022230226.patch</filename>
            <type>text/plain</type>
            <size>36207</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWU0OTg0NWRhMzM3OWY1
MTgwZGI0OWJlZmE2NjhjYzBiNDdhOGRiYi4uMDU2NDBjNzY1MjNlOGE2MTIyZThiNDlhYTM3Nzk5
M2UxZjg1NGI2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDEyLTEwLTE1ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgJ3Jlc29sdXRpb24n
IG1lZGlhIHF1ZXJ5IGZlYXR1cmUuCisKKyAgICAgICAgQmFja2dyb3VuZCBpbmZvOgorICAgICAg
ICBodHRwOi8vd3d3LnczLm9yZy9ibG9nL0NTUy8yMDEyLzA2LzE0L3VucHJlZml4LXdlYmtpdC1k
ZXZpY2UtcGl4ZWwtcmF0aW8KKworICAgICAgICBSZWxhdGVkIHNwZWMgbGlua3M6CisgICAgICAg
IGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtbWVkaWFxdWVyaWVzLyNyZXNvbHV0aW9uIChyZWNv
bW1lbmRhdGlvbikKKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy12YWx1ZXMvI3Jl
c29sdXRpb24gKGNhbmRpZGF0ZSByZWNvbW1lbnRhdGlvbikKKworICAgICAgICBBZGQgaW5mcmFz
dHJ1Y3R1cmUgdG8gbWFrZSBpdCB0ZXN0YWJsZS4KKworICAgICAgICBUZXN0OiBmYXN0L21lZGlh
L21xLXJlc29sdXRpb24uaHRtbAorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisKKyAgICAg
ICAgICAgIEV4cG9ydCB0aGUgV2ViQ29yZTo6U2V0dGluZ3Mgc2V0dGluZy4KKworICAgICAgICAq
IGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6OmlzRG90c1BlckluY2gpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWU6OmlzRG90c1BlclBpeGVsKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVl
Ojppc0RvdHNQZXJDZW50aW1ldGVyKToKKyAgICAgICAgKENTU1ByaW1pdGl2ZVZhbHVlKToKKwor
ICAgICAgICAgICAgQWRkIGZ1bmN0aW9uIGZvciBjaGVja2luZyB0aGUgcmVjZW50bHkgYWRkZWQg
ZGVuc2l0eSB0eXBlcy4KKworICAgICAgICAqIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5oOgorICAg
ICAgICAoTWVkaWFGZWF0dXJlTmFtZXMpOgorCisgICAgICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
cmVzb2x1dGlvbiwgbWluLXJlc29sdXRpb24gYW5kIG1heC1yZXNvbHV0aW9uLgorCisgICAgICAg
ICogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29tcGFy
ZVJlc29sdXRpb24pOiBBZGQgbWV0aG9kcyBmb3IgY29tcGFyaW5nIHJlc29sdXRpb25zLgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpyZXNvbHV0aW9uTWVkaWFGZWF0dXJl
RXZhbCk6CisgICAgICAgIChXZWJDb3JlOjptaW5fcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwp
OgorICAgICAgICAoV2ViQ29yZTo6bWF4X3Jlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKToKKwor
ICAgICAgICAgICAgSW1wbGVtZW50IHRoZSByZXNvbHV0aW9uIG1ldGhvZCBldmFsdWF0aW9uLgor
CisgICAgICAgICogY3NzL01lZGlhUXVlcnlFeHAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmVh
dHVyZVdpdGhWYWxpZFBvc2l0aXZlRGVuc2l0eSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRob3V0VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFRdWVyeUV4cDo6TWVkaWFRdWVyeUV4cCk6CisKKyAgICAgICAgICAgIEhvb2sgdXAgcmVzb2x1
dGlvbiB3aXRoIHRoZSByaWdodCBwcmUtY2hlY2tzLgorCisgICAgICAgKiBwYWdlL1NjcmVlbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JlZW46Omhvcml6b250YWxEUEkpOgorICAgICAgICAo
V2ViQ29yZTo6U2NyZWVuOjp2ZXJ0aWNhbERQSSk6CisKKyAgICAgICAgICAgIENoZWNrIHdoZXRo
ZXIgYW4gb3ZlcnJpZGUgZXhpc3RzLCBhbmQgaWYgc28sIHVzZXMgaXQuCisgICAgICAgICAgICBJ
ZiBub3QgY2FsY3VsYXRlIHRoZSB2YWx1ZSBnaXZlbiB0aGUgZGV2aWNlIHNjYWxlIGZhY3Rvci4K
KworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGlu
Z3M6OnNldFJlc29sdXRpb25PdmVycmlkZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChTZXR0aW5ncyk6CisgICAgICAgIChXZWJDb3Jl
OjpTZXR0aW5nczo6cmVzb2x1dGlvbk92ZXJyaWRlKToKKworICAgICAgICAgICAgQWRkIGEgcmVz
b2x1dGlvbiBvdmVycmlkZSB0byBzZXR0aW5ncy4KKworICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNr
dXA6OkJhY2t1cCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6
OnJlc3RvcmVUbyk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRSZXNv
bHV0aW9uT3ZlcnJpZGUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmg6CisgICAgICAgIChCYWNrdXApOgorICAgICAgICAoSW50ZXJuYWxT
ZXR0aW5ncyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbDoKKworICAg
ICAgICAgICAgQWRkIGEgbmV3IHNldFJlc29sdXRpb25PdmVycmlkZSBtZXRob2QgdG8gaW50ZXJu
YWxzLnNldHRpbmdzLgorCiAyMDEyLTEwLTIxICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29n
bGUuY29tPgogCiAgICAgICAgIFtWOF0gVjhFbmFibGVQZXJDb250ZXh0IHNob3VsZG4ndCByZXF1
aXJlIGRvY3VtZW50KCkgYWNjZXNzb3IgdG8gdGhlIG5hdGl2ZSBvYmplY3QuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5k
ZXggMDcyYjg3MjgxMWM2YjY3NDYxYjMyMTIzNjExNjFlMzE0NzI3NTRkZi4uYmUwNjRlMjI0ZTU0
NjE1ZWM2M2VjZDRiZTMzMmM4ZWY4MDQ0NjVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDEyLTEwLTE2ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0
Lm9yZz4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdpbi9XZWJL
aXQyLmRlZjoKKworICAgICAgICAgICAgQWRkIGV4cG9ydHMgZm9yIHRoZSBXZWJDb3JlOjpTZXR0
aW5ncyBzZXR0aW5nLgorCiAyMDEyLTEwLTIxICBNaWxpYW4gV29sZmYgIDxtaWxpYW4ud29sZmZA
a2RhYi5jb20+CiAKICAgICAgICAgW1F0XSBRTlggYnVpbGQgZmFpbHMgd2hlbiBidWlsZGluZyBh
Z2FpbnN0IFF0IHdpdGhvdXQgY2xpcGJvYXJkIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5k
ZXggNzkzNDU1MzFhOGUxMzBhY2RhZDA5YzZjYWNlNDhmMGU4MDlmMTdiMy4uZjEzZDY2ZTRhNGYz
NTM5YTFiMGQ1MTJmY2RlOTY4ODZiOGJmZjAzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTk2
Myw2ICs5NjMsNyBAQCBfX1pON1dlYkNvcmU4U2V0dGluZ3M0MHNldFRleHREaXJlY3Rpb25TdWJt
ZW51SW5jbHVzaW9uQmVoYXZpb3JFTlNfMzdUZXh0RGlyZWN0aQogX19aTjdXZWJDb3JlOFNldHRp
bmdzNDFzZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1aXJrc0ViCiBfX1pON1dl
YkNvcmU4U2V0dGluZ3M0NHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0
aW5nRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczQ1c2V0U2hvdWxkUmVzcGVjdFByaW9yaXR5SW5D
U1NBdHRyaWJ1dGVTZXR0ZXJzRWIKK19fWk43V2ViQ29yZThTZXR0aW5nczIxc2V0UmVzb2x1dGlv
bk92ZXJyaWRlRVJLTlNfN0ludFNpemVFCiBfX1pON1dlYkNvcmU4YmxhbmtVUkxFdgogX19aTjdX
ZWJDb3JlOG1ha2VSR0JBRWlpaWkKIF9fWk43V2ViQ29yZThvcGVuRmlsZUVSS04zV1RGNlN0cmlu
Z0VOU18xMkZpbGVPcGVuTW9kZUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
cmltaXRpdmVWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgK
aW5kZXggYWEyZGJlYWMzMmRkYjM4NzdiMWRiNWVmYmQwYWFlZTc3MTJkNjg2Ni4uZGM0Njc4MzUw
NTlkZDVmY2NlNGY5MWE1MjVhN2I5ZDFiYjJkNTdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlLmgKQEAgLTE4MSw2ICsxODEsMTAgQEAgcHVibGljOgogICAgIGJvb2wgaXND
YWxjdWxhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0VHlwZSA9PSBDU1NfQ0FM
QzsgfQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdpdGhOdW1iZXIoKSBjb25zdCB7
IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVSQ0VOVEFHRV9XSVRIX05VTUJF
UjsgfQogICAgIGJvb2wgaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdpdGhMZW5ndGgoKSBjb25zdCB7
IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0NBTENfUEVSQ0VOVEFHRV9XSVRIX0xFTkdU
SDsgfQorICAgIGJvb2wgaXNEb3RzUGVySW5jaCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5
cGUoKSA9PSBDU1NfRFBJOyB9CisgICAgYm9vbCBpc0RvdHNQZXJQaXhlbCgpIGNvbnN0IHsgcmV0
dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBQWDsgfQorICAgIGJvb2wgaXNEb3RzUGVyQ2Vu
dGltZXRlcigpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBDTTsgfQor
CiAjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCiAgICAgYm9vbCBpc1ZhcmlhYmxlTmFtZSgpIGNv
bnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfVkFSSUFCTEVfTkFNRTsgfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCmluZGV4IGIwODQzOWU0YTAx
ODM0OTIyZmRhMDBlOGFkOTdlZmYyMGZiZWMwZmMuLjI2NjY4YWU0NjZmM2M2Y2Q5ZjQzMWQwMzk2
MDIxZmQzNWM3YjU2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1
cmVOYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oCkBA
IC00Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhtYXhfaGVpZ2h0
LCAibWF4LWhlaWdodCIpIFwKICAgICBtYWNybyhtYXhfbW9ub2Nocm9tZSwgIm1heC1tb25vY2hy
b21lIikgXAogICAgIG1hY3JvKG1heF93aWR0aCwgIm1heC13aWR0aCIpIFwKKyAgICBtYWNybyht
YXhfcmVzb2x1dGlvbiwgIm1heC1yZXNvbHV0aW9uIikgXAogICAgIG1hY3JvKG1pbl9jb2xvciwg
Im1pbi1jb2xvciIpIFwKICAgICBtYWNybyhtaW5fYXNwZWN0X3JhdGlvLCAibWluLWFzcGVjdC1y
YXRpbyIpIFwKICAgICBtYWNybyhtaW5fZGV2aWNlX2FzcGVjdF9yYXRpbywgIm1pbi1kZXZpY2Ut
YXNwZWN0LXJhdGlvIikgXApAQCAtNTYsNyArNTcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgbWFjcm8obWluX2hlaWdodCwgIm1pbi1oZWlnaHQiKSBcCiAgICAgbWFjcm8obWluX21vbm9j
aHJvbWUsICJtaW4tbW9ub2Nocm9tZSIpIFwKICAgICBtYWNybyhtaW5fd2lkdGgsICJtaW4td2lk
dGgiKSBcCisgICAgbWFjcm8obWluX3Jlc29sdXRpb24sICJtaW4tcmVzb2x1dGlvbiIpIFwKICAg
ICBtYWNybyhwb2ludGVyLCAicG9pbnRlciIpIFwKKyAgICBtYWNybyhyZXNvbHV0aW9uLCAicmVz
b2x1dGlvbiIpIFwKICAgICBtYWNybyh0cmFuc2Zvcm1fMmQsICItd2Via2l0LXRyYW5zZm9ybS0y
ZCIpIFwKICAgICBtYWNybyh0cmFuc2Zvcm1fM2QsICItd2Via2l0LXRyYW5zZm9ybS0zZCIpIFwK
ICAgICBtYWNybyh0cmFuc2l0aW9uLCAiLXdlYmtpdC10cmFuc2l0aW9uIikgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IGRhYTQ5MGI4YmRjODQ2ODdj
NzQ5YTliNTEwZTQ0YzM5YzY5MTA4ZTUuLjgzM2IwNzJkNDY5ZmM5MjZmMmU5MDM5NDhjNzJkYjE4
ODQ1OWZkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVh
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAK
QEAgLTI5LDExICsyOSwxMiBAQAogI2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKIAog
I2luY2x1ZGUgIkNTU0FzcGVjdFJhdGlvVmFsdWUuaCIKLSNpbmNsdWRlICJDaHJvbWUuaCIKLSNp
bmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgog
I2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIK
KyNpbmNsdWRlICJDaHJvbWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRl
ICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgpAQCAtNDUsOCArNDYsOSBAQAogI2luY2x1ZGUgIk5v
ZGVSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNj
cmVlbi5oIgotI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZS5o
IgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJTY3JlZW4uaCIKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgpAQCAtNjYsMTUgKzY4LDEzIEBAIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJp
bmdJbXBsKiwgRXZhbEZ1bmM+IEZ1bmN0aW9uTWFwOwogc3RhdGljIEZ1bmN0aW9uTWFwKiBnRnVu
Y3Rpb25NYXA7CiAKIC8qCi0gKiBGSVhNRTogZm9sbG93aW5nIG1lZGlhIGZlYXR1cmVzIGFyZSBu
b3QgaW1wbGVtZW50ZWQ6IGNvbG9yX2luZGV4LCBzY2FuLCByZXNvbHV0aW9uCisgKiBGSVhNRTog
Zm9sbG93aW5nIG1lZGlhIGZlYXR1cmVzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IGNvbG9yX2luZGV4
LCBzY2FuCiAgKgogICogY29sb3JfaW5kZXgsIG1pbi1jb2xvci1pbmRleCwgbWF4X2NvbG9yX2lu
ZGV4OiBJdCdzIHVua25vd24gaG93IHRvIHJldHJpZXZlCiAgKiB0aGUgaW5mb3JtYXRpb24gaWYg
dGhlIGRpc3BsYXkgbW9kZSBpcyBpbmRleGVkCiAgKiBzY2FuOiBUaGUgInNjYW4iIG1lZGlhIGZl
YXR1cmUgZGVzY3JpYmVzIHRoZSBzY2FubmluZyBwcm9jZXNzIG9mCiAgKiB0diBvdXRwdXQgZGV2
aWNlcy4gSXQncyB1bmtub3duIGhvdyB0byByZXRyaWV2ZSB0aGlzIGluZm9ybWF0aW9uIGZyb20K
ICAqIHRoZSBwbGF0Zm9ybQotICogcmVzb2x1dGlvbiwgbWluLXJlc29sdXRpb24sIG1heC1yZXNv
bHV0aW9uOiBjc3MgcGFyc2VyIGRvZXNuJ3Qgc2VlbSB0bwotICogc3VwcG9ydCBDU1NfRElNRU5T
SU9OCiAgKi8KIAogTWVkaWFRdWVyeUV2YWx1YXRvcjo6TWVkaWFRdWVyeUV2YWx1YXRvcihib29s
IG1lZGlhRmVhdHVyZVJlc3VsdCkKQEAgLTE5Nyw2ICsxOTcsMjMgQEAgc3RhdGljIGJvb2wgY29t
cGFyZUFzcGVjdFJhdGlvVmFsdWUoQ1NTVmFsdWUqIHZhbHVlLCBpbnQgd2lkdGgsIGludCBoZWln
aHQsIE1lZGkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKKyNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JF
U09MVVRJT04pCitzdGF0aWMgYm9vbCBjb21wYXJlUmVzb2x1dGlvbihmbG9hdCBtaW4sIGZsb2F0
IG1heCwgZmxvYXQgdmFsdWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKK3sKKyAgICBzd2l0Y2gg
KG9wKSB7CisgICAgY2FzZSBOb1ByZWZpeDoKKyAgICAgICAgLy8gQSAncmVzb2x1dGlvbicgKHdp
dGhvdXQgYSAibWluLSIgb3IgIm1heC0iIHByZWZpeCkgcXVlcnkKKyAgICAgICAgLy8gbmV2ZXIg
bWF0Y2hlcyBhIGRldmljZSB3aXRoIG5vbi1zcXVhcmUgcGl4ZWxzLgorICAgICAgICByZXR1cm4g
dmFsdWUgPT0gbWluICYmIHZhbHVlID09IG1heDsKKyAgICBjYXNlIE1pblByZWZpeDoKKyAgICAg
ICAgcmV0dXJuIG1pbiA+PSB2YWx1ZTsKKyAgICBjYXNlIE1heFByZWZpeDoKKyAgICAgICAgcmV0
dXJuIG1heCA8PSB2YWx1ZTsKKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisK
IHN0YXRpYyBib29sIG51bWJlclZhbHVlKENTU1ZhbHVlKiB2YWx1ZSwgZmxvYXQmIHJlc3VsdCkK
IHsKICAgICBpZiAodmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKQpAQCAtMjc4LDYgKzI5NSw4NyBA
QCBzdGF0aWMgYm9vbCBkZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVl
ICp2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcgogICAgIHJldHVybiBmcmFtZS0+cGFnZSgpLT5kZXZp
Y2VTY2FsZUZhY3RvcigpICE9IDA7CiB9CiAKK3N0YXRpYyBib29sIHJlc29sdXRpb25NZWRpYUZl
YXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1l
ZGlhRmVhdHVyZVByZWZpeCBvcCkKK3sKKyNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04p
CisgICAgLy8gVGhlIERQSSBiZWxvdyBpcyBkb3RzIHBlciBDU1MgaW5jaCBhbmQgdGh1cyBub3Qg
ZGV2aWNlIGluY2guIFRoZQorICAgIC8vIGZ1bmN0aW9ucyBzaG91bGQgcmVzcGVjdCB0aGlzLgor
ICAgIC8vCisgICAgLy8gRm9yIHNxdWFyZSBwaXhlbHMsIGl0IGlzIHNpbXBseSB0aGUgZGV2aWNl
IHNjYWxlIGZhY3RvciAoZHBweCkgdGltZXMgOTYsCisgICAgLy8gcGVyIGRlZmluaXRpb24uCisg
ICAgLy8KKyAgICAvLyBUaGUgZGV2aWNlIHNjYWxlIGZhY3RvciBpcyBhIHByZWRlZmluZWQgdmFs
dWUgd2hpY2ggaXMgY2FsY3VsYXRlZCBwZXIKKyAgICAvLyBkZXZpY2UgZ2l2ZW4gdGhlIHByZWZl
cnJlZCBkaXN0YW5jZSBpbiBhcm1zIGxlbmd0aCAoY29uc2lkZXJlZCBvbmUgYXJtcworICAgIC8v
IGxlbmd0aCBmb3IgZGVza3RvcCBjb21wdXRlcnMgYW5kIHVzdWFsbHkgMC42IGFybXMgbGVuZ3Ro
IGZvciBwaG9uZXMpLgorICAgIC8vCisgICAgLy8gVGhlIHZhbHVlIGNhbiBiZSBjYWxjdWxhdGVk
IGFzIGZvbGxvd3MgKHJvdW5kZWQgdG8gcXVhcnRlcnMpOgorICAgIC8vICAgICByb3VuZCgoZGV2
aWNlRG90c1BlckluY2ggKiBkaXN0YW5jZUluQXJtc0xlbmd0aCAvIDk2KSAqIDQpIC8gNC4KKyAg
ICAvLyBFeGFtcGxlIChtaWQtcmFuZ2UgcmVzb2x1dGlvbiBwaG9uZSk6CisgICAgLy8gICAgIHJv
dW5kKCgyNDQgKiAwLjYgLyA5NikgKiA0KSAvIDQgPSAxLjUKKyAgICAvLyBFeGFtcGxlIChoaWdo
LXJhbmdlIHJlc29sdXRpb24gbGFwdG9wKToKKyAgICAvLyAgICAgcm91bmQoKDIyMCAqIDEuMCAv
IDk2KSAqIDQpIC8gNCA9IDIuMAorCisgICAgZmxvYXQgaG9yaURQSSA9IGZyYW1lLT5kb2N1bWVu
dCgpLT5kb21XaW5kb3coKS0+c2NyZWVuKCktPmhvcml6b250YWxEUEkoKTsKKyAgICBmbG9hdCB2
ZXJ0RFBJID0gZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5zY3JlZW4oKS0+dmVydGlj
YWxEUEkoKTsKKworICAgIGZsb2F0IGxlYXN0RGVuc2VEUEkgPSBzdGQ6Om1pbihob3JpRFBJLCB2
ZXJ0RFBJKTsKKyAgICBmbG9hdCBtb3N0RGVuc2VEUEkgPSBzdGQ6Om1heChob3JpRFBJLCB2ZXJ0
RFBJKTsKKworICAgIC8vIEFjY29yZGluZyB0byBzcGVjLCAocmVzb2x1dGlvbikgd2lsbCBldmFs
dWF0ZSB0byB0cnVlIGlmIChyZXNvbHV0aW9uOngpCisgICAgLy8gd2lsbCBldmFsdWF0ZSB0byB0
cnVlIGZvciBhIHZhbHVlIHggb3RoZXIgdGhhbiB6ZXJvIG9yIHplcm8gZm9sbG93ZWQgYnkKKyAg
ICAvLyBhIHZhbGlkIHVuaXQgaWRlbnRpZmllciAoaS5lLiwgb3RoZXIgdGhhbiAwLCAwZHBpLCAw
ZHBjbSwgb3IgMGRwcHguKSwKKyAgICAvLyB3aGljaCBpcyBhbHdheXMgdGhlIGNhc2UuIEJ1dCB0
aGUgc3BlYyBzcGVjaWFsIGNhc2VzICdyZXNvbHV0aW9uJyB0bworICAgIC8vIG5ldmVyIG1hdGNo
ZXMgYSBkZXZpY2Ugd2l0aCBub24tc3F1YXJlIHBpeGVscy4KKyAgICBpZiAoIXZhbHVlKSB7Cisg
ICAgICAgIEFTU0VSVChvcCA9PSBOb1ByZWZpeCk7CisgICAgICAgIHJldHVybiBsZWFzdERlbnNl
RFBJID09IG1vc3REZW5zZURQSTsKKyAgICB9CisKKyAgICBpZiAoIXZhbHVlLT5pc1ByaW1pdGl2
ZVZhbHVlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIGh0dHA6Ly9kZXYudzMu
b3JnL2Nzc3dnL2NzczMtdmFsdWVzLyNyZXNvbHV0aW9uIGRlZmluZXMgcmVzb2x1dGlvbiBhcyBh
CisgICAgLy8gZGltZW5zaW9uLCB3aGljaCBjb250YWlucyBhIG51bWJlciAoZGVjaW1hbCBwb2lu
dCBhbGxvd2VkKSwgbm90IGp1c3QgYW4KKyAgICAvLyBpbnRlZ2VyLiBBbHNvLCBodHRwOi8vZGV2
LnczLm9yZy9jc3N3Zy9jc3MzLXZhbHVlcy8jbnVtZXJpYy10eXBlcyBzYXlzCisgICAgLy8gIkNT
UyB0aGVvcmV0aWNhbGx5IHN1cHBvcnRzIGluZmluaXRlIHByZWNpc2lvbiBhbmQgaW5maW5pdGUg
cmFuZ2VzIGZvcgorICAgIC8vIGFsbCB2YWx1ZSB0eXBlczsKKyAgICBDU1NQcmltaXRpdmVWYWx1
ZSogcmF3VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKKwor
ICAgIGlmIChyYXdWYWx1ZS0+aXNEb3RzUGVyUGl4ZWwoKSkgeworICAgICAgICAvLyBodHRwOi8v
ZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXZhbHVlcy8jYWJzb2x1dGUtbGVuZ3RocyByZWNvbW1lbmRz
CisgICAgICAgIC8vICJ0aGF0IHRoZSBwaXhlbCB1bml0IHJlZmVyIHRvIHRoZSB3aG9sZSBudW1i
ZXIgb2YgZGV2aWNlIHBpeGVscyB0aGF0CisgICAgICAgIC8vIGJlc3QgYXBwcm94aW1hdGVzIHRo
ZSByZWZlcmVuY2UgcGl4ZWwiLiBXZSBjb21wYXJlIHdpdGggMiBkZWNpbWFsCisgICAgICAgIC8v
IHBvaW50cywgd2hpY2ggYWxpZ25zIHdpdGggY3VycmVudCBkZXZpY2UtcGl4ZWwtcmF0aW8ncyBp
biB1c2UuCisgICAgICAgIGZsb2F0IGxlYXN0RGVuc2VEZW5zaXR5ID0gZmxvb3JmKGxlYXN0RGVu
c2VEUEkgKiAxMDAgLyA5NikgLyAxMDA7CisgICAgICAgIGZsb2F0IG1vc3REZW5zZURlbnNpdHkg
PSBmbG9vcmYobGVhc3REZW5zZURQSSAqIDEwMCAvIDk2KSAvIDEwMDsKKyAgICAgICAgZmxvYXQg
dGVzdGVkRGVuc2l0eSA9IHJhd1ZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfRFBQWCk7CisgICAgICAgIHJldHVybiBjb21wYXJlUmVzb2x1dGlvbihsZWFzdERlbnNl
RGVuc2l0eSwgbW9zdERlbnNlRGVuc2l0eSwgdGVzdGVkRGVuc2l0eSwgb3ApOworICAgIH0KKwor
ICAgIGlmIChyYXdWYWx1ZS0+aXNEb3RzUGVySW5jaCgpKSB7CisgICAgICAgIHVuc2lnbmVkIHRl
c3RlZERlbnNpdHkgPSByYXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX0RQSSk7CisgICAgICAgIHJldHVybiBjb21wYXJlUmVzb2x1dGlvbihsZWFzdERlbnNlRFBJ
LCBtb3N0RGVuc2VEUEksIHRlc3RlZERlbnNpdHksIG9wKTsKKyAgICB9CisKKyAgICAvLyBodHRw
Oi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXZhbHVlcy8jYWJzb2x1dGUtbGVuZ3RocyByZWNvbW1l
bmRzICJ0aGF0CisgICAgLy8gdGhlIHBpeGVsIHVuaXQgcmVmZXIgdG8gdGhlIHdob2xlIG51bWJl
ciBvZiBkZXZpY2UgcGl4ZWxzIHRoYXQgYmVzdAorICAgIC8vIGFwcHJveGltYXRlcyB0aGUgcmVm
ZXJlbmNlIHBpeGVsIi4KKyAgICBmbG9hdCBsZWFzdERlbnNlRFBDTSA9IHJvdW5kZihsZWFzdERl
bnNlRFBJIC8gMi41NCk7IC8vICgyLjU0IGNtL2luKQorICAgIGZsb2F0IG1vc3REZW5zZURQQ00g
PSByb3VuZGYobW9zdERlbnNlRFBJIC8gMi41NCk7CisKKyAgICBpZiAocmF3VmFsdWUtPmlzRG90
c1BlckNlbnRpbWV0ZXIoKSkgeworICAgICAgICBmbG9hdCB0ZXN0ZWREZW5zaXR5ID0gcmF3VmFs
dWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUENNKTsKKyAgICAgICAg
cmV0dXJuIGNvbXBhcmVSZXNvbHV0aW9uKGxlYXN0RGVuc2VEUENNLCBtb3N0RGVuc2VEUENNLCB0
ZXN0ZWREZW5zaXR5LCBvcCk7CisgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odmFsdWUp
OworICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKG9wKTsKKyNlbmRp
ZgorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBzdGF0aWMgYm9vbCBncmlkTWVkaWFGZWF0dXJl
RXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqLCBNZWRpYUZlYXR1cmVQ
cmVmaXggb3ApCiB7CiAgICAgLy8gaWYgb3V0cHV0IGRldmljZSBpcyBiaXRtYXAsIGdyaWQ6IDAg
PT0gdHJ1ZQpAQCAtNDU2LDYgKzU1NCwxNiBAQCBzdGF0aWMgYm9vbCBtYXhfZGV2aWNlX3dpZHRo
TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZQogICAg
IHJldHVybiBkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUs
IE1heFByZWZpeCk7CiB9CiAKK3N0YXRpYyBib29sIG1pbl9yZXNvbHV0aW9uTWVkaWFGZWF0dXJl
RXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBN
ZWRpYUZlYXR1cmVQcmVmaXgpCit7CisgICAgcmV0dXJuIHJlc29sdXRpb25NZWRpYUZlYXR1cmVF
dmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1pblByZWZpeCk7Cit9CisKK3N0YXRpYyBib29sIG1h
eF9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxl
KiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCit7CisgICAgcmV0dXJu
IHJlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1heFByZWZp
eCk7Cit9CisKIHN0YXRpYyBib29sIGFuaW1hdGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUq
IHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQogewog
ICAgIGlmICh2YWx1ZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVl
cnlFeHAuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwCmluZGV4IDFh
MDZiNzk2NWZjY2I5OGEwOTM1Njk1Njk3NThiMjFmYzZlMjk5ODEuLjIzYmU0MjljYWRlODUyMGFi
YzAzOTQzZjFlMjM0ZWQxOWFjZmUwNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5RXhwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5j
cHAKQEAgLTY3LDYgKzY3LDE2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFZhbGlk
UG9zaXRpdmVMZW5naHRPck51bWJlcihjb25zdCBBdG9taWNTdHJpbmcmIG1lCiAgICAgICAgIHx8
IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX2RldmljZV93aWR0aE1lZGlh
RmVhdHVyZTsKIH0KIAorc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRoVmFsaWREZW5zaXR5
KGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBjb25zdCBDU1NQYXJzZXJWYWx1ZSog
dmFsdWUpCit7CisgICAgaWYgKCh2YWx1ZS0+dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X0RQUFggJiYgdmFsdWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUEkgJiYgdmFs
dWUtPnVuaXQgIT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUENNKSB8fCB2YWx1ZS0+ZlZhbHVl
IDw9IDApCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBtZWRpYUZlYXR1cmUg
PT0gTWVkaWFGZWF0dXJlTmFtZXM6OnJlc29sdXRpb25NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwg
bWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhfcmVzb2x1dGlvbk1lZGlhRmVh
dHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbl9y
ZXNvbHV0aW9uTWVkaWFGZWF0dXJlOworfQorCiBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdp
dGhQb3NpdGl2ZUludGVnZXIoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUsIGNvbnN0
IENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKIHsKICAgICBpZiAoIXZhbHVlLT5pc0ludCB8fCB2YWx1
ZS0+ZlZhbHVlIDwgMCkKQEAgLTExNCw2ICsxMjQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZmVh
dHVyZVdpdGhBc3BlY3RSYXRpbyhjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSkKIAog
c3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRob3V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5n
JiBtZWRpYUZlYXR1cmUpCiB7CisgICAgLy8gTWVkaWEgZmVhdHVyZXMgdGhhdCBhcmUgcHJlZml4
ZWQgYnkgbWluL21heCBjYW5ub3QgYmUgdXNlZCB3aXRob3V0IGEgdmFsdWUuCiAgICAgcmV0dXJu
IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bW9ub2Nocm9tZU1lZGlhRmVhdHVy
ZQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmNvbG9yTWVk
aWFGZWF0dXJlCiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6
Z3JpZE1lZGlhRmVhdHVyZQpAQCAtMTMxLDcgKzE0Miw4IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBm
ZWF0dXJlV2l0aG91dFZhbHVlKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlKQogICAg
ICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmFuaW1hdGlvbk1lZGlh
RmVhdHVyZQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnZp
ZXdfbW9kZU1lZGlhRmVhdHVyZQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0
dXJlTmFtZXM6OnBvaW50ZXJNZWRpYUZlYXR1cmUKLSAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09
IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmU7CisgICAg
ICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6ZGV2aWNlX3BpeGVsX3Jh
dGlvTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVO
YW1lczo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZTsKIH0KIAogaW5saW5lIE1lZGlhUXVlcnlFeHA6
Ok1lZGlhUXVlcnlFeHAoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUsIENTU1BhcnNl
clZhbHVlTGlzdCogdmFsdWVMaXN0KQpAQCAtMTQ4LDYgKzE2MCwxMCBAQCBpbmxpbmUgTWVkaWFR
dWVyeUV4cDo6TWVkaWFRdWVyeUV4cChjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwg
Q1NTUGFyc2VyVgogICAgICAgICAgICAgaWYgKGZlYXR1cmVXaXRoQ1NTVmFsdWVJRChtZWRpYUZl
YXR1cmUsIHZhbHVlKSkKICAgICAgICAgICAgICAgICBtX3ZhbHVlID0gQ1NTUHJpbWl0aXZlVmFs
dWU6OmNyZWF0ZUlkZW50aWZpZXIodmFsdWUtPmlkKTsKIAorICAgICAgICAgICAgLy8gTWVkaWEg
ZmVhdHVyZXMgdGhhdCBtdXN0IGhhdmUgbm9uLW5lZ2F0aXZlIDxkZW5zaXR5PiwgaWUuIGRwcHgs
IGRwaSBvciBkcGNtLgorICAgICAgICAgICAgZWxzZSBpZiAoZmVhdHVyZVdpdGhWYWxpZERlbnNp
dHkobWVkaWFGZWF0dXJlLCB2YWx1ZSkpCisgICAgICAgICAgICAgICAgbV92YWx1ZSA9IENTU1By
aW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFsdWUtPmZWYWx1ZSwgKENTU1ByaW1pdGl2ZVZhbHVlOjpV
bml0VHlwZXMpIHZhbHVlLT51bml0KTsKKwogICAgICAgICAgICAgLy8gTWVkaWEgZmVhdHVyZXMg
dGhhdCBtdXN0IGhhdmUgbm9uLW5lZ2F0aXZlIDxsZW5naHQ+IG9yIG51bWJlciB2YWx1ZS4KICAg
ICAgICAgICAgIGVsc2UgaWYgKGZlYXR1cmVXaXRoVmFsaWRQb3NpdGl2ZUxlbmdodE9yTnVtYmVy
KG1lZGlhRmVhdHVyZSwgdmFsdWUpKQogICAgICAgICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5mVmFsdWUsIChDU1NQcmltaXRpdmVWYWx1ZTo6VW5p
dFR5cGVzKSB2YWx1ZS0+dW5pdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nj
cmVlbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKaW5kZXggZTFlMWQxMTcz
ODZmNjIyZWUzYzE5M2IzZTUwMjJjODgzYThjMjViMS4uYzA4ODBjOGRlMWYxOWQzZTczM2ZkYTg4
MWQ3Y2Y1NGYzZDlkNTkzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcApAQCAtMzUsNiArMzUsNyBA
QAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCisjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJXaWRnZXQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDgsMTQg
KzQ5LDQxIEBAIHVuc2lnbmVkIFNjcmVlbjo6aG9yaXpvbnRhbERQSSgpIGNvbnN0CiB7CiAgICAg
aWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KHNjcmVlbkhvcml6b250YWxEUEkobV9mcmFtZS0+dmlldygpKSk7CisKKyAgICAv
LyBVc2VkIGJ5IHRoZSB0ZXN0aW5nIHN5c3RlbSwgY2FuIGJlIHNldCBmcm9tIGludGVybmFscy4K
KyAgICBJbnRTaXplIG92ZXJyaWRlID0gbV9mcmFtZS0+cGFnZSgpLT5zZXR0aW5ncygpLT5yZXNv
bHV0aW9uT3ZlcnJpZGUoKTsKKyAgICBpZiAoIW92ZXJyaWRlLmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuIG92ZXJyaWRlLndpZHRoKCk7CisKKyAgICAvLyBUaGVzZSB3ZXJlIGFkZGVkIGluIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDU1NiBmb3IgQ2hyb21pdW0K
KyAgICAvLyBidXQgc2VlbXMgdW51c2VkLiBQbGVhc2UgcmVtb3ZlIGFmdGVyIHZhcmlmeWluZyB0
aGF0IHRoaXMgaXMgaW5kZWVkIHRoZSBjYXNlLgorICAgIGludCBwbGF0Zm9ybVZhbHVlID0gc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KHNjcmVlbkhvcml6b250YWxEUEkobV9mcmFtZS0+dmlldygpKSk7
CisgICAgaWYgKHBsYXRmb3JtVmFsdWUgPiAwKQorICAgICAgICByZXR1cm4gcGxhdGZvcm1WYWx1
ZTsKKworICAgIC8vIFRoZSBEUEkgaXMgZGVmaW5lZCBhcyBkb3RzIHBlciBDU1MgaW5jaCBhbmQg
dGh1cyBub3QgZGV2aWNlIGluY2guCisgICAgcmV0dXJuIG1fZnJhbWUtPnBhZ2UoKS0+ZGV2aWNl
U2NhbGVGYWN0b3IoKSAqIDk2OwogfQogCiB1bnNpZ25lZCBTY3JlZW46OnZlcnRpY2FsRFBJKCkg
Y29uc3QKIHsKKyAgICAvLyBUaGUgRFBJIGlzIGRlZmluZWQgYXMgZG90cyBwZXIgQ1NTIGluY2gg
YW5kIHRodXMgbm90IGRldmljZSBpbmNoLgogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0
dXJuIDA7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihzY3JlZW5WZXJ0aWNhbERQ
SShtX2ZyYW1lLT52aWV3KCkpKTsKKworICAgIC8vIFVzZWQgYnkgdGhlIHRlc3Rpbmcgc3lzdGVt
LCBjYW4gYmUgc2V0IGZyb20gaW50ZXJuYWxzLgorICAgIEludFNpemUgb3ZlcnJpZGUgPSBtX2Zy
YW1lLT5wYWdlKCktPnNldHRpbmdzKCktPnJlc29sdXRpb25PdmVycmlkZSgpOworICAgIGlmICgh
b3ZlcnJpZGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gb3ZlcnJpZGUuaGVpZ2h0KCk7CisK
KyAgICAvLyBUaGVzZSB3ZXJlIGFkZGVkIGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MDU1NiBmb3IgQ2hyb21pdW0KKyAgICAvLyBidXQgc2VlbXMgdW51c2VkLiBQ
bGVhc2UgcmVtb3ZlIGFmdGVyIHZhcmlmeWluZyB0aGF0IHRoaXMgaXMgaW5kZWVkIHRoZSBjYXNl
LgorICAgIGludCBwbGF0Zm9ybVZhbHVlID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcmVlblZl
cnRpY2FsRFBJKG1fZnJhbWUtPnZpZXcoKSkpOworICAgIGlmIChwbGF0Zm9ybVZhbHVlID4gMCkK
KyAgICAgICAgcmV0dXJuIHBsYXRmb3JtVmFsdWU7CisKKyAgICAvLyBUaGUgRFBJIGlzIGRlZmlu
ZWQgYXMgZG90cyBwZXIgQ1NTIGluY2ggYW5kIHRodXMgbm90IGRldmljZSBpbmNoLgorICAgIHJl
dHVybiBtX2ZyYW1lLT5wYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCkgKiA5NjsKIH0KIAogdW5z
aWduZWQgU2NyZWVuOjpoZWlnaHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRl
eCA5ODc2YWY1Yzc2ZDIyNTVjZWIyZjg4MGI4NDk1MTlkMjZjM2QzZWQ0Li43NGI5MmY5ZjljMzk3
MTE1OTk0NDJjNzE0NGI5ZGFlYmU1ZDc3NzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApA
QCAtNDU5LDYgKzQ1OSwxNSBAQCB2b2lkIFNldHRpbmdzOjpzZXRUZXh0QXV0b3NpemluZ0ZvbnRT
Y2FsZUZhY3RvcihmbG9hdCBmb250U2NhbGVGYWN0b3IpCiAKICNlbmRpZgogCit2b2lkIFNldHRp
bmdzOjpzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoY29uc3QgSW50U2l6ZSYgZGVuc2l0eVBlckluY2hP
dmVycmlkZSkKK3sKKyAgICBpZiAobV9yZXNvbHV0aW9uRGVuc2l0eVBlckluY2hPdmVycmlkZSA9
PSBkZW5zaXR5UGVySW5jaE92ZXJyaWRlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Jlc29s
dXRpb25EZW5zaXR5UGVySW5jaE92ZXJyaWRlID0gZGVuc2l0eVBlckluY2hPdmVycmlkZTsKKyAg
ICBtX3BhZ2UtPnNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOworfQorCiB2b2lkIFNl
dHRpbmdzOjpzZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkoYm9vbCBsb2Fkc0ltYWdlc0F1dG9t
YXRpY2FsbHkpCiB7CiAgICAgbV9sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgPSBsb2Fkc0ltYWdl
c0F1dG9tYXRpY2FsbHk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggODk3ODVkMTJmNmUyOTE2
NmRhYzNiYWZjYmVmNzBiMDVkZWZmYjQ2YS4uYzcxZjMyZTg2MWQ3MWQ3YzYyODQzNjA5YWNmNGUz
NTUyYmE0MzAzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMjksNiArMjksNyBAQAogCiAj
aW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCIKICNpbmNsdWRlICJGb250UmVuZGVyaW5n
TW9kZS5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVk
ZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJUaW1lci5oIgpAQCAtMzcsMTAgKzM4LDYg
QEAKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmdIYXNoLmg+CiAjaW5jbHVkZSA8d3Rm
L3VuaWNvZGUvVW5pY29kZS5oPgogCi0jaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKLSNpbmNs
dWRlICJJbnRTaXplLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xh
c3MgUGFnZTsKQEAgLTEyMyw2ICsxMjAsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICBjb25zdCBJbnRTaXplJiB0ZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGU7IH0KICNlbmRpZgog
CisgICAgICAgIC8vIE9ubHkgc2V0IGJ5IExheW91dCBUZXN0cy4KKyAgICAgICAgdm9pZCBzZXRS
ZXNvbHV0aW9uT3ZlcnJpZGUoY29uc3QgSW50U2l6ZSYpOworICAgICAgICBjb25zdCBJbnRTaXpl
JiByZXNvbHV0aW9uT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBtX3Jlc29sdXRpb25EZW5zaXR5
UGVySW5jaE92ZXJyaWRlOyB9CisKICAgICAgICAgLy8gVW5saWtlIGFyZUltYWdlc0VuYWJsZWQs
IHRoaXMgb25seSBzdXBwcmVzc2VzIHRoZSBuZXR3b3JrIGxvYWQgb2YKICAgICAgICAgLy8gdGhl
IGltYWdlIFVSTC4gIEEgY2FjaGVkIGltYWdlIHdpbGwgc3RpbGwgYmUgcmVuZGVyZWQgaWYgcmVx
dWVzdGVkLgogICAgICAgICB2b2lkIHNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShib29sKTsK
QEAgLTY4Niw2ICs2ODcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEludFNpemUg
bV90ZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZTsKICAgICAgICAgYm9vbCBtX3RleHRB
dXRvc2l6aW5nRW5hYmxlZCA6IDE7CiAjZW5kaWYKKyAgICAgICAgSW50U2l6ZSBtX3Jlc29sdXRp
b25EZW5zaXR5UGVySW5jaE92ZXJyaWRlOwogICAgICAgICBib29sIG1faXNTcGF0aWFsTmF2aWdh
dGlvbkVuYWJsZWQgOiAxOwogICAgICAgICBib29sIG1faXNKYXZhRW5hYmxlZCA6IDE7CiAgICAg
ICAgIGJvb2wgbV9pc0phdmFFbmFibGVkRm9yTG9jYWxGaWxlcyA6IDE7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRleCA4ZDhmMGNiNDA5MDAzNjVlNjBh
NDM4NGVjYjA5NzQwNTQ3NzE1YWY5Li5iZGE3MGFkODE5ZDIzOGJiNDJiOGYxYmU5NGU1OGM1YWI3
ZmFiNzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAK
QEAgLTk3LDYgKzk3LDcgQEAgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNrdXAoUGFnZSog
cGFnZSwgU2V0dGluZ3MqIHNldHRpbmdzKQogICAgICwgbV9vcmlnaW5hbFRleHRBdXRvc2l6aW5n
V2luZG93U2l6ZU92ZXJyaWRlKHNldHRpbmdzLT50ZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVy
cmlkZSgpKQogICAgICwgbV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKHNl
dHRpbmdzLT50ZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcigpKQogI2VuZGlmCisgICAgLCBt
X29yaWdpbmFsUmVzb2x1dGlvbk92ZXJyaWRlKHNldHRpbmdzLT5yZXNvbHV0aW9uT3ZlcnJpZGUo
KSkKICNpZiBFTkFCTEUoRElBTE9HX0VMRU1FTlQpCiAgICAgLCBtX29yaWdpbmFsRGlhbG9nRWxl
bWVudEVuYWJsZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6ZGlhbG9nRWxlbWVudEVuYWJsZWQo
KSkKICNlbmRpZgpAQCAtMTM2LDYgKzEzNyw3IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6QmFj
a3VwOjpyZXN0b3JlVG8oUGFnZSogcGFnZSwgU2V0dGluZ3MqIHNldHRpbmdzKQogICAgIHNldHRp
bmdzLT5zZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShtX29yaWdpbmFsVGV4dEF1
dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUpOwogICAgIHNldHRpbmdzLT5zZXRUZXh0QXV0b3Np
emluZ0ZvbnRTY2FsZUZhY3RvcihtX29yaWdpbmFsVGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0
b3IpOwogI2VuZGlmCisgICAgc2V0dGluZ3MtPnNldFJlc29sdXRpb25PdmVycmlkZShtX29yaWdp
bmFsUmVzb2x1dGlvbk92ZXJyaWRlKTsKICNpZiBFTkFCTEUoRElBTE9HX0VMRU1FTlQpCiAgICAg
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2V0RGlhbG9nRWxlbWVudEVuYWJsZWQobV9vcmlnaW5h
bERpYWxvZ0VsZW1lbnRFbmFibGVkKTsKICNlbmRpZgpAQCAtNDEzLDYgKzQxNSwxMyBAQCB2b2lk
IEludGVybmFsU2V0dGluZ3M6OnNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKGlu
dCB3aWR0aCwgaW50IGhlaWdodAogI2VuZGlmCiB9CiAKK3ZvaWQgSW50ZXJuYWxTZXR0aW5nczo6
c2V0UmVzb2x1dGlvbk92ZXJyaWRlKGludCBkb3RzUGVyQ1NTSW5jaEhvcml6b250YWxseSwgaW50
IGRvdHNQZXJDU1NJbmNoVmVydGljYWxseSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgSW50
ZXJuYWxTZXR0aW5nc0d1YXJkRm9yU2V0dGluZ3MoKTsKKyAgICAvLyBBbiBlbXB0eSBzaXplIHJl
c2V0cyB0aGUgb3ZlcnJpZGUuCisgICAgc2V0dGluZ3MoKS0+c2V0UmVzb2x1dGlvbk92ZXJyaWRl
KEludFNpemUoZG90c1BlckNTU0luY2hIb3Jpem9udGFsbHksIGRvdHNQZXJDU1NJbmNoVmVydGlj
YWxseSkpOworfQorCiB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFRleHRBdXRvc2l6aW5nRm9u
dFNjYWxlRmFjdG9yKGZsb2F0IGZvbnRTY2FsZUZhY3RvciwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmgKaW5kZXggNzhmMzZlMDE3NjFjZWJkYzMxZDg5NDIxOWQzMjBiNjAyYTE2
OWI0Zi4uZjY3OWM2ZmMwMjczZWQwY2YzOWM4NWYzZWU3YWI5YTA2MzkwZWM3NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKQEAgLTI3LDE1ICsyNywxMiBAQAog
I2RlZmluZSBJbnRlcm5hbFNldHRpbmdzX2gKIAogI2luY2x1ZGUgIkVkaXRpbmdCZWhhdmlvclR5
cGVzLmgiCisjaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIlJlZkNvdW50ZWRTdXBwbGVt
ZW50LmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCi0jaWYgRU5BQkxFKFRF
WFRfQVVUT1NJWklORykKLSNpbmNsdWRlICJJbnRTaXplLmgiCi0jZW5kaWYKLQogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwpAQCAtNzksNiArNzYsNyBA
QCBwdWJsaWM6CiAgICAgICAgIEludFNpemUgbV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nV2luZG93
U2l6ZU92ZXJyaWRlOwogICAgICAgICBmbG9hdCBtX29yaWdpbmFsVGV4dEF1dG9zaXppbmdGb250
U2NhbGVGYWN0b3I7CiAjZW5kaWYKKyAgICAgICAgSW50U2l6ZSBtX29yaWdpbmFsUmVzb2x1dGlv
bk92ZXJyaWRlOwogI2lmIEVOQUJMRShESUFMT0dfRUxFTUVOVCkKICAgICAgICAgYm9vbCBtX29y
aWdpbmFsRGlhbG9nRWxlbWVudEVuYWJsZWQ7CiAjZW5kaWYKQEAgLTEyNyw2ICsxMjUsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoYm9vbCBlbmFibGVkLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVy
cmlkZShpbnQgd2lkdGgsIGludCBoZWlnaHQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNl
dFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKGZsb2F0IGZvbnRTY2FsZUZhY3RvciwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0UmVzb2x1dGlvbk92ZXJyaWRlKGludCBkb3RzUGVy
Q1NTSW5jaEhvcml6b250YWxseSwgaW50IGRvdHNQZXJDU1NJbmNoVmVydGljYWxseSwgRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoYm9vbCBlbmFibGVk
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgYm9vbCBzY3JvbGxBbmltYXRvckVuYWJsZWQoRXhjZXB0
aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQoYm9vbCBlbmFibGVk
LCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRp
bmdzLmlkbAppbmRleCBmMzQ2NGJlOWE0ZWM2NDU2NGI0MzQ1MDk3ODdkZjg0N2UzZWU4MWNlLi4y
OWVlM2EwMjFkODVjZjJiNDUxYmQzYWZkNTZiZmRkNWU2YjBjYjllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTU2LDYgKzU2LDcgQEAKICAgICB2
b2lkIHNldFRleHRBdXRvc2l6aW5nRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJp
ZGUoaW4gbG9uZyB3aWR0aCwgaW4gbG9uZyBoZWlnaHQpIHJhaXNlcyhET01FeGNlcHRpb24pOwog
ICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoaW4gZmxvYXQgZm9udFNj
YWxlRmFjdG9yKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICB2b2lkIHNldFJlc29sdXRpb25P
dmVycmlkZShpbiBsb25nIGRvdHNQZXJDU1NJbmNoSG9yaXpvbnRhbGx5LCBpbiBsb25nIGRvdHNQ
ZXJDU1NJbmNoVmVydGljYWxseSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRF
bmFibGVTY3JvbGxBbmltYXRvcihpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRp
b24pOwogICAgIGJvb2xlYW4gc2Nyb2xsQW5pbWF0b3JFbmFibGVkKCkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAgICAgdm9pZCBzZXRDU1NFeGNsdXNpb25zRW5hYmxlZChpbiBib29sZWFuIGVuYWJs
ZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCmluZGV4IGQzOWYx
NGEzY2FhYzI4ODZlOTBhOTBkYTUzZTlmMGFhNjcwZTZiNTYuLjlmYTQ2NzEwZjExYjI3OTIzMGNi
ZGQ2NDNiZjk3ZTA1NzlhZjQ1YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTI0MSw2ICsy
NDEsNyBAQCBFWFBPUlRTCiAgICAgICAgID9zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3lAU2V0dGlu
Z3NAV2ViQ29yZUBAUUFFWFc0U3RvcmFnZUJsb2NraW5nUG9saWN5QFNlY3VyaXR5T3JpZ2luQDJA
QFoKICAgICAgICAgP3NldFN1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBA
UUFFWEFCVlN0cmluZ0BXVEZAQEBaCiAgICAgICAgID9zZXRFZGl0aW5nVmFsdWVASFRNTElucHV0
RWxlbWVudEBXZWJDb3JlQEBRQUVYQUJWU3RyaW5nQFdURkBAQFoKKyAgICAgICAgP3NldFJlc29s
dXRpb25PdmVycmlkZUBTZXR0aW5nc0BXZWJDb3JlQEBRQUVYQUJWSW50U2l6ZUAyQEBaCiAgICAg
ICAgID9zZXR0aW5nc0BEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAg
ICAgID9zZXR0aW5nc0BGcmFtZUBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAg
ID9zZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lQFNldHRpbmdzQFdlYkNvcmVA
QFFBRVhfTkBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIv
U291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCBhZWQ1NGFmMjFhYzhjODg0YmRl
ZTIyNGU4OWJlMmU2Y2E4NDVhZmRmLi4zMmVmZTVhOWRlZGYwYTIxODdmZjkxOGY1YmQwYjQ4OTRh
MjI0NWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCisrKyBi
L1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTE3NSw2ICsxNzUsNyBAQCBfWk43
V2ViQ29yZThTZXR0aW5nczI0c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkRWI7CiBfWk43V2ViQ29y
ZThTZXR0aW5nczI0c2V0VXNlc092ZXJsYXlTY3JvbGxiYXJzRWI7CiBfWk43V2ViQ29yZThTZXR0
aW5nczI0c2V0U3RvcmFnZUJsb2NraW5nUG9saWN5RU5TXzE0U2VjdXJpdHlPcmlnaW4yMVN0b3Jh
Z2VCbG9ja2luZ1BvbGljeUU7CiBfWk43V2ViQ29yZThTZXR0aW5nczM3c2V0Rml4ZWRFbGVtZW50
c0xheW91dFJlbGF0aXZlVG9GcmFtZUViOworX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFJlc29s
dXRpb25PdmVycmlkZUVSS05TXzdJbnRTaXplRTsKIF9aTjdXZWJDb3JlOUZyYW1lVmlldzE3cGFp
bnRDb250cm9sVGludHNFdjsKIF9aTjdXZWJDb3JlOUZyYW1lVmlldzE5c2Nyb2xsRWxlbWVudFRv
UmVjdEVQTlNfN0VsZW1lbnRFUktOU183SW50UmVjdEU7CiBfWk43V2ViQ29yZTIyUnVudGltZUVu
YWJsZWRGZWF0dXJlczMxaXNNdWx0aXBsZVNoYWRvd1N1YnRyZWVzRW5hYmxlZEU7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
N2ZmNzMzYzhmZmE0MTI0N2NjMjc2YThlZGYwODI5ZDI3NTliMjAwNy4uYmM3MTRiMTBjMjcwNWM0
NDE1ZTBlOWEwMzAwNGE2ODQxOTg1ZjI0NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTEw
LTE1ICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IChyZXNvbHV0aW9uOiB4
KSBtZWRpYSBxdWVyeSB0byBlbnN1cmUgY29tcGxpYW5jZQorICAgICAgICB3aXRoIHNwZWMgcGx1
cyBwcm9wb3NlZCBkcHB4IHZhbHVlcy4KKworICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcmVzb2x1
dGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcmVzb2x1
dGlvbi5odG1sOiBBZGRlZC4KKworICAgICAgICAqIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L1Rlc3RFeHBlY3RhdGlvbnM6CisKKyAgICAgICAgICAgIFNraXAgdGhlIHRlc3QgYXMgdGhlIHBv
cnRzIGRvIG5vdCBlbmFibGUgQ1NTIEltYWdlIFJlc29sdXRpb24uCisKIDIwMTItMTAtMjIgIEFu
dG9uIE11aGluICA8YW50b25tQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIENo
cm9taXVtIHJlYmFzZWxpbmVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9t
cS1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVz
b2x1dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDQ0ZTRlNzdhNTQ1NjIyY2VkNDdjOGMy
NDc5ZjhjYzJiODZlNTMwZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVk
aWEvbXEtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MCBAQAorQ1NTMyBtZWRp
YSBxdWVyeSB0ZXN0OiByZXNvbHV0aW9uIHF1ZXJ5IHdpdGggZHBweC4gVXNpbmcgc3R5bGUgZWxl
bWVudCwgQG1lZGlhIGNzcyBydWxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBtYXRjaE1lZGlhKCcocmVzb2x1dGlvbjogMGRwaSknKS5tYXRjaGVzIGlzIGZhbHNlCitQ
QVNTIG1hdGNoTWVkaWEoJyhtaW4tcmVzb2x1dGlvbjogMGRwaSknKS5tYXRjaGVzIGlzIGZhbHNl
CitQQVNTIG1hdGNoTWVkaWEoJyhtYXgtcmVzb2x1dGlvbjogMGRwaSknKS5tYXRjaGVzIGlzIGZh
bHNlCitQQVNTIG1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uOiAxLjVkcHB4KScpLm1hdGNoZXMgaXMg
dHJ1ZQorUEFTUyByZXNvbHV0aW9uRnJvbVN0eWxlKCkgaXMgMS41CitQQVNTIG1hdGNoTWVkaWEo
JyhyZXNvbHV0aW9uOiAyZHBweCknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgcmVzb2x1dGlvbkZy
b21TdHlsZSgpIGlzIDIKK1BBU1MgbWF0Y2hNZWRpYSgnKHJlc29sdXRpb246IDFkcHB4KScpLm1h
dGNoZXMgaXMgdHJ1ZQorUEFTUyByZXNvbHV0aW9uRnJvbVN0eWxlKCkgaXMgMQorUEFTUyBtYXRj
aE1lZGlhKCcocmVzb2x1dGlvbjogMi4yNWRwcHgpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIHJl
c29sdXRpb25Gcm9tU3R5bGUoKSBpcyAyLjI1CitQQVNTIG1hdGNoTWVkaWEoJyhyZXNvbHV0aW9u
KScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcocmVzb2x1dGlvbjogMjE2ZHBp
KScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcobWluLXJlc29sdXRpb246IDIx
NmRwaSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKG1heC1yZXNvbHV0aW9u
OiAyMTZkcGkpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJyhyZXNvbHV0aW9u
OiA4NWRwY20pJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJyhtaW4tcmVzb2x1
dGlvbjogODVkcGNtKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcobWF4LXJl
c29sdXRpb246IDg1ZHBjbSknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKHJl
c29sdXRpb24pJykubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcocmVzb2x1dGlv
bjogMjE2ZHBpKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKHJlc29sdXRp
b246IDI1NGRwaSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJyhtaW4tcmVz
b2x1dGlvbjogMjE2ZHBpKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcobWlu
LXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEo
JyhtYXgtcmVzb2x1dGlvbjogMjE2ZHBpKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hN
ZWRpYSgnKG1heC1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1h
dGNoTWVkaWEoJyhyZXNvbHV0aW9uOiA4NWRwY20pJykubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBt
YXRjaE1lZGlhKCcocmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNT
IG1hdGNoTWVkaWEoJyhtaW4tcmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNoZXMgaXMgdHJ1ZQor
UEFTUyBtYXRjaE1lZGlhKCcobWluLXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyBpcyBm
YWxzZQorUEFTUyBtYXRjaE1lZGlhKCcobWF4LXJlc29sdXRpb246IDg1ZHBjbSknKS5tYXRjaGVz
IGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJyhtYXgtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5t
YXRjaGVzIGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRp
b24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmRkM2RhZjk4NWY4MzYwODNhN2NlODNjODFlYTkxZjc4ZmE0MGYwZDUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRtbApAQCAt
MCwwICsxLDkwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKworPGRpdiBpZD0i
ZGV0ZWN0b3IiPjwvZGl2PgorCis8c3R5bGU+CisgICAgI2RldGVjdG9yIHsgd2lkdGg6IDEwcHg7
IH0KKyAgICBAbWVkaWEgKHJlc29sdXRpb246IDEuMDBkcHB4KSB7ICNkZXRlY3RvciB7IHdpZHRo
OiAxMHB4OyB9IH0KKyAgICBAbWVkaWEgKHJlc29sdXRpb246IDEuNTBkcHB4KSB7ICNkZXRlY3Rv
ciB7IHdpZHRoOiAxNXB4OyB9IH0KKyAgICBAbWVkaWEgKHJlc29sdXRpb246IDIuMDBkcHB4KSB7
ICNkZXRlY3RvciB7IHdpZHRoOiAyMHB4OyB9IH0KKyAgICBAbWVkaWEgKHJlc29sdXRpb246IDIu
MjVkcHB4KSB7ICNkZXRlY3RvciB7IHdpZHRoOiAyM3B4OyB9IH0KKzwvc3R5bGU+CisKKzxzY3Jp
cHQ+CisgICAgZGVzY3JpcHRpb24oIkNTUzMgbWVkaWEgcXVlcnkgdGVzdDogcmVzb2x1dGlvbiBx
dWVyeSB3aXRoIGRwcHguIFVzaW5nIHN0eWxlIGVsZW1lbnQsIEBtZWRpYSBjc3MgcnVsZS4iKQor
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAg
ICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIGZ1bmN0aW9uIHJl
c29sdXRpb25Gcm9tU3R5bGUoKSB7CisgICAgICAgICAgICB2YXIgd2lkdGggPSBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZXRlY3RvciIpKS53aWR0aDsKKyAgICAg
ICAgICAgIHN3aXRjaCAod2lkdGgpIHsKKyAgICAgICAgICAgICAgICBjYXNlICIxMHB4IjoKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgICAgICAgICAgY2FzZSAiMTVweCI6
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxLjU7CisgICAgICAgICAgICAgICAgY2FzZSAi
MjBweCI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgICAgIGNh
c2UgIjIzcHgiOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gMi4yNTsKKyAgICAgICAgICAg
ICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhy
ZXNvbHV0aW9uOiAwZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUo
Im1hdGNoTWVkaWEoJyhtaW4tcmVzb2x1dGlvbjogMGRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7
CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWF4LXJlc29sdXRpb246IDBkcGkpJyku
bWF0Y2hlcyIsICJmYWxzZSIpOworCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0UmVzb2x1dGlvbk92ZXJyaWRlKDE0NCwgMTQ0KTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNo
TWVkaWEoJyhyZXNvbHV0aW9uOiAxLjVkcHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAg
ICBzaG91bGRCZSgicmVzb2x1dGlvbkZyb21TdHlsZSgpIiwgIjEuNSIpOworCisgICAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDE5MiwgMTkyKTsK
KyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uOiAyZHBweCknKS5tYXRj
aGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoInJlc29sdXRpb25Gcm9tU3R5bGUoKSIs
ICIyIik7CisKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0aW9u
T3ZlcnJpZGUoOTYsIDk2KTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0
aW9uOiAxZHBweCknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoInJlc29s
dXRpb25Gcm9tU3R5bGUoKSIsICIxIik7CisKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0
aW5ncy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMjE2LCAyMTYpOworICAgICAgICBzaG91bGRCZSgi
bWF0Y2hNZWRpYSgnKHJlc29sdXRpb246IDIuMjVkcHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIpOwor
ICAgICAgICBzaG91bGRCZSgicmVzb2x1dGlvbkZyb21TdHlsZSgpIiwgIjIuMjUiKTsKKyAgICAg
ICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uKScpLm1hdGNoZXMiLCAidHJ1ZSIp
OworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRpb246IDIxNmRwaSknKS5t
YXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhtaW4tcmVz
b2x1dGlvbjogMjE2ZHBpKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgi
bWF0Y2hNZWRpYSgnKG1heC1yZXNvbHV0aW9uOiAyMTZkcGkpJykubWF0Y2hlcyIsICJ0cnVlIik7
CisKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uOiA4NWRwY20pJyku
bWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWluLXJl
c29sdXRpb246IDg1ZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUo
Im1hdGNoTWVkaWEoJyhtYXgtcmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNoZXMiLCAidHJ1ZSIp
OworCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJy
aWRlKDIxNiwgMjU0KTsKKyAgICAgICAgLy8gTm9uLXNxdWFyZSBtdXN0IG5ldmVyIG1hdGNoLgor
ICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRpb24pJykubWF0Y2hlcyIsICJm
YWxzZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRpb246IDIxNmRw
aSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCco
cmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKworICAgICAgICBzaG91
bGRCZSgibWF0Y2hNZWRpYSgnKG1pbi1yZXNvbHV0aW9uOiAyMTZkcGkpJykubWF0Y2hlcyIsICJ0
cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWluLXJlc29sdXRpb246IDI1
NGRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlh
KCcobWF4LXJlc29sdXRpb246IDIxNmRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisgICAgICAg
IHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWF4LXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVz
IiwgInRydWUiKTsKKworICAgICAgICAvLyBOb24tc3F1YXJlIG11c3QgbmV2ZXIgbWF0Y2guCisg
ICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcocmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNo
ZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9u
OiAxMDBkcGNtKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKworICAgICAgICBzaG91bGRCZSgibWF0
Y2hNZWRpYSgnKG1pbi1yZXNvbHV0aW9uOiA4NWRwY20pJykubWF0Y2hlcyIsICJ0cnVlIik7Cisg
ICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWluLXJlc29sdXRpb246IDEwMGRwY20pJyku
bWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKG1heC1y
ZXNvbHV0aW9uOiA4NWRwY20pJykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRC
ZSgibWF0Y2hNZWRpYSgnKG1heC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMiLCAidHJ1
ZSIpOworICAgIH0KKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2YWU2OTUzOGVlYWYx
ZTQyZWUwOTAyODZkNDkzYjdlZWFkY2RjZGRhLi5iZGRiOWExNmJlM2FhZjFiMDQxZmU3ZjUwYzI2
MzAwMWUxOTgwNTRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnMKQEAgLTE3MSw2ICsxNzEsNyBAQCB3ZWJraXQub3JnL2IvNzUxMjMgd2ViaW50
ZW50cy9pbnRlbnQtdGFnLmh0bWwKIAogIyBDU1MgaW1hZ2UtcmVzb2x1dGlvbiBpcyBub3QgeWV0
IGVuYWJsZWQuCiB3ZWJraXQub3JnL2IvODUyNjIgZmFzdC9jc3MvaW1hZ2UtcmVzb2x1dGlvbgor
d2Via2l0Lm9yZy9iLzg1MjYyIGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sIFsgU2tpcCBd
CiAKICMgQ1NTIGltYWdlLW9yaWVudGF0aW9uIGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHdlYmtpdC5v
cmcvYi84OTA1MiBmYXN0L2Nzcy9pbWFnZS1vcmllbnRhdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiYWY3ZjhlYzg2N2RkZjRlYWE4MjIzZmQwZjJh
Njg4ZjNiNmFlMTAxLi4xM2Y3MjE0NWVhNmY0NjIzNzU4MzRkNGY5NzgxYTBiODZlODNiNTc1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTY3LDYgKzk2
Nyw3IEBAIHdlYmtpdC5vcmcvYi84NzkwOCBlZGl0aW5nL3VuZG9tYW5hZ2VyCiAKICMgQ1NTIGlt
YWdlLXJlc29sdXRpb24gaXMgbm90IHlldCBlbmFibGVkLgogd2Via2l0Lm9yZy9iLzg1MjYyIGZh
c3QvY3NzL2ltYWdlLXJlc29sdXRpb24KK3dlYmtpdC5vcmcvYi84NTI2MiBmYXN0L21lZGlhL21x
LXJlc29sdXRpb24uaHRtbCBbIFNraXAgXQogCiAjIENTUyBpbWFnZS1vcmllbnRhdGlvbiBpcyBu
b3QgeWV0IGVuYWJsZWQuCiB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3JpZW50
YXRpb24KZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAyM2YwMzkwY2Ux
YjQyYjNjNzhiZDM3MmVmZTljNmY2OTA5YThkNTBmLi40MGNiNzEwYzA1NDdjZWZjNTNhZGU2MzJm
MWYxMTIzZjcyNmEwN2Y4IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMTYgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8
a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXNvbHV0aW9u
IG1lZGlhIHF1ZXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05OTA3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjoKKworICAgICAgICAgICAgRXhw
b3J0IHRoZSBXZWJDb3JlOjpTZXR0aW5ncyBzZXR0aW5nLgorCiAyMDEyLTEwLTE5ICBUb255IENo
YW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjEzMTkzNi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170107</attachid>
            <date>2012-10-23 03:36:59 -0700</date>
            <delta_ts>2012-10-23 06:00:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99077-20121023123530.patch</filename>
            <type>text/plain</type>
            <size>8770</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmY0ZjZmY2JiNDVmZWI5
NTk3N2U1NWI1MTlhYmFiZGJjNzYyMzNlZi4uZjJlNGMxNThkZDk1M2FmNjczNjdkOWYzMTRmY2Rm
NmY0Nzk2MmFlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTEwLTIzICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBB
ZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGUgbmV3IHVuaXRzIChEUEksIERQQ00s
IERQUFgpIGV2ZXJ5d2hlcmUsIGFzIHRoYXQgc2hvdWxkbid0CisgICAgICAgIGh1cnQgYW5kIGJl
Y2F1c2UgdGhleSBhcmUgdXNlZCBieSBDU1MgSW1hZ2UgUmVzb2x1dGlvbiBhcyB3ZWxsIGFzCisg
ICAgICAgIGJ5IHRoZSAncmVzb2x1dGlvbicgbWVkaWEgcXVlcnkuCisKKyAgICAgICAgKiBjc3Mv
Q1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6dmFsaWRVbml0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6Y3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWxpZFByaW1pdGl2ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OmRldGVjdE51bWJlclRva2VuKToKKyAgICAgICAg
KiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmlzVmFsaWRDU1NVbml0VHlwZUZvckRvdWJsZUNvbnZlcnNpb24p
OgorICAgICAgICAoV2ViQ29yZTo6dW5pdENhdGVnb3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjpjYW5vbmljYWxVbml0VHlwZUZvckNhdGVnb3J5KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjdXN0b21Dc3NUZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpjbG9uZUZvckNTU09NKToKKyAgICAgICAgKiBjc3Mv
Q1NTUHJpbWl0aXZlVmFsdWUuaDoKKwogMjAxMi0xMC0xNSAgS2VubmV0aCBSb2hkZSBDaHJpc3Rp
YW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJl
c29sdXRpb24gbWVkaWEgcXVlcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggZDE2NTM3
ZTZjZWU4ZGIzZDU5ZTZhMTVhNTMyYTQ0NmJjMWU1NDllYS4uZjI2NjAwYWFhYWYxNjNiYmFiMGQw
ZTg0NzBmMjQyMDE4ZmIzZjgyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTE1NzIs
MTMgKzE1NzIsMTEgQEAgYm9vbCBDU1NQYXJzZXI6OnZhbGlkVW5pdChDU1NQYXJzZXJWYWx1ZSog
dmFsdWUsIFVuaXRzIHVuaXRmbGFncywgQ1NTUGFyc2VyTW9kZQogICAgIGNhc2UgQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19UVVJOOgogICAgICAgICBiID0gKHVuaXRmbGFncyAmIEZBbmdsZSk7CiAg
ICAgICAgIGJyZWFrOwotI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVTT0xVVElPTikKICAgICBjYXNl
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQWDoKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfRFBJOgogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUENNOgogICAgICAg
ICBiID0gKHVuaXRmbGFncyAmIEZSZXNvbHV0aW9uKTsKICAgICAgICAgYnJlYWs7Ci0jZW5kaWYK
ICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfSFo6CiAgICAgY2FzZSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX0tIWjoKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRElNRU5T
SU9OOgpAQCAtMTYwMSwxNyArMTU5OSwxMiBAQCBpbmxpbmUgUGFzc1JlZlB0cjxDU1NQcmltaXRp
dmVWYWx1ZT4gQ1NTUGFyc2VyOjpjcmVhdGVQcmltaXRpdmVOdW1lcmljVmFsdWUoQ1NTUAogICAg
ICAgICBBU1NFUlQoaXNDYWxjdWxhdGlvbih2YWx1ZSkpOwogICAgICAgICByZXR1cm4gQ1NTUHJp
bWl0aXZlVmFsdWU6OmNyZWF0ZShtX3BhcnNlZENhbGN1bGF0aW9uLnJlbGVhc2UoKSk7CiAgICAg
fQotICAgICAgICAgICAgICAgCi0jaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQorCiAg
ICAgQVNTRVJUKCh2YWx1ZS0+dW5pdCA+PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiAm
JiB2YWx1ZS0+dW5pdCA8PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0tIWikKICAgICAgICAgICAg
fHwgKHZhbHVlLT51bml0ID49IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVFVSTiAmJiB2YWx1ZS0+
dW5pdCA8PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1JFTVMpCiAgICAgICAgICAgIHx8ICh2YWx1
ZS0+dW5pdCA+PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1ZXICYmIHZhbHVlLT51bml0IDw9IENT
U1ByaW1pdGl2ZVZhbHVlOjpDU1NfVk1JTikKICAgICAgICAgICAgfHwgKHZhbHVlLT51bml0ID49
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQWCAmJiB2YWx1ZS0+dW5pdCA8PSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX0RQQ00pKTsKLSNlbHNlCi0gICAgQVNTRVJUKCh2YWx1ZS0+dW5pdCA+PSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiAmJiB2YWx1ZS0+dW5pdCA8PSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX0tIWikKLSAgICAgICAgICAgfHwgKHZhbHVlLT51bml0ID49IENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfVFVSTiAmJiB2YWx1ZS0+dW5pdCA8PSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1JFTVMpCi0gICAgICAgICAgIHx8ICh2YWx1ZS0+dW5pdCA+PSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1ZXICYmIHZhbHVlLT51bml0IDw9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVk1JTikp
OwotI2VuZGlmCisKICAgICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlVmFsdWUodmFsdWUt
PmZWYWx1ZSwgc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcz4odmFsdWUt
PnVuaXQpKTsKIH0KIApAQCAtMTY2NCwxMCArMTY1Nyw4IEBAIGlubGluZSBQYXNzUmVmUHRyPENT
U1ByaW1pdGl2ZVZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlVmFsaWRQcmltaXRpdmUoaW50IGlkZW50
aWZpCiAgICAgICAgIHJldHVybiBjcmVhdGVQcmltaXRpdmVOdW1lcmljVmFsdWUodmFsdWUpOwog
ICAgIGlmICh2YWx1ZS0+dW5pdCA+PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1ZXICYmIHZhbHVl
LT51bml0IDw9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVk1JTikKICAgICAgICAgcmV0dXJuIGNy
ZWF0ZVByaW1pdGl2ZU51bWVyaWNWYWx1ZSh2YWx1ZSk7Ci0jaWYgRU5BQkxFKENTU19JTUFHRV9S
RVNPTFVUSU9OKQogICAgIGlmICh2YWx1ZS0+dW5pdCA+PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X0RQUFggJiYgdmFsdWUtPnVuaXQgPD0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUENNKQogICAg
ICAgICByZXR1cm4gY3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKHZhbHVlKTsKLSNlbmRpZgog
I2lmIEVOQUJMRShDU1NfVkFSSUFCTEVTKQogICAgIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX1ZBUklBQkxFX05BTUUpCiAgICAgICAgIHJldHVybiBjcmVhdGVQcmlt
aXRpdmVWYXJpYWJsZU5hbWVWYWx1ZSh2YWx1ZSk7CkBAIC05MDEwLDcgKzkwMDEsNiBAQCBpbmxp
bmUgdm9pZCBDU1NQYXJzZXI6OmRldGVjdE51bWJlclRva2VuKENoYXJhY3RlclR5cGUqIHR5cGUs
IGludCBsZW5ndGgpCiAgICAgY2FzZSAnZCc6CiAgICAgICAgIGlmIChsZW5ndGggPT0gMyAmJiBp
c0FTQ0lJQWxwaGFDYXNlbGVzc0VxdWFsKHR5cGVbMV0sICdlJykgJiYgaXNBU0NJSUFscGhhQ2Fz
ZWxlc3NFcXVhbCh0eXBlWzJdLCAnZycpKQogICAgICAgICAgICAgbV90b2tlbiA9IERFR1M7Ci0j
aWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQogICAgICAgICBlbHNlIGlmIChsZW5ndGgg
PiAyICYmIGlzQVNDSUlBbHBoYUNhc2VsZXNzRXF1YWwodHlwZVsxXSwgJ3AnKSkgewogICAgICAg
ICAgICAgaWYgKGxlbmd0aCA9PSA0KSB7CiAgICAgICAgICAgICAgICAgLy8gVGhlcmUgaXMgYSBk
aXNjdXNzaW9uIGFib3V0IHRoZSBuYW1lIG9mIHRoaXMgdW5pdCBvbiB3d3ctc3R5bGUuCkBAIC05
MDIzLDcgKzkwMTMsNiBAQCBpbmxpbmUgdm9pZCBDU1NQYXJzZXI6OmRldGVjdE51bWJlclRva2Vu
KENoYXJhY3RlclR5cGUqIHR5cGUsIGludCBsZW5ndGgpCiAgICAgICAgICAgICB9IGVsc2UgaWYg
KGxlbmd0aCA9PSAzICYmIGlzQVNDSUlBbHBoYUNhc2VsZXNzRXF1YWwodHlwZVsyXSwgJ2knKSkK
ICAgICAgICAgICAgICAgICAgICAgbV90b2tlbiA9IERQSTsKICAgICAgICAgfQotI2VuZGlmCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGNhc2UgJ2UnOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4
IDc1NjY4Y2YzMGNmNTA5MjAzNDI1MTMzZDNhNjQ0ODI3MWI4ZWQ2ODUuLjVlNGJhZGIxYmU5YjZi
NGRlNDdhYzQ3MTc4NmRiNGE5NzI4ZjMyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTU0
NSw5ICs1NDUsNyBAQCBwcml2YXRlOgogICAgICAgICBGRnJlcXVlbmN5ID0gMHgwMDQwLAogICAg
ICAgICBGUG9zaXRpdmVJbnRlZ2VyID0gMHgwMDgwLAogICAgICAgICBGUmVsYXRpdmUgPSAweDAx
MDAsCi0jaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQogICAgICAgICBGUmVzb2x1dGlv
biA9IDB4MDIwMCwKLSNlbmRpZgogICAgICAgICBGTm9uTmVnID0gMHgwNDAwCiAgICAgfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKaW5kZXggNTVlZGU4YjM3Y2Jk
MWU4OTJjOTBmZTQ4ZmUzZmQ5YTg3OTgwMzVjNi4uNDJmM2Q1MTQ1ZWM5MzA5YjdmMWRlYzE5Yjlh
M2JmNTk4OTlhYTdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2
ZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3Bw
CkBAIC02MiwxMSArNjIsOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZENTU1VuaXRUeXBl
Rm9yRG91YmxlQ29udmVyc2lvbihDU1NQcmltaXRpdmVWYWx1ZTo6VW5pdAogICAgIGNhc2UgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19DTToKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
REVHOgogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19ESU1FTlNJT046Ci0jaWYgRU5B
QkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNT
U19EUFBYOgogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUEk6CiAgICAgY2FzZSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQQ006Ci0jZW5kaWYKICAgICBjYXNlIENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfRU1TOgogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19FWFM6CiAg
ICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0dSQUQ6CkBAIC05NCwxMSArOTIsNiBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZENTU1VuaXRUeXBlRm9yRG91YmxlQ29udmVyc2lvbihD
U1NQcmltaXRpdmVWYWx1ZTo6VW5pdAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAg
ICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfREFTSEJPQVJEX1JFR0lPTjoKICNlbmRpZgot
I2lmICFFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04pCi0gICAgY2FzZSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX0RQUFg6Ci0gICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQSToKLSAg
ICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBDTToKLSNlbmRpZgogICAgIGNhc2UgQ1NT
UHJpbWl0aXZlVmFsdWU6OkNTU19JREVOVDoKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfUEFJUjoKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfUEFSU0VSX0hFWENPTE9S
OgpAQCAtMTU0LDEyICsxNDcsMTAgQEAgc3RhdGljIENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0Q2F0
ZWdvcnkgdW5pdENhdGVnb3J5KENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMKICAgICBjYXNl
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVkg6CiAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX1ZNSU46CiAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6VVZpZXdwb3J0UGVy
Y2VudGFnZUxlbmd0aDsKLSNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04pCiAgICAgY2Fz
ZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQUFg6CiAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX0RQSToKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBDTToKICAgICAg
ICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpVUmVzb2x1dGlvbjsKLSNlbmRpZgogICAgIGRl
ZmF1bHQ6CiAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6VU90aGVyOwogICAgIH0K
QEAgLTY3NiwxMCArNjY3LDggQEAgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyBDU1NQcmlt
aXRpdmVWYWx1ZTo6Y2Fub25pY2FsVW5pdFR5cGVGb3JDYXRlZ29yeShVbmkKICAgICAgICAgcmV0
dXJuIENTU19IWjsKICAgICBjYXNlIFVWaWV3cG9ydFBlcmNlbnRhZ2VMZW5ndGg6CiAgICAgICAg
IHJldHVybiBDU1NfVU5LTk9XTjsgLy8gQ2Fubm90IGNvbnZlcnQgYmV0d2VlbiBudW1iZXJzIGFu
ZCByZWxhdGl2ZSBsZW5ndGhzLgotI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVTT0xVVElPTikKICAg
ICBjYXNlIFVSZXNvbHV0aW9uOgogICAgICAgICByZXR1cm4gQ1NTX0RQUFg7Ci0jZW5kaWYKICAg
ICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gQ1NTX1VOS05PV047CiAgICAgfQpAQCAtODk2LDcg
Kzg4NSw2IEBAIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0
CiAgICAgICAgIGNhc2UgQ1NTX0NNOgogICAgICAgICAgICAgdGV4dCA9IGZvcm1hdE51bWJlciht
X3ZhbHVlLm51bSwgImNtIik7CiAgICAgICAgICAgICBicmVhazsKLSNpZiBFTkFCTEUoQ1NTX0lN
QUdFX1JFU09MVVRJT04pCiAgICAgICAgIGNhc2UgQ1NTX0RQUFg6CiAgICAgICAgICAgICB0ZXh0
ID0gZm9ybWF0TnVtYmVyKG1fdmFsdWUubnVtLCAiZHBweCIpOwogICAgICAgICAgICAgYnJlYWs7
CkBAIC05MDYsNyArODk0LDYgQEAgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpjdXN0b21Dc3NU
ZXh0KCkgY29uc3QKICAgICAgICAgY2FzZSBDU1NfRFBDTToKICAgICAgICAgICAgIHRleHQgPSBm
b3JtYXROdW1iZXIobV92YWx1ZS5udW0sICJkcGNtIik7CiAgICAgICAgICAgICBicmVhazsKLSNl
bmRpZgogICAgICAgICBjYXNlIENTU19NTToKICAgICAgICAgICAgIHRleHQgPSBmb3JtYXROdW1i
ZXIobV92YWx1ZS5udW0sICJtbSIpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMjI4LDExICsx
MjE1LDkgQEAgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gQ1NTUHJpbWl0aXZlVmFsdWU6
OmNsb25lRm9yQ1NTT00oKSBjb25zdAogICAgIGNhc2UgQ1NTX1ZXOgogICAgIGNhc2UgQ1NTX1ZI
OgogICAgIGNhc2UgQ1NTX1ZNSU46Ci0jaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQog
ICAgIGNhc2UgQ1NTX0RQUFg6CiAgICAgY2FzZSBDU1NfRFBJOgogICAgIGNhc2UgQ1NTX0RQQ006
Ci0jZW5kaWYKICAgICAgICAgcmVzdWx0ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZShtX3Zh
bHVlLm51bSwgc3RhdGljX2Nhc3Q8VW5pdFR5cGVzPihtX3ByaW1pdGl2ZVVuaXRUeXBlKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTX0lERU5UOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJp
bWl0aXZlVmFsdWUuaAppbmRleCBkYzQ2NzgzNTA1OWRkNWZjY2U0ZjkxYTUyNWE3YjlkMWJiMmQ1
N2YxLi45OTAyNGQwMWQzZDQ1MmI5M2ViOTEzN2JlZDQyNmQ0MGQxMWQ1N2JkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaApAQCAtMTQzLDkgKzE0Myw3IEBAIHB1YmxpYzoK
ICAgICAgICAgVVRpbWUsCiAgICAgICAgIFVGcmVxdWVuY3ksCiAgICAgICAgIFVWaWV3cG9ydFBl
cmNlbnRhZ2VMZW5ndGgsCi0jaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQogICAgICAg
ICBVUmVzb2x1dGlvbiwKLSNlbmRpZgogICAgICAgICBVT3RoZXIKICAgICB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170139</attachid>
            <date>2012-10-23 06:00:08 -0700</date>
            <delta_ts>2012-10-23 07:51:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99077-20121023145839.patch</filename>
            <type>text/plain</type>
            <size>60553</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY2ZTEyMmViZGI1NTlm
ZjE1MjZlYzYwZDVjN2QyMGJmZjlkOWZiMi4uYjNlNmU4MDgwOGY5ZjhiYmVjNDlhMzIwNzZlMjA4
MTM1Zjc4NGZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMiBAQAorMjAxMi0xMC0xNSAgS2Vu
bmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIHJlc29sdXRpb24gbWVkaWEgcXVlcnkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5MDc3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yICdyZXNvbHV0aW9u
JyBtZWRpYSBxdWVyeSBmZWF0dXJlLgorCisgICAgICAgIEJhY2tncm91bmQgaW5mbzoKKyAgICAg
ICAgaHR0cDovL3d3dy53My5vcmcvYmxvZy9DU1MvMjAxMi8wNi8xNC91bnByZWZpeC13ZWJraXQt
ZGV2aWNlLXBpeGVsLXJhdGlvCisKKyAgICAgICAgUmVsYXRlZCBzcGVjIGxpbmtzOgorICAgICAg
ICBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jcmVzb2x1dGlvbiAocmVj
b21tZW5kYXRpb24pCisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtdmFsdWVzLyNy
ZXNvbHV0aW9uIChjYW5kaWRhdGUgcmVjb21tZW50YXRpb24pCisKKyAgICAgICAgQWRkIGluZnJh
c3RydWN0dXJlIHRvIG1ha2UgaXQgdGVzdGFibGUuCisKKyAgICAgICAgVGVzdDogZmFzdC9tZWRp
YS9tcS1yZXNvbHV0aW9uLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjp2YWxpZFVuaXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUGFyc2VyOjpjcmVhdGVQcmltaXRpdmVOdW1lcmljVmFsdWUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbGlkUHJpbWl0aXZlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1BhcnNlcjo6ZGV0ZWN0TnVtYmVyVG9rZW4pOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuaDoK
KyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
aXNWYWxpZENTU1VuaXRUeXBlRm9yRG91YmxlQ29udmVyc2lvbik6CisgICAgICAgIChXZWJDb3Jl
Ojp1bml0Q2F0ZWdvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmNh
bm9uaWNhbFVuaXRUeXBlRm9yQ2F0ZWdvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWU6OmN1c3RvbUNzc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZl
VmFsdWU6OmNsb25lRm9yQ1NTT00pOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5o
OgorCisgICAgICAgICAgICBFbmFibGUgZHBpLCBkcGNtIGFuZCBkcHB4IHVuaXRzIHdoZW4gUkVT
T0xVVElPTl9NRURJQV9RVUVSWQorICAgICAgICAgICAgaXMgZW5hYmxlZC4KKworICAgICAgICAq
IFdlYkNvcmUuZXhwLmluOgorCisgICAgICAgICAgICBFeHBvcnQgdGhlIFdlYkNvcmU6OlNldHRp
bmdzIHNldHRpbmcuCisKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjppc0RvdHNQZXJJbmNoKToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjppc0RvdHNQZXJQaXhlbCk6CisgICAgICAgIChX
ZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6aXNEb3RzUGVyQ2VudGltZXRlcik6CisgICAgICAg
IChDU1NQcmltaXRpdmVWYWx1ZSk6CisKKyAgICAgICAgICAgIEFkZCBmdW5jdGlvbiBmb3IgY2hl
Y2tpbmcgdGhlIHJlY2VudGx5IGFkZGVkIGRlbnNpdHkgdHlwZXMuCisKKyAgICAgICAgKiBjc3Mv
TWVkaWFGZWF0dXJlTmFtZXMuaDoKKyAgICAgICAgKE1lZGlhRmVhdHVyZU5hbWVzKToKKworICAg
ICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlc29sdXRpb24sIG1pbi1yZXNvbHV0aW9uIGFuZCBt
YXgtcmVzb2x1dGlvbi4KKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVSZXNvbHV0aW9uKTogQWRkIG1ldGhvZHMgZm9yIGNv
bXBhcmluZyByZXNvbHV0aW9ucy4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6bWluX3Jl
c29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAgKFdlYkNvcmU6Om1heF9yZXNvbHV0
aW9uTWVkaWFGZWF0dXJlRXZhbCk6CisKKyAgICAgICAgICAgIEltcGxlbWVudCB0aGUgcmVzb2x1
dGlvbiBtZXRob2QgZXZhbHVhdGlvbi4KKworICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXhwLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRoVmFsaWRQb3NpdGl2ZURlbnNpdHkpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpmZWF0dXJlV2l0aG91dFZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlFeHA6Ok1lZGlhUXVlcnlFeHApOgorCisg
ICAgICAgICAgICBIb29rIHVwIHJlc29sdXRpb24gd2l0aCB0aGUgcmlnaHQgcHJlLWNoZWNrcy4K
KworICAgICAgICogcGFnZS9TY3JlZW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyZWVuOjpo
b3Jpem9udGFsRFBJKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmVlbjo6dmVydGljYWxEUEkpOgor
CisgICAgICAgICAgICBDaGVjayB3aGV0aGVyIGFuIG92ZXJyaWRlIGV4aXN0cywgYW5kIGlmIHNv
LCB1c2VzIGl0LgorICAgICAgICAgICAgSWYgbm90IGNhbGN1bGF0ZSB0aGUgdmFsdWUgZ2l2ZW4g
dGhlIGRldmljZSBzY2FsZSBmYWN0b3IuCisKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRSZXNvbHV0aW9uT3ZlcnJpZGUpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAgICAoU2V0
dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnJlc29sdXRpb25PdmVycmlkZSk6
CisKKyAgICAgICAgICAgIEFkZCBhIHJlc29sdXRpb24gb3ZlcnJpZGUgdG8gc2V0dGluZ3MuCisK
KyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpCYWNrdXApOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0b3JlVG8pOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxTZXR0aW5nczo6c2V0UmVzb2x1dGlvbk92ZXJyaWRlKToKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oOgorICAgICAgICAoQmFj
a3VwKToKKyAgICAgICAgKEludGVybmFsU2V0dGluZ3MpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5pZGw6CisKKyAgICAgICAgICAgIEFkZCBhIG5ldyBzZXRSZXNvbHV0aW9u
T3ZlcnJpZGUgbWV0aG9kIHRvIGludGVybmFscy5zZXR0aW5ncy4KKwogMjAxMi0xMC0yMyAgS2Vu
dCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU3VwcG9ydCBmdWxsIG1v
bnRoIG5hbWVzIGluIERhdGVUaW1lRWRpdEVsZW1lbnQsIGFuZCB1c2UgdGhlbSBpbiBpbnB1dFt0
eXBlPW1vbnRoXSBieSBkZWZhdWx0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGI0OWU2
NDE2NjgwODAyZjBmNGViNTVkZWYwYWNjYzU4NzNiYWE1YWIuLjY1Nzk0NzAzNmEzYjRhZDk5MjRj
MDg1Nzg4YzZhMTQ3NTA4OTI4YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTQgQEAKKzIwMTItMTAtMjMgIEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0
aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciByZXNvbHV0aW9uIG1lZGlh
IHF1ZXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
OTA3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciB0aGUgUkVTT0xVVElPTl9NRURJQV9RVUVSWSBmZWF0dXJlIGZsYWcuCisK
KyAgICAgICAgKiBmZWF0dXJlcy5neXBpOgorCiAyMDEyLTEwLTIzICBLZW50IFRhbXVyYSAgPHRr
ZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBTdXBwb3J0IGZ1bGwgbW9udGggbmFtZXMgaW4g
RGF0ZVRpbWVFZGl0RWxlbWVudCwgYW5kIHVzZSB0aGVtIGluIGlucHV0W3R5cGU9bW9udGhdIGJ5
IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA4YWE1M2ViODAwZTc4MGJhODc1Yzg3YjRiY2Ez
ZWUwMzY5MjZhYWFkLi41Njg5NTk1YmM4N2IyOWU3ZDZkYTQ4ZDY4MWMxNzk3ZDQ5OTJhOTA2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTAtMjMgIEtlbm5ldGggUm9o
ZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciByZXNvbHV0aW9uIG1lZGlhIHF1ZXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTA3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgUkVTT0xVVElPTl9NRURJ
QV9RVUVSWSBmZWF0dXJlIGZsYWcuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0dXJl
RGVmaW5lcy54Y2NvbmZpZzoKKwogMjAxMi0xMC0yMSAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIFBhZ2U6OmphdmFTY3JpcHRVUkxzQXJlQWxsb3dl
ZCBzZXR0aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGZkMmY0N2VmMDgwN2NkNTMzMGYxNWFmZjNlOWRhNjQ1
Y2EyMjAwNWUuLjlhNDI4MzNjMzk5ZjlkNGY4ZTU3ZDA0NjEyZjQ1OWQ4OThhYWRhYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0xMC0xNiAgS2VubmV0aCBSb2hkZSBDaHJpc3Rp
YW5zZW4gIDxrZW5uZXRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJl
c29sdXRpb24gbWVkaWEgcXVlcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk5MDc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisKKyAgICAgICAgICAgIEFkZCBleHBvcnRz
IGZvciB0aGUgV2ViQ29yZTo6U2V0dGluZ3Mgc2V0dGluZy4KKworICAgICAgICAqIENvbmZpZ3Vy
YXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgorCisgICAgICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgdGhlIFJFU09MVVRJT05fTUVESUFfUVVFUlkgZmVhdHVyZSBmbGFnLgorCiAyMDEyLTEw
LTIzICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAg
ICAgICAgW0VGTF1bV0syXSBNYWtlIHBhZ2UgbG9hZCBjbGllbnQgYSBDKysgY2xhc3MKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4KaW5kZXggMjc4ZDIyNGM5ZDY5MmMyYWMyNTA4ZmMzODAzMmExMTUyZGE2ZTdj
NC4uM2NkNzRlYjE1OTUzZmM5MDJmOWZiODk2NTM1MGQ0NDMxYTA2ZTA0ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5leHAuaW4KQEAgLTk2Myw2ICs5NjMsNyBAQCBfX1pON1dlYkNvcmU4U2V0dGluZ3M0MHNldFRl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JFTlNfMzdUZXh0RGlyZWN0aQogX19a
TjdXZWJDb3JlOFNldHRpbmdzNDFzZXROZWVkc0tleWJvYXJkRXZlbnREaXNhbWJpZ3VhdGlvblF1
aXJrc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3M0NHNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJ
bWFnZUxvYWRpbmdTZXR0aW5nRWIKIF9fWk43V2ViQ29yZThTZXR0aW5nczQ1c2V0U2hvdWxkUmVz
cGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzRWIKK19fWk43V2ViQ29yZThTZXR0aW5n
czIxc2V0UmVzb2x1dGlvbk92ZXJyaWRlRVJLTlNfN0ludFNpemVFCiBfX1pON1dlYkNvcmU4Ymxh
bmtVUkxFdgogX19aTjdXZWJDb3JlOG1ha2VSR0JBRWlpaWkKIF9fWk43V2ViQ29yZThvcGVuRmls
ZUVSS04zV1RGNlN0cmluZ0VOU18xMkZpbGVPcGVuTW9kZUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKaW5kZXggZDE2NTM3ZTZjZWU4ZGIzZDU5ZTZhMTVhNTMyYTQ0NmJjMWU1NDllYS4uMGYwODg2
ZjM0M2JhN2UzM2JlMmE3ZGIxY2Q3ZGVmYWQxOWZmZWFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAKQEAgLTE1NzIsNyArMTU3Miw3IEBAIGJvb2wgQ1NTUGFyc2VyOjp2YWxpZFVuaXQoQ1NT
UGFyc2VyVmFsdWUqIHZhbHVlLCBVbml0cyB1bml0ZmxhZ3MsIENTU1BhcnNlck1vZGUKICAgICBj
YXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVFVSTjoKICAgICAgICAgYiA9ICh1bml0ZmxhZ3Mg
JiBGQW5nbGUpOwogICAgICAgICBicmVhazsKLSNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJ
T04pCisjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKSB8fCBFTkFCTEUoUkVTT0xVVElP
Tl9NRURJQV9RVUVSWSkKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQWDoKICAg
ICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBJOgogICAgIGNhc2UgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19EUENNOgpAQCAtMTYwMSw4ICsxNjAxLDggQEAgaW5saW5lIFBhc3NSZWZQdHI8
Q1NTUHJpbWl0aXZlVmFsdWU+IENTU1BhcnNlcjo6Y3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVl
KENTU1AKICAgICAgICAgQVNTRVJUKGlzQ2FsY3VsYXRpb24odmFsdWUpKTsKICAgICAgICAgcmV0
dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUobV9wYXJzZWRDYWxjdWxhdGlvbi5yZWxlYXNl
KCkpOwogICAgIH0KLSAgICAgICAgICAgICAgIAotI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVTT0xV
VElPTikKKworI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVTT0xVVElPTikgfHwgRU5BQkxFKFJFU09M
VVRJT05fTUVESUFfUVVFUlkpCiAgICAgQVNTRVJUKCh2YWx1ZS0+dW5pdCA+PSBDU1NQcmltaXRp
dmVWYWx1ZTo6Q1NTX05VTUJFUiAmJiB2YWx1ZS0+dW5pdCA8PSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTX0tIWikKICAgICAgICAgICAgfHwgKHZhbHVlLT51bml0ID49IENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfVFVSTiAmJiB2YWx1ZS0+dW5pdCA8PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1JFTVMp
CiAgICAgICAgICAgIHx8ICh2YWx1ZS0+dW5pdCA+PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1ZX
ICYmIHZhbHVlLT51bml0IDw9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVk1JTikKQEAgLTE2NjQs
NyArMTY2NCw3IEBAIGlubGluZSBQYXNzUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBDU1NQYXJz
ZXI6OnBhcnNlVmFsaWRQcmltaXRpdmUoaW50IGlkZW50aWZpCiAgICAgICAgIHJldHVybiBjcmVh
dGVQcmltaXRpdmVOdW1lcmljVmFsdWUodmFsdWUpOwogICAgIGlmICh2YWx1ZS0+dW5pdCA+PSBD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1ZXICYmIHZhbHVlLT51bml0IDw9IENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NfVk1JTikKICAgICAgICAgcmV0dXJuIGNyZWF0ZVByaW1pdGl2ZU51bWVyaWNWYWx1
ZSh2YWx1ZSk7Ci0jaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQorI2lmIEVOQUJMRShD
U1NfSU1BR0VfUkVTT0xVVElPTikgfHwgRU5BQkxFKFJFU09MVVRJT05fTUVESUFfUVVFUlkpCiAg
ICAgaWYgKHZhbHVlLT51bml0ID49IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQWCAmJiB2YWx1
ZS0+dW5pdCA8PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQQ00pCiAgICAgICAgIHJldHVybiBj
cmVhdGVQcmltaXRpdmVOdW1lcmljVmFsdWUodmFsdWUpOwogI2VuZGlmCkBAIC05MDEwLDcgKzkw
MTAsNyBAQCBpbmxpbmUgdm9pZCBDU1NQYXJzZXI6OmRldGVjdE51bWJlclRva2VuKENoYXJhY3Rl
clR5cGUqIHR5cGUsIGludCBsZW5ndGgpCiAgICAgY2FzZSAnZCc6CiAgICAgICAgIGlmIChsZW5n
dGggPT0gMyAmJiBpc0FTQ0lJQWxwaGFDYXNlbGVzc0VxdWFsKHR5cGVbMV0sICdlJykgJiYgaXNB
U0NJSUFscGhhQ2FzZWxlc3NFcXVhbCh0eXBlWzJdLCAnZycpKQogICAgICAgICAgICAgbV90b2tl
biA9IERFR1M7Ci0jaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQorI2lmIEVOQUJMRShD
U1NfSU1BR0VfUkVTT0xVVElPTikgfHwgRU5BQkxFKFJFU09MVVRJT05fTUVESUFfUVVFUlkpCiAg
ICAgICAgIGVsc2UgaWYgKGxlbmd0aCA+IDIgJiYgaXNBU0NJSUFscGhhQ2FzZWxlc3NFcXVhbCh0
eXBlWzFdLCAncCcpKSB7CiAgICAgICAgICAgICBpZiAobGVuZ3RoID09IDQpIHsKICAgICAgICAg
ICAgICAgICAvLyBUaGVyZSBpcyBhIGRpc2N1c3Npb24gYWJvdXQgdGhlIG5hbWUgb2YgdGhpcyB1
bml0IG9uIHd3dy1zdHlsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCA3NTY2OGNmMzBjZjUw
OTIwMzQyNTEzM2QzYTY0NDgyNzFiOGVkNjg1Li41Zjk5ZTYyMjZlMGMzYmU3NzM2MjQ1MTViZjFh
Y2JmMGIzMThkZmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC01NDUsNyArNTQ1LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgRkZyZXF1ZW5jeSA9IDB4MDA0MCwKICAgICAgICAgRlBvc2l0aXZl
SW50ZWdlciA9IDB4MDA4MCwKICAgICAgICAgRlJlbGF0aXZlID0gMHgwMTAwLAotI2lmIEVOQUJM
RShDU1NfSU1BR0VfUkVTT0xVVElPTikKKyNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04p
IHx8IEVOQUJMRShSRVNPTFVUSU9OX01FRElBX1FVRVJZKQogICAgICAgICBGUmVzb2x1dGlvbiA9
IDB4MDIwMCwKICNlbmRpZgogICAgICAgICBGTm9uTmVnID0gMHgwNDAwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAppbmRleCA1NWVkZThiMzdjYmQxZTg5MmM5MGZlNDhm
ZTNmZDlhODc5ODAzNWM2Li5jNjcyNmNkZjI2ZWVlMGYxNjdjNmRmMTM4MTViOTNmZmQ1OTM2ZTc0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKQEAgLTYyLDcgKzYy
LDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzVmFsaWRDU1NVbml0VHlwZUZvckRvdWJsZUNvbnZl
cnNpb24oQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXQKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVl
OjpDU1NfQ006CiAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RFRzoKICAgICBjYXNl
IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRElNRU5TSU9OOgotI2lmIEVOQUJMRShDU1NfSU1BR0Vf
UkVTT0xVVElPTikKKyNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04pIHx8IEVOQUJMRShS
RVNPTFVUSU9OX01FRElBX1FVRVJZKQogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19E
UFBYOgogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUEk6CiAgICAgY2FzZSBDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX0RQQ006CkBAIC05NCw3ICs5NCw3IEBAIHN0YXRpYyBpbmxpbmUg
Ym9vbCBpc1ZhbGlkQ1NTVW5pdFR5cGVGb3JEb3VibGVDb252ZXJzaW9uKENTU1ByaW1pdGl2ZVZh
bHVlOjpVbml0CiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIGNhc2UgQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19EQVNIQk9BUkRfUkVHSU9OOgogI2VuZGlmCi0jaWYgIUVOQUJMRShD
U1NfSU1BR0VfUkVTT0xVVElPTikKKyNpZiAhRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKSAm
JiAhRU5BQkxFKFJFU09MVVRJT05fTUVESUFfUVVFUlkpCiAgICAgY2FzZSBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX0RQUFg6CiAgICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQSToKICAg
ICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBDTToKQEAgLTE1NCw3ICsxNTQsNyBAQCBz
dGF0aWMgQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRDYXRlZ29yeSB1bml0Q2F0ZWdvcnkoQ1NTUHJp
bWl0aXZlVmFsdWU6OlVuaXRUeXBlcwogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19W
SDoKICAgICBjYXNlIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVk1JTjoKICAgICAgICAgcmV0dXJu
IENTU1ByaW1pdGl2ZVZhbHVlOjpVVmlld3BvcnRQZXJjZW50YWdlTGVuZ3RoOwotI2lmIEVOQUJM
RShDU1NfSU1BR0VfUkVTT0xVVElPTikKKyNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04p
IHx8IEVOQUJMRShSRVNPTFVUSU9OX01FRElBX1FVRVJZKQogICAgIGNhc2UgQ1NTUHJpbWl0aXZl
VmFsdWU6OkNTU19EUFBYOgogICAgIGNhc2UgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUEk6CiAg
ICAgY2FzZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQQ006CkBAIC02NzYsNyArNjc2LDcgQEAg
Q1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcyBDU1NQcmltaXRpdmVWYWx1ZTo6Y2Fub25pY2Fs
VW5pdFR5cGVGb3JDYXRlZ29yeShVbmkKICAgICAgICAgcmV0dXJuIENTU19IWjsKICAgICBjYXNl
IFVWaWV3cG9ydFBlcmNlbnRhZ2VMZW5ndGg6CiAgICAgICAgIHJldHVybiBDU1NfVU5LTk9XTjsg
Ly8gQ2Fubm90IGNvbnZlcnQgYmV0d2VlbiBudW1iZXJzIGFuZCByZWxhdGl2ZSBsZW5ndGhzLgot
I2lmIEVOQUJMRShDU1NfSU1BR0VfUkVTT0xVVElPTikKKyNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JF
U09MVVRJT04pIHx8IEVOQUJMRShSRVNPTFVUSU9OX01FRElBX1FVRVJZKQogICAgIGNhc2UgVVJl
c29sdXRpb246CiAgICAgICAgIHJldHVybiBDU1NfRFBQWDsKICNlbmRpZgpAQCAtODk2LDcgKzg5
Niw3IEBAIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0CiAg
ICAgICAgIGNhc2UgQ1NTX0NNOgogICAgICAgICAgICAgdGV4dCA9IGZvcm1hdE51bWJlcihtX3Zh
bHVlLm51bSwgImNtIik7CiAgICAgICAgICAgICBicmVhazsKLSNpZiBFTkFCTEUoQ1NTX0lNQUdF
X1JFU09MVVRJT04pCisjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKSB8fCBFTkFCTEUo
UkVTT0xVVElPTl9NRURJQV9RVUVSWSkKICAgICAgICAgY2FzZSBDU1NfRFBQWDoKICAgICAgICAg
ICAgIHRleHQgPSBmb3JtYXROdW1iZXIobV92YWx1ZS5udW0sICJkcHB4Iik7CiAgICAgICAgICAg
ICBicmVhazsKQEAgLTEyMjgsNyArMTIyOCw3IEBAIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFs
dWU+IENTU1ByaW1pdGl2ZVZhbHVlOjpjbG9uZUZvckNTU09NKCkgY29uc3QKICAgICBjYXNlIENT
U19WVzoKICAgICBjYXNlIENTU19WSDoKICAgICBjYXNlIENTU19WTUlOOgotI2lmIEVOQUJMRShD
U1NfSU1BR0VfUkVTT0xVVElPTikKKyNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04pIHx8
IEVOQUJMRShSRVNPTFVUSU9OX01FRElBX1FVRVJZKQogICAgIGNhc2UgQ1NTX0RQUFg6CiAgICAg
Y2FzZSBDU1NfRFBJOgogICAgIGNhc2UgQ1NTX0RQQ006CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5oCmluZGV4IGFhMmRiZWFjMzJkZGIzODc3YjFkYjVlZmJkMGFhZWU3NzEyZDY4
NjYuLmZjYzViODNiODc3ZTQyYmQ5MWVlNmE0NjgzZGQ4NTQ4YmVlOTg1MWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCkBAIC0xNDMsNyArMTQzLDcgQEAgcHVibGljOgog
ICAgICAgICBVVGltZSwKICAgICAgICAgVUZyZXF1ZW5jeSwKICAgICAgICAgVVZpZXdwb3J0UGVy
Y2VudGFnZUxlbmd0aCwKLSNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04pCisjaWYgRU5B
QkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKSB8fCBFTkFCTEUoUkVTT0xVVElPTl9NRURJQV9RVUVS
WSkKICAgICAgICAgVVJlc29sdXRpb24sCiAjZW5kaWYKICAgICAgICAgVU90aGVyCkBAIC0xODEs
NiArMTgxLDEwIEBAIHB1YmxpYzoKICAgICBib29sIGlzQ2FsY3VsYXRlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fcHJpbWl0aXZlVW5pdFR5cGUgPT0gQ1NTX0NBTEM7IH0KICAgICBib29sIGlzQ2FsY3Vs
YXRlZFBlcmNlbnRhZ2VXaXRoTnVtYmVyKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgp
ID09IENTU19DQUxDX1BFUkNFTlRBR0VfV0lUSF9OVU1CRVI7IH0KICAgICBib29sIGlzQ2FsY3Vs
YXRlZFBlcmNlbnRhZ2VXaXRoTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgp
ID09IENTU19DQUxDX1BFUkNFTlRBR0VfV0lUSF9MRU5HVEg7IH0KKyAgICBib29sIGlzRG90c1Bl
ckluY2goKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0RQSTsgfQorICAg
IGJvb2wgaXNEb3RzUGVyUGl4ZWwoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0g
Q1NTX0RQUFg7IH0KKyAgICBib29sIGlzRG90c1BlckNlbnRpbWV0ZXIoKSBjb25zdCB7IHJldHVy
biBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0RQQ007IH0KKwogI2lmIEVOQUJMRShDU1NfVkFSSUFC
TEVTKQogICAgIGJvb2wgaXNWYXJpYWJsZU5hbWUoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVU
eXBlKCkgPT0gQ1NTX1ZBUklBQkxFX05BTUU7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVk
aWFGZWF0dXJlTmFtZXMuaAppbmRleCBiMDg0MzllNGEwMTgzNDkyMmZkYTAwZThhZDk3ZWZmMjBm
YmVjMGZjLi4yNjY2OGFlNDY2ZjNjNmNkOWY0MzFkMDM5NjAyMWZkMzVjN2I1NjMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFGZWF0dXJlTmFtZXMuaApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgbWFjcm8obWF4X2hlaWdodCwgIm1heC1oZWlnaHQiKSBcCiAgICAg
bWFjcm8obWF4X21vbm9jaHJvbWUsICJtYXgtbW9ub2Nocm9tZSIpIFwKICAgICBtYWNybyhtYXhf
d2lkdGgsICJtYXgtd2lkdGgiKSBcCisgICAgbWFjcm8obWF4X3Jlc29sdXRpb24sICJtYXgtcmVz
b2x1dGlvbiIpIFwKICAgICBtYWNybyhtaW5fY29sb3IsICJtaW4tY29sb3IiKSBcCiAgICAgbWFj
cm8obWluX2FzcGVjdF9yYXRpbywgIm1pbi1hc3BlY3QtcmF0aW8iKSBcCiAgICAgbWFjcm8obWlu
X2RldmljZV9hc3BlY3RfcmF0aW8sICJtaW4tZGV2aWNlLWFzcGVjdC1yYXRpbyIpIFwKQEAgLTU2
LDcgKzU3LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKG1pbl9oZWlnaHQsICJt
aW4taGVpZ2h0IikgXAogICAgIG1hY3JvKG1pbl9tb25vY2hyb21lLCAibWluLW1vbm9jaHJvbWUi
KSBcCiAgICAgbWFjcm8obWluX3dpZHRoLCAibWluLXdpZHRoIikgXAorICAgIG1hY3JvKG1pbl9y
ZXNvbHV0aW9uLCAibWluLXJlc29sdXRpb24iKSBcCiAgICAgbWFjcm8ocG9pbnRlciwgInBvaW50
ZXIiKSBcCisgICAgbWFjcm8ocmVzb2x1dGlvbiwgInJlc29sdXRpb24iKSBcCiAgICAgbWFjcm8o
dHJhbnNmb3JtXzJkLCAiLXdlYmtpdC10cmFuc2Zvcm0tMmQiKSBcCiAgICAgbWFjcm8odHJhbnNm
b3JtXzNkLCAiLXdlYmtpdC10cmFuc2Zvcm0tM2QiKSBcCiAgICAgbWFjcm8odHJhbnNpdGlvbiwg
Ii13ZWJraXQtdHJhbnNpdGlvbiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9N
ZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZh
bHVhdG9yLmNwcAppbmRleCBkYWE0OTBiOGJkYzg0Njg3Yzc0OWE5YjUxMGU0NGMzOWM2OTEwOGU1
Li44ZDVkYzJkZDdlNDA3OThlNTEyYjg3MmIyZTU2NThlODU3ODc0NDgxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC0yOSwxMSArMjksMTIgQEAKICNp
bmNsdWRlICJNZWRpYVF1ZXJ5RXZhbHVhdG9yLmgiCiAKICNpbmNsdWRlICJDU1NBc3BlY3RSYXRp
b1ZhbHVlLmgiCi0jaW5jbHVkZSAiQ2hyb21lLmgiCi0jaW5jbHVkZSAiQ2hyb21lQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVkZSAiQ2hyb21lLmgiCisj
aW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVk
ZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcu
aCIKQEAgLTQ1LDggKzQ2LDkgQEAKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TY3JlZW4uaCIKLSNpbmNsdWRlICJSZW5k
ZXJWaWV3LmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKyNpbmNsdWRlICJSZW5kZXJWaWV3
LmgiCisjaW5jbHVkZSAiU2NyZWVuLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTY2LDE1ICs2
OCwxMyBAQCB0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIEV2YWxGdW5jPiBGdW5j
dGlvbk1hcDsKIHN0YXRpYyBGdW5jdGlvbk1hcCogZ0Z1bmN0aW9uTWFwOwogCiAvKgotICogRklY
TUU6IGZvbGxvd2luZyBtZWRpYSBmZWF0dXJlcyBhcmUgbm90IGltcGxlbWVudGVkOiBjb2xvcl9p
bmRleCwgc2NhbiwgcmVzb2x1dGlvbgorICogRklYTUU6IGZvbGxvd2luZyBtZWRpYSBmZWF0dXJl
cyBhcmUgbm90IGltcGxlbWVudGVkOiBjb2xvcl9pbmRleCwgc2NhbgogICoKICAqIGNvbG9yX2lu
ZGV4LCBtaW4tY29sb3ItaW5kZXgsIG1heF9jb2xvcl9pbmRleDogSXQncyB1bmtub3duIGhvdyB0
byByZXRyaWV2ZQogICogdGhlIGluZm9ybWF0aW9uIGlmIHRoZSBkaXNwbGF5IG1vZGUgaXMgaW5k
ZXhlZAogICogc2NhbjogVGhlICJzY2FuIiBtZWRpYSBmZWF0dXJlIGRlc2NyaWJlcyB0aGUgc2Nh
bm5pbmcgcHJvY2VzcyBvZgogICogdHYgb3V0cHV0IGRldmljZXMuIEl0J3MgdW5rbm93biBob3cg
dG8gcmV0cmlldmUgdGhpcyBpbmZvcm1hdGlvbiBmcm9tCiAgKiB0aGUgcGxhdGZvcm0KLSAqIHJl
c29sdXRpb24sIG1pbi1yZXNvbHV0aW9uLCBtYXgtcmVzb2x1dGlvbjogY3NzIHBhcnNlciBkb2Vz
bid0IHNlZW0gdG8KLSAqIHN1cHBvcnQgQ1NTX0RJTUVOU0lPTgogICovCiAKIE1lZGlhUXVlcnlF
dmFsdWF0b3I6Ok1lZGlhUXVlcnlFdmFsdWF0b3IoYm9vbCBtZWRpYUZlYXR1cmVSZXN1bHQpCkBA
IC0xOTcsNiArMTk3LDIzIEBAIHN0YXRpYyBib29sIGNvbXBhcmVBc3BlY3RSYXRpb1ZhbHVlKENT
U1ZhbHVlKiB2YWx1ZSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBNZWRpCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCisjaWYgRU5BQkxFKFJFU09MVVRJT05fTUVESUFfUVVFUlkpCitzdGF0aWMgYm9v
bCBjb21wYXJlUmVzb2x1dGlvbihmbG9hdCBtaW4sIGZsb2F0IG1heCwgZmxvYXQgdmFsdWUsIE1l
ZGlhRmVhdHVyZVByZWZpeCBvcCkKK3sKKyAgICBzd2l0Y2ggKG9wKSB7CisgICAgY2FzZSBOb1By
ZWZpeDoKKyAgICAgICAgLy8gQSAncmVzb2x1dGlvbicgKHdpdGhvdXQgYSAibWluLSIgb3IgIm1h
eC0iIHByZWZpeCkgcXVlcnkKKyAgICAgICAgLy8gbmV2ZXIgbWF0Y2hlcyBhIGRldmljZSB3aXRo
IG5vbi1zcXVhcmUgcGl4ZWxzLgorICAgICAgICByZXR1cm4gdmFsdWUgPT0gbWluICYmIHZhbHVl
ID09IG1heDsKKyAgICBjYXNlIE1pblByZWZpeDoKKyAgICAgICAgcmV0dXJuIG1pbiA+PSB2YWx1
ZTsKKyAgICBjYXNlIE1heFByZWZpeDoKKyAgICAgICAgcmV0dXJuIG1heCA8PSB2YWx1ZTsKKyAg
ICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKIHN0YXRpYyBib29sIG51bWJlclZh
bHVlKENTU1ZhbHVlKiB2YWx1ZSwgZmxvYXQmIHJlc3VsdCkKIHsKICAgICBpZiAodmFsdWUtPmlz
UHJpbWl0aXZlVmFsdWUoKQpAQCAtMjc4LDYgKzI5NSw4NyBAQCBzdGF0aWMgYm9vbCBkZXZpY2Vf
cGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlICp2YWx1ZSwgUmVuZGVyU3R5bGUq
LCBGcgogICAgIHJldHVybiBmcmFtZS0+cGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpICE9IDA7
CiB9CiAKK3N0YXRpYyBib29sIHJlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2
YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkK
K3sKKyNpZiBFTkFCTEUoUkVTT0xVVElPTl9NRURJQV9RVUVSWSkKKyAgICAvLyBUaGUgRFBJIGJl
bG93IGlzIGRvdHMgcGVyIENTUyBpbmNoIGFuZCB0aHVzIG5vdCBkZXZpY2UgaW5jaC4gVGhlCisg
ICAgLy8gZnVuY3Rpb25zIHNob3VsZCByZXNwZWN0IHRoaXMuCisgICAgLy8KKyAgICAvLyBGb3Ig
c3F1YXJlIHBpeGVscywgaXQgaXMgc2ltcGx5IHRoZSBkZXZpY2Ugc2NhbGUgZmFjdG9yIChkcHB4
KSB0aW1lcyA5NiwKKyAgICAvLyBwZXIgZGVmaW5pdGlvbi4KKyAgICAvLworICAgIC8vIFRoZSBk
ZXZpY2Ugc2NhbGUgZmFjdG9yIGlzIGEgcHJlZGVmaW5lZCB2YWx1ZSB3aGljaCBpcyBjYWxjdWxh
dGVkIHBlcgorICAgIC8vIGRldmljZSBnaXZlbiB0aGUgcHJlZmVycmVkIGRpc3RhbmNlIGluIGFy
bXMgbGVuZ3RoIChjb25zaWRlcmVkIG9uZSBhcm1zCisgICAgLy8gbGVuZ3RoIGZvciBkZXNrdG9w
IGNvbXB1dGVycyBhbmQgdXN1YWxseSAwLjYgYXJtcyBsZW5ndGggZm9yIHBob25lcykuCisgICAg
Ly8KKyAgICAvLyBUaGUgdmFsdWUgY2FuIGJlIGNhbGN1bGF0ZWQgYXMgZm9sbG93cyAocm91bmRl
ZCB0byBxdWFydGVycyk6CisgICAgLy8gICAgIHJvdW5kKChkZXZpY2VEb3RzUGVySW5jaCAqIGRp
c3RhbmNlSW5Bcm1zTGVuZ3RoIC8gOTYpICogNCkgLyA0LgorICAgIC8vIEV4YW1wbGUgKG1pZC1y
YW5nZSByZXNvbHV0aW9uIHBob25lKToKKyAgICAvLyAgICAgcm91bmQoKDI0NCAqIDAuNiAvIDk2
KSAqIDQpIC8gNCA9IDEuNQorICAgIC8vIEV4YW1wbGUgKGhpZ2gtcmFuZ2UgcmVzb2x1dGlvbiBs
YXB0b3ApOgorICAgIC8vICAgICByb3VuZCgoMjIwICogMS4wIC8gOTYpICogNCkgLyA0ID0gMi4w
CisKKyAgICBmbG9hdCBob3JpRFBJID0gZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5z
Y3JlZW4oKS0+aG9yaXpvbnRhbERQSSgpOworICAgIGZsb2F0IHZlcnREUEkgPSBmcmFtZS0+ZG9j
dW1lbnQoKS0+ZG9tV2luZG93KCktPnNjcmVlbigpLT52ZXJ0aWNhbERQSSgpOworCisgICAgZmxv
YXQgbGVhc3REZW5zZURQSSA9IHN0ZDo6bWluKGhvcmlEUEksIHZlcnREUEkpOworICAgIGZsb2F0
IG1vc3REZW5zZURQSSA9IHN0ZDo6bWF4KGhvcmlEUEksIHZlcnREUEkpOworCisgICAgLy8gQWNj
b3JkaW5nIHRvIHNwZWMsIChyZXNvbHV0aW9uKSB3aWxsIGV2YWx1YXRlIHRvIHRydWUgaWYgKHJl
c29sdXRpb246eCkKKyAgICAvLyB3aWxsIGV2YWx1YXRlIHRvIHRydWUgZm9yIGEgdmFsdWUgeCBv
dGhlciB0aGFuIHplcm8gb3IgemVybyBmb2xsb3dlZCBieQorICAgIC8vIGEgdmFsaWQgdW5pdCBp
ZGVudGlmaWVyIChpLmUuLCBvdGhlciB0aGFuIDAsIDBkcGksIDBkcGNtLCBvciAwZHBweC4pLAor
ICAgIC8vIHdoaWNoIGlzIGFsd2F5cyB0aGUgY2FzZS4gQnV0IHRoZSBzcGVjIHNwZWNpYWwgY2Fz
ZXMgJ3Jlc29sdXRpb24nIHRvCisgICAgLy8gbmV2ZXIgbWF0Y2hlcyBhIGRldmljZSB3aXRoIG5v
bi1zcXVhcmUgcGl4ZWxzLgorICAgIGlmICghdmFsdWUpIHsKKyAgICAgICAgQVNTRVJUKG9wID09
IE5vUHJlZml4KTsKKyAgICAgICAgcmV0dXJuIGxlYXN0RGVuc2VEUEkgPT0gbW9zdERlbnNlRFBJ
OworICAgIH0KKworICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgLy8gaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzMy12YWx1
ZXMvI3Jlc29sdXRpb24gZGVmaW5lcyByZXNvbHV0aW9uIGFzIGEKKyAgICAvLyBkaW1lbnNpb24s
IHdoaWNoIGNvbnRhaW5zIGEgbnVtYmVyIChkZWNpbWFsIHBvaW50IGFsbG93ZWQpLCBub3QganVz
dCBhbgorICAgIC8vIGludGVnZXIuIEFsc28sIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMt
dmFsdWVzLyNudW1lcmljLXR5cGVzIHNheXMKKyAgICAvLyAiQ1NTIHRoZW9yZXRpY2FsbHkgc3Vw
cG9ydHMgaW5maW5pdGUgcHJlY2lzaW9uIGFuZCBpbmZpbml0ZSByYW5nZXMgZm9yCisgICAgLy8g
YWxsIHZhbHVlIHR5cGVzOworICAgIENTU1ByaW1pdGl2ZVZhbHVlKiByYXdWYWx1ZSA9IHN0YXRp
Y19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOworCisgICAgaWYgKHJhd1ZhbHVlLT5p
c0RvdHNQZXJQaXhlbCgpKSB7CisgICAgICAgIC8vIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2Nz
czMtdmFsdWVzLyNhYnNvbHV0ZS1sZW5ndGhzIHJlY29tbWVuZHMKKyAgICAgICAgLy8gInRoYXQg
dGhlIHBpeGVsIHVuaXQgcmVmZXIgdG8gdGhlIHdob2xlIG51bWJlciBvZiBkZXZpY2UgcGl4ZWxz
IHRoYXQKKyAgICAgICAgLy8gYmVzdCBhcHByb3hpbWF0ZXMgdGhlIHJlZmVyZW5jZSBwaXhlbCIu
IFdlIGNvbXBhcmUgd2l0aCAyIGRlY2ltYWwKKyAgICAgICAgLy8gcG9pbnRzLCB3aGljaCBhbGln
bnMgd2l0aCBjdXJyZW50IGRldmljZS1waXhlbC1yYXRpbydzIGluIHVzZS4KKyAgICAgICAgZmxv
YXQgbGVhc3REZW5zZURlbnNpdHkgPSBmbG9vcmYobGVhc3REZW5zZURQSSAqIDEwMCAvIDk2KSAv
IDEwMDsKKyAgICAgICAgZmxvYXQgbW9zdERlbnNlRGVuc2l0eSA9IGZsb29yZihsZWFzdERlbnNl
RFBJICogMTAwIC8gOTYpIC8gMTAwOworICAgICAgICBmbG9hdCB0ZXN0ZWREZW5zaXR5ID0gcmF3
VmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUFBYKTsKKyAgICAg
ICAgcmV0dXJuIGNvbXBhcmVSZXNvbHV0aW9uKGxlYXN0RGVuc2VEZW5zaXR5LCBtb3N0RGVuc2VE
ZW5zaXR5LCB0ZXN0ZWREZW5zaXR5LCBvcCk7CisgICAgfQorCisgICAgaWYgKHJhd1ZhbHVlLT5p
c0RvdHNQZXJJbmNoKCkpIHsKKyAgICAgICAgdW5zaWduZWQgdGVzdGVkRGVuc2l0eSA9IHJhd1Zh
bHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBJKTsKKyAgICAgICAg
cmV0dXJuIGNvbXBhcmVSZXNvbHV0aW9uKGxlYXN0RGVuc2VEUEksIG1vc3REZW5zZURQSSwgdGVz
dGVkRGVuc2l0eSwgb3ApOworICAgIH0KKworICAgIC8vIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dn
L2NzczMtdmFsdWVzLyNhYnNvbHV0ZS1sZW5ndGhzIHJlY29tbWVuZHMgInRoYXQKKyAgICAvLyB0
aGUgcGl4ZWwgdW5pdCByZWZlciB0byB0aGUgd2hvbGUgbnVtYmVyIG9mIGRldmljZSBwaXhlbHMg
dGhhdCBiZXN0CisgICAgLy8gYXBwcm94aW1hdGVzIHRoZSByZWZlcmVuY2UgcGl4ZWwiLgorICAg
IGZsb2F0IGxlYXN0RGVuc2VEUENNID0gcm91bmRmKGxlYXN0RGVuc2VEUEkgLyAyLjU0KTsgLy8g
KDIuNTQgY20vaW4pCisgICAgZmxvYXQgbW9zdERlbnNlRFBDTSA9IHJvdW5kZihtb3N0RGVuc2VE
UEkgLyAyLjU0KTsKKworICAgIGlmIChyYXdWYWx1ZS0+aXNEb3RzUGVyQ2VudGltZXRlcigpKSB7
CisgICAgICAgIGZsb2F0IHRlc3RlZERlbnNpdHkgPSByYXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShD
U1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQQ00pOworICAgICAgICByZXR1cm4gY29tcGFyZVJlc29s
dXRpb24obGVhc3REZW5zZURQQ00sIG1vc3REZW5zZURQQ00sIHRlc3RlZERlbnNpdHksIG9wKTsK
KyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7CisgICAgVU5VU0VEX1BBUkFN
KGZyYW1lKTsKKyAgICBVTlVTRURfUEFSQU0ob3ApOworI2VuZGlmCisKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKIHN0YXRpYyBib29sIGdyaWRNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1
ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSosIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsKICAgICAv
LyBpZiBvdXRwdXQgZGV2aWNlIGlzIGJpdG1hcCwgZ3JpZDogMCA9PSB0cnVlCkBAIC00NTYsNiAr
NTU0LDE2IEBAIHN0YXRpYyBib29sIG1heF9kZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVFdmFsKENT
U1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlCiAgICAgcmV0dXJuIGRldmljZV93aWR0
aE1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWF4UHJlZml4KTsKIH0KIAor
c3RhdGljIGJvb2wgbWluX3Jlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1
ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkK
K3sKKyAgICByZXR1cm4gcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBm
cmFtZSwgTWluUHJlZml4KTsKK30KKworc3RhdGljIGJvb2wgbWF4X3Jlc29sdXRpb25NZWRpYUZl
YXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJh
bWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKK3sKKyAgICByZXR1cm4gcmVzb2x1dGlvbk1lZGlhRmVh
dHVyZUV2YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWF4UHJlZml4KTsKK30KKwogc3RhdGljIGJv
b2wgYW5pbWF0aW9uTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxl
KiwgRnJhbWUqLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7CiAgICAgaWYgKHZhbHVlKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAKaW5kZXggMWEwNmI3OTY1ZmNjYjk4YTA5MzU2
OTU2OTc1OGIyMWZjNmUyOTk4MS4uMjNiZTQyOWNhZGU4NTIwYWJjMDM5NDNmMWUyMzRlZDE5YWNm
ZTA2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNwcApAQCAtNjcsNiArNjcsMTYg
QEAgc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRoVmFsaWRQb3NpdGl2ZUxlbmdodE9yTnVt
YmVyKGNvbnN0IEF0b21pY1N0cmluZyYgbWUKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1l
ZGlhRmVhdHVyZU5hbWVzOjptaW5fZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlOwogfQogCitzdGF0
aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhWYWxpZERlbnNpdHkoY29uc3QgQXRvbWljU3RyaW5n
JiBtZWRpYUZlYXR1cmUsIGNvbnN0IENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKK3sKKyAgICBpZiAo
KHZhbHVlLT51bml0ICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQWCAmJiB2YWx1ZS0+dW5p
dCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQSSAmJiB2YWx1ZS0+dW5pdCAhPSBDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX0RQQ00pIHx8IHZhbHVlLT5mVmFsdWUgPD0gMCkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1l
czo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVk
aWFGZWF0dXJlTmFtZXM6Om1heF9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1l
ZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX3Jlc29sdXRpb25NZWRpYUZlYXR1
cmU7Cit9CisKIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFBvc2l0aXZlSW50ZWdlcihj
b25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgY29uc3QgQ1NTUGFyc2VyVmFsdWUqIHZh
bHVlKQogewogICAgIGlmICghdmFsdWUtPmlzSW50IHx8IHZhbHVlLT5mVmFsdWUgPCAwKQpAQCAt
MTE0LDYgKzEyNCw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aEFzcGVjdFJhdGlv
KGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlKQogCiBzdGF0aWMgaW5saW5lIGJvb2wg
ZmVhdHVyZVdpdGhvdXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSkKIHsK
KyAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IGFyZSBwcmVmaXhlZCBieSBtaW4vbWF4IGNhbm5v
dCBiZSB1c2VkIHdpdGhvdXQgYSB2YWx1ZS4KICAgICByZXR1cm4gbWVkaWFGZWF0dXJlID09IE1l
ZGlhRmVhdHVyZU5hbWVzOjptb25vY2hyb21lTWVkaWFGZWF0dXJlCiAgICAgICAgIHx8IG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6Y29sb3JNZWRpYUZlYXR1cmUKICAgICAgICAg
fHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpncmlkTWVkaWFGZWF0dXJlCkBA
IC0xMzEsNyArMTQyLDggQEAgc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRob3V0VmFsdWUo
Y29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUpCiAgICAgICAgIHx8IG1lZGlhRmVhdHVy
ZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6YW5pbWF0aW9uTWVkaWFGZWF0dXJlCiAgICAgICAgIHx8
IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dmlld19tb2RlTWVkaWFGZWF0dXJl
CiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6cG9pbnRlck1l
ZGlhRmVhdHVyZQotICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6
OmRldmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZTsKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJl
ID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmUKKyAg
ICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpyZXNvbHV0aW9uTWVk
aWFGZWF0dXJlOwogfQogCiBpbmxpbmUgTWVkaWFRdWVyeUV4cDo6TWVkaWFRdWVyeUV4cChjb25z
dCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgQ1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxp
c3QpCkBAIC0xNDgsNiArMTYwLDEwIEBAIGlubGluZSBNZWRpYVF1ZXJ5RXhwOjpNZWRpYVF1ZXJ5
RXhwKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBDU1NQYXJzZXJWCiAgICAgICAg
ICAgICBpZiAoZmVhdHVyZVdpdGhDU1NWYWx1ZUlEKG1lZGlhRmVhdHVyZSwgdmFsdWUpKQogICAg
ICAgICAgICAgICAgIG1fdmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRlbnRpZmll
cih2YWx1ZS0+aWQpOwogCisgICAgICAgICAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IG11c3Qg
aGF2ZSBub24tbmVnYXRpdmUgPGRlbnNpdHk+LCBpZS4gZHBweCwgZHBpIG9yIGRwY20uCisgICAg
ICAgICAgICBlbHNlIGlmIChmZWF0dXJlV2l0aFZhbGlkRGVuc2l0eShtZWRpYUZlYXR1cmUsIHZh
bHVlKSkKKyAgICAgICAgICAgICAgICBtX3ZhbHVlID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZSh2YWx1ZS0+ZlZhbHVlLCAoQ1NTUHJpbWl0aXZlVmFsdWU6OlVuaXRUeXBlcykgdmFsdWUtPnVu
aXQpOworCiAgICAgICAgICAgICAvLyBNZWRpYSBmZWF0dXJlcyB0aGF0IG11c3QgaGF2ZSBub24t
bmVnYXRpdmUgPGxlbmdodD4gb3IgbnVtYmVyIHZhbHVlLgogICAgICAgICAgICAgZWxzZSBpZiAo
ZmVhdHVyZVdpdGhWYWxpZFBvc2l0aXZlTGVuZ2h0T3JOdW1iZXIobWVkaWFGZWF0dXJlLCB2YWx1
ZSkpCiAgICAgICAgICAgICAgICAgbV92YWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUo
dmFsdWUtPmZWYWx1ZSwgKENTU1ByaW1pdGl2ZVZhbHVlOjpVbml0VHlwZXMpIHZhbHVlLT51bml0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcAppbmRleCBlMWUxZDExNzM4NmY2MjJlZTNjMTkzYjNlNTAy
MmM4ODNhOGMyNWIxLi5jMDg4MGM4ZGUxZjE5ZDNlNzMzZmRhODgxZDdjZjU0ZjNkOWQ1OTM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TY3JlZW4uY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWVW
aWV3LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAi
UGxhdGZvcm1TY3JlZW4uaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldpZGdl
dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OCwxNCArNDksNDEgQEAgdW5zaWduZWQg
U2NyZWVuOjpob3Jpem9udGFsRFBJKCkgY29uc3QKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAg
ICAgIHJldHVybiAwOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2NyZWVuSG9y
aXpvbnRhbERQSShtX2ZyYW1lLT52aWV3KCkpKTsKKworICAgIC8vIFVzZWQgYnkgdGhlIHRlc3Rp
bmcgc3lzdGVtLCBjYW4gYmUgc2V0IGZyb20gaW50ZXJuYWxzLgorICAgIEludFNpemUgb3ZlcnJp
ZGUgPSBtX2ZyYW1lLT5wYWdlKCktPnNldHRpbmdzKCktPnJlc29sdXRpb25PdmVycmlkZSgpOwor
ICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gb3ZlcnJpZGUud2lk
dGgoKTsKKworICAgIC8vIFRoZXNlIHdlcmUgYWRkZWQgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTcwNTU2IGZvciBDaHJvbWl1bQorICAgIC8vIGJ1dCBzZWVtcyB1
bnVzZWQuIFBsZWFzZSByZW1vdmUgYWZ0ZXIgdmFyaWZ5aW5nIHRoYXQgdGhpcyBpcyBpbmRlZWQg
dGhlIGNhc2UuCisgICAgaW50IHBsYXRmb3JtVmFsdWUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
c2NyZWVuSG9yaXpvbnRhbERQSShtX2ZyYW1lLT52aWV3KCkpKTsKKyAgICBpZiAocGxhdGZvcm1W
YWx1ZSA+IDApCisgICAgICAgIHJldHVybiBwbGF0Zm9ybVZhbHVlOworCisgICAgLy8gVGhlIERQ
SSBpcyBkZWZpbmVkIGFzIGRvdHMgcGVyIENTUyBpbmNoIGFuZCB0aHVzIG5vdCBkZXZpY2UgaW5j
aC4KKyAgICByZXR1cm4gbV9mcmFtZS0+cGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpICogOTY7
CiB9CiAKIHVuc2lnbmVkIFNjcmVlbjo6dmVydGljYWxEUEkoKSBjb25zdAogeworICAgIC8vIFRo
ZSBEUEkgaXMgZGVmaW5lZCBhcyBkb3RzIHBlciBDU1MgaW5jaCBhbmQgdGh1cyBub3QgZGV2aWNl
IGluY2guCiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNjcmVlblZlcnRpY2FsRFBJKG1fZnJhbWUtPnZpZXcoKSkp
OworCisgICAgLy8gVXNlZCBieSB0aGUgdGVzdGluZyBzeXN0ZW0sIGNhbiBiZSBzZXQgZnJvbSBp
bnRlcm5hbHMuCisgICAgSW50U2l6ZSBvdmVycmlkZSA9IG1fZnJhbWUtPnBhZ2UoKS0+c2V0dGlu
Z3MoKS0+cmVzb2x1dGlvbk92ZXJyaWRlKCk7CisgICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybiBvdmVycmlkZS5oZWlnaHQoKTsKKworICAgIC8vIFRoZXNlIHdlcmUg
YWRkZWQgaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNTU2IGZv
ciBDaHJvbWl1bQorICAgIC8vIGJ1dCBzZWVtcyB1bnVzZWQuIFBsZWFzZSByZW1vdmUgYWZ0ZXIg
dmFyaWZ5aW5nIHRoYXQgdGhpcyBpcyBpbmRlZWQgdGhlIGNhc2UuCisgICAgaW50IHBsYXRmb3Jt
VmFsdWUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2NyZWVuVmVydGljYWxEUEkobV9mcmFtZS0+
dmlldygpKSk7CisgICAgaWYgKHBsYXRmb3JtVmFsdWUgPiAwKQorICAgICAgICByZXR1cm4gcGxh
dGZvcm1WYWx1ZTsKKworICAgIC8vIFRoZSBEUEkgaXMgZGVmaW5lZCBhcyBkb3RzIHBlciBDU1Mg
aW5jaCBhbmQgdGh1cyBub3QgZGV2aWNlIGluY2guCisgICAgcmV0dXJuIG1fZnJhbWUtPnBhZ2Uo
KS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSAqIDk2OwogfQogCiB1bnNpZ25lZCBTY3JlZW46OmhlaWdo
dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDk4NzZhZjVjNzZkMjI1NWNl
YjJmODgwYjg0OTUxOWQyNmMzZDNlZDQuLjc0YjkyZjlmOWMzOTcxMTU5OTQ0MmM3MTQ0YjlkYWVi
ZTVkNzc3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC00NTksNiArNDU5LDE1IEBA
IHZvaWQgU2V0dGluZ3M6OnNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKGZsb2F0IGZv
bnRTY2FsZUZhY3RvcikKIAogI2VuZGlmCiAKK3ZvaWQgU2V0dGluZ3M6OnNldFJlc29sdXRpb25P
dmVycmlkZShjb25zdCBJbnRTaXplJiBkZW5zaXR5UGVySW5jaE92ZXJyaWRlKQoreworICAgIGlm
IChtX3Jlc29sdXRpb25EZW5zaXR5UGVySW5jaE92ZXJyaWRlID09IGRlbnNpdHlQZXJJbmNoT3Zl
cnJpZGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNo
T3ZlcnJpZGUgPSBkZW5zaXR5UGVySW5jaE92ZXJyaWRlOworICAgIG1fcGFnZS0+c2V0TmVlZHNS
ZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldExvYWRzSW1h
Z2VzQXV0b21hdGljYWxseShib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSkKIHsKICAgICBt
X2xvYWRzSW1hZ2VzQXV0b21hdGljYWxseSA9IGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaAppbmRleCA4OTc4NWQxMmY2ZTI5MTY2ZGFjM2JhZmNiZWY3MGIwNWRl
ZmZiNDZhLi5jNzFmMzJlODYxZDcxZDdjNjI4NDM2MDlhY2Y0ZTM1NTJiYTQzMDMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJFZGl0aW5nQmVo
YXZpb3JUeXBlcy5oIgogI2luY2x1ZGUgIkZvbnRSZW5kZXJpbmdNb2RlLmgiCisjaW5jbHVkZSAi
SW50U2l6ZS5oIgogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5o
IgogI2luY2x1ZGUgIlRpbWVyLmgiCkBAIC0zNywxMCArMzgsNiBAQAogI2luY2x1ZGUgPHd0Zi90
ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9Vbmljb2RlLmg+
CiAKLSNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQotI2luY2x1ZGUgIkludFNpemUuaCIKLSNl
bmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBQYWdlOwpAQCAtMTIzLDYg
KzEyMCwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGNvbnN0IEludFNpemUmIHRl
eHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0QXV0
b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZTsgfQogI2VuZGlmCiAKKyAgICAgICAgLy8gT25seSBz
ZXQgYnkgTGF5b3V0IFRlc3RzLgorICAgICAgICB2b2lkIHNldFJlc29sdXRpb25PdmVycmlkZShj
b25zdCBJbnRTaXplJik7CisgICAgICAgIGNvbnN0IEludFNpemUmIHJlc29sdXRpb25PdmVycmlk
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJpZGU7IH0K
KwogICAgICAgICAvLyBVbmxpa2UgYXJlSW1hZ2VzRW5hYmxlZCwgdGhpcyBvbmx5IHN1cHByZXNz
ZXMgdGhlIG5ldHdvcmsgbG9hZCBvZgogICAgICAgICAvLyB0aGUgaW1hZ2UgVVJMLiAgQSBjYWNo
ZWQgaW1hZ2Ugd2lsbCBzdGlsbCBiZSByZW5kZXJlZCBpZiByZXF1ZXN0ZWQuCiAgICAgICAgIHZv
aWQgc2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJvb2wpOwpAQCAtNjg2LDYgKzY4Nyw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgSW50U2l6ZSBtX3RleHRBdXRvc2l6aW5nV2lu
ZG93U2l6ZU92ZXJyaWRlOwogICAgICAgICBib29sIG1fdGV4dEF1dG9zaXppbmdFbmFibGVkIDog
MTsKICNlbmRpZgorICAgICAgICBJbnRTaXplIG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3Zl
cnJpZGU7CiAgICAgICAgIGJvb2wgbV9pc1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCA6IDE7CiAg
ICAgICAgIGJvb2wgbV9pc0phdmFFbmFibGVkIDogMTsKICAgICAgICAgYm9vbCBtX2lzSmF2YUVu
YWJsZWRGb3JMb2NhbEZpbGVzIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuY3BwCmluZGV4IDhkOGYwY2I0MDkwMDM2NWU2MGE0Mzg0ZWNiMDk3NDA1NDc3MTVh
ZjkuLmJkYTcwYWQ4MTlkMjM4YmI0MmI4ZjFiZTk0ZTU4YzVhYjdmYWI3ODQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcApAQCAtOTcsNiArOTcsNyBAQCBJ
bnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OkJhY2t1cChQYWdlKiBwYWdlLCBTZXR0aW5ncyogc2V0
dGluZ3MpCiAgICAgLCBtX29yaWdpbmFsVGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUo
c2V0dGluZ3MtPnRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKCkpCiAgICAgLCBtX29y
aWdpbmFsVGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3Ioc2V0dGluZ3MtPnRleHRBdXRvc2l6
aW5nRm9udFNjYWxlRmFjdG9yKCkpCiAjZW5kaWYKKyAgICAsIG1fb3JpZ2luYWxSZXNvbHV0aW9u
T3ZlcnJpZGUoc2V0dGluZ3MtPnJlc29sdXRpb25PdmVycmlkZSgpKQogI2lmIEVOQUJMRShESUFM
T0dfRUxFTUVOVCkKICAgICAsIG1fb3JpZ2luYWxEaWFsb2dFbGVtZW50RW5hYmxlZChSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpkaWFsb2dFbGVtZW50RW5hYmxlZCgpKQogI2VuZGlmCkBAIC0xMzYs
NiArMTM3LDcgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVUbyhQYWdl
KiBwYWdlLCBTZXR0aW5ncyogc2V0dGluZ3MpCiAgICAgc2V0dGluZ3MtPnNldFRleHRBdXRvc2l6
aW5nV2luZG93U2l6ZU92ZXJyaWRlKG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVP
dmVycmlkZSk7CiAgICAgc2V0dGluZ3MtPnNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9y
KG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3Rvcik7CiAjZW5kaWYKKyAgICBz
ZXR0aW5ncy0+c2V0UmVzb2x1dGlvbk92ZXJyaWRlKG1fb3JpZ2luYWxSZXNvbHV0aW9uT3ZlcnJp
ZGUpOwogI2lmIEVOQUJMRShESUFMT0dfRUxFTUVOVCkKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzZXREaWFsb2dFbGVtZW50RW5hYmxlZChtX29yaWdpbmFsRGlhbG9nRWxlbWVudEVuYWJs
ZWQpOwogI2VuZGlmCkBAIC00MTMsNiArNDE1LDEzIEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6
c2V0VGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0
CiAjZW5kaWYKIH0KIAordm9pZCBJbnRlcm5hbFNldHRpbmdzOjpzZXRSZXNvbHV0aW9uT3ZlcnJp
ZGUoaW50IGRvdHNQZXJDU1NJbmNoSG9yaXpvbnRhbGx5LCBpbnQgZG90c1BlckNTU0luY2hWZXJ0
aWNhbGx5LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRG
b3JTZXR0aW5ncygpOworICAgIC8vIEFuIGVtcHR5IHNpemUgcmVzZXRzIHRoZSBvdmVycmlkZS4K
KyAgICBzZXR0aW5ncygpLT5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoSW50U2l6ZShkb3RzUGVyQ1NT
SW5jaEhvcml6b250YWxseSwgZG90c1BlckNTU0luY2hWZXJ0aWNhbGx5KSk7Cit9CisKIHZvaWQg
SW50ZXJuYWxTZXR0aW5nczo6c2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoZmxvYXQg
Zm9udFNjYWxlRmFjdG9yLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICNpZiBFTkFCTEUoVEVYVF9B
VVRPU0laSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRl
eCA3OGYzNmUwMTc2MWNlYmRjMzFkODk0MjE5ZDMyMGI2MDJhMTY5YjRmLi5mNjc5YzZmYzAyNzNl
ZDBjZjM5Yzg1ZjNlZTdhYjlhMDYzOTBlYzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaApAQCAtMjcsMTUgKzI3LDEyIEBACiAjZGVmaW5lIEludGVybmFsU2V0
dGluZ3NfaAogCiAjaW5jbHVkZSAiRWRpdGluZ0JlaGF2aW9yVHlwZXMuaCIKKyNpbmNsdWRlICJJ
bnRTaXplLmgiCiAjaW5jbHVkZSAiUmVmQ291bnRlZFN1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDx3
dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKLSNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQotI2lu
Y2x1ZGUgIkludFNpemUuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHR5cGVk
ZWYgaW50IEV4Y2VwdGlvbkNvZGU7CkBAIC03OSw2ICs3Niw3IEBAIHB1YmxpYzoKICAgICAgICAg
SW50U2l6ZSBtX29yaWdpbmFsVGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGU7CiAgICAg
ICAgIGZsb2F0IG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcjsKICNlbmRp
ZgorICAgICAgICBJbnRTaXplIG1fb3JpZ2luYWxSZXNvbHV0aW9uT3ZlcnJpZGU7CiAjaWYgRU5B
QkxFKERJQUxPR19FTEVNRU5UKQogICAgICAgICBib29sIG1fb3JpZ2luYWxEaWFsb2dFbGVtZW50
RW5hYmxlZDsKICNlbmRpZgpAQCAtMTI3LDYgKzEyNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFRleHRBdXRvc2l6aW5nRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICB2b2lkIHNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKGludCB3aWR0aCwgaW50
IGhlaWdodCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdGb250
U2NhbGVGYWN0b3IoZmxvYXQgZm9udFNjYWxlRmFjdG9yLCBFeGNlcHRpb25Db2RlJik7CisgICAg
dm9pZCBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoaW50IGRvdHNQZXJDU1NJbmNoSG9yaXpvbnRhbGx5
LCBpbnQgZG90c1BlckNTU0luY2hWZXJ0aWNhbGx5LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBzZXRFbmFibGVTY3JvbGxBbmltYXRvcihib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsK
ICAgICBib29sIHNjcm9sbEFuaW1hdG9yRW5hYmxlZChFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBzZXRDU1NFeGNsdXNpb25zRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IGYzNDY0
YmU5YTRlYzY0NTY0YjQzNDUwOTc4N2RmODQ3ZTNlZTgxY2UuLjI5ZWUzYTAyMWQ4NWNmMmI0NTFi
ZDNhZmQ1NmJmZGQ1ZTZiMGNiOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmlkbApAQCAtNTYsNiArNTYsNyBAQAogICAgIHZvaWQgc2V0VGV4dEF1dG9zaXpp
bmdFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAg
dm9pZCBzZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShpbiBsb25nIHdpZHRoLCBp
biBsb25nIGhlaWdodCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRUZXh0QXV0
b3NpemluZ0ZvbnRTY2FsZUZhY3RvcihpbiBmbG9hdCBmb250U2NhbGVGYWN0b3IpIHJhaXNlcyhE
T01FeGNlcHRpb24pOworICAgIHZvaWQgc2V0UmVzb2x1dGlvbk92ZXJyaWRlKGluIGxvbmcgZG90
c1BlckNTU0luY2hIb3Jpem9udGFsbHksIGluIGxvbmcgZG90c1BlckNTU0luY2hWZXJ0aWNhbGx5
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1hdG9y
KGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgYm9vbGVhbiBz
Y3JvbGxBbmltYXRvckVuYWJsZWQoKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNl
dENTU0V4Y2x1c2lvbnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXggMmQxOGM3NzNkNGM5
YWFlN2I3YTgzMjc2YWQyODgwOThjYzlhOTgwMS4uODE2YzA3ZThhYjIyYTljNDU0ZjAwMTg0MDk4
NjY1NjNjNWM5MjgyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJl
cy5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtOTUs
NiArOTUsNyBAQAogICAgICAgJ0VOQUJMRV9QT0lOVEVSX0xPQ0s9MScsCiAgICAgICAnRU5BQkxF
X1BST0dSRVNTX0VMRU1FTlQ9MScsCiAgICAgICAnRU5BQkxFX1FVT1RBPTEnLAorICAgICAgJ0VO
QUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZPTAnLAogICAgICAgJ0VOQUJMRV9SRVFVRVNUX0FO
SU1BVElPTl9GUkFNRT0xJywKICAgICAgICdFTkFCTEVfUlVCWT0xJywKICAgICAgICdFTkFCTEVf
U0FOREJPWD0xJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NvbmZpZ3VyYXRpb25z
L0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnIGIvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKaW5kZXggZWVlMGZlNDMxNzE2N2NlNWQzMmRlN2I3
OGM2NGNmNGJmZWJlMWQzNi4uNWEwZmQ2YWQ1NjcxMjc1Zjk1ZjI0OTA0ZTViNDMzNWJlOTgyMWI4
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURl
ZmluZXMueGNjb25maWcKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcKQEAgLTEyMCw2ICsxMjAsNyBAQCBFTkFCTEVfTk9USUZJQ0FU
SU9OU19tYWNvc3hfMTA5MCA9IEVOQUJMRV9OT1RJRklDQVRJT05TOwogRU5BQkxFX1BBR0VfVklT
SUJJTElUWV9BUEkgPSA7CiBFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCA9IEVOQUJMRV9QUk9HUkVT
U19FTEVNRU5UOwogRU5BQkxFX1FVT1RBID0gOworRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVF
UlkgPSA7CiBFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUgPSBFTkFCTEVfUkVRVUVTVF9B
TklNQVRJT05fRlJBTUU7CiBFTkFCTEVfU0NSSVBURURfU1BFRUNIID0gOwogRU5BQkxFX1NIQURP
V19ET00gPSA7CkBAIC0xNDQsNCArMTQ1LDQgQEAgRU5BQkxFX1dFQl9USU1JTkcgPSA7CiBFTkFC
TEVfV09SS0VSUyA9IEVOQUJMRV9XT1JLRVJTOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsK
IAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NF
TEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0Ip
ICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVf
Q1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykgJChFTkFC
TEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19ISUVSQVJDSElFUykgJChFTkFCTEVfQ1NTX0lN
QUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVf
Q1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJ
TkcpICQoRU5BQkxFX0NTU19TVElDS1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19WQVJJQUJMRVMp
ICQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChF
TkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkg
JChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykg
JChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQo
RU5BQkxFX0RJQUxPR19FTEVNRU5UKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJM
RV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVS
UykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChF
TkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lG
UkFNRV9TRUFNTEVTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRf
U1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVC
VUdHRVIpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdB
Q1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFC
TEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTElO
S19QUkVSRU5ERVIpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVO
QUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9N
SFRNTCkgJChFTkFCTEVfTUlDUk9EQVRBKSAkKEVOQUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQo
RU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAk
KEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QUk9HUkVTU19FTEVNRU5UKSAk
KEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxF
X1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dP
UktFUlMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVO
QUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JKQ19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZP
TlRTKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RFWFRfTk9USUZJQ0FUSU9O
U19PTkxZKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VORE9fTUFOQUdF
UikgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkg
JChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJ
TUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWFNMVCk7CitGRUFUVVJFX0RFRklORVMg
PSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykg
JChFTkFCTEVfQU5JTUFUSU9OX0FQSSkgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0hBTk5FTF9N
RVNTQUdJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05f
QlJFQUspICQoRU5BQkxFX0NTU19FWENMVVNJT05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChF
TkFCTEVfQ1NTX0hJRVJBUkNISUVTKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQo
RU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFC
TEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX1NU
SUNLWV9QT1NJVElPTikgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChFTkFCTEVfQ1NTM19DT05E
SVRJT05BTF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1F
X0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9F
TEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VM
RU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElBTE9HX0VMRU1F
TlQpICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RSQUdHQUJMRV9SRUdJT04p
ICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GVUxMU0NS
RUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxF
X0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5W
QVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVO
QUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lO
UFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVH
QUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAk
KEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElP
KSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9MSU5LX1BSRVJFTkRFUikgJChFTkFC
TEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJ
Q1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NSUNS
T0RBVEEpICQoRU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTkFWSUdBVE9SX0NP
TlRFTlRfVVRJTFMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJ
TElUWV9BUEkpICQoRU5BQkxFX1BST0dSRVNTX0VMRU1FTlQpICQoRU5BQkxFX1FVT1RBKSAkKEVO
QUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9G
UkFNRSkgJChFTkFCTEVfU0NSSVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVO
QUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlM
RV9TQ09QRUQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAk
KEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEVY
VF9OT1RJRklDQVRJT05TX09OTFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFC
TEVfVU5ET19NQU5BR0VSKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQo
RU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAk
KEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhj
Y29uZmlnIGIvU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNj
b25maWcKaW5kZXggY2UwYWY4NjgwNWQzNGJlOGI0MWNmYzlhZGY1NzM0N2ZmNGU1ZWUwZC4uMjRm
OThjNmExNWI5NTNlNGU1YzQzOTM4Y2Y1ZWFkOTQ1YmExMWE0OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKKysrIGIvU291
cmNlL1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKQEAgLTEy
NSw2ICsxMjUsNyBAQCBFTkFCTEVfUERGS0lUX1BMVUdJTl9tYWNvc3hfMTA4MCA9IDsKIEVOQUJM
RV9QREZLSVRfUExVR0lOX21hY29zeF8xMDkwID0gRU5BQkxFX1BERktJVF9QTFVHSU47CiBFTkFC
TEVfUFJPR1JFU1NfRUxFTUVOVCA9IEVOQUJMRV9QUk9HUkVTU19FTEVNRU5UOwogRU5BQkxFX1FV
T1RBID0gOworRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkgPSA7CiBFTkFCTEVfUkVRVUVT
VF9BTklNQVRJT05fRlJBTUUgPSBFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUU7CiBFTkFC
TEVfU0NSSVBURURfU1BFRUNIID0gOwogRU5BQkxFX1NIQURPV19ET00gPSA7CkBAIC0xNDksNCAr
MTUwLDQgQEAgRU5BQkxFX1dFQl9USU1JTkcgPSA7CiBFTkFCTEVfV09SS0VSUyA9IEVOQUJMRV9X
T1JLRVJTOwogRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAotRkVBVFVSRV9ERUZJTkVTID0g
JChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQo
RU5BQkxFX0FOSU1BVElPTl9BUEkpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NIQU5ORUxfTUVT
U0FHSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JS
RUFLKSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAk
KEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0hJRVJBUkNISUVTKSAkKEVOQUJMRV9D
U1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVO
QUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0NTU19TVElD
S1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5BQkxFX0NTUzNfQ09ORElU
SU9OQUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9I
QU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxF
TUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVN
RU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJQUxPR19FTEVNRU5U
KSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAk
KEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRlVMTFNDUkVF
Tl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9I
SURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFT
KSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FD
WV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChM
RUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJM
RV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9MSU5LX1BSRVJFTkRFUikgJChFTkFCTEVfTUFUSE1M
KSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5B
QkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NSUNST0RBVEEpICQo
RU5BQkxFX01VVEFUSU9OX09CU0VSVkVSUykgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJ
TFMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkp
ICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BST0dSRVNTX0VMRU1FTlQpICQoRU5B
QkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfU0NS
SVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VS
UykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQpICQoRU5BQkxF
X1NWRykgJChFTkFCTEVfU1ZHX0RPTV9PQkpDX0JJTkRJTkdTKSAkKEVOQUJMRV9TVkdfRk9OVFMp
ICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEVYVF9OT1RJRklDQVRJT05TX09O
TFkpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVU5ET19NQU5BR0VSKSAk
KEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1dFQkdMKSAkKEVO
QUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5H
KSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YU0xUKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQo
RU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVO
QUJMRV9BTklNQVRJT05fQVBJKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NB
R0lORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVB
SykgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChF
TkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19ISUVSQVJDSElFUykgJChFTkFCTEVfQ1NT
X0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFC
TEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZ
X1BPU0lUSU9OKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElP
TkFMX1JVTEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFO
RExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1F
TlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVO
VCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESUFMT0dfRUxFTUVOVCkg
JChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRFJBR0dBQkxFX1JFR0lPTikgJChF
TkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZVTExTQ1JFRU5f
QVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElE
REVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpICQoRU5BQkxFX0hJR0hfRFBJX0NBTlZBUykg
JChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JRlJBTUVfU0VBTUxFU1MpICQoRU5BQkxF
X0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRf
VFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0RBVEVUSU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lO
UFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRf
VFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lf
Q1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoTEVH
QUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVf
TElOS19QUkVGRVRDSCkgJChFTkFCTEVfTElOS19QUkVSRU5ERVIpICQoRU5BQkxFX01BVEhNTCkg
JChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJM
RV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTUlDUk9EQVRBKSAkKEVO
QUJMRV9NVVRBVElPTl9PQlNFUlZFUlMpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxT
KSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAk
KEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QUk9HUkVTU19FTEVNRU5UKSAkKEVOQUJM
RV9RVU9UQSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfUkVRVUVT
VF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hB
RE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkg
JChFTkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19ET01fT0JK
Q19CSU5ESU5HUykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcp
ICQoRU5BQkxFX1RFWFRfTk9USUZJQ0FUSU9OU19PTkxZKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xP
QURJTkcpICQoRU5BQkxFX1VORE9fTUFOQUdFUikgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJ
REVPX1RSQUNLKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9X
RUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFC
TEVfWFNMVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggNWRiNDQ0NzFjN2U5ZWE2NzI5NzQ0
MzkwOTRiMzU2ZTU4Nzc5OWIxYi4uZDc5MjQyMjRmNGVjNzQ2YWVlYjgxOTAwYTk2ZjFiYjY5ZDc0
YjQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMjQxLDYgKzI0MSw3IEBAIEVYUE9SVFMK
ICAgICAgICAgP3NldFN0b3JhZ2VCbG9ja2luZ1BvbGljeUBTZXR0aW5nc0BXZWJDb3JlQEBRQUVY
VzRTdG9yYWdlQmxvY2tpbmdQb2xpY3lAU2VjdXJpdHlPcmlnaW5AMkBAWgogICAgICAgICA/c2V0
U3VnZ2VzdGVkVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJDb3JlQEBRQUVYQUJWU3RyaW5nQFdU
RkBAQFoKICAgICAgICAgP3NldEVkaXRpbmdWYWx1ZUBIVE1MSW5wdXRFbGVtZW50QFdlYkNvcmVA
QFFBRVhBQlZTdHJpbmdAV1RGQEBAWgorICAgICAgICA/c2V0UmVzb2x1dGlvbk92ZXJyaWRlQFNl
dHRpbmdzQFdlYkNvcmVAQFFBRVhBQlZJbnRTaXplQDJAQFoKICAgICAgICAgP3NldHRpbmdzQERv
Y3VtZW50QFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAgICAgICAgP3NldHRpbmdzQEZy
YW1lQFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAgICAgICAgP3NldEZpeGVkRWxlbWVu
dHNMYXlvdXRSZWxhdGl2ZVRvRnJhbWVAU2V0dGluZ3NAV2ViQ29yZUBAUUFFWF9OQFoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xz
L3N5bWJvbHMuZmlsdGVyCmluZGV4IGU4MWE2NmE4ZWI4NTRkMGQwNGY0N2Q3OWRhZTY4NzhlYTMx
OGY0NjcuLjUwMmYwZDU1MjU0ZDhmNTYzOGMwZmU4Y2YwMThmNGIyYjk2YTI3YjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29s
cy9zeW1ib2xzLmZpbHRlcgpAQCAtMTc0LDYgKzE3NCw3IEBAIF9aTjdXZWJDb3JlOFNldHRpbmdz
MjRzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWRFYjsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRV
c2VzT3ZlcmxheVNjcm9sbGJhcnNFYjsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMjRzZXRTdG9yYWdl
QmxvY2tpbmdQb2xpY3lFTlNfMTRTZWN1cml0eU9yaWdpbjIxU3RvcmFnZUJsb2NraW5nUG9saWN5
RTsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMzdzZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVU
b0ZyYW1lRWI7CitfWk43V2ViQ29yZThTZXR0aW5nczIxc2V0UmVzb2x1dGlvbk92ZXJyaWRlRVJL
TlNfN0ludFNpemVFOwogX1pON1dlYkNvcmU5RnJhbWVWaWV3MTdwYWludENvbnRyb2xUaW50c0V2
OwogX1pON1dlYkNvcmU5RnJhbWVWaWV3MTlzY3JvbGxFbGVtZW50VG9SZWN0RVBOU183RWxlbWVu
dEVSS05TXzdJbnRSZWN0RTsKIF9aTjdXZWJDb3JlMjJSdW50aW1lRW5hYmxlZEZlYXR1cmVzMzFp
c011bHRpcGxlU2hhZG93U3VidHJlZXNFbmFibGVkRTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFr
ZS9PcHRpb25zRWZsLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKaW5kZXgg
MGYzNjZkNzk4ZDIwMGM2YTY5ODBiNDkwMDMzZDQxNDQyYWI4ZDNkZS4uNDkwNjA4NTcyM2U3ZTUz
ZjA1NTIxZDQwOTA1ODQxMmNjODNiOGFiOCAxMDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL09wdGlv
bnNFZmwuY21ha2UKKysrIGIvU291cmNlL2NtYWtlL09wdGlvbnNFZmwuY21ha2UKQEAgLTc4LDYg
Kzc4LDcgQEAgV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX05BVklHQVRP
Ul9DT05URU5UX1VUSUxTIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgT04pCiBXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfTkVUV09SS19JTkZPIE9OKQogV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFV
TFRfUE9SVF9WQUxVRShFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSBPTikKIFdFQktJVF9P
UFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9SRUdJT05TIE9OKQogV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FIE9OKQog
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1NIQURPV19ET00gT04pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2UgYi9Tb3VyY2UvY21h
a2UvV2ViS2l0RmVhdHVyZXMuY21ha2UKaW5kZXggYWRlZmQ4ODRlZmI2NmVmOTgxYTk3ZWU3NGYz
ZWIxZjU0N2RkZDk0NC4uOTk4NDY4MTA4ODI5MDZlY2MzNzZiOTg1ZjZmYTI1YWNkYTQxOGQ5NCAx
MDA2NDQKLS0tIGEvU291cmNlL2NtYWtlL1dlYktpdEZlYXR1cmVzLmNtYWtlCisrKyBiL1NvdXJj
ZS9jbWFrZS9XZWJLaXRGZWF0dXJlcy5jbWFrZQpAQCAtOTYsNiArOTYsNyBAQCBNQUNSTyAoV0VC
S0lUX09QVElPTl9CRUdJTikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfUVVPVEEg
IlRvZ2dsZSBRdW90YSBzdXBwb3J0IiBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5B
QkxFX1JFUEFJTlRfVEhST1RUTElORyAiVG9nZ2xlIHJlcGFpbnQgdGhyb3R0bGluZyBzdXBwb3J0
IiBPRkYpCiAgICAgV0VCS0lUX09QVElPTl9ERUZJTkUoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FICJUb2dnbGUgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHN1cHBvcnQiIE9GRikKKyAgICBX
RUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSAiVG9nZ2xl
IHJlc29sdXRpb24gbWVkaWEgcXVlcnkgc3VwcG9ydCIgT0ZGKQogICAgIFdFQktJVF9PUFRJT05f
REVGSU5FKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0ggIlRvZ2dsZSBTY3JpcHRlZCBTcGVlY2ggQVBJ
IHN1cHBvcnQiIE9GRikKICAgICBXRUJLSVRfT1BUSU9OX0RFRklORShFTkFCTEVfU0hBRE9XX0RP
TSAiVG9nZ2xlIFNoYWRvdyBET00gc3VwcG9ydCIgT0ZGKQogICAgIFdFQktJVF9PUFRJT05fREVG
SU5FKEVOQUJMRV9TSEFSRURfV09SS0VSUyAiVG9nZ2xlIFNoYXJlZFdvcmtlcnMgc3VwcG9ydCIg
T0ZGKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlY29uZmlnLmguY21ha2UgYi9Tb3VyY2UvY21h
a2Vjb25maWcuaC5jbWFrZQppbmRleCA1OTY2YjQ1ZmI5Y2M5NjM4Y2Y1OWUzYzc2ODdhZjFlYjRi
NzMwODMyLi40NGJlNGQyZjM1MTllNTBmMzhkMWFhYjIxYzE0NDZiYjIzZTNhMzdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvY21ha2Vjb25maWcuaC5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2Vjb25maWcu
aC5jbWFrZQpAQCAtOTEsNiArOTEsNyBAQAogI2NtYWtlZGVmaW5lMDEgRU5BQkxFX1FVT1RBCiAj
Y21ha2VkZWZpbmUwMSBFTkFCTEVfUkVQQUlOVF9USFJPVFRMSU5HCiAjY21ha2VkZWZpbmUwMSBF
TkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUKKyNjbWFrZWRlZmluZTAxIEVOQUJMRV9SRVNP
TFVUSU9OX01FRElBX1FVRVJZCiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfU0NSSVBURURfU1BFRUNI
CiAjY21ha2VkZWZpbmUwMSBFTkFCTEVfU0hBRE9XX0RPTQogI2NtYWtlZGVmaW5lMDEgRU5BQkxF
X1NIQVJFRF9XT1JLRVJTCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggMzM5N2U0NmFlZmVmMjFjNWE0OWIxNTJmOWRmMjc0NmEzOGFlNjBmMS4uNTg0
NmJhNDk0MTM4NWUwNzZiMDZjYjBmN2JjODFjZDcwZDFmNDY4YyAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTEw
LTIzICBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgdGhl
IFJFU09MVVRJT05fTUVESUFfUVVFUlkgZmVhdHVyZSBmbGFnLgorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtOgorICAgICAgICAqIHFtYWtlL21rc3BlY3MvZmVh
dHVyZXMvZmVhdHVyZXMucHJpOgorCiAyMDEyLTEwLTIzICBTaW1vbiBQZW5hICA8c3BlbmFAaWdh
bGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBBZGRpbmcgbXlzZWxmIGFzIGNvbW1pdHRl
ci4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQppbmRleCA1YTc3YmYxMTcx
YTZiOGRmNmM1NjA0MDNiZDcxNGEzNGIxMTljOGRkLi5hZjRjNDlhMzI3YzUzZWFlNjAwYWY5M2Q1
ZDllY2Y5N2YxNmY2YzNmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVh
dHVyZUxpc3QucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBt
CkBAIC0xMTEsNiArMTExLDcgQEAgbXkgKAogICAgICRwYWdlVmlzaWJpbGl0eUFQSVN1cHBvcnQs
CiAgICAgJHByb2dyZXNzVGFnU3VwcG9ydCwKICAgICAkcXVvdGFTdXBwb3J0LAorICAgICRyZXNv
bHV0aW9uTWVkaWFRdWVyeVN1cHBvcnQsCiAgICAgJHJlZ2lzdGVyUHJvdG9jb2xIYW5kbGVyU3Vw
cG9ydCwKICAgICAkcmVxdWVzdEFuaW1hdGlvbkZyYW1lU3VwcG9ydCwKICAgICAkc2NyaXB0ZWRT
cGVlY2hTdXBwb3J0LApAQCAtMzQ5LDYgKzM1MCw5IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICB7
IG9wdGlvbiA9PiAicXVvdGEiLCBkZXNjID0+ICJUb2dnbGUgUXVvdGEgc3VwcG9ydCIsCiAgICAg
ICBkZWZpbmUgPT4gIkVOQUJMRV9RVU9UQSIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRxdW90
YVN1cHBvcnQgfSwKIAorICAgIHsgb3B0aW9uID0+ICJyZXNvbHV0aW9uLW1lZGlhLXF1ZXJ5Iiwg
ZGVzYyA9PiAiVG9nZ2xlIHJlc29sdXRpb24gbWVkaWEgcXVlcnkgc3VwcG9ydCIsCisgICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZIiwgZGVmYXVsdCA9PiAoaXNF
ZmwoKSB8fCBpc1F0KCkpLCB2YWx1ZSA9PiBcJHJlc29sdXRpb25NZWRpYVF1ZXJ5U3VwcG9ydCB9
LAorCiAgICAgeyBvcHRpb24gPT4gInJlcXVlc3QtYW5pbWF0aW9uLWZyYW1lIiwgZGVzYyA9PiAi
VG9nZ2xlIFJlcXVlc3QgQW5pbWF0aW9uIEZyYW1lIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUiLCBkZWZhdWx0ID0+IChpc0FwcGxlTWFj
V2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzQmxhY2tCZXJyeSgpKSwgdmFsdWUg
PT4gXCRyZXF1ZXN0QW5pbWF0aW9uRnJhbWVTdXBwb3J0IH0sCiAKZGlmZiAtLWdpdCBhL1Rvb2xz
L3FtYWtlL21rc3BlY3MvZmVhdHVyZXMvZmVhdHVyZXMucHJpIGIvVG9vbHMvcW1ha2UvbWtzcGVj
cy9mZWF0dXJlcy9mZWF0dXJlcy5wcmkKaW5kZXggMzNjYzA0MDlmM2MzNjhiYzdiZjg1ZjQxZmEz
YTY4NTkwN2Q0OGNjYS4uYWU4NTZhNGE1MjdlOWJjMmQxMmY5OThlMTJkZmJlNzkyYjYwOWE0MCAx
MDA2NDQKLS0tIGEvVG9vbHMvcW1ha2UvbWtzcGVjcy9mZWF0dXJlcy9mZWF0dXJlcy5wcmkKKysr
IGIvVG9vbHMvcW1ha2UvbWtzcGVjcy9mZWF0dXJlcy9mZWF0dXJlcy5wcmkKQEAgLTg4LDYgKzg4
LDcgQEAgRkVBVFVSRV9ERUZBVUxUUyA9IFwKICAgICBFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQ
ST0xIFwKICAgICBFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVD0xIFwKICAgICBFTkFCTEVfUVVPVEE9
MCBcCisgICAgRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlk9MSBcCiAgICAgRU5BQkxFX1JF
UVVFU1RfQU5JTUFUSU9OX0ZSQU1FPTEgXAogICAgIEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0g9MCBc
CiAgICAgRU5BQkxFX1NIQURPV19ET009MCBcCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzkxNTBjODkzYWU1NTJiYzExOTU2
MGU4ZDBkM2E1NDZlNTkyNzQzMy4uNmMxZmQ0YWQ3N2VkYmMzZDdjNWRlN2JhYzllNzI4ZWVjY2Nm
ZmRjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTEwLTE1ICBLZW5uZXRoIFJvaGRlIENo
cmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgcmVzb2x1dGlvbiBtZWRpYSBxdWVyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTkwNzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0IChyZXNvbHV0aW9uOiB4KSBtZWRpYSBxdWVyeSB0byBlbnN1
cmUgY29tcGxpYW5jZQorICAgICAgICB3aXRoIHNwZWMgcGx1cyBwcm9wb3NlZCBkcHB4IHZhbHVl
cy4KKworICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sOiBBZGRlZC4KKwor
ICAgICAgICAqIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICAqIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisK
KyAgICAgICAgICAgIFNraXAgdGhlIHRlc3QgYXMgdGhlIHBvcnRzIGRvIG5vdCBlbmFibGUgQ1NT
IEltYWdlIFJlc29sdXRpb24uCisKIDIwMTItMTAtMjMgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFN1cHBvcnQgZnVsbCBtb250aCBuYW1lcyBpbiBEYXRlVGlt
ZUVkaXRFbGVtZW50LCBhbmQgdXNlIHRoZW0gaW4gaW5wdXRbdHlwZT1tb250aF0gYnkgZGVmYXVs
dApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDQ0ZTRlNzdhNTQ1NjIyY2VkNDdjOGMyNDc5ZjhjYzJiODZlNTMwZgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw0MCBAQAorQ1NTMyBtZWRpYSBxdWVyeSB0ZXN0OiByZXNv
bHV0aW9uIHF1ZXJ5IHdpdGggZHBweC4gVXNpbmcgc3R5bGUgZWxlbWVudCwgQG1lZGlhIGNzcyBy
dWxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBtYXRjaE1lZGlhKCco
cmVzb2x1dGlvbjogMGRwaSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJyht
aW4tcmVzb2x1dGlvbjogMGRwaSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEo
JyhtYXgtcmVzb2x1dGlvbjogMGRwaSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVk
aWEoJyhyZXNvbHV0aW9uOiAxLjVkcHB4KScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyByZXNvbHV0
aW9uRnJvbVN0eWxlKCkgaXMgMS41CitQQVNTIG1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uOiAyZHBw
eCknKS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgcmVzb2x1dGlvbkZyb21TdHlsZSgpIGlzIDIKK1BB
U1MgbWF0Y2hNZWRpYSgnKHJlc29sdXRpb246IDFkcHB4KScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFT
UyByZXNvbHV0aW9uRnJvbVN0eWxlKCkgaXMgMQorUEFTUyBtYXRjaE1lZGlhKCcocmVzb2x1dGlv
bjogMi4yNWRwcHgpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIHJlc29sdXRpb25Gcm9tU3R5bGUo
KSBpcyAyLjI1CitQQVNTIG1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uKScpLm1hdGNoZXMgaXMgdHJ1
ZQorUEFTUyBtYXRjaE1lZGlhKCcocmVzb2x1dGlvbjogMjE2ZHBpKScpLm1hdGNoZXMgaXMgdHJ1
ZQorUEFTUyBtYXRjaE1lZGlhKCcobWluLXJlc29sdXRpb246IDIxNmRwaSknKS5tYXRjaGVzIGlz
IHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKG1heC1yZXNvbHV0aW9uOiAyMTZkcGkpJykubWF0Y2hl
cyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uOiA4NWRwY20pJykubWF0Y2hl
cyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJyhtaW4tcmVzb2x1dGlvbjogODVkcGNtKScpLm1h
dGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcobWF4LXJlc29sdXRpb246IDg1ZHBjbSkn
KS5tYXRjaGVzIGlzIHRydWUKK1BBU1MgbWF0Y2hNZWRpYSgnKHJlc29sdXRpb24pJykubWF0Y2hl
cyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcocmVzb2x1dGlvbjogMjE2ZHBpKScpLm1hdGNo
ZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKHJlc29sdXRpb246IDI1NGRwaSknKS5tYXRj
aGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJyhtaW4tcmVzb2x1dGlvbjogMjE2ZHBpKScp
Lm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCcobWluLXJlc29sdXRpb246IDI1NGRw
aSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJyhtYXgtcmVzb2x1dGlvbjog
MjE2ZHBpKScpLm1hdGNoZXMgaXMgZmFsc2UKK1BBU1MgbWF0Y2hNZWRpYSgnKG1heC1yZXNvbHV0
aW9uOiAyNTRkcGkpJykubWF0Y2hlcyBpcyB0cnVlCitQQVNTIG1hdGNoTWVkaWEoJyhyZXNvbHV0
aW9uOiA4NWRwY20pJykubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1lZGlhKCcocmVzb2x1
dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1hdGNoTWVkaWEoJyhtaW4t
cmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNoZXMgaXMgdHJ1ZQorUEFTUyBtYXRjaE1lZGlhKCco
bWluLXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyBpcyBmYWxzZQorUEFTUyBtYXRjaE1l
ZGlhKCcobWF4LXJlc29sdXRpb246IDg1ZHBjbSknKS5tYXRjaGVzIGlzIGZhbHNlCitQQVNTIG1h
dGNoTWVkaWEoJyhtYXgtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIGlzIHRydWUKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRkM2RhZjk4NWY4
MzYwODNhN2NlODNjODFlYTkxZjc4ZmE0MGYwZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRtbApAQCAtMCwwICsxLDkwIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKworPGRpdiBpZD0iZGV0ZWN0b3IiPjwvZGl2Pgor
Cis8c3R5bGU+CisgICAgI2RldGVjdG9yIHsgd2lkdGg6IDEwcHg7IH0KKyAgICBAbWVkaWEgKHJl
c29sdXRpb246IDEuMDBkcHB4KSB7ICNkZXRlY3RvciB7IHdpZHRoOiAxMHB4OyB9IH0KKyAgICBA
bWVkaWEgKHJlc29sdXRpb246IDEuNTBkcHB4KSB7ICNkZXRlY3RvciB7IHdpZHRoOiAxNXB4OyB9
IH0KKyAgICBAbWVkaWEgKHJlc29sdXRpb246IDIuMDBkcHB4KSB7ICNkZXRlY3RvciB7IHdpZHRo
OiAyMHB4OyB9IH0KKyAgICBAbWVkaWEgKHJlc29sdXRpb246IDIuMjVkcHB4KSB7ICNkZXRlY3Rv
ciB7IHdpZHRoOiAyM3B4OyB9IH0KKzwvc3R5bGU+CisKKzxzY3JpcHQ+CisgICAgZGVzY3JpcHRp
b24oIkNTUzMgbWVkaWEgcXVlcnkgdGVzdDogcmVzb2x1dGlvbiBxdWVyeSB3aXRoIGRwcHguIFVz
aW5nIHN0eWxlIGVsZW1lbnQsIEBtZWRpYSBjc3MgcnVsZS4iKQorCisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIGZ1bmN0aW9uIHJlc29sdXRpb25Gcm9tU3R5bGUo
KSB7CisgICAgICAgICAgICB2YXIgd2lkdGggPSBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJkZXRlY3RvciIpKS53aWR0aDsKKyAgICAgICAgICAgIHN3aXRjaCAod2lk
dGgpIHsKKyAgICAgICAgICAgICAgICBjYXNlICIxMHB4IjoKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIDE7CisgICAgICAgICAgICAgICAgY2FzZSAiMTVweCI6CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiAxLjU7CisgICAgICAgICAgICAgICAgY2FzZSAiMjBweCI6CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAyOworICAgICAgICAgICAgICAgIGNhc2UgIjIzcHgiOgorICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gMi4yNTsKKyAgICAgICAgICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gdW5kZWZpbmVkOworICAgICAgICAgICAgfQorICAgICAg
ICB9CisKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uOiAwZHBpKScp
Lm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhtaW4t
cmVzb2x1dGlvbjogMGRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJl
KCJtYXRjaE1lZGlhKCcobWF4LXJlc29sdXRpb246IDBkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIp
OworCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJy
aWRlKDE0NCwgMTQ0KTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9u
OiAxLjVkcHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgicmVzb2x1
dGlvbkZyb21TdHlsZSgpIiwgIjEuNSIpOworCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDE5MiwgMTkyKTsKKyAgICAgICAgc2hvdWxkQmUo
Im1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uOiAyZHBweCknKS5tYXRjaGVzIiwgInRydWUiKTsKKyAg
ICAgICAgc2hvdWxkQmUoInJlc29sdXRpb25Gcm9tU3R5bGUoKSIsICIyIik7CisKKyAgICAgICAg
d2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoOTYsIDk2KTsK
KyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uOiAxZHBweCknKS5tYXRj
aGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoInJlc29sdXRpb25Gcm9tU3R5bGUoKSIs
ICIxIik7CisKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0aW9u
T3ZlcnJpZGUoMjE2LCAyMTYpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29s
dXRpb246IDIuMjVkcHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgi
cmVzb2x1dGlvbkZyb21TdHlsZSgpIiwgIjIuMjUiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNo
TWVkaWEoJyhyZXNvbHV0aW9uKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRC
ZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRpb246IDIxNmRwaSknKS5tYXRjaGVzIiwgInRydWUiKTsK
KyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhtaW4tcmVzb2x1dGlvbjogMjE2ZHBpKScp
Lm1hdGNoZXMiLCAidHJ1ZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKG1heC1y
ZXNvbHV0aW9uOiAyMTZkcGkpJykubWF0Y2hlcyIsICJ0cnVlIik7CisKKyAgICAgICAgc2hvdWxk
QmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uOiA4NWRwY20pJykubWF0Y2hlcyIsICJ0cnVlIik7
CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWluLXJlc29sdXRpb246IDg1ZHBjbSkn
KS5tYXRjaGVzIiwgInRydWUiKTsKKyAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhtYXgt
cmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworCisgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDIxNiwgMjU0KTsKKyAg
ICAgICAgLy8gTm9uLXNxdWFyZSBtdXN0IG5ldmVyIG1hdGNoLgorICAgICAgICBzaG91bGRCZSgi
bWF0Y2hNZWRpYSgnKHJlc29sdXRpb24pJykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBz
aG91bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRpb246IDIxNmRwaSknKS5tYXRjaGVzIiwgImZh
bHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcocmVzb2x1dGlvbjogMjU0ZHBp
KScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgn
KG1pbi1yZXNvbHV0aW9uOiAyMTZkcGkpJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNo
b3VsZEJlKCJtYXRjaE1lZGlhKCcobWluLXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIiwg
ImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWF4LXJlc29sdXRpb246
IDIxNmRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7CisgICAgICAgIHNob3VsZEJlKCJtYXRjaE1l
ZGlhKCcobWF4LXJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIiwgInRydWUiKTsKKworICAg
ICAgICAvLyBOb24tc3F1YXJlIG11c3QgbmV2ZXIgbWF0Y2guCisgICAgICAgIHNob3VsZEJlKCJt
YXRjaE1lZGlhKCcocmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKKyAg
ICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNo
ZXMiLCAiZmFsc2UiKTsKKworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKG1pbi1yZXNv
bHV0aW9uOiA4NWRwY20pJykubWF0Y2hlcyIsICJ0cnVlIik7CisgICAgICAgIHNob3VsZEJlKCJt
YXRjaE1lZGlhKCcobWluLXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyIsICJmYWxzZSIp
OworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKG1heC1yZXNvbHV0aW9uOiA4NWRwY20p
JykubWF0Y2hlcyIsICJmYWxzZSIpOworICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKG1h
eC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMiLCAidHJ1ZSIpOworICAgIH0KKzwvc2Ny
aXB0PgorCis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxOTZhZTNhZThkMjcxYzI2OGYyNGFjNGYyZTg2NTUw
NzQ4NGRjNmY2Li5lZDkyNmU1YWU3NGU4ZWFjZmE3YzBhYThkZDk0OGYzODhkODQ3ZmY3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE3
Miw2ICsxNzIsOSBAQCB3ZWJraXQub3JnL2IvNzUxMjMgd2ViaW50ZW50cy9pbnRlbnQtdGFnLmh0
bWwKICMgQ1NTIGltYWdlLXJlc29sdXRpb24gaXMgbm90IHlldCBlbmFibGVkLgogd2Via2l0Lm9y
Zy9iLzg1MjYyIGZhc3QvY3NzL2ltYWdlLXJlc29sdXRpb24KIAorIyBSZXNvbHV0aW9uIG1lZGlh
IHF1ZXJ5IGlzIG5vdCB5ZXQgZW5hYmxlZC4KK3dlYmtpdC5vcmcvYi84NTI2MiBmYXN0L21lZGlh
L21xLXJlc29sdXRpb24uaHRtbCBbIFNraXAgXQorCiAjIENTUyBpbWFnZS1vcmllbnRhdGlvbiBp
cyBub3QgeWV0IGVuYWJsZWQuCiB3ZWJraXQub3JnL2IvODkwNTIgZmFzdC9jc3MvaW1hZ2Utb3Jp
ZW50YXRpb24KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA2MjViMjU1ZGNjMDFkZjM4Mzg3MGYyNGM1NmNhNzdkN2EzZTJhNmY1Li41NzhmMDM4NzQ0OWE3
YjlmNWI5ZDA2YWZjMjAwNjg2ZjlhYTYyYzMxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtOTY4LDYgKzk2OCw5IEBAIHdlYmtpdC5vcmcvYi84NzkwOCBl
ZGl0aW5nL3VuZG9tYW5hZ2VyCiAjIENTUyBpbWFnZS1yZXNvbHV0aW9uIGlzIG5vdCB5ZXQgZW5h
YmxlZC4KIHdlYmtpdC5vcmcvYi84NTI2MiBmYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uCiAKKyMg
UmVzb2x1dGlvbiBtZWRpYSBxdWVyeSBpcyBub3QgeWV0IGVuYWJsZWQuCit3ZWJraXQub3JnL2Iv
ODUyNjIgZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwgWyBTa2lwIF0KKwogIyBDU1MgaW1h
Z2Utb3JpZW50YXRpb24gaXMgbm90IHlldCBlbmFibGVkLgogd2Via2l0Lm9yZy9iLzg5MDUyIGZh
c3QvY3NzL2ltYWdlLW9yaWVudGF0aW9uCiAKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5n
ZUxvZwppbmRleCAxMmE0MWZiNjFhYWVjZWYxM2VlYmYzYzQ4MzliNjIxNzY5YzljYWNhLi40MjRh
NGQwYWQyNWIxMGZjMTUxZWU1ZjI1ZThiNjY3ZjVmZDQ2YzM1IDEwMDY0NAotLS0gYS9DaGFuZ2VM
b2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMTAtMjMgIEtlbm5ldGgg
Um9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciByZXNvbHV0aW9uIG1lZGlhIHF1ZXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTA3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgUkVTT0xVVElPTl9N
RURJQV9RVUVSWSBmZWF0dXJlIGZsYWcuCisKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvT3B0aW9u
c0VmbC5jbWFrZToKKyAgICAgICAgKiBTb3VyY2UvY21ha2UvV2ViS2l0RmVhdHVyZXMuY21ha2U6
CisgICAgICAgICogU291cmNlL2NtYWtlY29uZmlnLmguY21ha2U6CisKKzIwMTItMTAtMTYgIEtl
bm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgorCisgICAgICAg
IEFkZCBzdXBwb3J0IGZvciByZXNvbHV0aW9uIG1lZGlhIHF1ZXJ5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTA3NworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xz
LmZpbHRlcjoKKworICAgICAgICAgICAgRXhwb3J0IHRoZSBXZWJDb3JlOjpTZXR0aW5ncyBzZXR0
aW5nLgorCiAyMDEyLTEwLTIyICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1lcmdlICJkb2NrZWQiIHN0YXRlIGludG8gdGhl
ICJkb2NrIHNpZGUiIGVudW0uCg==
</data>
<flag name="review"
          id="183642"
          type_id="1"
          status="+"
          setter="koivisto"
    />
    <flag name="commit-queue"
          id="183670"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>