<?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>96728</bug_id>
          
          <creation_ts>2012-09-13 23:11:33 -0700</creation_ts>
          <short_desc>Make time input lang attribute aware for testing</short_desc>
          <delta_ts>2012-09-14 05:40:09 -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>
          <dependson>96726</dependson>
          <blocked>96351</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Keishi Hattori">keishi</reporter>
          <assigned_to name="Keishi Hattori">keishi</assigned_to>
          <cc>gustavo</cc>
    
    <cc>mifenton</cc>
    
    <cc>philn</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yosin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>720339</commentid>
    <comment_count>0</comment_count>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-09-13 23:11:33 -0700</bug_when>
    <thetext>Make time input lang attribute aware.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720355</commentid>
    <comment_count>1</comment_count>
      <attachid>164055</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-09-13 23:31:08 -0700</bug_when>
    <thetext>Created attachment 164055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720367</commentid>
    <comment_count>2</comment_count>
      <attachid>164055</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-13 23:47:19 -0700</bug_when>
    <thetext>Comment on attachment 164055
Patch

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

&gt; Source/WebCore/dom/Document.cpp:6369
&gt; +    if (locale.isEmpty() || !RuntimeEnabledFeatures::langAttributeAwareFormControlUIEnabled())
&gt; +        return getLocalizer(defaultLanguage());

We don&apos;t need to use recursive call, which makes code readability worse.

AtomicString localeKey = locale;
if (locale.isEmpty() || !RuntimeF...)
    localeKey = defaultLanguage();
LocaleToLocalizerMap::AddResult result = m_localizerCache.add(localeKey, nullptr);
....

&gt; Source/WebCore/dom/Document.cpp:6370
&gt; +    LocaleToLocalizerMap::AddResult result = m_localizerCache.add(locale.impl(), nullptr);

Should use AtomicString as a key.
Using (Atomic)StringImpl as a HashMap key is dangerous. A key AtomicStringImpl can be destructed outside of the HashMap.

&gt; Source/WebCore/dom/Document.cpp:6372
&gt; +        result.iterator-&gt;second = Localizer::create(locale);

We need the default implementation of Localizer::create() for platforms other than ICU/Mac/Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720385</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-14 00:08:23 -0700</bug_when>
    <thetext>We need to complete the followings before proceeding this bug:
 - Introduce LocalizerNone.cpp
 - Fix an issue that Localizer::create(&quot;broken-locale-identifier&quot;) doesn&apos;t return the browser locale</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720387</commentid>
    <comment_count>4</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-14 00:09:16 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt;  - Fix an issue that Localizer::create(&quot;broken-locale-identifier&quot;) doesn&apos;t return the browser locale

This is about LocaleMac.mm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720389</commentid>
    <comment_count>5</comment_count>
      <attachid>164055</attachid>
    <who name="">yosin</who>
    <bug_when>2012-09-14 00:12:06 -0700</bug_when>
    <thetext>Comment on attachment 164055
Patch

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

&gt; LayoutTests/fast/forms/time/time-localization.html:1
&gt; +&lt;!DOCTYPE html&gt;

This test should be named time-multiple-fields-localization.html. This test checks multiple fields time input UI.

