<?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>12190</bug_id>
          
          <creation_ts>2007-01-09 22:18:48 -0800</creation_ts>
          <short_desc>REGRESSION: Placeholder text does not reflect dynamic updates</short_desc>
          <delta_ts>2007-01-15 21:01:32 -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>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.apple.com/itunes/ads/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction, Regression</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Lilek">dev+webkit</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>35948</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2007-01-09 22:18:48 -0800</bug_when>
    <thetext>If you set a form element&apos;s placeholder text via javascript, the update does not take effect on ToT until after it&apos;s focused while shipping Safari updates it immediately as expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35949</commentid>
    <comment_count>1</comment_count>
      <attachid>12340</attachid>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2007-01-09 22:20:31 -0800</bug_when>
    <thetext>Created attachment 12340
Reduction</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35778</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-01-11 07:38:46 -0800</bug_when>
    <thetext>I have a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35784</commentid>
    <comment_count>3</comment_count>
      <attachid>12363</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-01-11 08:54:00 -0800</bug_when>
    <thetext>Created attachment 12363
patch with change log</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>35796</commentid>
    <comment_count>4</comment_count>
      <attachid>12363</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2007-01-11 09:45:53 -0800</bug_when>
    <thetext>Comment on attachment 12363
patch with change log

+        if (!wasDirty)
+            document()-&gt;frame()-&gt;textFieldDidBeginEditing(input);
+        document()-&gt;frame()-&gt;textDidChangeInTextField(input);

   Do you need to null-check document() and/or frame() here?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34754</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-01-15 20:11:09 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt;    Do you need to null-check document() and/or frame() here?

No on document(), yes on frame().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>34757</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-01-15 21:01:32 -0800</bug_when>
    <thetext>Committed revision 18877.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>12340</attachid>
            <date>2007-01-09 22:20:31 -0800</date>
            <delta_ts>2007-01-09 22:20:31 -0800</delta_ts>
            <desc>Reduction</desc>
            <filename>placeholder.html</filename>
            <type>text/html</type>
            <size>244</size>
            <attacher name="Matt Lilek">dev+webkit</attacher>
            
              <data encoding="base64">PGlucHV0IHR5cGU9InRleHQiIGlkPSJpbnB1dCI+CjxidXR0b24gb25jbGljaz0iZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2lucHV0Jykuc2V0QXR0cmlidXRlKCdwbGFjZWhvbGRlcicsJ1BlZWth
