<?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>178144</bug_id>
          
          <creation_ts>2017-10-10 14:14:16 -0700</creation_ts>
          <short_desc>AccessibilityRenderObject should not hold a raw pointer to RenderObject</short_desc>
          <delta_ts>2017-10-10 15:47: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>Accessibility</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>buildbot</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>koivisto</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1358901</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2017-10-10 14:14:16 -0700</bug_when>
    <thetext>the m_renderer&apos;s lifetime is not controlled by the AX object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358902</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-10-10 14:14:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/34919287&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358911</commentid>
    <comment_count>2</comment_count>
      <attachid>323350</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-10-10 14:25:51 -0700</bug_when>
    <thetext>Created attachment 323350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358917</commentid>
    <comment_count>3</comment_count>
      <attachid>323350</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2017-10-10 14:31:39 -0700</bug_when>
    <thetext>Comment on attachment 323350
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityRenderObject.h:220
&gt; +    WeakPtr&lt;RenderObject&gt; m_renderer;

can we move this to private, so fewer clients will be tempted to use it directly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358919</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2017-10-10 14:32:30 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #3)
&gt; Comment on attachment 323350 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=323350&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.h:220
&gt; &gt; +    WeakPtr&lt;RenderObject&gt; m_renderer;
&gt; 
&gt; can we move this to private, so fewer clients will be tempted to use it
&gt; directly
Sure! Good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358931</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2017-10-10 15:09:28 -0700</bug_when>
    <thetext>(In reply to zalan from comment #4)
&gt; (In reply to chris fleizach from comment #3)
&gt; &gt; Comment on attachment 323350 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=323350&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/accessibility/AccessibilityRenderObject.h:220
&gt; &gt; &gt; +    WeakPtr&lt;RenderObject&gt; m_renderer;
&gt; &gt; 
&gt; &gt; can we move this to private, so fewer clients will be tempted to use it
&gt; &gt; directly
&gt; Sure! Good idea.
If you don&apos;t mind, I&apos;d rather do that in a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358947</commentid>
    <comment_count>6</comment_count>
      <attachid>323350</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-10 15:47:34 -0700</bug_when>
    <thetext>Comment on attachment 323350
Patch

Clearing flags on attachment: 323350

Committed r223151: &lt;http://trac.webkit.org/changeset/223151&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1358948</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-10 15:47:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323350</attachid>
            <date>2017-10-10 14:25:51 -0700</date>
            <delta_ts>2017-10-10 15:47:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178144-20171010142550.patch</filename>
            <type>text/plain</type>
            <size>21147</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIzMTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU5MWZhNjc5Nzk1MDc5
ZTU4MWQ5NDM1ODBmNWQ2ZjYyMmZjYWJlYy4uNmI2MjcwMjYwODkwMzZiMjE0ODQ4M2VkNjFiYTQx
ZWY4Y2RkNDhlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE3LTEwLTEwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdCBzaG91bGQgbm90IGhvbGQgYSByYXcgcG9pbnRlciB0byBSZW5kZXJPYmplY3QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODE0NAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzQ5MTkyODc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgbV9yZW5kZXJlcidzIGxpZmV0aW1lIGlzIG5vdCBkaXJl
Y3RseSB0aWVkIHRvIHRoZSBBWCB3cmFwcGVyIG9iamVjdCdzIGxpZmV0aW1lLgorCisgICAgICAg
IENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlMaXN0Qm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlM
aXN0Qm94OjplbGVtZW50QWNjZXNzaWJpbGl0eUhpdFRlc3QgY29uc3QpOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1hdGhNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU1hdGhNTEVsZW1lbnQ6OmlzTWF0aEZlbmNlT3BlcmF0b3IgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1hdGhNTEVsZW1lbnQ6OmlzTWF0
aFNlcGFyYXRvck9wZXJhdG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlNYXRoTUxFbGVtZW50OjptYXRoTGluZVRoaWNrbmVzcyBjb25zdCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU1lbnVMaXN0OjpwcmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5TWVudUxpc3Q6OmlzQ29sbGFwc2VkIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpyZW5kZXJCb3hNb2RlbE9i
amVjdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpzZXRSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpwcmV2aW91c1NpYmxpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6YW5jaG9yRWxlbWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpoZWxwVGV4dCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpib3VuZGluZ0JveFJlY3QgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNQ
YXRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmVsZW1lbnRQYXRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmluZGV4IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmhhbmRsZUFjdGl2ZURlc2Nl
bmRhbnRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6Om9ic2VydmFibGVPYmplY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGV4dENoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cmVtb3RlU1ZHUm9vdEVsZW1l
bnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
cm9sZVZhbHVlRm9yTVNBQSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpnZXRTY3JvbGxhYmxlQXJlYUlmU2Nyb2xsYWJsZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzY3JvbGxUbyBjb25zdCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZXRSZW5kZXJPYmpl
Y3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5U2xpZGVyOjplbGVtZW50QWNjZXNzaWJpbGl0
eUhpdFRlc3QgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZTo6YWRkQ2hpbGRy
ZW4pOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpjb21wdXRlQWNjZXNz
aWJpbGl0eUlzSWdub3JlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
VGFibGVDZWxsOjpwYXJlbnRUYWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5VGFibGVDZWxsOjpyb3dJbmRleFJhbmdlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OmNvbHVtbkluZGV4UmFuZ2UgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6dGl0bGVVSUVsZW1lbnQgY29uc3Qp
OgorCiAyMDE3LTEwLTEwICBNYXR0IExld2lzICA8amxld2lzM0BhcHBsZS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIyMzExMC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eUxpc3RCb3guY3BwIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKaW5kZXggN2ZjNjhh
OWI5ZjEyZjBjY2Y4ZjM1YjJhYWQwMjEyYjgzM2RmNTBlNS4uZGEyNmNlZWQyYTM4YjY0NGZiYmMw
ZWY5MGUxYzk4MDgyNTgwZDkwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TGlzdEJveC5jcHAKQEAgLTE3Miw3ICsxNzIsNyBAQCBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5TGlzdEJveDo6ZWxlbWVudEFjY2Vzc2liaWxp
dHlIaXRUZXN0KGNvbnN0IEludAogICAgIGlmIChsaXN0Qm94T3B0aW9uICYmICFsaXN0Qm94T3B0
aW9uLT5hY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkpCiAgICAgICAgIHJldHVybiBsaXN0Qm94T3B0
aW9uOwogICAgIAotICAgIHJldHVybiBheE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKG1fcmVu
ZGVyZXIpOworICAgIHJldHVybiBheE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKHJlbmRlcmVy
KCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1hdGhNTEVsZW1lbnQuY3BwCmlu
ZGV4IGUzMWJlYWZhZWNhNDYxMmRkZjYzODFhMjUwZDFlOWJmZDEyNDZhMzcuLmQ5Y2JhMjkwNTJi
MDVlNjc5NTc2YmY2MTk5OTRlOTUxM2UxZTk4ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1hdGhNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1hdGhNTEVsZW1lbnQuY3BwCkBA
IC0xNTMsNyArMTUzLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5TWF0aE1MRWxlbWVudDo6aXNBbm9u
eW1vdXNNYXRoT3BlcmF0b3IoKSBjb25zdAogCiBib29sIEFjY2Vzc2liaWxpdHlNYXRoTUxFbGVt
ZW50Ojppc01hdGhGZW5jZU9wZXJhdG9yKCkgY29uc3QKIHsKLSAgICBpZiAoIWlzPFJlbmRlck1h
dGhNTE9wZXJhdG9yPihtX3JlbmRlcmVyKSkKKyAgICBpZiAoIWlzPFJlbmRlck1hdGhNTE9wZXJh
dG9yPihyZW5kZXJlcigpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIGRv
d25jYXN0PFJlbmRlck1hdGhNTE9wZXJhdG9yPigqbV9yZW5kZXJlcikuaGFzT3BlcmF0b3JGbGFn
KE1hdGhNTE9wZXJhdG9yRGljdGlvbmFyeTo6RmVuY2UpOwpAQCAtMTYxLDcgKzE2MSw3IEBAIGJv
b2wgQWNjZXNzaWJpbGl0eU1hdGhNTEVsZW1lbnQ6OmlzTWF0aEZlbmNlT3BlcmF0b3IoKSBjb25z
dAogCiBib29sIEFjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50Ojppc01hdGhTZXBhcmF0b3JPcGVy
YXRvcigpIGNvbnN0CiB7Ci0gICAgaWYgKCFpczxSZW5kZXJNYXRoTUxPcGVyYXRvcj4obV9yZW5k
ZXJlcikpCisgICAgaWYgKCFpczxSZW5kZXJNYXRoTUxPcGVyYXRvcj4ocmVuZGVyZXIoKSkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJNYXRoTUxP
cGVyYXRvcj4oKm1fcmVuZGVyZXIpLmhhc09wZXJhdG9yRmxhZyhNYXRoTUxPcGVyYXRvckRpY3Rp
b25hcnk6OlNlcGFyYXRvcik7CkBAIC00NDUsNyArNDQ1LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5
TWF0aE1MRWxlbWVudDo6bWF0aFBvc3RzY3JpcHRzKEFjY2Vzc2liaWxpdHlNYXRoTXVsdGlzY3Jp
cHRQYWkKIAogaW50IEFjY2Vzc2liaWxpdHlNYXRoTUxFbGVtZW50OjptYXRoTGluZVRoaWNrbmVz
cygpIGNvbnN0CiB7Ci0gICAgaWYgKCFpczxSZW5kZXJNYXRoTUxGcmFjdGlvbj4obV9yZW5kZXJl
cikpCisgICAgaWYgKCFpczxSZW5kZXJNYXRoTUxGcmFjdGlvbj4ocmVuZGVyZXIoKSkpCiAgICAg
ICAgIHJldHVybiAtMTsKIAogICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJNYXRoTUxGcmFjdGlv
bj4oKm1fcmVuZGVyZXIpLnJlbGF0aXZlTGluZVRoaWNrbmVzcygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwCmluZGV4
IGMwZTVjZjAwZWQ1ODM5ZGEwYjA3NmMzMDg5OWYxMzhiNmE3ZGRkNTYuLmI4MjRkNmIyNjRmZWFk
ODZkNmNkZWYyN2IwYTUyNDQ3MGFkMzEzNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAKQEAgLTQ1LDcgKzQ1LDcg
QEAgUmVmPEFjY2Vzc2liaWxpdHlNZW51TGlzdD4gQWNjZXNzaWJpbGl0eU1lbnVMaXN0OjpjcmVh
dGUoUmVuZGVyTWVudUxpc3QqIHJlbmRlcmUKIGJvb2wgQWNjZXNzaWJpbGl0eU1lbnVMaXN0Ojpw
cmVzcygpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICBSZW5kZXJNZW51TGlzdCogbWVudUxp
c3QgPSBzdGF0aWNfY2FzdDxSZW5kZXJNZW51TGlzdCo+KG1fcmVuZGVyZXIpOworICAgIFJlbmRl
ck1lbnVMaXN0KiBtZW51TGlzdCA9IHN0YXRpY19jYXN0PFJlbmRlck1lbnVMaXN0Kj4ocmVuZGVy
ZXIoKSk7CiAgICAgaWYgKG1lbnVMaXN0LT5wb3B1cElzVmlzaWJsZSgpKQogICAgICAgICBtZW51
TGlzdC0+aGlkZVBvcHVwKCk7CiAgICAgZWxzZQpAQCAtOTMsNyArOTMsNyBAQCB2b2lkIEFjY2Vz
c2liaWxpdHlNZW51TGlzdDo6Y2hpbGRyZW5DaGFuZ2VkKCkKIGJvb2wgQWNjZXNzaWJpbGl0eU1l
bnVMaXN0Ojppc0NvbGxhcHNlZCgpIGNvbnN0CiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICBy
ZXR1cm4gIXN0YXRpY19jYXN0PFJlbmRlck1lbnVMaXN0Kj4obV9yZW5kZXJlciktPnBvcHVwSXNW
aXNpYmxlKCk7CisgICAgcmV0dXJuICFzdGF0aWNfY2FzdDxSZW5kZXJNZW51TGlzdCo+KHJlbmRl
cmVyKCkpLT5wb3B1cElzVmlzaWJsZSgpOwogI2Vsc2UKICAgICByZXR1cm4gdHJ1ZTsKICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggM2EyMzk5N2M4NDBiNzRlZmViNTg3ZDRlMWFkMzE3
MDZlODU2MWI5YS4uZmJjYTQ5ZTliMTk3MDE4ZThkNzY5ZmI3NzFhNDZkYjcwN2VhZmQ1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgdXNpbmcgbmFtZXNwYWNlIEhU
TUxOYW1lczsKIAogQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdChSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogICAgIDogQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QocmVuZGVyZXItPm5vZGUoKSkKLSAgICAsIG1fcmVuZGVyZXIocmVuZGVyZXIpCisgICAg
LCBtX3JlbmRlcmVyKG1ha2VXZWFrUHRyKHJlbmRlcmVyKSkKIHsKICNpZm5kZWYgTkRFQlVHCiAg
ICAgbV9yZW5kZXJlci0+c2V0SGFzQVhPYmplY3QodHJ1ZSk7CkBAIC0xNDUsMTQgKzE0NSwxNCBA
QCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGFjaChBY2Nlc3NpYmlsaXR5RGV0
YWNobWVudFR5cGUgZGV0YWNobWVudFR5cAogCiBSZW5kZXJCb3hNb2RlbE9iamVjdCogQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6cmVuZGVyQm94TW9kZWxPYmplY3QoKSBjb25zdAogewotICAg
IGlmICghaXM8UmVuZGVyQm94TW9kZWxPYmplY3Q+KG1fcmVuZGVyZXIpKQorICAgIGlmICghaXM8
UmVuZGVyQm94TW9kZWxPYmplY3Q+KHJlbmRlcmVyKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyQm94TW9kZWxPYmplY3Q+KG1fcmVuZGVyZXIp
OworICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4ocmVuZGVyZXIoKSk7
CiB9CiAKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2V0UmVuZGVyZXIoUmVuZGVy
T2JqZWN0KiByZW5kZXJlcikKIHsKLSAgICBtX3JlbmRlcmVyID0gcmVuZGVyZXI7CisgICAgbV9y
ZW5kZXJlciA9IG1ha2VXZWFrUHRyKHJlbmRlcmVyKTsKICAgICBzZXROb2RlKHJlbmRlcmVyLT5u
b2RlKCkpOwogfQogCkBAIC0zMjQsNyArMzI0LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cHJldmlvdXNTaWJsaW5nKCkgY29uc3QKICAgICAvLyBs
YXN0IGNoaWxkIGlzIG91ciBwcmV2aW91cyBzaWJsaW5nIChvciBmdXJ0aGVyIGJhY2sgaW4gdGhl
IGNvbnRpbnVhdGlvbiBjaGFpbikKICAgICBSZW5kZXJJbmxpbmUqIHN0YXJ0T2ZDb250czsKICAg
ICBpZiAoaXM8UmVuZGVyQm94PigqbV9yZW5kZXJlcikgJiYgKHN0YXJ0T2ZDb250cyA9IHN0YXJ0
T2ZDb250aW51YXRpb25zKCptX3JlbmRlcmVyKSkpCi0gICAgICAgIHByZXZpb3VzU2libGluZyA9
IGNoaWxkQmVmb3JlQ29uc2lkZXJpbmdDb250aW51YXRpb25zKHN0YXJ0T2ZDb250cywgbV9yZW5k
ZXJlcik7CisgICAgICAgIHByZXZpb3VzU2libGluZyA9IGNoaWxkQmVmb3JlQ29uc2lkZXJpbmdD
b250aW51YXRpb25zKHN0YXJ0T2ZDb250cywgcmVuZGVyZXIoKSk7CiAKICAgICAvLyBDYXNlIDI6
IEFub255bW91cyBibG9jayBwYXJlbnQgb2YgdGhlIGVuZCBvZiBhIGNvbnRpbnVhdGlvbiAtIHNr
aXAgYWxsIHRoZSB3YXkgdG8gYmVmb3JlCiAgICAgLy8gdGhlIHBhcmVudCBvZiB0aGUgc3RhcnQs
IHNpbmNlIGV2ZXJ5dGhpbmcgaW4gYmV0d2VlbiB3aWxsIGJlIGxpbmtlZCB1cCB2aWEgdGhlIGNv
bnRpbnVhdGlvbi4KQEAgLTU2MSw3ICs1NjEsNyBAQCBFbGVtZW50KiBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjphbmNob3JFbGVtZW50KCkgY29uc3QKICAgICBSZW5kZXJPYmplY3QqIGN1cnJl
bnRSZW5kZXJlcjsKICAgICAKICAgICAvLyBTZWFyY2ggdXAgdGhlIHJlbmRlciB0cmVlIGZvciBh
IFJlbmRlck9iamVjdCB3aXRoIGEgRE9NIG5vZGUuICBEZWZlciB0byBhbiBlYXJsaWVyIGNvbnRp
bnVhdGlvbiwgdGhvdWdoLgotICAgIGZvciAoY3VycmVudFJlbmRlcmVyID0gbV9yZW5kZXJlcjsg
Y3VycmVudFJlbmRlcmVyICYmICFjdXJyZW50UmVuZGVyZXItPm5vZGUoKTsgY3VycmVudFJlbmRl
cmVyID0gY3VycmVudFJlbmRlcmVyLT5wYXJlbnQoKSkgeworICAgIGZvciAoY3VycmVudFJlbmRl
cmVyID0gcmVuZGVyZXIoKTsgY3VycmVudFJlbmRlcmVyICYmICFjdXJyZW50UmVuZGVyZXItPm5v
ZGUoKTsgY3VycmVudFJlbmRlcmVyID0gY3VycmVudFJlbmRlcmVyLT5wYXJlbnQoKSkgewogICAg
ICAgICBpZiAoY3VycmVudFJlbmRlcmVyLT5pc0Fub255bW91c0Jsb2NrKCkpIHsKICAgICAgICAg
ICAgIGlmIChSZW5kZXJPYmplY3QqIGNvbnRpbnVhdGlvbiA9IGRvd25jYXN0PFJlbmRlckJsb2Nr
PigqY3VycmVudFJlbmRlcmVyKS5jb250aW51YXRpb24oKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gY2FjaGUtPmdldE9yQ3JlYXRlKGNvbnRpbnVhdGlvbiktPmFuY2hvckVsZW1lbnQoKTsKQEAg
LTU5Niw3ICs1OTYsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6aGVscFRl
eHQoKSBjb25zdAogICAgICAgICByZXR1cm4gZGVzY3JpYmVkQnk7CiAgICAgCiAgICAgU3RyaW5n
IGRlc2NyaXB0aW9uID0gYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCk7Ci0gICAgZm9yIChSZW5k
ZXJPYmplY3QqIGFuY2VzdG9yID0gbV9yZW5kZXJlcjsgYW5jZXN0b3I7IGFuY2VzdG9yID0gYW5j
ZXN0b3ItPnBhcmVudCgpKSB7CisgICAgZm9yIChSZW5kZXJPYmplY3QqIGFuY2VzdG9yID0gcmVu
ZGVyZXIoKTsgYW5jZXN0b3I7IGFuY2VzdG9yID0gYW5jZXN0b3ItPnBhcmVudCgpKSB7CiAgICAg
ICAgIGlmIChpczxIVE1MRWxlbWVudD4oYW5jZXN0b3ItPm5vZGUoKSkpIHsKICAgICAgICAgICAg
IEhUTUxFbGVtZW50JiBlbGVtZW50ID0gZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCphbmNlc3Rvci0+
bm9kZSgpKTsKICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgc3VtbWFyeSA9IGVsZW1l
bnQuZ2V0QXR0cmlidXRlKHN1bW1hcnlBdHRyKTsKQEAgLTgyMyw3ICs4MjMsNyBAQCB2b2lkIEFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Om9mZnNldEJvdW5kaW5nQm94Rm9yUmVtb3RlU1ZHRWxl
bWVudChMYXlvdXRSZWN0JgogICAgIAogTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojpib3VuZGluZ0JveFJlY3QoKSBjb25zdAogewotICAgIFJlbmRlck9iamVjdCogb2JqID0g
bV9yZW5kZXJlcjsKKyAgICBSZW5kZXJPYmplY3QqIG9iaiA9IHJlbmRlcmVyKCk7CiAgICAgCiAg
ICAgaWYgKCFvYmopCiAgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CkBAIC04ODUsMTIgKzg4
NSwxMiBAQCBMYXlvdXRSZWN0IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmVsZW1lbnRSZWN0
KCkgY29uc3QKICAgICAKIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3VwcG9ydHNQ
YXRoKCkgY29uc3QKIHsKLSAgICByZXR1cm4gaXM8UmVuZGVyU1ZHU2hhcGU+KG1fcmVuZGVyZXIp
OworICAgIHJldHVybiBpczxSZW5kZXJTVkdTaGFwZT4ocmVuZGVyZXIoKSk7CiB9CiAKIFBhdGgg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZWxlbWVudFBhdGgoKSBjb25zdAogewotICAgIGlm
IChpczxSZW5kZXJTVkdTaGFwZT4obV9yZW5kZXJlcikgJiYgZG93bmNhc3Q8UmVuZGVyU1ZHU2hh
cGU+KCptX3JlbmRlcmVyKS5oYXNQYXRoKCkpIHsKKyAgICBpZiAoaXM8UmVuZGVyU1ZHU2hhcGU+
KHJlbmRlcmVyKCkpICYmIGRvd25jYXN0PFJlbmRlclNWR1NoYXBlPigqbV9yZW5kZXJlcikuaGFz
UGF0aCgpKSB7CiAgICAgICAgIFBhdGggcGF0aCA9IGRvd25jYXN0PFJlbmRlclNWR1NoYXBlPigq
bV9yZW5kZXJlcikucGF0aCgpOwogICAgICAgICAKICAgICAgICAgLy8gVGhlIFNWRyBwYXRoIGlz
IGluIHRlcm1zIG9mIHRoZSBwYXJlbnQncyBib3VuZGluZyBib3guIFRoZSBwYXRoIG5lZWRzIHRv
IGJlIG9mZnNldCB0byBmcmFtZSBjb29yZGluYXRlcy4KQEAgLTExOTUsOSArMTE5NSw5IEBAIGJv
b2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9y
ZWQoKSBjb25zdAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKICAgICAvLyBXZWJBcmVhcyBz
aG91bGQgYmUgaWdub3JlZCBpZiB0aGVpciBpZnJhbWUgY29udGFpbmVyIGlzIG1hcmtlZCBhcyBw
cmVzZW50YXRpb25hbC4KLSAgICBpZiAod2ViQXJlYUlzUHJlc2VudGF0aW9uYWwobV9yZW5kZXJl
cikpCisgICAgaWYgKHdlYkFyZWFJc1ByZXNlbnRhdGlvbmFsKHJlbmRlcmVyKCkpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgCisKICAgICAvLyBBbiBBUklBIHRyZWUgY2FuIG9ubHkg
aGF2ZSB0cmVlIGl0ZW1zIGFuZCBzdGF0aWMgdGV4dCBhcyBjaGlsZHJlbi4KICAgICBpZiAoIWlz
QWxsb3dlZENoaWxkT2ZUcmVlKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwpAQCAtMTMzMiw3ICsx
MzMyLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpjb21wdXRlQWNjZXNzaWJp
bGl0eUlzSWdub3JlZCgpIGNvbnN0CiAgICAgICAgIC8vIEZpcnN0IGNoZWNrIHRoZSBSZW5kZXJJ
bWFnZSdzIGFsdFRleHQgKHdoaWNoIGNhbiBiZSBzZXQgdGhyb3VnaCBhIHN0eWxlIHNoZWV0LCBv
ciBjb21lIGZyb20gdGhlIEVsZW1lbnQpLgogICAgICAgICAvLyBIb3dldmVyLCBpZiB0aGlzIGlz
IG5vdCBhIG5hdGl2ZSBpbWFnZSwgZmFsbGJhY2sgdG8gdGhlIGF0dHJpYnV0ZSBvbiB0aGUgRWxl
bWVudC4KICAgICAgICAgQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBhbHRUZXh0SW5jbHVz
aW9uID0gRGVmYXVsdEJlaGF2aW9yOwotICAgICAgICBib29sIGlzUmVuZGVySW1hZ2UgPSBpczxS
ZW5kZXJJbWFnZT4obV9yZW5kZXJlcik7CisgICAgICAgIGJvb2wgaXNSZW5kZXJJbWFnZSA9IGlz
PFJlbmRlckltYWdlPihyZW5kZXJlcigpKTsKICAgICAgICAgaWYgKGlzUmVuZGVySW1hZ2UpCiAg
ICAgICAgICAgICBhbHRUZXh0SW5jbHVzaW9uID0gb2JqZWN0SW5jbHVzaW9uRnJvbUFsdFRleHQo
ZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCptX3JlbmRlcmVyKS5hbHRUZXh0KCkpOwogICAgICAgICBl
bHNlCkBAIC0yMTk3LDcgKzIxOTcsNyBAQCBpbnQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
aW5kZXgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikgY29uc3QKICAgICBpZiAocG9z
aXRpb24uaXNOdWxsKCkgfHwgIWlzVGV4dENvbnRyb2woKSkKICAgICAgICAgcmV0dXJuIC0xOwog
Ci0gICAgaWYgKHJlbmRlck9iamVjdENvbnRhaW5zUG9zaXRpb24obV9yZW5kZXJlciwgcG9zaXRp
b24uZGVlcEVxdWl2YWxlbnQoKSkpCisgICAgaWYgKHJlbmRlck9iamVjdENvbnRhaW5zUG9zaXRp
b24ocmVuZGVyZXIoKSwgcG9zaXRpb24uZGVlcEVxdWl2YWxlbnQoKSkpCiAgICAgICAgIHJldHVy
biBpbmRleEZvclZpc2libGVQb3NpdGlvbihwb3NpdGlvbik7CiAgICAgCiAgICAgcmV0dXJuIC0x
OwpAQCAtMjUxMCw3ICsyNTEwLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpo
YW5kbGVBY3RpdmVEZXNjZW5kYW50Q2hhbmdlZCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlm
IChhY3RpdmVEZXNjZW5kYW50KCkgJiYgc2hvdWxkTm90aWZ5QWN0aXZlRGVzY2VuZGFudCgpKQot
ICAgICAgICByZW5kZXJlcigpLT5kb2N1bWVudCgpLmF4T2JqZWN0Q2FjaGUoKS0+cG9zdE5vdGlm
aWNhdGlvbihtX3JlbmRlcmVyLCBBWE9iamVjdENhY2hlOjpBWEFjdGl2ZURlc2NlbmRhbnRDaGFu
Z2VkKTsKKyAgICAgICAgcmVuZGVyZXIoKS0+ZG9jdW1lbnQoKS5heE9iamVjdENhY2hlKCktPnBv
c3ROb3RpZmljYXRpb24ocmVuZGVyZXIoKSwgQVhPYmplY3RDYWNoZTo6QVhBY3RpdmVEZXNjZW5k
YW50Q2hhbmdlZCk7CiB9CiAKIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmNvcnJlc3BvbmRpbmdDb250cm9sRm9yTGFiZWxFbGVtZW50KCkgY29uc3QKQEAg
LTI1NzMsNyArMjU3Myw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cmVuZGVy
T2JqZWN0SXNPYnNlcnZhYmxlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpvYnNlcnZhYmxlT2JqZWN0KCkgY29u
c3QKIHsKICAgICAvLyBGaW5kIHRoZSBvYmplY3QgZ29pbmcgdXAgdGhlIHBhcmVudCBjaGFpbiB0
aGF0IGlzIHVzZWQgaW4gYWNjZXNzaWJpbGl0eSB0byBtb25pdG9yIGNlcnRhaW4gbm90aWZpY2F0
aW9ucy4KLSAgICBmb3IgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBtX3JlbmRlcmVyOyByZW5k
ZXJlciAmJiByZW5kZXJlci0+bm9kZSgpOyByZW5kZXJlciA9IHJlbmRlcmVyLT5wYXJlbnQoKSkg
eworICAgIGZvciAoUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7IHJl
bmRlcmVyICYmIHJlbmRlcmVyLT5ub2RlKCk7IHJlbmRlcmVyID0gcmVuZGVyZXItPnBhcmVudCgp
KSB7CiAgICAgICAgIGlmIChyZW5kZXJPYmplY3RJc09ic2VydmFibGUoKnJlbmRlcmVyKSkgewog
ICAgICAgICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gYXhPYmplY3RDYWNoZSgpKQog
ICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZS0+Z2V0T3JDcmVhdGUocmVuZGVyZXIpOwpAQCAt
MjcyNyw3ICsyNzI3LDcgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogICAgIAogICAgIC8vIFRoaXMgcmV0
dXJuIHZhbHVlIGlzIHdoYXQgd2lsbCBiZSB1c2VkIGlmIEFjY2Vzc2liaWxpdHlUYWJsZUNlbGwg
ZGV0ZXJtaW5lcwogICAgIC8vIHRoZSBjZWxsIHNob3VsZCBub3QgYmUgdHJlYXRlZCBhcyBhIGNl
bGwgKGUuZy4gYmVjYXVzZSBpdCBpcyBhIGxheW91dCB0YWJsZS4KLSAgICBpZiAoaXM8UmVuZGVy
VGFibGVDZWxsPihtX3JlbmRlcmVyKSkKKyAgICBpZiAoaXM8UmVuZGVyVGFibGVDZWxsPihyZW5k
ZXJlcigpKSkKICAgICAgICAgcmV0dXJuIFRleHRHcm91cFJvbGU7CiAKICAgICAvLyBUYWJsZSBz
ZWN0aW9ucyBzaG91bGQgYmUgaWdub3JlZC4KQEAgLTI5NTksNyArMjk1OSw3IEBAIHZvaWQgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGV4dENoYW5nZWQoKQogICAgIGlmICghY2FjaGUpCiAg
ICAgICAgIHJldHVybjsKICAgICAKLSAgICBmb3IgKFJlbmRlck9iamVjdCogcmVuZGVyUGFyZW50
ID0gbV9yZW5kZXJlcjsgcmVuZGVyUGFyZW50OyByZW5kZXJQYXJlbnQgPSByZW5kZXJQYXJlbnQt
PnBhcmVudCgpKSB7CisgICAgZm9yIChSZW5kZXJPYmplY3QqIHJlbmRlclBhcmVudCA9IHJlbmRl
cmVyKCk7IHJlbmRlclBhcmVudDsgcmVuZGVyUGFyZW50ID0gcmVuZGVyUGFyZW50LT5wYXJlbnQo
KSkgewogICAgICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwYXJlbnQgPSBjYWNoZS0+Z2V0KHJl
bmRlclBhcmVudCk7CiAgICAgICAgIGlmICghcGFyZW50KQogICAgICAgICAgICAgY29udGludWU7
CkBAIC0zMDQ2LDcgKzMwNDYsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRl
dGFjaFJlbW90ZVNWR1Jvb3QoKQogCiBBY2Nlc3NpYmlsaXR5U1ZHUm9vdCogQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6cmVtb3RlU1ZHUm9vdEVsZW1lbnQoQ3JlYXRpb25DaG9pY2UgY3JlYXRl
SWZOZWNlc3NhcnkpIGNvbnN0CiB7Ci0gICAgaWYgKCFpczxSZW5kZXJJbWFnZT4obV9yZW5kZXJl
cikpCisgICAgaWYgKCFpczxSZW5kZXJJbWFnZT4ocmVuZGVyZXIoKSkpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIAogICAgIENhY2hlZEltYWdlKiBjYWNoZWRJbWFnZSA9IGRvd25jYXN0
PFJlbmRlckltYWdlPigqbV9yZW5kZXJlcikuY2FjaGVkSW1hZ2UoKTsKQEAgLTM2NjYsNyArMzY2
Niw3IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnJvbGVW
YWx1ZUZvck1TQUEoKSBjb25zdAogICAgIGlmIChtX3JvbGVGb3JNU0FBICE9IFVua25vd25Sb2xl
KQogICAgICAgICByZXR1cm4gbV9yb2xlRm9yTVNBQTsKIAotICAgIG1fcm9sZUZvck1TQUEgPSBt
c2FhUm9sZUZvclJlbmRlcmVyKG1fcmVuZGVyZXIpOworICAgIG1fcm9sZUZvck1TQUEgPSBtc2Fh
Um9sZUZvclJlbmRlcmVyKHJlbmRlcmVyKCkpOwogCiAgICAgaWYgKG1fcm9sZUZvck1TQUEgPT0g
VW5rbm93blJvbGUpCiAgICAgICAgIG1fcm9sZUZvck1TQUEgPSByb2xlVmFsdWUoKTsKQEAgLTM2
OTYsNyArMzY5Niw3IEBAIFNjcm9sbGFibGVBcmVhKiBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpnZXRTY3JvbGxhYmxlQXJlYUlmU2Nyb2xsYWJsZSgpIGNvbnN0CiAgICAgaWYgKHBhcmVudE9i
amVjdCgpICYmIHBhcmVudE9iamVjdCgpLT5pc0FjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KCkpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgaWYgKCFpczxSZW5kZXJCb3g+KG1fcmVuZGVy
ZXIpKQorICAgIGlmICghaXM8UmVuZGVyQm94PihyZW5kZXJlcigpKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICBhdXRvJiBib3ggPSBkb3duY2FzdDxSZW5kZXJCb3g+KCptX3JlbmRl
cmVyKTsKQEAgLTM3MDgsNyArMzcwOCw3IEBAIFNjcm9sbGFibGVBcmVhKiBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpnZXRTY3JvbGxhYmxlQXJlYUlmU2Nyb2xsYWJsZSgpIGNvbnN0CiAKIHZv
aWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2Nyb2xsVG8oY29uc3QgSW50UG9pbnQmIHBv
aW50KSBjb25zdAogewotICAgIGlmICghaXM8UmVuZGVyQm94PihtX3JlbmRlcmVyKSkKKyAgICBp
ZiAoIWlzPFJlbmRlckJveD4ocmVuZGVyZXIoKSkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGF1
dG8mIGJveCA9IGRvd25jYXN0PFJlbmRlckJveD4oKm1fcmVuZGVyZXIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
aAppbmRleCBhNTA3MTU3MDRhZGYyMjRkZTY3YTM2MWUwZWMwNDJiYzEyNjQ5MWM4Li4zYjA2ODY0
NThiN2Y4YjczZGMwNmQ5OTNjYzE5MzhmYmQ5OTc3ZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAt
MzAsNiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCIKICNp
bmNsdWRlICJMYXlvdXRSZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCkBAIC0xMTQsNyAr
MTE1LDcgQEAgcHVibGljOgogICAgIEludFBvaW50IGNsaWNrUG9pbnQoKSBvdmVycmlkZTsKICAg
ICAKICAgICB2b2lkIHNldFJlbmRlcmVyKFJlbmRlck9iamVjdCopOwotICAgIFJlbmRlck9iamVj
dCogcmVuZGVyZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3JlbmRlcmVyOyB9CisgICAg
UmVuZGVyT2JqZWN0KiByZW5kZXJlcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcmVuZGVy
ZXIuZ2V0KCk7IH0KICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVuZGVyQm94TW9kZWxPYmpl
Y3QoKSBjb25zdDsKICAgICBOb2RlKiBub2RlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKQEAgLTIwNCw3
ICsyMDUsNiBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0KFJlbmRlck9iamVjdCopOwotICAgIHZvaWQgc2V0UmVuZGVyT2JqZWN0
KFJlbmRlck9iamVjdCogcmVuZGVyZXIpIHsgbV9yZW5kZXJlciA9IHJlbmRlcmVyOyB9CiAgICAg
U2Nyb2xsYWJsZUFyZWEqIGdldFNjcm9sbGFibGVBcmVhSWZTY3JvbGxhYmxlKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdm9pZCBzY3JvbGxUbyhjb25zdCBJbnRQb2ludCYpIGNvbnN0IG92ZXJyaWRl
OwogICAgIApAQCAtMjE3LDcgKzIxNyw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wg
aXNJZ25vcmVkRWxlbWVudFdpdGhpbk1hdGhUcmVlKCkgY29uc3Q7CiAjZW5kaWYKIAotICAgIFJl
bmRlck9iamVjdCogbV9yZW5kZXJlcjsKKyAgICBXZWFrUHRyPFJlbmRlck9iamVjdD4gbV9yZW5k
ZXJlcjsKIAogcHJpdmF0ZToKICAgICBXZWFrUHRyRmFjdG9yeTxBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0PiBtX3dlYWtQdHJGYWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5U2xpZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVNsaWRlci5jcHAKaW5kZXggZDdiYTllNDNkMDRhOWE1NTkz
M2U1MDZmMjRhNzUzMDIxODI2NGRhNy4uMmU2OGM4ZjZhNDdkNTY2ZjMyZjY1ZTBlMzJiNTEyOGY1
ZDgzY2U5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5U2xpZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlTbGlkZXIuY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVj
dCogQWNjZXNzaWJpbGl0eVNsaWRlcjo6ZWxlbWVudEFjY2Vzc2liaWxpdHlIaXRUZXN0KGNvbnN0
IEludFAKICAgICAgICAgICAgIHJldHVybiBtX2NoaWxkcmVuWzBdLmdldCgpOwogICAgIH0KICAg
ICAKLSAgICByZXR1cm4gYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShtX3JlbmRlcmVyKTsK
KyAgICByZXR1cm4gYXhPYmplY3RDYWNoZSgpLT5nZXRPckNyZWF0ZShyZW5kZXJlcigpKTsKIH0K
IAogZmxvYXQgQWNjZXNzaWJpbGl0eVNsaWRlcjo6dmFsdWVGb3JSYW5nZSgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZS5jcHAK
aW5kZXggNWQ4ZDgzOTc2MTlkYTUyOWI5OTlkMDQyOTUxMDQxNTVjNTcyYzQ3Mi4uYzRjYWQzMGJm
NDc5MzNmZDgyZGVjZTc1YzEzODI3OGUwOWZiZGI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlLmNwcApAQCAtMzg2LDcgKzM4Niw3
IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVRhYmxlOjphZGRDaGlsZHJlbigpCiAgICAgQVNTRVJUKCFt
X2hhdmVDaGlsZHJlbik7IAogICAgIAogICAgIG1faGF2ZUNoaWxkcmVuID0gdHJ1ZTsKLSAgICBp
ZiAoIWlzPFJlbmRlclRhYmxlPihtX3JlbmRlcmVyKSkKKyAgICBpZiAoIWlzPFJlbmRlclRhYmxl
PihyZW5kZXJlcigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFJlbmRlclRhYmxlJiB0
YWJsZSA9IGRvd25jYXN0PFJlbmRlclRhYmxlPigqbV9yZW5kZXJlcik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNwcApp
bmRleCAxZTQzOGM2YjFhNzU4ODYzOWIyOWU0YWY5MzFlNzNmOWQ0NGFhNjEwLi45YWZjZWI1MGE3
Zjc1MTkzYWRkYmRhNmI2MjU0MDEyN2M4MWY3ZjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAKQEAgLTY2LDcg
KzY2LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpjb21wdXRlQWNjZXNzaWJpbGl0
eUlzSWdub3JlZCgpIGNvbnN0CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIAogICAgIC8vIEln
bm9yZSBhbm9ueW1vdXMgdGFibGUgY2VsbHMgYXMgbG9uZyBhcyB0aGV5J3JlIG5vdCBpbiBhIHRh
YmxlIChpZS4gd2hlbiBkaXNwbGF5OnRhYmxlIGlzIHVzZWQpLgotICAgIFJlbmRlck9iamVjdCog
cmVuZGVyVGFibGUgPSBpczxSZW5kZXJUYWJsZUNlbGw+KG1fcmVuZGVyZXIpID8gZG93bmNhc3Q8
UmVuZGVyVGFibGVDZWxsPigqbV9yZW5kZXJlcikudGFibGUoKSA6IG51bGxwdHI7CisgICAgUmVu
ZGVyT2JqZWN0KiByZW5kZXJUYWJsZSA9IGlzPFJlbmRlclRhYmxlQ2VsbD4ocmVuZGVyZXIoKSkg
PyBkb3duY2FzdDxSZW5kZXJUYWJsZUNlbGw+KCptX3JlbmRlcmVyKS50YWJsZSgpIDogbnVsbHB0
cjsKICAgICBib29sIGluVGFibGUgPSByZW5kZXJUYWJsZSAmJiByZW5kZXJUYWJsZS0+bm9kZSgp
ICYmIChyZW5kZXJUYWJsZS0+bm9kZSgpLT5oYXNUYWdOYW1lKHRhYmxlVGFnKSB8fCBub2RlSGFz
Um9sZShyZW5kZXJUYWJsZS0+bm9kZSgpLCAiZ3JpZCIpKTsKICAgICBpZiAoIW5vZGUoKSAmJiAh
aW5UYWJsZSkKICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC03OSw3ICs3OSw3IEBAIGJvb2wgQWNj
ZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25z
dAogCiBBY2Nlc3NpYmlsaXR5VGFibGUqIEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OnBhcmVudFRh
YmxlKCkgY29uc3QKIHsKLSAgICBpZiAoIWlzPFJlbmRlclRhYmxlQ2VsbD4obV9yZW5kZXJlcikp
CisgICAgaWYgKCFpczxSZW5kZXJUYWJsZUNlbGw+KHJlbmRlcmVyKCkpKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAogICAgIC8vIElmIHRoZSBkb2N1bWVudCBubyBsb25nZXIgZXhpc3RzLCB3
ZSBtaWdodCBub3QgaGF2ZSBhbiBheE9iamVjdENhY2hlLgpAQCAtMzE0LDcgKzMxNCw3IEBAIEFj
Y2Vzc2liaWxpdHlUYWJsZVJvdyogQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6cGFyZW50Um93KCkg
Y29uc3QKIAogdm9pZCBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpyb3dJbmRleFJhbmdlKHN0ZDo6
cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+JiByb3dSYW5nZSkgY29uc3QKIHsKLSAgICBpZiAoIWlz
PFJlbmRlclRhYmxlQ2VsbD4obV9yZW5kZXJlcikpCisgICAgaWYgKCFpczxSZW5kZXJUYWJsZUNl
bGw+KHJlbmRlcmVyKCkpKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgUmVuZGVyVGFibGVD
ZWxsJiByZW5kZXJDZWxsID0gZG93bmNhc3Q8UmVuZGVyVGFibGVDZWxsPigqbV9yZW5kZXJlcik7
CkBAIC0zMzIsNyArMzMyLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpyb3dJbmRl
eFJhbmdlKHN0ZDo6cGFpcjx1bnNpZ25lZCwgdW5zaWduZWQ+JiByb3dSYW4KICAgICAKIHZvaWQg
QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y29sdW1uSW5kZXhSYW5nZShzdGQ6OnBhaXI8dW5zaWdu
ZWQsIHVuc2lnbmVkPiYgY29sdW1uUmFuZ2UpIGNvbnN0CiB7Ci0gICAgaWYgKCFpczxSZW5kZXJU
YWJsZUNlbGw+KG1fcmVuZGVyZXIpKQorICAgIGlmICghaXM8UmVuZGVyVGFibGVDZWxsPihyZW5k
ZXJlcigpKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGNvbnN0IFJlbmRlclRhYmxlQ2Vs
bCYgY2VsbCA9IGRvd25jYXN0PFJlbmRlclRhYmxlQ2VsbD4oKm1fcmVuZGVyZXIpOwpAQCAtMzUz
LDcgKzM1Myw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6
OnRpdGxlVUlFbGVtZW50KCkgY29uc3QKICAgICAvLyBUcnkgdG8gZmluZCBpZiB0aGUgZmlyc3Qg
Y2VsbCBpbiB0aGlzIHJvdyBpcyBhIDx0aD4uIElmIGl0IGlzLAogICAgIC8vIHRoZW4gaXQgY2Fu
IGFjdCBhcyB0aGUgdGl0bGUgdWkgZWxlbWVudC4gKFRoaXMgaXMgb25seSBpbiB0aGUKICAgICAv
LyBjYXNlIHdoZW4gdGhlIHRhYmxlIGlzIG5vdCBhcHBlYXJpbmcgYXMgYW4gQVhUYWJsZS4pCi0g
ICAgaWYgKGlzVGFibGVDZWxsKCkgfHwgIWlzPFJlbmRlclRhYmxlQ2VsbD4obV9yZW5kZXJlcikp
CisgICAgaWYgKGlzVGFibGVDZWxsKCkgfHwgIWlzPFJlbmRlclRhYmxlQ2VsbD4ocmVuZGVyZXIo
KSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gVGFibGUgY2VsbHMgdGhhdCBh
cmUgdGggY2Fubm90IGhhdmUgdGl0bGUgdWkgZWxlbWVudHMsIHNpbmNlIGJ5IGRlZmluaXRpb24K
</data>

          </attachment>
      

    </bug>

</bugzilla>