<?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>29782</bug_id>
          
          <creation_ts>2009-09-27 09:31:13 -0700</creation_ts>
          <short_desc>Share code in HTMLInputElement and HTMLTextAreaElement</short_desc>
          <delta_ts>2009-10-02 15:49:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Trivial</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>28703</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adele</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>150382</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-27 09:31:13 -0700</bug_when>
    <thetext>It&apos;s possible to share more code in HTMLinputElement.cpp and HTMLTextAreaElement.cpp; especially selection-related code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>150386</commentid>
    <comment_count>1</comment_count>
      <attachid>40193</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-09-27 09:42:02 -0700</bug_when>
    <thetext>Created attachment 40193
Proposed patch

This patch will remove 160 lines and add 100 lines exclude ChangeLog change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151937</commentid>
    <comment_count>2</comment_count>
      <attachid>40193</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-02 12:34:37 -0700</bug_when>
    <thetext>Comment on attachment 40193
Proposed patch

Looks fine to me.  I could have sworn I already reviewed this patch on a different bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151965</commentid>
    <comment_count>3</comment_count>
      <attachid>40193</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-02 13:35:03 -0700</bug_when>
    <thetext>Comment on attachment 40193
Proposed patch

Rejecting patch 40193 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--quiet&apos;, &apos;--exit-after-n-failures=1&apos;]&quot; exit_code: 1
Running build-dumprendertree
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Testing 11370 test cases.
dom/html/level2/html/HTMLFrameElement01.html -&gt; crashed

Exiting early after 1 failures. 1267 tests run.
210.43s total testing time

1266 test cases (99%) succeeded
1 test case (&lt;1%) crashed
1 test case (&lt;1%) had stderr output</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151992</commentid>
    <comment_count>4</comment_count>
      <attachid>40193</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-02 15:17:13 -0700</bug_when>
    <thetext>Comment on attachment 40193
Proposed patch

I&apos;ve filed bug 30030 about this failure.  I don&apos;t believe this was related to your changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152006</commentid>
    <comment_count>5</comment_count>
      <attachid>40193</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-02 15:49:36 -0700</bug_when>
    <thetext>Comment on attachment 40193
Proposed patch

Clearing flags on attachment: 40193

Committed r49051: &lt;http://trac.webkit.org/changeset/49051&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>152007</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-10-02 15:49:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40193</attachid>
            <date>2009-09-27 09:42:02 -0700</date>
            <delta_ts>2009-10-02 15:49:36 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>0001-share-input-textarea-1.patch</filename>
            <type>text/plain</type>
            <size>18598</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSAyZGY0OTUwZDEyYTJkNjgyMGI0MTY4M2ZhOWM0NDg5NDJhODljZGUxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBNb24sIDI4IFNlcCAyMDA5IDAxOjExOjAxICswOTAwClN1YmplY3Q6IFtQQVRDSF0gc2hhcmUt
