<?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>67003</bug_id>
          
          <creation_ts>2011-08-25 17:31:29 -0700</creation_ts>
          <short_desc>[chromium] Remove unsafe raw GraphicsContext3D pointer from ProgramBinding</short_desc>
          <delta_ts>2011-09-01 16:44:09 -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="Adrienne Walker">enne</reporter>
          <assigned_to name="Adrienne Walker">enne</assigned_to>
          <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>457286</commentid>
    <comment_count>0</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-08-25 17:31:29 -0700</bug_when>
    <thetext>[chromium] Remove unsafe raw GraphicsContext3D pointer from ProgramBinding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457290</commentid>
    <comment_count>1</comment_count>
      <attachid>105284</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-08-25 17:33:33 -0700</bug_when>
    <thetext>Created attachment 105284
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457294</commentid>
    <comment_count>2</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-08-25 17:36:16 -0700</bug_when>
    <thetext>This came out of a discussion with jamesr and I figured I&apos;d throw together a quick patch.

I would land this after 66981.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>457304</commentid>
    <comment_count>3</comment_count>
      <attachid>105284</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-08-25 17:56:18 -0700</bug_when>
    <thetext>Comment on attachment 105284
Patch

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

I think this&apos;ll hit ASSERT()s if we ever actually tried to clean stuff up in LayerRendererChromium, unless I&apos;m misreading how cleanup() works which is very possible.

&gt; Source/WebCore/ChangeLog:8
&gt; +        Covered by existing tests.

I think that&apos;s actually a bit optimistic, we don&apos;t have any test coverage that this stuff is cleaned up.

&gt; Source/WebCore/platform/graphics/chromium/ProgramBinding.cpp:67
&gt; +    GLC(context, context-&gt;deleteProgram(m_program));
&gt; +}

don&apos;t you need to clear m_program here to avoid hitting the assert in the dtor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460048</commentid>
    <comment_count>4</comment_count>
      <attachid>105855</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-08-31 16:27:47 -0700</bug_when>
    <thetext>Created attachment 105855
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460529</commentid>
    <comment_count>5</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-09-01 09:47:51 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=105855) [details]
&gt; Patch

You&apos;re totally right.  I fixed this patch so it actually works and removed the lie that it was being tested automatically.  I tested it manually, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460530</commentid>
    <comment_count>6</comment_count>
      <attachid>105855</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-09-01 09:49:00 -0700</bug_when>
    <thetext>Comment on attachment 105855
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460918</commentid>
    <comment_count>7</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-09-01 16:44:09 -0700</bug_when>
    <thetext>Committed r94363: &lt;http://trac.webkit.org/changeset/94363&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105284</attachid>
            <date>2011-08-25 17:33:33 -0700</date>
            <delta_ts>2011-08-31 16:27:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67003-20110825173332.patch</filename>
            <type>text/plain</type>
            <size>17725</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTM4MjYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyYTVkZTY4NWM2NTlkYWQ1
