<?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>88623</bug_id>
          
          <creation_ts>2012-06-07 22:45:36 -0700</creation_ts>
          <short_desc>Update range slider rendering for volume and playback position of new Chrome video controls</short_desc>
          <delta_ts>2012-06-19 17:23:30 -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>Media</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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>87683</dependson>
    
    <dependson>87835</dependson>
    
    <dependson>88297</dependson>
          <blocked>84672</blocked>
    
    <blocked>88724</blocked>
    
    <blocked>88743</blocked>
    
    <blocked>88818</blocked>
    
    <blocked>89050</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Silvia Pfeiffer">silviapf</reporter>
          <assigned_to name="Silvia Pfeiffer">silviapf</assigned_to>
          <cc>annacc</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>fischman</cc>
    
    <cc>jer.noble</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mikhail.pozdnyakov</cc>
    
    <cc>morrita</cc>
    
    <cc>scherkus</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>644349</commentid>
    <comment_count>0</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-07 22:45:36 -0700</bug_when>
    <thetext>This is the fourth patch for the introduction of the new Chromium video controls, see https://bugs.webkit.org/show_bug.cgi?id=84672 .

This patch updates the rendering of the range sliders for the new Chrome video controls. This includes the creation of a shadowPseudoId to be able to style the range sliders via CSS, and the rendering of the background and highlighted ranges.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644627</commentid>
    <comment_count>1</comment_count>
      <attachid>146556</attachid>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-08 06:39:32 -0700</bug_when>
    <thetext>Created attachment 146556
Full patch for layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644629</commentid>
    <comment_count>2</comment_count>
      <attachid>146557</attachid>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-08 06:45:13 -0700</bug_when>
    <thetext>Created attachment 146557
Use this for review

This the difference to the previous patch. It will not pass the test - refer to the full patch for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>644908</commentid>
    <comment_count>3</comment_count>
      <attachid>146557</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-06-08 11:53:15 -0700</bug_when>
    <thetext>Comment on attachment 146557
Use this for review

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

&gt; Source/WebCore/html/shadow/SliderThumbElement.cpp:375
&gt;      DEFINE_STATIC_LOCAL(AtomicString, sliderThumb, (&quot;-webkit-slider-thumb&quot;));
&gt; -    return sliderThumb;
&gt; +    DEFINE_STATIC_LOCAL(AtomicString, mediaSliderThumb, (&quot;-webkit-media-slider-thumb&quot;));

These strings shouldn&apos;t be defined in both functions (even though -webkit-slider-thumb already was), can you define each in an accessor function instead?

static const AtomicString&amp; sliderThumbShadowPseudoId()
{
    DEFINE_STATIC_LOCAL(const AtomicString, sliderThumb, (&quot;-webkit-slider-thumb&quot;));
    return sliderThumb;
}

etc.

&gt; Source/WebCore/rendering/RenderMediaControlsChromium.cpp:251
&gt; +    float thumbWidth = 12.0;

This magic value should be a named const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645303</commentid>
    <comment_count>4</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-09 05:38:09 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 146557 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146557&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/shadow/SliderThumbElement.cpp:375
&gt; &gt;      DEFINE_STATIC_LOCAL(AtomicString, sliderThumb, (&quot;-webkit-slider-thumb&quot;));
&gt; &gt; -    return sliderThumb;
&gt; &gt; +    DEFINE_STATIC_LOCAL(AtomicString, mediaSliderThumb, (&quot;-webkit-media-slider-thumb&quot;));
&gt; 
&gt; These strings shouldn&apos;t be defined in both functions (even though -webkit-slider-thumb already was), can you define each in an accessor function instead?
&gt; 
&gt; static const AtomicString&amp; sliderThumbShadowPseudoId()
&gt; {
&gt;     DEFINE_STATIC_LOCAL(const AtomicString, sliderThumb, (&quot;-webkit-slider-thumb&quot;));
&gt;     return sliderThumb;
&gt; }
&gt; 
&gt; etc.

Sure, no problem.

&gt; &gt; Source/WebCore/rendering/RenderMediaControlsChromium.cpp:251
&gt; &gt; +    float thumbWidth = 12.0;
&gt; 
&gt; This magic value should be a named const.

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645318</commentid>
    <comment_count>5</comment_count>
      <attachid>146700</attachid>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-09 07:19:14 -0700</bug_when>
    <thetext>Created attachment 146700
Full patch for layout tests - incl Eric&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645320</commentid>
    <comment_count>6</comment_count>
      <attachid>146701</attachid>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-09 07:20:26 -0700</bug_when>
    <thetext>Created attachment 146701
Patch for review with accessor functions

Patch for review with accessor functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647816</commentid>
    <comment_count>7</comment_count>
      <attachid>147263</attachid>
    <who name="Silvia Pfeiffer">silviapfeiffer1</who>
    <bug_when>2012-06-13 01:57:10 -0700</bug_when>
    <thetext>Created attachment 147263
Patch for cq</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648438</commentid>
    <comment_count>8</comment_count>
      <attachid>147263</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-13 14:01:35 -0700</bug_when>
    <thetext>Comment on attachment 147263
Patch for cq

Clearing flags on attachment: 147263

Committed r120246: &lt;http://trac.webkit.org/changeset/120246&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648448</commentid>
    <comment_count>9</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-13 14:06:38 -0700</bug_when>
    <thetext>patch landed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648768</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-13 21:06:35 -0700</bug_when>
    <thetext>It seems that 14 media tests need rebaselining for GTK and EFL ports after this patch.

The diffs look like:
-          RenderBlock {DIV} at (0,4) size 137x12
-          RenderBlock {DIV} at (137,4) size 12x12
+          RenderBlock {DIV} at (0,0) size 137x20
+            RenderBlock {DIV} at (0,0) size 12x12
+          RenderBlock {DIV} at (137,0) size 12x12</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649061</commentid>
    <comment_count>11</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-14 04:08:10 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; It seems that 14 media tests need rebaselining for GTK and EFL ports after this patch.
&gt; 
&gt; The diffs look like:
&gt; -          RenderBlock {DIV} at (0,4) size 137x12
&gt; -          RenderBlock {DIV} at (137,4) size 12x12
&gt; +          RenderBlock {DIV} at (0,0) size 137x20
&gt; +            RenderBlock {DIV} at (0,0) size 12x12
&gt; +          RenderBlock {DIV} at (137,0) size 12x12

It&apos;s more likely cause by the patches landed in bugs 87683 and 87835. Do the controls still look right?

I have more patches coming for the Chromium video controls and didn&apos;t think they influenced the GTK or EFL ports video rendering. For Chromium I have turned these tests off in TestExpectations to be rebased after my patching is finished.

Is there a way for me to see the layout test results on the GTK and EFL platforms?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650727</commentid>
    <comment_count>12</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-06-15 21:38:53 -0700</bug_when>
    <thetext>This patch completely broke rendering of the sliders on the Mac port. I&apos;m going to look into it for a bit, but if I can&apos;t sort it out, I will likely roll it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650742</commentid>
    <comment_count>13</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-15 23:27:18 -0700</bug_when>
    <thetext>Do you have an example? A bug number?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650757</commentid>
    <comment_count>14</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-16 01:03:09 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; This patch completely broke rendering of the sliders on the Mac port. I&apos;m going to look into it for a bit, but if I can&apos;t sort it out, I will likely roll it out.

I just built the MiniBrowser on the Mac and I used this page for testing: http://www.html5tutorial.info/html5-range.php . It rendered ok for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650759</commentid>
    <comment_count>15</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-06-16 01:06:24 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #12)
&gt; &gt; This patch completely broke rendering of the sliders on the Mac port. I&apos;m going to look into it for a bit, but if I can&apos;t sort it out, I will likely roll it out.
&gt; 
&gt; I just built the MiniBrowser on the Mac and I used this page for testing: http://www.html5tutorial.info/html5-range.php . It rendered ok for me.

That one looks fine to me, too. Check out media/video-controls.html. I&apos;ll post screenshots tomorrow if need be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650763</commentid>
    <comment_count>16</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-16 01:11:24 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; This patch completely broke rendering of the sliders on the Mac port. I&apos;m going to look into it for a bit, but if I can&apos;t sort it out, I will likely roll it out.
&gt; &gt; 
&gt; &gt; I just built the MiniBrowser on the Mac and I used this page for testing: http://www.html5tutorial.info/html5-range.php . It rendered ok for me.
&gt; 
&gt; That one looks fine to me, too. Check out media/video-controls.html. I&apos;ll post screenshots tomorrow if need be.

Hmm, works for me with MiniBrowser. Do send screenshots. If it&apos;s the CSS, I think I have a better solution now that Bug 62218 is fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650772</commentid>
    <comment_count>17</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2012-06-16 02:25:45 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #15)
&gt; &gt; (In reply to comment #14)
&gt; &gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; &gt; This patch completely broke rendering of the sliders on the Mac port. I&apos;m going to look into it for a bit, but if I can&apos;t sort it out, I will likely roll it out.
&gt; &gt; &gt; 
&gt; &gt; &gt; I just built the MiniBrowser on the Mac and I used this page for testing: http://www.html5tutorial.info/html5-range.php . It rendered ok for me.
&gt; &gt; 
&gt; &gt; That one looks fine to me, too. Check out media/video-controls.html. I&apos;ll post screenshots tomorrow if need be.
&gt; 
&gt; Hmm, works for me with MiniBrowser. Do send screenshots. If it&apos;s the CSS, I think I have a better solution now that Bug 62218 is fixed.

Bug with screenshots in https://bugs.webkit.org/show_bug.cgi?id=89280</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653028</commentid>
    <comment_count>18</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-19 17:23:30 -0700</bug_when>
    <thetext>The FIXME added in this patch will be properly addressed in https://bugs.webkit.org/show_bug.cgi?id=89090</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146556</attachid>
            <date>2012-06-08 06:39:32 -0700</date>
            <delta_ts>2012-06-09 07:19:01 -0700</delta_ts>
            <desc>Full patch for layout tests</desc>
            <filename>bug-88623-20120608233930.patch</filename>
            <type>text/plain</type>
            <size>63825</size>
            <attacher name="Silvia Pfeiffer">silviapf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5ODEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZlZTJhNDZmZWI2NzZi
N2U4MTQ4NzI1MzAzMzM1ZmIyZmZhZTM1Yy4uY2ViMmI3ZWQ5NzUyOWM4ZWU2YWJhYjlmNjA0ZTBm
OGZjMmE3NDJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxOSBAQAorMjAxMi0wNi0wOCAgU2ls
dmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFVwZGF0ZSBy
YW5nZSBzbGlkZXJzIHJlbmRlcmluZyBmb3Igdm9sdW1lIGFuZCBwbGF5YmFjayBwb3NpdGlvbiBv
ZiBuZXcgQ2hyb21lIHZpZGVvIGNvbnRyb2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg2MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGZpbmFsIHBhdGNoIHdpbGwgY29udGFp
biB0aGUgcmViYXNlbGluZWQgdGVzdHMuCisKKyAgICAgICAgVGhlIENocm9tZSB2aWRlbyBjb250
cm9scyBhcmUgcmVjZWl2aW5nIGEgdmlzdWFsIHVwZGF0ZS4gVGhpcyBwYXRjaCBjb250YWlucyB1
cGRhdGVzIHRvIHRoZQorICAgICAgICByZW5kZXJpbmcgb2YgdGhlIHJhbmdlIHNsaWRlcnMgZm9y
IHRoZSBwbGF5YmFjayBwb3NpdGlvbiBhbmQgdGhlIHZvbHVtZS4gVGhpcyBpbmNsdWRlcyB0aGUK
KyAgICAgICAgY3JlYXRpb24gb2YgYSBzaGFkb3dQc2V1ZG9JZCB0byBiZSBhYmxlIHRvIHN0eWxl
IHRoZSByYW5nZSBzbGlkZXJzIHZpYSBDU1MsIHRoZSByZW5kZXJpbmcKKyAgICAgICAgb2YgdGhl
IHNsaWRlciBiYWNrZ3JvdW5kIGFuZCB0aGUgaGlnaGxpZ2h0ZWQgcmFuZ2VzLgorCisgICAgICAg
ICogY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3M6CisgICAgICAgIChpbnB1dFt0eXBlPSJy
YW5nZSJdOjotd2Via2l0LW1lZGlhLXNsaWRlci1jb250YWluZXIpOgorICAgICAgICBBZGp1c3Qg
dGhlIHN0eWxpbmcgb2YgdGhlIHNsaWRlciBjb250YWluZXIgYmFja2dyb3VuZHMuCisgICAgICAg
IChpbnB1dFt0eXBlPSJyYW5nZSJdOjotd2Via2l0LW1lZGlhLXNsaWRlci10aHVtYik6CisgICAg
ICAgIEFkanVzdCB0aGUgc3R5bGluZyBvZiB0aGUgc2xpZGVyIHRodW1icy4KKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2xp
ZGVyVGh1bWJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIEFkZCBhIGRpZmZlcmVu
dCBDU1MgcHNldWRvLWNsYXNzIG5hbWUgdG8gdGhlIG1lZGlhIHNsaWRlciB0aHVtYnMuCisgICAg
ICAgIChXZWJDb3JlOjpUcmFja0xpbWl0ZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAg
ICAgIEFkZCBhIGRpZmZlcmVudCBDU1MgcHNldWRvLWNsYXNzIG5hbWUgdG8gdGhlIG1lZGlhIHNs
aWRlciB0aHVtYnMuCisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJDb250YWluZXJFbGVtZW50Ojpz
aGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIEFkZCBhIGRpZmZlcmVudCBDU1MgcHNldWRvLWNsYXNz
IG5hbWUgdG8gdGhlIG1lZGlhIHNsaWRlciBiYWNrZ3JvdW5kIGNvbnRhaW5lci4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnBhaW50Um91bmRlZFNsaWRlckJhY2tncm91bmQpOgorICAgICAgICBBZGQgZnVuY3Rp
b24gdG8gZHJhdyByb3VuZGVkIGJhY2tncm91bmQgb2Ygc2xpZGVycyBpbiBhIGRhcmsgY29sb3Iu
CisgICAgICAgIChXZWJDb3JlOjpwYWludFNsaWRlclJhbmdlSGlnaGxpZ2h0KToKKyAgICAgICAg
QWRkIGZ1bmN0aW9uIHRvIGRyYXcgYSBoaWdobGlnaHRlZCBncmV5IHJlZ2lvbiBvbiB0aGUgc2xp
ZGVycywgd2hpY2ggaXMgcm91bmRlZCBvbmx5IGF0CisgICAgICAgIGl0cyBlbmRzLgorICAgICAg
ICAoV2ViQ29yZTo6cGFpbnRNZWRpYVNsaWRlcik6CisgICAgICAgIFVwZGF0ZSB0aGUgYmFja2dy
b3VuZCBhbmQgYnVmZmVyZWQgcmFuZ2UgcmVuZGVyaW5ncyBvbiB0aGUgcGxheWJhY2sgcG9zaXRp
b24gc2xpZGVyIGJ5IG1ha2luZworICAgICAgICB1c2Ugb2YgdGhlIG5ldyBoZWxwZXIgZnVuY3Rp
b25zLgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlcik6CisgICAgICAg
IFVwZGF0ZSB0aGUgYmFja2dyb3VuZCBhbmQgYnVmZmVyZWQgcmFuZ2UgcmVuZGVyaW5ncyBvbiB0
aGUgdm9sdW1lIHNsaWRlciBieSBtYWtpbmcKKyAgICAgICAgdXNlIG9mIHRoZSBuZXcgaGVscGVy
IGZ1bmN0aW9ucy4KKworMjAxMi0wNi0wNiAgU2lsdmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIENoYW5nZSB0aGUgc3R5bGluZyBvZiB0aGUgQ2hyb21pdW0g
dmlkZW8gY29udHJvbHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04ODI5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cy4gKGZpbmFsIHBhdGNoIHdpbGwgY29udGFpbiB0aGUgcmViYXNl
bGluZWQgdGVzdHMpCisKKyAgICAgICAgVGhlIENocm9tZSB2aWRlbyBjb250cm9scyBhcmUgcmVj
ZWl2aW5nIGEgdmlzdWFsIHVwZGF0ZS4gVGhpcyBwYXRjaCBpbmNsdWRlcyBDU1MgY2hhbmdlcywK
KyAgICAgICAgdGhlIHJlbW92YWwgb2YgdGhlIG5vdyBubyBsb25nZXIgbmVlZGVkIGNvbnRyb2xz
IGJhY2tncm91bmQgZGl2LCBhbmQgdGhlIGludHJvZHVjdGlvbiBvZgorICAgICAgICBuZXcgaW1h
Z2VzIGZvciB0aGUgYnV0dG9ucy4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzQ2hyb21p
dW0uY3NzOgorICAgICAgICAoYXVkaW8pOgorICAgICAgICBBZGp1c3QgaGVpZ2h0IG9mIGF1ZGlv
IGNvbnRyb2xzLgorICAgICAgICAoOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzKToKKyAgICAgICAg
VXNlIGZsZXhib3ggb24gbWVkaWEgY29udHJvbHMgc2hhZG93IERPTS4KKyAgICAgICAgKGF1ZGlv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xvc3VyZSwgdmlkZW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtZW5jbG9zdXJlKToKKyAgICAgICAgQWRqdXN0IGhlaWdodCwgbWF4LXdpZHRoLCB0
ZXh0LWluZGVudCBhbmQgYm94LXNpemluZywgYW5kIHJlc2V0IHBhZGRpbmcgdG8gMC4KKyAgICAg
ICAgKHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xvc3VyZSk6CisgICAgICAgIFVz
ZSA1cHggcGFkZGluZyBvbmx5IGZvciB2aWRlbyBjb250cm9scyBhbmQgYWRqdXN0IGhlaWdodCBh
Y2NvcmRpbmdseS4KKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVs
LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCk6CisgICAgICAgIFVzZSBmbGV4
Ym94IG9uIHBhbmVsLCBhZGp1c3QgYm90dG9tIGFsaWdubWVudCwgaGVpZ2h0LCBiYWNrZ3JvdW5k
IGNvbG9yIGFuZCBib3JkZXIgcmFkaXVzLgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtbXV0ZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUt
YnV0dG9uKToKKyAgICAgICAgRGlzcGxheSBidXR0b25zIGlubGluZSB3aXRoIGZpeGVkIHdpZHRo
IGFuZCBoZWlnaHQsIHZlcnRpY2FsbHkgY2VudGVyZWQsIG5vIHBhZGRpbmcgYW5kCisgICAgICAg
IDZweCBzcGFjZSB0byBuZXh0IGNvbnRyb2xzIGVsZW1lbnQgKHRoaXMgd2lsbCBiZSAxNXB4IGlu
Y2wgdGhlIHNwYWNlIGluIHRoZSBpbWFnZSkuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1wbGF5LWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxh
eS1idXR0b24pOgorICAgICAgICBEaXNwbGF5IGJ1dHRvbnMgaW5saW5lIHdpdGggZml4ZWQgd2lk
dGggYW5kIGhlaWdodCwgdmVydGljYWxseSBjZW50ZXJlZCwgbm8gcGFkZGluZyBhbmQKKyAgICAg
ICAgOXB4IHNwYWNlIHRvIG5leHQgY29udHJvbHMgZWxlbWVudCAodGhpcyB3aWxsIGJlIDE1cHgg
aW5jbCB0aGUgc3BhY2UgaW4gdGhlIGltYWdlKS4KKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSk6CisgICAgICAgIERpc3BsYXkgdGV4dCBhcyBi
bG9jaywgd2l0aG91dCBicm9kZXIsIGFkanVzdGVkIGhlaWdodCwgZm9udC1mYW1pbHksIGZvbnQt
c2l6ZSBhbmQgOXB4IHNwYWNlCisgICAgICAgIHRvIG5leHQgY29udHJvbHMgZWxlbWVudCAodGhp
cyB3aWxsIGJlIDE1cHggaW5jbCB0aGUgc3BhY2UgaW4gdGhlIGltYWdlKS4KKyAgICAgICAgKGF1
ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLCB2aWRlbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy10aW1lbGluZSk6CisgICAgICAgIEFkanVzdCBoZWlnaHQsIHBhZGRpbmcsIGJh
Y2tncm91bmQtY29sb3IsIG1pbi13ZGl0aCBhbmQgMTVweCBzcGFjZSB0byBuZXh0IGNvbnRyb2xz
IGVsZW1lbnQuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUt
c2xpZGVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyKToKKyAg
ICAgICAgQWRqdXN0IGhlaWdodCwgbWF4LSBhbmQgbWluLXdpZHRoLCBiYWNrZ3JvdW5kLWNvbG9y
IGFuZCAxNXB4IHNwYWNlIHRvIG5leHQgY29udHJvbHMgZWxlbWVudC4KKyAgICAgICAgKiBodG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06Ok1lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW0pOgorICAgICAgICBSZW1vdmUgdGltZWxpbmUgY29udGFpbmVyLCB3aGlj
aCBpcyBub3QgbmVjZXNzYXJ5IGFueSBsb25nZXIgYmVjYXVzZSBvZiB0aGUgdXNlIG9mIGZsZXhi
b3guCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpj
cmVhdGUpOgorICAgICAgICBSZW1vdmUgdGltZWxpbmUgY29udGFpbmVyLCB3aGljaCBpcyBub3Qg
bmVjZXNzYXJ5IGFueSBsb25nZXIgYmVjYXVzZSBvZiB0aGUgdXNlIG9mIGZsZXhib3guCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpzZXRNZWRpYUNv
bnRyb2xsZXIpOgorICAgICAgICBSZW1vdmUgdGltZWxpbmUgY29udGFpbmVyLCB3aGljaCBpcyBu
b3QgbmVjZXNzYXJ5IGFueSBsb25nZXIgYmVjYXVzZSBvZiB0aGUgdXNlIG9mIGZsZXhib3guCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpyZXNldCk6
CisgICAgICAgIFNob3cgdGhlIHRpbWVsaW5lIGluc3RlYWQgb2YgdGhlIHRpbWVsaW5lIGNvbnRh
aW5lciB3aGVuIHJlc2V0dGluZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW06OnJlcG9ydGVkRXJyb3IpOgorICAgICAgICBIaWRlIHRoZSB0aW1lbGlu
ZSBpbnN0ZWFkIG9mIHRoZSB0aW1lbGluZSBjb250YWluZXIgd2hlbiBydW5uaW5nIGludG8gYW4g
ZXJyb3IuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpwYWludE1lZGlhTXV0ZUJ1dHRvbik6CisgICAgICAgIElu
dHJvZHVjZSBuZXcgaW1hZ2UgcmVzb3VyY2VzIGZvciB0aGUgbXV0ZSBidXR0b24gYW5kIGFkanVz
dCBpdCBiYXNlZCBvbiB2b2x1bWUgbGV2ZWxzLgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRNZWRp
YVBsYXlCdXR0b24pOgorICAgICAgICBJbnRyb2R1Y2UgbmV3IGltYWdlIHJlc291cmNlcyBmb3Ig
dGhlIHBsYXkgYnV0dG9uLgorICAgICAgICAoV2ViQ29yZTo6Z2V0TWVkaWFTbGlkZXJUaHVtYik6
CisgICAgICAgIEludHJvZHVjZSBuZXcgaW1hZ2UgcmVzb3VyY2VzIGZvciB0aGUgcG9zaXRpb24g
c2xpZGVyIHRodW1iLgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRo
dW1iKToKKyAgICAgICAgSW50cm9kdWNlIG5ldyBpbWFnZSByZXNvdXJjZXMgZm9yIHRoZSB2b2x1
bWUgc2xpZGVyIHRodW1iLgorICAgICAgICBSZW1vdmUgdGltZWxpbmUgY29udGFpbmVyIHJlbmRl
cmluZy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6cGFp
bnRNZWRpYUNvbnRyb2xzUGFydCk6CisgICAgICAgIEFkZCB0aW1lbGluZSBjb250YWluZXIgcGFp
bnRpbmcgdG8gdGhlICJub3QgcmVhY2hlZCIgZWxlbWVudHMuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgUHJvdmlkZSBzaXplIHNldHRpbmdzIGZvciB0aGUgcG9zaXRpb24gYW5kIHZvbHVt
ZSBzbGlkZXJzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVt
OjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZSk6CisgICAgICAgIENhbGN1bGF0ZSBjb3JyZWN0
IHdpZHRoIGFuZCBoZWlnaHQgc2V0dGluZ3MgZm9yIHRoZSBuZXcgaW1hZ2UgcmVzb3VyY2VzIG9m
IHRoZSBwb3NpdGlvbiBhbmQgdm9sdW1lCisgICAgICAgIHNsaWRlciB0aHVtYnMuCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaDoKKyAgICAgICAgKFJlbmRlclRo
ZW1lQ2hyb21pdW1NYWMpOgorICAgICAgICBSZW1vdmUgdGltZWxpbmUgY29udGFpbmVyIHJlbmRl
cmluZyAoaS5lLiB0aGUgbWVkaWEgY29udHJvbHMgYmFja2dyb3VuZCkuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW06CisgICAgICAgIFJlbW92ZSB0aW1lbGlu
ZSBjb250YWluZXIgcmVuZGVyaW5nIChpLmUuIHRoZSBtZWRpYSBjb250cm9scyBiYWNrZ3JvdW5k
KS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwOgorICAg
ICAgICBSZW1vdmUgdGltZWxpbmUgY29udGFpbmVyIHJlbmRlcmluZyAoaS5lLiB0aGUgbWVkaWEg
Y29udHJvbHMgYmFja2dyb3VuZCkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1Ta2lhLmg6CisgICAgICAgIChSZW5kZXJUaGVtZUNocm9taXVtU2tpYSk6CisgICAgICAg
IFJlbW92ZSB0aW1lbGluZSBjb250YWluZXIgcmVuZGVyaW5nIChpLmUuIHRoZSBtZWRpYSBjb250
cm9scyBiYWNrZ3JvdW5kKS4KKworMjAxMi0wNi0wNSAgU2lsdmlhIFBmZWlmZmVyICA8c2lsdmlh
cGZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENoYW5nZSB0aGUgdm9sdW1lIHNsaWRlciB0byBo
b3Jpem9udGFsIHJlbmRlcmluZyBmb3IgQ2hyb21lIHZpZGVvIGNvbnRyb2xzLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc4MzUKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuICh2aXN1
YWwgdXBkYXRlIHdpbGwgY29udGFpbiByZWJhc2VsaW5lZCB0ZXN0cykKKworICAgICAgICBUaGUg
Q2hyb21lIHZpZGVvIGNvbnRyb2xzIGFyZSByZWNlaXZpbmcgYSB2aXN1YWwgdXBkYXRlLiBUaGUg
dm9sdW1lIHNsaWRlciBpcyBpbmNsdWRlZCBpbnRvCisgICAgICAgIHRoZSBjb250cm9scyB3aXRo
IGhvcml6b250YWwgcmVuZGVyaW5nLCB0aGUgdm9sdW1lIHNsaWRlciBjb250YWluZXIgaXMgcmVt
b3ZlZC4gVGhlIHZpc3VhbAorICAgICAgICB1cGRhdGUgaXRzZWxmIGlzIGluIGEgc2VwYXJhdGUg
cGF0Y2guCisKKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzczoKKyAgICAg
ICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uLCB2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbik6CisgICAgICAgIFJlbW92ZWQgcmVsYXRp
dmUgcG9zaXRpb25pbmcgdG8gcmVuZGVyIGFsbCBjb250cm9scyBlbGVtZW50cyBlcXVhbGx5IGlu
IERPTSBvcmRlci4KKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXkt
YnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbik6CisgICAg
ICAgIFJlbW92ZWQgYWJzb2x1dGUgcG9zaXRpb25pbmcgdG8gcmVuZGVyIGFsbCBjb250cm9scyBl
bGVtZW50cyBlcXVhbGx5IGluIERPTSBvcmRlci4KKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdGltZWxpbmUtY29udGFpbmVyKToKKyAgICAgICAgUmVtb3ZlZCBhYnNvbHV0ZSBwb3Np
dGlvbmluZyB0byByZW5kZXIgYWxsIGNvbnRyb2xzIGVsZW1lbnRzIGVxdWFsbHkgaW4gRE9NIG9y
ZGVyLgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRl
ci1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIt
Y29udGFpbmVyKToKKyAgICAgICAgUmVtb3ZlZCB2b2x1bWUgc2xpZGVyIGNvbnRhaW5lciAtIGl0
J3Mgbm90IG5lY2Vzc2FyeSBhbnkgbW9yZS4KKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSk6CisgICAgICAgIFJlbW92ZSBmbGV4Ym94IGFuZCBp
bnRyb2R1Y2UgaW5saW5lIGRpc3BsYXkgdG8gYWx3YXlzIGRpc3BsYXkgdGhpcyBmaWVsZC4KKyAg
ICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIsIHZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIpOgorICAgICAgICBSZW1vdmVk
IGFic29sdXRlIHBvc2l0aW9uaW5nIHRvIHJlbmRlciBhbGwgY29udHJvbHMgZWxlbWVudHMgZXF1
YWxseSBpbiBET00gb3JkZXIuCisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290
RWxlbWVudENocm9taXVtOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKToKKyAgICAg
ICAgUmVtb3ZlZCB2b2x1bWUgc2xpZGVyIGNvbnRhaW5lciAtIGl0J3Mgbm90IG5lY2Vzc2FyeSBh
bnkgbW9yZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW06OmNyZWF0ZSk6CisgICAgICAgIEFwcGVuZGVkIHRoZSB2b2x1bWUgc2xpZGVyIGFuZCB0aGUg
bXV0ZSBidXR0b24gZGlyZWN0bHkgdG8gdGhlIHBhbmVsLCByZW1vdmVkIHZvbHVtZSBzbGlkZXIg
Y29udGFpbmVyLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bTo6c2V0TWVkaWFDb250cm9sbGVyKToKKyAgICAgICAgUmVtb3ZlZCB2b2x1bWUgc2xpZGVy
IGNvbnRhaW5lci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW06OnJlcG9ydGVkRXJyb3IpOgorICAgICAgICBSZW1vdmVkIHZvbHVtZSBzbGlkZXIgY29u
dGFpbmVyLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bTo6c2hvd1ZvbHVtZVNsaWRlcik6CisgICAgICAgIFJlbW92ZWQgdm9sdW1lIHNsaWRlciBjb250
YWluZXIuCisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtKToKKyAgICAgICAgUmVtb3ZlZCB2b2x1bWUgc2xpZGVyIGNvbnRhaW5lci4K
KyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6aGFzVmVydGljYWxBcHBlYXJhbmNlKToKKyAgICAgICAgQWxsb3cgdXNlIG9mIGhv
cml6b250YWwgbWVkaWEgdm9sdW1lIHNsaWRlci4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNs
aWRlclRodW1iOjpsYXlvdXQpOgorICAgICAgICBSZXVzZSBoYXNWZXJ0aWNhbEFwcGVhcmFuY2Ug
ZnVuY3Rpb24uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBh
aW50TWVkaWFWb2x1bWVTbGlkZXIpOgorICAgICAgICBDaGFuZ2UgbGluZSBkcmF3aW5nIGZyb20g
dmVydGljYWwgdG8gaG9yaXpvbnRhbC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjp1c2VzVmVydGljYWxWb2x1bWVTbGlk
ZXIpOgorICAgICAgICBBZGQgdXNlc1ZlcnRpY2FsVm9sdW1lU2xpZGVyIGZ1bmN0aW9uIHRvIGFs
bG93IGhvcml6b250YWwgdm9sdW1lIHNsaWRlcnMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1NYWMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21p
dW1NYWM6OnVzZXNWZXJ0aWNhbFZvbHVtZVNsaWRlcik6CisgICAgICAgIEFkZCB1c2VzVmVydGlj
YWxWb2x1bWVTbGlkZXIgZnVuY3Rpb24gdG8gYWxsb3cgaG9yaXpvbnRhbCB2b2x1bWUgc2xpZGVy
cy4KKyAgICAgICAgQWRkIHVzZXNWZXJ0aWNhbFZvbHVtZVNsaWRlciBmdW5jdGlvbiB0byBhbGxv
dyBob3Jpem9udGFsIHZvbHVtZSBzbGlkZXJzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtU2tpYS5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1
bVNraWE6OnVzZXNWZXJ0aWNhbFZvbHVtZVNsaWRlcik6CisgICAgICAgIEFkZCB1c2VzVmVydGlj
YWxWb2x1bWVTbGlkZXIgZnVuY3Rpb24gdG8gYWxsb3cgaG9yaXpvbnRhbCB2b2x1bWUgc2xpZGVy
cy4KKworMjAxMi0wNS0yOCAgU2lsdmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIEludHJvZHVjZSBhbiBFbmNsb3N1cmUgRWxlbWVudCBmb3IgQ2hyb21pdW0g
dmlkZW8gY29udHJvbHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NzY4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVwZGF0ZWQgdGVzdHMuCisKKyAgICAgICAgVGhlIENocm9tZSB2aWRlbyBjb250cm9s
cyBhcmUgcmVjZWl2aW5nIGEgdmlzdWFsIHVwZGF0ZS4gQSBuZXcgZW5jbG9zdXJlIGRpdiBpcyBy
ZXF1aXJlZAorICAgICAgICB0byBwcm92aWRlIGZvciBhIG9mZnNldCBzcGFjZSBmcm9tIHRoZSB2
aWRlbydzIGJvdW5kYXJpZXMuIFRoZSB2aXN1YWwgdXBkYXRlIGl0c2VsZiBpcyBpbgorICAgICAg
ICBhIHNlcGFyYXRlIHBhdGNoLgorCisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1
bS5jc3M6CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUp
OgorICAgICAgICBJbnRyb2R1Y2UgQ1NTIGZvciBlbmNsb3N1cmUgZGl2IHNvIGl0IGRvZXNuJ3Qg
c2hvdyB5ZXQuCisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xv
c3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudCk6CisgICAg
ICAgIERlZmluaXRpb24gb2YgdGhlIG5ldyBlbmNsb3N1cmUgZWxlbWVudC4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKToKKyAg
ICAgICAgRGVmaW5pdGlvbiBvZiBhIGNyZWF0ZSBvcGVyYXRvciBmb3IgdGhlIG5ldyBlbmNsb3N1
cmUgZWxlbWVudC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbENocm9taXVtRW5jbG9z
dXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICBEZWZpbml0aW9uIG9mIHRoZSBz
aGFkb3dQc2V1ZG9JZCBvZiAtd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xvc3VyZSBmb3IgdGhl
IGVuY2xvc3VyZSBkaXYuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKToKKyAgICAgICAgSW5p
dGlhbGl6ZSBtZW1iZXIgZWxlbWVudCBmb3IgZW5jbG9zdXJlIGRpdi4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNyZWF0ZSk6CisgICAgICAgIElu
c3RhbnRpYXRlIGVuY2xvc3VyZSBkaXYgYW5kIGFkZCBpbnRvIERPTSBiZXR3ZWVuIGNvbnRyb2xz
IGFuZCBwYW5lbCBlbGVtZW50cy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW06OnNldE1lZGlhQ29udHJvbGxlcik6CisgICAgICAgIFNldCBtZWRpYSBj
b250cm9sbGVyIGZvciBlbmNsb3N1cmUgZGl2LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6Y3JlYXRlVGV4dFRyYWNrRGlzcGxheSk6CisgICAgICAg
IEluc2VydCB0ZXh0IHRyYWNrIGRpc3BsYXkgY29udGFpbmVyIHRvIGVuY2xvc3VyZSByYXRoZXIg
dGhhbiBwYW5lbC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKE1lZGlhQ29udHJvbENo
cm9taXVtRW5jbG9zdXJlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xD
aHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ6OnNldE1lZGlhQ29udHJvbGxlcik6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ6Om1lZGlhQ29udHJv
bGxlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVs
ZW1lbnQ6OmlzTWVkaWFDb250cm9sRWxlbWVudCk6CisgICAgICAgIEFkZCBkZWNsYXJhdGlvbiBv
ZiB0aGUgbmV3IGVuY2xvc3VyZSBlbGVtZW50IGFuZCBpdHMgbWVtYmVyIGZ1bmN0aW9ucy4KKyAg
ICAgICAgKE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0pOgorICAgICAgICBBZGQgbWVt
YmVyIHZhcmlhYmxlIHRvIGNvbnRyb2xzIHJvb3QgZWxlbWVudCB0byBob2xkIHRoZSBlbmNsb3N1
cmUgZWxlbWVudC4KKwogMjAxMi0wNi0wOCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3Jn
PgogCiAgICAgICAgIEhUVFAgMjA0IE5vIENvbnRlbnQgcmVzcG9uc2VzIHNob3VsZG4ndCB0cmln
Z2VyIE1JTUUgdHlwZSB3YXJuaW5ncyBpbiB0aGUgd2ViIGluc3BlY3RvcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcwppbmRleCA0MDkzOThjNWQwY2NmMGM5
ZDYzZjYwZTliNjkzNzJlOWEzOTI0ZDI2Li4yZDk3ZWQ0NGJiODc5ZTI3ZjE2YWNlZDAzMjQ3YTBk
ODU2MTJmYThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0No
cm9taXVtLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVt
LmNzcwpAQCAtMzEsNyArMzEsNyBAQCBib2R5Oi13ZWJraXQtZnVsbC1wYWdlLW1lZGlhIHsKIAog
YXVkaW8gewogICAgIHdpZHRoOiAzMDBweDsKLSAgICBoZWlnaHQ6IDMycHg7CisgICAgaGVpZ2h0
OiAzMHB4OwogfQogCiBhdWRpbzotd2Via2l0LWZ1bGwtcGFnZS1tZWRpYSwgdmlkZW86LXdlYmtp
dC1mdWxsLXBhZ2UtbWVkaWEgewpAQCAtMzksOTEgKzM5LDc4IEBAIGF1ZGlvOi13ZWJraXQtZnVs
bC1wYWdlLW1lZGlhLCB2aWRlbzotd2Via2l0LWZ1bGwtcGFnZS1tZWRpYSB7CiAgICAgbWF4LXdp
ZHRoOiAxMDAlOwogfQogCi1hdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwgewotICAgIC13ZWJraXQtdXNlci1zZWxl
Y3Q6IG5vbmU7Cis6Oi13ZWJraXQtbWVkaWEtY29udHJvbHMgeworICAgIGRpc3BsYXk6IC13ZWJr
aXQtYm94OworICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAgLXdlYmtpdC1i
b3gtcGFjazogZW5kOwotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICBvdmVyZmxvdzogdmlz
aWJsZTsKLSAgICBib3R0b206IDA7CisgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKK30K
KworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZW5jbG9zdXJlLCB2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUgewogICAgIHdpZHRoOiAxMDAlOwotICAgIGhlaWdo
dDogMzJweDsKLSAgICB6LWluZGV4OiAwOwotICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwg
MCwgMCwgMC42KTsKKyAgICBtYXgtd2lkdGg6IDgwMHB4OworICAgIGhlaWdodDogMzBweDsKKyAg
ICBib3R0b206IDA7CisgICAgdGV4dC1pbmRlbnQ6IDA7CisgICAgcGFkZGluZzogMDsKKyAgICBi
b3gtc2l6aW5nOiBib3JkZXItYm94OwogfQogCi12aWRlbzotd2Via2l0LWZ1bGwtcGFnZS1tZWRp
YTo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCB7Ci0gICAgYm90dG9tOiAwcHg7Cit2aWRl
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUgeworICAgIHBhZGRpbmc6IDBweCA1
cHggNXB4IDVweDsKKyAgICBoZWlnaHQ6IDM1cHg7CiB9CiAKIGF1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXBhbmVsLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCB7Ci0g
ICAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAg
ICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CisgICAgLXdlYmtpdC1ib3gtYWxpZ246
IGNlbnRlcjsKKyAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7CisgICAgYm90dG9tOiBhdXRv
OworICAgIGhlaWdodDogMzBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwLCAyMCwg
MjAsIDAuOCk7CisgICAgYm9yZGVyLXJhZGl1czogNXB4OwogfQogCiBhdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
bXV0ZS1idXR0b24gewogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtbXV0ZS1idXR0b247
Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIHRvcDogYXV0bzsKLSAgICBib3R0b206IDA7
Ci0gICAgcmlnaHQ6IDA7Ci0gICAgbGVmdDogYXV0bzsKLQotICAgIHdpZHRoOiAzNHB4OwotICAg
IGhlaWdodDogMzJweDsKKyAgICBkaXNwbGF5OiBpbmxpbmU7CisgICAgYm9yZGVyOiBub25lOwor
ICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgd2lkdGg6IDM1cHg7CisgICAgaGVpZ2h0
OiAzMHB4OworICAgIGxpbmUtaGVpZ2h0OiAzMHB4OworICAgIG1hcmdpbjogMCA2cHggMCAwOwor
ICAgIHBhZGRpbmc6IDA7CiB9CiAKIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXkt
YnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiB7CiAgICAg
LXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1wbGF5LWJ1dHRvbjsKLQotICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKLSAgICB0b3A6IGF1dG87Ci0gICAgYm90dG9tOiA3cHg7Ci0gICAgbGVmdDogN3B4
OwotICAgIHJpZ2h0OiA2cHg7Ci0KLSAgICB3aWR0aDogMThweDsKLSAgICBoZWlnaHQ6IDE5cHg7
Ci19Ci0KLWF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciwg
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUtY29udGFpbmVyIHsKLSAgICAt
d2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXRpbWVsaW5lLWNvbnRhaW5lcjsKLSAgICAtd2Via2l0
LXVzZXItc2VsZWN0OiBub25lOwotICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsK
LSAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOwotICAgIC13ZWJraXQtYm94LXBhY2s6IGNl
bnRlcjsKLSAgICAtd2Via2l0LWJveC1mbGV4OiAxOwotCi0gICAgcG9zaXRpb246IGFic29sdXRl
OwotICAgIHRvcDogYXV0bzsKLSAgICBib3R0b206IDA7Ci0gICAgbGVmdDogMzBweDsKLSAgICBy
aWdodDogMzRweDsKLQotICAgIHdpZHRoOiBhdXRvOwotICAgIGhlaWdodDogMzJweDsKLQotICAg
IGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpOwotICAgIGJv
cmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKKyAgICBkaXNw
bGF5OiBpbmxpbmU7CisgICAgYm9yZGVyOiBub25lOworICAgIGJveC1zaXppbmc6IGJvcmRlci1i
b3g7CisgICAgd2lkdGg6IDMwcHg7CisgICAgaGVpZ2h0OiAzMHB4OworICAgIGxpbmUtaGVpZ2h0
OiAzMHB4OworICAgIG1hcmdpbi1sZWZ0OiA5cHg7CisgICAgbWFyZ2luLXJpZ2h0OiA5cHg7Cisg
ICAgcGFkZGluZzogMDsKIH0KIAogYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVu
dC10aW1lLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGlt
ZS1kaXNwbGF5IHsKICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLWN1cnJlbnQtdGltZS1k
aXNwbGF5OwogICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Ci0gICAgZGlzcGxheTogLXdl
YmtpdC1ib3g7Ci0gICAgLXdlYmtpdC1ib3gtZmxleDogMDsKLSAgICAtd2Via2l0LWJveC1wYWNr
OiBjZW50ZXI7Ci0gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKLQotICAgIG92ZXJmbG93
OiBoaWRkZW47CisgICAgZGlzcGxheTogYmxvY2s7CisgICAgYm9yZGVyOiBub25lOwogICAgIGN1
cnNvcjogZGVmYXVsdDsKIAotICAgIGxpbmUtaGVpZ2h0OiAyMXB4OwotICAgIGhlaWdodDogMjBw
eDsKLSAgICB3aWR0aDogNThweDsKKyAgICBoZWlnaHQ6IDMwcHg7CisgICAgbWFyZ2luOiAwIDlw
eCAwIDA7CisgICAgcGFkZGluZzogMDsKIAotICAgIHRleHQtYWxpZ246IGNlbnRlcjsKLSAgICBm
b250LWZhbWlseTogQXJpYWw7Ci0gICAgZm9udC1zaXplOiAxNnB4OwotICAgIGZvbnQtd2VpZ2h0
OiBib2xkOworICAgIGxpbmUtaGVpZ2h0OiAzMHB4OworICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwg
SGVsdmV0aWNhLCBzYW5zLXNlcmlmOworICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICBjb2xvcjog
d2hpdGU7CiAKICAgICBsZXR0ZXItc3BhY2luZzogbm9ybWFsOwpAQCAtMTM3LDQwICsxMjQsNDgg
QEAgYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksIHZp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2wKIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXRpbWVsaW5lLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSB7CiAgICAg
LXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1zbGlkZXI7CiAgICAgZGlzcGxheTogLXdlYmtpdC1i
b3g7Ci0gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAtd2Via2l0LWJveC1mbGV4OiAx
OwotCi0gICAgcGFkZGluZzogMHB4OwotICAgIG1hcmdpbjogMHB4IDZweDsKLSAgICBoZWlnaHQ6
IDE4cHg7Ci0KLSAgICBib3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKLSAg
ICBib3JkZXItc3R5bGU6IHNvbGlkOwotICAgIGJvcmRlci13aWR0aDogMXB4OwotICAgIGJvcmRl
ci1yYWRpdXM6IDJweDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUs
IDAuMDgpOwotICAgIGNvbG9yOiByZ2IoNTAsIDE0MCwgMjIzKTsKLX0KLQotYXVkaW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIsIHZpZGVvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyIHsKLSAgICAtd2Via2l0LWFw
cGVhcmFuY2U6IG1lZGlhLXZvbHVtZS1zbGlkZXItY29udGFpbmVyOwotICAgIHBvc2l0aW9uOiBh
YnNvbHV0ZTsKLSAgICBib3R0b206IDMycHg7Ci0KLSAgICB3aWR0aDogMzRweDsKLSAgICBoZWln
aHQ6IDEwMHB4OwotCi0gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOwor
ICAgIGhlaWdodDogOHB4OworICAgIG1hcmdpbjogMCAxNXB4IDAgMDsKKyAgICBwYWRkaW5nOiAw
OworICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OworICAgIG1pbi13aWR0aDogMjVw
eDsKIH0KIAogYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciB7CiAgICAgLXdlYmtpdC1h
cHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyOwotICAgIGRpc3BsYXk6IGlubGluZTsKLSAg
ICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0KLSAgICB0b3A6IDEwcHg7Ci0gICAgbGVmdDogMTJweDsK
KyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1mbGV4OiAxOworICAg
IGhlaWdodDogOHB4OworICAgIG1heC13aWR0aDogNzBweDsKKyAgICBtYXJnaW46IDAgMTVweCAw
IDA7CisgICAgcGFkZGluZzogMDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsK
KyAgICBtaW4td2lkdGg6IDE1cHg7Cit9CiAKLSAgICB3aWR0aDogMTBweDsKLSAgICBoZWlnaHQ6
IDgwcHg7CisvKiBGSVhNRSB0aGVzZSBzaG91bGRuJ3QgdXNlIHNwZWNpYWwgcHNldWRvU2hhZG93
SWRzLCBidXQgbmljZXIgcnVsZXMuCisgICBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9t
aXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTEyNTA4CisgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NjIyMTgKKyovCitpbnB1dFt0eXBlPSJyYW5nZSJdOjotd2Via2l0LW1l
ZGlhLXNsaWRlci1jb250YWluZXIgeworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13
ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9u
dGFsOyAvKiBUaGlzIHByb3BlcnR5IGlzIHVwZGF0ZWQgYnkgQysrIGNvZGUuICovCisgICAgLXdl
YmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgIGhlaWdodDogMTAwJTsKKyAgICB3aWR0
aDogMTAwJTsKKyAgICBib3JkZXI6IDFweCBzb2xpZCByZ2IoMTMwLCAxMzAsIDEzMCk7CisgICAg
Ym9yZGVyLXJhZGl1czogNHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAv
KiBCYWNrZ3JvdW5kIGRyYXdpbmcgaXMgbWFuYWdlZCBieSBDKysgY29kZSB0byBkcmF3IHJhbmdl
cy4gKi8KIH0KKworaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1
bWIgeworICAgIGRpc3BsYXk6IGJsb2NrOworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogc2xpZGVy
dGh1bWItaG9yaXpvbnRhbDsKKyAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7Cisg
ICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIGJvdHRvbTogMXB4OworICAgIG1hcmdpbi1sZWZ0
OiAtN3B4OworICAgIG1hcmdpbi1yaWdodDogLTdweDsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwCmluZGV4IGJkY2Q5MTY0ZDg5ZGFkNGI3
ZmQ3ODhkYWEyMmIzMzk2OGY5ZTAwYTUuLmM3NDVkNjMxOGFiNWM3OGYwMjcxZDNlYjUxOTA4OTA0
YjU5ZWMzOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaWYgRU5BQkxFKFZJREVPKQogI2luY2x1ZGUgIk1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW0uaCIKIAorI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1l
ZGlhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk1lZGlhQ29u
dHJvbEVsZW1lbnRzLmgiCkBAIC00NSwxNyArNDYsMzMgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVs
ZW1lbnQ6Ok1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudChEb2N1bWVudCogZG9j
dW1lbnQpCisgICAgOiBIVE1MRGl2RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQt
PmRvY3VtZW50KCkpCisgICAgLCBtX21lZGlhQ29udHJvbGxlcigwKQoreworfQorCitQYXNzUmVm
UHRyPE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudD4gTWVkaWFDb250cm9sQ2hy
b21pdW1FbmNsb3N1cmVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAg
IHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50
KGRvY3VtZW50KSk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sQ2hyb21p
dW1FbmNsb3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Cit7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMt
ZW5jbG9zdXJlIikpOworICAgIHJldHVybiBpZDsKK30KKwogTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bShEb2N1bWVudCogZG9j
dW1lbnQpCiAgICAgOiBNZWRpYUNvbnRyb2xzKGRvY3VtZW50KQogICAgICwgbV9tZWRpYUNvbnRy
b2xsZXIoMCkKICAgICAsIG1fcGxheUJ1dHRvbigwKQogICAgICwgbV9jdXJyZW50VGltZURpc3Bs
YXkoMCkKICAgICAsIG1fdGltZWxpbmUoMCkKLSAgICAsIG1fdGltZWxpbmVDb250YWluZXIoMCkK
ICAgICAsIG1fcGFuZWxNdXRlQnV0dG9uKDApCiAgICAgLCBtX3ZvbHVtZVNsaWRlcigwKQotICAg
ICwgbV92b2x1bWVTbGlkZXJDb250YWluZXIoMCkKICAgICAsIG1fcGFuZWwoMCkKKyAgICAsIG1f
ZW5jbG9zdXJlKDApCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgICwgbV90ZXh0RGlzcGxh
eUNvbnRhaW5lcigwKQogICAgICwgbV90ZXh0VHJhY2tEaXNwbGF5KDApCkBAIC03Nyw2ICs5NCw5
IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bT4gTWVkaWFDb250
cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6Y3JlCiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bT4gY29udHJvbHMgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bShkb2N1bWVudCkpOwogCisgICAgLy8gQ3JlYXRlIGFuIGVuY2xvc2lu
ZyBlbGVtZW50IGZvciB0aGUgcGFuZWwgc28gd2UgY2FuIHZpc3VhbGx5IG9mZnNldCB0aGUgY29u
dHJvbHMgY29ycmVjdGx5LgorICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3Vy
ZUVsZW1lbnQ+IGVuY2xvc3VyZSA9IE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKKwogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVsZW1l
bnQ+IHBhbmVsID0gTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwog
CiAgICAgRXhjZXB0aW9uQ29kZSBlYzsKQEAgLTg3LDUyICsxMDcsMzcgQEAgUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtPiBNZWRpYUNvbnRyb2xSb290RWxlbWVudENo
cm9taXVtOjpjcmUKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgUmVmUHRy
PE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudD4gdGltZWxpbmVDb250YWluZXIg
PSBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
Ci0KICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9IE1l
ZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQo
KSk7CiAgICAgY29udHJvbHMtPm1fdGltZWxpbmUgPSB0aW1lbGluZS5nZXQoKTsKLSAgICB0aW1l
bGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBlYywgdHJ1ZSk7
CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwgZWMsIHRydWUpOwog
ICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9s
Q3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5ID0gTWVkaWFDb250
cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250
cm9scy0+bV9jdXJyZW50VGltZURpc3BsYXkgPSBjdXJyZW50VGltZURpc3BsYXkuZ2V0KCk7Ci0g
ICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxheS5yZWxl
YXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoY3VycmVudFRpbWVEaXNw
bGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICBjb250cm9scy0+bV90aW1lbGluZUNvbnRhaW5lciA9IHRpbWVsaW5lQ29udGFpbmVy
LmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0aW1lbGluZUNvbnRhaW5lci5yZWxlYXNl
KCksIGVjLCB0cnVlKTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxl
bWVudD4gcGFuZWxNdXRlQnV0dG9uID0gTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CisgICAgY29udHJvbHMtPm1fcGFu
ZWxNdXRlQnV0dG9uID0gcGFuZWxNdXRlQnV0dG9uLmdldCgpOworICAgIHBhbmVsLT5hcHBlbmRD
aGlsZChwYW5lbE11dGVCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQog
ICAgICAgICByZXR1cm4gMDsKIAotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gcGFuZWxWb2x1
bWVDb250cm9sQ29udGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0K
LSAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gdm9s
dW1lU2xpZGVyQ29udGFpbmVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLQogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVT
bGlkZXJFbGVtZW50PiBzbGlkZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50Ojpj
cmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlciA9IHNsaWRlci5n
ZXQoKTsKLSAgICB2b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKHNsaWRlci5yZWxl
YXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2xpZGVyLnJlbGVhc2Uo
KSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBjb250
cm9scy0+bV92b2x1bWVTbGlkZXJDb250YWluZXIgPSB2b2x1bWVTbGlkZXJDb250YWluZXIuZ2V0
KCk7Ci0gICAgcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh2b2x1bWVT
bGlkZXJDb250YWluZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7Ci0gICAgaWYgKGVjKQotICAgICAg
ICByZXR1cm4gMDsKLQotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVt
ZW50PiBwYW5lbE11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKLSAgICBjb250cm9scy0+bV9wYW5l
bE11dGVCdXR0b24gPSBwYW5lbE11dGVCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWxWb2x1bWVDb250
cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZChwYW5lbE11dGVCdXR0b24ucmVsZWFzZSgpLCBlYywg
dHJ1ZSk7Ci0gICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIHBhbmVsLT5hcHBl
bmRDaGlsZChwYW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXIsIGVjLCB0cnVlKTsKKyAgICBjb250
cm9scy0+bV9wYW5lbCA9IHBhbmVsLmdldCgpOworICAgIGVuY2xvc3VyZS0+YXBwZW5kQ2hpbGQo
cGFuZWwucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4g
MDsKIAotICAgIGNvbnRyb2xzLT5tX3BhbmVsID0gcGFuZWwuZ2V0KCk7Ci0gICAgY29udHJvbHMt
PmFwcGVuZENoaWxkKHBhbmVsLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGNvbnRyb2xzLT5t
X2VuY2xvc3VyZSA9IGVuY2xvc3VyZS5nZXQoKTsKKyAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQo
ZW5jbG9zdXJlLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0
dXJuIDA7CiAKQEAgLTE1MSwxNiArMTU2LDE0IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bTo6c2V0TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxlckludGVyZmFjCiAg
ICAgICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5zZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxl
cik7CiAgICAgaWYgKG1fdGltZWxpbmUpCiAgICAgICAgIG1fdGltZWxpbmUtPnNldE1lZGlhQ29u
dHJvbGxlcihjb250cm9sbGVyKTsKLSAgICBpZiAobV90aW1lbGluZUNvbnRhaW5lcikKLSAgICAg
ICAgbV90aW1lbGluZUNvbnRhaW5lci0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwog
ICAgIGlmIChtX3BhbmVsTXV0ZUJ1dHRvbikKICAgICAgICAgbV9wYW5lbE11dGVCdXR0b24tPnNl
dE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsKICAgICBpZiAobV92b2x1bWVTbGlkZXIpCiAg
ICAgICAgIG1fdm9sdW1lU2xpZGVyLT5zZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7Ci0g
ICAgaWYgKG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyKQotICAgICAgICBtX3ZvbHVtZVNsaWRlckNv
bnRhaW5lci0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogICAgIGlmIChtX3BhbmVs
KQogICAgICAgICBtX3BhbmVsLT5zZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7CisgICAg
aWYgKG1fZW5jbG9zdXJlKQorICAgICAgICBtX2VuY2xvc3VyZS0+c2V0TWVkaWFDb250cm9sbGVy
KGNvbnRyb2xsZXIpOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBpZiAobV90ZXh0RGlz
cGxheUNvbnRhaW5lcikKICAgICAgICAgbV90ZXh0RGlzcGxheUNvbnRhaW5lci0+c2V0TWVkaWFD
b250cm9sbGVyKGNvbnRyb2xsZXIpOwpAQCAtMTc4LDcgKzE4MSw2IEBAIHZvaWQgTWVkaWFDb250
cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6aGlkZSgpCiB7CiAgICAgbV9wYW5lbC0+c2V0SXNEaXNw
bGF5ZWQoZmFsc2UpOwogICAgIG1fcGFuZWwtPmhpZGUoKTsKLSAgICBtX3ZvbHVtZVNsaWRlckNv
bnRhaW5lci0+aGlkZSgpOwogfQogCiB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW06Om1ha2VPcGFxdWUoKQpAQCAtMTg5LDcgKzE5MSw2IEBAIHZvaWQgTWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bTo6bWFrZU9wYXF1ZSgpCiB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW06Om1ha2VUcmFuc3BhcmVudCgpCiB7CiAgICAgbV9wYW5lbC0+bWFrZVRyYW5z
cGFyZW50KCk7Ci0gICAgbV92b2x1bWVTbGlkZXJDb250YWluZXItPmhpZGUoKTsKIH0KIAogdm9p
ZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpyZXNldCgpCkBAIC0yMDIsNyArMjAz
LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpyZXNldCgpCiAKICAg
ICBmbG9hdCBkdXJhdGlvbiA9IG1fbWVkaWFDb250cm9sbGVyLT5kdXJhdGlvbigpOwogICAgIG1f
dGltZWxpbmUtPnNldER1cmF0aW9uKGR1cmF0aW9uKTsKLSAgICBtX3RpbWVsaW5lQ29udGFpbmVy
LT5zaG93KCk7CisgICAgbV90aW1lbGluZS0+c2hvdygpOwogICAgIG1fdGltZWxpbmUtPnNldFBv
c2l0aW9uKG1fbWVkaWFDb250cm9sbGVyLT5jdXJyZW50VGltZSgpKTsKICAgICB1cGRhdGVUaW1l
RGlzcGxheSgpOwogCkBAIC0yNTksOSArMjYwLDkgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtOjpyZXBvcnRlZEVycm9yKCkKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fdGltZWxpbmVDb250YWluZXItPmhpZGUoKTsKKyAgICBtX3RpbWVsaW5l
LT5oaWRlKCk7CiAgICAgbV9wYW5lbE11dGVCdXR0b24tPmhpZGUoKTsKLSAgICBtX3ZvbHVtZVNs
aWRlckNvbnRhaW5lci0+aGlkZSgpOworICAgIG1fdm9sdW1lU2xpZGVyLT5oaWRlKCk7CiB9CiAK
IHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6dXBkYXRlU3RhdHVzRGlzcGxh
eSgpCkBAIC0zMzEsNyArMzMyLDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9t
aXVtOjpzaG93Vm9sdW1lU2xpZGVyKCkKICAgICBpZiAoIW1fbWVkaWFDb250cm9sbGVyLT5oYXNB
dWRpbygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+
c2hvdygpOworICAgIG1fdm9sdW1lU2xpZGVyLT5zaG93KCk7CiB9CiAKICNpZiBFTkFCTEUoVklE
RU9fVFJBQ0spCkBAIC0zNDUsNyArMzQ2LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtOjpjcmVhdGVUZXh0VHJhY2tEaXNwbGF5KCkKIAogICAgIC8vIEluc2VydCBpdCBi
ZWZvcmUgdGhlIGZpcnN0IGNvbnRyb2xsZXIgZWxlbWVudCBzbyBpdCBhbHdheXMgZGlzcGxheXMg
YmVoaW5kIHRoZSBjb250cm9scy4KICAgICBFeGNlcHRpb25Db2RlIGVjOwotICAgIGluc2VydEJl
Zm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5lci5yZWxlYXNlKCksIG1fcGFuZWwsIGVjLCB0cnVlKTsK
KyAgICBpbnNlcnRCZWZvcmUodGV4dERpc3BsYXlDb250YWluZXIucmVsZWFzZSgpLCBtX2VuY2xv
c3VyZSwgZWMsIHRydWUpOwogfQogCiB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW06OnNob3dUZXh0VHJhY2tEaXNwbGF5KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaAppbmRleCAz
NjYxODZiNjVlMWY4MjU1NWJiMWY1NzFjNTY5YjM3Zjk0N2UwMWM5Li5jN2ZiMzljZWMyOTNmNThj
N2NlYTYwYzY1NzU4NDZiZDZkMjdmZTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oCkBAIC00
Nyw4ICs0Nyw4IEBAIGNsYXNzIE1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudDsKIGNsYXNz
IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJv
bE11dGVCdXR0b25FbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVu
dDsKLWNsYXNzIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ7CiBjbGFz
cyBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ7CitjbGFzcyBNZWRpYUNvbnRyb2xDaHJvbWl1bUVu
Y2xvc3VyZUVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2U7CiBjbGFzcyBN
ZWRpYVBsYXllcjsKIApAQCAtNjAsNiArNjAsMjQgQEAgY2xhc3MgTWVkaWFDb250cm9sVGV4dFRy
YWNrQ29udGFpbmVyRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFRleHRUcmFja0Rpc3BsYXlF
bGVtZW50OwogI2VuZGlmCiAKK2NsYXNzIE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxl
bWVudCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50PiBjcmVhdGUoRG9jdW1l
bnQqKTsKKworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0OworCisgICAgdm9pZCBzZXRNZWRpYUNvbnRyb2xsZXIoTWVkaWFDb250cm9sbGVySW50
ZXJmYWNlKiBjb250cm9sbGVyKSB7IG1fbWVkaWFDb250cm9sbGVyID0gY29udHJvbGxlcjsgfQor
ICAgIE1lZGlhQ29udHJvbGxlckludGVyZmFjZSogbWVkaWFDb250cm9sbGVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9tZWRpYUNvbnRyb2xsZXI7IH0KKworcHJvdGVjdGVkOgorICAgIE1lZGlhQ29udHJv
bENocm9taXVtRW5jbG9zdXJlRWxlbWVudChEb2N1bWVudCopOworCitwcml2YXRlOgorICAgIHZp
cnR1YWwgYm9vbCBpc01lZGlhQ29udHJvbEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9
CisKKyAgICBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UqIG1fbWVkaWFDb250cm9sbGVyOworfTsK
KwogY2xhc3MgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSA6IHB1YmxpYyBNZWRpYUNv
bnRyb2xzIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSb290
RWxlbWVudENocm9taXVtPiBjcmVhdGUoRG9jdW1lbnQqKTsKQEAgLTEyMCw4ICsxMzgsOCBAQCBw
cml2YXRlOgogICAgIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudCogbV90aW1l
bGluZUNvbnRhaW5lcjsKICAgICBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50KiBt
X3BhbmVsTXV0ZUJ1dHRvbjsKICAgICBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50KiBt
X3ZvbHVtZVNsaWRlcjsKLSAgICBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVt
ZW50KiBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lcjsKICAgICBNZWRpYUNvbnRyb2xQYW5lbEVsZW1l
bnQqIG1fcGFuZWw7CisgICAgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50KiBt
X2VuY2xvc3VyZTsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgTWVkaWFDb250cm9sVGV4
dFRyYWNrQ29udGFpbmVyRWxlbWVudCogbV90ZXh0RGlzcGxheUNvbnRhaW5lcjsKICAgICBNZWRp
YUNvbnRyb2xUZXh0VHJhY2tEaXNwbGF5RWxlbWVudCogbV90ZXh0VHJhY2tEaXNwbGF5OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5k
ZXggMzA4M2E3NTAwMmM2MmFhMjljMWJmODIxMzc2MTJiZDEzNDk2OWRlOC4uMDEyZGFhNzg2ODIw
M2VhYmRkOWQ1ZWFlYmI2NDY4ZTgxMDc3ZWFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCkBAIC02Miw3ICs2MiwxMCBAQCBpbmxp
bmUgc3RhdGljIGJvb2wgaGFzVmVydGljYWxBcHBlYXJhbmNlKEhUTUxJbnB1dEVsZW1lbnQqIGlu
cHV0KQogewogICAgIEFTU0VSVChpbnB1dC0+cmVuZGVyZXIoKSk7CiAgICAgUmVuZGVyU3R5bGUq
IHNsaWRlclN0eWxlID0gaW5wdXQtPnJlbmRlcmVyKCktPnN0eWxlKCk7Ci0gICAgcmV0dXJuIHNs
aWRlclN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGljYWxQYXJ0IHx8IHNsaWRlclN0
eWxlLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJQYXJ0OworICAgIFJlbmRlclRo
ZW1lKiBzbGlkZXJUaGVtZSA9IGlucHV0LT5yZW5kZXJlcigpLT50aGVtZSgpOworCisgICAgcmV0
dXJuIHNsaWRlclN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGljYWxQYXJ0CisgICAg
ICAgIHx8IChzbGlkZXJTdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyUGFy
dCAmJiBzbGlkZXJUaGVtZS0+dXNlc1ZlcnRpY2FsVm9sdW1lU2xpZGVyKCkpOwogfQogCiBTbGlk
ZXJUaHVtYkVsZW1lbnQqIHNsaWRlclRodW1iRWxlbWVudE9mKE5vZGUqIG5vZGUpCkBAIC0xMDgs
NyArMTExLDcgQEAgdm9pZCBSZW5kZXJTbGlkZXJUaHVtYjo6bGF5b3V0KCkKICAgICAvLyBEbyBu
b3QgY2FzdCBub2RlKCkgdG8gU2xpZGVyVGh1bWJFbGVtZW50LiBUaGlzIHJlbmRlcmVyIGlzIHVz
ZWQgZm9yCiAgICAgLy8gVHJhY2tMaW1pdEVsZW1lbnQgdG9vLgogICAgIEhUTUxJbnB1dEVsZW1l
bnQqIGlucHV0ID0gbm9kZSgpLT5zaGFkb3dBbmNlc3Rvck5vZGUoKS0+dG9JbnB1dEVsZW1lbnQo
KTsKLSAgICBib29sIGlzVmVydGljYWwgPSBzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVy
VGh1bWJWZXJ0aWNhbFBhcnQgfHwgc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IE1lZGlhVm9sdW1l
U2xpZGVyVGh1bWJQYXJ0OworICAgIGJvb2wgaXNWZXJ0aWNhbCA9IGhhc1ZlcnRpY2FsQXBwZWFy
YW5jZShpbnB1dCk7CiAKICAgICBkb3VibGUgZnJhY3Rpb24gPSBjb252ZXJ0SW5wdXROdW1iZXJU
b0RvdWJsZShzbGlkZXJQb3NpdGlvbihpbnB1dCkgKiAxMDApOwogICAgIGlmIChpc1ZlcnRpY2Fs
KQpAQCAtMzI0LDcgKzMyNywyNCBAQCBIVE1MSW5wdXRFbGVtZW50KiBTbGlkZXJUaHVtYkVsZW1l
bnQ6Omhvc3RJbnB1dCgpIGNvbnN0CiBjb25zdCBBdG9taWNTdHJpbmcmIFNsaWRlclRodW1iRWxl
bWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBzbGlkZXJUaHVtYiwgKCItd2Via2l0LXNsaWRlci10aHVtYiIpKTsKLSAg
ICByZXR1cm4gc2xpZGVyVGh1bWI7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIG1lZGlhU2xpZGVyVGh1bWIsICgiLXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIiKSk7CisK
KyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IGhvc3RJbnB1dCgpOworICAgIGlmICghaW5w
dXQpCisgICAgICAgIHJldHVybiBzbGlkZXJUaHVtYjsKKworICAgIFJlbmRlclN0eWxlKiBzbGlk
ZXJTdHlsZSA9IGlucHV0LT5yZW5kZXJlcigpLT5zdHlsZSgpOworICAgIHN3aXRjaCAoc2xpZGVy
U3R5bGUtPmFwcGVhcmFuY2UoKSkgeworICAgIGNhc2UgTWVkaWFTbGlkZXJQYXJ0OgorICAgIGNh
c2UgTWVkaWFTbGlkZXJUaHVtYlBhcnQ6CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ6
CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydDoKKyAgICBjYXNlIE1lZGlhRnVs
bFNjcmVlblZvbHVtZVNsaWRlclBhcnQ6CisgICAgY2FzZSBNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVT
bGlkZXJUaHVtYlBhcnQ6CisgICAgICAgIHJldHVybiBtZWRpYVNsaWRlclRodW1iOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIHJldHVybiBzbGlkZXJUaHVtYjsKKyAgICB9CiB9CiAKIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0zNTIsNyArMzcyLDI0IEBAIFJlbmRlck9i
amVjdCogVHJhY2tMaW1pdGVyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFy
ZW5hLCBSZW5kZXJTdHlsCiBjb25zdCBBdG9taWNTdHJpbmcmIFRyYWNrTGltaXRlckVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgc2xpZGVyVGh1bWIsICgiLXdlYmtpdC1zbGlkZXItdGh1bWIiKSk7Ci0gICAgcmV0
dXJuIHNsaWRlclRodW1iOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBt
ZWRpYVNsaWRlclRodW1iLCAoIi13ZWJraXQtbWVkaWEtc2xpZGVyLXRodW1iIikpOworCisgICAg
SFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzaGFkb3dBbmNlc3Rvck5vZGUoKS0+dG9JbnB1dEVs
ZW1lbnQoKTsKKyAgICBpZiAoIWlucHV0KQorICAgICAgICByZXR1cm4gc2xpZGVyVGh1bWI7CisK
KyAgICBSZW5kZXJTdHlsZSogc2xpZGVyU3R5bGUgPSBpbnB1dC0+cmVuZGVyZXIoKS0+c3R5bGUo
KTsKKyAgICBzd2l0Y2ggKHNsaWRlclN0eWxlLT5hcHBlYXJhbmNlKCkpIHsKKyAgICBjYXNlIE1l
ZGlhU2xpZGVyUGFydDoKKyAgICBjYXNlIE1lZGlhU2xpZGVyVGh1bWJQYXJ0OgorICAgIGNhc2Ug
TWVkaWFWb2x1bWVTbGlkZXJQYXJ0OgorICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBh
cnQ6CisgICAgY2FzZSBNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXJQYXJ0OgorICAgIGNhc2Ug
TWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgorICAgICAgICByZXR1cm4gbWVk
aWFTbGlkZXJUaHVtYjsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc2xpZGVyVGh1bWI7
CisgICAgfQogfQogCiBUcmFja0xpbWl0ZXJFbGVtZW50KiB0cmFja0xpbWl0ZXJFbGVtZW50T2Yo
Tm9kZSogbm9kZSkKQEAgLTM4NSw4ICs0MjIsMjUgQEAgUmVuZGVyT2JqZWN0KiBTbGlkZXJDb250
YWluZXJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclMK
IAogY29uc3QgQXRvbWljU3RyaW5nJiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1
ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNs
aWRlclRodW1iLCAoIi13ZWJraXQtc2xpZGVyLWNvbnRhaW5lciIpKTsKLSAgICByZXR1cm4gc2xp
ZGVyVGh1bWI7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1lZGlhU2xp
ZGVyQ29udGFpbmVyLCAoIi13ZWJraXQtbWVkaWEtc2xpZGVyLWNvbnRhaW5lciIpKTsKKyAgICBE
RUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2xpZGVyQ29udGFpbmVyLCAoIi13ZWJr
aXQtc2xpZGVyLWNvbnRhaW5lciIpKTsKKworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0g
c2hhZG93QW5jZXN0b3JOb2RlKCktPnRvSW5wdXRFbGVtZW50KCk7CisgICAgaWYgKCFpbnB1dCkK
KyAgICAgICAgcmV0dXJuIHNsaWRlckNvbnRhaW5lcjsKKworICAgIFJlbmRlclN0eWxlKiBzbGlk
ZXJTdHlsZSA9IGlucHV0LT5yZW5kZXJlcigpLT5zdHlsZSgpOworICAgIHN3aXRjaCAoc2xpZGVy
U3R5bGUtPmFwcGVhcmFuY2UoKSkgeworICAgIGNhc2UgTWVkaWFTbGlkZXJQYXJ0OgorICAgIGNh
c2UgTWVkaWFTbGlkZXJUaHVtYlBhcnQ6CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ6
CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydDoKKyAgICBjYXNlIE1lZGlhRnVs
bFNjcmVlblZvbHVtZVNsaWRlclBhcnQ6CisgICAgY2FzZSBNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVT
bGlkZXJUaHVtYlBhcnQ6CisgICAgICAgIHJldHVybiBtZWRpYVNsaWRlckNvbnRhaW5lcjsKKyAg
ICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc2xpZGVyQ29udGFpbmVyOworICAgIH0KIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJv
bHNDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250
cm9sc0Nocm9taXVtLmNwcAppbmRleCA3MmUxMmM4ODFiYzczZmQwNWU5NjVhOThiMGRiOWJmNmIw
OGVlOGZmLi45YTdiNmVjMDYzYjE3ZjNlMDUzNzI2NjMyNWM4N2YxYzg5NWEyOTZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVt
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0No
cm9taXVtLmNwcApAQCAtNzQsMTQgKzc0LDIxIEBAIHN0YXRpYyBib29sIHBhaW50TWVkaWFNdXRl
QnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mCiAg
ICAgaWYgKCFtZWRpYUVsZW1lbnQpCiAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBzdGF0aWMg
SW1hZ2UqIHNvdW5kRnVsbCA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhU291bmRGdWxsIik7Ci0g
ICAgc3RhdGljIEltYWdlKiBzb3VuZE5vbmUgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYVNvdW5k
Tm9uZSIpOwotICAgIHN0YXRpYyBJbWFnZSogc291bmREaXNhYmxlZCA9IHBsYXRmb3JtUmVzb3Vy
Y2UoIm1lZGlhU291bmREaXNhYmxlZCIpOworICAgIHN0YXRpYyBJbWFnZSogc291bmRMZXZlbDMg
PSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYXBsYXllclNvdW5kTGV2ZWwzIik7CisgICAgc3RhdGlj
IEltYWdlKiBzb3VuZExldmVsMiA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVyU291bmRM
ZXZlbDIiKTsKKyAgICBzdGF0aWMgSW1hZ2UqIHNvdW5kTGV2ZWwxID0gcGxhdGZvcm1SZXNvdXJj
ZSgibWVkaWFwbGF5ZXJTb3VuZExldmVsMSIpOworICAgIHN0YXRpYyBJbWFnZSogc291bmREaXNh
YmxlZCA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVyU291bmREaXNhYmxlZCIpOwogCi0g
ICAgaWYgKCFoYXNTb3VyY2UobWVkaWFFbGVtZW50KSB8fCAhbWVkaWFFbGVtZW50LT5oYXNBdWRp
bygpKQorICAgIGlmICghaGFzU291cmNlKG1lZGlhRWxlbWVudCkgfHwgIW1lZGlhRWxlbWVudC0+
aGFzQXVkaW8oKSB8fCBtZWRpYUVsZW1lbnQtPm11dGVkKCkgfHwgbWVkaWFFbGVtZW50LT52b2x1
bWUoKSA8PSAwKQogICAgICAgICByZXR1cm4gcGFpbnRNZWRpYUJ1dHRvbihwYWludEluZm8uY29u
dGV4dCwgcmVjdCwgc291bmREaXNhYmxlZCk7CiAKLSAgICByZXR1cm4gcGFpbnRNZWRpYUJ1dHRv
bihwYWludEluZm8uY29udGV4dCwgcmVjdCwgbWVkaWFFbGVtZW50LT5tdXRlZCgpID8gc291bmRO
b25lOiBzb3VuZEZ1bGwpOworICAgIGlmIChtZWRpYUVsZW1lbnQtPnZvbHVtZSgpIDw9IDAuMzMp
CisgICAgICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9uKHBhaW50SW5mby5jb250ZXh0LCByZWN0
LCBzb3VuZExldmVsMSk7CisKKyAgICBpZiAobWVkaWFFbGVtZW50LT52b2x1bWUoKSA8PSAwLjY2
KQorICAgICAgICByZXR1cm4gcGFpbnRNZWRpYUJ1dHRvbihwYWludEluZm8uY29udGV4dCwgcmVj
dCwgc291bmRMZXZlbDIpOworCisgICAgcmV0dXJuIHBhaW50TWVkaWFCdXR0b24ocGFpbnRJbmZv
LmNvbnRleHQsIHJlY3QsIHNvdW5kTGV2ZWwzKTsKIH0KIAogc3RhdGljIGJvb2wgcGFpbnRNZWRp
YVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQpAQCAtOTAsOSArOTcsOSBAQCBzdGF0aWMgYm9vbCBw
YWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZv
JiBwYWludEluZgogICAgIGlmICghbWVkaWFFbGVtZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhUGxheSA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlh
UGxheSIpOwotICAgIHN0YXRpYyBJbWFnZSogbWVkaWFQYXVzZSA9IHBsYXRmb3JtUmVzb3VyY2Uo
Im1lZGlhUGF1c2UiKTsKLSAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhUGxheURpc2FibGVkID0gcGxh
dGZvcm1SZXNvdXJjZSgibWVkaWFQbGF5RGlzYWJsZWQiKTsKKyAgICBzdGF0aWMgSW1hZ2UqIG1l
ZGlhUGxheSA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVyUGxheSIpOworICAgIHN0YXRp
YyBJbWFnZSogbWVkaWFQYXVzZSA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVyUGF1c2Ui
KTsKKyAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhUGxheURpc2FibGVkID0gcGxhdGZvcm1SZXNvdXJj
ZSgibWVkaWFwbGF5ZXJQbGF5RGlzYWJsZWQiKTsKIAogICAgIGlmICghaGFzU291cmNlKG1lZGlh
RWxlbWVudCkpCiAgICAgICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9uKHBhaW50SW5mby5jb250
ZXh0LCByZWN0LCBtZWRpYVBsYXlEaXNhYmxlZCk7CkBAIC0xMDIsMTAgKzEwOSw3NSBAQCBzdGF0
aWMgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3Qg
UGFpbnRJbmZvJiBwYWludEluZgogCiBzdGF0aWMgSW1hZ2UqIGdldE1lZGlhU2xpZGVyVGh1bWIo
KQogewotICAgIHN0YXRpYyBJbWFnZSogbWVkaWFTbGlkZXJUaHVtYiA9IHBsYXRmb3JtUmVzb3Vy
Y2UoIm1lZGlhU2xpZGVyVGh1bWIiKTsKKyAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhU2xpZGVyVGh1
bWIgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYXBsYXllclNsaWRlclRodW1iIik7CiAgICAgcmV0
dXJuIG1lZGlhU2xpZGVyVGh1bWI7CiB9CiAKK3N0YXRpYyB2b2lkIHBhaW50Um91bmRlZFNsaWRl
ckJhY2tncm91bmQoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxl
LCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpCit7CisgICAgaW50IGJvcmRlclJhZGl1cyA9IHJl
Y3QuaGVpZ2h0KCkgLyAyOworICAgIEludFNpemUgcmFkaWkoYm9yZGVyUmFkaXVzLCBib3JkZXJS
YWRpdXMpOworICAgIENvbG9yIHNsaWRlckJhY2tncm91bmRDb2xvciA9IENvbG9yKDI5LCAyOSwg
MjkpOworICAgIGNvbnRleHQtPnNhdmUoKTsKKyAgICBjb250ZXh0LT5maWxsUm91bmRlZFJlY3Qo
cmVjdCwgcmFkaWksIHJhZGlpLCByYWRpaSwgcmFkaWksIHNsaWRlckJhY2tncm91bmRDb2xvciwg
Q29sb3JTcGFjZURldmljZVJHQik7CisgICAgY29udGV4dC0+cmVzdG9yZSgpOworfQorCitzdGF0
aWMgdm9pZCBwYWludFNsaWRlclJhbmdlSGlnaGxpZ2h0KGNvbnN0IEludFJlY3QmIHJlY3QsIGNv
bnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBmbG9hdCBz
dGFydEZyYWN0aW9uLCBmbG9hdCB3aWR0aEZyYWN0aW9uKQoreworICAgIGlmIChzdGFydEZyYWN0
aW9uIDwgMCkKKyAgICAgICAgc3RhcnRGcmFjdGlvbiA9IDA7CisgICAgaWYgKHdpZHRoRnJhY3Rp
b24gPiAxKQorICAgICAgICB3aWR0aEZyYWN0aW9uID0gMTsKKyAgICBmbG9hdCBlbmRGcmFjdGlv
biA9IHN0YXJ0RnJhY3Rpb24gKyB3aWR0aEZyYWN0aW9uOworICAgIGlmIChlbmRGcmFjdGlvbiA+
IDEpIHsKKyAgICAgICAgd2lkdGhGcmFjdGlvbiA9IHdpZHRoRnJhY3Rpb24gLSBzdGFydEZyYWN0
aW9uOworICAgICAgICBlbmRGcmFjdGlvbiA9IHN0YXJ0RnJhY3Rpb24gKyB3aWR0aEZyYWN0aW9u
OworICAgIH0KKworICAgIC8vIFNldCByZWN0YW5nbGUgdG8gaGlnaGxpZ2h0IHJhbmdlLgorICAg
IEludFJlY3QgaGlnaGxpZ2h0UmVjdCA9IHJlY3Q7CisgICAgaW50IHN0YXJ0T2Zmc2V0ID0gc3Rh
cnRGcmFjdGlvbiAqIHJlY3Qud2lkdGgoKTsKKyAgICBpbnQgZW5kT2Zmc2V0ID0gcmVjdC53aWR0
aCgpIC0gZW5kRnJhY3Rpb24gKiByZWN0LndpZHRoKCk7CisgICAgaW50IHJhbmdlV2lkdGggPSB3
aWR0aEZyYWN0aW9uICogcmVjdC53aWR0aCgpOworICAgIGhpZ2hsaWdodFJlY3QubW92ZShzdGFy
dE9mZnNldCwgMCk7CisgICAgaGlnaGxpZ2h0UmVjdC5zZXRXaWR0aChyYW5nZVdpZHRoKTsKKwor
ICAgIC8vIERvbid0IGJvdGhlciBkcmF3aW5nIGFuIGVtcHR5IGFyZWEuCisgICAgaWYgKGhpZ2hs
aWdodFJlY3QuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBDYWxjdWxhdGUg
Ym9yZGVyIHJhZGl1czsgbmVlZCB0byBhdm9pZCBiZWluZyBzbWFsbGVyIHRoYW4gaGFsZiB0aGUg
c2xpZGVyIGhlaWdodAorICAgIC8vIGJlY2F1c2Ugb2YgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMwMTQzLgorICAgIGludCBib3JkZXJSYWRpdXMgPSByZWN0LmhlaWdo
dCgpIC8gMjsKKyAgICBJbnRTaXplIHJhZGlpKGJvcmRlclJhZGl1cywgYm9yZGVyUmFkaXVzKTsK
KworICAgIC8vIENhbGN1bGF0ZSB3aGl0ZS1ncmV5IGdyYWRpZW50LgorICAgIEludFBvaW50IHNs
aWRlclRvcExlZnQgPSBoaWdobGlnaHRSZWN0LmxvY2F0aW9uKCk7CisgICAgSW50UG9pbnQgc2xp
ZGVyQm90dG9tTGVmdCA9IHNsaWRlclRvcExlZnQ7CisgICAgc2xpZGVyQm90dG9tTGVmdC5tb3Zl
KDAsIGhpZ2hsaWdodFJlY3QuaGVpZ2h0KCkpOworICAgIENvbG9yIHN0YXJ0Q29sb3IgPSBDb2xv
cigyMjAsIDIyMCwgMjIwKTsKKyAgICBDb2xvciBlbmRDb2xvciA9IENvbG9yKDI0MCwgMjQwLCAy
NDApOworICAgIFJlZlB0cjxHcmFkaWVudD4gZ3JhZGllbnQgPSBHcmFkaWVudDo6Y3JlYXRlKHNs
aWRlclRvcExlZnQsIHNsaWRlckJvdHRvbUxlZnQpOworICAgIGdyYWRpZW50LT5hZGRDb2xvclN0
b3AoMC4wLCBzdGFydENvbG9yKTsKKyAgICBncmFkaWVudC0+YWRkQ29sb3JTdG9wKDEuMCwgZW5k
Q29sb3IpOworCisgICAgLy8gRmlsbCBoaWdobGlnaHQgcmVjdGFuZ2xlIHdpdGggZ3JhZGllbnQs
IHBvdGVudGlhbGx5IHJvdW5kZWQgaWYgb24gbGVmdCBvciByaWdodCBlZGdlLgorICAgIGNvbnRl
eHQtPnNhdmUoKTsKKyAgICBjb250ZXh0LT5zZXRGaWxsR3JhZGllbnQoZ3JhZGllbnQpOworCisg
ICAgaWYgKHN0YXJ0T2Zmc2V0IDwgYm9yZGVyUmFkaXVzICYmIGVuZE9mZnNldCA8IGJvcmRlclJh
ZGl1cykKKyAgICAgICAgY29udGV4dC0+ZmlsbFJvdW5kZWRSZWN0KGhpZ2hsaWdodFJlY3QsIHJh
ZGlpLCByYWRpaSwgcmFkaWksIHJhZGlpLCBzdGFydENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdC
KTsKKyAgICBlbHNlIGlmIChzdGFydE9mZnNldCA8IGJvcmRlclJhZGl1cykKKyAgICAgICAgY29u
dGV4dC0+ZmlsbFJvdW5kZWRSZWN0KGhpZ2hsaWdodFJlY3QsIHJhZGlpLCBJbnRTaXplKDAsIDAp
LCByYWRpaSwgSW50U2l6ZSgwLCAwKSwgc3RhcnRDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7
CisgICAgZWxzZSBpZiAoZW5kT2Zmc2V0IDwgYm9yZGVyUmFkaXVzKQorICAgICAgICBjb250ZXh0
LT5maWxsUm91bmRlZFJlY3QoaGlnaGxpZ2h0UmVjdCwgSW50U2l6ZSgwLCAwKSwgcmFkaWksIElu
dFNpemUoMCwgMCksIHJhZGlpLCBzdGFydENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAg
ICBlbHNlCisgICAgICAgIGNvbnRleHQtPmZpbGxSZWN0KGhpZ2hsaWdodFJlY3QpOworCisgICAg
Y29udGV4dC0+cmVzdG9yZSgpOworfQorCiBzdGF0aWMgYm9vbCBwYWludE1lZGlhU2xpZGVyKFJl
bmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50
UmVjdCYgcmVjdCkKIHsKICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSB0b1Bh
cmVudE1lZGlhRWxlbWVudChvYmplY3QpOwpAQCAtMTE1LDIzICsxODcsMTAgQEAgc3RhdGljIGJv
b2wgcGFpbnRNZWRpYVNsaWRlcihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZv
JiBwYWludEluZm8sIGMKICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBvYmplY3QtPnN0eWxlKCk7
CiAgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gcGFpbnRJbmZvLmNvbnRleHQ7CiAKLSAg
ICAvLyBEcmF3IHRoZSBib3JkZXIgb2YgdGhlIHRpbWUgYmFyLgotICAgIC8vIEZJWE1FOiB0aGlz
IHNob3VsZCBiZSBhIHJvdW5kZWQgcmVjdCBidXQgbmVlZCB0byBmaXggR3JhcGhpY3NDb250ZXh0
U2tpYSBmaXJzdC4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MzAxNDMKLSAgICBjb250ZXh0LT5zYXZlKCk7Ci0gICAgY29udGV4dC0+c2V0U2hvdWxkQW50
aWFsaWFzKHRydWUpOwotICAgIGNvbnRleHQtPnNldFN0cm9rZVN0eWxlKFNvbGlkU3Ryb2tlKTsK
LSAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihzdHlsZS0+dmlzaXRlZERlcGVuZGVudENvbG9y
KENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yKSwgQ29sb3JTcGFjZURldmljZVJHQik7Ci0gICAg
Y29udGV4dC0+c2V0U3Ryb2tlVGhpY2tuZXNzKHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSk7Ci0g
ICAgY29udGV4dC0+c2V0RmlsbENvbG9yKHN0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NT
UHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICBjb250
ZXh0LT5kcmF3UmVjdChyZWN0KTsKLSAgICBjb250ZXh0LT5yZXN0b3JlKCk7CisgICAgcGFpbnRS
b3VuZGVkU2xpZGVyQmFja2dyb3VuZChyZWN0LCBzdHlsZSwgY29udGV4dCk7CiAKICAgICAvLyBE
cmF3IHRoZSBidWZmZXJlZCByYW5nZS4gU2luY2UgdGhlIGVsZW1lbnQgbWF5IGhhdmUgbXVsdGlw
bGUgYnVmZmVyZWQgcmFuZ2VzIGFuZCBpdCdkIGJlCiAgICAgLy8gZGlzdHJhY3RpbmcvJ2J1c3kn
IHRvIHNob3cgYWxsIG9mIHRoZW0sIHNob3cgb25seSB0aGUgYnVmZmVyZWQgcmFuZ2UgY29udGFp
bmluZyB0aGUgY3VycmVudCBwbGF5IGhlYWQuCi0gICAgSW50UmVjdCBidWZmZXJlZFJlY3QgPSBy
ZWN0OwotICAgIGJ1ZmZlcmVkUmVjdC5pbmZsYXRlKC1zdHlsZS0+Ym9yZGVyTGVmdFdpZHRoKCkp
OwotCiAgICAgUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkVGltZVJhbmdlcyA9IG1lZGlhRWxl
bWVudC0+YnVmZmVyZWQoKTsKICAgICBmbG9hdCBkdXJhdGlvbiA9IG1lZGlhRWxlbWVudC0+ZHVy
YXRpb24oKTsKICAgICBmbG9hdCBjdXJyZW50VGltZSA9IG1lZGlhRWxlbWVudC0+Y3VycmVudFRp
bWUoKTsKQEAgLTE0NiwyNyArMjA1LDggQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVNsaWRlcihS
ZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGMKICAgICAg
ICAgZmxvYXQgc3RhcnRGcmFjdGlvbiA9IHN0YXJ0IC8gZHVyYXRpb247CiAgICAgICAgIGZsb2F0
IGVuZEZyYWN0aW9uID0gZW5kIC8gZHVyYXRpb247CiAgICAgICAgIGZsb2F0IHdpZHRoRnJhY3Rp
b24gPSBlbmRGcmFjdGlvbiAtIHN0YXJ0RnJhY3Rpb247Ci0gICAgICAgIGJ1ZmZlcmVkUmVjdC5t
b3ZlKHN0YXJ0RnJhY3Rpb24gKiBidWZmZXJlZFJlY3Qud2lkdGgoKSwgMCk7Ci0gICAgICAgIGJ1
ZmZlcmVkUmVjdC5zZXRXaWR0aCh3aWR0aEZyYWN0aW9uICogYnVmZmVyZWRSZWN0LndpZHRoKCkp
OwotCi0gICAgICAgIC8vIERvbid0IGJvdGhlciBkcmF3aW5nIGFuIGVtcHR5IGFyZWEuCi0gICAg
ICAgIGlmIChidWZmZXJlZFJlY3QuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0KLSAgICAgICAgSW50UG9pbnQgc2xpZGVyVG9wTGVmdCA9IGJ1ZmZlcmVkUmVjdC5sb2NhdGlv
bigpOwotICAgICAgICBJbnRQb2ludCBzbGlkZXJCb3R0b21MZWZ0ID0gc2xpZGVyVG9wTGVmdDsK
LSAgICAgICAgc2xpZGVyQm90dG9tTGVmdC5tb3ZlKDAsIGJ1ZmZlcmVkUmVjdC5oZWlnaHQoKSk7
Ci0KLSAgICAgICAgUmVmUHRyPEdyYWRpZW50PiBncmFkaWVudCA9IEdyYWRpZW50OjpjcmVhdGUo
c2xpZGVyVG9wTGVmdCwgc2xpZGVyQm90dG9tTGVmdCk7Ci0gICAgICAgIENvbG9yIHN0YXJ0Q29s
b3IgPSBvYmplY3QtPnN0eWxlKCktPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUNv
bG9yKTsKLSAgICAgICAgZ3JhZGllbnQtPmFkZENvbG9yU3RvcCgwLjAsIHN0YXJ0Q29sb3IpOwot
ICAgICAgICBncmFkaWVudC0+YWRkQ29sb3JTdG9wKDEuMCwgQ29sb3Ioc3RhcnRDb2xvci5yZWQo
KSAvIDIsIHN0YXJ0Q29sb3IuZ3JlZW4oKSAvIDIsIHN0YXJ0Q29sb3IuYmx1ZSgpIC8gMiwgc3Rh
cnRDb2xvci5hbHBoYSgpKSk7Ci0KLSAgICAgICAgY29udGV4dC0+c2F2ZSgpOwotICAgICAgICBj
b250ZXh0LT5zZXRTdHJva2VTdHlsZShOb1N0cm9rZSk7Ci0gICAgICAgIGNvbnRleHQtPnNldEZp
bGxHcmFkaWVudChncmFkaWVudCk7Ci0gICAgICAgIGNvbnRleHQtPmZpbGxSZWN0KGJ1ZmZlcmVk
UmVjdCk7Ci0gICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKKworICAgICAgICBwYWludFNsaWRl
clJhbmdlSGlnaGxpZ2h0KHJlY3QsIHN0eWxlLCBjb250ZXh0LCBzdGFydEZyYWN0aW9uLCB3aWR0
aEZyYWN0aW9uKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0xOTYsNTcgKzIz
NiwzNCBAQCBzdGF0aWMgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVyKFJlbmRlck9iamVjdCog
b2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBwYWludEluZm8uY29udGV4dDsKLSAgICBD
b2xvciBvcmlnaW5hbENvbG9yID0gY29udGV4dC0+c3Ryb2tlQ29sb3IoKTsKLSAgICBpZiAob3Jp
Z2luYWxDb2xvciAhPSBDb2xvcjo6d2hpdGUpCi0gICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNv
bG9yKENvbG9yOjp3aGl0ZSwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgUmVuZGVyU3R5bGUq
IHN0eWxlID0gb2JqZWN0LT5zdHlsZSgpOworCisgICAgcGFpbnRSb3VuZGVkU2xpZGVyQmFja2dy
b3VuZChyZWN0LCBzdHlsZSwgY29udGV4dCk7CisKKyAgICAvLyBDYWxjdWxhdGUgdm9sdW1lIHBv
c2l0aW9uIGZvciB3aGl0ZSBiYWNrZ3JvdW5kIHJlY3RhbmdsZS4KKyAgICBmbG9hdCB2b2x1bWUg
PSBtZWRpYUVsZW1lbnQtPnZvbHVtZSgpOworICAgIGlmIChpc25hbih2b2x1bWUpIHx8IHZvbHVt
ZSA8IDApCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh2b2x1bWUgPiAxKQorICAgICAg
ICB2b2x1bWUgPSAxOworCisgICAgLy8gQ2FsY3VsYXRlIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0
byB0aGUgY2VudGVyIG9mIHRoZSB0aHVtYi4KKyAgICBmbG9hdCB0aHVtYldpZHRoID0gMTIuMDsK
KyAgICBmbG9hdCB6b29tTGV2ZWwgPSBzdHlsZS0+ZWZmZWN0aXZlWm9vbSgpOworICAgIGZsb2F0
IHBvc2l0aW9uV2lkdGggPSB2b2x1bWUgKiAocmVjdC53aWR0aCgpIC0gKHpvb21MZXZlbCAqIHRo
dW1iV2lkdGgpKTsKKyAgICBmbG9hdCBmaWxsV2lkdGggPSBwb3NpdGlvbldpZHRoICsgKHpvb21M
ZXZlbCAqIHRodW1iV2lkdGggLyAyKTsKIAotICAgIGludCB4ID0gcmVjdC54KCkgKyByZWN0Lndp
ZHRoKCkgLyAyOwotICAgIGNvbnRleHQtPmRyYXdMaW5lKEludFBvaW50KHgsIHJlY3QueSgpKSwg
IEludFBvaW50KHgsIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSkpOworICAgIHBhaW50U2xpZGVy
UmFuZ2VIaWdobGlnaHQocmVjdCwgc3R5bGUsIGNvbnRleHQsIDAuMCwgZmlsbFdpZHRoIC8gcmVj
dC53aWR0aCgpKTsKIAotICAgIGlmIChvcmlnaW5hbENvbG9yICE9IENvbG9yOjp3aGl0ZSkKLSAg
ICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3Iob3JpZ2luYWxDb2xvciwgQ29sb3JTcGFjZURl
dmljZVJHQik7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29sIHBhaW50TWVkaWFW
b2x1bWVTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgc3RhdGljIEltYWdlKiBtZWRp
YVZvbHVtZVNsaWRlclRodW1iID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFWb2x1bWVTbGlkZXJU
aHVtYiIpOworICAgIHN0YXRpYyBJbWFnZSogbWVkaWFWb2x1bWVTbGlkZXJUaHVtYiA9IHBsYXRm
b3JtUmVzb3VyY2UoIm1lZGlhcGxheWVyVm9sdW1lU2xpZGVyVGh1bWIiKTsKICAgICByZXR1cm4g
cGFpbnRNZWRpYUJ1dHRvbihwYWludEluZm8uY29udGV4dCwgcmVjdCwgbWVkaWFWb2x1bWVTbGlk
ZXJUaHVtYik7CiB9CiAKLXN0YXRpYyBib29sIHBhaW50TWVkaWFUaW1lbGluZUNvbnRhaW5lcihS
ZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IElu
dFJlY3QmIHJlY3QpCi17Ci0gICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50ID0gdG9Q
YXJlbnRNZWRpYUVsZW1lbnQob2JqZWN0KTsKLSAgICBpZiAoIW1lZGlhRWxlbWVudCkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFyZWN0LmlzRW1wdHkoKSkgewotICAgICAgICBH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBwYWludEluZm8uY29udGV4dDsKLSAgICAgICAgQ29s
b3Igb3JpZ2luYWxDb2xvciA9IGNvbnRleHQtPnN0cm9rZUNvbG9yKCk7Ci0gICAgICAgIGZsb2F0
IG9yaWdpbmFsVGhpY2tuZXNzID0gY29udGV4dC0+c3Ryb2tlVGhpY2tuZXNzKCk7Ci0gICAgICAg
IFN0cm9rZVN0eWxlIG9yaWdpbmFsU3R5bGUgPSBjb250ZXh0LT5zdHJva2VTdHlsZSgpOwotCi0g
ICAgICAgIGNvbnRleHQtPnNldFN0cm9rZVN0eWxlKFNvbGlkU3Ryb2tlKTsKLQotICAgICAgICAv
LyBEcmF3IHRoZSBsZWZ0IGJvcmRlciB1c2luZyBDU1MgZGVmaW5lZCB3aWR0aCBhbmQgY29sb3Iu
Ci0gICAgICAgIGNvbnRleHQtPnNldFN0cm9rZVRoaWNrbmVzcyhvYmplY3QtPnN0eWxlKCktPmJv
cmRlckxlZnRXaWR0aCgpKTsKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3Iob2JqZWN0
LT5zdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29s
b3IpLnJnYigpLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICAgICAgY29udGV4dC0+ZHJhd0xp
bmUoSW50UG9pbnQocmVjdC54KCkgKyAxLCByZWN0LnkoKSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIEludFBvaW50KHJlY3QueCgpICsgMSwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpKSk7
Ci0KLSAgICAgICAgLy8gRHJhdyB0aGUgcmlnaHQgYm9yZGVyIHVzaW5nIENTUyBkZWZpbmVkIHdp
ZHRoIGFuZCBjb2xvci4KLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlVGhpY2tuZXNzKG9iamVj
dC0+c3R5bGUoKS0+Ym9yZGVyUmlnaHRXaWR0aCgpKTsKLSAgICAgICAgY29udGV4dC0+c2V0U3Ry
b2tlQ29sb3Iob2JqZWN0LT5zdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVy
dHlCb3JkZXJSaWdodENvbG9yKS5yZ2IoKSwgQ29sb3JTcGFjZURldmljZVJHQik7Ci0gICAgICAg
IGNvbnRleHQtPmRyYXdMaW5lKEludFBvaW50KHJlY3QueCgpICsgcmVjdC53aWR0aCgpIC0gMSwg
cmVjdC55KCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRQb2ludChyZWN0LngoKSAr
IHJlY3Qud2lkdGgoKSAtIDEsIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSkpOwotCi0gICAgICAg
IGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKG9yaWdpbmFsQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VS
R0IpOwotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VUaGlja25lc3Mob3JpZ2luYWxUaGlja25l
c3MpOwotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VTdHlsZShvcmlnaW5hbFN0eWxlKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHN0YXRpYyBib29sIHBhaW50TWVkaWFGdWxsc2Ny
ZWVuQnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVs
ZW1lbnQgPSB0b1BhcmVudE1lZGlhRWxlbWVudChvYmplY3QpOwpAQCAtMjc0LDggKzI5MSw2IEBA
IGJvb2wgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0
KE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlCiAgICAgICAgIHJldHVybiBwYWludE1lZGlhVm9sdW1l
U2xpZGVyKG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsKICAgICBjYXNlIE1lZGlhVm9sdW1lU2xp
ZGVyVGh1bWI6CiAgICAgICAgIHJldHVybiBwYWludE1lZGlhVm9sdW1lU2xpZGVyVGh1bWIob2Jq
ZWN0LCBwYWludEluZm8sIHJlY3QpOwotICAgIGNhc2UgTWVkaWFUaW1lbGluZUNvbnRhaW5lcjoK
LSAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFUaW1lbGluZUNvbnRhaW5lcihvYmplY3QsIHBhaW50
SW5mbywgcmVjdCk7CiAgICAgY2FzZSBNZWRpYUVudGVyRnVsbHNjcmVlbkJ1dHRvbjoKICAgICBj
YXNlIE1lZGlhRXhpdEZ1bGxzY3JlZW5CdXR0b246CiAgICAgICAgIHJldHVybiBwYWludE1lZGlh
RnVsbHNjcmVlbkJ1dHRvbihvYmplY3QsIHBhaW50SW5mbywgcmVjdCk7CkBAIC0yODMsNiArMjk4
LDcgQEAgYm9vbCBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBhaW50TWVkaWFDb250cm9s
c1BhcnQoTWVkaWFDb250cm9sRWxlbWVudFR5cGUKICAgICBjYXNlIE1lZGlhU2Vla0JhY2tCdXR0
b246CiAgICAgY2FzZSBNZWRpYVNlZWtGb3J3YXJkQnV0dG9uOgogICAgIGNhc2UgTWVkaWFWb2x1
bWVTbGlkZXJDb250YWluZXI6CisgICAgY2FzZSBNZWRpYVRpbWVsaW5lQ29udGFpbmVyOgogICAg
IGNhc2UgTWVkaWFDdXJyZW50VGltZURpc3BsYXk6CiAgICAgY2FzZSBNZWRpYVRpbWVSZW1haW5p
bmdEaXNwbGF5OgogICAgIGNhc2UgTWVkaWFDb250cm9sc1BhbmVsOgpAQCAtMzAxLDIxICszMTcs
MzMgQEAgYm9vbCBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBhaW50TWVkaWFDb250cm9s
c1BhcnQoTWVkaWFDb250cm9sRWxlbWVudFR5cGUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Nv
bnN0IGludCBtZWRpYVNsaWRlclRodW1iV2lkdGggPSAzMjsKK2NvbnN0IGludCBtZWRpYVNsaWRl
clRodW1iSGVpZ2h0ID0gMjQ7Citjb25zdCBpbnQgbWVkaWFWb2x1bWVTbGlkZXJUaHVtYldpZHRo
ID0gMjQ7Citjb25zdCBpbnQgbWVkaWFWb2x1bWVTbGlkZXJUaHVtYkhlaWdodCA9IDI0OworCiB2
b2lkIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6YWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNp
emUoUmVuZGVyU3R5bGUqIHN0eWxlKQogewotICAgIHN0YXRpYyBJbWFnZSogbWVkaWFTbGlkZXJU
aHVtYiA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhU2xpZGVyVGh1bWIiKTsKLSAgICBzdGF0aWMg
SW1hZ2UqIG1lZGlhVm9sdW1lU2xpZGVyVGh1bWIgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYVZv
bHVtZVNsaWRlclRodW1iIik7CisgICAgc3RhdGljIEltYWdlKiBtZWRpYVNsaWRlclRodW1iID0g
cGxhdGZvcm1SZXNvdXJjZSgibWVkaWFwbGF5ZXJTbGlkZXJUaHVtYiIpOworICAgIHN0YXRpYyBJ
bWFnZSogbWVkaWFWb2x1bWVTbGlkZXJUaHVtYiA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxh
eWVyVm9sdW1lU2xpZGVyVGh1bWIiKTsKKyAgICBpbnQgd2lkdGggPSAwOworICAgIGludCBoZWln
aHQgPSAwOwogCiAgICAgSW1hZ2UqIHRodW1iSW1hZ2UgPSAwOwotICAgIGlmIChzdHlsZS0+YXBw
ZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyVGh1bWJQYXJ0KQorICAgIGlmIChzdHlsZS0+YXBwZWFy
YW5jZSgpID09IE1lZGlhU2xpZGVyVGh1bWJQYXJ0KSB7CiAgICAgICAgIHRodW1iSW1hZ2UgPSBt
ZWRpYVNsaWRlclRodW1iOwotICAgIGVsc2UgaWYgKHN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gTWVk
aWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQpCisgICAgICAgIHdpZHRoID0gbWVkaWFTbGlkZXJUaHVt
YldpZHRoOworICAgICAgICBoZWlnaHQgPSBtZWRpYVNsaWRlclRodW1iSGVpZ2h0OworICAgIH0g
ZWxzZSBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFy
dCkgewogICAgICAgICB0aHVtYkltYWdlID0gbWVkaWFWb2x1bWVTbGlkZXJUaHVtYjsKKyAgICAg
ICAgd2lkdGggPSBtZWRpYVZvbHVtZVNsaWRlclRodW1iV2lkdGg7CisgICAgICAgIGhlaWdodCA9
IG1lZGlhVm9sdW1lU2xpZGVyVGh1bWJIZWlnaHQ7CisgICAgfQogCiAgICAgZmxvYXQgem9vbUxl
dmVsID0gc3R5bGUtPmVmZmVjdGl2ZVpvb20oKTsKICAgICBpZiAodGh1bWJJbWFnZSkgewotICAg
ICAgICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHN0YXRpY19jYXN0PGludD4odGh1bWJJbWFnZS0+
d2lkdGgoKSAqIHpvb21MZXZlbCksIEZpeGVkKSk7Ci0gICAgICAgIHN0eWxlLT5zZXRIZWlnaHQo
TGVuZ3RoKHN0YXRpY19jYXN0PGludD4odGh1bWJJbWFnZS0+aGVpZ2h0KCkgKiB6b29tTGV2ZWwp
LCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHN0YXRpY19jYXN0PGlu
dD4od2lkdGggKiB6b29tTGV2ZWwpLCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0SGVpZ2h0
KExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KGhlaWdodCAqIHpvb21MZXZlbCksIEZpeGVkKSk7CiAg
ICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IDgxNjdi
YTgyZjhmYzE2ZDBmODg5NzExZTQyZmZmYWM0ZTk0NTg5OTkuLjVlNTZiNmRmNTBlY2ZiMDNlNWQx
MTI5YWRmOTY3NzQ3ZjNhM2U3MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5oCkBAIC0xOTgsNiArMTk4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBoYXNPd25E
aXNhYmxlZFN0YXRlSGFuZGxpbmdGb3IoQ29udHJvbFBhcnQpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIHVzZXNNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5KCkgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgdXNlc01lZGlhQ29udHJvbFZvbHVtZVNs
aWRlcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgdXNlc1ZlcnRp
Y2FsVm9sdW1lU2xpZGVyKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgZG91
YmxlIG1lZGlhQ29udHJvbHNGYWRlSW5EdXJhdGlvbigpIHsgcmV0dXJuIDAuMTsgfQogICAgIHZp
cnR1YWwgZG91YmxlIG1lZGlhQ29udHJvbHNGYWRlT3V0RHVyYXRpb24oKSB7IHJldHVybiAwLjM7
IH0KICAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzVGltZShmbG9hdCB0aW1l
KSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUNocm9taXVtTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJv
bWl1bU1hYy5oCmluZGV4IDJiNGM4YzYzNWNjMjIzYzE4M2I1MThiMTJjZWFlZWY1MmZhYjBjNDMu
LmFhOTRhNDI5Zjc5M2QxZjIyYTQ4NzcwMWY5NzA0YTk1MjExZGEzMTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaApAQCAtNDIsNyAr
NDIsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFQbGF5QnV0dG9u
KFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYU11dGVCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFp
bnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhU2xp
ZGVyVHJhY2soUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYp
OwotICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kKFJlbmRlck9i
amVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIFN0
cmluZyBleHRyYU1lZGlhQ29udHJvbHNTdHlsZVNoZWV0KCk7CiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQogICAgIHZpcnR1YWwgU3RyaW5nIGV4dHJhRnVsbFNjcmVlblN0eWxlU2hlZXQoKTsK
QEAgLTU1LDYgKzU0LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgSW50UG9pbnQgdm9sdW1l
U2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oUmVuZGVyQm94KiwgY29uc3QgSW50U2l6ZSYpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB1c2VzTWVkaWFDb250cm9sU3RhdHVzRGlz
cGxheSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhhc093bkRpc2FibGVk
U3RhdGVIYW5kbGluZ0ZvcihDb250cm9sUGFydCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAg
IHZpcnR1YWwgYm9vbCB1c2VzVmVydGljYWxWb2x1bWVTbGlkZXIoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGJvb2wgdXNlc1Rlc3RNb2RlRm9jdXNSaW5n
Q29sb3IoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNocm9taXVtTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lQ2hyb21pdW1NYWMubW0KaW5kZXggYTc3ODIyOGM1NTIyZDZjMDI5NDI3MWVmMzdhOWI0NmM0
MGNlZDU0Zi4uNWE1YWY0ZGE2NWFiNGI0MDAwYTk1MDkzY2RjODVlNjc4NTZlZTQxOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0K
QEAgLTE3MywxMSArMTczLDYgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludE1l
ZGlhU2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFAKICAgICByZXR1cm4g
UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KE1lZGlh
U2xpZGVyLCBvYmplY3QsIHBhaW50SW5mbywgcmVjdCk7CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWVD
aHJvbWl1bU1hYzo6cGFpbnRNZWRpYUNvbnRyb2xzQmFja2dyb3VuZChSZW5kZXJPYmplY3QqIG9i
amVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCi17
Ci0gICAgcmV0dXJuIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6cGFpbnRNZWRpYUNvbnRy
b2xzUGFydChNZWRpYVRpbWVsaW5lQ29udGFpbmVyLCBvYmplY3QsIHBhaW50SW5mbywgcmVjdCk7
Ci19Ci0KIFN0cmluZyBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpleHRyYU1lZGlhQ29udHJvbHNT
dHlsZVNoZWV0KCkKIHsKICAgICByZXR1cm4gU3RyaW5nKG1lZGlhQ29udHJvbHNDaHJvbWl1bVVz
ZXJBZ2VudFN0eWxlU2hlZXQsIHNpemVvZihtZWRpYUNvbnRyb2xzQ2hyb21pdW1Vc2VyQWdlbnRT
dHlsZVNoZWV0KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bVNraWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lQ2hyb21pdW1Ta2lhLmNwcAppbmRleCA3YWQyYzEyYzM1MDQxZDgxOWUzN2UzYWQ5YjY1YWJk
MjdkYjYzYjg1Li5mOTk5NWMzODFkMTNmYWQ0N2EzZmFkYzg2Njk1Y2FmNmU3NTQzYzUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tp
YS5jcHAKQEAgLTM3OCwxOCArMzc4LDYgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6
cGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b24oUmVuZGVyT2JqZWN0KiBtYWduaWYKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OnBhaW50TWVk
aWFDb250cm9sc0JhY2tncm91bmQoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQotewotI2lmIEVOQUJMRShWSURFTykK
LSAgICByZXR1cm4gUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJv
bHNQYXJ0KE1lZGlhVGltZWxpbmVDb250YWluZXIsIG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsK
LSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7Ci0gICAgVU5VU0VEX1BBUkFNKHBhaW50
SW5mbyk7Ci0gICAgVU5VU0VEX1BBUkFNKHJlY3QpOwotICAgIHJldHVybiBmYWxzZTsKLSNlbmRp
ZgotfQotCiBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpwYWludE1lZGlhU2xpZGVyVHJh
Y2soUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBJbnRSZWN0JiByZWN0KQogewogI2lmIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKaW5kZXggMjg5ODkzZTMx
MzE3ODIwMTRmMTM1MGI3NDY1NjA5ODZmNmRmM2NiNy4uMWU3MTNlMGM2NmRmZjg3MDExYzY4YWRh
OTY5MmNmNjA3N2EyMTc0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKQEAgLTkxLDcgKzkxLDYgQEAgY2xhc3MgUmVuZGVyVGhl
bWVDaHJvbWl1bVNraWEgOiBwdWJsaWMgUmVuZGVyVGhlbWUgewogICAgICAgICB2aXJ0dWFsIHZv
aWQgYWRqdXN0U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciosIFJl
bmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRT
ZWFyY2hGaWVsZFJlc3VsdHNCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwg
Y29uc3QgSW50UmVjdCYpOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhQ29udHJv
bHNCYWNrZ3JvdW5kKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJl
Y3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFTbGlkZXJUcmFjayhSZW5kZXJP
YmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiwgY29uc3Qg
UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0
U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OwpAQCAtMTI3LDYg
KzEyNiw3IEBAIGNsYXNzIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhIDogcHVibGljIFJlbmRlclRo
ZW1lIHsKICNpZiBFTkFCTEUoVklERU8pCiAgICAgICAgIC8vIE1lZGlhIGNvbnRyb2xzCiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBoYXNPd25EaXNhYmxlZFN0YXRlSGFuZGxpbmdGb3IoQ29udHJvbFBh
cnQpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICAgICAgdmlydHVhbCBib29sIHVzZXNWZXJ0
aWNhbFZvbHVtZVNsaWRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAogICAg
ICAgICAvLyBQcm92aWRlIGEgd2F5IHRvIHBhc3MgdGhlIGRlZmF1bHQgZm9udCBzaXplIGZyb20g
dGhlIFNldHRpbmdzIG9iamVjdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk5ZmRmMjYxMTA3ZmNmZWFlMmE0OGFmYzk1YmZl
ZDViZDRmZTIwODIuLjVkZTU2N2E0NjUwMGQ3NzVmMjcwOTBkYjBiMzExY2ZmMTRlZjBjYjMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMi0wNi0wNSAgU2lsdmlhIFBmZWlmZmVyICA8c2lsdmlh
cGZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENoYW5nZSB0aGUgdm9sdW1lIHNsaWRlciB0byBo
b3Jpem9udGFsIHJlbmRlcmluZyBmb3IgQ2hyb21lIHZpZGVvIGNvbnRyb2xzLgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBDaHJvbWUgdmlkZW8g
Y29udHJvbHMgYXJlIHJlY2VpdmluZyBhIHZpc3VhbCB1cGRhdGUuIFRoZSB2b2x1bWUgc2xpZGVy
IGlzIGluY2x1ZGVkIGludG8KKyAgICAgICAgdGhlIGNvbnRyb2xzIHdpdGggaG9yaXpvbnRhbCBy
ZW5kZXJpbmcsIHRoZSB2b2x1bWUgc2xpZGVyIGNvbnRhaW5lciBpcyByZW1vdmVkLiBUaGUgdmlz
dWFsCisgICAgICAgIHVwZGF0ZSBpdHNlbGYgaXMgaW4gYSBzZXBhcmF0ZSBwYXRjaC4KKworICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIFRlbXBv
cmFyaWx5IHNraXAgdGVzdHMgcmVsYXRlZCB0byB2b2x1bWUgY29udHJvbHMgcmVuZGVyaW5nIGZv
ciBDaHJvbWl1bS4KKworMjAxMi0wNS0yOCAgU2lsdmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIEludHJvZHVjZSBhbiBFbmNsb3N1cmUgRWxlbWVudCBmb3Ig
Q2hyb21pdW0gdmlkZW8gY29udHJvbHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NzY4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENoYW5nZSBmdWxsc2NyZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRl
Lmh0bWwsIG1lZGlhL21lZGlhLWNvbnRyb2xzLWludmFsaWQtdXJsLmh0bWwgYW5kCisgICAgICAg
IG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctc25hcC10by1saW5lcy1ub3Qtc2V0Lmh0
bWwgdG8gZGVhbCB3aXRoIHRoZSBuZXcgZW5jbG9zdXJlCisgICAgICAgIGRpdiBpbiBDaHJvbWl1
bSBjb250cm9scyBhbmQgdXNlIHRoZSBtZWRpYUNvbnRyb2xzRWxlbWVudCgpIGhlbHBlciBmdW5j
dGlvbiB0byBmaW5kIGVsZW1lbnRzCisgICAgICAgIGluc2lkZSB0aGUgY29udHJvbHMuCisgICAg
ICAgIEZhaWwgdmlkZW8gY29udHJvbHMgdGVzdHMgaW4gdGVzdCBleHBlY3RhdGlvbnMuCisKKyAg
ICAgICAgKiBmdWxsc2NyZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRlLWV4cGVjdGVkLnR4dDog
VXBkYXRlZC4KKyAgICAgICAgKiBmdWxsc2NyZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRlLmh0
bWw6IFVzZSBtZWRpYUNvbnRyb2xzRWxlbWVudCBoZWxwZXIgZnVuY3Rpb24uCisgICAgICAgICog
bWVkaWEvbWVkaWEtY29udHJvbHMtaW52YWxpZC11cmwuaHRtbDogVXNlIG1lZGlhQ29udHJvbHNF
bGVtZW50IGhlbHBlciBmdW5jdGlvbi4KKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jdWUt
cmVuZGVyaW5nLXNuYXAtdG8tbGluZXMtbm90LXNldC5odG1sOiBIZWlnaHQgaXMgcHJvdmlkZWQg
YnkgZW5jbG9zdXJlIGVsZW1lbnQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4
cGVjdGF0aW9uczogRmFpbCB2aWRlbyBjb250cm9scyB0ZXN0cy4KKwogMjAxMi0wNi0wOCAgTm9l
bCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBS
dW4gb3B0aW1pemUtYmFzZWxpbmVzIG92ZXIgY2FudmFzLXRvRGF0YVVSTC13ZWJwLmh0bWwgcmVz
dWx0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi92aWRlby1jb250cm9scy1v
dmVycmlkZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL3ZpZGVvLWNvbnRy
b2xzLW92ZXJyaWRlLWV4cGVjdGVkLnR4dAppbmRleCBmMTkyYTM5MTczZDU0ZDFkOWY1MWIxNDFk
YWE0MWViZWExZjI4ZjJhLi4yNjM0OGJiN2U5YmU4NWRkNDdlMzg5YjUwZTY0YzNhMGM0ZTA3MjMw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJy
aWRlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL3ZpZGVvLWNvbnRy
b2xzLW92ZXJyaWRlLWV4cGVjdGVkLnR4dApAQCAtMiw3ICsyLDcgQEAgVGhpcyB0ZXN0cyB0aGF0
IHRoZSB2aWRlbyBlbGVtZW50J3MgImNvbnRyb2xzIiBhdHRyaWJ1dGUgaXMgb3ZlcnJpZGRlbiBp
biBmdWxsIHMKIAogRVZFTlQod2Via2l0ZnVsbHNjcmVlbmNoYW5nZSkKIEVYUEVDVEVEIChzaGFk
b3dSb290ID0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QodmlkZW8pICE9ICdudWxsJykgT0sKLUVYUEVD
VEVEIChwYW5lbCA9IHNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5maXJzdENoaWxkICE9ICdudWxsJykg
T0sKK0VYUEVDVEVEIChwYW5lbCA9IG1lZGlhQ29udHJvbHNFbGVtZW50KHNoYWRvd1Jvb3QuZmly
c3RDaGlsZCwgJy13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwnKSAhPSAnbnVsbCcpIE9LCiBF
WFBFQ1RFRCAoaW50ZXJuYWxzLnNoYWRvd1BzZXVkb0lkKHBhbmVsKSA9PSAnLXdlYmtpdC1tZWRp
YS1jb250cm9scy1wYW5lbCcpIE9LCiBFWFBFQ1RFRCAoZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0
Q29tcHV0ZWRTdHlsZShwYW5lbClbJ2Rpc3BsYXknXSAhPSAnbm9uZScpIE9LCiBFWFBFQ1RFRCAo
ZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShwYW5lbClbJ2hlaWdodCddID49
ICcyMHB4JykgT0sKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vdmlkZW8tY29u
dHJvbHMtb3ZlcnJpZGUuaHRtbCBiL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vdmlkZW8tY29udHJv
bHMtb3ZlcnJpZGUuaHRtbAppbmRleCA3MjE0YmJhMDdmZDMwN2MxMjI1ZjJmZTVhZjFiMzhhNTdk
YjIwNDIxLi40N2ZhNGZlNDFiNDkwMTA4MTJjYWM2YTIwNjk2YWRhNGJiYmYyZTkxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS5odG1s
CkBAIC0yLDYgKzIsNyBAQAogICAgIDxwPlRoaXMgdGVzdHMgdGhhdCB0aGUgdmlkZW8gZWxlbWVu
dCdzICJjb250cm9scyIgYXR0cmlidXRlIGlzIG92ZXJyaWRkZW4gaW4gZnVsbCBzY3JlZW4gbW9k
ZSwgYW5kIHRoYXQgdGhlIGNvbnRyb2xzIGFyZSBjb3JyZWN0bHkgaGlkZGVuIHVwb24gZXhpdGlu
ZyBmdWxsIHNjcmVlbi4gIFByZXNzIGFueSBrZXkgdG8gY29udGludWUuPC9wPgogICAgIDx2aWRl
byBpZD0idmlkZW8iIHdpZHRoPSIzMDAiPjwvdmlkZW8+CiAgICAgPHNjcmlwdCBzcmM9ImZ1bGwt
c2NyZWVuLXRlc3QuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIuLi9tZWRpYS9tZWRp
YS1jb250cm9scy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdD4KICAgICAgICAgdmFyIGNhbGxi
YWNrOwogICAgICAgICB2YXIgc2hhZG93Um9vdDsKQEAgLTE5LDcgKzIwLDcgQEAKICAgICAgICAg
dmFyIHZpZGVvRW50ZXJlZEZ1bGxTY3JlZW4gPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJzaGFk
b3dSb290ID0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QodmlkZW8pIiwgbnVsbCwgIiE9Iik7Ci0gICAg
ICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJwYW5lbCA9IHNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5m
aXJzdENoaWxkIiwgbnVsbCwgIiE9Iik7CisgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJw
YW5lbCA9IG1lZGlhQ29udHJvbHNFbGVtZW50KHNoYWRvd1Jvb3QuZmlyc3RDaGlsZCwgJy13ZWJr
aXQtbWVkaWEtY29udHJvbHMtcGFuZWwnKSIsIG51bGwsICIhPSIpOwogICAgICAgICAgICAgICAg
IHRlc3RFeHBlY3RlZCgiaW50ZXJuYWxzLnNoYWRvd1BzZXVkb0lkKHBhbmVsKSIsICItd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXBhbmVsIik7CiAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJk
b2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHBhbmVsKVsnZGlzcGxheSddIiwg
J25vbmUnLCAiIT0iKTsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImRvY3VtZW50LmRl
ZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocGFuZWwpWydoZWlnaHQnXSIsICcyMHB4JywgIj49
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1jb250cm9scy1pbnZhbGlk
LXVybC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtY29udHJvbHMtaW52YWxpZC11cmwu
aHRtbAppbmRleCA4Mjg2NWVkZGVlNzJjYjIxNTBkYTg5MTY4NjY2MjIwMzBiYWRlZDc0Li5jZGY2
NGNmZDRjNWMxM2JjZWZmNmY4ZjIzYmM2NzRlYTJmOWQ1M2RkIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9tZWRpYS9tZWRpYS1jb250cm9scy1pbnZhbGlkLXVybC5odG1sCisrKyBiL0xheW91dFRl
c3RzL21lZGlhL21lZGlhLWNvbnRyb2xzLWludmFsaWQtdXJsLmh0bWwKQEAgLTMsNiArMyw3IEBA
CiAgICAgPGhlYWQ+CiAgICAgICAgIDxzY3JpcHQgc3JjPW1lZGlhLWZpbGUuanM+PC9zY3JpcHQ+
CiAgICAgICAgIDxzY3JpcHQgc3JjPXZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgICAgIDxz
Y3JpcHQgc3JjPW1lZGlhLWNvbnRyb2xzLmpzPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0Pgog
ICAgICAgICAgICAgdmFyIHZpZGVvOwogCkBAIC0xOCwyOSArMTksMTUgQEAKIAogICAgICAgICAg
ICAgZnVuY3Rpb24gZ2V0VGltZUxpbmVWYWx1ZSgpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgdmFyIHRpbWVsaW5lQ29udGFpbmVyOwotICAgICAgICAgICAgICAgIHZhciB0aW1lbGlu
ZVZhbHVlOworICAgICAgICAgICAgICAgIHZhciB0aW1lbGluZTsKKyAgICAgICAgICAgICAgICB2
YXIgc2hhZG93Um9vdCA9IGludGVybmFscy5zaGFkb3dSb290KHZpZGVvKTsKIAotICAgICAgICAg
ICAgICAgIHZhciBjb250cm9sc1NoYWRvdyA9IGludGVybmFscy5zaGFkb3dSb290KHZpZGVvKS5m
aXJzdENoaWxkLmZpcnN0Q2hpbGQ7Ci0gICAgICAgICAgICAgICAgZm9yIChjaGlsZCA9IGNvbnRy
b2xzU2hhZG93LmZpcnN0Q2hpbGQ7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLm5leHRTaWJsaW5nKQot
ICAgICAgICAgICAgICAgICAgICBpZiAoaW50ZXJuYWxzLnNoYWRvd1BzZXVkb0lkKGNoaWxkKSA9
PSAiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIiKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB0aW1lbGluZUNvbnRhaW5lciA9IGNoaWxkOwotICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAg
ICB0aW1lbGluZSA9IG1lZGlhQ29udHJvbHNFbGVtZW50KHNoYWRvd1Jvb3QuZmlyc3RDaGlsZC5m
aXJzdENoaWxkLCAnLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZScpOwogCi0gICAgICAg
ICAgICAgICAgaWYoIXRpbWVsaW5lQ29udGFpbmVyKQotICAgICAgICAgICAgICAgICAgICB0aHJv
dyAiRmFpbGQgdG8gZmluZCAtd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5l
ciI7Ci0KLSAgICAgICAgICAgICAgICBmb3IgKGNoaWxkID0gdGltZWxpbmVDb250YWluZXIuZmly
c3RDaGlsZDsgY2hpbGQ7IGNoaWxkID0gY2hpbGQubmV4dFNpYmxpbmcpCi0gICAgICAgICAgICAg
ICAgICAgIGlmIChpbnRlcm5hbHMuc2hhZG93UHNldWRvSWQoY2hpbGQpID09ICItd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXRpbWVsaW5lIikgewotICAgICAgICAgICAgICAgICAgICAgICAgdGltZWxp
bmVWYWx1ZSA9IGNoaWxkLnZhbHVlOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmKCF0aW1lbGluZUNvbnRh
aW5lcikKKyAgICAgICAgICAgICAgICBpZighdGltZWxpbmUpCiAgICAgICAgICAgICAgICAgICAg
IHRocm93ICJGYWlsZCB0byBmaW5kIC13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUiOwog
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHRpbWVsaW5lVmFsdWU7CisgICAgICAgICAgICAgICAg
cmV0dXJuIHRpbWVsaW5lLnZhbHVlOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBmdW5j
dGlvbiBlcnJvcigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1j
dWUtcmVuZGVyaW5nLXNuYXAtdG8tbGluZXMtbm90LXNldC5odG1sIGIvTGF5b3V0VGVzdHMvbWVk
aWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1zbmFwLXRvLWxpbmVzLW5vdC1zZXQuaHRtbApp
bmRleCAyOWQ1Yzg1NzFmNjg2ODc1M2Q5YjUyMDNiMWUxMmU5M2EyNDU2MTg1Li4yMmVhZmUzZTk1
NDQ2MzU1MzFlMGQyMzlhZTRhYjczYTMzZTI3MThiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9t
ZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLXNuYXAtdG8tbGluZXMtbm90LXNldC5odG1s
CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctc25hcC10
by1saW5lcy1ub3Qtc2V0Lmh0bWwKQEAgLTg5LDcgKzg5LDEwIEBACiAgICAgICAgICAgICBmaW5k
TWVkaWFFbGVtZW50KCk7CiAgICAgICAgICAgICB0ZXN0VHJhY2sgPSBkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCd0cmFjaycpOwogICAgICAgICAgICAgdmlkZW8uc3JjID0gZmluZE1lZGlhRmlsZSgn
dmlkZW8nLCAnLi4vY29udGVudC90ZXN0Jyk7Ci0gICAgICAgICAgICBjb250cm9sc1BhbmVsRWxl
bWVudCA9IG1lZGlhQ29udHJvbHNFbGVtZW50KGludGVybmFscy5zaGFkb3dSb290KHZpZGVvKS5m
aXJzdENoaWxkLCAnLXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCcpOworCisgICAgICAgICAg
ICAvLyBJbiBDaHJvbWl1bSBpdCBpcyB0aGUgZW5jbG9zdXJlIGVsZW1lbnQsIHdoaWNoIHByb3Zp
ZGVzIHRoZSBjb250cm9scyBoZWlnaHQsIG90aGVyd2lzZSB0aGUgcGFuZWw7CisgICAgICAgICAg
ICAvLyBib3RoIGFyZSB0aGUgc2Vjb25kIGNoaWxkIGluIHRoZSBzaGFkb3cgRE9NLgorICAgICAg
ICAgICAgY29udHJvbHNQYW5lbEVsZW1lbnQgPSBpbnRlcm5hbHMuc2hhZG93Um9vdCh2aWRlbyku
Zmlyc3RDaGlsZC5maXJzdENoaWxkOwogCiAgICAgICAgICAgICB3YWl0Rm9yRXZlbnQoJ2NhbnBs
YXl0aHJvdWdoJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgY3VlRGlzcGxheUNvbnRh
aW5lciA9IHRleHRUcmFja0Rpc3BsYXlFbGVtZW50KHZpZGVvKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGJjMTBlNTQ0OGY5ODA5Zjhm
OTZiY2I0OGEzMDQ2ZDMzOTk4MjRkM2EuLjk2MGUwZDY1NjAyOWE3OWU4NjE4YjRmZTczOWY3NWM3
OGQ5MGJiODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVj
dGF0aW9ucwpAQCAtNzczLDYgKzc3MywxMSBAQCBXT05URklYIFNLSVAgOiBtZWRpYS92aWRlby1z
aXplLWludHJpbnNpYy1zY2FsZS5odG1sID0gVElNRU9VVCBGQUlMCiAvLyBEb2Vzbid0IGFwcGx5
IHRvIENocm9taXVtIChRdWlja1RpbWUtc3BlY2lmaWMgYmVoYXZpb3IpCiBXT05URklYIFNLSVAg
OiBtZWRpYS92aWRlby1kb2VzLW5vdC1sb29wLmh0bWwgPSBUSU1FT1VUCiAKKy8vIERvZXNuJ3Qg
YXBwbHkgdG8gQ2hyb21pdW0gYW55IGxvbmdlciAtIHZvbHVtZSBzbGlkZXIgaXMgaW5saW5lIHdp
dGggdmlkZW8gY29udHJvbHMuCitXT05URklYIFNLSVAgOiBtZWRpYS92aWRlby12b2x1bWUtc2xp
ZGVyLmh0bWwgPSBGQUlMCitXT05URklYIFNLSVAgOiBtZWRpYS9tZWRpYS12b2x1bWUtc2xpZGVy
LXJlbmRlcmVkLWJlbG93Lmh0bWwgPSBGQUlMCitXT05URklYIFNLSVAgOiBtZWRpYS9tZWRpYS12
b2x1bWUtc2xpZGVyLXJlbmRlcmVkLW5vcm1hbC5odG1sID0gRkFJTAorCiAvLyBRdWlja1RpbWUg
cmVmZXJlbmNlIG1vdmllcyBub3Qgc3VwcG9ydGVkLgogV09OVEZJWCBTS0lQIDogaHR0cC90ZXN0
cy9tZWRpYS92aWRlby1jcm9zcy1zaXRlLmh0bWwgPSBQQVNTIEZBSUwgVElNRU9VVAogCkBAIC0z
MDIwLDYgKzMwMjUsMjYgQEAgQlVHV0s3Mzg2NSA6IG1lZGlhL3RyYWNrL3RleHQtdHJhY2staXMt
cmVhY2hhYmxlLmh0bWwgPSBURVhUIENSQVNICiBCVUdXSzgxNDAyIFdJTiA6IG1lZGlhL3RyYWNr
L3RyYWNrLWFjdGl2ZS1jdWVzLmh0bWwgPSBQQVNTIFRJTUVPVVQKIEJVR1dLODM4ODIgOiBtZWRp
YS90cmFjay90cmFjay1tb2RlLmh0bWwgPSBQQVNTIFRFWFQgVElNRU9VVAogCisvLyBOZWVkIHJl
YmFzZWxpbmUuCitCVUdXSzg3NjgzIDogZmFzdC9sYXllcnMvdmlkZW8tbGF5ZXIuaHRtbCA9IEZB
SUwKK0JVR1dLODc2ODMgOiBmdWxsc2NyZWVuL2Z1bGwtc2NyZWVuLXN0YWNraW5nLWNvbnRleHQu
aHRtbCA9IEZBSUwKK0JVR1dLODc2ODMgOiBtZWRpYS9hdWRpby1jb250cm9scy1yZW5kZXJpbmcu
aHRtbCA9IEZBSUwKK0JVR1dLODc2ODMgOiBtZWRpYS9hdWRpby1yZXBhaW50Lmh0bWwgPSBGQUlM
CitCVUdXSzg3NjgzIDogbWVkaWEvY29udHJvbHMtYWZ0ZXItcmVsb2FkLmh0bWwgPSBGQUlMCitC
VUdXSzg3NjgzIDogbWVkaWEvY29udHJvbHMtbGF5b3V0LWRpcmVjdGlvbi5odG1sID0gRkFJTAor
QlVHV0s4NzY4MyA6IG1lZGlhL2NvbnRyb2xzLXN0cmljdC5odG1sID0gRkFJTAorQlVHV0s4NzY4
MyA6IG1lZGlhL2NvbnRyb2xzLXN0eWxpbmcuaHRtbCA9IEZBSUwKK0JVR1dLODc2ODMgOiBtZWRp
YS9jb250cm9scy13aXRob3V0LXByZWxvYWQuaHRtbCA9IEZBSUwKK0JVR1dLODc2ODMgOiBtZWRp
YS9tZWRpYS1jb250cm9scy1jbG9uZS5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL21l
ZGlhLWRvY3VtZW50LWF1ZGlvLXJlcGFpbnQuaHRtbCA9IEZBSUwKK0JVR1dLODc2ODMgOiBtZWRp
YS92aWRlby1jb250cm9scy1yZW5kZXJpbmcuaHRtbCA9IEZBSUwKK0JVR1dLODc2ODMgOiBtZWRp
YS92aWRlby1kaXNwbGF5LXRvZ2dsZS5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL3Zp
ZGVvLWVtcHR5LXNvdXJjZS5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL3ZpZGVvLW5v
LWF1ZGlvLmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDogbWVkaWEvdmlkZW8tcGxheWluZy1hbmQt
cGF1c2UuaHRtbCA9IEZBSUwKK0JVR1dLODc2ODMgOiBtZWRpYS92aWRlby16b29tLWNvbnRyb2xz
Lmh0bWwgPSBGQUlMCitCVUdXSzg3ODM1IDogaHR0cC90ZXN0cy9tZWRpYS92aWRlby1idWZmZXJl
ZC1yYW5nZS1jb250YWlucy1jdXJyZW50VGltZS5odG1sID0gRkFJTAorCiBCVUdXSzcyMjcxIFNO
T1dMRU9QQVJEIERFQlVHIDogZmFzdC9kb20vbm9kZS1pdGVyYXRvci1yZWZlcmVuY2Utbm9kZS1t
b3ZlZC1jcmFzaC5odG1sID0gUEFTUyBDUkFTSAogCiBCVUdXSzcyMzc2IFdJTiA6IGZhc3QvZm9y
bXMvZmlsZS9pbnB1dC1maWxlLWxhYmVsLmh0bWwgPSBURVhUIFBBU1MK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146557</attachid>
            <date>2012-06-08 06:45:13 -0700</date>
            <delta_ts>2012-06-09 07:19:07 -0700</delta_ts>
            <desc>Use this for review</desc>
            <filename>patch4.diff</filename>
            <type>text/plain</type>
            <size>14244</size>
            <attacher name="Silvia Pfeiffer">silviapf</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMzk3ZjllLi5jZWIyYjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDQg
QEAKIDIwMTItMDYtMDggIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4K
IAorICAgICAgICBVcGRhdGUgcmFuZ2Ugc2xpZGVycyByZW5kZXJpbmcgZm9yIHZvbHVtZSBhbmQg
cGxheWJhY2sgcG9zaXRpb24gb2YgbmV3IENocm9tZSB2aWRlbyBjb250cm9scy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NjIzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBmaW5h
bCBwYXRjaCB3aWxsIGNvbnRhaW4gdGhlIHJlYmFzZWxpbmVkIHRlc3RzLgorCisgICAgICAgIFRo
ZSBDaHJvbWUgdmlkZW8gY29udHJvbHMgYXJlIHJlY2VpdmluZyBhIHZpc3VhbCB1cGRhdGUuIFRo
aXMgcGF0Y2ggY29udGFpbnMgdXBkYXRlcyB0byB0aGUKKyAgICAgICAgcmVuZGVyaW5nIG9mIHRo
ZSByYW5nZSBzbGlkZXJzIGZvciB0aGUgcGxheWJhY2sgcG9zaXRpb24gYW5kIHRoZSB2b2x1bWUu
IFRoaXMgaW5jbHVkZXMgdGhlCisgICAgICAgIGNyZWF0aW9uIG9mIGEgc2hhZG93UHNldWRvSWQg
dG8gYmUgYWJsZSB0byBzdHlsZSB0aGUgcmFuZ2Ugc2xpZGVycyB2aWEgQ1NTLCB0aGUgcmVuZGVy
aW5nCisgICAgICAgIG9mIHRoZSBzbGlkZXIgYmFja2dyb3VuZCBhbmQgdGhlIGhpZ2hsaWdodGVk
IHJhbmdlcy4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzOgorICAg
ICAgICAoaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVy
KToKKyAgICAgICAgQWRqdXN0IHRoZSBzdHlsaW5nIG9mIHRoZSBzbGlkZXIgY29udGFpbmVyIGJh
Y2tncm91bmRzLgorICAgICAgICAoaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1tZWRpYS1z
bGlkZXItdGh1bWIpOgorICAgICAgICBBZGp1c3QgdGhlIHN0eWxpbmcgb2YgdGhlIHNsaWRlciB0
aHVtYnMuCisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAg
ICAgICBBZGQgYSBkaWZmZXJlbnQgQ1NTIHBzZXVkby1jbGFzcyBuYW1lIHRvIHRoZSBtZWRpYSBz
bGlkZXIgdGh1bWJzLgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tMaW1pdGVyRWxlbWVudDo6c2hh
ZG93UHNldWRvSWQpOgorICAgICAgICBBZGQgYSBkaWZmZXJlbnQgQ1NTIHBzZXVkby1jbGFzcyBu
YW1lIHRvIHRoZSBtZWRpYSBzbGlkZXIgdGh1bWJzLgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVy
Q29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICBBZGQgYSBkaWZmZXJl
bnQgQ1NTIHBzZXVkby1jbGFzcyBuYW1lIHRvIHRoZSBtZWRpYSBzbGlkZXIgYmFja2dyb3VuZCBj
b250YWluZXIuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYWludFJvdW5kZWRTbGlkZXJCYWNrZ3JvdW5kKToK
KyAgICAgICAgQWRkIGZ1bmN0aW9uIHRvIGRyYXcgcm91bmRlZCBiYWNrZ3JvdW5kIG9mIHNsaWRl
cnMgaW4gYSBkYXJrIGNvbG9yLgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRTbGlkZXJSYW5nZUhp
Z2hsaWdodCk6CisgICAgICAgIEFkZCBmdW5jdGlvbiB0byBkcmF3IGEgaGlnaGxpZ2h0ZWQgZ3Jl
eSByZWdpb24gb24gdGhlIHNsaWRlcnMsIHdoaWNoIGlzIHJvdW5kZWQgb25seSBhdAorICAgICAg
ICBpdHMgZW5kcy4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFTbGlkZXIpOgorICAgICAg
ICBVcGRhdGUgdGhlIGJhY2tncm91bmQgYW5kIGJ1ZmZlcmVkIHJhbmdlIHJlbmRlcmluZ3Mgb24g
dGhlIHBsYXliYWNrIHBvc2l0aW9uIHNsaWRlciBieSBtYWtpbmcKKyAgICAgICAgdXNlIG9mIHRo
ZSBuZXcgaGVscGVyIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFWb2x1
bWVTbGlkZXIpOgorICAgICAgICBVcGRhdGUgdGhlIGJhY2tncm91bmQgYW5kIGJ1ZmZlcmVkIHJh
bmdlIHJlbmRlcmluZ3Mgb24gdGhlIHZvbHVtZSBzbGlkZXIgYnkgbWFraW5nCisgICAgICAgIHVz
ZSBvZiB0aGUgbmV3IGhlbHBlciBmdW5jdGlvbnMuCisKKzIwMTItMDYtMDYgIFNpbHZpYSBQZmVp
ZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4KKwogICAgICAgICBDaGFuZ2UgdGhlIHN0eWxp
bmcgb2YgdGhlIENocm9taXVtIHZpZGVvIGNvbnRyb2xzLgogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgyOTcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
bWVkaWFDb250cm9sc0Nocm9taXVtLmNzcwppbmRleCA5ZWQ4Y2M3Li4yZDk3ZWQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcworKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcwpAQCAtMTQzLDMgKzE0
MywyOSBAQCBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLCB2aWRl
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bQogICAgIGJhY2tncm91bmQtY29sb3I6IHRy
YW5zcGFyZW50OwogICAgIG1pbi13aWR0aDogMTVweDsKIH0KKworLyogRklYTUUgdGhlc2Ugc2hv
dWxkbid0IHVzZSBzcGVjaWFsIHBzZXVkb1NoYWRvd0lkcywgYnV0IG5pY2VyIHJ1bGVzLgorICAg
aHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTExMjUw
OAorICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjE4CisqLwor
aW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVyIHsKKyAg
ICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOwor
ICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsgLyogVGhpcyBwcm9wZXJ0eSBpcyB1
cGRhdGVkIGJ5IEMrKyBjb2RlLiAqLworICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJv
eDsKKyAgICBoZWlnaHQ6IDEwMCU7CisgICAgd2lkdGg6IDEwMCU7CisgICAgYm9yZGVyOiAxcHgg
c29saWQgcmdiKDEzMCwgMTMwLCAxMzApOworICAgIGJvcmRlci1yYWRpdXM6IDRweDsKKyAgICBi
YWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogQmFja2dyb3VuZCBkcmF3aW5nIGlzIG1h
bmFnZWQgYnkgQysrIGNvZGUgdG8gZHJhdyByYW5nZXMuICovCit9CisKK2lucHV0W3R5cGU9InJh
bmdlIl06Oi13ZWJraXQtbWVkaWEtc2xpZGVyLXRodW1iIHsKKyAgICBkaXNwbGF5OiBibG9jazsK
KyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHNsaWRlcnRodW1iLWhvcml6b250YWw7CisgICAgLXdl
YmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAg
ICBib3R0b206IDFweDsKKyAgICBtYXJnaW4tbGVmdDogLTdweDsKKyAgICBtYXJnaW4tcmlnaHQ6
IC03cHg7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5kZXggNmEyOGJkZC4uMDEy
ZGFhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVs
ZW1lbnQuY3BwCkBAIC0zMjcsNyArMzI3LDI0IEBAIEhUTUxJbnB1dEVsZW1lbnQqIFNsaWRlclRo
dW1iRWxlbWVudDo6aG9zdElucHV0KCkgY29uc3QKIGNvbnN0IEF0b21pY1N0cmluZyYgU2xpZGVy
VGh1bWJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIHNsaWRlclRodW1iLCAoIi13ZWJraXQtc2xpZGVyLXRodW1i
IikpOwotICAgIHJldHVybiBzbGlkZXJUaHVtYjsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0
b21pY1N0cmluZywgbWVkaWFTbGlkZXJUaHVtYiwgKCItd2Via2l0LW1lZGlhLXNsaWRlci10aHVt
YiIpKTsKKworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gaG9zdElucHV0KCk7CisgICAg
aWYgKCFpbnB1dCkKKyAgICAgICAgcmV0dXJuIHNsaWRlclRodW1iOworCisgICAgUmVuZGVyU3R5
bGUqIHNsaWRlclN0eWxlID0gaW5wdXQtPnJlbmRlcmVyKCktPnN0eWxlKCk7CisgICAgc3dpdGNo
IChzbGlkZXJTdHlsZS0+YXBwZWFyYW5jZSgpKSB7CisgICAgY2FzZSBNZWRpYVNsaWRlclBhcnQ6
CisgICAgY2FzZSBNZWRpYVNsaWRlclRodW1iUGFydDoKKyAgICBjYXNlIE1lZGlhVm9sdW1lU2xp
ZGVyUGFydDoKKyAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgorICAgIGNhc2Ug
TWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyUGFydDoKKyAgICBjYXNlIE1lZGlhRnVsbFNjcmVl
blZvbHVtZVNsaWRlclRodW1iUGFydDoKKyAgICAgICAgcmV0dXJuIG1lZGlhU2xpZGVyVGh1bWI7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHNsaWRlclRodW1iOworICAgIH0KIH0KIAog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM1NSw3ICszNzIsMjQgQEAg
UmVuZGVyT2JqZWN0KiBUcmFja0xpbWl0ZXJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJB
cmVuYSogYXJlbmEsIFJlbmRlclN0eWwKIGNvbnN0IEF0b21pY1N0cmluZyYgVHJhY2tMaW1pdGVy
RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBzbGlkZXJUaHVtYiwgKCItd2Via2l0LXNsaWRlci10aHVtYiIpKTsK
LSAgICByZXR1cm4gc2xpZGVyVGh1bWI7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIG1lZGlhU2xpZGVyVGh1bWIsICgiLXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIiKSk7
CisKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHNoYWRvd0FuY2VzdG9yTm9kZSgpLT50
b0lucHV0RWxlbWVudCgpOworICAgIGlmICghaW5wdXQpCisgICAgICAgIHJldHVybiBzbGlkZXJU
aHVtYjsKKworICAgIFJlbmRlclN0eWxlKiBzbGlkZXJTdHlsZSA9IGlucHV0LT5yZW5kZXJlcigp
LT5zdHlsZSgpOworICAgIHN3aXRjaCAoc2xpZGVyU3R5bGUtPmFwcGVhcmFuY2UoKSkgeworICAg
IGNhc2UgTWVkaWFTbGlkZXJQYXJ0OgorICAgIGNhc2UgTWVkaWFTbGlkZXJUaHVtYlBhcnQ6Cisg
ICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ6CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRl
clRodW1iUGFydDoKKyAgICBjYXNlIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclBhcnQ6Cisg
ICAgY2FzZSBNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXJUaHVtYlBhcnQ6CisgICAgICAgIHJl
dHVybiBtZWRpYVNsaWRlclRodW1iOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBzbGlk
ZXJUaHVtYjsKKyAgICB9CiB9CiAKIFRyYWNrTGltaXRlckVsZW1lbnQqIHRyYWNrTGltaXRlckVs
ZW1lbnRPZihOb2RlKiBub2RlKQpAQCAtMzg4LDggKzQyMiwyNSBAQCBSZW5kZXJPYmplY3QqIFNs
aWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwg
UmVuZGVyUwogCiBjb25zdCBBdG9taWNTdHJpbmcmIFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnNo
YWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0
cmluZywgc2xpZGVyVGh1bWIsICgiLXdlYmtpdC1zbGlkZXItY29udGFpbmVyIikpOwotICAgIHJl
dHVybiBzbGlkZXJUaHVtYjsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywg
bWVkaWFTbGlkZXJDb250YWluZXIsICgiLXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVyIikp
OworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzbGlkZXJDb250YWluZXIs
ICgiLXdlYmtpdC1zbGlkZXItY29udGFpbmVyIikpOworCisgICAgSFRNTElucHV0RWxlbWVudCog
aW5wdXQgPSBzaGFkb3dBbmNlc3Rvck5vZGUoKS0+dG9JbnB1dEVsZW1lbnQoKTsKKyAgICBpZiAo
IWlucHV0KQorICAgICAgICByZXR1cm4gc2xpZGVyQ29udGFpbmVyOworCisgICAgUmVuZGVyU3R5
bGUqIHNsaWRlclN0eWxlID0gaW5wdXQtPnJlbmRlcmVyKCktPnN0eWxlKCk7CisgICAgc3dpdGNo
IChzbGlkZXJTdHlsZS0+YXBwZWFyYW5jZSgpKSB7CisgICAgY2FzZSBNZWRpYVNsaWRlclBhcnQ6
CisgICAgY2FzZSBNZWRpYVNsaWRlclRodW1iUGFydDoKKyAgICBjYXNlIE1lZGlhVm9sdW1lU2xp
ZGVyUGFydDoKKyAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgorICAgIGNhc2Ug
TWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyUGFydDoKKyAgICBjYXNlIE1lZGlhRnVsbFNjcmVl
blZvbHVtZVNsaWRlclRodW1iUGFydDoKKyAgICAgICAgcmV0dXJuIG1lZGlhU2xpZGVyQ29udGFp
bmVyOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBzbGlkZXJDb250YWluZXI7CisgICAg
fQogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVk
aWFDb250cm9sc0Nocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwCmluZGV4IGUzNzgyZDUuLjlhN2I2ZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hy
b21pdW0uY3BwCkBAIC0xMTMsNiArMTEzLDcxIEBAIHN0YXRpYyBJbWFnZSogZ2V0TWVkaWFTbGlk
ZXJUaHVtYigpCiAgICAgcmV0dXJuIG1lZGlhU2xpZGVyVGh1bWI7CiB9CiAKK3N0YXRpYyB2b2lk
IHBhaW50Um91bmRlZFNsaWRlckJhY2tncm91bmQoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3Qg
UmVuZGVyU3R5bGUqIHN0eWxlLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpCit7CisgICAgaW50
IGJvcmRlclJhZGl1cyA9IHJlY3QuaGVpZ2h0KCkgLyAyOworICAgIEludFNpemUgcmFkaWkoYm9y
ZGVyUmFkaXVzLCBib3JkZXJSYWRpdXMpOworICAgIENvbG9yIHNsaWRlckJhY2tncm91bmRDb2xv
ciA9IENvbG9yKDI5LCAyOSwgMjkpOworICAgIGNvbnRleHQtPnNhdmUoKTsKKyAgICBjb250ZXh0
LT5maWxsUm91bmRlZFJlY3QocmVjdCwgcmFkaWksIHJhZGlpLCByYWRpaSwgcmFkaWksIHNsaWRl
ckJhY2tncm91bmRDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgY29udGV4dC0+cmVz
dG9yZSgpOworfQorCitzdGF0aWMgdm9pZCBwYWludFNsaWRlclJhbmdlSGlnaGxpZ2h0KGNvbnN0
IEludFJlY3QmIHJlY3QsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgR3JhcGhpY3NDb250ZXh0
KiBjb250ZXh0LCBmbG9hdCBzdGFydEZyYWN0aW9uLCBmbG9hdCB3aWR0aEZyYWN0aW9uKQorewor
ICAgIGlmIChzdGFydEZyYWN0aW9uIDwgMCkKKyAgICAgICAgc3RhcnRGcmFjdGlvbiA9IDA7Cisg
ICAgaWYgKHdpZHRoRnJhY3Rpb24gPiAxKQorICAgICAgICB3aWR0aEZyYWN0aW9uID0gMTsKKyAg
ICBmbG9hdCBlbmRGcmFjdGlvbiA9IHN0YXJ0RnJhY3Rpb24gKyB3aWR0aEZyYWN0aW9uOworICAg
IGlmIChlbmRGcmFjdGlvbiA+IDEpIHsKKyAgICAgICAgd2lkdGhGcmFjdGlvbiA9IHdpZHRoRnJh
Y3Rpb24gLSBzdGFydEZyYWN0aW9uOworICAgICAgICBlbmRGcmFjdGlvbiA9IHN0YXJ0RnJhY3Rp
b24gKyB3aWR0aEZyYWN0aW9uOworICAgIH0KKworICAgIC8vIFNldCByZWN0YW5nbGUgdG8gaGln
aGxpZ2h0IHJhbmdlLgorICAgIEludFJlY3QgaGlnaGxpZ2h0UmVjdCA9IHJlY3Q7CisgICAgaW50
IHN0YXJ0T2Zmc2V0ID0gc3RhcnRGcmFjdGlvbiAqIHJlY3Qud2lkdGgoKTsKKyAgICBpbnQgZW5k
T2Zmc2V0ID0gcmVjdC53aWR0aCgpIC0gZW5kRnJhY3Rpb24gKiByZWN0LndpZHRoKCk7CisgICAg
aW50IHJhbmdlV2lkdGggPSB3aWR0aEZyYWN0aW9uICogcmVjdC53aWR0aCgpOworICAgIGhpZ2hs
aWdodFJlY3QubW92ZShzdGFydE9mZnNldCwgMCk7CisgICAgaGlnaGxpZ2h0UmVjdC5zZXRXaWR0
aChyYW5nZVdpZHRoKTsKKworICAgIC8vIERvbid0IGJvdGhlciBkcmF3aW5nIGFuIGVtcHR5IGFy
ZWEuCisgICAgaWYgKGhpZ2hsaWdodFJlY3QuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBDYWxjdWxhdGUgYm9yZGVyIHJhZGl1czsgbmVlZCB0byBhdm9pZCBiZWluZyBzbWFs
bGVyIHRoYW4gaGFsZiB0aGUgc2xpZGVyIGhlaWdodAorICAgIC8vIGJlY2F1c2Ugb2YgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMTQzLgorICAgIGludCBib3JkZXJS
YWRpdXMgPSByZWN0LmhlaWdodCgpIC8gMjsKKyAgICBJbnRTaXplIHJhZGlpKGJvcmRlclJhZGl1
cywgYm9yZGVyUmFkaXVzKTsKKworICAgIC8vIENhbGN1bGF0ZSB3aGl0ZS1ncmV5IGdyYWRpZW50
LgorICAgIEludFBvaW50IHNsaWRlclRvcExlZnQgPSBoaWdobGlnaHRSZWN0LmxvY2F0aW9uKCk7
CisgICAgSW50UG9pbnQgc2xpZGVyQm90dG9tTGVmdCA9IHNsaWRlclRvcExlZnQ7CisgICAgc2xp
ZGVyQm90dG9tTGVmdC5tb3ZlKDAsIGhpZ2hsaWdodFJlY3QuaGVpZ2h0KCkpOworICAgIENvbG9y
IHN0YXJ0Q29sb3IgPSBDb2xvcigyMjAsIDIyMCwgMjIwKTsKKyAgICBDb2xvciBlbmRDb2xvciA9
IENvbG9yKDI0MCwgMjQwLCAyNDApOworICAgIFJlZlB0cjxHcmFkaWVudD4gZ3JhZGllbnQgPSBH
cmFkaWVudDo6Y3JlYXRlKHNsaWRlclRvcExlZnQsIHNsaWRlckJvdHRvbUxlZnQpOworICAgIGdy
YWRpZW50LT5hZGRDb2xvclN0b3AoMC4wLCBzdGFydENvbG9yKTsKKyAgICBncmFkaWVudC0+YWRk
Q29sb3JTdG9wKDEuMCwgZW5kQ29sb3IpOworCisgICAgLy8gRmlsbCBoaWdobGlnaHQgcmVjdGFu
Z2xlIHdpdGggZ3JhZGllbnQsIHBvdGVudGlhbGx5IHJvdW5kZWQgaWYgb24gbGVmdCBvciByaWdo
dCBlZGdlLgorICAgIGNvbnRleHQtPnNhdmUoKTsKKyAgICBjb250ZXh0LT5zZXRGaWxsR3JhZGll
bnQoZ3JhZGllbnQpOworCisgICAgaWYgKHN0YXJ0T2Zmc2V0IDwgYm9yZGVyUmFkaXVzICYmIGVu
ZE9mZnNldCA8IGJvcmRlclJhZGl1cykKKyAgICAgICAgY29udGV4dC0+ZmlsbFJvdW5kZWRSZWN0
KGhpZ2hsaWdodFJlY3QsIHJhZGlpLCByYWRpaSwgcmFkaWksIHJhZGlpLCBzdGFydENvbG9yLCBD
b2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICBlbHNlIGlmIChzdGFydE9mZnNldCA8IGJvcmRlclJh
ZGl1cykKKyAgICAgICAgY29udGV4dC0+ZmlsbFJvdW5kZWRSZWN0KGhpZ2hsaWdodFJlY3QsIHJh
ZGlpLCBJbnRTaXplKDAsIDApLCByYWRpaSwgSW50U2l6ZSgwLCAwKSwgc3RhcnRDb2xvciwgQ29s
b3JTcGFjZURldmljZVJHQik7CisgICAgZWxzZSBpZiAoZW5kT2Zmc2V0IDwgYm9yZGVyUmFkaXVz
KQorICAgICAgICBjb250ZXh0LT5maWxsUm91bmRlZFJlY3QoaGlnaGxpZ2h0UmVjdCwgSW50U2l6
ZSgwLCAwKSwgcmFkaWksIEludFNpemUoMCwgMCksIHJhZGlpLCBzdGFydENvbG9yLCBDb2xvclNw
YWNlRGV2aWNlUkdCKTsKKyAgICBlbHNlCisgICAgICAgIGNvbnRleHQtPmZpbGxSZWN0KGhpZ2hs
aWdodFJlY3QpOworCisgICAgY29udGV4dC0+cmVzdG9yZSgpOworfQorCiBzdGF0aWMgYm9vbCBw
YWludE1lZGlhU2xpZGVyKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBIVE1MTWVkaWFFbGVtZW50KiBt
ZWRpYUVsZW1lbnQgPSB0b1BhcmVudE1lZGlhRWxlbWVudChvYmplY3QpOwpAQCAtMTIyLDIzICsx
ODcsMTAgQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVNsaWRlcihSZW5kZXJPYmplY3QqIG9iamVj
dCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGMKICAgICBSZW5kZXJTdHlsZSogc3R5bGUg
PSBvYmplY3QtPnN0eWxlKCk7CiAgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gcGFpbnRJ
bmZvLmNvbnRleHQ7CiAKLSAgICAvLyBEcmF3IHRoZSBib3JkZXIgb2YgdGhlIHRpbWUgYmFyLgot
ICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCBiZSBhIHJvdW5kZWQgcmVjdCBidXQgbmVlZCB0byBm
aXggR3JhcGhpY3NDb250ZXh0U2tpYSBmaXJzdC4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzAxNDMKLSAgICBjb250ZXh0LT5zYXZlKCk7Ci0gICAgY29u
dGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKHRydWUpOwotICAgIGNvbnRleHQtPnNldFN0cm9rZVN0
eWxlKFNvbGlkU3Ryb2tlKTsKLSAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihzdHlsZS0+dmlz
aXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yKSwgQ29sb3JTcGFj
ZURldmljZVJHQik7Ci0gICAgY29udGV4dC0+c2V0U3Ryb2tlVGhpY2tuZXNzKHN0eWxlLT5ib3Jk
ZXJMZWZ0V2lkdGgoKSk7Ci0gICAgY29udGV4dC0+c2V0RmlsbENvbG9yKHN0eWxlLT52aXNpdGVk
RGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLCBDb2xvclNwYWNlRGV2
aWNlUkdCKTsKLSAgICBjb250ZXh0LT5kcmF3UmVjdChyZWN0KTsKLSAgICBjb250ZXh0LT5yZXN0
b3JlKCk7CisgICAgcGFpbnRSb3VuZGVkU2xpZGVyQmFja2dyb3VuZChyZWN0LCBzdHlsZSwgY29u
dGV4dCk7CiAKICAgICAvLyBEcmF3IHRoZSBidWZmZXJlZCByYW5nZS4gU2luY2UgdGhlIGVsZW1l
bnQgbWF5IGhhdmUgbXVsdGlwbGUgYnVmZmVyZWQgcmFuZ2VzIGFuZCBpdCdkIGJlCiAgICAgLy8g
ZGlzdHJhY3RpbmcvJ2J1c3knIHRvIHNob3cgYWxsIG9mIHRoZW0sIHNob3cgb25seSB0aGUgYnVm
ZmVyZWQgcmFuZ2UgY29udGFpbmluZyB0aGUgY3VycmVudCBwbGF5IGhlYWQuCi0gICAgSW50UmVj
dCBidWZmZXJlZFJlY3QgPSByZWN0OwotICAgIGJ1ZmZlcmVkUmVjdC5pbmZsYXRlKC1zdHlsZS0+
Ym9yZGVyTGVmdFdpZHRoKCkpOwotCiAgICAgUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkVGlt
ZVJhbmdlcyA9IG1lZGlhRWxlbWVudC0+YnVmZmVyZWQoKTsKICAgICBmbG9hdCBkdXJhdGlvbiA9
IG1lZGlhRWxlbWVudC0+ZHVyYXRpb24oKTsKICAgICBmbG9hdCBjdXJyZW50VGltZSA9IG1lZGlh
RWxlbWVudC0+Y3VycmVudFRpbWUoKTsKQEAgLTE1MywyNyArMjA1LDggQEAgc3RhdGljIGJvb2wg
cGFpbnRNZWRpYVNsaWRlcihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBw
YWludEluZm8sIGMKICAgICAgICAgZmxvYXQgc3RhcnRGcmFjdGlvbiA9IHN0YXJ0IC8gZHVyYXRp
b247CiAgICAgICAgIGZsb2F0IGVuZEZyYWN0aW9uID0gZW5kIC8gZHVyYXRpb247CiAgICAgICAg
IGZsb2F0IHdpZHRoRnJhY3Rpb24gPSBlbmRGcmFjdGlvbiAtIHN0YXJ0RnJhY3Rpb247Ci0gICAg
ICAgIGJ1ZmZlcmVkUmVjdC5tb3ZlKHN0YXJ0RnJhY3Rpb24gKiBidWZmZXJlZFJlY3Qud2lkdGgo
KSwgMCk7Ci0gICAgICAgIGJ1ZmZlcmVkUmVjdC5zZXRXaWR0aCh3aWR0aEZyYWN0aW9uICogYnVm
ZmVyZWRSZWN0LndpZHRoKCkpOwotCi0gICAgICAgIC8vIERvbid0IGJvdGhlciBkcmF3aW5nIGFu
IGVtcHR5IGFyZWEuCi0gICAgICAgIGlmIChidWZmZXJlZFJlY3QuaXNFbXB0eSgpKQotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgSW50UG9pbnQgc2xpZGVyVG9wTGVmdCA9IGJ1
ZmZlcmVkUmVjdC5sb2NhdGlvbigpOwotICAgICAgICBJbnRQb2ludCBzbGlkZXJCb3R0b21MZWZ0
ID0gc2xpZGVyVG9wTGVmdDsKLSAgICAgICAgc2xpZGVyQm90dG9tTGVmdC5tb3ZlKDAsIGJ1ZmZl
cmVkUmVjdC5oZWlnaHQoKSk7Ci0KLSAgICAgICAgUmVmUHRyPEdyYWRpZW50PiBncmFkaWVudCA9
IEdyYWRpZW50OjpjcmVhdGUoc2xpZGVyVG9wTGVmdCwgc2xpZGVyQm90dG9tTGVmdCk7Ci0gICAg
ICAgIENvbG9yIHN0YXJ0Q29sb3IgPSBvYmplY3QtPnN0eWxlKCktPnZpc2l0ZWREZXBlbmRlbnRD
b2xvcihDU1NQcm9wZXJ0eUNvbG9yKTsKLSAgICAgICAgZ3JhZGllbnQtPmFkZENvbG9yU3RvcCgw
LjAsIHN0YXJ0Q29sb3IpOwotICAgICAgICBncmFkaWVudC0+YWRkQ29sb3JTdG9wKDEuMCwgQ29s
b3Ioc3RhcnRDb2xvci5yZWQoKSAvIDIsIHN0YXJ0Q29sb3IuZ3JlZW4oKSAvIDIsIHN0YXJ0Q29s
b3IuYmx1ZSgpIC8gMiwgc3RhcnRDb2xvci5hbHBoYSgpKSk7Ci0KLSAgICAgICAgY29udGV4dC0+
c2F2ZSgpOwotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VTdHlsZShOb1N0cm9rZSk7Ci0gICAg
ICAgIGNvbnRleHQtPnNldEZpbGxHcmFkaWVudChncmFkaWVudCk7Ci0gICAgICAgIGNvbnRleHQt
PmZpbGxSZWN0KGJ1ZmZlcmVkUmVjdCk7Ci0gICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKKwor
ICAgICAgICBwYWludFNsaWRlclJhbmdlSGlnaGxpZ2h0KHJlY3QsIHN0eWxlLCBjb250ZXh0LCBz
dGFydEZyYWN0aW9uLCB3aWR0aEZyYWN0aW9uKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCkBAIC0yMDMsMTUgKzIzNiwyNSBAQCBzdGF0aWMgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xp
ZGVyKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBwYWludElu
Zm8uY29udGV4dDsKLSAgICBDb2xvciBvcmlnaW5hbENvbG9yID0gY29udGV4dC0+c3Ryb2tlQ29s
b3IoKTsKLSAgICBpZiAob3JpZ2luYWxDb2xvciAhPSBDb2xvcjo6d2hpdGUpCi0gICAgICAgIGNv
bnRleHQtPnNldFN0cm9rZUNvbG9yKENvbG9yOjp3aGl0ZSwgQ29sb3JTcGFjZURldmljZVJHQik7
CisgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gb2JqZWN0LT5zdHlsZSgpOworCisgICAgcGFpbnRS
b3VuZGVkU2xpZGVyQmFja2dyb3VuZChyZWN0LCBzdHlsZSwgY29udGV4dCk7CisKKyAgICAvLyBD
YWxjdWxhdGUgdm9sdW1lIHBvc2l0aW9uIGZvciB3aGl0ZSBiYWNrZ3JvdW5kIHJlY3RhbmdsZS4K
KyAgICBmbG9hdCB2b2x1bWUgPSBtZWRpYUVsZW1lbnQtPnZvbHVtZSgpOworICAgIGlmIChpc25h
bih2b2x1bWUpIHx8IHZvbHVtZSA8IDApCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGlmICh2
b2x1bWUgPiAxKQorICAgICAgICB2b2x1bWUgPSAxOworCisgICAgLy8gQ2FsY3VsYXRlIHRoZSBw
b3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgY2VudGVyIG9mIHRoZSB0aHVtYi4KKyAgICBmbG9hdCB0
aHVtYldpZHRoID0gMTIuMDsKKyAgICBmbG9hdCB6b29tTGV2ZWwgPSBzdHlsZS0+ZWZmZWN0aXZl
Wm9vbSgpOworICAgIGZsb2F0IHBvc2l0aW9uV2lkdGggPSB2b2x1bWUgKiAocmVjdC53aWR0aCgp
IC0gKHpvb21MZXZlbCAqIHRodW1iV2lkdGgpKTsKKyAgICBmbG9hdCBmaWxsV2lkdGggPSBwb3Np
dGlvbldpZHRoICsgKHpvb21MZXZlbCAqIHRodW1iV2lkdGggLyAyKTsKIAotICAgIGludCB5ID0g
cmVjdC55KCkgKyByZWN0LmhlaWdodCgpIC8gMjsKLSAgICBjb250ZXh0LT5kcmF3TGluZShJbnRQ
b2ludChyZWN0LngoKSwgeSksICBJbnRQb2ludChyZWN0LngoKSArIHJlY3Qud2lkdGgoKSwgeSkp
OworICAgIHBhaW50U2xpZGVyUmFuZ2VIaWdobGlnaHQocmVjdCwgc3R5bGUsIGNvbnRleHQsIDAu
MCwgZmlsbFdpZHRoIC8gcmVjdC53aWR0aCgpKTsKIAotICAgIGlmIChvcmlnaW5hbENvbG9yICE9
IENvbG9yOjp3aGl0ZSkKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3Iob3JpZ2luYWxD
b2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146700</attachid>
            <date>2012-06-09 07:19:14 -0700</date>
            <delta_ts>2012-06-13 01:36:25 -0700</delta_ts>
            <desc>Full patch for layout tests - incl Eric&apos;s comments</desc>
            <filename>bug-88623-20120610001912.patch</filename>
            <type>text/plain</type>
            <size>64870</size>
            <attacher name="Silvia Pfeiffer">silviapf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5ODk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjUxYWU5NzA1ODExMDUy
ZjIwYzhlNDRhMWVkZDVjZWRjNDdmNmNlMS4uMjc2NTI5OTU5ZGEwYjAwOWY2MDFjOTQwMDRkYzY0
N2ViNWUwNjkxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyMyBAQAorMjAxMi0wNi0wOSAgU2ls
dmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFVwZGF0ZSBy
YW5nZSBzbGlkZXJzIHJlbmRlcmluZyBmb3Igdm9sdW1lIGFuZCBwbGF5YmFjayBwb3NpdGlvbiBv
ZiBuZXcgQ2hyb21lIHZpZGVvIGNvbnRyb2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg2MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGZpbmFsIHBhdGNoIHdpbGwgY29udGFp
biB0aGUgcmViYXNlbGluZWQgdGVzdHMuCisKKyAgICAgICAgVGhlIENocm9tZSB2aWRlbyBjb250
cm9scyBhcmUgcmVjZWl2aW5nIGEgdmlzdWFsIHVwZGF0ZS4gVGhpcyBwYXRjaCBjb250YWlucyB1
cGRhdGVzIHRvIHRoZQorICAgICAgICByZW5kZXJpbmcgb2YgdGhlIHJhbmdlIHNsaWRlcnMgZm9y
IHRoZSBwbGF5YmFjayBwb3NpdGlvbiBhbmQgdGhlIHZvbHVtZS4gVGhpcyBpbmNsdWRlcyB0aGUK
KyAgICAgICAgY3JlYXRpb24gb2YgYSBzaGFkb3dQc2V1ZG9JZCB0byBiZSBhYmxlIHRvIHN0eWxl
IHRoZSByYW5nZSBzbGlkZXJzIHZpYSBDU1MsIHRoZSByZW5kZXJpbmcKKyAgICAgICAgb2YgdGhl
IHNsaWRlciBiYWNrZ3JvdW5kIGFuZCB0aGUgaGlnaGxpZ2h0ZWQgcmFuZ2VzLgorCisgICAgICAg
ICogY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3M6CisgICAgICAgIChpbnB1dFt0eXBlPSJy
YW5nZSJdOjotd2Via2l0LW1lZGlhLXNsaWRlci1jb250YWluZXIpOgorICAgICAgICBBZGp1c3Qg
dGhlIHN0eWxpbmcgb2YgdGhlIHNsaWRlciBjb250YWluZXIgYmFja2dyb3VuZHMuCisgICAgICAg
IChpbnB1dFt0eXBlPSJyYW5nZSJdOjotd2Via2l0LW1lZGlhLXNsaWRlci10aHVtYik6CisgICAg
ICAgIEFkanVzdCB0aGUgc3R5bGluZyBvZiB0aGUgc2xpZGVyIHRodW1icy4KKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2xp
ZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIEFkZCBhbiBhY2Nlc3NvciBmdW5jdGlv
biBmb3IgdGhlIHNsaWRlciB0aHVtYiBzaGFkb3dQc2V1ZG9JZC4KKyAgICAgICAgKFdlYkNvcmU6
Om1lZGlhU2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIEFkZCBhbiBhY2Nlc3Nv
ciBmdW5jdGlvbiBmb3IgdGhlIG1lZGlhIHNsaWRlciB0aHVtYiBzaGFkb3dQc2V1ZG9JZCAKKyAg
ICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAg
ICAgICBBZGQgYSBkaWZmZXJlbnQgQ1NTIHBzZXVkby1jbGFzcyBuYW1lIHRvIHRoZSBtZWRpYSBz
bGlkZXIgdGh1bWJzLgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tMaW1pdGVyRWxlbWVudDo6c2hh
ZG93UHNldWRvSWQpOgorICAgICAgICBBZGQgYSBkaWZmZXJlbnQgQ1NTIHBzZXVkby1jbGFzcyBu
YW1lIHRvIHRoZSBtZWRpYSBzbGlkZXIgdGh1bWJzLgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVy
Q29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICBBZGQgYSBkaWZmZXJl
bnQgQ1NTIHBzZXVkby1jbGFzcyBuYW1lIHRvIHRoZSBtZWRpYSBzbGlkZXIgYmFja2dyb3VuZCBj
b250YWluZXIuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpwYWludFJvdW5kZWRTbGlkZXJCYWNrZ3JvdW5kKToK
KyAgICAgICAgQWRkIGZ1bmN0aW9uIHRvIGRyYXcgcm91bmRlZCBiYWNrZ3JvdW5kIG9mIHNsaWRl
cnMgaW4gYSBkYXJrIGNvbG9yLgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRTbGlkZXJSYW5nZUhp
Z2hsaWdodCk6CisgICAgICAgIEFkZCBmdW5jdGlvbiB0byBkcmF3IGEgaGlnaGxpZ2h0ZWQgZ3Jl
eSByZWdpb24gb24gdGhlIHNsaWRlcnMsIHdoaWNoIGlzIHJvdW5kZWQgb25seSBhdAorICAgICAg
ICBpdHMgZW5kcy4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFTbGlkZXIpOgorICAgICAg
ICBVcGRhdGUgdGhlIGJhY2tncm91bmQgYW5kIGJ1ZmZlcmVkIHJhbmdlIHJlbmRlcmluZ3Mgb24g
dGhlIHBsYXliYWNrIHBvc2l0aW9uIHNsaWRlciBieSBtYWtpbmcKKyAgICAgICAgdXNlIG9mIHRo
ZSBuZXcgaGVscGVyIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFWb2x1
bWVTbGlkZXIpOgorICAgICAgICBVcGRhdGUgdGhlIGJhY2tncm91bmQgYW5kIGJ1ZmZlcmVkIHJh
bmdlIHJlbmRlcmluZ3Mgb24gdGhlIHZvbHVtZSBzbGlkZXIgYnkgbWFraW5nCisgICAgICAgIHVz
ZSBvZiB0aGUgbmV3IGhlbHBlciBmdW5jdGlvbnMuCisKKzIwMTItMDYtMDYgIFNpbHZpYSBQZmVp
ZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4KKworICAgICAgICBDaGFuZ2UgdGhlIHN0eWxp
bmcgb2YgdGhlIENocm9taXVtIHZpZGVvIGNvbnRyb2xzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgyOTcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMuIChmaW5hbCBwYXRjaCB3aWxs
IGNvbnRhaW4gdGhlIHJlYmFzZWxpbmVkIHRlc3RzKQorCisgICAgICAgIFRoZSBDaHJvbWUgdmlk
ZW8gY29udHJvbHMgYXJlIHJlY2VpdmluZyBhIHZpc3VhbCB1cGRhdGUuIFRoaXMgcGF0Y2ggaW5j
bHVkZXMgQ1NTIGNoYW5nZXMsCisgICAgICAgIHRoZSByZW1vdmFsIG9mIHRoZSBub3cgbm8gbG9u
Z2VyIG5lZWRlZCBjb250cm9scyBiYWNrZ3JvdW5kIGRpdiwgYW5kIHRoZSBpbnRyb2R1Y3Rpb24g
b2YKKyAgICAgICAgbmV3IGltYWdlcyBmb3IgdGhlIGJ1dHRvbnMuCisKKyAgICAgICAgKiBjc3Mv
bWVkaWFDb250cm9sc0Nocm9taXVtLmNzczoKKyAgICAgICAgKGF1ZGlvKToKKyAgICAgICAgQWRq
dXN0IGhlaWdodCBvZiBhdWRpbyBjb250cm9scy4KKyAgICAgICAgKDo6LXdlYmtpdC1tZWRpYS1j
b250cm9scyk6CisgICAgICAgIFVzZSBmbGV4Ym94IG9uIG1lZGlhIGNvbnRyb2xzIHNoYWRvdyBE
T00uCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUsIHZp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xvc3VyZSk6CisgICAgICAgIEFkanVzdCBo
ZWlnaHQsIG1heC13aWR0aCwgdGV4dC1pbmRlbnQgYW5kIGJveC1zaXppbmcsIGFuZCByZXNldCBw
YWRkaW5nIHRvIDAuCisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNs
b3N1cmUpOgorICAgICAgICBVc2UgNXB4IHBhZGRpbmcgb25seSBmb3IgdmlkZW8gY29udHJvbHMg
YW5kIGFkanVzdCBoZWlnaHQgYWNjb3JkaW5nbHkuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1wYW5lbCwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwp
OgorICAgICAgICBVc2UgZmxleGJveCBvbiBwYW5lbCwgYWRqdXN0IGJvdHRvbSBhbGlnbm1lbnQs
IGhlaWdodCwgYmFja2dyb3VuZCBjb2xvciBhbmQgYm9yZGVyIHJhZGl1cy4KKyAgICAgICAgKGF1
ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbik6CisgICAgICAgIERpc3BsYXkgYnV0dG9ucyBpbmxp
bmUgd2l0aCBmaXhlZCB3aWR0aCBhbmQgaGVpZ2h0LCB2ZXJ0aWNhbGx5IGNlbnRlcmVkLCBubyBw
YWRkaW5nIGFuZAorICAgICAgICA2cHggc3BhY2UgdG8gbmV4dCBjb250cm9scyBlbGVtZW50ICh0
aGlzIHdpbGwgYmUgMTVweCBpbmNsIHRoZSBzcGFjZSBpbiB0aGUgaW1hZ2UpLgorICAgICAgICAo
YXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uKToKKyAgICAgICAgRGlzcGxheSBidXR0b25zIGlu
bGluZSB3aXRoIGZpeGVkIHdpZHRoIGFuZCBoZWlnaHQsIHZlcnRpY2FsbHkgY2VudGVyZWQsIG5v
IHBhZGRpbmcgYW5kCisgICAgICAgIDlweCBzcGFjZSB0byBuZXh0IGNvbnRyb2xzIGVsZW1lbnQg
KHRoaXMgd2lsbCBiZSAxNXB4IGluY2wgdGhlIHNwYWNlIGluIHRoZSBpbWFnZSkuCisgICAgICAg
IChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXkpOgorICAgICAg
ICBEaXNwbGF5IHRleHQgYXMgYmxvY2ssIHdpdGhvdXQgYnJvZGVyLCBhZGp1c3RlZCBoZWlnaHQs
IGZvbnQtZmFtaWx5LCBmb250LXNpemUgYW5kIDlweCBzcGFjZQorICAgICAgICB0byBuZXh0IGNv
bnRyb2xzIGVsZW1lbnQgKHRoaXMgd2lsbCBiZSAxNXB4IGluY2wgdGhlIHNwYWNlIGluIHRoZSBp
bWFnZSkuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSwg
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUpOgorICAgICAgICBBZGp1c3Qg
aGVpZ2h0LCBwYWRkaW5nLCBiYWNrZ3JvdW5kLWNvbG9yLCBtaW4td2RpdGggYW5kIDE1cHggc3Bh
Y2UgdG8gbmV4dCBjb250cm9scyBlbGVtZW50LgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVk
aWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
dm9sdW1lLXNsaWRlcik6CisgICAgICAgIEFkanVzdCBoZWlnaHQsIG1heC0gYW5kIG1pbi13aWR0
aCwgYmFja2dyb3VuZC1jb2xvciBhbmQgMTVweCBzcGFjZSB0byBuZXh0IGNvbnRyb2xzIGVsZW1l
bnQuCisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKToKKyAgICAgICAgUmVtb3ZlIHRpbWVs
aW5lIGNvbnRhaW5lciwgd2hpY2ggaXMgbm90IG5lY2Vzc2FyeSBhbnkgbG9uZ2VyIGJlY2F1c2Ug
b2YgdGhlIHVzZSBvZiBmbGV4Ym94LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bTo6Y3JlYXRlKToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRh
aW5lciwgd2hpY2ggaXMgbm90IG5lY2Vzc2FyeSBhbnkgbG9uZ2VyIGJlY2F1c2Ugb2YgdGhlIHVz
ZSBvZiBmbGV4Ym94LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bTo6c2V0TWVkaWFDb250cm9sbGVyKToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNv
bnRhaW5lciwgd2hpY2ggaXMgbm90IG5lY2Vzc2FyeSBhbnkgbG9uZ2VyIGJlY2F1c2Ugb2YgdGhl
IHVzZSBvZiBmbGV4Ym94LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bTo6cmVzZXQpOgorICAgICAgICBTaG93IHRoZSB0aW1lbGluZSBpbnN0ZWFkIG9m
IHRoZSB0aW1lbGluZSBjb250YWluZXIgd2hlbiByZXNldHRpbmcuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpyZXBvcnRlZEVycm9yKToKKyAgICAg
ICAgSGlkZSB0aGUgdGltZWxpbmUgaW5zdGVhZCBvZiB0aGUgdGltZWxpbmUgY29udGFpbmVyIHdo
ZW4gcnVubmluZyBpbnRvIGFuIGVycm9yLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRp
YUNvbnRyb2xzQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRNZWRpYU11dGVC
dXR0b24pOgorICAgICAgICBJbnRyb2R1Y2UgbmV3IGltYWdlIHJlc291cmNlcyBmb3IgdGhlIG11
dGUgYnV0dG9uIGFuZCBhZGp1c3QgaXQgYmFzZWQgb24gdm9sdW1lIGxldmVscy4KKyAgICAgICAg
KFdlYkNvcmU6OnBhaW50TWVkaWFQbGF5QnV0dG9uKToKKyAgICAgICAgSW50cm9kdWNlIG5ldyBp
bWFnZSByZXNvdXJjZXMgZm9yIHRoZSBwbGF5IGJ1dHRvbi4KKyAgICAgICAgKFdlYkNvcmU6Omdl
dE1lZGlhU2xpZGVyVGh1bWIpOgorICAgICAgICBJbnRyb2R1Y2UgbmV3IGltYWdlIHJlc291cmNl
cyBmb3IgdGhlIHBvc2l0aW9uIHNsaWRlciB0aHVtYi4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50
TWVkaWFWb2x1bWVTbGlkZXJUaHVtYik6CisgICAgICAgIEludHJvZHVjZSBuZXcgaW1hZ2UgcmVz
b3VyY2VzIGZvciB0aGUgdm9sdW1lIHNsaWRlciB0aHVtYi4KKyAgICAgICAgUmVtb3ZlIHRpbWVs
aW5lIGNvbnRhaW5lciByZW5kZXJpbmcuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYUNv
bnRyb2xzQ2hyb21pdW06OnBhaW50TWVkaWFDb250cm9sc1BhcnQpOgorICAgICAgICBBZGQgdGlt
ZWxpbmUgY29udGFpbmVyIHBhaW50aW5nIHRvIHRoZSAibm90IHJlYWNoZWQiIGVsZW1lbnRzLgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIFByb3ZpZGUgc2l6ZSBzZXR0aW5ncyBmb3IgdGhl
IHBvc2l0aW9uIGFuZCB2b2x1bWUgc2xpZGVycy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bTo6YWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUpOgorICAgICAg
ICBDYWxjdWxhdGUgY29ycmVjdCB3aWR0aCBhbmQgaGVpZ2h0IHNldHRpbmdzIGZvciB0aGUgbmV3
IGltYWdlIHJlc291cmNlcyBvZiB0aGUgcG9zaXRpb24gYW5kIHZvbHVtZQorICAgICAgICBzbGlk
ZXIgdGh1bWJzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmg6
CisgICAgICAgIChSZW5kZXJUaGVtZUNocm9taXVtTWFjKToKKyAgICAgICAgUmVtb3ZlIHRpbWVs
aW5lIGNvbnRhaW5lciByZW5kZXJpbmcgKGkuZS4gdGhlIG1lZGlhIGNvbnRyb2xzIGJhY2tncm91
bmQpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tOgorICAg
ICAgICBSZW1vdmUgdGltZWxpbmUgY29udGFpbmVyIHJlbmRlcmluZyAoaS5lLiB0aGUgbWVkaWEg
Y29udHJvbHMgYmFja2dyb3VuZCkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1Ta2lhLmNwcDoKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciByZW5kZXJp
bmcgKGkuZS4gdGhlIG1lZGlhIGNvbnRyb2xzIGJhY2tncm91bmQpLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oOgorICAgICAgICAoUmVuZGVyVGhlbWVDaHJv
bWl1bVNraWEpOgorICAgICAgICBSZW1vdmUgdGltZWxpbmUgY29udGFpbmVyIHJlbmRlcmluZyAo
aS5lLiB0aGUgbWVkaWEgY29udHJvbHMgYmFja2dyb3VuZCkuCisKKzIwMTItMDYtMDUgIFNpbHZp
YSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4KKworICAgICAgICBDaGFuZ2UgdGhl
IHZvbHVtZSBzbGlkZXIgdG8gaG9yaXpvbnRhbCByZW5kZXJpbmcgZm9yIENocm9tZSB2aWRlbyBj
b250cm9scy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTg3ODM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLiAodmlzdWFsIHVwZGF0ZSB3aWxsIGNvbnRhaW4gcmViYXNlbGluZWQgdGVz
dHMpCisKKyAgICAgICAgVGhlIENocm9tZSB2aWRlbyBjb250cm9scyBhcmUgcmVjZWl2aW5nIGEg
dmlzdWFsIHVwZGF0ZS4gVGhlIHZvbHVtZSBzbGlkZXIgaXMgaW5jbHVkZWQgaW50bworICAgICAg
ICB0aGUgY29udHJvbHMgd2l0aCBob3Jpem9udGFsIHJlbmRlcmluZywgdGhlIHZvbHVtZSBzbGlk
ZXIgY29udGFpbmVyIGlzIHJlbW92ZWQuIFRoZSB2aXN1YWwKKyAgICAgICAgdXBkYXRlIGl0c2Vs
ZiBpcyBpbiBhIHNlcGFyYXRlIHBhdGNoLgorCisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHND
aHJvbWl1bS5jc3M6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRl
LWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24pOgorICAg
ICAgICBSZW1vdmVkIHJlbGF0aXZlIHBvc2l0aW9uaW5nIHRvIHJlbmRlciBhbGwgY29udHJvbHMg
ZWxlbWVudHMgZXF1YWxseSBpbiBET00gb3JkZXIuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
cGxheS1idXR0b24pOgorICAgICAgICBSZW1vdmVkIGFic29sdXRlIHBvc2l0aW9uaW5nIHRvIHJl
bmRlciBhbGwgY29udHJvbHMgZWxlbWVudHMgZXF1YWxseSBpbiBET00gb3JkZXIuCisgICAgICAg
IChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIsIHZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lcik6CisgICAgICAgIFJl
bW92ZWQgYWJzb2x1dGUgcG9zaXRpb25pbmcgdG8gcmVuZGVyIGFsbCBjb250cm9scyBlbGVtZW50
cyBlcXVhbGx5IGluIERPTSBvcmRlci4KKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lcik6CisgICAgICAgIFJlbW92ZWQgdm9sdW1lIHNs
aWRlciBjb250YWluZXIgLSBpdCdzIG5vdCBuZWNlc3NhcnkgYW55IG1vcmUuCisgICAgICAgIChh
dWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXkpOgorICAgICAgICBS
ZW1vdmUgZmxleGJveCBhbmQgaW50cm9kdWNlIGlubGluZSBkaXNwbGF5IHRvIGFsd2F5cyBkaXNw
bGF5IHRoaXMgZmllbGQuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12
b2x1bWUtc2xpZGVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVy
KToKKyAgICAgICAgUmVtb3ZlZCBhYnNvbHV0ZSBwb3NpdGlvbmluZyB0byByZW5kZXIgYWxsIGNv
bnRyb2xzIGVsZW1lbnRzIGVxdWFsbHkgaW4gRE9NIG9yZGVyLgorICAgICAgICAqIGh0bWwvc2hh
ZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bSk6CisgICAgICAgIFJlbW92ZWQgdm9sdW1lIHNsaWRlciBjb250YWluZXIgLSBp
dCdzIG5vdCBuZWNlc3NhcnkgYW55IG1vcmUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGUpOgorICAgICAgICBBcHBlbmRlZCB0aGUgdm9s
dW1lIHNsaWRlciBhbmQgdGhlIG11dGUgYnV0dG9uIGRpcmVjdGx5IHRvIHRoZSBwYW5lbCwgcmVt
b3ZlZCB2b2x1bWUgc2xpZGVyIGNvbnRhaW5lci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNldE1lZGlhQ29udHJvbGxlcik6CisgICAgICAgIFJl
bW92ZWQgdm9sdW1lIHNsaWRlciBjb250YWluZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xSb290RWxlbWVudENocm9taXVtOjpyZXBvcnRlZEVycm9yKToKKyAgICAgICAgUmVtb3Zl
ZCB2b2x1bWUgc2xpZGVyIGNvbnRhaW5lci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bFJvb3RFbGVtZW50Q2hyb21pdW06OnNob3dWb2x1bWVTbGlkZXIpOgorICAgICAgICBSZW1vdmVk
IHZvbHVtZSBzbGlkZXIgY29udGFpbmVyLgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAo
TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgIFJlbW92ZWQgdm9sdW1l
IHNsaWRlciBjb250YWluZXIuCisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omhhc1ZlcnRpY2FsQXBwZWFyYW5jZSk6CisgICAg
ICAgIEFsbG93IHVzZSBvZiBob3Jpem9udGFsIG1lZGlhIHZvbHVtZSBzbGlkZXIuCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTbGlkZXJUaHVtYjo6bGF5b3V0KToKKyAgICAgICAgUmV1c2UgaGFz
VmVydGljYWxBcHBlYXJhbmNlIGZ1bmN0aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJN
ZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFD
b250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhVm9sdW1lU2xpZGVyKToKKyAgICAgICAgQ2hhbmdl
IGxpbmUgZHJhd2luZyBmcm9tIHZlcnRpY2FsIHRvIGhvcml6b250YWwuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6dXNl
c1ZlcnRpY2FsVm9sdW1lU2xpZGVyKToKKyAgICAgICAgQWRkIHVzZXNWZXJ0aWNhbFZvbHVtZVNs
aWRlciBmdW5jdGlvbiB0byBhbGxvdyBob3Jpem9udGFsIHZvbHVtZSBzbGlkZXJzLgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjp1c2VzVmVydGljYWxWb2x1bWVTbGlkZXIpOgorICAg
ICAgICBBZGQgdXNlc1ZlcnRpY2FsVm9sdW1lU2xpZGVyIGZ1bmN0aW9uIHRvIGFsbG93IGhvcml6
b250YWwgdm9sdW1lIHNsaWRlcnMuCisgICAgICAgIEFkZCB1c2VzVmVydGljYWxWb2x1bWVTbGlk
ZXIgZnVuY3Rpb24gdG8gYWxsb3cgaG9yaXpvbnRhbCB2b2x1bWUgc2xpZGVycy4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjp1c2VzVmVydGljYWxWb2x1bWVTbGlkZXIpOgorICAg
ICAgICBBZGQgdXNlc1ZlcnRpY2FsVm9sdW1lU2xpZGVyIGZ1bmN0aW9uIHRvIGFsbG93IGhvcml6
b250YWwgdm9sdW1lIHNsaWRlcnMuCisKKzIwMTItMDUtMjggIFNpbHZpYSBQZmVpZmZlciAgPHNp
bHZpYXBmQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbnRyb2R1Y2UgYW4gRW5jbG9zdXJlIEVs
ZW1lbnQgZm9yIENocm9taXVtIHZpZGVvIGNvbnRyb2xzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODc2ODMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGVkIHRlc3RzLgorCisgICAgICAgIFRoZSBD
aHJvbWUgdmlkZW8gY29udHJvbHMgYXJlIHJlY2VpdmluZyBhIHZpc3VhbCB1cGRhdGUuIEEgbmV3
IGVuY2xvc3VyZSBkaXYgaXMgcmVxdWlyZWQKKyAgICAgICAgdG8gcHJvdmlkZSBmb3IgYSBvZmZz
ZXQgc3BhY2UgZnJvbSB0aGUgdmlkZW8ncyBib3VuZGFyaWVzLiBUaGUgdmlzdWFsIHVwZGF0ZSBp
dHNlbGYgaXMgaW4KKyAgICAgICAgYSBzZXBhcmF0ZSBwYXRjaC4KKworICAgICAgICAqIGNzcy9t
ZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzOgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtZW5jbG9zdXJlKToKKyAgICAgICAgSW50cm9kdWNlIENTUyBmb3IgZW5jbG9zdXJl
IGRpdiBzbyBpdCBkb2Vzbid0IHNob3cgeWV0LgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50OjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xv
c3VyZUVsZW1lbnQpOgorICAgICAgICBEZWZpbml0aW9uIG9mIHRoZSBuZXcgZW5jbG9zdXJlIGVs
ZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVs
ZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIERlZmluaXRpb24gb2YgYSBjcmVhdGUgb3BlcmF0b3Ig
Zm9yIHRoZSBuZXcgZW5jbG9zdXJlIGVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAg
RGVmaW5pdGlvbiBvZiB0aGUgc2hhZG93UHNldWRvSWQgb2YgLXdlYmtpdC1tZWRpYS1jb250cm9s
cy1lbmNsb3N1cmUgZm9yIHRoZSBlbmNsb3N1cmUgZGl2LgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bSk6CisgICAgICAgIEluaXRpYWxpemUgbWVtYmVyIGVsZW1lbnQgZm9yIGVuY2xvc3VyZSBk
aXYuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpj
cmVhdGUpOgorICAgICAgICBJbnN0YW50aWF0ZSBlbmNsb3N1cmUgZGl2IGFuZCBhZGQgaW50byBE
T00gYmV0d2VlbiBjb250cm9scyBhbmQgcGFuZWwgZWxlbWVudHMuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpzZXRNZWRpYUNvbnRyb2xsZXIpOgor
ICAgICAgICBTZXQgbWVkaWEgY29udHJvbGxlciBmb3IgZW5jbG9zdXJlIGRpdi4KKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNyZWF0ZVRleHRUcmFj
a0Rpc3BsYXkpOgorICAgICAgICBJbnNlcnQgdGV4dCB0cmFjayBkaXNwbGF5IGNvbnRhaW5lciB0
byBlbmNsb3N1cmUgcmF0aGVyIHRoYW4gcGFuZWwuCisgICAgICAgICogaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIChNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50OjpzZXRNZWRpYUNvbnRy
b2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVF
bGVtZW50OjptZWRpYUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
Q2hyb21pdW1FbmNsb3N1cmVFbGVtZW50Ojppc01lZGlhQ29udHJvbEVsZW1lbnQpOgorICAgICAg
ICBBZGQgZGVjbGFyYXRpb24gb2YgdGhlIG5ldyBlbmNsb3N1cmUgZWxlbWVudCBhbmQgaXRzIG1l
bWJlciBmdW5jdGlvbnMuCisgICAgICAgIChNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
KToKKyAgICAgICAgQWRkIG1lbWJlciB2YXJpYWJsZSB0byBjb250cm9scyByb290IGVsZW1lbnQg
dG8gaG9sZCB0aGUgZW5jbG9zdXJlIGVsZW1lbnQuCisKIDIwMTItMDYtMDggIExldmkgV2VpbnRy
YXViICA8bGV2aXdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbmRlckxheWVyOjpwYWludENo
aWxkTGF5ZXJJbnRvQ29sdW1ucyBkb2Vzbid0IHByb3Blcmx5IHBpeGVsIHNuYXAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzIGIvU291cmNl
L1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MKaW5kZXggNDA5Mzk4YzVkMGNj
ZjBjOWQ2M2Y2MGU5YjY5MzcyZTlhMzkyNGQyNi4uMmQ5N2VkNDRiYjg3OWUyN2YxNmFjZWQwMzI0
N2EwZDg1NjEyZmE4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJv
bHNDaHJvbWl1bS5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJv
bWl1bS5jc3MKQEAgLTMxLDcgKzMxLDcgQEAgYm9keTotd2Via2l0LWZ1bGwtcGFnZS1tZWRpYSB7
CiAKIGF1ZGlvIHsKICAgICB3aWR0aDogMzAwcHg7Ci0gICAgaGVpZ2h0OiAzMnB4OworICAgIGhl
aWdodDogMzBweDsKIH0KIAogYXVkaW86LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWEsIHZpZGVvOi13
ZWJraXQtZnVsbC1wYWdlLW1lZGlhIHsKQEAgLTM5LDkxICszOSw3OCBAQCBhdWRpbzotd2Via2l0
LWZ1bGwtcGFnZS1tZWRpYSwgdmlkZW86LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWEgewogICAgIG1h
eC13aWR0aDogMTAwJTsKIH0KIAotYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWws
IHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIHsKLSAgICAtd2Via2l0LXVzZXIt
c2VsZWN0OiBub25lOworOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzIHsKKyAgICBkaXNwbGF5OiAt
d2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOwogICAgIC13ZWJr
aXQtYm94LXBhY2s6IGVuZDsKLSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gICAgb3ZlcmZsb3c6
IHZpc2libGU7Ci0gICAgYm90dG9tOiAwOworICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7
Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xvc3VyZSwgdmlkZW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtZW5jbG9zdXJlIHsKICAgICB3aWR0aDogMTAwJTsKLSAgICBo
ZWlnaHQ6IDMycHg7Ci0gICAgei1pbmRleDogMDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2Jh
KDAsIDAsIDAsIDAuNik7CisgICAgbWF4LXdpZHRoOiA4MDBweDsKKyAgICBoZWlnaHQ6IDMwcHg7
CisgICAgYm90dG9tOiAwOworICAgIHRleHQtaW5kZW50OiAwOworICAgIHBhZGRpbmc6IDA7Cisg
ICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKIH0KIAotdmlkZW86LXdlYmtpdC1mdWxsLXBhZ2Ut
bWVkaWE6Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwgewotICAgIGJvdHRvbTogMHB4Owor
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZW5jbG9zdXJlIHsKKyAgICBwYWRkaW5nOiAw
cHggNXB4IDVweCA1cHg7CisgICAgaGVpZ2h0OiAzNXB4OwogfQogCiBhdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1wYW5lbCwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwg
ewotICAgIC13ZWJraXQtYm94LWFsaWduOiBlbmQ7CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7
CisgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOworICAgIC13ZWJraXQtYm94LWFs
aWduOiBjZW50ZXI7CisgICAgLXdlYmtpdC1ib3gtcGFjazogY2VudGVyOworICAgIGJvdHRvbTog
YXV0bzsKKyAgICBoZWlnaHQ6IDMwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMCwg
MjAsIDIwLCAwLjgpOworICAgIGJvcmRlci1yYWRpdXM6IDVweDsKIH0KIAogYXVkaW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLW11dGUtYnV0dG9uIHsKICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLW11dGUtYnV0
dG9uOwotICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKLSAgICB0b3A6IGF1dG87Ci0gICAgYm90dG9t
OiAwOwotICAgIHJpZ2h0OiAwOwotICAgIGxlZnQ6IGF1dG87Ci0KLSAgICB3aWR0aDogMzRweDsK
LSAgICBoZWlnaHQ6IDMycHg7CisgICAgZGlzcGxheTogaW5saW5lOworICAgIGJvcmRlcjogbm9u
ZTsKKyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgIHdpZHRoOiAzNXB4OworICAgIGhl
aWdodDogMzBweDsKKyAgICBsaW5lLWhlaWdodDogMzBweDsKKyAgICBtYXJnaW46IDAgNnB4IDAg
MDsKKyAgICBwYWRkaW5nOiAwOwogfQogCiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1w
bGF5LWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24gewog
ICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtcGxheS1idXR0b247Ci0KLSAgICBwb3NpdGlv
bjogYWJzb2x1dGU7Ci0gICAgdG9wOiBhdXRvOwotICAgIGJvdHRvbTogN3B4OwotICAgIGxlZnQ6
IDdweDsKLSAgICByaWdodDogNnB4OwotCi0gICAgd2lkdGg6IDE4cHg7Ci0gICAgaGVpZ2h0OiAx
OXB4OwotfQotCi1hdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWlu
ZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciB7Ci0g
ICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS10aW1lbGluZS1jb250YWluZXI7Ci0gICAgLXdl
YmtpdC11c2VyLXNlbGVjdDogbm9uZTsKLSAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250
YWw7Ci0gICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKLSAgICAtd2Via2l0LWJveC1wYWNr
OiBjZW50ZXI7Ci0gICAgLXdlYmtpdC1ib3gtZmxleDogMTsKLQotICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKLSAgICB0b3A6IGF1dG87Ci0gICAgYm90dG9tOiAwOwotICAgIGxlZnQ6IDMwcHg7Ci0g
ICAgcmlnaHQ6IDM0cHg7Ci0KLSAgICB3aWR0aDogYXV0bzsKLSAgICBoZWlnaHQ6IDMycHg7Ci0K
LSAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKLSAg
ICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7CisgICAg
ZGlzcGxheTogaW5saW5lOworICAgIGJvcmRlcjogbm9uZTsKKyAgICBib3gtc2l6aW5nOiBib3Jk
ZXItYm94OworICAgIHdpZHRoOiAzMHB4OworICAgIGhlaWdodDogMzBweDsKKyAgICBsaW5lLWhl
aWdodDogMzBweDsKKyAgICBtYXJnaW4tbGVmdDogOXB4OworICAgIG1hcmdpbi1yaWdodDogOXB4
OworICAgIHBhZGRpbmc6IDA7CiB9CiAKIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1
cnJlbnQtdGltZS1kaXNwbGF5LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50
LXRpbWUtZGlzcGxheSB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1jdXJyZW50LXRp
bWUtZGlzcGxheTsKICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwotICAgIGRpc3BsYXk6
IC13ZWJraXQtYm94OwotICAgIC13ZWJraXQtYm94LWZsZXg6IDA7Ci0gICAgLXdlYmtpdC1ib3gt
cGFjazogY2VudGVyOwotICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7Ci0KLSAgICBvdmVy
ZmxvdzogaGlkZGVuOworICAgIGRpc3BsYXk6IGJsb2NrOworICAgIGJvcmRlcjogbm9uZTsKICAg
ICBjdXJzb3I6IGRlZmF1bHQ7CiAKLSAgICBsaW5lLWhlaWdodDogMjFweDsKLSAgICBoZWlnaHQ6
IDIwcHg7Ci0gICAgd2lkdGg6IDU4cHg7CisgICAgaGVpZ2h0OiAzMHB4OworICAgIG1hcmdpbjog
MCA5cHggMCAwOworICAgIHBhZGRpbmc6IDA7CiAKLSAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci0g
ICAgZm9udC1mYW1pbHk6IEFyaWFsOwotICAgIGZvbnQtc2l6ZTogMTZweDsKLSAgICBmb250LXdl
aWdodDogYm9sZDsKKyAgICBsaW5lLWhlaWdodDogMzBweDsKKyAgICBmb250LWZhbWlseTogQXJp
YWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKKyAgICBmb250LXNpemU6IDEzcHg7CiAgICAgY29s
b3I6IHdoaXRlOwogCiAgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsKQEAgLTEzNyw0MCArMTI0
LDQ4IEBAIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5
LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9sCiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy10aW1lbGluZSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUgewog
ICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtc2xpZGVyOwogICAgIGRpc3BsYXk6IC13ZWJr
aXQtYm94OwotICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgLXdlYmtpdC1ib3gtZmxl
eDogMTsKLQotICAgIHBhZGRpbmc6IDBweDsKLSAgICBtYXJnaW46IDBweCA2cHg7Ci0gICAgaGVp
Z2h0OiAxOHB4OwotCi0gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7
Ci0gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDsKLSAgICBib3JkZXItd2lkdGg6IDFweDsKLSAgICBi
b3JkZXItcmFkaXVzOiAycHg7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwg
MjU1LCAwLjA4KTsKLSAgICBjb2xvcjogcmdiKDUwLCAxNDAsIDIyMyk7Ci19Ci0KLWF1ZGlvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyLCB2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciB7Ci0gICAgLXdlYmtp
dC1hcHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyLWNvbnRhaW5lcjsKLSAgICBwb3NpdGlv
bjogYWJzb2x1dGU7Ci0gICAgYm90dG9tOiAzMnB4OwotCi0gICAgd2lkdGg6IDM0cHg7Ci0gICAg
aGVpZ2h0OiAxMDBweDsKLQotICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42
KTsKKyAgICBoZWlnaHQ6IDhweDsKKyAgICBtYXJnaW46IDAgMTVweCAwIDA7CisgICAgcGFkZGlu
ZzogMDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKKyAgICBtaW4td2lkdGg6
IDI1cHg7CiB9CiAKIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIs
IHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIgewogICAgIC13ZWJr
aXQtYXBwZWFyYW5jZTogbWVkaWEtdm9sdW1lLXNsaWRlcjsKLSAgICBkaXNwbGF5OiBpbmxpbmU7
Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotCi0gICAgdG9wOiAxMHB4OwotICAgIGxlZnQ6IDEy
cHg7CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtZmxleDogMTsK
KyAgICBoZWlnaHQ6IDhweDsKKyAgICBtYXgtd2lkdGg6IDcwcHg7CisgICAgbWFyZ2luOiAwIDE1
cHggMCAwOworICAgIHBhZGRpbmc6IDA7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJl
bnQ7CisgICAgbWluLXdpZHRoOiAxNXB4OworfQogCi0gICAgd2lkdGg6IDEwcHg7Ci0gICAgaGVp
Z2h0OiA4MHB4OworLyogRklYTUUgdGhlc2Ugc2hvdWxkbid0IHVzZSBzcGVjaWFsIHBzZXVkb1No
YWRvd0lkcywgYnV0IG5pY2VyIHJ1bGVzLgorICAgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9j
aHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTExMjUwOAorICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYyMjE4CisqLworaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtp
dC1tZWRpYS1zbGlkZXItY29udGFpbmVyIHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAg
ICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOworICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9y
aXpvbnRhbDsgLyogVGhpcyBwcm9wZXJ0eSBpcyB1cGRhdGVkIGJ5IEMrKyBjb2RlLiAqLworICAg
IC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICBoZWlnaHQ6IDEwMCU7CisgICAg
d2lkdGg6IDEwMCU7CisgICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDEzMCwgMTMwLCAxMzApOwor
ICAgIGJvcmRlci1yYWRpdXM6IDRweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVu
dDsgLyogQmFja2dyb3VuZCBkcmF3aW5nIGlzIG1hbmFnZWQgYnkgQysrIGNvZGUgdG8gZHJhdyBy
YW5nZXMuICovCiB9CisKK2lucHV0W3R5cGU9InJhbmdlIl06Oi13ZWJraXQtbWVkaWEtc2xpZGVy
LXRodW1iIHsKKyAgICBkaXNwbGF5OiBibG9jazsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHNs
aWRlcnRodW1iLWhvcml6b250YWw7CisgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94
OworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBib3R0b206IDFweDsKKyAgICBtYXJnaW4t
bGVmdDogLTdweDsKKyAgICBtYXJnaW4tcmlnaHQ6IC03cHg7Cit9ClwgTm8gbmV3bGluZSBhdCBl
bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcAppbmRleCBiZGNkOTE2NGQ4OWRh
ZDRiN2ZkNzg4ZGFhMjJiMzM5NjhmOWUwMGE1Li5jNzQ1ZDYzMThhYjVjNzhmMDI3MWQzZWI1MTkw
ODkwNGI1OWVjMzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcApAQCAtMjksNiArMjks
NyBAQAogI2lmIEVOQUJMRShWSURFTykKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtLmgiCiAKKyNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJNZWRp
YUNvbnRyb2xFbGVtZW50cy5oIgpAQCAtNDUsMTcgKzQ2LDMzIEBAIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1
cmVFbGVtZW50OjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQoRG9jdW1lbnQq
IGRvY3VtZW50KQorICAgIDogSFRNTERpdkVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3Vt
ZW50LT5kb2N1bWVudCgpKQorICAgICwgbV9tZWRpYUNvbnRyb2xsZXIoMCkKK3sKK30KKworUGFz
c1JlZlB0cjxNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ+IE1lZGlhQ29udHJv
bENocm9taXVtRW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK3sK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxl
bWVudChkb2N1bWVudCkpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbENo
cm9taXVtRW5jbG9zdXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAoreworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRy
b2xzLWVuY2xvc3VyZSIpKTsKKyAgICByZXR1cm4gaWQ7Cit9CisKIE1lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW06Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0oRG9jdW1lbnQq
IGRvY3VtZW50KQogICAgIDogTWVkaWFDb250cm9scyhkb2N1bWVudCkKICAgICAsIG1fbWVkaWFD
b250cm9sbGVyKDApCiAgICAgLCBtX3BsYXlCdXR0b24oMCkKICAgICAsIG1fY3VycmVudFRpbWVE
aXNwbGF5KDApCiAgICAgLCBtX3RpbWVsaW5lKDApCi0gICAgLCBtX3RpbWVsaW5lQ29udGFpbmVy
KDApCiAgICAgLCBtX3BhbmVsTXV0ZUJ1dHRvbigwKQogICAgICwgbV92b2x1bWVTbGlkZXIoMCkK
LSAgICAsIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyKDApCiAgICAgLCBtX3BhbmVsKDApCisgICAg
LCBtX2VuY2xvc3VyZSgwKQogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICAsIG1fdGV4dERp
c3BsYXlDb250YWluZXIoMCkKICAgICAsIG1fdGV4dFRyYWNrRGlzcGxheSgwKQpAQCAtNzcsNiAr
OTQsOSBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+IE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNyZQogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJv
bFJvb3RFbGVtZW50Q2hyb21pdW0+IGNvbnRyb2xzID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJv
bFJvb3RFbGVtZW50Q2hyb21pdW0oZG9jdW1lbnQpKTsKIAorICAgIC8vIENyZWF0ZSBhbiBlbmNs
b3NpbmcgZWxlbWVudCBmb3IgdGhlIHBhbmVsIHNvIHdlIGNhbiB2aXN1YWxseSBvZmZzZXQgdGhl
IGNvbnRyb2xzIGNvcnJlY3RseS4KKyAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2hyb21pdW1FbmNs
b3N1cmVFbGVtZW50PiBlbmNsb3N1cmUgPSBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxF
bGVtZW50PiBwYW5lbCA9IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CkBAIC04Nyw1MiArMTA3LDM3IEBAIFBhc3NSZWZQ
dHI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bT4gTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bTo6Y3JlCiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFJl
ZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ+IHRpbWVsaW5lQ29udGFp
bmVyID0gTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQpOwotCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gdGltZWxpbmUg
PSBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMu
Z2V0KCkpOwogICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lID0gdGltZWxpbmUuZ2V0KCk7Ci0gICAg
dGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwgZWMsIHRy
dWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0aW1lbGluZS5yZWxlYXNlKCksIGVjLCB0cnVl
KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IGN1cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlh
Q29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAg
Y29udHJvbHMtPm1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5LmdldCgp
OwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURpc3BsYXku
cmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKGN1cnJlbnRUaW1l
RGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVy
biAwOwogCi0gICAgY29udHJvbHMtPm1fdGltZWxpbmVDb250YWluZXIgPSB0aW1lbGluZUNvbnRh
aW5lci5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmVDb250YWluZXIucmVs
ZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRv
bkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOworICAgIGNvbnRyb2xzLT5t
X3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKKyAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChl
YykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHBhbmVs
Vm9sdW1lQ29udHJvbENvbnRhaW5lciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwotCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ+
IHZvbHVtZVNsaWRlckNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5l
ckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0KICAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXIgPSBzbGlk
ZXIuZ2V0KCk7Ci0gICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChzbGlkZXIu
cmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKHNsaWRlci5yZWxl
YXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
Y29udHJvbHMtPm1fdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gdm9sdW1lU2xpZGVyQ29udGFpbmVy
LmdldCgpOwotICAgIHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lci0+YXBwZW5kQ2hpbGQodm9s
dW1lU2xpZGVyQ29udGFpbmVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOwotICAgIGlmIChlYykKLSAg
ICAgICAgcmV0dXJuIDA7Ci0KLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9u
RWxlbWVudD4gcGFuZWxNdXRlQnV0dG9uID0gTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7Ci0gICAgY29udHJvbHMtPm1f
cGFuZWxNdXRlQnV0dG9uID0gcGFuZWxNdXRlQnV0dG9uLmdldCgpOwotICAgIHBhbmVsVm9sdW1l
Q29udHJvbENvbnRhaW5lci0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwg
ZWMsIHRydWUpOwotICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBwYW5lbC0+
YXBwZW5kQ2hpbGQocGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLCBlYywgdHJ1ZSk7CisgICAg
Y29udHJvbHMtPm1fcGFuZWwgPSBwYW5lbC5nZXQoKTsKKyAgICBlbmNsb3N1cmUtPmFwcGVuZENo
aWxkKHBhbmVsLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICBjb250cm9scy0+bV9wYW5lbCA9IHBhbmVsLmdldCgpOwotICAgIGNvbnRy
b2xzLT5hcHBlbmRDaGlsZChwYW5lbC5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBjb250cm9s
cy0+bV9lbmNsb3N1cmUgPSBlbmNsb3N1cmUuZ2V0KCk7CisgICAgY29udHJvbHMtPmFwcGVuZENo
aWxkKGVuY2xvc3VyZS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCiAgICAgICAg
IHJldHVybiAwOwogCkBAIC0xNTEsMTYgKzE1NiwxNCBAQCB2b2lkIE1lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW06OnNldE1lZGlhQ29udHJvbGxlcihNZWRpYUNvbnRyb2xsZXJJbnRlcmZh
YwogICAgICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRy
b2xsZXIpOwogICAgIGlmIChtX3RpbWVsaW5lKQogICAgICAgICBtX3RpbWVsaW5lLT5zZXRNZWRp
YUNvbnRyb2xsZXIoY29udHJvbGxlcik7Ci0gICAgaWYgKG1fdGltZWxpbmVDb250YWluZXIpCi0g
ICAgICAgIG1fdGltZWxpbmVDb250YWluZXItPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVy
KTsKICAgICBpZiAobV9wYW5lbE11dGVCdXR0b24pCiAgICAgICAgIG1fcGFuZWxNdXRlQnV0dG9u
LT5zZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7CiAgICAgaWYgKG1fdm9sdW1lU2xpZGVy
KQogICAgICAgICBtX3ZvbHVtZVNsaWRlci0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIp
OwotICAgIGlmIChtX3ZvbHVtZVNsaWRlckNvbnRhaW5lcikKLSAgICAgICAgbV92b2x1bWVTbGlk
ZXJDb250YWluZXItPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsKICAgICBpZiAobV9w
YW5lbCkKICAgICAgICAgbV9wYW5lbC0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwor
ICAgIGlmIChtX2VuY2xvc3VyZSkKKyAgICAgICAgbV9lbmNsb3N1cmUtPnNldE1lZGlhQ29udHJv
bGxlcihjb250cm9sbGVyKTsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgaWYgKG1fdGV4
dERpc3BsYXlDb250YWluZXIpCiAgICAgICAgIG1fdGV4dERpc3BsYXlDb250YWluZXItPnNldE1l
ZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsKQEAgLTE3OCw3ICsxODEsNiBAQCB2b2lkIE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmhpZGUoKQogewogICAgIG1fcGFuZWwtPnNldElz
RGlzcGxheWVkKGZhbHNlKTsKICAgICBtX3BhbmVsLT5oaWRlKCk7Ci0gICAgbV92b2x1bWVTbGlk
ZXJDb250YWluZXItPmhpZGUoKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENo
cm9taXVtOjptYWtlT3BhcXVlKCkKQEAgLTE4OSw3ICsxOTEsNiBAQCB2b2lkIE1lZGlhQ29udHJv
bFJvb3RFbGVtZW50Q2hyb21pdW06Om1ha2VPcGFxdWUoKQogdm9pZCBNZWRpYUNvbnRyb2xSb290
RWxlbWVudENocm9taXVtOjptYWtlVHJhbnNwYXJlbnQoKQogewogICAgIG1fcGFuZWwtPm1ha2VU
cmFuc3BhcmVudCgpOwotICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5oaWRlKCk7CiB9CiAK
IHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cmVzZXQoKQpAQCAtMjAyLDcg
KzIwMyw3IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cmVzZXQoKQog
CiAgICAgZmxvYXQgZHVyYXRpb24gPSBtX21lZGlhQ29udHJvbGxlci0+ZHVyYXRpb24oKTsKICAg
ICBtX3RpbWVsaW5lLT5zZXREdXJhdGlvbihkdXJhdGlvbik7Ci0gICAgbV90aW1lbGluZUNvbnRh
aW5lci0+c2hvdygpOworICAgIG1fdGltZWxpbmUtPnNob3coKTsKICAgICBtX3RpbWVsaW5lLT5z
ZXRQb3NpdGlvbihtX21lZGlhQ29udHJvbGxlci0+Y3VycmVudFRpbWUoKSk7CiAgICAgdXBkYXRl
VGltZURpc3BsYXkoKTsKIApAQCAtMjU5LDkgKzI2MCw5IEBAIHZvaWQgTWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bTo6cmVwb3J0ZWRFcnJvcigpCiAgICAgaWYgKCFwYWdlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBtX3RpbWVsaW5lQ29udGFpbmVyLT5oaWRlKCk7CisgICAgbV90aW1l
bGluZS0+aGlkZSgpOwogICAgIG1fcGFuZWxNdXRlQnV0dG9uLT5oaWRlKCk7Ci0gICAgbV92b2x1
bWVTbGlkZXJDb250YWluZXItPmhpZGUoKTsKKyAgICBtX3ZvbHVtZVNsaWRlci0+aGlkZSgpOwog
fQogCiB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnVwZGF0ZVN0YXR1c0Rp
c3BsYXkoKQpAQCAtMzMxLDcgKzMzMiw3IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bTo6c2hvd1ZvbHVtZVNsaWRlcigpCiAgICAgaWYgKCFtX21lZGlhQ29udHJvbGxlci0+
aGFzQXVkaW8oKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV92b2x1bWVTbGlkZXJDb250YWlu
ZXItPnNob3coKTsKKyAgICBtX3ZvbHVtZVNsaWRlci0+c2hvdygpOwogfQogCiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQpAQCAtMzQ1LDcgKzM0Niw3IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnRDaHJvbWl1bTo6Y3JlYXRlVGV4dFRyYWNrRGlzcGxheSgpCiAKICAgICAvLyBJbnNlcnQg
aXQgYmVmb3JlIHRoZSBmaXJzdCBjb250cm9sbGVyIGVsZW1lbnQgc28gaXQgYWx3YXlzIGRpc3Bs
YXlzIGJlaGluZCB0aGUgY29udHJvbHMuCiAgICAgRXhjZXB0aW9uQ29kZSBlYzsKLSAgICBpbnNl
cnRCZWZvcmUodGV4dERpc3BsYXlDb250YWluZXIucmVsZWFzZSgpLCBtX3BhbmVsLCBlYywgdHJ1
ZSk7CisgICAgaW5zZXJ0QmVmb3JlKHRleHREaXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKSwgbV9l
bmNsb3N1cmUsIGVjLCB0cnVlKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENo
cm9taXVtOjpzaG93VGV4dFRyYWNrRGlzcGxheSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmgKaW5k
ZXggMzY2MTg2YjY1ZTFmODI1NTViYjFmNTcxYzU2OWIzN2Y5NDdlMDFjOS4uYzdmYjM5Y2VjMjkz
ZjU4YzdjZWE2MGM2NTc1ODQ2YmQ2ZDI3ZmUzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaApA
QCAtNDcsOCArNDcsOCBAQCBjbGFzcyBNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQ7CiBj
bGFzcyBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNv
bnRyb2xNdXRlQnV0dG9uRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVs
ZW1lbnQ7Ci1jbGFzcyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50Owog
Y2xhc3MgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OworY2xhc3MgTWVkaWFDb250cm9sQ2hyb21p
dW1FbmNsb3N1cmVFbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sbGVySW50ZXJmYWNlOwogY2xh
c3MgTWVkaWFQbGF5ZXI7CiAKQEAgLTYwLDYgKzYwLDI0IEBAIGNsYXNzIE1lZGlhQ29udHJvbFRl
eHRUcmFja0NvbnRhaW5lckVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xUZXh0VHJhY2tEaXNw
bGF5RWxlbWVudDsKICNlbmRpZgogCitjbGFzcyBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3Vy
ZUVsZW1lbnQgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudD4gY3JlYXRlKERv
Y3VtZW50Kik7CisKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRv
SWQoKSBjb25zdDsKKworICAgIHZvaWQgc2V0TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxl
ckludGVyZmFjZSogY29udHJvbGxlcikgeyBtX21lZGlhQ29udHJvbGxlciA9IGNvbnRyb2xsZXI7
IH0KKyAgICBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UqIG1lZGlhQ29udHJvbGxlcigpIGNvbnN0
IHsgcmV0dXJuIG1fbWVkaWFDb250cm9sbGVyOyB9CisKK3Byb3RlY3RlZDoKKyAgICBNZWRpYUNv
bnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQoRG9jdW1lbnQqKTsKKworcHJpdmF0ZToKKyAg
ICB2aXJ0dWFsIGJvb2wgaXNNZWRpYUNvbnRyb2xFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQorCisgICAgTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKiBtX21lZGlhQ29udHJvbGxlcjsK
K307CisKIGNsYXNzIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0gOiBwdWJsaWMgTWVk
aWFDb250cm9scyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bT4gY3JlYXRlKERvY3VtZW50Kik7CkBAIC0xMjAsOCArMTM4LDgg
QEAgcHJpdmF0ZToKICAgICBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQqIG1f
dGltZWxpbmVDb250YWluZXI7CiAgICAgTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVu
dCogbV9wYW5lbE11dGVCdXR0b247CiAgICAgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVu
dCogbV92b2x1bWVTbGlkZXI7Ci0gICAgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVy
RWxlbWVudCogbV92b2x1bWVTbGlkZXJDb250YWluZXI7CiAgICAgTWVkaWFDb250cm9sUGFuZWxF
bGVtZW50KiBtX3BhbmVsOworICAgIE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVu
dCogbV9lbmNsb3N1cmU7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIE1lZGlhQ29udHJv
bFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQqIG1fdGV4dERpc3BsYXlDb250YWluZXI7CiAgICAg
TWVkaWFDb250cm9sVGV4dFRyYWNrRGlzcGxheUVsZW1lbnQqIG1fdGV4dFRyYWNrRGlzcGxheTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3Bw
CmluZGV4IDMwODNhNzUwMDJjNjJhYTI5YzFiZjgyMTM3NjEyYmQxMzQ5NjlkZTguLjhmOGM2Yzk4
ZDQwN2ZhYTM0YzQxNzE5Mjg0NjEwYTkxMDRkNTUyNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApAQCAtNjIsNyArNjIsMTAgQEAg
aW5saW5lIHN0YXRpYyBib29sIGhhc1ZlcnRpY2FsQXBwZWFyYW5jZShIVE1MSW5wdXRFbGVtZW50
KiBpbnB1dCkKIHsKICAgICBBU1NFUlQoaW5wdXQtPnJlbmRlcmVyKCkpOwogICAgIFJlbmRlclN0
eWxlKiBzbGlkZXJTdHlsZSA9IGlucHV0LT5yZW5kZXJlcigpLT5zdHlsZSgpOwotICAgIHJldHVy
biBzbGlkZXJTdHlsZS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCB8fCBzbGlk
ZXJTdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydDsKKyAgICBSZW5k
ZXJUaGVtZSogc2xpZGVyVGhlbWUgPSBpbnB1dC0+cmVuZGVyZXIoKS0+dGhlbWUoKTsKKworICAg
IHJldHVybiBzbGlkZXJTdHlsZS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydAor
ICAgICAgICB8fCAoc2xpZGVyU3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRl
clBhcnQgJiYgc2xpZGVyVGhlbWUtPnVzZXNWZXJ0aWNhbFZvbHVtZVNsaWRlcigpKTsKIH0KIAog
U2xpZGVyVGh1bWJFbGVtZW50KiBzbGlkZXJUaHVtYkVsZW1lbnRPZihOb2RlKiBub2RlKQpAQCAt
MTA4LDcgKzExMSw3IEBAIHZvaWQgUmVuZGVyU2xpZGVyVGh1bWI6OmxheW91dCgpCiAgICAgLy8g
RG8gbm90IGNhc3Qgbm9kZSgpIHRvIFNsaWRlclRodW1iRWxlbWVudC4gVGhpcyByZW5kZXJlciBp
cyB1c2VkIGZvcgogICAgIC8vIFRyYWNrTGltaXRFbGVtZW50IHRvby4KICAgICBIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dCA9IG5vZGUoKS0+c2hhZG93QW5jZXN0b3JOb2RlKCktPnRvSW5wdXRFbGVt
ZW50KCk7Ci0gICAgYm9vbCBpc1ZlcnRpY2FsID0gc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IFNs
aWRlclRodW1iVmVydGljYWxQYXJ0IHx8IHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZv
bHVtZVNsaWRlclRodW1iUGFydDsKKyAgICBib29sIGlzVmVydGljYWwgPSBoYXNWZXJ0aWNhbEFw
cGVhcmFuY2UoaW5wdXQpOwogCiAgICAgZG91YmxlIGZyYWN0aW9uID0gY29udmVydElucHV0TnVt
YmVyVG9Eb3VibGUoc2xpZGVyUG9zaXRpb24oaW5wdXQpICogMTAwKTsKICAgICBpZiAoaXNWZXJ0
aWNhbCkKQEAgLTMyMSwxMiArMzI0LDM4IEBAIEhUTUxJbnB1dEVsZW1lbnQqIFNsaWRlclRodW1i
RWxlbWVudDo6aG9zdElucHV0KCkgY29uc3QKICAgICByZXR1cm4gc2hhZG93QW5jZXN0b3JOb2Rl
KCktPnRvSW5wdXRFbGVtZW50KCk7CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgU2xpZGVyVGh1
bWJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CitzdGF0aWMgY29uc3QgQXRvbWljU3Ry
aW5nJiBzbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgc2xpZGVyVGh1bWIsICgiLXdlYmtpdC1zbGlkZXItdGh1bWIiKSk7
CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNsaWRlclRodW1i
LCAoIi13ZWJraXQtc2xpZGVyLXRodW1iIikpOwogICAgIHJldHVybiBzbGlkZXJUaHVtYjsKIH0K
IAorc3RhdGljIGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFTbGlkZXJUaHVtYlNoYWRvd1BzZXVk
b0lkKCkKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbWVk
aWFTbGlkZXJUaHVtYiwgKCItd2Via2l0LW1lZGlhLXNsaWRlci10aHVtYiIpKTsKKyAgICByZXR1
cm4gbWVkaWFTbGlkZXJUaHVtYjsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBTbGlkZXJUaHVt
YkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK3sKKyAgICBIVE1MSW5wdXRFbGVtZW50
KiBpbnB1dCA9IGhvc3RJbnB1dCgpOworICAgIGlmICghaW5wdXQpCisgICAgICAgIHJldHVybiBz
bGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCk7CisKKyAgICBSZW5kZXJTdHlsZSogc2xpZGVyU3R5
bGUgPSBpbnB1dC0+cmVuZGVyZXIoKS0+c3R5bGUoKTsKKyAgICBzd2l0Y2ggKHNsaWRlclN0eWxl
LT5hcHBlYXJhbmNlKCkpIHsKKyAgICBjYXNlIE1lZGlhU2xpZGVyUGFydDoKKyAgICBjYXNlIE1l
ZGlhU2xpZGVyVGh1bWJQYXJ0OgorICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0OgorICAg
IGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQ6CisgICAgY2FzZSBNZWRpYUZ1bGxTY3Jl
ZW5Wb2x1bWVTbGlkZXJQYXJ0OgorICAgIGNhc2UgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVy
VGh1bWJQYXJ0OgorICAgICAgICByZXR1cm4gbWVkaWFTbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lk
KCk7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHNsaWRlclRodW1iU2hhZG93UHNldWRv
SWQoKTsKKyAgICB9Cit9CisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
IGlubGluZSBUcmFja0xpbWl0ZXJFbGVtZW50OjpUcmFja0xpbWl0ZXJFbGVtZW50KERvY3VtZW50
KiBkb2N1bWVudCkKQEAgLTM1MSw4ICszODAsMjIgQEAgUmVuZGVyT2JqZWN0KiBUcmFja0xpbWl0
ZXJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWwK
IAogY29uc3QgQXRvbWljU3RyaW5nJiBUcmFja0xpbWl0ZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9J
ZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNsaWRl
clRodW1iLCAoIi13ZWJraXQtc2xpZGVyLXRodW1iIikpOwotICAgIHJldHVybiBzbGlkZXJUaHVt
YjsKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHNoYWRvd0FuY2VzdG9yTm9kZSgpLT50
b0lucHV0RWxlbWVudCgpOworICAgIGlmICghaW5wdXQpCisgICAgICAgIHJldHVybiBzbGlkZXJU
aHVtYlNoYWRvd1BzZXVkb0lkKCk7CisKKyAgICBSZW5kZXJTdHlsZSogc2xpZGVyU3R5bGUgPSBp
bnB1dC0+cmVuZGVyZXIoKS0+c3R5bGUoKTsKKyAgICBzd2l0Y2ggKHNsaWRlclN0eWxlLT5hcHBl
YXJhbmNlKCkpIHsKKyAgICBjYXNlIE1lZGlhU2xpZGVyUGFydDoKKyAgICBjYXNlIE1lZGlhU2xp
ZGVyVGh1bWJQYXJ0OgorICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0OgorICAgIGNhc2Ug
TWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQ6CisgICAgY2FzZSBNZWRpYUZ1bGxTY3JlZW5Wb2x1
bWVTbGlkZXJQYXJ0OgorICAgIGNhc2UgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyVGh1bWJQ
YXJ0OgorICAgICAgICByZXR1cm4gbWVkaWFTbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCk7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoKTsK
KyAgICB9CiB9CiAKIFRyYWNrTGltaXRlckVsZW1lbnQqIHRyYWNrTGltaXRlckVsZW1lbnRPZihO
b2RlKiBub2RlKQpAQCAtMzg1LDggKzQyOCwyNSBAQCBSZW5kZXJPYmplY3QqIFNsaWRlckNvbnRh
aW5lckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyUwog
CiBjb25zdCBBdG9taWNTdHJpbmcmIFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVk
b0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2xp
ZGVyVGh1bWIsICgiLXdlYmtpdC1zbGlkZXItY29udGFpbmVyIikpOwotICAgIHJldHVybiBzbGlk
ZXJUaHVtYjsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgbWVkaWFTbGlk
ZXJDb250YWluZXIsICgiLXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVyIikpOworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzbGlkZXJDb250YWluZXIsICgiLXdlYmtp
dC1zbGlkZXItY29udGFpbmVyIikpOworCisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBz
aGFkb3dBbmNlc3Rvck5vZGUoKS0+dG9JbnB1dEVsZW1lbnQoKTsKKyAgICBpZiAoIWlucHV0KQor
ICAgICAgICByZXR1cm4gc2xpZGVyQ29udGFpbmVyOworCisgICAgUmVuZGVyU3R5bGUqIHNsaWRl
clN0eWxlID0gaW5wdXQtPnJlbmRlcmVyKCktPnN0eWxlKCk7CisgICAgc3dpdGNoIChzbGlkZXJT
dHlsZS0+YXBwZWFyYW5jZSgpKSB7CisgICAgY2FzZSBNZWRpYVNsaWRlclBhcnQ6CisgICAgY2Fz
ZSBNZWRpYVNsaWRlclRodW1iUGFydDoKKyAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyUGFydDoK
KyAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgorICAgIGNhc2UgTWVkaWFGdWxs
U2NyZWVuVm9sdW1lU2xpZGVyUGFydDoKKyAgICBjYXNlIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNs
aWRlclRodW1iUGFydDoKKyAgICAgICAgcmV0dXJuIG1lZGlhU2xpZGVyQ29udGFpbmVyOworICAg
IGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBzbGlkZXJDb250YWluZXI7CisgICAgfQogfQogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9s
c0Nocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRy
b2xzQ2hyb21pdW0uY3BwCmluZGV4IDcyZTEyYzg4MWJjNzNmZDA1ZTk2NWE5OGIwZGI5YmY2YjA4
ZWU4ZmYuLmI2YjQ0Zjg2NzViMzEyMTA2NDlmNDQzOTA0NGI1MzUxYmM1ODdlYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hy
b21pdW0uY3BwCkBAIC03NCwxNCArNzQsMjEgQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYU11dGVC
dXR0b24oUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmYKICAg
ICBpZiAoIW1lZGlhRWxlbWVudCkKICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHN0YXRpYyBJ
bWFnZSogc291bmRGdWxsID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFTb3VuZEZ1bGwiKTsKLSAg
ICBzdGF0aWMgSW1hZ2UqIHNvdW5kTm9uZSA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhU291bmRO
b25lIik7Ci0gICAgc3RhdGljIEltYWdlKiBzb3VuZERpc2FibGVkID0gcGxhdGZvcm1SZXNvdXJj
ZSgibWVkaWFTb3VuZERpc2FibGVkIik7CisgICAgc3RhdGljIEltYWdlKiBzb3VuZExldmVsMyA9
IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVyU291bmRMZXZlbDMiKTsKKyAgICBzdGF0aWMg
SW1hZ2UqIHNvdW5kTGV2ZWwyID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFwbGF5ZXJTb3VuZExl
dmVsMiIpOworICAgIHN0YXRpYyBJbWFnZSogc291bmRMZXZlbDEgPSBwbGF0Zm9ybVJlc291cmNl
KCJtZWRpYXBsYXllclNvdW5kTGV2ZWwxIik7CisgICAgc3RhdGljIEltYWdlKiBzb3VuZERpc2Fi
bGVkID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFwbGF5ZXJTb3VuZERpc2FibGVkIik7CiAKLSAg
ICBpZiAoIWhhc1NvdXJjZShtZWRpYUVsZW1lbnQpIHx8ICFtZWRpYUVsZW1lbnQtPmhhc0F1ZGlv
KCkpCisgICAgaWYgKCFoYXNTb3VyY2UobWVkaWFFbGVtZW50KSB8fCAhbWVkaWFFbGVtZW50LT5o
YXNBdWRpbygpIHx8IG1lZGlhRWxlbWVudC0+bXV0ZWQoKSB8fCBtZWRpYUVsZW1lbnQtPnZvbHVt
ZSgpIDw9IDApCiAgICAgICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9uKHBhaW50SW5mby5jb250
ZXh0LCByZWN0LCBzb3VuZERpc2FibGVkKTsKIAotICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9u
KHBhaW50SW5mby5jb250ZXh0LCByZWN0LCBtZWRpYUVsZW1lbnQtPm11dGVkKCkgPyBzb3VuZE5v
bmU6IHNvdW5kRnVsbCk7CisgICAgaWYgKG1lZGlhRWxlbWVudC0+dm9sdW1lKCkgPD0gMC4zMykK
KyAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFCdXR0b24ocGFpbnRJbmZvLmNvbnRleHQsIHJlY3Qs
IHNvdW5kTGV2ZWwxKTsKKworICAgIGlmIChtZWRpYUVsZW1lbnQtPnZvbHVtZSgpIDw9IDAuNjYp
CisgICAgICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9uKHBhaW50SW5mby5jb250ZXh0LCByZWN0
LCBzb3VuZExldmVsMik7CisKKyAgICByZXR1cm4gcGFpbnRNZWRpYUJ1dHRvbihwYWludEluZm8u
Y29udGV4dCwgcmVjdCwgc291bmRMZXZlbDMpOwogfQogCiBzdGF0aWMgYm9vbCBwYWludE1lZGlh
UGxheUJ1dHRvbihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludElu
Zm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCkBAIC05MCw5ICs5Nyw5IEBAIHN0YXRpYyBib29sIHBh
aW50TWVkaWFQbGF5QnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8m
IHBhaW50SW5mCiAgICAgaWYgKCFtZWRpYUVsZW1lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHN0YXRpYyBJbWFnZSogbWVkaWFQbGF5ID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFQ
bGF5Iik7Ci0gICAgc3RhdGljIEltYWdlKiBtZWRpYVBhdXNlID0gcGxhdGZvcm1SZXNvdXJjZSgi
bWVkaWFQYXVzZSIpOwotICAgIHN0YXRpYyBJbWFnZSogbWVkaWFQbGF5RGlzYWJsZWQgPSBwbGF0
Zm9ybVJlc291cmNlKCJtZWRpYVBsYXlEaXNhYmxlZCIpOworICAgIHN0YXRpYyBJbWFnZSogbWVk
aWFQbGF5ID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFwbGF5ZXJQbGF5Iik7CisgICAgc3RhdGlj
IEltYWdlKiBtZWRpYVBhdXNlID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFwbGF5ZXJQYXVzZSIp
OworICAgIHN0YXRpYyBJbWFnZSogbWVkaWFQbGF5RGlzYWJsZWQgPSBwbGF0Zm9ybVJlc291cmNl
KCJtZWRpYXBsYXllclBsYXlEaXNhYmxlZCIpOwogCiAgICAgaWYgKCFoYXNTb3VyY2UobWVkaWFF
bGVtZW50KSkKICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFCdXR0b24ocGFpbnRJbmZvLmNvbnRl
eHQsIHJlY3QsIG1lZGlhUGxheURpc2FibGVkKTsKQEAgLTEwMiwxMCArMTA5LDc1IEBAIHN0YXRp
YyBib29sIHBhaW50TWVkaWFQbGF5QnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQ
YWludEluZm8mIHBhaW50SW5mCiAKIHN0YXRpYyBJbWFnZSogZ2V0TWVkaWFTbGlkZXJUaHVtYigp
CiB7Ci0gICAgc3RhdGljIEltYWdlKiBtZWRpYVNsaWRlclRodW1iID0gcGxhdGZvcm1SZXNvdXJj
ZSgibWVkaWFTbGlkZXJUaHVtYiIpOworICAgIHN0YXRpYyBJbWFnZSogbWVkaWFTbGlkZXJUaHVt
YiA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVyU2xpZGVyVGh1bWIiKTsKICAgICByZXR1
cm4gbWVkaWFTbGlkZXJUaHVtYjsKIH0KIAorc3RhdGljIHZvaWQgcGFpbnRSb3VuZGVkU2xpZGVy
QmFja2dyb3VuZChjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUs
IEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBpbnQgYm9yZGVyUmFkaXVzID0gcmVj
dC5oZWlnaHQoKSAvIDI7CisgICAgSW50U2l6ZSByYWRpaShib3JkZXJSYWRpdXMsIGJvcmRlclJh
ZGl1cyk7CisgICAgQ29sb3Igc2xpZGVyQmFja2dyb3VuZENvbG9yID0gQ29sb3IoMjksIDI5LCAy
OSk7CisgICAgY29udGV4dC0+c2F2ZSgpOworICAgIGNvbnRleHQtPmZpbGxSb3VuZGVkUmVjdChy
ZWN0LCByYWRpaSwgcmFkaWksIHJhZGlpLCByYWRpaSwgc2xpZGVyQmFja2dyb3VuZENvbG9yLCBD
b2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICBjb250ZXh0LT5yZXN0b3JlKCk7Cit9CisKK3N0YXRp
YyB2b2lkIHBhaW50U2xpZGVyUmFuZ2VIaWdobGlnaHQoY29uc3QgSW50UmVjdCYgcmVjdCwgY29u
c3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGZsb2F0IHN0
YXJ0RnJhY3Rpb24sIGZsb2F0IHdpZHRoRnJhY3Rpb24pCit7CisgICAgaWYgKHN0YXJ0RnJhY3Rp
b24gPCAwKQorICAgICAgICBzdGFydEZyYWN0aW9uID0gMDsKKyAgICBpZiAod2lkdGhGcmFjdGlv
biA+IDEpCisgICAgICAgIHdpZHRoRnJhY3Rpb24gPSAxOworICAgIGZsb2F0IGVuZEZyYWN0aW9u
ID0gc3RhcnRGcmFjdGlvbiArIHdpZHRoRnJhY3Rpb247CisgICAgaWYgKGVuZEZyYWN0aW9uID4g
MSkgeworICAgICAgICB3aWR0aEZyYWN0aW9uID0gd2lkdGhGcmFjdGlvbiAtIHN0YXJ0RnJhY3Rp
b247CisgICAgICAgIGVuZEZyYWN0aW9uID0gc3RhcnRGcmFjdGlvbiArIHdpZHRoRnJhY3Rpb247
CisgICAgfQorCisgICAgLy8gU2V0IHJlY3RhbmdsZSB0byBoaWdobGlnaHQgcmFuZ2UuCisgICAg
SW50UmVjdCBoaWdobGlnaHRSZWN0ID0gcmVjdDsKKyAgICBpbnQgc3RhcnRPZmZzZXQgPSBzdGFy
dEZyYWN0aW9uICogcmVjdC53aWR0aCgpOworICAgIGludCBlbmRPZmZzZXQgPSByZWN0LndpZHRo
KCkgLSBlbmRGcmFjdGlvbiAqIHJlY3Qud2lkdGgoKTsKKyAgICBpbnQgcmFuZ2VXaWR0aCA9IHdp
ZHRoRnJhY3Rpb24gKiByZWN0LndpZHRoKCk7CisgICAgaGlnaGxpZ2h0UmVjdC5tb3ZlKHN0YXJ0
T2Zmc2V0LCAwKTsKKyAgICBoaWdobGlnaHRSZWN0LnNldFdpZHRoKHJhbmdlV2lkdGgpOworCisg
ICAgLy8gRG9uJ3QgYm90aGVyIGRyYXdpbmcgYW4gZW1wdHkgYXJlYS4KKyAgICBpZiAoaGlnaGxp
Z2h0UmVjdC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIENhbGN1bGF0ZSBi
b3JkZXIgcmFkaXVzOyBuZWVkIHRvIGF2b2lkIGJlaW5nIHNtYWxsZXIgdGhhbiBoYWxmIHRoZSBz
bGlkZXIgaGVpZ2h0CisgICAgLy8gYmVjYXVzZSBvZiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzAxNDMuCisgICAgaW50IGJvcmRlclJhZGl1cyA9IHJlY3QuaGVpZ2h0
KCkgLyAyOworICAgIEludFNpemUgcmFkaWkoYm9yZGVyUmFkaXVzLCBib3JkZXJSYWRpdXMpOwor
CisgICAgLy8gQ2FsY3VsYXRlIHdoaXRlLWdyZXkgZ3JhZGllbnQuCisgICAgSW50UG9pbnQgc2xp
ZGVyVG9wTGVmdCA9IGhpZ2hsaWdodFJlY3QubG9jYXRpb24oKTsKKyAgICBJbnRQb2ludCBzbGlk
ZXJCb3R0b21MZWZ0ID0gc2xpZGVyVG9wTGVmdDsKKyAgICBzbGlkZXJCb3R0b21MZWZ0Lm1vdmUo
MCwgaGlnaGxpZ2h0UmVjdC5oZWlnaHQoKSk7CisgICAgQ29sb3Igc3RhcnRDb2xvciA9IENvbG9y
KDIyMCwgMjIwLCAyMjApOworICAgIENvbG9yIGVuZENvbG9yID0gQ29sb3IoMjQwLCAyNDAsIDI0
MCk7CisgICAgUmVmUHRyPEdyYWRpZW50PiBncmFkaWVudCA9IEdyYWRpZW50OjpjcmVhdGUoc2xp
ZGVyVG9wTGVmdCwgc2xpZGVyQm90dG9tTGVmdCk7CisgICAgZ3JhZGllbnQtPmFkZENvbG9yU3Rv
cCgwLjAsIHN0YXJ0Q29sb3IpOworICAgIGdyYWRpZW50LT5hZGRDb2xvclN0b3AoMS4wLCBlbmRD
b2xvcik7CisKKyAgICAvLyBGaWxsIGhpZ2hsaWdodCByZWN0YW5nbGUgd2l0aCBncmFkaWVudCwg
cG90ZW50aWFsbHkgcm91bmRlZCBpZiBvbiBsZWZ0IG9yIHJpZ2h0IGVkZ2UuCisgICAgY29udGV4
dC0+c2F2ZSgpOworICAgIGNvbnRleHQtPnNldEZpbGxHcmFkaWVudChncmFkaWVudCk7CisKKyAg
ICBpZiAoc3RhcnRPZmZzZXQgPCBib3JkZXJSYWRpdXMgJiYgZW5kT2Zmc2V0IDwgYm9yZGVyUmFk
aXVzKQorICAgICAgICBjb250ZXh0LT5maWxsUm91bmRlZFJlY3QoaGlnaGxpZ2h0UmVjdCwgcmFk
aWksIHJhZGlpLCByYWRpaSwgcmFkaWksIHN0YXJ0Q29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0Ip
OworICAgIGVsc2UgaWYgKHN0YXJ0T2Zmc2V0IDwgYm9yZGVyUmFkaXVzKQorICAgICAgICBjb250
ZXh0LT5maWxsUm91bmRlZFJlY3QoaGlnaGxpZ2h0UmVjdCwgcmFkaWksIEludFNpemUoMCwgMCks
IHJhZGlpLCBJbnRTaXplKDAsIDApLCBzdGFydENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsK
KyAgICBlbHNlIGlmIChlbmRPZmZzZXQgPCBib3JkZXJSYWRpdXMpCisgICAgICAgIGNvbnRleHQt
PmZpbGxSb3VuZGVkUmVjdChoaWdobGlnaHRSZWN0LCBJbnRTaXplKDAsIDApLCByYWRpaSwgSW50
U2l6ZSgwLCAwKSwgcmFkaWksIHN0YXJ0Q29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAg
IGVsc2UKKyAgICAgICAgY29udGV4dC0+ZmlsbFJlY3QoaGlnaGxpZ2h0UmVjdCk7CisKKyAgICBj
b250ZXh0LT5yZXN0b3JlKCk7Cit9CisKIHN0YXRpYyBib29sIHBhaW50TWVkaWFTbGlkZXIoUmVu
ZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRS
ZWN0JiByZWN0KQogewogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9IHRvUGFy
ZW50TWVkaWFFbGVtZW50KG9iamVjdCk7CkBAIC0xMTUsMjMgKzE4NywxMCBAQCBzdGF0aWMgYm9v
bCBwYWludE1lZGlhU2xpZGVyKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8m
IHBhaW50SW5mbywgYwogICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG9iamVjdC0+c3R5bGUoKTsK
ICAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBwYWludEluZm8uY29udGV4dDsKIAotICAg
IC8vIERyYXcgdGhlIGJvcmRlciBvZiB0aGUgdGltZSBiYXIuCi0gICAgLy8gRklYTUU6IHRoaXMg
c2hvdWxkIGJlIGEgcm91bmRlZCByZWN0IGJ1dCBuZWVkIHRvIGZpeCBHcmFwaGljc0NvbnRleHRT
a2lhIGZpcnN0LgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zMDE0MwotICAgIGNvbnRleHQtPnNhdmUoKTsKLSAgICBjb250ZXh0LT5zZXRTaG91bGRBbnRp
YWxpYXModHJ1ZSk7Ci0gICAgY29udGV4dC0+c2V0U3Ryb2tlU3R5bGUoU29saWRTdHJva2UpOwot
ICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKHN0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29sb3Io
Q1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29sb3IpLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICBj
b250ZXh0LT5zZXRTdHJva2VUaGlja25lc3Moc3R5bGUtPmJvcmRlckxlZnRXaWR0aCgpKTsKLSAg
ICBjb250ZXh0LT5zZXRGaWxsQ29sb3Ioc3R5bGUtPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQ
cm9wZXJ0eUJhY2tncm91bmRDb2xvciksIENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgIGNvbnRl
eHQtPmRyYXdSZWN0KHJlY3QpOwotICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKKyAgICBwYWludFJv
dW5kZWRTbGlkZXJCYWNrZ3JvdW5kKHJlY3QsIHN0eWxlLCBjb250ZXh0KTsKIAogICAgIC8vIERy
YXcgdGhlIGJ1ZmZlcmVkIHJhbmdlLiBTaW5jZSB0aGUgZWxlbWVudCBtYXkgaGF2ZSBtdWx0aXBs
ZSBidWZmZXJlZCByYW5nZXMgYW5kIGl0J2QgYmUKICAgICAvLyBkaXN0cmFjdGluZy8nYnVzeScg
dG8gc2hvdyBhbGwgb2YgdGhlbSwgc2hvdyBvbmx5IHRoZSBidWZmZXJlZCByYW5nZSBjb250YWlu
aW5nIHRoZSBjdXJyZW50IHBsYXkgaGVhZC4KLSAgICBJbnRSZWN0IGJ1ZmZlcmVkUmVjdCA9IHJl
Y3Q7Ci0gICAgYnVmZmVyZWRSZWN0LmluZmxhdGUoLXN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgoKSk7
Ci0KICAgICBSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWRUaW1lUmFuZ2VzID0gbWVkaWFFbGVt
ZW50LT5idWZmZXJlZCgpOwogICAgIGZsb2F0IGR1cmF0aW9uID0gbWVkaWFFbGVtZW50LT5kdXJh
dGlvbigpOwogICAgIGZsb2F0IGN1cnJlbnRUaW1lID0gbWVkaWFFbGVtZW50LT5jdXJyZW50VGlt
ZSgpOwpAQCAtMTQ2LDI3ICsyMDUsOCBAQCBzdGF0aWMgYm9vbCBwYWludE1lZGlhU2xpZGVyKFJl
bmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgYwogICAgICAg
ICBmbG9hdCBzdGFydEZyYWN0aW9uID0gc3RhcnQgLyBkdXJhdGlvbjsKICAgICAgICAgZmxvYXQg
ZW5kRnJhY3Rpb24gPSBlbmQgLyBkdXJhdGlvbjsKICAgICAgICAgZmxvYXQgd2lkdGhGcmFjdGlv
biA9IGVuZEZyYWN0aW9uIC0gc3RhcnRGcmFjdGlvbjsKLSAgICAgICAgYnVmZmVyZWRSZWN0Lm1v
dmUoc3RhcnRGcmFjdGlvbiAqIGJ1ZmZlcmVkUmVjdC53aWR0aCgpLCAwKTsKLSAgICAgICAgYnVm
ZmVyZWRSZWN0LnNldFdpZHRoKHdpZHRoRnJhY3Rpb24gKiBidWZmZXJlZFJlY3Qud2lkdGgoKSk7
Ci0KLSAgICAgICAgLy8gRG9uJ3QgYm90aGVyIGRyYXdpbmcgYW4gZW1wdHkgYXJlYS4KLSAgICAg
ICAgaWYgKGJ1ZmZlcmVkUmVjdC5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LQotICAgICAgICBJbnRQb2ludCBzbGlkZXJUb3BMZWZ0ID0gYnVmZmVyZWRSZWN0LmxvY2F0aW9u
KCk7Ci0gICAgICAgIEludFBvaW50IHNsaWRlckJvdHRvbUxlZnQgPSBzbGlkZXJUb3BMZWZ0Owot
ICAgICAgICBzbGlkZXJCb3R0b21MZWZ0Lm1vdmUoMCwgYnVmZmVyZWRSZWN0LmhlaWdodCgpKTsK
LQotICAgICAgICBSZWZQdHI8R3JhZGllbnQ+IGdyYWRpZW50ID0gR3JhZGllbnQ6OmNyZWF0ZShz
bGlkZXJUb3BMZWZ0LCBzbGlkZXJCb3R0b21MZWZ0KTsKLSAgICAgICAgQ29sb3Igc3RhcnRDb2xv
ciA9IG9iamVjdC0+c3R5bGUoKS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5Q29s
b3IpOwotICAgICAgICBncmFkaWVudC0+YWRkQ29sb3JTdG9wKDAuMCwgc3RhcnRDb2xvcik7Ci0g
ICAgICAgIGdyYWRpZW50LT5hZGRDb2xvclN0b3AoMS4wLCBDb2xvcihzdGFydENvbG9yLnJlZCgp
IC8gMiwgc3RhcnRDb2xvci5ncmVlbigpIC8gMiwgc3RhcnRDb2xvci5ibHVlKCkgLyAyLCBzdGFy
dENvbG9yLmFscGhhKCkpKTsKLQotICAgICAgICBjb250ZXh0LT5zYXZlKCk7Ci0gICAgICAgIGNv
bnRleHQtPnNldFN0cm9rZVN0eWxlKE5vU3Ryb2tlKTsKLSAgICAgICAgY29udGV4dC0+c2V0Rmls
bEdyYWRpZW50KGdyYWRpZW50KTsKLSAgICAgICAgY29udGV4dC0+ZmlsbFJlY3QoYnVmZmVyZWRS
ZWN0KTsKLSAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOworCisgICAgICAgIHBhaW50U2xpZGVy
UmFuZ2VIaWdobGlnaHQocmVjdCwgc3R5bGUsIGNvbnRleHQsIHN0YXJ0RnJhY3Rpb24sIHdpZHRo
RnJhY3Rpb24pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTE4OSw2ICsyMjks
OCBAQCBzdGF0aWMgYm9vbCBwYWludE1lZGlhU2xpZGVyVGh1bWIoUmVuZGVyT2JqZWN0KiBvYmpl
Y3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbgogICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9u
KHBhaW50SW5mby5jb250ZXh0LCByZWN0LCBtZWRpYVNsaWRlclRodW1iKTsKIH0KIAorY29uc3Qg
aW50IG1lZGlhVm9sdW1lU2xpZGVyVGh1bWJXaWR0aCA9IDI0OworCiBzdGF0aWMgYm9vbCBwYWlu
dE1lZGlhVm9sdW1lU2xpZGVyKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBIVE1MTWVkaWFFbGVtZW50
KiBtZWRpYUVsZW1lbnQgPSB0b1BhcmVudE1lZGlhRWxlbWVudChvYmplY3QpOwpAQCAtMTk2LDU3
ICsyMzgsMzQgQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlcihSZW5kZXJPYmpl
Y3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gcGFpbnRJbmZvLmNvbnRleHQ7Ci0g
ICAgQ29sb3Igb3JpZ2luYWxDb2xvciA9IGNvbnRleHQtPnN0cm9rZUNvbG9yKCk7Ci0gICAgaWYg
KG9yaWdpbmFsQ29sb3IgIT0gQ29sb3I6OndoaXRlKQotICAgICAgICBjb250ZXh0LT5zZXRTdHJv
a2VDb2xvcihDb2xvcjo6d2hpdGUsIENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAgIFJlbmRlclN0
eWxlKiBzdHlsZSA9IG9iamVjdC0+c3R5bGUoKTsKKworICAgIHBhaW50Um91bmRlZFNsaWRlckJh
Y2tncm91bmQocmVjdCwgc3R5bGUsIGNvbnRleHQpOworCisgICAgLy8gQ2FsY3VsYXRlIHZvbHVt
ZSBwb3NpdGlvbiBmb3Igd2hpdGUgYmFja2dyb3VuZCByZWN0YW5nbGUuCisgICAgZmxvYXQgdm9s
dW1lID0gbWVkaWFFbGVtZW50LT52b2x1bWUoKTsKKyAgICBpZiAoaXNuYW4odm9sdW1lKSB8fCB2
b2x1bWUgPCAwKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAodm9sdW1lID4gMSkKKyAg
ICAgICAgdm9sdW1lID0gMTsKIAotICAgIGludCB4ID0gcmVjdC54KCkgKyByZWN0LndpZHRoKCkg
LyAyOwotICAgIGNvbnRleHQtPmRyYXdMaW5lKEludFBvaW50KHgsIHJlY3QueSgpKSwgIEludFBv
aW50KHgsIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSkpOworICAgIC8vIENhbGN1bGF0ZSB0aGUg
cG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIGNlbnRlciBvZiB0aGUgdGh1bWIuCisgICAgZmxvYXQg
dGh1bWJDZW50ZXIgPSBtZWRpYVZvbHVtZVNsaWRlclRodW1iV2lkdGggLyAyOworICAgIGZsb2F0
IHpvb21MZXZlbCA9IHN0eWxlLT5lZmZlY3RpdmVab29tKCk7CisgICAgZmxvYXQgcG9zaXRpb25X
aWR0aCA9IHZvbHVtZSAqIChyZWN0LndpZHRoKCkgLSAoem9vbUxldmVsICogdGh1bWJDZW50ZXIp
KTsKKyAgICBmbG9hdCBmaWxsV2lkdGggPSBwb3NpdGlvbldpZHRoICsgKHpvb21MZXZlbCAqIHRo
dW1iQ2VudGVyIC8gMik7CisKKyAgICBwYWludFNsaWRlclJhbmdlSGlnaGxpZ2h0KHJlY3QsIHN0
eWxlLCBjb250ZXh0LCAwLjAsIGZpbGxXaWR0aCAvIHJlY3Qud2lkdGgoKSk7CiAKLSAgICBpZiAo
b3JpZ2luYWxDb2xvciAhPSBDb2xvcjo6d2hpdGUpCi0gICAgICAgIGNvbnRleHQtPnNldFN0cm9r
ZUNvbG9yKG9yaWdpbmFsQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOwogICAgIHJldHVybiB0
cnVlOwogfQogCiBzdGF0aWMgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVyVGh1bWIoUmVuZGVy
T2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0
JiByZWN0KQogewotICAgIHN0YXRpYyBJbWFnZSogbWVkaWFWb2x1bWVTbGlkZXJUaHVtYiA9IHBs
YXRmb3JtUmVzb3VyY2UoIm1lZGlhVm9sdW1lU2xpZGVyVGh1bWIiKTsKKyAgICBzdGF0aWMgSW1h
Z2UqIG1lZGlhVm9sdW1lU2xpZGVyVGh1bWIgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYXBsYXll
clZvbHVtZVNsaWRlclRodW1iIik7CiAgICAgcmV0dXJuIHBhaW50TWVkaWFCdXR0b24ocGFpbnRJ
bmZvLmNvbnRleHQsIHJlY3QsIG1lZGlhVm9sdW1lU2xpZGVyVGh1bWIpOwogfQogCi1zdGF0aWMg
Ym9vbCBwYWludE1lZGlhVGltZWxpbmVDb250YWluZXIoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNv
bnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQotewotICAgIEhU
TUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9IHRvUGFyZW50TWVkaWFFbGVtZW50KG9iamVj
dCk7Ci0gICAgaWYgKCFtZWRpYUVsZW1lbnQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IGlmICghcmVjdC5pc0VtcHR5KCkpIHsKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0
ID0gcGFpbnRJbmZvLmNvbnRleHQ7Ci0gICAgICAgIENvbG9yIG9yaWdpbmFsQ29sb3IgPSBjb250
ZXh0LT5zdHJva2VDb2xvcigpOwotICAgICAgICBmbG9hdCBvcmlnaW5hbFRoaWNrbmVzcyA9IGNv
bnRleHQtPnN0cm9rZVRoaWNrbmVzcygpOwotICAgICAgICBTdHJva2VTdHlsZSBvcmlnaW5hbFN0
eWxlID0gY29udGV4dC0+c3Ryb2tlU3R5bGUoKTsKLQotICAgICAgICBjb250ZXh0LT5zZXRTdHJv
a2VTdHlsZShTb2xpZFN0cm9rZSk7Ci0KLSAgICAgICAgLy8gRHJhdyB0aGUgbGVmdCBib3JkZXIg
dXNpbmcgQ1NTIGRlZmluZWQgd2lkdGggYW5kIGNvbG9yLgotICAgICAgICBjb250ZXh0LT5zZXRT
dHJva2VUaGlja25lc3Mob2JqZWN0LT5zdHlsZSgpLT5ib3JkZXJMZWZ0V2lkdGgoKSk7Ci0gICAg
ICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKG9iamVjdC0+c3R5bGUoKS0+dmlzaXRlZERlcGVu
ZGVudENvbG9yKENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yKS5yZ2IoKSwgQ29sb3JTcGFjZURl
dmljZVJHQik7Ci0gICAgICAgIGNvbnRleHQtPmRyYXdMaW5lKEludFBvaW50KHJlY3QueCgpICsg
MSwgcmVjdC55KCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRQb2ludChyZWN0Lngo
KSArIDEsIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSkpOwotCi0gICAgICAgIC8vIERyYXcgdGhl
IHJpZ2h0IGJvcmRlciB1c2luZyBDU1MgZGVmaW5lZCB3aWR0aCBhbmQgY29sb3IuCi0gICAgICAg
IGNvbnRleHQtPnNldFN0cm9rZVRoaWNrbmVzcyhvYmplY3QtPnN0eWxlKCktPmJvcmRlclJpZ2h0
V2lkdGgoKSk7Ci0gICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKG9iamVjdC0+c3R5bGUo
KS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5Qm9yZGVyUmlnaHRDb2xvcikucmdi
KCksIENvbG9yU3BhY2VEZXZpY2VSR0IpOwotICAgICAgICBjb250ZXh0LT5kcmF3TGluZShJbnRQ
b2ludChyZWN0LngoKSArIHJlY3Qud2lkdGgoKSAtIDEsIHJlY3QueSgpKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgSW50UG9pbnQocmVjdC54KCkgKyByZWN0LndpZHRoKCkgLSAxLCByZWN0
LnkoKSArIHJlY3QuaGVpZ2h0KCkpKTsKLQotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xv
cihvcmlnaW5hbENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICAgICAgY29udGV4dC0+
c2V0U3Ryb2tlVGhpY2tuZXNzKG9yaWdpbmFsVGhpY2tuZXNzKTsKLSAgICAgICAgY29udGV4dC0+
c2V0U3Ryb2tlU3R5bGUob3JpZ2luYWxTdHlsZSk7Ci0gICAgfQotICAgIHJldHVybiB0cnVlOwot
fQotCiBzdGF0aWMgYm9vbCBwYWludE1lZGlhRnVsbHNjcmVlbkJ1dHRvbihSZW5kZXJPYmplY3Qq
IG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3Qp
CiB7CiAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50ID0gdG9QYXJlbnRNZWRpYUVs
ZW1lbnQob2JqZWN0KTsKQEAgLTI3NCw4ICsyOTMsNiBAQCBib29sIFJlbmRlck1lZGlhQ29udHJv
bHNDaHJvbWl1bTo6cGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYUNvbnRyb2xFbGVtZW50VHlw
ZQogICAgICAgICByZXR1cm4gcGFpbnRNZWRpYVZvbHVtZVNsaWRlcihvYmplY3QsIHBhaW50SW5m
bywgcmVjdCk7CiAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iOgogICAgICAgICByZXR1
cm4gcGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1iKG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsK
LSAgICBjYXNlIE1lZGlhVGltZWxpbmVDb250YWluZXI6Ci0gICAgICAgIHJldHVybiBwYWludE1l
ZGlhVGltZWxpbmVDb250YWluZXIob2JqZWN0LCBwYWludEluZm8sIHJlY3QpOwogICAgIGNhc2Ug
TWVkaWFFbnRlckZ1bGxzY3JlZW5CdXR0b246CiAgICAgY2FzZSBNZWRpYUV4aXRGdWxsc2NyZWVu
QnV0dG9uOgogICAgICAgICByZXR1cm4gcGFpbnRNZWRpYUZ1bGxzY3JlZW5CdXR0b24ob2JqZWN0
LCBwYWludEluZm8sIHJlY3QpOwpAQCAtMjgzLDYgKzMwMCw3IEBAIGJvb2wgUmVuZGVyTWVkaWFD
b250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KE1lZGlhQ29udHJvbEVsZW1l
bnRUeXBlCiAgICAgY2FzZSBNZWRpYVNlZWtCYWNrQnV0dG9uOgogICAgIGNhc2UgTWVkaWFTZWVr
Rm9yd2FyZEJ1dHRvbjoKICAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyOgorICAg
IGNhc2UgTWVkaWFUaW1lbGluZUNvbnRhaW5lcjoKICAgICBjYXNlIE1lZGlhQ3VycmVudFRpbWVE
aXNwbGF5OgogICAgIGNhc2UgTWVkaWFUaW1lUmVtYWluaW5nRGlzcGxheToKICAgICBjYXNlIE1l
ZGlhQ29udHJvbHNQYW5lbDoKQEAgLTMwMSwyMSArMzE5LDMyIEBAIGJvb2wgUmVuZGVyTWVkaWFD
b250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KE1lZGlhQ29udHJvbEVsZW1l
bnRUeXBlCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitjb25zdCBpbnQgbWVkaWFTbGlkZXJUaHVt
YldpZHRoID0gMzI7Citjb25zdCBpbnQgbWVkaWFTbGlkZXJUaHVtYkhlaWdodCA9IDI0OworY29u
c3QgaW50IG1lZGlhVm9sdW1lU2xpZGVyVGh1bWJIZWlnaHQgPSAyNDsKKwogdm9pZCBSZW5kZXJN
ZWRpYUNvbnRyb2xzQ2hyb21pdW06OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRlclN0
eWxlKiBzdHlsZSkKIHsKLSAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhU2xpZGVyVGh1bWIgPSBwbGF0
Zm9ybVJlc291cmNlKCJtZWRpYVNsaWRlclRodW1iIik7Ci0gICAgc3RhdGljIEltYWdlKiBtZWRp
YVZvbHVtZVNsaWRlclRodW1iID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFWb2x1bWVTbGlkZXJU
aHVtYiIpOworICAgIHN0YXRpYyBJbWFnZSogbWVkaWFTbGlkZXJUaHVtYiA9IHBsYXRmb3JtUmVz
b3VyY2UoIm1lZGlhcGxheWVyU2xpZGVyVGh1bWIiKTsKKyAgICBzdGF0aWMgSW1hZ2UqIG1lZGlh
Vm9sdW1lU2xpZGVyVGh1bWIgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYXBsYXllclZvbHVtZVNs
aWRlclRodW1iIik7CisgICAgaW50IHdpZHRoID0gMDsKKyAgICBpbnQgaGVpZ2h0ID0gMDsKIAog
ICAgIEltYWdlKiB0aHVtYkltYWdlID0gMDsKLSAgICBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9
PSBNZWRpYVNsaWRlclRodW1iUGFydCkKKyAgICBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBN
ZWRpYVNsaWRlclRodW1iUGFydCkgewogICAgICAgICB0aHVtYkltYWdlID0gbWVkaWFTbGlkZXJU
aHVtYjsKLSAgICBlbHNlIGlmIChzdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhVm9sdW1lU2xp
ZGVyVGh1bWJQYXJ0KQorICAgICAgICB3aWR0aCA9IG1lZGlhU2xpZGVyVGh1bWJXaWR0aDsKKyAg
ICAgICAgaGVpZ2h0ID0gbWVkaWFTbGlkZXJUaHVtYkhlaWdodDsKKyAgICB9IGVsc2UgaWYgKHN0
eWxlLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQpIHsKICAgICAg
ICAgdGh1bWJJbWFnZSA9IG1lZGlhVm9sdW1lU2xpZGVyVGh1bWI7CisgICAgICAgIHdpZHRoID0g
bWVkaWFWb2x1bWVTbGlkZXJUaHVtYldpZHRoOworICAgICAgICBoZWlnaHQgPSBtZWRpYVZvbHVt
ZVNsaWRlclRodW1iSGVpZ2h0OworICAgIH0KIAogICAgIGZsb2F0IHpvb21MZXZlbCA9IHN0eWxl
LT5lZmZlY3RpdmVab29tKCk7CiAgICAgaWYgKHRodW1iSW1hZ2UpIHsKLSAgICAgICAgc3R5bGUt
PnNldFdpZHRoKExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KHRodW1iSW1hZ2UtPndpZHRoKCkgKiB6
b29tTGV2ZWwpLCBGaXhlZCkpOwotICAgICAgICBzdHlsZS0+c2V0SGVpZ2h0KExlbmd0aChzdGF0
aWNfY2FzdDxpbnQ+KHRodW1iSW1hZ2UtPmhlaWdodCgpICogem9vbUxldmVsKSwgRml4ZWQpKTsK
KyAgICAgICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KHdpZHRoICog
em9vbUxldmVsKSwgRml4ZWQpKTsKKyAgICAgICAgc3R5bGUtPnNldEhlaWdodChMZW5ndGgoc3Rh
dGljX2Nhc3Q8aW50PihoZWlnaHQgKiB6b29tTGV2ZWwpLCBGaXhlZCkpOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCA4MTY3YmE4MmY4ZmMxNmQw
Zjg4OTcxMWU0MmZmZmFjNGU5NDU4OTk5Li41ZTU2YjZkZjUwZWNmYjAzZTVkMTEyOWFkZjk2Nzc0
N2YzYTNlNzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtMTk4
LDYgKzE5OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3duRGlzYWJsZWRTdGF0
ZUhhbmRsaW5nRm9yKENvbnRyb2xQYXJ0KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCB1c2VzTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheSgpIHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIHVzZXNNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXIoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHVzZXNWZXJ0aWNhbFZvbHVtZVNs
aWRlcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGRvdWJsZSBtZWRpYUNv
bnRyb2xzRmFkZUluRHVyYXRpb24oKSB7IHJldHVybiAwLjE7IH0KICAgICB2aXJ0dWFsIGRvdWJs
ZSBtZWRpYUNvbnRyb2xzRmFkZU91dER1cmF0aW9uKCkgeyByZXR1cm4gMC4zOyB9CiAgICAgdmly
dHVhbCBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaApp
bmRleCAyYjRjOGM2MzVjYzIyM2MxODNiNTE4YjEyY2VhZWVmNTJmYWIwYzQzLi5hYTk0YTQyOWY3
OTNkMWYyMmE0ODc3MDFmOTcwNGE5NTIxMWRhMzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmgKQEAgLTQyLDcgKzQyLDYgQEAgcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmpl
Y3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCBib29s
IHBhaW50TWVkaWFNdXRlQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNv
bnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVNsaWRlclRyYWNrKFJl
bmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKLSAgICB2aXJ0
dWFsIGJvb2wgcGFpbnRNZWRpYUNvbnRyb2xzQmFja2dyb3VuZChSZW5kZXJPYmplY3QqLCBjb25z
dCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCBTdHJpbmcgZXh0cmFN
ZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAg
ICB2aXJ0dWFsIFN0cmluZyBleHRyYUZ1bGxTY3JlZW5TdHlsZVNoZWV0KCk7CkBAIC01NSw2ICs1
NCw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIEludFBvaW50IHZvbHVtZVNsaWRlck9mZnNl
dEZyb21NdXRlQnV0dG9uKFJlbmRlckJveCosIGNvbnN0IEludFNpemUmKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGJvb2wgdXNlc01lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXkoKSB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBoYXNPd25EaXNhYmxlZFN0YXRlSGFuZGxp
bmdGb3IoQ29udHJvbFBhcnQpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJv
b2wgdXNlc1ZlcnRpY2FsVm9sdW1lU2xpZGVyKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNl
bmRpZgogCiAgICAgdmlydHVhbCBib29sIHVzZXNUZXN0TW9kZUZvY3VzUmluZ0NvbG9yKCkgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJv
bWl1bU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
TWFjLm1tCmluZGV4IGE3NzgyMjhjNTUyMmQ2YzAyOTQyNzFlZjM3YTliNDZjNDBjZWQ1NGYuLjVh
NWFmNGRhNjVhYjRiNDAwMGE5NTA5M2NkYzg1ZTY3ODU2ZWU0MTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCkBAIC0xNzMsMTEg
KzE3Myw2IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRNZWRpYVNsaWRlclRy
YWNrKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQCiAgICAgcmV0dXJuIFJlbmRlck1lZGlh
Q29udHJvbHNDaHJvbWl1bTo6cGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYVNsaWRlciwgb2Jq
ZWN0LCBwYWludEluZm8sIHJlY3QpOwogfQogCi1ib29sIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6
OnBhaW50TWVkaWFDb250cm9sc0JhY2tncm91bmQoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0
IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQotewotICAgIHJldHVy
biBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBhaW50TWVkaWFDb250cm9sc1BhcnQoTWVk
aWFUaW1lbGluZUNvbnRhaW5lciwgb2JqZWN0LCBwYWludEluZm8sIHJlY3QpOwotfQotCiBTdHJp
bmcgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6ZXh0cmFNZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgp
CiB7CiAgICAgcmV0dXJuIFN0cmluZyhtZWRpYUNvbnRyb2xzQ2hyb21pdW1Vc2VyQWdlbnRTdHls
ZVNoZWV0LCBzaXplb2YobWVkaWFDb250cm9sc0Nocm9taXVtVXNlckFnZW50U3R5bGVTaGVldCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21p
dW1Ta2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
U2tpYS5jcHAKaW5kZXggN2FkMmMxMmMzNTA0MWQ4MTllMzdlM2FkOWI2NWFiZDI3ZGI2M2I4NS4u
Zjk5OTVjMzgxZDEzZmFkNDdhM2ZhZGM4NjY5NWNhZjZlNzU0M2M1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCkBAIC0z
NzgsMTggKzM3OCw2IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OnBhaW50U2VhcmNo
RmllbGRSZXN1bHRzQnV0dG9uKFJlbmRlck9iamVjdCogbWFnbmlmCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi1ib29sIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpwYWludE1lZGlhQ29udHJvbHNC
YWNrZ3JvdW5kKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgSW50UmVjdCYgcmVjdCkKLXsKLSNpZiBFTkFCTEUoVklERU8pCi0gICAgcmV0dXJu
IFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6cGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRp
YVRpbWVsaW5lQ29udGFpbmVyLCBvYmplY3QsIHBhaW50SW5mbywgcmVjdCk7Ci0jZWxzZQotICAg
IFVOVVNFRF9QQVJBTShvYmplY3QpOwotICAgIFVOVVNFRF9QQVJBTShwYWludEluZm8pOwotICAg
IFVOVVNFRF9QQVJBTShyZWN0KTsKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQogYm9v
bCBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6cGFpbnRNZWRpYVNsaWRlclRyYWNrKFJlbmRlck9i
amVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYg
cmVjdCkKIHsKICNpZiBFTkFCTEUoVklERU8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oCmluZGV4IDI4OTg5M2UzMTMxNzgyMDE0ZjEz
NTBiNzQ2NTYwOTg2ZjZkZjNjYjcuLjFlNzEzZTBjNjZkZmY4NzAxMWM2OGFkYTk2OTJjZjYwNzdh
MjE3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtU2tpYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtU2tpYS5oCkBAIC05MSw3ICs5MSw2IEBAIGNsYXNzIFJlbmRlclRoZW1lQ2hyb21pdW1T
a2lhIDogcHVibGljIFJlbmRlclRoZW1lIHsKICAgICAgICAgdmlydHVhbCB2b2lkIGFkanVzdFNl
YXJjaEZpZWxkUmVzdWx0c0J1dHRvblN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSos
IEVsZW1lbnQqKSBjb25zdDsKICAgICAgICAgdmlydHVhbCBib29sIHBhaW50U2VhcmNoRmllbGRS
ZXN1bHRzQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJl
Y3QmKTsKIAotICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUNvbnRyb2xzQmFja2dyb3Vu
ZChSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAg
ICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhU2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiwgY29u
c3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFp
bnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYs
IGNvbnN0IEludFJlY3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1i
U2l6ZShSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsKQEAgLTEyNyw2ICsxMjYsNyBAQCBj
bGFzcyBSZW5kZXJUaGVtZUNocm9taXVtU2tpYSA6IHB1YmxpYyBSZW5kZXJUaGVtZSB7CiAjaWYg
RU5BQkxFKFZJREVPKQogICAgICAgICAvLyBNZWRpYSBjb250cm9scwogICAgICAgICB2aXJ0dWFs
IGJvb2wgaGFzT3duRGlzYWJsZWRTdGF0ZUhhbmRsaW5nRm9yKENvbnRyb2xQYXJ0KSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CisgICAgICAgIHZpcnR1YWwgYm9vbCB1c2VzVmVydGljYWxWb2x1bWVT
bGlkZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKICAgICAgICAgLy8gUHJv
dmlkZSBhIHdheSB0byBwYXNzIHRoZSBkZWZhdWx0IGZvbnQgc2l6ZSBmcm9tIHRoZSBTZXR0aW5n
cyBvYmplY3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAyNDdlZjFiMGNiYmQ3NWJhMGVmMmNlZDM0YjgxOTI5ZDg0NGJkNjJl
Li5mY2I2M2NkYzk2NjEzMjM5Mjg5NDgwYTcxZGE1MTc5MGQ3MGUzZWU5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzUgQEAKKzIwMTItMDYtMDUgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBDaGFuZ2UgdGhlIHZvbHVtZSBzbGlkZXIgdG8gaG9yaXpvbnRhbCBy
ZW5kZXJpbmcgZm9yIENocm9tZSB2aWRlbyBjb250cm9scy4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgQ2hyb21lIHZpZGVvIGNvbnRyb2xzIGFy
ZSByZWNlaXZpbmcgYSB2aXN1YWwgdXBkYXRlLiBUaGUgdm9sdW1lIHNsaWRlciBpcyBpbmNsdWRl
ZCBpbnRvCisgICAgICAgIHRoZSBjb250cm9scyB3aXRoIGhvcml6b250YWwgcmVuZGVyaW5nLCB0
aGUgdm9sdW1lIHNsaWRlciBjb250YWluZXIgaXMgcmVtb3ZlZC4gVGhlIHZpc3VhbAorICAgICAg
ICB1cGRhdGUgaXRzZWxmIGlzIGluIGEgc2VwYXJhdGUgcGF0Y2guCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBUZW1wb3JhcmlseSBza2lw
IHRlc3RzIHJlbGF0ZWQgdG8gdm9sdW1lIGNvbnRyb2xzIHJlbmRlcmluZyBmb3IgQ2hyb21pdW0u
CisKKzIwMTItMDUtMjggIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4K
KworICAgICAgICBJbnRyb2R1Y2UgYW4gRW5jbG9zdXJlIEVsZW1lbnQgZm9yIENocm9taXVtIHZp
ZGVvIGNvbnRyb2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODc2ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDaGFuZ2UgZnVsbHNjcmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS5odG1sLCBtZWRp
YS9tZWRpYS1jb250cm9scy1pbnZhbGlkLXVybC5odG1sIGFuZAorICAgICAgICBtZWRpYS90cmFj
ay90cmFjay1jdWUtcmVuZGVyaW5nLXNuYXAtdG8tbGluZXMtbm90LXNldC5odG1sIHRvIGRlYWwg
d2l0aCB0aGUgbmV3IGVuY2xvc3VyZQorICAgICAgICBkaXYgaW4gQ2hyb21pdW0gY29udHJvbHMg
YW5kIHVzZSB0aGUgbWVkaWFDb250cm9sc0VsZW1lbnQoKSBoZWxwZXIgZnVuY3Rpb24gdG8gZmlu
ZCBlbGVtZW50cworICAgICAgICBpbnNpZGUgdGhlIGNvbnRyb2xzLgorICAgICAgICBGYWlsIHZp
ZGVvIGNvbnRyb2xzIHRlc3RzIGluIHRlc3QgZXhwZWN0YXRpb25zLgorCisgICAgICAgICogZnVs
bHNjcmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS1leHBlY3RlZC50eHQ6IFVwZGF0ZWQuCisg
ICAgICAgICogZnVsbHNjcmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS5odG1sOiBVc2UgbWVk
aWFDb250cm9sc0VsZW1lbnQgaGVscGVyIGZ1bmN0aW9uLgorICAgICAgICAqIG1lZGlhL21lZGlh
LWNvbnRyb2xzLWludmFsaWQtdXJsLmh0bWw6IFVzZSBtZWRpYUNvbnRyb2xzRWxlbWVudCBoZWxw
ZXIgZnVuY3Rpb24uCisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1z
bmFwLXRvLWxpbmVzLW5vdC1zZXQuaHRtbDogSGVpZ2h0IGlzIHByb3ZpZGVkIGJ5IGVuY2xvc3Vy
ZSBlbGVtZW50LgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6
IEZhaWwgdmlkZW8gY29udHJvbHMgdGVzdHMuCisKIDIwMTItMDYtMDggIExldmkgV2VpbnRyYXVi
ICA8bGV2aXdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbmRlckxheWVyOjpwYWludENoaWxk
TGF5ZXJJbnRvQ29sdW1ucyBkb2Vzbid0IHByb3Blcmx5IHBpeGVsIHNuYXAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vdmlkZW8tY29udHJvbHMtb3ZlcnJpZGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS1leHBl
Y3RlZC50eHQKaW5kZXggZjE5MmEzOTE3M2Q1NGQxZDlmNTFiMTQxZGFhNDFlYmVhMWYyOGYyYS4u
MjYzNDhiYjdlOWJlODVkZDQ3ZTM4OWI1MGU2NGMzYTBjNGUwNzIzMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZnVsbHNjcmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS1leHBl
Y3RlZC50eHQKQEAgLTIsNyArMiw3IEBAIFRoaXMgdGVzdHMgdGhhdCB0aGUgdmlkZW8gZWxlbWVu
dCdzICJjb250cm9scyIgYXR0cmlidXRlIGlzIG92ZXJyaWRkZW4gaW4gZnVsbCBzCiAKIEVWRU5U
KHdlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UpCiBFWFBFQ1RFRCAoc2hhZG93Um9vdCA9IGludGVybmFs
cy5zaGFkb3dSb290KHZpZGVvKSAhPSAnbnVsbCcpIE9LCi1FWFBFQ1RFRCAocGFuZWwgPSBzaGFk
b3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCAhPSAnbnVsbCcpIE9LCitFWFBFQ1RFRCAocGFu
ZWwgPSBtZWRpYUNvbnRyb2xzRWxlbWVudChzaGFkb3dSb290LmZpcnN0Q2hpbGQsICctd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXBhbmVsJykgIT0gJ251bGwnKSBPSwogRVhQRUNURUQgKGludGVybmFs
cy5zaGFkb3dQc2V1ZG9JZChwYW5lbCkgPT0gJy13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwn
KSBPSwogRVhQRUNURUQgKGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocGFu
ZWwpWydkaXNwbGF5J10gIT0gJ25vbmUnKSBPSwogRVhQRUNURUQgKGRvY3VtZW50LmRlZmF1bHRW
aWV3LmdldENvbXB1dGVkU3R5bGUocGFuZWwpWydoZWlnaHQnXSA+PSAnMjBweCcpIE9LCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRlLmh0bWwK
aW5kZXggNzIxNGJiYTA3ZmQzMDdjMTIyNWYyZmU1YWYxYjM4YTU3ZGIyMDQyMS4uNDdmYTRmZTQx
YjQ5MDEwODEyY2FjNmEyMDY5NmFkYTRiYmJmMmU5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZnVsbHNjcmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Z1bGxzY3JlZW4vdmlkZW8tY29udHJvbHMtb3ZlcnJpZGUuaHRtbApAQCAtMiw2ICsyLDcgQEAK
ICAgICA8cD5UaGlzIHRlc3RzIHRoYXQgdGhlIHZpZGVvIGVsZW1lbnQncyAiY29udHJvbHMiIGF0
dHJpYnV0ZSBpcyBvdmVycmlkZGVuIGluIGZ1bGwgc2NyZWVuIG1vZGUsIGFuZCB0aGF0IHRoZSBj
b250cm9scyBhcmUgY29ycmVjdGx5IGhpZGRlbiB1cG9uIGV4aXRpbmcgZnVsbCBzY3JlZW4uICBQ
cmVzcyBhbnkga2V5IHRvIGNvbnRpbnVlLjwvcD4KICAgICA8dmlkZW8gaWQ9InZpZGVvIiB3aWR0
aD0iMzAwIj48L3ZpZGVvPgogICAgIDxzY3JpcHQgc3JjPSJmdWxsLXNjcmVlbi10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vbWVkaWEvbWVkaWEtY29udHJvbHMuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQ+CiAgICAgICAgIHZhciBjYWxsYmFjazsKICAgICAgICAgdmFy
IHNoYWRvd1Jvb3Q7CkBAIC0xOSw3ICsyMCw3IEBACiAgICAgICAgIHZhciB2aWRlb0VudGVyZWRG
dWxsU2NyZWVuID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFs
cykgewogICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgic2hhZG93Um9vdCA9IGludGVybmFs
cy5zaGFkb3dSb290KHZpZGVvKSIsIG51bGwsICIhPSIpOwotICAgICAgICAgICAgICAgIHRlc3RF
eHBlY3RlZCgicGFuZWwgPSBzaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCIsIG51bGws
ICIhPSIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgicGFuZWwgPSBtZWRpYUNvbnRy
b2xzRWxlbWVudChzaGFkb3dSb290LmZpcnN0Q2hpbGQsICctd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXBhbmVsJykiLCBudWxsLCAiIT0iKTsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImlu
dGVybmFscy5zaGFkb3dQc2V1ZG9JZChwYW5lbCkiLCAiLXdlYmtpdC1tZWRpYS1jb250cm9scy1w
YW5lbCIpOwogICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZG9jdW1lbnQuZGVmYXVsdFZp
ZXcuZ2V0Q29tcHV0ZWRTdHlsZShwYW5lbClbJ2Rpc3BsYXknXSIsICdub25lJywgIiE9Iik7CiAg
ICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21w
dXRlZFN0eWxlKHBhbmVsKVsnaGVpZ2h0J10iLCAnMjBweCcsICI+PSIpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtY29udHJvbHMtaW52YWxpZC11cmwuaHRtbCBiL0xheW91
dFRlc3RzL21lZGlhL21lZGlhLWNvbnRyb2xzLWludmFsaWQtdXJsLmh0bWwKaW5kZXggODI4NjVl
ZGRlZTcyY2IyMTUwZGE4OTE2ODY2NjIyMDMwYmFkZWQ3NC4uY2RmNjRjZmQ0YzVjMTNiY2VmZjZm
OGYyM2JjNjc0ZWEyZjlkNTNkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEt
Y29udHJvbHMtaW52YWxpZC11cmwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1j
b250cm9scy1pbnZhbGlkLXVybC5odG1sCkBAIC0zLDYgKzMsNyBAQAogICAgIDxoZWFkPgogICAg
ICAgICA8c2NyaXB0IHNyYz1tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0
IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz1tZWRpYS1j
b250cm9scy5qcz48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgIHZhciB2
aWRlbzsKIApAQCAtMTgsMjkgKzE5LDE1IEBACiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGdldFRp
bWVMaW5lVmFsdWUoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciB0aW1lbGlu
ZUNvbnRhaW5lcjsKLSAgICAgICAgICAgICAgICB2YXIgdGltZWxpbmVWYWx1ZTsKKyAgICAgICAg
ICAgICAgICB2YXIgdGltZWxpbmU7CisgICAgICAgICAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBp
bnRlcm5hbHMuc2hhZG93Um9vdCh2aWRlbyk7CiAKLSAgICAgICAgICAgICAgICB2YXIgY29udHJv
bHNTaGFkb3cgPSBpbnRlcm5hbHMuc2hhZG93Um9vdCh2aWRlbykuZmlyc3RDaGlsZC5maXJzdENo
aWxkOwotICAgICAgICAgICAgICAgIGZvciAoY2hpbGQgPSBjb250cm9sc1NoYWRvdy5maXJzdENo
aWxkOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZykKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKGludGVybmFscy5zaGFkb3dQc2V1ZG9JZChjaGlsZCkgPT0gIi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtdGltZWxpbmUtY29udGFpbmVyIikgewotICAgICAgICAgICAgICAgICAgICAgICAg
dGltZWxpbmVDb250YWluZXIgPSBjaGlsZDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGltZWxpbmUgPSBtZWRp
YUNvbnRyb2xzRWxlbWVudChzaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCwgJy13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUnKTsKIAotICAgICAgICAgICAgICAgIGlmKCF0aW1l
bGluZUNvbnRhaW5lcikKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgIkZhaWxkIHRvIGZpbmQg
LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIiOwotCi0gICAgICAgICAg
ICAgICAgZm9yIChjaGlsZCA9IHRpbWVsaW5lQ29udGFpbmVyLmZpcnN0Q2hpbGQ7IGNoaWxkOyBj
aGlsZCA9IGNoaWxkLm5leHRTaWJsaW5nKQotICAgICAgICAgICAgICAgICAgICBpZiAoaW50ZXJu
YWxzLnNoYWRvd1BzZXVkb0lkKGNoaWxkKSA9PSAiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1l
bGluZSIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVsaW5lVmFsdWUgPSBjaGlsZC52
YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgICAgICBpZighdGltZWxpbmVDb250YWluZXIpCisgICAgICAgICAg
ICAgICAgaWYoIXRpbWVsaW5lKQogICAgICAgICAgICAgICAgICAgICB0aHJvdyAiRmFpbGQgdG8g
ZmluZCAtd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIjsKIAotICAgICAgICAgICAgICAg
IHJldHVybiB0aW1lbGluZVZhbHVlOworICAgICAgICAgICAgICAgIHJldHVybiB0aW1lbGluZS52
YWx1ZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gZXJyb3IoKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1zbmFw
LXRvLWxpbmVzLW5vdC1zZXQuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1
ZS1yZW5kZXJpbmctc25hcC10by1saW5lcy1ub3Qtc2V0Lmh0bWwKaW5kZXggMjlkNWM4NTcxZjY4
Njg3NTNkOWI1MjAzYjFlMTJlOTNhMjQ1NjE4NS4uMjJlYWZlM2U5NTQ0NjM1NTMxZTBkMjM5YWU0
YWI3M2EzM2UyNzE4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2st
Y3VlLXJlbmRlcmluZy1zbmFwLXRvLWxpbmVzLW5vdC1zZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9tZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLXNuYXAtdG8tbGluZXMtbm90LXNldC5o
dG1sCkBAIC04OSw3ICs4OSwxMCBAQAogICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOwog
ICAgICAgICAgICAgdGVzdFRyYWNrID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndHJhY2snKTsK
ICAgICAgICAgICAgIHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywgJy4uL2NvbnRl
bnQvdGVzdCcpOwotICAgICAgICAgICAgY29udHJvbHNQYW5lbEVsZW1lbnQgPSBtZWRpYUNvbnRy
b2xzRWxlbWVudChpbnRlcm5hbHMuc2hhZG93Um9vdCh2aWRlbykuZmlyc3RDaGlsZCwgJy13ZWJr
aXQtbWVkaWEtY29udHJvbHMtcGFuZWwnKTsKKworICAgICAgICAgICAgLy8gSW4gQ2hyb21pdW0g
aXQgaXMgdGhlIGVuY2xvc3VyZSBlbGVtZW50LCB3aGljaCBwcm92aWRlcyB0aGUgY29udHJvbHMg
aGVpZ2h0LCBvdGhlcndpc2UgdGhlIHBhbmVsOworICAgICAgICAgICAgLy8gYm90aCBhcmUgdGhl
IHNlY29uZCBjaGlsZCBpbiB0aGUgc2hhZG93IERPTS4KKyAgICAgICAgICAgIGNvbnRyb2xzUGFu
ZWxFbGVtZW50ID0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QodmlkZW8pLmZpcnN0Q2hpbGQuZmlyc3RD
aGlsZDsKIAogICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5dGhyb3VnaCcsIGZ1bmN0
aW9uKCkgewogICAgICAgICAgICAgICAgIGN1ZURpc3BsYXlDb250YWluZXIgPSB0ZXh0VHJhY2tE
aXNwbGF5RWxlbWVudCh2aWRlbyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9ucwppbmRleCAyZGNiYThlNGU4MmI0MDhjZjhmMWEwMGJiNTdjZmQ5Yjg5
ZDExMjE4Li5hMzRjMWQyZGNhYjlkOTg3ZDNhZjg0Y2MzYjg1ZWM4MWE2MGRjODIyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc3Myw2
ICs3NzMsMTEgQEAgV09OVEZJWCBTS0lQIDogbWVkaWEvdmlkZW8tc2l6ZS1pbnRyaW5zaWMtc2Nh
bGUuaHRtbCA9IFBBU1MKIC8vIERvZXNuJ3QgYXBwbHkgdG8gQ2hyb21pdW0gKFF1aWNrVGltZS1z
cGVjaWZpYyBiZWhhdmlvcikKIFdPTlRGSVggU0tJUCA6IG1lZGlhL3ZpZGVvLWRvZXMtbm90LWxv
b3AuaHRtbCA9IFRJTUVPVVQKIAorLy8gRG9lc24ndCBhcHBseSB0byBDaHJvbWl1bSBhbnkgbG9u
Z2VyIC0gdm9sdW1lIHNsaWRlciBpcyBpbmxpbmUgd2l0aCB2aWRlbyBjb250cm9scy4KK1dPTlRG
SVggU0tJUCA6IG1lZGlhL3ZpZGVvLXZvbHVtZS1zbGlkZXIuaHRtbCA9IEZBSUwKK1dPTlRGSVgg
U0tJUCA6IG1lZGlhL21lZGlhLXZvbHVtZS1zbGlkZXItcmVuZGVyZWQtYmVsb3cuaHRtbCA9IEZB
SUwKK1dPTlRGSVggU0tJUCA6IG1lZGlhL21lZGlhLXZvbHVtZS1zbGlkZXItcmVuZGVyZWQtbm9y
bWFsLmh0bWwgPSBGQUlMCisKIC8vIFF1aWNrVGltZSByZWZlcmVuY2UgbW92aWVzIG5vdCBzdXBw
b3J0ZWQuCiBXT05URklYIFNLSVAgOiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWNyb3NzLXNpdGUu
aHRtbCA9IFBBU1MKIApAQCAtMzAxMSw2ICszMDE2LDI2IEBAIEJVR1dLNzM4NjUgOiBtZWRpYS90
cmFjay90ZXh0LXRyYWNrLWlzLXJlYWNoYWJsZS5odG1sID0gVEVYVCBDUkFTSAogQlVHV0s4MTQw
MiBXSU4gOiBtZWRpYS90cmFjay90cmFjay1hY3RpdmUtY3Vlcy5odG1sID0gUEFTUyBUSU1FT1VU
CiBCVUdXSzgzODgyIDogbWVkaWEvdHJhY2svdHJhY2stbW9kZS5odG1sID0gUEFTUyBURVhUIFRJ
TUVPVVQKIAorLy8gTmVlZCByZWJhc2VsaW5lLgorQlVHV0s4NzY4MyA6IGZhc3QvbGF5ZXJzL3Zp
ZGVvLWxheWVyLmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDogZnVsbHNjcmVlbi9mdWxsLXNjcmVl
bi1zdGFja2luZy1jb250ZXh0Lmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDogbWVkaWEvYXVkaW8t
Y29udHJvbHMtcmVuZGVyaW5nLmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDogbWVkaWEvYXVkaW8t
cmVwYWludC5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL2NvbnRyb2xzLWFmdGVyLXJl
bG9hZC5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL2NvbnRyb2xzLWxheW91dC1kaXJl
Y3Rpb24uaHRtbCA9IEZBSUwKK0JVR1dLODc2ODMgOiBtZWRpYS9jb250cm9scy1zdHJpY3QuaHRt
bCA9IEZBSUwKK0JVR1dLODc2ODMgOiBtZWRpYS9jb250cm9scy1zdHlsaW5nLmh0bWwgPSBGQUlM
CitCVUdXSzg3NjgzIDogbWVkaWEvY29udHJvbHMtd2l0aG91dC1wcmVsb2FkLmh0bWwgPSBGQUlM
CitCVUdXSzg3NjgzIDogbWVkaWEvbWVkaWEtY29udHJvbHMtY2xvbmUuaHRtbCA9IEZBSUwKK0JV
R1dLODc2ODMgOiBtZWRpYS9tZWRpYS1kb2N1bWVudC1hdWRpby1yZXBhaW50Lmh0bWwgPSBGQUlM
CitCVUdXSzg3NjgzIDogbWVkaWEvdmlkZW8tY29udHJvbHMtcmVuZGVyaW5nLmh0bWwgPSBGQUlM
CitCVUdXSzg3NjgzIDogbWVkaWEvdmlkZW8tZGlzcGxheS10b2dnbGUuaHRtbCA9IEZBSUwKK0JV
R1dLODc2ODMgOiBtZWRpYS92aWRlby1lbXB0eS1zb3VyY2UuaHRtbCA9IEZBSUwKK0JVR1dLODc2
ODMgOiBtZWRpYS92aWRlby1uby1hdWRpby5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlh
L3ZpZGVvLXBsYXlpbmctYW5kLXBhdXNlLmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDogbWVkaWEv
dmlkZW8tem9vbS1jb250cm9scy5odG1sID0gRkFJTAorQlVHV0s4NzgzNSA6IGh0dHAvdGVzdHMv
bWVkaWEvdmlkZW8tYnVmZmVyZWQtcmFuZ2UtY29udGFpbnMtY3VycmVudFRpbWUuaHRtbCA9IEZB
SUwKKwogQlVHV0s3MjI3MSBTTk9XTEVPUEFSRCBERUJVRyA6IGZhc3QvZG9tL25vZGUtaXRlcmF0
b3ItcmVmZXJlbmNlLW5vZGUtbW92ZWQtY3Jhc2guaHRtbCA9IFBBU1MgQ1JBU0gKIAogQlVHV0s3
MjM3NiBXSU4gOiBmYXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS1sYWJlbC5odG1sID0gVEVYVCBQ
QVNTCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146701</attachid>
            <date>2012-06-09 07:20:26 -0700</date>
            <delta_ts>2012-06-13 14:06:22 -0700</delta_ts>
            <desc>Patch for review with accessor functions</desc>
            <filename>patch4_fixes.diff</filename>
            <type>text/plain</type>
            <size>15538</size>
            <attacher name="Silvia Pfeiffer">silviapf</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZDE1ZmJiLi5kNTlkNjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDQgKzEsNDMg
QEAKLTIwMTItMDYtMDkgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4K
KzIwMTItMDYtMDggIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBVcGRhdGUgcmFuZ2Ugc2xpZGVycyByZW5kZXJpbmcgZm9yIHZvbHVtZSBhbmQgcGxh
eWJhY2sgcG9zaXRpb24gb2YgbmV3IENocm9tZSB2aWRlbyBjb250cm9scy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NjIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBmaW5hbCBw
YXRjaCB3aWxsIGNvbnRhaW4gdGhlIHJlYmFzZWxpbmVkIHRlc3RzLgorCisgICAgICAgIFRoZSBD
aHJvbWUgdmlkZW8gY29udHJvbHMgYXJlIHJlY2VpdmluZyBhIHZpc3VhbCB1cGRhdGUuIFRoaXMg
cGF0Y2ggY29udGFpbnMgdXBkYXRlcyB0byB0aGUKKyAgICAgICAgcmVuZGVyaW5nIG9mIHRoZSBy
YW5nZSBzbGlkZXJzIGZvciB0aGUgcGxheWJhY2sgcG9zaXRpb24gYW5kIHRoZSB2b2x1bWUuIFRo
aXMgaW5jbHVkZXMgdGhlCisgICAgICAgIGNyZWF0aW9uIG9mIGEgc2hhZG93UHNldWRvSWQgdG8g
YmUgYWJsZSB0byBzdHlsZSB0aGUgcmFuZ2Ugc2xpZGVycyB2aWEgQ1NTLCB0aGUgcmVuZGVyaW5n
CisgICAgICAgIG9mIHRoZSBzbGlkZXIgYmFja2dyb3VuZCBhbmQgdGhlIGhpZ2hsaWdodGVkIHJh
bmdlcy4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzOgorICAgICAg
ICAoaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVyKToK
KyAgICAgICAgQWRqdXN0IHRoZSBzdHlsaW5nIG9mIHRoZSBzbGlkZXIgY29udGFpbmVyIGJhY2tn
cm91bmRzLgorICAgICAgICAoaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1tZWRpYS1zbGlk
ZXItdGh1bWIpOgorICAgICAgICBBZGp1c3QgdGhlIHN0eWxpbmcgb2YgdGhlIHNsaWRlciB0aHVt
YnMuCisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAg
ICBBZGQgYSBkaWZmZXJlbnQgQ1NTIHBzZXVkby1jbGFzcyBuYW1lIHRvIHRoZSBtZWRpYSBzbGlk
ZXIgdGh1bWJzLgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tMaW1pdGVyRWxlbWVudDo6c2hhZG93
UHNldWRvSWQpOgorICAgICAgICBBZGQgYSBkaWZmZXJlbnQgQ1NTIHBzZXVkby1jbGFzcyBuYW1l
IHRvIHRoZSBtZWRpYSBzbGlkZXIgdGh1bWJzLgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyQ29u
dGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICBBZGQgYSBkaWZmZXJlbnQg
Q1NTIHBzZXVkby1jbGFzcyBuYW1lIHRvIHRoZSBtZWRpYSBzbGlkZXIgYmFja2dyb3VuZCBjb250
YWluZXIuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpwYWludFJvdW5kZWRTbGlkZXJCYWNrZ3JvdW5kKToKKyAg
ICAgICAgQWRkIGZ1bmN0aW9uIHRvIGRyYXcgcm91bmRlZCBiYWNrZ3JvdW5kIG9mIHNsaWRlcnMg
aW4gYSBkYXJrIGNvbG9yLgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRTbGlkZXJSYW5nZUhpZ2hs
aWdodCk6CisgICAgICAgIEFkZCBmdW5jdGlvbiB0byBkcmF3IGEgaGlnaGxpZ2h0ZWQgZ3JleSBy
ZWdpb24gb24gdGhlIHNsaWRlcnMsIHdoaWNoIGlzIHJvdW5kZWQgb25seSBhdAorICAgICAgICBp
dHMgZW5kcy4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFTbGlkZXIpOgorICAgICAgICBV
cGRhdGUgdGhlIGJhY2tncm91bmQgYW5kIGJ1ZmZlcmVkIHJhbmdlIHJlbmRlcmluZ3Mgb24gdGhl
IHBsYXliYWNrIHBvc2l0aW9uIHNsaWRlciBieSBtYWtpbmcKKyAgICAgICAgdXNlIG9mIHRoZSBu
ZXcgaGVscGVyIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFWb2x1bWVT
bGlkZXIpOgorICAgICAgICBVcGRhdGUgdGhlIGJhY2tncm91bmQgYW5kIGJ1ZmZlcmVkIHJhbmdl
IHJlbmRlcmluZ3Mgb24gdGhlIHZvbHVtZSBzbGlkZXIgYnkgbWFraW5nCisgICAgICAgIHVzZSBv
ZiB0aGUgbmV3IGhlbHBlciBmdW5jdGlvbnMuCisKKzIwMTItMDYtMDYgIFNpbHZpYSBQZmVpZmZl
ciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4KIAogICAgICAgICBDaGFuZ2UgdGhlIHN0eWxpbmcg
b2YgdGhlIENocm9taXVtIHZpZGVvIGNvbnRyb2xzLgogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgyOTcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlh
Q29udHJvbHNDaHJvbWl1bS5jc3MKaW5kZXggOWVkOGNjNy4uMmQ5N2VkNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MKQEAgLTE0MywzICsxNDMsMjkg
QEAgYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciwgdmlkZW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW0KICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3Bh
cmVudDsKICAgICBtaW4td2lkdGg6IDE1cHg7CiB9CisKKy8qIEZJWE1FIHRoZXNlIHNob3VsZG4n
dCB1c2Ugc3BlY2lhbCBwc2V1ZG9TaGFkb3dJZHMsIGJ1dCBuaWNlciBydWxlcy4KKyAgIGh0dHBz
Oi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0xMTI1MDgKKyAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MjIxOAorKi8KK2lucHV0
W3R5cGU9InJhbmdlIl06Oi13ZWJraXQtbWVkaWEtc2xpZGVyLWNvbnRhaW5lciB7CisgICAgZGlz
cGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICAt
d2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7IC8qIFRoaXMgcHJvcGVydHkgaXMgdXBkYXRl
ZCBieSBDKysgY29kZS4gKi8KKyAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7Cisg
ICAgaGVpZ2h0OiAxMDAlOworICAgIHdpZHRoOiAxMDAlOworICAgIGJvcmRlcjogMXB4IHNvbGlk
IHJnYigxMzAsIDEzMCwgMTMwKTsKKyAgICBib3JkZXItcmFkaXVzOiA0cHg7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7IC8qIEJhY2tncm91bmQgZHJhd2luZyBpcyBtYW5hZ2Vk
IGJ5IEMrKyBjb2RlIHRvIGRyYXcgcmFuZ2VzLiAqLworfQorCitpbnB1dFt0eXBlPSJyYW5nZSJd
Ojotd2Via2l0LW1lZGlhLXNsaWRlci10aHVtYiB7CisgICAgZGlzcGxheTogYmxvY2s7CisgICAg
LXdlYmtpdC1hcHBlYXJhbmNlOiBzbGlkZXJ0aHVtYi1ob3Jpem9udGFsOworICAgIC13ZWJraXQt
Ym94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgYm90
dG9tOiAxcHg7CisgICAgbWFyZ2luLWxlZnQ6IC03cHg7CisgICAgbWFyZ2luLXJpZ2h0OiAtN3B4
OworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCmluZGV4IDZhMjhiZGQuLjhmOGM2Yzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50
LmNwcApAQCAtMzI0LDEyICszMjQsMzggQEAgSFRNTElucHV0RWxlbWVudCogU2xpZGVyVGh1bWJF
bGVtZW50Ojpob3N0SW5wdXQoKSBjb25zdAogICAgIHJldHVybiBzaGFkb3dBbmNlc3Rvck5vZGUo
KS0+dG9JbnB1dEVsZW1lbnQoKTsKIH0KIAotY29uc3QgQXRvbWljU3RyaW5nJiBTbGlkZXJUaHVt
YkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK3N0YXRpYyBjb25zdCBBdG9taWNTdHJp
bmcmIHNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoKQogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBzbGlkZXJUaHVtYiwgKCItd2Via2l0LXNsaWRlci10aHVtYiIpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgc2xpZGVyVGh1bWIs
ICgiLXdlYmtpdC1zbGlkZXItdGh1bWIiKSk7CiAgICAgcmV0dXJuIHNsaWRlclRodW1iOwogfQog
CitzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYVNsaWRlclRodW1iU2hhZG93UHNldWRv
SWQoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBtZWRp
YVNsaWRlclRodW1iLCAoIi13ZWJraXQtbWVkaWEtc2xpZGVyLXRodW1iIikpOworICAgIHJldHVy
biBtZWRpYVNsaWRlclRodW1iOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIFNsaWRlclRodW1i
RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAoreworICAgIEhUTUxJbnB1dEVsZW1lbnQq
IGlucHV0ID0gaG9zdElucHV0KCk7CisgICAgaWYgKCFpbnB1dCkKKyAgICAgICAgcmV0dXJuIHNs
aWRlclRodW1iU2hhZG93UHNldWRvSWQoKTsKKworICAgIFJlbmRlclN0eWxlKiBzbGlkZXJTdHls
ZSA9IGlucHV0LT5yZW5kZXJlcigpLT5zdHlsZSgpOworICAgIHN3aXRjaCAoc2xpZGVyU3R5bGUt
PmFwcGVhcmFuY2UoKSkgeworICAgIGNhc2UgTWVkaWFTbGlkZXJQYXJ0OgorICAgIGNhc2UgTWVk
aWFTbGlkZXJUaHVtYlBhcnQ6CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ6CisgICAg
Y2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydDoKKyAgICBjYXNlIE1lZGlhRnVsbFNjcmVl
blZvbHVtZVNsaWRlclBhcnQ6CisgICAgY2FzZSBNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXJU
aHVtYlBhcnQ6CisgICAgICAgIHJldHVybiBtZWRpYVNsaWRlclRodW1iU2hhZG93UHNldWRvSWQo
KTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9J
ZCgpOworICAgIH0KK30KKwogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAog
aW5saW5lIFRyYWNrTGltaXRlckVsZW1lbnQ6OlRyYWNrTGltaXRlckVsZW1lbnQoRG9jdW1lbnQq
IGRvY3VtZW50KQpAQCAtMzU0LDggKzM4MCwyMiBAQCBSZW5kZXJPYmplY3QqIFRyYWNrTGltaXRl
ckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyU3R5bAog
CiBjb25zdCBBdG9taWNTdHJpbmcmIFRyYWNrTGltaXRlckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lk
KCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2xpZGVy
VGh1bWIsICgiLXdlYmtpdC1zbGlkZXItdGh1bWIiKSk7Ci0gICAgcmV0dXJuIHNsaWRlclRodW1i
OworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc2hhZG93QW5jZXN0b3JOb2RlKCktPnRv
SW5wdXRFbGVtZW50KCk7CisgICAgaWYgKCFpbnB1dCkKKyAgICAgICAgcmV0dXJuIHNsaWRlclRo
dW1iU2hhZG93UHNldWRvSWQoKTsKKworICAgIFJlbmRlclN0eWxlKiBzbGlkZXJTdHlsZSA9IGlu
cHV0LT5yZW5kZXJlcigpLT5zdHlsZSgpOworICAgIHN3aXRjaCAoc2xpZGVyU3R5bGUtPmFwcGVh
cmFuY2UoKSkgeworICAgIGNhc2UgTWVkaWFTbGlkZXJQYXJ0OgorICAgIGNhc2UgTWVkaWFTbGlk
ZXJUaHVtYlBhcnQ6CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ6CisgICAgY2FzZSBN
ZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydDoKKyAgICBjYXNlIE1lZGlhRnVsbFNjcmVlblZvbHVt
ZVNsaWRlclBhcnQ6CisgICAgY2FzZSBNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXJUaHVtYlBh
cnQ6CisgICAgICAgIHJldHVybiBtZWRpYVNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoKTsKKyAg
ICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgpOwor
ICAgIH0KIH0KIAogVHJhY2tMaW1pdGVyRWxlbWVudCogdHJhY2tMaW1pdGVyRWxlbWVudE9mKE5v
ZGUqIG5vZGUpCkBAIC0zODgsOCArNDI4LDI1IEBAIFJlbmRlck9iamVjdCogU2xpZGVyQ29udGFp
bmVyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTCiAK
IGNvbnN0IEF0b21pY1N0cmluZyYgU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRv
SWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzbGlk
ZXJUaHVtYiwgKCItd2Via2l0LXNsaWRlci1jb250YWluZXIiKSk7Ci0gICAgcmV0dXJuIHNsaWRl
clRodW1iOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBtZWRpYVNsaWRl
ckNvbnRhaW5lciwgKCItd2Via2l0LW1lZGlhLXNsaWRlci1jb250YWluZXIiKSk7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNsaWRlckNvbnRhaW5lciwgKCItd2Via2l0
LXNsaWRlci1jb250YWluZXIiKSk7CisKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHNo
YWRvd0FuY2VzdG9yTm9kZSgpLT50b0lucHV0RWxlbWVudCgpOworICAgIGlmICghaW5wdXQpCisg
ICAgICAgIHJldHVybiBzbGlkZXJDb250YWluZXI7CisKKyAgICBSZW5kZXJTdHlsZSogc2xpZGVy
U3R5bGUgPSBpbnB1dC0+cmVuZGVyZXIoKS0+c3R5bGUoKTsKKyAgICBzd2l0Y2ggKHNsaWRlclN0
eWxlLT5hcHBlYXJhbmNlKCkpIHsKKyAgICBjYXNlIE1lZGlhU2xpZGVyUGFydDoKKyAgICBjYXNl
IE1lZGlhU2xpZGVyVGh1bWJQYXJ0OgorICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0Ogor
ICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQ6CisgICAgY2FzZSBNZWRpYUZ1bGxT
Y3JlZW5Wb2x1bWVTbGlkZXJQYXJ0OgorICAgIGNhc2UgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xp
ZGVyVGh1bWJQYXJ0OgorICAgICAgICByZXR1cm4gbWVkaWFTbGlkZXJDb250YWluZXI7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHNsaWRlckNvbnRhaW5lcjsKKyAgICB9CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xz
Q2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJv
bHNDaHJvbWl1bS5jcHAKaW5kZXggZTM3ODJkNS4uYjZiNDRmOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAK
QEAgLTExMyw2ICsxMTMsNzEgQEAgc3RhdGljIEltYWdlKiBnZXRNZWRpYVNsaWRlclRodW1iKCkK
ICAgICByZXR1cm4gbWVkaWFTbGlkZXJUaHVtYjsKIH0KIAorc3RhdGljIHZvaWQgcGFpbnRSb3Vu
ZGVkU2xpZGVyQmFja2dyb3VuZChjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBSZW5kZXJTdHls
ZSogc3R5bGUsIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBpbnQgYm9yZGVyUmFk
aXVzID0gcmVjdC5oZWlnaHQoKSAvIDI7CisgICAgSW50U2l6ZSByYWRpaShib3JkZXJSYWRpdXMs
IGJvcmRlclJhZGl1cyk7CisgICAgQ29sb3Igc2xpZGVyQmFja2dyb3VuZENvbG9yID0gQ29sb3Io
MjksIDI5LCAyOSk7CisgICAgY29udGV4dC0+c2F2ZSgpOworICAgIGNvbnRleHQtPmZpbGxSb3Vu
ZGVkUmVjdChyZWN0LCByYWRpaSwgcmFkaWksIHJhZGlpLCByYWRpaSwgc2xpZGVyQmFja2dyb3Vu
ZENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICBjb250ZXh0LT5yZXN0b3JlKCk7Cit9
CisKK3N0YXRpYyB2b2lkIHBhaW50U2xpZGVyUmFuZ2VIaWdobGlnaHQoY29uc3QgSW50UmVjdCYg
cmVjdCwgY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQs
IGZsb2F0IHN0YXJ0RnJhY3Rpb24sIGZsb2F0IHdpZHRoRnJhY3Rpb24pCit7CisgICAgaWYgKHN0
YXJ0RnJhY3Rpb24gPCAwKQorICAgICAgICBzdGFydEZyYWN0aW9uID0gMDsKKyAgICBpZiAod2lk
dGhGcmFjdGlvbiA+IDEpCisgICAgICAgIHdpZHRoRnJhY3Rpb24gPSAxOworICAgIGZsb2F0IGVu
ZEZyYWN0aW9uID0gc3RhcnRGcmFjdGlvbiArIHdpZHRoRnJhY3Rpb247CisgICAgaWYgKGVuZEZy
YWN0aW9uID4gMSkgeworICAgICAgICB3aWR0aEZyYWN0aW9uID0gd2lkdGhGcmFjdGlvbiAtIHN0
YXJ0RnJhY3Rpb247CisgICAgICAgIGVuZEZyYWN0aW9uID0gc3RhcnRGcmFjdGlvbiArIHdpZHRo
RnJhY3Rpb247CisgICAgfQorCisgICAgLy8gU2V0IHJlY3RhbmdsZSB0byBoaWdobGlnaHQgcmFu
Z2UuCisgICAgSW50UmVjdCBoaWdobGlnaHRSZWN0ID0gcmVjdDsKKyAgICBpbnQgc3RhcnRPZmZz
ZXQgPSBzdGFydEZyYWN0aW9uICogcmVjdC53aWR0aCgpOworICAgIGludCBlbmRPZmZzZXQgPSBy
ZWN0LndpZHRoKCkgLSBlbmRGcmFjdGlvbiAqIHJlY3Qud2lkdGgoKTsKKyAgICBpbnQgcmFuZ2VX
aWR0aCA9IHdpZHRoRnJhY3Rpb24gKiByZWN0LndpZHRoKCk7CisgICAgaGlnaGxpZ2h0UmVjdC5t
b3ZlKHN0YXJ0T2Zmc2V0LCAwKTsKKyAgICBoaWdobGlnaHRSZWN0LnNldFdpZHRoKHJhbmdlV2lk
dGgpOworCisgICAgLy8gRG9uJ3QgYm90aGVyIGRyYXdpbmcgYW4gZW1wdHkgYXJlYS4KKyAgICBp
ZiAoaGlnaGxpZ2h0UmVjdC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIENh
bGN1bGF0ZSBib3JkZXIgcmFkaXVzOyBuZWVkIHRvIGF2b2lkIGJlaW5nIHNtYWxsZXIgdGhhbiBo
YWxmIHRoZSBzbGlkZXIgaGVpZ2h0CisgICAgLy8gYmVjYXVzZSBvZiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzAxNDMuCisgICAgaW50IGJvcmRlclJhZGl1cyA9IHJl
Y3QuaGVpZ2h0KCkgLyAyOworICAgIEludFNpemUgcmFkaWkoYm9yZGVyUmFkaXVzLCBib3JkZXJS
YWRpdXMpOworCisgICAgLy8gQ2FsY3VsYXRlIHdoaXRlLWdyZXkgZ3JhZGllbnQuCisgICAgSW50
UG9pbnQgc2xpZGVyVG9wTGVmdCA9IGhpZ2hsaWdodFJlY3QubG9jYXRpb24oKTsKKyAgICBJbnRQ
b2ludCBzbGlkZXJCb3R0b21MZWZ0ID0gc2xpZGVyVG9wTGVmdDsKKyAgICBzbGlkZXJCb3R0b21M
ZWZ0Lm1vdmUoMCwgaGlnaGxpZ2h0UmVjdC5oZWlnaHQoKSk7CisgICAgQ29sb3Igc3RhcnRDb2xv
ciA9IENvbG9yKDIyMCwgMjIwLCAyMjApOworICAgIENvbG9yIGVuZENvbG9yID0gQ29sb3IoMjQw
LCAyNDAsIDI0MCk7CisgICAgUmVmUHRyPEdyYWRpZW50PiBncmFkaWVudCA9IEdyYWRpZW50Ojpj
cmVhdGUoc2xpZGVyVG9wTGVmdCwgc2xpZGVyQm90dG9tTGVmdCk7CisgICAgZ3JhZGllbnQtPmFk
ZENvbG9yU3RvcCgwLjAsIHN0YXJ0Q29sb3IpOworICAgIGdyYWRpZW50LT5hZGRDb2xvclN0b3Ao
MS4wLCBlbmRDb2xvcik7CisKKyAgICAvLyBGaWxsIGhpZ2hsaWdodCByZWN0YW5nbGUgd2l0aCBn
cmFkaWVudCwgcG90ZW50aWFsbHkgcm91bmRlZCBpZiBvbiBsZWZ0IG9yIHJpZ2h0IGVkZ2UuCisg
ICAgY29udGV4dC0+c2F2ZSgpOworICAgIGNvbnRleHQtPnNldEZpbGxHcmFkaWVudChncmFkaWVu
dCk7CisKKyAgICBpZiAoc3RhcnRPZmZzZXQgPCBib3JkZXJSYWRpdXMgJiYgZW5kT2Zmc2V0IDwg
Ym9yZGVyUmFkaXVzKQorICAgICAgICBjb250ZXh0LT5maWxsUm91bmRlZFJlY3QoaGlnaGxpZ2h0
UmVjdCwgcmFkaWksIHJhZGlpLCByYWRpaSwgcmFkaWksIHN0YXJ0Q29sb3IsIENvbG9yU3BhY2VE
ZXZpY2VSR0IpOworICAgIGVsc2UgaWYgKHN0YXJ0T2Zmc2V0IDwgYm9yZGVyUmFkaXVzKQorICAg
ICAgICBjb250ZXh0LT5maWxsUm91bmRlZFJlY3QoaGlnaGxpZ2h0UmVjdCwgcmFkaWksIEludFNp
emUoMCwgMCksIHJhZGlpLCBJbnRTaXplKDAsIDApLCBzdGFydENvbG9yLCBDb2xvclNwYWNlRGV2
aWNlUkdCKTsKKyAgICBlbHNlIGlmIChlbmRPZmZzZXQgPCBib3JkZXJSYWRpdXMpCisgICAgICAg
IGNvbnRleHQtPmZpbGxSb3VuZGVkUmVjdChoaWdobGlnaHRSZWN0LCBJbnRTaXplKDAsIDApLCBy
YWRpaSwgSW50U2l6ZSgwLCAwKSwgcmFkaWksIHN0YXJ0Q29sb3IsIENvbG9yU3BhY2VEZXZpY2VS
R0IpOworICAgIGVsc2UKKyAgICAgICAgY29udGV4dC0+ZmlsbFJlY3QoaGlnaGxpZ2h0UmVjdCk7
CisKKyAgICBjb250ZXh0LT5yZXN0b3JlKCk7Cit9CisKIHN0YXRpYyBib29sIHBhaW50TWVkaWFT
bGlkZXIoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVu
dCA9IHRvUGFyZW50TWVkaWFFbGVtZW50KG9iamVjdCk7CkBAIC0xMjIsMjMgKzE4NywxMCBAQCBz
dGF0aWMgYm9vbCBwYWludE1lZGlhU2xpZGVyKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQ
YWludEluZm8mIHBhaW50SW5mbywgYwogICAgIFJlbmRlclN0eWxlKiBzdHlsZSA9IG9iamVjdC0+
c3R5bGUoKTsKICAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBwYWludEluZm8uY29udGV4
dDsKIAotICAgIC8vIERyYXcgdGhlIGJvcmRlciBvZiB0aGUgdGltZSBiYXIuCi0gICAgLy8gRklY
TUU6IHRoaXMgc2hvdWxkIGJlIGEgcm91bmRlZCByZWN0IGJ1dCBuZWVkIHRvIGZpeCBHcmFwaGlj
c0NvbnRleHRTa2lhIGZpcnN0LgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMDE0MwotICAgIGNvbnRleHQtPnNhdmUoKTsKLSAgICBjb250ZXh0LT5zZXRT
aG91bGRBbnRpYWxpYXModHJ1ZSk7Ci0gICAgY29udGV4dC0+c2V0U3Ryb2tlU3R5bGUoU29saWRT
dHJva2UpOwotICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKHN0eWxlLT52aXNpdGVkRGVwZW5k
ZW50Q29sb3IoQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29sb3IpLCBDb2xvclNwYWNlRGV2aWNlUkdC
KTsKLSAgICBjb250ZXh0LT5zZXRTdHJva2VUaGlja25lc3Moc3R5bGUtPmJvcmRlckxlZnRXaWR0
aCgpKTsKLSAgICBjb250ZXh0LT5zZXRGaWxsQ29sb3Ioc3R5bGUtPnZpc2l0ZWREZXBlbmRlbnRD
b2xvcihDU1NQcm9wZXJ0eUJhY2tncm91bmRDb2xvciksIENvbG9yU3BhY2VEZXZpY2VSR0IpOwot
ICAgIGNvbnRleHQtPmRyYXdSZWN0KHJlY3QpOwotICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKKyAg
ICBwYWludFJvdW5kZWRTbGlkZXJCYWNrZ3JvdW5kKHJlY3QsIHN0eWxlLCBjb250ZXh0KTsKIAog
ICAgIC8vIERyYXcgdGhlIGJ1ZmZlcmVkIHJhbmdlLiBTaW5jZSB0aGUgZWxlbWVudCBtYXkgaGF2
ZSBtdWx0aXBsZSBidWZmZXJlZCByYW5nZXMgYW5kIGl0J2QgYmUKICAgICAvLyBkaXN0cmFjdGlu
Zy8nYnVzeScgdG8gc2hvdyBhbGwgb2YgdGhlbSwgc2hvdyBvbmx5IHRoZSBidWZmZXJlZCByYW5n
ZSBjb250YWluaW5nIHRoZSBjdXJyZW50IHBsYXkgaGVhZC4KLSAgICBJbnRSZWN0IGJ1ZmZlcmVk
UmVjdCA9IHJlY3Q7Ci0gICAgYnVmZmVyZWRSZWN0LmluZmxhdGUoLXN0eWxlLT5ib3JkZXJMZWZ0
V2lkdGgoKSk7Ci0KICAgICBSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWRUaW1lUmFuZ2VzID0g
bWVkaWFFbGVtZW50LT5idWZmZXJlZCgpOwogICAgIGZsb2F0IGR1cmF0aW9uID0gbWVkaWFFbGVt
ZW50LT5kdXJhdGlvbigpOwogICAgIGZsb2F0IGN1cnJlbnRUaW1lID0gbWVkaWFFbGVtZW50LT5j
dXJyZW50VGltZSgpOwpAQCAtMTUzLDI3ICsyMDUsOCBAQCBzdGF0aWMgYm9vbCBwYWludE1lZGlh
U2xpZGVyKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywg
YwogICAgICAgICBmbG9hdCBzdGFydEZyYWN0aW9uID0gc3RhcnQgLyBkdXJhdGlvbjsKICAgICAg
ICAgZmxvYXQgZW5kRnJhY3Rpb24gPSBlbmQgLyBkdXJhdGlvbjsKICAgICAgICAgZmxvYXQgd2lk
dGhGcmFjdGlvbiA9IGVuZEZyYWN0aW9uIC0gc3RhcnRGcmFjdGlvbjsKLSAgICAgICAgYnVmZmVy
ZWRSZWN0Lm1vdmUoc3RhcnRGcmFjdGlvbiAqIGJ1ZmZlcmVkUmVjdC53aWR0aCgpLCAwKTsKLSAg
ICAgICAgYnVmZmVyZWRSZWN0LnNldFdpZHRoKHdpZHRoRnJhY3Rpb24gKiBidWZmZXJlZFJlY3Qu
d2lkdGgoKSk7Ci0KLSAgICAgICAgLy8gRG9uJ3QgYm90aGVyIGRyYXdpbmcgYW4gZW1wdHkgYXJl
YS4KLSAgICAgICAgaWYgKGJ1ZmZlcmVkUmVjdC5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLQotICAgICAgICBJbnRQb2ludCBzbGlkZXJUb3BMZWZ0ID0gYnVmZmVyZWRSZWN0
LmxvY2F0aW9uKCk7Ci0gICAgICAgIEludFBvaW50IHNsaWRlckJvdHRvbUxlZnQgPSBzbGlkZXJU
b3BMZWZ0OwotICAgICAgICBzbGlkZXJCb3R0b21MZWZ0Lm1vdmUoMCwgYnVmZmVyZWRSZWN0Lmhl
aWdodCgpKTsKLQotICAgICAgICBSZWZQdHI8R3JhZGllbnQ+IGdyYWRpZW50ID0gR3JhZGllbnQ6
OmNyZWF0ZShzbGlkZXJUb3BMZWZ0LCBzbGlkZXJCb3R0b21MZWZ0KTsKLSAgICAgICAgQ29sb3Ig
c3RhcnRDb2xvciA9IG9iamVjdC0+c3R5bGUoKS0+dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1By
b3BlcnR5Q29sb3IpOwotICAgICAgICBncmFkaWVudC0+YWRkQ29sb3JTdG9wKDAuMCwgc3RhcnRD
b2xvcik7Ci0gICAgICAgIGdyYWRpZW50LT5hZGRDb2xvclN0b3AoMS4wLCBDb2xvcihzdGFydENv
bG9yLnJlZCgpIC8gMiwgc3RhcnRDb2xvci5ncmVlbigpIC8gMiwgc3RhcnRDb2xvci5ibHVlKCkg
LyAyLCBzdGFydENvbG9yLmFscGhhKCkpKTsKLQotICAgICAgICBjb250ZXh0LT5zYXZlKCk7Ci0g
ICAgICAgIGNvbnRleHQtPnNldFN0cm9rZVN0eWxlKE5vU3Ryb2tlKTsKLSAgICAgICAgY29udGV4
dC0+c2V0RmlsbEdyYWRpZW50KGdyYWRpZW50KTsKLSAgICAgICAgY29udGV4dC0+ZmlsbFJlY3Qo
YnVmZmVyZWRSZWN0KTsKLSAgICAgICAgY29udGV4dC0+cmVzdG9yZSgpOworCisgICAgICAgIHBh
aW50U2xpZGVyUmFuZ2VIaWdobGlnaHQocmVjdCwgc3R5bGUsIGNvbnRleHQsIHN0YXJ0RnJhY3Rp
b24sIHdpZHRoRnJhY3Rpb24pOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTE5
Niw2ICsyMjksOCBAQCBzdGF0aWMgYm9vbCBwYWludE1lZGlhU2xpZGVyVGh1bWIoUmVuZGVyT2Jq
ZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbgogICAgIHJldHVybiBwYWludE1l
ZGlhQnV0dG9uKHBhaW50SW5mby5jb250ZXh0LCByZWN0LCBtZWRpYVNsaWRlclRodW1iKTsKIH0K
IAorY29uc3QgaW50IG1lZGlhVm9sdW1lU2xpZGVyVGh1bWJXaWR0aCA9IDI0OworCiBzdGF0aWMg
Ym9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVyKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBIVE1MTWVk
aWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSB0b1BhcmVudE1lZGlhRWxlbWVudChvYmplY3QpOwpA
QCAtMjAzLDE1ICsyMzgsMjUgQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlcihS
ZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gcGFpbnRJbmZvLmNv
bnRleHQ7Ci0gICAgQ29sb3Igb3JpZ2luYWxDb2xvciA9IGNvbnRleHQtPnN0cm9rZUNvbG9yKCk7
Ci0gICAgaWYgKG9yaWdpbmFsQ29sb3IgIT0gQ29sb3I6OndoaXRlKQotICAgICAgICBjb250ZXh0
LT5zZXRTdHJva2VDb2xvcihDb2xvcjo6d2hpdGUsIENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAg
IFJlbmRlclN0eWxlKiBzdHlsZSA9IG9iamVjdC0+c3R5bGUoKTsKIAotICAgIGludCB5ID0gcmVj
dC55KCkgKyByZWN0LmhlaWdodCgpIC8gMjsKLSAgICBjb250ZXh0LT5kcmF3TGluZShJbnRQb2lu
dChyZWN0LngoKSwgeSksICBJbnRQb2ludChyZWN0LngoKSArIHJlY3Qud2lkdGgoKSwgeSkpOwor
ICAgIHBhaW50Um91bmRlZFNsaWRlckJhY2tncm91bmQocmVjdCwgc3R5bGUsIGNvbnRleHQpOwor
CisgICAgLy8gQ2FsY3VsYXRlIHZvbHVtZSBwb3NpdGlvbiBmb3Igd2hpdGUgYmFja2dyb3VuZCBy
ZWN0YW5nbGUuCisgICAgZmxvYXQgdm9sdW1lID0gbWVkaWFFbGVtZW50LT52b2x1bWUoKTsKKyAg
ICBpZiAoaXNuYW4odm9sdW1lKSB8fCB2b2x1bWUgPCAwKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBpZiAodm9sdW1lID4gMSkKKyAgICAgICAgdm9sdW1lID0gMTsKKworICAgIC8vIENhbGN1
bGF0ZSB0aGUgcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIGNlbnRlciBvZiB0aGUgdGh1bWIuCisg
ICAgZmxvYXQgdGh1bWJDZW50ZXIgPSBtZWRpYVZvbHVtZVNsaWRlclRodW1iV2lkdGggLyAyOwor
ICAgIGZsb2F0IHpvb21MZXZlbCA9IHN0eWxlLT5lZmZlY3RpdmVab29tKCk7CisgICAgZmxvYXQg
cG9zaXRpb25XaWR0aCA9IHZvbHVtZSAqIChyZWN0LndpZHRoKCkgLSAoem9vbUxldmVsICogdGh1
bWJDZW50ZXIpKTsKKyAgICBmbG9hdCBmaWxsV2lkdGggPSBwb3NpdGlvbldpZHRoICsgKHpvb21M
ZXZlbCAqIHRodW1iQ2VudGVyIC8gMik7CisKKyAgICBwYWludFNsaWRlclJhbmdlSGlnaGxpZ2h0
KHJlY3QsIHN0eWxlLCBjb250ZXh0LCAwLjAsIGZpbGxXaWR0aCAvIHJlY3Qud2lkdGgoKSk7CiAK
LSAgICBpZiAob3JpZ2luYWxDb2xvciAhPSBDb2xvcjo6d2hpdGUpCi0gICAgICAgIGNvbnRleHQt
PnNldFN0cm9rZUNvbG9yKG9yaWdpbmFsQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOwogICAg
IHJldHVybiB0cnVlOwogfQogCkBAIC0yNzYsNyArMzIxLDYgQEAgYm9vbCBSZW5kZXJNZWRpYUNv
bnRyb2xzQ2hyb21pdW06OnBhaW50TWVkaWFDb250cm9sc1BhcnQoTWVkaWFDb250cm9sRWxlbWVu
dFR5cGUKIAogY29uc3QgaW50IG1lZGlhU2xpZGVyVGh1bWJXaWR0aCA9IDMyOwogY29uc3QgaW50
IG1lZGlhU2xpZGVyVGh1bWJIZWlnaHQgPSAyNDsKLWNvbnN0IGludCBtZWRpYVZvbHVtZVNsaWRl
clRodW1iV2lkdGggPSAyNDsKIGNvbnN0IGludCBtZWRpYVZvbHVtZVNsaWRlclRodW1iSGVpZ2h0
ID0gMjQ7CiAKIHZvaWQgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjphZGp1c3RNZWRpYVNs
aWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSogc3R5bGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147263</attachid>
            <date>2012-06-13 01:57:10 -0700</date>
            <delta_ts>2012-06-13 14:01:35 -0700</delta_ts>
            <desc>Patch for cq</desc>
            <filename>bug-88623-20120613185708.patch</filename>
            <type>text/plain</type>
            <size>16007</size>
            <attacher name="Silvia Pfeiffer">silviapfeiffer1</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTEwZTMyMDM4ZjAzY2U4
ODVhOGFiNjc4NjMzOTNjZWUyMjk2ZjZhMy4uY2ZlYzZkZTAwNjk2ZTBjNmJjOWI4OGZlNWQxMzVl
YjdlYmE5N2ExYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ4IEBACiAyMDEyLTA2LTEzICBTaWx2
aWEgUGZlaWZmZXIgIDxzaWx2aWFwZkBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgVXBkYXRlIHJh
bmdlIHNsaWRlcnMgcmVuZGVyaW5nIGZvciB2b2x1bWUgYW5kIHBsYXliYWNrIHBvc2l0aW9uIG9m
IG5ldyBDaHJvbWUgdmlkZW8gY29udHJvbHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04ODYyMworCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2Fy
bHNvbi4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGZpbmFsIHBhdGNoIHdpbGwgY29udGFpbiB0
aGUgcmViYXNlbGluZWQgdGVzdHMuCisKKyAgICAgICAgVGhlIENocm9tZSB2aWRlbyBjb250cm9s
cyBhcmUgcmVjZWl2aW5nIGEgdmlzdWFsIHVwZGF0ZS4gVGhpcyBwYXRjaCBjb250YWlucyB1cGRh
dGVzIHRvIHRoZQorICAgICAgICByZW5kZXJpbmcgb2YgdGhlIHJhbmdlIHNsaWRlcnMgZm9yIHRo
ZSBwbGF5YmFjayBwb3NpdGlvbiBhbmQgdGhlIHZvbHVtZS4gVGhpcyBpbmNsdWRlcyB0aGUKKyAg
ICAgICAgY3JlYXRpb24gb2YgYSBzaGFkb3dQc2V1ZG9JZCB0byBiZSBhYmxlIHRvIHN0eWxlIHRo
ZSByYW5nZSBzbGlkZXJzIHZpYSBDU1MsIHRoZSByZW5kZXJpbmcKKyAgICAgICAgb2YgdGhlIHNs
aWRlciBiYWNrZ3JvdW5kIGFuZCB0aGUgaGlnaGxpZ2h0ZWQgcmFuZ2VzLgorCisgICAgICAgICog
Y3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3M6CisgICAgICAgIChpbnB1dFt0eXBlPSJyYW5n
ZSJdOjotd2Via2l0LW1lZGlhLXNsaWRlci1jb250YWluZXIpOgorICAgICAgICBBZGp1c3QgdGhl
IHN0eWxpbmcgb2YgdGhlIHNsaWRlciBjb250YWluZXIgYmFja2dyb3VuZHMuCisgICAgICAgIChp
bnB1dFt0eXBlPSJyYW5nZSJdOjotd2Via2l0LW1lZGlhLXNsaWRlci10aHVtYik6CisgICAgICAg
IEFkanVzdCB0aGUgc3R5bGluZyBvZiB0aGUgc2xpZGVyIHRodW1icy4KKyAgICAgICAgKiBodG1s
L3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2xpZGVy
VGh1bWJTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIEFkZCBhbiBhY2Nlc3NvciBmdW5jdGlvbiBm
b3IgdGhlIHNsaWRlciB0aHVtYiBzaGFkb3dQc2V1ZG9JZC4KKyAgICAgICAgKFdlYkNvcmU6Om1l
ZGlhU2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIEFkZCBhbiBhY2Nlc3NvciBm
dW5jdGlvbiBmb3IgdGhlIG1lZGlhIHNsaWRlciB0aHVtYiBzaGFkb3dQc2V1ZG9JZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAg
ICBBZGQgYSBkaWZmZXJlbnQgQ1NTIHBzZXVkby1jbGFzcyBuYW1lIHRvIHRoZSBtZWRpYSBzbGlk
ZXIgdGh1bWJzLgorICAgICAgICAoV2ViQ29yZTo6VHJhY2tMaW1pdGVyRWxlbWVudDo6c2hhZG93
UHNldWRvSWQpOgorICAgICAgICBBZGQgYSBkaWZmZXJlbnQgQ1NTIHBzZXVkby1jbGFzcyBuYW1l
IHRvIHRoZSBtZWRpYSBzbGlkZXIgdGh1bWJzLgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyQ29u
dGFpbmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICBBZGQgYSBkaWZmZXJlbnQg
Q1NTIHBzZXVkby1jbGFzcyBuYW1lIHRvIHRoZSBtZWRpYSBzbGlkZXIgYmFja2dyb3VuZCBjb250
YWluZXIuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpwYWludFJvdW5kZWRTbGlkZXJCYWNrZ3JvdW5kKToKKyAg
ICAgICAgQWRkIGZ1bmN0aW9uIHRvIGRyYXcgcm91bmRlZCBiYWNrZ3JvdW5kIG9mIHNsaWRlcnMg
aW4gYSBkYXJrIGNvbG9yLgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRTbGlkZXJSYW5nZUhpZ2hs
aWdodCk6CisgICAgICAgIEFkZCBmdW5jdGlvbiB0byBkcmF3IGEgaGlnaGxpZ2h0ZWQgZ3JleSBy
ZWdpb24gb24gdGhlIHNsaWRlcnMsIHdoaWNoIGlzIHJvdW5kZWQgb25seSBhdAorICAgICAgICBp
dHMgZW5kcy4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFTbGlkZXIpOgorICAgICAgICBV
cGRhdGUgdGhlIGJhY2tncm91bmQgYW5kIGJ1ZmZlcmVkIHJhbmdlIHJlbmRlcmluZ3Mgb24gdGhl
IHBsYXliYWNrIHBvc2l0aW9uIHNsaWRlciBieSBtYWtpbmcKKyAgICAgICAgdXNlIG9mIHRoZSBu
ZXcgaGVscGVyIGZ1bmN0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFWb2x1bWVT
bGlkZXIpOgorICAgICAgICBVcGRhdGUgdGhlIGJhY2tncm91bmQgYW5kIGJ1ZmZlcmVkIHJhbmdl
IHJlbmRlcmluZ3Mgb24gdGhlIHZvbHVtZSBzbGlkZXIgYnkgbWFraW5nCisgICAgICAgIHVzZSBv
ZiB0aGUgbmV3IGhlbHBlciBmdW5jdGlvbnMuCisKKzIwMTItMDYtMTMgIFNpbHZpYSBQZmVpZmZl
ciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4KKwogICAgICAgICBDaGFuZ2UgdGhlIHN0eWxpbmcg
b2YgdGhlIENocm9taXVtIHZpZGVvIGNvbnRyb2xzLgogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgyOTcKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVk
aWFDb250cm9sc0Nocm9taXVtLmNzcwppbmRleCA5ZWQ4Y2M3MzdiYjcyYTE3NWMwODJhNDg5Yzg0
ZGQ1MjY3NDQ4YTgzLi40MjBkMjY4OGU5NzRmNzhmODJlNDFhMTg0OTE3YjVlMzJmY2U3ZGZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcwpAQCAtMTQz
LDMgKzE0MywyOSBAQCBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVy
LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bQogICAgIGJhY2tncm91bmQtY29s
b3I6IHRyYW5zcGFyZW50OwogICAgIG1pbi13aWR0aDogMTVweDsKIH0KKworLyogRklYTUUgdGhl
c2Ugc2hvdWxkbid0IHVzZSBzcGVjaWFsIHBzZXVkb1NoYWRvd0lkcywgYnV0IG5pY2VyIHJ1bGVz
LgorICAgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lk
PTExMjUwOAorICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMjE4
CisqLworaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVy
IHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1hbGlnbjogY2Vu
dGVyOworICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsgLyogVGhpcyBwcm9wZXJ0
eSBpcyB1cGRhdGVkIGJ5IEMrKyBjb2RlLiAqLworICAgIC13ZWJraXQtYm94LXNpemluZzogYm9y
ZGVyLWJveDsKKyAgICBoZWlnaHQ6IDEwMCU7CisgICAgd2lkdGg6IDEwMCU7CisgICAgYm9yZGVy
OiAxcHggc29saWQgcmdiKDEzMCwgMTMwLCAxMzApOworICAgIGJvcmRlci1yYWRpdXM6IDRweDsK
KyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogQmFja2dyb3VuZCBkcmF3aW5n
IGlzIG1hbmFnZWQgYnkgQysrIGNvZGUgdG8gZHJhdyByYW5nZXMuICovCit9CisKK2lucHV0W3R5
cGU9InJhbmdlIl06Oi13ZWJraXQtbWVkaWEtc2xpZGVyLXRodW1iIHsKKyAgICBkaXNwbGF5OiBi
bG9jazsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHNsaWRlcnRodW1iLWhvcml6b250YWw7Cisg
ICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgIHBvc2l0aW9uOiByZWxhdGl2
ZTsKKyAgICBib3R0b206IDFweDsKKyAgICBtYXJnaW4tbGVmdDogLTdweDsKKyAgICBtYXJnaW4t
cmlnaHQ6IC03cHg7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9T
bGlkZXJUaHVtYkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVy
VGh1bWJFbGVtZW50LmNwcAppbmRleCA4Mzc3NWEyNzEzZDk2NDNmN2ViNmUwYzU2OTFhNjU5NTFi
NTM4ZWQ3Li4xNDAwMDlhMjcwMDJiNDU2NmI4Y2VhZTdlOTU4NTdiZTA2NjEzODdkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAg
LTMyOSwxMiArMzI5LDM4IEBAIEhUTUxJbnB1dEVsZW1lbnQqIFNsaWRlclRodW1iRWxlbWVudDo6
aG9zdElucHV0KCkgY29uc3QKICAgICByZXR1cm4gc2hhZG93QW5jZXN0b3JOb2RlKCktPnRvSW5w
dXRFbGVtZW50KCk7CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgU2xpZGVyVGh1bWJFbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CitzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBzbGlk
ZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21p
Y1N0cmluZywgc2xpZGVyVGh1bWIsICgiLXdlYmtpdC1zbGlkZXItdGh1bWIiKSk7CisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJpbmcsIHNsaWRlclRodW1iLCAoIi13ZWJr
aXQtc2xpZGVyLXRodW1iIikpOwogICAgIHJldHVybiBzbGlkZXJUaHVtYjsKIH0KIAorc3RhdGlj
IGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFTbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCkKK3sK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbWVkaWFTbGlkZXJU
aHVtYiwgKCItd2Via2l0LW1lZGlhLXNsaWRlci10aHVtYiIpKTsKKyAgICByZXR1cm4gbWVkaWFT
bGlkZXJUaHVtYjsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBTbGlkZXJUaHVtYkVsZW1lbnQ6
OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK3sKKyAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9
IGhvc3RJbnB1dCgpOworICAgIGlmICghaW5wdXQpCisgICAgICAgIHJldHVybiBzbGlkZXJUaHVt
YlNoYWRvd1BzZXVkb0lkKCk7CisKKyAgICBSZW5kZXJTdHlsZSogc2xpZGVyU3R5bGUgPSBpbnB1
dC0+cmVuZGVyZXIoKS0+c3R5bGUoKTsKKyAgICBzd2l0Y2ggKHNsaWRlclN0eWxlLT5hcHBlYXJh
bmNlKCkpIHsKKyAgICBjYXNlIE1lZGlhU2xpZGVyUGFydDoKKyAgICBjYXNlIE1lZGlhU2xpZGVy
VGh1bWJQYXJ0OgorICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0OgorICAgIGNhc2UgTWVk
aWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQ6CisgICAgY2FzZSBNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVT
bGlkZXJQYXJ0OgorICAgIGNhc2UgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyVGh1bWJQYXJ0
OgorICAgICAgICByZXR1cm4gbWVkaWFTbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCk7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoKTsKKyAg
ICB9Cit9CisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIGlubGluZSBU
cmFja0xpbWl0ZXJFbGVtZW50OjpUcmFja0xpbWl0ZXJFbGVtZW50KERvY3VtZW50KiBkb2N1bWVu
dCkKQEAgLTM1OSw4ICszODUsMjIgQEAgUmVuZGVyT2JqZWN0KiBUcmFja0xpbWl0ZXJFbGVtZW50
OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWwKIAogY29uc3Qg
QXRvbWljU3RyaW5nJiBUcmFja0xpbWl0ZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNsaWRlclRodW1iLCAo
Ii13ZWJraXQtc2xpZGVyLXRodW1iIikpOwotICAgIHJldHVybiBzbGlkZXJUaHVtYjsKKyAgICBI
VE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHNoYWRvd0FuY2VzdG9yTm9kZSgpLT50b0lucHV0RWxl
bWVudCgpOworICAgIGlmICghaW5wdXQpCisgICAgICAgIHJldHVybiBzbGlkZXJUaHVtYlNoYWRv
d1BzZXVkb0lkKCk7CisKKyAgICBSZW5kZXJTdHlsZSogc2xpZGVyU3R5bGUgPSBpbnB1dC0+cmVu
ZGVyZXIoKS0+c3R5bGUoKTsKKyAgICBzd2l0Y2ggKHNsaWRlclN0eWxlLT5hcHBlYXJhbmNlKCkp
IHsKKyAgICBjYXNlIE1lZGlhU2xpZGVyUGFydDoKKyAgICBjYXNlIE1lZGlhU2xpZGVyVGh1bWJQ
YXJ0OgorICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0OgorICAgIGNhc2UgTWVkaWFWb2x1
bWVTbGlkZXJUaHVtYlBhcnQ6CisgICAgY2FzZSBNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXJQ
YXJ0OgorICAgIGNhc2UgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgorICAg
ICAgICByZXR1cm4gbWVkaWFTbGlkZXJUaHVtYlNoYWRvd1BzZXVkb0lkKCk7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgcmV0dXJuIHNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoKTsKKyAgICB9CiB9
CiAKIFRyYWNrTGltaXRlckVsZW1lbnQqIHRyYWNrTGltaXRlckVsZW1lbnRPZihOb2RlKiBub2Rl
KQpAQCAtMzkzLDggKzQzMywyNSBAQCBSZW5kZXJPYmplY3QqIFNsaWRlckNvbnRhaW5lckVsZW1l
bnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwgUmVuZGVyUwogCiBjb25zdCBB
dG9taWNTdHJpbmcmIFNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29u
c3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2xpZGVyVGh1bWIs
ICgiLXdlYmtpdC1zbGlkZXItY29udGFpbmVyIikpOwotICAgIHJldHVybiBzbGlkZXJUaHVtYjsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21pY1N0cmluZywgbWVkaWFTbGlkZXJD
b250YWluZXIsICgiLXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVyIikpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzbGlkZXJDb250YWluZXIsICgiLXdl
YmtpdC1zbGlkZXItY29udGFpbmVyIikpOworCisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQg
PSBzaGFkb3dBbmNlc3Rvck5vZGUoKS0+dG9JbnB1dEVsZW1lbnQoKTsKKyAgICBpZiAoIWlucHV0
KQorICAgICAgICByZXR1cm4gc2xpZGVyQ29udGFpbmVyOworCisgICAgUmVuZGVyU3R5bGUqIHNs
aWRlclN0eWxlID0gaW5wdXQtPnJlbmRlcmVyKCktPnN0eWxlKCk7CisgICAgc3dpdGNoIChzbGlk
ZXJTdHlsZS0+YXBwZWFyYW5jZSgpKSB7CisgICAgY2FzZSBNZWRpYVNsaWRlclBhcnQ6CisgICAg
Y2FzZSBNZWRpYVNsaWRlclRodW1iUGFydDoKKyAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyUGFy
dDoKKyAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgorICAgIGNhc2UgTWVkaWFG
dWxsU2NyZWVuVm9sdW1lU2xpZGVyUGFydDoKKyAgICBjYXNlIE1lZGlhRnVsbFNjcmVlblZvbHVt
ZVNsaWRlclRodW1iUGFydDoKKyAgICAgICAgcmV0dXJuIG1lZGlhU2xpZGVyQ29udGFpbmVyOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBzbGlkZXJDb250YWluZXI7CisgICAgfQogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250
cm9sc0Nocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNv
bnRyb2xzQ2hyb21pdW0uY3BwCmluZGV4IGUzNzgyZDU4N2ZhYzNlMTU4OTI3NWZkNjkwODE4OWY5
MGVjZTgzM2UuLmI2YjQ0Zjg2NzViMzEyMTA2NDlmNDQzOTA0NGI1MzUxYmM1ODdlYTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21p
dW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xz
Q2hyb21pdW0uY3BwCkBAIC0xMTMsNiArMTEzLDcxIEBAIHN0YXRpYyBJbWFnZSogZ2V0TWVkaWFT
bGlkZXJUaHVtYigpCiAgICAgcmV0dXJuIG1lZGlhU2xpZGVyVGh1bWI7CiB9CiAKK3N0YXRpYyB2
b2lkIHBhaW50Um91bmRlZFNsaWRlckJhY2tncm91bmQoY29uc3QgSW50UmVjdCYgcmVjdCwgY29u
c3QgUmVuZGVyU3R5bGUqIHN0eWxlLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpCit7CisgICAg
aW50IGJvcmRlclJhZGl1cyA9IHJlY3QuaGVpZ2h0KCkgLyAyOworICAgIEludFNpemUgcmFkaWko
Ym9yZGVyUmFkaXVzLCBib3JkZXJSYWRpdXMpOworICAgIENvbG9yIHNsaWRlckJhY2tncm91bmRD
b2xvciA9IENvbG9yKDI5LCAyOSwgMjkpOworICAgIGNvbnRleHQtPnNhdmUoKTsKKyAgICBjb250
ZXh0LT5maWxsUm91bmRlZFJlY3QocmVjdCwgcmFkaWksIHJhZGlpLCByYWRpaSwgcmFkaWksIHNs
aWRlckJhY2tncm91bmRDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgY29udGV4dC0+
cmVzdG9yZSgpOworfQorCitzdGF0aWMgdm9pZCBwYWludFNsaWRlclJhbmdlSGlnaGxpZ2h0KGNv
bnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0LCBmbG9hdCBzdGFydEZyYWN0aW9uLCBmbG9hdCB3aWR0aEZyYWN0aW9uKQor
eworICAgIGlmIChzdGFydEZyYWN0aW9uIDwgMCkKKyAgICAgICAgc3RhcnRGcmFjdGlvbiA9IDA7
CisgICAgaWYgKHdpZHRoRnJhY3Rpb24gPiAxKQorICAgICAgICB3aWR0aEZyYWN0aW9uID0gMTsK
KyAgICBmbG9hdCBlbmRGcmFjdGlvbiA9IHN0YXJ0RnJhY3Rpb24gKyB3aWR0aEZyYWN0aW9uOwor
ICAgIGlmIChlbmRGcmFjdGlvbiA+IDEpIHsKKyAgICAgICAgd2lkdGhGcmFjdGlvbiA9IHdpZHRo
RnJhY3Rpb24gLSBzdGFydEZyYWN0aW9uOworICAgICAgICBlbmRGcmFjdGlvbiA9IHN0YXJ0RnJh
Y3Rpb24gKyB3aWR0aEZyYWN0aW9uOworICAgIH0KKworICAgIC8vIFNldCByZWN0YW5nbGUgdG8g
aGlnaGxpZ2h0IHJhbmdlLgorICAgIEludFJlY3QgaGlnaGxpZ2h0UmVjdCA9IHJlY3Q7CisgICAg
aW50IHN0YXJ0T2Zmc2V0ID0gc3RhcnRGcmFjdGlvbiAqIHJlY3Qud2lkdGgoKTsKKyAgICBpbnQg
ZW5kT2Zmc2V0ID0gcmVjdC53aWR0aCgpIC0gZW5kRnJhY3Rpb24gKiByZWN0LndpZHRoKCk7Cisg
ICAgaW50IHJhbmdlV2lkdGggPSB3aWR0aEZyYWN0aW9uICogcmVjdC53aWR0aCgpOworICAgIGhp
Z2hsaWdodFJlY3QubW92ZShzdGFydE9mZnNldCwgMCk7CisgICAgaGlnaGxpZ2h0UmVjdC5zZXRX
aWR0aChyYW5nZVdpZHRoKTsKKworICAgIC8vIERvbid0IGJvdGhlciBkcmF3aW5nIGFuIGVtcHR5
IGFyZWEuCisgICAgaWYgKGhpZ2hsaWdodFJlY3QuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47
CisKKyAgICAvLyBDYWxjdWxhdGUgYm9yZGVyIHJhZGl1czsgbmVlZCB0byBhdm9pZCBiZWluZyBz
bWFsbGVyIHRoYW4gaGFsZiB0aGUgc2xpZGVyIGhlaWdodAorICAgIC8vIGJlY2F1c2Ugb2YgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMTQzLgorICAgIGludCBib3Jk
ZXJSYWRpdXMgPSByZWN0LmhlaWdodCgpIC8gMjsKKyAgICBJbnRTaXplIHJhZGlpKGJvcmRlclJh
ZGl1cywgYm9yZGVyUmFkaXVzKTsKKworICAgIC8vIENhbGN1bGF0ZSB3aGl0ZS1ncmV5IGdyYWRp
ZW50LgorICAgIEludFBvaW50IHNsaWRlclRvcExlZnQgPSBoaWdobGlnaHRSZWN0LmxvY2F0aW9u
KCk7CisgICAgSW50UG9pbnQgc2xpZGVyQm90dG9tTGVmdCA9IHNsaWRlclRvcExlZnQ7CisgICAg
c2xpZGVyQm90dG9tTGVmdC5tb3ZlKDAsIGhpZ2hsaWdodFJlY3QuaGVpZ2h0KCkpOworICAgIENv
bG9yIHN0YXJ0Q29sb3IgPSBDb2xvcigyMjAsIDIyMCwgMjIwKTsKKyAgICBDb2xvciBlbmRDb2xv
ciA9IENvbG9yKDI0MCwgMjQwLCAyNDApOworICAgIFJlZlB0cjxHcmFkaWVudD4gZ3JhZGllbnQg
PSBHcmFkaWVudDo6Y3JlYXRlKHNsaWRlclRvcExlZnQsIHNsaWRlckJvdHRvbUxlZnQpOworICAg
IGdyYWRpZW50LT5hZGRDb2xvclN0b3AoMC4wLCBzdGFydENvbG9yKTsKKyAgICBncmFkaWVudC0+
YWRkQ29sb3JTdG9wKDEuMCwgZW5kQ29sb3IpOworCisgICAgLy8gRmlsbCBoaWdobGlnaHQgcmVj
dGFuZ2xlIHdpdGggZ3JhZGllbnQsIHBvdGVudGlhbGx5IHJvdW5kZWQgaWYgb24gbGVmdCBvciBy
aWdodCBlZGdlLgorICAgIGNvbnRleHQtPnNhdmUoKTsKKyAgICBjb250ZXh0LT5zZXRGaWxsR3Jh
ZGllbnQoZ3JhZGllbnQpOworCisgICAgaWYgKHN0YXJ0T2Zmc2V0IDwgYm9yZGVyUmFkaXVzICYm
IGVuZE9mZnNldCA8IGJvcmRlclJhZGl1cykKKyAgICAgICAgY29udGV4dC0+ZmlsbFJvdW5kZWRS
ZWN0KGhpZ2hsaWdodFJlY3QsIHJhZGlpLCByYWRpaSwgcmFkaWksIHJhZGlpLCBzdGFydENvbG9y
LCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICBlbHNlIGlmIChzdGFydE9mZnNldCA8IGJvcmRl
clJhZGl1cykKKyAgICAgICAgY29udGV4dC0+ZmlsbFJvdW5kZWRSZWN0KGhpZ2hsaWdodFJlY3Qs
IHJhZGlpLCBJbnRTaXplKDAsIDApLCByYWRpaSwgSW50U2l6ZSgwLCAwKSwgc3RhcnRDb2xvciwg
Q29sb3JTcGFjZURldmljZVJHQik7CisgICAgZWxzZSBpZiAoZW5kT2Zmc2V0IDwgYm9yZGVyUmFk
aXVzKQorICAgICAgICBjb250ZXh0LT5maWxsUm91bmRlZFJlY3QoaGlnaGxpZ2h0UmVjdCwgSW50
U2l6ZSgwLCAwKSwgcmFkaWksIEludFNpemUoMCwgMCksIHJhZGlpLCBzdGFydENvbG9yLCBDb2xv
clNwYWNlRGV2aWNlUkdCKTsKKyAgICBlbHNlCisgICAgICAgIGNvbnRleHQtPmZpbGxSZWN0KGhp
Z2hsaWdodFJlY3QpOworCisgICAgY29udGV4dC0+cmVzdG9yZSgpOworfQorCiBzdGF0aWMgYm9v
bCBwYWludE1lZGlhU2xpZGVyKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBIVE1MTWVkaWFFbGVtZW50
KiBtZWRpYUVsZW1lbnQgPSB0b1BhcmVudE1lZGlhRWxlbWVudChvYmplY3QpOwpAQCAtMTIyLDIz
ICsxODcsMTAgQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVNsaWRlcihSZW5kZXJPYmplY3QqIG9i
amVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGMKICAgICBSZW5kZXJTdHlsZSogc3R5
bGUgPSBvYmplY3QtPnN0eWxlKCk7CiAgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gcGFp
bnRJbmZvLmNvbnRleHQ7CiAKLSAgICAvLyBEcmF3IHRoZSBib3JkZXIgb2YgdGhlIHRpbWUgYmFy
LgotICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCBiZSBhIHJvdW5kZWQgcmVjdCBidXQgbmVlZCB0
byBmaXggR3JhcGhpY3NDb250ZXh0U2tpYSBmaXJzdC4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzAxNDMKLSAgICBjb250ZXh0LT5zYXZlKCk7Ci0gICAg
Y29udGV4dC0+c2V0U2hvdWxkQW50aWFsaWFzKHRydWUpOwotICAgIGNvbnRleHQtPnNldFN0cm9r
ZVN0eWxlKFNvbGlkU3Ryb2tlKTsKLSAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihzdHlsZS0+
dmlzaXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yKSwgQ29sb3JT
cGFjZURldmljZVJHQik7Ci0gICAgY29udGV4dC0+c2V0U3Ryb2tlVGhpY2tuZXNzKHN0eWxlLT5i
b3JkZXJMZWZ0V2lkdGgoKSk7Ci0gICAgY29udGV4dC0+c2V0RmlsbENvbG9yKHN0eWxlLT52aXNp
dGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLCBDb2xvclNwYWNl
RGV2aWNlUkdCKTsKLSAgICBjb250ZXh0LT5kcmF3UmVjdChyZWN0KTsKLSAgICBjb250ZXh0LT5y
ZXN0b3JlKCk7CisgICAgcGFpbnRSb3VuZGVkU2xpZGVyQmFja2dyb3VuZChyZWN0LCBzdHlsZSwg
Y29udGV4dCk7CiAKICAgICAvLyBEcmF3IHRoZSBidWZmZXJlZCByYW5nZS4gU2luY2UgdGhlIGVs
ZW1lbnQgbWF5IGhhdmUgbXVsdGlwbGUgYnVmZmVyZWQgcmFuZ2VzIGFuZCBpdCdkIGJlCiAgICAg
Ly8gZGlzdHJhY3RpbmcvJ2J1c3knIHRvIHNob3cgYWxsIG9mIHRoZW0sIHNob3cgb25seSB0aGUg
YnVmZmVyZWQgcmFuZ2UgY29udGFpbmluZyB0aGUgY3VycmVudCBwbGF5IGhlYWQuCi0gICAgSW50
UmVjdCBidWZmZXJlZFJlY3QgPSByZWN0OwotICAgIGJ1ZmZlcmVkUmVjdC5pbmZsYXRlKC1zdHls
ZS0+Ym9yZGVyTGVmdFdpZHRoKCkpOwotCiAgICAgUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVk
VGltZVJhbmdlcyA9IG1lZGlhRWxlbWVudC0+YnVmZmVyZWQoKTsKICAgICBmbG9hdCBkdXJhdGlv
biA9IG1lZGlhRWxlbWVudC0+ZHVyYXRpb24oKTsKICAgICBmbG9hdCBjdXJyZW50VGltZSA9IG1l
ZGlhRWxlbWVudC0+Y3VycmVudFRpbWUoKTsKQEAgLTE1MywyNyArMjA1LDggQEAgc3RhdGljIGJv
b2wgcGFpbnRNZWRpYVNsaWRlcihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZv
JiBwYWludEluZm8sIGMKICAgICAgICAgZmxvYXQgc3RhcnRGcmFjdGlvbiA9IHN0YXJ0IC8gZHVy
YXRpb247CiAgICAgICAgIGZsb2F0IGVuZEZyYWN0aW9uID0gZW5kIC8gZHVyYXRpb247CiAgICAg
ICAgIGZsb2F0IHdpZHRoRnJhY3Rpb24gPSBlbmRGcmFjdGlvbiAtIHN0YXJ0RnJhY3Rpb247Ci0g
ICAgICAgIGJ1ZmZlcmVkUmVjdC5tb3ZlKHN0YXJ0RnJhY3Rpb24gKiBidWZmZXJlZFJlY3Qud2lk
dGgoKSwgMCk7Ci0gICAgICAgIGJ1ZmZlcmVkUmVjdC5zZXRXaWR0aCh3aWR0aEZyYWN0aW9uICog
YnVmZmVyZWRSZWN0LndpZHRoKCkpOwotCi0gICAgICAgIC8vIERvbid0IGJvdGhlciBkcmF3aW5n
IGFuIGVtcHR5IGFyZWEuCi0gICAgICAgIGlmIChidWZmZXJlZFJlY3QuaXNFbXB0eSgpKQotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICAgICAgSW50UG9pbnQgc2xpZGVyVG9wTGVmdCA9
IGJ1ZmZlcmVkUmVjdC5sb2NhdGlvbigpOwotICAgICAgICBJbnRQb2ludCBzbGlkZXJCb3R0b21M
ZWZ0ID0gc2xpZGVyVG9wTGVmdDsKLSAgICAgICAgc2xpZGVyQm90dG9tTGVmdC5tb3ZlKDAsIGJ1
ZmZlcmVkUmVjdC5oZWlnaHQoKSk7Ci0KLSAgICAgICAgUmVmUHRyPEdyYWRpZW50PiBncmFkaWVu
dCA9IEdyYWRpZW50OjpjcmVhdGUoc2xpZGVyVG9wTGVmdCwgc2xpZGVyQm90dG9tTGVmdCk7Ci0g
ICAgICAgIENvbG9yIHN0YXJ0Q29sb3IgPSBvYmplY3QtPnN0eWxlKCktPnZpc2l0ZWREZXBlbmRl
bnRDb2xvcihDU1NQcm9wZXJ0eUNvbG9yKTsKLSAgICAgICAgZ3JhZGllbnQtPmFkZENvbG9yU3Rv
cCgwLjAsIHN0YXJ0Q29sb3IpOwotICAgICAgICBncmFkaWVudC0+YWRkQ29sb3JTdG9wKDEuMCwg
Q29sb3Ioc3RhcnRDb2xvci5yZWQoKSAvIDIsIHN0YXJ0Q29sb3IuZ3JlZW4oKSAvIDIsIHN0YXJ0
Q29sb3IuYmx1ZSgpIC8gMiwgc3RhcnRDb2xvci5hbHBoYSgpKSk7Ci0KLSAgICAgICAgY29udGV4
dC0+c2F2ZSgpOwotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VTdHlsZShOb1N0cm9rZSk7Ci0g
ICAgICAgIGNvbnRleHQtPnNldEZpbGxHcmFkaWVudChncmFkaWVudCk7Ci0gICAgICAgIGNvbnRl
eHQtPmZpbGxSZWN0KGJ1ZmZlcmVkUmVjdCk7Ci0gICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsK
KworICAgICAgICBwYWludFNsaWRlclJhbmdlSGlnaGxpZ2h0KHJlY3QsIHN0eWxlLCBjb250ZXh0
LCBzdGFydEZyYWN0aW9uLCB3aWR0aEZyYWN0aW9uKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCkBAIC0xOTYsNiArMjI5LDggQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVNsaWRlclRo
dW1iKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW4KICAgICBy
ZXR1cm4gcGFpbnRNZWRpYUJ1dHRvbihwYWludEluZm8uY29udGV4dCwgcmVjdCwgbWVkaWFTbGlk
ZXJUaHVtYik7CiB9CiAKK2NvbnN0IGludCBtZWRpYVZvbHVtZVNsaWRlclRodW1iV2lkdGggPSAy
NDsKKwogc3RhdGljIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlcihSZW5kZXJPYmplY3QqIG9i
amVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7
CiAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50ID0gdG9QYXJlbnRNZWRpYUVsZW1l
bnQob2JqZWN0KTsKQEAgLTIwMywxNSArMjM4LDI1IEBAIHN0YXRpYyBib29sIHBhaW50TWVkaWFW
b2x1bWVTbGlkZXIoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJ
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCA9
IHBhaW50SW5mby5jb250ZXh0OwotICAgIENvbG9yIG9yaWdpbmFsQ29sb3IgPSBjb250ZXh0LT5z
dHJva2VDb2xvcigpOwotICAgIGlmIChvcmlnaW5hbENvbG9yICE9IENvbG9yOjp3aGl0ZSkKLSAg
ICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3IoQ29sb3I6OndoaXRlLCBDb2xvclNwYWNlRGV2
aWNlUkdCKTsKKyAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBvYmplY3QtPnN0eWxlKCk7CiAKLSAg
ICBpbnQgeSA9IHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSAvIDI7Ci0gICAgY29udGV4dC0+ZHJh
d0xpbmUoSW50UG9pbnQocmVjdC54KCksIHkpLCAgSW50UG9pbnQocmVjdC54KCkgKyByZWN0Lndp
ZHRoKCksIHkpKTsKKyAgICBwYWludFJvdW5kZWRTbGlkZXJCYWNrZ3JvdW5kKHJlY3QsIHN0eWxl
LCBjb250ZXh0KTsKKworICAgIC8vIENhbGN1bGF0ZSB2b2x1bWUgcG9zaXRpb24gZm9yIHdoaXRl
IGJhY2tncm91bmQgcmVjdGFuZ2xlLgorICAgIGZsb2F0IHZvbHVtZSA9IG1lZGlhRWxlbWVudC0+
dm9sdW1lKCk7CisgICAgaWYgKGlzbmFuKHZvbHVtZSkgfHwgdm9sdW1lIDwgMCkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgaWYgKHZvbHVtZSA+IDEpCisgICAgICAgIHZvbHVtZSA9IDE7CisK
KyAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSBjZW50ZXIgb2Yg
dGhlIHRodW1iLgorICAgIGZsb2F0IHRodW1iQ2VudGVyID0gbWVkaWFWb2x1bWVTbGlkZXJUaHVt
YldpZHRoIC8gMjsKKyAgICBmbG9hdCB6b29tTGV2ZWwgPSBzdHlsZS0+ZWZmZWN0aXZlWm9vbSgp
OworICAgIGZsb2F0IHBvc2l0aW9uV2lkdGggPSB2b2x1bWUgKiAocmVjdC53aWR0aCgpIC0gKHpv
b21MZXZlbCAqIHRodW1iQ2VudGVyKSk7CisgICAgZmxvYXQgZmlsbFdpZHRoID0gcG9zaXRpb25X
aWR0aCArICh6b29tTGV2ZWwgKiB0aHVtYkNlbnRlciAvIDIpOworCisgICAgcGFpbnRTbGlkZXJS
YW5nZUhpZ2hsaWdodChyZWN0LCBzdHlsZSwgY29udGV4dCwgMC4wLCBmaWxsV2lkdGggLyByZWN0
LndpZHRoKCkpOwogCi0gICAgaWYgKG9yaWdpbmFsQ29sb3IgIT0gQ29sb3I6OndoaXRlKQotICAg
ICAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihvcmlnaW5hbENvbG9yLCBDb2xvclNwYWNlRGV2
aWNlUkdCKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtMjc2LDcgKzMyMSw2IEBAIGJvb2wg
UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KE1lZGlh
Q29udHJvbEVsZW1lbnRUeXBlCiAKIGNvbnN0IGludCBtZWRpYVNsaWRlclRodW1iV2lkdGggPSAz
MjsKIGNvbnN0IGludCBtZWRpYVNsaWRlclRodW1iSGVpZ2h0ID0gMjQ7Ci1jb25zdCBpbnQgbWVk
aWFWb2x1bWVTbGlkZXJUaHVtYldpZHRoID0gMjQ7CiBjb25zdCBpbnQgbWVkaWFWb2x1bWVTbGlk
ZXJUaHVtYkhlaWdodCA9IDI0OwogCiB2b2lkIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6
YWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqIHN0eWxlKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>