<?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>120483</bug_id>
          
          <creation_ts>2013-08-29 12:01:38 -0700</creation_ts>
          <short_desc>Pasteboard::writeSelection violates layering (first step, fixes it for Mac platform only)</short_desc>
          <delta_ts>2013-08-29 13:08:15 -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>HTML Editing</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>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>922589</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-08-29 12:01:38 -0700</bug_when>
    <thetext>Pasteboard::writeSelection violates layering (first step, fixes it for Mac platform only)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922599</commentid>
    <comment_count>1</comment_count>
      <attachid>210014</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-08-29 12:17:39 -0700</bug_when>
    <thetext>Created attachment 210014
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922601</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-08-29 12:18:30 -0700</bug_when>
    <thetext>Didn’t put [Mac] on the title because it touches cross-platform files a lot even though the only benefit is on Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922603</commentid>
    <comment_count>3</comment_count>
      <attachid>210014</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-08-29 12:21:18 -0700</bug_when>
    <thetext>Comment on attachment 210014
Patch

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

&gt; Source/WebCore/editing/Editor.h:45
&gt;  class NSDictionary;

Should make this an OBJC_CLASS while you’re here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922606</commentid>
    <comment_count>4</comment_count>
      <attachid>210014</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-29 12:26:26 -0700</bug_when>
    <thetext>Comment on attachment 210014
Patch

Attachment 210014 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/1631292</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922607</commentid>
    <comment_count>5</comment_count>
      <attachid>210014</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-08-29 12:28:13 -0700</bug_when>
    <thetext>Comment on attachment 210014
Patch

Attachment 210014 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/1617014</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>922620</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-08-29 13:08:15 -0700</bug_when>
    <thetext>Committed r154836: &lt;http://trac.webkit.org/changeset/154836&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210014</attachid>
            <date>2013-08-29 12:17:39 -0700</date>
            <delta_ts>2013-08-29 12:28:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120483-20130829121738.patch</filename>
            <type>text/plain</type>
            <size>23851</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU0NzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQwZmU0ZDVlYzQ5MmM3
