<?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>107770</bug_id>
          
          <creation_ts>2013-01-23 18:00:36 -0800</creation_ts>
          <short_desc>Add form-related instrumentations, and support 33+ features in FeatureObserver</short_desc>
          <delta_ts>2013-01-23 22:09:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>abarth</cc>
    
    <cc>haraken</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>814907</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-01-23 18:00:36 -0800</bug_when>
    <thetext>Add form-related instrumentations, and support 33+ features in FeatureObserver</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814917</commentid>
    <comment_count>1</comment_count>
      <attachid>184371</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-01-23 18:07:03 -0800</bug_when>
    <thetext>Created attachment 184371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814923</commentid>
    <comment_count>2</comment_count>
      <attachid>184371</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-23 18:15:52 -0800</bug_when>
    <thetext>Comment on attachment 184371
Patch

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

&gt; Source/WebCore/html/TelephoneInputType.cpp:43
&gt; +    FeatureObserver::observe(element-&gt;document()-&gt;domWindow(), FeatureObserver::InputTypeTel);

InputTypeTel =&gt; InputTypeTelephone ?

&gt; Source/WebCore/page/FeatureObserver.cpp:48
&gt; +    if (!m_hasNonZeroFeatureBits)

&apos;if (!m_featureBits.size())&apos; is slower than &apos;!m_hasNonZeroFeatureBits&apos; ?

If you need to use m_hasNonZeroFeatureBits for performance, let&apos;s rename it to m_hasFeatureBits (and flip true/false).

&gt; Source/WebCore/page/FeatureObserver.h:94
&gt; +        AutoFocusAttribute,
&gt; +        AutoSaveAttribute,
&gt; +        FormAttribute,
&gt; +        IncrementalAttribute,
&gt; +        ListAttribute,
&gt; +        MinAttribute,
&gt; +        MaxAttribute,
&gt; +        PatternAttribute,
&gt; +        PlaceholderAttribute,
&gt; +        PrecisionAttribute,
&gt; +        PrefixedDirectoryAttribute,
&gt; +        PrefixedSpeechAttribute,
&gt; +        RequiredAttribute,
&gt; +        ResultsAttribute,
&gt; +        StepAttribute,
&gt; +        DataListElement,
&gt; +        InputTypeColor,
&gt; +        InputTypeDate,
&gt; +        InputTypeDateTime,
&gt; +        InputTypeDateTimeFallback,
&gt; +        InputTypeDateTimeLocal,
&gt; +        InputTypeEmail,
&gt; +        InputTypeMonth,
&gt; +        InputTypeNumber,
&gt; +        InputTypeRange,
&gt; +        InputTypeSearch,
&gt; +        InputTypeTel,
&gt; +        InputTypeTime,
&gt; +        InputTypeURL,
&gt; +        InputTypeWeek,
&gt; +        InputTypeWeekFallback,

Shall we sort them in the alphabetical order?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814925</commentid>
    <comment_count>3</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-23 18:17:22 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; &apos;if (!m_featureBits.size())&apos; is slower than &apos;!m_hasNonZeroFeatureBits&apos; ?
&gt; 
&gt; If you need to use m_hasNonZeroFeatureBits for performance, let&apos;s rename it to m_hasFeatureBits (and flip true/false).

Ignore this part: &quot;(and flip true/false)&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814929</commentid>
    <comment_count>4</comment_count>
      <attachid>184371</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-01-23 18:20:15 -0800</bug_when>
    <thetext>Comment on attachment 184371
Patch

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

&gt;&gt; Source/WebCore/html/TelephoneInputType.cpp:43
&gt;&gt; +    FeatureObserver::observe(element-&gt;document()-&gt;domWindow(), FeatureObserver::InputTypeTel);
&gt; 
&gt; InputTypeTel =&gt; InputTypeTelephone ?

I think either is ok.  The class name is &quot;TelephoneInputTyp&quot;, but it represents &lt;input type=tel&gt;.

&gt;&gt; Source/WebCore/page/FeatureObserver.cpp:48
&gt;&gt; +    if (!m_hasNonZeroFeatureBits)
&gt; 
&gt; &apos;if (!m_featureBits.size())&apos; is slower than &apos;!m_hasNonZeroFeatureBits&apos; ?
&gt; 
&gt; If you need to use m_hasNonZeroFeatureBits for performance, let&apos;s rename it to m_hasFeatureBits (and flip true/false).

m_featureBits has a fixed size.  m_featureBits.size() is always true.

&gt;&gt; Source/WebCore/page/FeatureObserver.h:94
&gt;&gt; +        InputTypeWeekFallback,
&gt; 
&gt; Shall we sort them in the alphabetical order?

will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814932</commentid>
    <comment_count>5</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-23 18:26:19 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; If you need to use m_hasNonZeroFeatureBits for performance, let&apos;s rename it to m_hasFeatureBits (and flip true/false).
&gt; 
&gt; m_featureBits has a fixed size.  m_featureBits.size() is always true.

At first I thought it would be better to implement BitVector::isEmpty(), but it might be tricky to implement it without adding one extra bool to BitVector. So adding one bool to FeatureObserver makes sense to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814941</commentid>
    <comment_count>6</comment_count>
      <attachid>184375</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-01-23 18:36:36 -0800</bug_when>
    <thetext>Created attachment 184375
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814947</commentid>
    <comment_count>7</comment_count>
      <attachid>184375</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-23 18:42:18 -0800</bug_when>
    <thetext>Comment on attachment 184375
Patch 2

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

&gt; Source/WebCore/page/FeatureObserver.h:68
&gt; +        AutoFocusAttribute,
&gt; +        AutoSaveAttribute,
&gt; +        DataListElement,

Maybe we want to sort all items in the Feature enum? (If you want to keep all form-related features nearby each other, you can prefix them with &quot;Form&quot;.)

&gt; Source/WebCore/page/FeatureObserver.h:115
&gt; +    OwnPtr&lt;BitVector&gt; m_featureBits;

Even better!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814961</commentid>
    <comment_count>8</comment_count>
      <attachid>184375</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-01-23 19:09:31 -0800</bug_when>
    <thetext>Comment on attachment 184375
Patch 2

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

&gt;&gt; Source/WebCore/page/FeatureObserver.h:68
&gt;&gt; +        DataListElement,
&gt; 
&gt; Maybe we want to sort all items in the Feature enum? (If you want to keep all form-related features nearby each other, you can prefix them with &quot;Form&quot;.)

No. We shouldn&apos;t change integer values for existing features because the integer values are already being recorded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>814971</commentid>
    <comment_count>9</comment_count>
      <attachid>184375</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-23 19:27:35 -0800</bug_when>
    <thetext>Comment on attachment 184375
Patch 2

Makes sense to me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815007</commentid>
    <comment_count>10</comment_count>
      <attachid>184375</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-01-23 20:36:24 -0800</bug_when>
    <thetext>Comment on attachment 184375
Patch 2

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

&gt; Source/WebCore/html/ColorInputType.cpp:75
&gt; +    FeatureObserver::observe(element-&gt;document()-&gt;domWindow(), FeatureObserver::InputTypeColor);

element-&gt;document()-&gt;domWindow() is inefficient because FeatureObserver::observe obtains the Document from the DOMWindow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815034</commentid>
    <comment_count>11</comment_count>
      <attachid>184394</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-01-23 21:12:45 -0800</bug_when>
    <thetext>Created attachment 184394
Patch 3

Add Document* version of observe()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815039</commentid>
    <comment_count>12</comment_count>
      <attachid>184394</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-23 21:21:10 -0800</bug_when>
    <thetext>Comment on attachment 184394
Patch 3

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

&gt; Source/WebCore/page/FeatureObserver.h:98
&gt;          // Add new features above this line.

Also it might be better to mention that a new feature must be added at the last line so that we won&apos;t break already recorded results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815052</commentid>
    <comment_count>13</comment_count>
      <attachid>184398</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-01-23 21:39:50 -0800</bug_when>
    <thetext>Created attachment 184398
Patch for landign

Add a comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815069</commentid>
    <comment_count>14</comment_count>
      <attachid>184398</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-23 22:09:33 -0800</bug_when>
    <thetext>Comment on attachment 184398
Patch for landign

Clearing flags on attachment: 184398

Committed r140655: &lt;http://trac.webkit.org/changeset/140655&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815070</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-23 22:09:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184371</attachid>
            <date>2013-01-23 18:07:03 -0800</date>
            <delta_ts>2013-01-23 18:36:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-107770-20130124110355.patch</filename>
            <type>text/plain</type>
            <size>25313</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNmN2ZkMTIwOWZhMWU0
