<?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>52317</bug_id>
          
          <creation_ts>2011-01-12 12:09:10 -0800</creation_ts>
          <short_desc>Flip input[type=range] to use the new shadow DOM model.</short_desc>
          <delta_ts>2011-01-13 16:14:57 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>52382</dependson>
    
    <dependson>52399</dependson>
          <blocked>44907</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>333218</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-01-12 12:09:10 -0800</bug_when>
    <thetext>Flip input[type=range] to use the new shadow DOM model.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333223</commentid>
    <comment_count>1</comment_count>
      <attachid>78720</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-01-12 12:17:57 -0800</bug_when>
    <thetext>Created attachment 78720
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333465</commentid>
    <comment_count>2</comment_count>
      <attachid>78720</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-12 17:44:47 -0800</bug_when>
    <thetext>Comment on attachment 78720
Patch

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

Looks good.

&gt; Source/WebCore/html/InputType.h:181
&gt;      virtual bool canBeSuccessfulSubmitButton();
&gt;  
&gt; +    // Shadow tree handling
&gt; +    virtual void createShadowSubtree();
&gt; +    void destroyShadowSubtree();
&gt; +
&gt;      // Miscellaneous functions
&gt;  
&gt;      virtual bool rendererIsNeeded();

Formatting here is inconsistent. Number of blank lines (I prefer to never use more than one). Whether there is a blank line after a comment before the paragraph of functions it describes.

&gt; Source/WebCore/html/shadow/SliderThumbElement.cpp:44
&gt; +// FIXME: Find a way to cascade appearance and get rid of this class.

I think this would be clearer if you were a bit more explicit and specific.

&gt; Source/WebCore/rendering/MediaControlElements.cpp:474
&gt; +    // FIXME: Remove this once all media controls are transitioned to use the regular
&gt; +    // style calculation.

Seems a bit cryptic, but maybe someone more expert than I would understand.

&gt; Source/WebCore/rendering/RenderSlider.h:49
&gt; +        // FIXME: Eventually, accessing sliderThumbElement should not be necessary in this class.

It would be good to say why it would not be necessary. What is it currently used for? Why would that no longer be needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333750</commentid>
    <comment_count>3</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-01-13 09:53:48 -0800</bug_when>
    <thetext>Thanks for review!

