<?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>227738</bug_id>
          
          <creation_ts>2021-07-06 23:39:31 -0700</creation_ts>
          <short_desc>Defend against stack overflow in GraphicsLayerCA::recursiveCommitChanges</short_desc>
          <delta_ts>2021-07-08 15:17:48 -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>Compositing</component>
          <version>WebKit Local 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="Cameron McCormack (:heycam)">heycam</reporter>
          <assigned_to name="Cameron McCormack (:heycam)">heycam</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1775222</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-07-06 23:39:31 -0700</bug_when>
    <thetext>It looks like GraphicsLayerCA::recursiveCommitChanges can cause a stack overflow in some configurations.  We already have CommitState::treeDepth, which we use to avoid creating deep CALayer trees, so we should be able to stop the recursion at the same level.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775223</commentid>
    <comment_count>1</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-07-06 23:39:57 -0700</bug_when>
    <thetext>&lt;rdar://42584284&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775225</commentid>
    <comment_count>2</comment_count>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-07-06 23:49:02 -0700</bug_when>
    <thetext>All CommitState::treeDepth does currently is avoid hooking up the too-deep PlatformCALayers to their intended parents.  I&apos;m slightly concerned with leaving other aspects of the PlatformCALayers out of date, though most of the LayerChange reasons are just about rendering, geometry, etc., and shouldn&apos;t be a big deal, especially when not hooked up.  ScrollingNodeChanged is a bit different, but we tend to check for scrolling node ID validity when we use them.

Another concern is that the treeDepth counts structural layers, and so a given GraphicsLayerCA may be too deep in one call to recursiveCommitChanges, and not be too deep the next.  In such a case we should then continue to process the old m_uncommittedChanges on the children, so that should be OK?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775575</commentid>
    <comment_count>3</comment_count>
      <attachid>433107</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-07-07 19:01:53 -0700</bug_when>
    <thetext>Created attachment 433107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775617</commentid>
    <comment_count>4</comment_count>
      <attachid>433120</attachid>
    <who name="Cameron McCormack (:heycam)">heycam</who>
    <bug_when>2021-07-07 23:28:55 -0700</bug_when>
    <thetext>Created attachment 433120
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775822</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-08 15:17:47 -0700</bug_when>
    <thetext>Committed r279756 (239529@main): &lt;https://commits.webkit.org/239529@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433120.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433107</attachid>
            <date>2021-07-07 19:01:53 -0700</date>
            <delta_ts>2021-07-07 23:28:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227738-20210708120152.patch</filename>
            <type>text/plain</type>
            <size>8395</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGE1ZjdmNmY0N2ZhMDI3