YWQ2ZWIzMzM1YWZjMWYwYmQ3NzdmN2MxOS4uNTY5Nzk0YzMzZGFiNjg2ZDYxZjE2Nzk1YzNkZDBl
ZTllM2YyNDQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDEzLTAxLTIzICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZm9ybS1yZWxhdGVk
IGluc3RydW1lbnRhdGlvbnMsIGFuZCBzdXBwb3J0IDMzKyBmZWF0dXJlcyBpbiBGZWF0dXJlT2Jz
ZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
Nzc3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4gVGhpcyBkb2Vzbid0IG1ha2UgYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAg
ICAqIHBhZ2UvRmVhdHVyZU9ic2VydmVyLmg6CisgICAgICAgIC0gQWRkIGZvcm0tcmVsYXRlZCBm
ZWF0dXJlcy4KKyAgICAgICAgLSBVc2UgQml0VmVjdG9yIHRvIHJlcHJlc2VudCBmZWF0dXJlcyB0
byBzdXBwb3J0IDMzKyBmZWF0dXJlcy4KKyAgICAgICAgLSBJbnRyb2R1Y2UgYSBmbGFnIHRvIGNo
ZWNrIGlmIHRoZSBCaXRWZWN0b3IgaGFzIG5vIHZhbHVlcy4KKyAgICAgICAgKFdlYkNvcmU6OkZl
YXR1cmVPYnNlcnZlcjo6ZGlkT2JzZXJ2ZSk6CisgICAgICAgIChGZWF0dXJlT2JzZXJ2ZXIpOgor
ICAgICAgICAqIHBhZ2UvRmVhdHVyZU9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZl
YXR1cmVPYnNlcnZlcjo6RmVhdHVyZU9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZlYXR1
cmVPYnNlcnZlcjo6fkZlYXR1cmVPYnNlcnZlcik6CisKKyAgICAgICAgKiBodG1sL0NvbG9ySW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpjcmVhdGUpOiBD
YWxscyBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUuCisgICAgICAgICogaHRtbC9EYXRlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVJbnB1dFR5cGU6OmNyZWF0ZSk6IERpdHRv
LgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZVRpbWVJbnB1dFR5cGU6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvRGF0
ZVRpbWVMb2NhbElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2Fs
SW5wdXRUeXBlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtYWlsSW5wdXRUeXBlOjpjcmVhdGUpOiBEaXR0by4K
KyAgICAgICAgKiBodG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTERhdGFMaXN0RWxlbWVudDo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmNyZWF0ZSk6CisgICAgICAgIFJlY29yZCB0
eXBlPWRhdGV0aW1lIGFuZCB0eXBlPXdlZWsgZXZlbiBpZiB0aGVzZSB0eXBlcyBhcmUgbm90IGVu
YWJsZWQuCisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpNb250aElucHV0VHlwZTo6Y3JlYXRlKTogQ2FsbHMgRmVhdHVyZU9ic2VydmVyOjpvYnNl
cnZlLgorICAgICAgICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok51bWJlcklucHV0VHlwZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9SYW5n
ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6Y3JlYXRl
KTogRGl0dG8uCisgICAgICAgICogaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2VhcmNoSW5wdXRUeXBlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1s
L1RlbGVwaG9uZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZWxlcGhvbmVJbnB1
dFR5cGU6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAg
ICAgKiBodG1sL1VSTElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVUkxJbnB1dFR5
cGU6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWVrSW5wdXRUeXBlOjpjcmVhdGUpOiBEaXR0by4KKwogMjAxMy0w
MS0yMyAgSGFucyBNdWxsZXIgIDxobXVsbGVyQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTIEV4
Y2x1c2lvbnNdIEFkZCBzdXBwb3J0IGZvciBjb21wdXRpbmcgZmlyc3QgaW5jbHVkZWQgaW50ZXJ2
YWwgcG9zaXRpb24gZm9yIHBvbHlnb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NvbG9ySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUu
Y3BwCmluZGV4IGQ5MjRjNmY1ZjY1M2Q1Y2UxZTlmZWVmZGIzN2VkZDVjN2ZiZmM2ZmEuLjJkOTI1
YmI4NzVjMGNmNzJkZmRkN2QxNTc2Y2RlMjdhYjg0ZTYxNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Q29sb3JJbnB1dFR5cGUuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ2hyb21lLmgi
CiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCisjaW5jbHVk
ZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5o
IgpAQCAtNzEsNiArNzIsNyBAQCBzdGF0aWMgYm9vbCBpc1ZhbGlkQ29sb3JTdHJpbmcoY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IENvbG9ySW5wdXRUeXBlOjpj
cmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6
Om9ic2VydmUoZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCksIEZlYXR1cmVPYnNlcnZl
cjo6SW5wdXRUeXBlQ29sb3IpOwogICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ29sb3JJbnB1dFR5
cGUoZWxlbWVudCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAppbmRl
eCBhNDYxMzEzZDA0ZTU3OTQ1NDNjM2MyNGNlOGZiM2JiZmJjNDNhZmEzLi45ZDA1ZDkzMDgxNGRh
YWYxOGU5ZTY3ODQ4ZDY3OTBjMTYxMDc0MzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0
VHlwZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFKQog
I2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZHNTdGF0
ZS5oIgorI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1l
cy5oIgpAQCAtNTgsNiArNTksNyBAQCBpbmxpbmUgRGF0ZUlucHV0VHlwZTo6RGF0ZUlucHV0VHlw
ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogCiBQYXNzT3duUHRyPElucHV0VHlwZT4gRGF0
ZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CisgICAgRmVh
dHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLCBG
ZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZURhdGUpOwogICAgIHJldHVybiBhZG9wdFB0cihuZXcg
RGF0ZUlucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGlt
ZUlucHV0VHlwZS5jcHAKaW5kZXggYmI0Yzc3NTBjMzEwYjc3OGU4NzY3YWQ1YzY3ZGQ1OWFhODll
NzNjNS4uM2I1OGZlN2FhZTBiYzY4NGU3MGMyNjllMWFhMzQ2ZjBhODBjYzZkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJEYXRlVGltZUlucHV0VHlwZS5oIgogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMu
aCIKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMu
aCIKQEAgLTU4LDYgKzU5LDcgQEAgc3RhdGljIGNvbnN0IGludCBkYXRlVGltZVN0ZXBTY2FsZUZh
Y3RvciA9IDEwMDA7CiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBEYXRlVGltZUlucHV0VHlwZTo6
Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CisgICAgRmVhdHVyZU9ic2VydmVy
OjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLCBGZWF0dXJlT2JzZXJ2
ZXI6OklucHV0VHlwZURhdGVUaW1lKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERhdGVUaW1l
SW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVMb2NhbElucHV0VHlwZS5jcHAKaW5kZXggYTIzYTAyZjhiN2UxYmNlODNjOGZlM2ZmNWJjYWUx
ZGJlMTMyMzkxNi4uY2Q0OGQ4YTU4MmVjMzUzZWMxYmY0MDhkZGNlODYwN2JjNzVmMzcwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIgogCiAjaW5j
bHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNp
bmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5j
bHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKQEAgLTU3LDYgKzU4LDcgQEAgc3RhdGljIGNvbnN0IGlu
dCBkYXRlVGltZUxvY2FsU3RlcFNjYWxlRmFjdG9yID0gMTAwMDsKIAogUGFzc093blB0cjxJbnB1
dFR5cGU+IERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBl
bGVtZW50KQogeworICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVu
dCgpLT5kb21XaW5kb3coKSwgRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVEYXRlVGltZUxvY2Fs
KTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERhdGVUaW1lTG9jYWxJbnB1dFR5cGUoZWxlbWVu
dCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCmluZGV4IGNhZDRh
M2UwYjU2NjAwOGE1ZWQyNjhmZGYxYWMwZjQ2NmUwMTY1N2UuLjk3ZjVkOWQ5NjJkYzA2Nzg2MmVm
NzUxMmI1M2YwYmI1OGFiZWQyYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1h
aWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUu
Y3BwCkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRW1h
aWxJbnB1dFR5cGUuaCIKIAorI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUg
IkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5j
bHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKQEAgLTU1LDYgKzU2LDcgQEAgc3RhdGljIGJvb2wgaXNW
YWxpZEVtYWlsQWRkcmVzcyhjb25zdCBTdHJpbmcmIGFkZHJlc3MpCiAKIFBhc3NPd25QdHI8SW5w
dXRUeXBlPiBFbWFpbElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQp
CiB7CisgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCktPmRv
bVdpbmRvdygpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZUVtYWlsKTsKICAgICByZXR1cm4g
YWRvcHRQdHIobmV3IEVtYWlsSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5jcHAKaW5kZXggZDZkY2IyOGQ3NjkwMjg1OTU2
NjFhZmQ5ZTQwOTZhZjU1ZTdlZDI1OC4uMGNmNDBhMWMxMzVmMjBiOTBlNWZlMjdjYWEyYzE2NTY2
NzQ3NmIxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuY3Bw
CkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVudC5oIgogCiAj
aWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSWRUYXJnZXRPYnNlcnZlclJlZ2lz
dHJ5LmgiCiAKQEAgLTQ1LDYgKzQ2LDcgQEAgaW5saW5lIEhUTUxEYXRhTGlzdEVsZW1lbnQ6OkhU
TUxEYXRhTGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG8KIAogUGFz
c1JlZlB0cjxIVE1MRGF0YUxpc3RFbGVtZW50PiBIVE1MRGF0YUxpc3RFbGVtZW50OjpjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQogeworICAg
IEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShkb2N1bWVudC0+ZG9tV2luZG93KCksIEZlYXR1cmVP
YnNlcnZlcjo6RGF0YUxpc3RFbGVtZW50KTsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxE
YXRhTGlzdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggNWE2NjE2ZDJmNGIwZGI2
N2YxMjI5ODRkZGE3NDk0OTc5YjczMGY2ZS4uMjM3YzM1OWJjODkzMTJkNDZhMGJhMTk3NzI2NjU2
YjE2NGEwZTU4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRl
ICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRmVh
dHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MRmllbGRT
ZXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCkBAIC0xMjIsOSArMTIz
LDEwIEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6YW5jZXN0b3JEaXNhYmxlZFN0YXRl
V2FzQ2hhbmdlZCgpCiAKIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkK
IHsKLSAgICBpZiAobmFtZSA9PSBmb3JtQXR0cikKKyAgICBpZiAobmFtZSA9PSBmb3JtQXR0cikg
ewogICAgICAgICBmb3JtQXR0cmlidXRlQ2hhbmdlZCgpOwotICAgIGVsc2UgaWYgKG5hbWUgPT0g
ZGlzYWJsZWRBdHRyKSB7CisgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShkb2N1bWVu
dCgpLT5kb21XaW5kb3coKSwgRmVhdHVyZU9ic2VydmVyOjpGb3JtQXR0cmlidXRlKTsKKyAgICB9
IGVsc2UgaWYgKG5hbWUgPT0gZGlzYWJsZWRBdHRyKSB7CiAgICAgICAgIGJvb2wgb2xkRGlzYWJs
ZWQgPSBtX2Rpc2FibGVkOwogICAgICAgICBtX2Rpc2FibGVkID0gIXZhbHVlLmlzTnVsbCgpOwog
ICAgICAgICBpZiAob2xkRGlzYWJsZWQgIT0gbV9kaXNhYmxlZCkKQEAgLTE0Myw2ICsxNDUsMTAg
QEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG8KICAgICAgICAgbV9pc1JlcXVpcmVkID0gIXZhbHVl
LmlzTnVsbCgpOwogICAgICAgICBpZiAod2FzUmVxdWlyZWQgIT0gbV9pc1JlcXVpcmVkKQogICAg
ICAgICAgICAgcmVxdWlyZWRBdHRyaWJ1dGVDaGFuZ2VkKCk7CisgICAgICAgIEZlYXR1cmVPYnNl
cnZlcjo6b2JzZXJ2ZShkb2N1bWVudCgpLT5kb21XaW5kb3coKSwgRmVhdHVyZU9ic2VydmVyOjpS
ZXF1aXJlZEF0dHJpYnV0ZSk7CisgICAgfSBlbHNlIGlmIChuYW1lID09IGF1dG9mb2N1c0F0dHIp
IHsKKyAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAg
ICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGRvY3VtZW50KCktPmRvbVdpbmRvdygpLCBG
ZWF0dXJlT2JzZXJ2ZXI6OkF1dG9Gb2N1c0F0dHJpYnV0ZSk7CiAgICAgfSBlbHNlCiAgICAgICAg
IEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAxZDdmZWJmNWM5Yjg3YzlhNTlkZWE1
ZjRkNTM1NDQwMGQ2NjUxNjNjLi4wZGRmNDdkYTM2OTUyMWJlMDBkYTI0MGQ2NGFiYTFkOTFjZTVl
M2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTM4LDYg
KzM4LDcgQEAKICNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2
ZXIuaCIKICNpbmNsdWRlICJGaWxlSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiRmlsZUxpc3QuaCIK
ICNpbmNsdWRlICJGb3JtQ29udHJvbGxlci5oIgpAQCAtNjI2LDYgKzYyNyw3IEBAIHZvaWQgSFRN
TElucHV0RWxlbWVudDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0
IEF0dHJpYnV0ZSYgYXR0CiAKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsK
KyAgICBET01XaW5kb3cqIGRvbVdpbmRvdyA9IGRvY3VtZW50KCktPmRvbVdpbmRvdygpOwogICAg
IGlmIChuYW1lID09IG5hbWVBdHRyKSB7CiAgICAgICAgIHJlbW92ZUZyb21SYWRpb0J1dHRvbkdy
b3VwKCk7CiAgICAgICAgIG1fbmFtZSA9IHZhbHVlOwpAQCAtNjk3LDIwICs2OTksMzUgQEAgdm9p
ZCBIVE1MSW5wdXRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9taWNTdHIKICAgICAgICAgaWYgKG1fbWF4UmVzdWx0cyAhPSBvbGRSZXN1
bHRzICYmIChtX21heFJlc3VsdHMgPD0gMCB8fCBvbGRSZXN1bHRzIDw9IDApKQogICAgICAgICAg
ICAgcmVhdHRhY2hJZkF0dGFjaGVkKCk7CiAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsK
LSAgICB9IGVsc2UgaWYgKG5hbWUgPT0gYXV0b3NhdmVBdHRyIHx8IG5hbWUgPT0gaW5jcmVtZW50
YWxBdHRyKQorICAgICAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZG9tV2luZG93LCBGZWF0
dXJlT2JzZXJ2ZXI6OlJlc3VsdHNBdHRyaWJ1dGUpOworICAgIH0gZWxzZSBpZiAobmFtZSA9PSBh
dXRvc2F2ZUF0dHIpIHsKICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwotICAgIGVsc2Ug
aWYgKG5hbWUgPT0gbWluQXR0ciB8fCBuYW1lID09IG1heEF0dHIpIHsKKyAgICAgICAgRmVhdHVy
ZU9ic2VydmVyOjpvYnNlcnZlKGRvbVdpbmRvdywgRmVhdHVyZU9ic2VydmVyOjpBdXRvU2F2ZUF0
dHJpYnV0ZSk7CisgICAgfSBlbHNlIGlmIChuYW1lID09IGluY3JlbWVudGFsQXR0cikgeworICAg
ICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CisgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2Jz
ZXJ2ZShkb21XaW5kb3csIEZlYXR1cmVPYnNlcnZlcjo6SW5jcmVtZW50YWxBdHRyaWJ1dGUpOwor
ICAgIH0gZWxzZSBpZiAobmFtZSA9PSBtaW5BdHRyKSB7CisgICAgICAgIG1faW5wdXRUeXBlLT5t
aW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQoKTsKKyAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNr
KCk7CisgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShkb21XaW5kb3csIEZlYXR1cmVP
YnNlcnZlcjo6TWluQXR0cmlidXRlKTsKKyAgICB9IGVsc2UgaWYgKG5hbWUgPT0gbWF4QXR0cikg
ewogICAgICAgICBtX2lucHV0VHlwZS0+bWluT3JNYXhBdHRyaWJ1dGVDaGFuZ2VkKCk7CiAgICAg
ICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOworICAgICAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9i
c2VydmUoZG9tV2luZG93LCBGZWF0dXJlT2JzZXJ2ZXI6Ok1heEF0dHJpYnV0ZSk7CiAgICAgfSBl
bHNlIGlmIChuYW1lID09IG11bHRpcGxlQXR0cikgewogICAgICAgICBtX2lucHV0VHlwZS0+bXVs
dGlwbGVBdHRyaWJ1dGVDaGFuZ2VkKCk7CiAgICAgICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygp
OwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBzdGVwQXR0cikgewogICAgICAgICBtX2lucHV0VHlw
ZS0+c3RlcEF0dHJpYnV0ZUNoYW5nZWQoKTsKICAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNr
KCk7Ci0gICAgfSBlbHNlIGlmIChuYW1lID09IHBhdHRlcm5BdHRyIHx8IG5hbWUgPT0gcHJlY2lz
aW9uQXR0cikKKyAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGRvbVdpbmRvdywgRmVh
dHVyZU9ic2VydmVyOjpTdGVwQXR0cmlidXRlKTsKKyAgICB9IGVsc2UgaWYgKG5hbWUgPT0gcGF0
dGVybkF0dHIpIHsKKyAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CisgICAgICAgIEZl
YXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShkb21XaW5kb3csIEZlYXR1cmVPYnNlcnZlcjo6UGF0dGVy
bkF0dHJpYnV0ZSk7CisgICAgfSBlbHNlIGlmIChuYW1lID09IHByZWNpc2lvbkF0dHIpIHsKICAg
ICAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7Ci0gICAgZWxzZSBpZiAobmFtZSA9PSBkaXNh
YmxlZEF0dHIpIHsKKyAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGRvbVdpbmRvdywg
RmVhdHVyZU9ic2VydmVyOjpQcmVjaXNpb25BdHRyaWJ1dGUpOworICAgIH0gZWxzZSBpZiAobmFt
ZSA9PSBkaXNhYmxlZEF0dHIpIHsKICAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKICAgICAgICAgbV9pbnB1dFR5cGUtPmRpc2Fi
bGVkQXR0cmlidXRlQ2hhbmdlZCgpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSByZWFkb25seUF0
dHIpIHsKQEAgLTcyNCw2ICs3NDEsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cgogICAgICAg
ICAgICAgcmVzZXRMaXN0QXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIoKTsKICAgICAgICAgICAgIGxp
c3RBdHRyaWJ1dGVUYXJnZXRDaGFuZ2VkKCk7CiAgICAgICAgIH0KKyAgICAgICAgRmVhdHVyZU9i
c2VydmVyOjpvYnNlcnZlKGRvbVdpbmRvdywgRmVhdHVyZU9ic2VydmVyOjpMaXN0QXR0cmlidXRl
KTsKICAgICB9CiAjZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQpAQCAtNzQyLDkgKzc2
MCwxNiBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cgogICAgICAgICB9CiAgICAgICAgIHNldEZv
cm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIoZmFsc2UpOwogICAgICAgICBzZXROZWVkc1N0
eWxlUmVjYWxjKCk7CisgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShkb21XaW5kb3cs
IEZlYXR1cmVPYnNlcnZlcjo6UHJlZml4ZWRTcGVlY2hBdHRyaWJ1dGUpOwogICAgIH0gZWxzZSBp
ZiAobmFtZSA9PSBvbndlYmtpdHNwZWVjaGNoYW5nZUF0dHIpCiAgICAgICAgIHNldEF0dHJpYnV0
ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLndlYmtpdHNwZWVjaGNoYW5nZUV2ZW50LCBjcmVh
dGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIG5hbWUsIHZhbHVlKSk7CiAjZW5kaWYKKyNp
ZiBFTkFCTEUoRElSRUNUT1JZX1VQTE9BRCkKKyAgICBlbHNlIGlmIChuYW1lID09IHdlYmtpdGRp
cmVjdG9yeUF0dHIpIHsKKyAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZl
KGRvbVdpbmRvdywgRmVhdHVyZU9ic2VydmVyOjpQcmVmaXhlZERpcmVjdG9yeUF0dHJpYnV0ZSk7
CisgICAgfQorI2VuZGlmCiAgICAgZWxzZQogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIG1faW5wdXRUeXBlLT51cGRh
dGVJbm5lclRleHRWYWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA4Y2MwMjlhMTllYTI3M2ZjN2FlYmZkOGU2ODEx
MzgwOTI4NjU4NGZhLi41NjA2NTM2NWM3Nzg0OTliYTI4Njk1MTg1MDVhNGI5ZmRlMTZmZDIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
LmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRmVhdHVyZU9ic2Vy
dmVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MQlJFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCkBAIC01MTAsOSArNTExLDEwIEBAIHZvaWQgSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNlbGVjdGlvbkNoYW5nZWQoYm9vbCB1c2VyVHJpZ2dl
cmVkKQogCiB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogewot
ICAgIGlmIChuYW1lID09IHBsYWNlaG9sZGVyQXR0cikKKyAgICBpZiAobmFtZSA9PSBwbGFjZWhv
bGRlckF0dHIpIHsKICAgICAgICAgdXBkYXRlUGxhY2Vob2xkZXJWaXNpYmlsaXR5KHRydWUpOwot
ICAgIGVsc2UgaWYgKG5hbWUgPT0gb25zZWxlY3RBdHRyKQorICAgICAgICBGZWF0dXJlT2JzZXJ2
ZXI6Om9ic2VydmUoZG9jdW1lbnQoKS0+ZG9tV2luZG93KCksIEZlYXR1cmVPYnNlcnZlcjo6UGxh
Y2Vob2xkZXJBdHRyaWJ1dGUpOworICAgIH0gZWxzZSBpZiAobmFtZSA9PSBvbnNlbGVjdEF0dHIp
CiAgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLnNlbGVjdEV2
ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIG5hbWUsIHZhbHVlKSk7CiAg
ICAgZWxzZSBpZiAobmFtZSA9PSBvbmNoYW5nZUF0dHIpCiAgICAgICAgIHNldEF0dHJpYnV0ZUV2
ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVu
dExpc3RlbmVyKHRoaXMsIG5hbWUsIHZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAK
aW5kZXggMmQ5NWYzMjllOTQzM2IxYWJhOTQ0NDk3N2ZiNzRkMjVlM2JkOThkYy4uMDZmOTAxMzRh
ZjIzODJjMmUyMTEwOGJjMjhkYTM4NzVhODU2MzE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmNwcApAQCAtMTQwLDggKzE0MCwxMyBAQCBQYXNzT3duUHRyPElucHV0VHlwZT4gSW5wdXRUeXBl
OjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCwgY29uc3QgU3RyaW5nJgogewogICAg
IHN0YXRpYyBjb25zdCBJbnB1dFR5cGVGYWN0b3J5TWFwKiBmYWN0b3J5TWFwID0gY3JlYXRlSW5w
dXRUeXBlRmFjdG9yeU1hcCgpLmxlYWtQdHIoKTsKICAgICBQYXNzT3duUHRyPElucHV0VHlwZT4g
KCpmYWN0b3J5KShIVE1MSW5wdXRFbGVtZW50KikgPSB0eXBlTmFtZS5pc0VtcHR5KCkgPyAwIDog
ZmFjdG9yeU1hcC0+Z2V0KHR5cGVOYW1lKTsKLSAgICBpZiAoIWZhY3RvcnkpCisgICAgaWYgKCFm
YWN0b3J5KSB7CiAgICAgICAgIGZhY3RvcnkgPSBUZXh0SW5wdXRUeXBlOjpjcmVhdGU7CisgICAg
ICAgIGlmICh0eXBlTmFtZSA9PSBJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWUoKSkKKyAgICAgICAg
ICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLT5kb21XaW5k
b3coKSwgRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVEYXRlVGltZUZhbGxiYWNrKTsKKyAgICAg
ICAgZWxzZSBpZiAodHlwZU5hbWUgPT0gSW5wdXRUeXBlTmFtZXM6OndlZWsoKSkKKyAgICAgICAg
ICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLT5kb21XaW5k
b3coKSwgRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVXZWVrRmFsbGJhY2spOworICAgIH0KICAg
ICByZXR1cm4gZmFjdG9yeShlbGVtZW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5w
dXRUeXBlLmNwcAppbmRleCBlODIyZmFjMjcyNDRiYTllMGQzMjFiZWM3YmM5ZmY5NTQyYWI0ZWY1
Li5lYTdhY2I5MjlkNTZlOWE0ZGU1ODIzYWNhMjhlZDcxYWM4MTgwNzIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIk1v
bnRoSW5wdXRUeXBlLmgiCiAKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUg
IkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgpAQCAtNTksNiAr
NjAsNyBAQCBzdGF0aWMgY29uc3QgaW50IG1vbnRoU3RlcFNjYWxlRmFjdG9yID0gMTsKIAogUGFz
c093blB0cjxJbnB1dFR5cGU+IE1vbnRoSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVu
dCogZWxlbWVudCkKIHsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZWxlbWVudC0+ZG9j
dW1lbnQoKS0+ZG9tV2luZG93KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlTW9udGgpOwog
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgTW9udGhJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKaW5kZXggZDUyMjc1YzVmOTQ1MjY4
MmE4NTYzNjNmYzcyYWQzMTViMjY1ZDQxMC4uNjA2OWJhZWM4Zjg2MmJkZjUzN2JlYjZjNDNmNmE1
MDhkN2I3NjIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcApAQCAt
MzQsNiArMzQsNyBAQAogCiAjaW5jbHVkZSAiQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaCIKICNp
bmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAj
aW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2lu
Y2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKQEAgLTk4LDYgKzk5LDcgQEAgc3RhdGljIFJlYWxO
dW1iZXJSZW5kZXJTaXplIGNhbGN1bGF0ZVJlbmRlclNpemUoY29uc3QgRGVjaW1hbCYgdmFsdWUp
CiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBOdW1iZXJJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5w
dXRFbGVtZW50KiBlbGVtZW50KQogeworICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVt
ZW50LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSwgRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVO
dW1iZXIpOwogICAgIHJldHVybiBhZG9wdFB0cihuZXcgTnVtYmVySW5wdXRUeXBlKGVsZW1lbnQp
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCBhYjExYzQ4
OWQ2OGZmMmUyMmExZjcxNmNlYjg1Y2VlMWE5M2MyYWE5Li4xMWQ2MzVhMmUxMjA4N2YxYWZhYTc4
MzZmOGIwMjZjYmNmZGFmNGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jhbmdl
SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNw
cApAQCAtMzQsNiArMzQsNyBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1
ZGUgIkVsZW1lbnRTaGFkb3cuaCIKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNs
dWRlICJIVE1MRGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTgxLDYgKzgyLDcgQEAgc3RhdGljIERlY2ltYWwgZW5z
dXJlTWF4aW11bShjb25zdCBEZWNpbWFsJiBwcm9wb3NlZFZhbHVlLCBjb25zdCBEZWNpbWFsJiBt
aW5pbXUKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IFJhbmdlSW5wdXRUeXBlOjpjcmVhdGUoSFRN
TElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUo
ZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRU
eXBlUmFuZ2UpOwogICAgIHJldHVybiBhZG9wdFB0cihuZXcgUmFuZ2VJbnB1dFR5cGUoZWxlbWVu
dCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKaW5kZXggZGQw
Y2Q2ZWFkMWQ2N2U0YmZlZTFmMjEzNGY4OWM2YjAwMTdjYWU2Mi4uZDRjNDg4YTRiZDU4YzZmYjk3
OWZiODdkOTBjNTYzOWNhMjBmNDg4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9T
ZWFyY2hJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRU
eXBlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IlNlYXJjaElucHV0VHlwZS5oIgogCisjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5j
bHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1
ZGUgIklucHV0VHlwZU5hbWVzLmgiCkBAIC01NCw2ICs1NSw3IEBAIGlubGluZSBTZWFyY2hJbnB1
dFR5cGU6OlNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogCiBQYXNz
T3duUHRyPElucHV0VHlwZT4gU2VhcmNoSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVu
dCogZWxlbWVudCkKIHsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZWxlbWVudC0+ZG9j
dW1lbnQoKS0+ZG9tV2luZG93KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlU2VhcmNoKTsK
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNlYXJjaElucHV0VHlwZShlbGVtZW50KSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcAppbmRleCBjY2EwMzY1
ZjUzNjU2NGVhNGMzYjFiNDc2NDA4N2QyZWQ3NmVkOWVlLi4yYTYwODdlNzg0MDg4OGE3NTM3ODBk
MjY5YjkxYzZmZTEzMjBmNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVw
aG9uZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1
dFR5cGUuY3BwCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiVGVsZXBob25lSW5wdXRUeXBlLmgiCiAKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIK
KyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMu
aCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC0zOCw2ICs0MCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IFRlbGVwaG9uZUlucHV0VHlw
ZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CisgICAgRmVhdHVyZU9ic2Vy
dmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLCBGZWF0dXJlT2Jz
ZXJ2ZXI6OklucHV0VHlwZVRlbCk7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBUZWxlcGhvbmVJ
bnB1dFR5cGUoZWxlbWVudCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNw
cAppbmRleCA1ZjUyMjc5NzdlMGVhMDcwMTg4NTNkYjUwYzE5ZGQ1N2Q4NmVkNGYyLi5mMWNmZjJi
NDhlNjc0NTVjMGRkMTdiZTMzZjAzYmU5MTE0YmM3OWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGlt
ZUlucHV0VHlwZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJUaW1lSW5wdXRUeXBl
LmgiCiAKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgIkZlYXR1cmVPYnNl
cnZlci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgpAQCAtNjMsNiArNjQsNyBAQCBUaW1l
SW5wdXRUeXBlOjpUaW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqICBlbGVtZW50KQogCiBQ
YXNzT3duUHRyPElucHV0VHlwZT4gVGltZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1l
bnQqIGVsZW1lbnQpCiB7CisgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRv
Y3VtZW50KCktPmRvbVdpbmRvdygpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZVRpbWUpOwog
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgVGltZUlucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNwcAppbmRleCBiNGE2ZDViYmIxMWE3MmM1Y2ZlOGJl
OTVlMDQ0M2I1MGUxYjU3OWQzLi5hZmFmODEwZGU0MWJkNTA2ZmNhYzE3NTk2MTIxNDVjN2RiY2Uy
YzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVVJMSW5wdXRUeXBlLmgiCiAKKyNpbmNs
dWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAj
aW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgi
CkBAIC00MSw2ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc093blB0cjxJbnB1
dFR5cGU+IFVSTElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7
CisgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCktPmRvbVdp
bmRvdygpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZVVSTCk7CiAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBVUkxJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVr
SW5wdXRUeXBlLmNwcAppbmRleCBjZDRjNjAxNDk4NDU4NDg1ZTRjOTAzYzBhODdiMmZlNzI3YjA5
ZjllLi4zNjc3YTcwOTFjMzQ2NzFjZmNjZjEzMTVkMGM2ZGYxZTViZWYxNDhhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJX
ZWVrSW5wdXRUeXBlLmgiCiAKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUg
IkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgpAQCAtNTUsNiAr
NTYsNyBAQCBzdGF0aWMgY29uc3QgaW50IHdlZWtTdGVwU2NhbGVGYWN0b3IgPSA2MDQ4MDAwMDA7
CiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBXZWVrSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0
RWxlbWVudCogZWxlbWVudCkKIHsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZWxlbWVu
dC0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlV2Vl
ayk7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWVrSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuY3BwCmluZGV4IDMxZDIyYzU1ZmI3
M2IyODNlZWNjYjA1OTdjNWY2YmQ0ZjY2ODJkMzAuLjQxNDZjYzVlMmRiYmVlOWNjZWMyZWY0YzRm
MTM5NTdmNWQxOGVlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVyZU9i
c2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5jcHAK
QEAgLTM0LDggKzM0LDEwIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZlYXR1cmVPYnNlcnZl
cjo6RmVhdHVyZU9ic2VydmVyKCkKLSAgICA6IG1fZmVhdHVyZU1hc2soMCkKKyAgICA6IG1fZmVh
dHVyZUJpdHMoTnVtYmVyT2ZGZWF0dXJlcykKKyAgICAsIG1faGFzTm9uWmVyb0ZlYXR1cmVCaXRz
KGZhbHNlKQogeworICAgIG1fZmVhdHVyZUJpdHMuY2xlYXJBbGwoKTsKIH0KIAogRmVhdHVyZU9i
c2VydmVyOjp+RmVhdHVyZU9ic2VydmVyKCkKQEAgLTQzLDExICs0NSwxMSBAQCBGZWF0dXJlT2Jz
ZXJ2ZXI6On5GZWF0dXJlT2JzZXJ2ZXIoKQogICAgIC8vIFdlIGFsd2F5cyBsb2cgUGFnZURlc3Ry
dWN0aW9uIHNvIHRoYXQgd2UgaGF2ZSBhIHNjYWxlIGZvciB0aGUgcmVzdCBvZiB0aGUgZmVhdHVy
ZXMuCiAgICAgSGlzdG9ncmFtU3VwcG9ydDo6aGlzdG9ncmFtRW51bWVyYXRpb24oIldlYkNvcmUu
RmVhdHVyZU9ic2VydmVyIiwgUGFnZURlc3RydWN0aW9uLCBOdW1iZXJPZkZlYXR1cmVzKTsKIAot
ICAgIGlmICghbV9mZWF0dXJlTWFzaykKKyAgICBpZiAoIW1faGFzTm9uWmVyb0ZlYXR1cmVCaXRz
KQogICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IE51bWJlck9mRmVh
dHVyZXM7ICsraSkgewotICAgICAgICBpZiAobV9mZWF0dXJlTWFzayAmICgxIDw8IGkpKQorICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBOdW1iZXJPZkZlYXR1cmVzOyArK2kpIHsKKyAgICAg
ICAgaWYgKG1fZmVhdHVyZUJpdHMucXVpY2tHZXQoaSkpCiAgICAgICAgICAgICBIaXN0b2dyYW1T
dXBwb3J0OjpoaXN0b2dyYW1FbnVtZXJhdGlvbigiV2ViQ29yZS5GZWF0dXJlT2JzZXJ2ZXIiLCBp
LCBOdW1iZXJPZkZlYXR1cmVzKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJlT2Jz
ZXJ2ZXIuaAppbmRleCA1ZTVjZGE3NGI4NzJlMjM4YzAyMzI5MzRlNjc1YWNlZjBjYzQwZjZmLi5h
MmY5YTdlZWIzYTNlMDIxODkyNGZhZWUxZjAyMDY5YzAwZmJiMjIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRmVhdHVyZU9ic2VydmVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgRmVhdHVyZU9i
c2VydmVyX2gKICNkZWZpbmUgRmVhdHVyZU9ic2VydmVyX2gKIAorI2luY2x1ZGUgPHd0Zi9CaXRW
ZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNjAsNiArNjEsMzcgQEAgcHVibGljOgogICAgICAgICBQcmVmaXhlZFRyYW5zaXRp
b25FbmRFdmVudCwKICAgICAgICAgVW5wcmVmaXhlZFRyYW5zaXRpb25FbmRFdmVudCwKICAgICAg
ICAgUHJlZml4ZWRBbmRVbnByZWZpeGVkVHJhbnNpdGlvbkVuZEV2ZW50LAorICAgICAgICBBdXRv
Rm9jdXNBdHRyaWJ1dGUsCisgICAgICAgIEF1dG9TYXZlQXR0cmlidXRlLAorICAgICAgICBGb3Jt
QXR0cmlidXRlLAorICAgICAgICBJbmNyZW1lbnRhbEF0dHJpYnV0ZSwKKyAgICAgICAgTGlzdEF0
dHJpYnV0ZSwKKyAgICAgICAgTWluQXR0cmlidXRlLAorICAgICAgICBNYXhBdHRyaWJ1dGUsCisg
ICAgICAgIFBhdHRlcm5BdHRyaWJ1dGUsCisgICAgICAgIFBsYWNlaG9sZGVyQXR0cmlidXRlLAor
ICAgICAgICBQcmVjaXNpb25BdHRyaWJ1dGUsCisgICAgICAgIFByZWZpeGVkRGlyZWN0b3J5QXR0
cmlidXRlLAorICAgICAgICBQcmVmaXhlZFNwZWVjaEF0dHJpYnV0ZSwKKyAgICAgICAgUmVxdWly
ZWRBdHRyaWJ1dGUsCisgICAgICAgIFJlc3VsdHNBdHRyaWJ1dGUsCisgICAgICAgIFN0ZXBBdHRy
aWJ1dGUsCisgICAgICAgIERhdGFMaXN0RWxlbWVudCwKKyAgICAgICAgSW5wdXRUeXBlQ29sb3Is
CisgICAgICAgIElucHV0VHlwZURhdGUsCisgICAgICAgIElucHV0VHlwZURhdGVUaW1lLAorICAg
ICAgICBJbnB1dFR5cGVEYXRlVGltZUZhbGxiYWNrLAorICAgICAgICBJbnB1dFR5cGVEYXRlVGlt
ZUxvY2FsLAorICAgICAgICBJbnB1dFR5cGVFbWFpbCwKKyAgICAgICAgSW5wdXRUeXBlTW9udGgs
CisgICAgICAgIElucHV0VHlwZU51bWJlciwKKyAgICAgICAgSW5wdXRUeXBlUmFuZ2UsCisgICAg
ICAgIElucHV0VHlwZVNlYXJjaCwKKyAgICAgICAgSW5wdXRUeXBlVGVsLAorICAgICAgICBJbnB1
dFR5cGVUaW1lLAorICAgICAgICBJbnB1dFR5cGVVUkwsCisgICAgICAgIElucHV0VHlwZVdlZWss
CisgICAgICAgIElucHV0VHlwZVdlZWtGYWxsYmFjaywKICAgICAgICAgLy8gQWRkIG5ldyBmZWF0
dXJlcyBhYm92ZSB0aGlzIGxpbmUuCiAgICAgICAgIE51bWJlck9mRmVhdHVyZXMsIC8vIFRoaXMg
ZW51bSB2YWx1ZSBtdXN0IGJlIGxhc3QuCiAgICAgfTsKQEAgLTY5LDEzICsxMDEsMTQgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICB2b2lkIGRpZE9ic2VydmUoRmVhdHVyZSBmZWF0dXJlKQogICAg
IHsKLSAgICAgICAgQ09NUElMRV9BU1NFUlQoc2l6ZW9mKG1fZmVhdHVyZU1hc2spICogOCA+PSBO
dW1iZXJPZkZlYXR1cmVzLCBGZWF0dXJlc011c3ROb3RPdmVyZmxvd0JpdG1hc2spOwogICAgICAg
ICBBU1NFUlQoZmVhdHVyZSAhPSBQYWdlRGVzdHJ1Y3Rpb24pOyAvLyBQYWdlRGVzdHJ1Y3Rpb24g
aXMgcmVzZXJ2ZWQgYXMgYSBzY2FsaW5nIGZhY3Rvci4KICAgICAgICAgQVNTRVJUKGZlYXR1cmUg
PCBOdW1iZXJPZkZlYXR1cmVzKTsKLSAgICAgICAgbV9mZWF0dXJlTWFzayB8PSAxIDw8IHN0YXRp
Y19jYXN0PGludD4oZmVhdHVyZSk7CisgICAgICAgIG1fZmVhdHVyZUJpdHMucXVpY2tTZXQoZmVh
dHVyZSk7CisgICAgICAgIG1faGFzTm9uWmVyb0ZlYXR1cmVCaXRzID0gdHJ1ZTsKICAgICB9CiAK
LSAgICBpbnQgbV9mZWF0dXJlTWFzazsKKyAgICBCaXRWZWN0b3IgbV9mZWF0dXJlQml0czsKKyAg
ICBib29sIG1faGFzTm9uWmVyb0ZlYXR1cmVCaXRzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184375</attachid>
            <date>2013-01-23 18:36:36 -0800</date>
            <delta_ts>2013-01-23 21:12:40 -0800</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-107770-20130124113328.patch</filename>
            <type>text/plain</type>
            <size>25233</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNmN2ZkMTIwOWZhMWU0