(In reply to comment #2)
&gt; (From update of attachment 78720 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=78720&amp;action=review
&gt; 
&gt; Looks good.
&gt; 
&gt; &gt; Source/WebCore/html/InputType.h:181
&gt; &gt;      virtual bool canBeSuccessfulSubmitButton();
&gt; &gt;  
&gt; &gt; +    // Shadow tree handling
&gt; &gt; +    virtual void createShadowSubtree();
&gt; &gt; +    void destroyShadowSubtree();
&gt; &gt; +
&gt; &gt;      // Miscellaneous functions
&gt; &gt;  
&gt; &gt;      virtual bool rendererIsNeeded();
&gt; 
&gt; Formatting here is inconsistent. Number of blank lines (I prefer to never use more than one). Whether there is a blank line after a comment before the paragraph of functions it describes.

Will fix.

&gt; 
&gt; &gt; Source/WebCore/html/shadow/SliderThumbElement.cpp:44
&gt; &gt; +// FIXME: Find a way to cascade appearance and get rid of this class.
&gt; 
&gt; I think this would be clearer if you were a bit more explicit and specific.
Yeah, you&apos;re right. I&apos;ll add better comment around.

&gt; 
&gt; &gt; Source/WebCore/rendering/MediaControlElements.cpp:474
&gt; &gt; +    // FIXME: Remove this once all media controls are transitioned to use the regular
&gt; &gt; +    // style calculation.
&gt; 
&gt; Seems a bit cryptic, but maybe someone more expert than I would understand.
Will expand comment, too.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderSlider.h:49
&gt; &gt; +        // FIXME: Eventually, accessing sliderThumbElement should not be necessary in this class.
&gt; 
&gt; It would be good to say why it would not be necessary. What is it currently used for? Why would that no longer be needed?
And here too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333780</commentid>
    <comment_count>4</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-01-13 10:35:14 -0800</bug_when>
    <thetext>Committed r75725: &lt;http://trac.webkit.org/changeset/75725&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333832</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-13 11:29:02 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/75725 might have broken SnowLeopard Intel Release (Tests)
The following tests are not passing:
fast/css/pseudo-in-range-invalid-value.html
fast/css/pseudo-in-range.html
fast/forms/form-collection-elements.html
fast/forms/range-keyoperation.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333903</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-13 13:11:51 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/75728 might have broken Leopard Intel Release (Tests)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>333906</commentid>
    <comment_count>7</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-01-13 13:19:53 -0800</bug_when>
    <thetext>Fascinating. I&apos;ve forgotten the case of transferring shadow DOM between documents. Fixing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>334009</commentid>
    <comment_count>8</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-01-13 16:14:57 -0800</bug_when>
    <thetext>Committed r75749: &lt;http://trac.webkit.org/changeset/75749&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78720</attachid>
            <date>2011-01-12 12:17:57 -0800</date>
            <delta_ts>2011-01-12 17:44:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-52317-20110112121755.patch</filename>
            <type>text/plain</type>
            <size>23047</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzYzM0YTgzYTNmNmFmOTE4ZTc1NGVhNmQ5MGZmNTgzYmI3MWFhN2Q0Li5k
ZGNiNmQwZDYzZDA2MmQ0YmQ0ZTYxZDk3NGJlZWM0MDJiM2VjYjZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNjQgQEAKKzIwMTEtMDEtMTIgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGbGlwIGlucHV0W3R5cGU9cmFuZ2VdIHRvIHVzZSB0aGUgbmV3IHNoYWRvdyBET00gbW9kZWwu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MjMxNwor
CisgICAgICAgIFRoaXMgaXMgYSBzdHJhaWdodC11cCBmbGlwLCBtaW5pbWFsIGNoYW5nZSB0byB0
aGUgbG9naWMsIHdoaWNoIHdpbGwgYmUKKyAgICAgICAgcmVmYWN0b3JlZCBpbiBhIGZvbGxvdy11
cCBwYXRjaC4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAg
ICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVT
ZWxlY3Rvcjo6aW5pdEZvclN0eWxlUmVzb2x2ZSk6IENoYW5nZWQgdG8gdXNlIGVpdGhlcgorICAg
ICAgICAgICAgaG9zdCBvciBwYXJlbnQgbm9kZSB0byBmaW5kIHBhcmVudC4KKyAgICAgICAgKiBo
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6dXBkYXRlVHlwZSk6IEFkZGVkIGxvZ2ljIGZvciBkZXN0cm95aW5nL2NyZWF0aW5nCisg
ICAgICAgICAgICBzaGFkb3cgRE9NIHN1YnRyZWUuCisgICAgICAgICogaHRtbC9JbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlKTog
QWRkZWQgZW1wdHkgZGVjbC4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6ZGVzdHJveVNo
YWRvd1N1YnRyZWUpOiBBZGRlZCBhIG1ldGhvZCB0byBkZXN0cm95CisgICAgICAgICAgICBzaGFk
b3cgc3VidHJlZS4KKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOiBBZGRlZCBkZWZzLgorICAg
ICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJ
bnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUpOiBBZGRlZCBhIHZpcnR1YWwgbWV0aG9kIHRv
IGNyZWF0ZQorICAgICAgICAgICAgc2xpZGVyIHRodW1iLgorICAgICAgICAqIGh0bWwvUmFuZ2VJ
bnB1dFR5cGUuaDogQWRkZSBkZWYuCisgICAgICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJF
bGVtZW50LmNwcDogQWRkZWQgdGVtcG9yYXJ5IFJlbmRlclNsaWRlclRodW1iIGNsYXNzCisgICAg
ICAgICAgICB0byBoYW5kbGUgY2FzY2FkaW5nIGFwcGVhcmFuY2UuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJTbGlkZXJUaHVtYjo6UmVuZGVyU2xpZGVyVGh1bWIpOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNsaWRlclRodW1iOjpsYXlvdXQpOiBNb3ZlZCBoZXJlIHRoZSBsb2dp
YyBmcm9tCisgICAgICAgICAgICBSZW5kZXJTbGlkZXI6OmNyZWF0ZVRodW1iU3R5bGUuCisgICAg
ICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKTogQWRkZWQg
dmlydHVhbCBtZXRob2QgdG8KKyAgICAgICAgICAgIGNyZWF0ZSBSZW5kZXJTbGlkZXJUaHVtYiBp
bnN0YW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcik6IENoYW5nZWQgdG8gdXNlIEhUTUxEaXZFbGVtZW50CisgICAgICAgICAgICBh
cyBiYXNlIGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyVGh1bWJFbGVtZW50OjpkZXRh
Y2gpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRodW1iRWxlbWVudDo6U2xpZGVyVGh1bWJFbGVtZW50
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTbGlkZXJUaHVtYkVsZW1lbnQ6OmNyZWF0ZSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6dG9TbGlkZXJUaHVtYkVsZW1lbnQpOiBBZGRlZCBh
IGNhc3RpbmcgaGVscGVyLgorICAgICAgICAqIHJlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OmF0dGFj
aCk6IEFkZGVkIGhhbmRsaW5nIG9mIHNoYWRvdyBET00sCisgICAgICAgICAgICBzaW5jZSB0aGUg
d2hvbGUgbWV0aG9kIGlzIGhhbmQtcm9sbGVkLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sSW5wdXRFbGVtZW50Ojp1cGRhdGVTdHlsZSk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJTbGlkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjp+UmVu
ZGVyU2xpZGVyKTogUmVtb3ZlZCB1bm5lZWRlZCBjb2RlLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU2xpZGVyOjp0aHVtYlJlY3QpOiBDaGFuZ2VkIHRvIHVzZSBzbGlkZXJUaHVtYkVsZW1lbnQg
aGVscGVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpsYXlvdXQpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6c2xpZGVyVGh1bWJFbGVtZW50KTogQWRk
ZWQgYSB0ZW1wb3JhcnkgaGVscGVyIHRvIGFjY2VzcworICAgICAgICAgICAgU2xpZGVyVGh1bWJF
bGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjptb3VzZUV2ZW50SXNJblRo
dW1iKTogQ2hhbmdlZCB0byB1c2Ugc2xpZGVyVGh1bWJFbGVtZW50IGhlbHBlci4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6bW91c2VFdmVudE9mZnNldFRvVGh1bWIpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6c2V0VmFsdWVGb3JQb3NpdGlvbik6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpwb3NpdGlvbkZvck9mZnNldCk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjpjdXJyZW50UG9zaXRpb24p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNsaWRlcjo6dHJhY2tTaXplKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXI6OmZvcndhcmRFdmVudCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2xpZGVyOjppbkRyYWdNb2RlKTogRGl0dG8uCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oOiBBZGRlZCBkZWYuCisKIDIwMTEtMDEt
MDggIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXZpZCBIeWF0dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTdHlsZVNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAppbmRleCBlMWU2MzkzNDRhYTliMjE5N2U0YmMwMTQ5YTJlZDYyMGYyZDM4NWU3Li42MzYz
Y2E5YjY2YWJhZDRmOTc0YTE2ZjcxMjhmMWE4NGQ2ZWFhNjA2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2VsZWN0b3IuY3BwCkBAIC04MjIsMTIgKzgyMiw3IEBAIGlubGluZSB2b2lkIENT
U1N0eWxlU2VsZWN0b3I6OmluaXRGb3JTdHlsZVJlc29sdmUoRWxlbWVudCogZSwgUmVuZGVyU3R5
bGUqIHBhcmVuCiB7CiAgICAgbV9jaGVja2VyLm1fcHNldWRvU3R5bGUgPSBwc2V1ZG9JRDsKIAot
ICAgIG1fcGFyZW50Tm9kZSA9IGUgPyBlLT5wYXJlbnROb2RlKCkgOiAwOwotCi0jaWYgRU5BQkxF
KFNWRykKLSAgICBpZiAoIW1fcGFyZW50Tm9kZSAmJiBlICYmIGUtPmlzU1ZHRWxlbWVudCgpICYm
IGUtPmlzU2hhZG93Um9vdCgpKQotICAgICAgICBtX3BhcmVudE5vZGUgPSBlLT5zaGFkb3dIb3N0
KCk7Ci0jZW5kaWYKKyAgICBtX3BhcmVudE5vZGUgPSBlID8gZS0+cGFyZW50T3JIb3N0Tm9kZSgp
IDogMDsKIAogICAgIGlmIChwYXJlbnRTdHlsZSkKICAgICAgICAgbV9wYXJlbnRTdHlsZSA9IHBh
cmVudFN0eWxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXgg
MDA3NjM5YjIxYWRkZTAzODA1MGI3MjUwMmIyMDRhMTAxN2IxZDQ0ZS4uN2QyYTNjNTQyOTI3NDQ0
ZTAyOGUwYzkyMzEyYjRlYjE4OGZjZDI4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwCkBAIC00NDcsNyArNDQ3LDkgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1
cGRhdGVUeXBlKCkKICAgICBib29sIG5lZWRlZEFjdGl2YXRpb25DYWxsYmFjayA9IG5lZWRzQWN0
aXZhdGlvbkNhbGxiYWNrKCk7CiAgICAgYm9vbCBkaWRSZXNwZWN0SGVpZ2h0QW5kV2lkdGggPSBt
X2lucHV0VHlwZS0+c2hvdWxkUmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpOwogCisg
ICAgbV9pbnB1dFR5cGUtPmRlc3Ryb3lTaGFkb3dTdWJ0cmVlKCk7CiAgICAgbV9pbnB1dFR5cGUg
PSBuZXdUeXBlLnJlbGVhc2UoKTsKKyAgICBtX2lucHV0VHlwZS0+Y3JlYXRlU2hhZG93U3VidHJl
ZSgpOwogCiAgICAgc2V0TmVlZHNXaWxsVmFsaWRhdGVDaGVjaygpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5jcHAKaW5kZXggYmU4NjM5OWMwNDA3NGY2OTc3NmM5YTcxMmFhMjI1NmZhZmEwZTJk
Ni4uNzI5ZjIwNGViMWExZWQwYmZiYjU3NTZjM2FmNGQxZjBjMTgzM2U5YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmNwcApAQCAtMzQ5LDYgKzM0OSwxNSBAQCBSZW5kZXJPYmplY3QqIElucHV0
VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSogc3R5bGUpIGNv
bnN0CiAgICAgcmV0dXJuIFJlbmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0KGVsZW1lbnQoKSwgc3R5
bGUpOwogfQogCit2b2lkIElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCit7Cit9CisK
K3ZvaWQgSW5wdXRUeXBlOjpkZXN0cm95U2hhZG93U3VidHJlZSgpCit7CisgICAgZWxlbWVudCgp
LT5zZXRTaGFkb3dSb290KDApOworfQorCiBkb3VibGUgSW5wdXRUeXBlOjpwYXJzZVRvRG91Ymxl
KGNvbnN0IFN0cmluZyYsIGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IGRlZmF1bHRWYWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IDRkMjVhOTc0YzMwMGMy
ODc4ZmJhNjI4ODI0ZDA3MDc0ZmZmYzkyOWEuLmMzNTM3ZjYyNDg5MjAxNmNjMjY5ZDJmZDJiM2Yy
ZDg2ZDAxODQzMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMTcxLDYgKzE3MSwxMSBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRUb0Fu
eUVsZW1lbnQpOwogICAgIHZpcnR1YWwgYm9vbCBjYW5CZVN1Y2Nlc3NmdWxTdWJtaXRCdXR0b24o
KTsKIAorCisgICAgLy8gU2hhZG93IHRyZWUgaGFuZGxpbmcKKyAgICB2aXJ0dWFsIHZvaWQgY3Jl
YXRlU2hhZG93U3VidHJlZSgpOworICAgIHZvaWQgZGVzdHJveVNoYWRvd1N1YnRyZWUoKTsKKwog
ICAgIC8vIE1pc2NlbGxhbmVvdXMgZnVuY3Rpb25zCiAKICAgICB2aXJ0dWFsIGJvb2wgcmVuZGVy
ZXJJc05lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0
VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCA1
ZDcxZGE3ODc4NzE3YzZiZmQzZTM4ZWExNGJjMjNmMzk3MGI1YzI5Li4zZmNiNjQxNWQzMGI0ODdi
YzNmZWNmZTQyMWMzNmMzMDczNWE4MzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L1JhbmdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRU
eXBlLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIK
ICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyU2xpZGVyLmgiCisj
aW5jbHVkZSAiU2xpZGVyVGh1bWJFbGVtZW50LmgiCiAjaW5jbHVkZSAiU3RlcFJhbmdlLmgiCiAj
aW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CkBAIC0xODYsNiAr
MTg3LDExIEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmZvcndhcmRFdmVudChFdmVudCogZXZlbnQp
CiAgICAgICAgIHRvUmVuZGVyU2xpZGVyKGVsZW1lbnQoKS0+cmVuZGVyZXIoKSktPmZvcndhcmRF
dmVudChldmVudCk7CiB9CiAKK3ZvaWQgUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRy
ZWUoKQoreworICAgIGVsZW1lbnQoKS0+c2V0U2hhZG93Um9vdChTbGlkZXJUaHVtYkVsZW1lbnQ6
OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpKTsKK30KKwogUmVuZGVyT2JqZWN0KiBSYW5n
ZUlucHV0VHlwZTo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHls
ZSopIGNvbnN0CiB7CiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclNsaWRlcihlbGVtZW50
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCmluZGV4IDdmMzQxYTc2NTU3MGNh
MTlmYmE2ZGNmZjdlNThhOWU2ZDA2MjNmMGYuLjU3ZWIyOTk5Y2RhNTllNWQyNDU3MGNjYzQ4MGMw
ZjY3ZmZlZDkxMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKQEAgLTU4LDYg
KzU4LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5ZG93bkV2ZW50KEtl
eWJvYXJkRXZlbnQqKTsKICAgICB2aXJ0dWFsIHZvaWQgZm9yd2FyZEV2ZW50KEV2ZW50Kik7CiAg
ICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiwgUmVu
ZGVyU3R5bGUqKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgp
OwogICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlVG9Eb3VibGUoY29uc3QgU3RyaW5nJiwgZG91Ymxl
KSBjb25zdDsKICAgICB2aXJ0dWFsIFN0cmluZyBzZXJpYWxpemUoZG91YmxlKSBjb25zdDsKICAg
ICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZFRvQW55RWxlbWVudCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcApp
bmRleCA1NTMwMWMxNWFiMDZkNGFiYTQ5NmEyNzg0ZGM5YmU2NWEwNzAxN2NjLi5kMjNmZWFlOWUx
MjZmNjlhNjVkOTI1MTFlZjNhNjE0ZWI5N2MxY2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTM3LDEzICszNyw1MSBAQAog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlJl
bmRlclNsaWRlci5oIgorI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorLy8gRklYTUU6IEZpbmQgYSB3YXkgdG8gY2FzY2FkZSBhcHBlYXJhbmNlIGFuZCBn
ZXQgcmlkIG9mIHRoaXMgY2xhc3MuCitjbGFzcyBSZW5kZXJTbGlkZXJUaHVtYiA6IHB1YmxpYyBS
ZW5kZXJCbG9jayB7CitwdWJsaWM6CisgICAgUmVuZGVyU2xpZGVyVGh1bWIoTm9kZSopOworICAg
IHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKK307CisKKworUmVuZGVyU2xpZGVyVGh1bWI6OlJlbmRl
clNsaWRlclRodW1iKE5vZGUqIG5vZGUpCisgICAgOiBSZW5kZXJCbG9jayhub2RlKQoreworfQor
Cit2b2lkIFJlbmRlclNsaWRlclRodW1iOjpsYXlvdXQoKQoreworICAgIFJlbmRlclN0eWxlKiBw
YXJlbnRTdHlsZSA9IHBhcmVudCgpLT5zdHlsZSgpOworICAgIGlmIChwYXJlbnRTdHlsZS0+YXBw
ZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFydCkKKyAgICAgICAgc3R5bGUoKS0+c2V0QXBw
ZWFyYW5jZShTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCk7CisgICAgZWxzZSBpZiAocGFyZW50U3R5
bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJIb3Jpem9udGFsUGFydCkKKyAgICAgICAgc3R5bGUo
KS0+c2V0QXBwZWFyYW5jZShTbGlkZXJUaHVtYkhvcml6b250YWxQYXJ0KTsKKyAgICBlbHNlIGlm
IChwYXJlbnRTdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyUGFydCkKKyAgICAgICAg
c3R5bGUoKS0+c2V0QXBwZWFyYW5jZShNZWRpYVNsaWRlclRodW1iUGFydCk7CisgICAgZWxzZSBp
ZiAocGFyZW50U3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclBhcnQpCisg
ICAgICAgIHN0eWxlKCktPnNldEFwcGVhcmFuY2UoTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQp
OworCisgICAgaWYgKHN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSkgeworICAgICAgICAvLyBGSVhN
RTogVGhpcyBzaG91bGQgcGFzcyB0aGUgc3R5bGUsIG5vdCB0aGUgcmVuZGVyZXIsIHRvIHRoZSB0
aGVtZS4KKyAgICAgICAgdGhlbWUoKS0+YWRqdXN0U2xpZGVyVGh1bWJTaXplKHRoaXMpOworICAg
IH0KKyAgICBSZW5kZXJCbG9jazo6bGF5b3V0KCk7Cit9CisKK1JlbmRlck9iamVjdCogU2xpZGVy
VGh1bWJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0
eWxlKikKK3sKKyAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyU2xpZGVyVGh1bWIodGhpcyk7
Cit9CisKIHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
KiBldmVudCkKIHsKICAgICBpZiAoIWV2ZW50LT5pc01vdXNlRXZlbnQoKSkgewotICAgICAgICBT
aGFkb3dCbG9ja0VsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworICAgICAgICBI
VE1MRGl2RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTkzLDcgKzEzMSw3IEBAIHZvaWQgU2xpZGVyVGh1bWJFbGVtZW50Ojpk
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAgICAgfQogICAgIH0KIAotICAg
IFNoYWRvd0Jsb2NrRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7CisgICAgSFRN
TERpdkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOwogfQogCiB2b2lkIFNsaWRl
clRodW1iRWxlbWVudDo6ZGV0YWNoKCkKQEAgLTEwMiw3ICsxNDAsNyBAQCB2b2lkIFNsaWRlclRo
dW1iRWxlbWVudDo6ZGV0YWNoKCkKICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50
KCktPmZyYW1lKCkpCiAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCktPnNldENhcHR1
cmluZ01vdXNlRXZlbnRzTm9kZSgwKTsgICAgICAKICAgICB9Ci0gICAgU2hhZG93QmxvY2tFbGVt
ZW50OjpkZXRhY2goKTsKKyAgICBIVE1MRGl2RWxlbWVudDo6ZGV0YWNoKCk7CiB9CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKaW5kZXgg
NTIyMGYyYmRhZWYwY2FhMzY4ZTJiMmViMDBhZWI2MDExZWY3Nzk1Yy4uNzIxOTE4NjI0M2ZkOGRi
ZTk0NzMyZjg0NDRlMmU4MTAyYmE0YWE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmgKQEAgLTMzLDggKzMzLDkgQEAKICNkZWZpbmUgU2xp
ZGVyVGh1bWJFbGVtZW50X2gKIAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJI
VE1MRGl2RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlJlbmRl
clN0eWxlQ29uc3RhbnRzLmgiCi0jaW5jbHVkZSAiU2hhZG93RWxlbWVudC5oIgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQzLDkgKzQ0LDkgQEAg
Y2xhc3MgSFRNTEVsZW1lbnQ7CiBjbGFzcyBFdmVudDsKIGNsYXNzIEZsb2F0UG9pbnQ7CiAKLWNs
YXNzIFNsaWRlclRodW1iRWxlbWVudCA6IHB1YmxpYyBTaGFkb3dCbG9ja0VsZW1lbnQgeworY2xh
c3MgU2xpZGVyVGh1bWJFbGVtZW50IDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTbGlkZXJUaHVtYkVsZW1lbnQ+IGNyZWF0ZShIVE1MRWxl
bWVudCogc2hhZG93UGFyZW50KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTbGlkZXJUaHVtYkVs
ZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogCiAgICAgYm9vbCBpbkRyYWdNb2RlKCkgY29uc3Qg
eyByZXR1cm4gbV9pbkRyYWdNb2RlOyB9CiAKQEAgLTUzLDIyICs1NCwyMyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGRldGFjaCgpOwogICAgIHZpcnR1YWwgQXRvbWljU3RyaW5nIHNoYWRv
d1BzZXVkb0lkKCkgY29uc3Q7CiAKLXByaXZhdGU6ICAgICAgICAKLSAgICBTbGlkZXJUaHVtYkVs
ZW1lbnQoSFRNTEVsZW1lbnQqIHNoYWRvd1BhcmVudCk7Citwcml2YXRlOgorICAgIFNsaWRlclRo
dW1iRWxlbWVudChEb2N1bWVudCopOworICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVS
ZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAKICAgICBGbG9hdFBvaW50IG1f
b2Zmc2V0VG9UaHVtYjsKICAgICBib29sIG1faW5EcmFnTW9kZTsKIH07CiAKLWlubGluZSBTbGlk
ZXJUaHVtYkVsZW1lbnQ6OlNsaWRlclRodW1iRWxlbWVudChIVE1MRWxlbWVudCogc2hhZG93UGFy
ZW50KQotICAgIDogU2hhZG93QmxvY2tFbGVtZW50KHNoYWRvd1BhcmVudCkKK2lubGluZSBTbGlk
ZXJUaHVtYkVsZW1lbnQ6OlNsaWRlclRodW1iRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCisg
ICAgOiBIVE1MRGl2RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQpCiAgICAgLCBt
X2luRHJhZ01vZGUoZmFsc2UpCiB7CiB9CiAKLWlubGluZSBQYXNzUmVmUHRyPFNsaWRlclRodW1i
RWxlbWVudD4gU2xpZGVyVGh1bWJFbGVtZW50OjpjcmVhdGUoSFRNTEVsZW1lbnQqIHNoYWRvd1Bh
cmVudCkKK2lubGluZSBQYXNzUmVmUHRyPFNsaWRlclRodW1iRWxlbWVudD4gU2xpZGVyVGh1bWJF
bGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU2xpZGVyVGh1bWJFbGVtZW50KHNoYWRvd1BhcmVudCkpOworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgU2xpZGVyVGh1bWJFbGVtZW50KGRvY3VtZW50KSk7CiB9CiAKIGlubGluZSBBdG9t
aWNTdHJpbmcgU2xpZGVyVGh1bWJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CkBAIC03
Nyw3ICs3OSwxMiBAQCBpbmxpbmUgQXRvbWljU3RyaW5nIFNsaWRlclRodW1iRWxlbWVudDo6c2hh
ZG93UHNldWRvSWQoKSBjb25zdAogICAgIHJldHVybiBzbGlkZXJUaHVtYjsKIH0KIAoraW5saW5l
IFNsaWRlclRodW1iRWxlbWVudCogdG9TbGlkZXJUaHVtYkVsZW1lbnQoTm9kZSogbm9kZSkKK3sK
KyAgICBBU1NFUlQoIW5vZGUgfHwgbm9kZS0+aXNIVE1MRWxlbWVudCgpKTsKKyAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8U2xpZGVyVGh1bWJFbGVtZW50Kj4obm9kZSk7CiB9CiAKK30KIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVu
dHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNw
cAppbmRleCBlNWU1YWU1OGI2YzFlZTc0YjlhYjk5OWIxNGU4M2NjNmJjNjk3NDc0Li43YjNlOTJm
MmRlYWZiZDRlYjU3NzdjMjAxMjNkMDMwYmM4YjgxNDUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTQ0OSw2ICs0NDksOCBA
QCB2b2lkIE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6YXR0YWNoKCkKICAgICAgICAgcGFyZW50
Tm9kZSgpLT5yZW5kZXJlcigpLT5hZGRDaGlsZChyZW5kZXJlciwgc2libGluZyA/IHNpYmxpbmct
PnJlbmRlcmVyKCkgOiAwKTsKICAgICB9ICAKICAgICBDb250YWluZXJOb2RlOjphdHRhY2goKTsK
KyAgICBpZiAoTm9kZSogc2hhZG93Tm9kZSA9IHNoYWRvd1Jvb3QoKSkKKyAgICAgICAgc2hhZG93
Tm9kZS0+YXR0YWNoKCk7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50Ojp1cGRh
dGVTdHlsZSgpCkBAIC00NjcsNiArNDY5LDExIEBAIHZvaWQgTWVkaWFDb250cm9sSW5wdXRFbGVt
ZW50Ojp1cGRhdGVTdHlsZSgpCiAgICAgICAgIGF0dGFjaCgpOwogICAgIGVsc2UgaWYgKHJlbmRl
cmVyKCkpCiAgICAgICAgIHJlbmRlcmVyKCktPnNldFN0eWxlKHN0eWxlLmdldCgpKTsKKworICAg
IC8vIEZJWE1FOiBSZW1vdmUgdGhpcyBvbmNlIGFsbCBtZWRpYSBjb250cm9scyBhcmUgdHJhbnNp
dGlvbmVkIHRvIHVzZSB0aGUgcmVndWxhcgorICAgIC8vIHN0eWxlIGNhbGN1bGF0aW9uLgorICAg
IGlmIChOb2RlKiBzaGFkb3dOb2RlID0gc2hhZG93Um9vdCgpKQorICAgICAgICBzaGFkb3dOb2Rl
LT5yZWNhbGNTdHlsZShOb2RlOjpGb3JjZSk7CiB9CiAgICAgCiBib29sIE1lZGlhQ29udHJvbElu
cHV0RWxlbWVudDo6aGl0VGVzdChjb25zdCBJbnRQb2ludCYgYWJzUG9pbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2xpZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCmluZGV4IDVlZmY4MjYyMjcwY2M3ZTYzMjU2
ZjdiZWNlZWM0Y2U2NzAwMGRiNjMuLmIwZGMwZDlmOThlYjM2M2UwMzc5NjFhZWQ2OGU5OGY3NmU0
YTY4ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbGlkZXIuY3BwCkBAIC02
MSw4ICs2MSw2IEBAIFJlbmRlclNsaWRlcjo6UmVuZGVyU2xpZGVyKEhUTUxJbnB1dEVsZW1lbnQq
IGVsZW1lbnQpCiAKIFJlbmRlclNsaWRlcjo6flJlbmRlclNsaWRlcigpCiB7Ci0gICAgaWYgKG1f
dGh1bWIpCi0gICAgICAgIG1fdGh1bWItPmRldGFjaCgpOwogfQogCiBpbnQgUmVuZGVyU2xpZGVy
OjpiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCAvKmZpcnN0TGluZSovLCBMaW5l
RGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9uTW9kZSkgY29uc3QKQEAgLTEwMSwzNyArOTksMTQg
QEAgdm9pZCBSZW5kZXJTbGlkZXI6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkKICAg
ICBzZXRQcmVmZXJyZWRMb2dpY2FsV2lkdGhzRGlydHkoZmFsc2UpOyAKIH0KIAotdm9pZCBSZW5k
ZXJTbGlkZXI6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5k
ZXJTdHlsZSogb2xkU3R5bGUpCi17Ci0gICAgUmVuZGVyQmxvY2s6OnN0eWxlRGlkQ2hhbmdlKGRp
ZmYsIG9sZFN0eWxlKTsKLQotICAgIGlmIChtX3RodW1iKQotICAgICAgICBtX3RodW1iLT5yZW5k
ZXJlcigpLT5zZXRTdHlsZShjcmVhdGVUaHVtYlN0eWxlKHN0eWxlKCkpKTsKLX0KLQotUGFzc1Jl
ZlB0cjxSZW5kZXJTdHlsZT4gUmVuZGVyU2xpZGVyOjpjcmVhdGVUaHVtYlN0eWxlKGNvbnN0IFJl
bmRlclN0eWxlKiBwYXJlbnRTdHlsZSkKLXsKLSAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IHRodW1i
U3R5bGUgPSBkb2N1bWVudCgpLT5zdHlsZVNlbGVjdG9yKCktPnN0eWxlRm9yRWxlbWVudChtX3Ro
dW1iLmdldCgpLCBzdHlsZSgpLCBmYWxzZSk7Ci0KLSAgICBpZiAocGFyZW50U3R5bGUtPmFwcGVh
cmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQpCi0gICAgICAgIHRodW1iU3R5bGUtPnNldEFw
cGVhcmFuY2UoU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQpOwotICAgIGVsc2UgaWYgKHBhcmVudFN0
eWxlLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVySG9yaXpvbnRhbFBhcnQpCi0gICAgICAgIHRodW1i
U3R5bGUtPnNldEFwcGVhcmFuY2UoU2xpZGVyVGh1bWJIb3Jpem9udGFsUGFydCk7Ci0gICAgZWxz
ZSBpZiAocGFyZW50U3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVNsaWRlclBhcnQpCi0gICAg
ICAgIHRodW1iU3R5bGUtPnNldEFwcGVhcmFuY2UoTWVkaWFTbGlkZXJUaHVtYlBhcnQpOwotICAg
IGVsc2UgaWYgKHBhcmVudFN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJQ
YXJ0KQotICAgICAgICB0aHVtYlN0eWxlLT5zZXRBcHBlYXJhbmNlKE1lZGlhVm9sdW1lU2xpZGVy
VGh1bWJQYXJ0KTsKLQotICAgIHJldHVybiB0aHVtYlN0eWxlLnJlbGVhc2UoKTsKLX0KLQogSW50
UmVjdCBSZW5kZXJTbGlkZXI6OnRodW1iUmVjdCgpCiB7Ci0gICAgaWYgKCFtX3RodW1iKQorICAg
IFNsaWRlclRodW1iRWxlbWVudCogdGh1bWJFbGVtZW50ID0gc2xpZGVyVGh1bWJFbGVtZW50KCk7
CisgICAgaWYgKCF0aHVtYkVsZW1lbnQpCiAgICAgICAgIHJldHVybiBJbnRSZWN0KCk7CiAKICAg
ICBJbnRSZWN0IHRodW1iUmVjdDsKLSAgICBSZW5kZXJCb3gqIHRodW1iID0gdG9SZW5kZXJCb3go
bV90aHVtYi0+cmVuZGVyZXIoKSk7CisgICAgUmVuZGVyQm94KiB0aHVtYiA9IHRvUmVuZGVyQm94
KHRodW1iRWxlbWVudC0+cmVuZGVyZXIoKSk7CiAKICAgICB0aHVtYlJlY3Quc2V0V2lkdGgodGh1
bWItPnN0eWxlKCktPndpZHRoKCkuY2FsY01pblZhbHVlKGNvbnRlbnRXaWR0aCgpKSk7CiAgICAg
dGh1bWJSZWN0LnNldEhlaWdodCh0aHVtYi0+c3R5bGUoKS0+aGVpZ2h0KCkuY2FsY01pblZhbHVl
KGNvbnRlbnRIZWlnaHQoKSkpOwpAQCAtMTUzLDcgKzEyOCw4IEBAIHZvaWQgUmVuZGVyU2xpZGVy
OjpsYXlvdXQoKQogewogICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsKIAotICAgIFJlbmRlckJv
eCogdGh1bWIgPSBtX3RodW1iID8gdG9SZW5kZXJCb3gobV90aHVtYi0+cmVuZGVyZXIoKSkgOiAw
OworICAgIFNsaWRlclRodW1iRWxlbWVudCogdGh1bWJFbGVtZW50ID0gc2xpZGVyVGh1bWJFbGVt
ZW50KCk7CisgICAgUmVuZGVyQm94KiB0aHVtYiA9IHRodW1iRWxlbWVudCA/IHRvUmVuZGVyQm94
KHRodW1iRWxlbWVudC0+cmVuZGVyZXIoKSkgOiAwOwogCiAgICAgSW50U2l6ZSBiYXNlU2l6ZShi
b3JkZXJBbmRQYWRkaW5nV2lkdGgoKSwgYm9yZGVyQW5kUGFkZGluZ0hlaWdodCgpKTsKIApAQCAt
MjAwLDQzICsxNzYsMzUgQEAgdm9pZCBSZW5kZXJTbGlkZXI6OmxheW91dCgpCiAgICAgc2V0TmVl
ZHNMYXlvdXQoZmFsc2UpOwogfQogCi12b2lkIFJlbmRlclNsaWRlcjo6dXBkYXRlRnJvbUVsZW1l
bnQoKQorU2xpZGVyVGh1bWJFbGVtZW50KiBSZW5kZXJTbGlkZXI6OnNsaWRlclRodW1iRWxlbWVu
dCgpIGNvbnN0CiB7Ci0gICAgLy8gTGF5b3V0IHdpbGwgdGFrZSBjYXJlIG9mIHRoZSB0aHVtYidz
IHNpemUgYW5kIHBvc2l0aW9uLgotICAgIGlmICghbV90aHVtYikgewotICAgICAgICBtX3RodW1i
ID0gU2xpZGVyVGh1bWJFbGVtZW50OjpjcmVhdGUoc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihu
b2RlKCkpKTsKLSAgICAgICAgUmVmUHRyPFJlbmRlclN0eWxlPiB0aHVtYlN0eWxlID0gY3JlYXRl
VGh1bWJTdHlsZShzdHlsZSgpKTsKLSAgICAgICAgbV90aHVtYi0+c2V0UmVuZGVyZXIobV90aHVt
Yi0+Y3JlYXRlUmVuZGVyZXIocmVuZGVyQXJlbmEoKSwgdGh1bWJTdHlsZS5nZXQoKSkpOwotICAg
ICAgICBtX3RodW1iLT5yZW5kZXJlcigpLT5zZXRTdHlsZSh0aHVtYlN0eWxlLnJlbGVhc2UoKSk7
Ci0gICAgICAgIG1fdGh1bWItPnNldEF0dGFjaGVkKCk7Ci0gICAgICAgIG1fdGh1bWItPnNldElu
RG9jdW1lbnQoKTsKLSAgICAgICAgYWRkQ2hpbGQobV90aHVtYi0+cmVuZGVyZXIoKSk7Ci0gICAg
fQotICAgIHNldE5lZWRzTGF5b3V0KHRydWUpOworICAgIHJldHVybiB0b1NsaWRlclRodW1iRWxl
bWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSgpKS0+c2hhZG93Um9vdCgpKTsKIH0KIAog
Ym9vbCBSZW5kZXJTbGlkZXI6Om1vdXNlRXZlbnRJc0luVGh1bWIoTW91c2VFdmVudCogZXZ0KQog
ewotICAgIGlmICghbV90aHVtYiB8fCAhbV90aHVtYi0+cmVuZGVyZXIoKSkKKyAgICBTbGlkZXJU
aHVtYkVsZW1lbnQqIHRodW1iRWxlbWVudCA9IHNsaWRlclRodW1iRWxlbWVudCgpOworICAgIGlm
ICghdGh1bWJFbGVtZW50IHx8ICF0aHVtYkVsZW1lbnQtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogI2lmIEVOQUJMRShWSURFTykKICAgICBpZiAoc3R5bGUoKS0+YXBwZWFy
YW5jZSgpID09IE1lZGlhU2xpZGVyUGFydCB8fCBzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gTWVk
aWFWb2x1bWVTbGlkZXJQYXJ0KSB7Ci0gICAgICAgIE1lZGlhQ29udHJvbElucHV0RWxlbWVudCAq
c2xpZGVyVGh1bWIgPSBzdGF0aWNfY2FzdDxNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQqPihtX3Ro
dW1iLT5yZW5kZXJlcigpLT5ub2RlKCkpOworICAgICAgICBNZWRpYUNvbnRyb2xJbnB1dEVsZW1l
bnQqIHNsaWRlclRodW1iID0gc3RhdGljX2Nhc3Q8TWVkaWFDb250cm9sSW5wdXRFbGVtZW50Kj4o
dGh1bWJFbGVtZW50LT5yZW5kZXJlcigpLT5ub2RlKCkpOwogICAgICAgICByZXR1cm4gc2xpZGVy
VGh1bWItPmhpdFRlc3QoZXZ0LT5hYnNvbHV0ZUxvY2F0aW9uKCkpOwogICAgIH0KICNlbmRpZgog
Ci0gICAgRmxvYXRQb2ludCBsb2NhbFBvaW50ID0gbV90aHVtYi0+cmVuZGVyQm94KCktPmFic29s
dXRlVG9Mb2NhbChldnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUpOwotICAgIElu
dFJlY3QgdGh1bWJCb3VuZHMgPSBtX3RodW1iLT5yZW5kZXJCb3goKS0+Ym9yZGVyQm94UmVjdCgp
OworICAgIEZsb2F0UG9pbnQgbG9jYWxQb2ludCA9IHRodW1iRWxlbWVudC0+cmVuZGVyQm94KCkt
PmFic29sdXRlVG9Mb2NhbChldnQtPmFic29sdXRlTG9jYXRpb24oKSwgZmFsc2UsIHRydWUpOwor
ICAgIEludFJlY3QgdGh1bWJCb3VuZHMgPSB0aHVtYkVsZW1lbnQtPnJlbmRlckJveCgpLT5ib3Jk
ZXJCb3hSZWN0KCk7CiAgICAgcmV0dXJuIHRodW1iQm91bmRzLmNvbnRhaW5zKHJvdW5kZWRJbnRQ
b2ludChsb2NhbFBvaW50KSk7CiB9CiAKIEZsb2F0UG9pbnQgUmVuZGVyU2xpZGVyOjptb3VzZUV2
ZW50T2Zmc2V0VG9UaHVtYihNb3VzZUV2ZW50KiBldnQpCiB7Ci0gICAgQVNTRVJUKG1fdGh1bWIg
JiYgbV90aHVtYi0+cmVuZGVyZXIoKSk7Ci0gICAgRmxvYXRQb2ludCBsb2NhbFBvaW50ID0gbV90
aHVtYi0+cmVuZGVyQm94KCktPmFic29sdXRlVG9Mb2NhbChldnQtPmFic29sdXRlTG9jYXRpb24o
KSwgZmFsc2UsIHRydWUpOwotICAgIEludFJlY3QgdGh1bWJCb3VuZHMgPSBtX3RodW1iLT5yZW5k
ZXJCb3goKS0+Ym9yZGVyQm94UmVjdCgpOworICAgIFNsaWRlclRodW1iRWxlbWVudCogdGh1bWJF
bGVtZW50ID0gc2xpZGVyVGh1bWJFbGVtZW50KCk7CisgICAgQVNTRVJUKHRodW1iRWxlbWVudCAm
JiB0aHVtYkVsZW1lbnQtPnJlbmRlcmVyKCkpOworICAgIEZsb2F0UG9pbnQgbG9jYWxQb2ludCA9
IHRodW1iRWxlbWVudC0+cmVuZGVyQm94KCktPmFic29sdXRlVG9Mb2NhbChldnQtPmFic29sdXRl
TG9jYXRpb24oKSwgZmFsc2UsIHRydWUpOworICAgIEludFJlY3QgdGh1bWJCb3VuZHMgPSB0aHVt
YkVsZW1lbnQtPnJlbmRlckJveCgpLT5ib3JkZXJCb3hSZWN0KCk7CiAgICAgRmxvYXRQb2ludCBv
ZmZzZXQ7CiAgICAgb2Zmc2V0LnNldFgodGh1bWJCb3VuZHMueCgpICsgdGh1bWJCb3VuZHMud2lk
dGgoKSAvIDIgLSBsb2NhbFBvaW50LngoKSk7CiAgICAgb2Zmc2V0LnNldFkodGh1bWJCb3VuZHMu
eSgpICsgdGh1bWJCb3VuZHMuaGVpZ2h0KCkgLyAyIC0gbG9jYWxQb2ludC55KCkpOwpAQCAtMjQ1
LDcgKzIxMyw4IEBAIEZsb2F0UG9pbnQgUmVuZGVyU2xpZGVyOjptb3VzZUV2ZW50T2Zmc2V0VG9U
aHVtYihNb3VzZUV2ZW50KiBldnQpCiAKIHZvaWQgUmVuZGVyU2xpZGVyOjpzZXRWYWx1ZUZvclBv
c2l0aW9uKGludCBwb3NpdGlvbikKIHsKLSAgICBpZiAoIW1fdGh1bWIgfHwgIW1fdGh1bWItPnJl
bmRlcmVyKCkpCisgICAgU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYkVsZW1lbnQgPSBzbGlkZXJU
aHVtYkVsZW1lbnQoKTsKKyAgICBpZiAoIXRodW1iRWxlbWVudCB8fCAhdGh1bWJFbGVtZW50LT5y
ZW5kZXJlcigpKQogICAgICAgICByZXR1cm47CiAKICAgICBIVE1MSW5wdXRFbGVtZW50KiBlbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSk7CkBAIC0yNzAsNDAg
KzIzOSw0NSBAQCB2b2lkIFJlbmRlclNsaWRlcjo6c2V0VmFsdWVGb3JQb3NpdGlvbihpbnQgcG9z
aXRpb24pCiAKIGludCBSZW5kZXJTbGlkZXI6OnBvc2l0aW9uRm9yT2Zmc2V0KGNvbnN0IEludFBv
aW50JiBwKQogewotICAgIGlmICghbV90aHVtYiB8fCAhbV90aHVtYi0+cmVuZGVyZXIoKSkKKyAg
ICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iRWxlbWVudCA9IHNsaWRlclRodW1iRWxlbWVudCgp
OworICAgIGlmICghdGh1bWJFbGVtZW50IHx8ICF0aHVtYkVsZW1lbnQtPnJlbmRlcmVyKCkpCiAg
ICAgICAgIHJldHVybiAwOwogCiAgICAgaW50IHBvc2l0aW9uOwogICAgIGlmIChzdHlsZSgpLT5h
cHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGljYWxQYXJ0IHx8IHN0eWxlKCktPmFwcGVhcmFuY2Uo
KSA9PSBNZWRpYVZvbHVtZVNsaWRlclBhcnQpCi0gICAgICAgIHBvc2l0aW9uID0gcC55KCkgLSBt
X3RodW1iLT5yZW5kZXJCb3goKS0+aGVpZ2h0KCkgLyAyOworICAgICAgICBwb3NpdGlvbiA9IHAu
eSgpIC0gdGh1bWJFbGVtZW50LT5yZW5kZXJCb3goKS0+aGVpZ2h0KCkgLyAyOwogICAgIGVsc2UK
LSAgICAgICAgcG9zaXRpb24gPSBwLngoKSAtIG1fdGh1bWItPnJlbmRlckJveCgpLT53aWR0aCgp
IC8gMjsKKyAgICAgICAgcG9zaXRpb24gPSBwLngoKSAtIHRodW1iRWxlbWVudC0+cmVuZGVyQm94
KCktPndpZHRoKCkgLyAyOwogICAgIAogICAgIHJldHVybiBtYXgoMCwgbWluKHBvc2l0aW9uLCB0
cmFja1NpemUoKSkpOwogfQogCiBpbnQgUmVuZGVyU2xpZGVyOjpjdXJyZW50UG9zaXRpb24oKQog
ewotICAgIEFTU0VSVChtX3RodW1iKTsKLSAgICBBU1NFUlQobV90aHVtYi0+cmVuZGVyZXIoKSk7
CisgICAgU2xpZGVyVGh1bWJFbGVtZW50KiB0aHVtYkVsZW1lbnQgPSBzbGlkZXJUaHVtYkVsZW1l
bnQoKTsKKyAgICBBU1NFUlQodGh1bWJFbGVtZW50ICYmIHRodW1iRWxlbWVudC0+cmVuZGVyZXIo
KSk7CiAKICAgICBpZiAoc3R5bGUoKS0+YXBwZWFyYW5jZSgpID09IFNsaWRlclZlcnRpY2FsUGFy
dCB8fCBzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJQYXJ0KQotICAg
ICAgICByZXR1cm4gdG9SZW5kZXJCb3gobV90aHVtYi0+cmVuZGVyZXIoKSktPnkoKSAtIGNvbnRl
bnRCb3hSZWN0KCkueSgpOwotICAgIHJldHVybiB0b1JlbmRlckJveChtX3RodW1iLT5yZW5kZXJl
cigpKS0+eCgpIC0gY29udGVudEJveFJlY3QoKS54KCk7CisgICAgICAgIHJldHVybiB0b1JlbmRl
ckJveCh0aHVtYkVsZW1lbnQtPnJlbmRlcmVyKCkpLT55KCkgLSBjb250ZW50Qm94UmVjdCgpLnko
KTsKKyAgICByZXR1cm4gdG9SZW5kZXJCb3godGh1bWJFbGVtZW50LT5yZW5kZXJlcigpKS0+eCgp
IC0gY29udGVudEJveFJlY3QoKS54KCk7CiB9CiAKIGludCBSZW5kZXJTbGlkZXI6OnRyYWNrU2l6
ZSgpCiB7Ci0gICAgQVNTRVJUKG1fdGh1bWIpOwotICAgIEFTU0VSVChtX3RodW1iLT5yZW5kZXJl
cigpKTsKKyAgICBTbGlkZXJUaHVtYkVsZW1lbnQqIHRodW1iRWxlbWVudCA9IHNsaWRlclRodW1i
RWxlbWVudCgpOworICAgIEFTU0VSVCh0aHVtYkVsZW1lbnQgJiYgdGh1bWJFbGVtZW50LT5yZW5k
ZXJlcigpKTsKIAogICAgIGlmIChzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVmVydGlj
YWxQYXJ0IHx8IHN0eWxlKCktPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclBhcnQp
Ci0gICAgICAgIHJldHVybiBjb250ZW50SGVpZ2h0KCkgLSBtX3RodW1iLT5yZW5kZXJCb3goKS0+
aGVpZ2h0KCk7Ci0gICAgcmV0dXJuIGNvbnRlbnRXaWR0aCgpIC0gbV90aHVtYi0+cmVuZGVyQm94
KCktPndpZHRoKCk7CisgICAgICAgIHJldHVybiBjb250ZW50SGVpZ2h0KCkgLSB0aHVtYkVsZW1l
bnQtPnJlbmRlckJveCgpLT5oZWlnaHQoKTsKKyAgICByZXR1cm4gY29udGVudFdpZHRoKCkgLSB0
aHVtYkVsZW1lbnQtPnJlbmRlckJveCgpLT53aWR0aCgpOwogfQogCiB2b2lkIFJlbmRlclNsaWRl
cjo6Zm9yd2FyZEV2ZW50KEV2ZW50KiBldmVudCkKIHsKKyAgICBTbGlkZXJUaHVtYkVsZW1lbnQq
IHRodW1iRWxlbWVudCA9IHNsaWRlclRodW1iRWxlbWVudCgpOworICAgIGlmICghdGh1bWJFbGVt
ZW50KQorICAgICAgICByZXR1cm47CisKICAgICBpZiAoZXZlbnQtPmlzTW91c2VFdmVudCgpKSB7
CiAgICAgICAgIE1vdXNlRXZlbnQqIG1vdXNlRXZlbnQgPSBzdGF0aWNfY2FzdDxNb3VzZUV2ZW50
Kj4oZXZlbnQpOwogICAgICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91
c2Vkb3duRXZlbnQgJiYgbW91c2VFdmVudC0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikgewpAQCAt
MzE0LDEyICsyODgsMTMgQEAgdm9pZCBSZW5kZXJTbGlkZXI6OmZvcndhcmRFdmVudChFdmVudCog
ZXZlbnQpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBtX3RodW1iLT5kZWZhdWx0RXZlbnRIYW5k
bGVyKGV2ZW50KTsKKyAgICB0aHVtYkVsZW1lbnQtPmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQp
OwogfQogCiBib29sIFJlbmRlclNsaWRlcjo6aW5EcmFnTW9kZSgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fdGh1bWIgJiYgbV90aHVtYi0+aW5EcmFnTW9kZSgpOworICAgIFNsaWRlclRodW1iRWxl
bWVudCogdGh1bWJFbGVtZW50ID0gc2xpZGVyVGh1bWJFbGVtZW50KCk7CisgICAgcmV0dXJuIHRo
dW1iRWxlbWVudCAmJiB0aHVtYkVsZW1lbnQtPmluRHJhZ01vZGUoKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clNsaWRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNsaWRlci5oCmluZGV4
IDAzNzc5YTM5ZGE2NmZhZmQ1YzZjOGY0ZGNkZTUxODIwOTNmYWQzOTAuLmJhOGVmNjlmZWE2MTgz
MDhjYzIwNGRiMDBiMTdmM2M3MjMyMmIxNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTbGlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU2xpZGVyLmgKQEAgLTQ1LDggKzQ1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2aXJ0dWFsIGludCBiYXNlbGluZVBvc2l0aW9uKEZvbnRCYXNlbGluZSwgYm9vbCBmaXJzdExp
bmUsIExpbmVEaXJlY3Rpb25Nb2RlLCBMaW5lUG9zaXRpb25Nb2RlID0gUG9zaXRpb25PbkNvbnRh
aW5pbmdMaW5lKSBjb25zdDsKICAgICAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQcmVmZXJyZWRM
b2dpY2FsV2lkdGhzKCk7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKLSAgICAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7CiAKKyAgICAgICAgLy8gRklYTUU6IEV2
ZW50dWFsbHksIGFjY2Vzc2luZyBzbGlkZXJUaHVtYkVsZW1lbnQgc2hvdWxkIG5vdCBiZSBuZWNl
c3NhcnkgaW4gdGhpcyBjbGFzcy4KKyAgICAgICAgU2xpZGVyVGh1bWJFbGVtZW50KiBzbGlkZXJU
aHVtYkVsZW1lbnQoKSBjb25zdDsKICAgICAgICAgYm9vbCBtb3VzZUV2ZW50SXNJblRodW1iKE1v
dXNlRXZlbnQqKTsKICAgICAgICAgRmxvYXRQb2ludCBtb3VzZUV2ZW50T2Zmc2V0VG9UaHVtYihN
b3VzZUV2ZW50Kik7CiAKQEAgLTU2LDE2ICs1NywxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgaW50IGN1cnJlbnRQb3NpdGlvbigpOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCBz
dHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHls
ZSk7Ci0KICAgICAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzRm9yY2VkU3R5bGVSZWNhbGNQcm9w
YWdhdGlvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAotICAgICAgICBQYXNzUmVmUHRyPFJl
bmRlclN0eWxlPiBjcmVhdGVUaHVtYlN0eWxlKGNvbnN0IFJlbmRlclN0eWxlKiBwYXJlbnRTdHls
ZSk7Ci0KICAgICAgICAgaW50IHRyYWNrU2l6ZSgpOwogCi0gICAgICAgIFJlZlB0cjxTbGlkZXJU
aHVtYkVsZW1lbnQ+IG1fdGh1bWI7Ci0KICAgICAgICAgZnJpZW5kIGNsYXNzIFNsaWRlclRodW1i
RWxlbWVudDsKICAgICB9OwogCg==
</data>
<flag name="review"
          id="70082"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>