MDNhY2RiM2NkYjQzZWZmNDMxNWFhZjhjLi5jNDA2MDMxMGU3NTk0MzcxMmVhNmUwOWMzNTFmOTM3
ZDE3ZmI5Nzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMDgtMjUgIEFkcmll
bm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFJlbW92
ZSB1bnNhZmUgcmF3IEdyYXBoaWNzQ29udGV4dDNEIHBvaW50ZXIgZnJvbSBQcm9ncmFtQmluZGlu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcwMDMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVk
IGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgIFByb2dyYW1CaW5kaW5nIG5vdyB0YWtlcyBh
biBleHBsaWNpdCBjbGVhbnVwIGNhbGwgdG8gZGVzdHJveSBpdHMKKyAgICAgICAgcmVzb3VyY2Vz
LiBUaGlzIHdpbGwgYXNzZXJ0IGlmIGl0IGlzIG5vdCBjYWxsZWQgYW5kIHdpbGwgbGVhayBubwor
ICAgICAgICBsb25nZXIgcG90ZW50aWFsbHkgZGVyZWZlcmVuY2UgYSBkZWFkIHBvaW50ZXIuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21p
dW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjpib3JkZXJQ
cm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6aGVhZHNV
cERpc3BsYXlQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1
bTo6cmVuZGVyU3VyZmFjZVByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJl
ckNocm9taXVtOjpyZW5kZXJTdXJmYWNlTWFza1Byb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6
TGF5ZXJSZW5kZXJlckNocm9taXVtOjp0aWxlclByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6
TGF5ZXJSZW5kZXJlckNocm9taXVtOjp0aWxlclByb2dyYW1Td2l6emxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6dGlsZXJQcm9ncmFtQUEpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjp0aWxlclByb2dyYW1Td2l6emxlQUEpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjpjYW52YXNMYXllclByb2dy
YW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjpwbHVnaW5MYXll
clByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjp2aWRl
b0xheWVyUkdCQVByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9t
aXVtOjp2aWRlb0xheWVyWVVWUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRl
cmVyQ2hyb21pdW06OmNsZWFudXBTaGFyZWRPYmplY3RzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9Qcm9ncmFtQmluZGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9ncmFtQmluZGluZ0Jhc2U6OlByb2dyYW1CaW5kaW5nQmFzZSk6CisgICAgICAgIChXZWJDb3Jl
OjpQcm9ncmFtQmluZGluZ0Jhc2U6On5Qcm9ncmFtQmluZGluZ0Jhc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6UHJvZ3JhbUJpbmRpbmdCYXNlOjppbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlByb2dy
YW1CaW5kaW5nQmFzZTo6Y2xlYW51cCk6CisgICAgICAgIChXZWJDb3JlOjpQcm9ncmFtQmluZGlu
Z0Jhc2U6OmxvYWRTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3JhbUJpbmRpbmdCYXNl
OjpjcmVhdGVTaGFkZXJQcm9ncmFtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Qcm9ncmFtQmluZGluZy5oOgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3JhbUJpbmRpbmc6
OlByb2dyYW1CaW5kaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyYW1CaW5kaW5nOjppbml0
aWFsaXplKToKKwogMjAxMS0wOC0yNSAgSWdvciBPbGl2ZWlyYSAgPGlnb3Iub2xpdmVpcmFAb3Bl
bmJvc3NhLm9yZz4KIAogICAgICAgICBSb2xsb3V0IHI5Mzc5OTogQ2F1c2VkIGJhZCBjbGlwcGlu
ZyBvbiB0aGUgYm90dG9tIG9mIHRhbGwgZ2x5cGhzIGluc2lkZSBhIGJ1dHRvbiBsYWJlbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJS
ZW5kZXJlckNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5kZXggNDEwMDA3NGFjODYyZDg2NzJj
M2VlOTJlZjRhNmU2ZjRkYzliNTZmYy4uOTk3NzVkYTgwMzI0MDQzMTdmOTVkNGNiNjZlYzdlN2Nh
Yzc1ZmJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCkBAIC0xMTA5
LDcgKzExMDksNyBAQCBjb25zdCBMYXllckNocm9taXVtOjpCb3JkZXJQcm9ncmFtKiBMYXllclJl
bmRlcmVyQ2hyb21pdW06OmJvcmRlclByb2dyYW0oKQogICAgICAgICBtX2JvcmRlclByb2dyYW0g
PSBhZG9wdFB0cihuZXcgTGF5ZXJDaHJvbWl1bTo6Qm9yZGVyUHJvZ3JhbShtX2NvbnRleHQuZ2V0
KCkpKTsKICAgICBpZiAoIW1fYm9yZGVyUHJvZ3JhbS0+aW5pdGlhbGl6ZWQoKSkgewogICAgICAg
ICBUUkFDRV9FVkVOVCgiTGF5ZXJSZW5kZXJlckNocm9taXVtOjpib3JkZXJQcm9ncmFtOjppbml0
aWFsaXplIiwgdGhpcywgMCk7Ci0gICAgICAgIG1fYm9yZGVyUHJvZ3JhbS0+aW5pdGlhbGl6ZSgp
OworICAgICAgICBtX2JvcmRlclByb2dyYW0tPmluaXRpYWxpemUobV9jb250ZXh0LmdldCgpKTsK
ICAgICB9CiAgICAgcmV0dXJuIG1fYm9yZGVyUHJvZ3JhbS5nZXQoKTsKIH0KQEAgLTExMjAsNyAr
MTEyMCw3IEBAIGNvbnN0IENDSGVhZHNVcERpc3BsYXk6OlByb2dyYW0qIExheWVyUmVuZGVyZXJD
aHJvbWl1bTo6aGVhZHNVcERpc3BsYXlQcm9ncmFtKCkKICAgICAgICAgbV9oZWFkc1VwRGlzcGxh
eVByb2dyYW0gPSBhZG9wdFB0cihuZXcgQ0NIZWFkc1VwRGlzcGxheTo6UHJvZ3JhbShtX2NvbnRl
eHQuZ2V0KCkpKTsKICAgICBpZiAoIW1faGVhZHNVcERpc3BsYXlQcm9ncmFtLT5pbml0aWFsaXpl
ZCgpKSB7CiAgICAgICAgIFRSQUNFX0VWRU5UKCJMYXllclJlbmRlcmVyQ2hyb21pdW06OmJvcmRl
clByb2dyYW06OmluaXRpYWxpemUiLCB0aGlzLCAwKTsKLSAgICAgICAgbV9oZWFkc1VwRGlzcGxh
eVByb2dyYW0tPmluaXRpYWxpemUoKTsKKyAgICAgICAgbV9oZWFkc1VwRGlzcGxheVByb2dyYW0t
PmluaXRpYWxpemUobV9jb250ZXh0LmdldCgpKTsKICAgICB9CiAgICAgcmV0dXJuIG1faGVhZHNV
cERpc3BsYXlQcm9ncmFtLmdldCgpOwogfQpAQCAtMTEzMCw3ICsxMTMwLDcgQEAgY29uc3QgQ0NS
ZW5kZXJTdXJmYWNlOjpQcm9ncmFtKiBMYXllclJlbmRlcmVyQ2hyb21pdW06OnJlbmRlclN1cmZh
Y2VQcm9ncmFtKCkKICAgICBBU1NFUlQobV9yZW5kZXJTdXJmYWNlUHJvZ3JhbSk7CiAgICAgaWYg
KCFtX3JlbmRlclN1cmZhY2VQcm9ncmFtLT5pbml0aWFsaXplZCgpKSB7CiAgICAgICAgIFRSQUNF
X0VWRU5UKCJMYXllclJlbmRlcmVyQ2hyb21pdW06OmJvcmRlclByb2dyYW06OmluaXRpYWxpemUi
LCB0aGlzLCAwKTsKLSAgICAgICAgbV9yZW5kZXJTdXJmYWNlUHJvZ3JhbS0+aW5pdGlhbGl6ZSgp
OworICAgICAgICBtX3JlbmRlclN1cmZhY2VQcm9ncmFtLT5pbml0aWFsaXplKG1fY29udGV4dC5n
ZXQoKSk7CiAgICAgfQogICAgIHJldHVybiBtX3JlbmRlclN1cmZhY2VQcm9ncmFtLmdldCgpOwog
fQpAQCAtMTE0MSw3ICsxMTQxLDcgQEAgY29uc3QgQ0NSZW5kZXJTdXJmYWNlOjpNYXNrUHJvZ3Jh
bSogTGF5ZXJSZW5kZXJlckNocm9taXVtOjpyZW5kZXJTdXJmYWNlTWFza1Byb2cKICAgICAgICAg
bV9yZW5kZXJTdXJmYWNlTWFza1Byb2dyYW0gPSBhZG9wdFB0cihuZXcgQ0NSZW5kZXJTdXJmYWNl
OjpNYXNrUHJvZ3JhbShtX2NvbnRleHQuZ2V0KCkpKTsKICAgICBpZiAoIW1fcmVuZGVyU3VyZmFj
ZU1hc2tQcm9ncmFtLT5pbml0aWFsaXplZCgpKSB7CiAgICAgICAgIFRSQUNFX0VWRU5UKCJMYXll
clJlbmRlcmVyQ2hyb21pdW06OmJvcmRlclByb2dyYW06OmluaXRpYWxpemUiLCB0aGlzLCAwKTsK
LSAgICAgICAgbV9yZW5kZXJTdXJmYWNlTWFza1Byb2dyYW0tPmluaXRpYWxpemUoKTsKKyAgICAg
ICAgbV9yZW5kZXJTdXJmYWNlTWFza1Byb2dyYW0tPmluaXRpYWxpemUobV9jb250ZXh0LmdldCgp
KTsKICAgICB9CiAgICAgcmV0dXJuIG1fcmVuZGVyU3VyZmFjZU1hc2tQcm9ncmFtLmdldCgpOwog
fQpAQCAtMTE1MSw3ICsxMTUxLDcgQEAgY29uc3QgQ0NUaWxlZExheWVySW1wbDo6UHJvZ3JhbSog
TGF5ZXJSZW5kZXJlckNocm9taXVtOjp0aWxlclByb2dyYW0oKQogICAgIEFTU0VSVChtX3RpbGVy
UHJvZ3JhbSk7CiAgICAgaWYgKCFtX3RpbGVyUHJvZ3JhbS0+aW5pdGlhbGl6ZWQoKSkgewogICAg
ICAgICBUUkFDRV9FVkVOVCgiTGF5ZXJSZW5kZXJlckNocm9taXVtOjp0aWxlclByb2dyYW06Omlu
aXRpYWxpemUiLCB0aGlzLCAwKTsKLSAgICAgICAgbV90aWxlclByb2dyYW0tPmluaXRpYWxpemUo
KTsKKyAgICAgICAgbV90aWxlclByb2dyYW0tPmluaXRpYWxpemUobV9jb250ZXh0LmdldCgpKTsK
ICAgICB9CiAgICAgcmV0dXJuIG1fdGlsZXJQcm9ncmFtLmdldCgpOwogfQpAQCAtMTE2Miw3ICsx
MTYyLDcgQEAgY29uc3QgQ0NUaWxlZExheWVySW1wbDo6UHJvZ3JhbVN3aXp6bGUqIExheWVyUmVu
ZGVyZXJDaHJvbWl1bTo6dGlsZXJQcm9ncmFtU3dpenoKICAgICAgICAgbV90aWxlclByb2dyYW1T
d2l6emxlID0gYWRvcHRQdHIobmV3IENDVGlsZWRMYXllckltcGw6OlByb2dyYW1Td2l6emxlKG1f
Y29udGV4dC5nZXQoKSkpOwogICAgIGlmICghbV90aWxlclByb2dyYW1Td2l6emxlLT5pbml0aWFs
aXplZCgpKSB7CiAgICAgICAgIFRSQUNFX0VWRU5UKCJMYXllclJlbmRlcmVyQ2hyb21pdW06OnRp
bGVyUHJvZ3JhbVN3aXp6bGU6OmluaXRpYWxpemUiLCB0aGlzLCAwKTsKLSAgICAgICAgbV90aWxl
clByb2dyYW1Td2l6emxlLT5pbml0aWFsaXplKCk7CisgICAgICAgIG1fdGlsZXJQcm9ncmFtU3dp
enpsZS0+aW5pdGlhbGl6ZShtX2NvbnRleHQuZ2V0KCkpOwogICAgIH0KICAgICByZXR1cm4gbV90
aWxlclByb2dyYW1Td2l6emxlLmdldCgpOwogfQpAQCAtMTE3Myw3ICsxMTczLDcgQEAgY29uc3Qg
Q0NUaWxlZExheWVySW1wbDo6UHJvZ3JhbUFBKiBMYXllclJlbmRlcmVyQ2hyb21pdW06OnRpbGVy
UHJvZ3JhbUFBKCkKICAgICAgICAgbV90aWxlclByb2dyYW1BQSA9IGFkb3B0UHRyKG5ldyBDQ1Rp
bGVkTGF5ZXJJbXBsOjpQcm9ncmFtQUEobV9jb250ZXh0LmdldCgpKSk7CiAgICAgaWYgKCFtX3Rp
bGVyUHJvZ3JhbUFBLT5pbml0aWFsaXplZCgpKSB7CiAgICAgICAgIFRSQUNFX0VWRU5UKCJMYXll
clJlbmRlcmVyQ2hyb21pdW06OnRpbGVyUHJvZ3JhbUFBOjppbml0aWFsaXplIiwgdGhpcywgMCk7
Ci0gICAgICAgIG1fdGlsZXJQcm9ncmFtQUEtPmluaXRpYWxpemUoKTsKKyAgICAgICAgbV90aWxl
clByb2dyYW1BQS0+aW5pdGlhbGl6ZShtX2NvbnRleHQuZ2V0KCkpOwogICAgIH0KICAgICByZXR1
cm4gbV90aWxlclByb2dyYW1BQS5nZXQoKTsKIH0KQEAgLTExODQsNyArMTE4NCw3IEBAIGNvbnN0
IENDVGlsZWRMYXllckltcGw6OlByb2dyYW1Td2l6emxlQUEqIExheWVyUmVuZGVyZXJDaHJvbWl1
bTo6dGlsZXJQcm9ncmFtU3dpCiAgICAgICAgIG1fdGlsZXJQcm9ncmFtU3dpenpsZUFBID0gYWRv
cHRQdHIobmV3IENDVGlsZWRMYXllckltcGw6OlByb2dyYW1Td2l6emxlQUEobV9jb250ZXh0Lmdl
dCgpKSk7CiAgICAgaWYgKCFtX3RpbGVyUHJvZ3JhbVN3aXp6bGVBQS0+aW5pdGlhbGl6ZWQoKSkg
ewogICAgICAgICBUUkFDRV9FVkVOVCgiTGF5ZXJSZW5kZXJlckNocm9taXVtOjp0aWxlclByb2dy
YW1Td2l6emxlQUE6OmluaXRpYWxpemUiLCB0aGlzLCAwKTsKLSAgICAgICAgbV90aWxlclByb2dy
YW1Td2l6emxlQUEtPmluaXRpYWxpemUoKTsKKyAgICAgICAgbV90aWxlclByb2dyYW1Td2l6emxl
QUEtPmluaXRpYWxpemUobV9jb250ZXh0LmdldCgpKTsKICAgICB9CiAgICAgcmV0dXJuIG1fdGls
ZXJQcm9ncmFtU3dpenpsZUFBLmdldCgpOwogfQpAQCAtMTE5NSw3ICsxMTk1LDcgQEAgY29uc3Qg
Q0NDYW52YXNMYXllckltcGw6OlByb2dyYW0qIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6Y2FudmFz
TGF5ZXJQcm9ncmFtKCkKICAgICAgICAgbV9jYW52YXNMYXllclByb2dyYW0gPSBhZG9wdFB0cihu
ZXcgQ0NDYW52YXNMYXllckltcGw6OlByb2dyYW0obV9jb250ZXh0LmdldCgpKSk7CiAgICAgaWYg
KCFtX2NhbnZhc0xheWVyUHJvZ3JhbS0+aW5pdGlhbGl6ZWQoKSkgewogICAgICAgICBUUkFDRV9F
VkVOVCgiTGF5ZXJSZW5kZXJlckNocm9taXVtOjpib3JkZXJQcm9ncmFtOjppbml0aWFsaXplIiwg
dGhpcywgMCk7Ci0gICAgICAgIG1fY2FudmFzTGF5ZXJQcm9ncmFtLT5pbml0aWFsaXplKCk7Cisg
ICAgICAgIG1fY2FudmFzTGF5ZXJQcm9ncmFtLT5pbml0aWFsaXplKG1fY29udGV4dC5nZXQoKSk7
CiAgICAgfQogICAgIHJldHVybiBtX2NhbnZhc0xheWVyUHJvZ3JhbS5nZXQoKTsKIH0KQEAgLTEy
MDYsNyArMTIwNiw3IEBAIGNvbnN0IENDUGx1Z2luTGF5ZXJJbXBsOjpQcm9ncmFtKiBMYXllclJl
bmRlcmVyQ2hyb21pdW06OnBsdWdpbkxheWVyUHJvZ3JhbSgpCiAgICAgICAgIG1fcGx1Z2luTGF5
ZXJQcm9ncmFtID0gYWRvcHRQdHIobmV3IENDUGx1Z2luTGF5ZXJJbXBsOjpQcm9ncmFtKG1fY29u
dGV4dC5nZXQoKSkpOwogICAgIGlmICghbV9wbHVnaW5MYXllclByb2dyYW0tPmluaXRpYWxpemVk
KCkpIHsKICAgICAgICAgVFJBQ0VfRVZFTlQoIkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6Ym9yZGVy
UHJvZ3JhbTo6aW5pdGlhbGl6ZSIsIHRoaXMsIDApOwotICAgICAgICBtX3BsdWdpbkxheWVyUHJv
Z3JhbS0+aW5pdGlhbGl6ZSgpOworICAgICAgICBtX3BsdWdpbkxheWVyUHJvZ3JhbS0+aW5pdGlh
bGl6ZShtX2NvbnRleHQuZ2V0KCkpOwogICAgIH0KICAgICByZXR1cm4gbV9wbHVnaW5MYXllclBy
b2dyYW0uZ2V0KCk7CiB9CkBAIC0xMjE3LDcgKzEyMTcsNyBAQCBjb25zdCBDQ1ZpZGVvTGF5ZXJJ
bXBsOjpSR0JBUHJvZ3JhbSogTGF5ZXJSZW5kZXJlckNocm9taXVtOjp2aWRlb0xheWVyUkdCQVBy
b2dyYQogICAgICAgICBtX3ZpZGVvTGF5ZXJSR0JBUHJvZ3JhbSA9IGFkb3B0UHRyKG5ldyBDQ1Zp
ZGVvTGF5ZXJJbXBsOjpSR0JBUHJvZ3JhbShtX2NvbnRleHQuZ2V0KCkpKTsKICAgICBpZiAoIW1f
dmlkZW9MYXllclJHQkFQcm9ncmFtLT5pbml0aWFsaXplZCgpKSB7CiAgICAgICAgIFRSQUNFX0VW
RU5UKCJMYXllclJlbmRlcmVyQ2hyb21pdW06OmJvcmRlclByb2dyYW06OmluaXRpYWxpemUiLCB0
aGlzLCAwKTsKLSAgICAgICAgbV92aWRlb0xheWVyUkdCQVByb2dyYW0tPmluaXRpYWxpemUoKTsK
KyAgICAgICAgbV92aWRlb0xheWVyUkdCQVByb2dyYW0tPmluaXRpYWxpemUobV9jb250ZXh0Lmdl
dCgpKTsKICAgICB9CiAgICAgcmV0dXJuIG1fdmlkZW9MYXllclJHQkFQcm9ncmFtLmdldCgpOwog
fQpAQCAtMTIyOCw3ICsxMjI4LDcgQEAgY29uc3QgQ0NWaWRlb0xheWVySW1wbDo6WVVWUHJvZ3Jh
bSogTGF5ZXJSZW5kZXJlckNocm9taXVtOjp2aWRlb0xheWVyWVVWUHJvZ3JhbSgKICAgICAgICAg
bV92aWRlb0xheWVyWVVWUHJvZ3JhbSA9IGFkb3B0UHRyKG5ldyBDQ1ZpZGVvTGF5ZXJJbXBsOjpZ
VVZQcm9ncmFtKG1fY29udGV4dC5nZXQoKSkpOwogICAgIGlmICghbV92aWRlb0xheWVyWVVWUHJv
Z3JhbS0+aW5pdGlhbGl6ZWQoKSkgewogICAgICAgICBUUkFDRV9FVkVOVCgiTGF5ZXJSZW5kZXJl
ckNocm9taXVtOjpib3JkZXJQcm9ncmFtOjppbml0aWFsaXplIiwgdGhpcywgMCk7Ci0gICAgICAg
IG1fdmlkZW9MYXllcllVVlByb2dyYW0tPmluaXRpYWxpemUoKTsKKyAgICAgICAgbV92aWRlb0xh
eWVyWVVWUHJvZ3JhbS0+aW5pdGlhbGl6ZShtX2NvbnRleHQuZ2V0KCkpOwogICAgIH0KICAgICBy
ZXR1cm4gbV92aWRlb0xheWVyWVVWUHJvZ3JhbS5nZXQoKTsKIH0KQEAgLTEyMzksMTYgKzEyMzks
MzMgQEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmNsZWFudXBTaGFyZWRPYmplY3RzKCkK
ICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKIAogICAgIG1fc2hhcmVkR2VvbWV0cnkuY2xlYXIo
KTsKKworICAgIG1fYm9yZGVyUHJvZ3JhbS0+Y2xlYW51cChtX2NvbnRleHQuZ2V0KCkpOworICAg
IG1faGVhZHNVcERpc3BsYXlQcm9ncmFtLT5jbGVhbnVwKG1fY29udGV4dC5nZXQoKSk7CisgICAg
bV90aWxlclByb2dyYW0tPmNsZWFudXAobV9jb250ZXh0LmdldCgpKTsKKyAgICBtX3RpbGVyUHJv
Z3JhbVN3aXp6bGUtPmNsZWFudXAobV9jb250ZXh0LmdldCgpKTsKKyAgICBtX3RpbGVyUHJvZ3Jh
bUFBLT5jbGVhbnVwKG1fY29udGV4dC5nZXQoKSk7CisgICAgbV90aWxlclByb2dyYW1Td2l6emxl
QUEtPmNsZWFudXAobV9jb250ZXh0LmdldCgpKTsKKyAgICBtX2NhbnZhc0xheWVyUHJvZ3JhbS0+
Y2xlYW51cChtX2NvbnRleHQuZ2V0KCkpOworICAgIG1fcGx1Z2luTGF5ZXJQcm9ncmFtLT5jbGVh
bnVwKG1fY29udGV4dC5nZXQoKSk7CisgICAgbV9yZW5kZXJTdXJmYWNlTWFza1Byb2dyYW0tPmNs
ZWFudXAobV9jb250ZXh0LmdldCgpKTsKKyAgICBtX3JlbmRlclN1cmZhY2VQcm9ncmFtLT5jbGVh
bnVwKG1fY29udGV4dC5nZXQoKSk7CisgICAgbV92aWRlb0xheWVyUkdCQVByb2dyYW0tPmNsZWFu
dXAobV9jb250ZXh0LmdldCgpKTsKKyAgICBtX3ZpZGVvTGF5ZXJZVVZQcm9ncmFtLT5jbGVhbnVw
KG1fY29udGV4dC5nZXQoKSk7CisKICAgICBtX2JvcmRlclByb2dyYW0uY2xlYXIoKTsKLSAgICBt
X2NhbnZhc0xheWVyUHJvZ3JhbS5jbGVhcigpOwogICAgIG1faGVhZHNVcERpc3BsYXlQcm9ncmFt
LmNsZWFyKCk7Ci0gICAgbV92aWRlb0xheWVyUkdCQVByb2dyYW0uY2xlYXIoKTsKLSAgICBtX3Zp
ZGVvTGF5ZXJZVVZQcm9ncmFtLmNsZWFyKCk7Ci0gICAgbV9wbHVnaW5MYXllclByb2dyYW0uY2xl
YXIoKTsKLSAgICBtX3JlbmRlclN1cmZhY2VQcm9ncmFtLmNsZWFyKCk7Ci0gICAgbV9yZW5kZXJT
dXJmYWNlTWFza1Byb2dyYW0uY2xlYXIoKTsKICAgICBtX3RpbGVyUHJvZ3JhbS5jbGVhcigpOwog
ICAgIG1fdGlsZXJQcm9ncmFtU3dpenpsZS5jbGVhcigpOworICAgIG1fdGlsZXJQcm9ncmFtQUEu
Y2xlYXIoKTsKKyAgICBtX3RpbGVyUHJvZ3JhbVN3aXp6bGVBQS5jbGVhcigpOworICAgIG1fY2Fu
dmFzTGF5ZXJQcm9ncmFtLmNsZWFyKCk7CisgICAgbV9wbHVnaW5MYXllclByb2dyYW0uY2xlYXIo
KTsKKyAgICBtX3JlbmRlclN1cmZhY2VNYXNrUHJvZ3JhbS5jbGVhcigpOworICAgIG1fcmVuZGVy
U3VyZmFjZVByb2dyYW0uY2xlYXIoKTsKKyAgICBtX3ZpZGVvTGF5ZXJSR0JBUHJvZ3JhbS5jbGVh
cigpOworICAgIG1fdmlkZW9MYXllcllVVlByb2dyYW0uY2xlYXIoKTsKKwogICAgIGlmIChtX29m
ZnNjcmVlbkZyYW1lYnVmZmVySWQpCiAgICAgICAgIEdMQyhtX2NvbnRleHQuZ2V0KCksIG1fY29u
dGV4dC0+ZGVsZXRlRnJhbWVidWZmZXIobV9vZmZzY3JlZW5GcmFtZWJ1ZmZlcklkKSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Byb2dy
YW1CaW5kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1Byb2dyYW1CaW5kaW5nLmNwcAppbmRleCA3NDVjYmEzZGNiZGI0NDNlNTEzYWQ2MWFjN2Q2MWQ0
YmE4MjY5OTEzLi5hNjFlMDY2NzFkZDc5MjdkNDQzNDFjMTdlMTAxNTIxYmZhN2ExZjYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Qcm9ncmFt
QmluZGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vUHJvZ3JhbUJpbmRpbmcuY3BwCkBAIC0zNyw4NiArMzcsOTYgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1Qcm9ncmFtQmluZGluZ0Jhc2U6OlByb2dyYW1CaW5kaW5nQmFzZShHcmFwaGlj
c0NvbnRleHQzRCogY29udGV4dCkKLSAgICA6IG1fY29udGV4dChjb250ZXh0KQotICAgICwgbV9w
cm9ncmFtKDApCitQcm9ncmFtQmluZGluZ0Jhc2U6OlByb2dyYW1CaW5kaW5nQmFzZSgpCisgICAg
OiBtX3Byb2dyYW0oMCkKICAgICAsIG1faW5pdGlhbGl6ZWQoZmFsc2UpCiB7CiB9CiAKIFByb2dy
YW1CaW5kaW5nQmFzZTo6flByb2dyYW1CaW5kaW5nQmFzZSgpCiB7Ci0gICAgaWYgKG1fcHJvZ3Jh
bSkKLSAgICAgICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5kZWxldGVQcm9ncmFtKG1fcHJv
Z3JhbSkpOworICAgIC8vIElmIHlvdSBoaXQgdGhlc2UgYXNzZXJ0cywgeW91IGluaXRpYWxpemVk
IGJ1dCBmb3Jnb3QgdG8gY2FsbCBjbGVhbnVwKCkuCisgICAgQVNTRVJUKCFtX3Byb2dyYW0pOwor
ICAgIEFTU0VSVCghbV9pbml0aWFsaXplZCk7CiB9CiAKLXZvaWQgUHJvZ3JhbUJpbmRpbmdCYXNl
Ojppbml0KGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyLCBjb25zdCBTdHJpbmcmIGZyYWdtZW50
U2hhZGVyKQordm9pZCBQcm9ncmFtQmluZGluZ0Jhc2U6OmluaXQoR3JhcGhpY3NDb250ZXh0M0Qq
IGNvbnRleHQsIGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyLCBjb25zdCBTdHJpbmcmIGZyYWdt
ZW50U2hhZGVyKQogewotICAgIG1fcHJvZ3JhbSA9IGNyZWF0ZVNoYWRlclByb2dyYW0odmVydGV4
U2hhZGVyLCBmcmFnbWVudFNoYWRlcik7CisgICAgbV9wcm9ncmFtID0gY3JlYXRlU2hhZGVyUHJv
Z3JhbShjb250ZXh0LCB2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50U2hhZGVyKTsKICAgICBBU1NFUlQo
bV9wcm9ncmFtKTsKIH0KIAotdW5zaWduZWQgUHJvZ3JhbUJpbmRpbmdCYXNlOjpsb2FkU2hhZGVy
KHVuc2lnbmVkIHR5cGUsIGNvbnN0IFN0cmluZyYgc2hhZGVyU291cmNlKQordm9pZCBQcm9ncmFt
QmluZGluZ0Jhc2U6OmNsZWFudXAoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiB7Ci0gICAg
dW5zaWduZWQgc2hhZGVyID0gbV9jb250ZXh0LT5jcmVhdGVTaGFkZXIodHlwZSk7CisgICAgbV9p
bml0aWFsaXplZCA9IGZhbHNlOworICAgIGlmICghbV9wcm9ncmFtKQorICAgICAgICByZXR1cm47
CisKKyAgICBBU1NFUlQoY29udGV4dCk7CisgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPmRlbGV0
ZVByb2dyYW0obV9wcm9ncmFtKSk7Cit9CisKK3Vuc2lnbmVkIFByb2dyYW1CaW5kaW5nQmFzZTo6
bG9hZFNoYWRlcihHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCwgdW5zaWduZWQgdHlwZSwgY29u
c3QgU3RyaW5nJiBzaGFkZXJTb3VyY2UpCit7CisgICAgdW5zaWduZWQgc2hhZGVyID0gY29udGV4
dC0+Y3JlYXRlU2hhZGVyKHR5cGUpOwogICAgIGlmICghc2hhZGVyKQogICAgICAgICByZXR1cm4g
MDsKICAgICBTdHJpbmcgc291cmNlU3RyaW5nKHNoYWRlclNvdXJjZSk7Ci0gICAgR0xDKG1fY29u
dGV4dCwgbV9jb250ZXh0LT5zaGFkZXJTb3VyY2Uoc2hhZGVyLCBzb3VyY2VTdHJpbmcpKTsKLSAg
ICBHTEMobV9jb250ZXh0LCBtX2NvbnRleHQtPmNvbXBpbGVTaGFkZXIoc2hhZGVyKSk7CisgICAg
R0xDKGNvbnRleHQsIGNvbnRleHQtPnNoYWRlclNvdXJjZShzaGFkZXIsIHNvdXJjZVN0cmluZykp
OworICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT5jb21waWxlU2hhZGVyKHNoYWRlcikpOwogI2lm
bmRlZiBOREVCVUcKICAgICBpbnQgY29tcGlsZWQgPSAwOwotICAgIEdMQyhtX2NvbnRleHQsIG1f
Y29udGV4dC0+Z2V0U2hhZGVyaXYoc2hhZGVyLCBHcmFwaGljc0NvbnRleHQzRDo6Q09NUElMRV9T
VEFUVVMsICZjb21waWxlZCkpOworICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT5nZXRTaGFkZXJp
dihzaGFkZXIsIEdyYXBoaWNzQ29udGV4dDNEOjpDT01QSUxFX1NUQVRVUywgJmNvbXBpbGVkKSk7
CiAgICAgaWYgKCFjb21waWxlZCkgewotICAgICAgICBHTEMobV9jb250ZXh0LCBtX2NvbnRleHQt
PmRlbGV0ZVNoYWRlcihzaGFkZXIpKTsKKyAgICAgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPmRl
bGV0ZVNoYWRlcihzaGFkZXIpKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogI2VuZGlmCiAg
ICAgcmV0dXJuIHNoYWRlcjsKIH0KIAotdW5zaWduZWQgUHJvZ3JhbUJpbmRpbmdCYXNlOjpjcmVh
dGVTaGFkZXJQcm9ncmFtKGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyU291cmNlLCBjb25zdCBT
dHJpbmcmIGZyYWdtZW50U2hhZGVyU291cmNlKQordW5zaWduZWQgUHJvZ3JhbUJpbmRpbmdCYXNl
OjpjcmVhdGVTaGFkZXJQcm9ncmFtKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCBjb25zdCBT
dHJpbmcmIHZlcnRleFNoYWRlclNvdXJjZSwgY29uc3QgU3RyaW5nJiBmcmFnbWVudFNoYWRlclNv
dXJjZSkKIHsKICAgICBUUkFDRV9FVkVOVCgiUHJvZ3JhbUJpbmRpbmdCYXNlOjpjcmVhdGVTaGFk
ZXJQcm9ncmFtIiwgdGhpcywgMCk7Ci0gICAgdW5zaWduZWQgdmVydGV4U2hhZGVyID0gbG9hZFNo
YWRlcihHcmFwaGljc0NvbnRleHQzRDo6VkVSVEVYX1NIQURFUiwgdmVydGV4U2hhZGVyU291cmNl
KTsKKyAgICB1bnNpZ25lZCB2ZXJ0ZXhTaGFkZXIgPSBsb2FkU2hhZGVyKGNvbnRleHQsIEdyYXBo
aWNzQ29udGV4dDNEOjpWRVJURVhfU0hBREVSLCB2ZXJ0ZXhTaGFkZXJTb3VyY2UpOwogICAgIGlm
ICghdmVydGV4U2hhZGVyKSB7CiAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSB2
ZXJ0ZXggc2hhZGVyIik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIHVuc2lnbmVk
IGZyYWdtZW50U2hhZGVyID0gbG9hZFNoYWRlcihHcmFwaGljc0NvbnRleHQzRDo6RlJBR01FTlRf
U0hBREVSLCBmcmFnbWVudFNoYWRlclNvdXJjZSk7CisgICAgdW5zaWduZWQgZnJhZ21lbnRTaGFk
ZXIgPSBsb2FkU2hhZGVyKGNvbnRleHQsIEdyYXBoaWNzQ29udGV4dDNEOjpGUkFHTUVOVF9TSEFE
RVIsIGZyYWdtZW50U2hhZGVyU291cmNlKTsKICAgICBpZiAoIWZyYWdtZW50U2hhZGVyKSB7Ci0g
ICAgICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+ZGVsZXRlU2hhZGVyKHZlcnRleFNoYWRl
cikpOworICAgICAgICBHTEMoY29udGV4dCwgY29udGV4dC0+ZGVsZXRlU2hhZGVyKHZlcnRleFNo
YWRlcikpOwogICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgZnJhZ21lbnQgc2hh
ZGVyIik7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIHVuc2lnbmVkIHByb2dyYW1P
YmplY3QgPSBtX2NvbnRleHQtPmNyZWF0ZVByb2dyYW0oKTsKKyAgICB1bnNpZ25lZCBwcm9ncmFt
T2JqZWN0ID0gY29udGV4dC0+Y3JlYXRlUHJvZ3JhbSgpOwogICAgIGlmICghcHJvZ3JhbU9iamVj
dCkgewogICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgc2hhZGVyIHByb2dyYW0i
KTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgR0xDKG1fY29udGV4dCwgbV9jb250
ZXh0LT5hdHRhY2hTaGFkZXIocHJvZ3JhbU9iamVjdCwgdmVydGV4U2hhZGVyKSk7Ci0gICAgR0xD
KG1fY29udGV4dCwgbV9jb250ZXh0LT5hdHRhY2hTaGFkZXIocHJvZ3JhbU9iamVjdCwgZnJhZ21l
bnRTaGFkZXIpKTsKKyAgICBHTEMoY29udGV4dCwgY29udGV4dC0+YXR0YWNoU2hhZGVyKHByb2dy
YW1PYmplY3QsIHZlcnRleFNoYWRlcikpOworICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT5hdHRh
Y2hTaGFkZXIocHJvZ3JhbU9iamVjdCwgZnJhZ21lbnRTaGFkZXIpKTsKIAogICAgIC8vIEJpbmQg
dGhlIGNvbW1vbiBhdHRyaWIgbG9jYXRpb25zLgotICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4
dC0+YmluZEF0dHJpYkxvY2F0aW9uKHByb2dyYW1PYmplY3QsIEdlb21ldHJ5QmluZGluZzo6cG9z
aXRpb25BdHRyaWJMb2NhdGlvbigpLCAiYV9wb3NpdGlvbiIpKTsKLSAgICBHTEMobV9jb250ZXh0
LCBtX2NvbnRleHQtPmJpbmRBdHRyaWJMb2NhdGlvbihwcm9ncmFtT2JqZWN0LCBHZW9tZXRyeUJp
bmRpbmc6OnRleENvb3JkQXR0cmliTG9jYXRpb24oKSwgImFfdGV4Q29vcmQiKSk7CisgICAgR0xD
KGNvbnRleHQsIGNvbnRleHQtPmJpbmRBdHRyaWJMb2NhdGlvbihwcm9ncmFtT2JqZWN0LCBHZW9t
ZXRyeUJpbmRpbmc6OnBvc2l0aW9uQXR0cmliTG9jYXRpb24oKSwgImFfcG9zaXRpb24iKSk7Cisg
ICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPmJpbmRBdHRyaWJMb2NhdGlvbihwcm9ncmFtT2JqZWN0
LCBHZW9tZXRyeUJpbmRpbmc6OnRleENvb3JkQXR0cmliTG9jYXRpb24oKSwgImFfdGV4Q29vcmQi
KSk7CiAKLSAgICBHTEMobV9jb250ZXh0LCBtX2NvbnRleHQtPmxpbmtQcm9ncmFtKHByb2dyYW1P
YmplY3QpKTsKKyAgICBHTEMoY29udGV4dCwgY29udGV4dC0+bGlua1Byb2dyYW0ocHJvZ3JhbU9i
amVjdCkpOwogI2lmbmRlZiBOREVCVUcKICAgICBpbnQgbGlua2VkID0gMDsKLSAgICBHTEMobV9j
b250ZXh0LCBtX2NvbnRleHQtPmdldFByb2dyYW1pdihwcm9ncmFtT2JqZWN0LCBHcmFwaGljc0Nv
bnRleHQzRDo6TElOS19TVEFUVVMsICZsaW5rZWQpKTsKKyAgICBHTEMoY29udGV4dCwgY29udGV4
dC0+Z2V0UHJvZ3JhbWl2KHByb2dyYW1PYmplY3QsIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5LX1NU
QVRVUywgJmxpbmtlZCkpOwogICAgIGlmICghbGlua2VkKSB7CiAgICAgICAgIExPR19FUlJPUigi
RmFpbGVkIHRvIGxpbmsgc2hhZGVyIHByb2dyYW0iKTsKLSAgICAgICAgR0xDKG1fY29udGV4dCwg
bV9jb250ZXh0LT5kZWxldGVQcm9ncmFtKHByb2dyYW1PYmplY3QpKTsKKyAgICAgICAgR0xDKGNv
bnRleHQsIGNvbnRleHQtPmRlbGV0ZVByb2dyYW0ocHJvZ3JhbU9iamVjdCkpOwogICAgICAgICBy
ZXR1cm4gMDsKICAgICB9CiAjZW5kaWYKIAotICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+
ZGVsZXRlU2hhZGVyKHZlcnRleFNoYWRlcikpOwotICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4
dC0+ZGVsZXRlU2hhZGVyKGZyYWdtZW50U2hhZGVyKSk7CisgICAgR0xDKGNvbnRleHQsIGNvbnRl
eHQtPmRlbGV0ZVNoYWRlcih2ZXJ0ZXhTaGFkZXIpKTsKKyAgICBHTEMoY29udGV4dCwgY29udGV4
dC0+ZGVsZXRlU2hhZGVyKGZyYWdtZW50U2hhZGVyKSk7CiAgICAgcmV0dXJuIHByb2dyYW1PYmpl
Y3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1Byb2dyYW1CaW5kaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9Qcm9ncmFtQmluZGluZy5oCmluZGV4IDA5OTg3Zjk2YzI2NzVjODdhMjVlOTVl
ODk4YzVhOTViNjYzYTBhNzIuLmJiNmZjOGRkZDkwZjhkNTVmMzVhNThkMjEzM2ZkYTQ5ODJiZDIw
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L1Byb2dyYW1CaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vUHJvZ3JhbUJpbmRpbmcuaApAQCAtMzcsMjAgKzM3LDIwIEBAIGNsYXNzIEdyYXBo
aWNzQ29udGV4dDNEOwogCiBjbGFzcyBQcm9ncmFtQmluZGluZ0Jhc2UgewogcHVibGljOgotICAg
IGV4cGxpY2l0IFByb2dyYW1CaW5kaW5nQmFzZShHcmFwaGljc0NvbnRleHQzRCopOworICAgIFBy
b2dyYW1CaW5kaW5nQmFzZSgpOwogICAgIH5Qcm9ncmFtQmluZGluZ0Jhc2UoKTsKIAotICAgIHZv
aWQgaW5pdChjb25zdCBTdHJpbmcmIHZlcnRleFNoYWRlciwgY29uc3QgU3RyaW5nJiBmcmFnbWVu
dFNoYWRlcik7CisgICAgdm9pZCBpbml0KEdyYXBoaWNzQ29udGV4dDNEKiwgY29uc3QgU3RyaW5n
JiB2ZXJ0ZXhTaGFkZXIsIGNvbnN0IFN0cmluZyYgZnJhZ21lbnRTaGFkZXIpOworICAgIHZvaWQg
Y2xlYW51cChHcmFwaGljc0NvbnRleHQzRCopOwogCiAgICAgdW5zaWduZWQgcHJvZ3JhbSgpIGNv
bnN0IHsgcmV0dXJuIG1fcHJvZ3JhbTsgfQogICAgIGJvb2wgaW5pdGlhbGl6ZWQoKSBjb25zdCB7
IHJldHVybiBtX2luaXRpYWxpemVkOyB9CiAKIHByb3RlY3RlZDoKIAotICAgIHVuc2lnbmVkIGxv
YWRTaGFkZXIodW5zaWduZWQgdHlwZSwgY29uc3QgU3RyaW5nJiBzaGFkZXJTb3VyY2UpOwotICAg
IHVuc2lnbmVkIGNyZWF0ZVNoYWRlclByb2dyYW0oY29uc3QgU3RyaW5nJiB2ZXJ0ZXhTaGFkZXJT
b3VyY2UsIGNvbnN0IFN0cmluZyYgZnJhZ21lbnRTaGFkZXJTb3VyY2UpOworICAgIHVuc2lnbmVk
IGxvYWRTaGFkZXIoR3JhcGhpY3NDb250ZXh0M0QqLCB1bnNpZ25lZCB0eXBlLCBjb25zdCBTdHJp
bmcmIHNoYWRlclNvdXJjZSk7CisgICAgdW5zaWduZWQgY3JlYXRlU2hhZGVyUHJvZ3JhbShHcmFw
aGljc0NvbnRleHQzRCosIGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyU291cmNlLCBjb25zdCBT
dHJpbmcmIGZyYWdtZW50U2hhZGVyU291cmNlKTsKIAotICAgIEdyYXBoaWNzQ29udGV4dDNEKiBt
X2NvbnRleHQ7CiAgICAgdW5zaWduZWQgbV9wcm9ncmFtOwogICAgIGJvb2wgbV9pbml0aWFsaXpl
ZDsKIH07CkBAIC01OSwxNSArNTksMTcgQEAgdGVtcGxhdGU8Y2xhc3MgVmVydGV4U2hhZGVyLCBj
bGFzcyBGcmFnbWVudFNoYWRlcj4KIGNsYXNzIFByb2dyYW1CaW5kaW5nIDogcHVibGljIFByb2dy
YW1CaW5kaW5nQmFzZSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUHJvZ3JhbUJpbmRpbmcoR3Jh
cGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCi0gICAgICAgIDogUHJvZ3JhbUJpbmRpbmdCYXNlKGNv
bnRleHQpCiAgICAgewotICAgICAgICBQcm9ncmFtQmluZGluZ0Jhc2U6OmluaXQobV92ZXJ0ZXhT
aGFkZXIuZ2V0U2hhZGVyU3RyaW5nKCksIG1fZnJhZ21lbnRTaGFkZXIuZ2V0U2hhZGVyU3RyaW5n
KCkpOworICAgICAgICBQcm9ncmFtQmluZGluZ0Jhc2U6OmluaXQoY29udGV4dCwgbV92ZXJ0ZXhT
aGFkZXIuZ2V0U2hhZGVyU3RyaW5nKCksIG1fZnJhZ21lbnRTaGFkZXIuZ2V0U2hhZGVyU3RyaW5n
KCkpOwogICAgIH0KIAotICAgIHZvaWQgaW5pdGlhbGl6ZSgpCisgICAgdm9pZCBpbml0aWFsaXpl
KEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0KQogICAgIHsKLSAgICAgICAgbV92ZXJ0ZXhTaGFk
ZXIuaW5pdChtX2NvbnRleHQsIG1fcHJvZ3JhbSk7Ci0gICAgICAgIG1fZnJhZ21lbnRTaGFkZXIu
aW5pdChtX2NvbnRleHQsIG1fcHJvZ3JhbSk7CisgICAgICAgIEFTU0VSVChjb250ZXh0KTsKKyAg
ICAgICAgQVNTRVJUKG1fcHJvZ3JhbSk7CisKKyAgICAgICAgbV92ZXJ0ZXhTaGFkZXIuaW5pdChj
b250ZXh0LCBtX3Byb2dyYW0pOworICAgICAgICBtX2ZyYWdtZW50U2hhZGVyLmluaXQoY29udGV4
dCwgbV9wcm9ncmFtKTsKICAgICAgICAgbV9pbml0aWFsaXplZCA9IHRydWU7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105855</attachid>
            <date>2011-08-31 16:27:47 -0700</date>
            <delta_ts>2011-09-01 09:49:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-67003-20110831162746.patch</filename>
            <type>text/plain</type>
            <size>17397</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTQyNDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1NjVhY2VkMDE0OTlhMGQ0