Ym9vIScpOyI+Q2xpY2sgbWUhPC9idXR0b24+CjxwPkNsaWNrIHRoZSBidXR0b24gdG8gc2V0IHRo
ZSBwbGFjZWhvbGRlciwgdGhlbiBmb2N1cy91bmZvY3VzIHRoZSB0ZXh0IGZpZWxkIHRvIGdldCBp
dCB0byBkaXNwbGF5PC9wPg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12363</attachid>
            <date>2007-01-11 08:54:00 -0800</date>
            <delta_ts>2007-01-11 09:45:53 -0800</delta_ts>
            <desc>patch with change log</desc>
            <filename>PlaceholderPatch.txt</filename>
            <type>text/plain</type>
            <size>18423</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE4NzY2
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDkgQEAKKzIwMDctMDEt
MTEgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gZml4IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyMTkwCisgICAgICAgICAgUkVHUkVTU0lPTjogUGxhY2Vob2xkZXIg
dGV4dCBkb2VzIG5vdCByZWZsZWN0IGR5bmFtaWMgdXBkYXRlcworCisgICAgICAgICogaHRtbC9I
VE1MVGV4dEZpZWxkSW5uZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWFy
Y2hGaWVsZENhbmNlbEJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAg
ICBDYWxsIG9uU2VhcmNoIG9uIHRoZSBlbGVtZW50IHNpbmNlIEkgcmVtb3ZlZCBpdCBmcm9tIHRo
ZSByZW5kZXJlci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oOiBB
ZGRlZCBleHBsaWNpdCB2aXJ0dWFsIGtleXdvcmRzIGZvciBvdmVycmlkZXMKKyAgICAgICAgb2Yg
dmlydHVhbCBmdW5jdGlvbnMuIFJlbW92ZWQgdGhlIHVubmVlZGVkIG9uU2VhcmNoIGZ1bmN0aW9u
LiBNYWRlIHRoZSBpbmhlcml0YW5jZQorICAgICAgICBmcm9tIFBvcHVwTWVudUNsaWVudCBiZSBw
cml2YXRlLCBhbmQgbWFkZSB0aGUgb3ZlcnJpZGVzIGFsbCBwcml2YXRlLiBSZXBsYWNlZCB0aGUK
KyAgICAgICAgc2hvd1BsYWNlaG9sZGVySWZOZWVkZWQgYW5kIGhpZGVQbGFjZWhvbGRlcklmTmVl
ZGVkIGZ1bmN0aW9ucyB3aXRoIHVwZGF0ZVBsYWNlaG9sZGVyLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGV4dENvbnRyb2w6OmlzRWRpdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRl
eHRDb250cm9sOjpzZXRFZGl0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRy
b2w6OmlzVGV4dEZpZWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpp
c1RleHRBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpzaG91bGRQ
b3BPdmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjp2YWx1ZVNob3Vs
ZENoYW5nZU9uSG90VHJhY2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6Y3JlYXRlUmVzdWx0
c0J1dHRvblN0eWxlKTogQWRkZWQgYW4gYXNzZXJ0aW9uLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGV4dENvbnRyb2w6OnVwZGF0ZVBsYWNlaG9sZGVyKTogQWRkZWQuIFJlcGxhY2VzIHRoZSB0
d28KKyAgICAgICAgZnVuY3Rpb25zLCBzaG93UGxhY2Vob2xkZXJJZk5lZWRlZCBhbmQgaGlkZVBs
YWNlaG9sZGVySWZOZWVkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6
dXBkYXRlRnJvbUVsZW1lbnQpOiBBZGRlZCBjYWxsIHRvCisgICAgICAgIHVwZGF0ZVBsYWNlaG9s
ZGVyIGJlZm9yZSB1cGRhdGluZyB0aGUgdmFsdWUuIEFsc28gaW1wcm92ZWQgdGhlIHN0cnVjdHVy
ZQorICAgICAgICBvZiB0aGUgZnVuY3Rpb24gYW5kIGNvcnJlY3RlZCBpbmNvcnJlY3QgdXNlIG9m
IGNvcHkgYW5kIHJlcGxhY2UuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6
dXBkYXRlQ2FuY2VsQnV0dG9uVmlzaWJpbGl0eSk6IEFkZGVkIGFuCisgICAgICAgIGFzc2VydGlv
biBhbmQgcmVtb3ZlZCBhbiB1bm5lZWRlZCBsb2NhbCB2YXJpYWJsZS4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHRDb250cm9sOjpzdWJ0cmVlSGFzQ2hhbmdlZCk6IFJlbW92ZWQgYW4gdW5u
ZWVkZWQKKyAgICAgICAgbnVsbCBjaGVjayBhbmQgdmlydHVhbCBmdW5jdGlvbiBjYWxscy4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRDb250cm9sOjpmb3J3YXJkRXZlbnQpOiBSZXBsYWNl
ZCBjYWxscyB0byB0aGUgb2xkCisgICAgICAgIGZ1bmN0aW9ucyB3aXRoIGNhbGxzIHRvIHVwZGF0
ZVBsYWNlaG9sZGVyLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OnNlbGVj
dGlvbkNoYW5nZWQpOiBDaGFuZ2VkIGNvZGUgdG8gZGlzcGF0Y2gKKyAgICAgICAgdGhlIHNlbGVj
dCBldmVudCBkaXJlY3RseSAtLSBJIHBsYW4gdG8gcmVtb3ZlIHRoZSBvblNlbGVjdCBmdW5jdGlv
biwgd2hpY2gKKyAgICAgICAgd2FzIG9ubHkgY2FsbGVkIGhlcmUuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUZXh0Q29udHJvbDo6YXV0b3NhdmVOYW1lKTogUmVtb3ZlZCB0b28tc3BlY2lmaWMg
Y2FzdCBhbmQKKyAgICAgICAgbG9jYWwgdmFyaWFibGUuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUZXh0Q29udHJvbDo6YWRkU2VhcmNoUmVzdWx0KTogQWRkZWQgYXNzZXJ0aW9uIGFuZCBjaGFu
Z2VkCisgICAgICAgIHZhcmlhYmxlIG5hbWUgZm9yIGNsYXJpdHkuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUZXh0Q29udHJvbDo6dmFsdWVDaGFuZ2VkKTogQ2hhbmdlZCBjb2RlIHRvIGNoZWNr
IGZvciBlbXB0eQorICAgICAgICBhdXRvc2F2ZSBuYW1lIGluc3RlYWQgb2YgbnVsbCBmb3IgY29u
c2lzdGVuY3kgd2l0aCBvdGhlciBjYWxsIHNpdGVzIHRoYXQKKyAgICAgICAgbWFuYWdlIHRoZSBh
dXRvc2F2ZSBuYW1lLiBBbHNvIGNoYW5nZWQgdGhlIGNvZGUgdGhhdCBkaXNwYXRjaGVzIGFuIGV2
ZW50CisgICAgICAgIHRvIGNhbGwgb25TZWFyY2ggb24gdGhlIGlucHV0IGVsZW1lbnQgc28gd2Ug
ZG9uJ3QgbmVlZCBvdXIgb3duIGZ1bmN0aW9uLgorCiAyMDA3LTAxLTExICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICAqIHBsYXRmb3JtL0NoYXJhY3Rlck5hbWVzLmg6
IE9vcHMhIGhvcml6b250YWxFbGxpcHNpcyAhPSB6ZXJvV2lkdGhTcGFjZSEKSW5kZXg6IGh0bWwv
SFRNTFRleHRGaWVsZElubmVyRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gaHRtbC9IVE1MVGV4
dEZpZWxkSW5uZXJFbGVtZW50LmNwcAkocmV2aXNpb24gMTg3NjMpCisrKyBodG1sL0hUTUxUZXh0
RmllbGRJbm5lckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDEsOCArMTAxLDggQEAg
dm9pZCBIVE1MU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50OgogICAgICAgICBldnQtPnNl
dERlZmF1bHRIYW5kbGVkKCk7CiAgICAgfSBlbHNlIGlmIChldnQtPnR5cGUoKSA9PSBtb3VzZXVw
RXZlbnQpIHsKICAgICAgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+c3R5bGUoKS0+
dmlzaWJpbGl0eSgpID09IFZJU0lCTEUpIHsKLSAgICAgICAgICAgIGlucHV0LT5zZXRWYWx1ZShT
dHJpbmcoIiIpKTsKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PFJlbmRlclRleHRDb250cm9sKj4o
aW5wdXQtPnJlbmRlcmVyKCkpLT5vblNlYXJjaCgpOworICAgICAgICAgICAgaW5wdXQtPnNldFZh
bHVlKCIiKTsKKyAgICAgICAgICAgIGlucHV0LT5vblNlYXJjaCgpOwogICAgICAgICAgICAgZXZ0
LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogICAgICAgICB9CiAgICAgfQpJbmRleDogcmVuZGVyaW5n
L1JlbmRlclRleHRDb250cm9sLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSByZW5kZXJpbmcvUmVuZGVyVGV4
dENvbnRyb2wuY3BwCShyZXZpc2lvbiAxODc2MykKKysrIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKioKLSAqIENvcHlyaWdo
dCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAy
MDA3IEFwcGxlIEluYy4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTY5LDYgKzE2OSw3IEBAIFJl
bmRlclN0eWxlKiBSZW5kZXJUZXh0Q29udHJvbDo6Y3JlYXRlSW4KIAogUmVuZGVyU3R5bGUqIFJl
bmRlclRleHRDb250cm9sOjpjcmVhdGVSZXN1bHRzQnV0dG9uU3R5bGUoUmVuZGVyU3R5bGUqIHN0
YXJ0U3R5bGUpCiB7CisgICAgQVNTRVJUKCFtX211bHRpTGluZSk7CiAgICAgSFRNTElucHV0RWxl
bWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4obm9kZSgpKTsKICAg
ICBSZW5kZXJTdHlsZSogcmVzdWx0c0Jsb2NrU3R5bGU7CiAgICAgaWYgKGlucHV0LT5tYXhSZXN1
bHRzKCkgPCAwKQpAQCAtMjA1LDQyICsyMDYsMzUgQEAgUmVuZGVyU3R5bGUqIFJlbmRlclRleHRD
b250cm9sOjpjcmVhdGVDYQogICAgIHJldHVybiBjYW5jZWxCbG9ja1N0eWxlOwogfQogCi12b2lk
IFJlbmRlclRleHRDb250cm9sOjpzaG93UGxhY2Vob2xkZXJJZk5lZWRlZCgpCit2b2lkIFJlbmRl
clRleHRDb250cm9sOjp1cGRhdGVQbGFjZWhvbGRlcigpCiB7Ci0gICAgaWYgKG1fbXVsdGlMaW5l
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBTdHJpbmcgdmFsdWUgPSBzdGF0aWNfY2FzdDxIVE1M
SW5wdXRFbGVtZW50Kj4obm9kZSgpKS0+dmFsdWUoKS5jb3B5KCk7Ci0gICAgU3RyaW5nIHBsYWNl
aG9sZGVyID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSktPmdldEF0dHJp
YnV0ZShwbGFjZWhvbGRlckF0dHIpOwotCi0gICAgaWYgKCF2YWx1ZS5pc0VtcHR5KCkgfHwgcGxh
Y2Vob2xkZXIuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoZG9jdW1lbnQo
KS0+Zm9jdXNlZE5vZGUoKSA9PSBub2RlKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcGxh
Y2Vob2xkZXJWaXNpYmxlID0gdHJ1ZTsKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBt
X2lubmVyVGV4dC0+c2V0SW5uZXJUZXh0KHBsYWNlaG9sZGVyLCBlYyk7Ci0gICAgQ29sb3IgcGxh
Y2Vob2xkZXJDb2xvcigxMjgsIDEyOCwgMTI4KTsKLSAgICBtX2lubmVyVGV4dC0+cmVuZGVyZXIo
KS0+c3R5bGUoKS0+c2V0Q29sb3IocGxhY2Vob2xkZXJDb2xvcik7Ci0gICAgbV9pbm5lclRleHQt
PnJlbmRlcmVyKCktPnJlcGFpbnQoKTsKLX0KKyAgICBTdHJpbmcgcGxhY2Vob2xkZXI7CisgICAg
aWYgKCFtX211bHRpTGluZSkgeworICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9IHN0
YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpOworICAgICAgICBpZiAoaW5wdXQt
PnZhbHVlKCkuaXNFbXB0eSgpICYmIGRvY3VtZW50KCktPmZvY3VzZWROb2RlKCkgIT0gbm9kZSgp
KQorICAgICAgICAgICAgcGxhY2Vob2xkZXIgPSBpbnB1dC0+Z2V0QXR0cmlidXRlKHBsYWNlaG9s
ZGVyQXR0cik7CisgICAgfQogCi12b2lkIFJlbmRlclRleHRDb250cm9sOjpoaWRlUGxhY2Vob2xk
ZXJJZk5lZWRlZCgpCi17Ci0gICAgaWYgKCFtX3BsYWNlaG9sZGVyVmlzaWJsZSkKLSAgICAgICAg
cmV0dXJuOworICAgIGlmICghcGxhY2Vob2xkZXIuaXNFbXB0eSgpIHx8IG1fcGxhY2Vob2xkZXJW
aXNpYmxlKSB7CisgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgICAgICBtX2lubmVy
VGV4dC0+c2V0SW5uZXJUZXh0KHBsYWNlaG9sZGVyLCBlYyk7CisgICAgICAgIG1fcGxhY2Vob2xk
ZXJWaXNpYmxlID0gIXBsYWNlaG9sZGVyLmlzRW1wdHkoKTsKKyAgICB9CiAKLSAgICBtX3BsYWNl
aG9sZGVyVmlzaWJsZSA9IGZhbHNlOwotICAgIG1faW5uZXJUZXh0LT5yZW1vdmVDaGlsZHJlbigp
OwotICAgIGlmIChub2RlKCktPmlzRW5hYmxlZCgpKQotICAgICAgICBtX2lubmVyVGV4dC0+cmVu
ZGVyZXIoKS0+c3R5bGUoKS0+c2V0Q29sb3Ioc3R5bGUoKS0+Y29sb3IoKSk7CisgICAgQ29sb3Ig
Y29sb3I7CisgICAgaWYgKCFwbGFjZWhvbGRlci5pc0VtcHR5KCkpCisgICAgICAgIGNvbG9yID0g
Q29sb3I6OmRhcmtHcmF5OworICAgIGVsc2UgaWYgKG5vZGUoKS0+aXNFbmFibGVkKCkpCisgICAg
ICAgIGNvbG9yID0gc3R5bGUoKS0+Y29sb3IoKTsKICAgICBlbHNlCi0gICAgICAgIG1faW5uZXJU
ZXh0LT5yZW5kZXJlcigpLT5zdHlsZSgpLT5zZXRDb2xvcihkaXNhYmxlZFRleHRDb2xvcihzdHls
ZSgpLT5jb2xvcigpLCBzdHlsZSgpLT5iYWNrZ3JvdW5kQ29sb3IoKSkpOwotCi0gICAgbV9pbm5l
clRleHQtPnJlbmRlcmVyKCktPnJlcGFpbnQoKTsKKyAgICAgICAgY29sb3IgPSBkaXNhYmxlZFRl
eHRDb2xvcihzdHlsZSgpLT5jb2xvcigpLCBzdHlsZSgpLT5iYWNrZ3JvdW5kQ29sb3IoKSk7CiAK
KyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbV9pbm5lclRleHQtPnJlbmRlcmVyKCk7Cisg
ICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gcmVuZGVyZXItPnN0eWxlKCk7CisgICAgaWYgKHN0eWxl
LT5jb2xvcigpICE9IGNvbG9yKSB7CisgICAgICAgIHN0eWxlLT5zZXRDb2xvcihjb2xvcik7Cisg
ICAgICAgIHJlbmRlcmVyLT5yZXBhaW50KCk7CisgICAgfQogfQogCiB2b2lkIFJlbmRlclRleHRD
b250cm9sOjpjcmVhdGVTdWJ0cmVlSWZOZWVkZWQoKQpAQCAtMzIxLDM2ICszMTUsMzcgQEAgdm9p
ZCBSZW5kZXJUZXh0Q29udHJvbDo6Y3JlYXRlU3VidHJlZUlmTgogCiB2b2lkIFJlbmRlclRleHRD
b250cm9sOjp1cGRhdGVGcm9tRWxlbWVudCgpCiB7CisgICAgSFRNTEdlbmVyaWNGb3JtRWxlbWVu
dCogZWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxHZW5lcmljRm9ybUVsZW1lbnQqPihub2RlKCkp
OworCiAgICAgY3JlYXRlU3VidHJlZUlmTmVlZGVkKCk7CiAKICAgICBpZiAobV9jYW5jZWxCdXR0
b24pCiAgICAgICAgIHVwZGF0ZUNhbmNlbEJ1dHRvblZpc2liaWxpdHkobV9jYW5jZWxCdXR0b24t
PnJlbmRlcmVyKCktPnN0eWxlKCkpOwogCi0gICAgSFRNTEdlbmVyaWNGb3JtRWxlbWVudCogZWxl
bWVudCA9IHN0YXRpY19jYXN0PEhUTUxHZW5lcmljRm9ybUVsZW1lbnQqPihub2RlKCkpOworICAg
IHVwZGF0ZVBsYWNlaG9sZGVyKCk7CisKICAgICBtX2lubmVyVGV4dC0+cmVuZGVyZXIoKS0+c3R5
bGUoKS0+c2V0VXNlck1vZGlmeShlbGVtZW50LT5pc1JlYWRPbmx5Q29udHJvbCgpIHx8IGVsZW1l
bnQtPmRpc2FibGVkKCkgPyBSRUFEX09OTFkgOiBSRUFEX1dSSVRFX1BMQUlOVEVYVF9PTkxZKTsK
LSAgICBTdHJpbmcgdmFsdWU7Ci0gICAgaWYgKG1fbXVsdGlMaW5lKQotICAgICAgICB2YWx1ZSA9
IHN0YXRpY19jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQqPihlbGVtZW50KS0+dmFsdWUoKS5jb3B5
KCk7Ci0gICAgZWxzZQotICAgICAgICB2YWx1ZSA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1l
bnQqPihlbGVtZW50KS0+dmFsdWUoKS5jb3B5KCk7CiAKLSAgICBpZiAoIWVsZW1lbnQtPnZhbHVl
TWF0Y2hlc1JlbmRlcmVyKCkgfHwgbV9tdWx0aUxpbmUpIHsKLSAgICAgICAgU3RyaW5nIG9sZFRl
eHQgPSB0ZXh0KCk7CisgICAgaWYgKCghZWxlbWVudC0+dmFsdWVNYXRjaGVzUmVuZGVyZXIoKSB8
fCBtX211bHRpTGluZSkgJiYgIW1fcGxhY2Vob2xkZXJWaXNpYmxlKSB7CisgICAgICAgIFN0cmlu
ZyB2YWx1ZTsKKyAgICAgICAgaWYgKG1fbXVsdGlMaW5lKQorICAgICAgICAgICAgdmFsdWUgPSBz
dGF0aWNfY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Kj4oZWxlbWVudCktPnZhbHVlKCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIHZhbHVlID0gc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVu
dCo+KGVsZW1lbnQpLT52YWx1ZSgpOwogICAgICAgICBpZiAodmFsdWUuaXNOdWxsKCkpCiAgICAg
ICAgICAgICB2YWx1ZSA9ICIiOwotICAgICAgICB2YWx1ZS5yZXBsYWNlKCdcXCcsIGJhY2tzbGFz
aEFzQ3VycmVuY3lTeW1ib2woKSk7Ci0gICAgICAgIGlmICh2YWx1ZSAhPSBvbGRUZXh0IHx8ICFt
X2lubmVyVGV4dC0+aGFzQ2hpbGROb2RlcygpKSB7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHZhbHVlID0gdmFsdWUucmVwbGFjZSgnXFwnLCBiYWNrc2xhc2hBc0N1cnJlbmN5U3ltYm9sKCkp
OworICAgICAgICBpZiAodmFsdWUgIT0gdGV4dCgpIHx8ICFtX2lubmVyVGV4dC0+aGFzQ2hpbGRO
b2RlcygpKSB7CiAgICAgICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICAgICAgICAg
IG1faW5uZXJUZXh0LT5zZXRJbm5lclRleHQodmFsdWUsIGVjKTsKICAgICAgICAgICAgIGlmICh2
YWx1ZS5lbmRzV2l0aCgiXG4iKSB8fCB2YWx1ZS5lbmRzV2l0aCgiXHIiKSkKICAgICAgICAgICAg
ICAgICBtX2lubmVyVGV4dC0+YXBwZW5kQ2hpbGQobmV3IEhUTUxCUkVsZW1lbnQoZG9jdW1lbnQo
KSksIGVjKTsKLSAgICAgICAgICAgIGlmIChkb2N1bWVudCgpLT5mcmFtZSgpKQotICAgICAgICAg
ICAgICAgIGRvY3VtZW50KCktPmZyYW1lKCktPmVkaXRvcigpLT5jbGVhclVuZG9SZWRvT3BlcmF0
aW9ucygpOwotICAgICAgICAgICAgc2V0RWRpdGVkKGZhbHNlKTsKKyAgICAgICAgICAgIGlmIChG
cmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLT5mcmFtZSgpKQorICAgICAgICAgICAgICAgIGZyYW1l
LT5lZGl0b3IoKS0+Y2xlYXJVbmRvUmVkb09wZXJhdGlvbnMoKTsKKyAgICAgICAgICAgIG1fZGly
dHkgPSBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBlbGVtZW50LT5zZXRWYWx1ZU1hdGNoZXNS
ZW5kZXJlcigpOwotCi0gICAgICAgIHNob3dQbGFjZWhvbGRlcklmTmVlZGVkKCk7CiAgICAgfQog
CiAgICAgaWYgKG1fc2VhcmNoUG9wdXBJc1Zpc2libGUpCkBAIC00MzksOSArNDM0LDkgQEAgaW50
IFJlbmRlclRleHRDb250cm9sOjppbmRleEZvclZpc2libGVQbwogCiB2b2lkIFJlbmRlclRleHRD
b250cm9sOjp1cGRhdGVDYW5jZWxCdXR0b25WaXNpYmlsaXR5KFJlbmRlclN0eWxlKiBzdHlsZSkK
IHsKKyAgICBBU1NFUlQoIW1fbXVsdGlMaW5lKTsKICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1
dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpOwotICAgIFN0cmluZyB2
YWwgPSBpbnB1dC0+dmFsdWUoKTsKLSAgICBpZiAodmFsLmlzRW1wdHkoKSkKKyAgICBpZiAoaW5w
dXQtPnZhbHVlKCkuaXNFbXB0eSgpKQogICAgICAgICBzdHlsZS0+c2V0VmlzaWJpbGl0eShISURE
RU4pOwogICAgIGVsc2UKICAgICAgICAgc3R5bGUtPnNldFZpc2liaWxpdHkoVklTSUJMRSk7CkBA
IC00NDksMjcgKzQ0NCwyNSBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sOjp1cGRhdGVDYW5jZWxC
dXR0CiAKIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OnN1YnRyZWVIYXNDaGFuZ2VkKCkKIHsKLSAg
ICBib29sIHdhc1ByZXZpb3VzbHlFZGl0ZWQgPSBpc0VkaXRlZCgpOwotICAgIHNldEVkaXRlZCh0
cnVlKTsKKyAgICBib29sIHdhc0RpcnR5ID0gbV9kaXJ0eTsKKyAgICBtX2RpcnR5ID0gdHJ1ZTsK
ICAgICBIVE1MR2VuZXJpY0Zvcm1FbGVtZW50KiBlbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTEdl
bmVyaWNGb3JtRWxlbWVudCo+KG5vZGUoKSk7CiAgICAgaWYgKG1fbXVsdGlMaW5lKSB7CiAgICAg
ICAgIGVsZW1lbnQtPnNldFZhbHVlTWF0Y2hlc1JlbmRlcmVyKGZhbHNlKTsKICAgICAgICAgZG9j
dW1lbnQoKS0+ZnJhbWUoKS0+dGV4dERpZENoYW5nZUluVGV4dEFyZWEoZWxlbWVudCk7CiAgICAg
fSBlbHNlIHsKICAgICAgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzdGF0aWNfY2FzdDxI
VE1MSW5wdXRFbGVtZW50Kj4oZWxlbWVudCk7Ci0gICAgICAgIGlmIChpbnB1dCkgewotICAgICAg
ICAgICAgaW5wdXQtPnNldFZhbHVlRnJvbVJlbmRlcmVyKHRleHQoKSk7Ci0gICAgICAgICAgICBp
ZiAobV9jYW5jZWxCdXR0b24pCi0gICAgICAgICAgICAgICAgdXBkYXRlQ2FuY2VsQnV0dG9uVmlz
aWJpbGl0eShtX2NhbmNlbEJ1dHRvbi0+cmVuZGVyZXIoKS0+c3R5bGUoKSk7Ci0KLSAgICAgICAg
ICAgIC8vIElmIHRoZSBpbmNyZW1lbnRhbCBhdHRyaWJ1dGUgaXMgc2V0LCB0aGVuIGRpc3BhdGNo
IHRoZSBzZWFyY2ggZXZlbnQKLSAgICAgICAgICAgIGlmICghaW5wdXQtPmdldEF0dHJpYnV0ZShp
bmNyZW1lbnRhbEF0dHIpLmlzTnVsbCgpKQotICAgICAgICAgICAgICAgIG9uU2VhcmNoKCk7Ci0K
LSAgICAgICAgICAgIGlmICghd2FzUHJldmlvdXNseUVkaXRlZCkKLSAgICAgICAgICAgICAgICBk
b2N1bWVudCgpLT5mcmFtZSgpLT50ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcoaW5wdXQpOwotICAg
ICAgICAgICAgZG9jdW1lbnQoKS0+ZnJhbWUoKS0+dGV4dERpZENoYW5nZUluVGV4dEZpZWxkKGlu
cHV0KTsKLSAgICAgICAgfQorICAgICAgICBpbnB1dC0+c2V0VmFsdWVGcm9tUmVuZGVyZXIodGV4
dCgpKTsKKyAgICAgICAgaWYgKG1fY2FuY2VsQnV0dG9uKQorICAgICAgICAgICAgdXBkYXRlQ2Fu
Y2VsQnV0dG9uVmlzaWJpbGl0eShtX2NhbmNlbEJ1dHRvbi0+cmVuZGVyZXIoKS0+c3R5bGUoKSk7
CisKKyAgICAgICAgLy8gSWYgdGhlIGluY3JlbWVudGFsIGF0dHJpYnV0ZSBpcyBzZXQsIHRoZW4g
ZGlzcGF0Y2ggdGhlIHNlYXJjaCBldmVudAorICAgICAgICBpZiAoIWlucHV0LT5nZXRBdHRyaWJ1
dGUoaW5jcmVtZW50YWxBdHRyKS5pc051bGwoKSkKKyAgICAgICAgICAgIGlucHV0LT5vblNlYXJj
aCgpOworCisgICAgICAgIGlmICghd2FzRGlydHkpCisgICAgICAgICAgICBkb2N1bWVudCgpLT5m
cmFtZSgpLT50ZXh0RmllbGREaWRCZWdpbkVkaXRpbmcoaW5wdXQpOworICAgICAgICBkb2N1bWVu
dCgpLT5mcmFtZSgpLT50ZXh0RGlkQ2hhbmdlSW5UZXh0RmllbGQoaW5wdXQpOwogICAgIH0KIH0K
IApAQCAtNzAxLDkgKzY5NCw5IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OmZvcndhcmRFdmVu
dChFdmUKICAgICAgICAgICAgIGlmIChpbm5lckxheWVyICYmICFtX211bHRpTGluZSkKICAgICAg
ICAgICAgICAgICBpbm5lckxheWVyLT5zY3JvbGxUb09mZnNldChzdHlsZSgpLT5kaXJlY3Rpb24o
KSA9PSBSVEwgPyBpbm5lckxheWVyLT5zY3JvbGxXaWR0aCgpIDogMCwgMCk7CiAgICAgICAgIH0K
LSAgICAgICAgc2hvd1BsYWNlaG9sZGVySWZOZWVkZWQoKTsKKyAgICAgICAgdXBkYXRlUGxhY2Vo
b2xkZXIoKTsKICAgICB9IGVsc2UgaWYgKGV2dC0+dHlwZSgpID09IGZvY3VzRXZlbnQpCi0gICAg
ICAgIGhpZGVQbGFjZWhvbGRlcklmTmVlZGVkKCk7CisgICAgICAgIHVwZGF0ZVBsYWNlaG9sZGVy
KCk7CiAgICAgZWxzZSB7CiAgICAgICAgIEV2ZW50VGFyZ2V0Tm9kZSogbGVmdE5vZGU7CiAgICAg
ICAgIEV2ZW50VGFyZ2V0Tm9kZSogcmlnaHROb2RlOwpAQCAtNzMxLDcgKzcyNCw3IEBAIHZvaWQg
UmVuZGVyVGV4dENvbnRyb2w6OnNlbGVjdGlvbkNoYW5nZWQKICAgICBlbHNlCiAgICAgICAgIHN0
YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50KS0+Y2FjaGVTZWxlY3Rpb24oc2Vs
ZWN0aW9uU3RhcnQoKSwgc2VsZWN0aW9uRW5kKCkpOwogICAgIGlmIChkb2N1bWVudCgpLT5mcmFt
ZSgpLT5zZWxlY3Rpb25Db250cm9sbGVyKCktPmlzUmFuZ2UoKSAmJiB1c2VyVHJpZ2dlcmVkKQot
ICAgICAgICBlbGVtZW50LT5vblNlbGVjdCgpOworICAgICAgICBlbGVtZW50LT5kaXNwYXRjaEhU
TUxFdmVudChzZWxlY3RFdmVudCwgdHJ1ZSwgZmFsc2UpOwogfQogCiBpbnQgUmVuZGVyVGV4dENv
bnRyb2w6OnNjcm9sbFdpZHRoKCkgY29uc3QKQEAgLTc3NiwyNiArNzY5LDI3IEBAIHZvaWQgUmVu
ZGVyVGV4dENvbnRyb2w6OnNldFNjcm9sbFRvcChpbnQKIAogY29uc3QgQXRvbWljU3RyaW5nJiBS
ZW5kZXJUZXh0Q29udHJvbDo6YXV0b3NhdmVOYW1lKCkgY29uc3QKIHsKLSAgICBIVE1MSW5wdXRF
bGVtZW50KiBpbnB1dCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpOwot
ICAgIHJldHVybiBpbnB1dC0+Z2V0QXR0cmlidXRlKGF1dG9zYXZlQXR0cik7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKCkpLT5nZXRBdHRyaWJ1dGUoYXV0b3NhdmVBdHRy
KTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6YWRkU2VhcmNoUmVzdWx0KCkKIHsKKyAg
ICBBU1NFUlQoIW1fbXVsdGlMaW5lKTsKKwogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0g
c3RhdGljX2Nhc3Q8SFRNTElucHV0RWxlbWVudCo+KG5vZGUoKSk7CiAgICAgaWYgKGlucHV0LT5t
YXhSZXN1bHRzKCkgPD0gMCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU3RyaW5nIHYgPSBpbnB1
dC0+dmFsdWUoKTsKLSAgICBpZiAodi5pc0VtcHR5KCkgfHwgIWRvY3VtZW50KCkgfHwgIWRvY3Vt
ZW50KCktPmZyYW1lKCkgfHwgZG9jdW1lbnQoKS0+ZnJhbWUoKS0+c2V0dGluZ3MoKS0+cHJpdmF0
ZUJyb3dzaW5nRW5hYmxlZCgpKQorICAgIFN0cmluZyB2YWx1ZSA9IGlucHV0LT52YWx1ZSgpOwor
ICAgIGlmICh2YWx1ZS5pc0VtcHR5KCkgfHwgIWRvY3VtZW50KCkgfHwgIWRvY3VtZW50KCktPmZy
YW1lKCkgfHwgZG9jdW1lbnQoKS0+ZnJhbWUoKS0+c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpbnQgc2l6ZSA9IHN0YXRpY19jYXN0
PGludD4obV9yZWNlbnRTZWFyY2hlcy5zaXplKCkpOwogICAgIGZvciAoaW50IGkgPSBzaXplIC0g
MTsgaSA+PSAwOyAtLWkpCi0gICAgICAgIGlmIChtX3JlY2VudFNlYXJjaGVzW2ldID09IHYpCisg
ICAgICAgIGlmIChtX3JlY2VudFNlYXJjaGVzW2ldID09IHZhbHVlKQogICAgICAgICAgICAgbV9y
ZWNlbnRTZWFyY2hlcy5yZW1vdmUoaSk7CiAKLSAgICBtX3JlY2VudFNlYXJjaGVzLmluc2VydCgw
LCB2KTsKKyAgICBtX3JlY2VudFNlYXJjaGVzLmluc2VydCgwLCB2YWx1ZSk7CiAgICAgd2hpbGUg
KHN0YXRpY19jYXN0PGludD4obV9yZWNlbnRTZWFyY2hlcy5zaXplKCkpID4gaW5wdXQtPm1heFJl
c3VsdHMoKSkKICAgICAgICAgbV9yZWNlbnRTZWFyY2hlcy5yZW1vdmVMYXN0KCk7CiAKQEAgLTgw
NSwxMSArNzk5LDYgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6YWRkU2VhcmNoUmVzdWx0KAog
ICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBtX3JlY2VudFNlYXJj
aGVzKTsKIH0KIAotdm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6b25TZWFyY2goKSBjb25zdAotewot
ICAgIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpLT5vblNlYXJjaCgpOwot
fQotCiB2b2lkIFJlbmRlclRleHRDb250cm9sOjpzaG93UG9wdXAoKQogewogICAgIGlmIChtX3Nl
YXJjaFBvcHVwSXNWaXNpYmxlKQpAQCAtODQxLDE1ICs4MzAsMTUgQEAgdm9pZCBSZW5kZXJUZXh0
Q29udHJvbDo6aGlkZVBvcHVwKCkKICAgICBtX3NlYXJjaFBvcHVwSXNWaXNpYmxlID0gZmFsc2U7
CiB9CiAKLXZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OnZhbHVlQ2hhbmdlZCh1bnNpZ25lZCBsaXN0
SW5kZXgsIGJvb2wgZmlyZU9uU2VhcmNoKQordm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6dmFsdWVD
aGFuZ2VkKHVuc2lnbmVkIGxpc3RJbmRleCwgYm9vbCBmaXJlRXZlbnRzKQogewogICAgIEFTU0VS
VChsaXN0SW5kZXggPCBsaXN0U2l6ZSgpKTsKICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1dCA9
IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihub2RlKCkpOwogICAgIGlmIChsaXN0SW5k
ZXggPT0gKGxpc3RTaXplKCkgLSAxKSkgewotICAgICAgICBpZiAoZmlyZU9uU2VhcmNoKSB7Cisg
ICAgICAgIGlmIChmaXJlRXZlbnRzKSB7CiAgICAgICAgICAgICBtX3JlY2VudFNlYXJjaGVzLmNs
ZWFyKCk7CiAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBhdXRvc2F2ZU5h
bWUoKTsKLSAgICAgICAgICAgIGlmICghbmFtZS5pc051bGwoKSkgeworICAgICAgICAgICAgaWYg
KCFuYW1lLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIGlmICghbV9zZWFyY2hQb3B1cCkK
ICAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IFNlYXJjaFBvcHVwTWVudTo6Y3Jl
YXRlKHRoaXMpOwogICAgICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFy
Y2hlcyhuYW1lLCBtX3JlY2VudFNlYXJjaGVzKTsKQEAgLTg1Nyw4ICs4NDYsOCBAQCB2b2lkIFJl
bmRlclRleHRDb250cm9sOjp2YWx1ZUNoYW5nZWQodW5zCiAgICAgICAgIH0KICAgICB9IGVsc2Ug
ewogICAgICAgICBpbnB1dC0+c2V0VmFsdWUoaXRlbVRleHQobGlzdEluZGV4KSk7Ci0gICAgICAg
IGlmIChmaXJlT25TZWFyY2gpCi0gICAgICAgICAgICBvblNlYXJjaCgpOworICAgICAgICBpZiAo
ZmlyZUV2ZW50cykKKyAgICAgICAgICAgIGlucHV0LT5vblNlYXJjaCgpOwogICAgICAgICBpbnB1
dC0+c2VsZWN0KCk7CiAgICAgfQogfQpJbmRleDogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgJKHJldmlzaW9u
IDE4NzYzKQorKysgcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVy
LCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLnMKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzIsNyArMzIsNyBAQCBjbGFzcyBI
VE1MU2VhcmNoRmllbGRDYW5jZWxCdXR0b25FbGVtZW50CiBjbGFzcyBIVE1MU2VhcmNoRmllbGRS
ZXN1bHRzQnV0dG9uRWxlbWVudDsKIGNsYXNzIFNlYXJjaFBvcHVwTWVudTsKIAotY2xhc3MgUmVu
ZGVyVGV4dENvbnRyb2wgOiBwdWJsaWMgUmVuZGVyQmxvY2ssIHB1YmxpYyBQb3B1cE1lbnVDbGll
bnQgeworY2xhc3MgUmVuZGVyVGV4dENvbnRyb2wgOiBwdWJsaWMgUmVuZGVyQmxvY2ssIHByaXZh
dGUgUG9wdXBNZW51Q2xpZW50IHsKIHB1YmxpYzoKICAgICBSZW5kZXJUZXh0Q29udHJvbChOb2Rl
KiwgYm9vbCBtdWx0aUxpbmUpOwogICAgIHZpcnR1YWwgflJlbmRlclRleHRDb250cm9sKCk7CkBA
IC01MCwxMCArNTAsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKICAg
ICB2aXJ0dWFsIGJvb2wgYXZvaWRzRmxvYXRzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0g
ICAgYm9vbCBpc0VkaXRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlydHk7IH07Ci0gICAgdm9pZCBz
ZXRFZGl0ZWQoYm9vbCBpc0VkaXRlZCkgeyBtX2RpcnR5ID0gaXNFZGl0ZWQ7IH07Ci0gICAgYm9v
bCBpc1RleHRGaWVsZCgpIGNvbnN0IHsgcmV0dXJuICFtX211bHRpTGluZTsgfQotICAgIGJvb2wg
aXNUZXh0QXJlYSgpIGNvbnN0IHsgcmV0dXJuIG1fbXVsdGlMaW5lOyB9CisgICAgdmlydHVhbCBi
b29sIGlzRWRpdGVkKCkgY29uc3QgeyByZXR1cm4gbV9kaXJ0eTsgfQorICAgIHZpcnR1YWwgdm9p
ZCBzZXRFZGl0ZWQoYm9vbCBpc0VkaXRlZCkgeyBtX2RpcnR5ID0gaXNFZGl0ZWQ7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNUZXh0RmllbGQoKSBjb25zdCB7IHJldHVybiAhbV9tdWx0aUxpbmU7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0QXJlYSgpIGNvbnN0IHsgcmV0dXJuIG1fbXVsdGlMaW5l
OyB9CiAKICAgICBpbnQgc2VsZWN0aW9uU3RhcnQoKTsKICAgICBpbnQgc2VsZWN0aW9uRW5kKCk7
CkBAIC04MSwzOCArODEsMzYgQEAgcHVibGljOgogICAgIGludCBpbmRleEZvclZpc2libGVQb3Np
dGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24mKTsKIAogICAgIHZvaWQgYWRkU2VhcmNoUmVzdWx0
KCk7Ci0gICAgdm9pZCBvblNlYXJjaCgpIGNvbnN0OwogCiAgICAgYm9vbCBwb3B1cElzVmlzaWJs
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VhcmNoUG9wdXBJc1Zpc2libGU7IH0KICAgICB2b2lkIHNo
b3dQb3B1cCgpOwogICAgIHZvaWQgaGlkZVBvcHVwKCk7CiAKK3ByaXZhdGU6CiAgICAgLy8gUG9w
dXBNZW51Q2xpZW50IG1ldGhvZHMKLSAgICB2b2lkIHZhbHVlQ2hhbmdlZCh1bnNpZ25lZCBsaXN0
SW5kZXgsIGJvb2wgZmlyZU9uU2VhcmNoID0gdHJ1ZSk7Ci0gICAgU3RyaW5nIGl0ZW1UZXh0KHVu
c2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7Ci0gICAgYm9vbCBpdGVtSXNFbmFibGVkKHVuc2lnbmVk
IGxpc3RJbmRleCkgY29uc3Q7Ci0gICAgUmVuZGVyU3R5bGUqIGl0ZW1TdHlsZSh1bnNpZ25lZCBs
aXN0SW5kZXgpIGNvbnN0OwotICAgIFJlbmRlclN0eWxlKiBjbGllbnRTdHlsZSgpIGNvbnN0Owot
ICAgIERvY3VtZW50KiBjbGllbnREb2N1bWVudCgpIGNvbnN0OwotICAgIGludCBjbGllbnRQYWRk
aW5nTGVmdCgpIGNvbnN0OwotICAgIGludCBjbGllbnRQYWRkaW5nUmlnaHQoKSBjb25zdDsKLSAg
ICB1bnNpZ25lZCBsaXN0U2l6ZSgpIGNvbnN0OwotICAgIGludCBzZWxlY3RlZEluZGV4KCkgY29u
c3Q7Ci0gICAgYm9vbCBpdGVtSXNTZXBhcmF0b3IodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdDsK
LSAgICBib29sIGl0ZW1Jc0xhYmVsKHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7Ci0gICAgYm9v
bCBpdGVtSXNTZWxlY3RlZCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0OwotICAgIHZvaWQgc2V0
VGV4dEZyb21JdGVtKHVuc2lnbmVkIGxpc3RJbmRleCk7Ci0gICAgYm9vbCBzaG91bGRQb3BPdmVy
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIHZhbHVlU2hvdWxkQ2hhbmdlT25I
b3RUcmFjaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIHZhbHVl
Q2hhbmdlZCh1bnNpZ25lZCBsaXN0SW5kZXgsIGJvb2wgZmlyZUV2ZW50cyA9IHRydWUpOworICAg
IHZpcnR1YWwgU3RyaW5nIGl0ZW1UZXh0KHVuc2lnbmVkIGxpc3RJbmRleCkgY29uc3Q7CisgICAg
dmlydHVhbCBib29sIGl0ZW1Jc0VuYWJsZWQodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdDsKKyAg
ICB2aXJ0dWFsIFJlbmRlclN0eWxlKiBpdGVtU3R5bGUodW5zaWduZWQgbGlzdEluZGV4KSBjb25z
dDsKKyAgICB2aXJ0dWFsIFJlbmRlclN0eWxlKiBjbGllbnRTdHlsZSgpIGNvbnN0OworICAgIHZp
cnR1YWwgRG9jdW1lbnQqIGNsaWVudERvY3VtZW50KCkgY29uc3Q7CisgICAgdmlydHVhbCBpbnQg
Y2xpZW50UGFkZGluZ0xlZnQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGludCBjbGllbnRQYWRkaW5n
UmlnaHQoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHVuc2lnbmVkIGxpc3RTaXplKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBpbnQgc2VsZWN0ZWRJbmRleCgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBp
dGVtSXNTZXBhcmF0b3IodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgaXRlbUlzTGFiZWwodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJv
b2wgaXRlbUlzU2VsZWN0ZWQodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdDsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0VGV4dEZyb21JdGVtKHVuc2lnbmVkIGxpc3RJbmRleCk7CisgICAgdmlydHVhbCBi
b29sIHNob3VsZFBvcE92ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCB2YWx1ZVNob3VsZENoYW5nZU9uSG90VHJhY2soKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogCi1wcml2YXRlOgogICAgIFJlbmRlclN0eWxlKiBjcmVhdGVJbm5lckJsb2NrU3R5bGUoUmVu
ZGVyU3R5bGUqIHN0YXJ0U3R5bGUpOwogICAgIFJlbmRlclN0eWxlKiBjcmVhdGVJbm5lclRleHRT
dHlsZShSZW5kZXJTdHlsZSogc3RhcnRTdHlsZSk7CiAgICAgUmVuZGVyU3R5bGUqIGNyZWF0ZUNh
bmNlbEJ1dHRvblN0eWxlKFJlbmRlclN0eWxlKiBzdGFydFN0eWxlKTsKICAgICBSZW5kZXJTdHls
ZSogY3JlYXRlUmVzdWx0c0J1dHRvblN0eWxlKFJlbmRlclN0eWxlKiBzdGFydFN0eWxlKTsKIAot
ICAgIHZvaWQgc2hvd1BsYWNlaG9sZGVySWZOZWVkZWQoKTsKLSAgICB2b2lkIGhpZGVQbGFjZWhv
bGRlcklmTmVlZGVkKCk7CisgICAgdm9pZCB1cGRhdGVQbGFjZWhvbGRlcigpOwogICAgIHZvaWQg
Y3JlYXRlU3VidHJlZUlmTmVlZGVkKCk7CiAgICAgdm9pZCB1cGRhdGVDYW5jZWxCdXR0b25WaXNp
YmlsaXR5KFJlbmRlclN0eWxlKik7CiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBhdXRvc2F2ZU5h
bWUoKSBjb25zdDsK
</data>
<flag name="review"
          id="4633"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>