<?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>98237</bug_id>
          
          <creation_ts>2012-10-03 00:36:26 -0700</creation_ts>
          <short_desc>Implement localizeValue for TimeInputType</short_desc>
          <delta_ts>2012-10-03 20:36:36 -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>Forms</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keishi Hattori">keishi</reporter>
          <assigned_to name="Keishi Hattori">keishi</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>mifenton</cc>
    
    <cc>peter+ews</cc>
    
    <cc>philn</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>733407</commentid>
    <comment_count>0</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-03 00:36:26 -0700</bug_when>
    <thetext>We need to implement localizeValue for TimeInputType</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733415</commentid>
    <comment_count>1</comment_count>
      <attachid>166822</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-03 00:54:18 -0700</bug_when>
    <thetext>Created attachment 166822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733443</commentid>
    <comment_count>2</comment_count>
      <attachid>166822</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-10-03 01:38:50 -0700</bug_when>
    <thetext>Comment on attachment 166822
Patch

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

&gt; Source/WebCore/platform/text/Localizer.cpp:44
&gt; +    DateTimeStringBuilder(Localizer*, const DateComponents&amp;);

The first argument should be Localizer&amp; to make sure it&apos;s non-null.

&gt; Source/WebCore/platform/text/Localizer.cpp:57
&gt; +    Localizer* m_localizer;

ditto.  should be Localizer&amp;.

&gt; Source/WebCore/platform/text/Localizer.cpp:58
&gt; +    const DateComponents m_date;

should be &quot;const DateComponents&amp;&quot;

&gt; Source/WebCore/platform/text/Localizer.cpp:79
&gt; +    StringBuilder builder;

Existence of builder and m_builder in a function is confusing.  Please rename builder to something else.

&gt; Source/WebCore/platform/text/Localizer.cpp:83
&gt; +    builder.append(String::number(number));
&gt; +    for (size_t i = builder.length(); i &lt; width; ++i)
&gt; +        builder.append(&quot;0&quot;);

It looks wrong.

String numberString = String::number(number);
for (size_t i = numberString.length(); i &lt; width; ++i)
    builder.append(&quot;0&quot;);
builder.append(numberString);

&gt; Source/WebCore/platform/text/Localizer.cpp:111
&gt; +        appendNumber(hour24, numberOfPatternCharacters);
&gt; +        appendNumber(hour24, numberOfPatternCharacters);

Why do you add twice?

&gt; Source/WebCore/platform/text/Localizer.cpp:126
&gt; +    case DateTimeFormat::FieldTypeSecond:
&gt; +        appendNumber(m_date.second(), numberOfPatternCharacters);
&gt; +        return;
&gt; +    case DateTimeFormat::FieldTypeFractionalSecond: {
&gt; +        int fractionalSecond = m_date.millisecond();
&gt; +        if (numberOfPatternCharacters &gt; 3)
&gt; +            fractionalSecond *= pow(10, numberOfPatternCharacters - 3);
&gt; +        String fractionalSecondString = String::format(&quot;%03d&quot;, fractionalSecond).left(numberOfPatternCharacters);
&gt; +        m_builder.append(m_localizer-&gt;convertToLocalizedNumber(fractionalSecondString));
&gt; +        return;

We should serialize millisecond part of the DateComponents with non-zero millisecond even if the format has no fractional second field.
So, you can ignore DateTimeFormat::FieldTypeFractionalSecond case, and can do everything for second and millisecond in the DateTimeFormat::FieldTypeSecond block above.

&gt; Source/WebCore/platform/text/Localizer.cpp:329
&gt; +{
&gt; +    DateTimeStringBuilder builder(this, date);

should reject non-time types.

&gt; Source/WebCore/platform/text/Localizer.h:104
&gt; +    enum FormatType { UnspecifiedFormatType, ShortFormatType, MediumFormatType };

Enum names should be FormatTypeUnspecified, FormatTypeShort, FormatTypeMedium.

&gt; Source/WebKit/chromium/tests/LocaleMacTest.cpp:157
&gt; +    EXPECT_STREQ(&quot;1:23:00 PM&quot;, formatTime(&quot;en_US&quot;, 13, 23).utf8().data());
&gt; +    EXPECT_STREQ(&quot;13:23:00&quot;, formatTime(&quot;fr_FR&quot;, 13, 23).utf8().data());
&gt; +    EXPECT_STREQ(&quot;13:23:00&quot;, formatTime(&quot;ja_JP&quot;, 13, 23).utf8().data());
&gt; +    EXPECT_STREQ(&quot;12:00:00 AM&quot;, formatTime(&quot;en_US&quot;, 00, 00).utf8().data());
&gt; +    EXPECT_STREQ(&quot;00:00:00&quot;, formatTime(&quot;fr_FR&quot;, 00, 00).utf8().data());
&gt; +    EXPECT_STREQ(&quot;0:00:00&quot;, formatTime(&quot;ja_JP&quot;, 00, 00).utf8().data());

We should have tests for:
  - the short format.
  - non-short format + non-zero second time.
  - non-zero millisecond time.
  - native digits such as &quot;ar&quot;, &quot;fa&quot; locales</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733549</commentid>
    <comment_count>3</comment_count>
      <attachid>166822</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-03 04:08:24 -0700</bug_when>
    <thetext>Comment on attachment 166822
Patch

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

&gt;&gt; Source/WebCore/platform/text/Localizer.cpp:44
&gt;&gt; +    DateTimeStringBuilder(Localizer*, const DateComponents&amp;);
&gt; 
&gt; The first argument should be Localizer&amp; to make sure it&apos;s non-null.

Done.

&gt;&gt; Source/WebCore/platform/text/Localizer.cpp:57
&gt;&gt; +    Localizer* m_localizer;
&gt; 
&gt; ditto.  should be Localizer&amp;.

Done.

&gt;&gt; Source/WebCore/platform/text/Localizer.cpp:58
&gt;&gt; +    const DateComponents m_date;
&gt; 
&gt; should be &quot;const DateComponents&amp;&quot;

Done.

&gt;&gt; Source/WebCore/platform/text/Localizer.cpp:79
&gt;&gt; +    StringBuilder builder;
&gt; 
&gt; Existence of builder and m_builder in a function is confusing.  Please rename builder to something else.

Done. Renamed to zeroPaddedStringBuilder.

&gt;&gt; Source/WebCore/platform/text/Localizer.cpp:83
&gt;&gt; +        builder.append(&quot;0&quot;);
&gt; 
&gt; It looks wrong.
&gt; 
&gt; String numberString = String::number(number);
&gt; for (size_t i = numberString.length(); i &lt; width; ++i)
&gt;     builder.append(&quot;0&quot;);
&gt; builder.append(numberString);

Done.

&gt;&gt; Source/WebCore/platform/text/Localizer.cpp:111
&gt;&gt; +        appendNumber(hour24, numberOfPatternCharacters);
&gt; 
&gt; Why do you add twice?

Done.

&gt;&gt; Source/WebCore/platform/text/Localizer.cpp:126
&gt;&gt; +        return;
&gt; 
&gt; We should serialize millisecond part of the DateComponents with non-zero millisecond even if the format has no fractional second field.
&gt; So, you can ignore DateTimeFormat::FieldTypeFractionalSecond case, and can do everything for second and millisecond in the DateTimeFormat::FieldTypeSecond block above.

Done.

&gt;&gt; Source/WebCore/platform/text/Localizer.cpp:329
&gt;&gt; +    DateTimeStringBuilder builder(this, date);
&gt; 
&gt; should reject non-time types.

Done.

&gt;&gt; Source/WebKit/chromium/tests/LocaleMacTest.cpp:157
&gt;&gt; +    EXPECT_STREQ(&quot;0:00:00&quot;, formatTime(&quot;ja_JP&quot;, 00, 00).utf8().data());
&gt; 
&gt; We should have tests for:
&gt;   - the short format.
&gt;   - non-short format + non-zero second time.
&gt;   - non-zero millisecond time.
&gt;   - native digits such as &quot;ar&quot;, &quot;fa&quot; locales

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733552</commentid>
    <comment_count>4</comment_count>
      <attachid>166853</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-03 04:13:54 -0700</bug_when>
    <thetext>Created attachment 166853
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733556</commentid>
    <comment_count>5</comment_count>
      <attachid>166853</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-03 04:20:24 -0700</bug_when>
    <thetext>Comment on attachment 166853
Patch

Attachment 166853 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14126714</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733557</commentid>
    <comment_count>6</comment_count>
      <attachid>166853</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-10-03 04:25:10 -0700</bug_when>
    <thetext>Comment on attachment 166853
Patch

Attachment 166853 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14130700</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733558</commentid>
    <comment_count>7</comment_count>
      <attachid>166853</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-03 04:26:41 -0700</bug_when>
    <thetext>Comment on attachment 166853
Patch

Attachment 166853 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14118844</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733559</commentid>
    <comment_count>8</comment_count>
      <attachid>166853</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-10-03 04:26:54 -0700</bug_when>
    <thetext>Comment on attachment 166853
Patch

Attachment 166853 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/14142004</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733561</commentid>
    <comment_count>9</comment_count>
      <attachid>166853</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-03 04:28:52 -0700</bug_when>
    <thetext>Comment on attachment 166853
Patch

Attachment 166853 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14148002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733562</commentid>
    <comment_count>10</comment_count>
      <attachid>166853</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-10-03 04:29:32 -0700</bug_when>
    <thetext>Comment on attachment 166853
Patch

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

&gt; Source/WebCore/platform/text/Localizer.cpp:126
&gt; +            float second = m_date.second() + m_date.millisecond() / 1000.0;
&gt; +            String zeroPaddedSecondString = zeroPadString(String::format(&quot;%.03f&quot;, second), numberOfPatternCharacters + 4);

The variable &apos;second&apos; should be double because
 - printf accepts only double for floating point numbers
 - m_date.millisecond() / 1000.0 is double</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733563</commentid>
    <comment_count>11</comment_count>
      <attachid>166853</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-03 04:35:44 -0700</bug_when>
    <thetext>Comment on attachment 166853
Patch

Attachment 166853 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14137545</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733579</commentid>
    <comment_count>12</comment_count>
      <attachid>166862</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-03 05:16:09 -0700</bug_when>
    <thetext>Created attachment 166862
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733582</commentid>
    <comment_count>13</comment_count>
      <attachid>166862</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-03 05:20:26 -0700</bug_when>
    <thetext>Comment on attachment 166862
Patch

Attachment 166862 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14118854</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733584</commentid>
    <comment_count>14</comment_count>
      <attachid>166864</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-03 05:23:30 -0700</bug_when>
    <thetext>Created attachment 166864
Just added if around DateTimeStringBuilder</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733587</commentid>
    <comment_count>15</comment_count>
      <attachid>166864</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-03 05:26:53 -0700</bug_when>
    <thetext>Comment on attachment 166864
Just added if around DateTimeStringBuilder

Attachment 166864 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14152083</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733589</commentid>
    <comment_count>16</comment_count>
      <attachid>166866</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-03 05:30:02 -0700</bug_when>
    <thetext>Created attachment 166866
Added UNUSED_PARAM for Localizer::formatDateTime</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733590</commentid>
    <comment_count>17</comment_count>
      <attachid>166866</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-10-03 05:32:00 -0700</bug_when>
    <thetext>Comment on attachment 166866
Added UNUSED_PARAM for Localizer::formatDateTime

ok.
Please make sure this won&apos;t break builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733600</commentid>
    <comment_count>18</comment_count>
      <attachid>166866</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-10-03 05:46:30 -0700</bug_when>
    <thetext>Comment on attachment 166866
Added UNUSED_PARAM for Localizer::formatDateTime

Attachment 166866 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14123718</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733609</commentid>
    <comment_count>19</comment_count>
      <attachid>166866</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-03 05:59:32 -0700</bug_when>
    <thetext>Comment on attachment 166866
Added UNUSED_PARAM for Localizer::formatDateTime

Attachment 166866 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14125762</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733634</commentid>
    <comment_count>20</comment_count>
      <attachid>166880</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-03 06:30:24 -0700</bug_when>
    <thetext>Created attachment 166880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733641</commentid>
    <comment_count>21</comment_count>
      <attachid>166880</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-10-03 06:44:04 -0700</bug_when>
    <thetext>Comment on attachment 166880
Patch

Attachment 166880 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14130747</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734306</commentid>
    <comment_count>22</comment_count>
      <attachid>167020</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-10-03 19:14:22 -0700</bug_when>
    <thetext>Created attachment 167020
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734332</commentid>
    <comment_count>23</comment_count>
      <attachid>167020</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-03 20:36:31 -0700</bug_when>
    <thetext>Comment on attachment 167020
Patch

Clearing flags on attachment: 167020

Committed r130357: &lt;http://trac.webkit.org/changeset/130357&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734333</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-03 20:36:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166822</attachid>
            <date>2012-10-03 00:54:18 -0700</date>
            <delta_ts>2012-10-03 04:13:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98237-20121003165330.patch</filename>
            <type>text/plain</type>
            <size>23122</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjc2OWNhYmNiMjY4M2Q2
ZjA1ZTVjNjI2OTBhYTkwYTc1NWU4Mzc4ZS4uMmZhY2UzYzM0YWY0YmRiYjdlYTQyYWFhMTdkNmM4
MDcxMjg2NTA2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEyLTEwLTAzICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCBsb2Nh
bGl6ZVZhbHVlIGZvciBUaW1lSW5wdXRUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05ODIzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlIHdhbnQgdG8gbG9jYWxpemUgdGltZSB2YWx1ZXMgZm9yIHRo
ZSBzdWdnZXN0aW9uIHBpY2tlci4KKyAgICAgICAgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyIHBhcnNl
cyBhIGZvcm1hdCBhbmQgY3JlYXRlcyBhIGZvcm1hdHRlZCBzdHJpbmcuCisKKyAgICAgICAgQWRk
ZWQgY2hyb21pdW0gdW5pdCB0ZXN0IExvY2FsZU1hY1Rlc3QuZm9ybWF0VGltZQorCisgICAgICAg
ICogaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2hv
dWxkSGF2ZVNlY29uZEZpZWxkKTogTW92ZWQgZnJvbSBMYXlvdXRQYXJhbWV0ZXJzIGJlY2F1c2Ug
d2Ugd2FudCB0byB1c2UgaXQgaW5zaWRlIGxvY2FsaXplVmFsdWUuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBodG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
Lmg6CisgICAgICAgIChCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSk6Cisg
ICAgICAgICogaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBodG1s
L0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVM
b2NhbElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBodG1sL1Rp
bWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6bG9jYWxp
emVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1
dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyk6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRU
eXBlLmg6CisgICAgICAgIChUaW1lSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9E
YXRlVGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnM6OkxheW91dFBhcmFtZXRlcnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsZUlDVTo6Zm9ybWF0RGF0ZVRpbWUpOiBDYWxscyBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1l
IGlmIHRoZSBkYXRlIGNvbXBvbmVudCBpcyBub3QgYSBkYXRlLgorICAgICAgICAqIHBsYXRmb3Jt
L3RleHQvTG9jYWxlSUNVLmg6CisgICAgICAgIChMb2NhbGVJQ1UpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvTG9jYWxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZVdpbjo6Zm9y
bWF0RGF0ZVRpbWUpOiBDYWxscyBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lIGlmIHRoZSBkYXRl
IGNvbXBvbmVudCBpcyBub3QgYSBkYXRlLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxl
V2luLmg6CisgICAgICAgIChMb2NhbGVXaW4pOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9j
YWxpemVyLmNwcDoKKyAgICAgICAgKERhdGVUaW1lU3RyaW5nQnVpbGRlcik6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3RyaW5nQnVpbGRlcjo6RGF0ZVRp
bWVTdHJpbmdCdWlsZGVyKTogVGFrZXMgYQorICAgICAgICBMb2NhbGl6ZXIgcG9pbnRlci4gVGhp
cyBpcyB1c2VkIGluc2lkZSB0aGUgTG9jYWxpemVyIHNvIHRoZSBMb2NhbGl6ZXIKKyAgICAgICAg
d2lsbCBvdXQgbGl2ZSB0aGUgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjpidWlsZCk6IEJ1aWxkcyBhIGxvY2FsaXplZCBzdHJp
bmcgZm9yIHRoZSBnaXZlbiBmb3JtYXQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN0cmlu
Z0J1aWxkZXI6OmFwcGVuZE51bWJlcik6IEFwcGVuZHMgYSBudW1iZXIgd2l0aCBsZWZ0IHplcm8g
cGFkZGluZyB0byBtYXRjaCB3aWR0aC4KKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3RyaW5n
QnVpbGRlcjo6dmlzaXRGaWVsZCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN0cmluZ0J1
aWxkZXI6OnZpc2l0TGl0ZXJhbCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN0cmluZ0J1
aWxkZXI6OnRvU3RyaW5nKTogUmV0dXJucyB0aGUgbG9jYWxpemVkIHN0cmluZy4KKyAgICAgICAg
KFdlYkNvcmU6OkxvY2FsaXplcjo6Zm9ybWF0RGF0ZVRpbWUpOgorICAgICAgICAqIHBsYXRmb3Jt
L3RleHQvTG9jYWxpemVyLmg6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFj
Lmg6CisgICAgICAgIChMb2NhbGVNYWMpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvbWFjL0xv
Y2FsZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZU1hYzo6Zm9ybWF0RGF0ZVRpbWUp
OiBDYWxscyBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lIGlmIHRoZSBkYXRlIGNvbXBvbmVudCBp
cyBub3QgYSBkYXRlLgorCiAyMDEyLTEwLTAzICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZWZhY3RvcmluZzogRGF0ZVRpbWVFZGl0QnVpbGRlciBoYWQgYmV0
dGVyIGhvbGQgTGF5b3V0UGFyYW1ldGVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAw
ZjJlZGY4YzM3MGZlZDEzMTU4MTM3M2I3NzlhNTYyODFmZjEyZGM4Li5lMzVkM2VlOTI3NmFkMjM1
NWFmZjZhODdiMGJjMjZjOThjZjlhYTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE2IEBACisyMDEyLTEwLTAzICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQu
b3JnPgorCisgICAgICAgIEltcGxlbWVudCBsb2NhbGl6ZVZhbHVlIGZvciBUaW1lSW5wdXRUeXBl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODIzNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMv
TG9jYWxlTWFjVGVzdC5jcHA6CisgICAgICAgIChMb2NhbGVNYWNUZXN0Ojp0aW1lQ29tcG9uZW50
cyk6CisgICAgICAgIChMb2NhbGVNYWNUZXN0KToKKyAgICAgICAgKExvY2FsZU1hY1Rlc3Q6OmZv
cm1hdFRpbWUpOiBUZXN0cyBmb3JtYXREYXRlVGltZSgpIGZvciB0aW1lLgorICAgICAgICAoVEVT
VF9GKToKKwogMjAxMi0xMC0wMiAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgW0Nocm9taXVtLVdpbl0gSW1wbGVtZW50IExvY2FsZVdpbjo6ZGF0ZUZvcm1hdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBjNzI1YjE5ODVkNzUzZDVhMWE2YWU5YjM4
M2I0M2UxZDcyZDk5MjgyLi43NGQ5ZTQ4YjM1YTcxMTdjMjNmM2UxNzBjMWI4ZWNjNDU4MzRlNzRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVB
bmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBs
ZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1
ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZXIuaCIKICNpbmNsdWRlICJT
aGFkb3dSb290LmgiCisjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtMjM4LDYgKzIzOSwxNCBAQCB2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVB
bmRUaW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5lclRleHRWYWx1ZSgpCiAgICAgICAgIG1fZGF0ZVRp
bWVFZGl0RWxlbWVudC0+c2V0RW1wdHlWYWx1ZShsYXlvdXRQYXJhbWV0ZXJzLCBkYXRlKTsKIH0K
IAorYm9vbCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2hvdWxkSGF2
ZVNlY29uZEZpZWxkKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKSBjb25zdAoreworICAgIFN0
ZXBSYW5nZSBzdGVwUmFuZ2UgPSBjcmVhdGVTdGVwUmFuZ2UoQW55SXNEZWZhdWx0U3RlcCk7Cisg
ICAgcmV0dXJuIGRhdGUuc2Vjb25kKCkKKyAgICAgICAgfHwgIXN0ZXBSYW5nZS5taW5pbXVtKCku
cmVtYWluZGVyKHN0YXRpY19jYXN0PGludD4obXNQZXJNaW51dGUpKS5pc1plcm8oKQorICAgICAg
ICB8fCAhc3RlcFJhbmdlLnN0ZXAoKS5yZW1haW5kZXIoc3RhdGljX2Nhc3Q8aW50Pihtc1Blck1p
bnV0ZSkpLmlzWmVybygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5k
VGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNE
YXRlQW5kVGltZUlucHV0VHlwZS5oCmluZGV4IGY2YWIxNTk2MjA0ZWY1ZGQ0MGRlNTQ0ZWM3MzJi
OGQxMWQ1YTA1ZDQuLjVhOGU2ZTI4NDE5OTVkYmNkOWFjOGY1ZGU0ZjJlZGQ4ZjRkNDlhOTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxk
c0RhdGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHJvdGVjdGVkOgogICAg
IEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQq
KTsKICAgICB2aXJ0dWFsIH5CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSgp
OwogICAgIHZpcnR1YWwgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxl
bWVudDo6TGF5b3V0UGFyYW1ldGVycyYsIGNvbnN0IERhdGVDb21wb25lbnRzJikgY29uc3QgPSAw
OworICAgIGJvb2wgc2hvdWxkSGF2ZVNlY29uZEZpZWxkKGNvbnN0IERhdGVDb21wb25lbnRzJikg
Y29uc3Q7CiAKIHByaXZhdGU6CiAgICAgLy8gRGF0ZVRpbWVFZGl0RWxlbWVudDo6RWRpdENvbnRy
b2xPd25lciBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5j
cHAKaW5kZXggMzcwYzI3NWFhMTFkNWE2YmQwYTBkMzEwMDU3ZjFlMGQwNjQzZDIyYS4uM2QzOGUy
YjNlN2RiMzczODFiNTNiZDRiYTVhMDZkM2U4ZTRjMmQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9EYXRlVGltZUlucHV0VHlwZS5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCB2b2lkIERhdGVUaW1l
SW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5
b3V0UGFyYW1ldAogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVu
ZChsYXlvdXRQYXJhbWV0ZXJzLmxvY2FsaXplci5kYXRlRm9ybWF0KCkpOwogICAgIGJ1aWxkZXIu
YXBwZW5kKCcgJyk7Ci0gICAgaWYgKGRhdGUuc2Vjb25kKCkgfHwgbGF5b3V0UGFyYW1ldGVycy5z
aG91bGRIYXZlU2Vjb25kRmllbGQoKSkgeworICAgIGlmIChzaG91bGRIYXZlU2Vjb25kRmllbGQo
ZGF0ZSkpIHsKICAgICAgICAgYnVpbGRlci5hcHBlbmQobGF5b3V0UGFyYW1ldGVycy5sb2NhbGl6
ZXIudGltZUZvcm1hdCgpKTsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0RhdGVU
aW1lRm9ybWF0ID0gImRkL01NL3l5eXkgSEg6bW06c3MiOwogICAgIH0gZWxzZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAppbmRleCA0MTZjMWM5
ZjliM2ZkZjQzYTgzNDZlZDhjZGIyNDYwNTVjYmUzODNjLi5kMjFlYmQxYTlmNDE2Y2I1ZWJjMTBk
NjU1NDQ2MDI5NDUzNDJhZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVU
aW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVM
b2NhbElucHV0VHlwZS5jcHAKQEAgLTE1Niw3ICsxNTYsNyBAQCB2b2lkIERhdGVUaW1lTG9jYWxJ
bnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlv
dXRQYQogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAgICBidWlsZGVyLmFwcGVuZChsYXlv
dXRQYXJhbWV0ZXJzLmxvY2FsaXplci5kYXRlRm9ybWF0KCkpOwogICAgIGJ1aWxkZXIuYXBwZW5k
KCcgJyk7Ci0gICAgaWYgKGRhdGUuc2Vjb25kKCkgfHwgbGF5b3V0UGFyYW1ldGVycy5zaG91bGRI
YXZlU2Vjb25kRmllbGQoKSkgeworICAgIGlmIChzaG91bGRIYXZlU2Vjb25kRmllbGQoZGF0ZSkp
IHsKICAgICAgICAgYnVpbGRlci5hcHBlbmQobGF5b3V0UGFyYW1ldGVycy5sb2NhbGl6ZXIudGlt
ZUZvcm1hdCgpKTsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0RhdGVUaW1lRm9y
bWF0ID0gImRkL01NL3l5eXkgSEg6bW06c3MiOwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCA0OGE2ODRjMzVlNmU1OWJlZjVhY2NhNmVjMDc3NDE4
ZDBhMDJkZWQ4Li5iMzg3MWY0NjA1N2Y5ZmRmYWZhODc1YjBkYTc0ZmMyOTE5Njg0NjMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTEyMCw2ICsxMjAsMTggQEAgYm9v
bCBUaW1lSW5wdXRUeXBlOjppc1RpbWVGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKK1N0cmluZyBUaW1lSW5wdXRUeXBlOjpsb2NhbGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJv
cG9zZWRWYWx1ZSkgY29uc3QKK3sKKyAgICBEYXRlQ29tcG9uZW50cyBkYXRlOworICAgIGlmICgh
cGFyc2VUb0RhdGVDb21wb25lbnRzKHByb3Bvc2VkVmFsdWUsICZkYXRlKSkKKyAgICAgICAgcmV0
dXJuIHByb3Bvc2VkVmFsdWU7CisKKyAgICBMb2NhbGl6ZXI6OkZvcm1hdFR5cGUgZm9ybWF0VHlw
ZSA9IHNob3VsZEhhdmVTZWNvbmRGaWVsZChkYXRlKSA/IExvY2FsaXplcjo6TWVkaXVtRm9ybWF0
VHlwZSA6IExvY2FsaXplcjo6U2hvcnRGb3JtYXRUeXBlOworCisgICAgU3RyaW5nIGxvY2FsaXpl
ZCA9IGVsZW1lbnQoKS0+bG9jYWxpemVyKCkuZm9ybWF0RGF0ZVRpbWUoZGF0ZSwgZm9ybWF0VHlw
ZSk7CisgICAgcmV0dXJuIGxvY2FsaXplZC5pc0VtcHR5KCkgPyBwcm9wb3NlZFZhbHVlIDogbG9j
YWxpemVkOworfQorCiAjaWYgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkKIAogU3Ry
aW5nIFRpbWVJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRp
bWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSkgY29uc3QKQEAgLTE0Miw3ICsxNTQs
NyBAQCBTdHJpbmcgVGltZUlucHV0VHlwZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25z
dCBEYXRlVGltZUZpZWxkc1N0YXRlJiBkYXRlVAogCiB2b2lkIFRpbWVJbnB1dFR5cGU6OnNldHVw
TGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJiBs
YXlvdXRQYXJhbWV0ZXJzLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkgY29uc3QKIHsKLSAg
ICBpZiAoZGF0ZS5zZWNvbmQoKSB8fCBsYXlvdXRQYXJhbWV0ZXJzLnNob3VsZEhhdmVTZWNvbmRG
aWVsZCgpKSB7CisgICAgaWYgKHNob3VsZEhhdmVTZWNvbmRGaWVsZChkYXRlKSkgewogICAgICAg
ICBsYXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0ID0gbGF5b3V0UGFyYW1ldGVycy5sb2Nh
bGl6ZXIudGltZUZvcm1hdCgpOwogICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxiYWNrRGF0
ZVRpbWVGb3JtYXQgPSAiSEg6bW06c3MiOwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGlt
ZUlucHV0VHlwZS5oCmluZGV4IGQ1YTk3OTJhN2E0MjBlOTY0MjQyZDIwOTY2NDRmZjdiMzFmMDkz
NjYuLjY5YTEyYmQyOGExZmQ3YjMxMGYxMDA0NzUxMzEyYWY4YTJiYWYzOTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGltZUlucHV0VHlwZS5oCkBAIC01NSw2ICs1NSw3IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBib29sIHBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVybmFsKGNvbnN0IFVDaGFyKiwgdW5z
aWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlLCBEYXRlQ29tcG9u
ZW50cyopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1RpbWVGaWVsZCgpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplVmFsdWUoY29uc3QgU3Ry
aW5nJikgY29uc3QgT1ZFUlJJREU7CiAKICNpZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVfRklFTERT
X1VJKQogICAgIC8vIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlIGZ1bmN0
aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVt
ZW50LmNwcAppbmRleCBjNDYyZTI2ZTQ3MGU3NWE0ZDNlNTgxMzcwODNhYzc3ZTQ3NmZiOGUyLi4y
MGM1MWY0YTA5YjY3Y2IxMjU4NTAyNmM4ZTE3ZWY4ZjA0OTI2MGY0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApAQCAtMTg5LDE1
ICsxODksNiBAQCB2b2lkIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0TGl0ZXJhbChjb25zdCBT
dHJpbmcmIHRleHQpCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotCi1ib29s
IERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnM6OnNob3VsZEhhdmVTZWNvbmRG
aWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICFzdGVwUmFuZ2UubWluaW11bSgpLnJlbWFpbmRl
cihzdGF0aWNfY2FzdDxpbnQ+KG1zUGVyTWludXRlKSkuaXNaZXJvKCkKLSAgICAgICAgfHwgIXN0
ZXBSYW5nZS5zdGVwKCkucmVtYWluZGVyKHN0YXRpY19jYXN0PGludD4obXNQZXJNaW51dGUpKS5p
c1plcm8oKTsKLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCiBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyOjp+RWRpdENvbnRyb2xPd25lcigpCiB7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmgK
aW5kZXggYmVkYTI5ZGNjZmNhYzZiMjIyZDIwODYxNTE4ZjU2YmM4M2Q5OGQxNC4uZWNiZWFhZDg5
ZWY0YWI1MTVmN2U3MDYwZDJhNjdlMDIzMDQ3YjMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaApAQCAtNzUsOCArNzUsNiBAQCBwdWJs
aWM6CiAgICAgICAgICAgICAsIHN0ZXBSYW5nZShzdGVwUmFuZ2UpCiAgICAgICAgIHsKICAgICAg
ICAgfQotCi0gICAgICAgIGJvb2wgc2hvdWxkSGF2ZVNlY29uZEZpZWxkKCkgY29uc3Q7CiAgICAg
fTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCosIEVkaXRDb250cm9sT3duZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxlSUNVLmNwcAppbmRleCA0OGZjMTUzMDdmNzY2MmY1YWRhMDBiNGM5NWI2Njg2NDhj
ZmNjMDliLi44YWFhOGI5NTRmODBhZTIzNWIyMWU1MjAxZDQyZWViNmQ4MmVlYTc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCkBAIC0xODIsMTAgKzE4Miwx
MCBAQCBkb3VibGUgTG9jYWxlSUNVOjpwYXJzZURhdGVUaW1lKGNvbnN0IFN0cmluZyYgaW5wdXQs
IERhdGVDb21wb25lbnRzOjpUeXBlIHR5cGUpCiAgICAgcmV0dXJuIGRhdGU7CiB9CiAKLVN0cmlu
ZyBMb2NhbGVJQ1U6OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlQ29t
cG9uZW50cykKK1N0cmluZyBMb2NhbGVJQ1U6OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21w
b25lbnRzJiBkYXRlQ29tcG9uZW50cywgRm9ybWF0VHlwZSBmb3JtYXRUeXBlKQogewogICAgIGlm
IChkYXRlQ29tcG9uZW50cy50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OkRhdGUpCi0gICAgICAg
IHJldHVybiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIExvY2FsaXplcjo6Zm9ybWF0RGF0ZVRp
bWUoZGF0ZUNvbXBvbmVudHMsIGZvcm1hdFR5cGUpOwogICAgIGlmICghaW5pdGlhbGl6ZVNob3J0
RGF0ZUZvcm1hdCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgZG91YmxlIGlucHV0
ID0gZGF0ZUNvbXBvbmVudHMubWlsbGlzZWNvbmRzU2luY2VFcG9jaCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmgKaW5kZXggNjlmM2Q2NTJlYWE3MWYxYTlmYmQ5MzBh
ZGM0YTJlNDFmMDViYzllZi4uOWE0NTIzOGNkNjlmZTE3YWRkMWRjYjY2NTZlY2QwYjBiMTVjYmZi
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oCkBAIC01Miw3ICs1
Miw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEZvciBMb2NhbGl6ZWREYXRlCiAgICAgdmlydHVhbCBk
b3VibGUgcGFyc2VEYXRlVGltZShjb25zdCBTdHJpbmcmLCBEYXRlQ29tcG9uZW50czo6VHlwZSkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNv
bXBvbmVudHMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRlVGltZShj
b25zdCBEYXRlQ29tcG9uZW50cyYsIEZvcm1hdFR5cGUgPSBVbnNwZWNpZmllZEZvcm1hdFR5cGUp
IE9WRVJSSURFOwogI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCiAgICAgdmlydHVhbCBTdHJp
bmcgZGF0ZUZvcm1hdFRleHQoKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9Mb2NhbGVXaW4uY3BwCmluZGV4IDQ5MGQ4ZTkwZTMxY2U4NzY3N2IzZTdiMmVlZTY4YjRi
YWZmOGI3YWUuLmYwM2M5N2Y2NmIzYTVhNjY1MjdkMWJlMDRiMzQwOTFkMDA5ZDUwYTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5jcHAKQEAgLTQ4NywxMCArNDg3
LDEwIEBAIHZvaWQgTG9jYWxlV2luOjphcHBlbmRGb3VyRGlnaXRzTnVtYmVyKGludCB2YWx1ZSwg
U3RyaW5nQnVpbGRlciYgYnVmZmVyKQogICAgIGJ1ZmZlci5hcHBlbmQoY29udmVydFRvTG9jYWxp
emVkTnVtYmVyKG51bWJlckJ1ZmZlci50b1N0cmluZygpKSk7CiB9CiAKLVN0cmluZyBMb2NhbGVX
aW46OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlQ29tcG9uZW50cykK
K1N0cmluZyBMb2NhbGVXaW46OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBk
YXRlQ29tcG9uZW50cywgRm9ybWF0VHlwZSBmb3JtYXRUeXBlKQogewogICAgIGlmIChkYXRlQ29t
cG9uZW50cy50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OkRhdGUpCi0gICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIExvY2FsaXplcjo6Zm9ybWF0RGF0ZVRpbWUoZGF0ZUNv
bXBvbmVudHMsIGZvcm1hdFR5cGUpOwogICAgIGVuc3VyZVNob3J0RGF0ZVRva2VucygpOwogICAg
IHJldHVybiBmb3JtYXREYXRlKG1fc2hvcnREYXRlVG9rZW5zLCBtX2Jhc2VZZWFyLCBkYXRlQ29t
cG9uZW50cy5mdWxsWWVhcigpLCBkYXRlQ29tcG9uZW50cy5tb250aCgpLCBkYXRlQ29tcG9uZW50
cy5tb250aERheSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxlV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5o
CmluZGV4IDVjZmIwNTJhNDJjMzFjOTVjM2Y3NmRkYjEyMDhlYzcwZDcxZWZiMjUuLjQyMjdkYzc1
NTI0ZmQyMjNhMTAxOGE2YWVmMWQzZWUzMTJmMWVmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGVXaW4uaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IExvY2FsZVdpbiogY3VycmVudExvY2FsZSgpOwogICAgIH5Mb2NhbGVXaW4oKTsKICAgICB2aXJ0
dWFsIGRvdWJsZSBwYXJzZURhdGVUaW1lKGNvbnN0IFN0cmluZyYsIERhdGVDb21wb25lbnRzOjpU
eXBlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRlVGltZShjb25zdCBE
YXRlQ29tcG9uZW50cyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdERhdGVU
aW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiwgRm9ybWF0VHlwZSA9IFVuc3BlY2lmaWVkRm9ybWF0
VHlwZSkgT1ZFUlJJREU7CiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKICAgICB2aXJ0dWFs
IFN0cmluZyBkYXRlRm9ybWF0VGV4dCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIG1vbnRoTGFiZWxzKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0xvY2FsaXplci5jcHAKaW5kZXggZDI1NzViMjU3ODdjZTQxZTU1NjZkOTVhOTUx
YmFkMGViOGE1MWE1Ni4uOGNiYjlmMjU1MGU5NzNmYWY4ZWRlNTA4Y2JjOWQ5YTc0YTUwZGI2MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmNwcApAQCAtMzEsMTAg
KzMxLDExNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxvY2FsaXplci5oIgog
CisjaW5jbHVkZSAiRGF0ZVRpbWVGb3JtYXQuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRGF0ZVRpbWVTdHJpbmdC
dWlsZGVyIDogcHJpdmF0ZSBEYXRlVGltZUZvcm1hdDo6VG9rZW5IYW5kbGVyIHsKKyAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShEYXRlVGltZVN0cmluZ0J1aWxkZXIpOworCitwdWJsaWM6CisgICAg
Ly8gVGhlIGFyZ3VtZW50IG9iamVjdHMgbXVzdCBiZSBhbGl2ZSB1bnRpbCB0aGlzIG9iamVjdCBk
aWVzLgorICAgIERhdGVUaW1lU3RyaW5nQnVpbGRlcihMb2NhbGl6ZXIqLCBjb25zdCBEYXRlQ29t
cG9uZW50cyYpOworCisgICAgYm9vbCBidWlsZChjb25zdCBTdHJpbmcmKTsKKyAgICBTdHJpbmcg
dG9TdHJpbmcoKTsKKworcHJpdmF0ZToKKyAgICAvLyBEYXRlVGltZUZvcm1hdDo6VG9rZW5IYW5k
bGVyIGZ1bmN0aW9ucy4KKyAgICB2aXJ0dWFsIHZvaWQgdmlzaXRGaWVsZChEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlLCBpbnQpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9pZCB2aXNp
dExpdGVyYWwoY29uc3QgU3RyaW5nJikgT1ZFUlJJREUgRklOQUw7CisKKyAgICB2b2lkIGFwcGVu
ZE51bWJlcihpbnQgbnVtYmVyLCBzaXplX3Qgd2lkdGgpOworCisgICAgU3RyaW5nQnVpbGRlciBt
X2J1aWxkZXI7CisgICAgTG9jYWxpemVyKiBtX2xvY2FsaXplcjsKKyAgICBjb25zdCBEYXRlQ29t
cG9uZW50cyBtX2RhdGU7Cit9OworCitEYXRlVGltZVN0cmluZ0J1aWxkZXI6OkRhdGVUaW1lU3Ry
aW5nQnVpbGRlcihMb2NhbGl6ZXIqIGxvY2FsaXplciwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRh
dGUpCisgICAgOiBtX2xvY2FsaXplcihsb2NhbGl6ZXIpCisgICAgLCBtX2RhdGUoZGF0ZSkKK3sK
K30KKworYm9vbCBEYXRlVGltZVN0cmluZ0J1aWxkZXI6OmJ1aWxkKGNvbnN0IFN0cmluZyYgZm9y
bWF0U3RyaW5nKQoreworICAgIG1fYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoZm9ybWF0U3RyaW5n
Lmxlbmd0aCgpKTsKKyAgICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OnBhcnNlKGZvcm1hdFN0cmlu
ZywgKnRoaXMpOworfQorCit2b2lkIERhdGVUaW1lU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVy
KGludCBudW1iZXIsIHNpemVfdCB3aWR0aCkKK3sKKyAgICBpZiAod2lkdGggPCAyKSB7CisgICAg
ICAgIG1fYnVpbGRlci5hcHBlbmQobV9sb2NhbGl6ZXItPmNvbnZlcnRUb0xvY2FsaXplZE51bWJl
cihTdHJpbmc6Om51bWJlcihudW1iZXIpKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KHdpZHRo
KTsKKyAgICBidWlsZGVyLmFwcGVuZChTdHJpbmc6Om51bWJlcihudW1iZXIpKTsKKyAgICBmb3Ig
KHNpemVfdCBpID0gYnVpbGRlci5sZW5ndGgoKTsgaSA8IHdpZHRoOyArK2kpCisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKCIwIik7CisgICAgbV9idWlsZGVyLmFwcGVuZChtX2xvY2FsaXplci0+Y29u
dmVydFRvTG9jYWxpemVkTnVtYmVyKGJ1aWxkZXIudG9TdHJpbmcoKSkpOworfQorCit2b2lkIERh
dGVUaW1lU3RyaW5nQnVpbGRlcjo6dmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
IGZpZWxkVHlwZSwgaW50IG51bWJlck9mUGF0dGVybkNoYXJhY3RlcnMpCit7CisgICAgc3dpdGNo
IChmaWVsZFR5cGUpIHsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVQZXJpb2Q6
CisgICAgICAgIG1fYnVpbGRlci5hcHBlbmQobV9sb2NhbGl6ZXItPnRpbWVBTVBNTGFiZWxzKClb
KG1fZGF0ZS5ob3VyKCkgPj0gMTIgPyAxIDogMCldKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNh
c2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIxMjogeworICAgICAgICBpbnQgaG91cjEy
ID0gbV9kYXRlLmhvdXIoKSAlIDEyOworICAgICAgICBpZiAoIWhvdXIxMikKKyAgICAgICAgICAg
IGhvdXIxMiA9IDEyOworICAgICAgICBhcHBlbmROdW1iZXIoaG91cjEyLCBudW1iZXJPZlBhdHRl
cm5DaGFyYWN0ZXJzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIERhdGVUaW1l
Rm9ybWF0OjpGaWVsZFR5cGVIb3VyMjM6CisgICAgICAgIGFwcGVuZE51bWJlcihtX2RhdGUuaG91
cigpLCBudW1iZXJPZlBhdHRlcm5DaGFyYWN0ZXJzKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNh
c2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIxMToKKyAgICAgICAgYXBwZW5kTnVtYmVy
KG1fZGF0ZS5ob3VyKCkgJSAxMiwgbnVtYmVyT2ZQYXR0ZXJuQ2hhcmFjdGVycyk7CisgICAgICAg
IHJldHVybjsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMjQ6IHsKKyAg
ICAgICAgaW50IGhvdXIyNCA9IG1fZGF0ZS5ob3VyKCk7CisgICAgICAgIGlmICghaG91cjI0KQor
ICAgICAgICAgICAgaG91cjI0ID0gMjQ7CisgICAgICAgIGFwcGVuZE51bWJlcihob3VyMjQsIG51
bWJlck9mUGF0dGVybkNoYXJhY3RlcnMpOworICAgICAgICBhcHBlbmROdW1iZXIoaG91cjI0LCBu
dW1iZXJPZlBhdHRlcm5DaGFyYWN0ZXJzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBj
YXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNaW51dGU6CisgICAgICAgIGFwcGVuZE51bWJl
cihtX2RhdGUubWludXRlKCksIG51bWJlck9mUGF0dGVybkNoYXJhY3RlcnMpOworICAgICAgICBy
ZXR1cm47CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlU2Vjb25kOgorICAgICAg
ICBhcHBlbmROdW1iZXIobV9kYXRlLnNlY29uZCgpLCBudW1iZXJPZlBhdHRlcm5DaGFyYWN0ZXJz
KTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUZy
YWN0aW9uYWxTZWNvbmQ6IHsKKyAgICAgICAgaW50IGZyYWN0aW9uYWxTZWNvbmQgPSBtX2RhdGUu
bWlsbGlzZWNvbmQoKTsKKyAgICAgICAgaWYgKG51bWJlck9mUGF0dGVybkNoYXJhY3RlcnMgPiAz
KQorICAgICAgICAgICAgZnJhY3Rpb25hbFNlY29uZCAqPSBwb3coMTAsIG51bWJlck9mUGF0dGVy
bkNoYXJhY3RlcnMgLSAzKTsKKyAgICAgICAgU3RyaW5nIGZyYWN0aW9uYWxTZWNvbmRTdHJpbmcg
PSBTdHJpbmc6OmZvcm1hdCgiJTAzZCIsIGZyYWN0aW9uYWxTZWNvbmQpLmxlZnQobnVtYmVyT2ZQ
YXR0ZXJuQ2hhcmFjdGVycyk7CisgICAgICAgIG1fYnVpbGRlci5hcHBlbmQobV9sb2NhbGl6ZXIt
PmNvbnZlcnRUb0xvY2FsaXplZE51bWJlcihmcmFjdGlvbmFsU2Vjb25kU3RyaW5nKSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuOworICAgIH0K
K30KKwordm9pZCBEYXRlVGltZVN0cmluZ0J1aWxkZXI6OnZpc2l0TGl0ZXJhbChjb25zdCBTdHJp
bmcmIHRleHQpCit7CisgICAgQVNTRVJUKHRleHQubGVuZ3RoKCkpOworICAgIG1fYnVpbGRlci5h
cHBlbmQodGV4dCk7Cit9CisKK1N0cmluZyBEYXRlVGltZVN0cmluZ0J1aWxkZXI6OnRvU3RyaW5n
KCkKK3sKKyAgICByZXR1cm4gbV9idWlsZGVyLnRvU3RyaW5nKCk7Cit9CisKIExvY2FsaXplcjo6
fkxvY2FsaXplcigpCiB7CiB9CkBAIC0yMTgsNCArMzI0LDExIEBAIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBMb2NhbGl6ZXI6OnRpbWVBTVBNTGFiZWxzKCkKIH0KICNlbmRpZgogCitTdHJpbmcgTG9j
YWxpemVyOjpmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSwgRm9ybWF0
VHlwZSBmb3JtYXRUeXBlKQoreworICAgIERhdGVUaW1lU3RyaW5nQnVpbGRlciBidWlsZGVyKHRo
aXMsIGRhdGUpOworICAgIGJ1aWxkZXIuYnVpbGQoZm9ybWF0VHlwZSA9PSBTaG9ydEZvcm1hdFR5
cGUgPyBzaG9ydFRpbWVGb3JtYXQoKSA6IHRpbWVGb3JtYXQoKSk7CisgICAgcmV0dXJuIGJ1aWxk
ZXIudG9TdHJpbmcoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGl6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxp
emVyLmgKaW5kZXggYjAxNWMyODllZGUxMzI2ODZmN2RmNGUyYmJmM2M1ZmY1OTVjYjc2YS4uYmVj
YzRjYjNjMDdlNTk4NTlmNWY1YWJmODBiMDk2YjI0NzA0Y2VlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0xvY2FsaXplci5oCkBAIC0xMDEsMTAgKzEwMSwxMiBAQCBwdWJsaWM6CiAg
ICAgLy8gMDA6MDA6MDAuMDAwIFVUQy4KICAgICB2aXJ0dWFsIGRvdWJsZSBwYXJzZURhdGVUaW1l
KGNvbnN0IFN0cmluZyYsIERhdGVDb21wb25lbnRzOjpUeXBlKSA9IDA7CiAKKyAgICBlbnVtIEZv
cm1hdFR5cGUgeyBVbnNwZWNpZmllZEZvcm1hdFR5cGUsIFNob3J0Rm9ybWF0VHlwZSwgTWVkaXVt
Rm9ybWF0VHlwZSB9OworCiAgICAgLy8gU2VyaWFsaXplcyB0aGUgc3BlY2lmaWVkIGRhdGUgaW50
byBhIGZvcm1hdHRlZCBkYXRlIHN0cmluZyB0bwogICAgIC8vIGRpc3BsYXkgdG8gdGhlIHVzZXIu
IElmIGFuIGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qgc3VwcG9ydAogICAgIC8vIGxvY2FsaXplZCBk
YXRlcyB0aGUgZnVuY3Rpb24gc2hvdWxkIHJldHVybiBhbiBlbXB0eSBzdHJpbmcuCi0gICAgdmly
dHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSA9IDA7Cisg
ICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmLCBG
b3JtYXRUeXBlID0gVW5zcGVjaWZpZWRGb3JtYXRUeXBlKTsKIAogICAgIHZpcnR1YWwgfkxvY2Fs
aXplcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9M
b2NhbGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5o
CmluZGV4IDJkOWU4YWRlNjlhMmY0MTRmOGIwNjkxYTVhMzg3YTM1ZTkwZDBhMzUuLmMyMjA5MDJj
YWM3NGZmMmEzYzUxODg3ZTA3MDIxNGI1MTFmZDVkOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgTG9jYWxlTWFjKiBjdXJyZW50TG9jYWxlKCk7CiAgICAgfkxvY2FsZU1hYygpOwog
ICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlRGF0ZVRpbWUoY29uc3QgU3RyaW5nJiwgRGF0ZUNvbXBv
bmVudHM6OlR5cGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdERhdGVUaW1l
KGNvbnN0IERhdGVDb21wb25lbnRzJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTdHJpbmcgZm9y
bWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmLCBGb3JtYXRUeXBlID0gVW5zcGVjaWZp
ZWRGb3JtYXRUeXBlKSBPVkVSUklERTsKIAogI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCiAg
ICAgdmlydHVhbCBTdHJpbmcgZGF0ZUZvcm1hdFRleHQoKSBPVkVSUklERTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbQppbmRleCBhZTlmNjc1Yjc4ZTYw
YjlkYmNlNDdkMjMwMWMyYjc4OTQ3NDQ0ZmI5Li41N2U3YjhlMzMxYzdhMTk1NjMzMWI1ZWYyMTUy
MGFiNjAyOTRhOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21h
Yy9Mb2NhbGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9j
YWxlTWFjLm1tCkBAIC0xMjgsMTAgKzEyOCwxMCBAQCBkb3VibGUgTG9jYWxlTWFjOjpwYXJzZURh
dGVUaW1lKGNvbnN0IFN0cmluZyYgaW5wdXQsIERhdGVDb21wb25lbnRzOjpUeXBlIHR5cGUpCiAg
ICAgcmV0dXJuIFtkYXRlIHRpbWVJbnRlcnZhbFNpbmNlMTk3MF0gKiBtc1BlclNlY29uZDsKIH0K
IAotU3RyaW5nIExvY2FsZU1hYzo6Zm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMm
IGRhdGVDb21wb25lbnRzKQorU3RyaW5nIExvY2FsZU1hYzo6Zm9ybWF0RGF0ZVRpbWUoY29uc3Qg
RGF0ZUNvbXBvbmVudHMmIGRhdGVDb21wb25lbnRzLCBGb3JtYXRUeXBlIGZvcm1hdFR5cGUpCiB7
CiAgICAgaWYgKGRhdGVDb21wb25lbnRzLnR5cGUoKSAhPSBEYXRlQ29tcG9uZW50czo6RGF0ZSkK
LSAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAgICByZXR1cm4gTG9jYWxpemVyOjpmb3Jt
YXREYXRlVGltZShkYXRlQ29tcG9uZW50cywgZm9ybWF0VHlwZSk7CiAgICAgUmV0YWluUHRyPE5T
RGF0ZUZvcm1hdHRlcj4gZm9ybWF0dGVyKEFkb3B0TlMsIGNyZWF0ZVNob3J0RGF0ZUZvcm1hdHRl
cigpKTsKICAgICBOU1RpbWVJbnRlcnZhbCBpbnRlcnZhbCA9IGRhdGVDb21wb25lbnRzLm1pbGxp
c2Vjb25kc1NpbmNlRXBvY2goKSAvIG1zUGVyU2Vjb25kOwogICAgIHJldHVybiBTdHJpbmcoW2Zv
cm1hdHRlci5nZXQoKSBzdHJpbmdGcm9tRGF0ZTpbTlNEYXRlIGRhdGVXaXRoVGltZUludGVydmFs
U2luY2UxOTcwOmludGVydmFsXV0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9Mb2NhbGVNYWNUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
TG9jYWxlTWFjVGVzdC5jcHAKaW5kZXggZjVmMjY4ZGIzNWIwODMxMTZmYmMwYzY3ZTc2YjYyMjQ0
ZDM4YjJhMy4uYTIwNzBhYzU3NGJiMjA5ZjhjMTUzOTRiNGMyZDg5Y2UxZTY4ODNlMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVNYWNUZXN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2FsZU1hY1Rlc3QuY3BwCkBAIC01Nyw2
ICs1NywxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHJldHVybiBkYXRlOwogICAgIH0KIAorICAg
IERhdGVDb21wb25lbnRzIHRpbWVDb21wb25lbnRzKGludCBob3VyLCBpbnQgbWludXRlKQorICAg
IHsKKyAgICAgICAgRGF0ZUNvbXBvbmVudHMgZGF0ZTsKKyAgICAgICAgZGF0ZS5zZXRNaWxsaXNl
Y29uZHNTaW5jZU1pZG5pZ2h0KGhvdXIgKiBtc1BlckhvdXIgKyBtaW51dGUgKiBtc1Blck1pbnV0
ZSk7CisgICAgICAgIHJldHVybiBkYXRlOworICAgIH0KKwogICAgIGRvdWJsZSBtc0ZvckRhdGUo
aW50IHllYXIsIGludCBtb250aCwgaW50IGRheSkKICAgICB7CiAgICAgICAgIHJldHVybiBkYXRl
VG9EYXlzRnJvbTE5NzAoeWVhciwgbW9udGgsIGRheSkgKiBtc1BlckRheTsKQEAgLTY4LDYgKzc1
LDEyIEBAIHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJuIGxvY2FsZS0+Zm9ybWF0RGF0ZVRpbWUo
ZGF0ZUNvbXBvbmVudHMoeWVhciwgbW9udGgsIGRheSkpOwogICAgIH0KIAorICAgIFN0cmluZyBm
b3JtYXRUaW1lKGNvbnN0IFN0cmluZyYgbG9jYWxlU3RyaW5nLCBpbnQgaG91ciwgaW50IG1pbnV0
ZSkKKyAgICB7CisgICAgICAgIE93blB0cjxMb2NhbGVNYWM+IGxvY2FsZSA9IExvY2FsZU1hYzo6
Y3JlYXRlKGxvY2FsZVN0cmluZyk7CisgICAgICAgIHJldHVybiBsb2NhbGUtPmZvcm1hdERhdGVU
aW1lKHRpbWVDb21wb25lbnRzKGhvdXIsIG1pbnV0ZSkpOworICAgIH0KKwogICAgIGRvdWJsZSBw
YXJzZURhdGUoY29uc3QgU3RyaW5nJiBsb2NhbGVTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGF0ZVN0
cmluZykKICAgICB7CiAgICAgICAgIE93blB0cjxMb2NhbGVNYWM+IGxvY2FsZSA9IExvY2FsZU1h
Yzo6Y3JlYXRlKGxvY2FsZVN0cmluZyk7CkBAIC0xMzQsNiArMTQ3LDE2IEBAIFRFU1RfRihMb2Nh
bGVNYWNUZXN0LCBmb3JtYXREYXRlKQogICAgIEVYUEVDVF9TVFJFUSgiMDUvMDQvMjciLCBmb3Jt
YXREYXRlKCJqYV9KUCIsIDIwMDUsIEFwcmlsLCAyNykudXRmOCgpLmRhdGEoKSk7CiB9CiAKK1RF
U1RfRihMb2NhbGVNYWNUZXN0LCBmb3JtYXRUaW1lKQoreworICAgIEVYUEVDVF9TVFJFUSgiMToy
MzowMCBQTSIsIGZvcm1hdFRpbWUoImVuX1VTIiwgMTMsIDIzKS51dGY4KCkuZGF0YSgpKTsKKyAg
ICBFWFBFQ1RfU1RSRVEoIjEzOjIzOjAwIiwgZm9ybWF0VGltZSgiZnJfRlIiLCAxMywgMjMpLnV0
ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiMTM6MjM6MDAiLCBmb3JtYXRUaW1lKCJq
YV9KUCIsIDEzLCAyMykudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCIxMjowMDow
MCBBTSIsIGZvcm1hdFRpbWUoImVuX1VTIiwgMDAsIDAwKS51dGY4KCkuZGF0YSgpKTsKKyAgICBF
WFBFQ1RfU1RSRVEoIjAwOjAwOjAwIiwgZm9ybWF0VGltZSgiZnJfRlIiLCAwMCwgMDApLnV0Zjgo
KS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiMDowMDowMCIsIGZvcm1hdFRpbWUoImphX0pQ
IiwgMDAsIDAwKS51dGY4KCkuZGF0YSgpKTsKK30KKwogVEVTVF9GKExvY2FsZU1hY1Rlc3QsIHBh
cnNlRGF0ZSkKIHsKICAgICBFWFBFQ1RfRVEobXNGb3JEYXRlKDIwMDUsIEFwcmlsLCAyNyksIHBh
cnNlRGF0ZSgiZW5fVVMiLCAiQXByaWwgMjcsIDIwMDUiKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166853</attachid>
            <date>2012-10-03 04:13:54 -0700</date>
            <delta_ts>2012-10-03 05:16:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98237-20121003201305.patch</filename>
            <type>text/plain</type>
            <size>24803</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZlY2M2YzE1NmYzMGY5
ZDM1ZjViNGFhZDQ5OWIwZDE4NmJmZWU5OS4uN2I5YWRmZjY5OTIxOTQ0OWE5OWNjOTZlMjNiZjll
ZWQzNTMwMDQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTEwLTAzICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCBsb2Nh
bGl6ZVZhbHVlIGZvciBUaW1lSW5wdXRUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05ODIzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlIHdhbnQgdG8gbG9jYWxpemUgdGltZSB2YWx1ZXMgZm9yIHRo
ZSBzdWdnZXN0aW9uIHBpY2tlci4KKyAgICAgICAgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyIHBhcnNl
cyBhIGZvcm1hdCBhbmQgY3JlYXRlcyBhIGZvcm1hdHRlZCBzdHJpbmcuCisKKyAgICAgICAgQWRk
ZWQgY2hyb21pdW0gdW5pdCB0ZXN0IExvY2FsZU1hY1Rlc3QuZm9ybWF0VGltZQorCisgICAgICAg
ICogaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2hv
dWxkSGF2ZVNlY29uZEZpZWxkKTogTW92ZWQgZnJvbSBMYXlvdXRQYXJhbWV0ZXJzIGJlY2F1c2Ug
d2Ugd2FudCB0byB1c2UgaXQgaW5zaWRlIGxvY2FsaXplVmFsdWUuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBodG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
Lmg6CisgICAgICAgIChCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSk6Cisg
ICAgICAgICogaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBodG1s
L0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVM
b2NhbElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBodG1sL1Rp
bWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6bG9jYWxp
emVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1
dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyk6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRU
eXBlLmg6CisgICAgICAgIChUaW1lSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9E
YXRlVGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnM6OkxheW91dFBhcmFtZXRlcnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsZUlDVTo6Zm9ybWF0RGF0ZVRpbWUpOiBDYWxscyBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1l
IGlmIHRoZSBkYXRlIGNvbXBvbmVudCBpcyBub3QgYSBkYXRlLgorICAgICAgICAqIHBsYXRmb3Jt
L3RleHQvTG9jYWxlSUNVLmg6CisgICAgICAgIChMb2NhbGVJQ1UpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvTG9jYWxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZVdpbjo6Zm9y
bWF0RGF0ZVRpbWUpOiBDYWxscyBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lIGlmIHRoZSBkYXRl
IGNvbXBvbmVudCBpcyBub3QgYSBkYXRlLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxl
V2luLmg6CisgICAgICAgIChMb2NhbGVXaW4pOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9j
YWxpemVyLmNwcDoKKyAgICAgICAgKERhdGVUaW1lU3RyaW5nQnVpbGRlcik6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3RyaW5nQnVpbGRlcjo6RGF0ZVRp
bWVTdHJpbmdCdWlsZGVyKTogVGFrZXMgYQorICAgICAgICBMb2NhbGl6ZXIgcG9pbnRlci4gVGhp
cyBpcyB1c2VkIGluc2lkZSB0aGUgTG9jYWxpemVyIHNvIHRoZSBMb2NhbGl6ZXIKKyAgICAgICAg
d2lsbCBvdXQgbGl2ZSB0aGUgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjpidWlsZCk6IEJ1aWxkcyBhIGxvY2FsaXplZCBzdHJp
bmcgZm9yIHRoZSBnaXZlbiBmb3JtYXQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN0cmlu
Z0J1aWxkZXI6Onplcm9QYWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTdHJp
bmdCdWlsZGVyOjphcHBlbmROdW1iZXIpOiBBcHBlbmRzIGEgbnVtYmVyIHdpdGggbGVmdCB6ZXJv
IHBhZGRpbmcgdG8gbWF0Y2ggd2lkdGguCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN0cmlu
Z0J1aWxkZXI6OnZpc2l0RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTdHJpbmdC
dWlsZGVyOjp2aXNpdExpdGVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTdHJpbmdC
dWlsZGVyOjp0b1N0cmluZyk6IFJldHVybnMgdGhlIGxvY2FsaXplZCBzdHJpbmcuCisgICAgICAg
IChXZWJDb3JlOjpMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L0xvY2FsaXplci5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1h
Yy5oOgorICAgICAgICAoTG9jYWxlTWFjKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L21hYy9M
b2NhbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVNYWM6OmZvcm1hdERhdGVUaW1l
KTogQ2FsbHMgTG9jYWxpemVyOjpmb3JtYXREYXRlVGltZSBpZiB0aGUgZGF0ZSBjb21wb25lbnQg
aXMgbm90IGEgZGF0ZS4KKwogMjAxMi0xMC0wMyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgSW50cm9kdWNlIERhdGVDb21wb25lbnRzOjptaW5pbXVtWWVhciBh
bmQgbWF4aW11bVllYXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZTJmNzZkNTg0Nzgy
MzdiMzc3ZjgwZDVkZmM0Y2JlNGNiNWIyYTYyNy4uNzBmMWY5Y2RiYzc5ODEzZjhkZjdkNWZjMjcy
MDc5YmQ5YzlhMDBlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxMi0xMC0wMyAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAg
ICAgICBJbXBsZW1lbnQgbG9jYWxpemVWYWx1ZSBmb3IgVGltZUlucHV0VHlwZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgyMzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0xvY2FsZU1hY1Rl
c3QuY3BwOgorICAgICAgICAoTG9jYWxlTWFjVGVzdDo6dGltZUNvbXBvbmVudHMpOgorICAgICAg
ICAoTG9jYWxlTWFjVGVzdCk6CisgICAgICAgIChMb2NhbGVNYWNUZXN0Ojpmb3JtYXRUaW1lKTog
VGVzdHMgZm9ybWF0RGF0ZVRpbWUoKSBmb3IgdGltZS4KKyAgICAgICAgKFRFU1RfRik6CisKIDIw
MTItMTAtMDIgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUHJvdmlkZSBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIGZvciBIYXNoQ291bnRlZFNldApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0Rh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBjNzI1YjE5ODVkNzUzZDVhMWE2YWU5YjM4M2I0
M2UxZDcyZDk5MjgyLi43NGQ5ZTQ4YjM1YTcxMTdjMjNmM2UxNzBjMWI4ZWNjNDU4MzRlNzRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRU
aW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZp
ZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUg
IktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZXIuaCIKICNpbmNsdWRlICJTaGFk
b3dSb290LmgiCisjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMjM4LDYgKzIzOSwxNCBAQCB2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRU
aW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5lclRleHRWYWx1ZSgpCiAgICAgICAgIG1fZGF0ZVRpbWVF
ZGl0RWxlbWVudC0+c2V0RW1wdHlWYWx1ZShsYXlvdXRQYXJhbWV0ZXJzLCBkYXRlKTsKIH0KIAor
Ym9vbCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2hvdWxkSGF2ZVNl
Y29uZEZpZWxkKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKSBjb25zdAoreworICAgIFN0ZXBS
YW5nZSBzdGVwUmFuZ2UgPSBjcmVhdGVTdGVwUmFuZ2UoQW55SXNEZWZhdWx0U3RlcCk7CisgICAg
cmV0dXJuIGRhdGUuc2Vjb25kKCkKKyAgICAgICAgfHwgIXN0ZXBSYW5nZS5taW5pbXVtKCkucmVt
YWluZGVyKHN0YXRpY19jYXN0PGludD4obXNQZXJNaW51dGUpKS5pc1plcm8oKQorICAgICAgICB8
fCAhc3RlcFJhbmdlLnN0ZXAoKS5yZW1haW5kZXIoc3RhdGljX2Nhc3Q8aW50Pihtc1Blck1pbnV0
ZSkpLmlzWmVybygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRl
QW5kVGltZUlucHV0VHlwZS5oCmluZGV4IGY2YWIxNTk2MjA0ZWY1ZGQ0MGRlNTQ0ZWM3MzJiOGQx
MWQ1YTA1ZDQuLjVhOGU2ZTI4NDE5OTVkYmNkOWFjOGY1ZGU0ZjJlZGQ4ZjRkNDlhOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0Rh
dGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHJvdGVjdGVkOgogICAgIEJh
c2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqKTsK
ICAgICB2aXJ0dWFsIH5CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSgpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6TGF5b3V0UGFyYW1ldGVycyYsIGNvbnN0IERhdGVDb21wb25lbnRzJikgY29uc3QgPSAwOwor
ICAgIGJvb2wgc2hvdWxkSGF2ZVNlY29uZEZpZWxkKGNvbnN0IERhdGVDb21wb25lbnRzJikgY29u
c3Q7CiAKIHByaXZhdGU6CiAgICAgLy8gRGF0ZVRpbWVFZGl0RWxlbWVudDo6RWRpdENvbnRyb2xP
d25lciBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAK
aW5kZXggYjk5YTU4MGZiYzlkZjNkZDAzNzA3ZjI2NmQwMzY4Zjk0MzcyMDEzYi4uZGQyZjIwYTU5
YzkzOWNkMWZiZDUyODU2OWIwYzlhZjBlNGYxNjZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlVGltZUlucHV0VHlwZS5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCBTdHJpbmcgRGF0ZVRpbWVJ
bnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNT
dGF0ZSYgZAogCiB2b2lkIERhdGVUaW1lSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMo
RGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycywg
Y29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpIGNvbnN0CiB7Ci0gICAgaWYgKGRhdGUuc2Vjb25k
KCkgfHwgbGF5b3V0UGFyYW1ldGVycy5zaG91bGRIYXZlU2Vjb25kRmllbGQoKSkgeworICAgIGlm
IChzaG91bGRIYXZlU2Vjb25kRmllbGQoZGF0ZSkpIHsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVy
cy5kYXRlVGltZUZvcm1hdCA9IGxheW91dFBhcmFtZXRlcnMubG9jYWxpemVyLmRhdGVUaW1lRm9y
bWF0V2l0aFNlY29uZCgpOwogICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxiYWNrRGF0ZVRp
bWVGb3JtYXQgPSAiZGQvTU0veXl5eSBISDptbTpzcyI7CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCmluZGV4IGUyM2VmODE4
Mzc2MzYwZmJmNjY1ODU5MTFhMTQ4NjVmYjU4ZGJmNjYuLmZmYzQ1MmJlOTBkODAzMjVlNjg5YzNk
OTc4MzFkMjg2NmY4ZmFiMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVMb2NhbElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmNwcApAQCAtMTUxLDcgKzE1MSw3IEBAIFN0cmluZyBEYXRlVGltZUxvY2Fs
SW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRz
U3RhCiAKIHZvaWQgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJz
KERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMs
IGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKSBjb25zdAogewotICAgIGlmIChkYXRlLnNlY29u
ZCgpIHx8IGxheW91dFBhcmFtZXRlcnMuc2hvdWxkSGF2ZVNlY29uZEZpZWxkKCkpIHsKKyAgICBp
ZiAoc2hvdWxkSGF2ZVNlY29uZEZpZWxkKGRhdGUpKSB7CiAgICAgICAgIGxheW91dFBhcmFtZXRl
cnMuZGF0ZVRpbWVGb3JtYXQgPSBsYXlvdXRQYXJhbWV0ZXJzLmxvY2FsaXplci5kYXRlVGltZUZv
cm1hdFdpdGhTZWNvbmQoKTsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0RhdGVU
aW1lRm9ybWF0ID0gImRkL01NL3l5eXkgSEg6bW06c3MiOwogICAgIH0gZWxzZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCA0OGE2ODRjMzVlNmU1OWJlZjVhY2NhNmVj
MDc3NDE4ZDBhMDJkZWQ4Li43MTA5M2Y4Mjk2YTk2NTcyYzVhZjRhNTM0YTU3ZGZlYWIyYjAzYTM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTEyMCw2ICsxMjAsMTgg
QEAgYm9vbCBUaW1lSW5wdXRUeXBlOjppc1RpbWVGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK1N0cmluZyBUaW1lSW5wdXRUeXBlOjpsb2NhbGl6ZVZhbHVlKGNvbnN0IFN0cmlu
ZyYgcHJvcG9zZWRWYWx1ZSkgY29uc3QKK3sKKyAgICBEYXRlQ29tcG9uZW50cyBkYXRlOworICAg
IGlmICghcGFyc2VUb0RhdGVDb21wb25lbnRzKHByb3Bvc2VkVmFsdWUsICZkYXRlKSkKKyAgICAg
ICAgcmV0dXJuIHByb3Bvc2VkVmFsdWU7CisKKyAgICBMb2NhbGl6ZXI6OkZvcm1hdFR5cGUgZm9y
bWF0VHlwZSA9IHNob3VsZEhhdmVTZWNvbmRGaWVsZChkYXRlKSA/IExvY2FsaXplcjo6Rm9ybWF0
VHlwZU1lZGl1bSA6IExvY2FsaXplcjo6Rm9ybWF0VHlwZVNob3J0OworCisgICAgU3RyaW5nIGxv
Y2FsaXplZCA9IGVsZW1lbnQoKS0+bG9jYWxpemVyKCkuZm9ybWF0RGF0ZVRpbWUoZGF0ZSwgZm9y
bWF0VHlwZSk7CisgICAgcmV0dXJuIGxvY2FsaXplZC5pc0VtcHR5KCkgPyBwcm9wb3NlZFZhbHVl
IDogbG9jYWxpemVkOworfQorCiAjaWYgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkK
IAogU3RyaW5nIFRpbWVJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3Qg
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSkgY29uc3QKQEAgLTE0Miw3
ICsxNTQsNyBAQCBTdHJpbmcgVGltZUlucHV0VHlwZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0
ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiBkYXRlVAogCiB2b2lkIFRpbWVJbnB1dFR5cGU6
OnNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0
ZXJzJiBsYXlvdXRQYXJhbWV0ZXJzLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkgY29uc3QK
IHsKLSAgICBpZiAoZGF0ZS5zZWNvbmQoKSB8fCBsYXlvdXRQYXJhbWV0ZXJzLnNob3VsZEhhdmVT
ZWNvbmRGaWVsZCgpKSB7CisgICAgaWYgKHNob3VsZEhhdmVTZWNvbmRGaWVsZChkYXRlKSkgewog
ICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0ID0gbGF5b3V0UGFyYW1ldGVy
cy5sb2NhbGl6ZXIudGltZUZvcm1hdCgpOwogICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxi
YWNrRGF0ZVRpbWVGb3JtYXQgPSAiSEg6bW06c3MiOwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGltZUlucHV0VHlwZS5oCmluZGV4IGQ1YTk3OTJhN2E0MjBlOTY0MjQyZDIwOTY2NDRmZjdi
MzFmMDkzNjYuLjY5YTEyYmQyOGExZmQ3YjMxMGYxMDA0NzUxMzEyYWY4YTJiYWYzOTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBAIC01NSw2ICs1NSw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVybmFsKGNvbnN0IFVDaGFy
KiwgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlLCBEYXRl
Q29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1RpbWVGaWVs
ZCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplVmFsdWUoY29u
c3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAKICNpZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVf
RklFTERTX1VJKQogICAgIC8vIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
IGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVFZGl0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVk
aXRFbGVtZW50LmNwcAppbmRleCBjNDYyZTI2ZTQ3MGU3NWE0ZDNlNTgxMzcwODNhYzc3ZTQ3NmZi
OGUyLi4yMGM1MWY0YTA5YjY3Y2IxMjU4NTAyNmM4ZTE3ZWY4ZjA0OTI2MGY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApAQCAt
MTg5LDE1ICsxODksNiBAQCB2b2lkIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0TGl0ZXJhbChj
b25zdCBTdHJpbmcmIHRleHQpCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAot
Ci1ib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnM6OnNob3VsZEhhdmVT
ZWNvbmRGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICFzdGVwUmFuZ2UubWluaW11bSgpLnJl
bWFpbmRlcihzdGF0aWNfY2FzdDxpbnQ+KG1zUGVyTWludXRlKSkuaXNaZXJvKCkKLSAgICAgICAg
fHwgIXN0ZXBSYW5nZS5zdGVwKCkucmVtYWluZGVyKHN0YXRpY19jYXN0PGludD4obXNQZXJNaW51
dGUpKS5pc1plcm8oKTsKLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCiBE
YXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyOjp+RWRpdENvbnRyb2xPd25lcigp
CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVk
aXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVt
ZW50LmgKaW5kZXggYmVkYTI5ZGNjZmNhYzZiMjIyZDIwODYxNTE4ZjU2YmM4M2Q5OGQxNC4uZWNi
ZWFhZDg5ZWY0YWI1MTVmN2U3MDYwZDJhNjdlMDIzMDQ3YjMyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaApAQCAtNzUsOCArNzUsNiBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAsIHN0ZXBSYW5nZShzdGVwUmFuZ2UpCiAgICAgICAgIHsK
ICAgICAgICAgfQotCi0gICAgICAgIGJvb2wgc2hvdWxkSGF2ZVNlY29uZEZpZWxkKCkgY29uc3Q7
CiAgICAgfTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCosIEVkaXRDb250cm9sT3duZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTG9jYWxlSUNVLmNwcAppbmRleCA0OGZjMTUzMDdmNzY2MmY1YWRhMDBiNGM5NWI2
Njg2NDhjZmNjMDliLi44YWFhOGI5NTRmODBhZTIzNWIyMWU1MjAxZDQyZWViNmQ4MmVlYTc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCkBAIC0xODIsMTAg
KzE4MiwxMCBAQCBkb3VibGUgTG9jYWxlSUNVOjpwYXJzZURhdGVUaW1lKGNvbnN0IFN0cmluZyYg
aW5wdXQsIERhdGVDb21wb25lbnRzOjpUeXBlIHR5cGUpCiAgICAgcmV0dXJuIGRhdGU7CiB9CiAK
LVN0cmluZyBMb2NhbGVJQ1U6OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBk
YXRlQ29tcG9uZW50cykKK1N0cmluZyBMb2NhbGVJQ1U6OmZvcm1hdERhdGVUaW1lKGNvbnN0IERh
dGVDb21wb25lbnRzJiBkYXRlQ29tcG9uZW50cywgRm9ybWF0VHlwZSBmb3JtYXRUeXBlKQogewog
ICAgIGlmIChkYXRlQ29tcG9uZW50cy50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OkRhdGUpCi0g
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIExvY2FsaXplcjo6Zm9ybWF0
RGF0ZVRpbWUoZGF0ZUNvbXBvbmVudHMsIGZvcm1hdFR5cGUpOwogICAgIGlmICghaW5pdGlhbGl6
ZVNob3J0RGF0ZUZvcm1hdCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgZG91Ymxl
IGlucHV0ID0gZGF0ZUNvbXBvbmVudHMubWlsbGlzZWNvbmRzU2luY2VFcG9jaCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmgKaW5kZXggNjlmM2Q2NTJlYWE3MWYxYTlm
YmQ5MzBhZGM0YTJlNDFmMDViYzllZi4uYTEyNmY2YjExYmI5N2JjYTUwYTliYmI5YjVjYzI0YjI0
NDZiMjZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJ
Q1UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oCkBAIC01
Miw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEZvciBMb2NhbGl6ZWREYXRlCiAgICAgdmly
dHVhbCBkb3VibGUgcGFyc2VEYXRlVGltZShjb25zdCBTdHJpbmcmLCBEYXRlQ29tcG9uZW50czo6
VHlwZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29uc3Qg
RGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRl
VGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYsIEZvcm1hdFR5cGUgPSBGb3JtYXRUeXBlVW5zcGVj
aWZpZWQpIE9WRVJSSURFOwogI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCiAgICAgdmlydHVh
bCBTdHJpbmcgZGF0ZUZvcm1hdFRleHQoKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3BwCmluZGV4IDQ5MGQ4ZTkwZTMxY2U4NzY3N2IzZTdiMmVl
ZTY4YjRiYWZmOGI3YWUuLmYwM2M5N2Y2NmIzYTVhNjY1MjdkMWJlMDRiMzQwOTFkMDA5ZDUwYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5jcHAKQEAgLTQ4Nywx
MCArNDg3LDEwIEBAIHZvaWQgTG9jYWxlV2luOjphcHBlbmRGb3VyRGlnaXRzTnVtYmVyKGludCB2
YWx1ZSwgU3RyaW5nQnVpbGRlciYgYnVmZmVyKQogICAgIGJ1ZmZlci5hcHBlbmQoY29udmVydFRv
TG9jYWxpemVkTnVtYmVyKG51bWJlckJ1ZmZlci50b1N0cmluZygpKSk7CiB9CiAKLVN0cmluZyBM
b2NhbGVXaW46OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlQ29tcG9u
ZW50cykKK1N0cmluZyBMb2NhbGVXaW46OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25l
bnRzJiBkYXRlQ29tcG9uZW50cywgRm9ybWF0VHlwZSBmb3JtYXRUeXBlKQogewogICAgIGlmIChk
YXRlQ29tcG9uZW50cy50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OkRhdGUpCi0gICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIExvY2FsaXplcjo6Zm9ybWF0RGF0ZVRpbWUo
ZGF0ZUNvbXBvbmVudHMsIGZvcm1hdFR5cGUpOwogICAgIGVuc3VyZVNob3J0RGF0ZVRva2Vucygp
OwogICAgIHJldHVybiBmb3JtYXREYXRlKG1fc2hvcnREYXRlVG9rZW5zLCBtX2Jhc2VZZWFyLCBk
YXRlQ29tcG9uZW50cy5mdWxsWWVhcigpLCBkYXRlQ29tcG9uZW50cy5tb250aCgpLCBkYXRlQ29t
cG9uZW50cy5tb250aERheSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTG9jYWxlV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2Fs
ZVdpbi5oCmluZGV4IDVjZmIwNTJhNDJjMzFjOTVjM2Y3NmRkYjEyMDhlYzcwZDcxZWZiMjUuLjE1
MDcyMjE0ODVlYmI5MjAwZjM5NDRiZDk4ZDkxNzNkNjI2YzkzNGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIExvY2FsZVdpbiogY3VycmVudExvY2FsZSgpOwogICAgIH5Mb2NhbGVXaW4oKTsKICAg
ICB2aXJ0dWFsIGRvdWJsZSBwYXJzZURhdGVUaW1lKGNvbnN0IFN0cmluZyYsIERhdGVDb21wb25l
bnRzOjpUeXBlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRlVGltZShj
b25zdCBEYXRlQ29tcG9uZW50cyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1h
dERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiwgRm9ybWF0VHlwZSA9IEZvcm1hdFR5cGVV
bnNwZWNpZmllZCkgT1ZFUlJJREU7CiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKICAgICB2
aXJ0dWFsIFN0cmluZyBkYXRlRm9ybWF0VGV4dCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIG1vbnRoTGFiZWxzKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5jcHAKaW5kZXggNmM5NTdlNTUzOWVlMjAwN2FkNzJi
OGE0NDk0NzJmMWMyZmQ3ZjNjZi4uYTc5MDM3Y2YzZTg0OGU1Zjg3ZWNlZGJlZDQyYzI5MDRmN2Rm
ZDc3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmNwcApAQCAt
MzEsMTAgKzMxLDExOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxvY2FsaXpl
ci5oIgogCisjaW5jbHVkZSAiRGF0ZVRpbWVGb3JtYXQuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRGF0ZVRpbWVT
dHJpbmdCdWlsZGVyIDogcHJpdmF0ZSBEYXRlVGltZUZvcm1hdDo6VG9rZW5IYW5kbGVyIHsKKyAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRlVGltZVN0cmluZ0J1aWxkZXIpOworCitwdWJsaWM6
CisgICAgLy8gVGhlIGFyZ3VtZW50IG9iamVjdHMgbXVzdCBiZSBhbGl2ZSB1bnRpbCB0aGlzIG9i
amVjdCBkaWVzLgorICAgIERhdGVUaW1lU3RyaW5nQnVpbGRlcihMb2NhbGl6ZXImLCBjb25zdCBE
YXRlQ29tcG9uZW50cyYpOworCisgICAgYm9vbCBidWlsZChjb25zdCBTdHJpbmcmKTsKKyAgICBT
dHJpbmcgdG9TdHJpbmcoKTsKKworcHJpdmF0ZToKKyAgICAvLyBEYXRlVGltZUZvcm1hdDo6VG9r
ZW5IYW5kbGVyIGZ1bmN0aW9ucy4KKyAgICB2aXJ0dWFsIHZvaWQgdmlzaXRGaWVsZChEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlLCBpbnQpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9p
ZCB2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5nJikgT1ZFUlJJREUgRklOQUw7CisKKyAgICBTdHJp
bmcgemVyb1BhZFN0cmluZyhjb25zdCBTdHJpbmcmLCBzaXplX3Qgd2lkdGgpOworICAgIHZvaWQg
YXBwZW5kTnVtYmVyKGludCBudW1iZXIsIHNpemVfdCB3aWR0aCk7CisKKyAgICBTdHJpbmdCdWls
ZGVyIG1fYnVpbGRlcjsKKyAgICBMb2NhbGl6ZXImIG1fbG9jYWxpemVyOworICAgIGNvbnN0IERh
dGVDb21wb25lbnRzJiBtX2RhdGU7Cit9OworCitEYXRlVGltZVN0cmluZ0J1aWxkZXI6OkRhdGVU
aW1lU3RyaW5nQnVpbGRlcihMb2NhbGl6ZXImIGxvY2FsaXplciwgY29uc3QgRGF0ZUNvbXBvbmVu
dHMmIGRhdGUpCisgICAgOiBtX2xvY2FsaXplcihsb2NhbGl6ZXIpCisgICAgLCBtX2RhdGUoZGF0
ZSkKK3sKK30KKworYm9vbCBEYXRlVGltZVN0cmluZ0J1aWxkZXI6OmJ1aWxkKGNvbnN0IFN0cmlu
ZyYgZm9ybWF0U3RyaW5nKQoreworICAgIG1fYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoZm9ybWF0
U3RyaW5nLmxlbmd0aCgpKTsKKyAgICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OnBhcnNlKGZvcm1h
dFN0cmluZywgKnRoaXMpOworfQorCitTdHJpbmcgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjp6ZXJv
UGFkU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBzaXplX3Qgd2lkdGgpCit7CisgICAgaWYg
KHN0cmluZy5sZW5ndGgoKSA+PSB3aWR0aCkKKyAgICAgICAgcmV0dXJuIHN0cmluZzsKKyAgICBT
dHJpbmdCdWlsZGVyIHplcm9QYWRkZWRTdHJpbmdCdWlsZGVyOworICAgIHplcm9QYWRkZWRTdHJp
bmdCdWlsZGVyLnJlc2VydmVDYXBhY2l0eSh3aWR0aCk7CisgICAgZm9yIChzaXplX3QgaSA9IHN0
cmluZy5sZW5ndGgoKTsgaSA8IHdpZHRoOyArK2kpCisgICAgICAgIHplcm9QYWRkZWRTdHJpbmdC
dWlsZGVyLmFwcGVuZCgiMCIpOworICAgIHplcm9QYWRkZWRTdHJpbmdCdWlsZGVyLmFwcGVuZChz
dHJpbmcpOworICAgIHJldHVybiB6ZXJvUGFkZGVkU3RyaW5nQnVpbGRlci50b1N0cmluZygpOwor
fQorCit2b2lkIERhdGVUaW1lU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGludCBudW1iZXIs
IHNpemVfdCB3aWR0aCkKK3sKKyAgICBTdHJpbmcgemVyb1BhZGRlZE51bWJlclN0cmluZyA9IHpl
cm9QYWRTdHJpbmcoU3RyaW5nOjpudW1iZXIobnVtYmVyKSwgd2lkdGgpOworICAgIG1fYnVpbGRl
ci5hcHBlbmQobV9sb2NhbGl6ZXIuY29udmVydFRvTG9jYWxpemVkTnVtYmVyKHplcm9QYWRkZWRO
dW1iZXJTdHJpbmcpKTsKK30KKwordm9pZCBEYXRlVGltZVN0cmluZ0J1aWxkZXI6OnZpc2l0Rmll
bGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBmaWVsZFR5cGUsIGludCBudW1iZXJPZlBhdHRl
cm5DaGFyYWN0ZXJzKQoreworICAgIHN3aXRjaCAoZmllbGRUeXBlKSB7CisgICAgY2FzZSBEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlUGVyaW9kOgorICAgICAgICBtX2J1aWxkZXIuYXBwZW5kKG1f
bG9jYWxpemVyLnRpbWVBTVBNTGFiZWxzKClbKG1fZGF0ZS5ob3VyKCkgPj0gMTIgPyAxIDogMCld
KTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhv
dXIxMjogeworICAgICAgICBpbnQgaG91cjEyID0gbV9kYXRlLmhvdXIoKSAlIDEyOworICAgICAg
ICBpZiAoIWhvdXIxMikKKyAgICAgICAgICAgIGhvdXIxMiA9IDEyOworICAgICAgICBhcHBlbmRO
dW1iZXIoaG91cjEyLCBudW1iZXJPZlBhdHRlcm5DaGFyYWN0ZXJzKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMjM6CisgICAg
ICAgIGFwcGVuZE51bWJlcihtX2RhdGUuaG91cigpLCBudW1iZXJPZlBhdHRlcm5DaGFyYWN0ZXJz
KTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhv
dXIxMToKKyAgICAgICAgYXBwZW5kTnVtYmVyKG1fZGF0ZS5ob3VyKCkgJSAxMiwgbnVtYmVyT2ZQ
YXR0ZXJuQ2hhcmFjdGVycyk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVIb3VyMjQ6IHsKKyAgICAgICAgaW50IGhvdXIyNCA9IG1fZGF0ZS5ob3Vy
KCk7CisgICAgICAgIGlmICghaG91cjI0KQorICAgICAgICAgICAgaG91cjI0ID0gMjQ7CisgICAg
ICAgIGFwcGVuZE51bWJlcihob3VyMjQsIG51bWJlck9mUGF0dGVybkNoYXJhY3RlcnMpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1p
bnV0ZToKKyAgICAgICAgYXBwZW5kTnVtYmVyKG1fZGF0ZS5taW51dGUoKSwgbnVtYmVyT2ZQYXR0
ZXJuQ2hhcmFjdGVycyk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGVTZWNvbmQ6CisgICAgICAgIGlmICghbV9kYXRlLm1pbGxpc2Vjb25kKCkpCisg
ICAgICAgICAgICBhcHBlbmROdW1iZXIobV9kYXRlLnNlY29uZCgpLCBudW1iZXJPZlBhdHRlcm5D
aGFyYWN0ZXJzKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBmbG9hdCBzZWNvbmQgPSBt
X2RhdGUuc2Vjb25kKCkgKyBtX2RhdGUubWlsbGlzZWNvbmQoKSAvIDEwMDAuMDsKKyAgICAgICAg
ICAgIFN0cmluZyB6ZXJvUGFkZGVkU2Vjb25kU3RyaW5nID0gemVyb1BhZFN0cmluZyhTdHJpbmc6
OmZvcm1hdCgiJS4wM2YiLCBzZWNvbmQpLCBudW1iZXJPZlBhdHRlcm5DaGFyYWN0ZXJzICsgNCk7
CisgICAgICAgICAgICBtX2J1aWxkZXIuYXBwZW5kKG1fbG9jYWxpemVyLmNvbnZlcnRUb0xvY2Fs
aXplZE51bWJlcih6ZXJvUGFkZGVkU2Vjb25kU3RyaW5nKSk7CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3ZvaWQg
RGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjp2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5nJiB0ZXh0KQor
eworICAgIEFTU0VSVCh0ZXh0Lmxlbmd0aCgpKTsKKyAgICBtX2J1aWxkZXIuYXBwZW5kKHRleHQp
OworfQorCitTdHJpbmcgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjp0b1N0cmluZygpCit7CisgICAg
cmV0dXJuIG1fYnVpbGRlci50b1N0cmluZygpOworfQorCiBMb2NhbGl6ZXI6On5Mb2NhbGl6ZXIo
KQogewogfQpAQCAtMjM4LDQgKzM0NiwxMyBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxp
emVyOjp0aW1lQU1QTUxhYmVscygpCiB9CiAjZW5kaWYKIAorU3RyaW5nIExvY2FsaXplcjo6Zm9y
bWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUsIEZvcm1hdFR5cGUgZm9ybWF0
VHlwZSkKK3sKKyAgICBpZiAoZGF0ZS50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OlRpbWUpCisg
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBEYXRlVGltZVN0cmluZ0J1aWxkZXIgYnVpbGRl
cigqdGhpcywgZGF0ZSk7CisgICAgYnVpbGRlci5idWlsZChmb3JtYXRUeXBlID09IEZvcm1hdFR5
cGVTaG9ydCA/IHNob3J0VGltZUZvcm1hdCgpIDogdGltZUZvcm1hdCgpKTsKKyAgICByZXR1cm4g
YnVpbGRlci50b1N0cmluZygpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0xvY2FsaXplci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9M
b2NhbGl6ZXIuaAppbmRleCA5ZTE0ZDgyNDQwNDkwYjQ4ZjJmNGNlZmYzNGE2NDVmYTg3NTMxOTYz
Li43NzU5M2U5M2JiMDgwNWM2ZDI2YmViYWVjNGQzMTJjZjc4Y2JhYWJmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmgKQEAgLTEwOSwxMCArMTA5LDEyIEBAIHB1Ymxp
YzoKICAgICAvLyAwMDowMDowMC4wMDAgVVRDLgogICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlRGF0
ZVRpbWUoY29uc3QgU3RyaW5nJiwgRGF0ZUNvbXBvbmVudHM6OlR5cGUpID0gMDsKIAorICAgIGVu
dW0gRm9ybWF0VHlwZSB7IEZvcm1hdFR5cGVVbnNwZWNpZmllZCwgRm9ybWF0VHlwZVNob3J0LCBG
b3JtYXRUeXBlTWVkaXVtIH07CisKICAgICAvLyBTZXJpYWxpemVzIHRoZSBzcGVjaWZpZWQgZGF0
ZSBpbnRvIGEgZm9ybWF0dGVkIGRhdGUgc3RyaW5nIHRvCiAgICAgLy8gZGlzcGxheSB0byB0aGUg
dXNlci4gSWYgYW4gaW1wbGVtZW50YXRpb24gZG9lc24ndCBzdXBwb3J0CiAgICAgLy8gbG9jYWxp
emVkIGRhdGVzIHRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGFuIGVtcHR5IHN0cmluZy4KLSAg
ICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYpID0g
MDsKKyAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50
cyYsIEZvcm1hdFR5cGUgPSBGb3JtYXRUeXBlVW5zcGVjaWZpZWQpOwogCiAgICAgdmlydHVhbCB+
TG9jYWxpemVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
bWFjL0xvY2FsZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxl
TWFjLmgKaW5kZXggMmQ5ZThhZGU2OWEyZjQxNGY4YjA2OTFhNWEzODdhMzVlOTBkMGEzNS4uZWQ5
ZjcxNjIwOGM0NDA4YjNjYmI0ZDBiMzczY2VmMjQ3NTBhMmRiZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBMb2NhbGVNYWMqIGN1cnJlbnRMb2NhbGUoKTsKICAgICB+TG9jYWxlTWFj
KCk7CiAgICAgdmlydHVhbCBkb3VibGUgcGFyc2VEYXRlVGltZShjb25zdCBTdHJpbmcmLCBEYXRl
Q29tcG9uZW50czo6VHlwZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0
ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmlu
ZyBmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYsIEZvcm1hdFR5cGUgPSBGb3Jt
YXRUeXBlVW5zcGVjaWZpZWQpIE9WRVJSSURFOwogCiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tF
UikKICAgICB2aXJ0dWFsIFN0cmluZyBkYXRlRm9ybWF0VGV4dCgpIE9WRVJSSURFOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCmluZGV4IGFlOWY2NzVi
NzhlNjBiOWRiY2U0N2QyMzAxYzJiNzg5NDc0NDRmYjkuLjU3ZTdiOGUzMzFjN2ExOTU2MzMxYjVl
ZjIxNTIwYWI2MDI5NGE5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvbWFjL0xvY2FsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21h
Yy9Mb2NhbGVNYWMubW0KQEAgLTEyOCwxMCArMTI4LDEwIEBAIGRvdWJsZSBMb2NhbGVNYWM6OnBh
cnNlRGF0ZVRpbWUoY29uc3QgU3RyaW5nJiBpbnB1dCwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgdHlw
ZSkKICAgICByZXR1cm4gW2RhdGUgdGltZUludGVydmFsU2luY2UxOTcwXSAqIG1zUGVyU2Vjb25k
OwogfQogCi1TdHJpbmcgTG9jYWxlTWFjOjpmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9u
ZW50cyYgZGF0ZUNvbXBvbmVudHMpCitTdHJpbmcgTG9jYWxlTWFjOjpmb3JtYXREYXRlVGltZShj
b25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUNvbXBvbmVudHMsIEZvcm1hdFR5cGUgZm9ybWF0VHlw
ZSkKIHsKICAgICBpZiAoZGF0ZUNvbXBvbmVudHMudHlwZSgpICE9IERhdGVDb21wb25lbnRzOjpE
YXRlKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIHJldHVybiBMb2NhbGl6ZXI6
OmZvcm1hdERhdGVUaW1lKGRhdGVDb21wb25lbnRzLCBmb3JtYXRUeXBlKTsKICAgICBSZXRhaW5Q
dHI8TlNEYXRlRm9ybWF0dGVyPiBmb3JtYXR0ZXIoQWRvcHROUywgY3JlYXRlU2hvcnREYXRlRm9y
bWF0dGVyKCkpOwogICAgIE5TVGltZUludGVydmFsIGludGVydmFsID0gZGF0ZUNvbXBvbmVudHMu
bWlsbGlzZWNvbmRzU2luY2VFcG9jaCgpIC8gbXNQZXJTZWNvbmQ7CiAgICAgcmV0dXJuIFN0cmlu
ZyhbZm9ybWF0dGVyLmdldCgpIHN0cmluZ0Zyb21EYXRlOltOU0RhdGUgZGF0ZVdpdGhUaW1lSW50
ZXJ2YWxTaW5jZTE5NzA6aW50ZXJ2YWxdXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0xvY2FsZU1hY1Rlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9Mb2NhbGVNYWNUZXN0LmNwcAppbmRleCBmNWYyNjhkYjM1YjA4MzExNmZiYzBjNjdlNzZi
NjIyNDRkMzhiMmEzLi42ZjBmOTU3ZTJjMGQwNGU3NDA1ZjgzMDc1Y2I0YjFkM2RmYzYwNDUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2FsZU1hY1Rlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlTWFjVGVzdC5jcHAKQEAg
LTU3LDYgKzU3LDEzIEBAIHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJuIGRhdGU7CiAgICAgfQog
CisgICAgRGF0ZUNvbXBvbmVudHMgdGltZUNvbXBvbmVudHMoaW50IGhvdXIsIGludCBtaW51dGUs
IGludCBzZWNvbmQsIGludCBtaWxsaXNlY29uZCkKKyAgICB7CisgICAgICAgIERhdGVDb21wb25l
bnRzIGRhdGU7CisgICAgICAgIGRhdGUuc2V0TWlsbGlzZWNvbmRzU2luY2VNaWRuaWdodChob3Vy
ICogbXNQZXJIb3VyICsgbWludXRlICogbXNQZXJNaW51dGUgKyBzZWNvbmQgKiBtc1BlclNlY29u
ZCArIG1pbGxpc2Vjb25kKTsKKyAgICAgICAgcmV0dXJuIGRhdGU7CisgICAgfQorCiAgICAgZG91
YmxlIG1zRm9yRGF0ZShpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5KQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGRhdGVUb0RheXNGcm9tMTk3MCh5ZWFyLCBtb250aCwgZGF5KSAqIG1zUGVyRGF5
OwpAQCAtNjgsNiArNzUsMTIgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1cm4gbG9jYWxlLT5m
b3JtYXREYXRlVGltZShkYXRlQ29tcG9uZW50cyh5ZWFyLCBtb250aCwgZGF5KSk7CiAgICAgfQog
CisgICAgU3RyaW5nIGZvcm1hdFRpbWUoY29uc3QgU3RyaW5nJiBsb2NhbGVTdHJpbmcsIGludCBo
b3VyLCBpbnQgbWludXRlLCBpbnQgc2Vjb25kLCBpbnQgbWlsbGlzZWNvbmQsIGJvb2wgdXNlU2hv
cnRGb3JtYXQpCisgICAgeworICAgICAgICBPd25QdHI8TG9jYWxlTWFjPiBsb2NhbGUgPSBMb2Nh
bGVNYWM6OmNyZWF0ZShsb2NhbGVTdHJpbmcpOworICAgICAgICByZXR1cm4gbG9jYWxlLT5mb3Jt
YXREYXRlVGltZSh0aW1lQ29tcG9uZW50cyhob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNv
bmQpLCAodXNlU2hvcnRGb3JtYXQgPyBMb2NhbGl6ZXI6OkZvcm1hdFR5cGVTaG9ydCA6IExvY2Fs
aXplcjo6Rm9ybWF0VHlwZU1lZGl1bSkpOworICAgIH0KKwogICAgIGRvdWJsZSBwYXJzZURhdGUo
Y29uc3QgU3RyaW5nJiBsb2NhbGVTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGF0ZVN0cmluZykKICAg
ICB7CiAgICAgICAgIE93blB0cjxMb2NhbGVNYWM+IGxvY2FsZSA9IExvY2FsZU1hYzo6Y3JlYXRl
KGxvY2FsZVN0cmluZyk7CkBAIC0xMzQsNiArMTQ3LDI3IEBAIFRFU1RfRihMb2NhbGVNYWNUZXN0
LCBmb3JtYXREYXRlKQogICAgIEVYUEVDVF9TVFJFUSgiMDUvMDQvMjciLCBmb3JtYXREYXRlKCJq
YV9KUCIsIDIwMDUsIEFwcmlsLCAyNykudXRmOCgpLmRhdGEoKSk7CiB9CiAKK1RFU1RfRihMb2Nh
bGVNYWNUZXN0LCBmb3JtYXRUaW1lKQoreworICAgIEVYUEVDVF9TVFJFUSgiMToyMyBQTSIsIGZv
cm1hdFRpbWUoImVuX1VTIiwgMTMsIDIzLCAwMCwgMDAwLCB0cnVlKS51dGY4KCkuZGF0YSgpKTsK
KyAgICBFWFBFQ1RfU1RSRVEoIjEzOjIzIiwgZm9ybWF0VGltZSgiZnJfRlIiLCAxMywgMjMsIDAw
LCAwMDAsIHRydWUpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiMTM6MjMiLCBm
b3JtYXRUaW1lKCJqYV9KUCIsIDEzLCAyMywgMDAsIDAwMCwgdHJ1ZSkudXRmOCgpLmRhdGEoKSk7
CisgICAgRVhQRUNUX1NUUkVRKCJceEQ5XHhBMTpceEQ5XHhBMlx4RDlceEEzIFx4RDlceDg1Iiwg
Zm9ybWF0VGltZSgiYXIiLCAxMywgMjMsIDAwLCAwMDAsIHRydWUpLnV0ZjgoKS5kYXRhKCkpOwor
ICAgIEVYUEVDVF9TVFJFUSgiXHhEQlx4QjFceERCXHhCMzpceERCXHhCMlx4REJceEIzIiwgZm9y
bWF0VGltZSgiZmEiLCAxMywgMjMsIDAwLCAwMDAsIHRydWUpLnV0ZjgoKS5kYXRhKCkpOworCisg
ICAgRVhQRUNUX1NUUkVRKCIxMjowMCBBTSIsIGZvcm1hdFRpbWUoImVuX1VTIiwgMDAsIDAwLCAw
MCwgMDAwLCB0cnVlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIjAwOjAwIiwg
Zm9ybWF0VGltZSgiZnJfRlIiLCAwMCwgMDAsIDAwLCAwMDAsIHRydWUpLnV0ZjgoKS5kYXRhKCkp
OworICAgIEVYUEVDVF9TVFJFUSgiMDowMCIsIGZvcm1hdFRpbWUoImphX0pQIiwgMDAsIDAwLCAw
MCwgMDAwLCB0cnVlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlx4RDlceEEx
XHhEOVx4QTI6XHhEOVx4QTBceEQ5XHhBMCBceEQ4XHhCNSIsIGZvcm1hdFRpbWUoImFyIiwgMDAs
IDAwLCAwMCwgMDAwLCB0cnVlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlx4
REJceEIwOlx4REJceEIwXHhEQlx4QjAiLCBmb3JtYXRUaW1lKCJmYSIsIDAwLCAwMCwgMDAsIDAw
MCwgdHJ1ZSkudXRmOCgpLmRhdGEoKSk7CisKKyAgICBFWFBFQ1RfU1RSRVEoIjc6MDc6MDcuMDA3
IEFNIiwgZm9ybWF0VGltZSgiZW5fVVMiLCAwNywgMDcsIDA3LCAwMDcsIGZhbHNlKS51dGY4KCku
ZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIjA3OjA3OjA3LDAwNyIsIGZvcm1hdFRpbWUoImZy
X0ZSIiwgMDcsIDA3LCAwNywgMDA3LCBmYWxzZSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNU
X1NUUkVRKCI3OjA3OjA3LjAwNyIsIGZvcm1hdFRpbWUoImphX0pQIiwgMDcsIDA3LCAwNywgMDA3
LCBmYWxzZSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJceEQ5XHhBNzpceEQ5
XHhBMFx4RDlceEE3Olx4RDlceEEwXHhEOVx4QTdceEQ5XHhBQlx4RDlceEEwXHhEOVx4QTBceEQ5
XHhBNyBceEQ4XHhCNSIsIGZvcm1hdFRpbWUoImFyIiwgMDcsIDA3LCAwNywgMDA3LCBmYWxzZSku
dXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJceERCXHhCNzpceERCXHhCMFx4REJc
eEI3Olx4REJceEIwXHhEQlx4QjdceEQ5XHhBQlx4REJceEIwXHhEQlx4QjBceERCXHhCNyIsIGZv
cm1hdFRpbWUoImZhIiwgMDcsIDA3LCAwNywgMDA3LCBmYWxzZSkudXRmOCgpLmRhdGEoKSk7Cit9
CisKIFRFU1RfRihMb2NhbGVNYWNUZXN0LCBwYXJzZURhdGUpCiB7CiAgICAgRVhQRUNUX0VRKG1z
Rm9yRGF0ZSgyMDA1LCBBcHJpbCwgMjcpLCBwYXJzZURhdGUoImVuX1VTIiwgIkFwcmlsIDI3LCAy
MDA1IikpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166862</attachid>
            <date>2012-10-03 05:16:09 -0700</date>
            <delta_ts>2012-10-03 05:23:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98237-20121003211521.patch</filename>
            <type>text/plain</type>
            <size>24879</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZlY2M2YzE1NmYzMGY5
ZDM1ZjViNGFhZDQ5OWIwZDE4NmJmZWU5OS4uN2I5YWRmZjY5OTIxOTQ0OWE5OWNjOTZlMjNiZjll
ZWQzNTMwMDQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTEwLTAzICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCBsb2Nh
bGl6ZVZhbHVlIGZvciBUaW1lSW5wdXRUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05ODIzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlIHdhbnQgdG8gbG9jYWxpemUgdGltZSB2YWx1ZXMgZm9yIHRo
ZSBzdWdnZXN0aW9uIHBpY2tlci4KKyAgICAgICAgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyIHBhcnNl
cyBhIGZvcm1hdCBhbmQgY3JlYXRlcyBhIGZvcm1hdHRlZCBzdHJpbmcuCisKKyAgICAgICAgQWRk
ZWQgY2hyb21pdW0gdW5pdCB0ZXN0IExvY2FsZU1hY1Rlc3QuZm9ybWF0VGltZQorCisgICAgICAg
ICogaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2hv
dWxkSGF2ZVNlY29uZEZpZWxkKTogTW92ZWQgZnJvbSBMYXlvdXRQYXJhbWV0ZXJzIGJlY2F1c2Ug
d2Ugd2FudCB0byB1c2UgaXQgaW5zaWRlIGxvY2FsaXplVmFsdWUuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBodG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
Lmg6CisgICAgICAgIChCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSk6Cisg
ICAgICAgICogaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBodG1s
L0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVM
b2NhbElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBodG1sL1Rp
bWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6bG9jYWxp
emVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1
dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyk6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRU
eXBlLmg6CisgICAgICAgIChUaW1lSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9E
YXRlVGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnM6OkxheW91dFBhcmFtZXRlcnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsZUlDVTo6Zm9ybWF0RGF0ZVRpbWUpOiBDYWxscyBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1l
IGlmIHRoZSBkYXRlIGNvbXBvbmVudCBpcyBub3QgYSBkYXRlLgorICAgICAgICAqIHBsYXRmb3Jt
L3RleHQvTG9jYWxlSUNVLmg6CisgICAgICAgIChMb2NhbGVJQ1UpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvTG9jYWxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZVdpbjo6Zm9y
bWF0RGF0ZVRpbWUpOiBDYWxscyBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lIGlmIHRoZSBkYXRl
IGNvbXBvbmVudCBpcyBub3QgYSBkYXRlLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxl
V2luLmg6CisgICAgICAgIChMb2NhbGVXaW4pOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9j
YWxpemVyLmNwcDoKKyAgICAgICAgKERhdGVUaW1lU3RyaW5nQnVpbGRlcik6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3RyaW5nQnVpbGRlcjo6RGF0ZVRp
bWVTdHJpbmdCdWlsZGVyKTogVGFrZXMgYQorICAgICAgICBMb2NhbGl6ZXIgcG9pbnRlci4gVGhp
cyBpcyB1c2VkIGluc2lkZSB0aGUgTG9jYWxpemVyIHNvIHRoZSBMb2NhbGl6ZXIKKyAgICAgICAg
d2lsbCBvdXQgbGl2ZSB0aGUgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjpidWlsZCk6IEJ1aWxkcyBhIGxvY2FsaXplZCBzdHJp
bmcgZm9yIHRoZSBnaXZlbiBmb3JtYXQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN0cmlu
Z0J1aWxkZXI6Onplcm9QYWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTdHJp
bmdCdWlsZGVyOjphcHBlbmROdW1iZXIpOiBBcHBlbmRzIGEgbnVtYmVyIHdpdGggbGVmdCB6ZXJv
IHBhZGRpbmcgdG8gbWF0Y2ggd2lkdGguCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN0cmlu
Z0J1aWxkZXI6OnZpc2l0RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTdHJpbmdC
dWlsZGVyOjp2aXNpdExpdGVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTdHJpbmdC
dWlsZGVyOjp0b1N0cmluZyk6IFJldHVybnMgdGhlIGxvY2FsaXplZCBzdHJpbmcuCisgICAgICAg
IChXZWJDb3JlOjpMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L0xvY2FsaXplci5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1h
Yy5oOgorICAgICAgICAoTG9jYWxlTWFjKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L21hYy9M
b2NhbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVNYWM6OmZvcm1hdERhdGVUaW1l
KTogQ2FsbHMgTG9jYWxpemVyOjpmb3JtYXREYXRlVGltZSBpZiB0aGUgZGF0ZSBjb21wb25lbnQg
aXMgbm90IGEgZGF0ZS4KKwogMjAxMi0xMC0wMyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgSW50cm9kdWNlIERhdGVDb21wb25lbnRzOjptaW5pbXVtWWVhciBh
bmQgbWF4aW11bVllYXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZTJmNzZkNTg0Nzgy
MzdiMzc3ZjgwZDVkZmM0Y2JlNGNiNWIyYTYyNy4uNzBmMWY5Y2RiYzc5ODEzZjhkZjdkNWZjMjcy
MDc5YmQ5YzlhMDBlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxMi0xMC0wMyAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAg
ICAgICBJbXBsZW1lbnQgbG9jYWxpemVWYWx1ZSBmb3IgVGltZUlucHV0VHlwZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgyMzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0xvY2FsZU1hY1Rl
c3QuY3BwOgorICAgICAgICAoTG9jYWxlTWFjVGVzdDo6dGltZUNvbXBvbmVudHMpOgorICAgICAg
ICAoTG9jYWxlTWFjVGVzdCk6CisgICAgICAgIChMb2NhbGVNYWNUZXN0Ojpmb3JtYXRUaW1lKTog
VGVzdHMgZm9ybWF0RGF0ZVRpbWUoKSBmb3IgdGltZS4KKyAgICAgICAgKFRFU1RfRik6CisKIDIw
MTItMTAtMDIgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUHJvdmlkZSBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIGZvciBIYXNoQ291bnRlZFNldApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0Rh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBjNzI1YjE5ODVkNzUzZDVhMWE2YWU5YjM4M2I0
M2UxZDcyZDk5MjgyLi43NGQ5ZTQ4YjM1YTcxMTdjMjNmM2UxNzBjMWI4ZWNjNDU4MzRlNzRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRU
aW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZp
ZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUg
IktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZXIuaCIKICNpbmNsdWRlICJTaGFk
b3dSb290LmgiCisjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMjM4LDYgKzIzOSwxNCBAQCB2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRU
aW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5lclRleHRWYWx1ZSgpCiAgICAgICAgIG1fZGF0ZVRpbWVF
ZGl0RWxlbWVudC0+c2V0RW1wdHlWYWx1ZShsYXlvdXRQYXJhbWV0ZXJzLCBkYXRlKTsKIH0KIAor
Ym9vbCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2hvdWxkSGF2ZVNl
Y29uZEZpZWxkKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKSBjb25zdAoreworICAgIFN0ZXBS
YW5nZSBzdGVwUmFuZ2UgPSBjcmVhdGVTdGVwUmFuZ2UoQW55SXNEZWZhdWx0U3RlcCk7CisgICAg
cmV0dXJuIGRhdGUuc2Vjb25kKCkKKyAgICAgICAgfHwgIXN0ZXBSYW5nZS5taW5pbXVtKCkucmVt
YWluZGVyKHN0YXRpY19jYXN0PGludD4obXNQZXJNaW51dGUpKS5pc1plcm8oKQorICAgICAgICB8
fCAhc3RlcFJhbmdlLnN0ZXAoKS5yZW1haW5kZXIoc3RhdGljX2Nhc3Q8aW50Pihtc1Blck1pbnV0
ZSkpLmlzWmVybygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRl
QW5kVGltZUlucHV0VHlwZS5oCmluZGV4IGY2YWIxNTk2MjA0ZWY1ZGQ0MGRlNTQ0ZWM3MzJiOGQx
MWQ1YTA1ZDQuLjVhOGU2ZTI4NDE5OTVkYmNkOWFjOGY1ZGU0ZjJlZGQ4ZjRkNDlhOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0Rh
dGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHJvdGVjdGVkOgogICAgIEJh
c2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqKTsK
ICAgICB2aXJ0dWFsIH5CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSgpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6TGF5b3V0UGFyYW1ldGVycyYsIGNvbnN0IERhdGVDb21wb25lbnRzJikgY29uc3QgPSAwOwor
ICAgIGJvb2wgc2hvdWxkSGF2ZVNlY29uZEZpZWxkKGNvbnN0IERhdGVDb21wb25lbnRzJikgY29u
c3Q7CiAKIHByaXZhdGU6CiAgICAgLy8gRGF0ZVRpbWVFZGl0RWxlbWVudDo6RWRpdENvbnRyb2xP
d25lciBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAK
aW5kZXggYjk5YTU4MGZiYzlkZjNkZDAzNzA3ZjI2NmQwMzY4Zjk0MzcyMDEzYi4uZGQyZjIwYTU5
YzkzOWNkMWZiZDUyODU2OWIwYzlhZjBlNGYxNjZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlVGltZUlucHV0VHlwZS5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCBTdHJpbmcgRGF0ZVRpbWVJ
bnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNT
dGF0ZSYgZAogCiB2b2lkIERhdGVUaW1lSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMo
RGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycywg
Y29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpIGNvbnN0CiB7Ci0gICAgaWYgKGRhdGUuc2Vjb25k
KCkgfHwgbGF5b3V0UGFyYW1ldGVycy5zaG91bGRIYXZlU2Vjb25kRmllbGQoKSkgeworICAgIGlm
IChzaG91bGRIYXZlU2Vjb25kRmllbGQoZGF0ZSkpIHsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVy
cy5kYXRlVGltZUZvcm1hdCA9IGxheW91dFBhcmFtZXRlcnMubG9jYWxpemVyLmRhdGVUaW1lRm9y
bWF0V2l0aFNlY29uZCgpOwogICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxiYWNrRGF0ZVRp
bWVGb3JtYXQgPSAiZGQvTU0veXl5eSBISDptbTpzcyI7CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCmluZGV4IGUyM2VmODE4
Mzc2MzYwZmJmNjY1ODU5MTFhMTQ4NjVmYjU4ZGJmNjYuLmZmYzQ1MmJlOTBkODAzMjVlNjg5YzNk
OTc4MzFkMjg2NmY4ZmFiMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVMb2NhbElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmNwcApAQCAtMTUxLDcgKzE1MSw3IEBAIFN0cmluZyBEYXRlVGltZUxvY2Fs
SW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRz
U3RhCiAKIHZvaWQgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJz
KERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMs
IGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKSBjb25zdAogewotICAgIGlmIChkYXRlLnNlY29u
ZCgpIHx8IGxheW91dFBhcmFtZXRlcnMuc2hvdWxkSGF2ZVNlY29uZEZpZWxkKCkpIHsKKyAgICBp
ZiAoc2hvdWxkSGF2ZVNlY29uZEZpZWxkKGRhdGUpKSB7CiAgICAgICAgIGxheW91dFBhcmFtZXRl
cnMuZGF0ZVRpbWVGb3JtYXQgPSBsYXlvdXRQYXJhbWV0ZXJzLmxvY2FsaXplci5kYXRlVGltZUZv
cm1hdFdpdGhTZWNvbmQoKTsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0RhdGVU
aW1lRm9ybWF0ID0gImRkL01NL3l5eXkgSEg6bW06c3MiOwogICAgIH0gZWxzZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCA0OGE2ODRjMzVlNmU1OWJlZjVhY2NhNmVj
MDc3NDE4ZDBhMDJkZWQ4Li43MTA5M2Y4Mjk2YTk2NTcyYzVhZjRhNTM0YTU3ZGZlYWIyYjAzYTM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTEyMCw2ICsxMjAsMTgg
QEAgYm9vbCBUaW1lSW5wdXRUeXBlOjppc1RpbWVGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK1N0cmluZyBUaW1lSW5wdXRUeXBlOjpsb2NhbGl6ZVZhbHVlKGNvbnN0IFN0cmlu
ZyYgcHJvcG9zZWRWYWx1ZSkgY29uc3QKK3sKKyAgICBEYXRlQ29tcG9uZW50cyBkYXRlOworICAg
IGlmICghcGFyc2VUb0RhdGVDb21wb25lbnRzKHByb3Bvc2VkVmFsdWUsICZkYXRlKSkKKyAgICAg
ICAgcmV0dXJuIHByb3Bvc2VkVmFsdWU7CisKKyAgICBMb2NhbGl6ZXI6OkZvcm1hdFR5cGUgZm9y
bWF0VHlwZSA9IHNob3VsZEhhdmVTZWNvbmRGaWVsZChkYXRlKSA/IExvY2FsaXplcjo6Rm9ybWF0
VHlwZU1lZGl1bSA6IExvY2FsaXplcjo6Rm9ybWF0VHlwZVNob3J0OworCisgICAgU3RyaW5nIGxv
Y2FsaXplZCA9IGVsZW1lbnQoKS0+bG9jYWxpemVyKCkuZm9ybWF0RGF0ZVRpbWUoZGF0ZSwgZm9y
bWF0VHlwZSk7CisgICAgcmV0dXJuIGxvY2FsaXplZC5pc0VtcHR5KCkgPyBwcm9wb3NlZFZhbHVl
IDogbG9jYWxpemVkOworfQorCiAjaWYgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkK
IAogU3RyaW5nIFRpbWVJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3Qg
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSkgY29uc3QKQEAgLTE0Miw3
ICsxNTQsNyBAQCBTdHJpbmcgVGltZUlucHV0VHlwZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0
ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiBkYXRlVAogCiB2b2lkIFRpbWVJbnB1dFR5cGU6
OnNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0
ZXJzJiBsYXlvdXRQYXJhbWV0ZXJzLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkgY29uc3QK
IHsKLSAgICBpZiAoZGF0ZS5zZWNvbmQoKSB8fCBsYXlvdXRQYXJhbWV0ZXJzLnNob3VsZEhhdmVT
ZWNvbmRGaWVsZCgpKSB7CisgICAgaWYgKHNob3VsZEhhdmVTZWNvbmRGaWVsZChkYXRlKSkgewog
ICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0ID0gbGF5b3V0UGFyYW1ldGVy
cy5sb2NhbGl6ZXIudGltZUZvcm1hdCgpOwogICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxi
YWNrRGF0ZVRpbWVGb3JtYXQgPSAiSEg6bW06c3MiOwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGltZUlucHV0VHlwZS5oCmluZGV4IGQ1YTk3OTJhN2E0MjBlOTY0MjQyZDIwOTY2NDRmZjdi
MzFmMDkzNjYuLjY5YTEyYmQyOGExZmQ3YjMxMGYxMDA0NzUxMzEyYWY4YTJiYWYzOTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBAIC01NSw2ICs1NSw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVybmFsKGNvbnN0IFVDaGFy
KiwgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlLCBEYXRl
Q29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1RpbWVGaWVs
ZCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplVmFsdWUoY29u
c3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAKICNpZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVf
RklFTERTX1VJKQogICAgIC8vIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
IGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVFZGl0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVk
aXRFbGVtZW50LmNwcAppbmRleCBjNDYyZTI2ZTQ3MGU3NWE0ZDNlNTgxMzcwODNhYzc3ZTQ3NmZi
OGUyLi4yMGM1MWY0YTA5YjY3Y2IxMjU4NTAyNmM4ZTE3ZWY4ZjA0OTI2MGY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApAQCAt
MTg5LDE1ICsxODksNiBAQCB2b2lkIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0TGl0ZXJhbChj
b25zdCBTdHJpbmcmIHRleHQpCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAot
Ci1ib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnM6OnNob3VsZEhhdmVT
ZWNvbmRGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICFzdGVwUmFuZ2UubWluaW11bSgpLnJl
bWFpbmRlcihzdGF0aWNfY2FzdDxpbnQ+KG1zUGVyTWludXRlKSkuaXNaZXJvKCkKLSAgICAgICAg
fHwgIXN0ZXBSYW5nZS5zdGVwKCkucmVtYWluZGVyKHN0YXRpY19jYXN0PGludD4obXNQZXJNaW51
dGUpKS5pc1plcm8oKTsKLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCiBE
YXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyOjp+RWRpdENvbnRyb2xPd25lcigp
CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVk
aXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVt
ZW50LmgKaW5kZXggYmVkYTI5ZGNjZmNhYzZiMjIyZDIwODYxNTE4ZjU2YmM4M2Q5OGQxNC4uZWNi
ZWFhZDg5ZWY0YWI1MTVmN2U3MDYwZDJhNjdlMDIzMDQ3YjMyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaApAQCAtNzUsOCArNzUsNiBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAsIHN0ZXBSYW5nZShzdGVwUmFuZ2UpCiAgICAgICAgIHsK
ICAgICAgICAgfQotCi0gICAgICAgIGJvb2wgc2hvdWxkSGF2ZVNlY29uZEZpZWxkKCkgY29uc3Q7
CiAgICAgfTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCosIEVkaXRDb250cm9sT3duZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTG9jYWxlSUNVLmNwcAppbmRleCA0OGZjMTUzMDdmNzY2MmY1YWRhMDBiNGM5NWI2
Njg2NDhjZmNjMDliLi44YWFhOGI5NTRmODBhZTIzNWIyMWU1MjAxZDQyZWViNmQ4MmVlYTc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCkBAIC0xODIsMTAg
KzE4MiwxMCBAQCBkb3VibGUgTG9jYWxlSUNVOjpwYXJzZURhdGVUaW1lKGNvbnN0IFN0cmluZyYg
aW5wdXQsIERhdGVDb21wb25lbnRzOjpUeXBlIHR5cGUpCiAgICAgcmV0dXJuIGRhdGU7CiB9CiAK
LVN0cmluZyBMb2NhbGVJQ1U6OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBk
YXRlQ29tcG9uZW50cykKK1N0cmluZyBMb2NhbGVJQ1U6OmZvcm1hdERhdGVUaW1lKGNvbnN0IERh
dGVDb21wb25lbnRzJiBkYXRlQ29tcG9uZW50cywgRm9ybWF0VHlwZSBmb3JtYXRUeXBlKQogewog
ICAgIGlmIChkYXRlQ29tcG9uZW50cy50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OkRhdGUpCi0g
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIExvY2FsaXplcjo6Zm9ybWF0
RGF0ZVRpbWUoZGF0ZUNvbXBvbmVudHMsIGZvcm1hdFR5cGUpOwogICAgIGlmICghaW5pdGlhbGl6
ZVNob3J0RGF0ZUZvcm1hdCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgZG91Ymxl
IGlucHV0ID0gZGF0ZUNvbXBvbmVudHMubWlsbGlzZWNvbmRzU2luY2VFcG9jaCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmgKaW5kZXggNjlmM2Q2NTJlYWE3MWYxYTlm
YmQ5MzBhZGM0YTJlNDFmMDViYzllZi4uYTEyNmY2YjExYmI5N2JjYTUwYTliYmI5YjVjYzI0YjI0
NDZiMjZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJ
Q1UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oCkBAIC01
Miw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEZvciBMb2NhbGl6ZWREYXRlCiAgICAgdmly
dHVhbCBkb3VibGUgcGFyc2VEYXRlVGltZShjb25zdCBTdHJpbmcmLCBEYXRlQ29tcG9uZW50czo6
VHlwZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29uc3Qg
RGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRl
VGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYsIEZvcm1hdFR5cGUgPSBGb3JtYXRUeXBlVW5zcGVj
aWZpZWQpIE9WRVJSSURFOwogI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCiAgICAgdmlydHVh
bCBTdHJpbmcgZGF0ZUZvcm1hdFRleHQoKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3BwCmluZGV4IDQ5MGQ4ZTkwZTMxY2U4NzY3N2IzZTdiMmVl
ZTY4YjRiYWZmOGI3YWUuLmYwM2M5N2Y2NmIzYTVhNjY1MjdkMWJlMDRiMzQwOTFkMDA5ZDUwYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5jcHAKQEAgLTQ4Nywx
MCArNDg3LDEwIEBAIHZvaWQgTG9jYWxlV2luOjphcHBlbmRGb3VyRGlnaXRzTnVtYmVyKGludCB2
YWx1ZSwgU3RyaW5nQnVpbGRlciYgYnVmZmVyKQogICAgIGJ1ZmZlci5hcHBlbmQoY29udmVydFRv
TG9jYWxpemVkTnVtYmVyKG51bWJlckJ1ZmZlci50b1N0cmluZygpKSk7CiB9CiAKLVN0cmluZyBM
b2NhbGVXaW46OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlQ29tcG9u
ZW50cykKK1N0cmluZyBMb2NhbGVXaW46OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25l
bnRzJiBkYXRlQ29tcG9uZW50cywgRm9ybWF0VHlwZSBmb3JtYXRUeXBlKQogewogICAgIGlmIChk
YXRlQ29tcG9uZW50cy50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OkRhdGUpCi0gICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIExvY2FsaXplcjo6Zm9ybWF0RGF0ZVRpbWUo
ZGF0ZUNvbXBvbmVudHMsIGZvcm1hdFR5cGUpOwogICAgIGVuc3VyZVNob3J0RGF0ZVRva2Vucygp
OwogICAgIHJldHVybiBmb3JtYXREYXRlKG1fc2hvcnREYXRlVG9rZW5zLCBtX2Jhc2VZZWFyLCBk
YXRlQ29tcG9uZW50cy5mdWxsWWVhcigpLCBkYXRlQ29tcG9uZW50cy5tb250aCgpLCBkYXRlQ29t
cG9uZW50cy5tb250aERheSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTG9jYWxlV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2Fs
ZVdpbi5oCmluZGV4IDVjZmIwNTJhNDJjMzFjOTVjM2Y3NmRkYjEyMDhlYzcwZDcxZWZiMjUuLjE1
MDcyMjE0ODVlYmI5MjAwZjM5NDRiZDk4ZDkxNzNkNjI2YzkzNGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIExvY2FsZVdpbiogY3VycmVudExvY2FsZSgpOwogICAgIH5Mb2NhbGVXaW4oKTsKICAg
ICB2aXJ0dWFsIGRvdWJsZSBwYXJzZURhdGVUaW1lKGNvbnN0IFN0cmluZyYsIERhdGVDb21wb25l
bnRzOjpUeXBlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRlVGltZShj
b25zdCBEYXRlQ29tcG9uZW50cyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1h
dERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiwgRm9ybWF0VHlwZSA9IEZvcm1hdFR5cGVV
bnNwZWNpZmllZCkgT1ZFUlJJREU7CiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKICAgICB2
aXJ0dWFsIFN0cmluZyBkYXRlRm9ybWF0VGV4dCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIG1vbnRoTGFiZWxzKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5jcHAKaW5kZXggNmM5NTdlNTUzOWVlMjAwN2FkNzJi
OGE0NDk0NzJmMWMyZmQ3ZjNjZi4uYzMwYmJhMDE4M2E0MTk2NzlkZTJmZWNhZjViODBjNTFkNTBi
MGNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmNwcApAQCAt
MzEsMTAgKzMxLDExOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxvY2FsaXpl
ci5oIgogCisjaW5jbHVkZSAiRGF0ZVRpbWVGb3JtYXQuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRGF0ZVRpbWVT
dHJpbmdCdWlsZGVyIDogcHJpdmF0ZSBEYXRlVGltZUZvcm1hdDo6VG9rZW5IYW5kbGVyIHsKKyAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRlVGltZVN0cmluZ0J1aWxkZXIpOworCitwdWJsaWM6
CisgICAgLy8gVGhlIGFyZ3VtZW50IG9iamVjdHMgbXVzdCBiZSBhbGl2ZSB1bnRpbCB0aGlzIG9i
amVjdCBkaWVzLgorICAgIERhdGVUaW1lU3RyaW5nQnVpbGRlcihMb2NhbGl6ZXImLCBjb25zdCBE
YXRlQ29tcG9uZW50cyYpOworCisgICAgYm9vbCBidWlsZChjb25zdCBTdHJpbmcmKTsKKyAgICBT
dHJpbmcgdG9TdHJpbmcoKTsKKworcHJpdmF0ZToKKyAgICAvLyBEYXRlVGltZUZvcm1hdDo6VG9r
ZW5IYW5kbGVyIGZ1bmN0aW9ucy4KKyAgICB2aXJ0dWFsIHZvaWQgdmlzaXRGaWVsZChEYXRlVGlt
ZUZvcm1hdDo6RmllbGRUeXBlLCBpbnQpIE9WRVJSSURFIEZJTkFMOworICAgIHZpcnR1YWwgdm9p
ZCB2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5nJikgT1ZFUlJJREUgRklOQUw7CisKKyAgICBTdHJp
bmcgemVyb1BhZFN0cmluZyhjb25zdCBTdHJpbmcmLCBzaXplX3Qgd2lkdGgpOworICAgIHZvaWQg
YXBwZW5kTnVtYmVyKGludCBudW1iZXIsIHNpemVfdCB3aWR0aCk7CisKKyAgICBTdHJpbmdCdWls
ZGVyIG1fYnVpbGRlcjsKKyAgICBMb2NhbGl6ZXImIG1fbG9jYWxpemVyOworICAgIGNvbnN0IERh
dGVDb21wb25lbnRzJiBtX2RhdGU7Cit9OworCitEYXRlVGltZVN0cmluZ0J1aWxkZXI6OkRhdGVU
aW1lU3RyaW5nQnVpbGRlcihMb2NhbGl6ZXImIGxvY2FsaXplciwgY29uc3QgRGF0ZUNvbXBvbmVu
dHMmIGRhdGUpCisgICAgOiBtX2xvY2FsaXplcihsb2NhbGl6ZXIpCisgICAgLCBtX2RhdGUoZGF0
ZSkKK3sKK30KKworYm9vbCBEYXRlVGltZVN0cmluZ0J1aWxkZXI6OmJ1aWxkKGNvbnN0IFN0cmlu
ZyYgZm9ybWF0U3RyaW5nKQoreworICAgIG1fYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoZm9ybWF0
U3RyaW5nLmxlbmd0aCgpKTsKKyAgICByZXR1cm4gRGF0ZVRpbWVGb3JtYXQ6OnBhcnNlKGZvcm1h
dFN0cmluZywgKnRoaXMpOworfQorCitTdHJpbmcgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjp6ZXJv
UGFkU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBzaXplX3Qgd2lkdGgpCit7CisgICAgaWYg
KHN0cmluZy5sZW5ndGgoKSA+PSB3aWR0aCkKKyAgICAgICAgcmV0dXJuIHN0cmluZzsKKyAgICBT
dHJpbmdCdWlsZGVyIHplcm9QYWRkZWRTdHJpbmdCdWlsZGVyOworICAgIHplcm9QYWRkZWRTdHJp
bmdCdWlsZGVyLnJlc2VydmVDYXBhY2l0eSh3aWR0aCk7CisgICAgZm9yIChzaXplX3QgaSA9IHN0
cmluZy5sZW5ndGgoKTsgaSA8IHdpZHRoOyArK2kpCisgICAgICAgIHplcm9QYWRkZWRTdHJpbmdC
dWlsZGVyLmFwcGVuZCgiMCIpOworICAgIHplcm9QYWRkZWRTdHJpbmdCdWlsZGVyLmFwcGVuZChz
dHJpbmcpOworICAgIHJldHVybiB6ZXJvUGFkZGVkU3RyaW5nQnVpbGRlci50b1N0cmluZygpOwor
fQorCit2b2lkIERhdGVUaW1lU3RyaW5nQnVpbGRlcjo6YXBwZW5kTnVtYmVyKGludCBudW1iZXIs
IHNpemVfdCB3aWR0aCkKK3sKKyAgICBTdHJpbmcgemVyb1BhZGRlZE51bWJlclN0cmluZyA9IHpl
cm9QYWRTdHJpbmcoU3RyaW5nOjpudW1iZXIobnVtYmVyKSwgd2lkdGgpOworICAgIG1fYnVpbGRl
ci5hcHBlbmQobV9sb2NhbGl6ZXIuY29udmVydFRvTG9jYWxpemVkTnVtYmVyKHplcm9QYWRkZWRO
dW1iZXJTdHJpbmcpKTsKK30KKwordm9pZCBEYXRlVGltZVN0cmluZ0J1aWxkZXI6OnZpc2l0Rmll
bGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBmaWVsZFR5cGUsIGludCBudW1iZXJPZlBhdHRl
cm5DaGFyYWN0ZXJzKQoreworICAgIHN3aXRjaCAoZmllbGRUeXBlKSB7CisgICAgY2FzZSBEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlUGVyaW9kOgorICAgICAgICBtX2J1aWxkZXIuYXBwZW5kKG1f
bG9jYWxpemVyLnRpbWVBTVBNTGFiZWxzKClbKG1fZGF0ZS5ob3VyKCkgPj0gMTIgPyAxIDogMCld
KTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhv
dXIxMjogeworICAgICAgICBpbnQgaG91cjEyID0gbV9kYXRlLmhvdXIoKSAlIDEyOworICAgICAg
ICBpZiAoIWhvdXIxMikKKyAgICAgICAgICAgIGhvdXIxMiA9IDEyOworICAgICAgICBhcHBlbmRO
dW1iZXIoaG91cjEyLCBudW1iZXJPZlBhdHRlcm5DaGFyYWN0ZXJzKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMjM6CisgICAg
ICAgIGFwcGVuZE51bWJlcihtX2RhdGUuaG91cigpLCBudW1iZXJPZlBhdHRlcm5DaGFyYWN0ZXJz
KTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhv
dXIxMToKKyAgICAgICAgYXBwZW5kTnVtYmVyKG1fZGF0ZS5ob3VyKCkgJSAxMiwgbnVtYmVyT2ZQ
YXR0ZXJuQ2hhcmFjdGVycyk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIERhdGVUaW1lRm9y
bWF0OjpGaWVsZFR5cGVIb3VyMjQ6IHsKKyAgICAgICAgaW50IGhvdXIyNCA9IG1fZGF0ZS5ob3Vy
KCk7CisgICAgICAgIGlmICghaG91cjI0KQorICAgICAgICAgICAgaG91cjI0ID0gMjQ7CisgICAg
ICAgIGFwcGVuZE51bWJlcihob3VyMjQsIG51bWJlck9mUGF0dGVybkNoYXJhY3RlcnMpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZU1p
bnV0ZToKKyAgICAgICAgYXBwZW5kTnVtYmVyKG1fZGF0ZS5taW51dGUoKSwgbnVtYmVyT2ZQYXR0
ZXJuQ2hhcmFjdGVycyk7CisgICAgICAgIHJldHVybjsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGVTZWNvbmQ6CisgICAgICAgIGlmICghbV9kYXRlLm1pbGxpc2Vjb25kKCkpCisg
ICAgICAgICAgICBhcHBlbmROdW1iZXIobV9kYXRlLnNlY29uZCgpLCBudW1iZXJPZlBhdHRlcm5D
aGFyYWN0ZXJzKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBkb3VibGUgc2Vjb25kID0g
bV9kYXRlLnNlY29uZCgpICsgbV9kYXRlLm1pbGxpc2Vjb25kKCkgLyAxMDAwLjA7CisgICAgICAg
ICAgICBTdHJpbmcgemVyb1BhZGRlZFNlY29uZFN0cmluZyA9IHplcm9QYWRTdHJpbmcoU3RyaW5n
Ojpmb3JtYXQoIiUuMDNmIiwgc2Vjb25kKSwgbnVtYmVyT2ZQYXR0ZXJuQ2hhcmFjdGVycyArIDQp
OworICAgICAgICAgICAgbV9idWlsZGVyLmFwcGVuZChtX2xvY2FsaXplci5jb252ZXJ0VG9Mb2Nh
bGl6ZWROdW1iZXIoemVyb1BhZGRlZFNlY29uZFN0cmluZykpOworICAgICAgICB9CisgICAgICAg
IHJldHVybjsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm47CisgICAgfQorfQorCit2b2lk
IERhdGVUaW1lU3RyaW5nQnVpbGRlcjo6dmlzaXRMaXRlcmFsKGNvbnN0IFN0cmluZyYgdGV4dCkK
K3sKKyAgICBBU1NFUlQodGV4dC5sZW5ndGgoKSk7CisgICAgbV9idWlsZGVyLmFwcGVuZCh0ZXh0
KTsKK30KKworU3RyaW5nIERhdGVUaW1lU3RyaW5nQnVpbGRlcjo6dG9TdHJpbmcoKQoreworICAg
IHJldHVybiBtX2J1aWxkZXIudG9TdHJpbmcoKTsKK30KKwogTG9jYWxpemVyOjp+TG9jYWxpemVy
KCkKIHsKIH0KQEAgLTIzOCw0ICszNDYsMTcgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIExvY2Fs
aXplcjo6dGltZUFNUE1MYWJlbHMoKQogfQogI2VuZGlmCiAKK1N0cmluZyBMb2NhbGl6ZXI6OmZv
cm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlLCBGb3JtYXRUeXBlIGZvcm1h
dFR5cGUpCit7CisjaWYgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkKKyAgICBpZiAo
ZGF0ZS50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OlRpbWUpCisgICAgICAgIHJldHVybiBTdHJp
bmcoKTsKKyAgICBEYXRlVGltZVN0cmluZ0J1aWxkZXIgYnVpbGRlcigqdGhpcywgZGF0ZSk7Cisg
ICAgYnVpbGRlci5idWlsZChmb3JtYXRUeXBlID09IEZvcm1hdFR5cGVTaG9ydCA/IHNob3J0VGlt
ZUZvcm1hdCgpIDogdGltZUZvcm1hdCgpKTsKKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygp
OworI2Vsc2UKKyAgICByZXR1cm4gU3RyaW5nKCk7CisjZW5kaWYKK30KKwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmgKaW5kZXggOWUxNGQ4MjQ0MDQ5MGI0OGYyZjRj
ZWZmMzRhNjQ1ZmE4NzUzMTk2My4uNzc1OTNlOTNiYjA4MDVjNmQyNmJlYmFlYzRkMzEyY2Y3OGNi
YWFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5oCkBAIC0xMDks
MTAgKzEwOSwxMiBAQCBwdWJsaWM6CiAgICAgLy8gMDA6MDA6MDAuMDAwIFVUQy4KICAgICB2aXJ0
dWFsIGRvdWJsZSBwYXJzZURhdGVUaW1lKGNvbnN0IFN0cmluZyYsIERhdGVDb21wb25lbnRzOjpU
eXBlKSA9IDA7CiAKKyAgICBlbnVtIEZvcm1hdFR5cGUgeyBGb3JtYXRUeXBlVW5zcGVjaWZpZWQs
IEZvcm1hdFR5cGVTaG9ydCwgRm9ybWF0VHlwZU1lZGl1bSB9OworCiAgICAgLy8gU2VyaWFsaXpl
cyB0aGUgc3BlY2lmaWVkIGRhdGUgaW50byBhIGZvcm1hdHRlZCBkYXRlIHN0cmluZyB0bwogICAg
IC8vIGRpc3BsYXkgdG8gdGhlIHVzZXIuIElmIGFuIGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qgc3Vw
cG9ydAogICAgIC8vIGxvY2FsaXplZCBkYXRlcyB0aGUgZnVuY3Rpb24gc2hvdWxkIHJldHVybiBh
biBlbXB0eSBzdHJpbmcuCi0gICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29uc3Qg
RGF0ZUNvbXBvbmVudHMmKSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUo
Y29uc3QgRGF0ZUNvbXBvbmVudHMmLCBGb3JtYXRUeXBlID0gRm9ybWF0VHlwZVVuc3BlY2lmaWVk
KTsKIAogICAgIHZpcnR1YWwgfkxvY2FsaXplcigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvbWFjL0xvY2FsZU1hYy5oCmluZGV4IDJkOWU4YWRlNjlhMmY0MTRmOGIwNjkxYTVh
Mzg3YTM1ZTkwZDBhMzUuLmVkOWY3MTYyMDhjNDQwOGIzY2JiNGQwYjM3M2NlZjI0NzUwYTJkYmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5oCkBAIC01
MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgTG9jYWxlTWFjKiBjdXJyZW50TG9jYWxl
KCk7CiAgICAgfkxvY2FsZU1hYygpOwogICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlRGF0ZVRpbWUo
Y29uc3QgU3RyaW5nJiwgRGF0ZUNvbXBvbmVudHM6OlR5cGUpIE9WRVJSSURFOwotICAgIHZpcnR1
YWwgU3RyaW5nIGZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMm
LCBGb3JtYXRUeXBlID0gRm9ybWF0VHlwZVVuc3BlY2lmaWVkKSBPVkVSUklERTsKIAogI2lmIEVO
QUJMRShDQUxFTkRBUl9QSUNLRVIpCiAgICAgdmlydHVhbCBTdHJpbmcgZGF0ZUZvcm1hdFRleHQo
KSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFj
L0xvY2FsZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1h
Yy5tbQppbmRleCBhZTlmNjc1Yjc4ZTYwYjlkYmNlNDdkMjMwMWMyYjc4OTQ3NDQ0ZmI5Li41N2U3
YjhlMzMxYzdhMTk1NjMzMWI1ZWYyMTUyMGFiNjAyOTRhOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCkBAIC0xMjgsMTAgKzEyOCwxMCBAQCBk
b3VibGUgTG9jYWxlTWFjOjpwYXJzZURhdGVUaW1lKGNvbnN0IFN0cmluZyYgaW5wdXQsIERhdGVD
b21wb25lbnRzOjpUeXBlIHR5cGUpCiAgICAgcmV0dXJuIFtkYXRlIHRpbWVJbnRlcnZhbFNpbmNl
MTk3MF0gKiBtc1BlclNlY29uZDsKIH0KIAotU3RyaW5nIExvY2FsZU1hYzo6Zm9ybWF0RGF0ZVRp
bWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVDb21wb25lbnRzKQorU3RyaW5nIExvY2FsZU1h
Yzo6Zm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVDb21wb25lbnRzLCBG
b3JtYXRUeXBlIGZvcm1hdFR5cGUpCiB7CiAgICAgaWYgKGRhdGVDb21wb25lbnRzLnR5cGUoKSAh
PSBEYXRlQ29tcG9uZW50czo6RGF0ZSkKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgICAg
ICByZXR1cm4gTG9jYWxpemVyOjpmb3JtYXREYXRlVGltZShkYXRlQ29tcG9uZW50cywgZm9ybWF0
VHlwZSk7CiAgICAgUmV0YWluUHRyPE5TRGF0ZUZvcm1hdHRlcj4gZm9ybWF0dGVyKEFkb3B0TlMs
IGNyZWF0ZVNob3J0RGF0ZUZvcm1hdHRlcigpKTsKICAgICBOU1RpbWVJbnRlcnZhbCBpbnRlcnZh
bCA9IGRhdGVDb21wb25lbnRzLm1pbGxpc2Vjb25kc1NpbmNlRXBvY2goKSAvIG1zUGVyU2Vjb25k
OwogICAgIHJldHVybiBTdHJpbmcoW2Zvcm1hdHRlci5nZXQoKSBzdHJpbmdGcm9tRGF0ZTpbTlNE
YXRlIGRhdGVXaXRoVGltZUludGVydmFsU2luY2UxOTcwOmludGVydmFsXV0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVNYWNUZXN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlTWFjVGVzdC5jcHAKaW5kZXggZjVmMjY4ZGIz
NWIwODMxMTZmYmMwYzY3ZTc2YjYyMjQ0ZDM4YjJhMy4uNmYwZjk1N2UyYzBkMDRlNzQwNWY4MzA3
NWNiNGIxZDNkZmM2MDQ1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9Mb2NhbGVNYWNUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xv
Y2FsZU1hY1Rlc3QuY3BwCkBAIC01Nyw2ICs1NywxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHJl
dHVybiBkYXRlOwogICAgIH0KIAorICAgIERhdGVDb21wb25lbnRzIHRpbWVDb21wb25lbnRzKGlu
dCBob3VyLCBpbnQgbWludXRlLCBpbnQgc2Vjb25kLCBpbnQgbWlsbGlzZWNvbmQpCisgICAgewor
ICAgICAgICBEYXRlQ29tcG9uZW50cyBkYXRlOworICAgICAgICBkYXRlLnNldE1pbGxpc2Vjb25k
c1NpbmNlTWlkbmlnaHQoaG91ciAqIG1zUGVySG91ciArIG1pbnV0ZSAqIG1zUGVyTWludXRlICsg
c2Vjb25kICogbXNQZXJTZWNvbmQgKyBtaWxsaXNlY29uZCk7CisgICAgICAgIHJldHVybiBkYXRl
OworICAgIH0KKwogICAgIGRvdWJsZSBtc0ZvckRhdGUoaW50IHllYXIsIGludCBtb250aCwgaW50
IGRheSkKICAgICB7CiAgICAgICAgIHJldHVybiBkYXRlVG9EYXlzRnJvbTE5NzAoeWVhciwgbW9u
dGgsIGRheSkgKiBtc1BlckRheTsKQEAgLTY4LDYgKzc1LDEyIEBAIHByb3RlY3RlZDoKICAgICAg
ICAgcmV0dXJuIGxvY2FsZS0+Zm9ybWF0RGF0ZVRpbWUoZGF0ZUNvbXBvbmVudHMoeWVhciwgbW9u
dGgsIGRheSkpOwogICAgIH0KIAorICAgIFN0cmluZyBmb3JtYXRUaW1lKGNvbnN0IFN0cmluZyYg
bG9jYWxlU3RyaW5nLCBpbnQgaG91ciwgaW50IG1pbnV0ZSwgaW50IHNlY29uZCwgaW50IG1pbGxp
c2Vjb25kLCBib29sIHVzZVNob3J0Rm9ybWF0KQorICAgIHsKKyAgICAgICAgT3duUHRyPExvY2Fs
ZU1hYz4gbG9jYWxlID0gTG9jYWxlTWFjOjpjcmVhdGUobG9jYWxlU3RyaW5nKTsKKyAgICAgICAg
cmV0dXJuIGxvY2FsZS0+Zm9ybWF0RGF0ZVRpbWUodGltZUNvbXBvbmVudHMoaG91ciwgbWludXRl
LCBzZWNvbmQsIG1pbGxpc2Vjb25kKSwgKHVzZVNob3J0Rm9ybWF0ID8gTG9jYWxpemVyOjpGb3Jt
YXRUeXBlU2hvcnQgOiBMb2NhbGl6ZXI6OkZvcm1hdFR5cGVNZWRpdW0pKTsKKyAgICB9CisKICAg
ICBkb3VibGUgcGFyc2VEYXRlKGNvbnN0IFN0cmluZyYgbG9jYWxlU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGRhdGVTdHJpbmcpCiAgICAgewogICAgICAgICBPd25QdHI8TG9jYWxlTWFjPiBsb2NhbGUg
PSBMb2NhbGVNYWM6OmNyZWF0ZShsb2NhbGVTdHJpbmcpOwpAQCAtMTM0LDYgKzE0NywyNyBAQCBU
RVNUX0YoTG9jYWxlTWFjVGVzdCwgZm9ybWF0RGF0ZSkKICAgICBFWFBFQ1RfU1RSRVEoIjA1LzA0
LzI3IiwgZm9ybWF0RGF0ZSgiamFfSlAiLCAyMDA1LCBBcHJpbCwgMjcpLnV0ZjgoKS5kYXRhKCkp
OwogfQogCitURVNUX0YoTG9jYWxlTWFjVGVzdCwgZm9ybWF0VGltZSkKK3sKKyAgICBFWFBFQ1Rf
U1RSRVEoIjE6MjMgUE0iLCBmb3JtYXRUaW1lKCJlbl9VUyIsIDEzLCAyMywgMDAsIDAwMCwgdHJ1
ZSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCIxMzoyMyIsIGZvcm1hdFRpbWUo
ImZyX0ZSIiwgMTMsIDIzLCAwMCwgMDAwLCB0cnVlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBF
Q1RfU1RSRVEoIjEzOjIzIiwgZm9ybWF0VGltZSgiamFfSlAiLCAxMywgMjMsIDAwLCAwMDAsIHRy
dWUpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiXHhEOVx4QTE6XHhEOVx4QTJc
eEQ5XHhBMyBceEQ5XHg4NSIsIGZvcm1hdFRpbWUoImFyIiwgMTMsIDIzLCAwMCwgMDAwLCB0cnVl
KS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlx4REJceEIxXHhEQlx4QjM6XHhE
Qlx4QjJceERCXHhCMyIsIGZvcm1hdFRpbWUoImZhIiwgMTMsIDIzLCAwMCwgMDAwLCB0cnVlKS51
dGY4KCkuZGF0YSgpKTsKKworICAgIEVYUEVDVF9TVFJFUSgiMTI6MDAgQU0iLCBmb3JtYXRUaW1l
KCJlbl9VUyIsIDAwLCAwMCwgMDAsIDAwMCwgdHJ1ZSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQ
RUNUX1NUUkVRKCIwMDowMCIsIGZvcm1hdFRpbWUoImZyX0ZSIiwgMDAsIDAwLCAwMCwgMDAwLCB0
cnVlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIjA6MDAiLCBmb3JtYXRUaW1l
KCJqYV9KUCIsIDAwLCAwMCwgMDAsIDAwMCwgdHJ1ZSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQ
RUNUX1NUUkVRKCJceEQ5XHhBMVx4RDlceEEyOlx4RDlceEEwXHhEOVx4QTAgXHhEOFx4QjUiLCBm
b3JtYXRUaW1lKCJhciIsIDAwLCAwMCwgMDAsIDAwMCwgdHJ1ZSkudXRmOCgpLmRhdGEoKSk7Cisg
ICAgRVhQRUNUX1NUUkVRKCJceERCXHhCMDpceERCXHhCMFx4REJceEIwIiwgZm9ybWF0VGltZSgi
ZmEiLCAwMCwgMDAsIDAwLCAwMDAsIHRydWUpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgRVhQRUNU
X1NUUkVRKCI3OjA3OjA3LjAwNyBBTSIsIGZvcm1hdFRpbWUoImVuX1VTIiwgMDcsIDA3LCAwNywg
MDA3LCBmYWxzZSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCIwNzowNzowNyww
MDciLCBmb3JtYXRUaW1lKCJmcl9GUiIsIDA3LCAwNywgMDcsIDAwNywgZmFsc2UpLnV0ZjgoKS5k
YXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiNzowNzowNy4wMDciLCBmb3JtYXRUaW1lKCJqYV9K
UCIsIDA3LCAwNywgMDcsIDAwNywgZmFsc2UpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9T
VFJFUSgiXHhEOVx4QTc6XHhEOVx4QTBceEQ5XHhBNzpceEQ5XHhBMFx4RDlceEE3XHhEOVx4QUJc
eEQ5XHhBMFx4RDlceEEwXHhEOVx4QTcgXHhEOFx4QjUiLCBmb3JtYXRUaW1lKCJhciIsIDA3LCAw
NywgMDcsIDAwNywgZmFsc2UpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiXHhE
Qlx4Qjc6XHhEQlx4QjBceERCXHhCNzpceERCXHhCMFx4REJceEI3XHhEOVx4QUJceERCXHhCMFx4
REJceEIwXHhEQlx4QjciLCBmb3JtYXRUaW1lKCJmYSIsIDA3LCAwNywgMDcsIDAwNywgZmFsc2Up
LnV0ZjgoKS5kYXRhKCkpOworfQorCiBURVNUX0YoTG9jYWxlTWFjVGVzdCwgcGFyc2VEYXRlKQog
ewogICAgIEVYUEVDVF9FUShtc0ZvckRhdGUoMjAwNSwgQXByaWwsIDI3KSwgcGFyc2VEYXRlKCJl
bl9VUyIsICJBcHJpbCAyNywgMjAwNSIpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166864</attachid>
            <date>2012-10-03 05:23:30 -0700</date>
            <delta_ts>2012-10-03 05:29:58 -0700</delta_ts>
            <desc>Just added if around DateTimeStringBuilder</desc>
            <filename>bug-98237-20121003212241.patch</filename>
            <type>text/plain</type>
            <size>24929</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZlY2M2YzE1NmYzMGY5
ZDM1ZjViNGFhZDQ5OWIwZDE4NmJmZWU5OS4uN2I5YWRmZjY5OTIxOTQ0OWE5OWNjOTZlMjNiZjll
ZWQzNTMwMDQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTEwLTAzICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCBsb2Nh
bGl6ZVZhbHVlIGZvciBUaW1lSW5wdXRUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05ODIzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlIHdhbnQgdG8gbG9jYWxpemUgdGltZSB2YWx1ZXMgZm9yIHRo
ZSBzdWdnZXN0aW9uIHBpY2tlci4KKyAgICAgICAgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyIHBhcnNl
cyBhIGZvcm1hdCBhbmQgY3JlYXRlcyBhIGZvcm1hdHRlZCBzdHJpbmcuCisKKyAgICAgICAgQWRk
ZWQgY2hyb21pdW0gdW5pdCB0ZXN0IExvY2FsZU1hY1Rlc3QuZm9ybWF0VGltZQorCisgICAgICAg
ICogaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2hv
dWxkSGF2ZVNlY29uZEZpZWxkKTogTW92ZWQgZnJvbSBMYXlvdXRQYXJhbWV0ZXJzIGJlY2F1c2Ug
d2Ugd2FudCB0byB1c2UgaXQgaW5zaWRlIGxvY2FsaXplVmFsdWUuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBodG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
Lmg6CisgICAgICAgIChCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSk6Cisg
ICAgICAgICogaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBodG1s
L0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVM
b2NhbElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBodG1sL1Rp
bWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6bG9jYWxp
emVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1
dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyk6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRU
eXBlLmg6CisgICAgICAgIChUaW1lSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9E
YXRlVGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnM6OkxheW91dFBhcmFtZXRlcnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsZUlDVTo6Zm9ybWF0RGF0ZVRpbWUpOiBDYWxscyBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1l
IGlmIHRoZSBkYXRlIGNvbXBvbmVudCBpcyBub3QgYSBkYXRlLgorICAgICAgICAqIHBsYXRmb3Jt
L3RleHQvTG9jYWxlSUNVLmg6CisgICAgICAgIChMb2NhbGVJQ1UpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvTG9jYWxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZVdpbjo6Zm9y
bWF0RGF0ZVRpbWUpOiBDYWxscyBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lIGlmIHRoZSBkYXRl
IGNvbXBvbmVudCBpcyBub3QgYSBkYXRlLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxl
V2luLmg6CisgICAgICAgIChMb2NhbGVXaW4pOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9j
YWxpemVyLmNwcDoKKyAgICAgICAgKERhdGVUaW1lU3RyaW5nQnVpbGRlcik6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3RyaW5nQnVpbGRlcjo6RGF0ZVRp
bWVTdHJpbmdCdWlsZGVyKTogVGFrZXMgYQorICAgICAgICBMb2NhbGl6ZXIgcG9pbnRlci4gVGhp
cyBpcyB1c2VkIGluc2lkZSB0aGUgTG9jYWxpemVyIHNvIHRoZSBMb2NhbGl6ZXIKKyAgICAgICAg
d2lsbCBvdXQgbGl2ZSB0aGUgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjpidWlsZCk6IEJ1aWxkcyBhIGxvY2FsaXplZCBzdHJp
bmcgZm9yIHRoZSBnaXZlbiBmb3JtYXQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN0cmlu
Z0J1aWxkZXI6Onplcm9QYWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTdHJp
bmdCdWlsZGVyOjphcHBlbmROdW1iZXIpOiBBcHBlbmRzIGEgbnVtYmVyIHdpdGggbGVmdCB6ZXJv
IHBhZGRpbmcgdG8gbWF0Y2ggd2lkdGguCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN0cmlu
Z0J1aWxkZXI6OnZpc2l0RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTdHJpbmdC
dWlsZGVyOjp2aXNpdExpdGVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTdHJpbmdC
dWlsZGVyOjp0b1N0cmluZyk6IFJldHVybnMgdGhlIGxvY2FsaXplZCBzdHJpbmcuCisgICAgICAg
IChXZWJDb3JlOjpMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L0xvY2FsaXplci5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1h
Yy5oOgorICAgICAgICAoTG9jYWxlTWFjKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L21hYy9M
b2NhbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVNYWM6OmZvcm1hdERhdGVUaW1l
KTogQ2FsbHMgTG9jYWxpemVyOjpmb3JtYXREYXRlVGltZSBpZiB0aGUgZGF0ZSBjb21wb25lbnQg
aXMgbm90IGEgZGF0ZS4KKwogMjAxMi0xMC0wMyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgSW50cm9kdWNlIERhdGVDb21wb25lbnRzOjptaW5pbXVtWWVhciBh
bmQgbWF4aW11bVllYXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZTJmNzZkNTg0Nzgy
MzdiMzc3ZjgwZDVkZmM0Y2JlNGNiNWIyYTYyNy4uNzBmMWY5Y2RiYzc5ODEzZjhkZjdkNWZjMjcy
MDc5YmQ5YzlhMDBlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxMi0xMC0wMyAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAg
ICAgICBJbXBsZW1lbnQgbG9jYWxpemVWYWx1ZSBmb3IgVGltZUlucHV0VHlwZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgyMzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0xvY2FsZU1hY1Rl
c3QuY3BwOgorICAgICAgICAoTG9jYWxlTWFjVGVzdDo6dGltZUNvbXBvbmVudHMpOgorICAgICAg
ICAoTG9jYWxlTWFjVGVzdCk6CisgICAgICAgIChMb2NhbGVNYWNUZXN0Ojpmb3JtYXRUaW1lKTog
VGVzdHMgZm9ybWF0RGF0ZVRpbWUoKSBmb3IgdGltZS4KKyAgICAgICAgKFRFU1RfRik6CisKIDIw
MTItMTAtMDIgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUHJvdmlkZSBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIGZvciBIYXNoQ291bnRlZFNldApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0Rh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBjNzI1YjE5ODVkNzUzZDVhMWE2YWU5YjM4M2I0
M2UxZDcyZDk5MjgyLi43NGQ5ZTQ4YjM1YTcxMTdjMjNmM2UxNzBjMWI4ZWNjNDU4MzRlNzRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRU
aW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZp
ZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUg
IktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZXIuaCIKICNpbmNsdWRlICJTaGFk
b3dSb290LmgiCisjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMjM4LDYgKzIzOSwxNCBAQCB2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRU
aW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5lclRleHRWYWx1ZSgpCiAgICAgICAgIG1fZGF0ZVRpbWVF
ZGl0RWxlbWVudC0+c2V0RW1wdHlWYWx1ZShsYXlvdXRQYXJhbWV0ZXJzLCBkYXRlKTsKIH0KIAor
Ym9vbCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2hvdWxkSGF2ZVNl
Y29uZEZpZWxkKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKSBjb25zdAoreworICAgIFN0ZXBS
YW5nZSBzdGVwUmFuZ2UgPSBjcmVhdGVTdGVwUmFuZ2UoQW55SXNEZWZhdWx0U3RlcCk7CisgICAg
cmV0dXJuIGRhdGUuc2Vjb25kKCkKKyAgICAgICAgfHwgIXN0ZXBSYW5nZS5taW5pbXVtKCkucmVt
YWluZGVyKHN0YXRpY19jYXN0PGludD4obXNQZXJNaW51dGUpKS5pc1plcm8oKQorICAgICAgICB8
fCAhc3RlcFJhbmdlLnN0ZXAoKS5yZW1haW5kZXIoc3RhdGljX2Nhc3Q8aW50Pihtc1Blck1pbnV0
ZSkpLmlzWmVybygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRl
QW5kVGltZUlucHV0VHlwZS5oCmluZGV4IGY2YWIxNTk2MjA0ZWY1ZGQ0MGRlNTQ0ZWM3MzJiOGQx
MWQ1YTA1ZDQuLjVhOGU2ZTI4NDE5OTVkYmNkOWFjOGY1ZGU0ZjJlZGQ4ZjRkNDlhOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0Rh
dGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHJvdGVjdGVkOgogICAgIEJh
c2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqKTsK
ICAgICB2aXJ0dWFsIH5CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSgpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6TGF5b3V0UGFyYW1ldGVycyYsIGNvbnN0IERhdGVDb21wb25lbnRzJikgY29uc3QgPSAwOwor
ICAgIGJvb2wgc2hvdWxkSGF2ZVNlY29uZEZpZWxkKGNvbnN0IERhdGVDb21wb25lbnRzJikgY29u
c3Q7CiAKIHByaXZhdGU6CiAgICAgLy8gRGF0ZVRpbWVFZGl0RWxlbWVudDo6RWRpdENvbnRyb2xP
d25lciBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAK
aW5kZXggYjk5YTU4MGZiYzlkZjNkZDAzNzA3ZjI2NmQwMzY4Zjk0MzcyMDEzYi4uZGQyZjIwYTU5
YzkzOWNkMWZiZDUyODU2OWIwYzlhZjBlNGYxNjZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlVGltZUlucHV0VHlwZS5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCBTdHJpbmcgRGF0ZVRpbWVJ
bnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNT
dGF0ZSYgZAogCiB2b2lkIERhdGVUaW1lSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMo
RGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycywg
Y29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpIGNvbnN0CiB7Ci0gICAgaWYgKGRhdGUuc2Vjb25k
KCkgfHwgbGF5b3V0UGFyYW1ldGVycy5zaG91bGRIYXZlU2Vjb25kRmllbGQoKSkgeworICAgIGlm
IChzaG91bGRIYXZlU2Vjb25kRmllbGQoZGF0ZSkpIHsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVy
cy5kYXRlVGltZUZvcm1hdCA9IGxheW91dFBhcmFtZXRlcnMubG9jYWxpemVyLmRhdGVUaW1lRm9y
bWF0V2l0aFNlY29uZCgpOwogICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxiYWNrRGF0ZVRp
bWVGb3JtYXQgPSAiZGQvTU0veXl5eSBISDptbTpzcyI7CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCmluZGV4IGUyM2VmODE4
Mzc2MzYwZmJmNjY1ODU5MTFhMTQ4NjVmYjU4ZGJmNjYuLmZmYzQ1MmJlOTBkODAzMjVlNjg5YzNk
OTc4MzFkMjg2NmY4ZmFiMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVMb2NhbElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmNwcApAQCAtMTUxLDcgKzE1MSw3IEBAIFN0cmluZyBEYXRlVGltZUxvY2Fs
SW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRz
U3RhCiAKIHZvaWQgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJz
KERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMs
IGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKSBjb25zdAogewotICAgIGlmIChkYXRlLnNlY29u
ZCgpIHx8IGxheW91dFBhcmFtZXRlcnMuc2hvdWxkSGF2ZVNlY29uZEZpZWxkKCkpIHsKKyAgICBp
ZiAoc2hvdWxkSGF2ZVNlY29uZEZpZWxkKGRhdGUpKSB7CiAgICAgICAgIGxheW91dFBhcmFtZXRl
cnMuZGF0ZVRpbWVGb3JtYXQgPSBsYXlvdXRQYXJhbWV0ZXJzLmxvY2FsaXplci5kYXRlVGltZUZv
cm1hdFdpdGhTZWNvbmQoKTsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0RhdGVU
aW1lRm9ybWF0ID0gImRkL01NL3l5eXkgSEg6bW06c3MiOwogICAgIH0gZWxzZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCA0OGE2ODRjMzVlNmU1OWJlZjVhY2NhNmVj
MDc3NDE4ZDBhMDJkZWQ4Li43MTA5M2Y4Mjk2YTk2NTcyYzVhZjRhNTM0YTU3ZGZlYWIyYjAzYTM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTEyMCw2ICsxMjAsMTgg
QEAgYm9vbCBUaW1lSW5wdXRUeXBlOjppc1RpbWVGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK1N0cmluZyBUaW1lSW5wdXRUeXBlOjpsb2NhbGl6ZVZhbHVlKGNvbnN0IFN0cmlu
ZyYgcHJvcG9zZWRWYWx1ZSkgY29uc3QKK3sKKyAgICBEYXRlQ29tcG9uZW50cyBkYXRlOworICAg
IGlmICghcGFyc2VUb0RhdGVDb21wb25lbnRzKHByb3Bvc2VkVmFsdWUsICZkYXRlKSkKKyAgICAg
ICAgcmV0dXJuIHByb3Bvc2VkVmFsdWU7CisKKyAgICBMb2NhbGl6ZXI6OkZvcm1hdFR5cGUgZm9y
bWF0VHlwZSA9IHNob3VsZEhhdmVTZWNvbmRGaWVsZChkYXRlKSA/IExvY2FsaXplcjo6Rm9ybWF0
VHlwZU1lZGl1bSA6IExvY2FsaXplcjo6Rm9ybWF0VHlwZVNob3J0OworCisgICAgU3RyaW5nIGxv
Y2FsaXplZCA9IGVsZW1lbnQoKS0+bG9jYWxpemVyKCkuZm9ybWF0RGF0ZVRpbWUoZGF0ZSwgZm9y
bWF0VHlwZSk7CisgICAgcmV0dXJuIGxvY2FsaXplZC5pc0VtcHR5KCkgPyBwcm9wb3NlZFZhbHVl
IDogbG9jYWxpemVkOworfQorCiAjaWYgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkK
IAogU3RyaW5nIFRpbWVJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3Qg
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSkgY29uc3QKQEAgLTE0Miw3
ICsxNTQsNyBAQCBTdHJpbmcgVGltZUlucHV0VHlwZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0
ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiBkYXRlVAogCiB2b2lkIFRpbWVJbnB1dFR5cGU6
OnNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0
ZXJzJiBsYXlvdXRQYXJhbWV0ZXJzLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkgY29uc3QK
IHsKLSAgICBpZiAoZGF0ZS5zZWNvbmQoKSB8fCBsYXlvdXRQYXJhbWV0ZXJzLnNob3VsZEhhdmVT
ZWNvbmRGaWVsZCgpKSB7CisgICAgaWYgKHNob3VsZEhhdmVTZWNvbmRGaWVsZChkYXRlKSkgewog
ICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0ID0gbGF5b3V0UGFyYW1ldGVy
cy5sb2NhbGl6ZXIudGltZUZvcm1hdCgpOwogICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxi
YWNrRGF0ZVRpbWVGb3JtYXQgPSAiSEg6bW06c3MiOwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGltZUlucHV0VHlwZS5oCmluZGV4IGQ1YTk3OTJhN2E0MjBlOTY0MjQyZDIwOTY2NDRmZjdi
MzFmMDkzNjYuLjY5YTEyYmQyOGExZmQ3YjMxMGYxMDA0NzUxMzEyYWY4YTJiYWYzOTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBAIC01NSw2ICs1NSw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVybmFsKGNvbnN0IFVDaGFy
KiwgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlLCBEYXRl
Q29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1RpbWVGaWVs
ZCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplVmFsdWUoY29u
c3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAKICNpZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVf
RklFTERTX1VJKQogICAgIC8vIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
IGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVFZGl0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVk
aXRFbGVtZW50LmNwcAppbmRleCBjNDYyZTI2ZTQ3MGU3NWE0ZDNlNTgxMzcwODNhYzc3ZTQ3NmZi
OGUyLi4yMGM1MWY0YTA5YjY3Y2IxMjU4NTAyNmM4ZTE3ZWY4ZjA0OTI2MGY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApAQCAt
MTg5LDE1ICsxODksNiBAQCB2b2lkIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0TGl0ZXJhbChj
b25zdCBTdHJpbmcmIHRleHQpCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAot
Ci1ib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnM6OnNob3VsZEhhdmVT
ZWNvbmRGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICFzdGVwUmFuZ2UubWluaW11bSgpLnJl
bWFpbmRlcihzdGF0aWNfY2FzdDxpbnQ+KG1zUGVyTWludXRlKSkuaXNaZXJvKCkKLSAgICAgICAg
fHwgIXN0ZXBSYW5nZS5zdGVwKCkucmVtYWluZGVyKHN0YXRpY19jYXN0PGludD4obXNQZXJNaW51
dGUpKS5pc1plcm8oKTsKLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCiBE
YXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyOjp+RWRpdENvbnRyb2xPd25lcigp
CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVk
aXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVt
ZW50LmgKaW5kZXggYmVkYTI5ZGNjZmNhYzZiMjIyZDIwODYxNTE4ZjU2YmM4M2Q5OGQxNC4uZWNi
ZWFhZDg5ZWY0YWI1MTVmN2U3MDYwZDJhNjdlMDIzMDQ3YjMyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaApAQCAtNzUsOCArNzUsNiBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAsIHN0ZXBSYW5nZShzdGVwUmFuZ2UpCiAgICAgICAgIHsK
ICAgICAgICAgfQotCi0gICAgICAgIGJvb2wgc2hvdWxkSGF2ZVNlY29uZEZpZWxkKCkgY29uc3Q7
CiAgICAgfTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCosIEVkaXRDb250cm9sT3duZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTG9jYWxlSUNVLmNwcAppbmRleCA0OGZjMTUzMDdmNzY2MmY1YWRhMDBiNGM5NWI2
Njg2NDhjZmNjMDliLi44YWFhOGI5NTRmODBhZTIzNWIyMWU1MjAxZDQyZWViNmQ4MmVlYTc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCkBAIC0xODIsMTAg
KzE4MiwxMCBAQCBkb3VibGUgTG9jYWxlSUNVOjpwYXJzZURhdGVUaW1lKGNvbnN0IFN0cmluZyYg
aW5wdXQsIERhdGVDb21wb25lbnRzOjpUeXBlIHR5cGUpCiAgICAgcmV0dXJuIGRhdGU7CiB9CiAK
LVN0cmluZyBMb2NhbGVJQ1U6OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBk
YXRlQ29tcG9uZW50cykKK1N0cmluZyBMb2NhbGVJQ1U6OmZvcm1hdERhdGVUaW1lKGNvbnN0IERh
dGVDb21wb25lbnRzJiBkYXRlQ29tcG9uZW50cywgRm9ybWF0VHlwZSBmb3JtYXRUeXBlKQogewog
ICAgIGlmIChkYXRlQ29tcG9uZW50cy50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OkRhdGUpCi0g
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIExvY2FsaXplcjo6Zm9ybWF0
RGF0ZVRpbWUoZGF0ZUNvbXBvbmVudHMsIGZvcm1hdFR5cGUpOwogICAgIGlmICghaW5pdGlhbGl6
ZVNob3J0RGF0ZUZvcm1hdCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgZG91Ymxl
IGlucHV0ID0gZGF0ZUNvbXBvbmVudHMubWlsbGlzZWNvbmRzU2luY2VFcG9jaCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmgKaW5kZXggNjlmM2Q2NTJlYWE3MWYxYTlm
YmQ5MzBhZGM0YTJlNDFmMDViYzllZi4uYTEyNmY2YjExYmI5N2JjYTUwYTliYmI5YjVjYzI0YjI0
NDZiMjZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJ
Q1UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oCkBAIC01
Miw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEZvciBMb2NhbGl6ZWREYXRlCiAgICAgdmly
dHVhbCBkb3VibGUgcGFyc2VEYXRlVGltZShjb25zdCBTdHJpbmcmLCBEYXRlQ29tcG9uZW50czo6
VHlwZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29uc3Qg
RGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRl
VGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYsIEZvcm1hdFR5cGUgPSBGb3JtYXRUeXBlVW5zcGVj
aWZpZWQpIE9WRVJSSURFOwogI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCiAgICAgdmlydHVh
bCBTdHJpbmcgZGF0ZUZvcm1hdFRleHQoKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3BwCmluZGV4IDQ5MGQ4ZTkwZTMxY2U4NzY3N2IzZTdiMmVl
ZTY4YjRiYWZmOGI3YWUuLmYwM2M5N2Y2NmIzYTVhNjY1MjdkMWJlMDRiMzQwOTFkMDA5ZDUwYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5jcHAKQEAgLTQ4Nywx
MCArNDg3LDEwIEBAIHZvaWQgTG9jYWxlV2luOjphcHBlbmRGb3VyRGlnaXRzTnVtYmVyKGludCB2
YWx1ZSwgU3RyaW5nQnVpbGRlciYgYnVmZmVyKQogICAgIGJ1ZmZlci5hcHBlbmQoY29udmVydFRv
TG9jYWxpemVkTnVtYmVyKG51bWJlckJ1ZmZlci50b1N0cmluZygpKSk7CiB9CiAKLVN0cmluZyBM
b2NhbGVXaW46OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlQ29tcG9u
ZW50cykKK1N0cmluZyBMb2NhbGVXaW46OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25l
bnRzJiBkYXRlQ29tcG9uZW50cywgRm9ybWF0VHlwZSBmb3JtYXRUeXBlKQogewogICAgIGlmIChk
YXRlQ29tcG9uZW50cy50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OkRhdGUpCi0gICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIExvY2FsaXplcjo6Zm9ybWF0RGF0ZVRpbWUo
ZGF0ZUNvbXBvbmVudHMsIGZvcm1hdFR5cGUpOwogICAgIGVuc3VyZVNob3J0RGF0ZVRva2Vucygp
OwogICAgIHJldHVybiBmb3JtYXREYXRlKG1fc2hvcnREYXRlVG9rZW5zLCBtX2Jhc2VZZWFyLCBk
YXRlQ29tcG9uZW50cy5mdWxsWWVhcigpLCBkYXRlQ29tcG9uZW50cy5tb250aCgpLCBkYXRlQ29t
cG9uZW50cy5tb250aERheSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTG9jYWxlV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2Fs
ZVdpbi5oCmluZGV4IDVjZmIwNTJhNDJjMzFjOTVjM2Y3NmRkYjEyMDhlYzcwZDcxZWZiMjUuLjE1
MDcyMjE0ODVlYmI5MjAwZjM5NDRiZDk4ZDkxNzNkNjI2YzkzNGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIExvY2FsZVdpbiogY3VycmVudExvY2FsZSgpOwogICAgIH5Mb2NhbGVXaW4oKTsKICAg
ICB2aXJ0dWFsIGRvdWJsZSBwYXJzZURhdGVUaW1lKGNvbnN0IFN0cmluZyYsIERhdGVDb21wb25l
bnRzOjpUeXBlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRlVGltZShj
b25zdCBEYXRlQ29tcG9uZW50cyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1h
dERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiwgRm9ybWF0VHlwZSA9IEZvcm1hdFR5cGVV
bnNwZWNpZmllZCkgT1ZFUlJJREU7CiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKICAgICB2
aXJ0dWFsIFN0cmluZyBkYXRlRm9ybWF0VGV4dCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIG1vbnRoTGFiZWxzKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5jcHAKaW5kZXggNmM5NTdlNTUzOWVlMjAwN2FkNzJi
OGE0NDk0NzJmMWMyZmQ3ZjNjZi4uNmUyOWQ4OGU1NGEwODZiY2U1ODNhMjI2YTcwZTFhYWVhODU3
ODhlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmNwcApAQCAt
MzEsMTAgKzMxLDEyMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxvY2FsaXpl
ci5oIgogCisjaW5jbHVkZSAiRGF0ZVRpbWVGb3JtYXQuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmIEVOQUJMRShJTlBV
VF9NVUxUSVBMRV9GSUVMRFNfVUkpCisKK2NsYXNzIERhdGVUaW1lU3RyaW5nQnVpbGRlciA6IHBy
aXZhdGUgRGF0ZVRpbWVGb3JtYXQ6OlRva2VuSGFuZGxlciB7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoRGF0ZVRpbWVTdHJpbmdCdWlsZGVyKTsKKworcHVibGljOgorICAgIC8vIFRoZSBhcmd1
bWVudCBvYmplY3RzIG11c3QgYmUgYWxpdmUgdW50aWwgdGhpcyBvYmplY3QgZGllcy4KKyAgICBE
YXRlVGltZVN0cmluZ0J1aWxkZXIoTG9jYWxpemVyJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmKTsK
KworICAgIGJvb2wgYnVpbGQoY29uc3QgU3RyaW5nJik7CisgICAgU3RyaW5nIHRvU3RyaW5nKCk7
CisKK3ByaXZhdGU6CisgICAgLy8gRGF0ZVRpbWVGb3JtYXQ6OlRva2VuSGFuZGxlciBmdW5jdGlv
bnMuCisgICAgdmlydHVhbCB2b2lkIHZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZSwgaW50KSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgdmlzaXRMaXRlcmFsKGNv
bnN0IFN0cmluZyYpIE9WRVJSSURFIEZJTkFMOworCisgICAgU3RyaW5nIHplcm9QYWRTdHJpbmco
Y29uc3QgU3RyaW5nJiwgc2l6ZV90IHdpZHRoKTsKKyAgICB2b2lkIGFwcGVuZE51bWJlcihpbnQg
bnVtYmVyLCBzaXplX3Qgd2lkdGgpOworCisgICAgU3RyaW5nQnVpbGRlciBtX2J1aWxkZXI7Cisg
ICAgTG9jYWxpemVyJiBtX2xvY2FsaXplcjsKKyAgICBjb25zdCBEYXRlQ29tcG9uZW50cyYgbV9k
YXRlOworfTsKKworRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjpEYXRlVGltZVN0cmluZ0J1aWxkZXIo
TG9jYWxpemVyJiBsb2NhbGl6ZXIsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQorICAgIDog
bV9sb2NhbGl6ZXIobG9jYWxpemVyKQorICAgICwgbV9kYXRlKGRhdGUpCit7Cit9CisKK2Jvb2wg
RGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjpidWlsZChjb25zdCBTdHJpbmcmIGZvcm1hdFN0cmluZykK
K3sKKyAgICBtX2J1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KGZvcm1hdFN0cmluZy5sZW5ndGgoKSk7
CisgICAgcmV0dXJuIERhdGVUaW1lRm9ybWF0OjpwYXJzZShmb3JtYXRTdHJpbmcsICp0aGlzKTsK
K30KKworU3RyaW5nIERhdGVUaW1lU3RyaW5nQnVpbGRlcjo6emVyb1BhZFN0cmluZyhjb25zdCBT
dHJpbmcmIHN0cmluZywgc2l6ZV90IHdpZHRoKQoreworICAgIGlmIChzdHJpbmcubGVuZ3RoKCkg
Pj0gd2lkdGgpCisgICAgICAgIHJldHVybiBzdHJpbmc7CisgICAgU3RyaW5nQnVpbGRlciB6ZXJv
UGFkZGVkU3RyaW5nQnVpbGRlcjsKKyAgICB6ZXJvUGFkZGVkU3RyaW5nQnVpbGRlci5yZXNlcnZl
Q2FwYWNpdHkod2lkdGgpOworICAgIGZvciAoc2l6ZV90IGkgPSBzdHJpbmcubGVuZ3RoKCk7IGkg
PCB3aWR0aDsgKytpKQorICAgICAgICB6ZXJvUGFkZGVkU3RyaW5nQnVpbGRlci5hcHBlbmQoIjAi
KTsKKyAgICB6ZXJvUGFkZGVkU3RyaW5nQnVpbGRlci5hcHBlbmQoc3RyaW5nKTsKKyAgICByZXR1
cm4gemVyb1BhZGRlZFN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKK30KKwordm9pZCBEYXRlVGlt
ZVN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcihpbnQgbnVtYmVyLCBzaXplX3Qgd2lkdGgpCit7
CisgICAgU3RyaW5nIHplcm9QYWRkZWROdW1iZXJTdHJpbmcgPSB6ZXJvUGFkU3RyaW5nKFN0cmlu
Zzo6bnVtYmVyKG51bWJlciksIHdpZHRoKTsKKyAgICBtX2J1aWxkZXIuYXBwZW5kKG1fbG9jYWxp
emVyLmNvbnZlcnRUb0xvY2FsaXplZE51bWJlcih6ZXJvUGFkZGVkTnVtYmVyU3RyaW5nKSk7Cit9
CisKK3ZvaWQgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGUgZmllbGRUeXBlLCBpbnQgbnVtYmVyT2ZQYXR0ZXJuQ2hhcmFjdGVycykKK3sK
KyAgICBzd2l0Y2ggKGZpZWxkVHlwZSkgeworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZVBlcmlvZDoKKyAgICAgICAgbV9idWlsZGVyLmFwcGVuZChtX2xvY2FsaXplci50aW1lQU1Q
TUxhYmVscygpWyhtX2RhdGUuaG91cigpID49IDEyID8gMSA6IDApXSk7CisgICAgICAgIHJldHVy
bjsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMTI6IHsKKyAgICAgICAg
aW50IGhvdXIxMiA9IG1fZGF0ZS5ob3VyKCkgJSAxMjsKKyAgICAgICAgaWYgKCFob3VyMTIpCisg
ICAgICAgICAgICBob3VyMTIgPSAxMjsKKyAgICAgICAgYXBwZW5kTnVtYmVyKGhvdXIxMiwgbnVt
YmVyT2ZQYXR0ZXJuQ2hhcmFjdGVycyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2Fz
ZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjIzOgorICAgICAgICBhcHBlbmROdW1iZXIo
bV9kYXRlLmhvdXIoKSwgbnVtYmVyT2ZQYXR0ZXJuQ2hhcmFjdGVycyk7CisgICAgICAgIHJldHVy
bjsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMTE6CisgICAgICAgIGFw
cGVuZE51bWJlcihtX2RhdGUuaG91cigpICUgMTIsIG51bWJlck9mUGF0dGVybkNoYXJhY3RlcnMp
OworICAgICAgICByZXR1cm47CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91
cjI0OiB7CisgICAgICAgIGludCBob3VyMjQgPSBtX2RhdGUuaG91cigpOworICAgICAgICBpZiAo
IWhvdXIyNCkKKyAgICAgICAgICAgIGhvdXIyNCA9IDI0OworICAgICAgICBhcHBlbmROdW1iZXIo
aG91cjI0LCBudW1iZXJPZlBhdHRlcm5DaGFyYWN0ZXJzKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNaW51dGU6CisgICAgICAgIGFw
cGVuZE51bWJlcihtX2RhdGUubWludXRlKCksIG51bWJlck9mUGF0dGVybkNoYXJhY3RlcnMpOwor
ICAgICAgICByZXR1cm47CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlU2Vjb25k
OgorICAgICAgICBpZiAoIW1fZGF0ZS5taWxsaXNlY29uZCgpKQorICAgICAgICAgICAgYXBwZW5k
TnVtYmVyKG1fZGF0ZS5zZWNvbmQoKSwgbnVtYmVyT2ZQYXR0ZXJuQ2hhcmFjdGVycyk7CisgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgZG91YmxlIHNlY29uZCA9IG1fZGF0ZS5zZWNvbmQoKSAr
IG1fZGF0ZS5taWxsaXNlY29uZCgpIC8gMTAwMC4wOworICAgICAgICAgICAgU3RyaW5nIHplcm9Q
YWRkZWRTZWNvbmRTdHJpbmcgPSB6ZXJvUGFkU3RyaW5nKFN0cmluZzo6Zm9ybWF0KCIlLjAzZiIs
IHNlY29uZCksIG51bWJlck9mUGF0dGVybkNoYXJhY3RlcnMgKyA0KTsKKyAgICAgICAgICAgIG1f
YnVpbGRlci5hcHBlbmQobV9sb2NhbGl6ZXIuY29udmVydFRvTG9jYWxpemVkTnVtYmVyKHplcm9Q
YWRkZWRTZWNvbmRTdHJpbmcpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgZGVm
YXVsdDoKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKwordm9pZCBEYXRlVGltZVN0cmluZ0J1
aWxkZXI6OnZpc2l0TGl0ZXJhbChjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgQVNTRVJUKHRl
eHQubGVuZ3RoKCkpOworICAgIG1fYnVpbGRlci5hcHBlbmQodGV4dCk7Cit9CisKK1N0cmluZyBE
YXRlVGltZVN0cmluZ0J1aWxkZXI6OnRvU3RyaW5nKCkKK3sKKyAgICByZXR1cm4gbV9idWlsZGVy
LnRvU3RyaW5nKCk7Cit9CisKKyNlbmRpZgorCiBMb2NhbGl6ZXI6On5Mb2NhbGl6ZXIoKQogewog
fQpAQCAtMjM4LDQgKzM1MCwxNyBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxpemVyOjp0
aW1lQU1QTUxhYmVscygpCiB9CiAjZW5kaWYKIAorU3RyaW5nIExvY2FsaXplcjo6Zm9ybWF0RGF0
ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUsIEZvcm1hdFR5cGUgZm9ybWF0VHlwZSkK
K3sKKyNpZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVfRklFTERTX1VJKQorICAgIGlmIChkYXRlLnR5
cGUoKSAhPSBEYXRlQ29tcG9uZW50czo6VGltZSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwor
ICAgIERhdGVUaW1lU3RyaW5nQnVpbGRlciBidWlsZGVyKCp0aGlzLCBkYXRlKTsKKyAgICBidWls
ZGVyLmJ1aWxkKGZvcm1hdFR5cGUgPT0gRm9ybWF0VHlwZVNob3J0ID8gc2hvcnRUaW1lRm9ybWF0
KCkgOiB0aW1lRm9ybWF0KCkpOworICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisjZWxz
ZQorICAgIHJldHVybiBTdHJpbmcoKTsKKyNlbmRpZgorfQorCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9Mb2NhbGl6ZXIuaAppbmRleCA5ZTE0ZDgyNDQwNDkwYjQ4ZjJmNGNlZmYzNGE2
NDVmYTg3NTMxOTYzLi43NzU5M2U5M2JiMDgwNWM2ZDI2YmViYWVjNGQzMTJjZjc4Y2JhYWJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmgKQEAgLTEwOSwxMCArMTA5
LDEyIEBAIHB1YmxpYzoKICAgICAvLyAwMDowMDowMC4wMDAgVVRDLgogICAgIHZpcnR1YWwgZG91
YmxlIHBhcnNlRGF0ZVRpbWUoY29uc3QgU3RyaW5nJiwgRGF0ZUNvbXBvbmVudHM6OlR5cGUpID0g
MDsKIAorICAgIGVudW0gRm9ybWF0VHlwZSB7IEZvcm1hdFR5cGVVbnNwZWNpZmllZCwgRm9ybWF0
VHlwZVNob3J0LCBGb3JtYXRUeXBlTWVkaXVtIH07CisKICAgICAvLyBTZXJpYWxpemVzIHRoZSBz
cGVjaWZpZWQgZGF0ZSBpbnRvIGEgZm9ybWF0dGVkIGRhdGUgc3RyaW5nIHRvCiAgICAgLy8gZGlz
cGxheSB0byB0aGUgdXNlci4gSWYgYW4gaW1wbGVtZW50YXRpb24gZG9lc24ndCBzdXBwb3J0CiAg
ICAgLy8gbG9jYWxpemVkIGRhdGVzIHRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGFuIGVtcHR5
IHN0cmluZy4KLSAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29t
cG9uZW50cyYpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRlVGltZShjb25zdCBE
YXRlQ29tcG9uZW50cyYsIEZvcm1hdFR5cGUgPSBGb3JtYXRUeXBlVW5zcGVjaWZpZWQpOwogCiAg
ICAgdmlydHVhbCB+TG9jYWxpemVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9tYWMvTG9jYWxlTWFjLmgKaW5kZXggMmQ5ZThhZGU2OWEyZjQxNGY4YjA2OTFhNWEzODdhMzVl
OTBkMGEzNS4uZWQ5ZjcxNjIwOGM0NDA4YjNjYmI0ZDBiMzczY2VmMjQ3NTBhMmRiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLmgKQEAgLTUxLDcgKzUx
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBMb2NhbGVNYWMqIGN1cnJlbnRMb2NhbGUoKTsKICAg
ICB+TG9jYWxlTWFjKCk7CiAgICAgdmlydHVhbCBkb3VibGUgcGFyc2VEYXRlVGltZShjb25zdCBT
dHJpbmcmLCBEYXRlQ29tcG9uZW50czo6VHlwZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJp
bmcgZm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYsIEZvcm1h
dFR5cGUgPSBGb3JtYXRUeXBlVW5zcGVjaWZpZWQpIE9WRVJSSURFOwogCiAjaWYgRU5BQkxFKENB
TEVOREFSX1BJQ0tFUikKICAgICB2aXJ0dWFsIFN0cmluZyBkYXRlRm9ybWF0VGV4dCgpIE9WRVJS
SURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCmlu
ZGV4IGFlOWY2NzViNzhlNjBiOWRiY2U0N2QyMzAxYzJiNzg5NDc0NDRmYjkuLjU3ZTdiOGUzMzFj
N2ExOTU2MzMxYjVlZjIxNTIwYWI2MDI5NGE5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0KQEAgLTEyOCwxMCArMTI4LDEwIEBAIGRvdWJsZSBM
b2NhbGVNYWM6OnBhcnNlRGF0ZVRpbWUoY29uc3QgU3RyaW5nJiBpbnB1dCwgRGF0ZUNvbXBvbmVu
dHM6OlR5cGUgdHlwZSkKICAgICByZXR1cm4gW2RhdGUgdGltZUludGVydmFsU2luY2UxOTcwXSAq
IG1zUGVyU2Vjb25kOwogfQogCi1TdHJpbmcgTG9jYWxlTWFjOjpmb3JtYXREYXRlVGltZShjb25z
dCBEYXRlQ29tcG9uZW50cyYgZGF0ZUNvbXBvbmVudHMpCitTdHJpbmcgTG9jYWxlTWFjOjpmb3Jt
YXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUNvbXBvbmVudHMsIEZvcm1hdFR5
cGUgZm9ybWF0VHlwZSkKIHsKICAgICBpZiAoZGF0ZUNvbXBvbmVudHMudHlwZSgpICE9IERhdGVD
b21wb25lbnRzOjpEYXRlKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIHJldHVy
biBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lKGRhdGVDb21wb25lbnRzLCBmb3JtYXRUeXBlKTsK
ICAgICBSZXRhaW5QdHI8TlNEYXRlRm9ybWF0dGVyPiBmb3JtYXR0ZXIoQWRvcHROUywgY3JlYXRl
U2hvcnREYXRlRm9ybWF0dGVyKCkpOwogICAgIE5TVGltZUludGVydmFsIGludGVydmFsID0gZGF0
ZUNvbXBvbmVudHMubWlsbGlzZWNvbmRzU2luY2VFcG9jaCgpIC8gbXNQZXJTZWNvbmQ7CiAgICAg
cmV0dXJuIFN0cmluZyhbZm9ybWF0dGVyLmdldCgpIHN0cmluZ0Zyb21EYXRlOltOU0RhdGUgZGF0
ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZTE5NzA6aW50ZXJ2YWxdXSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2FsZU1hY1Rlc3QuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVNYWNUZXN0LmNwcAppbmRleCBmNWYyNjhkYjM1YjA4MzEx
NmZiYzBjNjdlNzZiNjIyNDRkMzhiMmEzLi42ZjBmOTU3ZTJjMGQwNGU3NDA1ZjgzMDc1Y2I0YjFk
M2RmYzYwNDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2Fs
ZU1hY1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlTWFj
VGVzdC5jcHAKQEAgLTU3LDYgKzU3LDEzIEBAIHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJuIGRh
dGU7CiAgICAgfQogCisgICAgRGF0ZUNvbXBvbmVudHMgdGltZUNvbXBvbmVudHMoaW50IGhvdXIs
IGludCBtaW51dGUsIGludCBzZWNvbmQsIGludCBtaWxsaXNlY29uZCkKKyAgICB7CisgICAgICAg
IERhdGVDb21wb25lbnRzIGRhdGU7CisgICAgICAgIGRhdGUuc2V0TWlsbGlzZWNvbmRzU2luY2VN
aWRuaWdodChob3VyICogbXNQZXJIb3VyICsgbWludXRlICogbXNQZXJNaW51dGUgKyBzZWNvbmQg
KiBtc1BlclNlY29uZCArIG1pbGxpc2Vjb25kKTsKKyAgICAgICAgcmV0dXJuIGRhdGU7CisgICAg
fQorCiAgICAgZG91YmxlIG1zRm9yRGF0ZShpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5KQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGRhdGVUb0RheXNGcm9tMTk3MCh5ZWFyLCBtb250aCwgZGF5
KSAqIG1zUGVyRGF5OwpAQCAtNjgsNiArNzUsMTIgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1
cm4gbG9jYWxlLT5mb3JtYXREYXRlVGltZShkYXRlQ29tcG9uZW50cyh5ZWFyLCBtb250aCwgZGF5
KSk7CiAgICAgfQogCisgICAgU3RyaW5nIGZvcm1hdFRpbWUoY29uc3QgU3RyaW5nJiBsb2NhbGVT
dHJpbmcsIGludCBob3VyLCBpbnQgbWludXRlLCBpbnQgc2Vjb25kLCBpbnQgbWlsbGlzZWNvbmQs
IGJvb2wgdXNlU2hvcnRGb3JtYXQpCisgICAgeworICAgICAgICBPd25QdHI8TG9jYWxlTWFjPiBs
b2NhbGUgPSBMb2NhbGVNYWM6OmNyZWF0ZShsb2NhbGVTdHJpbmcpOworICAgICAgICByZXR1cm4g
bG9jYWxlLT5mb3JtYXREYXRlVGltZSh0aW1lQ29tcG9uZW50cyhob3VyLCBtaW51dGUsIHNlY29u
ZCwgbWlsbGlzZWNvbmQpLCAodXNlU2hvcnRGb3JtYXQgPyBMb2NhbGl6ZXI6OkZvcm1hdFR5cGVT
aG9ydCA6IExvY2FsaXplcjo6Rm9ybWF0VHlwZU1lZGl1bSkpOworICAgIH0KKwogICAgIGRvdWJs
ZSBwYXJzZURhdGUoY29uc3QgU3RyaW5nJiBsb2NhbGVTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGF0
ZVN0cmluZykKICAgICB7CiAgICAgICAgIE93blB0cjxMb2NhbGVNYWM+IGxvY2FsZSA9IExvY2Fs
ZU1hYzo6Y3JlYXRlKGxvY2FsZVN0cmluZyk7CkBAIC0xMzQsNiArMTQ3LDI3IEBAIFRFU1RfRihM
b2NhbGVNYWNUZXN0LCBmb3JtYXREYXRlKQogICAgIEVYUEVDVF9TVFJFUSgiMDUvMDQvMjciLCBm
b3JtYXREYXRlKCJqYV9KUCIsIDIwMDUsIEFwcmlsLCAyNykudXRmOCgpLmRhdGEoKSk7CiB9CiAK
K1RFU1RfRihMb2NhbGVNYWNUZXN0LCBmb3JtYXRUaW1lKQoreworICAgIEVYUEVDVF9TVFJFUSgi
MToyMyBQTSIsIGZvcm1hdFRpbWUoImVuX1VTIiwgMTMsIDIzLCAwMCwgMDAwLCB0cnVlKS51dGY4
KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIjEzOjIzIiwgZm9ybWF0VGltZSgiZnJfRlIi
LCAxMywgMjMsIDAwLCAwMDAsIHRydWUpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJF
USgiMTM6MjMiLCBmb3JtYXRUaW1lKCJqYV9KUCIsIDEzLCAyMywgMDAsIDAwMCwgdHJ1ZSkudXRm
OCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJceEQ5XHhBMTpceEQ5XHhBMlx4RDlceEEz
IFx4RDlceDg1IiwgZm9ybWF0VGltZSgiYXIiLCAxMywgMjMsIDAwLCAwMDAsIHRydWUpLnV0Zjgo
KS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiXHhEQlx4QjFceERCXHhCMzpceERCXHhCMlx4
REJceEIzIiwgZm9ybWF0VGltZSgiZmEiLCAxMywgMjMsIDAwLCAwMDAsIHRydWUpLnV0ZjgoKS5k
YXRhKCkpOworCisgICAgRVhQRUNUX1NUUkVRKCIxMjowMCBBTSIsIGZvcm1hdFRpbWUoImVuX1VT
IiwgMDAsIDAwLCAwMCwgMDAwLCB0cnVlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RS
RVEoIjAwOjAwIiwgZm9ybWF0VGltZSgiZnJfRlIiLCAwMCwgMDAsIDAwLCAwMDAsIHRydWUpLnV0
ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiMDowMCIsIGZvcm1hdFRpbWUoImphX0pQ
IiwgMDAsIDAwLCAwMCwgMDAwLCB0cnVlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RS
RVEoIlx4RDlceEExXHhEOVx4QTI6XHhEOVx4QTBceEQ5XHhBMCBceEQ4XHhCNSIsIGZvcm1hdFRp
bWUoImFyIiwgMDAsIDAwLCAwMCwgMDAwLCB0cnVlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBF
Q1RfU1RSRVEoIlx4REJceEIwOlx4REJceEIwXHhEQlx4QjAiLCBmb3JtYXRUaW1lKCJmYSIsIDAw
LCAwMCwgMDAsIDAwMCwgdHJ1ZSkudXRmOCgpLmRhdGEoKSk7CisKKyAgICBFWFBFQ1RfU1RSRVEo
Ijc6MDc6MDcuMDA3IEFNIiwgZm9ybWF0VGltZSgiZW5fVVMiLCAwNywgMDcsIDA3LCAwMDcsIGZh
bHNlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIjA3OjA3OjA3LDAwNyIsIGZv
cm1hdFRpbWUoImZyX0ZSIiwgMDcsIDA3LCAwNywgMDA3LCBmYWxzZSkudXRmOCgpLmRhdGEoKSk7
CisgICAgRVhQRUNUX1NUUkVRKCI3OjA3OjA3LjAwNyIsIGZvcm1hdFRpbWUoImphX0pQIiwgMDcs
IDA3LCAwNywgMDA3LCBmYWxzZSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJc
eEQ5XHhBNzpceEQ5XHhBMFx4RDlceEE3Olx4RDlceEEwXHhEOVx4QTdceEQ5XHhBQlx4RDlceEEw
XHhEOVx4QTBceEQ5XHhBNyBceEQ4XHhCNSIsIGZvcm1hdFRpbWUoImFyIiwgMDcsIDA3LCAwNywg
MDA3LCBmYWxzZSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJceERCXHhCNzpc
eERCXHhCMFx4REJceEI3Olx4REJceEIwXHhEQlx4QjdceEQ5XHhBQlx4REJceEIwXHhEQlx4QjBc
eERCXHhCNyIsIGZvcm1hdFRpbWUoImZhIiwgMDcsIDA3LCAwNywgMDA3LCBmYWxzZSkudXRmOCgp
LmRhdGEoKSk7Cit9CisKIFRFU1RfRihMb2NhbGVNYWNUZXN0LCBwYXJzZURhdGUpCiB7CiAgICAg
RVhQRUNUX0VRKG1zRm9yRGF0ZSgyMDA1LCBBcHJpbCwgMjcpLCBwYXJzZURhdGUoImVuX1VTIiwg
IkFwcmlsIDI3LCAyMDA1IikpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166866</attachid>
            <date>2012-10-03 05:30:02 -0700</date>
            <delta_ts>2012-10-03 06:30:19 -0700</delta_ts>
            <desc>Added UNUSED_PARAM for Localizer::formatDateTime</desc>
            <filename>bug-98237-20121003212914.patch</filename>
            <type>text/plain</type>
            <size>24985</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZlY2M2YzE1NmYzMGY5
ZDM1ZjViNGFhZDQ5OWIwZDE4NmJmZWU5OS4uN2I5YWRmZjY5OTIxOTQ0OWE5OWNjOTZlMjNiZjll
ZWQzNTMwMDQwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEyLTEwLTAzICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCBsb2Nh
bGl6ZVZhbHVlIGZvciBUaW1lSW5wdXRUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05ODIzNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlIHdhbnQgdG8gbG9jYWxpemUgdGltZSB2YWx1ZXMgZm9yIHRo
ZSBzdWdnZXN0aW9uIHBpY2tlci4KKyAgICAgICAgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyIHBhcnNl
cyBhIGZvcm1hdCBhbmQgY3JlYXRlcyBhIGZvcm1hdHRlZCBzdHJpbmcuCisKKyAgICAgICAgQWRk
ZWQgY2hyb21pdW0gdW5pdCB0ZXN0IExvY2FsZU1hY1Rlc3QuZm9ybWF0VGltZQorCisgICAgICAg
ICogaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2hv
dWxkSGF2ZVNlY29uZEZpZWxkKTogTW92ZWQgZnJvbSBMYXlvdXRQYXJhbWV0ZXJzIGJlY2F1c2Ug
d2Ugd2FudCB0byB1c2UgaXQgaW5zaWRlIGxvY2FsaXplVmFsdWUuCisgICAgICAgIChXZWJDb3Jl
KToKKyAgICAgICAgKiBodG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
Lmg6CisgICAgICAgIChCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSk6Cisg
ICAgICAgICogaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBodG1s
L0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVM
b2NhbElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBodG1sL1Rp
bWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6bG9jYWxp
emVWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1
dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyk6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRU
eXBlLmg6CisgICAgICAgIChUaW1lSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9E
YXRlVGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVU
aW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnM6OkxheW91dFBhcmFtZXRlcnMpOgorICAg
ICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okxv
Y2FsZUlDVTo6Zm9ybWF0RGF0ZVRpbWUpOiBDYWxscyBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1l
IGlmIHRoZSBkYXRlIGNvbXBvbmVudCBpcyBub3QgYSBkYXRlLgorICAgICAgICAqIHBsYXRmb3Jt
L3RleHQvTG9jYWxlSUNVLmg6CisgICAgICAgIChMb2NhbGVJQ1UpOgorICAgICAgICAqIHBsYXRm
b3JtL3RleHQvTG9jYWxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZVdpbjo6Zm9y
bWF0RGF0ZVRpbWUpOiBDYWxscyBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lIGlmIHRoZSBkYXRl
IGNvbXBvbmVudCBpcyBub3QgYSBkYXRlLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxl
V2luLmg6CisgICAgICAgIChMb2NhbGVXaW4pOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9j
YWxpemVyLmNwcDoKKyAgICAgICAgKERhdGVUaW1lU3RyaW5nQnVpbGRlcik6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3RyaW5nQnVpbGRlcjo6RGF0ZVRp
bWVTdHJpbmdCdWlsZGVyKTogVGFrZXMgYQorICAgICAgICBMb2NhbGl6ZXIgcG9pbnRlci4gVGhp
cyBpcyB1c2VkIGluc2lkZSB0aGUgTG9jYWxpemVyIHNvIHRoZSBMb2NhbGl6ZXIKKyAgICAgICAg
d2lsbCBvdXQgbGl2ZSB0aGUgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyLgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjpidWlsZCk6IEJ1aWxkcyBhIGxvY2FsaXplZCBzdHJp
bmcgZm9yIHRoZSBnaXZlbiBmb3JtYXQuCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN0cmlu
Z0J1aWxkZXI6Onplcm9QYWRTdHJpbmcpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTdHJp
bmdCdWlsZGVyOjphcHBlbmROdW1iZXIpOiBBcHBlbmRzIGEgbnVtYmVyIHdpdGggbGVmdCB6ZXJv
IHBhZGRpbmcgdG8gbWF0Y2ggd2lkdGguCisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN0cmlu
Z0J1aWxkZXI6OnZpc2l0RmllbGQpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTdHJpbmdC
dWlsZGVyOjp2aXNpdExpdGVyYWwpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTdHJpbmdC
dWlsZGVyOjp0b1N0cmluZyk6IFJldHVybnMgdGhlIGxvY2FsaXplZCBzdHJpbmcuCisgICAgICAg
IChXZWJDb3JlOjpMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L0xvY2FsaXplci5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1h
Yy5oOgorICAgICAgICAoTG9jYWxlTWFjKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L21hYy9M
b2NhbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVNYWM6OmZvcm1hdERhdGVUaW1l
KTogQ2FsbHMgTG9jYWxpemVyOjpmb3JtYXREYXRlVGltZSBpZiB0aGUgZGF0ZSBjb21wb25lbnQg
aXMgbm90IGEgZGF0ZS4KKwogMjAxMi0xMC0wMyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgSW50cm9kdWNlIERhdGVDb21wb25lbnRzOjptaW5pbXVtWWVhciBh
bmQgbWF4aW11bVllYXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggZTJmNzZkNTg0Nzgy
MzdiMzc3ZjgwZDVkZmM0Y2JlNGNiNWIyYTYyNy4uNzBmMWY5Y2RiYzc5ODEzZjhkZjdkNWZjMjcy
MDc5YmQ5YzlhMDBlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxMi0xMC0wMyAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAg
ICAgICBJbXBsZW1lbnQgbG9jYWxpemVWYWx1ZSBmb3IgVGltZUlucHV0VHlwZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgyMzcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3RzL0xvY2FsZU1hY1Rl
c3QuY3BwOgorICAgICAgICAoTG9jYWxlTWFjVGVzdDo6dGltZUNvbXBvbmVudHMpOgorICAgICAg
ICAoTG9jYWxlTWFjVGVzdCk6CisgICAgICAgIChMb2NhbGVNYWNUZXN0Ojpmb3JtYXRUaW1lKTog
VGVzdHMgZm9ybWF0RGF0ZVRpbWUoKSBmb3IgdGltZS4KKyAgICAgICAgKFRFU1RfRik6CisKIDIw
MTItMTAtMDIgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUHJvdmlkZSBtZW1vcnkgaW5zdHJ1bWVudGF0aW9uIGZvciBIYXNoQ291bnRlZFNldApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0Rh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcAppbmRleCBjNzI1YjE5ODVkNzUzZDVhMWE2YWU5YjM4M2I0
M2UxZDcyZDk5MjgyLi43NGQ5ZTQ4YjM1YTcxMTdjMjNmM2UxNzBjMWI4ZWNjNDU4MzRlNzRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRU
aW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZp
ZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUg
IktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZXIuaCIKICNpbmNsdWRlICJTaGFk
b3dSb290LmgiCisjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApAQCAtMjM4LDYgKzIzOSwxNCBAQCB2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRU
aW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5lclRleHRWYWx1ZSgpCiAgICAgICAgIG1fZGF0ZVRpbWVF
ZGl0RWxlbWVudC0+c2V0RW1wdHlWYWx1ZShsYXlvdXRQYXJhbWV0ZXJzLCBkYXRlKTsKIH0KIAor
Ym9vbCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2hvdWxkSGF2ZVNl
Y29uZEZpZWxkKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKSBjb25zdAoreworICAgIFN0ZXBS
YW5nZSBzdGVwUmFuZ2UgPSBjcmVhdGVTdGVwUmFuZ2UoQW55SXNEZWZhdWx0U3RlcCk7CisgICAg
cmV0dXJuIGRhdGUuc2Vjb25kKCkKKyAgICAgICAgfHwgIXN0ZXBSYW5nZS5taW5pbXVtKCkucmVt
YWluZGVyKHN0YXRpY19jYXN0PGludD4obXNQZXJNaW51dGUpKS5pc1plcm8oKQorICAgICAgICB8
fCAhc3RlcFJhbmdlLnN0ZXAoKS5yZW1haW5kZXIoc3RhdGljX2Nhc3Q8aW50Pihtc1Blck1pbnV0
ZSkpLmlzWmVybygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRl
QW5kVGltZUlucHV0VHlwZS5oCmluZGV4IGY2YWIxNTk2MjA0ZWY1ZGQ0MGRlNTQ0ZWM3MzJiOGQx
MWQ1YTA1ZDQuLjVhOGU2ZTI4NDE5OTVkYmNkOWFjOGY1ZGU0ZjJlZGQ4ZjRkNDlhOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0Rh
dGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHJvdGVjdGVkOgogICAgIEJh
c2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqKTsK
ICAgICB2aXJ0dWFsIH5CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSgpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6TGF5b3V0UGFyYW1ldGVycyYsIGNvbnN0IERhdGVDb21wb25lbnRzJikgY29uc3QgPSAwOwor
ICAgIGJvb2wgc2hvdWxkSGF2ZVNlY29uZEZpZWxkKGNvbnN0IERhdGVDb21wb25lbnRzJikgY29u
c3Q7CiAKIHByaXZhdGU6CiAgICAgLy8gRGF0ZVRpbWVFZGl0RWxlbWVudDo6RWRpdENvbnRyb2xP
d25lciBmdW5jdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAK
aW5kZXggYjk5YTU4MGZiYzlkZjNkZDAzNzA3ZjI2NmQwMzY4Zjk0MzcyMDEzYi4uZGQyZjIwYTU5
YzkzOWNkMWZiZDUyODU2OWIwYzlhZjBlNGYxNjZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlVGltZUlucHV0VHlwZS5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCBTdHJpbmcgRGF0ZVRpbWVJ
bnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNT
dGF0ZSYgZAogCiB2b2lkIERhdGVUaW1lSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMo
RGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycywg
Y29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpIGNvbnN0CiB7Ci0gICAgaWYgKGRhdGUuc2Vjb25k
KCkgfHwgbGF5b3V0UGFyYW1ldGVycy5zaG91bGRIYXZlU2Vjb25kRmllbGQoKSkgeworICAgIGlm
IChzaG91bGRIYXZlU2Vjb25kRmllbGQoZGF0ZSkpIHsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVy
cy5kYXRlVGltZUZvcm1hdCA9IGxheW91dFBhcmFtZXRlcnMubG9jYWxpemVyLmRhdGVUaW1lRm9y
bWF0V2l0aFNlY29uZCgpOwogICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxiYWNrRGF0ZVRp
bWVGb3JtYXQgPSAiZGQvTU0veXl5eSBISDptbTpzcyI7CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCmluZGV4IGUyM2VmODE4
Mzc2MzYwZmJmNjY1ODU5MTFhMTQ4NjVmYjU4ZGJmNjYuLmZmYzQ1MmJlOTBkODAzMjVlNjg5YzNk
OTc4MzFkMjg2NmY4ZmFiMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVMb2NhbElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmNwcApAQCAtMTUxLDcgKzE1MSw3IEBAIFN0cmluZyBEYXRlVGltZUxvY2Fs
SW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRz
U3RhCiAKIHZvaWQgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJz
KERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMs
IGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKSBjb25zdAogewotICAgIGlmIChkYXRlLnNlY29u
ZCgpIHx8IGxheW91dFBhcmFtZXRlcnMuc2hvdWxkSGF2ZVNlY29uZEZpZWxkKCkpIHsKKyAgICBp
ZiAoc2hvdWxkSGF2ZVNlY29uZEZpZWxkKGRhdGUpKSB7CiAgICAgICAgIGxheW91dFBhcmFtZXRl
cnMuZGF0ZVRpbWVGb3JtYXQgPSBsYXlvdXRQYXJhbWV0ZXJzLmxvY2FsaXplci5kYXRlVGltZUZv
cm1hdFdpdGhTZWNvbmQoKTsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0RhdGVU
aW1lRm9ybWF0ID0gImRkL01NL3l5eXkgSEg6bW06c3MiOwogICAgIH0gZWxzZSB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCA0OGE2ODRjMzVlNmU1OWJlZjVhY2NhNmVj
MDc3NDE4ZDBhMDJkZWQ4Li43MTA5M2Y4Mjk2YTk2NTcyYzVhZjRhNTM0YTU3ZGZlYWIyYjAzYTM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTEyMCw2ICsxMjAsMTgg
QEAgYm9vbCBUaW1lSW5wdXRUeXBlOjppc1RpbWVGaWVsZCgpIGNvbnN0CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKK1N0cmluZyBUaW1lSW5wdXRUeXBlOjpsb2NhbGl6ZVZhbHVlKGNvbnN0IFN0cmlu
ZyYgcHJvcG9zZWRWYWx1ZSkgY29uc3QKK3sKKyAgICBEYXRlQ29tcG9uZW50cyBkYXRlOworICAg
IGlmICghcGFyc2VUb0RhdGVDb21wb25lbnRzKHByb3Bvc2VkVmFsdWUsICZkYXRlKSkKKyAgICAg
ICAgcmV0dXJuIHByb3Bvc2VkVmFsdWU7CisKKyAgICBMb2NhbGl6ZXI6OkZvcm1hdFR5cGUgZm9y
bWF0VHlwZSA9IHNob3VsZEhhdmVTZWNvbmRGaWVsZChkYXRlKSA/IExvY2FsaXplcjo6Rm9ybWF0
VHlwZU1lZGl1bSA6IExvY2FsaXplcjo6Rm9ybWF0VHlwZVNob3J0OworCisgICAgU3RyaW5nIGxv
Y2FsaXplZCA9IGVsZW1lbnQoKS0+bG9jYWxpemVyKCkuZm9ybWF0RGF0ZVRpbWUoZGF0ZSwgZm9y
bWF0VHlwZSk7CisgICAgcmV0dXJuIGxvY2FsaXplZC5pc0VtcHR5KCkgPyBwcm9wb3NlZFZhbHVl
IDogbG9jYWxpemVkOworfQorCiAjaWYgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkK
IAogU3RyaW5nIFRpbWVJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3Qg
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVGaWVsZHNTdGF0ZSkgY29uc3QKQEAgLTE0Miw3
ICsxNTQsNyBAQCBTdHJpbmcgVGltZUlucHV0VHlwZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0
ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiBkYXRlVAogCiB2b2lkIFRpbWVJbnB1dFR5cGU6
OnNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0
ZXJzJiBsYXlvdXRQYXJhbWV0ZXJzLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkgY29uc3QK
IHsKLSAgICBpZiAoZGF0ZS5zZWNvbmQoKSB8fCBsYXlvdXRQYXJhbWV0ZXJzLnNob3VsZEhhdmVT
ZWNvbmRGaWVsZCgpKSB7CisgICAgaWYgKHNob3VsZEhhdmVTZWNvbmRGaWVsZChkYXRlKSkgewog
ICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmRhdGVUaW1lRm9ybWF0ID0gbGF5b3V0UGFyYW1ldGVy
cy5sb2NhbGl6ZXIudGltZUZvcm1hdCgpOwogICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxi
YWNrRGF0ZVRpbWVGb3JtYXQgPSAiSEg6bW06c3MiOwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGltZUlucHV0VHlwZS5oCmluZGV4IGQ1YTk3OTJhN2E0MjBlOTY0MjQyZDIwOTY2NDRmZjdi
MzFmMDkzNjYuLjY5YTEyYmQyOGExZmQ3YjMxMGYxMDA0NzUxMzEyYWY4YTJiYWYzOTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBAIC01NSw2ICs1NSw3IEBAIHByaXZhdGU6CiAg
ICAgdmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVybmFsKGNvbnN0IFVDaGFy
KiwgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoZG91YmxlLCBEYXRl
Q29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1RpbWVGaWVs
ZCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIGxvY2FsaXplVmFsdWUoY29u
c3QgU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7CiAKICNpZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVf
RklFTERTX1VJKQogICAgIC8vIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
IGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVFZGl0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVk
aXRFbGVtZW50LmNwcAppbmRleCBjNDYyZTI2ZTQ3MGU3NWE0ZDNlNTgxMzcwODNhYzc3ZTQ3NmZi
OGUyLi4yMGM1MWY0YTA5YjY3Y2IxMjU4NTAyNmM4ZTE3ZWY4ZjA0OTI2MGY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApAQCAt
MTg5LDE1ICsxODksNiBAQCB2b2lkIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0TGl0ZXJhbChj
b25zdCBTdHJpbmcmIHRleHQpCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAot
Ci1ib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnM6OnNob3VsZEhhdmVT
ZWNvbmRGaWVsZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuICFzdGVwUmFuZ2UubWluaW11bSgpLnJl
bWFpbmRlcihzdGF0aWNfY2FzdDxpbnQ+KG1zUGVyTWludXRlKSkuaXNaZXJvKCkKLSAgICAgICAg
fHwgIXN0ZXBSYW5nZS5zdGVwKCkucmVtYWluZGVyKHN0YXRpY19jYXN0PGludD4obXNQZXJNaW51
dGUpKS5pc1plcm8oKTsKLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCiBE
YXRlVGltZUVkaXRFbGVtZW50OjpFZGl0Q29udHJvbE93bmVyOjp+RWRpdENvbnRyb2xPd25lcigp
CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVk
aXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVt
ZW50LmgKaW5kZXggYmVkYTI5ZGNjZmNhYzZiMjIyZDIwODYxNTE4ZjU2YmM4M2Q5OGQxNC4uZWNi
ZWFhZDg5ZWY0YWI1MTVmN2U3MDYwZDJhNjdlMDIzMDQ3YjMyOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaApAQCAtNzUsOCArNzUsNiBA
QCBwdWJsaWM6CiAgICAgICAgICAgICAsIHN0ZXBSYW5nZShzdGVwUmFuZ2UpCiAgICAgICAgIHsK
ICAgICAgICAgfQotCi0gICAgICAgIGJvb2wgc2hvdWxkSGF2ZVNlY29uZEZpZWxkKCkgY29uc3Q7
CiAgICAgfTsKIAogICAgIHN0YXRpYyBQYXNzUmVmUHRyPERhdGVUaW1lRWRpdEVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCosIEVkaXRDb250cm9sT3duZXImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTG9jYWxlSUNVLmNwcAppbmRleCA0OGZjMTUzMDdmNzY2MmY1YWRhMDBiNGM5NWI2
Njg2NDhjZmNjMDliLi44YWFhOGI5NTRmODBhZTIzNWIyMWU1MjAxZDQyZWViNmQ4MmVlYTc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCkBAIC0xODIsMTAg
KzE4MiwxMCBAQCBkb3VibGUgTG9jYWxlSUNVOjpwYXJzZURhdGVUaW1lKGNvbnN0IFN0cmluZyYg
aW5wdXQsIERhdGVDb21wb25lbnRzOjpUeXBlIHR5cGUpCiAgICAgcmV0dXJuIGRhdGU7CiB9CiAK
LVN0cmluZyBMb2NhbGVJQ1U6OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBk
YXRlQ29tcG9uZW50cykKK1N0cmluZyBMb2NhbGVJQ1U6OmZvcm1hdERhdGVUaW1lKGNvbnN0IERh
dGVDb21wb25lbnRzJiBkYXRlQ29tcG9uZW50cywgRm9ybWF0VHlwZSBmb3JtYXRUeXBlKQogewog
ICAgIGlmIChkYXRlQ29tcG9uZW50cy50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OkRhdGUpCi0g
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIExvY2FsaXplcjo6Zm9ybWF0
RGF0ZVRpbWUoZGF0ZUNvbXBvbmVudHMsIGZvcm1hdFR5cGUpOwogICAgIGlmICghaW5pdGlhbGl6
ZVNob3J0RGF0ZUZvcm1hdCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgZG91Ymxl
IGlucHV0ID0gZGF0ZUNvbXBvbmVudHMubWlsbGlzZWNvbmRzU2luY2VFcG9jaCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmgKaW5kZXggNjlmM2Q2NTJlYWE3MWYxYTlm
YmQ5MzBhZGM0YTJlNDFmMDViYzllZi4uYTEyNmY2YjExYmI5N2JjYTUwYTliYmI5YjVjYzI0YjI0
NDZiMjZkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJ
Q1UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oCkBAIC01
Miw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEZvciBMb2NhbGl6ZWREYXRlCiAgICAgdmly
dHVhbCBkb3VibGUgcGFyc2VEYXRlVGltZShjb25zdCBTdHJpbmcmLCBEYXRlQ29tcG9uZW50czo6
VHlwZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29uc3Qg
RGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRl
VGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYsIEZvcm1hdFR5cGUgPSBGb3JtYXRUeXBlVW5zcGVj
aWZpZWQpIE9WRVJSSURFOwogI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCiAgICAgdmlydHVh
bCBTdHJpbmcgZGF0ZUZvcm1hdFRleHQoKSBPVkVSUklERTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3BwCmluZGV4IDQ5MGQ4ZTkwZTMxY2U4NzY3N2IzZTdiMmVl
ZTY4YjRiYWZmOGI3YWUuLmYwM2M5N2Y2NmIzYTVhNjY1MjdkMWJlMDRiMzQwOTFkMDA5ZDUwYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5jcHAKQEAgLTQ4Nywx
MCArNDg3LDEwIEBAIHZvaWQgTG9jYWxlV2luOjphcHBlbmRGb3VyRGlnaXRzTnVtYmVyKGludCB2
YWx1ZSwgU3RyaW5nQnVpbGRlciYgYnVmZmVyKQogICAgIGJ1ZmZlci5hcHBlbmQoY29udmVydFRv
TG9jYWxpemVkTnVtYmVyKG51bWJlckJ1ZmZlci50b1N0cmluZygpKSk7CiB9CiAKLVN0cmluZyBM
b2NhbGVXaW46OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlQ29tcG9u
ZW50cykKK1N0cmluZyBMb2NhbGVXaW46OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25l
bnRzJiBkYXRlQ29tcG9uZW50cywgRm9ybWF0VHlwZSBmb3JtYXRUeXBlKQogewogICAgIGlmIChk
YXRlQ29tcG9uZW50cy50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OkRhdGUpCi0gICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIExvY2FsaXplcjo6Zm9ybWF0RGF0ZVRpbWUo
ZGF0ZUNvbXBvbmVudHMsIGZvcm1hdFR5cGUpOwogICAgIGVuc3VyZVNob3J0RGF0ZVRva2Vucygp
OwogICAgIHJldHVybiBmb3JtYXREYXRlKG1fc2hvcnREYXRlVG9rZW5zLCBtX2Jhc2VZZWFyLCBk
YXRlQ29tcG9uZW50cy5mdWxsWWVhcigpLCBkYXRlQ29tcG9uZW50cy5tb250aCgpLCBkYXRlQ29t
cG9uZW50cy5tb250aERheSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTG9jYWxlV2luLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2Fs
ZVdpbi5oCmluZGV4IDVjZmIwNTJhNDJjMzFjOTVjM2Y3NmRkYjEyMDhlYzcwZDcxZWZiMjUuLjE1
MDcyMjE0ODVlYmI5MjAwZjM5NDRiZDk4ZDkxNzNkNjI2YzkzNGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIExvY2FsZVdpbiogY3VycmVudExvY2FsZSgpOwogICAgIH5Mb2NhbGVXaW4oKTsKICAg
ICB2aXJ0dWFsIGRvdWJsZSBwYXJzZURhdGVUaW1lKGNvbnN0IFN0cmluZyYsIERhdGVDb21wb25l
bnRzOjpUeXBlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRlVGltZShj
b25zdCBEYXRlQ29tcG9uZW50cyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1h
dERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiwgRm9ybWF0VHlwZSA9IEZvcm1hdFR5cGVV
bnNwZWNpZmllZCkgT1ZFUlJJREU7CiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKICAgICB2
aXJ0dWFsIFN0cmluZyBkYXRlRm9ybWF0VGV4dCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29u
c3QgVmVjdG9yPFN0cmluZz4mIG1vbnRoTGFiZWxzKCkgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5jcHAKaW5kZXggNmM5NTdlNTUzOWVlMjAwN2FkNzJi
OGE0NDk0NzJmMWMyZmQ3ZjNjZi4uNTRkZjAyNWYwMTFkN2FlZjg5ZDhlOTVjNTJlMDc3YTkyOWQ1
M2FhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmNwcApAQCAt
MzEsMTAgKzMxLDEyMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkxvY2FsaXpl
ci5oIgogCisjaW5jbHVkZSAiRGF0ZVRpbWVGb3JtYXQuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmIEVOQUJMRShJTlBV
VF9NVUxUSVBMRV9GSUVMRFNfVUkpCisKK2NsYXNzIERhdGVUaW1lU3RyaW5nQnVpbGRlciA6IHBy
aXZhdGUgRGF0ZVRpbWVGb3JtYXQ6OlRva2VuSGFuZGxlciB7CisgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoRGF0ZVRpbWVTdHJpbmdCdWlsZGVyKTsKKworcHVibGljOgorICAgIC8vIFRoZSBhcmd1
bWVudCBvYmplY3RzIG11c3QgYmUgYWxpdmUgdW50aWwgdGhpcyBvYmplY3QgZGllcy4KKyAgICBE
YXRlVGltZVN0cmluZ0J1aWxkZXIoTG9jYWxpemVyJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmKTsK
KworICAgIGJvb2wgYnVpbGQoY29uc3QgU3RyaW5nJik7CisgICAgU3RyaW5nIHRvU3RyaW5nKCk7
CisKK3ByaXZhdGU6CisgICAgLy8gRGF0ZVRpbWVGb3JtYXQ6OlRva2VuSGFuZGxlciBmdW5jdGlv
bnMuCisgICAgdmlydHVhbCB2b2lkIHZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZSwgaW50KSBPVkVSUklERSBGSU5BTDsKKyAgICB2aXJ0dWFsIHZvaWQgdmlzaXRMaXRlcmFsKGNv
bnN0IFN0cmluZyYpIE9WRVJSSURFIEZJTkFMOworCisgICAgU3RyaW5nIHplcm9QYWRTdHJpbmco
Y29uc3QgU3RyaW5nJiwgc2l6ZV90IHdpZHRoKTsKKyAgICB2b2lkIGFwcGVuZE51bWJlcihpbnQg
bnVtYmVyLCBzaXplX3Qgd2lkdGgpOworCisgICAgU3RyaW5nQnVpbGRlciBtX2J1aWxkZXI7Cisg
ICAgTG9jYWxpemVyJiBtX2xvY2FsaXplcjsKKyAgICBjb25zdCBEYXRlQ29tcG9uZW50cyYgbV9k
YXRlOworfTsKKworRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjpEYXRlVGltZVN0cmluZ0J1aWxkZXIo
TG9jYWxpemVyJiBsb2NhbGl6ZXIsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQorICAgIDog
bV9sb2NhbGl6ZXIobG9jYWxpemVyKQorICAgICwgbV9kYXRlKGRhdGUpCit7Cit9CisKK2Jvb2wg
RGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjpidWlsZChjb25zdCBTdHJpbmcmIGZvcm1hdFN0cmluZykK
K3sKKyAgICBtX2J1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KGZvcm1hdFN0cmluZy5sZW5ndGgoKSk7
CisgICAgcmV0dXJuIERhdGVUaW1lRm9ybWF0OjpwYXJzZShmb3JtYXRTdHJpbmcsICp0aGlzKTsK
K30KKworU3RyaW5nIERhdGVUaW1lU3RyaW5nQnVpbGRlcjo6emVyb1BhZFN0cmluZyhjb25zdCBT
dHJpbmcmIHN0cmluZywgc2l6ZV90IHdpZHRoKQoreworICAgIGlmIChzdHJpbmcubGVuZ3RoKCkg
Pj0gd2lkdGgpCisgICAgICAgIHJldHVybiBzdHJpbmc7CisgICAgU3RyaW5nQnVpbGRlciB6ZXJv
UGFkZGVkU3RyaW5nQnVpbGRlcjsKKyAgICB6ZXJvUGFkZGVkU3RyaW5nQnVpbGRlci5yZXNlcnZl
Q2FwYWNpdHkod2lkdGgpOworICAgIGZvciAoc2l6ZV90IGkgPSBzdHJpbmcubGVuZ3RoKCk7IGkg
PCB3aWR0aDsgKytpKQorICAgICAgICB6ZXJvUGFkZGVkU3RyaW5nQnVpbGRlci5hcHBlbmQoIjAi
KTsKKyAgICB6ZXJvUGFkZGVkU3RyaW5nQnVpbGRlci5hcHBlbmQoc3RyaW5nKTsKKyAgICByZXR1
cm4gemVyb1BhZGRlZFN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKK30KKwordm9pZCBEYXRlVGlt
ZVN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcihpbnQgbnVtYmVyLCBzaXplX3Qgd2lkdGgpCit7
CisgICAgU3RyaW5nIHplcm9QYWRkZWROdW1iZXJTdHJpbmcgPSB6ZXJvUGFkU3RyaW5nKFN0cmlu
Zzo6bnVtYmVyKG51bWJlciksIHdpZHRoKTsKKyAgICBtX2J1aWxkZXIuYXBwZW5kKG1fbG9jYWxp
emVyLmNvbnZlcnRUb0xvY2FsaXplZE51bWJlcih6ZXJvUGFkZGVkTnVtYmVyU3RyaW5nKSk7Cit9
CisKK3ZvaWQgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjp2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0
OjpGaWVsZFR5cGUgZmllbGRUeXBlLCBpbnQgbnVtYmVyT2ZQYXR0ZXJuQ2hhcmFjdGVycykKK3sK
KyAgICBzd2l0Y2ggKGZpZWxkVHlwZSkgeworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZVBlcmlvZDoKKyAgICAgICAgbV9idWlsZGVyLmFwcGVuZChtX2xvY2FsaXplci50aW1lQU1Q
TUxhYmVscygpWyhtX2RhdGUuaG91cigpID49IDEyID8gMSA6IDApXSk7CisgICAgICAgIHJldHVy
bjsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMTI6IHsKKyAgICAgICAg
aW50IGhvdXIxMiA9IG1fZGF0ZS5ob3VyKCkgJSAxMjsKKyAgICAgICAgaWYgKCFob3VyMTIpCisg
ICAgICAgICAgICBob3VyMTIgPSAxMjsKKyAgICAgICAgYXBwZW5kTnVtYmVyKGhvdXIxMiwgbnVt
YmVyT2ZQYXR0ZXJuQ2hhcmFjdGVycyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2Fz
ZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjIzOgorICAgICAgICBhcHBlbmROdW1iZXIo
bV9kYXRlLmhvdXIoKSwgbnVtYmVyT2ZQYXR0ZXJuQ2hhcmFjdGVycyk7CisgICAgICAgIHJldHVy
bjsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVIb3VyMTE6CisgICAgICAgIGFw
cGVuZE51bWJlcihtX2RhdGUuaG91cigpICUgMTIsIG51bWJlck9mUGF0dGVybkNoYXJhY3RlcnMp
OworICAgICAgICByZXR1cm47CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91
cjI0OiB7CisgICAgICAgIGludCBob3VyMjQgPSBtX2RhdGUuaG91cigpOworICAgICAgICBpZiAo
IWhvdXIyNCkKKyAgICAgICAgICAgIGhvdXIyNCA9IDI0OworICAgICAgICBhcHBlbmROdW1iZXIo
aG91cjI0LCBudW1iZXJPZlBhdHRlcm5DaGFyYWN0ZXJzKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVNaW51dGU6CisgICAgICAgIGFw
cGVuZE51bWJlcihtX2RhdGUubWludXRlKCksIG51bWJlck9mUGF0dGVybkNoYXJhY3RlcnMpOwor
ICAgICAgICByZXR1cm47CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlU2Vjb25k
OgorICAgICAgICBpZiAoIW1fZGF0ZS5taWxsaXNlY29uZCgpKQorICAgICAgICAgICAgYXBwZW5k
TnVtYmVyKG1fZGF0ZS5zZWNvbmQoKSwgbnVtYmVyT2ZQYXR0ZXJuQ2hhcmFjdGVycyk7CisgICAg
ICAgIGVsc2UgeworICAgICAgICAgICAgZG91YmxlIHNlY29uZCA9IG1fZGF0ZS5zZWNvbmQoKSAr
IG1fZGF0ZS5taWxsaXNlY29uZCgpIC8gMTAwMC4wOworICAgICAgICAgICAgU3RyaW5nIHplcm9Q
YWRkZWRTZWNvbmRTdHJpbmcgPSB6ZXJvUGFkU3RyaW5nKFN0cmluZzo6Zm9ybWF0KCIlLjAzZiIs
IHNlY29uZCksIG51bWJlck9mUGF0dGVybkNoYXJhY3RlcnMgKyA0KTsKKyAgICAgICAgICAgIG1f
YnVpbGRlci5hcHBlbmQobV9sb2NhbGl6ZXIuY29udmVydFRvTG9jYWxpemVkTnVtYmVyKHplcm9Q
YWRkZWRTZWNvbmRTdHJpbmcpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm47CisgICAgZGVm
YXVsdDoKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKwordm9pZCBEYXRlVGltZVN0cmluZ0J1
aWxkZXI6OnZpc2l0TGl0ZXJhbChjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgQVNTRVJUKHRl
eHQubGVuZ3RoKCkpOworICAgIG1fYnVpbGRlci5hcHBlbmQodGV4dCk7Cit9CisKK1N0cmluZyBE
YXRlVGltZVN0cmluZ0J1aWxkZXI6OnRvU3RyaW5nKCkKK3sKKyAgICByZXR1cm4gbV9idWlsZGVy
LnRvU3RyaW5nKCk7Cit9CisKKyNlbmRpZgorCiBMb2NhbGl6ZXI6On5Mb2NhbGl6ZXIoKQogewog
fQpAQCAtMjM4LDQgKzM1MCwxOSBAQCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgTG9jYWxpemVyOjp0
aW1lQU1QTUxhYmVscygpCiB9CiAjZW5kaWYKIAorU3RyaW5nIExvY2FsaXplcjo6Zm9ybWF0RGF0
ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUsIEZvcm1hdFR5cGUgZm9ybWF0VHlwZSkK
K3sKKyNpZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVfRklFTERTX1VJKQorICAgIGlmIChkYXRlLnR5
cGUoKSAhPSBEYXRlQ29tcG9uZW50czo6VGltZSkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOwor
ICAgIERhdGVUaW1lU3RyaW5nQnVpbGRlciBidWlsZGVyKCp0aGlzLCBkYXRlKTsKKyAgICBidWls
ZGVyLmJ1aWxkKGZvcm1hdFR5cGUgPT0gRm9ybWF0VHlwZVNob3J0ID8gc2hvcnRUaW1lRm9ybWF0
KCkgOiB0aW1lRm9ybWF0KCkpOworICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CisjZWxz
ZQorICAgIFVOVVNFRF9QQVJBTShkYXRlKTsKKyAgICBVTlVTRURfUEFSQU0oZm9ybWF0VHlwZSk7
CisgICAgcmV0dXJuIFN0cmluZygpOworI2VuZGlmCit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0xvY2FsaXplci5oCmluZGV4IDllMTRkODI0NDA0OTBiNDhmMmY0Y2VmZjM0YTY0
NWZhODc1MzE5NjMuLjc3NTkzZTkzYmIwODA1YzZkMjZiZWJhZWM0ZDMxMmNmNzhjYmFhYmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIuaApAQCAtMTA5LDEwICsxMDks
MTIgQEAgcHVibGljOgogICAgIC8vIDAwOjAwOjAwLjAwMCBVVEMuCiAgICAgdmlydHVhbCBkb3Vi
bGUgcGFyc2VEYXRlVGltZShjb25zdCBTdHJpbmcmLCBEYXRlQ29tcG9uZW50czo6VHlwZSkgPSAw
OwogCisgICAgZW51bSBGb3JtYXRUeXBlIHsgRm9ybWF0VHlwZVVuc3BlY2lmaWVkLCBGb3JtYXRU
eXBlU2hvcnQsIEZvcm1hdFR5cGVNZWRpdW0gfTsKKwogICAgIC8vIFNlcmlhbGl6ZXMgdGhlIHNw
ZWNpZmllZCBkYXRlIGludG8gYSBmb3JtYXR0ZWQgZGF0ZSBzdHJpbmcgdG8KICAgICAvLyBkaXNw
bGF5IHRvIHRoZSB1c2VyLiBJZiBhbiBpbXBsZW1lbnRhdGlvbiBkb2Vzbid0IHN1cHBvcnQKICAg
ICAvLyBsb2NhbGl6ZWQgZGF0ZXMgdGhlIGZ1bmN0aW9uIHNob3VsZCByZXR1cm4gYW4gZW1wdHkg
c3RyaW5nLgotICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21w
b25lbnRzJikgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdERhdGVUaW1lKGNvbnN0IERh
dGVDb21wb25lbnRzJiwgRm9ybWF0VHlwZSA9IEZvcm1hdFR5cGVVbnNwZWNpZmllZCk7CiAKICAg
ICB2aXJ0dWFsIH5Mb2NhbGl6ZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L21hYy9Mb2NhbGVNYWMuaAppbmRleCAyZDllOGFkZTY5YTJmNDE0ZjhiMDY5MWE1YTM4N2EzNWU5
MGQwYTM1Li5lZDlmNzE2MjA4YzQ0MDhiM2NiYjRkMGIzNzNjZWYyNDc1MGEyZGJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMuaApAQCAtNTEsNyArNTEs
NyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIExvY2FsZU1hYyogY3VycmVudExvY2FsZSgpOwogICAg
IH5Mb2NhbGVNYWMoKTsKICAgICB2aXJ0dWFsIGRvdWJsZSBwYXJzZURhdGVUaW1lKGNvbnN0IFN0
cmluZyYsIERhdGVDb21wb25lbnRzOjpUeXBlKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIFN0cmlu
ZyBmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgU3RyaW5nIGZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiwgRm9ybWF0
VHlwZSA9IEZvcm1hdFR5cGVVbnNwZWNpZmllZCkgT1ZFUlJJREU7CiAKICNpZiBFTkFCTEUoQ0FM
RU5EQVJfUElDS0VSKQogICAgIHZpcnR1YWwgU3RyaW5nIGRhdGVGb3JtYXRUZXh0KCkgT1ZFUlJJ
REU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0KaW5k
ZXggYWU5ZjY3NWI3OGU2MGI5ZGJjZTQ3ZDIzMDFjMmI3ODk0NzQ0NGZiOS4uNTdlN2I4ZTMzMWM3
YTE5NTYzMzFiNWVmMjE1MjBhYjYwMjk0YTk5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbQpAQCAtMTI4LDEwICsxMjgsMTAgQEAgZG91YmxlIExv
Y2FsZU1hYzo6cGFyc2VEYXRlVGltZShjb25zdCBTdHJpbmcmIGlucHV0LCBEYXRlQ29tcG9uZW50
czo6VHlwZSB0eXBlKQogICAgIHJldHVybiBbZGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZTE5NzBdICog
bXNQZXJTZWNvbmQ7CiB9CiAKLVN0cmluZyBMb2NhbGVNYWM6OmZvcm1hdERhdGVUaW1lKGNvbnN0
IERhdGVDb21wb25lbnRzJiBkYXRlQ29tcG9uZW50cykKK1N0cmluZyBMb2NhbGVNYWM6OmZvcm1h
dERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlQ29tcG9uZW50cywgRm9ybWF0VHlw
ZSBmb3JtYXRUeXBlKQogewogICAgIGlmIChkYXRlQ29tcG9uZW50cy50eXBlKCkgIT0gRGF0ZUNv
bXBvbmVudHM6OkRhdGUpCi0gICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJu
IExvY2FsaXplcjo6Zm9ybWF0RGF0ZVRpbWUoZGF0ZUNvbXBvbmVudHMsIGZvcm1hdFR5cGUpOwog
ICAgIFJldGFpblB0cjxOU0RhdGVGb3JtYXR0ZXI+IGZvcm1hdHRlcihBZG9wdE5TLCBjcmVhdGVT
aG9ydERhdGVGb3JtYXR0ZXIoKSk7CiAgICAgTlNUaW1lSW50ZXJ2YWwgaW50ZXJ2YWwgPSBkYXRl
Q29tcG9uZW50cy5taWxsaXNlY29uZHNTaW5jZUVwb2NoKCkgLyBtc1BlclNlY29uZDsKICAgICBy
ZXR1cm4gU3RyaW5nKFtmb3JtYXR0ZXIuZ2V0KCkgc3RyaW5nRnJvbURhdGU6W05TRGF0ZSBkYXRl
V2l0aFRpbWVJbnRlcnZhbFNpbmNlMTk3MDppbnRlcnZhbF1dKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlTWFjVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0xvY2FsZU1hY1Rlc3QuY3BwCmluZGV4IGY1ZjI2OGRiMzViMDgzMTE2
ZmJjMGM2N2U3NmI2MjI0NGQzOGIyYTMuLjZmMGY5NTdlMmMwZDA0ZTc0MDVmODMwNzVjYjRiMWQz
ZGZjNjA0NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxl
TWFjVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVNYWNU
ZXN0LmNwcApAQCAtNTcsNiArNTcsMTMgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1cm4gZGF0
ZTsKICAgICB9CiAKKyAgICBEYXRlQ29tcG9uZW50cyB0aW1lQ29tcG9uZW50cyhpbnQgaG91ciwg
aW50IG1pbnV0ZSwgaW50IHNlY29uZCwgaW50IG1pbGxpc2Vjb25kKQorICAgIHsKKyAgICAgICAg
RGF0ZUNvbXBvbmVudHMgZGF0ZTsKKyAgICAgICAgZGF0ZS5zZXRNaWxsaXNlY29uZHNTaW5jZU1p
ZG5pZ2h0KGhvdXIgKiBtc1BlckhvdXIgKyBtaW51dGUgKiBtc1Blck1pbnV0ZSArIHNlY29uZCAq
IG1zUGVyU2Vjb25kICsgbWlsbGlzZWNvbmQpOworICAgICAgICByZXR1cm4gZGF0ZTsKKyAgICB9
CisKICAgICBkb3VibGUgbXNGb3JEYXRlKGludCB5ZWFyLCBpbnQgbW9udGgsIGludCBkYXkpCiAg
ICAgewogICAgICAgICByZXR1cm4gZGF0ZVRvRGF5c0Zyb20xOTcwKHllYXIsIG1vbnRoLCBkYXkp
ICogbXNQZXJEYXk7CkBAIC02OCw2ICs3NSwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHJldHVy
biBsb2NhbGUtPmZvcm1hdERhdGVUaW1lKGRhdGVDb21wb25lbnRzKHllYXIsIG1vbnRoLCBkYXkp
KTsKICAgICB9CiAKKyAgICBTdHJpbmcgZm9ybWF0VGltZShjb25zdCBTdHJpbmcmIGxvY2FsZVN0
cmluZywgaW50IGhvdXIsIGludCBtaW51dGUsIGludCBzZWNvbmQsIGludCBtaWxsaXNlY29uZCwg
Ym9vbCB1c2VTaG9ydEZvcm1hdCkKKyAgICB7CisgICAgICAgIE93blB0cjxMb2NhbGVNYWM+IGxv
Y2FsZSA9IExvY2FsZU1hYzo6Y3JlYXRlKGxvY2FsZVN0cmluZyk7CisgICAgICAgIHJldHVybiBs
b2NhbGUtPmZvcm1hdERhdGVUaW1lKHRpbWVDb21wb25lbnRzKGhvdXIsIG1pbnV0ZSwgc2Vjb25k
LCBtaWxsaXNlY29uZCksICh1c2VTaG9ydEZvcm1hdCA/IExvY2FsaXplcjo6Rm9ybWF0VHlwZVNo
b3J0IDogTG9jYWxpemVyOjpGb3JtYXRUeXBlTWVkaXVtKSk7CisgICAgfQorCiAgICAgZG91Ymxl
IHBhcnNlRGF0ZShjb25zdCBTdHJpbmcmIGxvY2FsZVN0cmluZywgY29uc3QgU3RyaW5nJiBkYXRl
U3RyaW5nKQogICAgIHsKICAgICAgICAgT3duUHRyPExvY2FsZU1hYz4gbG9jYWxlID0gTG9jYWxl
TWFjOjpjcmVhdGUobG9jYWxlU3RyaW5nKTsKQEAgLTEzNCw2ICsxNDcsMjcgQEAgVEVTVF9GKExv
Y2FsZU1hY1Rlc3QsIGZvcm1hdERhdGUpCiAgICAgRVhQRUNUX1NUUkVRKCIwNS8wNC8yNyIsIGZv
cm1hdERhdGUoImphX0pQIiwgMjAwNSwgQXByaWwsIDI3KS51dGY4KCkuZGF0YSgpKTsKIH0KIAor
VEVTVF9GKExvY2FsZU1hY1Rlc3QsIGZvcm1hdFRpbWUpCit7CisgICAgRVhQRUNUX1NUUkVRKCIx
OjIzIFBNIiwgZm9ybWF0VGltZSgiZW5fVVMiLCAxMywgMjMsIDAwLCAwMDAsIHRydWUpLnV0Zjgo
KS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiMTM6MjMiLCBmb3JtYXRUaW1lKCJmcl9GUiIs
IDEzLCAyMywgMDAsIDAwMCwgdHJ1ZSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVR
KCIxMzoyMyIsIGZvcm1hdFRpbWUoImphX0pQIiwgMTMsIDIzLCAwMCwgMDAwLCB0cnVlKS51dGY4
KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlx4RDlceEExOlx4RDlceEEyXHhEOVx4QTMg
XHhEOVx4ODUiLCBmb3JtYXRUaW1lKCJhciIsIDEzLCAyMywgMDAsIDAwMCwgdHJ1ZSkudXRmOCgp
LmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJceERCXHhCMVx4REJceEIzOlx4REJceEIyXHhE
Qlx4QjMiLCBmb3JtYXRUaW1lKCJmYSIsIDEzLCAyMywgMDAsIDAwMCwgdHJ1ZSkudXRmOCgpLmRh
dGEoKSk7CisKKyAgICBFWFBFQ1RfU1RSRVEoIjEyOjAwIEFNIiwgZm9ybWF0VGltZSgiZW5fVVMi
LCAwMCwgMDAsIDAwLCAwMDAsIHRydWUpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJF
USgiMDA6MDAiLCBmb3JtYXRUaW1lKCJmcl9GUiIsIDAwLCAwMCwgMDAsIDAwMCwgdHJ1ZSkudXRm
OCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCIwOjAwIiwgZm9ybWF0VGltZSgiamFfSlAi
LCAwMCwgMDAsIDAwLCAwMDAsIHRydWUpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJF
USgiXHhEOVx4QTFceEQ5XHhBMjpceEQ5XHhBMFx4RDlceEEwIFx4RDhceEI1IiwgZm9ybWF0VGlt
ZSgiYXIiLCAwMCwgMDAsIDAwLCAwMDAsIHRydWUpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVD
VF9TVFJFUSgiXHhEQlx4QjA6XHhEQlx4QjBceERCXHhCMCIsIGZvcm1hdFRpbWUoImZhIiwgMDAs
IDAwLCAwMCwgMDAwLCB0cnVlKS51dGY4KCkuZGF0YSgpKTsKKworICAgIEVYUEVDVF9TVFJFUSgi
NzowNzowNy4wMDcgQU0iLCBmb3JtYXRUaW1lKCJlbl9VUyIsIDA3LCAwNywgMDcsIDAwNywgZmFs
c2UpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiMDc6MDc6MDcsMDA3IiwgZm9y
bWF0VGltZSgiZnJfRlIiLCAwNywgMDcsIDA3LCAwMDcsIGZhbHNlKS51dGY4KCkuZGF0YSgpKTsK
KyAgICBFWFBFQ1RfU1RSRVEoIjc6MDc6MDcuMDA3IiwgZm9ybWF0VGltZSgiamFfSlAiLCAwNywg
MDcsIDA3LCAwMDcsIGZhbHNlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlx4
RDlceEE3Olx4RDlceEEwXHhEOVx4QTc6XHhEOVx4QTBceEQ5XHhBN1x4RDlceEFCXHhEOVx4QTBc
eEQ5XHhBMFx4RDlceEE3IFx4RDhceEI1IiwgZm9ybWF0VGltZSgiYXIiLCAwNywgMDcsIDA3LCAw
MDcsIGZhbHNlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlx4REJceEI3Olx4
REJceEIwXHhEQlx4Qjc6XHhEQlx4QjBceERCXHhCN1x4RDlceEFCXHhEQlx4QjBceERCXHhCMFx4
REJceEI3IiwgZm9ybWF0VGltZSgiZmEiLCAwNywgMDcsIDA3LCAwMDcsIGZhbHNlKS51dGY4KCku
ZGF0YSgpKTsKK30KKwogVEVTVF9GKExvY2FsZU1hY1Rlc3QsIHBhcnNlRGF0ZSkKIHsKICAgICBF
WFBFQ1RfRVEobXNGb3JEYXRlKDIwMDUsIEFwcmlsLCAyNyksIHBhcnNlRGF0ZSgiZW5fVVMiLCAi
QXByaWwgMjcsIDIwMDUiKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166880</attachid>
            <date>2012-10-03 06:30:24 -0700</date>
            <delta_ts>2012-10-03 19:14:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98237-20121003222935.patch</filename>
            <type>text/plain</type>
            <size>26126</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZlY2M2YzE1NmYzMGY5
ZDM1ZjViNGFhZDQ5OWIwZDE4NmJmZWU5OS4uNTQzMzk4NTYxMTRmOTMwNTMxMWIzMmY0NWIwODAy
MDhhNTUwYzUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTEwLTAzICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCBsb2Nh
bGl6ZVZhbHVlIGZvciBUaW1lSW5wdXRUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05ODIzNworCisgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFt
dXJhLgorCisgICAgICAgIFdlIHdhbnQgdG8gbG9jYWxpemUgdGltZSB2YWx1ZXMgZm9yIHRoZSBz
dWdnZXN0aW9uIHBpY2tlci4KKyAgICAgICAgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyIHBhcnNlcyBh
IGZvcm1hdCBhbmQgY3JlYXRlcyBhIGZvcm1hdHRlZCBzdHJpbmcuCisKKyAgICAgICAgQWRkZWQg
Y2hyb21pdW0gdW5pdCB0ZXN0IExvY2FsZU1hY1Rlc3QuZm9ybWF0VGltZQorCisgICAgICAgICog
aHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2hvdWxk
SGF2ZVNlY29uZEZpZWxkKTogTW92ZWQgZnJvbSBMYXlvdXRQYXJhbWV0ZXJzIGJlY2F1c2Ugd2Ug
d2FudCB0byB1c2UgaXQgaW5zaWRlIGxvY2FsaXplVmFsdWUuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBodG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmg6
CisgICAgICAgIChCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSk6CisgICAg
ICAgICogaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBodG1sL0Rh
dGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVMb2Nh
bElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBodG1sL1RpbWVJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6bG9jYWxpemVW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5
cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyk6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBl
Lmg6CisgICAgICAgIChUaW1lSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRl
VGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwv
c2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
RWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnM6OkxheW91dFBhcmFtZXRlcnMpOgorICAgICAg
ICAqIHBsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvY2Fs
ZUlDVTo6Zm9ybWF0RGF0ZVRpbWUpOiBDYWxscyBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lIGlm
IHRoZSBkYXRlIGNvbXBvbmVudCBpcyBub3QgYSBkYXRlLgorICAgICAgICAqIHBsYXRmb3JtL3Rl
eHQvTG9jYWxlSUNVLmg6CisgICAgICAgIChMb2NhbGVJQ1UpOgorICAgICAgICAqIHBsYXRmb3Jt
L3RleHQvTG9jYWxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZVdpbjo6Zm9ybWF0
RGF0ZVRpbWUpOiBDYWxscyBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lIGlmIHRoZSBkYXRlIGNv
bXBvbmVudCBpcyBub3QgYSBkYXRlLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxlV2lu
Lmg6CisgICAgICAgIChMb2NhbGVXaW4pOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxl
Tm9uZS5jcHA6CisgICAgICAgIChMb2NhbGVOb25lKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2Fs
ZU5vbmU6OmZvcm1hdERhdGVUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXpl
ci5jcHA6CisgICAgICAgIChEYXRlVGltZVN0cmluZ0J1aWxkZXIpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN0cmluZ0J1aWxkZXI6OkRhdGVUaW1lU3Ry
aW5nQnVpbGRlcik6IFRha2VzIGEKKyAgICAgICAgTG9jYWxpemVyIHBvaW50ZXIuIFRoaXMgaXMg
dXNlZCBpbnNpZGUgdGhlIExvY2FsaXplciBzbyB0aGUgTG9jYWxpemVyCisgICAgICAgIHdpbGwg
b3V0IGxpdmUgdGhlIERhdGVUaW1lU3RyaW5nQnVpbGRlci4KKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lU3RyaW5nQnVpbGRlcjo6YnVpbGQpOiBCdWlsZHMgYSBsb2NhbGl6ZWQgc3RyaW5nIGZv
ciB0aGUgZ2l2ZW4gZm9ybWF0LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTdHJpbmdCdWls
ZGVyOjp6ZXJvUGFkU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3RyaW5nQnVp
bGRlcjo6YXBwZW5kTnVtYmVyKTogQXBwZW5kcyBhIG51bWJlciB3aXRoIGxlZnQgemVybyBwYWRk
aW5nIHRvIG1hdGNoIHdpZHRoLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTdHJpbmdCdWls
ZGVyOjp2aXNpdEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3RyaW5nQnVpbGRl
cjo6dmlzaXRMaXRlcmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3RyaW5nQnVpbGRl
cjo6dG9TdHJpbmcpOiBSZXR1cm5zIHRoZSBsb2NhbGl6ZWQgc3RyaW5nLgorICAgICAgICAoV2Vi
Q29yZTo6TG9jYWxpemVyOjpmb3JtYXREYXRlVGltZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9Mb2NhbGl6ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMuaDoK
KyAgICAgICAgKExvY2FsZU1hYyk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxl
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlTWFjOjpmb3JtYXREYXRlVGltZSk6IENh
bGxzIExvY2FsaXplcjo6Zm9ybWF0RGF0ZVRpbWUgaWYgdGhlIGRhdGUgY29tcG9uZW50IGlzIG5v
dCBhIGRhdGUuCisKIDIwMTItMTAtMDMgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIEludHJvZHVjZSBEYXRlQ29tcG9uZW50czo6bWluaW11bVllYXIgYW5kIG1h
eGltdW1ZZWFyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGUyZjc2ZDU4NDc4MjM3YjM3
N2Y4MGQ1ZGZjNGNiZTRjYjViMmE2MjcuLjcwODg0NTEyOGUzYWU3ZDg5YjRhOWU5OTEzOWVlM2U5
NTQ3MGI3YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIw
MTItMTAtMDMgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
SW1wbGVtZW50IGxvY2FsaXplVmFsdWUgZm9yIFRpbWVJbnB1dFR5cGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MjM3CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgS2VudCBUYW11cmEuCisKKyAgICAgICAgKiB0ZXN0cy9Mb2NhbGVNYWNUZXN0LmNwcDoK
KyAgICAgICAgKExvY2FsZU1hY1Rlc3Q6OnRpbWVDb21wb25lbnRzKToKKyAgICAgICAgKExvY2Fs
ZU1hY1Rlc3QpOgorICAgICAgICAoTG9jYWxlTWFjVGVzdDo6Zm9ybWF0VGltZSk6IFRlc3RzIGZv
cm1hdERhdGVUaW1lKCkgZm9yIHRpbWUuCisgICAgICAgIChURVNUX0YpOgorCiAyMDEyLTEwLTAy
ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFByb3Zp
ZGUgbWVtb3J5IGluc3RydW1lbnRhdGlvbiBmb3IgSGFzaENvdW50ZWRTZXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHAKaW5kZXggYzcyNWIxOTg1ZDc1M2Q1YTFhNmFlOWIzODNiNDNlMWQ3MmQ5
OTI4Mi4uNzRkOWU0OGIzNWE3MTE3YzIzZjNlMTcwYzFiOGVjYzQ1ODM0ZTc0YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRl
QW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlICJLZXlib2Fy
ZEV2ZW50LmgiCiAjaW5jbHVkZSAiTG9jYWxpemVyLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5o
IgorI2luY2x1ZGUgPHd0Zi9EYXRlTWF0aC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTIzOCw2ICsyMzksMTQgQEAgdm9pZCBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0
VHlwZTo6dXBkYXRlSW5uZXJUZXh0VmFsdWUoKQogICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1l
bnQtPnNldEVtcHR5VmFsdWUobGF5b3V0UGFyYW1ldGVycywgZGF0ZSk7CiB9CiAKK2Jvb2wgQmFz
ZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNob3VsZEhhdmVTZWNvbmRGaWVs
ZChjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkgY29uc3QKK3sKKyAgICBTdGVwUmFuZ2Ugc3Rl
cFJhbmdlID0gY3JlYXRlU3RlcFJhbmdlKEFueUlzRGVmYXVsdFN0ZXApOworICAgIHJldHVybiBk
YXRlLnNlY29uZCgpCisgICAgICAgIHx8ICFzdGVwUmFuZ2UubWluaW11bSgpLnJlbWFpbmRlcihz
dGF0aWNfY2FzdDxpbnQ+KG1zUGVyTWludXRlKSkuaXNaZXJvKCkKKyAgICAgICAgfHwgIXN0ZXBS
YW5nZS5zdGVwKCkucmVtYWluZGVyKHN0YXRpY19jYXN0PGludD4obXNQZXJNaW51dGUpKS5pc1pl
cm8oKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuaAppbmRleCBmNmFiMTU5NjIwNGVmNWRkNDBkZTU0NGVjNzMyYjhkMTFkNWEwNWQ0
Li41YThlNmUyODQxOTk1ZGJjZDlhYzhmNWRlNGYyZWRkOGY0ZDQ5YTk2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGlt
ZUlucHV0VHlwZS5oCkBAIC00Myw2ICs0Myw3IEBAIHByb3RlY3RlZDoKICAgICBCYXNlTXVsdGlw
bGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Kik7CiAgICAgdmly
dHVhbCB+QmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUoKTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1lRWRpdEVsZW1lbnQ6OkxheW91
dFBhcmFtZXRlcnMmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYpIGNvbnN0ID0gMDsKKyAgICBib29s
IHNob3VsZEhhdmVTZWNvbmRGaWVsZChjb25zdCBEYXRlQ29tcG9uZW50cyYpIGNvbnN0OwogCiBw
cml2YXRlOgogICAgIC8vIERhdGVUaW1lRWRpdEVsZW1lbnQ6OkVkaXRDb250cm9sT3duZXIgZnVu
Y3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IGI5
OWE1ODBmYmM5ZGYzZGQwMzcwN2YyNjZkMDM2OGY5NDM3MjAxM2IuLmRkMmYyMGE1OWM5MzljZDFm
YmQ1Mjg1NjliMGM5YWYwZTRmMTY2YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
RGF0ZVRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJ
bnB1dFR5cGUuY3BwCkBAIC0xNDUsNyArMTQ1LDcgQEAgU3RyaW5nIERhdGVUaW1lSW5wdXRUeXBl
Ojpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdGUmIGQK
IAogdm9pZCBEYXRlVGltZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1l
RWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMsIGNvbnN0IERh
dGVDb21wb25lbnRzJiBkYXRlKSBjb25zdAogewotICAgIGlmIChkYXRlLnNlY29uZCgpIHx8IGxh
eW91dFBhcmFtZXRlcnMuc2hvdWxkSGF2ZVNlY29uZEZpZWxkKCkpIHsKKyAgICBpZiAoc2hvdWxk
SGF2ZVNlY29uZEZpZWxkKGRhdGUpKSB7CiAgICAgICAgIGxheW91dFBhcmFtZXRlcnMuZGF0ZVRp
bWVGb3JtYXQgPSBsYXlvdXRQYXJhbWV0ZXJzLmxvY2FsaXplci5kYXRlVGltZUZvcm1hdFdpdGhT
ZWNvbmQoKTsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0RhdGVUaW1lRm9ybWF0
ID0gImRkL01NL3l5eXkgSEg6bW06c3MiOwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAppbmRleCBlMjNlZjgxODM3NjM2MGZi
ZjY2NTg1OTExYTE0ODY1ZmI1OGRiZjY2Li5mZmM0NTJiZTkwZDgwMzI1ZTY4OWMzZDk3ODMxZDI4
NjZmOGZhYjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJ
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0
VHlwZS5jcHAKQEAgLTE1MSw3ICsxNTEsNyBAQCBTdHJpbmcgRGF0ZVRpbWVMb2NhbElucHV0VHlw
ZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YQogCiB2
b2lkIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGlt
ZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJiBsYXlvdXRQYXJhbWV0ZXJzLCBjb25zdCBE
YXRlQ29tcG9uZW50cyYgZGF0ZSkgY29uc3QKIHsKLSAgICBpZiAoZGF0ZS5zZWNvbmQoKSB8fCBs
YXlvdXRQYXJhbWV0ZXJzLnNob3VsZEhhdmVTZWNvbmRGaWVsZCgpKSB7CisgICAgaWYgKHNob3Vs
ZEhhdmVTZWNvbmRGaWVsZChkYXRlKSkgewogICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmRhdGVU
aW1lRm9ybWF0ID0gbGF5b3V0UGFyYW1ldGVycy5sb2NhbGl6ZXIuZGF0ZVRpbWVGb3JtYXRXaXRo
U2Vjb25kKCk7CiAgICAgICAgIGxheW91dFBhcmFtZXRlcnMuZmFsbGJhY2tEYXRlVGltZUZvcm1h
dCA9ICJkZC9NTS95eXl5IEhIOm1tOnNzIjsKICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VGltZUlucHV0VHlwZS5jcHAKaW5kZXggNDhhNjg0YzM1ZTZlNTliZWY1YWNjYTZlYzA3NzQxOGQw
YTAyZGVkOC4uNzEwOTNmODI5NmE5NjU3MmM1YWY0YTUzNGE1N2RmZWFiMmIwM2EzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCkBAIC0xMjAsNiArMTIwLDE4IEBAIGJvb2wg
VGltZUlucHV0VHlwZTo6aXNUaW1lRmllbGQoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQog
CitTdHJpbmcgVGltZUlucHV0VHlwZTo6bG9jYWxpemVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bv
c2VkVmFsdWUpIGNvbnN0Cit7CisgICAgRGF0ZUNvbXBvbmVudHMgZGF0ZTsKKyAgICBpZiAoIXBh
cnNlVG9EYXRlQ29tcG9uZW50cyhwcm9wb3NlZFZhbHVlLCAmZGF0ZSkpCisgICAgICAgIHJldHVy
biBwcm9wb3NlZFZhbHVlOworCisgICAgTG9jYWxpemVyOjpGb3JtYXRUeXBlIGZvcm1hdFR5cGUg
PSBzaG91bGRIYXZlU2Vjb25kRmllbGQoZGF0ZSkgPyBMb2NhbGl6ZXI6OkZvcm1hdFR5cGVNZWRp
dW0gOiBMb2NhbGl6ZXI6OkZvcm1hdFR5cGVTaG9ydDsKKworICAgIFN0cmluZyBsb2NhbGl6ZWQg
PSBlbGVtZW50KCktPmxvY2FsaXplcigpLmZvcm1hdERhdGVUaW1lKGRhdGUsIGZvcm1hdFR5cGUp
OworICAgIHJldHVybiBsb2NhbGl6ZWQuaXNFbXB0eSgpID8gcHJvcG9zZWRWYWx1ZSA6IGxvY2Fs
aXplZDsKK30KKwogI2lmIEVOQUJMRShJTlBVVF9NVUxUSVBMRV9GSUVMRFNfVUkpCiAKIFN0cmlu
ZyBUaW1lSW5wdXRUeXBlOjpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1l
RmllbGRzU3RhdGUmIGRhdGVUaW1lRmllbGRzU3RhdGUpIGNvbnN0CkBAIC0xNDIsNyArMTU0LDcg
QEAgU3RyaW5nIFRpbWVJbnB1dFR5cGU6OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3Qg
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVQKIAogdm9pZCBUaW1lSW5wdXRUeXBlOjpzZXR1cExh
eW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYgbGF5
b3V0UGFyYW1ldGVycywgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGUpIGNvbnN0CiB7Ci0gICAg
aWYgKGRhdGUuc2Vjb25kKCkgfHwgbGF5b3V0UGFyYW1ldGVycy5zaG91bGRIYXZlU2Vjb25kRmll
bGQoKSkgeworICAgIGlmIChzaG91bGRIYXZlU2Vjb25kRmllbGQoZGF0ZSkpIHsKICAgICAgICAg
bGF5b3V0UGFyYW1ldGVycy5kYXRlVGltZUZvcm1hdCA9IGxheW91dFBhcmFtZXRlcnMubG9jYWxp
emVyLnRpbWVGb3JtYXQoKTsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0RhdGVU
aW1lRm9ybWF0ID0gIkhIOm1tOnNzIjsKICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJ
bnB1dFR5cGUuaAppbmRleCBkNWE5NzkyYTdhNDIwZTk2NDI0MmQyMDk2NjQ0ZmY3YjMxZjA5MzY2
Li42OWExMmJkMjhhMWZkN2IzMTBmMTAwNDc1MTMxMmFmOGEyYmFmMzk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RpbWVJbnB1dFR5cGUuaApAQCAtNTUsNiArNTUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgYm9vbCBwYXJzZVRvRGF0ZUNvbXBvbmVudHNJbnRlcm5hbChjb25zdCBVQ2hhciosIHVuc2ln
bmVkIGxlbmd0aCwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGJvb2wgc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKGRvdWJsZSwgRGF0ZUNvbXBvbmVu
dHMqKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNUaW1lRmllbGQoKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBsb2NhbGl6ZVZhbHVlKGNvbnN0IFN0cmlu
ZyYpIGNvbnN0IE9WRVJSSURFOwogCiAjaWYgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19V
SSkKICAgICAvLyBCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSBmdW5jdGlv
bnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVu
dC5jcHAKaW5kZXggYzQ2MmUyNmU0NzBlNzVhNGQzZTU4MTM3MDgzYWM3N2U0NzZmYjhlMi4uMjBj
NTFmNGEwOWI2N2NiMTI1ODUwMjZjOGUxN2VmOGYwNDkyNjBmNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKQEAgLTE4OSwxNSAr
MTg5LDYgQEAgdm9pZCBEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdExpdGVyYWwoY29uc3QgU3Ry
aW5nJiB0ZXh0KQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLQotYm9vbCBE
YXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzOjpzaG91bGRIYXZlU2Vjb25kRmll
bGQoKSBjb25zdAotewotICAgIHJldHVybiAhc3RlcFJhbmdlLm1pbmltdW0oKS5yZW1haW5kZXIo
c3RhdGljX2Nhc3Q8aW50Pihtc1Blck1pbnV0ZSkpLmlzWmVybygpCi0gICAgICAgIHx8ICFzdGVw
UmFuZ2Uuc3RlcCgpLnJlbWFpbmRlcihzdGF0aWNfY2FzdDxpbnQ+KG1zUGVyTWludXRlKSkuaXNa
ZXJvKCk7Ci19Ci0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQogRGF0ZVRpbWVF
ZGl0RWxlbWVudDo6RWRpdENvbnRyb2xPd25lcjo6fkVkaXRDb250cm9sT3duZXIoKQogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCmlu
ZGV4IGJlZGEyOWRjY2ZjYWM2YjIyMmQyMDg2MTUxOGY1NmJjODNkOThkMTQuLmVjYmVhYWQ4OWVm
NGFiNTE1ZjdlNzA2MGQyYTY3ZTAyMzA0N2IzMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmgKQEAgLTc1LDggKzc1LDYgQEAgcHVibGlj
OgogICAgICAgICAgICAgLCBzdGVwUmFuZ2Uoc3RlcFJhbmdlKQogICAgICAgICB7CiAgICAgICAg
IH0KLQotICAgICAgICBib29sIHNob3VsZEhhdmVTZWNvbmRGaWVsZCgpIGNvbnN0OwogICAgIH07
CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxEYXRlVGltZUVkaXRFbGVtZW50PiBjcmVhdGUoRG9j
dW1lbnQqLCBFZGl0Q29udHJvbE93bmVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L0xvY2FsZUlDVS5jcHAKaW5kZXggNDhmYzE1MzA3Zjc2NjJmNWFkYTAwYjRjOTViNjY4NjQ4Y2Zj
YzA5Yi4uOGFhYThiOTU0ZjgwYWUyMzViMjFlNTIwMWQ0MmVlYjZkODJlZWE3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcApAQCAtMTgyLDEwICsxODIsMTAg
QEAgZG91YmxlIExvY2FsZUlDVTo6cGFyc2VEYXRlVGltZShjb25zdCBTdHJpbmcmIGlucHV0LCBE
YXRlQ29tcG9uZW50czo6VHlwZSB0eXBlKQogICAgIHJldHVybiBkYXRlOwogfQogCi1TdHJpbmcg
TG9jYWxlSUNVOjpmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUNvbXBv
bmVudHMpCitTdHJpbmcgTG9jYWxlSUNVOjpmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9u
ZW50cyYgZGF0ZUNvbXBvbmVudHMsIEZvcm1hdFR5cGUgZm9ybWF0VHlwZSkKIHsKICAgICBpZiAo
ZGF0ZUNvbXBvbmVudHMudHlwZSgpICE9IERhdGVDb21wb25lbnRzOjpEYXRlKQotICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIHJldHVybiBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1l
KGRhdGVDb21wb25lbnRzLCBmb3JtYXRUeXBlKTsKICAgICBpZiAoIWluaXRpYWxpemVTaG9ydERh
dGVGb3JtYXQoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIGRvdWJsZSBpbnB1dCA9
IGRhdGVDb21wb25lbnRzLm1pbGxpc2Vjb25kc1NpbmNlRXBvY2goKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oCmluZGV4IDY5ZjNkNjUyZWFhNzFmMWE5ZmJkOTMwYWRj
NGEyZTQxZjA1YmM5ZWYuLmExMjZmNmIxMWJiOTdiY2E1MGE5YmJiOWI1Y2MyNGIyNDQ2YjI2ZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuaApAQCAtNTIsNyArNTIs
NyBAQCBwdWJsaWM6CiAKICAgICAvLyBGb3IgTG9jYWxpemVkRGF0ZQogICAgIHZpcnR1YWwgZG91
YmxlIHBhcnNlRGF0ZVRpbWUoY29uc3QgU3RyaW5nJiwgRGF0ZUNvbXBvbmVudHM6OlR5cGUpIE9W
RVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21w
b25lbnRzJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29u
c3QgRGF0ZUNvbXBvbmVudHMmLCBGb3JtYXRUeXBlID0gRm9ybWF0VHlwZVVuc3BlY2lmaWVkKSBP
VkVSUklERTsKICNpZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKQogICAgIHZpcnR1YWwgU3RyaW5n
IGRhdGVGb3JtYXRUZXh0KCkgT1ZFUlJJREU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvTG9jYWxlTm9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L0xvY2FsZU5vbmUuY3BwCmluZGV4IDBjZTY0NmZkOTk4ZDM1NzRkNmJlNjdkMmE3NDMxMzBi
MzAzZjM1MTYuLjIzYWIxZjhhN2JmZGJhMDgwZjY5ZGVkZTMyNTM4ZmQ3YWFmYTNmZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlTm9uZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVOb25lLmNwcApAQCAtMzYsNyArMzYs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplTG9jYWxp
emVyRGF0YSgpIE9WRVJSSURFIEZJTkFMOwogICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlRGF0ZVRp
bWUoY29uc3QgU3RyaW5nJiwgRGF0ZUNvbXBvbmVudHM6OlR5cGUpIE9WRVJSSURFOwotICAgIHZp
cnR1YWwgU3RyaW5nIGZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVu
dHMmLCBGb3JtYXRUeXBlID0gRm9ybWF0VHlwZVVuc3BlY2lmaWVkKSBPVkVSUklERTsKICNpZiBF
TkFCTEUoQ0FMRU5EQVJfUElDS0VSKQogICAgIHZpcnR1YWwgU3RyaW5nIGRhdGVGb3JtYXRUZXh0
KCkgT1ZFUlJJREU7CiAjZW5kaWYKQEAgLTYzLDcgKzYzLDcgQEAgZG91YmxlIExvY2FsZU5vbmU6
OnBhcnNlRGF0ZVRpbWUoY29uc3QgU3RyaW5nJiwgRGF0ZUNvbXBvbmVudHM6OlR5cGUpCiAgICAg
cmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CiB9CiAKLVN0
cmluZyBMb2NhbGVOb25lOjpmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYpCitT
dHJpbmcgTG9jYWxlTm9uZTo6Zm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmLCBG
b3JtYXRUeXBlKQogewogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvTG9jYWxlV2luLmNwcAppbmRleCA0OTBkOGU5MGUzMWNlODc2NzdiM2U3YjJl
ZWU2OGI0YmFmZjhiN2FlLi5mMDNjOTdmNjZiM2E1YTY2NTI3ZDFiZTA0YjM0MDkxZDAwOWQ1MGEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uY3BwCkBAIC00ODcs
MTAgKzQ4NywxMCBAQCB2b2lkIExvY2FsZVdpbjo6YXBwZW5kRm91ckRpZ2l0c051bWJlcihpbnQg
dmFsdWUsIFN0cmluZ0J1aWxkZXImIGJ1ZmZlcikKICAgICBidWZmZXIuYXBwZW5kKGNvbnZlcnRU
b0xvY2FsaXplZE51bWJlcihudW1iZXJCdWZmZXIudG9TdHJpbmcoKSkpOwogfQogCi1TdHJpbmcg
TG9jYWxlV2luOjpmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUNvbXBv
bmVudHMpCitTdHJpbmcgTG9jYWxlV2luOjpmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9u
ZW50cyYgZGF0ZUNvbXBvbmVudHMsIEZvcm1hdFR5cGUgZm9ybWF0VHlwZSkKIHsKICAgICBpZiAo
ZGF0ZUNvbXBvbmVudHMudHlwZSgpICE9IERhdGVDb21wb25lbnRzOjpEYXRlKQotICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIHJldHVybiBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1l
KGRhdGVDb21wb25lbnRzLCBmb3JtYXRUeXBlKTsKICAgICBlbnN1cmVTaG9ydERhdGVUb2tlbnMo
KTsKICAgICByZXR1cm4gZm9ybWF0RGF0ZShtX3Nob3J0RGF0ZVRva2VucywgbV9iYXNlWWVhciwg
ZGF0ZUNvbXBvbmVudHMuZnVsbFllYXIoKSwgZGF0ZUNvbXBvbmVudHMubW9udGgoKSwgZGF0ZUNv
bXBvbmVudHMubW9udGhEYXkoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0xvY2FsZVdpbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2Nh
bGVXaW4uaAppbmRleCA1Y2ZiMDUyYTQyYzMxYzk1YzNmNzZkZGIxMjA4ZWM3MGQ3MWVmYjI1Li4x
NTA3MjIxNDg1ZWJiOTIwMGYzOTQ0YmQ5OGQ5MTczZDYyNmM5MzRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAg
IHN0YXRpYyBMb2NhbGVXaW4qIGN1cnJlbnRMb2NhbGUoKTsKICAgICB+TG9jYWxlV2luKCk7CiAg
ICAgdmlydHVhbCBkb3VibGUgcGFyc2VEYXRlVGltZShjb25zdCBTdHJpbmcmLCBEYXRlQ29tcG9u
ZW50czo6VHlwZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUo
Y29uc3QgRGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBmb3Jt
YXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYsIEZvcm1hdFR5cGUgPSBGb3JtYXRUeXBl
VW5zcGVjaWZpZWQpIE9WRVJSSURFOwogI2lmIEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCiAgICAg
dmlydHVhbCBTdHJpbmcgZGF0ZUZvcm1hdFRleHQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBtb250aExhYmVscygpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIuY3BwCmluZGV4IDZjOTU3ZTU1MzllZTIwMDdhZDcy
YjhhNDQ5NDcyZjFjMmZkN2YzY2YuLjU0ZGYwMjVmMDExZDdhZWY4OWQ4ZTk1YzUyZTA3N2E5Mjlk
NTNhYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5jcHAKQEAg
LTMxLDEwICszMSwxMjIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJMb2NhbGl6
ZXIuaCIKIAorI2luY2x1ZGUgIkRhdGVUaW1lRm9ybWF0LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBFTkFCTEUoSU5Q
VVRfTVVMVElQTEVfRklFTERTX1VJKQorCitjbGFzcyBEYXRlVGltZVN0cmluZ0J1aWxkZXIgOiBw
cml2YXRlIERhdGVUaW1lRm9ybWF0OjpUb2tlbkhhbmRsZXIgeworICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKERhdGVUaW1lU3RyaW5nQnVpbGRlcik7CisKK3B1YmxpYzoKKyAgICAvLyBUaGUgYXJn
dW1lbnQgb2JqZWN0cyBtdXN0IGJlIGFsaXZlIHVudGlsIHRoaXMgb2JqZWN0IGRpZXMuCisgICAg
RGF0ZVRpbWVTdHJpbmdCdWlsZGVyKExvY2FsaXplciYsIGNvbnN0IERhdGVDb21wb25lbnRzJik7
CisKKyAgICBib29sIGJ1aWxkKGNvbnN0IFN0cmluZyYpOworICAgIFN0cmluZyB0b1N0cmluZygp
OworCitwcml2YXRlOgorICAgIC8vIERhdGVUaW1lRm9ybWF0OjpUb2tlbkhhbmRsZXIgZnVuY3Rp
b25zLgorICAgIHZpcnR1YWwgdm9pZCB2aXNpdEZpZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5
cGUsIGludCkgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIHZpc2l0TGl0ZXJhbChj
b25zdCBTdHJpbmcmKSBPVkVSUklERSBGSU5BTDsKKworICAgIFN0cmluZyB6ZXJvUGFkU3RyaW5n
KGNvbnN0IFN0cmluZyYsIHNpemVfdCB3aWR0aCk7CisgICAgdm9pZCBhcHBlbmROdW1iZXIoaW50
IG51bWJlciwgc2l6ZV90IHdpZHRoKTsKKworICAgIFN0cmluZ0J1aWxkZXIgbV9idWlsZGVyOwor
ICAgIExvY2FsaXplciYgbV9sb2NhbGl6ZXI7CisgICAgY29uc3QgRGF0ZUNvbXBvbmVudHMmIG1f
ZGF0ZTsKK307CisKK0RhdGVUaW1lU3RyaW5nQnVpbGRlcjo6RGF0ZVRpbWVTdHJpbmdCdWlsZGVy
KExvY2FsaXplciYgbG9jYWxpemVyLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKKyAgICA6
IG1fbG9jYWxpemVyKGxvY2FsaXplcikKKyAgICAsIG1fZGF0ZShkYXRlKQoreworfQorCitib29s
IERhdGVUaW1lU3RyaW5nQnVpbGRlcjo6YnVpbGQoY29uc3QgU3RyaW5nJiBmb3JtYXRTdHJpbmcp
Cit7CisgICAgbV9idWlsZGVyLnJlc2VydmVDYXBhY2l0eShmb3JtYXRTdHJpbmcubGVuZ3RoKCkp
OworICAgIHJldHVybiBEYXRlVGltZUZvcm1hdDo6cGFyc2UoZm9ybWF0U3RyaW5nLCAqdGhpcyk7
Cit9CisKK1N0cmluZyBEYXRlVGltZVN0cmluZ0J1aWxkZXI6Onplcm9QYWRTdHJpbmcoY29uc3Qg
U3RyaW5nJiBzdHJpbmcsIHNpemVfdCB3aWR0aCkKK3sKKyAgICBpZiAoc3RyaW5nLmxlbmd0aCgp
ID49IHdpZHRoKQorICAgICAgICByZXR1cm4gc3RyaW5nOworICAgIFN0cmluZ0J1aWxkZXIgemVy
b1BhZGRlZFN0cmluZ0J1aWxkZXI7CisgICAgemVyb1BhZGRlZFN0cmluZ0J1aWxkZXIucmVzZXJ2
ZUNhcGFjaXR5KHdpZHRoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gc3RyaW5nLmxlbmd0aCgpOyBp
IDwgd2lkdGg7ICsraSkKKyAgICAgICAgemVyb1BhZGRlZFN0cmluZ0J1aWxkZXIuYXBwZW5kKCIw
Iik7CisgICAgemVyb1BhZGRlZFN0cmluZ0J1aWxkZXIuYXBwZW5kKHN0cmluZyk7CisgICAgcmV0
dXJuIHplcm9QYWRkZWRTdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7Cit9CisKK3ZvaWQgRGF0ZVRp
bWVTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIoaW50IG51bWJlciwgc2l6ZV90IHdpZHRoKQor
eworICAgIFN0cmluZyB6ZXJvUGFkZGVkTnVtYmVyU3RyaW5nID0gemVyb1BhZFN0cmluZyhTdHJp
bmc6Om51bWJlcihudW1iZXIpLCB3aWR0aCk7CisgICAgbV9idWlsZGVyLmFwcGVuZChtX2xvY2Fs
aXplci5jb252ZXJ0VG9Mb2NhbGl6ZWROdW1iZXIoemVyb1BhZGRlZE51bWJlclN0cmluZykpOwor
fQorCit2b2lkIERhdGVUaW1lU3RyaW5nQnVpbGRlcjo6dmlzaXRGaWVsZChEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlIGZpZWxkVHlwZSwgaW50IG51bWJlck9mUGF0dGVybkNoYXJhY3RlcnMpCit7
CisgICAgc3dpdGNoIChmaWVsZFR5cGUpIHsKKyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVQZXJpb2Q6CisgICAgICAgIG1fYnVpbGRlci5hcHBlbmQobV9sb2NhbGl6ZXIudGltZUFN
UE1MYWJlbHMoKVsobV9kYXRlLmhvdXIoKSA+PSAxMiA/IDEgOiAwKV0pOworICAgICAgICByZXR1
cm47CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjEyOiB7CisgICAgICAg
IGludCBob3VyMTIgPSBtX2RhdGUuaG91cigpICUgMTI7CisgICAgICAgIGlmICghaG91cjEyKQor
ICAgICAgICAgICAgaG91cjEyID0gMTI7CisgICAgICAgIGFwcGVuZE51bWJlcihob3VyMTIsIG51
bWJlck9mUGF0dGVybkNoYXJhY3RlcnMpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNh
c2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIyMzoKKyAgICAgICAgYXBwZW5kTnVtYmVy
KG1fZGF0ZS5ob3VyKCksIG51bWJlck9mUGF0dGVybkNoYXJhY3RlcnMpOworICAgICAgICByZXR1
cm47CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlSG91cjExOgorICAgICAgICBh
cHBlbmROdW1iZXIobV9kYXRlLmhvdXIoKSAlIDEyLCBudW1iZXJPZlBhdHRlcm5DaGFyYWN0ZXJz
KTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhv
dXIyNDogeworICAgICAgICBpbnQgaG91cjI0ID0gbV9kYXRlLmhvdXIoKTsKKyAgICAgICAgaWYg
KCFob3VyMjQpCisgICAgICAgICAgICBob3VyMjQgPSAyNDsKKyAgICAgICAgYXBwZW5kTnVtYmVy
KGhvdXIyNCwgbnVtYmVyT2ZQYXR0ZXJuQ2hhcmFjdGVycyk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgY2FzZSBEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlTWludXRlOgorICAgICAgICBh
cHBlbmROdW1iZXIobV9kYXRlLm1pbnV0ZSgpLCBudW1iZXJPZlBhdHRlcm5DaGFyYWN0ZXJzKTsK
KyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVNlY29u
ZDoKKyAgICAgICAgaWYgKCFtX2RhdGUubWlsbGlzZWNvbmQoKSkKKyAgICAgICAgICAgIGFwcGVu
ZE51bWJlcihtX2RhdGUuc2Vjb25kKCksIG51bWJlck9mUGF0dGVybkNoYXJhY3RlcnMpOworICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgIGRvdWJsZSBzZWNvbmQgPSBtX2RhdGUuc2Vjb25kKCkg
KyBtX2RhdGUubWlsbGlzZWNvbmQoKSAvIDEwMDAuMDsKKyAgICAgICAgICAgIFN0cmluZyB6ZXJv
UGFkZGVkU2Vjb25kU3RyaW5nID0gemVyb1BhZFN0cmluZyhTdHJpbmc6OmZvcm1hdCgiJS4wM2Yi
LCBzZWNvbmQpLCBudW1iZXJPZlBhdHRlcm5DaGFyYWN0ZXJzICsgNCk7CisgICAgICAgICAgICBt
X2J1aWxkZXIuYXBwZW5kKG1fbG9jYWxpemVyLmNvbnZlcnRUb0xvY2FsaXplZE51bWJlcih6ZXJv
UGFkZGVkU2Vjb25kU3RyaW5nKSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIGRl
ZmF1bHQ6CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKK3ZvaWQgRGF0ZVRpbWVTdHJpbmdC
dWlsZGVyOjp2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIEFTU0VSVCh0
ZXh0Lmxlbmd0aCgpKTsKKyAgICBtX2J1aWxkZXIuYXBwZW5kKHRleHQpOworfQorCitTdHJpbmcg
RGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjp0b1N0cmluZygpCit7CisgICAgcmV0dXJuIG1fYnVpbGRl
ci50b1N0cmluZygpOworfQorCisjZW5kaWYKKwogTG9jYWxpemVyOjp+TG9jYWxpemVyKCkKIHsK
IH0KQEAgLTIzOCw0ICszNTAsMTkgQEAgY29uc3QgVmVjdG9yPFN0cmluZz4mIExvY2FsaXplcjo6
dGltZUFNUE1MYWJlbHMoKQogfQogI2VuZGlmCiAKK1N0cmluZyBMb2NhbGl6ZXI6OmZvcm1hdERh
dGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlLCBGb3JtYXRUeXBlIGZvcm1hdFR5cGUp
Cit7CisjaWYgRU5BQkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkKKyAgICBpZiAoZGF0ZS50
eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OlRpbWUpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
KyAgICBEYXRlVGltZVN0cmluZ0J1aWxkZXIgYnVpbGRlcigqdGhpcywgZGF0ZSk7CisgICAgYnVp
bGRlci5idWlsZChmb3JtYXRUeXBlID09IEZvcm1hdFR5cGVTaG9ydCA/IHNob3J0VGltZUZvcm1h
dCgpIDogdGltZUZvcm1hdCgpKTsKKyAgICByZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0oZGF0ZSk7CisgICAgVU5VU0VEX1BBUkFNKGZvcm1hdFR5cGUp
OworICAgIHJldHVybiBTdHJpbmcoKTsKKyNlbmRpZgorfQorCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9Mb2NhbGl6ZXIuaAppbmRleCA5ZTE0ZDgyNDQwNDkwYjQ4ZjJmNGNlZmYzNGE2
NDVmYTg3NTMxOTYzLi43NzU5M2U5M2JiMDgwNWM2ZDI2YmViYWVjNGQzMTJjZjc4Y2JhYWJmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmgKQEAgLTEwOSwxMCArMTA5
LDEyIEBAIHB1YmxpYzoKICAgICAvLyAwMDowMDowMC4wMDAgVVRDLgogICAgIHZpcnR1YWwgZG91
YmxlIHBhcnNlRGF0ZVRpbWUoY29uc3QgU3RyaW5nJiwgRGF0ZUNvbXBvbmVudHM6OlR5cGUpID0g
MDsKIAorICAgIGVudW0gRm9ybWF0VHlwZSB7IEZvcm1hdFR5cGVVbnNwZWNpZmllZCwgRm9ybWF0
VHlwZVNob3J0LCBGb3JtYXRUeXBlTWVkaXVtIH07CisKICAgICAvLyBTZXJpYWxpemVzIHRoZSBz
cGVjaWZpZWQgZGF0ZSBpbnRvIGEgZm9ybWF0dGVkIGRhdGUgc3RyaW5nIHRvCiAgICAgLy8gZGlz
cGxheSB0byB0aGUgdXNlci4gSWYgYW4gaW1wbGVtZW50YXRpb24gZG9lc24ndCBzdXBwb3J0CiAg
ICAgLy8gbG9jYWxpemVkIGRhdGVzIHRoZSBmdW5jdGlvbiBzaG91bGQgcmV0dXJuIGFuIGVtcHR5
IHN0cmluZy4KLSAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29t
cG9uZW50cyYpID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRlVGltZShjb25zdCBE
YXRlQ29tcG9uZW50cyYsIEZvcm1hdFR5cGUgPSBGb3JtYXRUeXBlVW5zcGVjaWZpZWQpOwogCiAg
ICAgdmlydHVhbCB+TG9jYWxpemVyKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9tYWMvTG9jYWxlTWFjLmgKaW5kZXggMmQ5ZThhZGU2OWEyZjQxNGY4YjA2OTFhNWEzODdhMzVl
OTBkMGEzNS4uZWQ5ZjcxNjIwOGM0NDA4YjNjYmI0ZDBiMzczY2VmMjQ3NTBhMmRiZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLmgKQEAgLTUxLDcgKzUx
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBMb2NhbGVNYWMqIGN1cnJlbnRMb2NhbGUoKTsKICAg
ICB+TG9jYWxlTWFjKCk7CiAgICAgdmlydHVhbCBkb3VibGUgcGFyc2VEYXRlVGltZShjb25zdCBT
dHJpbmcmLCBEYXRlQ29tcG9uZW50czo6VHlwZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJp
bmcgZm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYsIEZvcm1h
dFR5cGUgPSBGb3JtYXRUeXBlVW5zcGVjaWZpZWQpIE9WRVJSSURFOwogCiAjaWYgRU5BQkxFKENB
TEVOREFSX1BJQ0tFUikKICAgICB2aXJ0dWFsIFN0cmluZyBkYXRlRm9ybWF0VGV4dCgpIE9WRVJS
SURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCmlu
ZGV4IGFlOWY2NzViNzhlNjBiOWRiY2U0N2QyMzAxYzJiNzg5NDc0NDRmYjkuLjU3ZTdiOGUzMzFj
N2ExOTU2MzMxYjVlZjIxNTIwYWI2MDI5NGE5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0KQEAgLTEyOCwxMCArMTI4LDEwIEBAIGRvdWJsZSBM
b2NhbGVNYWM6OnBhcnNlRGF0ZVRpbWUoY29uc3QgU3RyaW5nJiBpbnB1dCwgRGF0ZUNvbXBvbmVu
dHM6OlR5cGUgdHlwZSkKICAgICByZXR1cm4gW2RhdGUgdGltZUludGVydmFsU2luY2UxOTcwXSAq
IG1zUGVyU2Vjb25kOwogfQogCi1TdHJpbmcgTG9jYWxlTWFjOjpmb3JtYXREYXRlVGltZShjb25z
dCBEYXRlQ29tcG9uZW50cyYgZGF0ZUNvbXBvbmVudHMpCitTdHJpbmcgTG9jYWxlTWFjOjpmb3Jt
YXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUNvbXBvbmVudHMsIEZvcm1hdFR5
cGUgZm9ybWF0VHlwZSkKIHsKICAgICBpZiAoZGF0ZUNvbXBvbmVudHMudHlwZSgpICE9IERhdGVD
b21wb25lbnRzOjpEYXRlKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIHJldHVy
biBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lKGRhdGVDb21wb25lbnRzLCBmb3JtYXRUeXBlKTsK
ICAgICBSZXRhaW5QdHI8TlNEYXRlRm9ybWF0dGVyPiBmb3JtYXR0ZXIoQWRvcHROUywgY3JlYXRl
U2hvcnREYXRlRm9ybWF0dGVyKCkpOwogICAgIE5TVGltZUludGVydmFsIGludGVydmFsID0gZGF0
ZUNvbXBvbmVudHMubWlsbGlzZWNvbmRzU2luY2VFcG9jaCgpIC8gbXNQZXJTZWNvbmQ7CiAgICAg
cmV0dXJuIFN0cmluZyhbZm9ybWF0dGVyLmdldCgpIHN0cmluZ0Zyb21EYXRlOltOU0RhdGUgZGF0
ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZTE5NzA6aW50ZXJ2YWxdXSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2FsZU1hY1Rlc3QuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVNYWNUZXN0LmNwcAppbmRleCBmNWYyNjhkYjM1YjA4MzEx
NmZiYzBjNjdlNzZiNjIyNDRkMzhiMmEzLi42ZjBmOTU3ZTJjMGQwNGU3NDA1ZjgzMDc1Y2I0YjFk
M2RmYzYwNDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2Fs
ZU1hY1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlTWFj
VGVzdC5jcHAKQEAgLTU3LDYgKzU3LDEzIEBAIHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJuIGRh
dGU7CiAgICAgfQogCisgICAgRGF0ZUNvbXBvbmVudHMgdGltZUNvbXBvbmVudHMoaW50IGhvdXIs
IGludCBtaW51dGUsIGludCBzZWNvbmQsIGludCBtaWxsaXNlY29uZCkKKyAgICB7CisgICAgICAg
IERhdGVDb21wb25lbnRzIGRhdGU7CisgICAgICAgIGRhdGUuc2V0TWlsbGlzZWNvbmRzU2luY2VN
aWRuaWdodChob3VyICogbXNQZXJIb3VyICsgbWludXRlICogbXNQZXJNaW51dGUgKyBzZWNvbmQg
KiBtc1BlclNlY29uZCArIG1pbGxpc2Vjb25kKTsKKyAgICAgICAgcmV0dXJuIGRhdGU7CisgICAg
fQorCiAgICAgZG91YmxlIG1zRm9yRGF0ZShpbnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5KQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGRhdGVUb0RheXNGcm9tMTk3MCh5ZWFyLCBtb250aCwgZGF5
KSAqIG1zUGVyRGF5OwpAQCAtNjgsNiArNzUsMTIgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1
cm4gbG9jYWxlLT5mb3JtYXREYXRlVGltZShkYXRlQ29tcG9uZW50cyh5ZWFyLCBtb250aCwgZGF5
KSk7CiAgICAgfQogCisgICAgU3RyaW5nIGZvcm1hdFRpbWUoY29uc3QgU3RyaW5nJiBsb2NhbGVT
dHJpbmcsIGludCBob3VyLCBpbnQgbWludXRlLCBpbnQgc2Vjb25kLCBpbnQgbWlsbGlzZWNvbmQs
IGJvb2wgdXNlU2hvcnRGb3JtYXQpCisgICAgeworICAgICAgICBPd25QdHI8TG9jYWxlTWFjPiBs
b2NhbGUgPSBMb2NhbGVNYWM6OmNyZWF0ZShsb2NhbGVTdHJpbmcpOworICAgICAgICByZXR1cm4g
bG9jYWxlLT5mb3JtYXREYXRlVGltZSh0aW1lQ29tcG9uZW50cyhob3VyLCBtaW51dGUsIHNlY29u
ZCwgbWlsbGlzZWNvbmQpLCAodXNlU2hvcnRGb3JtYXQgPyBMb2NhbGl6ZXI6OkZvcm1hdFR5cGVT
aG9ydCA6IExvY2FsaXplcjo6Rm9ybWF0VHlwZU1lZGl1bSkpOworICAgIH0KKwogICAgIGRvdWJs
ZSBwYXJzZURhdGUoY29uc3QgU3RyaW5nJiBsb2NhbGVTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGF0
ZVN0cmluZykKICAgICB7CiAgICAgICAgIE93blB0cjxMb2NhbGVNYWM+IGxvY2FsZSA9IExvY2Fs
ZU1hYzo6Y3JlYXRlKGxvY2FsZVN0cmluZyk7CkBAIC0xMzQsNiArMTQ3LDI3IEBAIFRFU1RfRihM
b2NhbGVNYWNUZXN0LCBmb3JtYXREYXRlKQogICAgIEVYUEVDVF9TVFJFUSgiMDUvMDQvMjciLCBm
b3JtYXREYXRlKCJqYV9KUCIsIDIwMDUsIEFwcmlsLCAyNykudXRmOCgpLmRhdGEoKSk7CiB9CiAK
K1RFU1RfRihMb2NhbGVNYWNUZXN0LCBmb3JtYXRUaW1lKQoreworICAgIEVYUEVDVF9TVFJFUSgi
MToyMyBQTSIsIGZvcm1hdFRpbWUoImVuX1VTIiwgMTMsIDIzLCAwMCwgMDAwLCB0cnVlKS51dGY4
KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIjEzOjIzIiwgZm9ybWF0VGltZSgiZnJfRlIi
LCAxMywgMjMsIDAwLCAwMDAsIHRydWUpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJF
USgiMTM6MjMiLCBmb3JtYXRUaW1lKCJqYV9KUCIsIDEzLCAyMywgMDAsIDAwMCwgdHJ1ZSkudXRm
OCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJceEQ5XHhBMTpceEQ5XHhBMlx4RDlceEEz
IFx4RDlceDg1IiwgZm9ybWF0VGltZSgiYXIiLCAxMywgMjMsIDAwLCAwMDAsIHRydWUpLnV0Zjgo
KS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiXHhEQlx4QjFceERCXHhCMzpceERCXHhCMlx4
REJceEIzIiwgZm9ybWF0VGltZSgiZmEiLCAxMywgMjMsIDAwLCAwMDAsIHRydWUpLnV0ZjgoKS5k
YXRhKCkpOworCisgICAgRVhQRUNUX1NUUkVRKCIxMjowMCBBTSIsIGZvcm1hdFRpbWUoImVuX1VT
IiwgMDAsIDAwLCAwMCwgMDAwLCB0cnVlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RS
RVEoIjAwOjAwIiwgZm9ybWF0VGltZSgiZnJfRlIiLCAwMCwgMDAsIDAwLCAwMDAsIHRydWUpLnV0
ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiMDowMCIsIGZvcm1hdFRpbWUoImphX0pQ
IiwgMDAsIDAwLCAwMCwgMDAwLCB0cnVlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RS
RVEoIlx4RDlceEExXHhEOVx4QTI6XHhEOVx4QTBceEQ5XHhBMCBceEQ4XHhCNSIsIGZvcm1hdFRp
bWUoImFyIiwgMDAsIDAwLCAwMCwgMDAwLCB0cnVlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBF
Q1RfU1RSRVEoIlx4REJceEIwOlx4REJceEIwXHhEQlx4QjAiLCBmb3JtYXRUaW1lKCJmYSIsIDAw
LCAwMCwgMDAsIDAwMCwgdHJ1ZSkudXRmOCgpLmRhdGEoKSk7CisKKyAgICBFWFBFQ1RfU1RSRVEo
Ijc6MDc6MDcuMDA3IEFNIiwgZm9ybWF0VGltZSgiZW5fVVMiLCAwNywgMDcsIDA3LCAwMDcsIGZh
bHNlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIjA3OjA3OjA3LDAwNyIsIGZv
cm1hdFRpbWUoImZyX0ZSIiwgMDcsIDA3LCAwNywgMDA3LCBmYWxzZSkudXRmOCgpLmRhdGEoKSk7
CisgICAgRVhQRUNUX1NUUkVRKCI3OjA3OjA3LjAwNyIsIGZvcm1hdFRpbWUoImphX0pQIiwgMDcs
IDA3LCAwNywgMDA3LCBmYWxzZSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJc
eEQ5XHhBNzpceEQ5XHhBMFx4RDlceEE3Olx4RDlceEEwXHhEOVx4QTdceEQ5XHhBQlx4RDlceEEw
XHhEOVx4QTBceEQ5XHhBNyBceEQ4XHhCNSIsIGZvcm1hdFRpbWUoImFyIiwgMDcsIDA3LCAwNywg
MDA3LCBmYWxzZSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJceERCXHhCNzpc
eERCXHhCMFx4REJceEI3Olx4REJceEIwXHhEQlx4QjdceEQ5XHhBQlx4REJceEIwXHhEQlx4QjBc
eERCXHhCNyIsIGZvcm1hdFRpbWUoImZhIiwgMDcsIDA3LCAwNywgMDA3LCBmYWxzZSkudXRmOCgp
LmRhdGEoKSk7Cit9CisKIFRFU1RfRihMb2NhbGVNYWNUZXN0LCBwYXJzZURhdGUpCiB7CiAgICAg
RVhQRUNUX0VRKG1zRm9yRGF0ZSgyMDA1LCBBcHJpbCwgMjcpLCBwYXJzZURhdGUoImVuX1VTIiwg
IkFwcmlsIDI3LCAyMDA1IikpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167020</attachid>
            <date>2012-10-03 19:14:22 -0700</date>
            <delta_ts>2012-10-03 20:36:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98237-20121004111332.patch</filename>
            <type>text/plain</type>
            <size>26498</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWNhYzU0ODNkMjRhZjQ3
M2ZlZDJmOWZiODA2MDFjZmY4NDE3MjUwMC4uNzU5ZWIxOTA2N2E2NDZmN2I2NDdmYWEyMTMyMWE4
NmI5MzJkN2ZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEyLTEwLTAzICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIEltcGxlbWVudCBsb2Nh
bGl6ZVZhbHVlIGZvciBUaW1lSW5wdXRUeXBlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05ODIzNworCisgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFt
dXJhLgorCisgICAgICAgIFdlIHdhbnQgdG8gbG9jYWxpemUgdGltZSB2YWx1ZXMgZm9yIHRoZSBz
dWdnZXN0aW9uIHBpY2tlci4KKyAgICAgICAgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyIHBhcnNlcyBh
IGZvcm1hdCBhbmQgY3JlYXRlcyBhIGZvcm1hdHRlZCBzdHJpbmcuCisKKyAgICAgICAgQWRkZWQg
Y2hyb21pdW0gdW5pdCB0ZXN0IExvY2FsZU1hY1Rlc3QuZm9ybWF0VGltZQorCisgICAgICAgICog
aHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2hvdWxk
SGF2ZVNlY29uZEZpZWxkKTogTW92ZWQgZnJvbSBMYXlvdXRQYXJhbWV0ZXJzIGJlY2F1c2Ugd2Ug
d2FudCB0byB1c2UgaXQgaW5zaWRlIGxvY2FsaXplVmFsdWUuCisgICAgICAgIChXZWJDb3JlKToK
KyAgICAgICAgKiBodG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlLmg6
CisgICAgICAgIChCYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSk6CisgICAg
ICAgICogaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRl
VGltZUlucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBodG1sL0Rh
dGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVMb2Nh
bElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBodG1sL1RpbWVJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlwZTo6bG9jYWxpemVW
YWx1ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5
cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyk6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBl
Lmg6CisgICAgICAgIChUaW1lSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRl
VGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGh0bWwv
c2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
RWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnM6OkxheW91dFBhcmFtZXRlcnMpOgorICAgICAg
ICAqIHBsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvY2Fs
ZUlDVTo6Zm9ybWF0RGF0ZVRpbWUpOiBDYWxscyBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lIGlm
IHRoZSBkYXRlIGNvbXBvbmVudCBpcyBub3QgYSBkYXRlLgorICAgICAgICAqIHBsYXRmb3JtL3Rl
eHQvTG9jYWxlSUNVLmg6CisgICAgICAgIChMb2NhbGVJQ1UpOgorICAgICAgICAqIHBsYXRmb3Jt
L3RleHQvTG9jYWxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZVdpbjo6Zm9ybWF0
RGF0ZVRpbWUpOiBDYWxscyBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lIGlmIHRoZSBkYXRlIGNv
bXBvbmVudCBpcyBub3QgYSBkYXRlLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxlV2lu
Lmg6CisgICAgICAgIChMb2NhbGVXaW4pOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxl
Tm9uZS5jcHA6CisgICAgICAgIChMb2NhbGVOb25lKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2Fs
ZU5vbmU6OmZvcm1hdERhdGVUaW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L0xvY2FsaXpl
ci5jcHA6CisgICAgICAgIChEYXRlVGltZVN0cmluZ0J1aWxkZXIpOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZVN0cmluZ0J1aWxkZXI6OkRhdGVUaW1lU3Ry
aW5nQnVpbGRlcik6IFRha2VzIGEKKyAgICAgICAgTG9jYWxpemVyIHBvaW50ZXIuIFRoaXMgaXMg
dXNlZCBpbnNpZGUgdGhlIExvY2FsaXplciBzbyB0aGUgTG9jYWxpemVyCisgICAgICAgIHdpbGwg
b3V0IGxpdmUgdGhlIERhdGVUaW1lU3RyaW5nQnVpbGRlci4KKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lU3RyaW5nQnVpbGRlcjo6YnVpbGQpOiBCdWlsZHMgYSBsb2NhbGl6ZWQgc3RyaW5nIGZv
ciB0aGUgZ2l2ZW4gZm9ybWF0LgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTdHJpbmdCdWls
ZGVyOjp6ZXJvUGFkU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3RyaW5nQnVp
bGRlcjo6YXBwZW5kTnVtYmVyKTogQXBwZW5kcyBhIG51bWJlciB3aXRoIGxlZnQgemVybyBwYWRk
aW5nIHRvIG1hdGNoIHdpZHRoLgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVTdHJpbmdCdWls
ZGVyOjp2aXNpdEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3RyaW5nQnVpbGRl
cjo6dmlzaXRMaXRlcmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lU3RyaW5nQnVpbGRl
cjo6dG9TdHJpbmcpOiBSZXR1cm5zIHRoZSBsb2NhbGl6ZWQgc3RyaW5nLgorICAgICAgICAoV2Vi
Q29yZTo6TG9jYWxpemVyOjpmb3JtYXREYXRlVGltZSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9Mb2NhbGl6ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMuaDoK
KyAgICAgICAgKExvY2FsZU1hYyk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxl
TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxlTWFjOjpmb3JtYXREYXRlVGltZSk6IENh
bGxzIExvY2FsaXplcjo6Zm9ybWF0RGF0ZVRpbWUgaWYgdGhlIGRhdGUgY29tcG9uZW50IGlzIG5v
dCBhIGRhdGUuCisKIDIwMTItMTAtMDMgIERvbmd3b28gSm9zaHVhIEltICA8ZHcuaW1Ac2Ftc3Vu
Zy5jb20+CiAKICAgICAgICAgW0VGTF0gU2tlbGV0b24gY29kZSBvZiBGaWxlIHN5c3RlbSBBUEku
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGNiNTlkNWIxMWFhZWY1OWIyM2U2MjdiYmVh
ZThiODI0NThjNzFkZDUuLjY5ZGVkNTM0NzI2MjQwMzQzM2E2N2RiNjExZTM2YmVlZWZkNTE4ZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTAtMDMg
IEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW1wbGVtZW50
IGxvY2FsaXplVmFsdWUgZm9yIFRpbWVJbnB1dFR5cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk4MjM3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2Vu
dCBUYW11cmEuCisKKyAgICAgICAgKiB0ZXN0cy9Mb2NhbGVNYWNUZXN0LmNwcDoKKyAgICAgICAg
KExvY2FsZU1hY1Rlc3Q6OnRpbWVDb21wb25lbnRzKToKKyAgICAgICAgKExvY2FsZU1hY1Rlc3Qp
OgorICAgICAgICAoTG9jYWxlTWFjVGVzdDo6Zm9ybWF0VGltZSk6IFRlc3RzIGZvcm1hdERhdGVU
aW1lKCkgZm9yIHRpbWUuCisgICAgICAgIChURVNUX0YpOgorCiAyMDEyLTEwLTAzICBUb21teSBX
aWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgogCiAgICAgICAgIE1lZGlhU3RyZWFtIEFQ
STogUlRDUGVlckNvbm5lY3Rpb24gc2hvdWxkIHNlbmQgZG93biBpdHMgaGFuZGxlciB2aWEgdGhl
IEZyYW1lTG9hZGVyQ2xpZW50IGRpcmVjdGx5IGFmdGVyIGNyZWF0aW9uLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1l
SW5wdXRUeXBlLmNwcAppbmRleCBjNzI1YjE5ODVkNzUzZDVhMWE2YWU5YjM4M2I0M2UxZDcyZDk5
MjgyLi43NGQ5ZTQ4YjM1YTcxMTdjMjNmM2UxNzBjMWI4ZWNjNDU4MzRlNzRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVB
bmRUaW1lSW5wdXRUeXBlLmNwcApAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgIktleWJvYXJk
RXZlbnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZXIuaCIKICNpbmNsdWRlICJTaGFkb3dSb290Lmgi
CisjaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MjM4LDYgKzIzOSwxNCBAQCB2b2lkIEJhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRU
eXBlOjp1cGRhdGVJbm5lclRleHRWYWx1ZSgpCiAgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVu
dC0+c2V0RW1wdHlWYWx1ZShsYXlvdXRQYXJhbWV0ZXJzLCBkYXRlKTsKIH0KIAorYm9vbCBCYXNl
TXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZTo6c2hvdWxkSGF2ZVNlY29uZEZpZWxk
KGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKSBjb25zdAoreworICAgIFN0ZXBSYW5nZSBzdGVw
UmFuZ2UgPSBjcmVhdGVTdGVwUmFuZ2UoQW55SXNEZWZhdWx0U3RlcCk7CisgICAgcmV0dXJuIGRh
dGUuc2Vjb25kKCkKKyAgICAgICAgfHwgIXN0ZXBSYW5nZS5taW5pbXVtKCkucmVtYWluZGVyKHN0
YXRpY19jYXN0PGludD4obXNQZXJNaW51dGUpKS5pc1plcm8oKQorICAgICAgICB8fCAhc3RlcFJh
bmdlLnN0ZXAoKS5yZW1haW5kZXIoc3RhdGljX2Nhc3Q8aW50Pihtc1Blck1pbnV0ZSkpLmlzWmVy
bygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlw
ZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlu
cHV0VHlwZS5oCmluZGV4IGY2YWIxNTk2MjA0ZWY1ZGQ0MGRlNTQ0ZWM3MzJiOGQxMWQ1YTA1ZDQu
LjVhOGU2ZTI4NDE5OTVkYmNkOWFjOGY1ZGU0ZjJlZGQ4ZjRkNDlhOTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQmFzZU11bHRpcGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VNdWx0aXBsZUZpZWxkc0RhdGVBbmRUaW1l
SW5wdXRUeXBlLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHJvdGVjdGVkOgogICAgIEJhc2VNdWx0aXBs
ZUZpZWxkc0RhdGVBbmRUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqKTsKICAgICB2aXJ0
dWFsIH5CYXNlTXVsdGlwbGVGaWVsZHNEYXRlQW5kVGltZUlucHV0VHlwZSgpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVFZGl0RWxlbWVudDo6TGF5b3V0
UGFyYW1ldGVycyYsIGNvbnN0IERhdGVDb21wb25lbnRzJikgY29uc3QgPSAwOworICAgIGJvb2wg
c2hvdWxkSGF2ZVNlY29uZEZpZWxkKGNvbnN0IERhdGVDb21wb25lbnRzJikgY29uc3Q7CiAKIHBy
aXZhdGU6CiAgICAgLy8gRGF0ZVRpbWVFZGl0RWxlbWVudDo6RWRpdENvbnRyb2xPd25lciBmdW5j
dGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKaW5kZXggYjk5
YTU4MGZiYzlkZjNkZDAzNzA3ZjI2NmQwMzY4Zjk0MzcyMDEzYi4uZGQyZjIwYTU5YzkzOWNkMWZi
ZDUyODU2OWIwYzlhZjBlNGYxNjZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9E
YXRlVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlu
cHV0VHlwZS5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCBTdHJpbmcgRGF0ZVRpbWVJbnB1dFR5cGU6
OmZvcm1hdERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZAog
CiB2b2lkIERhdGVUaW1lSW5wdXRUeXBlOjpzZXR1cExheW91dFBhcmFtZXRlcnMoRGF0ZVRpbWVF
ZGl0RWxlbWVudDo6TGF5b3V0UGFyYW1ldGVycyYgbGF5b3V0UGFyYW1ldGVycywgY29uc3QgRGF0
ZUNvbXBvbmVudHMmIGRhdGUpIGNvbnN0CiB7Ci0gICAgaWYgKGRhdGUuc2Vjb25kKCkgfHwgbGF5
b3V0UGFyYW1ldGVycy5zaG91bGRIYXZlU2Vjb25kRmllbGQoKSkgeworICAgIGlmIChzaG91bGRI
YXZlU2Vjb25kRmllbGQoZGF0ZSkpIHsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5kYXRlVGlt
ZUZvcm1hdCA9IGxheW91dFBhcmFtZXRlcnMubG9jYWxpemVyLmRhdGVUaW1lRm9ybWF0V2l0aFNl
Y29uZCgpOwogICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxiYWNrRGF0ZVRpbWVGb3JtYXQg
PSAiZGQvTU0veXl5eSBISDptbTpzcyI7CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCmluZGV4IGUyM2VmODE4Mzc2MzYwZmJm
NjY1ODU5MTFhMTQ4NjVmYjU4ZGJmNjYuLmZmYzQ1MmJlOTBkODAzMjVlNjg5YzNkOTc4MzFkMjg2
NmY4ZmFiMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElu
cHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRU
eXBlLmNwcApAQCAtMTUxLDcgKzE1MSw3IEBAIFN0cmluZyBEYXRlVGltZUxvY2FsSW5wdXRUeXBl
Ojpmb3JtYXREYXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhCiAKIHZv
aWQgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6c2V0dXBMYXlvdXRQYXJhbWV0ZXJzKERhdGVUaW1l
RWRpdEVsZW1lbnQ6OkxheW91dFBhcmFtZXRlcnMmIGxheW91dFBhcmFtZXRlcnMsIGNvbnN0IERh
dGVDb21wb25lbnRzJiBkYXRlKSBjb25zdAogewotICAgIGlmIChkYXRlLnNlY29uZCgpIHx8IGxh
eW91dFBhcmFtZXRlcnMuc2hvdWxkSGF2ZVNlY29uZEZpZWxkKCkpIHsKKyAgICBpZiAoc2hvdWxk
SGF2ZVNlY29uZEZpZWxkKGRhdGUpKSB7CiAgICAgICAgIGxheW91dFBhcmFtZXRlcnMuZGF0ZVRp
bWVGb3JtYXQgPSBsYXlvdXRQYXJhbWV0ZXJzLmxvY2FsaXplci5kYXRlVGltZUZvcm1hdFdpdGhT
ZWNvbmQoKTsKICAgICAgICAgbGF5b3V0UGFyYW1ldGVycy5mYWxsYmFja0RhdGVUaW1lRm9ybWF0
ID0gImRkL01NL3l5eXkgSEg6bW06c3MiOwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9U
aW1lSW5wdXRUeXBlLmNwcAppbmRleCA0OGE2ODRjMzVlNmU1OWJlZjVhY2NhNmVjMDc3NDE4ZDBh
MDJkZWQ4Li43ODljZDNmZWVkNjg0Y2M3ODNjMzQzM2I1N2JmMWJmY2YzYmIyMTM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTEyMiw2ICsxMjIsMTggQEAgYm9vbCBU
aW1lSW5wdXRUeXBlOjppc1RpbWVGaWVsZCgpIGNvbnN0CiAKICNpZiBFTkFCTEUoSU5QVVRfTVVM
VElQTEVfRklFTERTX1VJKQogCitTdHJpbmcgVGltZUlucHV0VHlwZTo6bG9jYWxpemVWYWx1ZShj
b25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpIGNvbnN0Cit7CisgICAgRGF0ZUNvbXBvbmVudHMg
ZGF0ZTsKKyAgICBpZiAoIXBhcnNlVG9EYXRlQ29tcG9uZW50cyhwcm9wb3NlZFZhbHVlLCAmZGF0
ZSkpCisgICAgICAgIHJldHVybiBwcm9wb3NlZFZhbHVlOworCisgICAgTG9jYWxpemVyOjpGb3Jt
YXRUeXBlIGZvcm1hdFR5cGUgPSBzaG91bGRIYXZlU2Vjb25kRmllbGQoZGF0ZSkgPyBMb2NhbGl6
ZXI6OkZvcm1hdFR5cGVNZWRpdW0gOiBMb2NhbGl6ZXI6OkZvcm1hdFR5cGVTaG9ydDsKKworICAg
IFN0cmluZyBsb2NhbGl6ZWQgPSBlbGVtZW50KCktPmxvY2FsaXplcigpLmZvcm1hdERhdGVUaW1l
KGRhdGUsIGZvcm1hdFR5cGUpOworICAgIHJldHVybiBsb2NhbGl6ZWQuaXNFbXB0eSgpID8gcHJv
cG9zZWRWYWx1ZSA6IGxvY2FsaXplZDsKK30KKwogU3RyaW5nIFRpbWVJbnB1dFR5cGU6OmZvcm1h
dERhdGVUaW1lRmllbGRzU3RhdGUoY29uc3QgRGF0ZVRpbWVGaWVsZHNTdGF0ZSYgZGF0ZVRpbWVG
aWVsZHNTdGF0ZSkgY29uc3QKIHsKICAgICBpZiAoIWRhdGVUaW1lRmllbGRzU3RhdGUuaGFzSG91
cigpIHx8ICFkYXRlVGltZUZpZWxkc1N0YXRlLmhhc01pbnV0ZSgpIHx8ICFkYXRlVGltZUZpZWxk
c1N0YXRlLmhhc0FNUE0oKSkKQEAgLTE0Miw3ICsxNTQsNyBAQCBTdHJpbmcgVGltZUlucHV0VHlw
ZTo6Zm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiBk
YXRlVAogCiB2b2lkIFRpbWVJbnB1dFR5cGU6OnNldHVwTGF5b3V0UGFyYW1ldGVycyhEYXRlVGlt
ZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJiBsYXlvdXRQYXJhbWV0ZXJzLCBjb25zdCBE
YXRlQ29tcG9uZW50cyYgZGF0ZSkgY29uc3QKIHsKLSAgICBpZiAoZGF0ZS5zZWNvbmQoKSB8fCBs
YXlvdXRQYXJhbWV0ZXJzLnNob3VsZEhhdmVTZWNvbmRGaWVsZCgpKSB7CisgICAgaWYgKHNob3Vs
ZEhhdmVTZWNvbmRGaWVsZChkYXRlKSkgewogICAgICAgICBsYXlvdXRQYXJhbWV0ZXJzLmRhdGVU
aW1lRm9ybWF0ID0gbGF5b3V0UGFyYW1ldGVycy5sb2NhbGl6ZXIudGltZUZvcm1hdCgpOwogICAg
ICAgICBsYXlvdXRQYXJhbWV0ZXJzLmZhbGxiYWNrRGF0ZVRpbWVGb3JtYXQgPSAiSEg6bW06c3Mi
OwogICAgIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCmluZGV4IGQ1YTk3
OTJhN2E0MjBlOTY0MjQyZDIwOTY2NDRmZjdiMzFmMDkzNjYuLmRhZmQ1OGRmYmRhM2VjMDU0OTNj
NzEwNTA2NDg4YWYzYzYxZDM3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGlt
ZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBA
IC01NSw4ICs1NSw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29t
cG9uZW50c0ludGVybmFsKGNvbnN0IFVDaGFyKiwgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9u
ZW50cyopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzZXRNaWxsaXNlY29uZFRv
RGF0ZUNvbXBvbmVudHMoZG91YmxlLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgYm9vbCBpc1RpbWVGaWVsZCgpIGNvbnN0IE9WRVJSSURFOwotCiAjaWYgRU5B
QkxFKElOUFVUX01VTFRJUExFX0ZJRUxEU19VSSkKKyAgICB2aXJ0dWFsIFN0cmluZyBsb2NhbGl6
ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOworCiAgICAgLy8gQmFzZU11bHRp
cGxlRmllbGRzRGF0ZUFuZFRpbWVJbnB1dFR5cGUgZnVuY3Rpb25zCiAgICAgdmlydHVhbCBTdHJp
bmcgZm9ybWF0RGF0ZVRpbWVGaWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJikg
Y29uc3QgT1ZFUlJJREUgRklOQUw7CiAgICAgdmlydHVhbCB2b2lkIHNldHVwTGF5b3V0UGFyYW1l
dGVycyhEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQYXJhbWV0ZXJzJiwgY29uc3QgRGF0ZUNv
bXBvbmVudHMmKSBjb25zdCBPVkVSUklERSBGSU5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAKaW5kZXggYzQ2MmUyNmU0NzBlNzVh
NGQzZTU4MTM3MDgzYWM3N2U0NzZmYjhlMi4uMjBjNTFmNGEwOWI2N2NiMTI1ODUwMjZjOGUxN2Vm
OGYwNDkyNjBmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVFZGl0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVFZGl0RWxlbWVudC5jcHAKQEAgLTE4OSwxNSArMTg5LDYgQEAgdm9pZCBEYXRlVGltZUVkaXRC
dWlsZGVyOjp2aXNpdExpdGVyYWwoY29uc3QgU3RyaW5nJiB0ZXh0KQogCiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAKLQotYm9vbCBEYXRlVGltZUVkaXRFbGVtZW50OjpMYXlvdXRQ
YXJhbWV0ZXJzOjpzaG91bGRIYXZlU2Vjb25kRmllbGQoKSBjb25zdAotewotICAgIHJldHVybiAh
c3RlcFJhbmdlLm1pbmltdW0oKS5yZW1haW5kZXIoc3RhdGljX2Nhc3Q8aW50Pihtc1Blck1pbnV0
ZSkpLmlzWmVybygpCi0gICAgICAgIHx8ICFzdGVwUmFuZ2Uuc3RlcCgpLnJlbWFpbmRlcihzdGF0
aWNfY2FzdDxpbnQ+KG1zUGVyTWludXRlKSkuaXNaZXJvKCk7Ci19Ci0KLS8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLQogRGF0ZVRpbWVFZGl0RWxlbWVudDo6RWRpdENvbnRyb2xPd25l
cjo6fkVkaXRDb250cm9sT3duZXIoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCmluZGV4IGJlZGEyOWRjY2ZjYWM2YjIyMmQyMDg2
MTUxOGY1NmJjODNkOThkMTQuLmVjYmVhYWQ4OWVmNGFiNTE1ZjdlNzA2MGQyYTY3ZTAyMzA0N2Iz
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVt
ZW50LmgKQEAgLTc1LDggKzc1LDYgQEAgcHVibGljOgogICAgICAgICAgICAgLCBzdGVwUmFuZ2Uo
c3RlcFJhbmdlKQogICAgICAgICB7CiAgICAgICAgIH0KLQotICAgICAgICBib29sIHNob3VsZEhh
dmVTZWNvbmRGaWVsZCgpIGNvbnN0OwogICAgIH07CiAKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxE
YXRlVGltZUVkaXRFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBFZGl0Q29udHJvbE93bmVyJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5jcHAKaW5kZXggNDhmYzE1
MzA3Zjc2NjJmNWFkYTAwYjRjOTViNjY4NjQ4Y2ZjYzA5Yi4uOGFhYThiOTU0ZjgwYWUyMzViMjFl
NTIwMWQ0MmVlYjZkODJlZWE3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9Mb2NhbGVJQ1UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9j
YWxlSUNVLmNwcApAQCAtMTgyLDEwICsxODIsMTAgQEAgZG91YmxlIExvY2FsZUlDVTo6cGFyc2VE
YXRlVGltZShjb25zdCBTdHJpbmcmIGlucHV0LCBEYXRlQ29tcG9uZW50czo6VHlwZSB0eXBlKQog
ICAgIHJldHVybiBkYXRlOwogfQogCi1TdHJpbmcgTG9jYWxlSUNVOjpmb3JtYXREYXRlVGltZShj
b25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUNvbXBvbmVudHMpCitTdHJpbmcgTG9jYWxlSUNVOjpm
b3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUNvbXBvbmVudHMsIEZvcm1h
dFR5cGUgZm9ybWF0VHlwZSkKIHsKICAgICBpZiAoZGF0ZUNvbXBvbmVudHMudHlwZSgpICE9IERh
dGVDb21wb25lbnRzOjpEYXRlKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIHJl
dHVybiBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lKGRhdGVDb21wb25lbnRzLCBmb3JtYXRUeXBl
KTsKICAgICBpZiAoIWluaXRpYWxpemVTaG9ydERhdGVGb3JtYXQoKSkKICAgICAgICAgcmV0dXJu
IFN0cmluZygpOwogICAgIGRvdWJsZSBpbnB1dCA9IGRhdGVDb21wb25lbnRzLm1pbGxpc2Vjb25k
c1NpbmNlRXBvY2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
TG9jYWxlSUNVLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZUlDVS5oCmlu
ZGV4IDY5ZjNkNjUyZWFhNzFmMWE5ZmJkOTMwYWRjNGEyZTQxZjA1YmM5ZWYuLmExMjZmNmIxMWJi
OTdiY2E1MGE5YmJiOWI1Y2MyNGIyNDQ2YjI2ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvTG9jYWxlSUNVLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9Mb2NhbGVJQ1UuaApAQCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBGb3Ig
TG9jYWxpemVkRGF0ZQogICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlRGF0ZVRpbWUoY29uc3QgU3Ry
aW5nJiwgRGF0ZUNvbXBvbmVudHM6OlR5cGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5n
IGZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmLCBGb3JtYXRU
eXBlID0gRm9ybWF0VHlwZVVuc3BlY2lmaWVkKSBPVkVSUklERTsKICNpZiBFTkFCTEUoQ0FMRU5E
QVJfUElDS0VSKQogICAgIHZpcnR1YWwgU3RyaW5nIGRhdGVGb3JtYXRUZXh0KCkgT1ZFUlJJREU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlTm9uZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZU5vbmUuY3BwCmluZGV4IDBj
ZTY0NmZkOTk4ZDM1NzRkNmJlNjdkMmE3NDMxMzBiMzAzZjM1MTYuLjIzYWIxZjhhN2JmZGJhMDgw
ZjY5ZGVkZTMyNTM4ZmQ3YWFmYTNmZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvTG9jYWxlTm9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9Mb2NhbGVOb25lLmNwcApAQCAtMzYsNyArMzYsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBpbml0aWFsaXplTG9jYWxpemVyRGF0YSgpIE9WRVJSSURFIEZJTkFMOwog
ICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlRGF0ZVRpbWUoY29uc3QgU3RyaW5nJiwgRGF0ZUNvbXBv
bmVudHM6OlR5cGUpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdERhdGVUaW1l
KGNvbnN0IERhdGVDb21wb25lbnRzJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBTdHJpbmcgZm9y
bWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmLCBGb3JtYXRUeXBlID0gRm9ybWF0VHlw
ZVVuc3BlY2lmaWVkKSBPVkVSUklERTsKICNpZiBFTkFCTEUoQ0FMRU5EQVJfUElDS0VSKQogICAg
IHZpcnR1YWwgU3RyaW5nIGRhdGVGb3JtYXRUZXh0KCkgT1ZFUlJJREU7CiAjZW5kaWYKQEAgLTYz
LDcgKzYzLDcgQEAgZG91YmxlIExvY2FsZU5vbmU6OnBhcnNlRGF0ZVRpbWUoY29uc3QgU3RyaW5n
JiwgRGF0ZUNvbXBvbmVudHM6OlR5cGUpCiAgICAgcmV0dXJuIHN0ZDo6bnVtZXJpY19saW1pdHM8
ZG91YmxlPjo6cXVpZXRfTmFOKCk7CiB9CiAKLVN0cmluZyBMb2NhbGVOb25lOjpmb3JtYXREYXRl
VGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYpCitTdHJpbmcgTG9jYWxlTm9uZTo6Zm9ybWF0RGF0
ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmLCBGb3JtYXRUeXBlKQogewogICAgIHJldHVybiBT
dHJpbmcoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9j
YWxlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmNwcApp
bmRleCA0OTBkOGU5MGUzMWNlODc2NzdiM2U3YjJlZWU2OGI0YmFmZjhiN2FlLi5mMDNjOTdmNjZi
M2E1YTY2NTI3ZDFiZTA0YjM0MDkxZDAwOWQ1MGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGVXaW4uY3BwCkBAIC00ODcsMTAgKzQ4NywxMCBAQCB2b2lkIExvY2FsZVdp
bjo6YXBwZW5kRm91ckRpZ2l0c051bWJlcihpbnQgdmFsdWUsIFN0cmluZ0J1aWxkZXImIGJ1ZmZl
cikKICAgICBidWZmZXIuYXBwZW5kKGNvbnZlcnRUb0xvY2FsaXplZE51bWJlcihudW1iZXJCdWZm
ZXIudG9TdHJpbmcoKSkpOwogfQogCi1TdHJpbmcgTG9jYWxlV2luOjpmb3JtYXREYXRlVGltZShj
b25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUNvbXBvbmVudHMpCitTdHJpbmcgTG9jYWxlV2luOjpm
b3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUNvbXBvbmVudHMsIEZvcm1h
dFR5cGUgZm9ybWF0VHlwZSkKIHsKICAgICBpZiAoZGF0ZUNvbXBvbmVudHMudHlwZSgpICE9IERh
dGVDb21wb25lbnRzOjpEYXRlKQotICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIHJl
dHVybiBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lKGRhdGVDb21wb25lbnRzLCBmb3JtYXRUeXBl
KTsKICAgICBlbnN1cmVTaG9ydERhdGVUb2tlbnMoKTsKICAgICByZXR1cm4gZm9ybWF0RGF0ZSht
X3Nob3J0RGF0ZVRva2VucywgbV9iYXNlWWVhciwgZGF0ZUNvbXBvbmVudHMuZnVsbFllYXIoKSwg
ZGF0ZUNvbXBvbmVudHMubW9udGgoKSwgZGF0ZUNvbXBvbmVudHMubW9udGhEYXkoKSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsZVdpbi5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGVXaW4uaAppbmRleCA1Y2ZiMDUyYTQyYzMx
Yzk1YzNmNzZkZGIxMjA4ZWM3MGQ3MWVmYjI1Li4xNTA3MjIxNDg1ZWJiOTIwMGYzOTQ0YmQ5OGQ5
MTczZDYyNmM5MzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xv
Y2FsZVdpbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxlV2luLmgK
QEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBMb2NhbGVXaW4qIGN1cnJlbnRM
b2NhbGUoKTsKICAgICB+TG9jYWxlV2luKCk7CiAgICAgdmlydHVhbCBkb3VibGUgcGFyc2VEYXRl
VGltZShjb25zdCBTdHJpbmcmLCBEYXRlQ29tcG9uZW50czo6VHlwZSkgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0ZUNvbXBvbmVudHMmKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9u
ZW50cyYsIEZvcm1hdFR5cGUgPSBGb3JtYXRUeXBlVW5zcGVjaWZpZWQpIE9WRVJSSURFOwogI2lm
IEVOQUJMRShDQUxFTkRBUl9QSUNLRVIpCiAgICAgdmlydHVhbCBTdHJpbmcgZGF0ZUZvcm1hdFRl
eHQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBtb250aExh
YmVscygpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9Mb2NhbGl6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIu
Y3BwCmluZGV4IDZjOTU3ZTU1MzllZTIwMDdhZDcyYjhhNDQ5NDcyZjFjMmZkN2YzY2YuLjU0ZGYw
MjVmMDExZDdhZWY4OWQ4ZTk1YzUyZTA3N2E5MjlkNTNhYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0xvY2FsaXplci5jcHAKQEAgLTMxLDEwICszMSwxMjIgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJMb2NhbGl6ZXIuaCIKIAorI2luY2x1ZGUgIkRhdGVUaW1l
Rm9ybWF0LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKKyNpZiBFTkFCTEUoSU5QVVRfTVVMVElQTEVfRklFTERTX1VJKQorCitj
bGFzcyBEYXRlVGltZVN0cmluZ0J1aWxkZXIgOiBwcml2YXRlIERhdGVUaW1lRm9ybWF0OjpUb2tl
bkhhbmRsZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERhdGVUaW1lU3RyaW5nQnVpbGRl
cik7CisKK3B1YmxpYzoKKyAgICAvLyBUaGUgYXJndW1lbnQgb2JqZWN0cyBtdXN0IGJlIGFsaXZl
IHVudGlsIHRoaXMgb2JqZWN0IGRpZXMuCisgICAgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyKExvY2Fs
aXplciYsIGNvbnN0IERhdGVDb21wb25lbnRzJik7CisKKyAgICBib29sIGJ1aWxkKGNvbnN0IFN0
cmluZyYpOworICAgIFN0cmluZyB0b1N0cmluZygpOworCitwcml2YXRlOgorICAgIC8vIERhdGVU
aW1lRm9ybWF0OjpUb2tlbkhhbmRsZXIgZnVuY3Rpb25zLgorICAgIHZpcnR1YWwgdm9pZCB2aXNp
dEZpZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGUsIGludCkgT1ZFUlJJREUgRklOQUw7Cisg
ICAgdmlydHVhbCB2b2lkIHZpc2l0TGl0ZXJhbChjb25zdCBTdHJpbmcmKSBPVkVSUklERSBGSU5B
TDsKKworICAgIFN0cmluZyB6ZXJvUGFkU3RyaW5nKGNvbnN0IFN0cmluZyYsIHNpemVfdCB3aWR0
aCk7CisgICAgdm9pZCBhcHBlbmROdW1iZXIoaW50IG51bWJlciwgc2l6ZV90IHdpZHRoKTsKKwor
ICAgIFN0cmluZ0J1aWxkZXIgbV9idWlsZGVyOworICAgIExvY2FsaXplciYgbV9sb2NhbGl6ZXI7
CisgICAgY29uc3QgRGF0ZUNvbXBvbmVudHMmIG1fZGF0ZTsKK307CisKK0RhdGVUaW1lU3RyaW5n
QnVpbGRlcjo6RGF0ZVRpbWVTdHJpbmdCdWlsZGVyKExvY2FsaXplciYgbG9jYWxpemVyLCBjb25z
dCBEYXRlQ29tcG9uZW50cyYgZGF0ZSkKKyAgICA6IG1fbG9jYWxpemVyKGxvY2FsaXplcikKKyAg
ICAsIG1fZGF0ZShkYXRlKQoreworfQorCitib29sIERhdGVUaW1lU3RyaW5nQnVpbGRlcjo6YnVp
bGQoY29uc3QgU3RyaW5nJiBmb3JtYXRTdHJpbmcpCit7CisgICAgbV9idWlsZGVyLnJlc2VydmVD
YXBhY2l0eShmb3JtYXRTdHJpbmcubGVuZ3RoKCkpOworICAgIHJldHVybiBEYXRlVGltZUZvcm1h
dDo6cGFyc2UoZm9ybWF0U3RyaW5nLCAqdGhpcyk7Cit9CisKK1N0cmluZyBEYXRlVGltZVN0cmlu
Z0J1aWxkZXI6Onplcm9QYWRTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcsIHNpemVfdCB3aWR0
aCkKK3sKKyAgICBpZiAoc3RyaW5nLmxlbmd0aCgpID49IHdpZHRoKQorICAgICAgICByZXR1cm4g
c3RyaW5nOworICAgIFN0cmluZ0J1aWxkZXIgemVyb1BhZGRlZFN0cmluZ0J1aWxkZXI7CisgICAg
emVyb1BhZGRlZFN0cmluZ0J1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KHdpZHRoKTsKKyAgICBmb3Ig
KHNpemVfdCBpID0gc3RyaW5nLmxlbmd0aCgpOyBpIDwgd2lkdGg7ICsraSkKKyAgICAgICAgemVy
b1BhZGRlZFN0cmluZ0J1aWxkZXIuYXBwZW5kKCIwIik7CisgICAgemVyb1BhZGRlZFN0cmluZ0J1
aWxkZXIuYXBwZW5kKHN0cmluZyk7CisgICAgcmV0dXJuIHplcm9QYWRkZWRTdHJpbmdCdWlsZGVy
LnRvU3RyaW5nKCk7Cit9CisKK3ZvaWQgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1i
ZXIoaW50IG51bWJlciwgc2l6ZV90IHdpZHRoKQoreworICAgIFN0cmluZyB6ZXJvUGFkZGVkTnVt
YmVyU3RyaW5nID0gemVyb1BhZFN0cmluZyhTdHJpbmc6Om51bWJlcihudW1iZXIpLCB3aWR0aCk7
CisgICAgbV9idWlsZGVyLmFwcGVuZChtX2xvY2FsaXplci5jb252ZXJ0VG9Mb2NhbGl6ZWROdW1i
ZXIoemVyb1BhZGRlZE51bWJlclN0cmluZykpOworfQorCit2b2lkIERhdGVUaW1lU3RyaW5nQnVp
bGRlcjo6dmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlIGZpZWxkVHlwZSwgaW50
IG51bWJlck9mUGF0dGVybkNoYXJhY3RlcnMpCit7CisgICAgc3dpdGNoIChmaWVsZFR5cGUpIHsK
KyAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVQZXJpb2Q6CisgICAgICAgIG1fYnVp
bGRlci5hcHBlbmQobV9sb2NhbGl6ZXIudGltZUFNUE1MYWJlbHMoKVsobV9kYXRlLmhvdXIoKSA+
PSAxMiA/IDEgOiAwKV0pOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlSG91cjEyOiB7CisgICAgICAgIGludCBob3VyMTIgPSBtX2RhdGUuaG91cigp
ICUgMTI7CisgICAgICAgIGlmICghaG91cjEyKQorICAgICAgICAgICAgaG91cjEyID0gMTI7Cisg
ICAgICAgIGFwcGVuZE51bWJlcihob3VyMTIsIG51bWJlck9mUGF0dGVybkNoYXJhY3RlcnMpOwor
ICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZUhvdXIyMzoKKyAgICAgICAgYXBwZW5kTnVtYmVyKG1fZGF0ZS5ob3VyKCksIG51bWJlck9mUGF0
dGVybkNoYXJhY3RlcnMpOworICAgICAgICByZXR1cm47CisgICAgY2FzZSBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlSG91cjExOgorICAgICAgICBhcHBlbmROdW1iZXIobV9kYXRlLmhvdXIoKSAl
IDEyLCBudW1iZXJPZlBhdHRlcm5DaGFyYWN0ZXJzKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNh
c2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZUhvdXIyNDogeworICAgICAgICBpbnQgaG91cjI0
ID0gbV9kYXRlLmhvdXIoKTsKKyAgICAgICAgaWYgKCFob3VyMjQpCisgICAgICAgICAgICBob3Vy
MjQgPSAyNDsKKyAgICAgICAgYXBwZW5kTnVtYmVyKGhvdXIyNCwgbnVtYmVyT2ZQYXR0ZXJuQ2hh
cmFjdGVycyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBEYXRlVGltZUZvcm1h
dDo6RmllbGRUeXBlTWludXRlOgorICAgICAgICBhcHBlbmROdW1iZXIobV9kYXRlLm1pbnV0ZSgp
LCBudW1iZXJPZlBhdHRlcm5DaGFyYWN0ZXJzKTsKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2Ug
RGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVNlY29uZDoKKyAgICAgICAgaWYgKCFtX2RhdGUubWls
bGlzZWNvbmQoKSkKKyAgICAgICAgICAgIGFwcGVuZE51bWJlcihtX2RhdGUuc2Vjb25kKCksIG51
bWJlck9mUGF0dGVybkNoYXJhY3RlcnMpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGRv
dWJsZSBzZWNvbmQgPSBtX2RhdGUuc2Vjb25kKCkgKyBtX2RhdGUubWlsbGlzZWNvbmQoKSAvIDEw
MDAuMDsKKyAgICAgICAgICAgIFN0cmluZyB6ZXJvUGFkZGVkU2Vjb25kU3RyaW5nID0gemVyb1Bh
ZFN0cmluZyhTdHJpbmc6OmZvcm1hdCgiJS4wM2YiLCBzZWNvbmQpLCBudW1iZXJPZlBhdHRlcm5D
aGFyYWN0ZXJzICsgNCk7CisgICAgICAgICAgICBtX2J1aWxkZXIuYXBwZW5kKG1fbG9jYWxpemVy
LmNvbnZlcnRUb0xvY2FsaXplZE51bWJlcih6ZXJvUGFkZGVkU2Vjb25kU3RyaW5nKSk7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybjsKKyAg
ICB9Cit9CisKK3ZvaWQgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjp2aXNpdExpdGVyYWwoY29uc3Qg
U3RyaW5nJiB0ZXh0KQoreworICAgIEFTU0VSVCh0ZXh0Lmxlbmd0aCgpKTsKKyAgICBtX2J1aWxk
ZXIuYXBwZW5kKHRleHQpOworfQorCitTdHJpbmcgRGF0ZVRpbWVTdHJpbmdCdWlsZGVyOjp0b1N0
cmluZygpCit7CisgICAgcmV0dXJuIG1fYnVpbGRlci50b1N0cmluZygpOworfQorCisjZW5kaWYK
KwogTG9jYWxpemVyOjp+TG9jYWxpemVyKCkKIHsKIH0KQEAgLTIzOCw0ICszNTAsMTkgQEAgY29u
c3QgVmVjdG9yPFN0cmluZz4mIExvY2FsaXplcjo6dGltZUFNUE1MYWJlbHMoKQogfQogI2VuZGlm
CiAKK1N0cmluZyBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRz
JiBkYXRlLCBGb3JtYXRUeXBlIGZvcm1hdFR5cGUpCit7CisjaWYgRU5BQkxFKElOUFVUX01VTFRJ
UExFX0ZJRUxEU19VSSkKKyAgICBpZiAoZGF0ZS50eXBlKCkgIT0gRGF0ZUNvbXBvbmVudHM6OlRp
bWUpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICBEYXRlVGltZVN0cmluZ0J1aWxkZXIg
YnVpbGRlcigqdGhpcywgZGF0ZSk7CisgICAgYnVpbGRlci5idWlsZChmb3JtYXRUeXBlID09IEZv
cm1hdFR5cGVTaG9ydCA/IHNob3J0VGltZUZvcm1hdCgpIDogdGltZUZvcm1hdCgpKTsKKyAgICBy
ZXR1cm4gYnVpbGRlci50b1N0cmluZygpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZGF0ZSk7
CisgICAgVU5VU0VEX1BBUkFNKGZvcm1hdFR5cGUpOworICAgIHJldHVybiBTdHJpbmcoKTsKKyNl
bmRpZgorfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xv
Y2FsaXplci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZXIuaAppbmRl
eCA5ZTE0ZDgyNDQwNDkwYjQ4ZjJmNGNlZmYzNGE2NDVmYTg3NTMxOTYzLi43NzU5M2U5M2JiMDgw
NWM2ZDI2YmViYWVjNGQzMTJjZjc4Y2JhYWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0xvY2FsaXplci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxpemVyLmgKQEAgLTEwOSwxMCArMTA5LDEyIEBAIHB1YmxpYzoKICAgICAvLyAwMDow
MDowMC4wMDAgVVRDLgogICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlRGF0ZVRpbWUoY29uc3QgU3Ry
aW5nJiwgRGF0ZUNvbXBvbmVudHM6OlR5cGUpID0gMDsKIAorICAgIGVudW0gRm9ybWF0VHlwZSB7
IEZvcm1hdFR5cGVVbnNwZWNpZmllZCwgRm9ybWF0VHlwZVNob3J0LCBGb3JtYXRUeXBlTWVkaXVt
IH07CisKICAgICAvLyBTZXJpYWxpemVzIHRoZSBzcGVjaWZpZWQgZGF0ZSBpbnRvIGEgZm9ybWF0
dGVkIGRhdGUgc3RyaW5nIHRvCiAgICAgLy8gZGlzcGxheSB0byB0aGUgdXNlci4gSWYgYW4gaW1w
bGVtZW50YXRpb24gZG9lc24ndCBzdXBwb3J0CiAgICAgLy8gbG9jYWxpemVkIGRhdGVzIHRoZSBm
dW5jdGlvbiBzaG91bGQgcmV0dXJuIGFuIGVtcHR5IHN0cmluZy4KLSAgICB2aXJ0dWFsIFN0cmlu
ZyBmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYpID0gMDsKKyAgICB2aXJ0dWFs
IFN0cmluZyBmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYsIEZvcm1hdFR5cGUg
PSBGb3JtYXRUeXBlVW5zcGVjaWZpZWQpOwogCiAgICAgdmlydHVhbCB+TG9jYWxpemVyKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLmgKaW5kZXggMmQ5
ZThhZGU2OWEyZjQxNGY4YjA2OTFhNWEzODdhMzVlOTBkMGEzNS4uZWQ5ZjcxNjIwOGM0NDA4YjNj
YmI0ZDBiMzczY2VmMjQ3NTBhMmRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9tYWMvTG9jYWxlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9tYWMvTG9jYWxlTWFjLmgKQEAgLTUxLDcgKzUxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBM
b2NhbGVNYWMqIGN1cnJlbnRMb2NhbGUoKTsKICAgICB+TG9jYWxlTWFjKCk7CiAgICAgdmlydHVh
bCBkb3VibGUgcGFyc2VEYXRlVGltZShjb25zdCBTdHJpbmcmLCBEYXRlQ29tcG9uZW50czo6VHlw
ZSkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0
ZUNvbXBvbmVudHMmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXREYXRlVGlt
ZShjb25zdCBEYXRlQ29tcG9uZW50cyYsIEZvcm1hdFR5cGUgPSBGb3JtYXRUeXBlVW5zcGVjaWZp
ZWQpIE9WRVJSSURFOwogCiAjaWYgRU5BQkxFKENBTEVOREFSX1BJQ0tFUikKICAgICB2aXJ0dWFs
IFN0cmluZyBkYXRlRm9ybWF0VGV4dCgpIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCmluZGV4IGFlOWY2NzViNzhlNjBiOWRiY2U0N2Qy
MzAxYzJiNzg5NDc0NDRmYjkuLjU3ZTdiOGUzMzFjN2ExOTU2MzMxYjVlZjIxNTIwYWI2MDI5NGE5
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0K
QEAgLTEyOCwxMCArMTI4LDEwIEBAIGRvdWJsZSBMb2NhbGVNYWM6OnBhcnNlRGF0ZVRpbWUoY29u
c3QgU3RyaW5nJiBpbnB1dCwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgdHlwZSkKICAgICByZXR1cm4g
W2RhdGUgdGltZUludGVydmFsU2luY2UxOTcwXSAqIG1zUGVyU2Vjb25kOwogfQogCi1TdHJpbmcg
TG9jYWxlTWFjOjpmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZUNvbXBv
bmVudHMpCitTdHJpbmcgTG9jYWxlTWFjOjpmb3JtYXREYXRlVGltZShjb25zdCBEYXRlQ29tcG9u
ZW50cyYgZGF0ZUNvbXBvbmVudHMsIEZvcm1hdFR5cGUgZm9ybWF0VHlwZSkKIHsKICAgICBpZiAo
ZGF0ZUNvbXBvbmVudHMudHlwZSgpICE9IERhdGVDb21wb25lbnRzOjpEYXRlKQotICAgICAgICBy
ZXR1cm4gU3RyaW5nKCk7CisgICAgICAgIHJldHVybiBMb2NhbGl6ZXI6OmZvcm1hdERhdGVUaW1l
KGRhdGVDb21wb25lbnRzLCBmb3JtYXRUeXBlKTsKICAgICBSZXRhaW5QdHI8TlNEYXRlRm9ybWF0
dGVyPiBmb3JtYXR0ZXIoQWRvcHROUywgY3JlYXRlU2hvcnREYXRlRm9ybWF0dGVyKCkpOwogICAg
IE5TVGltZUludGVydmFsIGludGVydmFsID0gZGF0ZUNvbXBvbmVudHMubWlsbGlzZWNvbmRzU2lu
Y2VFcG9jaCgpIC8gbXNQZXJTZWNvbmQ7CiAgICAgcmV0dXJuIFN0cmluZyhbZm9ybWF0dGVyLmdl
dCgpIHN0cmluZ0Zyb21EYXRlOltOU0RhdGUgZGF0ZVdpdGhUaW1lSW50ZXJ2YWxTaW5jZTE5NzA6
aW50ZXJ2YWxdXSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xv
Y2FsZU1hY1Rlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9Mb2NhbGVNYWNU
ZXN0LmNwcAppbmRleCBmNWYyNjhkYjM1YjA4MzExNmZiYzBjNjdlNzZiNjIyNDRkMzhiMmEzLi42
ZjBmOTU3ZTJjMGQwNGU3NDA1ZjgzMDc1Y2I0YjFkM2RmYzYwNDUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xvY2FsZU1hY1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvTG9jYWxlTWFjVGVzdC5jcHAKQEAgLTU3LDYgKzU3LDEzIEBA
IHByb3RlY3RlZDoKICAgICAgICAgcmV0dXJuIGRhdGU7CiAgICAgfQogCisgICAgRGF0ZUNvbXBv
bmVudHMgdGltZUNvbXBvbmVudHMoaW50IGhvdXIsIGludCBtaW51dGUsIGludCBzZWNvbmQsIGlu
dCBtaWxsaXNlY29uZCkKKyAgICB7CisgICAgICAgIERhdGVDb21wb25lbnRzIGRhdGU7CisgICAg
ICAgIGRhdGUuc2V0TWlsbGlzZWNvbmRzU2luY2VNaWRuaWdodChob3VyICogbXNQZXJIb3VyICsg
bWludXRlICogbXNQZXJNaW51dGUgKyBzZWNvbmQgKiBtc1BlclNlY29uZCArIG1pbGxpc2Vjb25k
KTsKKyAgICAgICAgcmV0dXJuIGRhdGU7CisgICAgfQorCiAgICAgZG91YmxlIG1zRm9yRGF0ZShp
bnQgeWVhciwgaW50IG1vbnRoLCBpbnQgZGF5KQogICAgIHsKICAgICAgICAgcmV0dXJuIGRhdGVU
b0RheXNGcm9tMTk3MCh5ZWFyLCBtb250aCwgZGF5KSAqIG1zUGVyRGF5OwpAQCAtNjgsNiArNzUs
MTIgQEAgcHJvdGVjdGVkOgogICAgICAgICByZXR1cm4gbG9jYWxlLT5mb3JtYXREYXRlVGltZShk
YXRlQ29tcG9uZW50cyh5ZWFyLCBtb250aCwgZGF5KSk7CiAgICAgfQogCisgICAgU3RyaW5nIGZv
cm1hdFRpbWUoY29uc3QgU3RyaW5nJiBsb2NhbGVTdHJpbmcsIGludCBob3VyLCBpbnQgbWludXRl
LCBpbnQgc2Vjb25kLCBpbnQgbWlsbGlzZWNvbmQsIGJvb2wgdXNlU2hvcnRGb3JtYXQpCisgICAg
eworICAgICAgICBPd25QdHI8TG9jYWxlTWFjPiBsb2NhbGUgPSBMb2NhbGVNYWM6OmNyZWF0ZShs
b2NhbGVTdHJpbmcpOworICAgICAgICByZXR1cm4gbG9jYWxlLT5mb3JtYXREYXRlVGltZSh0aW1l
Q29tcG9uZW50cyhob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmQpLCAodXNlU2hvcnRG
b3JtYXQgPyBMb2NhbGl6ZXI6OkZvcm1hdFR5cGVTaG9ydCA6IExvY2FsaXplcjo6Rm9ybWF0VHlw
ZU1lZGl1bSkpOworICAgIH0KKwogICAgIGRvdWJsZSBwYXJzZURhdGUoY29uc3QgU3RyaW5nJiBs
b2NhbGVTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGF0ZVN0cmluZykKICAgICB7CiAgICAgICAgIE93
blB0cjxMb2NhbGVNYWM+IGxvY2FsZSA9IExvY2FsZU1hYzo6Y3JlYXRlKGxvY2FsZVN0cmluZyk7
CkBAIC0xMzQsNiArMTQ3LDI3IEBAIFRFU1RfRihMb2NhbGVNYWNUZXN0LCBmb3JtYXREYXRlKQog
ICAgIEVYUEVDVF9TVFJFUSgiMDUvMDQvMjciLCBmb3JtYXREYXRlKCJqYV9KUCIsIDIwMDUsIEFw
cmlsLCAyNykudXRmOCgpLmRhdGEoKSk7CiB9CiAKK1RFU1RfRihMb2NhbGVNYWNUZXN0LCBmb3Jt
YXRUaW1lKQoreworICAgIEVYUEVDVF9TVFJFUSgiMToyMyBQTSIsIGZvcm1hdFRpbWUoImVuX1VT
IiwgMTMsIDIzLCAwMCwgMDAwLCB0cnVlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RS
RVEoIjEzOjIzIiwgZm9ybWF0VGltZSgiZnJfRlIiLCAxMywgMjMsIDAwLCAwMDAsIHRydWUpLnV0
ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiMTM6MjMiLCBmb3JtYXRUaW1lKCJqYV9K
UCIsIDEzLCAyMywgMDAsIDAwMCwgdHJ1ZSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NU
UkVRKCJceEQ5XHhBMTpceEQ5XHhBMlx4RDlceEEzIFx4RDlceDg1IiwgZm9ybWF0VGltZSgiYXIi
LCAxMywgMjMsIDAwLCAwMDAsIHRydWUpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJF
USgiXHhEQlx4QjFceERCXHhCMzpceERCXHhCMlx4REJceEIzIiwgZm9ybWF0VGltZSgiZmEiLCAx
MywgMjMsIDAwLCAwMDAsIHRydWUpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgRVhQRUNUX1NUUkVR
KCIxMjowMCBBTSIsIGZvcm1hdFRpbWUoImVuX1VTIiwgMDAsIDAwLCAwMCwgMDAwLCB0cnVlKS51
dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIjAwOjAwIiwgZm9ybWF0VGltZSgiZnJf
RlIiLCAwMCwgMDAsIDAwLCAwMDAsIHRydWUpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9T
VFJFUSgiMDowMCIsIGZvcm1hdFRpbWUoImphX0pQIiwgMDAsIDAwLCAwMCwgMDAwLCB0cnVlKS51
dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlx4RDlceEExXHhEOVx4QTI6XHhEOVx4
QTBceEQ5XHhBMCBceEQ4XHhCNSIsIGZvcm1hdFRpbWUoImFyIiwgMDAsIDAwLCAwMCwgMDAwLCB0
cnVlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIlx4REJceEIwOlx4REJceEIw
XHhEQlx4QjAiLCBmb3JtYXRUaW1lKCJmYSIsIDAwLCAwMCwgMDAsIDAwMCwgdHJ1ZSkudXRmOCgp
LmRhdGEoKSk7CisKKyAgICBFWFBFQ1RfU1RSRVEoIjc6MDc6MDcuMDA3IEFNIiwgZm9ybWF0VGlt
ZSgiZW5fVVMiLCAwNywgMDcsIDA3LCAwMDcsIGZhbHNlKS51dGY4KCkuZGF0YSgpKTsKKyAgICBF
WFBFQ1RfU1RSRVEoIjA3OjA3OjA3LDAwNyIsIGZvcm1hdFRpbWUoImZyX0ZSIiwgMDcsIDA3LCAw
NywgMDA3LCBmYWxzZSkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCI3OjA3OjA3
LjAwNyIsIGZvcm1hdFRpbWUoImphX0pQIiwgMDcsIDA3LCAwNywgMDA3LCBmYWxzZSkudXRmOCgp
LmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCJceEQ5XHhBNzpceEQ5XHhBMFx4RDlceEE3Olx4
RDlceEEwXHhEOVx4QTdceEQ5XHhBQlx4RDlceEEwXHhEOVx4QTBceEQ5XHhBNyBceEQ4XHhCNSIs
IGZvcm1hdFRpbWUoImFyIiwgMDcsIDA3LCAwNywgMDA3LCBmYWxzZSkudXRmOCgpLmRhdGEoKSk7
CisgICAgRVhQRUNUX1NUUkVRKCJceERCXHhCNzpceERCXHhCMFx4REJceEI3Olx4REJceEIwXHhE
Qlx4QjdceEQ5XHhBQlx4REJceEIwXHhEQlx4QjBceERCXHhCNyIsIGZvcm1hdFRpbWUoImZhIiwg
MDcsIDA3LCAwNywgMDA3LCBmYWxzZSkudXRmOCgpLmRhdGEoKSk7Cit9CisKIFRFU1RfRihMb2Nh
bGVNYWNUZXN0LCBwYXJzZURhdGUpCiB7CiAgICAgRVhQRUNUX0VRKG1zRm9yRGF0ZSgyMDA1LCBB
cHJpbCwgMjcpLCBwYXJzZURhdGUoImVuX1VTIiwgIkFwcmlsIDI3LCAyMDA1IikpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>