<?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>124076</bug_id>
          
          <creation_ts>2013-11-08 15:13:47 -0800</creation_ts>
          <short_desc>Teach SubframeLoader a bit about references</short_desc>
          <delta_ts>2013-11-08 15:21:12 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>948869</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-11-08 15:13:47 -0800</bug_when>
    <thetext>Teach SubframeLoader a bit about references</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948870</commentid>
    <comment_count>1</comment_count>
      <attachid>216448</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-11-08 15:14:16 -0800</bug_when>
    <thetext>Created attachment 216448
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948876</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-11-08 15:21:12 -0800</bug_when>
    <thetext>Committed r158962: &lt;http://trac.webkit.org/changeset/158962&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216448</attachid>
            <date>2013-11-08 15:14:16 -0800</date>
            <delta_ts>2013-11-08 15:20:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124076-20131108151416.patch</filename>
            <type>text/plain</type>
            <size>21685</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1ODk2MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEzLTExLTA4ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVGVhY2ggU3ViZnJhbWVMb2FkZXIgYSBi
aXQgYWJvdXQgcmVmZXJlbmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTI0MDc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBodG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcDoKKyAgICAgICAgKiBodG1s
L0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcDoKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwOgorICAgICAgICAqIGxvYWRlci9TdWJmcmFtZUxvYWRlci5jcHA6CisgICAgICAgICog
bG9hZGVyL1N1YmZyYW1lTG9hZGVyLmg6CisKIDIwMTMtMTEtMDggIEJyYWR5IEVpZHNvbiAgPGJl
aWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIE1lcmdlIElEQkN1cnNvckJhY2tlbmRJbnRlcmZh
Y2UgYW5kIElEQkN1cnNvckJhY2tlbmRJbXBsCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBcHBsZXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBcHBsZXRFbGVtZW50LmNwcAkocmV2aXNpb24gMTU4OTU5KQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MCw3ICsxNjAs
NyBAQCB2b2lkIEhUTUxBcHBsZXRFbGVtZW50Ojp1cGRhdGVXaWRnZXQoUGx1CiAgICAgRnJhbWUq
IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwogICAgIEFTU0VSVChmcmFtZSk7CiAKLSAgICBy
ZW5kZXJlci0+c2V0V2lkZ2V0KGZyYW1lLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmNyZWF0
ZUphdmFBcHBsZXRXaWRnZXQocm91bmRlZEludFNpemUoTGF5b3V0U2l6ZShjb250ZW50V2lkdGgs
IGNvbnRlbnRIZWlnaHQpKSwgdGhpcywgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpKTsKKyAgICBy
ZW5kZXJlci0+c2V0V2lkZ2V0KGZyYW1lLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmNyZWF0
ZUphdmFBcHBsZXRXaWRnZXQocm91bmRlZEludFNpemUoTGF5b3V0U2l6ZShjb250ZW50V2lkdGgs
IGNvbnRlbnRIZWlnaHQpKSwgKnRoaXMsIHBhcmFtTmFtZXMsIHBhcmFtVmFsdWVzKSk7CiB9CiAK
IGJvb2wgSFRNTEFwcGxldEVsZW1lbnQ6OmNhbkVtYmVkSmF2YSgpIGNvbnN0CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcAkocmV2aXNpb24gMTU4
OTU5KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6
b3BlblVSTChib29sIAogICAgIGlmICghcGFyZW50RnJhbWUpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIHBhcmVudEZyYW1lLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLnJlcXVlc3RGcmFtZSh0
aGlzLCBtX1VSTCwgbV9mcmFtZU5hbWUsIGxvY2tIaXN0b3J5LCBsb2NrQmFja0ZvcndhcmRMaXN0
KTsKKyAgICBwYXJlbnRGcmFtZS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5yZXF1ZXN0RnJh
bWUoKnRoaXMsIG1fVVJMLCBtX2ZyYW1lTmFtZSwgbG9ja0hpc3RvcnksIGxvY2tCYWNrRm9yd2Fy
ZExpc3QpOwogICAgIGlmIChjb250ZW50RnJhbWUoKSkKICAgICAgICAgY29udGVudEZyYW1lKCkt
PnNldEluVmlld1NvdXJjZU1vZGUodmlld1NvdXJjZU1vZGUoKSk7CiB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlzaW9uIDE1ODk1OSkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTQzODEsNyArNDM4MSw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRlTWVkaWFQbGF5
ZXIKICAgICAKICAgICAvLyBIYW5nIG9udG8gdGhlIHByb3h5IHdpZGdldCBzbyBpdCB3b24ndCBi
ZSBkZXN0cm95ZWQgaWYgdGhlIHBsdWctaW4gaXMgc2V0IHRvCiAgICAgLy8gZGlzcGxheTpub25l
Ci0gICAgbV9wcm94eVdpZGdldCA9IGZyYW1lLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigpLmxv
YWRNZWRpYVBsYXllclByb3h5UGx1Z2luKHRoaXMsIHVybCwgcGFyYW1OYW1lcywgcGFyYW1WYWx1
ZXMpOworICAgIG1fcHJveHlXaWRnZXQgPSBmcmFtZS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIo
KS5sb2FkTWVkaWFQbGF5ZXJQcm94eVBsdWdpbigqdGhpcywgdXJsLCBwYXJhbU5hbWVzLCBwYXJh
bVZhbHVlcyk7CiAgICAgaWYgKG1fcHJveHlXaWRnZXQpCiAgICAgICAgIG1fbmVlZFdpZGdldFVw
ZGF0ZSA9IGZhbHNlOwogfQpAQCAtNDM5OCw3ICs0Mzk4LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50Ojp1cGRhdGVXaWRnZXQoUGx1ZwogICAgIG1lZGlhRWxlbWVudC0+Z2V0UGx1Z2luUHJveHlQ
YXJhbXMoa3VybCwgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpOwogICAgIC8vIEZJWE1FOiBXaGF0
IGlmIGRvY3VtZW50KCkuZnJhbWUoKSBpcyAwPwogICAgIFN1YmZyYW1lTG9hZGVyJiBsb2FkZXIg
PSBkb2N1bWVudCgpLmZyYW1lKCktPmxvYWRlcigpLnN1YmZyYW1lTG9hZGVyKCk7Ci0gICAgbG9h
ZGVyLmxvYWRNZWRpYVBsYXllclByb3h5UGx1Z2luKG1lZGlhRWxlbWVudCwga3VybCwgcGFyYW1O
YW1lcywgcGFyYW1WYWx1ZXMpOworICAgIGxvYWRlci5sb2FkTWVkaWFQbGF5ZXJQcm94eVBsdWdp
bigqbWVkaWFFbGVtZW50LCBrdXJsLCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcyk7CiB9CiAKICNl
bmRpZiAvLyBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAkocmV2aXNpb24gMTU4OTU5KQorKysgU291cmNl
L1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUs
NyArNzUsNyBAQCB2b2lkIFN1YmZyYW1lTG9hZGVyOjpjbGVhcigpCiAgICAgbV9jb250YWluc1Bs
dWdpbnMgPSBmYWxzZTsKIH0KIAotYm9vbCBTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdEZyYW1lKEhU
TUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LCBjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZywgY29uc3QgQXRvbWljU3RyaW5nJiBmcmFtZU5hbWUsIGJvb2wgbG9ja0hpc3RvcnksIGJvb2wg
bG9ja0JhY2tGb3J3YXJkTGlzdCkKK2Jvb2wgU3ViZnJhbWVMb2FkZXI6OnJlcXVlc3RGcmFtZShI
VE1MRnJhbWVPd25lckVsZW1lbnQmIG93bmVyRWxlbWVudCwgY29uc3QgU3RyaW5nJiB1cmxTdHJp
bmcsIGNvbnN0IEF0b21pY1N0cmluZyYgZnJhbWVOYW1lLCBib29sIGxvY2tIaXN0b3J5LCBib29s
IGxvY2tCYWNrRm9yd2FyZExpc3QpCiB7CiAgICAgLy8gU3VwcG9ydCBmb3IgPGZyYW1lIHNyYz0i
amF2YXNjcmlwdDpzdHJpbmciPgogICAgIFVSTCBzY3JpcHRVUkw7CkBAIC0xMDYsNyArMTA2LDcg
QEAgYm9vbCBTdWJmcmFtZUxvYWRlcjo6cmVzb3VyY2VXaWxsVXNlUGx1ZwogICAgIHJldHVybiBz
aG91bGRVc2VQbHVnaW4oY29tcGxldGVkVVJMLCBtaW1lVHlwZSwgc2hvdWxkUHJlZmVyUGx1Z0lu
c0ZvckltYWdlcywgZmFsc2UsIHVzZUZhbGxiYWNrKTsKIH0KIAotYm9vbCBTdWJmcmFtZUxvYWRl
cjo6cGx1Z2luSXNMb2FkYWJsZShIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBwbHVnaW5FbGVtZW50
LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKK2Jvb2wgU3ViZnJhbWVM
b2FkZXI6OnBsdWdpbklzTG9hZGFibGUoSFRNTFBsdWdJbkltYWdlRWxlbWVudCYgcGx1Z2luRWxl
bWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiB7CiAgICAgaWYg
KE1JTUVUeXBlUmVnaXN0cnk6OmlzSmF2YUFwcGxldE1JTUVUeXBlKG1pbWVUeXBlKSkgewogICAg
ICAgICBpZiAoIW1fZnJhbWUuc2V0dGluZ3MoKS5pc0phdmFFbmFibGVkKCkpCkBAIC0xMjYsMTAg
KzEyNiwxMCBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpwbHVnaW5Jc0xvYWRhYmxlKEhUCiAKICAg
ICAgICAgU3RyaW5nIGRlY2xhcmVkTWltZVR5cGUgPSBkb2N1bWVudCgpLT5pc1BsdWdpbkRvY3Vt
ZW50KCkgJiYgZG9jdW1lbnQoKS0+b3duZXJFbGVtZW50KCkgPwogICAgICAgICAgICAgZG9jdW1l
bnQoKS0+b3duZXJFbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjp0eXBlQXR0
cikgOgotICAgICAgICAgICAgcGx1Z2luRWxlbWVudC0+ZmFzdEdldEF0dHJpYnV0ZShIVE1MTmFt
ZXM6OnR5cGVBdHRyKTsKKyAgICAgICAgICAgIHBsdWdpbkVsZW1lbnQuZmFzdEdldEF0dHJpYnV0
ZShIVE1MTmFtZXM6OnR5cGVBdHRyKTsKICAgICAgICAgaWYgKCFkb2N1bWVudCgpLT5jb250ZW50
U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dPYmplY3RGcm9tU291cmNlKHVybCkKICAgICAgICAgICAg
IHx8ICFkb2N1bWVudCgpLT5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxsb3dQbHVnaW5UeXBl
KG1pbWVUeXBlLCBkZWNsYXJlZE1pbWVUeXBlLCB1cmwpKSB7Ci0gICAgICAgICAgICBSZW5kZXJF
bWJlZGRlZE9iamVjdCogcmVuZGVyZXIgPSBwbHVnaW5FbGVtZW50LT5yZW5kZXJFbWJlZGRlZE9i
amVjdCgpOworICAgICAgICAgICAgUmVuZGVyRW1iZWRkZWRPYmplY3QqIHJlbmRlcmVyID0gcGx1
Z2luRWxlbWVudC5yZW5kZXJFbWJlZGRlZE9iamVjdCgpOwogICAgICAgICAgICAgcmVuZGVyZXIt
PnNldFBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVn
aW5CbG9ja2VkQnlDb250ZW50U2VjdXJpdHlQb2xpY3kpOwogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICB9CkBAIC0xNDEsNyArMTQxLDcgQEAgYm9vbCBTdWJmcmFtZUxvYWRlcjo6
cGx1Z2luSXNMb2FkYWJsZShIVAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFN1YmZyYW1l
TG9hZGVyOjpyZXF1ZXN0UGx1Z2luKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIG93bmVyRWxlbWVu
dCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGJv
b2wgdXNlRmFsbGJhY2spCitib29sIFN1YmZyYW1lTG9hZGVyOjpyZXF1ZXN0UGx1Z2luKEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQmIG93bmVyRWxlbWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0
cmluZyYgbWltZVR5cGUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMsIGJvb2wgdXNlRmFsbGJhY2spCiB7CiAgICAgLy8g
QXBwbGljYXRpb24gcGx1Zy1pbnMgYXJlIHBsdWctaW5zIGltcGxlbWVudGVkIGJ5IHRoZSB1c2Vy
IGFnZW50LCBmb3IgZXhhbXBsZSBRdCBwbHVnLWlucywKICAgICAvLyBhcyBvcHBvc2VkIHRvIHRo
aXJkLXBhcnR5IGNvZGUgc3VjaCBhcyBGbGFzaC4gVGhlIHVzZXIgYWdlbnQgZGVjaWRlcyB3aGV0
aGVyIG9yIG5vdCB0aGV5IGFyZQpAQCAtMTUyLDcgKzE1Miw3IEBAIGJvb2wgU3ViZnJhbWVMb2Fk
ZXI6OnJlcXVlc3RQbHVnaW4oSFRNTFAKICAgICBpZiAoIXBsdWdpbklzTG9hZGFibGUob3duZXJF
bGVtZW50LCB1cmwsIG1pbWVUeXBlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgQVNT
RVJUKG93bmVyRWxlbWVudC0+aGFzVGFnTmFtZShvYmplY3RUYWcpIHx8IG93bmVyRWxlbWVudC0+
aGFzVGFnTmFtZShlbWJlZFRhZykpOworICAgIEFTU0VSVChvd25lckVsZW1lbnQuaGFzVGFnTmFt
ZShvYmplY3RUYWcpIHx8IG93bmVyRWxlbWVudC5oYXNUYWdOYW1lKGVtYmVkVGFnKSk7CiAgICAg
cmV0dXJuIGxvYWRQbHVnaW4ob3duZXJFbGVtZW50LCB1cmwsIG1pbWVUeXBlLCBwYXJhbU5hbWVz
LCBwYXJhbVZhbHVlcywgdXNlRmFsbGJhY2spOwogfQogCkBAIC0yMjEsNyArMjIxLDcgQEAgYm9v
bCBTdWJmcmFtZUxvYWRlcjo6cmVxdWVzdE9iamVjdChIVE1MUAogCiAgICAgYm9vbCB1c2VGYWxs
YmFjazsKICAgICBpZiAoc2hvdWxkVXNlUGx1Z2luKGNvbXBsZXRlZFVSTCwgbWltZVR5cGUsIG93
bmVyRWxlbWVudC5zaG91bGRQcmVmZXJQbHVnSW5zRm9ySW1hZ2VzKCksIGhhc0ZhbGxiYWNrQ29u
dGVudCwgdXNlRmFsbGJhY2spKSB7Ci0gICAgICAgIGJvb2wgc3VjY2VzcyA9IHJlcXVlc3RQbHVn
aW4oJm93bmVyRWxlbWVudCwgY29tcGxldGVkVVJMLCBtaW1lVHlwZSwgcGFyYW1OYW1lcywgcGFy
YW1WYWx1ZXMsIHVzZUZhbGxiYWNrKTsKKyAgICAgICAgYm9vbCBzdWNjZXNzID0gcmVxdWVzdFBs
dWdpbihvd25lckVsZW1lbnQsIGNvbXBsZXRlZFVSTCwgbWltZVR5cGUsIHBhcmFtTmFtZXMsIHBh
cmFtVmFsdWVzLCB1c2VGYWxsYmFjayk7CiAgICAgICAgIGxvZ1BsdWdpblJlcXVlc3QoZG9jdW1l
bnQoKS0+cGFnZSgpLCBtaW1lVHlwZSwgY29tcGxldGVkVVJMLCBzdWNjZXNzKTsKICAgICAgICAg
cmV0dXJuIHN1Y2Nlc3M7CiAgICAgfQpAQCAtMjI5LDE0ICsyMjksMTMgQEAgYm9vbCBTdWJmcmFt
ZUxvYWRlcjo6cmVxdWVzdE9iamVjdChIVE1MUAogICAgIC8vIElmIHRoZSBwbHVnLWluIGVsZW1l
bnQgYWxyZWFkeSBjb250YWlucyBhIHN1YmZyYW1lLCBsb2FkT3JSZWRpcmVjdFN1YmZyYW1lIHdp
bGwgcmUtdXNlIGl0LiBPdGhlcndpc2UsCiAgICAgLy8gaXQgd2lsbCBjcmVhdGUgYSBuZXcgZnJh
bWUgYW5kIHNldCBpdCBhcyB0aGUgUmVuZGVyV2lkZ2V0J3MgV2lkZ2V0LCBjYXVzaW5nIHdoYXQg
d2FzIHByZXZpb3VzbHkgCiAgICAgLy8gaW4gdGhlIHdpZGdldCB0byBiZSB0b3JuIGRvd24uCi0g
ICAgcmV0dXJuIGxvYWRPclJlZGlyZWN0U3ViZnJhbWUoJm93bmVyRWxlbWVudCwgY29tcGxldGVk
VVJMLCBmcmFtZU5hbWUsIHRydWUsIHRydWUpOworICAgIHJldHVybiBsb2FkT3JSZWRpcmVjdFN1
YmZyYW1lKG93bmVyRWxlbWVudCwgY29tcGxldGVkVVJMLCBmcmFtZU5hbWUsIHRydWUsIHRydWUp
OwogfQogCiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCi1QYXNzUmVmUHRyPFdp
ZGdldD4gU3ViZnJhbWVMb2FkZXI6OmxvYWRNZWRpYVBsYXllclByb3h5UGx1Z2luKE5vZGUqIG5v
ZGUsIGNvbnN0IFVSTCYgdXJsLAotICAgIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVz
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpCitQYXNzUmVmUHRyPFdpZGdldD4g
U3ViZnJhbWVMb2FkZXI6OmxvYWRNZWRpYVBsYXllclByb3h5UGx1Z2luKEhUTUxNZWRpYUVsZW1l
bnQmIG1lZGlhRWxlbWVudCwgY29uc3QgVVJMJiB1cmwsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBw
YXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpCiB7Ci0gICAgQVNT
RVJUKG5vZGUtPmhhc1RhZ05hbWUodmlkZW9UYWcpIHx8IGlzSFRNTEF1ZGlvRWxlbWVudChub2Rl
KSk7CisgICAgQVNTRVJUKG1lZGlhRWxlbWVudC5oYXNUYWdOYW1lKHZpZGVvVGFnKSB8fCBpc0hU
TUxBdWRpb0VsZW1lbnQobWVkaWFFbGVtZW50KSk7CiAKICAgICBVUkwgY29tcGxldGVkVVJMOwog
ICAgIGlmICghdXJsLmlzRW1wdHkoKSkKQEAgLTI0NCwyNiArMjQzLDI0IEBAIFBhc3NSZWZQdHI8
V2lkZ2V0PiBTdWJmcmFtZUxvYWRlcjo6bG9hZE0KIAogICAgIGlmICghbV9mcmFtZS5kb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpLT5jYW5EaXNwbGF5KGNvbXBsZXRlZFVSTCkpIHsKICAgICAg
ICAgRnJhbWVMb2FkZXI6OnJlcG9ydExvY2FsTG9hZEZhaWxlZChtX2ZyYW1lLCBjb21wbGV0ZWRV
Ukwuc3RyaW5nKCkpOwotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQogCiAgICAgaWYgKCFtX2ZyYW1lLmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBv
bGljeSgpLT5hbGxvd01lZGlhRnJvbVNvdXJjZShjb21wbGV0ZWRVUkwpKQotICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBIVE1MTWVkaWFFbGVtZW50KiBt
ZWRpYUVsZW1lbnQgPSB0b0hUTUxNZWRpYUVsZW1lbnQobm9kZSk7Ci0gICAgUmVuZGVyV2lkZ2V0
KiByZW5kZXJlciA9IHRvUmVuZGVyV2lkZ2V0KG5vZGUtPnJlbmRlcmVyKCkpOworICAgIFJlbmRl
cldpZGdldCogcmVuZGVyZXIgPSB0b1JlbmRlcldpZGdldChtZWRpYUVsZW1lbnQucmVuZGVyZXIo
KSk7CiAgICAgSW50U2l6ZSBzaXplOwogCiAgICAgaWYgKHJlbmRlcmVyKQogICAgICAgICBzaXpl
ID0gcm91bmRlZEludFNpemUoTGF5b3V0U2l6ZShyZW5kZXJlci0+Y29udGVudFdpZHRoKCksIHJl
bmRlcmVyLT5jb250ZW50SGVpZ2h0KCkpKTsKLSAgICBlbHNlIGlmIChtZWRpYUVsZW1lbnQtPmlz
VmlkZW8oKSkKKyAgICBlbHNlIGlmIChtZWRpYUVsZW1lbnQuaXNWaWRlbygpKQogICAgICAgICBz
aXplID0gUmVuZGVyVmlkZW86OmRlZmF1bHRTaXplKCk7CiAKICAgICBpZiAoIW1fZnJhbWUubG9h
ZGVyKCkubWl4ZWRDb250ZW50Q2hlY2tlcigpLmNhblJ1bkluc2VjdXJlQ29udGVudChtX2ZyYW1l
LmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIGNvbXBsZXRlZFVSTCkpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIFJlZlB0cjxXaWRnZXQ+IHdp
ZGdldCA9IG1fZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuY3JlYXRlTWVkaWFQbGF5ZXJQcm94eVBs
dWdpbihzaXplLCBtZWRpYUVsZW1lbnQsIGNvbXBsZXRlZFVSTCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMsICJhcHBsaWNh
dGlvbi94LW1lZGlhLWVsZW1lbnQtcHJveHktcGx1Z2luIik7CisgICAgUmVmUHRyPFdpZGdldD4g
d2lkZ2V0ID0gbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5jcmVhdGVNZWRpYVBsYXllclByb3h5
UGx1Z2luKHNpemUsICZtZWRpYUVsZW1lbnQsIGNvbXBsZXRlZFVSTCwgcGFyYW1OYW1lcywgcGFy
YW1WYWx1ZXMsICJhcHBsaWNhdGlvbi94LW1lZGlhLWVsZW1lbnQtcHJveHktcGx1Z2luIik7CiAK
ICAgICBpZiAod2lkZ2V0ICYmIHJlbmRlcmVyKSB7CiAgICAgICAgIHJlbmRlcmVyLT5zZXRXaWRn
ZXQod2lkZ2V0KTsKQEAgLTI3MSwxMSArMjY4LDExIEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBTdWJm
cmFtZUxvYWRlcjo6bG9hZE0KICAgICB9CiAgICAgbV9jb250YWluc1BsdWdpbnMgPSB0cnVlOwog
Ci0gICAgcmV0dXJuIHdpZGdldCA/IHdpZGdldC5yZWxlYXNlKCkgOiAwOworICAgIHJldHVybiB3
aWRnZXQgPyB3aWRnZXQucmVsZWFzZSgpIDogbnVsbHB0cjsKIH0KICNlbmRpZiAvLyBFTkFCTEUo
UExVR0lOX1BST1hZX0ZPUl9WSURFTykKIAotUGFzc1JlZlB0cjxXaWRnZXQ+IFN1YmZyYW1lTG9h
ZGVyOjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmIHNpemUsIEhUTUxBcHBs
ZXRFbGVtZW50KiBlbGVtZW50LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29u
c3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKQorUGFzc1JlZlB0cjxXaWRnZXQ+IFN1YmZy
YW1lTG9hZGVyOjpjcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KGNvbnN0IEludFNpemUmIHNpemUsIEhU
TUxBcHBsZXRFbGVtZW50JiBlbGVtZW50LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1l
cywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKQogewogICAgIFN0cmluZyBiYXNl
VVJMU3RyaW5nOwogICAgIFN0cmluZyBjb2RlQmFzZVVSTFN0cmluZzsKQEAgLTI4OSwxNSArMjg2
LDE1IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBTdWJmcmFtZUxvYWRlcjo6Y3JlYXQKIAogICAgIGlm
ICghY29kZUJhc2VVUkxTdHJpbmcuaXNFbXB0eSgpKSB7CiAgICAgICAgIFVSTCBjb2RlQmFzZVVS
TCA9IGNvbXBsZXRlVVJMKGNvZGVCYXNlVVJMU3RyaW5nKTsKLSAgICAgICAgaWYgKCFlbGVtZW50
LT5kb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCktPmNhbkRpc3BsYXkoY29kZUJhc2VVUkwpKSB7
CisgICAgICAgIGlmICghZWxlbWVudC5kb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCktPmNhbkRp
c3BsYXkoY29kZUJhc2VVUkwpKSB7CiAgICAgICAgICAgICBGcmFtZUxvYWRlcjo6cmVwb3J0TG9j
YWxMb2FkRmFpbGVkKCZtX2ZyYW1lLCBjb2RlQmFzZVVSTC5zdHJpbmcoKSk7Ci0gICAgICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICB9CiAKICAg
ICAgICAgY29uc3QgY2hhciBqYXZhQXBwbGV0TWltZVR5cGVbXSA9ICJhcHBsaWNhdGlvbi94LWph
dmEtYXBwbGV0IjsKLSAgICAgICAgaWYgKCFlbGVtZW50LT5kb2N1bWVudCgpLmNvbnRlbnRTZWN1
cml0eVBvbGljeSgpLT5hbGxvd09iamVjdEZyb21Tb3VyY2UoY29kZUJhc2VVUkwpCi0gICAgICAg
ICAgICB8fCAhZWxlbWVudC0+ZG9jdW1lbnQoKS5jb250ZW50U2VjdXJpdHlQb2xpY3koKS0+YWxs
b3dQbHVnaW5UeXBlKGphdmFBcHBsZXRNaW1lVHlwZSwgamF2YUFwcGxldE1pbWVUeXBlLCBjb2Rl
QmFzZVVSTCkpCi0gICAgICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgaWYgKCFlbGVtZW50LmRv
Y3VtZW50KCkuY29udGVudFNlY3VyaXR5UG9saWN5KCktPmFsbG93T2JqZWN0RnJvbVNvdXJjZShj
b2RlQmFzZVVSTCkKKyAgICAgICAgICAgIHx8ICFlbGVtZW50LmRvY3VtZW50KCkuY29udGVudFNl
Y3VyaXR5UG9saWN5KCktPmFsbG93UGx1Z2luVHlwZShqYXZhQXBwbGV0TWltZVR5cGUsIGphdmFB
cHBsZXRNaW1lVHlwZSwgY29kZUJhc2VVUkwpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQogCiAgICAgaWYgKGJhc2VVUkxTdHJpbmcuaXNFbXB0eSgpKQpAQCAtMzA2LDU5ICsz
MDMsNTkgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IFN1YmZyYW1lTG9hZGVyOjpjcmVhdAogCiAgICAg
UmVmUHRyPFdpZGdldD4gd2lkZ2V0OwogICAgIGlmIChhbGxvd1BsdWdpbnMoQWJvdXRUb0luc3Rh
bnRpYXRlUGx1Z2luKSkKLSAgICAgICAgd2lkZ2V0ID0gbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQo
KS5jcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KHNpemUsIGVsZW1lbnQsIGJhc2VVUkwsIHBhcmFtTmFt
ZXMsIHBhcmFtVmFsdWVzKTsKKyAgICAgICAgd2lkZ2V0ID0gbV9mcmFtZS5sb2FkZXIoKS5jbGll
bnQoKS5jcmVhdGVKYXZhQXBwbGV0V2lkZ2V0KHNpemUsICZlbGVtZW50LCBiYXNlVVJMLCBwYXJh
bU5hbWVzLCBwYXJhbVZhbHVlcyk7CiAKLSAgICBsb2dQbHVnaW5SZXF1ZXN0KGRvY3VtZW50KCkt
PnBhZ2UoKSwgZWxlbWVudC0+c2VydmljZVR5cGUoKSwgU3RyaW5nKCksIHdpZGdldCk7CisgICAg
bG9nUGx1Z2luUmVxdWVzdChkb2N1bWVudCgpLT5wYWdlKCksIGVsZW1lbnQuc2VydmljZVR5cGUo
KSwgU3RyaW5nKCksIHdpZGdldCk7CiAKICAgICBpZiAoIXdpZGdldCkgewotICAgICAgICBSZW5k
ZXJFbWJlZGRlZE9iamVjdCogcmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJFbWJlZGRlZE9iamVj
dCgpOworICAgICAgICBSZW5kZXJFbWJlZGRlZE9iamVjdCogcmVuZGVyZXIgPSBlbGVtZW50LnJl
bmRlckVtYmVkZGVkT2JqZWN0KCk7CiAKICAgICAgICAgaWYgKCFyZW5kZXJlci0+aXNQbHVnaW5V
bmF2YWlsYWJsZSgpKQogICAgICAgICAgICAgcmVuZGVyZXItPnNldFBsdWdpblVuYXZhaWxhYmls
aXR5UmVhc29uKFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5NaXNzaW5nKTsKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAogICAgIG1fY29udGFp
bnNQbHVnaW5zID0gdHJ1ZTsKICAgICByZXR1cm4gd2lkZ2V0OwogfQogCi1GcmFtZSogU3ViZnJh
bWVMb2FkZXI6OmxvYWRPclJlZGlyZWN0U3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50KiBv
d25lckVsZW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBBdG9taWNTdHJpbmcmIGZyYW1lTmFt
ZSwgYm9vbCBsb2NrSGlzdG9yeSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0KQorRnJhbWUqIFN1
YmZyYW1lTG9hZGVyOjpsb2FkT3JSZWRpcmVjdFN1YmZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVu
dCYgb3duZXJFbGVtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgQXRvbWljU3RyaW5nJiBmcmFt
ZU5hbWUsIGJvb2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCkKIHsKLSAg
ICBGcmFtZSogZnJhbWUgPSBvd25lckVsZW1lbnQtPmNvbnRlbnRGcmFtZSgpOworICAgIEZyYW1l
KiBmcmFtZSA9IG93bmVyRWxlbWVudC5jb250ZW50RnJhbWUoKTsKICAgICBpZiAoZnJhbWUpCiAg
ICAgICAgIGZyYW1lLT5uYXZpZ2F0aW9uU2NoZWR1bGVyKCkuc2NoZWR1bGVMb2NhdGlvbkNoYW5n
ZShtX2ZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIHVybC5zdHJpbmcoKSwgbV9m
cmFtZS5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCksIGxvY2tIaXN0b3J5LCBsb2NrQmFja0Zv
cndhcmRMaXN0KTsKICAgICBlbHNlCiAgICAgICAgIGZyYW1lID0gbG9hZFN1YmZyYW1lKG93bmVy
RWxlbWVudCwgdXJsLCBmcmFtZU5hbWUsIG1fZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJl
cigpKTsKIAotICAgIEFTU0VSVChvd25lckVsZW1lbnQtPmNvbnRlbnRGcmFtZSgpID09IGZyYW1l
IHx8ICFvd25lckVsZW1lbnQtPmNvbnRlbnRGcmFtZSgpKTsKLSAgICByZXR1cm4gb3duZXJFbGVt
ZW50LT5jb250ZW50RnJhbWUoKTsKKyAgICBBU1NFUlQob3duZXJFbGVtZW50LmNvbnRlbnRGcmFt
ZSgpID09IGZyYW1lIHx8ICFvd25lckVsZW1lbnQuY29udGVudEZyYW1lKCkpOworICAgIHJldHVy
biBvd25lckVsZW1lbnQuY29udGVudEZyYW1lKCk7CiB9CiAKLUZyYW1lKiBTdWJmcmFtZUxvYWRl
cjo6bG9hZFN1YmZyYW1lKEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50LCBjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKQor
RnJhbWUqIFN1YmZyYW1lTG9hZGVyOjpsb2FkU3ViZnJhbWUoSFRNTEZyYW1lT3duZXJFbGVtZW50
JiBvd25lckVsZW1lbnQsIGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IFN0cmluZyYgcmVmZXJyZXIpCiB7CiAgICAgUmVmPEZyYW1lPiBwcm90ZWN0KG1fZnJhbWUpOwog
CiAgICAgYm9vbCBhbGxvd3NTY3JvbGxpbmcgPSB0cnVlOwogICAgIGludCBtYXJnaW5XaWR0aCA9
IC0xOwogICAgIGludCBtYXJnaW5IZWlnaHQgPSAtMTsKLSAgICBpZiAob3duZXJFbGVtZW50LT5o
YXNUYWdOYW1lKGZyYW1lVGFnKSB8fCBvd25lckVsZW1lbnQtPmhhc1RhZ05hbWUoaWZyYW1lVGFn
KSkgewotICAgICAgICBIVE1MRnJhbWVFbGVtZW50QmFzZSogZnJhbWVFbGVtZW50QmFzZSA9IHRv
SFRNTEZyYW1lRWxlbWVudEJhc2Uob3duZXJFbGVtZW50KTsKLSAgICAgICAgYWxsb3dzU2Nyb2xs
aW5nID0gZnJhbWVFbGVtZW50QmFzZS0+c2Nyb2xsaW5nTW9kZSgpICE9IFNjcm9sbGJhckFsd2F5
c09mZjsKLSAgICAgICAgbWFyZ2luV2lkdGggPSBmcmFtZUVsZW1lbnRCYXNlLT5tYXJnaW5XaWR0
aCgpOwotICAgICAgICBtYXJnaW5IZWlnaHQgPSBmcmFtZUVsZW1lbnRCYXNlLT5tYXJnaW5IZWln
aHQoKTsKKyAgICBpZiAob3duZXJFbGVtZW50Lmhhc1RhZ05hbWUoZnJhbWVUYWcpIHx8IG93bmVy
RWxlbWVudC5oYXNUYWdOYW1lKGlmcmFtZVRhZykpIHsKKyAgICAgICAgSFRNTEZyYW1lRWxlbWVu
dEJhc2UmIGZyYW1lRWxlbWVudEJhc2UgPSB0b0hUTUxGcmFtZUVsZW1lbnRCYXNlKG93bmVyRWxl
bWVudCk7CisgICAgICAgIGFsbG93c1Njcm9sbGluZyA9IGZyYW1lRWxlbWVudEJhc2Uuc2Nyb2xs
aW5nTW9kZSgpICE9IFNjcm9sbGJhckFsd2F5c09mZjsKKyAgICAgICAgbWFyZ2luV2lkdGggPSBm
cmFtZUVsZW1lbnRCYXNlLm1hcmdpbldpZHRoKCk7CisgICAgICAgIG1hcmdpbkhlaWdodCA9IGZy
YW1lRWxlbWVudEJhc2UubWFyZ2luSGVpZ2h0KCk7CiAgICAgfQogCi0gICAgaWYgKCFvd25lckVs
ZW1lbnQtPmRvY3VtZW50KCkuc2VjdXJpdHlPcmlnaW4oKS0+Y2FuRGlzcGxheSh1cmwpKSB7Cisg
ICAgaWYgKCFvd25lckVsZW1lbnQuZG9jdW1lbnQoKS5zZWN1cml0eU9yaWdpbigpLT5jYW5EaXNw
bGF5KHVybCkpIHsKICAgICAgICAgRnJhbWVMb2FkZXI6OnJlcG9ydExvY2FsTG9hZEZhaWxlZCgm
bV9mcmFtZSwgdXJsLnN0cmluZygpKTsKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIH0KIAotICAgIFN0cmluZyByZWZlcnJlclRvVXNlID0gU2VjdXJpdHlQ
b2xpY3k6OmdlbmVyYXRlUmVmZXJyZXJIZWFkZXIob3duZXJFbGVtZW50LT5kb2N1bWVudCgpLnJl
ZmVycmVyUG9saWN5KCksIHVybCwgcmVmZXJyZXIpOwotICAgIFJlZlB0cjxGcmFtZT4gZnJhbWUg
PSBtX2ZyYW1lLmxvYWRlcigpLmNsaWVudCgpLmNyZWF0ZUZyYW1lKHVybCwgbmFtZSwgb3duZXJF
bGVtZW50LCByZWZlcnJlclRvVXNlLCBhbGxvd3NTY3JvbGxpbmcsIG1hcmdpbldpZHRoLCBtYXJn
aW5IZWlnaHQpOworICAgIFN0cmluZyByZWZlcnJlclRvVXNlID0gU2VjdXJpdHlQb2xpY3k6Omdl
bmVyYXRlUmVmZXJyZXJIZWFkZXIob3duZXJFbGVtZW50LmRvY3VtZW50KCkucmVmZXJyZXJQb2xp
Y3koKSwgdXJsLCByZWZlcnJlcik7CisgICAgUmVmUHRyPEZyYW1lPiBmcmFtZSA9IG1fZnJhbWUu
bG9hZGVyKCkuY2xpZW50KCkuY3JlYXRlRnJhbWUodXJsLCBuYW1lLCAmb3duZXJFbGVtZW50LCBy
ZWZlcnJlclRvVXNlLCBhbGxvd3NTY3JvbGxpbmcsIG1hcmdpbldpZHRoLCBtYXJnaW5IZWlnaHQp
OwogCiAgICAgaWYgKCFmcmFtZSkgIHsKICAgICAgICAgbV9mcmFtZS5sb2FkZXIoKS5jaGVja0Nh
bGxJbXBsaWNpdENsb3NlKCk7Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICB9CiAgICAgCiAgICAgLy8gQWxsIG5ldyBmcmFtZXMgd2lsbCBoYXZlIG1faXND
b21wbGV0ZSBzZXQgdG8gdHJ1ZSBhdCB0aGlzIHBvaW50IGR1ZSB0byBzeW5jaHJvbm91c2x5IGxv
YWRpbmcKQEAgLTM2OSw3ICszNjYsNyBAQCBGcmFtZSogU3ViZnJhbWVMb2FkZXI6OmxvYWRTdWJm
cmFtZShIVE1MCiAgICAgLy8gRklYTUU6IENhbiB3ZSByZW1vdmUgdGhpcyBlbnRpcmVseT8gbV9p
c0NvbXBsZXRlIG5vcm1hbGx5IGdldHMgc2V0IHRvIGZhbHNlIHdoZW4gYSBsb2FkIGlzIGNvbW1p
dHRlZC4KICAgICBmcmFtZS0+bG9hZGVyKCkuc3RhcnRlZCgpOwogICAgCi0gICAgUmVuZGVyT2Jq
ZWN0KiByZW5kZXJlciA9IG93bmVyRWxlbWVudC0+cmVuZGVyZXIoKTsKKyAgICBSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyID0gb3duZXJFbGVtZW50LnJlbmRlcmVyKCk7CiAgICAgRnJhbWVWaWV3KiB2
aWV3ID0gZnJhbWUtPnZpZXcoKTsKICAgICBpZiAocmVuZGVyZXIgJiYgcmVuZGVyZXItPmlzV2lk
Z2V0KCkgJiYgdmlldykKICAgICAgICAgdG9SZW5kZXJXaWRnZXQocmVuZGVyZXIpLT5zZXRXaWRn
ZXQodmlldyk7CkBAIC00MjMsMjEgKzQyMCwxOSBAQCBEb2N1bWVudCogU3ViZnJhbWVMb2FkZXI6
OmRvY3VtZW50KCkgY29uCiAgICAgcmV0dXJuIG1fZnJhbWUuZG9jdW1lbnQoKTsKIH0KIAotYm9v
bCBTdWJmcmFtZUxvYWRlcjo6bG9hZFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBwbHVn
aW5FbGVtZW50LCBjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwKLSAgICBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBh
cmFtVmFsdWVzLCBib29sIHVzZUZhbGxiYWNrKQorYm9vbCBTdWJmcmFtZUxvYWRlcjo6bG9hZFBs
dWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50JiBwbHVnaW5FbGVtZW50LCBjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFt
ZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcywgYm9vbCB1c2VGYWxsYmFjaykK
IHsKLSAgICBSZW5kZXJFbWJlZGRlZE9iamVjdCogcmVuZGVyZXIgPSBwbHVnaW5FbGVtZW50LT5y
ZW5kZXJFbWJlZGRlZE9iamVjdCgpOworICAgIFJlbmRlckVtYmVkZGVkT2JqZWN0KiByZW5kZXJl
ciA9IHBsdWdpbkVsZW1lbnQucmVuZGVyRW1iZWRkZWRPYmplY3QoKTsKIAogICAgIC8vIEZJWE1F
OiBUaGlzIGNvZGUgc2hvdWxkIG5vdCBkZXBlbmQgb24gcmVuZGVyZXIhCiAgICAgaWYgKCFyZW5k
ZXJlciB8fCB1c2VGYWxsYmFjaykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcGx1Z2lu
RWxlbWVudC0+c3ViZnJhbWVMb2FkZXJXaWxsQ3JlYXRlUGx1Z0luKHVybCk7CisgICAgcGx1Z2lu
RWxlbWVudC5zdWJmcmFtZUxvYWRlcldpbGxDcmVhdGVQbHVnSW4odXJsKTsKIAogICAgIEludFNp
emUgY29udGVudFNpemUgPSByb3VuZGVkSW50U2l6ZShMYXlvdXRTaXplKHJlbmRlcmVyLT5jb250
ZW50V2lkdGgoKSwgcmVuZGVyZXItPmNvbnRlbnRIZWlnaHQoKSkpOwogICAgIGJvb2wgbG9hZE1h
bnVhbGx5ID0gZG9jdW1lbnQoKS0+aXNQbHVnaW5Eb2N1bWVudCgpICYmICFtX2NvbnRhaW5zUGx1
Z2lucyAmJiB0b1BsdWdpbkRvY3VtZW50KGRvY3VtZW50KCkpLT5zaG91bGRMb2FkUGx1Z2luTWFu
dWFsbHkoKTsKLSAgICBSZWZQdHI8V2lkZ2V0PiB3aWRnZXQgPSBtX2ZyYW1lLmxvYWRlcigpLmNs
aWVudCgpLmNyZWF0ZVBsdWdpbihjb250ZW50U2l6ZSwKLSAgICAgICAgcGx1Z2luRWxlbWVudCwg
dXJsLCBwYXJhbU5hbWVzLCBwYXJhbVZhbHVlcywgbWltZVR5cGUsIGxvYWRNYW51YWxseSk7Cisg
ICAgUmVmUHRyPFdpZGdldD4gd2lkZ2V0ID0gbV9mcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5jcmVh
dGVQbHVnaW4oY29udGVudFNpemUsICZwbHVnaW5FbGVtZW50LCB1cmwsIHBhcmFtTmFtZXMsIHBh
cmFtVmFsdWVzLCBtaW1lVHlwZSwgbG9hZE1hbnVhbGx5KTsKIAogICAgIGlmICghd2lkZ2V0KSB7
CiAgICAgICAgIGlmICghcmVuZGVyZXItPmlzUGx1Z2luVW5hdmFpbGFibGUoKSkKQEAgLTQ0NSw3
ICs0NDAsNyBAQCBib29sIFN1YmZyYW1lTG9hZGVyOjpsb2FkUGx1Z2luKEhUTUxQbHVnCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBwbHVnaW5FbGVtZW50LT5zdWJmcmFtZUxv
YWRlckRpZENyZWF0ZVBsdWdJbih3aWRnZXQuZ2V0KCkpOworICAgIHBsdWdpbkVsZW1lbnQuc3Vi
ZnJhbWVMb2FkZXJEaWRDcmVhdGVQbHVnSW4od2lkZ2V0LmdldCgpKTsKICAgICByZW5kZXJlci0+
c2V0V2lkZ2V0KHdpZGdldCk7CiAgICAgbV9jb250YWluc1BsdWdpbnMgPSB0cnVlOwogIApJbmRl
eDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZyYW1lTG9hZGVyLmgJKHJldmlzaW9uIDE1ODk1OSkK
KysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC00NSwxMiArNDUsMTAgQEAgY2xhc3MgRnJhbWU7CiBjbGFzcyBGcmFtZUxvYWRlckNsaWVu
dDsKIGNsYXNzIEhUTUxBcHBsZXRFbGVtZW50OwogY2xhc3MgSFRNTEZyYW1lT3duZXJFbGVtZW50
OworY2xhc3MgSFRNTE1lZGlhRWxlbWVudDsKIGNsYXNzIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ7
CiBjbGFzcyBJbnRTaXplOwogY2xhc3MgVVJMOwotI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9S
X1ZJREVPKQotY2xhc3MgTm9kZTsKLSNlbmRpZgogY2xhc3MgV2lkZ2V0OwogCiAvLyBUaGlzIGlz
IGEgc2xpZ2h0IG1pc25vbWVyLiBJdCBoYW5kbGVzIHRoZSBoaWdoZXIgbGV2ZWwgbG9naWMgb2Yg
bG9hZGluZyBib3RoIHN1YmZyYW1lcyBhbmQgcGx1Z2lucy4KQEAgLTYxLDE3ICs1OSwxNSBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGNsZWFyKCk7CiAKLSAgICBib29sIHJlcXVlc3RGcmFtZShIVE1M
RnJhbWVPd25lckVsZW1lbnQqLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgQXRvbWljU3RyaW5n
JiBmcmFtZU5hbWUsIGJvb2wgbG9ja0hpc3RvcnkgPSB0cnVlLCBib29sIGxvY2tCYWNrRm9yd2Fy
ZExpc3QgPSB0cnVlKTsgICAgCisgICAgYm9vbCByZXF1ZXN0RnJhbWUoSFRNTEZyYW1lT3duZXJF
bGVtZW50JiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IEF0b21pY1N0cmluZyYgZnJhbWVOYW1l
LCBib29sIGxvY2tIaXN0b3J5ID0gdHJ1ZSwgYm9vbCBsb2NrQmFja0ZvcndhcmRMaXN0ID0gdHJ1
ZSk7CiAgICAgYm9vbCByZXF1ZXN0T2JqZWN0KEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmLCBjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgQXRvbWljU3RyaW5nJiBmcmFtZU5hbWUsCiAgICAgICAgIGNv
bnN0IFN0cmluZyYgc2VydmljZVR5cGUsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVz
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpOwogCiAjaWYgRU5BQkxFKFBMVUdJ
Tl9QUk9YWV9GT1JfVklERU8pCi0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHRha2UgRWxlbWVu
dCogaW5zdGVhZCBvZiBOb2RlKiwgb3IgYmV0dGVyIHlldCB0aGUKLSAgICAvLyBzcGVjaWZpYyB0
eXBlIG9mIEVsZW1lbnQgd2hpY2ggdGhpcyBjb2RlIGRlcGVuZHMgb24uCi0gICAgUGFzc1JlZlB0
cjxXaWRnZXQ+IGxvYWRNZWRpYVBsYXllclByb3h5UGx1Z2luKE5vZGUqLCBjb25zdCBVUkwmLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBh
cmFtVmFsdWVzKTsKKyAgICBQYXNzUmVmUHRyPFdpZGdldD4gbG9hZE1lZGlhUGxheWVyUHJveHlQ
bHVnaW4oSFRNTE1lZGlhRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1WYWx1ZXMpOwogI2VuZGlm
CiAKLSAgICBQYXNzUmVmUHRyPFdpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJ
bnRTaXplJiwgSFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1O
YW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzKTsKKyAgICBQYXNzUmVmUHRy
PFdpZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBJbnRTaXplJiwgSFRNTEFwcGxl
dEVsZW1lbnQmLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9y
PFN0cmluZz4mIHBhcmFtVmFsdWVzKTsKIAogICAgIGJvb2wgYWxsb3dQbHVnaW5zKFJlYXNvbkZv
ckNhbGxpbmdBbGxvd1BsdWdpbnMpOwogCkBAIC04MCwxNCArNzYsMTMgQEAgcHVibGljOgogICAg
IGJvb2wgcmVzb3VyY2VXaWxsVXNlUGx1Z2luKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJp
bmcmIG1pbWVUeXBlLCBib29sIHNob3VsZFByZWZlclBsdWdJbnNGb3JJbWFnZXMpOwogCiBwcml2
YXRlOgotICAgIGJvb2wgcmVxdWVzdFBsdWdpbihIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiwgY29u
c3QgVVJMJiwgY29uc3QgU3RyaW5nJiBzZXJ2aWNlVHlwZSwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IHBhcmFtTmFtZXMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBwYXJhbVZhbHVlcywgYm9vbCB1c2VG
YWxsYmFjayk7Ci0gICAgRnJhbWUqIGxvYWRPclJlZGlyZWN0U3ViZnJhbWUoSFRNTEZyYW1lT3du
ZXJFbGVtZW50KiwgY29uc3QgVVJMJiwgY29uc3QgQXRvbWljU3RyaW5nJiBmcmFtZU5hbWUsIGJv
b2wgbG9ja0hpc3RvcnksIGJvb2wgbG9ja0JhY2tGb3J3YXJkTGlzdCk7Ci0gICAgRnJhbWUqIGxv
YWRTdWJmcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQqLCBjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgcmVmZXJyZXIpOwotICAgIGJvb2wgbG9hZFBsdWdpbihI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50KiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwKLSAgICAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiBwYXJhbVZhbHVlcywgYm9vbCB1c2VGYWxsYmFjayk7CisgICAgYm9vbCByZXF1
ZXN0UGx1Z2luKEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJp
bmcmIHNlcnZpY2VUeXBlLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzLCBib29sIHVzZUZhbGxiYWNrKTsKKyAgICBGcmFt
ZSogbG9hZE9yUmVkaXJlY3RTdWJmcmFtZShIVE1MRnJhbWVPd25lckVsZW1lbnQmLCBjb25zdCBV
UkwmLCBjb25zdCBBdG9taWNTdHJpbmcmIGZyYW1lTmFtZSwgYm9vbCBsb2NrSGlzdG9yeSwgYm9v
bCBsb2NrQmFja0ZvcndhcmRMaXN0KTsKKyAgICBGcmFtZSogbG9hZFN1YmZyYW1lKEhUTUxGcmFt
ZU93bmVyRWxlbWVudCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiByZWZlcnJlcik7CisgICAgYm9vbCBsb2FkUGx1Z2luKEhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgcGFyYW1OYW1lcywgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhcmFtVmFsdWVzLCBib29s
IHVzZUZhbGxiYWNrKTsKIAogICAgIGJvb2wgc2hvdWxkVXNlUGx1Z2luKGNvbnN0IFVSTCYsIGNv
bnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgc2hvdWxkUHJlZmVyUGx1Z0luc0ZvckltYWdlcywg
Ym9vbCBoYXNGYWxsYmFjaywgYm9vbCYgdXNlRmFsbGJhY2spOwotICAgIGJvb2wgcGx1Z2luSXNM
b2FkYWJsZShIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSk7CisgICAgYm9vbCBwbHVnaW5Jc0xvYWRhYmxlKEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIAogICAgIERvY3Vt
ZW50KiBkb2N1bWVudCgpIGNvbnN0OwogCg==
</data>
<flag name="review"
          id="239418"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>