YWQ2ZWIzMzM1YWZjMWYwYmQ3NzdmN2MxOS4uYzNmNmVkMDcyZWVjNzg4ZTg1MDhiOWU2NzlhZWU1
ZmZiMzFiY2RlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEzLTAxLTIzICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZm9ybS1yZWxhdGVk
IGluc3RydW1lbnRhdGlvbnMsIGFuZCBzdXBwb3J0IDMzKyBmZWF0dXJlcyBpbiBGZWF0dXJlT2Jz
ZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
Nzc3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4gVGhpcyBkb2Vzbid0IG1ha2UgYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAg
ICAqIHBhZ2UvRmVhdHVyZU9ic2VydmVyLmg6CisgICAgICAgIC0gQWRkIGZvcm0tcmVsYXRlZCBm
ZWF0dXJlcy4KKyAgICAgICAgLSBVc2UgQml0VmVjdG9yIHRvIHJlcHJlc2VudCBmZWF0dXJlcyB0
byBzdXBwb3J0IDMzKyBmZWF0dXJlcy4KKyAgICAgICAgKFdlYkNvcmU6OkZlYXR1cmVPYnNlcnZl
cjo6ZGlkT2JzZXJ2ZSk6CisgICAgICAgIChGZWF0dXJlT2JzZXJ2ZXIpOgorICAgICAgICAqIHBh
Z2UvRmVhdHVyZU9ic2VydmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZlYXR1cmVPYnNlcnZl
cjo6RmVhdHVyZU9ic2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZlYXR1cmVPYnNlcnZlcjo6
fkZlYXR1cmVPYnNlcnZlcik6CisKKyAgICAgICAgKiBodG1sL0NvbG9ySW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpjcmVhdGUpOiBDYWxscyBGZWF0dXJl
T2JzZXJ2ZXI6Om9ic2VydmUuCisgICAgICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGVJbnB1dFR5cGU6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAq
IGh0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVJ
bnB1dFR5cGU6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElu
cHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpj
cmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVtYWlsSW5wdXRUeXBlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBo
dG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERhdGFM
aXN0RWxlbWVudDo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnB1dFR5cGU6OmNyZWF0ZSk6CisgICAgICAgIFJlY29yZCB0eXBlPWRhdGV0aW1l
IGFuZCB0eXBlPXdlZWsgZXZlbiBpZiB0aGVzZSB0eXBlcyBhcmUgbm90IGVuYWJsZWQuCisgICAg
ICAgICogaHRtbC9Nb250aElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb250aElu
cHV0VHlwZTo6Y3JlYXRlKTogQ2FsbHMgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlLgorICAgICAg
ICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok51bWJlcklu
cHV0VHlwZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6Y3JlYXRlKTogRGl0dG8uCisg
ICAgICAgICogaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Vh
cmNoSW5wdXRUeXBlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL1RlbGVwaG9uZUlu
cHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZWxlcGhvbmVJbnB1dFR5cGU6OmNyZWF0
ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL1VS
TElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpVUkxJbnB1dFR5cGU6OmNyZWF0ZSk6
IERpdHRvLgorICAgICAgICAqIGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWVrSW5wdXRUeXBlOjpjcmVhdGUpOiBEaXR0by4KKwogMjAxMy0wMS0yMyAgSGFucyBN
dWxsZXIgIDxobXVsbGVyQGFkb2JlLmNvbT4KIAogICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEFk
ZCBzdXBwb3J0IGZvciBjb21wdXRpbmcgZmlyc3QgaW5jbHVkZWQgaW50ZXJ2YWwgcG9zaXRpb24g
Zm9yIHBvbHlnb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRU
eXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4IGQ5
MjRjNmY1ZjY1M2Q1Y2UxZTlmZWVmZGIzN2VkZDVjN2ZiZmM2ZmEuLjJkOTI1YmI4NzVjMGNmNzJk
ZmRkN2QxNTc2Y2RlMjdhYjg0ZTYxNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
Q29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5
cGUuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAi
Q29sb3IuaCIKICNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCisjaW5jbHVkZSAiRmVhdHVyZU9i
c2VydmVyLmgiCiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgpAQCAtNzEsNiAr
NzIsNyBAQCBzdGF0aWMgYm9vbCBpc1ZhbGlkQ29sb3JTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1
ZSkKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IENvbG9ySW5wdXRUeXBlOjpjcmVhdGUoSFRNTElu
cHV0RWxlbWVudCogZWxlbWVudCkKIHsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZWxl
bWVudC0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBl
Q29sb3IpOwogICAgIHJldHVybiBhZG9wdFB0cihuZXcgQ29sb3JJbnB1dFR5cGUoZWxlbWVudCkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAppbmRleCBhNDYxMzEzZDA0
ZTU3OTQ1NDNjM2MyNGNlOGZiM2JiZmJjNDNhZmEzLi45ZDA1ZDkzMDgxNGRhYWYxOGU5ZTY3ODQ4
ZDY3OTBjMTYxMDc0MzYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKQEAg
LTM0LDYgKzM0LDcgQEAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFKQogI2luY2x1ZGUgIkRh
dGVDb21wb25lbnRzLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZHNTdGF0ZS5oIgorI2luY2x1
ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgpAQCAtNTgs
NiArNTksNyBAQCBpbmxpbmUgRGF0ZUlucHV0VHlwZTo6RGF0ZUlucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50KiBlbGVtZW50KQogCiBQYXNzT3duUHRyPElucHV0VHlwZT4gRGF0ZUlucHV0VHlwZTo6
Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CisgICAgRmVhdHVyZU9ic2VydmVy
OjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLCBGZWF0dXJlT2JzZXJ2
ZXI6OklucHV0VHlwZURhdGUpOwogICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGF0ZUlucHV0VHlw
ZShlbGVtZW50KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5j
cHAKaW5kZXggYmI0Yzc3NTBjMzEwYjc3OGU4NzY3YWQ1YzY3ZGQ1OWFhODllNzNjNS4uM2I1OGZl
N2FhZTBiYzY4NGU3MGMyNjllMWFhMzQ2ZjBhODBjYzZkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9EYXRlVGltZUlucHV0VHlwZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJEYXRl
VGltZUlucHV0VHlwZS5oIgogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRl
ICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKQEAgLTU4LDYg
KzU5LDcgQEAgc3RhdGljIGNvbnN0IGludCBkYXRlVGltZVN0ZXBTY2FsZUZhY3RvciA9IDEwMDA7
CiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBEYXRlVGltZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CisgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVs
ZW1lbnQtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlw
ZURhdGVUaW1lKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERhdGVUaW1lSW5wdXRUeXBlKGVs
ZW1lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0
VHlwZS5jcHAKaW5kZXggYTIzYTAyZjhiN2UxYmNlODNjOGZlM2ZmNWJjYWUxZGJlMTMyMzkxNi4u
Y2Q0OGQ4YTU4MmVjMzUzZWMxYmY0MDhkZGNlODYwN2JjNzVmMzcwYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIgogCiAjaW5jbHVkZSAiRGF0ZUNv
bXBvbmVudHMuaCIKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJIVE1M
SW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRU
eXBlTmFtZXMuaCIKQEAgLTU3LDYgKzU4LDcgQEAgc3RhdGljIGNvbnN0IGludCBkYXRlVGltZUxv
Y2FsU3RlcFNjYWxlRmFjdG9yID0gMTAwMDsKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IERhdGVU
aW1lTG9jYWxJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogewor
ICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLT5kb21XaW5k
b3coKSwgRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVEYXRlVGltZUxvY2FsKTsKICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IERhdGVUaW1lTG9jYWxJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCmluZGV4IGNhZDRhM2UwYjU2NjAwOGE1
ZWQyNjhmZGYxYWMwZjQ2NmUwMTY1N2UuLjk3ZjVkOWQ5NjJkYzA2Nzg2MmVmNzUxMmI1M2YwYmI1
OGFiZWQyYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwCkBAIC0yNCw2
ICsyNCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRW1haWxJbnB1dFR5cGUu
aCIKIAorI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSW5wdXRU
eXBlTmFtZXMuaCIKQEAgLTU1LDYgKzU2LDcgQEAgc3RhdGljIGJvb2wgaXNWYWxpZEVtYWlsQWRk
cmVzcyhjb25zdCBTdHJpbmcmIGFkZHJlc3MpCiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBFbWFp
bElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CisgICAgRmVh
dHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLCBG
ZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZUVtYWlsKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3
IEVtYWlsSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TERhdGFMaXN0RWxlbWVudC5jcHAKaW5kZXggZDZkY2IyOGQ3NjkwMjg1OTU2NjFhZmQ5ZTQwOTZh
ZjU1ZTdlZDI1OC4uMGNmNDBhMWMxMzVmMjBiOTBlNWZlMjdjYWEyYzE2NTY2NzQ3NmIxZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuY3BwCkBAIC0zMyw2ICsz
Myw3IEBACiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVudC5oIgogCiAjaWYgRU5BQkxFKERB
VEFMSVNUX0VMRU1FTlQpCisjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSWRUYXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmgiCiAKQEAg
LTQ1LDYgKzQ2LDcgQEAgaW5saW5lIEhUTUxEYXRhTGlzdEVsZW1lbnQ6OkhUTUxEYXRhTGlzdEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG8KIAogUGFzc1JlZlB0cjxIVE1M
RGF0YUxpc3RFbGVtZW50PiBIVE1MRGF0YUxpc3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50KQogeworICAgIEZlYXR1cmVPYnNl
cnZlcjo6b2JzZXJ2ZShkb2N1bWVudC0+ZG9tV2luZG93KCksIEZlYXR1cmVPYnNlcnZlcjo6RGF0
YUxpc3RFbGVtZW50KTsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxEYXRhTGlzdEVsZW1l
bnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggNWE2NjE2ZDJmNGIwZGI2N2YxMjI5ODRkZGE3
NDk0OTc5YjczMGY2ZS4uMjM3YzM1OWJjODkzMTJkNDZhMGJhMTk3NzI2NjU2YjE2NGEwZTU4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudEhhbmRs
ZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVy
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MRmllbGRTZXRFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCkBAIC0xMjIsOSArMTIzLDEwIEBAIHZvaWQg
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6YW5jZXN0b3JEaXNhYmxlZFN0YXRlV2FzQ2hhbmdlZCgp
CiAKIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBpZiAo
bmFtZSA9PSBmb3JtQXR0cikKKyAgICBpZiAobmFtZSA9PSBmb3JtQXR0cikgewogICAgICAgICBm
b3JtQXR0cmlidXRlQ2hhbmdlZCgpOwotICAgIGVsc2UgaWYgKG5hbWUgPT0gZGlzYWJsZWRBdHRy
KSB7CisgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShkb2N1bWVudCgpLT5kb21XaW5k
b3coKSwgRmVhdHVyZU9ic2VydmVyOjpGb3JtQXR0cmlidXRlKTsKKyAgICB9IGVsc2UgaWYgKG5h
bWUgPT0gZGlzYWJsZWRBdHRyKSB7CiAgICAgICAgIGJvb2wgb2xkRGlzYWJsZWQgPSBtX2Rpc2Fi
bGVkOwogICAgICAgICBtX2Rpc2FibGVkID0gIXZhbHVlLmlzTnVsbCgpOwogICAgICAgICBpZiAo
b2xkRGlzYWJsZWQgIT0gbV9kaXNhYmxlZCkKQEAgLTE0Myw2ICsxNDUsMTAgQEAgdm9pZCBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG8KICAgICAgICAgbV9pc1JlcXVpcmVkID0gIXZhbHVlLmlzTnVsbCgpOwog
ICAgICAgICBpZiAod2FzUmVxdWlyZWQgIT0gbV9pc1JlcXVpcmVkKQogICAgICAgICAgICAgcmVx
dWlyZWRBdHRyaWJ1dGVDaGFuZ2VkKCk7CisgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2
ZShkb2N1bWVudCgpLT5kb21XaW5kb3coKSwgRmVhdHVyZU9ic2VydmVyOjpSZXF1aXJlZEF0dHJp
YnV0ZSk7CisgICAgfSBlbHNlIGlmIChuYW1lID09IGF1dG9mb2N1c0F0dHIpIHsKKyAgICAgICAg
SFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgRmVhdHVy
ZU9ic2VydmVyOjpvYnNlcnZlKGRvY3VtZW50KCktPmRvbVdpbmRvdygpLCBGZWF0dXJlT2JzZXJ2
ZXI6OkF1dG9Gb2N1c0F0dHJpYnV0ZSk7CiAgICAgfSBlbHNlCiAgICAgICAgIEhUTUxFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcAppbmRleCAxZDdmZWJmNWM5Yjg3YzlhNTlkZWE1ZjRkNTM1NDQwMGQ2
NjUxNjNjLi4wZGRmNDdkYTM2OTUyMWJlMDBkYTI0MGQ2NGFiYTFkOTFjZTVlM2ZlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNp
bmNsdWRlICJFbGVtZW50U2hhZG93LmgiCiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1
ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNs
dWRlICJGaWxlSW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiRmlsZUxpc3QuaCIKICNpbmNsdWRlICJG
b3JtQ29udHJvbGxlci5oIgpAQCAtNjI2LDYgKzYyNyw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVu
dDo6Y29sbGVjdFN0eWxlRm9yUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYg
YXR0CiAKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKKyAgICBET01XaW5k
b3cqIGRvbVdpbmRvdyA9IGRvY3VtZW50KCktPmRvbVdpbmRvdygpOwogICAgIGlmIChuYW1lID09
IG5hbWVBdHRyKSB7CiAgICAgICAgIHJlbW92ZUZyb21SYWRpb0J1dHRvbkdyb3VwKCk7CiAgICAg
ICAgIG1fbmFtZSA9IHZhbHVlOwpAQCAtNjk3LDIwICs2OTksMzUgQEAgdm9pZCBIVE1MSW5wdXRF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9taWNTdHIKICAgICAgICAgaWYgKG1fbWF4UmVzdWx0cyAhPSBvbGRSZXN1bHRzICYmIChtX21h
eFJlc3VsdHMgPD0gMCB8fCBvbGRSZXN1bHRzIDw9IDApKQogICAgICAgICAgICAgcmVhdHRhY2hJ
ZkF0dGFjaGVkKCk7CiAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKLSAgICB9IGVsc2Ug
aWYgKG5hbWUgPT0gYXV0b3NhdmVBdHRyIHx8IG5hbWUgPT0gaW5jcmVtZW50YWxBdHRyKQorICAg
ICAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZG9tV2luZG93LCBGZWF0dXJlT2JzZXJ2ZXI6
OlJlc3VsdHNBdHRyaWJ1dGUpOworICAgIH0gZWxzZSBpZiAobmFtZSA9PSBhdXRvc2F2ZUF0dHIp
IHsKICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOwotICAgIGVsc2UgaWYgKG5hbWUgPT0g
bWluQXR0ciB8fCBuYW1lID09IG1heEF0dHIpIHsKKyAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpv
YnNlcnZlKGRvbVdpbmRvdywgRmVhdHVyZU9ic2VydmVyOjpBdXRvU2F2ZUF0dHJpYnV0ZSk7Cisg
ICAgfSBlbHNlIGlmIChuYW1lID09IGluY3JlbWVudGFsQXR0cikgeworICAgICAgICBzZXROZWVk
c1N0eWxlUmVjYWxjKCk7CisgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShkb21XaW5k
b3csIEZlYXR1cmVPYnNlcnZlcjo6SW5jcmVtZW50YWxBdHRyaWJ1dGUpOworICAgIH0gZWxzZSBp
ZiAobmFtZSA9PSBtaW5BdHRyKSB7CisgICAgICAgIG1faW5wdXRUeXBlLT5taW5Pck1heEF0dHJp
YnV0ZUNoYW5nZWQoKTsKKyAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CisgICAgICAg
IEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShkb21XaW5kb3csIEZlYXR1cmVPYnNlcnZlcjo6TWlu
QXR0cmlidXRlKTsKKyAgICB9IGVsc2UgaWYgKG5hbWUgPT0gbWF4QXR0cikgewogICAgICAgICBt
X2lucHV0VHlwZS0+bWluT3JNYXhBdHRyaWJ1dGVDaGFuZ2VkKCk7CiAgICAgICAgIHNldE5lZWRz
VmFsaWRpdHlDaGVjaygpOworICAgICAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZG9tV2lu
ZG93LCBGZWF0dXJlT2JzZXJ2ZXI6Ok1heEF0dHJpYnV0ZSk7CiAgICAgfSBlbHNlIGlmIChuYW1l
ID09IG11bHRpcGxlQXR0cikgewogICAgICAgICBtX2lucHV0VHlwZS0+bXVsdGlwbGVBdHRyaWJ1
dGVDaGFuZ2VkKCk7CiAgICAgICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwogICAgIH0gZWxz
ZSBpZiAobmFtZSA9PSBzdGVwQXR0cikgewogICAgICAgICBtX2lucHV0VHlwZS0+c3RlcEF0dHJp
YnV0ZUNoYW5nZWQoKTsKICAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7Ci0gICAgfSBl
bHNlIGlmIChuYW1lID09IHBhdHRlcm5BdHRyIHx8IG5hbWUgPT0gcHJlY2lzaW9uQXR0cikKKyAg
ICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGRvbVdpbmRvdywgRmVhdHVyZU9ic2VydmVy
OjpTdGVwQXR0cmlidXRlKTsKKyAgICB9IGVsc2UgaWYgKG5hbWUgPT0gcGF0dGVybkF0dHIpIHsK
KyAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CisgICAgICAgIEZlYXR1cmVPYnNlcnZl
cjo6b2JzZXJ2ZShkb21XaW5kb3csIEZlYXR1cmVPYnNlcnZlcjo6UGF0dGVybkF0dHJpYnV0ZSk7
CisgICAgfSBlbHNlIGlmIChuYW1lID09IHByZWNpc2lvbkF0dHIpIHsKICAgICAgICAgc2V0TmVl
ZHNWYWxpZGl0eUNoZWNrKCk7Ci0gICAgZWxzZSBpZiAobmFtZSA9PSBkaXNhYmxlZEF0dHIpIHsK
KyAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGRvbVdpbmRvdywgRmVhdHVyZU9ic2Vy
dmVyOjpQcmVjaXNpb25BdHRyaWJ1dGUpOworICAgIH0gZWxzZSBpZiAobmFtZSA9PSBkaXNhYmxl
ZEF0dHIpIHsKICAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKG5hbWUsIHZhbHVlKTsKICAgICAgICAgbV9pbnB1dFR5cGUtPmRpc2FibGVkQXR0cmlidXRl
Q2hhbmdlZCgpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSByZWFkb25seUF0dHIpIHsKQEAgLTcy
NCw2ICs3NDEsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cgogICAgICAgICAgICAgcmVzZXRM
aXN0QXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIoKTsKICAgICAgICAgICAgIGxpc3RBdHRyaWJ1dGVU
YXJnZXRDaGFuZ2VkKCk7CiAgICAgICAgIH0KKyAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNl
cnZlKGRvbVdpbmRvdywgRmVhdHVyZU9ic2VydmVyOjpMaXN0QXR0cmlidXRlKTsKICAgICB9CiAj
ZW5kaWYKICNpZiBFTkFCTEUoSU5QVVRfU1BFRUNIKQpAQCAtNzQyLDkgKzc2MCwxNiBAQCB2b2lk
IEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21pY1N0cgogICAgICAgICB9CiAgICAgICAgIHNldEZvcm1Db250cm9sVmFs
dWVNYXRjaGVzUmVuZGVyZXIoZmFsc2UpOwogICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7
CisgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShkb21XaW5kb3csIEZlYXR1cmVPYnNl
cnZlcjo6UHJlZml4ZWRTcGVlY2hBdHRyaWJ1dGUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBv
bndlYmtpdHNwZWVjaGNoYW5nZUF0dHIpCiAgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVu
ZXIoZXZlbnROYW1lcygpLndlYmtpdHNwZWVjaGNoYW5nZUV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVF
dmVudExpc3RlbmVyKHRoaXMsIG5hbWUsIHZhbHVlKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoRElS
RUNUT1JZX1VQTE9BRCkKKyAgICBlbHNlIGlmIChuYW1lID09IHdlYmtpdGRpcmVjdG9yeUF0dHIp
IHsKKyAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5h
bWUsIHZhbHVlKTsKKyAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGRvbVdpbmRvdywg
RmVhdHVyZU9ic2VydmVyOjpQcmVmaXhlZERpcmVjdG9yeUF0dHJpYnV0ZSk7CisgICAgfQorI2Vu
ZGlmCiAgICAgZWxzZQogICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUobmFtZSwgdmFsdWUpOwogICAgIG1faW5wdXRUeXBlLT51cGRhdGVJbm5lclRleHRW
YWx1ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xF
bGVtZW50LmNwcAppbmRleCA4Y2MwMjlhMTllYTI3M2ZjN2FlYmZkOGU2ODExMzgwOTI4NjU4NGZh
Li41NjA2NTM2NWM3Nzg0OTliYTI4Njk1MTg1MDVhNGI5ZmRlMTZmZDIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMzEs
NiArMzEsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MQlJFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TEZvcm1FbGVtZW50LmgiCkBAIC01MTAsOSArNTExLDEwIEBAIHZvaWQgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQ6OnNlbGVjdGlvbkNoYW5nZWQoYm9vbCB1c2VyVHJpZ2dlcmVkKQogCiB2b2lk
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogewotICAgIGlmIChuYW1l
ID09IHBsYWNlaG9sZGVyQXR0cikKKyAgICBpZiAobmFtZSA9PSBwbGFjZWhvbGRlckF0dHIpIHsK
ICAgICAgICAgdXBkYXRlUGxhY2Vob2xkZXJWaXNpYmlsaXR5KHRydWUpOwotICAgIGVsc2UgaWYg
KG5hbWUgPT0gb25zZWxlY3RBdHRyKQorICAgICAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUo
ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCksIEZlYXR1cmVPYnNlcnZlcjo6UGxhY2Vob2xkZXJBdHRy
aWJ1dGUpOworICAgIH0gZWxzZSBpZiAobmFtZSA9PSBvbnNlbGVjdEF0dHIpCiAgICAgICAgIHNl
dEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLnNlbGVjdEV2ZW50LCBjcmVhdGVB
dHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIG5hbWUsIHZhbHVlKSk7CiAgICAgZWxzZSBpZiAo
bmFtZSA9PSBvbmNoYW5nZUF0dHIpCiAgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIo
ZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRo
aXMsIG5hbWUsIHZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggMmQ5NWYz
MjllOTQzM2IxYWJhOTQ0NDk3N2ZiNzRkMjVlM2JkOThkYy4uMDZmOTAxMzRhZjIzODJjMmUyMTEw
OGJjMjhkYTM4NzVhODU2MzE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtMTQw
LDggKzE0MCwxMyBAQCBQYXNzT3duUHRyPElucHV0VHlwZT4gSW5wdXRUeXBlOjpjcmVhdGUoSFRN
TElucHV0RWxlbWVudCogZWxlbWVudCwgY29uc3QgU3RyaW5nJgogewogICAgIHN0YXRpYyBjb25z
dCBJbnB1dFR5cGVGYWN0b3J5TWFwKiBmYWN0b3J5TWFwID0gY3JlYXRlSW5wdXRUeXBlRmFjdG9y
eU1hcCgpLmxlYWtQdHIoKTsKICAgICBQYXNzT3duUHRyPElucHV0VHlwZT4gKCpmYWN0b3J5KShI
VE1MSW5wdXRFbGVtZW50KikgPSB0eXBlTmFtZS5pc0VtcHR5KCkgPyAwIDogZmFjdG9yeU1hcC0+
Z2V0KHR5cGVOYW1lKTsKLSAgICBpZiAoIWZhY3RvcnkpCisgICAgaWYgKCFmYWN0b3J5KSB7CiAg
ICAgICAgIGZhY3RvcnkgPSBUZXh0SW5wdXRUeXBlOjpjcmVhdGU7CisgICAgICAgIGlmICh0eXBl
TmFtZSA9PSBJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWUoKSkKKyAgICAgICAgICAgIEZlYXR1cmVP
YnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSwgRmVhdHVy
ZU9ic2VydmVyOjpJbnB1dFR5cGVEYXRlVGltZUZhbGxiYWNrKTsKKyAgICAgICAgZWxzZSBpZiAo
dHlwZU5hbWUgPT0gSW5wdXRUeXBlTmFtZXM6OndlZWsoKSkKKyAgICAgICAgICAgIEZlYXR1cmVP
YnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSwgRmVhdHVy
ZU9ic2VydmVyOjpJbnB1dFR5cGVXZWVrRmFsbGJhY2spOworICAgIH0KICAgICByZXR1cm4gZmFj
dG9yeShlbGVtZW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250
aElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcApp
bmRleCBlODIyZmFjMjcyNDRiYTllMGQzMjFiZWM3YmM5ZmY5NTQyYWI0ZWY1Li5lYTdhY2I5Mjlk
NTZlOWE0ZGU1ODIzYWNhMjhlZDcxYWM4MTgwNzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRo
SW5wdXRUeXBlLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIk1vbnRoSW5wdXRUeXBl
LmgiCiAKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgIkZlYXR1cmVPYnNl
cnZlci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgpAQCAtNTksNiArNjAsNyBAQCBzdGF0
aWMgY29uc3QgaW50IG1vbnRoU3RlcFNjYWxlRmFjdG9yID0gMTsKIAogUGFzc093blB0cjxJbnB1
dFR5cGU+IE1vbnRoSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkK
IHsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZG9t
V2luZG93KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlTW9udGgpOwogICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgTW9udGhJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL051bWJlcklucHV0VHlwZS5jcHAKaW5kZXggZDUyMjc1YzVmOTQ1MjY4MmE4NTYzNjNmYzcy
YWQzMTViMjY1ZDQxMC4uNjA2OWJhZWM4Zjg2MmJkZjUzN2JlYjZjNDNmNmE1MDhkN2I3NjIxNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcApAQCAtMzQsNiArMzQsNyBA
QAogCiAjaW5jbHVkZSAiQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaCIKICNpbmNsdWRlICJFeGNl
cHRpb25Db2RlLmgiCisjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSFRN
TElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQ
YXJzZXJJZGlvbXMuaCIKQEAgLTk4LDYgKzk5LDcgQEAgc3RhdGljIFJlYWxOdW1iZXJSZW5kZXJT
aXplIGNhbGN1bGF0ZVJlbmRlclNpemUoY29uc3QgRGVjaW1hbCYgdmFsdWUpCiAKIFBhc3NPd25Q
dHI8SW5wdXRUeXBlPiBOdW1iZXJJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBl
bGVtZW50KQogeworICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVu
dCgpLT5kb21XaW5kb3coKSwgRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVOdW1iZXIpOwogICAg
IHJldHVybiBhZG9wdFB0cihuZXcgTnVtYmVySW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCBhYjExYzQ4OWQ2OGZmMmUyMmEx
ZjcxNmNlYjg1Y2VlMWE5M2MyYWE5Li4xMWQ2MzVhMmUxMjA4N2YxYWZhYTc4MzZmOGIwMjZjYmNm
ZGFmNGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtMzQsNiAr
MzQsNyBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVsZW1lbnRT
aGFkb3cuaCIKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJIVE1MRGl2
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
TmFtZXMuaCIKQEAgLTgxLDYgKzgyLDcgQEAgc3RhdGljIERlY2ltYWwgZW5zdXJlTWF4aW11bShj
b25zdCBEZWNpbWFsJiBwcm9wb3NlZFZhbHVlLCBjb25zdCBEZWNpbWFsJiBtaW5pbXUKIAogUGFz
c093blB0cjxJbnB1dFR5cGU+IFJhbmdlSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVu
dCogZWxlbWVudCkKIHsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZWxlbWVudC0+ZG9j
dW1lbnQoKS0+ZG9tV2luZG93KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlUmFuZ2UpOwog
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgUmFuZ2VJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKaW5kZXggZGQwY2Q2ZWFkMWQ2N2U0
YmZlZTFmMjEzNGY4OWM2YjAwMTdjYWU2Mi4uZDRjNDg4YTRiZDU4YzZmYjk3OWZiODdkOTBjNTYz
OWNhMjBmNDg4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNlYXJjaElucHV0
VHlwZS5oIgogCisjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSFRNTElu
cHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlw
ZU5hbWVzLmgiCkBAIC01NCw2ICs1NSw3IEBAIGlubGluZSBTZWFyY2hJbnB1dFR5cGU6OlNlYXJj
aElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogCiBQYXNzT3duUHRyPElucHV0
VHlwZT4gU2VhcmNoSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkK
IHsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZG9t
V2luZG93KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlU2VhcmNoKTsKICAgICByZXR1cm4g
YWRvcHRQdHIobmV3IFNlYXJjaElucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcAppbmRleCBjY2EwMzY1ZjUzNjU2NGVhNGMz
YjFiNDc2NDA4N2QyZWQ3NmVkOWVlLi4yYTYwODdlNzg0MDg4OGE3NTM3ODBkMjY5YjkxYzZmZTEz
MjBmNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuY3BwCkBA
IC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGVsZXBob25l
SW5wdXRUeXBlLmgiCiAKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJI
VE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKICNpbmNsdWRl
IDx3dGYvUGFzc093blB0ci5oPgogCkBAIC0zOCw2ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IFRlbGVwaG9uZUlucHV0VHlwZTo6Y3JlYXRlKEhU
TUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CisgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZl
KGVsZW1lbnQtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0
VHlwZVRlbCk7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBUZWxlcGhvbmVJbnB1dFR5cGUoZWxl
bWVudCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCA1ZjUy
Mjc5NzdlMGVhMDcwMTg4NTNkYjUwYzE5ZGQ1N2Q4NmVkNGYyLi5mMWNmZjJiNDhlNjc0NTVjMGRk
MTdiZTMzZjAzYmU5MTE0YmM3OWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rp
bWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5j
cHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJUaW1lSW5wdXRUeXBlLmgiCiAKICNpbmNs
dWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2lu
Y2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNs
dWRlICJJbnB1dFR5cGVOYW1lcy5oIgpAQCAtNjMsNiArNjQsNyBAQCBUaW1lSW5wdXRUeXBlOjpU
aW1lSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqICBlbGVtZW50KQogCiBQYXNzT3duUHRyPElu
cHV0VHlwZT4gVGltZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQp
CiB7CisgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCktPmRv
bVdpbmRvdygpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZVRpbWUpOwogICAgIHJldHVybiBh
ZG9wdFB0cihuZXcgVGltZUlucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
VVJMSW5wdXRUeXBlLmNwcAppbmRleCBiNGE2ZDViYmIxMWE3MmM1Y2ZlOGJlOTVlMDQ0M2I1MGUx
YjU3OWQzLi5hZmFmODEwZGU0MWJkNTA2ZmNhYzE3NTk2MTIxNDVjN2RiY2UyYzliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiVVJMSW5wdXRUeXBlLmgiCiAKKyNpbmNsdWRlICJGZWF0dXJl
T2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5w
dXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCkBAIC00MSw2ICs0
Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IFVSTElu
cHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CisgICAgRmVhdHVy
ZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLCBGZWF0
dXJlT2JzZXJ2ZXI6OklucHV0VHlwZVVSTCk7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBVUkxJ
bnB1dFR5cGUoZWxlbWVudCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1dlZWtJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNw
cAppbmRleCBjZDRjNjAxNDk4NDU4NDg1ZTRjOTAzYzBhODdiMmZlNzI3YjA5ZjllLi4zNjc3YTcw
OTFjMzQ2NzFjZmNjZjEzMTVkMGM2ZGYxZTViZWYxNDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vl
a0lucHV0VHlwZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJXZWVrSW5wdXRUeXBl
LmgiCiAKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgIkZlYXR1cmVPYnNl
cnZlci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgpAQCAtNTUsNiArNTYsNyBAQCBzdGF0
aWMgY29uc3QgaW50IHdlZWtTdGVwU2NhbGVGYWN0b3IgPSA2MDQ4MDAwMDA7CiAKIFBhc3NPd25Q
dHI8SW5wdXRUeXBlPiBXZWVrSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxl
bWVudCkKIHsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZWxlbWVudC0+ZG9jdW1lbnQo
KS0+ZG9tV2luZG93KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlV2Vlayk7CiAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBXZWVrSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuY3BwCmluZGV4IDMxZDIyYzU1ZmI3M2IyODNlZWNjYjA1
OTdjNWY2YmQ0ZjY2ODJkMzAuLjg4ZDlmY2NhZGE4MzI5OWFiNjc5NjUwNDM1MTIxNTE5MWViN2Y1
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVyZU9ic2VydmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5jcHAKQEAgLTM0LDcgKzM0
LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRmVhdHVyZU9ic2VydmVyOjpGZWF0dXJlT2Jz
ZXJ2ZXIoKQotICAgIDogbV9mZWF0dXJlTWFzaygwKQogewogfQogCkBAIC00MywxMSArNDIsMTEg
QEAgRmVhdHVyZU9ic2VydmVyOjp+RmVhdHVyZU9ic2VydmVyKCkKICAgICAvLyBXZSBhbHdheXMg
bG9nIFBhZ2VEZXN0cnVjdGlvbiBzbyB0aGF0IHdlIGhhdmUgYSBzY2FsZSBmb3IgdGhlIHJlc3Qg
b2YgdGhlIGZlYXR1cmVzLgogICAgIEhpc3RvZ3JhbVN1cHBvcnQ6Omhpc3RvZ3JhbUVudW1lcmF0
aW9uKCJXZWJDb3JlLkZlYXR1cmVPYnNlcnZlciIsIFBhZ2VEZXN0cnVjdGlvbiwgTnVtYmVyT2ZG
ZWF0dXJlcyk7CiAKLSAgICBpZiAoIW1fZmVhdHVyZU1hc2spCisgICAgaWYgKCFtX2ZlYXR1cmVC
aXRzKQogICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKGludCBpID0gMDsgaSA8IE51bWJlck9m
RmVhdHVyZXM7ICsraSkgewotICAgICAgICBpZiAobV9mZWF0dXJlTWFzayAmICgxIDw8IGkpKQor
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBOdW1iZXJPZkZlYXR1cmVzOyArK2kpIHsKKyAg
ICAgICAgaWYgKG1fZmVhdHVyZUJpdHMtPnF1aWNrR2V0KGkpKQogICAgICAgICAgICAgSGlzdG9n
cmFtU3VwcG9ydDo6aGlzdG9ncmFtRW51bWVyYXRpb24oIldlYkNvcmUuRmVhdHVyZU9ic2VydmVy
IiwgaSwgTnVtYmVyT2ZGZWF0dXJlcyk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVy
ZU9ic2VydmVyLmgKaW5kZXggNWU1Y2RhNzRiODcyZTIzOGMwMjMyOTM0ZTY3NWFjZWYwY2M0MGY2
Zi4uYTA3YWFkN2MzZWExMjUyYjYwMzg1ODQ3ZTM1ZTY0MzVkYzRlYjVmNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5oCkBAIC0yNiw3ICsyNiwxMCBAQAogI2lmbmRlZiBGZWF0
dXJlT2JzZXJ2ZXJfaAogI2RlZmluZSBGZWF0dXJlT2JzZXJ2ZXJfaAogCisjaW5jbHVkZSA8d3Rm
L0JpdFZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTYwLDYgKzYzLDM3IEBAIHB1YmxpYzoKICAgICAgICAgUHJlZml4ZWRUcmFu
c2l0aW9uRW5kRXZlbnQsCiAgICAgICAgIFVucHJlZml4ZWRUcmFuc2l0aW9uRW5kRXZlbnQsCiAg
ICAgICAgIFByZWZpeGVkQW5kVW5wcmVmaXhlZFRyYW5zaXRpb25FbmRFdmVudCwKKyAgICAgICAg
QXV0b0ZvY3VzQXR0cmlidXRlLAorICAgICAgICBBdXRvU2F2ZUF0dHJpYnV0ZSwKKyAgICAgICAg
RGF0YUxpc3RFbGVtZW50LAorICAgICAgICBGb3JtQXR0cmlidXRlLAorICAgICAgICBJbmNyZW1l
bnRhbEF0dHJpYnV0ZSwKKyAgICAgICAgSW5wdXRUeXBlQ29sb3IsCisgICAgICAgIElucHV0VHlw
ZURhdGUsCisgICAgICAgIElucHV0VHlwZURhdGVUaW1lLAorICAgICAgICBJbnB1dFR5cGVEYXRl
VGltZUZhbGxiYWNrLAorICAgICAgICBJbnB1dFR5cGVEYXRlVGltZUxvY2FsLAorICAgICAgICBJ
bnB1dFR5cGVFbWFpbCwKKyAgICAgICAgSW5wdXRUeXBlTW9udGgsCisgICAgICAgIElucHV0VHlw
ZU51bWJlciwKKyAgICAgICAgSW5wdXRUeXBlUmFuZ2UsCisgICAgICAgIElucHV0VHlwZVNlYXJj
aCwKKyAgICAgICAgSW5wdXRUeXBlVGVsLAorICAgICAgICBJbnB1dFR5cGVUaW1lLAorICAgICAg
ICBJbnB1dFR5cGVVUkwsCisgICAgICAgIElucHV0VHlwZVdlZWssCisgICAgICAgIElucHV0VHlw
ZVdlZWtGYWxsYmFjaywKKyAgICAgICAgTGlzdEF0dHJpYnV0ZSwKKyAgICAgICAgTWF4QXR0cmli
dXRlLAorICAgICAgICBNaW5BdHRyaWJ1dGUsCisgICAgICAgIFBhdHRlcm5BdHRyaWJ1dGUsCisg
ICAgICAgIFBsYWNlaG9sZGVyQXR0cmlidXRlLAorICAgICAgICBQcmVjaXNpb25BdHRyaWJ1dGUs
CisgICAgICAgIFByZWZpeGVkRGlyZWN0b3J5QXR0cmlidXRlLAorICAgICAgICBQcmVmaXhlZFNw
ZWVjaEF0dHJpYnV0ZSwKKyAgICAgICAgUmVxdWlyZWRBdHRyaWJ1dGUsCisgICAgICAgIFJlc3Vs
dHNBdHRyaWJ1dGUsCisgICAgICAgIFN0ZXBBdHRyaWJ1dGUsCiAgICAgICAgIC8vIEFkZCBuZXcg
ZmVhdHVyZXMgYWJvdmUgdGhpcyBsaW5lLgogICAgICAgICBOdW1iZXJPZkZlYXR1cmVzLCAvLyBU
aGlzIGVudW0gdmFsdWUgbXVzdCBiZSBsYXN0LgogICAgIH07CkBAIC02OSwxMyArMTAzLDE2IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdm9pZCBkaWRPYnNlcnZlKEZlYXR1cmUgZmVhdHVyZSkK
ICAgICB7Ci0gICAgICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihtX2ZlYXR1cmVNYXNrKSAqIDgg
Pj0gTnVtYmVyT2ZGZWF0dXJlcywgRmVhdHVyZXNNdXN0Tm90T3ZlcmZsb3dCaXRtYXNrKTsKICAg
ICAgICAgQVNTRVJUKGZlYXR1cmUgIT0gUGFnZURlc3RydWN0aW9uKTsgLy8gUGFnZURlc3RydWN0
aW9uIGlzIHJlc2VydmVkIGFzIGEgc2NhbGluZyBmYWN0b3IuCiAgICAgICAgIEFTU0VSVChmZWF0
dXJlIDwgTnVtYmVyT2ZGZWF0dXJlcyk7Ci0gICAgICAgIG1fZmVhdHVyZU1hc2sgfD0gMSA8PCBz
dGF0aWNfY2FzdDxpbnQ+KGZlYXR1cmUpOworICAgICAgICBpZiAoIW1fZmVhdHVyZUJpdHMpIHsK
KyAgICAgICAgICAgIG1fZmVhdHVyZUJpdHMgPSBhZG9wdFB0cihuZXcgQml0VmVjdG9yKE51bWJl
ck9mRmVhdHVyZXMpKTsKKyAgICAgICAgICAgIG1fZmVhdHVyZUJpdHMtPmNsZWFyQWxsKCk7Cisg
ICAgICAgIH0KKyAgICAgICAgbV9mZWF0dXJlQml0cy0+cXVpY2tTZXQoZmVhdHVyZSk7CiAgICAg
fQogCi0gICAgaW50IG1fZmVhdHVyZU1hc2s7CisgICAgT3duUHRyPEJpdFZlY3Rvcj4gbV9mZWF0
dXJlQml0czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184394</attachid>
            <date>2013-01-23 21:12:45 -0800</date>
            <delta_ts>2013-01-23 21:39:47 -0800</delta_ts>
            <desc>Patch 3</desc>
            <filename>bug-107770-20130124140937.patch</filename>
            <type>text/plain</type>
            <size>25483</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNmN2ZkMTIwOWZhMWU0