&gt; LayoutTests/fast/forms/time/time-localization.html:23
&gt; +for (var i = 0; i &lt; inputs.length; i++) {

nit: ++i
In C++, we usually use ++i instead of i++, prefix operator is usually faster than postfix operator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720552</commentid>
    <comment_count>6</comment_count>
      <attachid>164097</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-09-14 04:03:23 -0700</bug_when>
    <thetext>Created attachment 164097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720555</commentid>
    <comment_count>7</comment_count>
      <attachid>164055</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-09-14 04:04:26 -0700</bug_when>
    <thetext>Comment on attachment 164055
Patch

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

&gt;&gt; LayoutTests/fast/forms/time/time-localization.html:1
&gt;&gt; +&lt;!DOCTYPE html&gt;
&gt; 
&gt; This test should be named time-multiple-fields-localization.html. This test checks multiple fields time input UI.

Done.

&gt;&gt; LayoutTests/fast/forms/time/time-localization.html:23
&gt;&gt; +for (var i = 0; i &lt; inputs.length; i++) {
&gt; 
&gt; nit: ++i
&gt; In C++, we usually use ++i instead of i++, prefix operator is usually faster than postfix operator.

Done.

&gt;&gt; Source/WebCore/dom/Document.cpp:6369
&gt;&gt; +        return getLocalizer(defaultLanguage());
&gt; 
&gt; We don&apos;t need to use recursive call, which makes code readability worse.
&gt; 
&gt; AtomicString localeKey = locale;
&gt; if (locale.isEmpty() || !RuntimeF...)
&gt;     localeKey = defaultLanguage();
&gt; LocaleToLocalizerMap::AddResult result = m_localizerCache.add(localeKey, nullptr);
&gt; ....

Done.

&gt;&gt; Source/WebCore/dom/Document.cpp:6370
&gt;&gt; +    LocaleToLocalizerMap::AddResult result = m_localizerCache.add(locale.impl(), nullptr);
&gt; 
&gt; Should use AtomicString as a key.
&gt; Using (Atomic)StringImpl as a HashMap key is dangerous. A key AtomicStringImpl can be destructed outside of the HashMap.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720556</commentid>
    <comment_count>8</comment_count>
      <attachid>164097</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-14 04:08:01 -0700</bug_when>
    <thetext>Comment on attachment 164097
Patch

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

&gt; LayoutTests/fast/forms/time-multiple-fields/time-multiple-fields-localization.html:24
&gt; +    debug(getUserAgentShadowTextContent(inputs[i]));

How about
    debug(inputs[i].lang + &apos;: &apos; + getUserAgentShadowTextContent(inputs[i]));
?

&gt; LayoutTests/platform/chromium-mac/fast/forms/time-multiple-fields/time-multiple-fields-localization-expected.txt:5
&gt; +

Please show a message that the following lines depend on locale data in the system.

&gt; LayoutTests/platform/chromium-mac/fast/forms/time-multiple-fields/time-multiple-fields-localization-expected.txt:20
&gt; +TEST COMPLETE
&gt; +EN
&gt; +AR
&gt; +FR
&gt; +JA
&gt; +KO
&gt; +CN

Showing languages after &quot;TEST COMPLETE&quot; doesn&apos;t make much sense.

&gt; Source/WebCore/ChangeLog:34
&gt; +        (DateTimeEditElement):
&gt; +
&gt; +2012-09-13  Keishi Hattori  &lt;keishi@webkit.org&gt;
&gt; +
&gt; +        Refactor time format related methods on LocaleWin/Mac/ICU so that they override Localizer methods

Two ChangeLog entries.

&gt; Source/WebKit/chromium/ChangeLog:4
&gt; +2012-09-13  Keishi Hattori  &lt;keishi@webkit.org&gt;
&gt; +
&gt; +        Refactor time format related methods on LocaleWin/Mac/ICU so that they override Localizer methods
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=96726

Unrelated ChangeLog entry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720558</commentid>
    <comment_count>9</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-14 04:10:07 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; &gt; LayoutTests/platform/chromium-mac/fast/forms/time-multiple-fields/time-multiple-fields-localization-expected.txt:5
&gt; &gt; +
&gt; 
&gt; Please show a message that the following lines depend on locale data in the system.

Also, I expect Chromium-win and Chromium-linux need their own test result. So we&apos;d better add TextExpectation entry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720585</commentid>
    <comment_count>10</comment_count>
      <attachid>164106</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-09-14 04:44:57 -0700</bug_when>
    <thetext>Created attachment 164106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720595</commentid>
    <comment_count>11</comment_count>
      <attachid>164106</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-14 04:55:53 -0700</bug_when>
    <thetext>Comment on attachment 164106
Patch

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

&gt; Source/WebKit/chromium/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=96726

96726 -&gt; 96728</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720599</commentid>
    <comment_count>12</comment_count>
      <attachid>164109</attachid>
    <who name="Keishi Hattori">keishi</who>
    <bug_when>2012-09-14 05:00:05 -0700</bug_when>
    <thetext>Created attachment 164109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720632</commentid>
    <comment_count>13</comment_count>
      <attachid>164109</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-14 05:38:43 -0700</bug_when>
    <thetext>Comment on attachment 164109
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720633</commentid>
    <comment_count>14</comment_count>
      <attachid>164109</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-14 05:40:04 -0700</bug_when>
    <thetext>Comment on attachment 164109
Patch

Clearing flags on attachment: 164109

Committed r128594: &lt;http://trac.webkit.org/changeset/128594&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720634</commentid>
    <comment_count>15</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-09-14 05:40:09 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164055</attachid>
            <date>2012-09-13 23:31:08 -0700</date>
            <delta_ts>2012-09-14 04:04:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>localizer3.diff</filename>
            <type>text/plain</type>
            <size>13644</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAxNmNiY2ExLi4wYjNiOGZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDkt
MTQgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSB0
aW1lIGlucHV0IGxhbmcgYXR0cmlidXRlIGF3YXJlIGZvciB0ZXN0aW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjcyOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMv
Y29tbW9uLmpzOgorICAgICAgICAoZ2V0VXNlckFnZW50U2hhZG93VGV4dENvbnRlbnQpOgorICAg
ICAgICAqIGZhc3QvZm9ybXMvdGltZS90aW1lLWxvY2FsaXphdGlvbi5odG1sOiBBZGRlZC4gQ2hl
Y2tzIHRoYXQgdGhlIHRpbWUgZm9ybWF0IGlzIGxvY2FsaXplZCBwcm9wZXJseS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS1tYWMvZmFzdC9mb3Jtcy90aW1lL3RpbWUtbG9jYWxpemF0aW9u
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTItMDktMTMgIEFkcmllbm5lIFdhbGtlciAgPGVu
bmVAZ29vZ2xlLmNvbT4KIAogICAgICAgICBIaWRlIGFsbCBhbmNlc3RvcnMgb2YgdGhlIGZ1bGwg
c2NyZWVuIGVsZW1lbnQgd2hlbiBnb2luZyBmdWxsIHNjcmVlbgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvY29tbW9uLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9yZXNvdXJjZXMvY29tbW9uLmpzCmluZGV4IGMyNTg4NDAuLjA2NjNjZTMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2NvbW1vbi5qcworKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9jb21tb24uanMKQEAgLTExNSwzICsxMTUsNyBA
QCBmdW5jdGlvbiBtb3VzZU1vdmVUb0luZGV4SW5MaXN0Ym94KGluZGV4LCBsaXN0Ym94SWQpIHsK
ICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQogICAgICAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhsaXN0Ym94Lm9mZnNldExlZnQgKyBib3JkZXIsIGxpc3Rib3gub2Zmc2V0VG9wICsgeSAt
IHdpbmRvdy5wYWdlWU9mZnNldCk7CiB9CisKK2Z1bmN0aW9uIGdldFVzZXJBZ2VudFNoYWRvd1Rl
eHRDb250ZW50KGVsZW1lbnQpIHsKKyAgICByZXR1cm4gaW50ZXJuYWxzLnlvdW5nZXN0U2hhZG93
Um9vdChlbGVtZW50KS50ZXh0Q29udGVudDsKK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3RpbWUvdGltZS1sb2NhbGl6YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvdGltZS90aW1lLWxvY2FsaXphdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLmQ1OWFmMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL3RpbWUvdGltZS1sb2NhbGl6YXRpb24uaHRtbApAQCAtMCwwICsxLDI5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citp
ZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0TGFuZ0F0dHJp
YnV0ZUF3YXJlRm9ybUNvbnRyb2xVSUVuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGRpdiBpZD1jb25zb2xlPjwvZGl2PgorPGxhYmVsPkVOPC9sYWJlbD48aW5wdXQg
dHlwZT0idGltZSIgdmFsdWU9IjEzOjIzOjQ1LjEiIGxhbmc9ImVuIiAvPjxicj4KKzxsYWJlbD5B
UjwvbGFiZWw+PGlucHV0IHR5cGU9InRpbWUiIHZhbHVlPSIxMzoyMzo0NS4xIiBsYW5nPSJhciIg
Lz48YnI+Cis8bGFiZWw+RlI8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0aW1lIiB2YWx1ZT0iMTM6MjM6
NDUuMSIgbGFuZz0iZnIiIC8+PGJyPgorPGxhYmVsPkpBPC9sYWJlbD48aW5wdXQgdHlwZT0idGlt
ZSIgdmFsdWU9IjEzOjIzOjQ1LjEiIGxhbmc9ImphIiAvPjxicj4KKzxsYWJlbD5LTzwvbGFiZWw+
PGlucHV0IHR5cGU9InRpbWUiIHZhbHVlPSIxMzoyMzo0NS4xIiBsYW5nPSJrbyIgLz48YnI+Cis8
bGFiZWw+Q048L2xhYmVsPjxpbnB1dCB0eXBlPSJ0aW1lIiB2YWx1ZT0iMTM6MjM6NDUuMSIgbGFu
Zz0iY24iIC8+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoZSB0aW1lIGZvcm1hdCBm
b3IgdmFyaW91cyBsb2NhbGVzLiIpOwordmFyIGlucHV0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCJpbnB1dCIpOworZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyBp
KyspIHsKKyAgICBkZWJ1ZyhnZXRVc2VyQWdlbnRTaGFkb3dUZXh0Q29udGVudChpbnB1dHNbaV0p
KTsKK30KKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvZm9ybXMvdGltZS90aW1lLWxvY2FsaXph
dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMvZmFz
dC9mb3Jtcy90aW1lL3RpbWUtbG9jYWxpemF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4zODdhOGYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvZm9ybXMvdGltZS90aW1lLWxvY2FsaXph
dGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyMCBAQAorU2VlIGhvdworCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworMDE6MjM6NDUuMTAwIFBNCiswMToyMzo0NdmrMTAwINmFCisx
MzoyMzo0NSwxMDAKKzEzOjIzOjQ1LjEwMAor7Jik7ZuEIDAxOjIzOjQ1LjEwMAorMDE6MjM6NDUu
MTAwIFBNCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
K0VOCitBUgorRlIKK0pBCitLTworQ04KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0OGVhMTBmLi40NjRiNmM3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTItMDktMTQgIEtlaXNoaSBIYXR0b3JpICA8
a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSB0aW1lIGlucHV0IGxhbmcgYXR0cmli
dXRlIGF3YXJlIGZvciB0ZXN0aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05NjcyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBwYXJ0aWFsIGxhbmcgYXR0cmlidXRl
IHN1cHBvcnQgZm9yIGlucHV0IHR5cGU9dGltZQorICAgICAgICB0aGF0IHR1cm5zIG9uIG9ubHkg
d2hlbiBlbmFibGVkIHRocm91Z2ggSW50ZXJuYWxTZXR0aW5ncy4KKworICAgICAgICBUZXN0OiBm
YXN0L2Zvcm1zL3RpbWUvdGltZS1sb2NhbGl6YXRpb24uaHRtbAorCisgICAgICAgICogZG9tL0Rv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpnZXRMb2NhbGl6ZXIpOiBS
ZXR1cm5zIGEgbG9jYWxpemVyIGZvciBhIGdpdmVuIGxvY2FsZS4gTG9jYWxpemVycyBhcmUgY2Fj
aGVkIGZvciByZXBlYXRlZCB1c2UuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRG9jdW1lbnQpOgorICAg
ICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5w
dXRUeXBlOjp1cGRhdGVJbm5lclRleHRWYWx1ZSk6IFVzZSB0aGUgbG9jYWxlIGZvciB0aGUgaW5w
dXQgZWxlbWVudC4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNw
cDoKKyAgICAgICAgKERhdGVUaW1lRWRpdEJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZVRpbWVFZGl0QnVpbGRlcjo6RGF0ZVRpbWVFZGl0QnVpbGRlcik6CisgICAgICAgIChXZWJDb3Jl
OjpEYXRlVGltZUVkaXRCdWlsZGVyOjp2aXNpdEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVUaW1lRWRpdEVsZW1lbnQ6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVk
aXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVk
aXRFbGVtZW50OjpzZXRFbXB0eVZhbHVlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGlt
ZUVkaXRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERhdGVUaW1lRWRp
dEVsZW1lbnQpOgorCiAyMDEyLTA5LTEzICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFJlZmFjdG9yIHRpbWUgZm9ybWF0IHJlbGF0ZWQgbWV0aG9kcyBvbiBM
b2NhbGVXaW4vTWFjL0lDVSBzbyB0aGF0IHRoZXkgb3ZlcnJpZGUgTG9jYWxpemVyIG1ldGhvZHMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDNkYTg5ZDcuLmE2MGM4OTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtMTA1LDYgKzEwNSw4IEBACiAjaW5jbHVkZSAiSW1hZ2VMb2FkZXIu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb3VudGVycy5oIgogI2luY2x1ZGUgIkluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisjaW5jbHVkZSAiTG9jYWxp
emVyLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0Lmgi
CiAjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKQEAgLTYzNjEsNCArNjM2MywxNCBAQCBQ
YXNzUmVmUHRyPEVsZW1lbnRBdHRyaWJ1dGVEYXRhPiBEb2N1bWVudDo6Y2FjaGVkSW1tdXRhYmxl
QXR0cmlidXRlRGF0YShjb25zdCBFbAogICAgIHJldHVybiBhdHRyaWJ1dGVEYXRhLnJlbGVhc2Uo
KTsKIH0KIAorTG9jYWxpemVyJiBEb2N1bWVudDo6Z2V0TG9jYWxpemVyKGNvbnN0IEF0b21pY1N0
cmluZyYgbG9jYWxlKQoreworICAgIGlmIChsb2NhbGUuaXNFbXB0eSgpIHx8ICFSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpsYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZCgpKQor
ICAgICAgICByZXR1cm4gZ2V0TG9jYWxpemVyKGRlZmF1bHRMYW5ndWFnZSgpKTsKKyAgICBMb2Nh
bGVUb0xvY2FsaXplck1hcDo6QWRkUmVzdWx0IHJlc3VsdCA9IG1fbG9jYWxpemVyQ2FjaGUuYWRk
KGxvY2FsZS5pbXBsKCksIG51bGxwdHIpOworICAgIGlmIChyZXN1bHQuaXNOZXdFbnRyeSkKKyAg
ICAgICAgcmVzdWx0Lml0ZXJhdG9yLT5zZWNvbmQgPSBMb2NhbGl6ZXI6OmNyZWF0ZShsb2NhbGUp
OworICAgIHJldHVybiAqKHJlc3VsdC5pdGVyYXRvci0+c2Vjb25kKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBhNjBlNDc3Li5lN2MzOTRlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTA4LDYgKzEwOCw3IEBAIGNsYXNzIEhpdFRlc3RSZXN1
bHQ7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIERPTVdyYXBwZXJXb3JsZDsKIGNsYXNzIEpTTm9k
ZTsKK2NsYXNzIExvY2FsaXplcjsKIGNsYXNzIE1lZGlhQ2FuU3RhcnRMaXN0ZW5lcjsKIGNsYXNz
IE1lZGlhUXVlcnlMaXN0OwogY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXI7CkBAIC0xMTkyLDYgKzEx
OTMsOCBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPEVsZW1lbnRBdHRyaWJ1dGVEYXRhPiBj
YWNoZWRJbW11dGFibGVBdHRyaWJ1dGVEYXRhKGNvbnN0IEVsZW1lbnQqLCBjb25zdCBWZWN0b3I8
QXR0cmlidXRlPiYpOwogCisgICAgTG9jYWxpemVyJiBnZXRMb2NhbGl6ZXIoY29uc3QgQXRvbWlj
U3RyaW5nJiBsb2NhbGUpOworCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25z
dCBLVVJMJiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7CiAKQEAgLTE1ODIsNiArMTU4NSw5
IEBAIHByaXZhdGU6CiAjaWZuZGVmIE5ERUJVRwogICAgIGJvb2wgbV9kaWREaXNwYXRjaFZpZXdw
b3J0UHJvcGVydGllc0NoYW5nZWQ7CiAjZW5kaWYKKworICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9t
aWNTdHJpbmdJbXBsKiwgT3duUHRyPExvY2FsaXplcj4gPiBMb2NhbGVUb0xvY2FsaXplck1hcDsK
KyAgICBMb2NhbGVUb0xvY2FsaXplck1hcCBtX2xvY2FsaXplckNhY2hlOwogfTsKIAogaW5saW5l
IHZvaWQgRG9jdW1lbnQ6Om5vdGlmeVJlbW92ZVBlbmRpbmdTaGVldElmTmVlZGVkKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCmluZGV4IGVkZDEyZTcuLjcwMzhiMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcApAQCAtMjgxLDEzICsyODEsMTQgQEAgdm9p
ZCBUaW1lSW5wdXRUeXBlOjp1cGRhdGVJbm5lclRleHRWYWx1ZSgpCiAgICAgaWYgKCFtX2RhdGVU
aW1lRWRpdEVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKIAorICAgIExvY2FsaXplciYgbG9jYWxp
emVyID0gZWxlbWVudCgpLT5kb2N1bWVudCgpLT5nZXRMb2NhbGl6ZXIoZWxlbWVudCgpLT5jb21w
dXRlSW5oZXJpdGVkTGFuZ3VhZ2UoKSk7CiAgICAgY29uc3QgU3RlcFJhbmdlIHN0ZXBSYW5nZShj
cmVhdGVTdGVwUmFuZ2UoQW55SXNEZWZhdWx0U3RlcCkpOwogICAgIERhdGVDb21wb25lbnRzIGRh
dGU7CiAgICAgaWYgKHBhcnNlVG9EYXRlQ29tcG9uZW50cyhlbGVtZW50KCktPnZhbHVlKCksICZk
YXRlKSkKLSAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5zZXRWYWx1ZUFzRGF0ZShzdGVw
UmFuZ2UsIGRhdGUpOworICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldFZhbHVlQXNE
YXRlKHN0ZXBSYW5nZSwgZGF0ZSwgbG9jYWxpemVyKTsKICAgICBlbHNlIHsKICAgICAgICAgc2V0
TWlsbGlzZWNvbmRUb0RhdGVDb21wb25lbnRzKHN0ZXBSYW5nZS5taW5pbXVtKCkudG9Eb3VibGUo
KSwgJmRhdGUpOwotICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldEVtcHR5VmFsdWUo
c3RlcFJhbmdlLCBkYXRlKTsKKyAgICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5zZXRFbXB0
eVZhbHVlKHN0ZXBSYW5nZSwgZGF0ZSwgbG9jYWxpemVyKTsKICAgICB9CiB9CiAjZWxzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApp
bmRleCAxMWMxNjIwLi44ZTg3ZTdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUg
IktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWREYXRlLmgiCiAjaW5jbHVkZSAi
TG9jYWxpemVkTnVtYmVyLmgiCisjaW5jbHVkZSAiTG9jYWxpemVyLmgiCiAjaW5jbHVkZSAiTW91
c2VFdmVudC5oIgogI2luY2x1ZGUgIlN0ZXBSYW5nZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAg
LTUwLDcgKzUxLDcgQEAgY2xhc3MgRGF0ZVRpbWVFZGl0QnVpbGRlciA6IHByaXZhdGUgRGF0ZVRp
bWVGb3JtYXQ6OlRva2VuSGFuZGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0ZVRp
bWVFZGl0QnVpbGRlcik7CiAKIHB1YmxpYzoKLSAgICBEYXRlVGltZUVkaXRCdWlsZGVyKERhdGVU
aW1lRWRpdEVsZW1lbnQmLCBjb25zdCBTdGVwUmFuZ2UmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYp
OworICAgIERhdGVUaW1lRWRpdEJ1aWxkZXIoRGF0ZVRpbWVFZGl0RWxlbWVudCYsIGNvbnN0IFN0
ZXBSYW5nZSYsIGNvbnN0IERhdGVDb21wb25lbnRzJiwgTG9jYWxpemVyJik7CiAKICAgICBib29s
IGJ1aWxkKGNvbnN0IFN0cmluZyYpOwogICAgIGJvb2wgbmVlZFNlY29uZEZpZWxkKCkgY29uc3Q7
CkBAIC02OSwxMiArNzAsMTQgQEAgcHJpdmF0ZToKICAgICBEYXRlVGltZUVkaXRFbGVtZW50JiBt
X2VkaXRFbGVtZW50OwogICAgIGNvbnN0IERhdGVDb21wb25lbnRzJiBtX2RhdGVWYWx1ZTsKICAg
ICBjb25zdCBTdGVwUmFuZ2UmIG1fc3RlcFJhbmdlOworICAgIExvY2FsaXplciYgbV9sb2NhbGl6
ZXI7CiB9OwogCi1EYXRlVGltZUVkaXRCdWlsZGVyOjpEYXRlVGltZUVkaXRCdWlsZGVyKERhdGVU
aW1lRWRpdEVsZW1lbnQmIGVsZW1udCwgY29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0
IERhdGVDb21wb25lbnRzJiBkYXRlVmFsdWUpCitEYXRlVGltZUVkaXRCdWlsZGVyOjpEYXRlVGlt
ZUVkaXRCdWlsZGVyKERhdGVUaW1lRWRpdEVsZW1lbnQmIGVsZW1udCwgY29uc3QgU3RlcFJhbmdl
JiBzdGVwUmFuZ2UsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlVmFsdWUsIExvY2FsaXplciYg
bG9jYWxpemVyKQogICAgIDogbV9lZGl0RWxlbWVudChlbGVtbnQpCiAgICAgLCBtX2RhdGVWYWx1
ZShkYXRlVmFsdWUpCiAgICAgLCBtX3N0ZXBSYW5nZShzdGVwUmFuZ2UpCisgICAgLCBtX2xvY2Fs
aXplcihsb2NhbGl6ZXIpCiB7CiB9CiAKQEAgLTEzNSw3ICsxMzgsNyBAQCB2b2lkIERhdGVUaW1l
RWRpdEJ1aWxkZXI6OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBmaWVsZFR5
cGUsIGludCkKICAgICB9CiAKICAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVQZXJp
b2Q6Ci0gICAgICAgIG1fZWRpdEVsZW1lbnQuYWRkRmllbGQoRGF0ZVRpbWVBTVBNRmllbGRFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQsIHRpbWVBTVBNTGFiZWxzKCkpKTsK
KyAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVsZChEYXRlVGltZUFNUE1GaWVsZEVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwgbV9sb2NhbGl6ZXIudGltZUFNUE1MYWJl
bHMoKSkpOwogICAgICAgICByZXR1cm47CiAKICAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVs
ZFR5cGVTZWNvbmQ6IHsKQEAgLTE0NSw3ICsxNDgsNyBAQCB2b2lkIERhdGVUaW1lRWRpdEJ1aWxk
ZXI6OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBmaWVsZFR5cGUsIGludCkK
ICAgICAgICAgICAgIGZpZWxkLT5zZXRSZWFkT25seSgpOwogCiAgICAgICAgIGlmIChuZWVkTWls
bGlzZWNvbmRGaWVsZCgpKSB7Ci0gICAgICAgICAgICB2aXNpdExpdGVyYWwobG9jYWxpemVkRGVj
aW1hbFNlcGFyYXRvcigpKTsKKyAgICAgICAgICAgIHZpc2l0TGl0ZXJhbChtX2xvY2FsaXplci5s
b2NhbGl6ZWREZWNpbWFsU2VwYXJhdG9yKCkpOwogICAgICAgICAgICAgdmlzaXRGaWVsZChEYXRl
VGltZUZvcm1hdDo6RmllbGRUeXBlRnJhY3Rpb25hbFNlY29uZCwgMyk7CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuOwpAQCAtMzM2LDE0ICszMzksMTQgQEAgYm9vbCBEYXRlVGltZUVkaXRFbGVt
ZW50Ojppc1JlYWRPbmx5KCkgY29uc3QKICAgICByZXR1cm4gbV9lZGl0Q29udHJvbE93bmVyICYm
IG1fZWRpdENvbnRyb2xPd25lci0+aXNFZGl0Q29udHJvbE93bmVyUmVhZE9ubHkoKTsKIH0KIAot
dm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQoY29uc3QgU3RlcFJhbmdlJiBzdGVwUmFu
Z2UsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlVmFsdWUpCit2b2lkIERhdGVUaW1lRWRpdEVs
ZW1lbnQ6OmxheW91dChjb25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5nZSwgY29uc3QgRGF0ZUNvbXBv
bmVudHMmIGRhdGVWYWx1ZSwgTG9jYWxpemVyJiBsb2NhbGl6ZXIpCiB7CiAgICAgc2l6ZV90IGZv
Y3VzZWRGaWVsZEluZGV4ID0gdGhpcy0+Zm9jdXNlZEZpZWxkSW5kZXgoKTsKICAgICBEYXRlVGlt
ZUZpZWxkRWxlbWVudCogY29uc3QgZm9jdXNlZEZpZWxkID0gZmllbGRBdChmb2N1c2VkRmllbGRJ
bmRleCk7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nIGZvY3VzZWRGaWVsZElkID0gZm9jdXNlZEZp
ZWxkID8gZm9jdXNlZEZpZWxkLT5zaGFkb3dQc2V1ZG9JZCgpIDogbnVsbEF0b207CiAKLSAgICBE
YXRlVGltZUVkaXRCdWlsZGVyIGJ1aWxkZXIoKnRoaXMsIHN0ZXBSYW5nZSwgZGF0ZVZhbHVlKTsK
LSAgICBjb25zdCBTdHJpbmcgZGF0ZVRpbWVGb3JtYXQgPSBidWlsZGVyLm5lZWRTZWNvbmRGaWVs
ZCgpID8gbG9jYWxpemVkVGltZUZvcm1hdFRleHQoKSA6IGxvY2FsaXplZFNob3J0VGltZUZvcm1h
dFRleHQoKTsKKyAgICBEYXRlVGltZUVkaXRCdWlsZGVyIGJ1aWxkZXIoKnRoaXMsIHN0ZXBSYW5n
ZSwgZGF0ZVZhbHVlLCBsb2NhbGl6ZXIpOworICAgIGNvbnN0IFN0cmluZyBkYXRlVGltZUZvcm1h
dCA9IGJ1aWxkZXIubmVlZFNlY29uZEZpZWxkKCkgPyBsb2NhbGl6ZXIudGltZUZvcm1hdFRleHQo
KSA6IGxvY2FsaXplci5zaG9ydFRpbWVGb3JtYXRUZXh0KCk7CiAgICAgTm9kZSogbGFzdENoaWxk
VG9CZVJlbW92ZWQgPSBsYXN0Q2hpbGQoKTsKICAgICBpZiAoIWJ1aWxkZXIuYnVpbGQoZGF0ZVRp
bWVGb3JtYXQpIHx8IG1fZmllbGRzLmlzRW1wdHkoKSkgewogICAgICAgICBsYXN0Q2hpbGRUb0Jl
UmVtb3ZlZCA9IGxhc3RDaGlsZCgpOwpAQCAtNDAzLDE2ICs0MDYsMTYgQEAgdm9pZCBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICBIVE1M
RGl2RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKLXZvaWQgRGF0ZVRp
bWVFZGl0RWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2Us
IGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50Ojpz
ZXRWYWx1ZUFzRGF0ZShjb25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5nZSwgY29uc3QgRGF0ZUNvbXBv
bmVudHMmIGRhdGUsIExvY2FsaXplciYgbG9jYWxpemVyKQogewotICAgIGxheW91dChzdGVwUmFu
Z2UsIGRhdGUpOworICAgIGxheW91dChzdGVwUmFuZ2UsIGRhdGUsIGxvY2FsaXplcik7CiAgICAg
Zm9yIChzaXplX3QgZmllbGRJbmRleCA9IDA7IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXplKCk7
ICsrZmllbGRJbmRleCkKICAgICAgICAgbV9maWVsZHNbZmllbGRJbmRleF0tPnNldFZhbHVlQXNE
YXRlKGRhdGUpOwogfQogCi12b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUo
Y29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlRm9y
UmVhZE9ubHlGaWVsZCkKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6c2V0RW1wdHlWYWx1ZShj
b25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5nZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JS
ZWFkT25seUZpZWxkLCBMb2NhbGl6ZXImIGxvY2FsaXplcikKIHsKLSAgICBsYXlvdXQoc3RlcFJh
bmdlLCBkYXRlRm9yUmVhZE9ubHlGaWVsZCk7CisgICAgbGF5b3V0KHN0ZXBSYW5nZSwgZGF0ZUZv
clJlYWRPbmx5RmllbGQsIGxvY2FsaXplcik7CiAgICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9
IDA7IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXplKCk7ICsrZmllbGRJbmRleCkKICAgICAgICAg
bV9maWVsZHNbZmllbGRJbmRleF0tPnNldEVtcHR5VmFsdWUoZGF0ZUZvclJlYWRPbmx5RmllbGQs
IERhdGVUaW1lRmllbGRFbGVtZW50OjpEaXNwYXRjaE5vRXZlbnQpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCmluZGV4IDhlNmViMTEu
LmU4MDBlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
RWRpdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVk
aXRFbGVtZW50LmgKQEAgLTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
RGF0ZUNvbXBvbmVudHM7CiBjbGFzcyBEYXRlVGltZUVkaXRMYXlvdXRlcjsKIGNsYXNzIEtleWJv
YXJkRXZlbnQ7CitjbGFzcyBMb2NhbGl6ZXI7CiBjbGFzcyBNb3VzZUV2ZW50OwogY2xhc3MgU3Rl
cFJhbmdlOwogCkBAIC02OSw4ICs3MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlYWRPbmx5U3Rh
dGVDaGFuZ2VkKCk7CiAgICAgdm9pZCByZW1vdmVFZGl0Q29udHJvbE93bmVyKCkgeyBtX2VkaXRD
b250cm9sT3duZXIgPSAwOyB9CiAgICAgdm9pZCByZXNldEZpZWxkcygpOwotICAgIHZvaWQgc2V0
RW1wdHlWYWx1ZShjb25zdCBTdGVwUmFuZ2UmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgIGRhdGVG
b3JSZWFkT25seUZpZWxkKTsKLSAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IFN0ZXBSYW5n
ZSYsIGNvbnN0IERhdGVDb21wb25lbnRzJik7CisgICAgdm9pZCBzZXRFbXB0eVZhbHVlKGNvbnN0
IFN0ZXBSYW5nZSYsIGNvbnN0IERhdGVDb21wb25lbnRzJiAgZGF0ZUZvclJlYWRPbmx5RmllbGQs
IExvY2FsaXplciYpOworICAgIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgU3RlcFJhbmdlJiwg
Y29uc3QgRGF0ZUNvbXBvbmVudHMmLCBMb2NhbGl6ZXImKTsKICAgICBkb3VibGUgdmFsdWVBc0Rv
dWJsZSgpIGNvbnN0OwogCiBwcml2YXRlOgpAQCAtOTUsNyArOTYsNyBAQCBwcml2YXRlOgogICAg
IHNpemVfdCBmb2N1c2VkRmllbGRJbmRleCgpIGNvbnN0OwogICAgIGJvb2wgaXNEaXNhYmxlZCgp
IGNvbnN0OwogICAgIGJvb2wgaXNSZWFkT25seSgpIGNvbnN0OwotICAgIHZvaWQgbGF5b3V0KGNv
bnN0IFN0ZXBSYW5nZSYsIGNvbnN0IERhdGVDb21wb25lbnRzJik7CisgICAgdm9pZCBsYXlvdXQo
Y29uc3QgU3RlcFJhbmdlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmLCBMb2NhbGl6ZXImKTsKICAg
ICB2b2lkIHVwZGF0ZVVJU3RhdGUoKTsKIAogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50OjpG
aWVsZE93bmVyIGZ1bmN0aW9ucy4K
</data>
<flag name="review"
          id="175716"
          type_id="1"
          status="-"
          setter="tkent"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164097</attachid>
            <date>2012-09-14 04:03:23 -0700</date>
            <delta_ts>2012-09-14 04:44:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>localizer3.diff</filename>
            <type>text/plain</type>
            <size>16081</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjYzRkNDFlLi44ZTEyMTc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDkt
MTQgIEtlaXNoaSBIYXR0b3JpICA8a2Vpc2hpQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSB0
aW1lIGlucHV0IGxhbmcgYXR0cmlidXRlIGF3YXJlIGZvciB0ZXN0aW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjcyOAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMv
Y29tbW9uLmpzOgorICAgICAgICAoZ2V0VXNlckFnZW50U2hhZG93VGV4dENvbnRlbnQpOgorICAg
ICAgICAqIGZhc3QvZm9ybXMvdGltZS90aW1lLWxvY2FsaXphdGlvbi5odG1sOiBBZGRlZC4gQ2hl
Y2tzIHRoYXQgdGhlIHRpbWUgZm9ybWF0IGlzIGxvY2FsaXplZCBwcm9wZXJseS4KKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS1tYWMvZmFzdC9mb3Jtcy90aW1lL3RpbWUtbG9jYWxpemF0aW9u
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTItMDktMTMgIFZzZXZvbG9kIFZsYXNvdiAgPHZz
ZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogW1Rlc3RzXSBFeHRy
YWN0IGEgY29tbW9uIG1ldGhvZCBmb3Igc2VuZGluZyBYSFJzIGZyb20gdGVzdHMuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9jb21tb24uanMgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9jb21tb24uanMKaW5kZXggYzI1ODg0MC4uMDY2M2Nl
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvY29tbW9uLmpz
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2NvbW1vbi5qcwpAQCAtMTE1
LDMgKzExNSw3IEBAIGZ1bmN0aW9uIG1vdXNlTW92ZVRvSW5kZXhJbkxpc3Rib3goaW5kZXgsIGxp
c3Rib3hJZCkgewogICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCiAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKGxpc3Rib3gub2Zmc2V0TGVmdCArIGJvcmRlciwgbGlzdGJveC5vZmZz
ZXRUb3AgKyB5IC0gd2luZG93LnBhZ2VZT2Zmc2V0KTsKIH0KKworZnVuY3Rpb24gZ2V0VXNlckFn
ZW50U2hhZG93VGV4dENvbnRlbnQoZWxlbWVudCkgeworICAgIHJldHVybiBpbnRlcm5hbHMueW91
bmdlc3RTaGFkb3dSb290KGVsZW1lbnQpLnRleHRDb250ZW50OworfTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1m
aWVsZHMtbG9jYWxpemF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVs
dGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWxvY2FsaXphdGlvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlNjhlMWEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlw
bGUtZmllbGRzLWxvY2FsaXphdGlvbi5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9jb21tb24uanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5k
b3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRMYW5nQXR0cmlidXRlQXdh
cmVGb3JtQ29udHJvbFVJRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8ZGl2IGlkPWNvbnNvbGU+PC9kaXY+Cis8bGFiZWw+RU48L2xhYmVsPjxpbnB1dCB0eXBlPSJ0
aW1lIiB2YWx1ZT0iMTM6MjM6NDUuMSIgbGFuZz0iZW4iIC8+PGJyPgorPGxhYmVsPkFSPC9sYWJl
bD48aW5wdXQgdHlwZT0idGltZSIgdmFsdWU9IjEzOjIzOjQ1LjEiIGxhbmc9ImFyIiAvPjxicj4K
KzxsYWJlbD5GUjwvbGFiZWw+PGlucHV0IHR5cGU9InRpbWUiIHZhbHVlPSIxMzoyMzo0NS4xIiBs
YW5nPSJmciIgLz48YnI+Cis8bGFiZWw+SkE8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0aW1lIiB2YWx1
ZT0iMTM6MjM6NDUuMSIgbGFuZz0iamEiIC8+PGJyPgorPGxhYmVsPktPPC9sYWJlbD48aW5wdXQg
dHlwZT0idGltZSIgdmFsdWU9IjEzOjIzOjQ1LjEiIGxhbmc9ImtvIiAvPjxicj4KKzxsYWJlbD5D
TjwvbGFiZWw+PGlucHV0IHR5cGU9InRpbWUiIHZhbHVlPSIxMzoyMzo0NS4xIiBsYW5nPSJjbiIg
Lz4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgdGhlIHRpbWUgZm9ybWF0IGZvciB2YXJp
b3VzIGxvY2FsZXMuIik7Cit2YXIgaW5wdXRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05h
bWUoImlucHV0Iik7Citmb3IgKHZhciBpID0gMDsgaSA8IGlucHV0cy5sZW5ndGg7ICsraSkgewor
ICAgIGRlYnVnKGdldFVzZXJBZ2VudFNoYWRvd1RleHRDb250ZW50KGlucHV0c1tpXSkpOworfQor
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS1tYWMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1l
LW11bHRpcGxlLWZpZWxkcy1sb2NhbGl6YXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGlt
ZS1tdWx0aXBsZS1maWVsZHMtbG9jYWxpemF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODliZTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVs
ZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtbG9jYWxpemF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDIwIEBACitUZXN0cyB0aGUgdGltZSBmb3JtYXQgZm9yIHZhcmlvdXMgbG9jYWxlcy4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKKzAxOjIzOjQ1LjEwMCBQTQorMDE6MjM6NDXZ
qzEwMCDZhQorMTM6MjM6NDUsMTAwCisxMzoyMzo0NS4xMDAKK+yYpO2bhCAwMToyMzo0NS4xMDAK
KzAxOjIzOjQ1LjEwMCBQTQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCitFTgorQVIKK0ZSCitKQQorS08KK0NOCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzc4Mjg4OC4u
NDk4YTcwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDcxIEBACiAyMDEyLTA5LTE0ICBLZWlzaGkg
SGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCisgICAgICAgIE1ha2UgdGltZSBpbnB1dCBs
YW5nIGF0dHJpYnV0ZSBhd2FyZSBmb3IgdGVzdGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY3MjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgcGFydGlhbCBsYW5n
IGF0dHJpYnV0ZSBzdXBwb3J0IGZvciBpbnB1dCB0eXBlPXRpbWUKKyAgICAgICAgdGhhdCB0dXJu
cyBvbiBvbmx5IHdoZW4gZW5hYmxlZCB0aHJvdWdoIEludGVybmFsU2V0dGluZ3MuCisKKyAgICAg
ICAgVGVzdDogZmFzdC9mb3Jtcy90aW1lL3RpbWUtbG9jYWxpemF0aW9uLmh0bWwKKworICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Z2V0TG9j
YWxpemVyKTogUmV0dXJucyBhIGxvY2FsaXplciBmb3IgYSBnaXZlbiBsb2NhbGUuIExvY2FsaXpl
cnMgYXJlIGNhY2hlZCBmb3IgcmVwZWF0ZWQgdXNlLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERvY3Vt
ZW50KToKKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGltZUlucHV0VHlwZTo6dXBkYXRlSW5uZXJUZXh0VmFsdWUpOiBVc2UgdGhlIGxvY2FsZSBm
b3IgdGhlIGlucHV0IGVsZW1lbnQuCisgICAgICAgICogaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0
RWxlbWVudC5jcHA6CisgICAgICAgIChEYXRlVGltZUVkaXRCdWlsZGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGVUaW1lRWRpdEJ1aWxkZXI6OkRhdGVUaW1lRWRpdEJ1aWxkZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0QnVpbGRlcjo6dmlzaXRGaWVsZCk6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50OjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVFZGl0RWxlbWVudDo6c2V0VmFsdWVBc0RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVFZGl0RWxlbWVudDo6c2V0RW1wdHlWYWx1ZSk6CisgICAgICAgICogaHRtbC9zaGFk
b3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChE
YXRlVGltZUVkaXRFbGVtZW50KToKKworMjAxMi0wOS0xMyAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlz
aGlAd2Via2l0Lm9yZz4KKworICAgICAgICBSZWZhY3RvciB0aW1lIGZvcm1hdCByZWxhdGVkIG1l
dGhvZHMgb24gTG9jYWxlV2luL01hYy9JQ1Ugc28gdGhhdCB0aGV5IG92ZXJyaWRlIExvY2FsaXpl
ciBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05NjcyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlZmFjdG9yaW5nIHRpbWUgZm9ybWF0IHJlbGF0ZWQgbWV0aG9kcyBvbiBMb2NhbGVXaW4vTWFj
L0lDVSBzbyB0aGF0CisgICAgICAgIHRoZXkgb3ZlcnJpZGUgTG9jYWxpemVyIG1ldGhvZHMuIFdl
IGNhbiBjYWxsIHRoZW0gZnJvbSB0aGUgTG9jYWxpemVyCisgICAgICAgIGZyb20gbm93IG9uLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cy4gTm8gYmVoYXZpb3IgY2hhbmdlLiBDb3ZlcmVkIGJ5IGV4
aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TG9jYWxlSUNVOjppbml0aWFsaXplRGF0ZVRpbWVGb3JtYXQpOgor
ICAgICAgICAoV2ViQ29yZTo6TG9jYWxlSUNVOjp0aW1lRm9ybWF0VGV4dCk6CisgICAgICAgIChX
ZWJDb3JlOjpMb2NhbGVJQ1U6OnNob3J0VGltZUZvcm1hdFRleHQpOgorICAgICAgICAoV2ViQ29y
ZTo6TG9jYWxlSUNVOjp0aW1lQU1QTUxhYmVscyk6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9M
b2NhbGVJQ1UuaDoKKyAgICAgICAgKExvY2FsZUlDVSk6CisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9Mb2NhbGVXaW4uaDoKKyAgICAgICAgKExvY2FsZVdpbik6CisgICAgICAgICogcGxhdGZvcm0v
dGV4dC9Mb2NhbGl6ZWREYXRlSUNVLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZFRp
bWVGb3JtYXRUZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OmxvY2FsaXplZFNob3J0VGltZUZvcm1h
dFRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TG9jYWxpemVyOjp0aW1lRm9ybWF0VGV4dCk6
CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGl6ZXI6OnNob3J0VGltZUZvcm1hdFRleHQpOgorICAg
ICAgICAoV2ViQ29yZTo6TG9jYWxpemVyOjp0aW1lQU1QTUxhYmVscyk6CisgICAgICAgICogcGxh
dGZvcm0vdGV4dC9Mb2NhbGl6ZXIuaDoKKyAgICAgICAgKExvY2FsaXplcik6CisgICAgICAgICog
cGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLmg6CisgICAgICAgIChMb2NhbGVNYWMpOgorCisy
MDEyLTA5LTE0ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCiAgICAgICAg
IFJlZmFjdG9yIHRpbWUgZm9ybWF0IHJlbGF0ZWQgbWV0aG9kcyBvbiBMb2NhbGVXaW4vTWFjL0lD
VSBzbyB0aGF0IHRoZXkgb3ZlcnJpZGUgTG9jYWxpemVyIG1ldGhvZHMKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NzI2CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDNkYTg5ZDcuLmJlYzAwODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMTA1LDYgKzEwNSw4IEBACiAjaW5jbHVkZSAiSW1hZ2VMb2FkZXIuaCIKICNpbmNsdWRlICJJ
bnNwZWN0b3JDb3VudGVycy5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5o
IgorI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisjaW5jbHVkZSAiTG9jYWxpemVyLmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0LmgiCiAjaW5jbHVkZSAiTWVk
aWFRdWVyeU1hdGNoZXIuaCIKQEAgLTYzNjEsNCArNjM2MywxNSBAQCBQYXNzUmVmUHRyPEVsZW1l
bnRBdHRyaWJ1dGVEYXRhPiBEb2N1bWVudDo6Y2FjaGVkSW1tdXRhYmxlQXR0cmlidXRlRGF0YShj
b25zdCBFbAogICAgIHJldHVybiBhdHRyaWJ1dGVEYXRhLnJlbGVhc2UoKTsKIH0KIAorTG9jYWxp
emVyJiBEb2N1bWVudDo6Z2V0TG9jYWxpemVyKGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlKQor
eworICAgIEF0b21pY1N0cmluZyBsb2NhbGVLZXkgPSBsb2NhbGU7CisgICAgaWYgKGxvY2FsZS5p
c0VtcHR5KCkgfHwgIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmxhbmdBdHRyaWJ1dGVBd2FyZUZv
cm1Db250cm9sVUlFbmFibGVkKCkpCisgICAgICAgIGxvY2FsZUtleSA9IGRlZmF1bHRMYW5ndWFn
ZSgpOworICAgIExvY2FsZVRvTG9jYWxpemVyTWFwOjpBZGRSZXN1bHQgcmVzdWx0ID0gbV9sb2Nh
bGl6ZXJDYWNoZS5hZGQobG9jYWxlS2V5LCBudWxscHRyKTsKKyAgICBpZiAocmVzdWx0LmlzTmV3
RW50cnkpCisgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+c2Vjb25kID0gTG9jYWxpemVyOjpjcmVh
dGUobG9jYWxlS2V5KTsKKyAgICByZXR1cm4gKihyZXN1bHQuaXRlcmF0b3ItPnNlY29uZCk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYTYwZTQ3
Ny4uYWNiYTA0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTEwOCw2ICsxMDgsNyBAQCBjbGFz
cyBIaXRUZXN0UmVzdWx0OwogY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBET01XcmFwcGVyV29ybGQ7
CiBjbGFzcyBKU05vZGU7CitjbGFzcyBMb2NhbGl6ZXI7CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlz
dGVuZXI7CiBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKIGNsYXNzIE1lZGlhUXVlcnlNYXRjaGVyOwpA
QCAtMTE5Miw2ICsxMTkzLDggQEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxFbGVtZW50QXR0
cmlidXRlRGF0YT4gY2FjaGVkSW1tdXRhYmxlQXR0cmlidXRlRGF0YShjb25zdCBFbGVtZW50Kiwg
Y29uc3QgVmVjdG9yPEF0dHJpYnV0ZT4mKTsKIAorICAgIExvY2FsaXplciYgZ2V0TG9jYWxpemVy
KGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlKTsKKwogcHJvdGVjdGVkOgogICAgIERvY3VtZW50
KEZyYW1lKiwgY29uc3QgS1VSTCYsIGJvb2wgaXNYSFRNTCwgYm9vbCBpc0hUTUwpOwogCkBAIC0x
NTgyLDYgKzE1ODUsOSBAQCBwcml2YXRlOgogI2lmbmRlZiBOREVCVUcKICAgICBib29sIG1fZGlk
RGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNDaGFuZ2VkOwogI2VuZGlmCisKKyAgICB0eXBlZGVm
IEhhc2hNYXA8QXRvbWljU3RyaW5nLCBPd25QdHI8TG9jYWxpemVyPiA+IExvY2FsZVRvTG9jYWxp
emVyTWFwOworICAgIExvY2FsZVRvTG9jYWxpemVyTWFwIG1fbG9jYWxpemVyQ2FjaGU7CiB9Owog
CiBpbmxpbmUgdm9pZCBEb2N1bWVudDo6bm90aWZ5UmVtb3ZlUGVuZGluZ1NoZWV0SWZOZWVkZWQo
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKaW5kZXggZWRkMTJlNy4uNzAzOGIz
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCkBAIC0yODEsMTMgKzI4MSwx
NCBAQCB2b2lkIFRpbWVJbnB1dFR5cGU6OnVwZGF0ZUlubmVyVGV4dFZhbHVlKCkKICAgICBpZiAo
IW1fZGF0ZVRpbWVFZGl0RWxlbWVudCkKICAgICAgICAgcmV0dXJuOwogCisgICAgTG9jYWxpemVy
JiBsb2NhbGl6ZXIgPSBlbGVtZW50KCktPmRvY3VtZW50KCktPmdldExvY2FsaXplcihlbGVtZW50
KCktPmNvbXB1dGVJbmhlcml0ZWRMYW5ndWFnZSgpKTsKICAgICBjb25zdCBTdGVwUmFuZ2Ugc3Rl
cFJhbmdlKGNyZWF0ZVN0ZXBSYW5nZShBbnlJc0RlZmF1bHRTdGVwKSk7CiAgICAgRGF0ZUNvbXBv
bmVudHMgZGF0ZTsKICAgICBpZiAocGFyc2VUb0RhdGVDb21wb25lbnRzKGVsZW1lbnQoKS0+dmFs
dWUoKSwgJmRhdGUpKQotICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldFZhbHVlQXNE
YXRlKHN0ZXBSYW5nZSwgZGF0ZSk7CisgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+c2V0
VmFsdWVBc0RhdGUoc3RlcFJhbmdlLCBkYXRlLCBsb2NhbGl6ZXIpOwogICAgIGVsc2UgewogICAg
ICAgICBzZXRNaWxsaXNlY29uZFRvRGF0ZUNvbXBvbmVudHMoc3RlcFJhbmdlLm1pbmltdW0oKS50
b0RvdWJsZSgpLCAmZGF0ZSk7Ci0gICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+c2V0RW1w
dHlWYWx1ZShzdGVwUmFuZ2UsIGRhdGUpOworICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQt
PnNldEVtcHR5VmFsdWUoc3RlcFJhbmdlLCBkYXRlLCBsb2NhbGl6ZXIpOwogICAgIH0KIH0KICNl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1l
bnQuY3BwCmluZGV4IDExYzE2MjAuLmZlZjBjMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAj
aW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZERhdGUuaCIKICNp
bmNsdWRlICJMb2NhbGl6ZWROdW1iZXIuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZXIuaCIKICNpbmNs
dWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiU3RlcFJhbmdlLmgiCiAjaW5jbHVkZSAiVGV4
dC5oIgpAQCAtNTAsNyArNTEsNyBAQCBjbGFzcyBEYXRlVGltZUVkaXRCdWlsZGVyIDogcHJpdmF0
ZSBEYXRlVGltZUZvcm1hdDo6VG9rZW5IYW5kbGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShEYXRlVGltZUVkaXRCdWlsZGVyKTsKIAogcHVibGljOgotICAgIERhdGVUaW1lRWRpdEJ1aWxk
ZXIoRGF0ZVRpbWVFZGl0RWxlbWVudCYsIGNvbnN0IFN0ZXBSYW5nZSYsIGNvbnN0IERhdGVDb21w
b25lbnRzJik7CisgICAgRGF0ZVRpbWVFZGl0QnVpbGRlcihEYXRlVGltZUVkaXRFbGVtZW50Jiwg
Y29uc3QgU3RlcFJhbmdlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmLCBMb2NhbGl6ZXImKTsKIAog
ICAgIGJvb2wgYnVpbGQoY29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBuZWVkU2Vjb25kRmllbGQo
KSBjb25zdDsKQEAgLTY5LDEyICs3MCwxNCBAQCBwcml2YXRlOgogICAgIERhdGVUaW1lRWRpdEVs
ZW1lbnQmIG1fZWRpdEVsZW1lbnQ7CiAgICAgY29uc3QgRGF0ZUNvbXBvbmVudHMmIG1fZGF0ZVZh
bHVlOwogICAgIGNvbnN0IFN0ZXBSYW5nZSYgbV9zdGVwUmFuZ2U7CisgICAgTG9jYWxpemVyJiBt
X2xvY2FsaXplcjsKIH07CiAKLURhdGVUaW1lRWRpdEJ1aWxkZXI6OkRhdGVUaW1lRWRpdEJ1aWxk
ZXIoRGF0ZVRpbWVFZGl0RWxlbWVudCYgZWxlbW50LCBjb25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5n
ZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVWYWx1ZSkKK0RhdGVUaW1lRWRpdEJ1aWxkZXI6
OkRhdGVUaW1lRWRpdEJ1aWxkZXIoRGF0ZVRpbWVFZGl0RWxlbWVudCYgZWxlbW50LCBjb25zdCBT
dGVwUmFuZ2UmIHN0ZXBSYW5nZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVWYWx1ZSwgTG9j
YWxpemVyJiBsb2NhbGl6ZXIpCiAgICAgOiBtX2VkaXRFbGVtZW50KGVsZW1udCkKICAgICAsIG1f
ZGF0ZVZhbHVlKGRhdGVWYWx1ZSkKICAgICAsIG1fc3RlcFJhbmdlKHN0ZXBSYW5nZSkKKyAgICAs
IG1fbG9jYWxpemVyKGxvY2FsaXplcikKIHsKIH0KIApAQCAtMTM1LDcgKzEzOCw3IEBAIHZvaWQg
RGF0ZVRpbWVFZGl0QnVpbGRlcjo6dmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBl
IGZpZWxkVHlwZSwgaW50KQogICAgIH0KIAogICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxk
VHlwZVBlcmlvZDoKLSAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVsZChEYXRlVGltZUFNUE1G
aWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwgdGltZUFNUE1MYWJl
bHMoKSkpOworICAgICAgICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKERhdGVUaW1lQU1QTUZpZWxk
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50LCBtX2xvY2FsaXplci50aW1l
QU1QTUxhYmVscygpKSk7CiAgICAgICAgIHJldHVybjsKIAogICAgIGNhc2UgRGF0ZVRpbWVGb3Jt
YXQ6OkZpZWxkVHlwZVNlY29uZDogewpAQCAtMTQ1LDcgKzE0OCw3IEBAIHZvaWQgRGF0ZVRpbWVF
ZGl0QnVpbGRlcjo6dmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlIGZpZWxkVHlw
ZSwgaW50KQogICAgICAgICAgICAgZmllbGQtPnNldFJlYWRPbmx5KCk7CiAKICAgICAgICAgaWYg
KG5lZWRNaWxsaXNlY29uZEZpZWxkKCkpIHsKLSAgICAgICAgICAgIHZpc2l0TGl0ZXJhbChsb2Nh
bGl6ZWREZWNpbWFsU2VwYXJhdG9yKCkpOworICAgICAgICAgICAgdmlzaXRMaXRlcmFsKG1fbG9j
YWxpemVyLmxvY2FsaXplZERlY2ltYWxTZXBhcmF0b3IoKSk7CiAgICAgICAgICAgICB2aXNpdEZp
ZWxkKERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVGcmFjdGlvbmFsU2Vjb25kLCAzKTsKICAgICAg
ICAgfQogICAgICAgICByZXR1cm47CkBAIC0zMzYsMTQgKzMzOSwxNCBAQCBib29sIERhdGVUaW1l
RWRpdEVsZW1lbnQ6OmlzUmVhZE9ubHkoKSBjb25zdAogICAgIHJldHVybiBtX2VkaXRDb250cm9s
T3duZXIgJiYgbV9lZGl0Q29udHJvbE93bmVyLT5pc0VkaXRDb250cm9sT3duZXJSZWFkT25seSgp
OwogfQogCi12b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmxheW91dChjb25zdCBTdGVwUmFuZ2Um
IHN0ZXBSYW5nZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVWYWx1ZSkKK3ZvaWQgRGF0ZVRp
bWVFZGl0RWxlbWVudDo6bGF5b3V0KGNvbnN0IFN0ZXBSYW5nZSYgc3RlcFJhbmdlLCBjb25zdCBE
YXRlQ29tcG9uZW50cyYgZGF0ZVZhbHVlLCBMb2NhbGl6ZXImIGxvY2FsaXplcikKIHsKICAgICBz
aXplX3QgZm9jdXNlZEZpZWxkSW5kZXggPSB0aGlzLT5mb2N1c2VkRmllbGRJbmRleCgpOwogICAg
IERhdGVUaW1lRmllbGRFbGVtZW50KiBjb25zdCBmb2N1c2VkRmllbGQgPSBmaWVsZEF0KGZvY3Vz
ZWRGaWVsZEluZGV4KTsKICAgICBjb25zdCBBdG9taWNTdHJpbmcgZm9jdXNlZEZpZWxkSWQgPSBm
b2N1c2VkRmllbGQgPyBmb2N1c2VkRmllbGQtPnNoYWRvd1BzZXVkb0lkKCkgOiBudWxsQXRvbTsK
IAotICAgIERhdGVUaW1lRWRpdEJ1aWxkZXIgYnVpbGRlcigqdGhpcywgc3RlcFJhbmdlLCBkYXRl
VmFsdWUpOwotICAgIGNvbnN0IFN0cmluZyBkYXRlVGltZUZvcm1hdCA9IGJ1aWxkZXIubmVlZFNl
Y29uZEZpZWxkKCkgPyBsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpIDogbG9jYWxpemVkU2hvcnRU
aW1lRm9ybWF0VGV4dCgpOworICAgIERhdGVUaW1lRWRpdEJ1aWxkZXIgYnVpbGRlcigqdGhpcywg
c3RlcFJhbmdlLCBkYXRlVmFsdWUsIGxvY2FsaXplcik7CisgICAgY29uc3QgU3RyaW5nIGRhdGVU
aW1lRm9ybWF0ID0gYnVpbGRlci5uZWVkU2Vjb25kRmllbGQoKSA/IGxvY2FsaXplci50aW1lRm9y
bWF0KCkgOiBsb2NhbGl6ZXIuc2hvcnRUaW1lRm9ybWF0KCk7CiAgICAgTm9kZSogbGFzdENoaWxk
VG9CZVJlbW92ZWQgPSBsYXN0Q2hpbGQoKTsKICAgICBpZiAoIWJ1aWxkZXIuYnVpbGQoZGF0ZVRp
bWVGb3JtYXQpIHx8IG1fZmllbGRzLmlzRW1wdHkoKSkgewogICAgICAgICBsYXN0Q2hpbGRUb0Jl
UmVtb3ZlZCA9IGxhc3RDaGlsZCgpOwpAQCAtNDAzLDE2ICs0MDYsMTYgQEAgdm9pZCBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICBIVE1M
RGl2RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiB9CiAKLXZvaWQgRGF0ZVRp
bWVFZGl0RWxlbWVudDo6c2V0VmFsdWVBc0RhdGUoY29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2Us
IGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlKQordm9pZCBEYXRlVGltZUVkaXRFbGVtZW50Ojpz
ZXRWYWx1ZUFzRGF0ZShjb25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5nZSwgY29uc3QgRGF0ZUNvbXBv
bmVudHMmIGRhdGUsIExvY2FsaXplciYgbG9jYWxpemVyKQogewotICAgIGxheW91dChzdGVwUmFu
Z2UsIGRhdGUpOworICAgIGxheW91dChzdGVwUmFuZ2UsIGRhdGUsIGxvY2FsaXplcik7CiAgICAg
Zm9yIChzaXplX3QgZmllbGRJbmRleCA9IDA7IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXplKCk7
ICsrZmllbGRJbmRleCkKICAgICAgICAgbV9maWVsZHNbZmllbGRJbmRleF0tPnNldFZhbHVlQXNE
YXRlKGRhdGUpOwogfQogCi12b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUo
Y29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlRm9y
UmVhZE9ubHlGaWVsZCkKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6c2V0RW1wdHlWYWx1ZShj
b25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5nZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JS
ZWFkT25seUZpZWxkLCBMb2NhbGl6ZXImIGxvY2FsaXplcikKIHsKLSAgICBsYXlvdXQoc3RlcFJh
bmdlLCBkYXRlRm9yUmVhZE9ubHlGaWVsZCk7CisgICAgbGF5b3V0KHN0ZXBSYW5nZSwgZGF0ZUZv
clJlYWRPbmx5RmllbGQsIGxvY2FsaXplcik7CiAgICAgZm9yIChzaXplX3QgZmllbGRJbmRleCA9
IDA7IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXplKCk7ICsrZmllbGRJbmRleCkKICAgICAgICAg
bV9maWVsZHNbZmllbGRJbmRleF0tPnNldEVtcHR5VmFsdWUoZGF0ZUZvclJlYWRPbmx5RmllbGQs
IERhdGVUaW1lRmllbGRFbGVtZW50OjpEaXNwYXRjaE5vRXZlbnQpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCmluZGV4IDhlNmViMTEu
LmU4MDBlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1l
RWRpdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVk
aXRFbGVtZW50LmgKQEAgLTM1LDYgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
RGF0ZUNvbXBvbmVudHM7CiBjbGFzcyBEYXRlVGltZUVkaXRMYXlvdXRlcjsKIGNsYXNzIEtleWJv
YXJkRXZlbnQ7CitjbGFzcyBMb2NhbGl6ZXI7CiBjbGFzcyBNb3VzZUV2ZW50OwogY2xhc3MgU3Rl
cFJhbmdlOwogCkBAIC02OSw4ICs3MCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlYWRPbmx5U3Rh
dGVDaGFuZ2VkKCk7CiAgICAgdm9pZCByZW1vdmVFZGl0Q29udHJvbE93bmVyKCkgeyBtX2VkaXRD
b250cm9sT3duZXIgPSAwOyB9CiAgICAgdm9pZCByZXNldEZpZWxkcygpOwotICAgIHZvaWQgc2V0
RW1wdHlWYWx1ZShjb25zdCBTdGVwUmFuZ2UmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgIGRhdGVG
b3JSZWFkT25seUZpZWxkKTsKLSAgICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IFN0ZXBSYW5n
ZSYsIGNvbnN0IERhdGVDb21wb25lbnRzJik7CisgICAgdm9pZCBzZXRFbXB0eVZhbHVlKGNvbnN0
IFN0ZXBSYW5nZSYsIGNvbnN0IERhdGVDb21wb25lbnRzJiAgZGF0ZUZvclJlYWRPbmx5RmllbGQs
IExvY2FsaXplciYpOworICAgIHZvaWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgU3RlcFJhbmdlJiwg
Y29uc3QgRGF0ZUNvbXBvbmVudHMmLCBMb2NhbGl6ZXImKTsKICAgICBkb3VibGUgdmFsdWVBc0Rv
dWJsZSgpIGNvbnN0OwogCiBwcml2YXRlOgpAQCAtOTUsNyArOTYsNyBAQCBwcml2YXRlOgogICAg
IHNpemVfdCBmb2N1c2VkRmllbGRJbmRleCgpIGNvbnN0OwogICAgIGJvb2wgaXNEaXNhYmxlZCgp
IGNvbnN0OwogICAgIGJvb2wgaXNSZWFkT25seSgpIGNvbnN0OwotICAgIHZvaWQgbGF5b3V0KGNv
bnN0IFN0ZXBSYW5nZSYsIGNvbnN0IERhdGVDb21wb25lbnRzJik7CisgICAgdm9pZCBsYXlvdXQo
Y29uc3QgU3RlcFJhbmdlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmLCBMb2NhbGl6ZXImKTsKICAg
ICB2b2lkIHVwZGF0ZVVJU3RhdGUoKTsKIAogICAgIC8vIERhdGVUaW1lRmllbGRFbGVtZW50OjpG
aWVsZE93bmVyIGZ1bmN0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggNDIwOWRl
Yy4uNmE2NzNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxMi0wOS0xMyAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAgICAg
ICBSZWZhY3RvciB0aW1lIGZvcm1hdCByZWxhdGVkIG1ldGhvZHMgb24gTG9jYWxlV2luL01hYy9J
Q1Ugc28gdGhhdCB0aGV5IG92ZXJyaWRlIExvY2FsaXplciBtZXRob2RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjcyNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvTG9jYWxpemVkRGF0ZUlD
VVRlc3QuY3BwOgorICAgICAgICAoTG9jYWxpemVkRGF0ZUlDVVRlc3Q6OmxvY2FsaXplZERhdGVG
b3JtYXRUZXh0KToKKyAgICAgICAgKExvY2FsaXplZERhdGVJQ1VUZXN0Ojpsb2NhbGl6ZWRTaG9y
dERhdGVGb3JtYXRUZXh0KToKKwogMjAxMi0wOS0xNCAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZWZhY3RvciB0aW1lIGZvcm1hdCByZWxhdGVkIG1ldGhv
ZHMgb24gTG9jYWxlV2luL01hYy9JQ1Ugc28gdGhhdCB0aGV5IG92ZXJyaWRlIExvY2FsaXplciBt
ZXRob2RzCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164106</attachid>
            <date>2012-09-14 04:44:57 -0700</date>
            <delta_ts>2012-09-14 05:00:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96728-20120914204428.patch</filename>
            <type>text/plain</type>
            <size>17183</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTMyNTU3ODQ4OWEyMzBl
NDc2YzhmNjQ0MzIzNjdiM2ZlYTdjZDY5Ny4uMzY5ZjY2YmMyOTgwOTUwMDI3NDM0YzFkMWYxOWZl
ZGE3N2ZjNGQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA5LTE1ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgdGltZSBpbnB1
dCBsYW5nIGF0dHJpYnV0ZSBhd2FyZSBmb3IgdGVzdGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY3MjgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgcGFydGlhbCBs
YW5nIGF0dHJpYnV0ZSBzdXBwb3J0IGZvciBpbnB1dCB0eXBlPXRpbWUKKyAgICAgICAgdGhhdCB0
dXJucyBvbiBvbmx5IHdoZW4gZW5hYmxlZCB0aHJvdWdoIEludGVybmFsU2V0dGluZ3MuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxl
LWZpZWxkcy1sb2NhbGl6YXRpb24uaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpnZXRMb2NhbGl6ZXIpOiBSZXR1cm5zIGEgbG9j
YWxpemVyIGZvciBhIGdpdmVuIGxvY2FsZS4gTG9jYWxpemVycyBhcmUgY2FjaGVkIGZvciByZXBl
YXRlZCB1c2UuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwv
VGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjp1cGRh
dGVJbm5lclRleHRWYWx1ZSk6IFVzZSB0aGUgbG9jYWxlIGZvciB0aGUgaW5wdXQgZWxlbWVudC4K
KyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAg
KERhdGVUaW1lRWRpdEJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0QnVp
bGRlcjo6RGF0ZVRpbWVFZGl0QnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVk
aXRCdWlsZGVyOjp2aXNpdEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVs
ZW1lbnQ6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpz
ZXRWYWx1ZUFzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpz
ZXRFbXB0eVZhbHVlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERhdGVUaW1lRWRpdEVsZW1lbnQpOgor
CiAyMDEyLTA5LTE0ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlZmFjdG9yIHRpbWUgZm9ybWF0IHJlbGF0ZWQgbWV0aG9kcyBvbiBMb2NhbGVXaW4vTWFj
L0lDVSBzbyB0aGF0IHRoZXkgb3ZlcnJpZGUgTG9jYWxpemVyIG1ldGhvZHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggMmVmOWU3ZjFhNzcyYTczNDg1Y2VlODA5OTdjZDBmZGI3NTI2YjAx
Ny4uMGJkNTU4MjBiNTJmOGFiYmM2ZTlkNjVkM2ZmMmI4OWIzYzhjZjQ4NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wOS0xMyAgS2Vpc2hpIEhhdHRv
cmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAgICAgICBSZWZhY3RvciB0aW1lIGZvcm1hdCBy
ZWxhdGVkIG1ldGhvZHMgb24gTG9jYWxlV2luL01hYy9JQ1Ugc28gdGhhdCB0aGV5IG92ZXJyaWRl
IExvY2FsaXplciBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NjcyNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogdGVzdHMvTG9jYWxpemVkRGF0ZUlDVVRlc3QuY3BwOgorICAgICAgICAoTG9j
YWxpemVkRGF0ZUlDVVRlc3Q6OmxvY2FsaXplZERhdGVGb3JtYXRUZXh0KToKKyAgICAgICAgKExv
Y2FsaXplZERhdGVJQ1VUZXN0Ojpsb2NhbGl6ZWRTaG9ydERhdGVGb3JtYXRUZXh0KToKKwogMjAx
Mi0wOS0xNCAgS2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZWZhY3RvciB0aW1lIGZvcm1hdCByZWxhdGVkIG1ldGhvZHMgb24gTG9jYWxlV2luL01hYy9JQ1Ug
c28gdGhhdCB0aGV5IG92ZXJyaWRlIExvY2FsaXplciBtZXRob2RzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCA0OTg5NjczYTY2NGVjYmZmMWQzZjE0MWQzNGYxNmVhNWRkOTEzMTU2Li4zYWM1
ZDllYzAyMzcwNzI5YjVlOTA5NWUwNzg2M2YyNWUyYWEzOGVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTEwNSw2ICsxMDUsOCBAQAogI2luY2x1ZGUgIkltYWdlTG9hZGVyLmgiCiAjaW5j
bHVkZSAiSW5zcGVjdG9yQ291bnRlcnMuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCIKKyNpbmNsdWRlICJMYW5ndWFnZS5oIgorI2luY2x1ZGUgIkxvY2FsaXplci5oIgog
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZWRpYVF1ZXJ5TGlzdC5oIgogI2luY2x1
ZGUgIk1lZGlhUXVlcnlNYXRjaGVyLmgiCkBAIC0xMzEsNiArMTMzLDcgQEAKICNpbmNsdWRlICJS
ZW5kZXJUZXh0Q29udHJvbC5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJS
ZW5kZXJXaWRnZXQuaCIKKyNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5j
bHVkZSAiU2NoZW1lUmVnaXN0cnkuaCIKICNpbmNsdWRlICJTY29wZWRFdmVudFF1ZXVlLmgiCiAj
aW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCkBAIC02MzYyLDQgKzYzNjUsMTUgQEAgUGFzc1Jl
ZlB0cjxFbGVtZW50QXR0cmlidXRlRGF0YT4gRG9jdW1lbnQ6OmNhY2hlZEltbXV0YWJsZUF0dHJp
YnV0ZURhdGEoY29uc3QgRWwKICAgICByZXR1cm4gYXR0cmlidXRlRGF0YS5yZWxlYXNlKCk7CiB9
CiAKK0xvY2FsaXplciYgRG9jdW1lbnQ6OmdldExvY2FsaXplcihjb25zdCBBdG9taWNTdHJpbmcm
IGxvY2FsZSkKK3sKKyAgICBBdG9taWNTdHJpbmcgbG9jYWxlS2V5ID0gbG9jYWxlOworICAgIGlm
IChsb2NhbGUuaXNFbXB0eSgpIHx8ICFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpsYW5nQXR0cmli
dXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZCgpKQorICAgICAgICBsb2NhbGVLZXkgPSBkZWZh
dWx0TGFuZ3VhZ2UoKTsKKyAgICBMb2NhbGVUb0xvY2FsaXplck1hcDo6QWRkUmVzdWx0IHJlc3Vs
dCA9IG1fbG9jYWxpemVyQ2FjaGUuYWRkKGxvY2FsZUtleSwgbnVsbHB0cik7CisgICAgaWYgKHJl
c3VsdC5pc05ld0VudHJ5KQorICAgICAgICByZXN1bHQuaXRlcmF0b3ItPnNlY29uZCA9IExvY2Fs
aXplcjo6Y3JlYXRlKGxvY2FsZUtleSk7CisgICAgcmV0dXJuICoocmVzdWx0Lml0ZXJhdG9yLT5z
ZWNvbmQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmlu
ZGV4IGE2MGU0Nzc1ZDRhMDRmMTFhZTUyYzgwMmMyZjRjNjc3ZGQ2ZTljYWMuLmFjYmEwNGMwMDU0
MGFjOWE5NWZiMGJhZTM3ZGQ5YmI4M2E5ZGQxMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0x
MDgsNiArMTA4LDcgQEAgY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEludFBvaW50OwogY2xh
c3MgRE9NV3JhcHBlcldvcmxkOwogY2xhc3MgSlNOb2RlOworY2xhc3MgTG9jYWxpemVyOwogY2xh
c3MgTWVkaWFDYW5TdGFydExpc3RlbmVyOwogY2xhc3MgTWVkaWFRdWVyeUxpc3Q7CiBjbGFzcyBN
ZWRpYVF1ZXJ5TWF0Y2hlcjsKQEAgLTExOTIsNiArMTE5Myw4IEBAIHB1YmxpYzoKIAogICAgIFBh
c3NSZWZQdHI8RWxlbWVudEF0dHJpYnV0ZURhdGE+IGNhY2hlZEltbXV0YWJsZUF0dHJpYnV0ZURh
dGEoY29uc3QgRWxlbWVudCosIGNvbnN0IFZlY3RvcjxBdHRyaWJ1dGU+Jik7CiAKKyAgICBMb2Nh
bGl6ZXImIGdldExvY2FsaXplcihjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsZSk7CisKIHByb3Rl
Y3RlZDoKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCBib29sIGlzWEhUTUwsIGJv
b2wgaXNIVE1MKTsKIApAQCAtMTU4Miw2ICsxNTg1LDkgQEAgcHJpdmF0ZToKICNpZm5kZWYgTkRF
QlVHCiAgICAgYm9vbCBtX2RpZERpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZDsKICNl
bmRpZgorCisgICAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZywgT3duUHRyPExvY2FsaXpl
cj4gPiBMb2NhbGVUb0xvY2FsaXplck1hcDsKKyAgICBMb2NhbGVUb0xvY2FsaXplck1hcCBtX2xv
Y2FsaXplckNhY2hlOwogfTsKIAogaW5saW5lIHZvaWQgRG9jdW1lbnQ6Om5vdGlmeVJlbW92ZVBl
bmRpbmdTaGVldElmTmVlZGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGlt
ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCmlu
ZGV4IGM3YjljMTM4NGE1ZDg0ZmQ4ZmEyZWVhOWFhZmUxOWZjODQ3NGU1M2EuLjg4MGU0NDcxOTgy
ZGQzNWVkYjFmMDEyMDZkZDY2Y2E0N2M4YjYyZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5w
dXRUeXBlLmNwcApAQCAtMzAyLDEzICszMDIsMTQgQEAgdm9pZCBUaW1lSW5wdXRUeXBlOjp1cGRh
dGVJbm5lclRleHRWYWx1ZSgpCiAgICAgaWYgKCFtX2RhdGVUaW1lRWRpdEVsZW1lbnQpCiAgICAg
ICAgIHJldHVybjsKIAorICAgIExvY2FsaXplciYgbG9jYWxpemVyID0gZWxlbWVudCgpLT5kb2N1
bWVudCgpLT5nZXRMb2NhbGl6ZXIoZWxlbWVudCgpLT5jb21wdXRlSW5oZXJpdGVkTGFuZ3VhZ2Uo
KSk7CiAgICAgY29uc3QgU3RlcFJhbmdlIHN0ZXBSYW5nZShjcmVhdGVTdGVwUmFuZ2UoQW55SXNE
ZWZhdWx0U3RlcCkpOwogICAgIERhdGVDb21wb25lbnRzIGRhdGU7CiAgICAgaWYgKHBhcnNlVG9E
YXRlQ29tcG9uZW50cyhlbGVtZW50KCktPnZhbHVlKCksICZkYXRlKSkKLSAgICAgICAgbV9kYXRl
VGltZUVkaXRFbGVtZW50LT5zZXRWYWx1ZUFzRGF0ZShzdGVwUmFuZ2UsIGRhdGUpOworICAgICAg
ICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldFZhbHVlQXNEYXRlKHN0ZXBSYW5nZSwgZGF0ZSwg
bG9jYWxpemVyKTsKICAgICBlbHNlIHsKICAgICAgICAgc2V0TWlsbGlzZWNvbmRUb0RhdGVDb21w
b25lbnRzKHN0ZXBSYW5nZS5taW5pbXVtKCkudG9Eb3VibGUoKSwgJmRhdGUpOwotICAgICAgICBt
X2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldEVtcHR5VmFsdWUoc3RlcFJhbmdlLCBkYXRlKTsKKyAg
ICAgICAgbV9kYXRlVGltZUVkaXRFbGVtZW50LT5zZXRFbXB0eVZhbHVlKHN0ZXBSYW5nZSwgZGF0
ZSwgbG9jYWxpemVyKTsKICAgICB9CiB9CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcAppbmRleCA3NmEwYTIwMzg3Yjc1ZmQy
ZTkxNTRkOGI4ZWE4Y2JiNjcxOTgzYjkwLi5lOWFhODU4Y2NiOGUwZDczYjA4ZWZkNmYwZDU5Zjhh
MjhjNWJhYWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZUVkaXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGlt
ZUVkaXRFbGVtZW50LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIktleWJvYXJkRXZl
bnQuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWREYXRlLmgiCiAjaW5jbHVkZSAiTG9jYWxpemVkTnVt
YmVyLmgiCisjaW5jbHVkZSAiTG9jYWxpemVyLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgog
I2luY2x1ZGUgIlN0ZXBSYW5nZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAgLTUxLDcgKzUyLDcg
QEAgY2xhc3MgRGF0ZVRpbWVFZGl0QnVpbGRlciA6IHByaXZhdGUgRGF0ZVRpbWVGb3JtYXQ6OlRv
a2VuSGFuZGxlciB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRGF0ZVRpbWVFZGl0QnVpbGRl
cik7CiAKIHB1YmxpYzoKLSAgICBEYXRlVGltZUVkaXRCdWlsZGVyKERhdGVUaW1lRWRpdEVsZW1l
bnQmLCBjb25zdCBTdGVwUmFuZ2UmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYpOworICAgIERhdGVU
aW1lRWRpdEJ1aWxkZXIoRGF0ZVRpbWVFZGl0RWxlbWVudCYsIGNvbnN0IFN0ZXBSYW5nZSYsIGNv
bnN0IERhdGVDb21wb25lbnRzJiwgTG9jYWxpemVyJik7CiAKICAgICBib29sIGJ1aWxkKGNvbnN0
IFN0cmluZyYpOwogICAgIGJvb2wgbmVlZFNlY29uZEZpZWxkKCkgY29uc3Q7CkBAIC03MCwxMiAr
NzEsMTQgQEAgcHJpdmF0ZToKICAgICBEYXRlVGltZUVkaXRFbGVtZW50JiBtX2VkaXRFbGVtZW50
OwogICAgIGNvbnN0IERhdGVDb21wb25lbnRzJiBtX2RhdGVWYWx1ZTsKICAgICBjb25zdCBTdGVw
UmFuZ2UmIG1fc3RlcFJhbmdlOworICAgIExvY2FsaXplciYgbV9sb2NhbGl6ZXI7CiB9OwogCi1E
YXRlVGltZUVkaXRCdWlsZGVyOjpEYXRlVGltZUVkaXRCdWlsZGVyKERhdGVUaW1lRWRpdEVsZW1l
bnQmIGVsZW1udCwgY29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0IERhdGVDb21wb25l
bnRzJiBkYXRlVmFsdWUpCitEYXRlVGltZUVkaXRCdWlsZGVyOjpEYXRlVGltZUVkaXRCdWlsZGVy
KERhdGVUaW1lRWRpdEVsZW1lbnQmIGVsZW1udCwgY29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2Us
IGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlVmFsdWUsIExvY2FsaXplciYgbG9jYWxpemVyKQog
ICAgIDogbV9lZGl0RWxlbWVudChlbGVtbnQpCiAgICAgLCBtX2RhdGVWYWx1ZShkYXRlVmFsdWUp
CiAgICAgLCBtX3N0ZXBSYW5nZShzdGVwUmFuZ2UpCisgICAgLCBtX2xvY2FsaXplcihsb2NhbGl6
ZXIpCiB7CiB9CiAKQEAgLTEzNiw3ICsxMzksNyBAQCB2b2lkIERhdGVUaW1lRWRpdEJ1aWxkZXI6
OnZpc2l0RmllbGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBmaWVsZFR5cGUsIGludCkKICAg
ICB9CiAKICAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVQZXJpb2Q6Ci0gICAgICAg
IG1fZWRpdEVsZW1lbnQuYWRkRmllbGQoRGF0ZVRpbWVBTVBNRmllbGRFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQsIG1fZWRpdEVsZW1lbnQsIHRpbWVBTVBNTGFiZWxzKCkpKTsKKyAgICAgICAgbV9l
ZGl0RWxlbWVudC5hZGRGaWVsZChEYXRlVGltZUFNUE1GaWVsZEVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCwgbV9lZGl0RWxlbWVudCwgbV9sb2NhbGl6ZXIudGltZUFNUE1MYWJlbHMoKSkpOwogICAg
ICAgICByZXR1cm47CiAKICAgICBjYXNlIERhdGVUaW1lRm9ybWF0OjpGaWVsZFR5cGVTZWNvbmQ6
IHsKQEAgLTE0Niw3ICsxNDksNyBAQCB2b2lkIERhdGVUaW1lRWRpdEJ1aWxkZXI6OnZpc2l0Rmll
bGQoRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZSBmaWVsZFR5cGUsIGludCkKICAgICAgICAgICAg
IGZpZWxkLT5zZXRSZWFkT25seSgpOwogCiAgICAgICAgIGlmIChuZWVkTWlsbGlzZWNvbmRGaWVs
ZCgpKSB7Ci0gICAgICAgICAgICB2aXNpdExpdGVyYWwobG9jYWxpemVkRGVjaW1hbFNlcGFyYXRv
cigpKTsKKyAgICAgICAgICAgIHZpc2l0TGl0ZXJhbChtX2xvY2FsaXplci5sb2NhbGl6ZWREZWNp
bWFsU2VwYXJhdG9yKCkpOwogICAgICAgICAgICAgdmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6
RmllbGRUeXBlRnJhY3Rpb25hbFNlY29uZCwgMyk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
OwpAQCAtMzM3LDE0ICszNDAsMTQgQEAgYm9vbCBEYXRlVGltZUVkaXRFbGVtZW50Ojppc1JlYWRP
bmx5KCkgY29uc3QKICAgICByZXR1cm4gbV9lZGl0Q29udHJvbE93bmVyICYmIG1fZWRpdENvbnRy
b2xPd25lci0+aXNFZGl0Q29udHJvbE93bmVyUmVhZE9ubHkoKTsKIH0KIAotdm9pZCBEYXRlVGlt
ZUVkaXRFbGVtZW50OjpsYXlvdXQoY29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0IERh
dGVDb21wb25lbnRzJiBkYXRlVmFsdWUpCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmxheW91
dChjb25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5nZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVW
YWx1ZSwgTG9jYWxpemVyJiBsb2NhbGl6ZXIpCiB7CiAgICAgc2l6ZV90IGZvY3VzZWRGaWVsZElu
ZGV4ID0gdGhpcy0+Zm9jdXNlZEZpZWxkSW5kZXgoKTsKICAgICBEYXRlVGltZUZpZWxkRWxlbWVu
dCogY29uc3QgZm9jdXNlZEZpZWxkID0gZmllbGRBdChmb2N1c2VkRmllbGRJbmRleCk7CiAgICAg
Y29uc3QgQXRvbWljU3RyaW5nIGZvY3VzZWRGaWVsZElkID0gZm9jdXNlZEZpZWxkID8gZm9jdXNl
ZEZpZWxkLT5zaGFkb3dQc2V1ZG9JZCgpIDogbnVsbEF0b207CiAKLSAgICBEYXRlVGltZUVkaXRC
dWlsZGVyIGJ1aWxkZXIoKnRoaXMsIHN0ZXBSYW5nZSwgZGF0ZVZhbHVlKTsKLSAgICBjb25zdCBT
dHJpbmcgZGF0ZVRpbWVGb3JtYXQgPSBidWlsZGVyLm5lZWRTZWNvbmRGaWVsZCgpID8gbG9jYWxp
emVkVGltZUZvcm1hdFRleHQoKSA6IGxvY2FsaXplZFNob3J0VGltZUZvcm1hdFRleHQoKTsKKyAg
ICBEYXRlVGltZUVkaXRCdWlsZGVyIGJ1aWxkZXIoKnRoaXMsIHN0ZXBSYW5nZSwgZGF0ZVZhbHVl
LCBsb2NhbGl6ZXIpOworICAgIGNvbnN0IFN0cmluZyBkYXRlVGltZUZvcm1hdCA9IGJ1aWxkZXIu
bmVlZFNlY29uZEZpZWxkKCkgPyBsb2NhbGl6ZXIudGltZUZvcm1hdCgpIDogbG9jYWxpemVyLnNo
b3J0VGltZUZvcm1hdCgpOwogICAgIE5vZGUqIGxhc3RDaGlsZFRvQmVSZW1vdmVkID0gbGFzdENo
aWxkKCk7CiAgICAgaWYgKCFidWlsZGVyLmJ1aWxkKGRhdGVUaW1lRm9ybWF0KSB8fCBtX2ZpZWxk
cy5pc0VtcHR5KCkpIHsKICAgICAgICAgbGFzdENoaWxkVG9CZVJlbW92ZWQgPSBsYXN0Q2hpbGQo
KTsKQEAgLTQwNCw5ICs0MDcsOSBAQCB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OmRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgIEhUTUxEaXZFbGVtZW50OjpkZWZhdWx0RXZl
bnRIYW5kbGVyKGV2ZW50KTsKIH0KIAotdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpzZXRWYWx1
ZUFzRGF0ZShjb25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5nZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMm
IGRhdGUpCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnNldFZhbHVlQXNEYXRlKGNvbnN0IFN0
ZXBSYW5nZSYgc3RlcFJhbmdlLCBjb25zdCBEYXRlQ29tcG9uZW50cyYgZGF0ZSwgTG9jYWxpemVy
JiBsb2NhbGl6ZXIpCiB7Ci0gICAgbGF5b3V0KHN0ZXBSYW5nZSwgZGF0ZSk7CisgICAgbGF5b3V0
KHN0ZXBSYW5nZSwgZGF0ZSwgbG9jYWxpemVyKTsKICAgICBmb3IgKHNpemVfdCBmaWVsZEluZGV4
ID0gMDsgZmllbGRJbmRleCA8IG1fZmllbGRzLnNpemUoKTsgKytmaWVsZEluZGV4KQogICAgICAg
ICBtX2ZpZWxkc1tmaWVsZEluZGV4XS0+c2V0VmFsdWVBc0RhdGUoZGF0ZSk7CiB9CkBAIC00MTcs
OSArNDIwLDkgQEAgdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50OjpzZXRWYWx1ZUFzRGF0ZVRpbWVG
aWVsZHNTdGF0ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXQKICAgICAgICAgbV9maWVsZHNbZmll
bGRJbmRleF0tPnNldFZhbHVlQXNEYXRlVGltZUZpZWxkc1N0YXRlKGRhdGVUaW1lRmllbGRzU3Rh
dGUsIGRhdGVGb3JSZWFkT25seUZpZWxkKTsKIH0KIAotdm9pZCBEYXRlVGltZUVkaXRFbGVtZW50
OjpzZXRFbXB0eVZhbHVlKGNvbnN0IFN0ZXBSYW5nZSYgc3RlcFJhbmdlLCBjb25zdCBEYXRlQ29t
cG9uZW50cyYgZGF0ZUZvclJlYWRPbmx5RmllbGQpCit2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6
OnNldEVtcHR5VmFsdWUoY29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0IERhdGVDb21w
b25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCwgTG9jYWxpemVyJiBsb2NhbGl6ZXIpCiB7Ci0g
ICAgbGF5b3V0KHN0ZXBSYW5nZSwgZGF0ZUZvclJlYWRPbmx5RmllbGQpOworICAgIGxheW91dChz
dGVwUmFuZ2UsIGRhdGVGb3JSZWFkT25seUZpZWxkLCBsb2NhbGl6ZXIpOwogICAgIGZvciAoc2l6
ZV90IGZpZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxk
SW5kZXgpCiAgICAgICAgIG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5zZXRFbXB0eVZhbHVlKGRhdGVG
b3JSZWFkT25seUZpZWxkLCBEYXRlVGltZUZpZWxkRWxlbWVudDo6RGlzcGF0Y2hOb0V2ZW50KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQu
aAppbmRleCAwNzZhZDhiNDhkMDc5ZWY5NTU0NWY2OTQyODcyMDZhMDIwZmI4YmVmLi5jMTdiZDdh
N2EwNTQxZjZjMWQ4MmJhY2JkMzE3YmYxZWQ0N2FhNTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0RWxlbWVudC5oCkBAIC0zNiw2ICszNiw3IEBAIGNs
YXNzIERhdGVDb21wb25lbnRzOwogY2xhc3MgRGF0ZVRpbWVFZGl0TGF5b3V0ZXI7CiBjbGFzcyBE
YXRlVGltZUZpZWxkc1N0YXRlOwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKK2NsYXNzIExvY2FsaXpl
cjsKIGNsYXNzIE1vdXNlRXZlbnQ7CiBjbGFzcyBTdGVwUmFuZ2U7CiAKQEAgLTcwLDggKzcxLDgg
QEAgcHVibGljOgogICAgIHZvaWQgcmVhZE9ubHlTdGF0ZUNoYW5nZWQoKTsKICAgICB2b2lkIHJl
bW92ZUVkaXRDb250cm9sT3duZXIoKSB7IG1fZWRpdENvbnRyb2xPd25lciA9IDA7IH0KICAgICB2
b2lkIHJlc2V0RmllbGRzKCk7Ci0gICAgdm9pZCBzZXRFbXB0eVZhbHVlKGNvbnN0IFN0ZXBSYW5n
ZSYsIGNvbnN0IERhdGVDb21wb25lbnRzJiAgZGF0ZUZvclJlYWRPbmx5RmllbGQpOwotICAgIHZv
aWQgc2V0VmFsdWVBc0RhdGUoY29uc3QgU3RlcFJhbmdlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMm
KTsKKyAgICB2b2lkIHNldEVtcHR5VmFsdWUoY29uc3QgU3RlcFJhbmdlJiwgY29uc3QgRGF0ZUNv
bXBvbmVudHMmICBkYXRlRm9yUmVhZE9ubHlGaWVsZCwgTG9jYWxpemVyJik7CisgICAgdm9pZCBz
ZXRWYWx1ZUFzRGF0ZShjb25zdCBTdGVwUmFuZ2UmLCBjb25zdCBEYXRlQ29tcG9uZW50cyYsIExv
Y2FsaXplciYpOwogICAgIHZvaWQgc2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoY29uc3Qg
RGF0ZVRpbWVGaWVsZHNTdGF0ZSYsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlRm9yUmVhZE9u
bHlGaWVsZCk7CiAgICAgRGF0ZVRpbWVGaWVsZHNTdGF0ZSB2YWx1ZUFzRGF0ZVRpbWVGaWVsZHNT
dGF0ZSgpIGNvbnN0OwogICAgIGRvdWJsZSB2YWx1ZUFzRG91YmxlKCkgY29uc3Q7CkBAIC05OCw3
ICs5OSw3IEBAIHByaXZhdGU6CiAgICAgc2l6ZV90IGZvY3VzZWRGaWVsZEluZGV4KCkgY29uc3Q7
CiAgICAgYm9vbCBpc0Rpc2FibGVkKCkgY29uc3Q7CiAgICAgYm9vbCBpc1JlYWRPbmx5KCkgY29u
c3Q7Ci0gICAgdm9pZCBsYXlvdXQoY29uc3QgU3RlcFJhbmdlJiwgY29uc3QgRGF0ZUNvbXBvbmVu
dHMmKTsKKyAgICB2b2lkIGxheW91dChjb25zdCBTdGVwUmFuZ2UmLCBjb25zdCBEYXRlQ29tcG9u
ZW50cyYsIExvY2FsaXplciYpOwogICAgIHZvaWQgdXBkYXRlVUlTdGF0ZSgpOwogCiAgICAgLy8g
RGF0ZVRpbWVGaWVsZEVsZW1lbnQ6OkZpZWxkT3duZXIgZnVuY3Rpb25zLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY4NjA0
MGE5NzU4OTI5YzkzNjViYjA3MjVhOTRmOTRhMWU1MWE4ZGYuLmNmMTEwZjNhYjkyOTg0ZTgzYmYy
MmU3YWVkNmMwM2I5NWFkOWRkNWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wOS0xNSAg
S2Vpc2hpIEhhdHRvcmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIHRpbWUg
aW5wdXQgbGFuZyBhdHRyaWJ1dGUgYXdhcmUgZm9yIHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2NzI4CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Jlc291cmNlcy9jb21t
b24uanM6CisgICAgICAgIChnZXRVc2VyQWdlbnRTaGFkb3dUZXh0Q29udGVudCk6IFVzZWQgdG8g
Z2V0IHRoZSB0ZXh0IGluc2lkZSBhbiBpbnB1dCBlbGVtZW50LgorICAgICAgICAqIGZhc3QvZm9y
bXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtbG9jYWxpemF0aW9u
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLW1hYy9mYXN0L2Zvcm1z
L3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWxvY2FsaXphdGlvbi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBl
Y3RhdGlvbnM6CisKIDIwMTItMDktMTQgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1
bWV6QGludGVsLmNvbT4KIAogICAgICAgICBbV0syXVtXS1RSXSBUZXN0UnVubmVyIGlzIG5vdCBk
dW1waW5nIHNvbWUgZnJhbWUgbG9hZCBjYWxsYmFja3MgaW5mb3JtYXRpb24KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2NvbW1vbi5qcyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvcmVzb3VyY2VzL2NvbW1vbi5qcwppbmRleCBjMjU4ODQwNGIwOWIwZmJlODQ1
MDBiMDU2NzQzNzA4NGE4YzA4N2FhLi4wNjYzY2UzYzEwMGQwM2I3MDMzNWZhNTMzMDcwOTUzM2Yy
ZmYwNWQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9jb21t
b24uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvY29tbW9uLmpzCkBA
IC0xMTUsMyArMTE1LDcgQEAgZnVuY3Rpb24gbW91c2VNb3ZlVG9JbmRleEluTGlzdGJveChpbmRl
eCwgbGlzdGJveElkKSB7CiAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8obGlzdGJveC5vZmZzZXRMZWZ0ICsgYm9yZGVyLCBsaXN0Ym94
Lm9mZnNldFRvcCArIHkgLSB3aW5kb3cucGFnZVlPZmZzZXQpOwogfQorCitmdW5jdGlvbiBnZXRV
c2VyQWdlbnRTaGFkb3dUZXh0Q29udGVudChlbGVtZW50KSB7CisgICAgcmV0dXJuIGludGVybmFs
cy55b3VuZ2VzdFNoYWRvd1Jvb3QoZWxlbWVudCkudGV4dENvbnRlbnQ7Cit9OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRp
cGxlLWZpZWxkcy1sb2NhbGl6YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGlt
ZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtbG9jYWxpemF0aW9uLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYTZkMWI1OTdkNjI2ZWU0NmZhNDk1NGI2YmZiNTE5ZDUwZjU5ZGE5YQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVs
ZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtbG9jYWxpemF0aW9uLmh0bWwKQEAgLTAsMCArMSwzMCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldExh
bmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlFbmFibGVkKHRydWUpOworPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9Y29uc29sZT48L2Rpdj4KKzxpbnB1dCB0eXBlPSJ0aW1l
IiB2YWx1ZT0iMTM6MjM6NDUuMSIgbGFuZz0iZW4iIC8+PGJyPgorPGlucHV0IHR5cGU9InRpbWUi
IHZhbHVlPSIxMzoyMzo0NS4xIiBsYW5nPSJhciIgLz48YnI+Cis8aW5wdXQgdHlwZT0idGltZSIg
dmFsdWU9IjEzOjIzOjQ1LjEiIGxhbmc9ImZyIiAvPjxicj4KKzxpbnB1dCB0eXBlPSJ0aW1lIiB2
YWx1ZT0iMTM6MjM6NDUuMSIgbGFuZz0iamEiIC8+PGJyPgorPGlucHV0IHR5cGU9InRpbWUiIHZh
bHVlPSIxMzoyMzo0NS4xIiBsYW5nPSJrbyIgLz48YnI+Cis8aW5wdXQgdHlwZT0idGltZSIgdmFs
dWU9IjEzOjIzOjQ1LjEiIGxhbmc9ImNuIiAvPgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0
cyB0aGUgdGltZSBmb3JtYXQgZm9yIHZhcmlvdXMgbG9jYWxlcy4iLCB0cnVlKTsKK2RlYnVnKCJU
aGUgZm9sbG93aW5nIGxpbmVzIGRlcGVuZCBvbiB0aGUgbG9jYWxlIGRhdGEgaW4gdGhlIHN5c3Rl
bS4iKTsKK3ZhciBpbnB1dHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQi
KTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgaW5wdXRzLmxlbmd0aDsgKytpKSB7CisgICAgIGRlYnVn
KGlucHV0c1tpXS5sYW5nICsgJzogJyArIGdldFVzZXJBZ2VudFNoYWRvd1RleHRDb250ZW50KGlu
cHV0c1tpXSkpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMvZmFzdC9mb3Jtcy90aW1lLW11bHRp
cGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1sb2NhbGl6YXRpb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvZm9ybXMvdGltZS1tdWx0
aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtbG9jYWxpemF0aW9uLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wNDViZDhlNWJkNTZiYTdkOGM1YmRiNjZmMDFiZTI3ZTM4NTE4MzJjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3Qv
Zm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtbG9jYWxpemF0
aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIxIEBACitUZXN0cyB0aGUgdGltZSBmb3JtYXQg
Zm9yIHZhcmlvdXMgbG9jYWxlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIG5vICJGQUlM
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1RoZSBmb2xsb3dp
bmcgbGluZXMgZGVwZW5kIG9uIHRoZSBsb2NhbGUgZGF0YSBpbiB0aGUgc3lzdGVtLgorZW46IDAx
OjIzOjQ1LjEwMCBQTQorYXI6IDAxOjIzOjQ12asxMDAg2YUKK2ZyOiAxMzoyMzo0NSwxMDAKK2ph
OiAxMzoyMzo0NS4xMDAKK2tvOiDsmKTtm4QgMDE6MjM6NDUuMTAwCitjbjogMDE6MjM6NDUuMTAw
IFBNCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwor
CisKKworCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IGI0MjQwZjQ1NjQ4ZWRmNzM5YWZlMWFjM2QxYzMwY2YxMTA4NjE1YjAuLjIxNjhj
ZTgyMzU4OWE0YWRmZDgwNTc4NjA5Y2EzZTAxZTlkY2MyZjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTg3LDYgKzE4Nyw4IEBAIEJV
R1dLOTQ5MTYgU05PV0xFT1BBUkQgV0lOIExJTlVYIDogZmFzdC9mb3Jtcy9kYXRhbGlzdC9pbnB1
dC1hcHBlYXJhbmNlLXJhbmdlLXdpCiBCVUdXSzk0OTE2IFNOT1dMRU9QQVJEIFdJTiBMSU5VWCA6
IGZhc3QvZm9ybXMvZGF0YWxpc3QvaW5wdXQtYXBwZWFyYW5jZS1yYW5nZS13aXRoLXRyYW5zZm9y
bS5odG1sID0gTUlTU0lORyBJTUFHRQogQlVHV0s5NDkxNiBTTk9XTEVPUEFSRCBXSU4gTElOVVgg
OiBmYXN0L2Zvcm1zL2RhdGFsaXN0L2lucHV0LWFwcGVhcmFuY2UtcmFuZ2Utd2l0aC1kYXRhbGlz
dC16b29tZWQuaHRtbCA9IElNQUdFCiAKK0JVR1dLOTY3NTEgV0lOIExJTlVYIDogZmFzdC9mb3Jt
cy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1sb2NhbGl6YXRpb24u
aHRtbCA9IE1JU1NJTkcgVEVYVAorCiAvLyBQcm94aW1pdHkgRXZlbnRzIGlzIG5vdCBzdXBwb3J0
ZWQuCiBCVUdXSzkyOTQyIFNLSVAgOiBmYXN0L2RvbS9Qcm94aW1pdHkgPSBQQVNTCiBCVUdXSzky
OTQyIFNLSVAgOiBmYXN0L2V2ZW50cy9jb25zdHJ1Y3RvcnMvZGV2aWNlLXByb3hpbWl0eS1ldmVu
dC1jb25zdHJ1Y3Rvci5odG1sID0gUEFTUwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164109</attachid>
            <date>2012-09-14 05:00:05 -0700</date>
            <delta_ts>2012-09-14 05:40:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96728-20120914205937.patch</filename>
            <type>text/plain</type>
            <size>17134</size>
            <attacher name="Keishi Hattori">keishi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NTg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTMyNTU3ODQ4OWEyMzBl
NDc2YzhmNjQ0MzIzNjdiM2ZlYTdjZDY5Ny4uMzY5ZjY2YmMyOTgwOTUwMDI3NDM0YzFkMWYxOWZl
ZGE3N2ZjNGQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA5LTE1ICBLZWlz
aGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgdGltZSBpbnB1
dCBsYW5nIGF0dHJpYnV0ZSBhd2FyZSBmb3IgdGVzdGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY3MjgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgcGFydGlhbCBs
YW5nIGF0dHJpYnV0ZSBzdXBwb3J0IGZvciBpbnB1dCB0eXBlPXRpbWUKKyAgICAgICAgdGhhdCB0
dXJucyBvbiBvbmx5IHdoZW4gZW5hYmxlZCB0aHJvdWdoIEludGVybmFsU2V0dGluZ3MuCisKKyAg
ICAgICAgVGVzdDogZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxl
LWZpZWxkcy1sb2NhbGl6YXRpb24uaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpnZXRMb2NhbGl6ZXIpOiBSZXR1cm5zIGEgbG9j
YWxpemVyIGZvciBhIGdpdmVuIGxvY2FsZS4gTG9jYWxpemVycyBhcmUgY2FjaGVkIGZvciByZXBl
YXRlZCB1c2UuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRG9jdW1lbnQpOgorICAgICAgICAqIGh0bWwv
VGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjp1cGRh
dGVJbm5lclRleHRWYWx1ZSk6IFVzZSB0aGUgbG9jYWxlIGZvciB0aGUgaW5wdXQgZWxlbWVudC4K
KyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcDoKKyAgICAgICAg
KERhdGVUaW1lRWRpdEJ1aWxkZXIpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVFZGl0QnVp
bGRlcjo6RGF0ZVRpbWVFZGl0QnVpbGRlcik6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVk
aXRCdWlsZGVyOjp2aXNpdEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lRWRpdEVs
ZW1lbnQ6OmxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpz
ZXRWYWx1ZUFzRGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUVkaXRFbGVtZW50Ojpz
ZXRFbXB0eVZhbHVlKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKERhdGVUaW1lRWRpdEVsZW1lbnQpOgor
CiAyMDEyLTA5LTE0ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlZmFjdG9yIHRpbWUgZm9ybWF0IHJlbGF0ZWQgbWV0aG9kcyBvbiBMb2NhbGVXaW4vTWFj
L0lDVSBzbyB0aGF0IHRoZXkgb3ZlcnJpZGUgTG9jYWxpemVyIG1ldGhvZHMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKaW5kZXggMmVmOWU3ZjFhNzcyYTczNDg1Y2VlODA5OTdjZDBmZGI3NTI2YjAx
Ny4uMjYyNzIyNmVhNzI0YjNhMDAyNWY5MjFlMzg1MGMyOTEzM2Y2NjFkYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wOS0xMyAgS2Vpc2hpIEhhdHRv
cmkgIDxrZWlzaGlAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIHRpbWUgaW5wdXQgbGFuZyBh
dHRyaWJ1dGUgYXdhcmUgZm9yIHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk2NzI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy9Mb2NhbGl6ZWREYXRlSUNVVGVzdC5jcHA6CisgICAg
ICAgIChMb2NhbGl6ZWREYXRlSUNVVGVzdDo6bG9jYWxpemVkRGF0ZUZvcm1hdFRleHQpOgorICAg
ICAgICAoTG9jYWxpemVkRGF0ZUlDVVRlc3Q6OmxvY2FsaXplZFNob3J0RGF0ZUZvcm1hdFRleHQp
OgorCiAyMDEyLTA5LTE0ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJlZmFjdG9yIHRpbWUgZm9ybWF0IHJlbGF0ZWQgbWV0aG9kcyBvbiBMb2NhbGVXaW4v
TWFjL0lDVSBzbyB0aGF0IHRoZXkgb3ZlcnJpZGUgTG9jYWxpemVyIG1ldGhvZHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCmluZGV4IDQ5ODk2NzNhNjY0ZWNiZmYxZDNmMTQxZDM0ZjE2ZWE1ZGQ5MTMx
NTYuLjNhYzVkOWVjMDIzNzA3MjliNWU5MDk1ZTA3ODYzZjI1ZTJhYTM4ZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtMTA1LDYgKzEwNSw4IEBACiAjaW5jbHVkZSAiSW1hZ2VMb2FkZXIu
aCIKICNpbmNsdWRlICJJbnNwZWN0b3JDb3VudGVycy5oIgogI2luY2x1ZGUgIkluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisjaW5jbHVkZSAiTG9jYWxp
emVyLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlMaXN0Lmgi
CiAjaW5jbHVkZSAiTWVkaWFRdWVyeU1hdGNoZXIuaCIKQEAgLTEzMSw2ICsxMzMsNyBAQAogI2lu
Y2x1ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2lu
Y2x1ZGUgIlJlbmRlcldpZGdldC5oIgorI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMu
aCIKICNpbmNsdWRlICJTY2hlbWVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlNjb3BlZEV2ZW50UXVl
dWUuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKQEAgLTYzNjIsNCArNjM2NSwxNSBA
QCBQYXNzUmVmUHRyPEVsZW1lbnRBdHRyaWJ1dGVEYXRhPiBEb2N1bWVudDo6Y2FjaGVkSW1tdXRh
YmxlQXR0cmlidXRlRGF0YShjb25zdCBFbAogICAgIHJldHVybiBhdHRyaWJ1dGVEYXRhLnJlbGVh
c2UoKTsKIH0KIAorTG9jYWxpemVyJiBEb2N1bWVudDo6Z2V0TG9jYWxpemVyKGNvbnN0IEF0b21p
Y1N0cmluZyYgbG9jYWxlKQoreworICAgIEF0b21pY1N0cmluZyBsb2NhbGVLZXkgPSBsb2NhbGU7
CisgICAgaWYgKGxvY2FsZS5pc0VtcHR5KCkgfHwgIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6Omxh
bmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlFbmFibGVkKCkpCisgICAgICAgIGxvY2FsZUtl
eSA9IGRlZmF1bHRMYW5ndWFnZSgpOworICAgIExvY2FsZVRvTG9jYWxpemVyTWFwOjpBZGRSZXN1
bHQgcmVzdWx0ID0gbV9sb2NhbGl6ZXJDYWNoZS5hZGQobG9jYWxlS2V5LCBudWxscHRyKTsKKyAg
ICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCisgICAgICAgIHJlc3VsdC5pdGVyYXRvci0+c2Vjb25k
ID0gTG9jYWxpemVyOjpjcmVhdGUobG9jYWxlS2V5KTsKKyAgICByZXR1cm4gKihyZXN1bHQuaXRl
cmF0b3ItPnNlY29uZCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKaW5kZXggYTYwZTQ3NzVkNGEwNGYxMWFlNTJjODAyYzJmNGM2NzdkZDZlOWNhYy4uYWNi
YTA0YzAwNTQwYWM5YTk1ZmIwYmFlMzdkZDliYjgzYTlkZDExMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKQEAgLTEwOCw2ICsxMDgsNyBAQCBjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xhc3MgSW50UG9p
bnQ7CiBjbGFzcyBET01XcmFwcGVyV29ybGQ7CiBjbGFzcyBKU05vZGU7CitjbGFzcyBMb2NhbGl6
ZXI7CiBjbGFzcyBNZWRpYUNhblN0YXJ0TGlzdGVuZXI7CiBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsK
IGNsYXNzIE1lZGlhUXVlcnlNYXRjaGVyOwpAQCAtMTE5Miw2ICsxMTkzLDggQEAgcHVibGljOgog
CiAgICAgUGFzc1JlZlB0cjxFbGVtZW50QXR0cmlidXRlRGF0YT4gY2FjaGVkSW1tdXRhYmxlQXR0
cmlidXRlRGF0YShjb25zdCBFbGVtZW50KiwgY29uc3QgVmVjdG9yPEF0dHJpYnV0ZT4mKTsKIAor
ICAgIExvY2FsaXplciYgZ2V0TG9jYWxpemVyKGNvbnN0IEF0b21pY1N0cmluZyYgbG9jYWxlKTsK
KwogcHJvdGVjdGVkOgogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgS1VSTCYsIGJvb2wgaXNY
SFRNTCwgYm9vbCBpc0hUTUwpOwogCkBAIC0xNTgyLDYgKzE1ODUsOSBAQCBwcml2YXRlOgogI2lm
bmRlZiBOREVCVUcKICAgICBib29sIG1fZGlkRGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNDaGFu
Z2VkOwogI2VuZGlmCisKKyAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3RyaW5nLCBPd25QdHI8
TG9jYWxpemVyPiA+IExvY2FsZVRvTG9jYWxpemVyTWFwOworICAgIExvY2FsZVRvTG9jYWxpemVy
TWFwIG1fbG9jYWxpemVyQ2FjaGU7CiB9OwogCiBpbmxpbmUgdm9pZCBEb2N1bWVudDo6bm90aWZ5
UmVtb3ZlUGVuZGluZ1NoZWV0SWZOZWVkZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9UaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlw
ZS5jcHAKaW5kZXggYzdiOWMxMzg0YTVkODRmZDhmYTJlZWE5YWFmZTE5ZmM4NDc0ZTUzYS4uODgw
ZTQ0NzE5ODJkZDM1ZWRiMWYwMTIwNmRkNjZjYTQ3YzhiNjJlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RpbWVJbnB1dFR5cGUuY3BwCkBAIC0zMDIsMTMgKzMwMiwxNCBAQCB2b2lkIFRpbWVJbnB1dFR5
cGU6OnVwZGF0ZUlubmVyVGV4dFZhbHVlKCkKICAgICBpZiAoIW1fZGF0ZVRpbWVFZGl0RWxlbWVu
dCkKICAgICAgICAgcmV0dXJuOwogCisgICAgTG9jYWxpemVyJiBsb2NhbGl6ZXIgPSBlbGVtZW50
KCktPmRvY3VtZW50KCktPmdldExvY2FsaXplcihlbGVtZW50KCktPmNvbXB1dGVJbmhlcml0ZWRM
YW5ndWFnZSgpKTsKICAgICBjb25zdCBTdGVwUmFuZ2Ugc3RlcFJhbmdlKGNyZWF0ZVN0ZXBSYW5n
ZShBbnlJc0RlZmF1bHRTdGVwKSk7CiAgICAgRGF0ZUNvbXBvbmVudHMgZGF0ZTsKICAgICBpZiAo
cGFyc2VUb0RhdGVDb21wb25lbnRzKGVsZW1lbnQoKS0+dmFsdWUoKSwgJmRhdGUpKQotICAgICAg
ICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldFZhbHVlQXNEYXRlKHN0ZXBSYW5nZSwgZGF0ZSk7
CisgICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+c2V0VmFsdWVBc0RhdGUoc3RlcFJhbmdl
LCBkYXRlLCBsb2NhbGl6ZXIpOwogICAgIGVsc2UgewogICAgICAgICBzZXRNaWxsaXNlY29uZFRv
RGF0ZUNvbXBvbmVudHMoc3RlcFJhbmdlLm1pbmltdW0oKS50b0RvdWJsZSgpLCAmZGF0ZSk7Ci0g
ICAgICAgIG1fZGF0ZVRpbWVFZGl0RWxlbWVudC0+c2V0RW1wdHlWYWx1ZShzdGVwUmFuZ2UsIGRh
dGUpOworICAgICAgICBtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnNldEVtcHR5VmFsdWUoc3RlcFJh
bmdlLCBkYXRlLCBsb2NhbGl6ZXIpOwogICAgIH0KIH0KICNlbHNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCmluZGV4IDc2YTBhMjAz
ODdiNzVmZDJlOTE1NGQ4YjhlYThjYmI2NzE5ODNiOTAuLmU5YWE4NThjY2I4ZTBkNzNiMDhlZmQ2
ZjBkNTlmOGEyOGM1YmFhZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0RhdGVUaW1lRWRpdEVsZW1lbnQuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiS2V5
Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIkxvY2FsaXplZERhdGUuaCIKICNpbmNsdWRlICJMb2Nh
bGl6ZWROdW1iZXIuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZXIuaCIKICNpbmNsdWRlICJNb3VzZUV2
ZW50LmgiCiAjaW5jbHVkZSAiU3RlcFJhbmdlLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgpAQCAtNTEs
NyArNTIsNyBAQCBjbGFzcyBEYXRlVGltZUVkaXRCdWlsZGVyIDogcHJpdmF0ZSBEYXRlVGltZUZv
cm1hdDo6VG9rZW5IYW5kbGVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEYXRlVGltZUVk
aXRCdWlsZGVyKTsKIAogcHVibGljOgotICAgIERhdGVUaW1lRWRpdEJ1aWxkZXIoRGF0ZVRpbWVF
ZGl0RWxlbWVudCYsIGNvbnN0IFN0ZXBSYW5nZSYsIGNvbnN0IERhdGVDb21wb25lbnRzJik7Cisg
ICAgRGF0ZVRpbWVFZGl0QnVpbGRlcihEYXRlVGltZUVkaXRFbGVtZW50JiwgY29uc3QgU3RlcFJh
bmdlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmLCBMb2NhbGl6ZXImKTsKIAogICAgIGJvb2wgYnVp
bGQoY29uc3QgU3RyaW5nJik7CiAgICAgYm9vbCBuZWVkU2Vjb25kRmllbGQoKSBjb25zdDsKQEAg
LTcwLDEyICs3MSwxNCBAQCBwcml2YXRlOgogICAgIERhdGVUaW1lRWRpdEVsZW1lbnQmIG1fZWRp
dEVsZW1lbnQ7CiAgICAgY29uc3QgRGF0ZUNvbXBvbmVudHMmIG1fZGF0ZVZhbHVlOwogICAgIGNv
bnN0IFN0ZXBSYW5nZSYgbV9zdGVwUmFuZ2U7CisgICAgTG9jYWxpemVyJiBtX2xvY2FsaXplcjsK
IH07CiAKLURhdGVUaW1lRWRpdEJ1aWxkZXI6OkRhdGVUaW1lRWRpdEJ1aWxkZXIoRGF0ZVRpbWVF
ZGl0RWxlbWVudCYgZWxlbW50LCBjb25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5nZSwgY29uc3QgRGF0
ZUNvbXBvbmVudHMmIGRhdGVWYWx1ZSkKK0RhdGVUaW1lRWRpdEJ1aWxkZXI6OkRhdGVUaW1lRWRp
dEJ1aWxkZXIoRGF0ZVRpbWVFZGl0RWxlbWVudCYgZWxlbW50LCBjb25zdCBTdGVwUmFuZ2UmIHN0
ZXBSYW5nZSwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVWYWx1ZSwgTG9jYWxpemVyJiBsb2Nh
bGl6ZXIpCiAgICAgOiBtX2VkaXRFbGVtZW50KGVsZW1udCkKICAgICAsIG1fZGF0ZVZhbHVlKGRh
dGVWYWx1ZSkKICAgICAsIG1fc3RlcFJhbmdlKHN0ZXBSYW5nZSkKKyAgICAsIG1fbG9jYWxpemVy
KGxvY2FsaXplcikKIHsKIH0KIApAQCAtMTM2LDcgKzEzOSw3IEBAIHZvaWQgRGF0ZVRpbWVFZGl0
QnVpbGRlcjo6dmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlIGZpZWxkVHlwZSwg
aW50KQogICAgIH0KIAogICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlwZVBlcmlvZDoK
LSAgICAgICAgbV9lZGl0RWxlbWVudC5hZGRGaWVsZChEYXRlVGltZUFNUE1GaWVsZEVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCwgbV9lZGl0RWxlbWVudCwgdGltZUFNUE1MYWJlbHMoKSkpOworICAg
ICAgICBtX2VkaXRFbGVtZW50LmFkZEZpZWxkKERhdGVUaW1lQU1QTUZpZWxkRWxlbWVudDo6Y3Jl
YXRlKGRvY3VtZW50LCBtX2VkaXRFbGVtZW50LCBtX2xvY2FsaXplci50aW1lQU1QTUxhYmVscygp
KSk7CiAgICAgICAgIHJldHVybjsKIAogICAgIGNhc2UgRGF0ZVRpbWVGb3JtYXQ6OkZpZWxkVHlw
ZVNlY29uZDogewpAQCAtMTQ2LDcgKzE0OSw3IEBAIHZvaWQgRGF0ZVRpbWVFZGl0QnVpbGRlcjo6
dmlzaXRGaWVsZChEYXRlVGltZUZvcm1hdDo6RmllbGRUeXBlIGZpZWxkVHlwZSwgaW50KQogICAg
ICAgICAgICAgZmllbGQtPnNldFJlYWRPbmx5KCk7CiAKICAgICAgICAgaWYgKG5lZWRNaWxsaXNl
Y29uZEZpZWxkKCkpIHsKLSAgICAgICAgICAgIHZpc2l0TGl0ZXJhbChsb2NhbGl6ZWREZWNpbWFs
U2VwYXJhdG9yKCkpOworICAgICAgICAgICAgdmlzaXRMaXRlcmFsKG1fbG9jYWxpemVyLmxvY2Fs
aXplZERlY2ltYWxTZXBhcmF0b3IoKSk7CiAgICAgICAgICAgICB2aXNpdEZpZWxkKERhdGVUaW1l
Rm9ybWF0OjpGaWVsZFR5cGVGcmFjdGlvbmFsU2Vjb25kLCAzKTsKICAgICAgICAgfQogICAgICAg
ICByZXR1cm47CkBAIC0zMzcsMTQgKzM0MCwxNCBAQCBib29sIERhdGVUaW1lRWRpdEVsZW1lbnQ6
OmlzUmVhZE9ubHkoKSBjb25zdAogICAgIHJldHVybiBtX2VkaXRDb250cm9sT3duZXIgJiYgbV9l
ZGl0Q29udHJvbE93bmVyLT5pc0VkaXRDb250cm9sT3duZXJSZWFkT25seSgpOwogfQogCi12b2lk
IERhdGVUaW1lRWRpdEVsZW1lbnQ6OmxheW91dChjb25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5nZSwg
Y29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVWYWx1ZSkKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVu
dDo6bGF5b3V0KGNvbnN0IFN0ZXBSYW5nZSYgc3RlcFJhbmdlLCBjb25zdCBEYXRlQ29tcG9uZW50
cyYgZGF0ZVZhbHVlLCBMb2NhbGl6ZXImIGxvY2FsaXplcikKIHsKICAgICBzaXplX3QgZm9jdXNl
ZEZpZWxkSW5kZXggPSB0aGlzLT5mb2N1c2VkRmllbGRJbmRleCgpOwogICAgIERhdGVUaW1lRmll
bGRFbGVtZW50KiBjb25zdCBmb2N1c2VkRmllbGQgPSBmaWVsZEF0KGZvY3VzZWRGaWVsZEluZGV4
KTsKICAgICBjb25zdCBBdG9taWNTdHJpbmcgZm9jdXNlZEZpZWxkSWQgPSBmb2N1c2VkRmllbGQg
PyBmb2N1c2VkRmllbGQtPnNoYWRvd1BzZXVkb0lkKCkgOiBudWxsQXRvbTsKIAotICAgIERhdGVU
aW1lRWRpdEJ1aWxkZXIgYnVpbGRlcigqdGhpcywgc3RlcFJhbmdlLCBkYXRlVmFsdWUpOwotICAg
IGNvbnN0IFN0cmluZyBkYXRlVGltZUZvcm1hdCA9IGJ1aWxkZXIubmVlZFNlY29uZEZpZWxkKCkg
PyBsb2NhbGl6ZWRUaW1lRm9ybWF0VGV4dCgpIDogbG9jYWxpemVkU2hvcnRUaW1lRm9ybWF0VGV4
dCgpOworICAgIERhdGVUaW1lRWRpdEJ1aWxkZXIgYnVpbGRlcigqdGhpcywgc3RlcFJhbmdlLCBk
YXRlVmFsdWUsIGxvY2FsaXplcik7CisgICAgY29uc3QgU3RyaW5nIGRhdGVUaW1lRm9ybWF0ID0g
YnVpbGRlci5uZWVkU2Vjb25kRmllbGQoKSA/IGxvY2FsaXplci50aW1lRm9ybWF0KCkgOiBsb2Nh
bGl6ZXIuc2hvcnRUaW1lRm9ybWF0KCk7CiAgICAgTm9kZSogbGFzdENoaWxkVG9CZVJlbW92ZWQg
PSBsYXN0Q2hpbGQoKTsKICAgICBpZiAoIWJ1aWxkZXIuYnVpbGQoZGF0ZVRpbWVGb3JtYXQpIHx8
IG1fZmllbGRzLmlzRW1wdHkoKSkgewogICAgICAgICBsYXN0Q2hpbGRUb0JlUmVtb3ZlZCA9IGxh
c3RDaGlsZCgpOwpAQCAtNDA0LDkgKzQwNyw5IEBAIHZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6
ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgSFRNTERpdkVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogfQogCi12b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6
OnNldFZhbHVlQXNEYXRlKGNvbnN0IFN0ZXBSYW5nZSYgc3RlcFJhbmdlLCBjb25zdCBEYXRlQ29t
cG9uZW50cyYgZGF0ZSkKK3ZvaWQgRGF0ZVRpbWVFZGl0RWxlbWVudDo6c2V0VmFsdWVBc0RhdGUo
Y29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0IERhdGVDb21wb25lbnRzJiBkYXRlLCBM
b2NhbGl6ZXImIGxvY2FsaXplcikKIHsKLSAgICBsYXlvdXQoc3RlcFJhbmdlLCBkYXRlKTsKKyAg
ICBsYXlvdXQoc3RlcFJhbmdlLCBkYXRlLCBsb2NhbGl6ZXIpOwogICAgIGZvciAoc2l6ZV90IGZp
ZWxkSW5kZXggPSAwOyBmaWVsZEluZGV4IDwgbV9maWVsZHMuc2l6ZSgpOyArK2ZpZWxkSW5kZXgp
CiAgICAgICAgIG1fZmllbGRzW2ZpZWxkSW5kZXhdLT5zZXRWYWx1ZUFzRGF0ZShkYXRlKTsKIH0K
QEAgLTQxNyw5ICs0MjAsOSBAQCB2b2lkIERhdGVUaW1lRWRpdEVsZW1lbnQ6OnNldFZhbHVlQXNE
YXRlVGltZUZpZWxkc1N0YXRlKGNvbnN0IERhdGVUaW1lRmllbGRzU3RhdAogICAgICAgICBtX2Zp
ZWxkc1tmaWVsZEluZGV4XS0+c2V0VmFsdWVBc0RhdGVUaW1lRmllbGRzU3RhdGUoZGF0ZVRpbWVG
aWVsZHNTdGF0ZSwgZGF0ZUZvclJlYWRPbmx5RmllbGQpOwogfQogCi12b2lkIERhdGVUaW1lRWRp
dEVsZW1lbnQ6OnNldEVtcHR5VmFsdWUoY29uc3QgU3RlcFJhbmdlJiBzdGVwUmFuZ2UsIGNvbnN0
IERhdGVDb21wb25lbnRzJiBkYXRlRm9yUmVhZE9ubHlGaWVsZCkKK3ZvaWQgRGF0ZVRpbWVFZGl0
RWxlbWVudDo6c2V0RW1wdHlWYWx1ZShjb25zdCBTdGVwUmFuZ2UmIHN0ZXBSYW5nZSwgY29uc3Qg
RGF0ZUNvbXBvbmVudHMmIGRhdGVGb3JSZWFkT25seUZpZWxkLCBMb2NhbGl6ZXImIGxvY2FsaXpl
cikKIHsKLSAgICBsYXlvdXQoc3RlcFJhbmdlLCBkYXRlRm9yUmVhZE9ubHlGaWVsZCk7CisgICAg
bGF5b3V0KHN0ZXBSYW5nZSwgZGF0ZUZvclJlYWRPbmx5RmllbGQsIGxvY2FsaXplcik7CiAgICAg
Zm9yIChzaXplX3QgZmllbGRJbmRleCA9IDA7IGZpZWxkSW5kZXggPCBtX2ZpZWxkcy5zaXplKCk7
ICsrZmllbGRJbmRleCkKICAgICAgICAgbV9maWVsZHNbZmllbGRJbmRleF0tPnNldEVtcHR5VmFs
dWUoZGF0ZUZvclJlYWRPbmx5RmllbGQsIERhdGVUaW1lRmllbGRFbGVtZW50OjpEaXNwYXRjaE5v
RXZlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRp
bWVFZGl0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvRGF0ZVRpbWVFZGl0
RWxlbWVudC5oCmluZGV4IDA3NmFkOGI0OGQwNzllZjk1NTQ1ZjY5NDI4NzIwNmEwMjBmYjhiZWYu
LmMxN2JkN2E3YTA1NDFmNmMxZDgyYmFjYmQzMTdiZjFlZDQ3YWE1ODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0RhdGVUaW1lRWRpdEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9EYXRlVGltZUVkaXRFbGVtZW50LmgKQEAgLTM2LDYgKzM2
LDcgQEAgY2xhc3MgRGF0ZUNvbXBvbmVudHM7CiBjbGFzcyBEYXRlVGltZUVkaXRMYXlvdXRlcjsK
IGNsYXNzIERhdGVUaW1lRmllbGRzU3RhdGU7CiBjbGFzcyBLZXlib2FyZEV2ZW50OworY2xhc3Mg
TG9jYWxpemVyOwogY2xhc3MgTW91c2VFdmVudDsKIGNsYXNzIFN0ZXBSYW5nZTsKIApAQCAtNzAs
OCArNzEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWFkT25seVN0YXRlQ2hhbmdlZCgpOwogICAg
IHZvaWQgcmVtb3ZlRWRpdENvbnRyb2xPd25lcigpIHsgbV9lZGl0Q29udHJvbE93bmVyID0gMDsg
fQogICAgIHZvaWQgcmVzZXRGaWVsZHMoKTsKLSAgICB2b2lkIHNldEVtcHR5VmFsdWUoY29uc3Qg
U3RlcFJhbmdlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmICBkYXRlRm9yUmVhZE9ubHlGaWVsZCk7
Ci0gICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZShjb25zdCBTdGVwUmFuZ2UmLCBjb25zdCBEYXRlQ29t
cG9uZW50cyYpOworICAgIHZvaWQgc2V0RW1wdHlWYWx1ZShjb25zdCBTdGVwUmFuZ2UmLCBjb25z
dCBEYXRlQ29tcG9uZW50cyYgIGRhdGVGb3JSZWFkT25seUZpZWxkLCBMb2NhbGl6ZXImKTsKKyAg
ICB2b2lkIHNldFZhbHVlQXNEYXRlKGNvbnN0IFN0ZXBSYW5nZSYsIGNvbnN0IERhdGVDb21wb25l
bnRzJiwgTG9jYWxpemVyJik7CiAgICAgdm9pZCBzZXRWYWx1ZUFzRGF0ZVRpbWVGaWVsZHNTdGF0
ZShjb25zdCBEYXRlVGltZUZpZWxkc1N0YXRlJiwgY29uc3QgRGF0ZUNvbXBvbmVudHMmIGRhdGVG
b3JSZWFkT25seUZpZWxkKTsKICAgICBEYXRlVGltZUZpZWxkc1N0YXRlIHZhbHVlQXNEYXRlVGlt
ZUZpZWxkc1N0YXRlKCkgY29uc3Q7CiAgICAgZG91YmxlIHZhbHVlQXNEb3VibGUoKSBjb25zdDsK
QEAgLTk4LDcgKzk5LDcgQEAgcHJpdmF0ZToKICAgICBzaXplX3QgZm9jdXNlZEZpZWxkSW5kZXgo
KSBjb25zdDsKICAgICBib29sIGlzRGlzYWJsZWQoKSBjb25zdDsKICAgICBib29sIGlzUmVhZE9u
bHkoKSBjb25zdDsKLSAgICB2b2lkIGxheW91dChjb25zdCBTdGVwUmFuZ2UmLCBjb25zdCBEYXRl
Q29tcG9uZW50cyYpOworICAgIHZvaWQgbGF5b3V0KGNvbnN0IFN0ZXBSYW5nZSYsIGNvbnN0IERh
dGVDb21wb25lbnRzJiwgTG9jYWxpemVyJik7CiAgICAgdm9pZCB1cGRhdGVVSVN0YXRlKCk7CiAK
ICAgICAvLyBEYXRlVGltZUZpZWxkRWxlbWVudDo6RmllbGRPd25lciBmdW5jdGlvbnMuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNjg2MDQwYTk3NTg5MjljOTM2NWJiMDcyNWE5NGY5NGExZTUxYThkZi4uY2YxMTBmM2FiOTI5
ODRlODNiZjIyZTdhZWQ2YzAzYjk1YWQ5ZGQ1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEy
LTA5LTE1ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgorCisgICAgICAgIE1h
a2UgdGltZSBpbnB1dCBsYW5nIGF0dHJpYnV0ZSBhd2FyZSBmb3IgdGVzdGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY3MjgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZm9ybXMvcmVzb3Vy
Y2VzL2NvbW1vbi5qczoKKyAgICAgICAgKGdldFVzZXJBZ2VudFNoYWRvd1RleHRDb250ZW50KTog
VXNlZCB0byBnZXQgdGhlIHRleHQgaW5zaWRlIGFuIGlucHV0IGVsZW1lbnQuCisgICAgICAgICog
ZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1sb2Nh
bGl6YXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zh
c3QvZm9ybXMvdGltZS1tdWx0aXBsZS1maWVsZHMvdGltZS1tdWx0aXBsZS1maWVsZHMtbG9jYWxp
emF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMi0wOS0xNCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlz
dG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAgICAgIFtXSzJdW1dLVFJdIFRlc3RSdW5uZXIg
aXMgbm90IGR1bXBpbmcgc29tZSBmcmFtZSBsb2FkIGNhbGxiYWNrcyBpbmZvcm1hdGlvbgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvY29tbW9uLmpzIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvY29tbW9uLmpzCmluZGV4IGMyNTg4NDA0YjA5
YjBmYmU4NDUwMGIwNTY3NDM3MDg0YThjMDg3YWEuLjA2NjNjZTNjMTAwZDAzYjcwMzM1ZmE1MzMw
NzA5NTMzZjJmZjA1ZDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3Vy
Y2VzL2NvbW1vbi5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9jb21t
b24uanMKQEAgLTExNSwzICsxMTUsNyBAQCBmdW5jdGlvbiBtb3VzZU1vdmVUb0luZGV4SW5MaXN0
Ym94KGluZGV4LCBsaXN0Ym94SWQpIHsKICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKQogICAg
ICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhsaXN0Ym94Lm9mZnNldExlZnQgKyBib3JkZXIs
IGxpc3Rib3gub2Zmc2V0VG9wICsgeSAtIHdpbmRvdy5wYWdlWU9mZnNldCk7CiB9CisKK2Z1bmN0
aW9uIGdldFVzZXJBZ2VudFNoYWRvd1RleHRDb250ZW50KGVsZW1lbnQpIHsKKyAgICByZXR1cm4g
aW50ZXJuYWxzLnlvdW5nZXN0U2hhZG93Um9vdChlbGVtZW50KS50ZXh0Q29udGVudDsKK307CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3Rp
bWUtbXVsdGlwbGUtZmllbGRzLWxvY2FsaXphdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1sb2NhbGl6YXRp
b24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNmQxYjU5N2Q2MjZlZTQ2ZmE0OTU0YjZiZmI1MTlkNTBmNTlk
YTlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLW11bHRp
cGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1sb2NhbGl6YXRpb24uaHRtbApAQCAtMCww
ICsxLDMwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvY29tbW9uLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0TGFuZ0F0dHJpYnV0ZUF3YXJlRm9ybUNvbnRyb2xVSUVuYWJsZWQodHJ1ZSk7Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdiBpZD1jb25zb2xlPjwvZGl2PgorPGlucHV0IHR5
cGU9InRpbWUiIHZhbHVlPSIxMzoyMzo0NS4xIiBsYW5nPSJlbiIgLz48YnI+Cis8aW5wdXQgdHlw
ZT0idGltZSIgdmFsdWU9IjEzOjIzOjQ1LjEiIGxhbmc9ImFyIiAvPjxicj4KKzxpbnB1dCB0eXBl
PSJ0aW1lIiB2YWx1ZT0iMTM6MjM6NDUuMSIgbGFuZz0iZnIiIC8+PGJyPgorPGlucHV0IHR5cGU9
InRpbWUiIHZhbHVlPSIxMzoyMzo0NS4xIiBsYW5nPSJqYSIgLz48YnI+Cis8aW5wdXQgdHlwZT0i
dGltZSIgdmFsdWU9IjEzOjIzOjQ1LjEiIGxhbmc9ImtvIiAvPjxicj4KKzxpbnB1dCB0eXBlPSJ0
aW1lIiB2YWx1ZT0iMTM6MjM6NDUuMSIgbGFuZz0iY24iIC8+Cis8c2NyaXB0PgorZGVzY3JpcHRp
b24oIlRlc3RzIHRoZSB0aW1lIGZvcm1hdCBmb3IgdmFyaW91cyBsb2NhbGVzLiIsIHRydWUpOwor
ZGVidWcoIlRoZSBmb2xsb3dpbmcgbGluZXMgZGVwZW5kIG9uIHRoZSBsb2NhbGUgZGF0YSBpbiB0
aGUgc3lzdGVtLiIpOwordmFyIGlucHV0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1l
KCJpbnB1dCIpOworZm9yICh2YXIgaSA9IDA7IGkgPCBpbnB1dHMubGVuZ3RoOyArK2kpIHsKKyAg
ICAgZGVidWcoaW5wdXRzW2ldLmxhbmcgKyAnOiAnICsgZ2V0VXNlckFnZW50U2hhZG93VGV4dENv
bnRlbnQoaW5wdXRzW2ldKSk7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLW1hYy9mYXN0L2Zvcm1zL3Rp
bWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWxvY2FsaXphdGlvbi1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMvZmFzdC9mb3Jtcy90
aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1sb2NhbGl6YXRpb24tZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0NWJkOGU1YmQ1NmJhN2Q4YzViZGI2NmYwMWJlMjdlMzg1
MTgzMmMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1t
YWMvZmFzdC9mb3Jtcy90aW1lLW11bHRpcGxlLWZpZWxkcy90aW1lLW11bHRpcGxlLWZpZWxkcy1s
b2NhbGl6YXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKK1Rlc3RzIHRoZSB0aW1l
IGZvcm1hdCBmb3IgdmFyaW91cyBsb2NhbGVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
bm8gIkZBSUwiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGhl
IGZvbGxvd2luZyBsaW5lcyBkZXBlbmQgb24gdGhlIGxvY2FsZSBkYXRhIGluIHRoZSBzeXN0ZW0u
CitlbjogMDE6MjM6NDUuMTAwIFBNCithcjogMDE6MjM6NDXZqzEwMCDZhQorZnI6IDEzOjIzOjQ1
LDEwMAoramE6IDEzOjIzOjQ1LjEwMAora286IOyYpO2bhCAwMToyMzo0NS4xMDAKK2NuOiAwMToy
Mzo0NS4xMDAgUE0KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCisKKworCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggYjQyNDBmNDU2NDhlZGY3MzlhZmUxYWMzZDFjMzBjZjExMDg2MTVi
MC4uMjE2OGNlODIzNTg5YTRhZGZkODA1Nzg2MDljYTNlMDFlOWRjYzJmNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC0xODcsNiArMTg3
LDggQEAgQlVHV0s5NDkxNiBTTk9XTEVPUEFSRCBXSU4gTElOVVggOiBmYXN0L2Zvcm1zL2RhdGFs
aXN0L2lucHV0LWFwcGVhcmFuY2UtcmFuZ2Utd2kKIEJVR1dLOTQ5MTYgU05PV0xFT1BBUkQgV0lO
IExJTlVYIDogZmFzdC9mb3Jtcy9kYXRhbGlzdC9pbnB1dC1hcHBlYXJhbmNlLXJhbmdlLXdpdGgt
dHJhbnNmb3JtLmh0bWwgPSBNSVNTSU5HIElNQUdFCiBCVUdXSzk0OTE2IFNOT1dMRU9QQVJEIFdJ
TiBMSU5VWCA6IGZhc3QvZm9ybXMvZGF0YWxpc3QvaW5wdXQtYXBwZWFyYW5jZS1yYW5nZS13aXRo
LWRhdGFsaXN0LXpvb21lZC5odG1sID0gSU1BR0UKIAorQlVHV0s5Njc1MSBXSU4gTElOVVggOiBm
YXN0L2Zvcm1zL3RpbWUtbXVsdGlwbGUtZmllbGRzL3RpbWUtbXVsdGlwbGUtZmllbGRzLWxvY2Fs
aXphdGlvbi5odG1sID0gTUlTU0lORyBURVhUCisKIC8vIFByb3hpbWl0eSBFdmVudHMgaXMgbm90
IHN1cHBvcnRlZC4KIEJVR1dLOTI5NDIgU0tJUCA6IGZhc3QvZG9tL1Byb3hpbWl0eSA9IFBBU1MK
IEJVR1dLOTI5NDIgU0tJUCA6IGZhc3QvZXZlbnRzL2NvbnN0cnVjdG9ycy9kZXZpY2UtcHJveGlt
aXR5LWV2ZW50LWNvbnN0cnVjdG9yLmh0bWwgPSBQQVNTCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>