MjdmOWYwMGEzZGFiNzQ4MTE2ODNiNDg5My4uNDYyNjg2NDIxYzQwYWM3MjEwNzMzMjQ5NDE3M2Uz
MDM4YWNiZGNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEzLTA4LTI5ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBQYXN0ZWJvYXJkOjp3cml0ZVNl
bGVjdGlvbiB2aW9sYXRlcyBsYXllcmluZyAoZmlyc3Qgc3RlcCwgZml4ZXMgaXQgZm9yIE1hYyBw
bGF0Zm9ybSBvbmx5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTIwNDgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmN1
dCk6IEFkZGVkIHNvbWUgY29tbWVudHMuIFVzZSB0aGUgbmV3IHdyaXRlU2VsZWN0aW9uVG9QYXN0
ZWJvYXJkCisgICAgICAgIGZ1bmN0aW9uIG9uIE1hYyBpbnN0ZWFkIG9mIFBhc3RlYm9hcmQ6Ondy
aXRlU2VsZWN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjb3B5KTogRGl0dG8uCisK
KyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOiBSZW1vdmVkIGFuIG9sZCB1bnVzZWQgTWFjLW9u
bHkgd3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQgZnVuY3Rpb24KKyAgICAgICAgdGhhdCB3YXMg
YSBjb3ZlciB0aGF0IGNhbGxlZCB0aHJvdWdoIHRvIFBhc3RlYm9hcmQ6OndyaXRlU2VsZWN0aW9u
Rm9yVHlwZXMuIEFkZGVkIGEgbmV3CisgICAgICAgIE1hYy1vbmx5IHdyaXRlU2VsZWN0aW9uVG9Q
YXN0ZWJvYXJkIGZ1bmN0aW9uIHRoYXQgaXMgZGVzdGluZWQgdG8gYmVjb21lIGNyb3NzLXBsYXRm
b3JtIHNvb24uCisKKyAgICAgICAgKiBlZGl0aW5nL21hYy9FZGl0b3JNYWMubW06CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3I6OndyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKTogQWRkZWQuIFVz
ZXMgYSBuZXcgcGF0dGVybiB3aGVyZSB0aGUgRWRpdG9yCisgICAgICAgIHB1dHMgYWxsIHRoZSBk
YXRhIGludG8gYSBzdHJ1Y3R1cmUgY2FsbGVkIFBhc3RlYm9hcmRXZWJDb250ZW50IHRoZW4gY2Fs
bHMgdGhlIFBhc3RlYm9hcmQgdG8KKyAgICAgICAgZG8gdGhlIHdvcmsuIFRoZSBwbGF0Zm9ybS1z
cGVjaWZpYyBhc3BlY3Qgb2YgUGFzdGVib2FyZFdlYkNvbnRlbnQgaXMgd2hhdCBmb3JtYXRzIGFy
ZSBuZWVkZWQKKyAgICAgICAgZm9yIGVhY2ggcGxhdGZvcm0uCisKKyAgICAgICAgKiBwYWdlL0Ry
YWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpzdGFy
dERyYWcpOiBBZGRlZCBzb21lIGNvbW1lbnRzLiBVc2UgdGhlIG5ldyB3cml0ZVNlbGVjdGlvblRv
UGFzdGVib2FyZAorICAgICAgICBmdW5jdGlvbiBvbiBNYWMgaW5zdGVhZCBvZiBQYXN0ZWJvYXJk
Ojp3cml0ZVNlbGVjdGlvbi4KKworICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDogUmVt
b3ZlIHNvbWUgdW5uZWVkZWQgZm9yd2FyZCBkZWNsYXJhdGlvbnMuIEFkZGVkIGNvbW1lbnRzIGZv
ciBhbGwgZnVuY3Rpb25zCisgICAgICAgIHRoYXQgZG9uJ3QgYmVsb25nIGluIHRoaXMgY2xhc3Mg
YmVjYXVzZSB0aGV5IGFyZSBsYXllcmluZyB2aW9sYXRpb25zOyB0aGlzIGJlY29tZXMgdGhlIHRv
IGRvIGxpc3QgZm9yCisgICAgICAgIHRoZSBwcm9qZWN0IHdlIGFyZSBiZWdpbm5pbmcgaGVyZS4g
QWRkZWQgdGhlIG5ldyBQYXN0ZWJvYXJkV2ViQ29udGVudCBzdHJ1Y3R1cmUsIGVtcHR5IG9uIGFs
bCBwbGF0Zm9ybXMKKyAgICAgICAgZXhjZXB0IGZvciBNYWMgZm9yIG5vdy4gUmVtb3ZlZCB3cml0
ZVNlbGVjdGlvbkZvclR5cGVzLCBhIE1hYy1vbmx5IGZ1bmN0aW9uIHRoYXQgaXMgbm8gbG9uZ2Vy
IHVzZWQuCisgICAgICAgIEFkZGVkIHNldFR5cGVzIGFuZCB3cml0ZUFmdGVyU2V0dGluZ1R5cGVz
LCB0aGUgdHdvIGhhbHZlcyBvZiB0aGUgZnV0dXJlIGZ1bmN0aW9uIG5hbWVkIHdyaXRlV2ViQ29u
dGVudC4KKyAgICAgICAgUHV0IHRoZSB3cml0ZVNlbGVjdGlvbiBmdW5jdGlvbiBpbnNpZGUgYSAi
bm90IE1hYyIgaWYgc3RhdGVtZW50LiBMYXRlciB0byBiZSBkZWxldGVkIGVudGlyZWx5LgorCisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW06IFJlbW92ZWQgbm93LXVubmVl
ZGVkIHNlbGVjdGlvblBhc3RlYm9hcmRUeXBlcywKKyAgICAgICAgUGFzdGVib2FyZDo6d3JpdGVT
ZWxlY3Rpb25Gb3JUeXBlcywgYW5kIHdyaXRlU2VsZWN0aW9uIGZ1bmN0aW9ucy4KKyAgICAgICAg
KFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnNldFR5cGVzKTogQWRkZWQuIEZpcnN0IGhhbGYgb2Ygd3Jp
dGluZyB3ZWIgY29udGVudCB0byB0aGUgcGFzdGVib2FyZC4KKyAgICAgICAgKFdlYkNvcmU6OlBh
c3RlYm9hcmQ6OndyaXRlQWZ0ZXJTZXR0aW5nVHlwZXMpOiBBZGRlZC4gU2Vjb25kIGhhbGYgb2Yg
d3JpdGluZyB3ZWIgY29udGVudCB0byB0aGUgcGFzdGVib2FyZC4KKwogMjAxMy0wOC0yOCAgVGFt
YXMgQ3plbmUgIDx0Y3plbmVAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFJlc29sdmUgdW51
c2VkIHBhcmFtZXRlciB3YXJuaW5nIGluIFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5jcHAu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggZWNkZWJhYTZhYmQzMmU1ZWVjYWU4ZGVm
MTM2ZWMxMzJmNzM2OTQ5YS4uZTE1NDM1ZGY1MmRhMGM2ZGZkYzQxOTk2NmRlYzgwYTlkZjI2OGI0
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTAzNywxNSArMTAzNywyMiBAQCB2
b2lkIEVkaXRvcjo6Y3V0KCkKICAgICAgICAgc3lzdGVtQmVlcCgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQorCisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHNoYXJlIG1vcmUgY29kZSB3aXRo
IHRoZSBjb3B5IGZ1bmN0aW9uOyB0aGVyZSBpcyBhIGxvdCBvZiBvdmVybGFwLgogICAgIFJlZlB0
cjxSYW5nZT4gc2VsZWN0aW9uID0gc2VsZWN0ZWRSYW5nZSgpOwogICAgIHdpbGxXcml0ZVNlbGVj
dGlvblRvUGFzdGVib2FyZChzZWxlY3Rpb24pOwogICAgIGlmIChzaG91bGREZWxldGVSYW5nZShz
ZWxlY3Rpb24uZ2V0KCkpKSB7CiAgICAgICAgIHVwZGF0ZU1hcmtlcnNGb3JXb3Jkc0FmZmVjdGVk
QnlFZGl0aW5nKHRydWUpOwotICAgICAgICBpZiAoZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKG1f
ZnJhbWUuc2VsZWN0aW9uKCkuc3RhcnQoKSkpIHsKLSAgICAgICAgICAgIFBhc3RlYm9hcmQ6OmNy
ZWF0ZUZvckNvcHlBbmRQYXN0ZSgpLT53cml0ZVBsYWluVGV4dChzZWxlY3RlZFRleHRGb3JDbGlw
Ym9hcmQoKSwKLSAgICAgICAgICAgICAgICBjYW5TbWFydENvcHlPckRlbGV0ZSgpID8gUGFzdGVi
b2FyZDo6Q2FuU21hcnRSZXBsYWNlIDogUGFzdGVib2FyZDo6Q2Fubm90U21hcnRSZXBsYWNlKTsK
LSAgICAgICAgfSBlbHNlCisgICAgICAgIGlmIChlbmNsb3NpbmdUZXh0Rm9ybUNvbnRyb2wobV9m
cmFtZS5zZWxlY3Rpb24oKS5zdGFydCgpKSkKKyAgICAgICAgICAgIFBhc3RlYm9hcmQ6OmNyZWF0
ZUZvckNvcHlBbmRQYXN0ZSgpLT53cml0ZVBsYWluVGV4dChzZWxlY3RlZFRleHRGb3JDbGlwYm9h
cmQoKSwgY2FuU21hcnRDb3B5T3JEZWxldGUoKSA/IFBhc3RlYm9hcmQ6OkNhblNtYXJ0UmVwbGFj
ZSA6IFBhc3RlYm9hcmQ6OkNhbm5vdFNtYXJ0UmVwbGFjZSk7CisgICAgICAgIGVsc2UgeworI2lm
IFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKKyAgICAgICAgICAgIHdyaXRlU2VsZWN0
aW9uVG9QYXN0ZWJvYXJkKCpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSk7Cisj
ZWxzZQorICAgICAgICAgICAgLy8gRklYTUU6IENvbnZlcnQgYWxsIG90aGVyIHBsYXRmb3JtcyB0
byBtYXRjaCBNYWMgYW5kIGRlbGV0ZSB0aGlzLgogICAgICAgICAgICAgUGFzdGVib2FyZDo6Y3Jl
YXRlRm9yQ29weUFuZFBhc3RlKCktPndyaXRlU2VsZWN0aW9uKHNlbGVjdGlvbi5nZXQoKSwgY2Fu
U21hcnRDb3B5T3JEZWxldGUoKSwgJm1fZnJhbWUsIEluY2x1ZGVJbWFnZUFsdFRleHRGb3JDbGlw
Ym9hcmQpOworI2VuZGlmCisgICAgICAgIH0KICAgICAgICAgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bh
c3RlYm9hcmQoKTsKICAgICAgICAgZGVsZXRlU2VsZWN0aW9uV2l0aFNtYXJ0RGVsZXRlKGNhblNt
YXJ0Q29weU9yRGVsZXRlKCkpOwogICAgIH0KQEAgLTEwNjgsOCArMTA3NSwxNCBAQCB2b2lkIEVk
aXRvcjo6Y29weSgpCiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCA9IG1fZnJhbWUuZG9jdW1l
bnQoKTsKICAgICAgICAgaWYgKEhUTUxJbWFnZUVsZW1lbnQqIGltYWdlRWxlbWVudCA9IGltYWdl
RWxlbWVudEZyb21JbWFnZURvY3VtZW50KGRvY3VtZW50KSkKICAgICAgICAgICAgIFBhc3RlYm9h
cmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpLT53cml0ZUltYWdlKGltYWdlRWxlbWVudCwgZG9j
dW1lbnQtPnVybCgpLCBkb2N1bWVudC0+dGl0bGUoKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpLT53cml0ZVNlbGVjdGlvbihz
ZWxlY3RlZFJhbmdlKCkuZ2V0KCksIGNhblNtYXJ0Q29weU9yRGVsZXRlKCksICZtX2ZyYW1lLCBJ
bmNsdWRlSW1hZ2VBbHRUZXh0Rm9yQ2xpcGJvYXJkKTsKKyAgICAgICAgZWxzZSB7CisjaWYgUExB
VEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQorICAgICAgICAgICAgd3JpdGVTZWxlY3Rpb25U
b1Bhc3RlYm9hcmQoKlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpKTsKKyNlbHNl
CisgICAgICAgICAgICAvLyBGSVhNRTogQ29udmVydCBhbGwgb3RoZXIgcGxhdGZvcm1zIHRvIG1h
dGNoIE1hYyBhbmQgZGVsZXRlIHRoaXMuCisgICAgICAgICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVG
b3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVTZWxlY3Rpb24oc2VsZWN0aW9uLmdldCgpLCBjYW5TbWFy
dENvcHlPckRlbGV0ZSgpLCAmbV9mcmFtZSwgSW5jbHVkZUltYWdlQWx0VGV4dEZvckNsaXBib2Fy
ZCk7CisjZW5kaWYKKyAgICAgICAgfQogICAgIH0KIAogICAgIGRpZFdyaXRlU2VsZWN0aW9uVG9Q
YXN0ZWJvYXJkKCk7CkBAIC0zMTI3LDYgKzMxNDAsNiBAQCB2b2lkIEVkaXRvcjo6dG9nZ2xlT3Zl
cndyaXRlTW9kZUVuYWJsZWQoKQogewogICAgIG1fb3ZlcndyaXRlTW9kZUVuYWJsZWQgPSAhbV9v
dmVyd3JpdGVNb2RlRW5hYmxlZDsKICAgICBtX2ZyYW1lLnNlbGVjdGlvbigpLnNldFNob3VsZFNo
b3dCbG9ja0N1cnNvcihtX292ZXJ3cml0ZU1vZGVFbmFibGVkKTsKLX07Cit9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IDM0ZDU3NjNmMzEzODk2
YjBlMWNkYjQ3ZWMwZjdiZmI5NWIyNTE3MzQuLjNhZWZlYmFjYjIwZGZmNjczZWNlY2IwN2FmMThm
MTA0NGUwMzU1NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDMsMTYgKzQzLDEzIEBA
CiAKICNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKF9fT0JKQ19fKQogY2xhc3MgTlNEaWN0
aW9uYXJ5OwotdHlwZWRlZiBpbnQgTlNXcml0aW5nRGlyZWN0aW9uOwogI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2xpcGJvYXJkOwogY2xhc3MgQ29tcG9zaXRlRWRpdENv
bW1hbmQ7Ci0jaWYgRU5BQkxFKERFTEVUSU9OX1VJKQogY2xhc3MgRGVsZXRlQnV0dG9uQ29udHJv
bGxlcjsKLSNlbmRpZgogY2xhc3MgRWRpdENvbW1hbmQ7CiBjbGFzcyBFZGl0Q29tbWFuZENvbXBv
c2l0aW9uOwogY2xhc3MgRWRpdG9yQ2xpZW50OwpAQCAtMjUxLDYgKzI0OCw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGxvd2VyY2FzZVdvcmQoKTsKICAgICB2b2lkIGNhcGl0YWxpemVXb3JkKCk7CiAj
ZW5kaWYKKwogI2lmIFVTRShBVVRPTUFUSUNfVEVYVF9SRVBMQUNFTUVOVCkKICAgICB2b2lkIHNo
b3dTdWJzdGl0dXRpb25zUGFuZWwoKTsKICAgICBib29sIHN1YnN0aXR1dGlvbnNQYW5lbElzU2hv
d2luZygpOwpAQCAtMjg3LDcgKzI4NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZEVuZEVkaXRp
bmcoKTsKICAgICB2b2lkIHdpbGxXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChQYXNzUmVmUHRy
PFJhbmdlPik7CiAgICAgdm9pZCBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwotICAg
IAorCiAgICAgdm9pZCBzaG93Rm9udFBhbmVsKCk7CiAgICAgdm9pZCBzaG93U3R5bGVzUGFuZWwo
KTsKICAgICB2b2lkIHNob3dDb2xvclBhbmVsKCk7CkBAIC0zOTIsNyArMzkwLDcgQEAgcHVibGlj
OgogICAgIE5TRGljdGlvbmFyeSogZm9udEF0dHJpYnV0ZXNGb3JTZWxlY3Rpb25TdGFydCgpIGNv
bnN0OwogICAgIGJvb2wgY2FuQ29weUV4Y2x1ZGluZ1N0YW5kYWxvbmVJbWFnZXMoKTsKICAgICB2
b2lkIHRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbigpOwotICAgIHZvaWQgd3JpdGVTZWxlY3Rp
b25Ub1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHBhc3RlYm9hcmRUeXBlcyk7CisgICAgdm9pZCB3cml0ZVNlbGVjdGlvblRvUGFz
dGVib2FyZChQYXN0ZWJvYXJkJik7CiAgICAgdm9pZCByZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9h
cmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSk7CiAgICAgU3RyaW5nIHN0cmluZ1NlbGVj
dGlvbkZvclBhc3RlYm9hcmQoKTsKICAgICBTdHJpbmcgc3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVi
b2FyZFdpdGhJbWFnZUFsdFRleHQoKTsKQEAgLTQxMyw2ICs0MTEsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXREZWZhdWx0UGFyYWdyYXBoU2VwYXJhdG9yKEVkaXRvclBhcmFncmFwaFNlcGFyYXRv
ciBzZXBhcmF0b3IpIHsgbV9kZWZhdWx0UGFyYWdyYXBoU2VwYXJhdG9yID0gc2VwYXJhdG9yOyB9
CiAgICAgVmVjdG9yPFN0cmluZz4gZGljdGF0aW9uQWx0ZXJuYXRpdmVzRm9yTWFya2VyKGNvbnN0
IERvY3VtZW50TWFya2VyKik7CiAgICAgdm9pZCBhcHBseURpY3RhdGlvbkFsdGVybmF0aXZlbHRl
cm5hdGl2ZShjb25zdCBTdHJpbmcmIGFsdGVybmF0aXZlU3RyaW5nKTsKKwogcHJpdmF0ZToKICAg
ICBleHBsaWNpdCBFZGl0b3IoRnJhbWUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9tYWMvRWRpdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYWMvRWRp
dG9yTWFjLm1tCmluZGV4IDZhZmVkOTgyZTVmNTY5ZDZmMGQ4ODg0NTMyOGM5NzU4ZDMwZDFiNTIu
LjNmMjFhMDQ3MDkyNDNkMjkxMDUzYzJlZDU5NzIzNGUxNTQ1YzVlYmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0VkaXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KQEAgLTI0MywxMiArMjQzLDYgQEAgdm9pZCBFZGl0
b3I6OnRha2VGaW5kU3RyaW5nRnJvbVNlbGVjdGlvbigpCiAgICAgcGxhdGZvcm1TdHJhdGVnaWVz
KCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zZXRTdHJpbmdGb3JUeXBlKG1fZnJhbWUuZGlzcGxh
eVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhzZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQoKSksIE5T
U3RyaW5nUGJvYXJkVHlwZSwgTlNGaW5kUGJvYXJkKTsKIH0KIAotdm9pZCBFZGl0b3I6OndyaXRl
U2VsZWN0aW9uVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBwYXN0ZWJvYXJkVHlwZXMpCi17Ci0gICAgUGFzdGVib2FyZCBwYXN0
ZWJvYXJkKHBhc3RlYm9hcmROYW1lKTsKLSAgICBwYXN0ZWJvYXJkLndyaXRlU2VsZWN0aW9uRm9y
VHlwZXMocGFzdGVib2FyZFR5cGVzLCB0cnVlLCAmbV9mcmFtZSwgRGVmYXVsdFNlbGVjdGVkVGV4
dFR5cGUpOwotfQotICAgIAogdm9pZCBFZGl0b3I6OnJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVib2Fy
ZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQogewogICAgIFBhc3RlYm9hcmQgcGFzdGVi
b2FyZChwYXN0ZWJvYXJkTmFtZSk7CkBAIC0yNzksNCArMjczLDIzIEBAIFBhc3NSZWZQdHI8U2hh
cmVkQnVmZmVyPiBFZGl0b3I6OmRhdGFTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKGNvbnN0IFN0cmlu
ZyYgcGFzdGViCiAgICAgcmV0dXJuIFBhc3RlYm9hcmQ6OmdldERhdGFTZWxlY3Rpb24oJm1fZnJh
bWUsIHBhc3RlYm9hcmRUeXBlKTsKIH0KIAordm9pZCBFZGl0b3I6OndyaXRlU2VsZWN0aW9uVG9Q
YXN0ZWJvYXJkKFBhc3RlYm9hcmQmIHBhc3RlYm9hcmQpCit7CisgICAgUGFzdGVib2FyZFdlYkNv
bnRlbnQgY29udGVudDsKKyAgICBjb250ZW50LmNhblNtYXJ0Q29weU9yRGVsZXRlID0gY2FuU21h
cnRDb3B5T3JEZWxldGUoKTsKKyAgICBpZiAoUmVmUHRyPExlZ2FjeVdlYkFyY2hpdmU+IHdlYkFy
Y2hpdmUgPSBMZWdhY3lXZWJBcmNoaXZlOjpjcmVhdGVGcm9tU2VsZWN0aW9uKCZtX2ZyYW1lKSkK
KyAgICAgICAgY29udGVudC5kYXRhSW5XZWJBcmNoaXZlRm9ybWF0ID0gU2hhcmVkQnVmZmVyOjp3
cmFwQ0ZEYXRhKHdlYkFyY2hpdmUtPnJhd0RhdGFSZXByZXNlbnRhdGlvbigpLmdldCgpKTsKKyAg
ICBpZiAoTlNBdHRyaWJ1dGVkU3RyaW5nICphdHRyaWJ1dGVkU3RyaW5nID0gW2Fkb3B0TlMoW1tX
ZWJIVE1MQ29udmVydGVyIGFsbG9jXSBpbml0V2l0aERPTVJhbmdlOmtpdChzZWxlY3RlZFJhbmdl
KCkuZ2V0KCkpXSkgYXR0cmlidXRlZFN0cmluZ10pIHsKKyAgICAgICAgaWYgKFthdHRyaWJ1dGVk
U3RyaW5nIGNvbnRhaW5zQXR0YWNobWVudHNdKQorICAgICAgICAgICAgY29udGVudC5kYXRhSW5S
VEZERm9ybWF0ID0gU2hhcmVkQnVmZmVyOjp3cmFwTlNEYXRhKFthdHRyaWJ1dGVkU3RyaW5nIFJU
RkRGcm9tUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgW2F0dHJpYnV0ZWRTdHJpbmcgbGVuZ3RoXSkgZG9j
dW1lbnRBdHRyaWJ1dGVzOm5pbF0pOworICAgICAgICBjb250ZW50LmRhdGFJblJURkZvcm1hdCA9
IFNoYXJlZEJ1ZmZlcjo6d3JhcE5TRGF0YShbYXR0cmlidXRlZFN0cmluZyBSVEZGcm9tUmFuZ2U6
TlNNYWtlUmFuZ2UoMCwgW2F0dHJpYnV0ZWRTdHJpbmcgbGVuZ3RoXSkgZG9jdW1lbnRBdHRyaWJ1
dGVzOm5pbF0pOworICAgIH0KKyAgICBjb250ZW50LmRhdGFJblN0cmluZ0Zvcm1hdCA9IHN0cmlu
Z1NlbGVjdGlvbkZvclBhc3RlYm9hcmRXaXRoSW1hZ2VBbHRUZXh0KCk7CisgICAgY2xpZW50KCkt
PmdldENsaWVudFBhc3RlYm9hcmREYXRhRm9yUmFuZ2Uoc2VsZWN0ZWRSYW5nZSgpLmdldCgpLCBj
b250ZW50LmNsaWVudFR5cGVzLCBjb250ZW50LmNsaWVudERhdGEpOworCisgICAgcGFzdGVib2Fy
ZC5zZXRUeXBlcyhjb250ZW50KTsKKyAgICBjbGllbnQoKS0+ZGlkU2V0U2VsZWN0aW9uVHlwZXNG
b3JQYXN0ZWJvYXJkKCk7CisgICAgcGFzdGVib2FyZC53cml0ZUFmdGVyU2V0dGluZ1R5cGVzKGNv
bnRlbnQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwCmluZGV4IGJmMDc0MmFlYjU2ZDY0NDA4ZmQxNTlmNjdkNWUxOWIzNzk4
YTg5MzUuLjhjYTMwZGM5Y2Y0NmM5YzY1MTY4NTVmNGRmYzY0NjhlYWUwMmM1MmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC03ODUsNiArNzg1LDggQEAgYm9vbCBE
cmFnQ29udHJvbGxlcjo6c3RhcnREcmFnKEZyYW1lKiBzcmMsIGNvbnN0IERyYWdTdGF0ZSYgc3Rh
dGUsIERyYWdPcGVyYXRpb24KICAgICBJbWFnZSogaW1hZ2UgPSBnZXRJbWFnZShlbGVtZW50KTsK
ICAgICBpZiAoc3RhdGUudHlwZSA9PSBEcmFnU291cmNlQWN0aW9uU2VsZWN0aW9uKSB7CiAgICAg
ICAgIGlmICghY2xpcGJvYXJkLT5wYXN0ZWJvYXJkKCkuaGFzRGF0YSgpKSB7CisgICAgICAgICAg
ICAvLyBGSVhNRTogVGhpcyBlbnRpcmUgYmxvY2sgaXMgYWxtb3N0IGlkZW50aWNhbCB0byB0aGUg
Y29kZSBpbiBFZGl0b3I6OmNvcHksIGFuZCB0aGUgY29kZSBzaG91bGQgYmUgc2hhcmVkLgorCiAg
ICAgICAgICAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGlvblJhbmdlID0gc3JjLT5zZWxlY3Rpb24o
KS50b05vcm1hbGl6ZWRSYW5nZSgpOwogICAgICAgICAgICAgQVNTRVJUKHNlbGVjdGlvblJhbmdl
KTsKIApAQCAtNzkzLDggKzc5NSwxMiBAQCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWco
RnJhbWUqIHNyYywgY29uc3QgRHJhZ1N0YXRlJiBzdGF0ZSwgRHJhZ09wZXJhdGlvbgogICAgICAg
ICAgICAgaWYgKGVuY2xvc2luZ1RleHRGb3JtQ29udHJvbChzcmMtPnNlbGVjdGlvbigpLnN0YXJ0
KCkpKQogICAgICAgICAgICAgICAgIGNsaXBib2FyZC0+cGFzdGVib2FyZCgpLndyaXRlUGxhaW5U
ZXh0KHNyYy0+ZWRpdG9yKCkuc2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKCksIFBhc3RlYm9hcmQ6
OkNhbm5vdFNtYXJ0UmVwbGFjZSk7CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogQ291bGQgdGhpcyBpbnN0ZWFkIGJlIGEgaGVscGVyIGZ1bmN0aW9uIGluIEVk
aXRvcj8KLSAgICAgICAgICAgICAgICBjbGlwYm9hcmQtPnBhc3RlYm9hcmQoKS53cml0ZVNlbGVj
dGlvbihzZWxlY3Rpb25SYW5nZS5nZXQoKSwgc3JjLT5lZGl0b3IoKS5zbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoKSAmJiBzcmMtPnNlbGVjdGlvbigpLmdyYW51bGFyaXR5KCkgPT0gV29yZEdyYW51
bGFyaXR5LCBzcmMsIEluY2x1ZGVJbWFnZUFsdFRleHRGb3JDbGlwYm9hcmQpOworI2lmIFBMQVRG
T1JNKE1BQykKKyAgICAgICAgICAgICAgICBzcmMtPmVkaXRvcigpLndyaXRlU2VsZWN0aW9uVG9Q
YXN0ZWJvYXJkKGNsaXBib2FyZC0+cGFzdGVib2FyZCgpKTsKKyNlbHNlCisgICAgICAgICAgICAg
ICAgLy8gRklYTUU6IENvbnZlcnQgYWxsIG90aGVyIHBsYXRmb3JtcyB0byBtYXRjaCBNYWMgYW5k
IGRlbGV0ZSB0aGlzLgorICAgICAgICAgICAgICAgIGNsaXBib2FyZC0+cGFzdGVib2FyZCgpLndy
aXRlU2VsZWN0aW9uKHNlbGVjdGlvblJhbmdlLmdldCgpLCBzcmMtPmVkaXRvcigpLmNhblNtYXJ0
Q29weU9yRGVsZXRlKCksIHNyYywgSW5jbHVkZUltYWdlQWx0VGV4dEZvckNsaXBib2FyZCk7Cisj
ZW5kaWYKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgc3JjLT5lZGl0b3IoKS5kaWRXcml0
ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5o
CmluZGV4IGZjZDhmNzRlY2FmMGZiYzE0OWU2NTNmMjZjZmJmYjU1NDliY2Y5MTEuLjU5Njg4MGUz
ZDYxNGRjNjA3NWVlN2FjMDE3OTlhNTMyODQ3YTQ0ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
YXN0ZWJvYXJkLmgKQEAgLTY2LDE5ICs2NiwzMCBAQCBleHRlcm4gY29uc3QgY2hhciogV2ViVVJM
UGJvYXJkVHlwZTsKIGV4dGVybiBjb25zdCBjaGFyKiBXZWJVUkxzV2l0aFRpdGxlc1Bib2FyZFR5
cGU7CiAjZW5kaWYKIAotY2xhc3MgQ2xpcGJvYXJkOwogY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsK
IGNsYXNzIERyYWdEYXRhOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZyYW1lOwotY2xhc3MgSGl0
VGVzdFJlc3VsdDsKIGNsYXNzIEtVUkw7CiBjbGFzcyBOb2RlOwogY2xhc3MgUmFuZ2U7CiBjbGFz
cyBTaGFyZWRCdWZmZXI7CiAKIGVudW0gU2hvdWxkU2VyaWFsaXplU2VsZWN0ZWRUZXh0Rm9yQ2xp
cGJvYXJkIHsgRGVmYXVsdFNlbGVjdGVkVGV4dFR5cGUsIEluY2x1ZGVJbWFnZUFsdFRleHRGb3JD
bGlwYm9hcmQgfTsKLSAgICAKKworLy8gRm9yIHdyaXRpbmcgd2ViIGNvbnRlbnQgdG8gdGhlIHBh
c3RlYm9hcmQuIEdlbmVyYWxseSBzb3J0ZWQgd2l0aCB0aGUgcmljaGVzdCBmb3JtYXRzIG9uIHRv
cC4KK3N0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudCB7CisjaWYgUExBVEZPUk0oTUFDKSAmJiAh
UExBVEZPUk0oSU9TKQorICAgIGJvb2wgY2FuU21hcnRDb3B5T3JEZWxldGU7CisgICAgUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gZGF0YUluV2ViQXJjaGl2ZUZvcm1hdDsKKyAgICBSZWZQdHI8U2hhcmVk
QnVmZmVyPiBkYXRhSW5SVEZERm9ybWF0OworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGFJ
blJURkZvcm1hdDsKKyAgICBTdHJpbmcgZGF0YUluU3RyaW5nRm9ybWF0OworICAgIFZlY3RvcjxT
dHJpbmc+IGNsaWVudFR5cGVzOworICAgIFZlY3RvcjxSZWZQdHI8U2hhcmVkQnVmZmVyPj4gY2xp
ZW50RGF0YTsKKyNlbmRpZgorfTsKKwogY2xhc3MgUGFzdGVib2FyZCB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoUGFzdGVib2FyZCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgpAQCAtOTEsOSArMTAyLDggQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPFBhc3Rl
Ym9hcmQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKTsKICAgICBTdHJpbmcg
bmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGFzdGVib2FyZE5hbWU7IH0KIAotICAgIHZvaWQgd3Jp
dGVTZWxlY3Rpb25Gb3JUeXBlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFzdGVib2FyZFR5cGVz
LCBib29sIGNhblNtYXJ0Q29weU9yRGVsZXRlLCBGcmFtZSosIFNob3VsZFNlcmlhbGl6ZVNlbGVj
dGVkVGV4dEZvckNsaXBib2FyZCk7CiAgICAgZXhwbGljaXQgUGFzdGVib2FyZChjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmROYW1lKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
IGdldERhdGFTZWxlY3Rpb24oRnJhbWUqLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlKTsK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGdldERhdGFTZWxlY3Rpb24oRnJh
bWUqLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlKTsgLy8gRklYTUU6IExheWVyaW5nIHZp
b2xhdGlvbi4KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQpAQCAtMTI0LDE2ICsxMzQsMjMg
QEAgcHVibGljOgogICAgIFN0cmluZyByZWFkU3RyaW5nKGNvbnN0IFN0cmluZyYgdHlwZSk7CiAg
ICAgVmVjdG9yPFN0cmluZz4gcmVhZEZpbGVuYW1lcygpOwogCisgICAgLy8gRklYTUU6IEl0IHdv
dWxkIGJlIG5pY2VyIGlmIHRoZSB0d28gZnVuY3Rpb25zIGJlbG93IHdlcmUganVzdCBwYXJ0cyBv
ZiBhIHNpbmdsZSB3cml0ZVdlYkNvbnRlbnQgZnVuY3Rpb24sCisgICAgLy8gYnV0IGZvciBub3cg
TWFjIHN1cHBvcnRzIGFuIGVkaXRvciBjbGllbnQgY2FsbCB0aGF0IGhhcHBlbnMgYWZ0ZXIgc2V0
dGluZyB0aGUgdHlwZXMgYnV0IGJlZm9yZSB3cml0aW5nIHRvIHRoZSBwYXN0ZWJvYXJkLgorICAg
IHZvaWQgc2V0VHlwZXMoY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmKTsKKyAgICB2b2lkIHdy
aXRlQWZ0ZXJTZXR0aW5nVHlwZXMoY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmKTsKKwogICAg
IGJvb2wgd3JpdGVTdHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRhdGEp
OwotICAgIHZvaWQgd3JpdGVTZWxlY3Rpb24oUmFuZ2UqLCBib29sIGNhblNtYXJ0Q29weU9yRGVs
ZXRlLCBGcmFtZSosIFNob3VsZFNlcmlhbGl6ZVNlbGVjdGVkVGV4dEZvckNsaXBib2FyZCA9IERl
ZmF1bHRTZWxlY3RlZFRleHRUeXBlKTsKKyNpZiAhKFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JN
KElPUykpCisgICAgdm9pZCB3cml0ZVNlbGVjdGlvbihSYW5nZSosIGJvb2wgY2FuU21hcnRDb3B5
T3JEZWxldGUsIEZyYW1lKiwgU2hvdWxkU2VyaWFsaXplU2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJk
ID0gRGVmYXVsdFNlbGVjdGVkVGV4dFR5cGUpOyAvLyBGSVhNRTogTGF5ZXJpbmcgdmlvbGF0aW9u
LgorI2VuZGlmCiAgICAgdm9pZCB3cml0ZU1hcmt1cChjb25zdCBTdHJpbmcmIG1hcmt1cCk7CiAg
ICAgdm9pZCB3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmLCBTbWFydFJlcGxhY2VPcHRpb24p
OwogI2lmICFQTEFURk9STShJT1MpCi0gICAgdm9pZCB3cml0ZVVSTChjb25zdCBLVVJMJiwgY29u
c3QgU3RyaW5nJiwgRnJhbWUqID0gMCk7Ci0gICAgdm9pZCB3cml0ZUltYWdlKE5vZGUqLCBjb25z
dCBLVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CisgICAgdm9pZCB3cml0ZVVSTChjb25zdCBL
VVJMJiwgY29uc3QgU3RyaW5nJiwgRnJhbWUqID0gMCk7IC8vIEZJWE1FOiBMYXllcmluZyB2aW9s
YXRpb24uCisgICAgdm9pZCB3cml0ZUltYWdlKE5vZGUqLCBjb25zdCBLVVJMJiwgY29uc3QgU3Ry
aW5nJiB0aXRsZSk7IC8vIEZJWE1FOiBMYXllcmluZyB2aW9sYXRpb24uCiAjZWxzZQotICAgIHZv
aWQgd3JpdGVJbWFnZShOb2RlKiwgRnJhbWUqKTsKLSAgICB2b2lkIHdyaXRlUGxhaW5UZXh0KGNv
bnN0IFN0cmluZyYsIEZyYW1lKik7CisgICAgdm9pZCB3cml0ZUltYWdlKE5vZGUqLCBGcmFtZSop
OyAvLyBGSVhNRTogTGF5ZXJpbmcgdmlvbGF0aW9uLgorICAgIHZvaWQgd3JpdGVQbGFpblRleHQo
Y29uc3QgU3RyaW5nJiwgRnJhbWUqKTsgLy8gRklYTUU6IExheWVyaW5nIHZpb2xhdGlvbi4KICAg
ICBzdGF0aWMgTlNBcnJheSogc3VwcG9ydGVkUGFzdGVib2FyZFR5cGVzKCk7CiAjZW5kaWYKICAg
ICB2b2lkIHdyaXRlUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkJiBzb3VyY2VQYXN0ZWJvYXJk
KTsKQEAgLTE0NywxNCArMTY0LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldERyYWdJbWFnZShE
cmFnSW1hZ2VSZWYsIGNvbnN0IEludFBvaW50JiBob3RTcG90KTsKICNlbmRpZgogCi0gICAgLy8g
RklYTUU6IEhhdmluZyB0aGVzZSBmdW5jdGlvbnMgaGVyZSBpcyBhIGxheWVyaW5nIHZpb2xhdGlv
bi4KLSAgICAvLyBUaGVzZSBmdW5jdGlvbnMgbmVlZCB0byBtb3ZlIHRvIHRoZSBlZGl0aW5nIGRp
cmVjdG9yeSBldmVuIGlmIHRoZXkgaGF2ZSBwbGF0Zm9ybS1zcGVjaWZpYyBhc3BlY3RzLgotICAg
IFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZG9jdW1lbnRGcmFnbWVudChGcmFtZSosIFBh
c3NSZWZQdHI8UmFuZ2U+LCBib29sIGFsbG93UGxhaW5UZXh0LCBib29sJiBjaG9zZVBsYWluVGV4
dCk7Ci0gICAgU3RyaW5nIHBsYWluVGV4dChGcmFtZSogPSAwKTsKKyAgICBQYXNzUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnQoRnJhbWUqLCBQYXNzUmVmUHRyPFJhbmdl
PiwgYm9vbCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpOyAvLyBGSVhNRTog
TGF5ZXJpbmcgdmlvbGF0aW9uLgorICAgIFN0cmluZyBwbGFpblRleHQoRnJhbWUqID0gMCk7IC8v
IEZJWE1FOiBMYXllcmluZyB2aW9sYXRpb24uCiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgLy8g
RklYTUU6IFJlbW92ZSB0aGlzIG9uY2Ugd2Ugc3dpdGNoIHRvIHBsYXRmb3JtIHN0cmF0ZWdpZXMg
aW5zdGVhZCBvZiB0aGUgZWRpdG9yIGNsaWVudC4KLSAgICB2b2lkIHNldEZyYW1lKEZyYW1lKik7
CisgICAgdm9pZCBzZXRGcmFtZShGcmFtZSopOyAvLyBGSVhNRTogTGF5ZXJpbmcgdmlvbGF0aW9u
LgogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFFUKQpAQCAtMTY2LDcg
KzE4MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEV4dGVybmFsRGF0YU9iamVjdChJRGF0YU9i
amVjdCopOwogICAgIHZvaWQgd3JpdGVVUkxUb1dyaXRhYmxlRGF0YU9iamVjdChjb25zdCBLVVJM
JiwgY29uc3QgU3RyaW5nJik7CiAgICAgQ09NUHRyPFdDRGF0YU9iamVjdD4gd3JpdGFibGVEYXRh
T2JqZWN0KCkgY29uc3QgeyByZXR1cm4gbV93cml0YWJsZURhdGFPYmplY3Q7IH0KLSAgICB2b2lk
IHdyaXRlSW1hZ2VUb0RhdGFPYmplY3QoRWxlbWVudCosIGNvbnN0IEtVUkwmKTsKKyAgICB2b2lk
IHdyaXRlSW1hZ2VUb0RhdGFPYmplY3QoRWxlbWVudCosIGNvbnN0IEtVUkwmKTsgLy8gRklYTUU6
IExheWVyaW5nIHZpb2xhdGlvbi4KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShRVCkKQEAgLTE5NywxNiArMjExLDE2IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKElPUykKLSAgICBQYXNzUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJh
Z21lbnRGb3JQYXN0ZWJvYXJkSXRlbUF0SW5kZXgoRnJhbWUqLCBpbnQgaW5kZXgsIGJvb2wgYWxs
b3dQbGFpblRleHQsIGJvb2wmIGNob3NlUGxhaW5UZXh0KTsKKyAgICBQYXNzUmVmUHRyPERvY3Vt
ZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGb3JQYXN0ZWJvYXJkSXRlbUF0SW5kZXgoRnJh
bWUqLCBpbnQgaW5kZXgsIGJvb2wgYWxsb3dQbGFpblRleHQsIGJvb2wmIGNob3NlUGxhaW5UZXh0
KTsgLy8gRklYTUU6IExheWVyaW5nIHZpb2xhdGlvbi4KIAotICAgIEZyYW1lKiBtX2ZyYW1lOwor
ICAgIEZyYW1lKiBtX2ZyYW1lOyAvLyBGSVhNRTogTGF5ZXJpbmcgdmlvbGF0aW9uLgogICAgIGxv
bmcgbV9jaGFuZ2VDb3VudDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHZvaWQg
ZmluaXNoQ3JlYXRpbmdQYXN0ZWJvYXJkKCk7Ci0gICAgdm9pZCB3cml0ZVJhbmdlVG9EYXRhT2Jq
ZWN0KFJhbmdlKiwgRnJhbWUqKTsKLSAgICB2b2lkIHdyaXRlVVJMVG9EYXRhT2JqZWN0KGNvbnN0
IEtVUkwmLCBjb25zdCBTdHJpbmcmLCBGcmFtZSopOworICAgIHZvaWQgd3JpdGVSYW5nZVRvRGF0
YU9iamVjdChSYW5nZSosIEZyYW1lKik7IC8vIEZJWE1FOiBMYXllcmluZyB2aW9sYXRpb24uCisg
ICAgdm9pZCB3cml0ZVVSTFRvRGF0YU9iamVjdChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiwg
RnJhbWUqKTsgLy8gRklYTUU6IExheWVyaW5nIHZpb2xhdGlvbi4KICAgICB2b2lkIHdyaXRlUGxh
aW5UZXh0VG9EYXRhT2JqZWN0KGNvbnN0IFN0cmluZyYsIFNtYXJ0UmVwbGFjZU9wdGlvbik7CiAK
ICAgICBIV05EIG1fb3duZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJv
YXJkTWFjLm1tCmluZGV4IGQzYTcwZDFkYjc0ZDhhZjViMmZiNmFmZDU1N2RiZmJmZDhiOTJiMTAu
LjMyYTU4ZjFhMDM0ZGM2MDdhMjBiOWQwNjEyMjcxZmRkM2M0MmIyOGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC03MiwyMCArNzIsNiBAQCBj
b25zdCBjaGFyKiBXZWJVUkxOYW1lUGJvYXJkVHlwZSA9ICJwdWJsaWMudXJsLW5hbWUiOwogY29u
c3QgY2hhciogV2ViVVJMUGJvYXJkVHlwZSA9ICJwdWJsaWMudXJsIjsKIGNvbnN0IGNoYXIqIFdl
YlVSTHNXaXRoVGl0bGVzUGJvYXJkVHlwZSA9ICJXZWJVUkxzV2l0aFRpdGxlc1Bib2FyZFR5cGUi
OwogCi1zdGF0aWMgVmVjdG9yPFN0cmluZz4gc2VsZWN0aW9uUGFzdGVib2FyZFR5cGVzKGJvb2wg
Y2FuU21hcnRDb3B5T3JEZWxldGUsIGJvb2wgc2VsZWN0aW9uQ29udGFpbnNBdHRhY2htZW50cykK
LXsKLSAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsKLSAgICBpZiAoY2FuU21hcnRDb3B5T3JEZWxl
dGUpCi0gICAgICAgIHR5cGVzLmFwcGVuZChXZWJTbWFydFBhc3RlUGJvYXJkVHlwZSk7Ci0gICAg
dHlwZXMuYXBwZW5kKFdlYkFyY2hpdmVQYm9hcmRUeXBlKTsKLSAgICBpZiAoc2VsZWN0aW9uQ29u
dGFpbnNBdHRhY2htZW50cykKLSAgICAgICAgdHlwZXMuYXBwZW5kKFN0cmluZyhOU1JURkRQYm9h
cmRUeXBlKSk7Ci0gICAgdHlwZXMuYXBwZW5kKFN0cmluZyhOU1JURlBib2FyZFR5cGUpKTsKLSAg
ICB0eXBlcy5hcHBlbmQoU3RyaW5nKE5TU3RyaW5nUGJvYXJkVHlwZSkpOwotCi0gICAgcmV0dXJu
IHR5cGVzOwotfQotCiBzdGF0aWMgY29uc3QgVmVjdG9yPFN0cmluZz4gd3JpdGFibGVUeXBlc0Zv
clVSTCgpCiB7CiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CkBAIC0xODUsNDcgKzE3MSw0MCBA
QCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gUGFzdGVib2FyZDo6Z2V0RGF0YVNlbGVjdGlvbihG
cmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZwogICAgIHJldHVybiAwOwogfQogCi12b2lkIFBhc3Rl
Ym9hcmQ6OndyaXRlU2VsZWN0aW9uRm9yVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhc3Rl
Ym9hcmRUeXBlcywgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwgRnJhbWUqIGZyYW1lLCBTaG91
bGRTZXJpYWxpemVTZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQgc2hvdWxkU2VyaWFsaXplU2VsZWN0
ZWRUZXh0Rm9yQ2xpcGJvYXJkKQordm9pZCBQYXN0ZWJvYXJkOjpzZXRUeXBlcyhjb25zdCBQYXN0
ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKIHsKLSAgICBOU0F0dHJpYnV0ZWRTdHJpbmcqIGF0
dHJpYnV0ZWRTdHJpbmcgPSBuaWw7Ci0gICAgUmV0YWluUHRyPFdlYkhUTUxDb252ZXJ0ZXI+IGNv
bnZlcnRlciA9IGFkb3B0TlMoW1tXZWJIVE1MQ29udmVydGVyIGFsbG9jXSBpbml0V2l0aERPTVJh
bmdlOmtpdChmcmFtZS0+ZWRpdG9yKCkuc2VsZWN0ZWRSYW5nZSgpLmdldCgpKV0pOwotICAgIGlm
IChjb252ZXJ0ZXIpCi0gICAgICAgIGF0dHJpYnV0ZWRTdHJpbmcgPSBbY29udmVydGVyLmdldCgp
IGF0dHJpYnV0ZWRTdHJpbmddOwotICAgIAotICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzID0gIXBh
c3RlYm9hcmRUeXBlcy5pc0VtcHR5KCkgPyBwYXN0ZWJvYXJkVHlwZXMgOiBzZWxlY3Rpb25QYXN0
ZWJvYXJkVHlwZXMoY2FuU21hcnRDb3B5T3JEZWxldGUsIFthdHRyaWJ1dGVkU3RyaW5nIGNvbnRh
aW5zQXR0YWNobWVudHNdKTsKKyAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsKIAotICAgIFZlY3Rv
cjxTdHJpbmc+IGNsaWVudFR5cGVzOwotICAgIFZlY3RvcjxSZWZQdHI8U2hhcmVkQnVmZmVyPiA+
IGNsaWVudERhdGE7Ci0gICAgZnJhbWUtPmVkaXRvcigpLmNsaWVudCgpLT5nZXRDbGllbnRQYXN0
ZWJvYXJkRGF0YUZvclJhbmdlKGZyYW1lLT5lZGl0b3IoKS5zZWxlY3RlZFJhbmdlKCkuZ2V0KCks
IGNsaWVudFR5cGVzLCBjbGllbnREYXRhKTsKLSAgICB0eXBlcy5hcHBlbmRWZWN0b3IoY2xpZW50
VHlwZXMpOworICAgIGlmIChjb250ZW50LmNhblNtYXJ0Q29weU9yRGVsZXRlKQorICAgICAgICB0
eXBlcy5hcHBlbmQoV2ViU21hcnRQYXN0ZVBib2FyZFR5cGUpOworICAgIGlmIChjb250ZW50LmRh
dGFJbldlYkFyY2hpdmVGb3JtYXQpCisgICAgICAgIHR5cGVzLmFwcGVuZChXZWJBcmNoaXZlUGJv
YXJkVHlwZSk7CisgICAgaWYgKGNvbnRlbnQuZGF0YUluUlRGREZvcm1hdCkKKyAgICAgICAgdHlw
ZXMuYXBwZW5kKFN0cmluZyhOU1JURkRQYm9hcmRUeXBlKSk7CisgICAgaWYgKGNvbnRlbnQuZGF0
YUluUlRGRm9ybWF0KQorICAgICAgICB0eXBlcy5hcHBlbmQoU3RyaW5nKE5TUlRGUGJvYXJkVHlw
ZSkpOworICAgIGlmICghY29udGVudC5kYXRhSW5TdHJpbmdGb3JtYXQuaXNOdWxsKCkpCisgICAg
ICAgIHR5cGVzLmFwcGVuZChTdHJpbmcoTlNTdHJpbmdQYm9hcmRUeXBlKSk7CisgICAgdHlwZXMu
YXBwZW5kVmVjdG9yKGNvbnRlbnQuY2xpZW50VHlwZXMpOwogCiAgICAgbV9jaGFuZ2VDb3VudCA9
IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0VHlwZXModHlw
ZXMsIG1fcGFzdGVib2FyZE5hbWUpOwotICAgIGZyYW1lLT5lZGl0b3IoKS5jbGllbnQoKS0+ZGlk
U2V0U2VsZWN0aW9uVHlwZXNGb3JQYXN0ZWJvYXJkKCk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IGNsaWVudFR5cGVzLnNpemUoKTsgKytpKQotICAgICAgICBtX2NoYW5nZUNvdW50ID0g
cGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zZXRCdWZmZXJGb3JU
eXBlKGNsaWVudERhdGFbaV0sIGNsaWVudFR5cGVzW2ldLCBtX3Bhc3RlYm9hcmROYW1lKTsKLQot
ICAgIC8vIFB1dCBIVE1MIG9uIHRoZSBwYXN0ZWJvYXJkLgotICAgIGlmICh0eXBlcy5jb250YWlu
cyhXZWJBcmNoaXZlUGJvYXJkVHlwZSkpCi0gICAgICAgIG1fY2hhbmdlQ291bnQgPSBwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnNldEJ1ZmZlckZvclR5cGUoZ2V0
RGF0YVNlbGVjdGlvbihmcmFtZSwgV2ViQXJjaGl2ZVBib2FyZFR5cGUpLCBXZWJBcmNoaXZlUGJv
YXJkVHlwZSwgbV9wYXN0ZWJvYXJkTmFtZSk7Ci0gICAgCi0gICAgLy8gUHV0IHRoZSBhdHRyaWJ1
dGVkIHN0cmluZyBvbiB0aGUgcGFzdGVib2FyZCAoUlRGL1JURkQgZm9ybWF0KS4KLSAgICBpZiAo
dHlwZXMuY29udGFpbnMoU3RyaW5nKE5TUlRGRFBib2FyZFR5cGUpKSkKLSAgICAgICAgbV9jaGFu
Z2VDb3VudCA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0
QnVmZmVyRm9yVHlwZShnZXREYXRhU2VsZWN0aW9uKGZyYW1lLCBOU1JURkRQYm9hcmRUeXBlKSwg
TlNSVEZEUGJvYXJkVHlwZSwgbV9wYXN0ZWJvYXJkTmFtZSk7Cit9CiAKLSAgICBpZiAodHlwZXMu
Y29udGFpbnMoU3RyaW5nKE5TUlRGUGJvYXJkVHlwZSkpKQotICAgICAgICBtX2NoYW5nZUNvdW50
ID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zZXRCdWZmZXJG
b3JUeXBlKGdldERhdGFTZWxlY3Rpb24oZnJhbWUsIE5TUlRGUGJvYXJkVHlwZSksIE5TUlRGUGJv
YXJkVHlwZSwgbV9wYXN0ZWJvYXJkTmFtZSk7Ci0gICAgCi0gICAgLy8gUHV0IHBsYWluIHN0cmlu
ZyBvbiB0aGUgcGFzdGVib2FyZC4KLSAgICBpZiAodHlwZXMuY29udGFpbnMoU3RyaW5nKE5TU3Ry
aW5nUGJvYXJkVHlwZSkpKSB7Ci0gICAgICAgIFN0cmluZyB0ZXh0ID0gc2hvdWxkU2VyaWFsaXpl
U2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkID09IEluY2x1ZGVJbWFnZUFsdFRleHRGb3JDbGlwYm9h
cmQKLSAgICAgICAgICAgID8gZnJhbWUtPmVkaXRvcigpLnN0cmluZ1NlbGVjdGlvbkZvclBhc3Rl
Ym9hcmRXaXRoSW1hZ2VBbHRUZXh0KCkKLSAgICAgICAgICAgIDogZnJhbWUtPmVkaXRvcigpLnN0
cmluZ1NlbGVjdGlvbkZvclBhc3RlYm9hcmQoKTsKLSAgICAgICAgbV9jaGFuZ2VDb3VudCA9IHBs
YXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0U3RyaW5nRm9yVHlw
ZSh0ZXh0LCBOU1N0cmluZ1Bib2FyZFR5cGUsIG1fcGFzdGVib2FyZE5hbWUpOwotICAgIH0KLSAg
ICAKLSAgICBpZiAodHlwZXMuY29udGFpbnMoV2ViU21hcnRQYXN0ZVBib2FyZFR5cGUpKQordm9p
ZCBQYXN0ZWJvYXJkOjp3cml0ZUFmdGVyU2V0dGluZ1R5cGVzKGNvbnN0IFBhc3RlYm9hcmRXZWJD
b250ZW50JiBjb250ZW50KQoreworICAgIEFTU0VSVChjb250ZW50LmNsaWVudFR5cGVzLnNpemUo
KSA9PSBjb250ZW50LmNsaWVudERhdGEuc2l6ZSgpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMCwg
c2l6ZSA9IGNvbnRlbnQuY2xpZW50VHlwZXMuc2l6ZSgpOyBpIDwgc2l6ZTsgKytpKQorICAgICAg
ICBtX2NoYW5nZUNvdW50ID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVn
eSgpLT5zZXRCdWZmZXJGb3JUeXBlKGNvbnRlbnQuY2xpZW50RGF0YVtpXSwgY29udGVudC5jbGll
bnRUeXBlc1tpXSwgbV9wYXN0ZWJvYXJkTmFtZSk7CisgICAgaWYgKGNvbnRlbnQuY2FuU21hcnRD
b3B5T3JEZWxldGUpCiAgICAgICAgIG1fY2hhbmdlQ291bnQgPSBwbGF0Zm9ybVN0cmF0ZWdpZXMo
KS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnNldEJ1ZmZlckZvclR5cGUoMCwgV2ViU21hcnRQYXN0
ZVBib2FyZFR5cGUsIG1fcGFzdGVib2FyZE5hbWUpOworICAgIGlmIChjb250ZW50LmRhdGFJbldl
YkFyY2hpdmVGb3JtYXQpCisgICAgICAgIG1fY2hhbmdlQ291bnQgPSBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnNldEJ1ZmZlckZvclR5cGUoY29udGVudC5kYXRh
SW5XZWJBcmNoaXZlRm9ybWF0LCBXZWJBcmNoaXZlUGJvYXJkVHlwZSwgbV9wYXN0ZWJvYXJkTmFt
ZSk7CisgICAgaWYgKGNvbnRlbnQuZGF0YUluUlRGREZvcm1hdCkKKyAgICAgICAgbV9jaGFuZ2VD
b3VudCA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0QnVm
ZmVyRm9yVHlwZShjb250ZW50LmRhdGFJblJURkRGb3JtYXQsIE5TUlRGRFBib2FyZFR5cGUsIG1f
cGFzdGVib2FyZE5hbWUpOworICAgIGlmIChjb250ZW50LmRhdGFJblJURkZvcm1hdCkKKyAgICAg
ICAgbV9jaGFuZ2VDb3VudCA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRl
Z3koKS0+c2V0QnVmZmVyRm9yVHlwZShjb250ZW50LmRhdGFJblJURkZvcm1hdCwgTlNSVEZQYm9h
cmRUeXBlLCBtX3Bhc3RlYm9hcmROYW1lKTsKKyAgICBpZiAoIWNvbnRlbnQuZGF0YUluU3RyaW5n
Rm9ybWF0LmlzTnVsbCgpKQorICAgICAgICBtX2NoYW5nZUNvdW50ID0gcGxhdGZvcm1TdHJhdGVn
aWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5zZXRTdHJpbmdGb3JUeXBlKGNvbnRlbnQuZGF0
YUluU3RyaW5nRm9ybWF0LCBOU1N0cmluZ1Bib2FyZFR5cGUsIG1fcGFzdGVib2FyZE5hbWUpOwog
fQogCiB2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwg
U21hcnRSZXBsYWNlT3B0aW9uIHNtYXJ0UmVwbGFjZU9wdGlvbikKQEAgLTI0MCwxMSArMjE5LDYg
QEAgdm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4dChjb25zdCBTdHJpbmcmIHRleHQsIFNt
YXJ0UmVwbGFjZU9wdGlvbiBzbWFydFJlcGwKICAgICBpZiAoc21hcnRSZXBsYWNlT3B0aW9uID09
IENhblNtYXJ0UmVwbGFjZSkKICAgICAgICAgbV9jaGFuZ2VDb3VudCA9IHBsYXRmb3JtU3RyYXRl
Z2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+c2V0QnVmZmVyRm9yVHlwZSgwLCBXZWJTbWFy
dFBhc3RlUGJvYXJkVHlwZSwgbV9wYXN0ZWJvYXJkTmFtZSk7CiB9Ci0gICAgCi12b2lkIFBhc3Rl
Ym9hcmQ6OndyaXRlU2VsZWN0aW9uKFJhbmdlKiwgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZSwg
RnJhbWUqIGZyYW1lLCBTaG91bGRTZXJpYWxpemVTZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQgc2hv
dWxkU2VyaWFsaXplU2VsZWN0ZWRUZXh0Rm9yQ2xpcGJvYXJkKQotewotICAgIHdyaXRlU2VsZWN0
aW9uRm9yVHlwZXMoVmVjdG9yPFN0cmluZz4oKSwgY2FuU21hcnRDb3B5T3JEZWxldGUsIGZyYW1l
LCBzaG91bGRTZXJpYWxpemVTZWxlY3RlZFRleHRGb3JDbGlwYm9hcmQpOwotfQogCiBzdGF0aWMg
bG9uZyB3cml0ZVVSTEZvclR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0eXBlcywgY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHRp
dGxlU3RyLCBGcmFtZSogZnJhbWUpCiB7Cg==
</data>
<flag name="review"
          id="232091"
          type_id="1"
          status="+"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="232092"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>