YWQ2ZWIzMzM1YWZjMWYwYmQ3NzdmN2MxOS4uNDkxZWZiMjdkNmNjMWU5ZTU5NjRlOGUzMTVjMTNj
NzY0YWJlMWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEzLTAxLTIzICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZm9ybS1yZWxhdGVk
IGluc3RydW1lbnRhdGlvbnMsIGFuZCBzdXBwb3J0IDMzKyBmZWF0dXJlcyBpbiBGZWF0dXJlT2Jz
ZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
Nzc3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cy4gVGhpcyBkb2Vzbid0IG1ha2UgYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAg
ICAqIHBhZ2UvRmVhdHVyZU9ic2VydmVyLmg6CisgICAgICAgIC0gQWRkIGZvcm0tcmVsYXRlZCBm
ZWF0dXJlcy4KKyAgICAgICAgLSBBZGQgYSBEb2N1bWVudCogdmVyc2lvbiBvZiBvYnNlcnZlKCku
CisgICAgICAgIC0gVXNlIEJpdFZlY3RvciB0byByZXByZXNlbnQgZmVhdHVyZXMgdG8gc3VwcG9y
dCAzMysgZmVhdHVyZXMuCisgICAgICAgIChXZWJDb3JlOjpGZWF0dXJlT2JzZXJ2ZXI6OmRpZE9i
c2VydmUpOgorICAgICAgICAoRmVhdHVyZU9ic2VydmVyKToKKyAgICAgICAgKiBwYWdlL0ZlYXR1
cmVPYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZWF0dXJlT2JzZXJ2ZXI6OkZlYXR1
cmVPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpGZWF0dXJlT2JzZXJ2ZXI6On5GZWF0dXJl
T2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKToK
KworICAgICAgICAqIGh0bWwvQ29sb3JJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q29sb3JJbnB1dFR5cGU6OmNyZWF0ZSk6IENhbGxzIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZS4K
KyAgICAgICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
ZUlucHV0VHlwZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9EYXRlVGltZUlucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUlucHV0VHlwZTo6Y3JlYXRlKTog
RGl0dG8uCisgICAgICAgICogaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmNyZWF0ZSk6IERpdHRvLgorICAg
ICAgICAqIGh0bWwvRW1haWxJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RW1haWxJ
bnB1dFR5cGU6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTERhdGFMaXN0RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGF0YUxpc3RFbGVtZW50OjpjcmVhdGUp
OiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOiBE
aXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTElucHV0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOiBEaXR0by4KKyAgICAgICAg
KiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6IERpdHRvLgorICAg
ICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6
Y3JlYXRlKToKKyAgICAgICAgUmVjb3JkIHR5cGU9ZGF0ZXRpbWUgYW5kIHR5cGU9d2VlayBldmVu
IGlmIHRoZXNlIHR5cGVzIGFyZSBub3QgZW5hYmxlZC4KKyAgICAgICAgKiBodG1sL01vbnRoSW5w
dXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpjcmVhdGUpOiBD
YWxscyBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUuCisgICAgICAgICogaHRtbC9OdW1iZXJJbnB1
dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TnVtYmVySW5wdXRUeXBlOjpjcmVhdGUpOiBE
aXR0by4KKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJhbmdlSW5wdXRUeXBlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL1NlYXJj
aElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hJbnB1dFR5cGU6OmNyZWF0
ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlRlbGVwaG9uZUlucHV0VHlwZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAg
ICogaHRtbC9UaW1lSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5
cGU6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvVVJMSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlVSTElucHV0VHlwZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgICog
aHRtbC9XZWVrSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlZWtJbnB1dFR5cGU6
OmNyZWF0ZSk6IERpdHRvLgorCiAyMDEzLTAxLTIzICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRv
YmUuY29tPgogCiAgICAgICAgIFtDU1MgRXhjbHVzaW9uc10gQWRkIHN1cHBvcnQgZm9yIGNvbXB1
dGluZyBmaXJzdCBpbmNsdWRlZCBpbnRlcnZhbCBwb3NpdGlvbiBmb3IgcG9seWdvbnMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggZDkyNGM2ZjVmNjUzZDVjZTFlOWZl
ZWZkYjM3ZWRkNWM3ZmJmYzZmYS4uMjg5OGExZDZhMzI0ZjI4OTdkNGE1NmE1Y2U2MjkxMjUwYWVh
YTI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTM1LDYgKzM1
LDcgQEAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUg
IkVsZW1lbnRTaGFkb3cuaCIKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRl
ICJIVE1MRGF0YUxpc3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCkBAIC03MSw2ICs3Miw3IEBAIHN0YXRpYyBib29s
IGlzVmFsaWRDb2xvclN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKQogCiBQYXNzT3duUHRyPElu
cHV0VHlwZT4gQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50
KQogeworICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLCBG
ZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZUNvbG9yKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3
IENvbG9ySW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0
VHlwZS5jcHAKaW5kZXggYTQ2MTMxM2QwNGU1Nzk0NTQzYzNjMjRjZThmYjNiYmZiYzQzYWZhMy4u
MWZkNWUwZTRmOGI3YzI0MzJmNDQ0ZDczMTQ2Yjk4ZTZmOGJiMGIwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVJbnB1dFR5cGUuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaWYgRU5BQkxFKElOUFVU
X1RZUEVfREFURSkKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgogI2luY2x1ZGUgIkRhdGVU
aW1lRmllbGRzU3RhdGUuaCIKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRl
ICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAi
SW5wdXRUeXBlTmFtZXMuaCIKQEAgLTU4LDYgKzU5LDcgQEAgaW5saW5lIERhdGVJbnB1dFR5cGU6
OkRhdGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIAogUGFzc093blB0cjxJ
bnB1dFR5cGU+IERhdGVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50
KQogeworICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLCBG
ZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZURhdGUpOwogICAgIHJldHVybiBhZG9wdFB0cihuZXcg
RGF0ZUlucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGlt
ZUlucHV0VHlwZS5jcHAKaW5kZXggYmI0Yzc3NTBjMzEwYjc3OGU4NzY3YWQ1YzY3ZGQ1OWFhODll
NzNjNS4uMGNiOTNkMzc3MjRiZGY2NGNjMzQ0YWY1YzExZDgwMmMwNjI3Y2I5NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNp
bmNsdWRlICJEYXRlVGltZUlucHV0VHlwZS5oIgogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMu
aCIKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMu
aCIKQEAgLTU4LDYgKzU5LDcgQEAgc3RhdGljIGNvbnN0IGludCBkYXRlVGltZVN0ZXBTY2FsZUZh
Y3RvciA9IDEwMDA7CiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBEYXRlVGltZUlucHV0VHlwZTo6
Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CisgICAgRmVhdHVyZU9ic2VydmVy
OjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBl
RGF0ZVRpbWUpOwogICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGF0ZVRpbWVJbnB1dFR5cGUoZWxl
bWVudCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9j
YWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRU
eXBlLmNwcAppbmRleCBhMjNhMDJmOGI3ZTFiY2U4M2M4ZmUzZmY1YmNhZTFkYmUxMzIzOTE2Li45
MTY5OThiMjk5OWNkOTNmODc0YzJlOGEyZjc4MWY1MGNlYjg1YTFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAK
ICNpbmNsdWRlICJEYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgiCiAKICNpbmNsdWRlICJEYXRlQ29t
cG9uZW50cy5oIgorI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkhUTUxJ
bnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5
cGVOYW1lcy5oIgpAQCAtNTcsNiArNTgsNyBAQCBzdGF0aWMgY29uc3QgaW50IGRhdGVUaW1lTG9j
YWxTdGVwU2NhbGVGYWN0b3IgPSAxMDAwOwogCiBQYXNzT3duUHRyPElucHV0VHlwZT4gRGF0ZVRp
bWVMb2NhbElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7Cisg
ICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCksIEZlYXR1cmVP
YnNlcnZlcjo6SW5wdXRUeXBlRGF0ZVRpbWVMb2NhbCk7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBEYXRlVGltZUxvY2FsSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0VtYWlsSW5wdXRUeXBlLmNwcAppbmRleCBjYWQ0YTNlMGI1NjYwMDhhNWVkMjY4ZmRmMWFjMGY0
NjZlMDE2NTdlLi4yN2VkMGNmNDAxMzA0M2ZlNmE5OGNhOTc0YjY1MDhlMGIzNGJmNzk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcApAQCAtMjQsNiArMjQsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkVtYWlsSW5wdXRUeXBlLmgiCiAKKyNpbmNsdWRl
ICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCkBA
IC01NSw2ICs1Niw3IEBAIHN0YXRpYyBib29sIGlzVmFsaWRFbWFpbEFkZHJlc3MoY29uc3QgU3Ry
aW5nJiBhZGRyZXNzKQogCiBQYXNzT3duUHRyPElucHV0VHlwZT4gRW1haWxJbnB1dFR5cGU6OmNy
ZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogeworICAgIEZlYXR1cmVPYnNlcnZlcjo6
b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZUVt
YWlsKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEVtYWlsSW5wdXRUeXBlKGVsZW1lbnQpKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5jcHAKaW5kZXgg
ZDZkY2IyOGQ3NjkwMjg1OTU2NjFhZmQ5ZTQwOTZhZjU1ZTdlZDI1OC4uN2ZhZDRjYjYxZjcxODYx
ZGYyZGJhODM2MGQ2ZTRlOWE5ODhlMTM1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MRGF0YUxpc3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxE
YXRhTGlzdEVsZW1lbnQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSFRNTERhdGFM
aXN0RWxlbWVudC5oIgogCiAjaWYgRU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCisjaW5jbHVkZSAi
RmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSWRU
YXJnZXRPYnNlcnZlclJlZ2lzdHJ5LmgiCiAKQEAgLTQ1LDYgKzQ2LDcgQEAgaW5saW5lIEhUTUxE
YXRhTGlzdEVsZW1lbnQ6OkhUTUxEYXRhTGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
dGFnTmFtZSwgRG8KIAogUGFzc1JlZlB0cjxIVE1MRGF0YUxpc3RFbGVtZW50PiBIVE1MRGF0YUxp
c3RFbGVtZW50OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQq
IGRvY3VtZW50KQogeworICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShkb2N1bWVudCwgRmVh
dHVyZU9ic2VydmVyOjpEYXRhTGlzdEVsZW1lbnQpOwogICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SFRNTERhdGFMaXN0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCkpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAppbmRleCA1YTY2MTZkMmY0
YjBkYjY3ZjEyMjk4NGRkYTc0OTQ5NzliNzMwZjZlLi4xODVkOWQwNGRlOTkyMDYxYjE4NTc4MjZl
ODk1MGI2YzFhMjQ4YWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJFdmVudC5oIgogI2lu
Y2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRl
ICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxG
aWVsZFNldEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKQEAgLTEyMiw5
ICsxMjMsMTAgQEAgdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjphbmNlc3RvckRpc2FibGVk
U3RhdGVXYXNDaGFuZ2VkKCkKIAogdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZh
bHVlKQogewotICAgIGlmIChuYW1lID09IGZvcm1BdHRyKQorICAgIGlmIChuYW1lID09IGZvcm1B
dHRyKSB7CiAgICAgICAgIGZvcm1BdHRyaWJ1dGVDaGFuZ2VkKCk7Ci0gICAgZWxzZSBpZiAobmFt
ZSA9PSBkaXNhYmxlZEF0dHIpIHsKKyAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGRv
Y3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6Rm9ybUF0dHJpYnV0ZSk7CisgICAgfSBlbHNlIGlm
IChuYW1lID09IGRpc2FibGVkQXR0cikgewogICAgICAgICBib29sIG9sZERpc2FibGVkID0gbV9k
aXNhYmxlZDsKICAgICAgICAgbV9kaXNhYmxlZCA9ICF2YWx1ZS5pc051bGwoKTsKICAgICAgICAg
aWYgKG9sZERpc2FibGVkICE9IG1fZGlzYWJsZWQpCkBAIC0xNDMsNiArMTQ1LDEwIEBAIHZvaWQg
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvCiAgICAgICAgIG1faXNSZXF1aXJlZCA9ICF2YWx1ZS5pc051bGwo
KTsKICAgICAgICAgaWYgKHdhc1JlcXVpcmVkICE9IG1faXNSZXF1aXJlZCkKICAgICAgICAgICAg
IHJlcXVpcmVkQXR0cmlidXRlQ2hhbmdlZCgpOworICAgICAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9i
c2VydmUoZG9jdW1lbnQoKSwgRmVhdHVyZU9ic2VydmVyOjpSZXF1aXJlZEF0dHJpYnV0ZSk7Cisg
ICAgfSBlbHNlIGlmIChuYW1lID09IGF1dG9mb2N1c0F0dHIpIHsKKyAgICAgICAgSFRNTEVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAgICAgICAgRmVhdHVyZU9ic2VydmVy
OjpvYnNlcnZlKGRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6QXV0b0ZvY3VzQXR0cmlidXRl
KTsKICAgICB9IGVsc2UKICAgICAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUs
IHZhbHVlKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4
IDFkN2ZlYmY1YzliODdjOWE1OWRlYTVmNGQ1MzU0NDAwZDY2NTE2M2MuLmIyMDFlZTM1NjFjMzhk
OWMzNDE2ZDFkNmY1YzZiMDE5YmJiZDc2M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cu
aCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgor
I2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkZpbGVJbnB1dFR5cGUuaCIK
ICNpbmNsdWRlICJGaWxlTGlzdC5oIgogI2luY2x1ZGUgIkZvcm1Db250cm9sbGVyLmgiCkBAIC02
OTcsMjAgKzY5OCwzNSBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cgogICAgICAgICBpZiAobV9t
YXhSZXN1bHRzICE9IG9sZFJlc3VsdHMgJiYgKG1fbWF4UmVzdWx0cyA8PSAwIHx8IG9sZFJlc3Vs
dHMgPD0gMCkpCiAgICAgICAgICAgICByZWF0dGFjaElmQXR0YWNoZWQoKTsKICAgICAgICAgc2V0
TmVlZHNTdHlsZVJlY2FsYygpOwotICAgIH0gZWxzZSBpZiAobmFtZSA9PSBhdXRvc2F2ZUF0dHIg
fHwgbmFtZSA9PSBpbmNyZW1lbnRhbEF0dHIpCisgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2Jz
ZXJ2ZShkb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OlJlc3VsdHNBdHRyaWJ1dGUpOworICAg
IH0gZWxzZSBpZiAobmFtZSA9PSBhdXRvc2F2ZUF0dHIpIHsKICAgICAgICAgc2V0TmVlZHNTdHls
ZVJlY2FsYygpOwotICAgIGVsc2UgaWYgKG5hbWUgPT0gbWluQXR0ciB8fCBuYW1lID09IG1heEF0
dHIpIHsKKyAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGRvY3VtZW50KCksIEZlYXR1
cmVPYnNlcnZlcjo6QXV0b1NhdmVBdHRyaWJ1dGUpOworICAgIH0gZWxzZSBpZiAobmFtZSA9PSBp
bmNyZW1lbnRhbEF0dHIpIHsKKyAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygpOworICAgICAg
ICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZG9jdW1lbnQoKSwgRmVhdHVyZU9ic2VydmVyOjpJ
bmNyZW1lbnRhbEF0dHJpYnV0ZSk7CisgICAgfSBlbHNlIGlmIChuYW1lID09IG1pbkF0dHIpIHsK
KyAgICAgICAgbV9pbnB1dFR5cGUtPm1pbk9yTWF4QXR0cmlidXRlQ2hhbmdlZCgpOworICAgICAg
ICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKKyAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNl
cnZlKGRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6TWluQXR0cmlidXRlKTsKKyAgICB9IGVs
c2UgaWYgKG5hbWUgPT0gbWF4QXR0cikgewogICAgICAgICBtX2lucHV0VHlwZS0+bWluT3JNYXhB
dHRyaWJ1dGVDaGFuZ2VkKCk7CiAgICAgICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOworICAg
ICAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZG9jdW1lbnQoKSwgRmVhdHVyZU9ic2VydmVy
OjpNYXhBdHRyaWJ1dGUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBtdWx0aXBsZUF0dHIpIHsK
ICAgICAgICAgbV9pbnB1dFR5cGUtPm11bHRpcGxlQXR0cmlidXRlQ2hhbmdlZCgpOwogICAgICAg
ICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gc3RlcEF0
dHIpIHsKICAgICAgICAgbV9pbnB1dFR5cGUtPnN0ZXBBdHRyaWJ1dGVDaGFuZ2VkKCk7CiAgICAg
ICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwotICAgIH0gZWxzZSBpZiAobmFtZSA9PSBwYXR0
ZXJuQXR0ciB8fCBuYW1lID09IHByZWNpc2lvbkF0dHIpCisgICAgICAgIEZlYXR1cmVPYnNlcnZl
cjo6b2JzZXJ2ZShkb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OlN0ZXBBdHRyaWJ1dGUpOwor
ICAgIH0gZWxzZSBpZiAobmFtZSA9PSBwYXR0ZXJuQXR0cikgeworICAgICAgICBzZXROZWVkc1Zh
bGlkaXR5Q2hlY2soKTsKKyAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGRvY3VtZW50
KCksIEZlYXR1cmVPYnNlcnZlcjo6UGF0dGVybkF0dHJpYnV0ZSk7CisgICAgfSBlbHNlIGlmIChu
YW1lID09IHByZWNpc2lvbkF0dHIpIHsKICAgICAgICAgc2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7
Ci0gICAgZWxzZSBpZiAobmFtZSA9PSBkaXNhYmxlZEF0dHIpIHsKKyAgICAgICAgRmVhdHVyZU9i
c2VydmVyOjpvYnNlcnZlKGRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6UHJlY2lzaW9uQXR0
cmlidXRlKTsKKyAgICB9IGVsc2UgaWYgKG5hbWUgPT0gZGlzYWJsZWRBdHRyKSB7CiAgICAgICAg
IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7
CiAgICAgICAgIG1faW5wdXRUeXBlLT5kaXNhYmxlZEF0dHJpYnV0ZUNoYW5nZWQoKTsKICAgICB9
IGVsc2UgaWYgKG5hbWUgPT0gcmVhZG9ubHlBdHRyKSB7CkBAIC03MjQsNiArNzQwLDcgQEAgdm9p
ZCBIVE1MSW5wdXRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9taWNTdHIKICAgICAgICAgICAgIHJlc2V0TGlzdEF0dHJpYnV0ZVRhcmdl
dE9ic2VydmVyKCk7CiAgICAgICAgICAgICBsaXN0QXR0cmlidXRlVGFyZ2V0Q2hhbmdlZCgpOwog
ICAgICAgICB9CisgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShkb2N1bWVudCgpLCBG
ZWF0dXJlT2JzZXJ2ZXI6Okxpc3RBdHRyaWJ1dGUpOwogICAgIH0KICNlbmRpZgogI2lmIEVOQUJM
RShJTlBVVF9TUEVFQ0gpCkBAIC03NDIsOSArNzU5LDE2IEBAIHZvaWQgSFRNTElucHV0RWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWlj
U3RyCiAgICAgICAgIH0KICAgICAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJl
cihmYWxzZSk7CiAgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICAgICAgRmVhdHVy
ZU9ic2VydmVyOjpvYnNlcnZlKGRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6UHJlZml4ZWRT
cGVlY2hBdHRyaWJ1dGUpOwogICAgIH0gZWxzZSBpZiAobmFtZSA9PSBvbndlYmtpdHNwZWVjaGNo
YW5nZUF0dHIpCiAgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygp
LndlYmtpdHNwZWVjaGNoYW5nZUV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRo
aXMsIG5hbWUsIHZhbHVlKSk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoRElSRUNUT1JZX1VQTE9BRCkK
KyAgICBlbHNlIGlmIChuYW1lID09IHdlYmtpdGRpcmVjdG9yeUF0dHIpIHsKKyAgICAgICAgSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKKyAg
ICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZl
cjo6UHJlZml4ZWREaXJlY3RvcnlBdHRyaWJ1dGUpOworICAgIH0KKyNlbmRpZgogICAgIGVsc2UK
ICAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKG5hbWUs
IHZhbHVlKTsKICAgICBtX2lucHV0VHlwZS0+dXBkYXRlSW5uZXJUZXh0VmFsdWUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5k
ZXggOGNjMDI5YTE5ZWEyNzNmYzdhZWJmZDhlNjgxMTM4MDkyODY1ODRmYS4uOTBjYjM1OWM0NzZm
MTM4ZGUzMDg3NjI5NjM2MDBmMWUzZjNhZTI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnRO
YW1lcy5oIgorI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiSFRNTEJSRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5o
IgpAQCAtNTEwLDkgKzUxMSwxMCBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpz
ZWxlY3Rpb25DaGFuZ2VkKGJvb2wgdXNlclRyaWdnZXJlZCkKIAogdm9pZCBIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBpZiAobmFtZSA9PSBwbGFjZWhvbGRl
ckF0dHIpCisgICAgaWYgKG5hbWUgPT0gcGxhY2Vob2xkZXJBdHRyKSB7CiAgICAgICAgIHVwZGF0
ZVBsYWNlaG9sZGVyVmlzaWJpbGl0eSh0cnVlKTsKLSAgICBlbHNlIGlmIChuYW1lID09IG9uc2Vs
ZWN0QXR0cikKKyAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGRvY3VtZW50KCksIEZl
YXR1cmVPYnNlcnZlcjo6UGxhY2Vob2xkZXJBdHRyaWJ1dGUpOworICAgIH0gZWxzZSBpZiAobmFt
ZSA9PSBvbnNlbGVjdEF0dHIpCiAgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZl
bnROYW1lcygpLnNlbGVjdEV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMs
IG5hbWUsIHZhbHVlKSk7CiAgICAgZWxzZSBpZiAobmFtZSA9PSBvbmNoYW5nZUF0dHIpCiAgICAg
ICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50LCBj
cmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIG5hbWUsIHZhbHVlKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5jcHAKaW5kZXggMmQ5NWYzMjllOTQzM2IxYWJhOTQ0NDk3N2ZiNzRkMjVl
M2JkOThkYy4uNjQyMTc3NzE1YjFhNjEyNzI0NGQwYzJiZGYyNGQ4OWYxODI2NTQxZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtMTQwLDggKzE0MCwxMyBAQCBQYXNzT3duUHRyPElu
cHV0VHlwZT4gSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCwgY29u
c3QgU3RyaW5nJgogewogICAgIHN0YXRpYyBjb25zdCBJbnB1dFR5cGVGYWN0b3J5TWFwKiBmYWN0
b3J5TWFwID0gY3JlYXRlSW5wdXRUeXBlRmFjdG9yeU1hcCgpLmxlYWtQdHIoKTsKICAgICBQYXNz
T3duUHRyPElucHV0VHlwZT4gKCpmYWN0b3J5KShIVE1MSW5wdXRFbGVtZW50KikgPSB0eXBlTmFt
ZS5pc0VtcHR5KCkgPyAwIDogZmFjdG9yeU1hcC0+Z2V0KHR5cGVOYW1lKTsKLSAgICBpZiAoIWZh
Y3RvcnkpCisgICAgaWYgKCFmYWN0b3J5KSB7CiAgICAgICAgIGZhY3RvcnkgPSBUZXh0SW5wdXRU
eXBlOjpjcmVhdGU7CisgICAgICAgIGlmICh0eXBlTmFtZSA9PSBJbnB1dFR5cGVOYW1lczo6ZGF0
ZXRpbWUoKSkKKyAgICAgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5k
b2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZURhdGVUaW1lRmFsbGJhY2spOwor
ICAgICAgICBlbHNlIGlmICh0eXBlTmFtZSA9PSBJbnB1dFR5cGVOYW1lczo6d2VlaygpKQorICAg
ICAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCksIEZl
YXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlV2Vla0ZhbGxiYWNrKTsKKyAgICB9CiAgICAgcmV0dXJu
IGZhY3RvcnkoZWxlbWVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
TW9udGhJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5j
cHAKaW5kZXggZTgyMmZhYzI3MjQ0YmE5ZTBkMzIxYmVjN2JjOWZmOTU0MmFiNGVmNS4uNmJmNDc0
MTI1ZGFhODIzMGU2M2RmZjQ2OGI2ZWVmZWNiODhlY2JlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9N
b250aElucHV0VHlwZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJNb250aElucHV0
VHlwZS5oIgogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlICJGZWF0dXJl
T2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKQEAgLTU5LDYgKzYwLDcgQEAg
c3RhdGljIGNvbnN0IGludCBtb250aFN0ZXBTY2FsZUZhY3RvciA9IDE7CiAKIFBhc3NPd25QdHI8
SW5wdXRUeXBlPiBNb250aElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1l
bnQpCiB7CisgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCks
IEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlTW9udGgpOwogICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgTW9udGhJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJl
cklucHV0VHlwZS5jcHAKaW5kZXggZDUyMjc1YzVmOTQ1MjY4MmE4NTYzNjNmYzcyYWQzMTViMjY1
ZDQxMC4uMzAxNzUxMjU2ZWYzZTZmNzcxZWMxOWNiZGEzNzBhOGQzNDg0ZGRhZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogCiAjaW5j
bHVkZSAiQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2Rl
LmgiCisjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlv
bXMuaCIKQEAgLTk4LDYgKzk5LDcgQEAgc3RhdGljIFJlYWxOdW1iZXJSZW5kZXJTaXplIGNhbGN1
bGF0ZVJlbmRlclNpemUoY29uc3QgRGVjaW1hbCYgdmFsdWUpCiAKIFBhc3NPd25QdHI8SW5wdXRU
eXBlPiBOdW1iZXJJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQog
eworICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLCBGZWF0
dXJlT2JzZXJ2ZXI6OklucHV0VHlwZU51bWJlcik7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBO
dW1iZXJJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuY3BwCmluZGV4IGFiMTFjNDg5ZDY4ZmYyZTIyYTFmNzE2Y2ViODVjZWUxYTkzYzJhYTku
LjUyOTgwMmJjZTFjZDI0NmY5MDczZmRmNzQ2NjNlZTUyNDY5MGNkYjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAKICNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgorI2luY2x1ZGUgIkZl
YXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtODEsNiArODIs
NyBAQCBzdGF0aWMgRGVjaW1hbCBlbnN1cmVNYXhpbXVtKGNvbnN0IERlY2ltYWwmIHByb3Bvc2Vk
VmFsdWUsIGNvbnN0IERlY2ltYWwmIG1pbmltdQogCiBQYXNzT3duUHRyPElucHV0VHlwZT4gUmFu
Z2VJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogeworICAgIEZl
YXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2
ZXI6OklucHV0VHlwZVJhbmdlKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFJhbmdlSW5wdXRU
eXBlKGVsZW1lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFy
Y2hJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3Bw
CmluZGV4IGRkMGNkNmVhZDFkNjdlNGJmZWUxZjIxMzRmODljNmIwMDE3Y2FlNjIuLjhhMWViMDI5
YTVmYjU0OTg2N2M5MzUxNDFmNWJiNzQ1MjZjMDMxYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Nl
YXJjaElucHV0VHlwZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJTZWFyY2hJbnB1dFR5cGUuaCIKIAorI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZl
ci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgpAQCAtNTQsNiArNTUsNyBAQCBpbmxpbmUg
U2VhcmNoSW5wdXRUeXBlOjpTZWFyY2hJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVu
dCkKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IFNlYXJjaElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CisgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVs
ZW1lbnQtPmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlU2VhcmNoKTsKICAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IFNlYXJjaElucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcAppbmRleCBjY2EwMzY1ZjUz
NjU2NGVhNGMzYjFiNDc2NDA4N2QyZWQ3NmVkOWVlLi40OTY0OTA2YTcxNWJkMTUzNTZhYmFiN2Fl
ZjBkZmNlNjczZDNjYzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9u
ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5
cGUuY3BwCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
VGVsZXBob25lSW5wdXRUeXBlLmgiCiAKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKKyNp
bmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIK
ICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCkBAIC0zOCw2ICs0MCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IFRlbGVwaG9uZUlucHV0VHlwZTo6
Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CisgICAgRmVhdHVyZU9ic2VydmVy
OjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBl
VGVsKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRlbGVwaG9uZUlucHV0VHlwZShlbGVtZW50
KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDVmNTIyNzk3
N2UwZWEwNzAxODg1M2RiNTBjMTlkZDU3ZDg2ZWQ0ZjIuLjhmM2VmMGM5ZjMxOWMwOTUzNjEyYzAx
YmYwZTY3MTMyYTIyODE4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlu
cHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcApA
QCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIlRpbWVJbnB1dFR5cGUuaCIKIAogI2luY2x1ZGUg
IkRhdGVDb21wb25lbnRzLmgiCisjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVk
ZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUg
IklucHV0VHlwZU5hbWVzLmgiCkBAIC02Myw2ICs2NCw3IEBAIFRpbWVJbnB1dFR5cGU6OlRpbWVJ
bnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogIGVsZW1lbnQpCiAKIFBhc3NPd25QdHI8SW5wdXRU
eXBlPiBUaW1lSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsK
KyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZWxlbWVudC0+ZG9jdW1lbnQoKSwgRmVhdHVy
ZU9ic2VydmVyOjpJbnB1dFR5cGVUaW1lKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRpbWVJ
bnB1dFR5cGUoZWxlbWVudCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1VSTElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAK
aW5kZXggYjRhNmQ1YmJiMTFhNzJjNWNmZThiZTk1ZTA0NDNiNTBlMWI1NzlkMy4uNjU3NjViODdh
OTdlYzRlZjIyMGExNzFjZDQwNzI1YjZiZmFlNTBkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5w
dXRUeXBlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIlVSTElucHV0VHlwZS5oIgogCisjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5j
bHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAj
aW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgpAQCAtNDEsNiArNDIsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBVUkxJbnB1dFR5cGU6OmNyZWF0ZShI
VE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogeworICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2
ZShlbGVtZW50LT5kb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZVVSTCk7CiAg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBVUkxJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcAppbmRleCBjZDRjNjAxNDk4NDU4NDg1ZTRjOTAz
YzBhODdiMmZlNzI3YjA5ZjllLi4wYzcxMzNlNzhiOGU3M2QwZjk4ZDAwYTYzMzk4NDY1MTBlMDMy
MjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJXZWVrSW5wdXRUeXBlLmgiCiAKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50
cy5oIgorI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1l
cy5oIgpAQCAtNTUsNiArNTYsNyBAQCBzdGF0aWMgY29uc3QgaW50IHdlZWtTdGVwU2NhbGVGYWN0
b3IgPSA2MDQ4MDAwMDA7CiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBXZWVrSW5wdXRUeXBlOjpj
cmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6
Om9ic2VydmUoZWxlbWVudC0+ZG9jdW1lbnQoKSwgRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVX
ZWVrKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdlZWtJbnB1dFR5cGUoZWxlbWVudCkpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5jcHAKaW5kZXggMzFkMjJjNTVm
YjczYjI4M2VlY2NiMDU5N2M1ZjZiZDRmNjY4MmQzMC4uN2UyMTY1YWNjNjRiMDVhMjlhYjYyMmVl
ZjQ2YTYxOTE4ZTk3YmM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJl
T2JzZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVyZU9ic2VydmVyLmNw
cApAQCAtMzQsNyArMzQsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBGZWF0dXJlT2JzZXJ2
ZXI6OkZlYXR1cmVPYnNlcnZlcigpCi0gICAgOiBtX2ZlYXR1cmVNYXNrKDApCiB7CiB9CiAKQEAg
LTQzLDIwICs0MiwxNyBAQCBGZWF0dXJlT2JzZXJ2ZXI6On5GZWF0dXJlT2JzZXJ2ZXIoKQogICAg
IC8vIFdlIGFsd2F5cyBsb2cgUGFnZURlc3RydWN0aW9uIHNvIHRoYXQgd2UgaGF2ZSBhIHNjYWxl
IGZvciB0aGUgcmVzdCBvZiB0aGUgZmVhdHVyZXMuCiAgICAgSGlzdG9ncmFtU3VwcG9ydDo6aGlz
dG9ncmFtRW51bWVyYXRpb24oIldlYkNvcmUuRmVhdHVyZU9ic2VydmVyIiwgUGFnZURlc3RydWN0
aW9uLCBOdW1iZXJPZkZlYXR1cmVzKTsKIAotICAgIGlmICghbV9mZWF0dXJlTWFzaykKKyAgICBp
ZiAoIW1fZmVhdHVyZUJpdHMpCiAgICAgICAgIHJldHVybjsKIAotICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgTnVtYmVyT2ZGZWF0dXJlczsgKytpKSB7Ci0gICAgICAgIGlmIChtX2ZlYXR1cmVNYXNr
ICYgKDEgPDwgaSkpCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IE51bWJlck9mRmVhdHVy
ZXM7ICsraSkgeworICAgICAgICBpZiAobV9mZWF0dXJlQml0cy0+cXVpY2tHZXQoaSkpCiAgICAg
ICAgICAgICBIaXN0b2dyYW1TdXBwb3J0OjpoaXN0b2dyYW1FbnVtZXJhdGlvbigiV2ViQ29yZS5G
ZWF0dXJlT2JzZXJ2ZXIiLCBpLCBOdW1iZXJPZkZlYXR1cmVzKTsKICAgICB9CiB9CiAKLXZvaWQg
RmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKERPTVdpbmRvdyogZG9tV2luZG93LCBGZWF0dXJlIGZl
YXR1cmUpCit2b2lkIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShEb2N1bWVudCogZG9jdW1lbnQs
IEZlYXR1cmUgZmVhdHVyZSkKIHsKLSAgICBBU1NFUlQoZG9tV2luZG93KTsKLQotICAgIERvY3Vt
ZW50KiBkb2N1bWVudCA9IGRvbVdpbmRvdy0+ZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50
KQogICAgICAgICByZXR1cm47CiAKQEAgLTY3LDQgKzYzLDEwIEBAIHZvaWQgRmVhdHVyZU9ic2Vy
dmVyOjpvYnNlcnZlKERPTVdpbmRvdyogZG9tV2luZG93LCBGZWF0dXJlIGZlYXR1cmUpCiAgICAg
cGFnZS0+ZmVhdHVyZU9ic2VydmVyKCktPmRpZE9ic2VydmUoZmVhdHVyZSk7CiB9CiAKK3ZvaWQg
RmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKERPTVdpbmRvdyogZG9tV2luZG93LCBGZWF0dXJlIGZl
YXR1cmUpCit7CisgICAgQVNTRVJUKGRvbVdpbmRvdyk7CisgICAgb2JzZXJ2ZShkb21XaW5kb3ct
PmRvY3VtZW50KCksIGZlYXR1cmUpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuaAppbmRleCA1ZTVjZGE3NGI4NzJlMjM4YzAyMzI5
MzRlNjc1YWNlZjBjYzQwZjZmLi45ZTU0MGEwYWZlOTM4OWVmMmEzMDIyY2MyM2U4OGY2YjgxOTY5
YzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVyZU9ic2VydmVyLmgKQEAgLTI2LDExICsyNiwx
NSBAQAogI2lmbmRlZiBGZWF0dXJlT2JzZXJ2ZXJfaAogI2RlZmluZSBGZWF0dXJlT2JzZXJ2ZXJf
aAogCisjaW5jbHVkZSA8d3RmL0JpdFZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERPTVdpbmRvdzsKK2NsYXNzIERvY3Vt
ZW50OwogCiBjbGFzcyBGZWF0dXJlT2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KEZlYXR1cmVPYnNlcnZlcik7CkBAIC02MCwyMiArNjQsNTcgQEAgcHVibGljOgogICAgICAgICBQ
cmVmaXhlZFRyYW5zaXRpb25FbmRFdmVudCwKICAgICAgICAgVW5wcmVmaXhlZFRyYW5zaXRpb25F
bmRFdmVudCwKICAgICAgICAgUHJlZml4ZWRBbmRVbnByZWZpeGVkVHJhbnNpdGlvbkVuZEV2ZW50
LAorICAgICAgICBBdXRvRm9jdXNBdHRyaWJ1dGUsCisgICAgICAgIEF1dG9TYXZlQXR0cmlidXRl
LAorICAgICAgICBEYXRhTGlzdEVsZW1lbnQsCisgICAgICAgIEZvcm1BdHRyaWJ1dGUsCisgICAg
ICAgIEluY3JlbWVudGFsQXR0cmlidXRlLAorICAgICAgICBJbnB1dFR5cGVDb2xvciwKKyAgICAg
ICAgSW5wdXRUeXBlRGF0ZSwKKyAgICAgICAgSW5wdXRUeXBlRGF0ZVRpbWUsCisgICAgICAgIElu
cHV0VHlwZURhdGVUaW1lRmFsbGJhY2ssCisgICAgICAgIElucHV0VHlwZURhdGVUaW1lTG9jYWws
CisgICAgICAgIElucHV0VHlwZUVtYWlsLAorICAgICAgICBJbnB1dFR5cGVNb250aCwKKyAgICAg
ICAgSW5wdXRUeXBlTnVtYmVyLAorICAgICAgICBJbnB1dFR5cGVSYW5nZSwKKyAgICAgICAgSW5w
dXRUeXBlU2VhcmNoLAorICAgICAgICBJbnB1dFR5cGVUZWwsCisgICAgICAgIElucHV0VHlwZVRp
bWUsCisgICAgICAgIElucHV0VHlwZVVSTCwKKyAgICAgICAgSW5wdXRUeXBlV2VlaywKKyAgICAg
ICAgSW5wdXRUeXBlV2Vla0ZhbGxiYWNrLAorICAgICAgICBMaXN0QXR0cmlidXRlLAorICAgICAg
ICBNYXhBdHRyaWJ1dGUsCisgICAgICAgIE1pbkF0dHJpYnV0ZSwKKyAgICAgICAgUGF0dGVybkF0
dHJpYnV0ZSwKKyAgICAgICAgUGxhY2Vob2xkZXJBdHRyaWJ1dGUsCisgICAgICAgIFByZWNpc2lv
bkF0dHJpYnV0ZSwKKyAgICAgICAgUHJlZml4ZWREaXJlY3RvcnlBdHRyaWJ1dGUsCisgICAgICAg
IFByZWZpeGVkU3BlZWNoQXR0cmlidXRlLAorICAgICAgICBSZXF1aXJlZEF0dHJpYnV0ZSwKKyAg
ICAgICAgUmVzdWx0c0F0dHJpYnV0ZSwKKyAgICAgICAgU3RlcEF0dHJpYnV0ZSwKICAgICAgICAg
Ly8gQWRkIG5ldyBmZWF0dXJlcyBhYm92ZSB0aGlzIGxpbmUuCiAgICAgICAgIE51bWJlck9mRmVh
dHVyZXMsIC8vIFRoaXMgZW51bSB2YWx1ZSBtdXN0IGJlIGxhc3QuCiAgICAgfTsKIAorICAgIHN0
YXRpYyB2b2lkIG9ic2VydmUoRG9jdW1lbnQqLCBGZWF0dXJlKTsKICAgICBzdGF0aWMgdm9pZCBv
YnNlcnZlKERPTVdpbmRvdyosIEZlYXR1cmUpOwogCiBwcml2YXRlOgogICAgIHZvaWQgZGlkT2Jz
ZXJ2ZShGZWF0dXJlIGZlYXR1cmUpCiAgICAgewotICAgICAgICBDT01QSUxFX0FTU0VSVChzaXpl
b2YobV9mZWF0dXJlTWFzaykgKiA4ID49IE51bWJlck9mRmVhdHVyZXMsIEZlYXR1cmVzTXVzdE5v
dE92ZXJmbG93Qml0bWFzayk7CiAgICAgICAgIEFTU0VSVChmZWF0dXJlICE9IFBhZ2VEZXN0cnVj
dGlvbik7IC8vIFBhZ2VEZXN0cnVjdGlvbiBpcyByZXNlcnZlZCBhcyBhIHNjYWxpbmcgZmFjdG9y
LgogICAgICAgICBBU1NFUlQoZmVhdHVyZSA8IE51bWJlck9mRmVhdHVyZXMpOwotICAgICAgICBt
X2ZlYXR1cmVNYXNrIHw9IDEgPDwgc3RhdGljX2Nhc3Q8aW50PihmZWF0dXJlKTsKKyAgICAgICAg
aWYgKCFtX2ZlYXR1cmVCaXRzKSB7CisgICAgICAgICAgICBtX2ZlYXR1cmVCaXRzID0gYWRvcHRQ
dHIobmV3IEJpdFZlY3RvcihOdW1iZXJPZkZlYXR1cmVzKSk7CisgICAgICAgICAgICBtX2ZlYXR1
cmVCaXRzLT5jbGVhckFsbCgpOworICAgICAgICB9CisgICAgICAgIG1fZmVhdHVyZUJpdHMtPnF1
aWNrU2V0KGZlYXR1cmUpOwogICAgIH0KIAotICAgIGludCBtX2ZlYXR1cmVNYXNrOworICAgIE93
blB0cjxCaXRWZWN0b3I+IG1fZmVhdHVyZUJpdHM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>184398</attachid>
            <date>2013-01-23 21:39:50 -0800</date>
            <delta_ts>2013-01-23 22:09:33 -0800</delta_ts>
            <desc>Patch for landign</desc>
            <filename>bug-107770-20130124143642.patch</filename>
            <type>text/plain</type>
            <size>25572</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwNjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNmN2ZkMTIwOWZhMWU0