NWU2N2U0ODQyMGJjMmE2OGJhNWE5NWZmMC4uNTczNWE4MjI4NGVhYmFjOWNjZDVhZTgwMjdmNzc3
YWFkMDE4NjdkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIxLTA3LTA3ICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcCBHcmFwaGlj
c0xheWVyQ0E6OnJlY3Vyc2l2ZUNvbW1pdENoYW5nZXMgcmVjdXJzaW9uIG9uY2UgY01heExheWVy
VHJlZURlcHRoIGlzIHJlYWNoZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzczOAorICAgICAgICA8cmRhcjovLzQyNTg0Mjg0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGF2b2lkIHN0YWNrIG92
ZXJmbG93IGluIHNvbWUgY29uZmlndXJhdGlvbnMsIHN0b3AKKyAgICAgICAgcmVjdXJzaXZlQ29t
bWl0Q2hhbmdlIHJlY3Vyc2lvbiB3aGVuIHdlIHJlYWNoIHRoZSBzYW1lIGxldmVsIHRoYXQgd2UK
KyAgICAgICAgc3RvcCBob29raW5nIHVwIFBsYXRmb3JtQ0FMYXllcnMuIFRoaXMgd2lsbCBsZWF2
ZSBHcmFwaGljc0xheWVyQ0FzIGluCisgICAgICAgIHRoZSB0cmVlIHdpdGggbV91bmNvbW1pdHRl
ZENoYW5nZXMsIGJ1dCBpZiB3ZSBldmVyIGRvIGFub3RoZXIgY2FsbCB0bworICAgICAgICByZWN1
cnNpdmVDb21taXRDaGFuZ2Ugd2hlcmUgdGhlIEdyYXBoaWNzTGF5ZXJDQSBpcyBub3cgYXQgYW4K
KyAgICAgICAgYXBwcm9wcmlhdGUgZGVwdGggKGJlY2F1c2Ugc29tZSBhbmNlc3RvcnMgbG9zdCB0
aGVpciBzdHJ1Y3R1cmFsCisgICAgICAgIGxheWVycywgZm9yIGV4YW1wbGUpLCB0aGVuIHdlJ2xs
IHByb2Nlc3MgdGhlIHVuY29tbWl0dGVkIGNoYW5nZXMgYXQKKyAgICAgICAgdGhhdCBwb2ludC4K
KworICAgICAgICBQdWxsIHVwIHRoZSBpbmNyZW1lbnQgb2YgY29tbWl0U3RhdGUudHJlZURlcHRo
IGZyb20KKyAgICAgICAgY29tbWl0TGF5ZXJDaGFuZ2VzQmVmb3JlU3VibGF5ZXJzIHRvIHJlY3Vy
c2l2ZUNvbW1pdENoYW5nZXMgc28gdGhhdAorICAgICAgICB0aGUgY29tbWl0TGF5ZXJDaGFuZ2Vz
QmVmb3JlU3VibGF5ZXJzIGNhbGwgZm9yIGEgbWFzayBsYXllciBkb2Vzbid0CisgICAgICAgIGNv
bnRyaWJ1dGUgdG8gdGhlIGRlcHRoIGNvdW50LgorCisgICAgICAgIFVzZSBzdHJ1Y3R1cmFsTGF5
ZXJQdXJwb3NlKCkgcmF0aGVyIHRoYW4gbnVsbC1jaGVja2luZworICAgICAgICBtX3N0cnVjdHVy
YWxMYXllciB0byBkZXRlcm1pbmUgd2hldGhlciB3ZSBjb3VudCBhbiBhZGRpdGlvbmFsIGRlcHRo
CisgICAgICAgIGxldmVsLCBzaW5jZSBtX3N0cnVjdHVyYWxMYXllciByZWZsZWN0cyB3aGV0aGVy
IHdlIGFscmVhZHkgaGF2ZSBhCisgICAgICAgIHN0cnVjdHVyYWwgbGF5ZXIgKHdoaWNoIG1heSBv
ciBtYXkgbm90IGdvIGF3YXkpLCBhbmQKKyAgICAgICAgc3RydWN0dXJhbExheWVyUHVycG9zZSgp
IGNhbiB0ZWxsIHVzIHdoZXRoZXIgd2Ugd2lsbCBoYXZlIGEgc3RydWN0dXJhbAorICAgICAgICBs
YXllci4KKworICAgICAgICBUZXN0OiBmYXN0L2xheWVycy9kZWVwLWxheWVyLXVwZGF0ZS5odG1s
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpyZWN1cnNpdmVDb21taXRDaGFuZ2Vz
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6Y29tbWl0TGF5ZXJDaGFuZ2Vz
QmVmb3JlU3VibGF5ZXJzKToKKwogMjAyMS0wNy0wNyAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXlj
YW1AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBsb2dnaW5nIGZvciBHcmFwaGljc0xheWVyQ0E6
Om1fdW5jb21taXR0ZWRDaGFuZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCAxYmY4YzAzN2E5ZGYzOGUx
MGQwNjRjOGFmM2ExM2IzNzMxMGQ3ZTExLi5jZGNkYmJhMjgzNDBiMWYyMjM3ZWY0N2UxNzBmMjgw
ZjQzYTdlMjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTE2NDgsOCArMTY0OCw2IEBAIGJvb2wgR3Jh
cGhpY3NMYXllckNBOjpuZWVkc0NvbW1pdChjb25zdCBDb21taXRTdGF0ZSYgY29tbWl0U3RhdGUp
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0vLyByb290UmVsYXRpdmVUcmFuc2Zvcm1Gb3JTY2Fs
aW5nIGlzIGEgdHJhbnNmb3JtIGZyb20gdGhlIHJvb3QsIGJ1dCBmb3IgbGF5ZXJzIHdpdGggdHJh
bnNmb3JtIGFuaW1hdGlvbnMsIGl0IGNoZXJyeS1waWNrZWQgdGhlIHN0YXRlIG9mIHRoZQotLy8g
YW5pbWF0aW9uIHRoYXQgY29udHJpYnV0ZXMgbWF4aW1hbGx5IHRvIHRoZSBzY2FsZSAob24gZXZl
cnkgbGF5ZXIgd2l0aCBhbmltYXRpb25zIGRvd24gdGhlIGhpZXJhcmNoeSkuCiB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6cmVjdXJzaXZlQ29tbWl0Q2hhbmdlcyhDb21taXRTdGF0ZSYgY29tbWl0U3Rh
dGUsIGNvbnN0IFRyYW5zZm9ybVN0YXRlJiBzdGF0ZSwgZmxvYXQgcGFnZVNjYWxlRmFjdG9yLCBj
b25zdCBGbG9hdFBvaW50JiBwb3NpdGlvblJlbGF0aXZlVG9CYXNlLCBib29sIGFmZmVjdGVkQnlQ
YWdlU2NhbGUpCiB7CiAgICAgaWYgKCFuZWVkc0NvbW1pdChjb21taXRTdGF0ZSkpCkBAIC0xNjU4
LDYgKzE2NTYsMTAgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnJlY3Vyc2l2ZUNvbW1pdENoYW5n
ZXMoQ29tbWl0U3RhdGUmIGNvbW1pdFN0YXRlLCBjb25zdCBUcmEKICAgICBUcmFuc2Zvcm1TdGF0
ZSBsb2NhbFN0YXRlID0gc3RhdGU7CiAgICAgQ29tbWl0U3RhdGUgY2hpbGRDb21taXRTdGF0ZSA9
IGNvbW1pdFN0YXRlOwogCisgICAgKytjaGlsZENvbW1pdFN0YXRlLnRyZWVEZXB0aDsKKyAgICBp
ZiAoc3RydWN0dXJhbExheWVyUHVycG9zZSgpICE9IE5vU3RydWN0dXJhbExheWVyKQorICAgICAg
ICArK2NoaWxkQ29tbWl0U3RhdGUudHJlZURlcHRoOworCiAgICAgYm9vbCBhZmZlY3RlZEJ5VHJh
bnNmb3JtQW5pbWF0aW9uID0gY29tbWl0U3RhdGUuYW5jZXN0b3JIYXNUcmFuc2Zvcm1BbmltYXRp
b247CiAKICAgICBib29sIGFjY3VtdWxhdGVUcmFuc2Zvcm0gPSBhY2N1bXVsYXRlc1RyYW5zZm9y
bSgqdGhpcyk7CkBAIC0xNzM0LDEzICsxNzM2LDE1IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpy
ZWN1cnNpdmVDb21taXRDaGFuZ2VzKENvbW1pdFN0YXRlJiBjb21taXRTdGF0ZSwgY29uc3QgVHJh
CiAgICAgfQogCiAgICAgYm9vbCBoYXNEZXNjZW5kYW50c1dpdGhSdW5uaW5nVHJhbnNmb3JtQW5p
bWF0aW9ucyA9IGZhbHNlOwotICAgIAotICAgIGZvciAoYXV0byYgbGF5ZXIgOiBjaGlsZHJlbigp
KSB7Ci0gICAgICAgIGF1dG8mIGN1cnJlbnRDaGlsZCA9IGRvd25jYXN0PEdyYXBoaWNzTGF5ZXJD
QT4obGF5ZXIuZ2V0KCkpOwotICAgICAgICBjdXJyZW50Q2hpbGQucmVjdXJzaXZlQ29tbWl0Q2hh
bmdlcyhjaGlsZENvbW1pdFN0YXRlLCBsb2NhbFN0YXRlLCBwYWdlU2NhbGVGYWN0b3IsIGJhc2VS
ZWxhdGl2ZVBvc2l0aW9uLCBhZmZlY3RlZEJ5UGFnZVNjYWxlKTsKIAotICAgICAgICBpZiAoY3Vy
cmVudENoaWxkLmlzUnVubmluZ1RyYW5zZm9ybUFuaW1hdGlvbigpIHx8IGN1cnJlbnRDaGlsZC5o
YXNEZXNjZW5kYW50c1dpdGhSdW5uaW5nVHJhbnNmb3JtQW5pbWF0aW9ucygpKQotICAgICAgICAg
ICAgaGFzRGVzY2VuZGFudHNXaXRoUnVubmluZ1RyYW5zZm9ybUFuaW1hdGlvbnMgPSB0cnVlOwor
ICAgIGlmIChjaGlsZENvbW1pdFN0YXRlLnRyZWVEZXB0aCA8PSBjTWF4TGF5ZXJUcmVlRGVwdGgp
IHsKKyAgICAgICAgZm9yIChhdXRvJiBsYXllciA6IGNoaWxkcmVuKCkpIHsKKyAgICAgICAgICAg
IGF1dG8mIGN1cnJlbnRDaGlsZCA9IGRvd25jYXN0PEdyYXBoaWNzTGF5ZXJDQT4obGF5ZXIuZ2V0
KCkpOworICAgICAgICAgICAgY3VycmVudENoaWxkLnJlY3Vyc2l2ZUNvbW1pdENoYW5nZXMoY2hp
bGRDb21taXRTdGF0ZSwgbG9jYWxTdGF0ZSwgcGFnZVNjYWxlRmFjdG9yLCBiYXNlUmVsYXRpdmVQ
b3NpdGlvbiwgYWZmZWN0ZWRCeVBhZ2VTY2FsZSk7CisKKyAgICAgICAgICAgIGlmIChjdXJyZW50
Q2hpbGQuaXNSdW5uaW5nVHJhbnNmb3JtQW5pbWF0aW9uKCkgfHwgY3VycmVudENoaWxkLmhhc0Rl
c2NlbmRhbnRzV2l0aFJ1bm5pbmdUcmFuc2Zvcm1BbmltYXRpb25zKCkpCisgICAgICAgICAgICAg
ICAgaGFzRGVzY2VuZGFudHNXaXRoUnVubmluZ1RyYW5zZm9ybUFuaW1hdGlvbnMgPSB0cnVlOwor
ICAgICAgICB9CiAgICAgfQogCiAgICAgY29tbWl0U3RhdGUudG90YWxCYWNrZHJvcEZpbHRlckFy
ZWEgPSBjaGlsZENvbW1pdFN0YXRlLnRvdGFsQmFja2Ryb3BGaWx0ZXJBcmVhOwpAQCAtMTg1OCwx
MCArMTg2Miw2IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpjb21taXRMYXllckNoYW5nZXNCZWZv
cmVTdWJsYXllcnMoQ29tbWl0U3RhdGUmIGNvbW1pdFN0YXRlCiB7CiAgICAgU2V0Rm9yU2NvcGU8
Ym9vbD4gY29tbWl0dGluZ0NoYW5nZXNDaGFuZ2UobV9pc0NvbW1pdHRpbmdDaGFuZ2VzLCB0cnVl
KTsKIAotICAgICsrY29tbWl0U3RhdGUudHJlZURlcHRoOwotICAgIGlmIChtX3N0cnVjdHVyYWxM
YXllcikKLSAgICAgICAgKytjb21taXRTdGF0ZS50cmVlRGVwdGg7Ci0KICAgICBpZiAoIW1fdW5j
b21taXR0ZWRDaGFuZ2VzKSB7CiAgICAgICAgIC8vIEVuc3VyZSB0aGF0IHdlIGNhcCBsYXllciBk
ZXB0aCBpbiBjb21taXRMYXllckNoYW5nZXNBZnRlclN1YmxheWVycygpLgogICAgICAgICBpZiAo
Y29tbWl0U3RhdGUudHJlZURlcHRoID4gY01heExheWVyVHJlZURlcHRoKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQwMzY3
OWYzNzgxZGFmM2RjOWQ3ZjkwNmIyMzc4MzlkMjNlMjFkMDEuLjQyMGNkZTAzYmNkNWRiNTNiOWRh
OWE5NWY4ZDk5NGNmZGQ1OTVmMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNy0wNyAg
Q2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgorCisgICAgICAgIFN0b3AgR3Jh
cGhpY3NMYXllckNBOjpyZWN1cnNpdmVDb21taXRDaGFuZ2VzIHJlY3Vyc2lvbiBvbmNlIGNNYXhM
YXllclRyZWVEZXB0aCBpcyByZWFjaGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjc3MzgKKyAgICAgICAgPHJkYXI6Ly80MjU4NDI4ND4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0IHRo
YXQgY2hhbmdlcyBtYWRlIHRvIEdyYXBoaWNzTGF5ZXJDQXMgdGhhdCBhcmUgdG9vIGRlZXAKKyAg
ICAgICAgaW4gdGhlIHRyZWUgd2lsbCBiZSBjb21taXR0ZWQgaWYgdGhleSBsYXRlciBiZWNvbWUg
bm90IHRvbyBkZWVwLgorCisgICAgICAgICogZmFzdC9sYXllcnMvZGVlcC1sYXllci11cGRhdGUt
ZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9sYXllcnMvZGVlcC1sYXllci11
cGRhdGUuaHRtbDogQWRkZWQuCisKIDIwMjEtMDctMDQgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlh
LmNvbT4KIAogICAgICAgICBSZXN5bmMgd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5n
L2FzcGVjdC1yYXRpbyBmcm9tIHVwc3RyZWFtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2xheWVycy9kZWVwLWxheWVyLXVwZGF0ZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9sYXllcnMvZGVlcC1sYXllci11cGRhdGUtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MmI3
NzMzOWU4ZDJkOTVlNGE5NTI5N2IxMThjMjU2ZGRmZThiZDE0Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvZGVlcC1sYXllci11cGRhdGUtZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorZGl2IHsgd2lsbC1jaGFu
Z2U6IHRyYW5zZm9ybTsgb3BhY2l0eTogMC41OyB9Cis8L3N0eWxlPgorPGRpdj5UZXN0IHBhc3Nl
cyBpZiB0aGlzIHRleHQgaXMgc2hvd24gYXQgMC41IG9wYWNpdHkuPC9kaXY+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2xheWVycy9kZWVwLWxheWVyLXVwZGF0ZS5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9sYXllcnMvZGVlcC1sYXllci11cGRhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMjc4
MTc2NmM2ZjQ2OWQzNmU5M2JiOWQ1YTU4MmY5YTRhZjczMDRkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9sYXllcnMvZGVlcC1sYXllci11cGRhdGUuaHRtbApAQCAtMCwwICsx
LDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KKy5pbmR1Y2Utc3RydWN0dXJhbC1sYXll
cnMgZGl2IHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVaKDApOyB0cmFuc2Zvcm0tc3R5bGU6IHByZXNl
cnZlLTNkOyB9CitkaXYgeyB3aWxsLWNoYW5nZTogdHJhbnNmb3JtOyB9Cis8L3N0eWxlPgorPGJv
ZHkgY2xhc3M9ImluZHVjZS1zdHJ1Y3R1cmFsLWxheWVycyIgb25sb2FkPSJydW4oKSI+Cis8c2Ny
aXB0PgorY29uc3QgY01heExheWVyVHJlZURlcHRoID0gMTI4OyAvLyBmcm9tIEdyYXBoaWNzTGF5
ZXJDQS5jcHAKKworZnVuY3Rpb24gYnVpbGREZWVwTGF5ZXJUcmVlKCkgeworICAgIGxldCBpbm5l
cm1vc3REaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBpbm5lcm1vc3RE
aXYudGV4dENvbnRlbnQgPSAiVGVzdCBwYXNzZXMgaWYgdGhpcyB0ZXh0IGlzIHNob3duIGF0IDAu
NSBvcGFjaXR5LiI7CisKKyAgICAvLyBTZXQgdXAgYSBsYXllciB0cmVlIHRoYXQsIGlmIGVhY2gg
ZGl2IGhhcyBhIHN0cnVjdHVyYWwgbGF5ZXIsIGhhcyBhIGRlcHRoCisgICAgLy8gdGhhdCBpcyBn
cmVhdGVyIHRoYW4gY01heExheWVyVHJlZURlcHRoLCBidXQgd2l0aG91dCBhbnkgc3RydWN0dXJh
bCBsYXllcnMsCisgICAgLy8gd2lsbCBiZSB3aXRoaW4gdGhlIGRlcHRoIGxpbWl0LgorICAgIGxl
dCBlID0gaW5uZXJtb3N0RGl2OworICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY01heExheWVyVHJl
ZURlcHRoICogMC43NTsgKytpKSB7CisgICAgICAgIGxldCBmID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CisgICAgICAgIGYuYXBwZW5kKGUpOworICAgICAgICBlID0gZjsKKyAgICB9
CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZSk7CisKKyAgICByZXR1cm4gaW5uZXJtb3N0RGl2
OworfQorCitmdW5jdGlvbiByZW1vdmVTdHJ1Y3R1cmFsTGF5ZXJzKCkgeworICAgIGRvY3VtZW50
LmJvZHkuY2xhc3NOYW1lID0gJyc7Cit9CisKK2Z1bmN0aW9uIG5leHRBbmltYXRpb25GcmFtZSgp
IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UocmVxdWVzdEFuaW1hdGlvbkZyYW1lKTsKK30KKwor
YXN5bmMgZnVuY3Rpb24gcnVuKCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICBsZXQgaW5uZXJtb3N0RGl2ID0g
YnVpbGREZWVwTGF5ZXJUcmVlKCk7CisgICAgYXdhaXQgbmV4dEFuaW1hdGlvbkZyYW1lKCk7CisK
KyAgICBpbm5lcm1vc3REaXYuc3R5bGUub3BhY2l0eSA9IDAuNTsgLy8gQ2hhbmdlIHRvIGEgbGF5
ZXIgdGhhdCBpcyB0b28gZGVlcC4KKyAgICBhd2FpdCBuZXh0QW5pbWF0aW9uRnJhbWUoKTsKKwor
ICAgIHJlbW92ZVN0cnVjdHVyYWxMYXllcnMoKTsKKyAgICBhd2FpdCBuZXh0QW5pbWF0aW9uRnJh
bWUoKTsKKworICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc05hbWUgPSAnJzsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworfQorPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433120</attachid>
            <date>2021-07-07 23:28:55 -0700</date>
            <delta_ts>2021-07-08 15:17:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227738-20210708162853.patch</filename>
            <type>text/plain</type>
            <size>8610</size>
            <attacher name="Cameron McCormack (:heycam)">heycam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGE1ZjdmNmY0N2ZhMDI3