N2RhYjMzNzdmZmU2NzlhOTU5MmNmN2MxLi5hY2Y4ZWFiMTU1NjE2OGI0M2NjZGY0OWNiYTNjZTAy
YzRhYTYwODlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMDgtMzEgIEFkcmll
bm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFJlbW92
ZSB1bnNhZmUgcmF3IEdyYXBoaWNzQ29udGV4dDNEIHBvaW50ZXIgZnJvbSBQcm9ncmFtQmluZGlu
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjcwMDMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm9ncmFt
QmluZGluZyBub3cgdGFrZXMgYW4gZXhwbGljaXQgY2xlYW51cCBjYWxsIHRvIGRlc3Ryb3kgaXRz
CisgICAgICAgIHJlc291cmNlcy4gVGhpcyB3aWxsIGFzc2VydCBpZiBpdCBpcyBub3QgY2FsbGVk
IGFuZCB3aWxsIGxlYWsgbm8KKyAgICAgICAgbG9uZ2VyIHBvdGVudGlhbGx5IGRlcmVmZXJlbmNl
IGEgZGVhZCBwb2ludGVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVy
ZXJDaHJvbWl1bTo6Ym9yZGVyUHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRl
cmVyQ2hyb21pdW06OmhlYWRzVXBEaXNwbGF5UHJvZ3JhbSk6CisgICAgICAgIChXZWJDb3JlOjpM
YXllclJlbmRlcmVyQ2hyb21pdW06OnJlbmRlclN1cmZhY2VQcm9ncmFtKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6cmVuZGVyU3VyZmFjZU1hc2tQcm9ncmFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6dGlsZXJQcm9ncmFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6dGlsZXJQcm9ncmFtU3dp
enpsZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OnRpbGVyUHJv
Z3JhbUFBKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6dGlsZXJQ
cm9ncmFtU3dpenpsZUFBKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1
bTo6Y2FudmFzTGF5ZXJQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJD
aHJvbWl1bTo6cGx1Z2luTGF5ZXJQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVu
ZGVyZXJDaHJvbWl1bTo6dmlkZW9MYXllclJHQkFQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6
OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6dmlkZW9MYXllcllVVlByb2dyYW0pOgorICAgICAgICAo
V2ViQ29yZTo6TGF5ZXJSZW5kZXJlckNocm9taXVtOjpjbGVhbnVwU2hhcmVkT2JqZWN0cyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUHJvZ3JhbUJpbmRpbmcuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UHJvZ3JhbUJpbmRpbmdCYXNlOjpQcm9ncmFtQmluZGluZ0Jhc2Up
OgorICAgICAgICAoV2ViQ29yZTo6UHJvZ3JhbUJpbmRpbmdCYXNlOjp+UHJvZ3JhbUJpbmRpbmdC
YXNlKToKKyAgICAgICAgKFdlYkNvcmU6OlByb2dyYW1CaW5kaW5nQmFzZTo6aW5pdCk6CisgICAg
ICAgIChXZWJDb3JlOjpQcm9ncmFtQmluZGluZ0Jhc2U6OmNsZWFudXApOgorICAgICAgICAoV2Vi
Q29yZTo6UHJvZ3JhbUJpbmRpbmdCYXNlOjpsb2FkU2hhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6
OlByb2dyYW1CaW5kaW5nQmFzZTo6Y3JlYXRlU2hhZGVyUHJvZ3JhbSk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUHJvZ3JhbUJpbmRpbmcuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlByb2dyYW1CaW5kaW5nOjpQcm9ncmFtQmluZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpQ
cm9ncmFtQmluZGluZzo6aW5pdGlhbGl6ZSk6CisKIDIwMTEtMDgtMzEgIFNoZXJpZmYgQm90ICA8
d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHI5NDExNi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4
IDcwYTA1ZGNhMDkwMTBhNmNiNTlmY2Y1YjFkYWUzMTAyZDhmNmRkZmQuLjU4MWZjYWI3ZjBhMjAx
NGEzNGUzYzUwZjMyMmM2MWMzOWNlYWZiNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNo
cm9taXVtLmNwcApAQCAtMTEyMyw3ICsxMTIzLDcgQEAgY29uc3QgTGF5ZXJDaHJvbWl1bTo6Qm9y
ZGVyUHJvZ3JhbSogTGF5ZXJSZW5kZXJlckNocm9taXVtOjpib3JkZXJQcm9ncmFtKCkKICAgICAg
ICAgbV9ib3JkZXJQcm9ncmFtID0gYWRvcHRQdHIobmV3IExheWVyQ2hyb21pdW06OkJvcmRlclBy
b2dyYW0obV9jb250ZXh0LmdldCgpKSk7CiAgICAgaWYgKCFtX2JvcmRlclByb2dyYW0tPmluaXRp
YWxpemVkKCkpIHsKICAgICAgICAgVFJBQ0VfRVZFTlQoIkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6
Ym9yZGVyUHJvZ3JhbTo6aW5pdGlhbGl6ZSIsIHRoaXMsIDApOwotICAgICAgICBtX2JvcmRlclBy
b2dyYW0tPmluaXRpYWxpemUoKTsKKyAgICAgICAgbV9ib3JkZXJQcm9ncmFtLT5pbml0aWFsaXpl
KG1fY29udGV4dC5nZXQoKSk7CiAgICAgfQogICAgIHJldHVybiBtX2JvcmRlclByb2dyYW0uZ2V0
KCk7CiB9CkBAIC0xMTM0LDcgKzExMzQsNyBAQCBjb25zdCBDQ0hlYWRzVXBEaXNwbGF5OjpQcm9n
cmFtKiBMYXllclJlbmRlcmVyQ2hyb21pdW06OmhlYWRzVXBEaXNwbGF5UHJvZ3JhbSgpCiAgICAg
ICAgIG1faGVhZHNVcERpc3BsYXlQcm9ncmFtID0gYWRvcHRQdHIobmV3IENDSGVhZHNVcERpc3Bs
YXk6OlByb2dyYW0obV9jb250ZXh0LmdldCgpKSk7CiAgICAgaWYgKCFtX2hlYWRzVXBEaXNwbGF5
UHJvZ3JhbS0+aW5pdGlhbGl6ZWQoKSkgewogICAgICAgICBUUkFDRV9FVkVOVCgiTGF5ZXJSZW5k
ZXJlckNocm9taXVtOjpib3JkZXJQcm9ncmFtOjppbml0aWFsaXplIiwgdGhpcywgMCk7Ci0gICAg
ICAgIG1faGVhZHNVcERpc3BsYXlQcm9ncmFtLT5pbml0aWFsaXplKCk7CisgICAgICAgIG1faGVh
ZHNVcERpc3BsYXlQcm9ncmFtLT5pbml0aWFsaXplKG1fY29udGV4dC5nZXQoKSk7CiAgICAgfQog
ICAgIHJldHVybiBtX2hlYWRzVXBEaXNwbGF5UHJvZ3JhbS5nZXQoKTsKIH0KQEAgLTExNDQsNyAr
MTE0NCw3IEBAIGNvbnN0IENDUmVuZGVyU3VyZmFjZTo6UHJvZ3JhbSogTGF5ZXJSZW5kZXJlckNo
cm9taXVtOjpyZW5kZXJTdXJmYWNlUHJvZ3JhbSgpCiAgICAgQVNTRVJUKG1fcmVuZGVyU3VyZmFj
ZVByb2dyYW0pOwogICAgIGlmICghbV9yZW5kZXJTdXJmYWNlUHJvZ3JhbS0+aW5pdGlhbGl6ZWQo
KSkgewogICAgICAgICBUUkFDRV9FVkVOVCgiTGF5ZXJSZW5kZXJlckNocm9taXVtOjpib3JkZXJQ
cm9ncmFtOjppbml0aWFsaXplIiwgdGhpcywgMCk7Ci0gICAgICAgIG1fcmVuZGVyU3VyZmFjZVBy
b2dyYW0tPmluaXRpYWxpemUoKTsKKyAgICAgICAgbV9yZW5kZXJTdXJmYWNlUHJvZ3JhbS0+aW5p
dGlhbGl6ZShtX2NvbnRleHQuZ2V0KCkpOwogICAgIH0KICAgICByZXR1cm4gbV9yZW5kZXJTdXJm
YWNlUHJvZ3JhbS5nZXQoKTsKIH0KQEAgLTExNTUsNyArMTE1NSw3IEBAIGNvbnN0IENDUmVuZGVy
U3VyZmFjZTo6TWFza1Byb2dyYW0qIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6cmVuZGVyU3VyZmFj
ZU1hc2tQcm9nCiAgICAgICAgIG1fcmVuZGVyU3VyZmFjZU1hc2tQcm9ncmFtID0gYWRvcHRQdHIo
bmV3IENDUmVuZGVyU3VyZmFjZTo6TWFza1Byb2dyYW0obV9jb250ZXh0LmdldCgpKSk7CiAgICAg
aWYgKCFtX3JlbmRlclN1cmZhY2VNYXNrUHJvZ3JhbS0+aW5pdGlhbGl6ZWQoKSkgewogICAgICAg
ICBUUkFDRV9FVkVOVCgiTGF5ZXJSZW5kZXJlckNocm9taXVtOjpib3JkZXJQcm9ncmFtOjppbml0
aWFsaXplIiwgdGhpcywgMCk7Ci0gICAgICAgIG1fcmVuZGVyU3VyZmFjZU1hc2tQcm9ncmFtLT5p
bml0aWFsaXplKCk7CisgICAgICAgIG1fcmVuZGVyU3VyZmFjZU1hc2tQcm9ncmFtLT5pbml0aWFs
aXplKG1fY29udGV4dC5nZXQoKSk7CiAgICAgfQogICAgIHJldHVybiBtX3JlbmRlclN1cmZhY2VN
YXNrUHJvZ3JhbS5nZXQoKTsKIH0KQEAgLTExNjUsNyArMTE2NSw3IEBAIGNvbnN0IENDVGlsZWRM
YXllckltcGw6OlByb2dyYW0qIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6dGlsZXJQcm9ncmFtKCkK
ICAgICBBU1NFUlQobV90aWxlclByb2dyYW0pOwogICAgIGlmICghbV90aWxlclByb2dyYW0tPmlu
aXRpYWxpemVkKCkpIHsKICAgICAgICAgVFJBQ0VfRVZFTlQoIkxheWVyUmVuZGVyZXJDaHJvbWl1
bTo6dGlsZXJQcm9ncmFtOjppbml0aWFsaXplIiwgdGhpcywgMCk7Ci0gICAgICAgIG1fdGlsZXJQ
cm9ncmFtLT5pbml0aWFsaXplKCk7CisgICAgICAgIG1fdGlsZXJQcm9ncmFtLT5pbml0aWFsaXpl
KG1fY29udGV4dC5nZXQoKSk7CiAgICAgfQogICAgIHJldHVybiBtX3RpbGVyUHJvZ3JhbS5nZXQo
KTsKIH0KQEAgLTExNzYsNyArMTE3Niw3IEBAIGNvbnN0IENDVGlsZWRMYXllckltcGw6OlByb2dy
YW1Td2l6emxlKiBMYXllclJlbmRlcmVyQ2hyb21pdW06OnRpbGVyUHJvZ3JhbVN3aXp6CiAgICAg
ICAgIG1fdGlsZXJQcm9ncmFtU3dpenpsZSA9IGFkb3B0UHRyKG5ldyBDQ1RpbGVkTGF5ZXJJbXBs
OjpQcm9ncmFtU3dpenpsZShtX2NvbnRleHQuZ2V0KCkpKTsKICAgICBpZiAoIW1fdGlsZXJQcm9n
cmFtU3dpenpsZS0+aW5pdGlhbGl6ZWQoKSkgewogICAgICAgICBUUkFDRV9FVkVOVCgiTGF5ZXJS
ZW5kZXJlckNocm9taXVtOjp0aWxlclByb2dyYW1Td2l6emxlOjppbml0aWFsaXplIiwgdGhpcywg
MCk7Ci0gICAgICAgIG1fdGlsZXJQcm9ncmFtU3dpenpsZS0+aW5pdGlhbGl6ZSgpOworICAgICAg
ICBtX3RpbGVyUHJvZ3JhbVN3aXp6bGUtPmluaXRpYWxpemUobV9jb250ZXh0LmdldCgpKTsKICAg
ICB9CiAgICAgcmV0dXJuIG1fdGlsZXJQcm9ncmFtU3dpenpsZS5nZXQoKTsKIH0KQEAgLTExODcs
NyArMTE4Nyw3IEBAIGNvbnN0IENDVGlsZWRMYXllckltcGw6OlByb2dyYW1BQSogTGF5ZXJSZW5k
ZXJlckNocm9taXVtOjp0aWxlclByb2dyYW1BQSgpCiAgICAgICAgIG1fdGlsZXJQcm9ncmFtQUEg
PSBhZG9wdFB0cihuZXcgQ0NUaWxlZExheWVySW1wbDo6UHJvZ3JhbUFBKG1fY29udGV4dC5nZXQo
KSkpOwogICAgIGlmICghbV90aWxlclByb2dyYW1BQS0+aW5pdGlhbGl6ZWQoKSkgewogICAgICAg
ICBUUkFDRV9FVkVOVCgiTGF5ZXJSZW5kZXJlckNocm9taXVtOjp0aWxlclByb2dyYW1BQTo6aW5p
dGlhbGl6ZSIsIHRoaXMsIDApOwotICAgICAgICBtX3RpbGVyUHJvZ3JhbUFBLT5pbml0aWFsaXpl
KCk7CisgICAgICAgIG1fdGlsZXJQcm9ncmFtQUEtPmluaXRpYWxpemUobV9jb250ZXh0LmdldCgp
KTsKICAgICB9CiAgICAgcmV0dXJuIG1fdGlsZXJQcm9ncmFtQUEuZ2V0KCk7CiB9CkBAIC0xMTk4
LDcgKzExOTgsNyBAQCBjb25zdCBDQ1RpbGVkTGF5ZXJJbXBsOjpQcm9ncmFtU3dpenpsZUFBKiBM
YXllclJlbmRlcmVyQ2hyb21pdW06OnRpbGVyUHJvZ3JhbVN3aQogICAgICAgICBtX3RpbGVyUHJv
Z3JhbVN3aXp6bGVBQSA9IGFkb3B0UHRyKG5ldyBDQ1RpbGVkTGF5ZXJJbXBsOjpQcm9ncmFtU3dp
enpsZUFBKG1fY29udGV4dC5nZXQoKSkpOwogICAgIGlmICghbV90aWxlclByb2dyYW1Td2l6emxl
QUEtPmluaXRpYWxpemVkKCkpIHsKICAgICAgICAgVFJBQ0VfRVZFTlQoIkxheWVyUmVuZGVyZXJD
aHJvbWl1bTo6dGlsZXJQcm9ncmFtU3dpenpsZUFBOjppbml0aWFsaXplIiwgdGhpcywgMCk7Ci0g
ICAgICAgIG1fdGlsZXJQcm9ncmFtU3dpenpsZUFBLT5pbml0aWFsaXplKCk7CisgICAgICAgIG1f
dGlsZXJQcm9ncmFtU3dpenpsZUFBLT5pbml0aWFsaXplKG1fY29udGV4dC5nZXQoKSk7CiAgICAg
fQogICAgIHJldHVybiBtX3RpbGVyUHJvZ3JhbVN3aXp6bGVBQS5nZXQoKTsKIH0KQEAgLTEyMDks
NyArMTIwOSw3IEBAIGNvbnN0IENDQ2FudmFzTGF5ZXJJbXBsOjpQcm9ncmFtKiBMYXllclJlbmRl
cmVyQ2hyb21pdW06OmNhbnZhc0xheWVyUHJvZ3JhbSgpCiAgICAgICAgIG1fY2FudmFzTGF5ZXJQ
cm9ncmFtID0gYWRvcHRQdHIobmV3IENDQ2FudmFzTGF5ZXJJbXBsOjpQcm9ncmFtKG1fY29udGV4
dC5nZXQoKSkpOwogICAgIGlmICghbV9jYW52YXNMYXllclByb2dyYW0tPmluaXRpYWxpemVkKCkp
IHsKICAgICAgICAgVFJBQ0VfRVZFTlQoIkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6Ym9yZGVyUHJv
Z3JhbTo6aW5pdGlhbGl6ZSIsIHRoaXMsIDApOwotICAgICAgICBtX2NhbnZhc0xheWVyUHJvZ3Jh
bS0+aW5pdGlhbGl6ZSgpOworICAgICAgICBtX2NhbnZhc0xheWVyUHJvZ3JhbS0+aW5pdGlhbGl6
ZShtX2NvbnRleHQuZ2V0KCkpOwogICAgIH0KICAgICByZXR1cm4gbV9jYW52YXNMYXllclByb2dy
YW0uZ2V0KCk7CiB9CkBAIC0xMjIwLDcgKzEyMjAsNyBAQCBjb25zdCBDQ1BsdWdpbkxheWVySW1w
bDo6UHJvZ3JhbSogTGF5ZXJSZW5kZXJlckNocm9taXVtOjpwbHVnaW5MYXllclByb2dyYW0oKQog
ICAgICAgICBtX3BsdWdpbkxheWVyUHJvZ3JhbSA9IGFkb3B0UHRyKG5ldyBDQ1BsdWdpbkxheWVy
SW1wbDo6UHJvZ3JhbShtX2NvbnRleHQuZ2V0KCkpKTsKICAgICBpZiAoIW1fcGx1Z2luTGF5ZXJQ
cm9ncmFtLT5pbml0aWFsaXplZCgpKSB7CiAgICAgICAgIFRSQUNFX0VWRU5UKCJMYXllclJlbmRl
cmVyQ2hyb21pdW06OmJvcmRlclByb2dyYW06OmluaXRpYWxpemUiLCB0aGlzLCAwKTsKLSAgICAg
ICAgbV9wbHVnaW5MYXllclByb2dyYW0tPmluaXRpYWxpemUoKTsKKyAgICAgICAgbV9wbHVnaW5M
YXllclByb2dyYW0tPmluaXRpYWxpemUobV9jb250ZXh0LmdldCgpKTsKICAgICB9CiAgICAgcmV0
dXJuIG1fcGx1Z2luTGF5ZXJQcm9ncmFtLmdldCgpOwogfQpAQCAtMTIzMSw3ICsxMjMxLDcgQEAg
Y29uc3QgQ0NWaWRlb0xheWVySW1wbDo6UkdCQVByb2dyYW0qIExheWVyUmVuZGVyZXJDaHJvbWl1
bTo6dmlkZW9MYXllclJHQkFQcm9ncmEKICAgICAgICAgbV92aWRlb0xheWVyUkdCQVByb2dyYW0g
PSBhZG9wdFB0cihuZXcgQ0NWaWRlb0xheWVySW1wbDo6UkdCQVByb2dyYW0obV9jb250ZXh0Lmdl
dCgpKSk7CiAgICAgaWYgKCFtX3ZpZGVvTGF5ZXJSR0JBUHJvZ3JhbS0+aW5pdGlhbGl6ZWQoKSkg
ewogICAgICAgICBUUkFDRV9FVkVOVCgiTGF5ZXJSZW5kZXJlckNocm9taXVtOjpib3JkZXJQcm9n
cmFtOjppbml0aWFsaXplIiwgdGhpcywgMCk7Ci0gICAgICAgIG1fdmlkZW9MYXllclJHQkFQcm9n
cmFtLT5pbml0aWFsaXplKCk7CisgICAgICAgIG1fdmlkZW9MYXllclJHQkFQcm9ncmFtLT5pbml0
aWFsaXplKG1fY29udGV4dC5nZXQoKSk7CiAgICAgfQogICAgIHJldHVybiBtX3ZpZGVvTGF5ZXJS
R0JBUHJvZ3JhbS5nZXQoKTsKIH0KQEAgLTEyNDIsNyArMTI0Miw3IEBAIGNvbnN0IENDVmlkZW9M
YXllckltcGw6OllVVlByb2dyYW0qIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6dmlkZW9MYXllcllV
VlByb2dyYW0oCiAgICAgICAgIG1fdmlkZW9MYXllcllVVlByb2dyYW0gPSBhZG9wdFB0cihuZXcg
Q0NWaWRlb0xheWVySW1wbDo6WVVWUHJvZ3JhbShtX2NvbnRleHQuZ2V0KCkpKTsKICAgICBpZiAo
IW1fdmlkZW9MYXllcllVVlByb2dyYW0tPmluaXRpYWxpemVkKCkpIHsKICAgICAgICAgVFJBQ0Vf
RVZFTlQoIkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6Ym9yZGVyUHJvZ3JhbTo6aW5pdGlhbGl6ZSIs
IHRoaXMsIDApOwotICAgICAgICBtX3ZpZGVvTGF5ZXJZVVZQcm9ncmFtLT5pbml0aWFsaXplKCk7
CisgICAgICAgIG1fdmlkZW9MYXllcllVVlByb2dyYW0tPmluaXRpYWxpemUobV9jb250ZXh0Lmdl
dCgpKTsKICAgICB9CiAgICAgcmV0dXJuIG1fdmlkZW9MYXllcllVVlByb2dyYW0uZ2V0KCk7CiB9
CkBAIC0xMjUzLDYgKzEyNTMsMzIgQEAgdm9pZCBMYXllclJlbmRlcmVyQ2hyb21pdW06OmNsZWFu
dXBTaGFyZWRPYmplY3RzKCkKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKIAogICAgIG1fc2hh
cmVkR2VvbWV0cnkuY2xlYXIoKTsKKworICAgIGlmIChtX2JvcmRlclByb2dyYW0pCisgICAgICAg
IG1fYm9yZGVyUHJvZ3JhbS0+Y2xlYW51cChtX2NvbnRleHQuZ2V0KCkpOworICAgIGlmIChtX2hl
YWRzVXBEaXNwbGF5UHJvZ3JhbSkKKyAgICAgICAgbV9oZWFkc1VwRGlzcGxheVByb2dyYW0tPmNs
ZWFudXAobV9jb250ZXh0LmdldCgpKTsKKyAgICBpZiAobV90aWxlclByb2dyYW0pCisgICAgICAg
IG1fdGlsZXJQcm9ncmFtLT5jbGVhbnVwKG1fY29udGV4dC5nZXQoKSk7CisgICAgaWYgKG1fdGls
ZXJQcm9ncmFtU3dpenpsZSkKKyAgICAgICAgbV90aWxlclByb2dyYW1Td2l6emxlLT5jbGVhbnVw
KG1fY29udGV4dC5nZXQoKSk7CisgICAgaWYgKG1fdGlsZXJQcm9ncmFtQUEpCisgICAgICAgIG1f
dGlsZXJQcm9ncmFtQUEtPmNsZWFudXAobV9jb250ZXh0LmdldCgpKTsKKyAgICBpZiAobV90aWxl
clByb2dyYW1Td2l6emxlQUEpCisgICAgICAgIG1fdGlsZXJQcm9ncmFtU3dpenpsZUFBLT5jbGVh
bnVwKG1fY29udGV4dC5nZXQoKSk7CisgICAgaWYgKG1fY2FudmFzTGF5ZXJQcm9ncmFtKQorICAg
ICAgICBtX2NhbnZhc0xheWVyUHJvZ3JhbS0+Y2xlYW51cChtX2NvbnRleHQuZ2V0KCkpOworICAg
IGlmIChtX3BsdWdpbkxheWVyUHJvZ3JhbSkKKyAgICAgICAgbV9wbHVnaW5MYXllclByb2dyYW0t
PmNsZWFudXAobV9jb250ZXh0LmdldCgpKTsKKyAgICBpZiAobV9yZW5kZXJTdXJmYWNlTWFza1By
b2dyYW0pCisgICAgICAgIG1fcmVuZGVyU3VyZmFjZU1hc2tQcm9ncmFtLT5jbGVhbnVwKG1fY29u
dGV4dC5nZXQoKSk7CisgICAgaWYgKG1fcmVuZGVyU3VyZmFjZVByb2dyYW0pCisgICAgICAgIG1f
cmVuZGVyU3VyZmFjZVByb2dyYW0tPmNsZWFudXAobV9jb250ZXh0LmdldCgpKTsKKyAgICBpZiAo
bV92aWRlb0xheWVyUkdCQVByb2dyYW0pCisgICAgICAgIG1fdmlkZW9MYXllclJHQkFQcm9ncmFt
LT5jbGVhbnVwKG1fY29udGV4dC5nZXQoKSk7CisgICAgaWYgKG1fdmlkZW9MYXllcllVVlByb2dy
YW0pCisgICAgICAgIG1fdmlkZW9MYXllcllVVlByb2dyYW0tPmNsZWFudXAobV9jb250ZXh0Lmdl
dCgpKTsKKwogICAgIG1fYm9yZGVyUHJvZ3JhbS5jbGVhcigpOwogICAgIG1faGVhZHNVcERpc3Bs
YXlQcm9ncmFtLmNsZWFyKCk7CiAgICAgbV90aWxlclByb2dyYW0uY2xlYXIoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Byb2dyYW1CaW5k
aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Byb2dy
YW1CaW5kaW5nLmNwcAppbmRleCA3NDVjYmEzZGNiZGI0NDNlNTEzYWQ2MWFjN2Q2MWQ0YmE4MjY5
OTEzLi4yNjdlMDE5NTc3MjY5N2U1ZTc0MjUwNDE2NGVkNGVjZDdkNGY2ZDQ3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Qcm9ncmFtQmluZGlu
Zy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUHJv
Z3JhbUJpbmRpbmcuY3BwCkBAIC0zNyw4NiArMzcsOTcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1Qcm9ncmFtQmluZGluZ0Jhc2U6OlByb2dyYW1CaW5kaW5nQmFzZShHcmFwaGljc0NvbnRl
eHQzRCogY29udGV4dCkKLSAgICA6IG1fY29udGV4dChjb250ZXh0KQotICAgICwgbV9wcm9ncmFt
KDApCitQcm9ncmFtQmluZGluZ0Jhc2U6OlByb2dyYW1CaW5kaW5nQmFzZSgpCisgICAgOiBtX3By
b2dyYW0oMCkKICAgICAsIG1faW5pdGlhbGl6ZWQoZmFsc2UpCiB7CiB9CiAKIFByb2dyYW1CaW5k
aW5nQmFzZTo6flByb2dyYW1CaW5kaW5nQmFzZSgpCiB7Ci0gICAgaWYgKG1fcHJvZ3JhbSkKLSAg
ICAgICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5kZWxldGVQcm9ncmFtKG1fcHJvZ3JhbSkp
OworICAgIC8vIElmIHlvdSBoaXQgdGhlc2UgYXNzZXJ0cywgeW91IGluaXRpYWxpemVkIGJ1dCBm
b3Jnb3QgdG8gY2FsbCBjbGVhbnVwKCkuCisgICAgQVNTRVJUKCFtX3Byb2dyYW0pOworICAgIEFT
U0VSVCghbV9pbml0aWFsaXplZCk7CiB9CiAKLXZvaWQgUHJvZ3JhbUJpbmRpbmdCYXNlOjppbml0
KGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyLCBjb25zdCBTdHJpbmcmIGZyYWdtZW50U2hhZGVy
KQordm9pZCBQcm9ncmFtQmluZGluZ0Jhc2U6OmluaXQoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyLCBjb25zdCBTdHJpbmcmIGZyYWdtZW50U2hh
ZGVyKQogewotICAgIG1fcHJvZ3JhbSA9IGNyZWF0ZVNoYWRlclByb2dyYW0odmVydGV4U2hhZGVy
LCBmcmFnbWVudFNoYWRlcik7CisgICAgbV9wcm9ncmFtID0gY3JlYXRlU2hhZGVyUHJvZ3JhbShj
b250ZXh0LCB2ZXJ0ZXhTaGFkZXIsIGZyYWdtZW50U2hhZGVyKTsKICAgICBBU1NFUlQobV9wcm9n
cmFtKTsKIH0KIAotdW5zaWduZWQgUHJvZ3JhbUJpbmRpbmdCYXNlOjpsb2FkU2hhZGVyKHVuc2ln
bmVkIHR5cGUsIGNvbnN0IFN0cmluZyYgc2hhZGVyU291cmNlKQordm9pZCBQcm9ncmFtQmluZGlu
Z0Jhc2U6OmNsZWFudXAoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiB7Ci0gICAgdW5zaWdu
ZWQgc2hhZGVyID0gbV9jb250ZXh0LT5jcmVhdGVTaGFkZXIodHlwZSk7CisgICAgbV9pbml0aWFs
aXplZCA9IGZhbHNlOworICAgIGlmICghbV9wcm9ncmFtKQorICAgICAgICByZXR1cm47CisKKyAg
ICBBU1NFUlQoY29udGV4dCk7CisgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPmRlbGV0ZVByb2dy
YW0obV9wcm9ncmFtKSk7CisgICAgbV9wcm9ncmFtID0gMDsKK30KKwordW5zaWduZWQgUHJvZ3Jh
bUJpbmRpbmdCYXNlOjpsb2FkU2hhZGVyKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0LCB1bnNp
Z25lZCB0eXBlLCBjb25zdCBTdHJpbmcmIHNoYWRlclNvdXJjZSkKK3sKKyAgICB1bnNpZ25lZCBz
aGFkZXIgPSBjb250ZXh0LT5jcmVhdGVTaGFkZXIodHlwZSk7CiAgICAgaWYgKCFzaGFkZXIpCiAg
ICAgICAgIHJldHVybiAwOwogICAgIFN0cmluZyBzb3VyY2VTdHJpbmcoc2hhZGVyU291cmNlKTsK
LSAgICBHTEMobV9jb250ZXh0LCBtX2NvbnRleHQtPnNoYWRlclNvdXJjZShzaGFkZXIsIHNvdXJj
ZVN0cmluZykpOwotICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+Y29tcGlsZVNoYWRlcihz
aGFkZXIpKTsKKyAgICBHTEMoY29udGV4dCwgY29udGV4dC0+c2hhZGVyU291cmNlKHNoYWRlciwg
c291cmNlU3RyaW5nKSk7CisgICAgR0xDKGNvbnRleHQsIGNvbnRleHQtPmNvbXBpbGVTaGFkZXIo
c2hhZGVyKSk7CiAjaWZuZGVmIE5ERUJVRwogICAgIGludCBjb21waWxlZCA9IDA7Ci0gICAgR0xD
KG1fY29udGV4dCwgbV9jb250ZXh0LT5nZXRTaGFkZXJpdihzaGFkZXIsIEdyYXBoaWNzQ29udGV4
dDNEOjpDT01QSUxFX1NUQVRVUywgJmNvbXBpbGVkKSk7CisgICAgR0xDKGNvbnRleHQsIGNvbnRl
eHQtPmdldFNoYWRlcml2KHNoYWRlciwgR3JhcGhpY3NDb250ZXh0M0Q6OkNPTVBJTEVfU1RBVFVT
LCAmY29tcGlsZWQpKTsKICAgICBpZiAoIWNvbXBpbGVkKSB7Ci0gICAgICAgIEdMQyhtX2NvbnRl
eHQsIG1fY29udGV4dC0+ZGVsZXRlU2hhZGVyKHNoYWRlcikpOworICAgICAgICBHTEMoY29udGV4
dCwgY29udGV4dC0+ZGVsZXRlU2hhZGVyKHNoYWRlcikpOwogICAgICAgICByZXR1cm4gMDsKICAg
ICB9CiAjZW5kaWYKICAgICByZXR1cm4gc2hhZGVyOwogfQogCi11bnNpZ25lZCBQcm9ncmFtQmlu
ZGluZ0Jhc2U6OmNyZWF0ZVNoYWRlclByb2dyYW0oY29uc3QgU3RyaW5nJiB2ZXJ0ZXhTaGFkZXJT
b3VyY2UsIGNvbnN0IFN0cmluZyYgZnJhZ21lbnRTaGFkZXJTb3VyY2UpCit1bnNpZ25lZCBQcm9n
cmFtQmluZGluZ0Jhc2U6OmNyZWF0ZVNoYWRlclByb2dyYW0oR3JhcGhpY3NDb250ZXh0M0QqIGNv
bnRleHQsIGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyU291cmNlLCBjb25zdCBTdHJpbmcmIGZy
YWdtZW50U2hhZGVyU291cmNlKQogewogICAgIFRSQUNFX0VWRU5UKCJQcm9ncmFtQmluZGluZ0Jh
c2U6OmNyZWF0ZVNoYWRlclByb2dyYW0iLCB0aGlzLCAwKTsKLSAgICB1bnNpZ25lZCB2ZXJ0ZXhT
aGFkZXIgPSBsb2FkU2hhZGVyKEdyYXBoaWNzQ29udGV4dDNEOjpWRVJURVhfU0hBREVSLCB2ZXJ0
ZXhTaGFkZXJTb3VyY2UpOworICAgIHVuc2lnbmVkIHZlcnRleFNoYWRlciA9IGxvYWRTaGFkZXIo
Y29udGV4dCwgR3JhcGhpY3NDb250ZXh0M0Q6OlZFUlRFWF9TSEFERVIsIHZlcnRleFNoYWRlclNv
dXJjZSk7CiAgICAgaWYgKCF2ZXJ0ZXhTaGFkZXIpIHsKICAgICAgICAgTE9HX0VSUk9SKCJGYWls
ZWQgdG8gY3JlYXRlIHZlcnRleCBzaGFkZXIiKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQog
Ci0gICAgdW5zaWduZWQgZnJhZ21lbnRTaGFkZXIgPSBsb2FkU2hhZGVyKEdyYXBoaWNzQ29udGV4
dDNEOjpGUkFHTUVOVF9TSEFERVIsIGZyYWdtZW50U2hhZGVyU291cmNlKTsKKyAgICB1bnNpZ25l
ZCBmcmFnbWVudFNoYWRlciA9IGxvYWRTaGFkZXIoY29udGV4dCwgR3JhcGhpY3NDb250ZXh0M0Q6
OkZSQUdNRU5UX1NIQURFUiwgZnJhZ21lbnRTaGFkZXJTb3VyY2UpOwogICAgIGlmICghZnJhZ21l
bnRTaGFkZXIpIHsKLSAgICAgICAgR0xDKG1fY29udGV4dCwgbV9jb250ZXh0LT5kZWxldGVTaGFk
ZXIodmVydGV4U2hhZGVyKSk7CisgICAgICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT5kZWxldGVT
aGFkZXIodmVydGV4U2hhZGVyKSk7CiAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0
ZSBmcmFnbWVudCBzaGFkZXIiKTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgdW5z
aWduZWQgcHJvZ3JhbU9iamVjdCA9IG1fY29udGV4dC0+Y3JlYXRlUHJvZ3JhbSgpOworICAgIHVu
c2lnbmVkIHByb2dyYW1PYmplY3QgPSBjb250ZXh0LT5jcmVhdGVQcm9ncmFtKCk7CiAgICAgaWYg
KCFwcm9ncmFtT2JqZWN0KSB7CiAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBz
aGFkZXIgcHJvZ3JhbSIpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBHTEMobV9j
b250ZXh0LCBtX2NvbnRleHQtPmF0dGFjaFNoYWRlcihwcm9ncmFtT2JqZWN0LCB2ZXJ0ZXhTaGFk
ZXIpKTsKLSAgICBHTEMobV9jb250ZXh0LCBtX2NvbnRleHQtPmF0dGFjaFNoYWRlcihwcm9ncmFt
T2JqZWN0LCBmcmFnbWVudFNoYWRlcikpOworICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT5hdHRh
Y2hTaGFkZXIocHJvZ3JhbU9iamVjdCwgdmVydGV4U2hhZGVyKSk7CisgICAgR0xDKGNvbnRleHQs
IGNvbnRleHQtPmF0dGFjaFNoYWRlcihwcm9ncmFtT2JqZWN0LCBmcmFnbWVudFNoYWRlcikpOwog
CiAgICAgLy8gQmluZCB0aGUgY29tbW9uIGF0dHJpYiBsb2NhdGlvbnMuCi0gICAgR0xDKG1fY29u
dGV4dCwgbV9jb250ZXh0LT5iaW5kQXR0cmliTG9jYXRpb24ocHJvZ3JhbU9iamVjdCwgR2VvbWV0
cnlCaW5kaW5nOjpwb3NpdGlvbkF0dHJpYkxvY2F0aW9uKCksICJhX3Bvc2l0aW9uIikpOwotICAg
IEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+YmluZEF0dHJpYkxvY2F0aW9uKHByb2dyYW1PYmpl
Y3QsIEdlb21ldHJ5QmluZGluZzo6dGV4Q29vcmRBdHRyaWJMb2NhdGlvbigpLCAiYV90ZXhDb29y
ZCIpKTsKKyAgICBHTEMoY29udGV4dCwgY29udGV4dC0+YmluZEF0dHJpYkxvY2F0aW9uKHByb2dy
YW1PYmplY3QsIEdlb21ldHJ5QmluZGluZzo6cG9zaXRpb25BdHRyaWJMb2NhdGlvbigpLCAiYV9w
b3NpdGlvbiIpKTsKKyAgICBHTEMoY29udGV4dCwgY29udGV4dC0+YmluZEF0dHJpYkxvY2F0aW9u
KHByb2dyYW1PYmplY3QsIEdlb21ldHJ5QmluZGluZzo6dGV4Q29vcmRBdHRyaWJMb2NhdGlvbigp
LCAiYV90ZXhDb29yZCIpKTsKIAotICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+bGlua1By
b2dyYW0ocHJvZ3JhbU9iamVjdCkpOworICAgIEdMQyhjb250ZXh0LCBjb250ZXh0LT5saW5rUHJv
Z3JhbShwcm9ncmFtT2JqZWN0KSk7CiAjaWZuZGVmIE5ERUJVRwogICAgIGludCBsaW5rZWQgPSAw
OwotICAgIEdMQyhtX2NvbnRleHQsIG1fY29udGV4dC0+Z2V0UHJvZ3JhbWl2KHByb2dyYW1PYmpl
Y3QsIEdyYXBoaWNzQ29udGV4dDNEOjpMSU5LX1NUQVRVUywgJmxpbmtlZCkpOworICAgIEdMQyhj
b250ZXh0LCBjb250ZXh0LT5nZXRQcm9ncmFtaXYocHJvZ3JhbU9iamVjdCwgR3JhcGhpY3NDb250
ZXh0M0Q6OkxJTktfU1RBVFVTLCAmbGlua2VkKSk7CiAgICAgaWYgKCFsaW5rZWQpIHsKICAgICAg
ICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gbGluayBzaGFkZXIgcHJvZ3JhbSIpOwotICAgICAgICBH
TEMobV9jb250ZXh0LCBtX2NvbnRleHQtPmRlbGV0ZVByb2dyYW0ocHJvZ3JhbU9iamVjdCkpOwor
ICAgICAgICBHTEMoY29udGV4dCwgY29udGV4dC0+ZGVsZXRlUHJvZ3JhbShwcm9ncmFtT2JqZWN0
KSk7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KICNlbmRpZgogCi0gICAgR0xDKG1fY29udGV4
dCwgbV9jb250ZXh0LT5kZWxldGVTaGFkZXIodmVydGV4U2hhZGVyKSk7Ci0gICAgR0xDKG1fY29u
dGV4dCwgbV9jb250ZXh0LT5kZWxldGVTaGFkZXIoZnJhZ21lbnRTaGFkZXIpKTsKKyAgICBHTEMo
Y29udGV4dCwgY29udGV4dC0+ZGVsZXRlU2hhZGVyKHZlcnRleFNoYWRlcikpOworICAgIEdMQyhj
b250ZXh0LCBjb250ZXh0LT5kZWxldGVTaGFkZXIoZnJhZ21lbnRTaGFkZXIpKTsKICAgICByZXR1
cm4gcHJvZ3JhbU9iamVjdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vUHJvZ3JhbUJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1Byb2dyYW1CaW5kaW5nLmgKaW5kZXggMDk5ODdmOTZj
MjY3NWM4N2EyNWU5NWU4OThjNWE5NWI2NjNhMGE3Mi4uYmI2ZmM4ZGRkOTBmOGQ1NWYzNWE1OGQy
MTMzZmRhNDk4MmJkMjBiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vUHJvZ3JhbUJpbmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Qcm9ncmFtQmluZGluZy5oCkBAIC0zNywyMCArMzcsMjAg
QEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0M0Q7CiAKIGNsYXNzIFByb2dyYW1CaW5kaW5nQmFzZSB7
CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgUHJvZ3JhbUJpbmRpbmdCYXNlKEdyYXBoaWNzQ29udGV4
dDNEKik7CisgICAgUHJvZ3JhbUJpbmRpbmdCYXNlKCk7CiAgICAgflByb2dyYW1CaW5kaW5nQmFz
ZSgpOwogCi0gICAgdm9pZCBpbml0KGNvbnN0IFN0cmluZyYgdmVydGV4U2hhZGVyLCBjb25zdCBT
dHJpbmcmIGZyYWdtZW50U2hhZGVyKTsKKyAgICB2b2lkIGluaXQoR3JhcGhpY3NDb250ZXh0M0Qq
LCBjb25zdCBTdHJpbmcmIHZlcnRleFNoYWRlciwgY29uc3QgU3RyaW5nJiBmcmFnbWVudFNoYWRl
cik7CisgICAgdm9pZCBjbGVhbnVwKEdyYXBoaWNzQ29udGV4dDNEKik7CiAKICAgICB1bnNpZ25l
ZCBwcm9ncmFtKCkgY29uc3QgeyByZXR1cm4gbV9wcm9ncmFtOyB9CiAgICAgYm9vbCBpbml0aWFs
aXplZCgpIGNvbnN0IHsgcmV0dXJuIG1faW5pdGlhbGl6ZWQ7IH0KIAogcHJvdGVjdGVkOgogCi0g
ICAgdW5zaWduZWQgbG9hZFNoYWRlcih1bnNpZ25lZCB0eXBlLCBjb25zdCBTdHJpbmcmIHNoYWRl
clNvdXJjZSk7Ci0gICAgdW5zaWduZWQgY3JlYXRlU2hhZGVyUHJvZ3JhbShjb25zdCBTdHJpbmcm
IHZlcnRleFNoYWRlclNvdXJjZSwgY29uc3QgU3RyaW5nJiBmcmFnbWVudFNoYWRlclNvdXJjZSk7
CisgICAgdW5zaWduZWQgbG9hZFNoYWRlcihHcmFwaGljc0NvbnRleHQzRCosIHVuc2lnbmVkIHR5
cGUsIGNvbnN0IFN0cmluZyYgc2hhZGVyU291cmNlKTsKKyAgICB1bnNpZ25lZCBjcmVhdGVTaGFk
ZXJQcm9ncmFtKEdyYXBoaWNzQ29udGV4dDNEKiwgY29uc3QgU3RyaW5nJiB2ZXJ0ZXhTaGFkZXJT
b3VyY2UsIGNvbnN0IFN0cmluZyYgZnJhZ21lbnRTaGFkZXJTb3VyY2UpOwogCi0gICAgR3JhcGhp
Y3NDb250ZXh0M0QqIG1fY29udGV4dDsKICAgICB1bnNpZ25lZCBtX3Byb2dyYW07CiAgICAgYm9v
bCBtX2luaXRpYWxpemVkOwogfTsKQEAgLTU5LDE1ICs1OSwxNyBAQCB0ZW1wbGF0ZTxjbGFzcyBW
ZXJ0ZXhTaGFkZXIsIGNsYXNzIEZyYWdtZW50U2hhZGVyPgogY2xhc3MgUHJvZ3JhbUJpbmRpbmcg
OiBwdWJsaWMgUHJvZ3JhbUJpbmRpbmdCYXNlIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBQcm9n
cmFtQmluZGluZyhHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCkKLSAgICAgICAgOiBQcm9ncmFt
QmluZGluZ0Jhc2UoY29udGV4dCkKICAgICB7Ci0gICAgICAgIFByb2dyYW1CaW5kaW5nQmFzZTo6
aW5pdChtX3ZlcnRleFNoYWRlci5nZXRTaGFkZXJTdHJpbmcoKSwgbV9mcmFnbWVudFNoYWRlci5n
ZXRTaGFkZXJTdHJpbmcoKSk7CisgICAgICAgIFByb2dyYW1CaW5kaW5nQmFzZTo6aW5pdChjb250
ZXh0LCBtX3ZlcnRleFNoYWRlci5nZXRTaGFkZXJTdHJpbmcoKSwgbV9mcmFnbWVudFNoYWRlci5n
ZXRTaGFkZXJTdHJpbmcoKSk7CiAgICAgfQogCi0gICAgdm9pZCBpbml0aWFsaXplKCkKKyAgICB2
b2lkIGluaXRpYWxpemUoR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQpCiAgICAgewotICAgICAg
ICBtX3ZlcnRleFNoYWRlci5pbml0KG1fY29udGV4dCwgbV9wcm9ncmFtKTsKLSAgICAgICAgbV9m
cmFnbWVudFNoYWRlci5pbml0KG1fY29udGV4dCwgbV9wcm9ncmFtKTsKKyAgICAgICAgQVNTRVJU
KGNvbnRleHQpOworICAgICAgICBBU1NFUlQobV9wcm9ncmFtKTsKKworICAgICAgICBtX3ZlcnRl
eFNoYWRlci5pbml0KGNvbnRleHQsIG1fcHJvZ3JhbSk7CisgICAgICAgIG1fZnJhZ21lbnRTaGFk
ZXIuaW5pdChjb250ZXh0LCBtX3Byb2dyYW0pOwogICAgICAgICBtX2luaXRpYWxpemVkID0gdHJ1
ZTsKICAgICB9CiAK
</data>
<flag name="review"
          id="102127"
          type_id="1"
          status="+"
          setter="jamesr"
    />
          </attachment>
      

    </bug>

</bugzilla>