aW5wdXQtdGV4dGFyZWEtMQoKLS0tCiBXZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDQ2ICsrKysrKysrKysrKysrKysrKwogV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwIHwgICA3OCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBX
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oICAgfCAgIDE0ICsrKysrKwogV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwICAgICAgIHwgICA3NiArLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggICAgICAg
ICB8ICAgMTEgKy0tLQogV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwICAgIHwg
ICA2OSArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIFdlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmggICAgICB8ICAgMTIgKy0tLS0KIDcgZmlsZXMgY2hhbmdlZCwgMTQ2IGluc2Vy
dGlvbnMoKyksIDE2MCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJmMzgxMzQuLjg0MjZmZTEgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkg
QEAKKzIwMDktMDktMjcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gTW92ZSB0aGUgZm9s
bG93aW5nIG1ldGhvZHMgb2YgSFRNTElucHV0RWxlbWVudCBhbmQgSFRNTFRleHRBcmVhRWxlbWVu
dAorICAgICAgICAgIHRvIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LgorICAgICAgICAgICBz
ZXRTZWxlY3Rpb25TdGFydCgpCisgICAgICAgICAgIHNldFNlbGVjdGlvbkVuZCgpCisgICAgICAg
ICAgIHNlbGVjdCgpCisgICAgICAgICAgIHNldFNlbGVjdGlvblJhbmdlKCkKKyAgICAgICAgICAg
c2VsZWN0aW9uU3RhcnQoKQorICAgICAgICAgICBzZWxlY3Rpb25FbmQoKQorICAgICAgICAgICBz
ZWxlY3Rpb24oKQorCisgICAgICAgIC0gSW50cm9kdWNlIGNhY2hlZFNlbGVjdGlvblN0YXJ0KCkg
YW5kIGNhY2hlZFNlbGVjdGlvbkVuZCgpLgorCisgICAgICAgIC0gVW5pZnkgSFRNTElucHV0RWxl
bWVudDo6aXNUZXh0RmllbGRXaXRoUmVuZGVyZXIoKSBhbmQKKyAgICAgICAgIEhUTUxUZXh0QXJl
YUVsZW1lbnQ6OnJlbmRlcmVyQWZ0ZXJVcGRhdGVMYXlvdXQoKSBpbnRvIHRleHRSZW5kZXJlckFm
dGVyVXBkYXRlTGF5b3V0KCkuCisgICAgICAgIAorICAgICAgICAtIFVuaWZ5IGEgcGFydCBvZiBw
YXJzZU1hcHBlZEF0dHJpYnV0ZSgpIG9mIEhUTUxJbnB1dEVsZW1lbnQgYW5kIEhUTUxUZXh0QXJl
YUVsZW1lbnQuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTI5NzgyCisKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnRleHRSZW5kZXJl
ckFmdGVyVXBkYXRlTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50OjpzZXRTZWxlY3Rpb25TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudDo6c2V0U2VsZWN0aW9uRW5kKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3QpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnNldFNlbGVjdGlvblJhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3Rpb25TdGFydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0aW9uRW5k
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZWxlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTElucHV0RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0
bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6c2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmNhY2hlZFNl
bGVjdGlvblN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmNhY2hl
ZFNlbGVjdGlvbkVuZCk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmli
dXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNhY2hlZFNlbGVjdGlvblN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNhY2hlZFNlbGVjdGlvbkVuZCk6CisK
IDIwMDktMDktMjcgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgbm9ib2R5ICh0cml2aWFsIENoYW5nZUxvZyBmaXgpLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IDhlNjZmZTAuLjEwOTRkMGIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAK
ICNpbmNsdWRlICJSZW5kZXJCb3guaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbC5oIgog
I2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCisjaW5jbHVkZSAiU2NyaXB0RXZlbnRMaXN0ZW5lci5o
IgogI2luY2x1ZGUgIlZhbGlkaXR5U3RhdGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NDA4LDQgKzQwOSw4MSBAQCB2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojp1cGRhdGVQ
bGFjZWhvbGRlclZpc2liaWxpdHkoYm9vbCBwbGFjZWhvbGRlclZhbAogICAgICAgICB0b1JlbmRl
clRleHRDb250cm9sKHJlbmRlcmVyKCkpLT51cGRhdGVQbGFjZWhvbGRlclZpc2liaWxpdHkocGxh
Y2Vob2xkZXJTaG91bGRCZVZpc2libGUoKSwgcGxhY2Vob2xkZXJWYWx1ZUNoYW5nZWQpOwogfQog
CitSZW5kZXJUZXh0Q29udHJvbCogSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OnRleHRSZW5k
ZXJlckFmdGVyVXBkYXRlTGF5b3V0KCkKK3sKKyAgICBpZiAoIWlzVGV4dEZvcm1Db250cm9sKCkp
CisgICAgICAgIHJldHVybiAwOworICAgIGRvY3VtZW50KCktPnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cygpOworICAgIHJldHVybiB0b1JlbmRlclRleHRDb250cm9sKHJlbmRl
cmVyKCkpOworfQorCit2b2lkIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpzZXRTZWxlY3Rp
b25TdGFydChpbnQgc3RhcnQpCit7CisgICAgaWYgKFJlbmRlclRleHRDb250cm9sKiByZW5kZXJl
ciA9IHRleHRSZW5kZXJlckFmdGVyVXBkYXRlTGF5b3V0KCkpCisgICAgICAgIHJlbmRlcmVyLT5z
ZXRTZWxlY3Rpb25TdGFydChzdGFydCk7Cit9CisKK3ZvaWQgSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQ6OnNldFNlbGVjdGlvbkVuZChpbnQgZW5kKQoreworICAgIGlmIChSZW5kZXJUZXh0Q29u
dHJvbCogcmVuZGVyZXIgPSB0ZXh0UmVuZGVyZXJBZnRlclVwZGF0ZUxheW91dCgpKQorICAgICAg
ICByZW5kZXJlci0+c2V0U2VsZWN0aW9uRW5kKGVuZCk7Cit9CisKK3ZvaWQgSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQ6OnNlbGVjdCgpCit7CisgICAgaWYgKFJlbmRlclRleHRDb250cm9sKiBy
ZW5kZXJlciA9IHRleHRSZW5kZXJlckFmdGVyVXBkYXRlTGF5b3V0KCkpCisgICAgICAgIHJlbmRl
cmVyLT5zZWxlY3QoKTsKK30KKwordm9pZCBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2V0
U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kKQoreworICAgIGlmIChSZW5kZXJUZXh0
Q29udHJvbCogcmVuZGVyZXIgPSB0ZXh0UmVuZGVyZXJBZnRlclVwZGF0ZUxheW91dCgpKQorICAg
ICAgICByZW5kZXJlci0+c2V0U2VsZWN0aW9uUmFuZ2Uoc3RhcnQsIGVuZCk7Cit9CisKK2ludCBI
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6c2VsZWN0aW9uU3RhcnQoKQoreworICAgIGlmICgh
aXNUZXh0Rm9ybUNvbnRyb2woKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKGRvY3VtZW50
KCktPmZvY3VzZWROb2RlKCkgIT0gdGhpcyAmJiBjYWNoZWRTZWxlY3Rpb25TdGFydCgpID49IDAp
CisgICAgICAgIHJldHVybiBjYWNoZWRTZWxlY3Rpb25TdGFydCgpOworICAgIGlmICghcmVuZGVy
ZXIoKSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIHRvUmVuZGVyVGV4dENvbnRyb2wo
cmVuZGVyZXIoKSktPnNlbGVjdGlvblN0YXJ0KCk7Cit9CisKK2ludCBIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudDo6c2VsZWN0aW9uRW5kKCkKK3sKKyAgICBpZiAoIWlzVGV4dEZvcm1Db250cm9s
KCkpCisgICAgICAgIHJldHVybiAwOworICAgIGlmIChkb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgp
ICE9IHRoaXMgJiYgY2FjaGVkU2VsZWN0aW9uRW5kKCkgPj0gMCkKKyAgICAgICAgcmV0dXJuIGNh
Y2hlZFNlbGVjdGlvbkVuZCgpOworICAgIGlmICghcmVuZGVyZXIoKSkKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgcmV0dXJuIHRvUmVuZGVyVGV4dENvbnRyb2wocmVuZGVyZXIoKSktPnNlbGVjdGlv
bkVuZCgpOworfQorCitWaXNpYmxlU2VsZWN0aW9uIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
OjpzZWxlY3Rpb24oKSBjb25zdAoreworICAgIGlmICghcmVuZGVyZXIoKSB8fCAhaXNUZXh0Rm9y
bUNvbnRyb2woKSB8fCBjYWNoZWRTZWxlY3Rpb25TdGFydCgpIDwgMCB8fCBjYWNoZWRTZWxlY3Rp
b25FbmQoKSA8IDApCisgICAgICAgIHJldHVybiBWaXNpYmxlU2VsZWN0aW9uKCk7CisgICAgcmV0
dXJuIHRvUmVuZGVyVGV4dENvbnRyb2wocmVuZGVyZXIoKSktPnNlbGVjdGlvbihjYWNoZWRTZWxl
Y3Rpb25TdGFydCgpLCBjYWNoZWRTZWxlY3Rpb25FbmQoKSk7Cit9CisKK3ZvaWQgSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSog
YXR0cikKK3sKKyAgICBpZiAoYXR0ci0+bmFtZSgpID09IHBsYWNlaG9sZGVyQXR0cikKKyAgICAg
ICAgdXBkYXRlUGxhY2Vob2xkZXJWaXNpYmlsaXR5KHRydWUpOworICAgIGVsc2UgaWYgKGF0dHIt
Pm5hbWUoKSA9PSBvbmZvY3VzQXR0cikKKyAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5l
cihldmVudE5hbWVzKCkuZm9jdXNFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0
aGlzLCBhdHRyKSk7CisgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9uYmx1ckF0dHIpCisg
ICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmJsdXJFdmVudCwg
Y3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7CisgICAgZWxzZSBpZiAo
YXR0ci0+bmFtZSgpID09IG9uc2VsZWN0QXR0cikKKyAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRM
aXN0ZW5lcihldmVudE5hbWVzKCkuc2VsZWN0RXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlz
dGVuZXIodGhpcywgYXR0cikpOworICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmNoYW5n
ZUF0dHIpCisgICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmNo
YW5nZUV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRoaXMsIGF0dHIpKTsKKyAg
ICBlbHNlCisgICAgICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OnBhcnNlTWFw
cGVkQXR0cmlidXRlKGF0dHIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJjb3JlCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oIGIvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCA3YjNjZmJkLi4wYWYxMDQzIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5oCisrKyBiL1dlYkNvcmUv
aHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTMwLDcgKzMwLDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBGb3JtRGF0YUxpc3Q7CiBjbGFzcyBIVE1MRm9ybUVsZW1lbnQ7
CitjbGFzcyBSZW5kZXJUZXh0Q29udHJvbDsKIGNsYXNzIFZhbGlkaXR5U3RhdGU7CitjbGFzcyBW
aXNpYmxlU2VsZWN0aW9uOwogCiBjbGFzcyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IDogcHVibGlj
IEhUTUxFbGVtZW50IHsKIHB1YmxpYzoKQEAgLTE1MCw5ICsxNTIsMjAgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hCbHVyRXZlbnQoKTsKIAorICAgIGludCBzZWxlY3Rpb25TdGFydCgpOworICAgIGludCBz
ZWxlY3Rpb25FbmQoKTsKKyAgICB2b2lkIHNldFNlbGVjdGlvblN0YXJ0KGludCk7CisgICAgdm9p
ZCBzZXRTZWxlY3Rpb25FbmQoaW50KTsKKyAgICB2b2lkIHNlbGVjdCgpOworICAgIHZvaWQgc2V0
U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5kKTsKKyAgICBWaXNpYmxlU2VsZWN0aW9u
IHNlbGVjdGlvbigpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBwbGFjZWhvbGRlclNo
b3VsZEJlVmlzaWJsZSgpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlUGxhY2Vob2xkZXJWaXNpYmls
aXR5KGJvb2wpOworICAgIHZpcnR1YWwgaW50IGNhY2hlZFNlbGVjdGlvblN0YXJ0KCkgY29uc3Qg
PSAwOworICAgIHZpcnR1YWwgaW50IGNhY2hlZFNlbGVjdGlvbkVuZCgpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlKik7CiAK
IHByaXZhdGU6CiAgICAgLy8gQSBzdWJjbGFzcyBzaG91bGQgcmV0dXJuIHRydWUgaWYgcGxhY2Vo
b2xkZXIgcHJvY2Vzc2luZyBpcyBuZWVkZWQuCkBAIC0xNjMsNiArMTc2LDcgQEAgcHJpdmF0ZToK
ICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRm9jdXNFdmVudCgpIHsgfQogICAgIC8vIENhbGxlZCBp
biBkaXNwYXRjaEJsdXJFdmVudCgpLCBhZnRlciBwbGFjZWhvbGRlciBwcm9jZXNzLCBiZWZvcmUg
Y2FsbGluZyBwYXJlbnQncyBkaXNwYXRjaEJsdXJFdmVudCgpLgogICAgIHZpcnR1YWwgdm9pZCBo
YW5kbGVCbHVyRXZlbnQoKSB7IH0KKyAgICBSZW5kZXJUZXh0Q29udHJvbCogdGV4dFJlbmRlcmVy
QWZ0ZXJVcGRhdGVMYXlvdXQoKTsKIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcAppbmRleCAwYWVmZTdmLi42NGRlODM1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCkBAIC01NDIsNjMgKzU0Miw2IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6Y2FuSGF2
ZVNlbGVjdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIGlzVGV4dEZpZWxkKCk7CiB9CiAKLWludCBI
VE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb25TdGFydCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFpc1Rl
eHRGaWVsZCgpKQotICAgICAgICByZXR1cm4gMDsKLSAgICBpZiAoZG9jdW1lbnQoKS0+Zm9jdXNl
ZE5vZGUoKSAhPSB0aGlzICYmIG1fZGF0YS5jYWNoZWRTZWxlY3Rpb25TdGFydCgpICE9IC0xKQot
ICAgICAgICByZXR1cm4gbV9kYXRhLmNhY2hlZFNlbGVjdGlvblN0YXJ0KCk7Ci0gICAgaWYgKCFy
ZW5kZXJlcigpKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gdG9SZW5kZXJUZXh0Q29u
dHJvbChyZW5kZXJlcigpKS0+c2VsZWN0aW9uU3RhcnQoKTsKLX0KLQotaW50IEhUTUxJbnB1dEVs
ZW1lbnQ6OnNlbGVjdGlvbkVuZCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFpc1RleHRGaWVsZCgpKQot
ICAgICAgICByZXR1cm4gMDsKLSAgICBpZiAoZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKSAhPSB0
aGlzICYmIG1fZGF0YS5jYWNoZWRTZWxlY3Rpb25FbmQoKSAhPSAtMSkKLSAgICAgICAgcmV0dXJu
IG1fZGF0YS5jYWNoZWRTZWxlY3Rpb25FbmQoKTsKLSAgICBpZiAoIXJlbmRlcmVyKCkpCi0gICAg
ICAgIHJldHVybiAwOwotICAgIHJldHVybiB0b1JlbmRlclRleHRDb250cm9sKHJlbmRlcmVyKCkp
LT5zZWxlY3Rpb25FbmQoKTsKLX0KLQotc3RhdGljIGJvb2wgaXNUZXh0RmllbGRXaXRoUmVuZGVy
ZXIoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKLXsKLSAgICBpZiAoIWVsZW1lbnQtPmlzVGV4
dEZpZWxkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGVsZW1lbnQtPmRvY3VtZW50
KCktPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwotICAgIGlmICghZWxl
bWVudC0+cmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHRy
dWU7Ci19Ci0KLXZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0U2VsZWN0aW9uU3RhcnQoaW50IHN0
YXJ0KQotewotICAgIGlmIChpc1RleHRGaWVsZFdpdGhSZW5kZXJlcih0aGlzKSkKLSAgICAgICAg
dG9SZW5kZXJUZXh0Q29udHJvbChyZW5kZXJlcigpKS0+c2V0U2VsZWN0aW9uU3RhcnQoc3RhcnQp
OwotfQotCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFNlbGVjdGlvbkVuZChpbnQgZW5kKQot
ewotICAgIGlmIChpc1RleHRGaWVsZFdpdGhSZW5kZXJlcih0aGlzKSkKLSAgICAgICAgdG9SZW5k
ZXJUZXh0Q29udHJvbChyZW5kZXJlcigpKS0+c2V0U2VsZWN0aW9uRW5kKGVuZCk7Ci19Ci0KLXZv
aWQgSFRNTElucHV0RWxlbWVudDo6c2VsZWN0KCkKLXsKLSAgICBpZiAoaXNUZXh0RmllbGRXaXRo
UmVuZGVyZXIodGhpcykpCi0gICAgICAgIHRvUmVuZGVyVGV4dENvbnRyb2wocmVuZGVyZXIoKSkt
PnNlbGVjdCgpOwotfQotCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldFNlbGVjdGlvblJhbmdl
KGludCBzdGFydCwgaW50IGVuZCkKLXsKLSAgICBJbnB1dEVsZW1lbnQ6OnVwZGF0ZVNlbGVjdGlv
blJhbmdlKHRoaXMsIHRoaXMsIHN0YXJ0LCBlbmQpOwotfQotCiB2b2lkIEhUTUxJbnB1dEVsZW1l
bnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRUb0FueUVsZW1lbnQpCiB7CiAgICAgc3dpdGNo
IChpbnB1dFR5cGUoKSkgewpAQCAtNzE0LDE0ICs2NTcsNiBAQCB2b2lkIEhUTUxJbnB1dEVsZW1l
bnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSAqYXR0cikKICAgICB9IGVs
c2UgaWYgKGF0dHItPm5hbWUoKSA9PSBoZWlnaHRBdHRyKSB7CiAgICAgICAgIGlmIChyZXNwZWN0
SGVpZ2h0QW5kV2lkdGhBdHRycygpKQogICAgICAgICAgICAgYWRkQ1NTTGVuZ3RoKGF0dHIsIENT
U1Byb3BlcnR5SGVpZ2h0LCBhdHRyLT52YWx1ZSgpKTsKLSAgICB9IGVsc2UgaWYgKGF0dHItPm5h
bWUoKSA9PSBvbmZvY3VzQXR0cikgewotICAgICAgICBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVy
KGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50LCBjcmVhdGVBdHRyaWJ1dGVFdmVudExpc3RlbmVyKHRo
aXMsIGF0dHIpKTsKLSAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmJsdXJBdHRyKSB7
Ci0gICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmJsdXJFdmVu
dCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7Ci0gICAgfSBlbHNl
IGlmIChhdHRyLT5uYW1lKCkgPT0gb25zZWxlY3RBdHRyKSB7Ci0gICAgICAgIHNldEF0dHJpYnV0
ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLnNlbGVjdEV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVF
dmVudExpc3RlbmVyKHRoaXMsIGF0dHIpKTsKLSAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9
PSBvbmNoYW5nZUF0dHIpIHsKLSAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVu
dE5hbWVzKCkuY2hhbmdlRXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIodGhpcywg
YXR0cikpOwogICAgIH0KICAgICAvLyBTZWFyY2ggZmllbGQgYW5kIHNsaWRlciBhdHRyaWJ1dGVz
IGFsbCBqdXN0IGNhdXNlIHVwZGF0ZUZyb21FbGVtZW50IHRvIGJlIGNhbGxlZCB0aHJvdWdoIHN0
eWxlCiAgICAgLy8gcmVjYWxjaW5nLgpAQCAtNzM3LDggKzY3Miw2IEBAIHZvaWQgSFRNTElucHV0
RWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRlICphdHRyKQogICAg
ICAgICAgICAgYXR0YWNoKCk7CiAgICAgICAgIH0KICAgICAgICAgc2V0TmVlZHNTdHlsZVJlY2Fs
YygpOwotICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IHBsYWNlaG9sZGVyQXR0cikgewot
ICAgICAgICB1cGRhdGVQbGFjZWhvbGRlclZpc2liaWxpdHkodHJ1ZSk7CiAgICAgfSBlbHNlIGlm
IChhdHRyLT5uYW1lKCkgPT0gYXV0b3NhdmVBdHRyIHx8CiAgICAgICAgICAgICAgYXR0ci0+bmFt
ZSgpID09IGluY3JlbWVudGFsQXR0ciB8fAogICAgICAgICAgICAgIGF0dHItPm5hbWUoKSA9PSBt
aW5BdHRyIHx8CkBAIC03NTIsNyArNjg1LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpwYXJz
ZU1hcHBlZEF0dHJpYnV0ZShNYXBwZWRBdHRyaWJ1dGUgKmF0dHIpCiAgICAgICAgIC8vIEZJWE1F
OiB3ZSBuZWVkIHRvIHRlbGwgdGhpcyBjaGFuZ2UgdG8gYSByZW5kZXJlciBpZiB0aGUgYXR0cmli
dXRlIGFmZmVjdHMgdGhlIGFwcGVhcmFuY2UuCiAjZW5kaWYKICAgICBlbHNlCi0gICAgICAgIEhU
TUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGU6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIp
OworICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1
dGUoYXR0cik7CiB9CiAKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChS
ZW5kZXJTdHlsZSAqc3R5bGUpCkBAIC0xNzQyLDEzICsxNjc1LDYgQEAgdm9pZCBIVE1MSW5wdXRF
bGVtZW50OjpvblNlYXJjaCgpCiAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRlKGV2ZW50
TmFtZXMoKS5zZWFyY2hFdmVudCwgdHJ1ZSwgZmFsc2UpKTsKIH0KIAotVmlzaWJsZVNlbGVjdGlv
biBIVE1MSW5wdXRFbGVtZW50OjpzZWxlY3Rpb24oKSBjb25zdAotewotICAgIGlmICghcmVuZGVy
ZXIoKSB8fCAhaXNUZXh0RmllbGQoKSB8fCBtX2RhdGEuY2FjaGVkU2VsZWN0aW9uU3RhcnQoKSA9
PSAtMSB8fCBtX2RhdGEuY2FjaGVkU2VsZWN0aW9uRW5kKCkgPT0gLTEpCi0gICAgICAgIHJldHVy
biBWaXNpYmxlU2VsZWN0aW9uKCk7Ci0gICAgcmV0dXJuIHRvUmVuZGVyVGV4dENvbnRyb2wocmVu
ZGVyZXIoKSktPnNlbGVjdGlvbihtX2RhdGEuY2FjaGVkU2VsZWN0aW9uU3RhcnQoKSwgbV9kYXRh
LmNhY2hlZFNlbGVjdGlvbkVuZCgpKTsKLX0KLQogdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojpkb2N1
bWVudERpZEJlY29tZUFjdGl2ZSgpCiB7CiAgICAgQVNTRVJUKG5lZWRzQWN0aXZhdGlvbkNhbGxi
YWNrKCkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggNjNkMTYzNC4uMzgwMGFkNiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0xMjgsMTIgKzEyOCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgY2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdDsKICAgICAKICAgICBib29sIGNh
bkhhdmVTZWxlY3Rpb24oKSBjb25zdDsKLSAgICBpbnQgc2VsZWN0aW9uU3RhcnQoKSBjb25zdDsK
LSAgICBpbnQgc2VsZWN0aW9uRW5kKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRTZWxlY3Rpb25TdGFy
dChpbnQpOwotICAgIHZvaWQgc2V0U2VsZWN0aW9uRW5kKGludCk7Ci0gICAgdmlydHVhbCB2b2lk
IHNlbGVjdCgpOwotICAgIHZvaWQgc2V0U2VsZWN0aW9uUmFuZ2UoaW50IHN0YXJ0LCBpbnQgZW5k
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0KCkgeyBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dDo6c2VsZWN0KCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBz
ZW5kVG9BbnlFbGVtZW50KTsKIApAQCAtMjE4LDggKzIxMyw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IGFkZFNlYXJjaFJlc3VsdCgpOwogICAgIHZvaWQgb25TZWFyY2goKTsKIAotICAgIFZpc2libGVT
ZWxlY3Rpb24gc2VsZWN0aW9uKCkgY29uc3Q7Ci0KICAgICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6
ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGRvY3VtZW50
RGlkQmVjb21lQWN0aXZlKCk7CkBAIC0yNDgsNiArMjQxLDggQEAgcHJpdmF0ZToKICAgICB2aXJ0
dWFsIGJvb2wgaXNFbXB0eVZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWUoKS5pc0VtcHR5KCk7
IH0KICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRm9jdXNFdmVudCgpOwogICAgIHZpcnR1YWwgdm9p
ZCBoYW5kbGVCbHVyRXZlbnQoKTsKKyAgICB2aXJ0dWFsIGludCBjYWNoZWRTZWxlY3Rpb25TdGFy
dCgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YS5jYWNoZWRTZWxlY3Rpb25TdGFydCgpOyB9CisgICAg
dmlydHVhbCBpbnQgY2FjaGVkU2VsZWN0aW9uRW5kKCkgY29uc3QgeyByZXR1cm4gbV9kYXRhLmNh
Y2hlZFNlbGVjdGlvbkVuZCgpOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNPcHRpb25hbEZvcm1D
b250cm9sKCkgY29uc3QgeyByZXR1cm4gIWlzUmVxdWlyZWRGb3JtQ29udHJvbCgpOyB9CiAgICAg
dmlydHVhbCBib29sIGlzUmVxdWlyZWRGb3JtQ29udHJvbCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxU
ZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IGYzOThmYzIuLjRiNTdmMjQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAKQEAgLTkyLDU0ICs5Miw2IEBAIHZvaWQgSFRNTFRleHRBcmVh
RWxlbWVudDo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJiBzdGF0ZSkKICAg
ICBzZXREZWZhdWx0VmFsdWUoc3RhdGUpOwogfQogCi1pbnQgSFRNTFRleHRBcmVhRWxlbWVudDo6
c2VsZWN0aW9uU3RhcnQoKQotewotICAgIGlmICghcmVuZGVyZXIoKSkKLSAgICAgICAgcmV0dXJu
IDA7Ci0gICAgaWYgKGRvY3VtZW50KCktPmZvY3VzZWROb2RlKCkgIT0gdGhpcyAmJiBtX2NhY2hl
ZFNlbGVjdGlvblN0YXJ0ID49IDApCi0gICAgICAgIHJldHVybiBtX2NhY2hlZFNlbGVjdGlvblN0
YXJ0OwotICAgIHJldHVybiB0b1JlbmRlclRleHRDb250cm9sKHJlbmRlcmVyKCkpLT5zZWxlY3Rp
b25TdGFydCgpOwotfQotCi1pbnQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2VsZWN0aW9uRW5kKCkK
LXsKLSAgICBpZiAoIXJlbmRlcmVyKCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIGlmIChkb2N1
bWVudCgpLT5mb2N1c2VkTm9kZSgpICE9IHRoaXMgJiYgbV9jYWNoZWRTZWxlY3Rpb25FbmQgPj0g
MCkKLSAgICAgICAgcmV0dXJuIG1fY2FjaGVkU2VsZWN0aW9uRW5kOwotICAgIHJldHVybiB0b1Jl
bmRlclRleHRDb250cm9sKHJlbmRlcmVyKCkpLT5zZWxlY3Rpb25FbmQoKTsKLX0KLQotc3RhdGlj
IFJlbmRlclRleHRDb250cm9sKiByZW5kZXJlckFmdGVyVXBkYXRlTGF5b3V0KEhUTUxUZXh0QXJl
YUVsZW1lbnQqIGVsZW1lbnQpCi17Ci0gICAgZWxlbWVudC0+ZG9jdW1lbnQoKS0+dXBkYXRlTGF5
b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Ci0gICAgcmV0dXJuIHRvUmVuZGVyVGV4dENv
bnRyb2woZWxlbWVudC0+cmVuZGVyZXIoKSk7Ci19Ci0KLXZvaWQgSFRNTFRleHRBcmVhRWxlbWVu
dDo6c2V0U2VsZWN0aW9uU3RhcnQoaW50IHN0YXJ0KQotewotICAgIGlmIChSZW5kZXJUZXh0Q29u
dHJvbCogcmVuZGVyZXIgPSByZW5kZXJlckFmdGVyVXBkYXRlTGF5b3V0KHRoaXMpKQotICAgICAg
ICByZW5kZXJlci0+c2V0U2VsZWN0aW9uU3RhcnQoc3RhcnQpOwotfQotCi12b2lkIEhUTUxUZXh0
QXJlYUVsZW1lbnQ6OnNldFNlbGVjdGlvbkVuZChpbnQgZW5kKQotewotICAgIGlmIChSZW5kZXJU
ZXh0Q29udHJvbCogcmVuZGVyZXIgPSByZW5kZXJlckFmdGVyVXBkYXRlTGF5b3V0KHRoaXMpKQot
ICAgICAgICByZW5kZXJlci0+c2V0U2VsZWN0aW9uRW5kKGVuZCk7Ci19Ci0KLXZvaWQgSFRNTFRl
eHRBcmVhRWxlbWVudDo6c2VsZWN0KCkKLXsKLSAgICBpZiAoUmVuZGVyVGV4dENvbnRyb2wqIHJl
bmRlcmVyID0gcmVuZGVyZXJBZnRlclVwZGF0ZUxheW91dCh0aGlzKSkKLSAgICAgICAgcmVuZGVy
ZXItPnNlbGVjdCgpOwotfQotCi12b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldFNlbGVjdGlv
blJhbmdlKGludCBzdGFydCwgaW50IGVuZCkKLXsKLSAgICBpZiAoUmVuZGVyVGV4dENvbnRyb2wq
IHJlbmRlcmVyID0gcmVuZGVyZXJBZnRlclVwZGF0ZUxheW91dCh0aGlzKSkKLSAgICAgICAgcmVu
ZGVyZXItPnNldFNlbGVjdGlvblJhbmdlKHN0YXJ0LCBlbmQpOwotfQotCiB2b2lkIEhUTUxUZXh0
QXJlYUVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSog
YmVmb3JlQ2hhbmdlLCBOb2RlKiBhZnRlckNoYW5nZSwgaW50IGNoaWxkQ291bnREZWx0YSkKIHsK
ICAgICBzZXRWYWx1ZShkZWZhdWx0VmFsdWUoKSk7CkBAIC0xOTUsMTggKzE0Nyw4IEBAIHZvaWQg
SFRNTFRleHRBcmVhRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoTWFwcGVkQXR0cmlidXRl
KiBhdHRyKQogICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IGFsaWduQXR0cikgewogICAg
ICAgICAvLyBEb24ndCBtYXAgJ2FsaWduJyBhdHRyaWJ1dGUuICBUaGlzIG1hdGNoZXMgd2hhdCBG
aXJlZm94LCBPcGVyYSBhbmQgSUUgZG8uCiAgICAgICAgIC8vIFNlZSBodHRwOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDc1Ci0gICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkg
PT0gcGxhY2Vob2xkZXJBdHRyKSB7Ci0gICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVyVmlzaWJpbGl0
eSh0cnVlKTsKLSAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmZvY3VzQXR0cikKLSAg
ICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuZm9jdXNFdmVudCwg
Y3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5lcih0aGlzLCBhdHRyKSk7Ci0gICAgZWxzZSBpZiAo
YXR0ci0+bmFtZSgpID09IG9uYmx1ckF0dHIpCi0gICAgICAgIHNldEF0dHJpYnV0ZUV2ZW50TGlz
dGVuZXIoZXZlbnROYW1lcygpLmJsdXJFdmVudCwgY3JlYXRlQXR0cmlidXRlRXZlbnRMaXN0ZW5l
cih0aGlzLCBhdHRyKSk7Ci0gICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IG9uc2VsZWN0QXR0
cikKLSAgICAgICAgc2V0QXR0cmlidXRlRXZlbnRMaXN0ZW5lcihldmVudE5hbWVzKCkuc2VsZWN0
RXZlbnQsIGNyZWF0ZUF0dHJpYnV0ZUV2ZW50TGlzdGVuZXIodGhpcywgYXR0cikpOwotICAgIGVs
c2UgaWYgKGF0dHItPm5hbWUoKSA9PSBvbmNoYW5nZUF0dHIpCi0gICAgICAgIHNldEF0dHJpYnV0
ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lcygpLmNoYW5nZUV2ZW50LCBjcmVhdGVBdHRyaWJ1dGVF
dmVudExpc3RlbmVyKHRoaXMsIGF0dHIpKTsKLSAgICBlbHNlCi0gICAgICAgIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnRXaXRoU3RhdGU6OnBhcnNlTWFwcGVkQXR0cmlidXRlKGF0dHIpOworICAgIH0g
ZWxzZQorICAgICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRy
aWJ1dGUoYXR0cik7CiB9CiAKIFJlbmRlck9iamVjdCogSFRNTFRleHRBcmVhRWxlbWVudDo6Y3Jl
YXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopCkBAIC00MzYsMTMg
KzM3OCw2IEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2V0Um93cyhpbnQgcm93cykKICAg
ICBzZXRBdHRyaWJ1dGUocm93c0F0dHIsIFN0cmluZzo6bnVtYmVyKHJvd3MpKTsKIH0KIAotVmlz
aWJsZVNlbGVjdGlvbiBIVE1MVGV4dEFyZWFFbGVtZW50OjpzZWxlY3Rpb24oKSBjb25zdAotewot
ICAgIGlmICghcmVuZGVyZXIoKSB8fCBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0IDwgMCB8fCBtX2Nh
Y2hlZFNlbGVjdGlvbkVuZCA8IDApCi0gICAgICAgIHJldHVybiBWaXNpYmxlU2VsZWN0aW9uKCk7
Ci0gICAgcmV0dXJuIHRvUmVuZGVyVGV4dENvbnRyb2wocmVuZGVyZXIoKSktPnNlbGVjdGlvbiht
X2NhY2hlZFNlbGVjdGlvblN0YXJ0LCBtX2NhY2hlZFNlbGVjdGlvbkVuZCk7Ci19Ci0KIGJvb2wg
SFRNTFRleHRBcmVhRWxlbWVudDo6c2hvdWxkVXNlSW5wdXRNZXRob2QoKSBjb25zdAogewogICAg
IHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1l
bnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKaW5kZXggZWY5NmZjNS4u
OWZiNDQ4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCkBAIC01NSwxNSArNTUsNiBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNzaW5nKCkgY29uc3QgeyByZXR1
cm4gaXNSZXF1aXJlZEZvcm1Db250cm9sKCkgJiYgIWRpc2FibGVkKCkgJiYgIXJlYWRPbmx5KCkg
JiYgdmFsdWUoKS5pc0VtcHR5KCk7IH0KIAotICAgIGludCBzZWxlY3Rpb25TdGFydCgpOwotICAg
IGludCBzZWxlY3Rpb25FbmQoKTsKLQotICAgIHZvaWQgc2V0U2VsZWN0aW9uU3RhcnQoaW50KTsK
LSAgICB2b2lkIHNldFNlbGVjdGlvbkVuZChpbnQpOwotCi0gICAgdm9pZCBzZWxlY3QoKTsKLSAg
ICB2b2lkIHNldFNlbGVjdGlvblJhbmdlKGludCwgaW50KTsKLQogICAgIHZpcnR1YWwgdm9pZCBj
aGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3Jl
Q2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0g
MCk7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVkQXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0
ZSopOwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVu
YSosIFJlbmRlclN0eWxlKik7CkBAIC05Myw3ICs4NCw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFJvd3MoaW50KTsKICAgICAKICAgICB2b2lkIGNhY2hlU2VsZWN0aW9uKGludCBzLCBpbnQgZSkg
eyBtX2NhY2hlZFNlbGVjdGlvblN0YXJ0ID0gczsgbV9jYWNoZWRTZWxlY3Rpb25FbmQgPSBlOyB9
OwotICAgIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkVXNlSW5wdXRNZXRob2QoKSBjb25zdDsKIApAQCAtMTA2LDYgKzk2LDggQEAg
cHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1BsYWNlaG9sZGVyKCkgY29uc3Qg
eyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0VtcHR5VmFsdWUoKSBjb25zdCB7
IHJldHVybiB2YWx1ZSgpLmlzRW1wdHkoKTsgfQorICAgIHZpcnR1YWwgaW50IGNhY2hlZFNlbGVj
dGlvblN0YXJ0KCkgY29uc3QgeyByZXR1cm4gbV9jYWNoZWRTZWxlY3Rpb25TdGFydDsgfQorICAg
IHZpcnR1YWwgaW50IGNhY2hlZFNlbGVjdGlvbkVuZCgpIGNvbnN0IHsgcmV0dXJuIG1fY2FjaGVk
U2VsZWN0aW9uRW5kOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNPcHRpb25hbEZvcm1Db250cm9s
KCkgY29uc3QgeyByZXR1cm4gIWlzUmVxdWlyZWRGb3JtQ29udHJvbCgpOyB9CiAgICAgdmlydHVh
bCBib29sIGlzUmVxdWlyZWRGb3JtQ29udHJvbCgpIGNvbnN0IHsgcmV0dXJuIHJlcXVpcmVkKCk7
IH0KLS0gCjEuNi4zLjMKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>