NWU2N2U0ODQyMGJjMmE2OGJhNWE5NWZmMC4uMzM0MzFiMjZiZjc2MjNkYzkyNjBkODliYzVlZTU3
Yjk0NmFkODY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIxLTA3LTA3ICBDYW1l
cm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CisKKyAgICAgICAgU3RvcCBHcmFwaGlj
c0xheWVyQ0E6OnJlY3Vyc2l2ZUNvbW1pdENoYW5nZXMgcmVjdXJzaW9uIG9uY2UgY01heExheWVy
VHJlZURlcHRoIGlzIHJlYWNoZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNzczOAorICAgICAgICA8cmRhcjovLzQyNTg0Mjg0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBUbyBhdm9pZCBzdGFjayBvdmVy
ZmxvdyBpbiBzb21lIGNvbmZpZ3VyYXRpb25zLCBzdG9wCisgICAgICAgIHJlY3Vyc2l2ZUNvbW1p
dENoYW5nZSByZWN1cnNpb24gd2hlbiB3ZSByZWFjaCB0aGUgc2FtZSBsZXZlbCB0aGF0IHdlCisg
ICAgICAgIHN0b3AgaG9va2luZyB1cCBQbGF0Zm9ybUNBTGF5ZXJzLiBUaGlzIHdpbGwgbGVhdmUg
R3JhcGhpY3NMYXllckNBcyBpbgorICAgICAgICB0aGUgdHJlZSB3aXRoIG1fdW5jb21taXR0ZWRD
aGFuZ2VzLCBidXQgaWYgd2UgZXZlciBkbyBhbm90aGVyIGNhbGwgdG8KKyAgICAgICAgcmVjdXJz
aXZlQ29tbWl0Q2hhbmdlIHdoZXJlIHRoZSBHcmFwaGljc0xheWVyQ0EgaXMgbm93IGF0IGFuCisg
ICAgICAgIGFwcHJvcHJpYXRlIGRlcHRoIChiZWNhdXNlIHNvbWUgYW5jZXN0b3JzIGxvc3QgdGhl
aXIgc3RydWN0dXJhbAorICAgICAgICBsYXllcnMsIGZvciBleGFtcGxlKSwgdGhlbiB3ZSdsbCBw
cm9jZXNzIHRoZSB1bmNvbW1pdHRlZCBjaGFuZ2VzIGF0CisgICAgICAgIHRoYXQgcG9pbnQuCisK
KyAgICAgICAgUHVsbCB1cCB0aGUgaW5jcmVtZW50IG9mIGNvbW1pdFN0YXRlLnRyZWVEZXB0aCBm
cm9tCisgICAgICAgIGNvbW1pdExheWVyQ2hhbmdlc0JlZm9yZVN1YmxheWVycyB0byByZWN1cnNp
dmVDb21taXRDaGFuZ2VzIHNvIHRoYXQKKyAgICAgICAgdGhlIGNvbW1pdExheWVyQ2hhbmdlc0Jl
Zm9yZVN1YmxheWVycyBjYWxsIGZvciBhIG1hc2sgbGF5ZXIgZG9lc24ndAorICAgICAgICBjb250
cmlidXRlIHRvIHRoZSBkZXB0aCBjb3VudC4KKworICAgICAgICBVc2Ugc3RydWN0dXJhbExheWVy
UHVycG9zZSgpIHJhdGhlciB0aGFuIG51bGwtY2hlY2tpbmcKKyAgICAgICAgbV9zdHJ1Y3R1cmFs
TGF5ZXIgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgd2UgY291bnQgYW4gYWRkaXRpb25hbCBkZXB0aAor
ICAgICAgICBsZXZlbCwgc2luY2UgbV9zdHJ1Y3R1cmFsTGF5ZXIgcmVmbGVjdHMgd2hldGhlciB3
ZSBhbHJlYWR5IGhhdmUgYQorICAgICAgICBzdHJ1Y3R1cmFsIGxheWVyICh3aGljaCBtYXkgb3Ig
bWF5IG5vdCBnbyBhd2F5KSwgYW5kCisgICAgICAgIHN0cnVjdHVyYWxMYXllclB1cnBvc2UoKSBj
YW4gdGVsbCB1cyB3aGV0aGVyIHdlIHdpbGwgaGF2ZSBhIHN0cnVjdHVyYWwKKyAgICAgICAgbGF5
ZXIuCisKKyAgICAgICAgVGVzdDogZmFzdC9sYXllcnMvZGVlcC1sYXllci11cGRhdGUuaHRtbAor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6cmVjdXJzaXZlQ29tbWl0Q2hhbmdlcyk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OmNvbW1pdExheWVyQ2hhbmdlc0Jl
Zm9yZVN1YmxheWVycyk6CisKIDIwMjEtMDctMDcgIENhbWVyb24gTWNDb3JtYWNrICA8aGV5Y2Ft
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgbG9nZ2luZyBmb3IgR3JhcGhpY3NMYXllckNBOjpt
X3VuY29tbWl0dGVkQ2hhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggMWJmOGMwMzdhOWRmMzhlMTBk
MDY0YzhhZjNhMTNiMzczMTBkN2UxMS4uY2RjZGJiYTI4MzQwYjFmMjIzN2VmNDdlMTcwZjI4MGY0
M2E3ZTI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Ev
R3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0xNjQ4LDggKzE2NDgsNiBAQCBib29sIEdyYXBo
aWNzTGF5ZXJDQTo6bmVlZHNDb21taXQoY29uc3QgQ29tbWl0U3RhdGUmIGNvbW1pdFN0YXRlKQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotLy8gcm9vdFJlbGF0aXZlVHJhbnNmb3JtRm9yU2NhbGlu
ZyBpcyBhIHRyYW5zZm9ybSBmcm9tIHRoZSByb290LCBidXQgZm9yIGxheWVycyB3aXRoIHRyYW5z
Zm9ybSBhbmltYXRpb25zLCBpdCBjaGVycnktcGlja2VkIHRoZSBzdGF0ZSBvZiB0aGUKLS8vIGFu
aW1hdGlvbiB0aGF0IGNvbnRyaWJ1dGVzIG1heGltYWxseSB0byB0aGUgc2NhbGUgKG9uIGV2ZXJ5
IGxheWVyIHdpdGggYW5pbWF0aW9ucyBkb3duIHRoZSBoaWVyYXJjaHkpLgogdm9pZCBHcmFwaGlj
c0xheWVyQ0E6OnJlY3Vyc2l2ZUNvbW1pdENoYW5nZXMoQ29tbWl0U3RhdGUmIGNvbW1pdFN0YXRl
LCBjb25zdCBUcmFuc2Zvcm1TdGF0ZSYgc3RhdGUsIGZsb2F0IHBhZ2VTY2FsZUZhY3RvciwgY29u
c3QgRmxvYXRQb2ludCYgcG9zaXRpb25SZWxhdGl2ZVRvQmFzZSwgYm9vbCBhZmZlY3RlZEJ5UGFn
ZVNjYWxlKQogewogICAgIGlmICghbmVlZHNDb21taXQoY29tbWl0U3RhdGUpKQpAQCAtMTY1OCw2
ICsxNjU2LDEwIEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpyZWN1cnNpdmVDb21taXRDaGFuZ2Vz
KENvbW1pdFN0YXRlJiBjb21taXRTdGF0ZSwgY29uc3QgVHJhCiAgICAgVHJhbnNmb3JtU3RhdGUg
bG9jYWxTdGF0ZSA9IHN0YXRlOwogICAgIENvbW1pdFN0YXRlIGNoaWxkQ29tbWl0U3RhdGUgPSBj
b21taXRTdGF0ZTsKIAorICAgICsrY2hpbGRDb21taXRTdGF0ZS50cmVlRGVwdGg7CisgICAgaWYg
KHN0cnVjdHVyYWxMYXllclB1cnBvc2UoKSAhPSBOb1N0cnVjdHVyYWxMYXllcikKKyAgICAgICAg
KytjaGlsZENvbW1pdFN0YXRlLnRyZWVEZXB0aDsKKwogICAgIGJvb2wgYWZmZWN0ZWRCeVRyYW5z
Zm9ybUFuaW1hdGlvbiA9IGNvbW1pdFN0YXRlLmFuY2VzdG9ySGFzVHJhbnNmb3JtQW5pbWF0aW9u
OwogCiAgICAgYm9vbCBhY2N1bXVsYXRlVHJhbnNmb3JtID0gYWNjdW11bGF0ZXNUcmFuc2Zvcm0o
KnRoaXMpOwpAQCAtMTczNCwxMyArMTczNiwxNSBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6cmVj
dXJzaXZlQ29tbWl0Q2hhbmdlcyhDb21taXRTdGF0ZSYgY29tbWl0U3RhdGUsIGNvbnN0IFRyYQog
ICAgIH0KIAogICAgIGJvb2wgaGFzRGVzY2VuZGFudHNXaXRoUnVubmluZ1RyYW5zZm9ybUFuaW1h
dGlvbnMgPSBmYWxzZTsKLSAgICAKLSAgICBmb3IgKGF1dG8mIGxheWVyIDogY2hpbGRyZW4oKSkg
ewotICAgICAgICBhdXRvJiBjdXJyZW50Q2hpbGQgPSBkb3duY2FzdDxHcmFwaGljc0xheWVyQ0E+
KGxheWVyLmdldCgpKTsKLSAgICAgICAgY3VycmVudENoaWxkLnJlY3Vyc2l2ZUNvbW1pdENoYW5n
ZXMoY2hpbGRDb21taXRTdGF0ZSwgbG9jYWxTdGF0ZSwgcGFnZVNjYWxlRmFjdG9yLCBiYXNlUmVs
YXRpdmVQb3NpdGlvbiwgYWZmZWN0ZWRCeVBhZ2VTY2FsZSk7CiAKLSAgICAgICAgaWYgKGN1cnJl
bnRDaGlsZC5pc1J1bm5pbmdUcmFuc2Zvcm1BbmltYXRpb24oKSB8fCBjdXJyZW50Q2hpbGQuaGFz
RGVzY2VuZGFudHNXaXRoUnVubmluZ1RyYW5zZm9ybUFuaW1hdGlvbnMoKSkKLSAgICAgICAgICAg
IGhhc0Rlc2NlbmRhbnRzV2l0aFJ1bm5pbmdUcmFuc2Zvcm1BbmltYXRpb25zID0gdHJ1ZTsKKyAg
ICBpZiAoY2hpbGRDb21taXRTdGF0ZS50cmVlRGVwdGggPD0gY01heExheWVyVHJlZURlcHRoKSB7
CisgICAgICAgIGZvciAoYXV0byYgbGF5ZXIgOiBjaGlsZHJlbigpKSB7CisgICAgICAgICAgICBh
dXRvJiBjdXJyZW50Q2hpbGQgPSBkb3duY2FzdDxHcmFwaGljc0xheWVyQ0E+KGxheWVyLmdldCgp
KTsKKyAgICAgICAgICAgIGN1cnJlbnRDaGlsZC5yZWN1cnNpdmVDb21taXRDaGFuZ2VzKGNoaWxk
Q29tbWl0U3RhdGUsIGxvY2FsU3RhdGUsIHBhZ2VTY2FsZUZhY3RvciwgYmFzZVJlbGF0aXZlUG9z
aXRpb24sIGFmZmVjdGVkQnlQYWdlU2NhbGUpOworCisgICAgICAgICAgICBpZiAoY3VycmVudENo
aWxkLmlzUnVubmluZ1RyYW5zZm9ybUFuaW1hdGlvbigpIHx8IGN1cnJlbnRDaGlsZC5oYXNEZXNj
ZW5kYW50c1dpdGhSdW5uaW5nVHJhbnNmb3JtQW5pbWF0aW9ucygpKQorICAgICAgICAgICAgICAg
IGhhc0Rlc2NlbmRhbnRzV2l0aFJ1bm5pbmdUcmFuc2Zvcm1BbmltYXRpb25zID0gdHJ1ZTsKKyAg
ICAgICAgfQogICAgIH0KIAogICAgIGNvbW1pdFN0YXRlLnRvdGFsQmFja2Ryb3BGaWx0ZXJBcmVh
ID0gY2hpbGRDb21taXRTdGF0ZS50b3RhbEJhY2tkcm9wRmlsdGVyQXJlYTsKQEAgLTE4NTgsMTAg
KzE4NjIsNiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6Y29tbWl0TGF5ZXJDaGFuZ2VzQmVmb3Jl
U3VibGF5ZXJzKENvbW1pdFN0YXRlJiBjb21taXRTdGF0ZQogewogICAgIFNldEZvclNjb3BlPGJv
b2w+IGNvbW1pdHRpbmdDaGFuZ2VzQ2hhbmdlKG1faXNDb21taXR0aW5nQ2hhbmdlcywgdHJ1ZSk7
CiAKLSAgICArK2NvbW1pdFN0YXRlLnRyZWVEZXB0aDsKLSAgICBpZiAobV9zdHJ1Y3R1cmFsTGF5
ZXIpCi0gICAgICAgICsrY29tbWl0U3RhdGUudHJlZURlcHRoOwotCiAgICAgaWYgKCFtX3VuY29t
bWl0dGVkQ2hhbmdlcykgewogICAgICAgICAvLyBFbnN1cmUgdGhhdCB3ZSBjYXAgbGF5ZXIgZGVw
dGggaW4gY29tbWl0TGF5ZXJDaGFuZ2VzQWZ0ZXJTdWJsYXllcnMoKS4KICAgICAgICAgaWYgKGNv
bW1pdFN0YXRlLnRyZWVEZXB0aCA+IGNNYXhMYXllclRyZWVEZXB0aCkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMDM2Nzlm
Mzc4MWRhZjNkYzlkN2Y5MDZiMjM3ODM5ZDIzZTIxZDAxLi40NDcwY2ExNjBjZjI1NThhMjA3NTU2
MGIxYjQ2NWI3MGUxYWE2MzU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDctMDcgIENh
bWVyb24gTWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KKworICAgICAgICBTdG9wIEdyYXBo
aWNzTGF5ZXJDQTo6cmVjdXJzaXZlQ29tbWl0Q2hhbmdlcyByZWN1cnNpb24gb25jZSBjTWF4TGF5
ZXJUcmVlRGVwdGggaXMgcmVhY2hlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI3NzM4CisgICAgICAgIDxyZGFyOi8vNDI1ODQyODQ+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFkZCBhIHRlc3QgdGhhdCBj
aGFuZ2VzIG1hZGUgdG8gR3JhcGhpY3NMYXllckNBcyB0aGF0IGFyZSB0b28gZGVlcAorICAgICAg
ICBpbiB0aGUgdHJlZSB3aWxsIGJlIGNvbW1pdHRlZCBpZiB0aGV5IGxhdGVyIGJlY29tZSBub3Qg
dG9vIGRlZXAuCisKKyAgICAgICAgKiBmYXN0L2xheWVycy9kZWVwLWxheWVyLXVwZGF0ZS1leHBl
Y3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2xheWVycy9kZWVwLWxheWVyLXVwZGF0
ZS5odG1sOiBBZGRlZC4KKwogMjAyMS0wNy0wNCAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIFJlc3luYyB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvYXNw
ZWN0LXJhdGlvIGZyb20gdXBzdHJlYW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbGF5
ZXJzL2RlZXAtbGF5ZXItdXBkYXRlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2xh
eWVycy9kZWVwLWxheWVyLXVwZGF0ZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxYzljYTY0
ZjQ1NTliOTExYjMyNmIzMTY3ZjZkODljZTgzNGI0OWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2xheWVycy9kZWVwLWxheWVyLXVwZGF0ZS1leHBlY3RlZC5odG1sCkBAIC0w
LDAgKzEsNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CitkaXYgeyB3aWxsLWNoYW5nZTog
dHJhbnNmb3JtOyB9Cis8L3N0eWxlPgorPGRpdiBzdHlsZT0ib3BhY2l0eTogMC41OyI+Rmlyc3Qg
b2YgdHdvIGxpbmVzLCBhdCAwLjUgb3BhY2l0eS48L2Rpdj4KKzxkaXYgc3R5bGU9Im92ZXJmbG93
OiBzY3JvbGw7Ij5TZWNvbmQgb2YgdHdvIGxpbmVzLCBpbiBhIHNjcm9sbGFibGUgZWxlbWVudC48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbGF5ZXJzL2RlZXAtbGF5ZXItdXBk
YXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2xheWVycy9kZWVwLWxheWVyLXVwZGF0ZS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjBmMmIzMTJhZDI2Y2Y4MjE0YmY1YmQzOTQ5NTk0NGJmNzcwMTQ5ZWUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xheWVycy9kZWVwLWxheWVyLXVwZGF0
ZS5odG1sCkBAIC0wLDAgKzEsNTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorLmluZHVj
ZS1zdHJ1Y3R1cmFsLWxheWVycyBkaXYgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVooMCk7IHRyYW5z
Zm9ybS1zdHlsZTogcHJlc2VydmUtM2Q7IH0KK2RpdiB7IHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07
IH0KKzwvc3R5bGU+Cis8Ym9keSBjbGFzcz0iaW5kdWNlLXN0cnVjdHVyYWwtbGF5ZXJzIiBvbmxv
YWQ9InJ1bigpIj4KKzxzY3JpcHQ+Citjb25zdCBjTWF4TGF5ZXJUcmVlRGVwdGggPSAxMjg7IC8v
IGZyb20gR3JhcGhpY3NMYXllckNBLmNwcAorCitmdW5jdGlvbiBidWlsZERlZXBMYXllclRyZWUo
dGV4dCkgeworICAgIGxldCBpbm5lcm1vc3REaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKKyAgICBpbm5lcm1vc3REaXYudGV4dENvbnRlbnQgPSB0ZXh0OworCisgICAgLy8gU2V0
IHVwIGEgbGF5ZXIgdHJlZSB0aGF0LCBpZiBlYWNoIGRpdiBoYXMgYSBzdHJ1Y3R1cmFsIGxheWVy
LCBoYXMgYSBkZXB0aAorICAgIC8vIHRoYXQgaXMgZ3JlYXRlciB0aGFuIGNNYXhMYXllclRyZWVE
ZXB0aCwgYnV0IHdpdGhvdXQgYW55IHN0cnVjdHVyYWwgbGF5ZXJzLAorICAgIC8vIHdpbGwgYmUg
d2l0aGluIHRoZSBkZXB0aCBsaW1pdC4KKyAgICBsZXQgZSA9IGlubmVybW9zdERpdjsKKyAgICBm
b3IgKGxldCBpID0gMDsgaSA8IGNNYXhMYXllclRyZWVEZXB0aCAqIDAuNzU7ICsraSkgeworICAg
ICAgICBsZXQgZiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgICBmLmFw
cGVuZChlKTsKKyAgICAgICAgZSA9IGY7CisgICAgfQorICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
KGUpOworCisgICAgcmV0dXJuIGlubmVybW9zdERpdjsKK30KKworZnVuY3Rpb24gcmVtb3ZlU3Ry
dWN0dXJhbExheWVycygpIHsKKyAgICBkb2N1bWVudC5ib2R5LmNsYXNzTmFtZSA9ICcnOworfQor
CitmdW5jdGlvbiBuZXh0QW5pbWF0aW9uRnJhbWUoKSB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNl
KHJlcXVlc3RBbmltYXRpb25GcmFtZSk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHJ1bigpIHsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworCisgICAgbGV0IGlubmVybW9zdERpdjEgPSBidWlsZERlZXBMYXllclRyZWUoIkZpcnN0
IG9mIHR3byBsaW5lcywgYXQgMC41IG9wYWNpdHkuIik7CisgICAgbGV0IGlubmVybW9zdERpdjIg
PSBidWlsZERlZXBMYXllclRyZWUoIlNlY29uZCBvZiB0d28gbGluZXMsIGluIGEgc2Nyb2xsYWJs
ZSBlbGVtZW50LiIpOworICAgIGF3YWl0IG5leHRBbmltYXRpb25GcmFtZSgpOworCisgICAgLy8g
Q2hhbmdlIHRvIGxheWVycyB0aGF0IGFyZSB0b28gZGVlcC4KKyAgICBpbm5lcm1vc3REaXYxLnN0
eWxlLm9wYWNpdHkgPSAwLjU7CisgICAgaW5uZXJtb3N0RGl2Mi5zdHlsZS5vdmVyZmxvdyA9ICJz
Y3JvbGwiOworICAgIGF3YWl0IG5leHRBbmltYXRpb25GcmFtZSgpOworCisgICAgcmVtb3ZlU3Ry
dWN0dXJhbExheWVycygpOworICAgIGF3YWl0IG5leHRBbmltYXRpb25GcmFtZSgpOworCisgICAg
ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTmFtZSA9ICcnOworICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9Cis8L3Njcmlw
dD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>