YWQ2ZWIzMzM1YWZjMWYwYmQ3NzdmN2MxOS4uMDVhN2NlYjczYTdkYTA1NWMyNzAzZjY4Zjc3N2Vh
Y2MyYWIyMmYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYxIEBACisyMDEzLTAxLTIzICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZm9ybS1yZWxhdGVk
IGluc3RydW1lbnRhdGlvbnMsIGFuZCBzdXBwb3J0IDMzKyBmZWF0dXJlcyBpbiBGZWF0dXJlT2Jz
ZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
Nzc3MAorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbnRhcm8gSGFyYS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMuIFRoaXMgZG9lc24ndCBtYWtlIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAgICAg
KiBwYWdlL0ZlYXR1cmVPYnNlcnZlci5oOgorICAgICAgICAtIEFkZCBmb3JtLXJlbGF0ZWQgZmVh
dHVyZXMuCisgICAgICAgIC0gQWRkIGEgRG9jdW1lbnQqIHZlcnNpb24gb2Ygb2JzZXJ2ZSgpLgor
ICAgICAgICAtIFVzZSBCaXRWZWN0b3IgdG8gcmVwcmVzZW50IGZlYXR1cmVzIHRvIHN1cHBvcnQg
MzMrIGZlYXR1cmVzLgorICAgICAgICAoV2ViQ29yZTo6RmVhdHVyZU9ic2VydmVyOjpkaWRPYnNl
cnZlKToKKyAgICAgICAgKEZlYXR1cmVPYnNlcnZlcik6CisgICAgICAgICogcGFnZS9GZWF0dXJl
T2JzZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmVhdHVyZU9ic2VydmVyOjpGZWF0dXJl
T2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6RmVhdHVyZU9ic2VydmVyOjp+RmVhdHVyZU9i
c2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZSk6CisK
KyAgICAgICAgKiBodG1sL0NvbG9ySW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
bG9ySW5wdXRUeXBlOjpjcmVhdGUpOiBDYWxscyBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUuCisg
ICAgICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVJ
bnB1dFR5cGU6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVJbnB1dFR5cGU6OmNyZWF0ZSk6IERp
dHRvLgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAg
ICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVtYWlsSW5w
dXRUeXBlOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxEYXRhTGlzdEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERhdGFMaXN0RWxlbWVudDo6Y3JlYXRlKTog
RGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKTogRGl0
dG8uCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKTogRGl0dG8uCisgICAgICAgICog
aHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUpOiBEaXR0by4KKyAgICAg
ICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OmNy
ZWF0ZSk6CisgICAgICAgIFJlY29yZCB0eXBlPWRhdGV0aW1lIGFuZCB0eXBlPXdlZWsgZXZlbiBp
ZiB0aGVzZSB0eXBlcyBhcmUgbm90IGVuYWJsZWQuCisgICAgICAgICogaHRtbC9Nb250aElucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb250aElucHV0VHlwZTo6Y3JlYXRlKTogQ2Fs
bHMgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlLgorICAgICAgICAqIGh0bWwvTnVtYmVySW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok51bWJlcklucHV0VHlwZTo6Y3JlYXRlKTogRGl0
dG8uCisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSYW5nZUlucHV0VHlwZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9TZWFyY2hJ
bnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoSW5wdXRUeXBlOjpjcmVhdGUp
OiBEaXR0by4KKyAgICAgICAgKiBodG1sL1RlbGVwaG9uZUlucHV0VHlwZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZWxlcGhvbmVJbnB1dFR5cGU6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAq
IGh0bWwvVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBl
OjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL1VSTElucHV0VHlwZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpVUkxJbnB1dFR5cGU6OmNyZWF0ZSk6IERpdHRvLgorICAgICAgICAqIGh0
bWwvV2Vla0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWVrSW5wdXRUeXBlOjpj
cmVhdGUpOiBEaXR0by4KKwogMjAxMy0wMS0yMyAgSGFucyBNdWxsZXIgIDxobXVsbGVyQGFkb2Jl
LmNvbT4KIAogICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEFkZCBzdXBwb3J0IGZvciBjb21wdXRp
bmcgZmlyc3QgaW5jbHVkZWQgaW50ZXJ2YWwgcG9zaXRpb24gZm9yIHBvbHlnb25zCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4IGQ5MjRjNmY1ZjY1M2Q1Y2UxZTlmZWVm
ZGIzN2VkZDVjN2ZiZmM2ZmEuLjI4OThhMWQ2YTMyNGYyODk3ZDRhNTZhNWNlNjI5MTI1MGFlYWEy
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCkBAIC0zNSw2ICszNSw3
IEBACiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJF
bGVtZW50U2hhZG93LmgiCisjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAi
SFRNTERhdGFMaXN0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgpAQCAtNzEsNiArNzIsNyBAQCBzdGF0aWMgYm9vbCBp
c1ZhbGlkQ29sb3JTdHJpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkKIAogUGFzc093blB0cjxJbnB1
dFR5cGU+IENvbG9ySW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkK
IHsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZWxlbWVudC0+ZG9jdW1lbnQoKSwgRmVh
dHVyZU9ic2VydmVyOjpJbnB1dFR5cGVDb2xvcik7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBD
b2xvcklucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5
cGUuY3BwCmluZGV4IGE0NjEzMTNkMDRlNTc5NDU0M2MzYzI0Y2U4ZmIzYmJmYmM0M2FmYTMuLjFm
ZDVlMGU0ZjhiN2MyNDMyZjQ0NGQ3MzE0NmI5OGU2ZjhiYjBiMDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9EYXRlSW5wdXRUeXBlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0RBVEUpCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKICNpbmNsdWRlICJEYXRlVGlt
ZUZpZWxkc1N0YXRlLmgiCisjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAi
SFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklu
cHV0VHlwZU5hbWVzLmgiCkBAIC01OCw2ICs1OSw3IEBAIGlubGluZSBEYXRlSW5wdXRUeXBlOjpE
YXRlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiAKIFBhc3NPd25QdHI8SW5w
dXRUeXBlPiBEYXRlSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkK
IHsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZWxlbWVudC0+ZG9jdW1lbnQoKSwgRmVh
dHVyZU9ic2VydmVyOjpJbnB1dFR5cGVEYXRlKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERh
dGVJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJ
bnB1dFR5cGUuY3BwCmluZGV4IGJiNGM3NzUwYzMxMGI3NzhlODc2N2FkNWM2N2RkNTlhYTg5ZTcz
YzUuLjBjYjkzZDM3NzI0YmRmNjRjYzM0NGFmNWMxMWQ4MDJjMDYyN2NiOTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSAiRGF0ZVRpbWVJbnB1dFR5cGUuaCIKIAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgi
CisjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgi
CkBAIC01OCw2ICs1OSw3IEBAIHN0YXRpYyBjb25zdCBpbnQgZGF0ZVRpbWVTdGVwU2NhbGVGYWN0
b3IgPSAxMDAwOwogCiBQYXNzT3duUHRyPElucHV0VHlwZT4gRGF0ZVRpbWVJbnB1dFR5cGU6OmNy
ZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogeworICAgIEZlYXR1cmVPYnNlcnZlcjo6
b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZURh
dGVUaW1lKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERhdGVUaW1lSW5wdXRUeXBlKGVsZW1l
bnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2Fs
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlw
ZS5jcHAKaW5kZXggYTIzYTAyZjhiN2UxYmNlODNjOGZlM2ZmNWJjYWUxZGJlMTMyMzkxNi4uOTE2
OTk4YjI5OTljZDkzZjg3NGMyZThhMmY3ODFmNTBjZWI4NWExZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAj
aW5jbHVkZSAiRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIgogCiAjaW5jbHVkZSAiRGF0ZUNvbXBv
bmVudHMuaCIKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJIVE1MSW5w
dXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBl
TmFtZXMuaCIKQEAgLTU3LDYgKzU4LDcgQEAgc3RhdGljIGNvbnN0IGludCBkYXRlVGltZUxvY2Fs
U3RlcFNjYWxlRmFjdG9yID0gMTAwMDsKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IERhdGVUaW1l
TG9jYWxJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogeworICAg
IEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLCBGZWF0dXJlT2Jz
ZXJ2ZXI6OklucHV0VHlwZURhdGVUaW1lTG9jYWwpOwogICAgIHJldHVybiBhZG9wdFB0cihuZXcg
RGF0ZVRpbWVMb2NhbElucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9F
bWFpbElucHV0VHlwZS5jcHAKaW5kZXggY2FkNGEzZTBiNTY2MDA4YTVlZDI2OGZkZjFhYzBmNDY2
ZTAxNjU3ZS4uMjdlZDBjZjQwMTMwNDNmZTZhOThjYTk3NGI2NTA4ZTBiMzRiZjc5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFbWFpbElucHV0VHlwZS5oIgogCisjaW5jbHVkZSAi
RmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgpAQCAt
NTUsNiArNTYsNyBAQCBzdGF0aWMgYm9vbCBpc1ZhbGlkRW1haWxBZGRyZXNzKGNvbnN0IFN0cmlu
ZyYgYWRkcmVzcykKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IEVtYWlsSW5wdXRUeXBlOjpjcmVh
dGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9i
c2VydmUoZWxlbWVudC0+ZG9jdW1lbnQoKSwgRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVFbWFp
bCk7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBFbWFpbElucHV0VHlwZShlbGVtZW50KSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuY3BwCmluZGV4IGQ2
ZGNiMjhkNzY5MDI4NTk1NjYxYWZkOWU0MDk2YWY1NWU3ZWQyNTguLjdmYWQ0Y2I2MWY3MTg2MWRm
MmRiYTgzNjBkNmU0ZTlhOTg4ZTEzNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERhdGFMaXN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0
YUxpc3RFbGVtZW50LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkhUTUxEYXRhTGlz
dEVsZW1lbnQuaCIKIAogI2lmIEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQorI2luY2x1ZGUgIkZl
YXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklkVGFy
Z2V0T2JzZXJ2ZXJSZWdpc3RyeS5oIgogCkBAIC00NSw2ICs0Niw3IEBAIGlubGluZSBIVE1MRGF0
YUxpc3RFbGVtZW50OjpIVE1MRGF0YUxpc3RFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvCiAKIFBhc3NSZWZQdHI8SFRNTERhdGFMaXN0RWxlbWVudD4gSFRNTERhdGFMaXN0
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCkKIHsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZG9jdW1lbnQsIEZlYXR1
cmVPYnNlcnZlcjo6RGF0YUxpc3RFbGVtZW50KTsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhU
TUxEYXRhTGlzdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggNWE2NjE2ZDJmNGIw
ZGI2N2YxMjI5ODRkZGE3NDk0OTc5YjczMGY2ZS4uMTg1ZDlkMDRkZTk5MjA2MWIxODU3ODI2ZTg5
NTBiNmMxYTI0OGFhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNv
bnRyb2xFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJv
bEVsZW1lbnQuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNs
dWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAi
RmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MRmll
bGRTZXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50LmgiCkBAIC0xMjIsOSAr
MTIzLDEwIEBAIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6YW5jZXN0b3JEaXNhYmxlZFN0
YXRlV2FzQ2hhbmdlZCgpCiAKIHZvaWQgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1
ZSkKIHsKLSAgICBpZiAobmFtZSA9PSBmb3JtQXR0cikKKyAgICBpZiAobmFtZSA9PSBmb3JtQXR0
cikgewogICAgICAgICBmb3JtQXR0cmlidXRlQ2hhbmdlZCgpOwotICAgIGVsc2UgaWYgKG5hbWUg
PT0gZGlzYWJsZWRBdHRyKSB7CisgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShkb2N1
bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OkZvcm1BdHRyaWJ1dGUpOworICAgIH0gZWxzZSBpZiAo
bmFtZSA9PSBkaXNhYmxlZEF0dHIpIHsKICAgICAgICAgYm9vbCBvbGREaXNhYmxlZCA9IG1fZGlz
YWJsZWQ7CiAgICAgICAgIG1fZGlzYWJsZWQgPSAhdmFsdWUuaXNOdWxsKCk7CiAgICAgICAgIGlm
IChvbGREaXNhYmxlZCAhPSBtX2Rpc2FibGVkKQpAQCAtMTQzLDYgKzE0NSwxMCBAQCB2b2lkIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0bwogICAgICAgICBtX2lzUmVxdWlyZWQgPSAhdmFsdWUuaXNOdWxsKCk7
CiAgICAgICAgIGlmICh3YXNSZXF1aXJlZCAhPSBtX2lzUmVxdWlyZWQpCiAgICAgICAgICAgICBy
ZXF1aXJlZEF0dHJpYnV0ZUNoYW5nZWQoKTsKKyAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNl
cnZlKGRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6UmVxdWlyZWRBdHRyaWJ1dGUpOworICAg
IH0gZWxzZSBpZiAobmFtZSA9PSBhdXRvZm9jdXNBdHRyKSB7CisgICAgICAgIEhUTUxFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6
b2JzZXJ2ZShkb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OkF1dG9Gb2N1c0F0dHJpYnV0ZSk7
CiAgICAgfSBlbHNlCiAgICAgICAgIEhUTUxFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAx
ZDdmZWJmNWM5Yjg3YzlhNTlkZWE1ZjRkNTM1NDQwMGQ2NjUxNjNjLi5iMjAxZWUzNTYxYzM4ZDlj
MzQxNmQxZDZmNWM2YjAxOWJiYmQ3NjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJFbGVtZW50U2hhZG93Lmgi
CiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKKyNp
bmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJGaWxlSW5wdXRUeXBlLmgiCiAj
aW5jbHVkZSAiRmlsZUxpc3QuaCIKICNpbmNsdWRlICJGb3JtQ29udHJvbGxlci5oIgpAQCAtNjk3
LDIwICs2OTgsMzUgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHIKICAgICAgICAgaWYgKG1fbWF4
UmVzdWx0cyAhPSBvbGRSZXN1bHRzICYmIChtX21heFJlc3VsdHMgPD0gMCB8fCBvbGRSZXN1bHRz
IDw9IDApKQogICAgICAgICAgICAgcmVhdHRhY2hJZkF0dGFjaGVkKCk7CiAgICAgICAgIHNldE5l
ZWRzU3R5bGVSZWNhbGMoKTsKLSAgICB9IGVsc2UgaWYgKG5hbWUgPT0gYXV0b3NhdmVBdHRyIHx8
IG5hbWUgPT0gaW5jcmVtZW50YWxBdHRyKQorICAgICAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2Vy
dmUoZG9jdW1lbnQoKSwgRmVhdHVyZU9ic2VydmVyOjpSZXN1bHRzQXR0cmlidXRlKTsKKyAgICB9
IGVsc2UgaWYgKG5hbWUgPT0gYXV0b3NhdmVBdHRyKSB7CiAgICAgICAgIHNldE5lZWRzU3R5bGVS
ZWNhbGMoKTsKLSAgICBlbHNlIGlmIChuYW1lID09IG1pbkF0dHIgfHwgbmFtZSA9PSBtYXhBdHRy
KSB7CisgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShkb2N1bWVudCgpLCBGZWF0dXJl
T2JzZXJ2ZXI6OkF1dG9TYXZlQXR0cmlidXRlKTsKKyAgICB9IGVsc2UgaWYgKG5hbWUgPT0gaW5j
cmVtZW50YWxBdHRyKSB7CisgICAgICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICAgICAg
RmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5j
cmVtZW50YWxBdHRyaWJ1dGUpOworICAgIH0gZWxzZSBpZiAobmFtZSA9PSBtaW5BdHRyKSB7Cisg
ICAgICAgIG1faW5wdXRUeXBlLT5taW5Pck1heEF0dHJpYnV0ZUNoYW5nZWQoKTsKKyAgICAgICAg
c2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CisgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2
ZShkb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6Ok1pbkF0dHJpYnV0ZSk7CisgICAgfSBlbHNl
IGlmIChuYW1lID09IG1heEF0dHIpIHsKICAgICAgICAgbV9pbnB1dFR5cGUtPm1pbk9yTWF4QXR0
cmlidXRlQ2hhbmdlZCgpOwogICAgICAgICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKKyAgICAg
ICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6
TWF4QXR0cmlidXRlKTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gbXVsdGlwbGVBdHRyKSB7CiAg
ICAgICAgIG1faW5wdXRUeXBlLT5tdWx0aXBsZUF0dHJpYnV0ZUNoYW5nZWQoKTsKICAgICAgICAg
c2V0TmVlZHNWYWxpZGl0eUNoZWNrKCk7CiAgICAgfSBlbHNlIGlmIChuYW1lID09IHN0ZXBBdHRy
KSB7CiAgICAgICAgIG1faW5wdXRUeXBlLT5zdGVwQXR0cmlidXRlQ2hhbmdlZCgpOwogICAgICAg
ICBzZXROZWVkc1ZhbGlkaXR5Q2hlY2soKTsKLSAgICB9IGVsc2UgaWYgKG5hbWUgPT0gcGF0dGVy
bkF0dHIgfHwgbmFtZSA9PSBwcmVjaXNpb25BdHRyKQorICAgICAgICBGZWF0dXJlT2JzZXJ2ZXI6
Om9ic2VydmUoZG9jdW1lbnQoKSwgRmVhdHVyZU9ic2VydmVyOjpTdGVwQXR0cmlidXRlKTsKKyAg
ICB9IGVsc2UgaWYgKG5hbWUgPT0gcGF0dGVybkF0dHIpIHsKKyAgICAgICAgc2V0TmVlZHNWYWxp
ZGl0eUNoZWNrKCk7CisgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShkb2N1bWVudCgp
LCBGZWF0dXJlT2JzZXJ2ZXI6OlBhdHRlcm5BdHRyaWJ1dGUpOworICAgIH0gZWxzZSBpZiAobmFt
ZSA9PSBwcmVjaXNpb25BdHRyKSB7CiAgICAgICAgIHNldE5lZWRzVmFsaWRpdHlDaGVjaygpOwot
ICAgIGVsc2UgaWYgKG5hbWUgPT0gZGlzYWJsZWRBdHRyKSB7CisgICAgICAgIEZlYXR1cmVPYnNl
cnZlcjo6b2JzZXJ2ZShkb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OlByZWNpc2lvbkF0dHJp
YnV0ZSk7CisgICAgfSBlbHNlIGlmIChuYW1lID09IGRpc2FibGVkQXR0cikgewogICAgICAgICBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUobmFtZSwgdmFsdWUpOwog
ICAgICAgICBtX2lucHV0VHlwZS0+ZGlzYWJsZWRBdHRyaWJ1dGVDaGFuZ2VkKCk7CiAgICAgfSBl
bHNlIGlmIChuYW1lID09IHJlYWRvbmx5QXR0cikgewpAQCAtNzI0LDYgKzc0MCw3IEBAIHZvaWQg
SFRNTElucHV0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbWljU3RyCiAgICAgICAgICAgICByZXNldExpc3RBdHRyaWJ1dGVUYXJnZXRP
YnNlcnZlcigpOwogICAgICAgICAgICAgbGlzdEF0dHJpYnV0ZVRhcmdldENoYW5nZWQoKTsKICAg
ICAgICAgfQorICAgICAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZG9jdW1lbnQoKSwgRmVh
dHVyZU9ic2VydmVyOjpMaXN0QXR0cmlidXRlKTsKICAgICB9CiAjZW5kaWYKICNpZiBFTkFCTEUo
SU5QVVRfU1BFRUNIKQpAQCAtNzQyLDkgKzc1OSwxNiBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0
cgogICAgICAgICB9CiAgICAgICAgIHNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIo
ZmFsc2UpOwogICAgICAgICBzZXROZWVkc1N0eWxlUmVjYWxjKCk7CisgICAgICAgIEZlYXR1cmVP
YnNlcnZlcjo6b2JzZXJ2ZShkb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OlByZWZpeGVkU3Bl
ZWNoQXR0cmlidXRlKTsKICAgICB9IGVsc2UgaWYgKG5hbWUgPT0gb253ZWJraXRzcGVlY2hjaGFu
Z2VBdHRyKQogICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS53
ZWJraXRzcGVlY2hjaGFuZ2VFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlz
LCBuYW1lLCB2YWx1ZSkpOwogI2VuZGlmCisjaWYgRU5BQkxFKERJUkVDVE9SWV9VUExPQUQpCisg
ICAgZWxzZSBpZiAobmFtZSA9PSB3ZWJraXRkaXJlY3RvcnlBdHRyKSB7CisgICAgICAgIEhUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2YWx1ZSk7CisgICAg
ICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShkb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6
OlByZWZpeGVkRGlyZWN0b3J5QXR0cmlidXRlKTsKKyAgICB9CisjZW5kaWYKICAgICBlbHNlCiAg
ICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShuYW1lLCB2
YWx1ZSk7CiAgICAgbV9pbnB1dFR5cGUtPnVwZGF0ZUlubmVyVGV4dFZhbHVlKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4
IDhjYzAyOWExOWVhMjczZmM3YWViZmQ4ZTY4MTEzODA5Mjg2NTg0ZmEuLjkwY2IzNTljNDc2ZjEz
OGRlMzA4NzYyOTYzNjAwZjFlM2YzYWUyNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJGcmFtZS5oIgog
I2luY2x1ZGUgIkhUTUxCUkVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVsZW1lbnQuaCIK
QEAgLTUxMCw5ICs1MTEsMTAgQEAgdm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2Vs
ZWN0aW9uQ2hhbmdlZChib29sIHVzZXJUcmlnZ2VyZWQpCiAKIHZvaWQgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCiB7Ci0gICAgaWYgKG5hbWUgPT0gcGxhY2Vob2xkZXJB
dHRyKQorICAgIGlmIChuYW1lID09IHBsYWNlaG9sZGVyQXR0cikgewogICAgICAgICB1cGRhdGVQ
bGFjZWhvbGRlclZpc2liaWxpdHkodHJ1ZSk7Ci0gICAgZWxzZSBpZiAobmFtZSA9PSBvbnNlbGVj
dEF0dHIpCisgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShkb2N1bWVudCgpLCBGZWF0
dXJlT2JzZXJ2ZXI6OlBsYWNlaG9sZGVyQXR0cmlidXRlKTsKKyAgICB9IGVsc2UgaWYgKG5hbWUg
PT0gb25zZWxlY3RBdHRyKQogICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50
TmFtZXMoKS5zZWxlY3RFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBu
YW1lLCB2YWx1ZSkpOwogICAgIGVsc2UgaWYgKG5hbWUgPT0gb25jaGFuZ2VBdHRyKQogICAgICAg
ICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGV2ZW50TmFtZXMoKS5jaGFuZ2VFdmVudCwgY3Jl
YXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBuYW1lLCB2YWx1ZSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9JbnB1dFR5cGUuY3BwCmluZGV4IDJkOTVmMzI5ZTk0MzNiMWFiYTk0NDQ5NzdmYjc0ZDI1ZTNi
ZDk4ZGMuLjY0MjE3NzcxNWIxYTYxMjcyNDRkMGMyYmRmMjRkODlmMTgyNjU0MWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTE0MCw4ICsxNDAsMTMgQEAgUGFzc093blB0cjxJbnB1
dFR5cGU+IElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQsIGNvbnN0
IFN0cmluZyYKIHsKICAgICBzdGF0aWMgY29uc3QgSW5wdXRUeXBlRmFjdG9yeU1hcCogZmFjdG9y
eU1hcCA9IGNyZWF0ZUlucHV0VHlwZUZhY3RvcnlNYXAoKS5sZWFrUHRyKCk7CiAgICAgUGFzc093
blB0cjxJbnB1dFR5cGU+ICgqZmFjdG9yeSkoSFRNTElucHV0RWxlbWVudCopID0gdHlwZU5hbWUu
aXNFbXB0eSgpID8gMCA6IGZhY3RvcnlNYXAtPmdldCh0eXBlTmFtZSk7Ci0gICAgaWYgKCFmYWN0
b3J5KQorICAgIGlmICghZmFjdG9yeSkgewogICAgICAgICBmYWN0b3J5ID0gVGV4dElucHV0VHlw
ZTo6Y3JlYXRlOworICAgICAgICBpZiAodHlwZU5hbWUgPT0gSW5wdXRUeXBlTmFtZXM6OmRhdGV0
aW1lKCkpCisgICAgICAgICAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZWxlbWVudC0+ZG9j
dW1lbnQoKSwgRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVEYXRlVGltZUZhbGxiYWNrKTsKKyAg
ICAgICAgZWxzZSBpZiAodHlwZU5hbWUgPT0gSW5wdXRUeXBlTmFtZXM6OndlZWsoKSkKKyAgICAg
ICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLCBGZWF0
dXJlT2JzZXJ2ZXI6OklucHV0VHlwZVdlZWtGYWxsYmFjayk7CisgICAgfQogICAgIHJldHVybiBm
YWN0b3J5KGVsZW1lbnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01v
bnRoSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3Bw
CmluZGV4IGU4MjJmYWMyNzI0NGJhOWUwZDMyMWJlYzdiYzlmZjk1NDJhYjRlZjUuLjZiZjQ3NDEy
NWRhYTgyMzBlNjNkZmY0NjhiNmVlZmVjYjg4ZWNiZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9u
dGhJbnB1dFR5cGUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiTW9udGhJbnB1dFR5
cGUuaCIKIAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisjaW5jbHVkZSAiRmVhdHVyZU9i
c2VydmVyLmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCkBAIC01OSw2ICs2MCw3IEBAIHN0
YXRpYyBjb25zdCBpbnQgbW9udGhTdGVwU2NhbGVGYWN0b3IgPSAxOwogCiBQYXNzT3duUHRyPElu
cHV0VHlwZT4gTW9udGhJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50
KQogeworICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLCBG
ZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZU1vbnRoKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3
IE1vbnRoSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJ
bnB1dFR5cGUuY3BwCmluZGV4IGQ1MjI3NWM1Zjk0NTI2ODJhODU2MzYzZmM3MmFkMzE1YjI2NWQ0
MTAuLjMwMTc1MTI1NmVmM2U2Zjc3MWVjMTljYmRhMzcwYThkMzQ4NGRkYWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKIAogI2luY2x1
ZGUgIkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5o
IgorI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21z
LmgiCkBAIC05OCw2ICs5OSw3IEBAIHN0YXRpYyBSZWFsTnVtYmVyUmVuZGVyU2l6ZSBjYWxjdWxh
dGVSZW5kZXJTaXplKGNvbnN0IERlY2ltYWwmIHZhbHVlKQogCiBQYXNzT3duUHRyPElucHV0VHlw
ZT4gTnVtYmVySW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsK
KyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZWxlbWVudC0+ZG9jdW1lbnQoKSwgRmVhdHVy
ZU9ic2VydmVyOjpJbnB1dFR5cGVOdW1iZXIpOwogICAgIHJldHVybiBhZG9wdFB0cihuZXcgTnVt
YmVySW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRU
eXBlLmNwcAppbmRleCBhYjExYzQ4OWQ2OGZmMmUyMmExZjcxNmNlYjg1Y2VlMWE5M2MyYWE5Li41
Mjk4MDJiY2UxY2QyNDZmOTA3M2ZkZjc0NjYzZWU1MjQ2OTBjZGI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtMzQsNiArMzQsNyBAQAogCiAjaW5jbHVkZSAiQVhP
YmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKKyNpbmNsdWRlICJGZWF0
dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTgxLDYgKzgyLDcg
QEAgc3RhdGljIERlY2ltYWwgZW5zdXJlTWF4aW11bShjb25zdCBEZWNpbWFsJiBwcm9wb3NlZFZh
bHVlLCBjb25zdCBEZWNpbWFsJiBtaW5pbXUKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IFJhbmdl
SW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKKyAgICBGZWF0
dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZWxlbWVudC0+ZG9jdW1lbnQoKSwgRmVhdHVyZU9ic2VydmVy
OjpJbnB1dFR5cGVSYW5nZSk7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBSYW5nZUlucHV0VHlw
ZShlbGVtZW50KSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNo
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcApp
bmRleCBkZDBjZDZlYWQxZDY3ZTRiZmVlMWYyMTM0Zjg5YzZiMDAxN2NhZTYyLi44YTFlYjAyOWE1
ZmI1NDk4NjdjOTM1MTQxZjViYjc0NTI2YzAzMWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFy
Y2hJbnB1dFR5cGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiU2VhcmNoSW5wdXRUeXBlLmgiCiAKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIu
aCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgi
CiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKQEAgLTU0LDYgKzU1LDcgQEAgaW5saW5lIFNl
YXJjaElucHV0VHlwZTo6U2VhcmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQp
CiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5w
dXRFbGVtZW50KiBlbGVtZW50KQogeworICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVt
ZW50LT5kb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZVNlYXJjaCk7CiAgICAg
cmV0dXJuIGFkb3B0UHRyKG5ldyBTZWFyY2hJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5jcHAKaW5kZXggY2NhMDM2NWY1MzY1
NjRlYTRjM2IxYjQ3NjQwODdkMmVkNzZlZDllZS4uNDk2NDkwNmE3MTViZDE1MzU2YWJhYjdhZWYw
ZGZjZTY3M2QzY2MyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJ
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBl
LmNwcApAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRl
bGVwaG9uZUlucHV0VHlwZS5oIgogCisjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCisjaW5j
bHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCiAj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIApAQCAtMzgsNiArNDAsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBUZWxlcGhvbmVJbnB1dFR5cGU6OmNy
ZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogeworICAgIEZlYXR1cmVPYnNlcnZlcjo6
b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZVRl
bCk7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBUZWxlcGhvbmVJbnB1dFR5cGUoZWxlbWVudCkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCA1ZjUyMjc5Nzdl
MGVhMDcwMTg4NTNkYjUwYzE5ZGQ1N2Q4NmVkNGYyLi44ZjNlZjBjOWYzMTljMDk1MzYxMmMwMWJm
MGU2NzEzMmEyMjgxODBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJUaW1lSW5wdXRUeXBlLmgiCiAKICNpbmNsdWRlICJE
YXRlQ29tcG9uZW50cy5oIgorI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUg
IkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJ
bnB1dFR5cGVOYW1lcy5oIgpAQCAtNjMsNiArNjQsNyBAQCBUaW1lSW5wdXRUeXBlOjpUaW1lSW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqICBlbGVtZW50KQogCiBQYXNzT3duUHRyPElucHV0VHlw
ZT4gVGltZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7Cisg
ICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCksIEZlYXR1cmVP
YnNlcnZlcjo6SW5wdXRUeXBlVGltZSk7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBUaW1lSW5w
dXRUeXBlKGVsZW1lbnQpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9V
UkxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwCmlu
ZGV4IGI0YTZkNWJiYjExYTcyYzVjZmU4YmU5NWUwNDQzYjUwZTFiNTc5ZDMuLjY1NzY1Yjg3YTk3
ZWM0ZWYyMjBhMTcxY2Q0MDcyNWI2YmZhZTUwZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVVJMSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0
VHlwZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJVUkxJbnB1dFR5cGUuaCIKIAorI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1
ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2lu
Y2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKQEAgLTQxLDYgKzQyLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBQYXNzT3duUHRyPElucHV0VHlwZT4gVVJMSW5wdXRUeXBlOjpjcmVhdGUoSFRN
TElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUo
ZWxlbWVudC0+ZG9jdW1lbnQoKSwgRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVVUkwpOwogICAg
IHJldHVybiBhZG9wdFB0cihuZXcgVVJMSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKaW5kZXggY2Q0YzYwMTQ5ODQ1ODQ4NWU0YzkwM2Mw
YTg3YjJmZTcyN2IwOWY5ZS4uMGM3MTMzZTc4YjhlNzNkMGY5OGQwMGE2MzM5ODQ2NTEwZTAzMjI3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSAiV2Vla0lucHV0VHlwZS5oIgogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMu
aCIKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMu
aCIKQEAgLTU1LDYgKzU2LDcgQEAgc3RhdGljIGNvbnN0IGludCB3ZWVrU3RlcFNjYWxlRmFjdG9y
ID0gNjA0ODAwMDAwOwogCiBQYXNzT3duUHRyPElucHV0VHlwZT4gV2Vla0lucHV0VHlwZTo6Y3Jl
YXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CisgICAgRmVhdHVyZU9ic2VydmVyOjpv
YnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlV2Vl
ayk7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWVrSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuY3BwCmluZGV4IDMxZDIyYzU1ZmI3
M2IyODNlZWNjYjA1OTdjNWY2YmQ0ZjY2ODJkMzAuLjdlMjE2NWFjYzY0YjA1YTI5YWI2MjJlZWY0
NmE2MTkxOGU5N2JjNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVyZU9i
c2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5jcHAK
QEAgLTM0LDcgKzM0LDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRmVhdHVyZU9ic2VydmVy
OjpGZWF0dXJlT2JzZXJ2ZXIoKQotICAgIDogbV9mZWF0dXJlTWFzaygwKQogewogfQogCkBAIC00
MywyMCArNDIsMTcgQEAgRmVhdHVyZU9ic2VydmVyOjp+RmVhdHVyZU9ic2VydmVyKCkKICAgICAv
LyBXZSBhbHdheXMgbG9nIFBhZ2VEZXN0cnVjdGlvbiBzbyB0aGF0IHdlIGhhdmUgYSBzY2FsZSBm
b3IgdGhlIHJlc3Qgb2YgdGhlIGZlYXR1cmVzLgogICAgIEhpc3RvZ3JhbVN1cHBvcnQ6Omhpc3Rv
Z3JhbUVudW1lcmF0aW9uKCJXZWJDb3JlLkZlYXR1cmVPYnNlcnZlciIsIFBhZ2VEZXN0cnVjdGlv
biwgTnVtYmVyT2ZGZWF0dXJlcyk7CiAKLSAgICBpZiAoIW1fZmVhdHVyZU1hc2spCisgICAgaWYg
KCFtX2ZlYXR1cmVCaXRzKQogICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKGludCBpID0gMDsg
aSA8IE51bWJlck9mRmVhdHVyZXM7ICsraSkgewotICAgICAgICBpZiAobV9mZWF0dXJlTWFzayAm
ICgxIDw8IGkpKQorICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBOdW1iZXJPZkZlYXR1cmVz
OyArK2kpIHsKKyAgICAgICAgaWYgKG1fZmVhdHVyZUJpdHMtPnF1aWNrR2V0KGkpKQogICAgICAg
ICAgICAgSGlzdG9ncmFtU3VwcG9ydDo6aGlzdG9ncmFtRW51bWVyYXRpb24oIldlYkNvcmUuRmVh
dHVyZU9ic2VydmVyIiwgaSwgTnVtYmVyT2ZGZWF0dXJlcyk7CiAgICAgfQogfQogCi12b2lkIEZl
YXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShET01XaW5kb3cqIGRvbVdpbmRvdywgRmVhdHVyZSBmZWF0
dXJlKQordm9pZCBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoRG9jdW1lbnQqIGRvY3VtZW50LCBG
ZWF0dXJlIGZlYXR1cmUpCiB7Ci0gICAgQVNTRVJUKGRvbVdpbmRvdyk7Ci0KLSAgICBEb2N1bWVu
dCogZG9jdW1lbnQgPSBkb21XaW5kb3ctPmRvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCkK
ICAgICAgICAgcmV0dXJuOwogCkBAIC02Nyw0ICs2MywxMCBAQCB2b2lkIEZlYXR1cmVPYnNlcnZl
cjo6b2JzZXJ2ZShET01XaW5kb3cqIGRvbVdpbmRvdywgRmVhdHVyZSBmZWF0dXJlKQogICAgIHBh
Z2UtPmZlYXR1cmVPYnNlcnZlcigpLT5kaWRPYnNlcnZlKGZlYXR1cmUpOwogfQogCit2b2lkIEZl
YXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShET01XaW5kb3cqIGRvbVdpbmRvdywgRmVhdHVyZSBmZWF0
dXJlKQoreworICAgIEFTU0VSVChkb21XaW5kb3cpOworICAgIG9ic2VydmUoZG9tV2luZG93LT5k
b2N1bWVudCgpLCBmZWF0dXJlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRmVhdHVyZU9ic2VydmVyLmgKaW5kZXggNWU1Y2RhNzRiODcyZTIzOGMwMjMyOTM0
ZTY3NWFjZWYwY2M0MGY2Zi4uNzhmOTllZDg2OTJkMzdlNmM4NWZjNTZmMTNkOGM1OGUwOTczYTAw
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5oCkBAIC0yNiwxMSArMjYsMTUg
QEAKICNpZm5kZWYgRmVhdHVyZU9ic2VydmVyX2gKICNkZWZpbmUgRmVhdHVyZU9ic2VydmVyX2gK
IAorI2luY2x1ZGUgPHd0Zi9CaXRWZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBET01XaW5kb3c7CitjbGFzcyBEb2N1bWVu
dDsKIAogY2xhc3MgRmVhdHVyZU9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShG
ZWF0dXJlT2JzZXJ2ZXIpOwpAQCAtNjAsMjIgKzY0LDU3IEBAIHB1YmxpYzoKICAgICAgICAgUHJl
Zml4ZWRUcmFuc2l0aW9uRW5kRXZlbnQsCiAgICAgICAgIFVucHJlZml4ZWRUcmFuc2l0aW9uRW5k
RXZlbnQsCiAgICAgICAgIFByZWZpeGVkQW5kVW5wcmVmaXhlZFRyYW5zaXRpb25FbmRFdmVudCwK
LSAgICAgICAgLy8gQWRkIG5ldyBmZWF0dXJlcyBhYm92ZSB0aGlzIGxpbmUuCisgICAgICAgIEF1
dG9Gb2N1c0F0dHJpYnV0ZSwKKyAgICAgICAgQXV0b1NhdmVBdHRyaWJ1dGUsCisgICAgICAgIERh
dGFMaXN0RWxlbWVudCwKKyAgICAgICAgRm9ybUF0dHJpYnV0ZSwKKyAgICAgICAgSW5jcmVtZW50
YWxBdHRyaWJ1dGUsCisgICAgICAgIElucHV0VHlwZUNvbG9yLAorICAgICAgICBJbnB1dFR5cGVE
YXRlLAorICAgICAgICBJbnB1dFR5cGVEYXRlVGltZSwKKyAgICAgICAgSW5wdXRUeXBlRGF0ZVRp
bWVGYWxsYmFjaywKKyAgICAgICAgSW5wdXRUeXBlRGF0ZVRpbWVMb2NhbCwKKyAgICAgICAgSW5w
dXRUeXBlRW1haWwsCisgICAgICAgIElucHV0VHlwZU1vbnRoLAorICAgICAgICBJbnB1dFR5cGVO
dW1iZXIsCisgICAgICAgIElucHV0VHlwZVJhbmdlLAorICAgICAgICBJbnB1dFR5cGVTZWFyY2gs
CisgICAgICAgIElucHV0VHlwZVRlbCwKKyAgICAgICAgSW5wdXRUeXBlVGltZSwKKyAgICAgICAg
SW5wdXRUeXBlVVJMLAorICAgICAgICBJbnB1dFR5cGVXZWVrLAorICAgICAgICBJbnB1dFR5cGVX
ZWVrRmFsbGJhY2ssCisgICAgICAgIExpc3RBdHRyaWJ1dGUsCisgICAgICAgIE1heEF0dHJpYnV0
ZSwKKyAgICAgICAgTWluQXR0cmlidXRlLAorICAgICAgICBQYXR0ZXJuQXR0cmlidXRlLAorICAg
ICAgICBQbGFjZWhvbGRlckF0dHJpYnV0ZSwKKyAgICAgICAgUHJlY2lzaW9uQXR0cmlidXRlLAor
ICAgICAgICBQcmVmaXhlZERpcmVjdG9yeUF0dHJpYnV0ZSwKKyAgICAgICAgUHJlZml4ZWRTcGVl
Y2hBdHRyaWJ1dGUsCisgICAgICAgIFJlcXVpcmVkQXR0cmlidXRlLAorICAgICAgICBSZXN1bHRz
QXR0cmlidXRlLAorICAgICAgICBTdGVwQXR0cmlidXRlLAorICAgICAgICAvLyBBZGQgbmV3IGZl
YXR1cmVzIGFib3ZlIHRoaXMgbGluZS4gRG9uJ3QgY2hhbmdlIGFzc2lnbmVkIG51bWJlcnMgb2Yg
ZWFjaCBpdGVtcy4KICAgICAgICAgTnVtYmVyT2ZGZWF0dXJlcywgLy8gVGhpcyBlbnVtIHZhbHVl
IG11c3QgYmUgbGFzdC4KICAgICB9OwogCisgICAgc3RhdGljIHZvaWQgb2JzZXJ2ZShEb2N1bWVu
dCosIEZlYXR1cmUpOwogICAgIHN0YXRpYyB2b2lkIG9ic2VydmUoRE9NV2luZG93KiwgRmVhdHVy
ZSk7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBkaWRPYnNlcnZlKEZlYXR1cmUgZmVhdHVyZSkKICAg
ICB7Ci0gICAgICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihtX2ZlYXR1cmVNYXNrKSAqIDggPj0g
TnVtYmVyT2ZGZWF0dXJlcywgRmVhdHVyZXNNdXN0Tm90T3ZlcmZsb3dCaXRtYXNrKTsKICAgICAg
ICAgQVNTRVJUKGZlYXR1cmUgIT0gUGFnZURlc3RydWN0aW9uKTsgLy8gUGFnZURlc3RydWN0aW9u
IGlzIHJlc2VydmVkIGFzIGEgc2NhbGluZyBmYWN0b3IuCiAgICAgICAgIEFTU0VSVChmZWF0dXJl
IDwgTnVtYmVyT2ZGZWF0dXJlcyk7Ci0gICAgICAgIG1fZmVhdHVyZU1hc2sgfD0gMSA8PCBzdGF0
aWNfY2FzdDxpbnQ+KGZlYXR1cmUpOworICAgICAgICBpZiAoIW1fZmVhdHVyZUJpdHMpIHsKKyAg
ICAgICAgICAgIG1fZmVhdHVyZUJpdHMgPSBhZG9wdFB0cihuZXcgQml0VmVjdG9yKE51bWJlck9m
RmVhdHVyZXMpKTsKKyAgICAgICAgICAgIG1fZmVhdHVyZUJpdHMtPmNsZWFyQWxsKCk7CisgICAg
ICAgIH0KKyAgICAgICAgbV9mZWF0dXJlQml0cy0+cXVpY2tTZXQoZmVhdHVyZSk7CiAgICAgfQog
Ci0gICAgaW50IG1fZmVhdHVyZU1hc2s7CisgICAgT3duUHRyPEJpdFZlY3Rvcj4gbV9mZWF0dXJl
Qml0czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>