<?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>143174</bug_id>
          
          <creation_ts>2015-03-27 22:18:30 -0700</creation_ts>
          <short_desc>nullptr cleanup in RenderLayer</short_desc>
          <delta_ts>2015-03-29 13:30:35 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1080886</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-27 22:18:30 -0700</bug_when>
    <thetext>nullptr cleanup in RenderLayer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1080887</commentid>
    <comment_count>1</comment_count>
      <attachid>249642</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-27 22:19:14 -0700</bug_when>
    <thetext>Created attachment 249642
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1081037</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-03-29 13:30:35 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/182107</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>249642</attachid>
            <date>2015-03-27 22:19:14 -0700</date>
            <delta_ts>2015-03-27 22:19:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143174-20150327221834.patch</filename>
            <type>text/plain</type>
            <size>21034</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDM0MzRhNGY4NWQ2Mjg1
OTc0NzBjYzY1ZGE5ZmYzMzlhN2NjMzVhNS4uZTIwMWIyMGY1MDFiNzk3MDU4NWNmODllNDc3OGQw
ZjlkMjczMzI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE1LTAzLTI3ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIG51bGxwdHIgY2xl
YW51cCBpbiBSZW5kZXJMYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTQzMTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVwbGFjZSAwIHdpdGggbnVsbHB0ciBpbiBSZW5kZXJMYXllci5jcHAuCisK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OmZpbHRlclJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyOjp1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyT3ZlcmZsb3dTY3JvbGwpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBvc2l0aW9uTmV3bHlDcmVhdGVkT3ZlcmZs
b3dDb250cm9scyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6ZW5jbG9zaW5nT3Zl
cmZsb3dDbGlwTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmVuY2xvc2lu
Z0NvbXBvc2l0aW5nTGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmVuY2xv
c2luZ0NvbXBvc2l0aW5nTGF5ZXJGb3JSZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckxheWVyOjplbmNsb3NpbmdGaWx0ZXJMYXllcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6ZW5jbG9zaW5nRmlsdGVyUmVwYWludExheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpjbGlwcGluZ1Jvb3RGb3JQYWludGluZyk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6dHJhbnNwYXJlbnRQYWludGluZ0FuY2VzdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OnRyYW5zcGFyZW5jeUNsaXBCb3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnJlbW92ZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpyZW1vdmVPbmx5
VGhpc0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjppbnNlcnRPbmx5VGhp
c0xheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OmFjY3VtdWxhdGVPZmZzZXRUb3dhcmRzQW5jZXN0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmVuY2xvc2luZ1Njcm9sbGFibGVB
cmVhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjplbmNsb3NpbmdQYWdpbmF0aW9u
TGF5ZXJJblN1YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmVuY2xvc2lu
Z0VsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmVuY2xvc2luZ0Zsb3dU
aHJlYWRBbmNlc3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6aGl0VGVzdEZp
eGVkTGF5ZXJzSW5OYW1lZEZsb3dzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpo
aXRUZXN0TGF5ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmhpdFRlc3RUcmFu
c2Zvcm1lZExheWVySW5GcmFnbWVudHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OmhpdFRlc3RMYXllckJ5QXBwbHlpbmdUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OmhpdFRlc3RMaXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1
cGRhdGVDbGlwUmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNsaXBSZWN0
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKToK
KwogMjAxNS0wMy0yNyAgR3dhbmcgWW9vbiBId2FuZyAgPHlvb25AaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbVGV4TWFwXSBTZXBlcmF0ZSBCaXRtYXBUZXh0dXJlIHJlbGF0ZWQgY2xhc3NlcyBpbXBs
ZW1lbnRhdGlvbnMgZnJvbSBUZXh0dXJlTWFwcGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcAppbmRleCA2NmUyNDRhZTUzMTM0MWU4OTU4YjdkMmJmYmVhNDAyYzgwMGUz
YTRmLi40OGZmNGFmMzk1MjVlZTc3ZDUzNWE4NjEyOTg0YTJmMjk3ODA3MDI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTQ1MSwxNCArNDUxLDE0IEBAIGJv
b2wgUmVuZGVyTGF5ZXI6OnJlcXVpcmVzRnVsbExheWVySW1hZ2VGb3JGaWx0ZXJzKCkgY29uc3QK
IEZpbHRlckVmZmVjdFJlbmRlcmVyKiBSZW5kZXJMYXllcjo6ZmlsdGVyUmVuZGVyZXIoKSBjb25z
dAogewogICAgIEZpbHRlckluZm8qIGZpbHRlckluZm8gPSBGaWx0ZXJJbmZvOjpnZXRJZkV4aXN0
cygqdGhpcyk7Ci0gICAgcmV0dXJuIGZpbHRlckluZm8gPyBmaWx0ZXJJbmZvLT5yZW5kZXJlcigp
IDogMDsKKyAgICByZXR1cm4gZmlsdGVySW5mbyA/IGZpbHRlckluZm8tPnJlbmRlcmVyKCkgOiBu
dWxscHRyOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVy
TGF5b3V0KGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIFVwZGF0ZUxheWVyUG9zaXRpb25z
RmxhZ3MgZmxhZ3MpCiB7CiAgICAgUmVuZGVyR2VvbWV0cnlNYXAgZ2VvbWV0cnlNYXAoVXNlVHJh
bnNmb3Jtcyk7CiAgICAgaWYgKHRoaXMgIT0gcm9vdExheWVyKQotICAgICAgICBnZW9tZXRyeU1h
cC5wdXNoTWFwcGluZ3NUb0FuY2VzdG9yKHBhcmVudCgpLCAwKTsKKyAgICAgICAgZ2VvbWV0cnlN
YXAucHVzaE1hcHBpbmdzVG9BbmNlc3RvcihwYXJlbnQoKSwgbnVsbHB0cik7CiAgICAgdXBkYXRl
TGF5ZXJQb3NpdGlvbnMoJmdlb21ldHJ5TWFwLCBmbGFncyk7CiB9CiAKQEAgLTgxNiw3ICs4MTYs
NyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyT3ZlcmZsb3dT
Y3JvbGwoKQogewogICAgIFJlbmRlckdlb21ldHJ5TWFwIGdlb21ldHJ5TWFwKFVzZVRyYW5zZm9y
bXMpOwogICAgIGlmICh0aGlzICE9IHJlbmRlcmVyKCkudmlldygpLmxheWVyKCkpCi0gICAgICAg
IGdlb21ldHJ5TWFwLnB1c2hNYXBwaW5nc1RvQW5jZXN0b3IocGFyZW50KCksIDApOworICAgICAg
ICBnZW9tZXRyeU1hcC5wdXNoTWFwcGluZ3NUb0FuY2VzdG9yKHBhcmVudCgpLCBudWxscHRyKTsK
IAogICAgIC8vIEZJWE1FOiB3aHkgaXMgaXQgT0sgdG8gbm90IGNoZWNrIHRoZSBhbmNlc3RvcnMg
b2YgdGhpcyBsYXllciBpbiBvcmRlciB0bwogICAgIC8vIGluaXRpYWxpemUgdGhlIEhhc1NlZW5W
aWV3cG9ydENvbnN0cmFpbmVkQW5jZXN0b3IgYW5kIEhhc1NlZW5BbmNlc3RvcldpdGhPdmVyZmxv
d0NsaXAgZmxhZ3M/CkBAIC04ODYsNyArODg2LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cG9zaXRp
b25OZXdseUNyZWF0ZWRPdmVyZmxvd0NvbnRyb2xzKCkKIAogICAgIFJlbmRlckdlb21ldHJ5TWFw
IGdlb21ldHJ5TWFwKFVzZVRyYW5zZm9ybXMpOwogICAgIGlmICh0aGlzICE9IHJlbmRlcmVyKCku
dmlldygpLmxheWVyKCkgJiYgcGFyZW50KCkpCi0gICAgICAgIGdlb21ldHJ5TWFwLnB1c2hNYXBw
aW5nc1RvQW5jZXN0b3IocGFyZW50KCksIDApOworICAgICAgICBnZW9tZXRyeU1hcC5wdXNoTWFw
cGluZ3NUb0FuY2VzdG9yKHBhcmVudCgpLCBudWxscHRyKTsKIAogICAgIExheW91dFBvaW50IG9m
ZnNldEZyb21Sb290ID0gTGF5b3V0UG9pbnQoZ2VvbWV0cnlNYXAuYWJzb2x1dGVQb2ludChGbG9h
dFBvaW50KCkpKTsKICAgICBwb3NpdGlvbk92ZXJmbG93Q29udHJvbHModG9JbnRTaXplKHJvdW5k
ZWRJbnRQb2ludChvZmZzZXRGcm9tUm9vdCkpKTsKQEAgLTEwMTYsNyArMTAxNiw3IEBAIFJlbmRl
ckxheWVyKiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5nT3ZlcmZsb3dDbGlwTGF5ZXIoSW5jbHVkZVNl
bGZPck5vdCBpbmNsdWRlU2VsCiAKICAgICAgICAgbGF5ZXIgPSBsYXllci0+cGFyZW50KCk7CiAg
ICAgfQotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiAvLyBGSVhNRTog
VGhpcyBpcyB0ZXJyaWJsZS4gQnJpbmcgYmFjayBhIGNhY2hlZCBiaXQgZm9yIHRoaXMgc29tZWRh
eS4gVGhpcyBjcmF3bCBpcyBnb2luZyB0byBzbG93IGRvd24gYWxsCkBAIC0xNTQxLDcgKzE1NDEs
NyBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmVuY2xvc2luZ0NvbXBvc2l0aW5nTGF5ZXIo
SW5jbHVkZVNlbGZPck5vdCBpbmNsdWRlU2VsZgogICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nh
c3Q8UmVuZGVyTGF5ZXIqPihjdXJyKTsKICAgICB9CiAgICAgICAgICAKLSAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNs
b3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludChJbmNsdWRlU2VsZk9yTm90IGluY2x1ZGVT
ZWxmKSBjb25zdApAQCAtMTU1NCw3ICsxNTU0LDcgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVy
OjplbmNsb3NpbmdDb21wb3NpdGluZ0xheWVyRm9yUmVwYWludChJbmNsdWRlU2VsZk9yTm90IGkK
ICAgICAgICAgICAgIHJldHVybiBjb25zdF9jYXN0PFJlbmRlckxheWVyKj4oY3Vycik7CiAgICAg
fQogICAgICAgICAgCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIFJl
bmRlckxheWVyKiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5nRmlsdGVyTGF5ZXIoSW5jbHVkZVNlbGZP
ck5vdCBpbmNsdWRlU2VsZikgY29uc3QKQEAgLTE1NjUsNyArMTU2NSw3IEBAIFJlbmRlckxheWVy
KiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5nRmlsdGVyTGF5ZXIoSW5jbHVkZVNlbGZPck5vdCBpbmNs
dWRlU2VsZikgY29uCiAgICAgICAgICAgICByZXR1cm4gY29uc3RfY2FzdDxSZW5kZXJMYXllcio+
KGN1cnIpOwogICAgIH0KICAgICAKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsK
IH0KIAogUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdGaWx0ZXJSZXBhaW50TGF5
ZXIoKSBjb25zdApAQCAtMTU3NCw3ICsxNTc0LDcgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVy
OjplbmNsb3NpbmdGaWx0ZXJSZXBhaW50TGF5ZXIoKSBjb25zdAogICAgICAgICBpZiAoKGN1cnIg
IT0gdGhpcyAmJiBjdXJyLT5yZXF1aXJlc0Z1bGxMYXllckltYWdlRm9yRmlsdGVycygpKSB8fCBj
b21wb3NpdGVkV2l0aE93bkJhY2tpbmdTdG9yZShjdXJyKSB8fCBjdXJyLT5pc1Jvb3RMYXllcigp
KQogICAgICAgICAgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8UmVuZGVyTGF5ZXIqPihjdXJyKTsKICAg
ICB9Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIHZvaWQgUmVuZGVy
TGF5ZXI6OnNldEZpbHRlckJhY2tlbmROZWVkc1JlcGFpbnRpbmdJblJlY3QoY29uc3QgTGF5b3V0
UmVjdCYgcmVjdCkKQEAgLTE2NDIsNyArMTY0Miw3IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXll
cjo6Y2xpcHBpbmdSb290Rm9yUGFpbnRpbmcoKSBjb25zdAogICAgIH0KIAogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBM
YXlvdXRQb2ludCBSZW5kZXJMYXllcjo6YWJzb2x1dGVUb0NvbnRlbnRzKGNvbnN0IExheW91dFBv
aW50JiBhYnNvbHV0ZVBvaW50KSBjb25zdApAQCAtMTY2MywxNSArMTY2MywxNSBAQCBib29sIFJl
bmRlckxheWVyOjpjYW5ub3RCbGl0VG9XaW5kb3coKSBjb25zdAogUmVuZGVyTGF5ZXIqIFJlbmRl
ckxheWVyOjp0cmFuc3BhcmVudFBhaW50aW5nQW5jZXN0b3IoKQogewogICAgIGlmIChpc0NvbXBv
c2l0ZWQoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAg
ICAgZm9yIChSZW5kZXJMYXllciogY3VyciA9IHBhcmVudCgpOyBjdXJyOyBjdXJyID0gY3Vyci0+
cGFyZW50KCkpIHsKICAgICAgICAgaWYgKGN1cnItPmlzQ29tcG9zaXRlZCgpKQotICAgICAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgaWYgKGN1
cnItPmlzVHJhbnNwYXJlbnQoKSkKICAgICAgICAgICAgIHJldHVybiBjdXJyOwogICAgIH0KLSAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogZW51bSBUcmFuc3BhcmVuY3lD
bGlwQm94QmVoYXZpb3IgewpAQCAtMTc0NCw3ICsxNzQ0LDcgQEAgc3RhdGljIExheW91dFJlY3Qg
dHJhbnNwYXJlbmN5Q2xpcEJveChjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIsIGNvbnN0IFJlbmRl
ckxheWUKICAgICAgICAgLy8gVGhlIGJlc3Qgd2UgY2FuIGRvIGhlcmUgaXMgdG8gdXNlIGVuY2xv
c2VkIGJvdW5kaW5nIGJveGVzIHRvIGVzdGFibGlzaCBhICJmdXp6eSIgZW5vdWdoIGNsaXAgdG8g
ZW5jb21wYXNzCiAgICAgICAgIC8vIHRoZSB0cmFuc2Zvcm1lZCBsYXllciBhbmQgYWxsIG9mIGl0
cyBjaGlsZHJlbi4KICAgICAgICAgUmVuZGVyTGF5ZXI6OlBhZ2luYXRpb25JbmNsdXNpb25Nb2Rl
IG1vZGUgPSB0cmFuc3BhcmVuY3lCZWhhdmlvciA9PSBIaXRUZXN0aW5nVHJhbnNwYXJlbmN5Q2xp
cEJveCA/IFJlbmRlckxheWVyOjpJbmNsdWRlQ29tcG9zaXRlZFBhZ2luYXRlZExheWVycyA6IFJl
bmRlckxheWVyOjpFeGNsdWRlQ29tcG9zaXRlZFBhZ2luYXRlZExheWVyczsKLSAgICAgICAgY29u
c3QgUmVuZGVyTGF5ZXIqIHBhZ2luYXRpb25MYXllciA9IHRyYW5zcGFyZW5jeU1vZGUgPT0gRGVz
Y2VuZGFudHNPZlRyYW5zcGFyZW5jeUNsaXBCb3ggPyBsYXllci5lbmNsb3NpbmdQYWdpbmF0aW9u
TGF5ZXIobW9kZSkgOiAwOworICAgICAgICBjb25zdCBSZW5kZXJMYXllciogcGFnaW5hdGlvbkxh
eWVyID0gdHJhbnNwYXJlbmN5TW9kZSA9PSBEZXNjZW5kYW50c09mVHJhbnNwYXJlbmN5Q2xpcEJv
eCA/IGxheWVyLmVuY2xvc2luZ1BhZ2luYXRpb25MYXllcihtb2RlKSA6IG51bGxwdHI7CiAgICAg
ICAgIGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXJGb3JUcmFuc2Zvcm0gPSBwYWdpbmF0aW9u
TGF5ZXIgPyBwYWdpbmF0aW9uTGF5ZXIgOiByb290TGF5ZXI7CiAgICAgICAgIExheW91dFNpemUg
ZGVsdGEgPSBsYXllci5vZmZzZXRGcm9tQW5jZXN0b3Iocm9vdExheWVyRm9yVHJhbnNmb3JtKTsK
IApAQCAtMTkwMSw5ICsxOTAxLDkgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpyZW1vdmVD
aGlsZChSZW5kZXJMYXllciogb2xkQ2hpbGQpCiAgICAgaWYgKG9sZENoaWxkLT5yZW5kZXJlcigp
LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpIHx8IG9sZENoaWxkLT5oYXNPdXRPZkZsb3dQb3NpdGlv
bmVkRGVzY2VuZGFudCgpKQogICAgICAgICBkaXJ0eUFuY2VzdG9yQ2hhaW5IYXNPdXRPZkZsb3dQ
b3NpdGlvbmVkRGVzY2VuZGFudFN0YXR1cygpOwogCi0gICAgb2xkQ2hpbGQtPnNldFByZXZpb3Vz
U2libGluZygwKTsKLSAgICBvbGRDaGlsZC0+c2V0TmV4dFNpYmxpbmcoMCk7Ci0gICAgb2xkQ2hp
bGQtPnNldFBhcmVudCgwKTsKKyAgICBvbGRDaGlsZC0+c2V0UHJldmlvdXNTaWJsaW5nKG51bGxw
dHIpOworICAgIG9sZENoaWxkLT5zZXROZXh0U2libGluZyhudWxscHRyKTsKKyAgICBvbGRDaGls
ZC0+c2V0UGFyZW50KG51bGxwdHIpOwogICAgIAogICAgIG9sZENoaWxkLT51cGRhdGVEZXNjZW5k
YW50RGVwZW5kZW50RmxhZ3MoKTsKICAgICBpZiAob2xkQ2hpbGQtPm1faGFzVmlzaWJsZUNvbnRl
bnQgfHwgb2xkQ2hpbGQtPm1faGFzVmlzaWJsZURlc2NlbmRhbnQpCkBAIC0xOTUwLDcgKzE5NTAs
NyBAQCB2b2lkIFJlbmRlckxheWVyOjpyZW1vdmVPbmx5VGhpc0xheWVyKCkKICAgICAgICAgY3Vy
cmVudC0+c2V0UmVwYWludFN0YXR1cyhOZWVkc0Z1bGxSZXBhaW50KTsKICAgICAgICAgLy8gdXBk
YXRlTGF5ZXJQb3NpdGlvbnMgZGVwZW5kcyBvbiBoYXNMYXllcigpIGFscmVhZHkgYmVpbmcgZmFs
c2UgZm9yIHByb3BlciBsYXlvdXQuCiAgICAgICAgIEFTU0VSVCghcmVuZGVyZXIoKS5oYXNMYXll
cigpKTsKLSAgICAgICAgY3VycmVudC0+dXBkYXRlTGF5ZXJQb3NpdGlvbnMoMCk7IC8vIEZJWE1F
OiB1c2UgZ2VvbWV0cnkgbWFwLgorICAgICAgICBjdXJyZW50LT51cGRhdGVMYXllclBvc2l0aW9u
cygpOyAvLyBGSVhNRTogdXNlIGdlb21ldHJ5IG1hcC4KICAgICAgICAgY3VycmVudCA9IG5leHQ7
CiAgICAgfQogCkBAIC0xOTY2LDcgKzE5NjYsNyBAQCB2b2lkIFJlbmRlckxheWVyOjppbnNlcnRP
bmx5VGhpc0xheWVyKCkKICAgICAgICAgLy8gRmluZCBvdXIgZW5jbG9zaW5nTGF5ZXIgYW5kIGFk
ZCBvdXJzZWx2ZXMuCiAgICAgICAgIFJlbmRlckxheWVyKiBwYXJlbnRMYXllciA9IHJlbmRlcmVy
KCkucGFyZW50KCktPmVuY2xvc2luZ0xheWVyKCk7CiAgICAgICAgIEFTU0VSVChwYXJlbnRMYXll
cik7Ci0gICAgICAgIFJlbmRlckxheWVyKiBiZWZvcmVDaGlsZCA9IHBhcmVudExheWVyLT5yZWZs
ZWN0aW9uTGF5ZXIoKSAhPSB0aGlzID8gcmVuZGVyZXIoKS5wYXJlbnQoKS0+ZmluZE5leHRMYXll
cihwYXJlbnRMYXllciwgJnJlbmRlcmVyKCkpIDogMDsKKyAgICAgICAgUmVuZGVyTGF5ZXIqIGJl
Zm9yZUNoaWxkID0gcGFyZW50TGF5ZXItPnJlZmxlY3Rpb25MYXllcigpICE9IHRoaXMgPyByZW5k
ZXJlcigpLnBhcmVudCgpLT5maW5kTmV4dExheWVyKHBhcmVudExheWVyLCAmcmVuZGVyZXIoKSkg
OiBudWxscHRyOwogICAgICAgICBwYXJlbnRMYXllci0+YWRkQ2hpbGQodGhpcywgYmVmb3JlQ2hp
bGQpOwogICAgIH0KIApAQCAtMTk5Myw3ICsxOTkzLDcgQEAgc3RhdGljIGlubGluZSBjb25zdCBS
ZW5kZXJMYXllciogYWNjdW11bGF0ZU9mZnNldFRvd2FyZHNBbmNlc3Rvcihjb25zdCBSZW5kZXJM
YXkKICAgICBFUG9zaXRpb24gcG9zaXRpb24gPSByZW5kZXJlci5zdHlsZSgpLnBvc2l0aW9uKCk7
CiAKICAgICAvLyBGSVhNRTogU3BlY2lhbCBjYXNpbmcgUmVuZGVyRmxvd1RocmVhZCBzbyBtdWNo
IGZvciBmaXhlZCBwb3NpdGlvbmluZyBoZXJlIGlzIG5vdCBncmVhdC4KLSAgICBSZW5kZXJGbG93
VGhyZWFkKiBmaXhlZEZsb3dUaHJlYWRDb250YWluZXIgPSBwb3NpdGlvbiA9PSBGaXhlZFBvc2l0
aW9uID8gcmVuZGVyZXIuZmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpIDogMDsKKyAgICBSZW5k
ZXJGbG93VGhyZWFkKiBmaXhlZEZsb3dUaHJlYWRDb250YWluZXIgPSBwb3NpdGlvbiA9PSBGaXhl
ZFBvc2l0aW9uID8gcmVuZGVyZXIuZmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpIDogbnVsbHB0
cjsKICAgICBpZiAoZml4ZWRGbG93VGhyZWFkQ29udGFpbmVyICYmICFmaXhlZEZsb3dUaHJlYWRD
b250YWluZXItPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQogICAgICAgICBmaXhlZEZsb3dUaHJl
YWRDb250YWluZXIgPSBudWxscHRyOwogCkBAIC0yMDk2LDcgKzIwOTYsNyBAQCBzdGF0aWMgaW5s
aW5lIGNvbnN0IFJlbmRlckxheWVyKiBhY2N1bXVsYXRlT2Zmc2V0VG93YXJkc0FuY2VzdG9yKGNv
bnN0IFJlbmRlckxheQogICAgICAgICBwYXJlbnRMYXllciA9IGxheWVyLT5wYXJlbnQoKTsKICAg
ICAKICAgICBpZiAoIXBhcmVudExheWVyKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKICAgICBsb2NhdGlvbiArPSB0b0xheW91dFNpemUobGF5ZXItPmxvY2F0
aW9uKCkpOwogCkBAIC0zMTYzLDcgKzMxNjMsNyBAQCBTY3JvbGxhYmxlQXJlYSogUmVuZGVyTGF5
ZXI6OmVuY2xvc2luZ1Njcm9sbGFibGVBcmVhKCkgY29uc3QKIAogICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgcmV0dXJuIHRoZSBmcmFtZSB2aWV3IGhlcmUgKG9yIHBvc3NpYmx5IGFuIGFuY2VzdG9y
IGZyYW1lIHZpZXcsCiAgICAgLy8gaWYgdGhlIGZyYW1lIHZpZXcgaXNuJ3Qgc2Nyb2xsYWJsZS4K
LSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogYm9vbCBSZW5kZXJMYXll
cjo6aXNTY3JvbGxhYmxlT3JSdWJiZXJiYW5kYWJsZSgpCkBAIC00NDE3LDExICs0NDE3LDExIEBA
IFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5nUGFnaW5hdGlvbkxheWVySW5TdWJ0
cmVlKGNvbnN0IFJlbmRlckxheWVyKiByCiAgICAgICAgIHJldHVybiBwYWdpbmF0aW9uTGF5ZXI7
CiAgICAgCiAgICAgLy8gV2FsayB1cCB0aGUgbGF5ZXIgdHJlZSBhbmQgc2VlIHdoaWNoIGxheWVy
IHdlIGhpdCBmaXJzdC4gSWYgaXQncyB0aGUgcm9vdCwgdGhlbiB0aGUgZW5jbG9zaW5nIHBhZ2lu
YXRpb24KLSAgICAvLyBsYXllciBpc24ndCBpbiBvdXIgc3VidHJlZSBhbmQgd2UgcmV0dXJuIDAu
IElmIHdlIGhpdCB0aGUgZW5jbG9zaW5nIHBhZ2luYXRpb24gbGF5ZXIgZmlyc3QsIHRoZW4KKyAg
ICAvLyBsYXllciBpc24ndCBpbiBvdXIgc3VidHJlZSBhbmQgd2UgcmV0dXJuIG51bGxwdHIuIElm
IHdlIGhpdCB0aGUgZW5jbG9zaW5nIHBhZ2luYXRpb24gbGF5ZXIgZmlyc3QsIHRoZW4KICAgICAv
LyB3ZSBjYW4gcmV0dXJuIGl0LgogICAgIGZvciAoY29uc3QgUmVuZGVyTGF5ZXIqIGxheWVyID0g
dGhpczsgbGF5ZXI7IGxheWVyID0gbGF5ZXItPnBhcmVudCgpKSB7CiAgICAgICAgIGlmIChsYXll
ciA9PSByb290TGF5ZXIpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgICAgICBpZiAobGF5ZXIgPT0gcGFnaW5hdGlvbkxheWVyKQogICAgICAg
ICAgICAgcmV0dXJuIHBhZ2luYXRpb25MYXllcjsKICAgICB9CkBAIC00NDI5LDcgKzQ0MjksNyBA
QCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmVuY2xvc2luZ1BhZ2luYXRpb25MYXllckluU3Vi
dHJlZShjb25zdCBSZW5kZXJMYXllciogcgogICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGJlIHJl
YWNoZWQsIHNpbmNlIGFuIGVuY2xvc2luZyBsYXllciBzaG91bGQgYWx3YXlzIGVpdGhlciBiZSB0
aGUgcm9vdExheWVyIG9yIGJlCiAgICAgLy8gb3VyIGVuY2xvc2luZyBwYWdpbmF0aW9uIGxheWVy
LgogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBu
dWxscHRyOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjpjb2xsZWN0RnJhZ21lbnRzKExheWVyRnJh
Z21lbnRzJiBmcmFnbWVudHMsIGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIGNvbnN0IExh
eW91dFJlY3QmIGRpcnR5UmVjdCwgUGFnaW5hdGlvbkluY2x1c2lvbk1vZGUgaW5jbHVzaW9uTW9k
ZSwKQEAgLTQ4MjUsNyArNDgyNSw3IEBAIEVsZW1lbnQqIFJlbmRlckxheWVyOjplbmNsb3NpbmdF
bGVtZW50KCkgY29uc3QKICAgICAgICAgaWYgKEVsZW1lbnQqIGUgPSByLT5lbGVtZW50KCkpCiAg
ICAgICAgICAgICByZXR1cm4gZTsKICAgICB9Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51
bGxwdHI7CiB9CiAKIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5nRmxvd1RocmVh
ZEFuY2VzdG9yKCkgY29uc3QKQEAgLTQ4MzQsNyArNDgzNCw3IEBAIFJlbmRlckxheWVyKiBSZW5k
ZXJMYXllcjo6ZW5jbG9zaW5nRmxvd1RocmVhZEFuY2VzdG9yKCkgY29uc3QKICAgICBmb3IgKDsg
Y3VyciAmJiAhY3Vyci0+aXNSZW5kZXJGbG93VGhyZWFkKCk7IGN1cnIgPSBjdXJyLT5wYXJlbnQo
KSkgewogICAgICAgICBpZiAoY3Vyci0+aXNTdGFja2luZ0NvbnRhaW5lcigpICYmIGN1cnItPmlz
Q29tcG9zaXRlZCgpKSB7CiAgICAgICAgICAgICAvLyBXZSBvbmx5IGFkanVzdCB0aGUgcG9zaXRp
b24gb2YgdGhlIGZpcnN0IGxldmVsIG9mIGxheWVycy4KLSAgICAgICAgICAgIHJldHVybiAwOwor
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJu
IGN1cnI7CkBAIC00OTMyLDExICs0OTMyLDExIEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6
aGl0VGVzdEZpeGVkTGF5ZXJzSW5OYW1lZEZsb3dzKFJlbmRlckxheWVyKiAvKnJvb3RMYXllCiAg
ICAgYm9vbCBkZXB0aFNvcnREZXNjZW5kYW50cykKIHsKICAgICBpZiAoIWlzUm9vdExheWVyKCkp
Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIEdl
dCB0aGUgbmFtZWQgZmxvd3MgZm9yIHRoZSB2aWV3CiAgICAgaWYgKCFyZW5kZXJlcigpLnZpZXco
KS5oYXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRzKCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIFZlY3RvcjxSZW5kZXJMYXllcio+IGZpeGVkTGF5ZXJz
OwogICAgIHJlbmRlcmVyKCkudmlldygpLmZsb3dUaHJlYWRDb250cm9sbGVyKCkuY29sbGVjdEZp
eGVkUG9zaXRpb25lZExheWVycyhmaXhlZExheWVycyk7CkBAIC00OTgwLDEzICs0OTgwLDEzIEBA
IFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6aGl0VGVzdExheWVyKFJlbmRlckxheWVyKiByb290
TGF5ZXIsIFJlbmRlckxheWVyKiBjb250CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBIaXRUZXN0aW5nVHJhbnNmb3JtU3RhdGUqIHRyYW5zZm9ybVN0YXRlLCBk
b3VibGUqIHpPZmZzZXQpCiB7CiAgICAgaWYgKCFpc1NlbGZQYWludGluZ0xheWVyKCkgJiYgIWhh
c1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudCgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCogbmFtZWRG
bG93RnJhZ21lbnQgPSBjdXJyZW50UmVuZGVyTmFtZWRGbG93RnJhZ21lbnQoKTsKIAogICAgIC8v
IFByZXZlbnQgaGl0dGluZyB0aGUgZml4ZWQgbGF5ZXJzIGluc2lkZSB0aGUgZmxvdyB0aHJlYWQg
d2hlbiBoaXR0aW5nIHRocm91Z2ggcmVnaW9ucy4KICAgICBpZiAocmVuZGVyZXIoKS5maXhlZFBv
c2l0aW9uZWRXaXRoTmFtZWRGbG93Q29udGFpbmluZ0Jsb2NrKCkgJiYgbmFtZWRGbG93RnJhZ21l
bnQpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8v
IERvbid0IGhpdC10ZXN0IHRoZSBsYXllciBpZiB0aGUgcmVuZGVyZXIgZG9lc24ndCBiZWxvbmcg
dG8gdGhpcyByZWdpb24uCiAgICAgLy8gVGhpcyBpcyB0cnVlIGFzIGxvbmcgYXMgd2UgY2xhbXAg
dGhlIHJhbmdlIG9mIGEgYm94IHRvIGl0cyBjb250YWluaW5nIGJsb2NrIHJhbmdlLgpAQCAtNDk5
NSw3ICs0OTk1LDcgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpoaXRUZXN0TGF5ZXIoUmVu
ZGVyTGF5ZXIqIHJvb3RMYXllciwgUmVuZGVyTGF5ZXIqIGNvbnQKICAgICAgICAgQVNTRVJUKG5h
bWVkRmxvd0ZyYWdtZW50LT5pc1ZhbGlkKCkpOwogICAgICAgICBSZW5kZXJGbG93VGhyZWFkKiBm
bG93VGhyZWFkID0gbmFtZWRGbG93RnJhZ21lbnQtPmZsb3dUaHJlYWQoKTsKICAgICAgICAgaWYg
KCFmbG93VGhyZWFkLT5vYmplY3RTaG91bGRGcmFnbWVudEluRmxvd1JlZ2lvbigmcmVuZGVyZXIo
KSwgbmFtZWRGbG93RnJhZ21lbnQpKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICB9CiAKICAgICAvLyBUaGUgbmF0dXJhbCB0aGluZyB3b3Vs
ZCBiZSB0byBrZWVwIEhpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZSBvbiB0aGUgc3RhY2ssIGJ1dCBp
dCdzIGJpZywgc28gd2UgaGVhcC1hbGxvY2F0ZS4KQEAgLTUwMTEsNyArNTAxMSw3IEBAIFJlbmRl
ckxheWVyKiBSZW5kZXJMYXllcjo6aGl0VGVzdExheWVyKFJlbmRlckxheWVyKiByb290TGF5ZXIs
IFJlbmRlckxheWVyKiBjb250CiAgICAgICAgICAgICBDbGlwUmVjdCBjbGlwUmVjdCA9IGJhY2tn
cm91bmRDbGlwUmVjdChjbGlwUmVjdHNDb250ZXh0KTsKICAgICAgICAgICAgIC8vIEdvIGFoZWFk
IGFuZCB0ZXN0IHRoZSBlbmNsb3NpbmcgY2xpcCBub3cuCiAgICAgICAgICAgICBpZiAoIWNsaXBS
ZWN0LmludGVyc2VjdHMoaGl0VGVzdExvY2F0aW9uKSkKLSAgICAgICAgICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgfQogCiAgICAgICAg
IHJldHVybiBoaXRUZXN0TGF5ZXJCeUFwcGx5aW5nVHJhbnNmb3JtKHJvb3RMYXllciwgY29udGFp
bmVyTGF5ZXIsIHJlcXVlc3QsIHJlc3VsdCwgaGl0VGVzdFJlY3QsIGhpdFRlc3RMb2NhdGlvbiwg
dHJhbnNmb3JtU3RhdGUsIHpPZmZzZXQpOwpAQCAtNTAzNiw3ICs1MDM2LDcgQEAgUmVuZGVyTGF5
ZXIqIFJlbmRlckxheWVyOjpoaXRUZXN0TGF5ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgUmVu
ZGVyTGF5ZXIqIGNvbnQKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggaW52ZXJ0ZWRNYXRy
aXggPSBsb2NhbFRyYW5zZm9ybVN0YXRlLT5tX2FjY3VtdWxhdGVkVHJhbnNmb3JtLmludmVyc2Uo
KTsKICAgICAgICAgLy8gSWYgdGhlIHotdmVjdG9yIG9mIHRoZSBtYXRyaXggaXMgbmVnYXRpdmUs
IHRoZSBiYWNrIGlzIGZhY2luZyB0b3dhcmRzIHRoZSB2aWV3ZXIuCiAgICAgICAgIGlmIChpbnZl
cnRlZE1hdHJpeC5tMzMoKSA8IDApCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIFJlZlB0cjxIaXRUZXN0aW5nVHJhbnNmb3Jt
U3RhdGU+IHVuZmxhdHRlbmVkVHJhbnNmb3JtU3RhdGUgPSBsb2NhbFRyYW5zZm9ybVN0YXRlOwpA
QCAtNTE2MSw3ICs1MTYxLDcgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpoaXRUZXN0TGF5
ZXIoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgUmVuZGVyTGF5ZXIqIGNvbnQKICAgICAgICAgICAg
IHJlc3VsdC5hcHBlbmQodGVtcFJlc3VsdCk7CiAgICAgfQogCi0gICAgcmV0dXJuIDA7CisgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKIGJvb2wgUmVuZGVyTGF5ZXI6OmhpdFRlc3RDb250ZW50c0Zv
ckZyYWdtZW50cyhjb25zdCBMYXllckZyYWdtZW50cyYgbGF5ZXJGcmFnbWVudHMsIGNvbnN0IEhp
dFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsCkBAIC01MjMzLDcg
KzUyMzMsNyBAQCBSZW5kZXJMYXllciogUmVuZGVyTGF5ZXI6OmhpdFRlc3RUcmFuc2Zvcm1lZExh
eWVySW5GcmFnbWVudHMoUmVuZGVyTGF5ZXIqIHJvb3RMYQogICAgICAgICAgICAgcmV0dXJuIGhp
dExheWVyOwogICAgIH0KICAgICAKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbnVsbHB0cjsK
IH0KIAogUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpoaXRUZXN0TGF5ZXJCeUFwcGx5aW5nVHJh
bnNmb3JtKFJlbmRlckxheWVyKiByb290TGF5ZXIsIFJlbmRlckxheWVyKiBjb250YWluZXJMYXll
ciwgY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwK
QEAgLTUyNDUsNyArNTI0NSw3IEBAIFJlbmRlckxheWVyKiBSZW5kZXJMYXllcjo6aGl0VGVzdExh
eWVyQnlBcHBseWluZ1RyYW5zZm9ybShSZW5kZXJMYXllciogcm9vdExheWVyCiAKICAgICAvLyBJ
ZiB0aGUgdHJhbnNmb3JtIGNhbid0IGJlIGludmVydGVkLCB0aGVuIGRvbid0IGhpdCB0ZXN0IHRo
aXMgbGF5ZXIgYXQgYWxsLgogICAgIGlmICghbmV3VHJhbnNmb3JtU3RhdGUtPm1fYWNjdW11bGF0
ZWRUcmFuc2Zvcm0uaXNJbnZlcnRpYmxlKCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIENvbXB1dGUgdGhlIHBvaW50IGFuZCB0aGUgaGl0IHRl
c3QgcmVjdCBpbiB0aGUgY29vcmRzIG9mIHRoaXMgbGF5ZXIgYnkgdXNpbmcgdGhlIHZhbHVlcwog
ICAgIC8vIGZyb20gdGhlIHRyYW5zZm9ybVN0YXRlLCB3aGljaCBzdG9yZSB0aGUgcG9pbnQgYW5k
IHF1YWQgaW4gdGhlIGNvb3JkcyBvZiB0aGUgbGFzdCBmbGF0dGVuZWQKQEAgLTUzMDgsMTAgKzUz
MDgsMTAgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjpoaXRUZXN0TGlzdChWZWN0b3I8UmVu
ZGVyTGF5ZXIqPiogbGlzdCwgUmVuZGVyTGF5ZXIqIHIKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBkZXB0aFNvcnREZXNjZW5kYW50cykKIHsKICAgICBpZiAoIWxp
c3QpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlm
ICghaGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50KCkpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIFJlbmRlckxheWVyKiByZXN1bHRMYXllciA9
IG51bGxwdHI7CiAgICAgZm9yIChpbnQgaSA9IGxpc3QtPnNpemUoKSAtIDE7IGkgPj0gMDsgLS1p
KSB7CkBAIC01MzYwLDcgKzUzNjAsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVDbGlwUmVj
dHMoY29uc3QgQ2xpcFJlY3RzQ29udGV4dCYgY2xpcFJlY3RzQ29udGV4dCkKICAgICAKICAgICAv
LyBGb3IgdHJhbnNmb3JtZWQgbGF5ZXJzLCB0aGUgcm9vdCBsYXllciB3YXMgc2hpZnRlZCB0byBi
ZSB1cywgc28gdGhlcmUgaXMgbm8gbmVlZCB0bwogICAgIC8vIGV4YW1pbmUgdGhlIHBhcmVudC4g
IFdlIHdhbnQgdG8gY2FjaGUgY2xpcCByZWN0cyB3aXRoIHVzIGFzIHRoZSByb290LgotICAgIFJl
bmRlckxheWVyKiBwYXJlbnRMYXllciA9IGNsaXBSZWN0c0NvbnRleHQucm9vdExheWVyICE9IHRo
aXMgPyBwYXJlbnQoKSA6IDA7CisgICAgUmVuZGVyTGF5ZXIqIHBhcmVudExheWVyID0gY2xpcFJl
Y3RzQ29udGV4dC5yb290TGF5ZXIgIT0gdGhpcyA/IHBhcmVudCgpIDogbnVsbHB0cjsKICAgICBp
ZiAocGFyZW50TGF5ZXIpCiAgICAgICAgIHBhcmVudExheWVyLT51cGRhdGVDbGlwUmVjdHMoY2xp
cFJlY3RzQ29udGV4dCk7CiAKQEAgLTU0MTYsNyArNTQxNiw3IEBAIGJvb2wgUmVuZGVyTGF5ZXI6
Om1hcExheWVyQ2xpcFJlY3RzVG9GcmFnbWVudGF0aW9uTGF5ZXIoQ2xpcFJlY3RzJiBjbGlwUmVj
dHMpIGNvCiBDbGlwUmVjdHMqIFJlbmRlckxheWVyOjpjbGlwUmVjdHMoY29uc3QgQ2xpcFJlY3Rz
Q29udGV4dCYgY29udGV4dCkgY29uc3QKIHsKICAgICBBU1NFUlQoY29udGV4dC5jbGlwUmVjdHNU
eXBlIDwgTnVtQ2FjaGVkQ2xpcFJlY3RzVHlwZXMpOwotICAgIHJldHVybiBtX2NsaXBSZWN0c0Nh
Y2hlID8gbV9jbGlwUmVjdHNDYWNoZS0+Z2V0Q2xpcFJlY3RzKGNvbnRleHQuY2xpcFJlY3RzVHlw
ZSwgY29udGV4dC5yZXNwZWN0T3ZlcmZsb3dDbGlwKS5nZXQoKSA6IDA7CisgICAgcmV0dXJuIG1f
Y2xpcFJlY3RzQ2FjaGUgPyBtX2NsaXBSZWN0c0NhY2hlLT5nZXRDbGlwUmVjdHMoY29udGV4dC5j
bGlwUmVjdHNUeXBlLCBjb250ZXh0LnJlc3BlY3RPdmVyZmxvd0NsaXApLmdldCgpIDogbnVsbHB0
cjsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJlY3RzKGNvbnN0IENsaXBS
ZWN0c0NvbnRleHQmIGNsaXBSZWN0c0NvbnRleHQsIENsaXBSZWN0cyYgY2xpcFJlY3RzKSBjb25z
dApAQCAtNTQzNSw3ICs1NDM1LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJl
Y3RzKGNvbnN0IENsaXBSZWN0c0NvbnRleHQmIGNsaXBSZWN0c0NvbnRleHQsIEMKIAogICAgIC8v
IEZvciB0cmFuc2Zvcm1lZCBsYXllcnMsIHRoZSByb290IGxheWVyIHdhcyBzaGlmdGVkIHRvIGJl
IHVzLCBzbyB0aGVyZSBpcyBubyBuZWVkIHRvCiAgICAgLy8gZXhhbWluZSB0aGUgcGFyZW50LiBX
ZSB3YW50IHRvIGNhY2hlIGNsaXAgcmVjdHMgd2l0aCB1cyBhcyB0aGUgcm9vdC4KLSAgICBSZW5k
ZXJMYXllciogcGFyZW50TGF5ZXIgPSBjbGlwUmVjdHNDb250ZXh0LnJvb3RMYXllciAhPSB0aGlz
ID8gcGFyZW50KCkgOiAwOworICAgIFJlbmRlckxheWVyKiBwYXJlbnRMYXllciA9IGNsaXBSZWN0
c0NvbnRleHQucm9vdExheWVyICE9IHRoaXMgPyBwYXJlbnQoKSA6IG51bGxwdHI7CiAgICAgCiAg
ICAgLy8gRW5zdXJlIHRoYXQgb3VyIHBhcmVudCdzIGNsaXAgaGFzIGJlZW4gY2FsY3VsYXRlZCBz
byB0aGF0IHdlIGNhbiBleGFtaW5lIHRoZSB2YWx1ZXMuCiAgICAgaWYgKHBhcmVudExheWVyKSB7
CkBAIC02MDQ2LDIyICs2MDQ2LDIyIEBAIGJvb2wgUmVuZGVyTGF5ZXI6Omhhc0NvbXBvc2l0ZWRN
YXNrKCkgY29uc3QKIAogR3JhcGhpY3NMYXllciogUmVuZGVyTGF5ZXI6OmxheWVyRm9yU2Nyb2xs
aW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9iYWNraW5nID8gbV9iYWNraW5nLT5zY3JvbGxp
bmdDb250ZW50c0xheWVyKCkgOiAwOworICAgIHJldHVybiBtX2JhY2tpbmcgPyBtX2JhY2tpbmct
PnNjcm9sbGluZ0NvbnRlbnRzTGF5ZXIoKSA6IG51bGxwdHI7CiB9CiAKIEdyYXBoaWNzTGF5ZXIq
IFJlbmRlckxheWVyOjpsYXllckZvckhvcml6b250YWxTY3JvbGxiYXIoKSBjb25zdAogewotICAg
IHJldHVybiBtX2JhY2tpbmcgPyBtX2JhY2tpbmctPmxheWVyRm9ySG9yaXpvbnRhbFNjcm9sbGJh
cigpIDogMDsKKyAgICByZXR1cm4gbV9iYWNraW5nID8gbV9iYWNraW5nLT5sYXllckZvckhvcml6
b250YWxTY3JvbGxiYXIoKSA6IG51bGxwdHI7CiB9CiAKIEdyYXBoaWNzTGF5ZXIqIFJlbmRlckxh
eWVyOjpsYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9i
YWNraW5nID8gbV9iYWNraW5nLT5sYXllckZvclZlcnRpY2FsU2Nyb2xsYmFyKCkgOiAwOworICAg
IHJldHVybiBtX2JhY2tpbmcgPyBtX2JhY2tpbmctPmxheWVyRm9yVmVydGljYWxTY3JvbGxiYXIo
KSA6IG51bGxwdHI7CiB9CiAKIEdyYXBoaWNzTGF5ZXIqIFJlbmRlckxheWVyOjpsYXllckZvclNj
cm9sbENvcm5lcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fYmFja2luZyA/IG1fYmFja2luZy0+
bGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSA6IDA7CisgICAgcmV0dXJuIG1fYmFja2luZyA/IG1fYmFj
a2luZy0+bGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSA6IG51bGxwdHI7CiB9CiAKIGJvb2wgUmVuZGVy
TGF5ZXI6OnBhaW50c1dpdGhUcmFuc2Zvcm0oUGFpbnRCZWhhdmlvciBwYWludEJlaGF2aW9yKSBj
b25zdApAQCAtNjc1OSw3ICs2NzU5LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlU2Nyb2xs
YWJsZUFyZWFTZXQoYm9vbCBoYXNPdmVyZmxvdykKIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZVNj
cm9sbENvcm5lclN0eWxlKCkKIHsKICAgICBSZW5kZXJFbGVtZW50KiBhY3R1YWxSZW5kZXJlciA9
IHJlbmRlcmVyRm9yU2Nyb2xsYmFyKHJlbmRlcmVyKCkpOwotICAgIFJlZlB0cjxSZW5kZXJTdHls
ZT4gY29ybmVyID0gcmVuZGVyZXIoKS5oYXNPdmVyZmxvd0NsaXAoKSA/IGFjdHVhbFJlbmRlcmVy
LT5nZXRVbmNhY2hlZFBzZXVkb1N0eWxlKFBzZXVkb1N0eWxlUmVxdWVzdChTQ1JPTExCQVJfQ09S
TkVSKSwgJmFjdHVhbFJlbmRlcmVyLT5zdHlsZSgpKSA6IFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+
KDApOworICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gY29ybmVyID0gcmVuZGVyZXIoKS5oYXNPdmVy
Zmxvd0NsaXAoKSA/IGFjdHVhbFJlbmRlcmVyLT5nZXRVbmNhY2hlZFBzZXVkb1N0eWxlKFBzZXVk
b1N0eWxlUmVxdWVzdChTQ1JPTExCQVJfQ09STkVSKSwgJmFjdHVhbFJlbmRlcmVyLT5zdHlsZSgp
KSA6IG51bGxwdHI7CiAKICAgICBpZiAoIWNvcm5lcikgewogICAgICAgICBtX3Njcm9sbENvcm5l
ciA9IG51bGxwdHI7CkBAIC02Nzc3LDcgKzY3NzcsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRh
dGVTY3JvbGxDb3JuZXJTdHlsZSgpCiB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVSZXNpemVyU3R5
bGUoKQogewogICAgIFJlbmRlckVsZW1lbnQqIGFjdHVhbFJlbmRlcmVyID0gcmVuZGVyZXJGb3JT
Y3JvbGxiYXIocmVuZGVyZXIoKSk7Ci0gICAgUmVmUHRyPFJlbmRlclN0eWxlPiByZXNpemVyID0g
cmVuZGVyZXIoKS5oYXNPdmVyZmxvd0NsaXAoKSA/IGFjdHVhbFJlbmRlcmVyLT5nZXRVbmNhY2hl
ZFBzZXVkb1N0eWxlKFBzZXVkb1N0eWxlUmVxdWVzdChSRVNJWkVSKSwgJmFjdHVhbFJlbmRlcmVy
LT5zdHlsZSgpKSA6IFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+KDApOworICAgIFJlZlB0cjxSZW5k
ZXJTdHlsZT4gcmVzaXplciA9IHJlbmRlcmVyKCkuaGFzT3ZlcmZsb3dDbGlwKCkgPyBhY3R1YWxS
ZW5kZXJlci0+Z2V0VW5jYWNoZWRQc2V1ZG9TdHlsZShQc2V1ZG9TdHlsZVJlcXVlc3QoUkVTSVpF
UiksICZhY3R1YWxSZW5kZXJlci0+c3R5bGUoKSkgOiBudWxscHRyOwogCiAgICAgaWYgKCFyZXNp
emVyKSB7CiAgICAgICAgIG1fcmVzaXplciA9IG51bGxwdHI7CkBAIC02Nzk0LDcgKzY3OTQsNyBA
QCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVSZXNpemVyU3R5bGUoKQogCiBSZW5kZXJMYXllciog
UmVuZGVyTGF5ZXI6OnJlZmxlY3Rpb25MYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcmVm
bGVjdGlvbiA/IG1fcmVmbGVjdGlvbi0+bGF5ZXIoKSA6IDA7CisgICAgcmV0dXJuIG1fcmVmbGVj
dGlvbiA/IG1fcmVmbGVjdGlvbi0+bGF5ZXIoKSA6IG51bGxwdHI7CiB9CiAKIHZvaWQgUmVuZGVy
TGF5ZXI6OmNyZWF0ZVJlZmxlY3Rpb24oKQpAQCAtNjgxMCw3ICs2ODEwLDcgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6cmVtb3ZlUmVmbGVjdGlvbigpCiAgICAgaWYgKCFtX3JlZmxlY3Rpb24tPmRvY3Vt
ZW50QmVpbmdEZXN0cm95ZWQoKSkKICAgICAgICAgbV9yZWZsZWN0aW9uLT5yZW1vdmVMYXllcnMo
dGhpcyk7CiAKLSAgICBtX3JlZmxlY3Rpb24tPnNldFBhcmVudCgwKTsKKyAgICBtX3JlZmxlY3Rp
b24tPnNldFBhcmVudChudWxscHRyKTsKICAgICBtX3JlZmxlY3Rpb24gPSBudWxscHRyOwogfQog
Cg==
</data>
<flag name="review"
          id="274472"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>