<?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>103677</bug_id>
          
          <creation_ts>2012-11-29 15:30:41 -0800</creation_ts>
          <short_desc>[CSS Grid Layout] Support percentage paddings and margins on grid items</short_desc>
          <delta_ts>2012-12-03 18:25:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          
          <blocked>60731</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>779510</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-11-29 15:30:41 -0800</bug_when>
    <thetext>Following bug 102968, we should be properly resolving percentage and calc() on width / height but no effort was made to handle padding and margin which also accepts a &lt;percentage&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779557</commentid>
    <comment_count>1</comment_count>
      <attachid>176841</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-11-29 16:03:02 -0800</bug_when>
    <thetext>Created attachment 176841
Proposed change: fix more code path to use containingBlockLogicalWidthForContent and fix end margin computation for grid items.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779599</commentid>
    <comment_count>2</comment_count>
      <attachid>176841</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-29 17:03:16 -0800</bug_when>
    <thetext>Comment on attachment 176841
Proposed change: fix more code path to use containingBlockLogicalWidthForContent and fix end margin computation for grid items.

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

&gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:465
&gt; +    // Sticky positioned element ignore any override logical width on the containing block (as they don&apos;t call
&gt; +    // containingBlockLogicalWidthForContent). It&apos;s unclear whether this is totally fine.

Hmm, can we create a test for this?  I guess a sticky div inside a table or a flexbox or a grid should trigger this, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779697</commentid>
    <comment_count>3</comment_count>
      <attachid>176841</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-11-29 18:14:34 -0800</bug_when>
    <thetext>Comment on attachment 176841
Proposed change: fix more code path to use containingBlockLogicalWidthForContent and fix end margin computation for grid items.

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

&gt;&gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:465
&gt;&gt; +    // containingBlockLogicalWidthForContent). It&apos;s unclear whether this is totally fine.
&gt; 
&gt; Hmm, can we create a test for this?  I guess a sticky div inside a table or a flexbox or a grid should trigger this, right?

Yes, we should be able to reproduce it with a grid only (the other cases won&apos;t work as they don&apos;t use the override containing block logic). The grid should be the parent *and* containing block of the sticky element so that we apply the override though.

I should also throw in some positioned elements for good measure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780485</commentid>
    <comment_count>4</comment_count>
      <attachid>176841</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-11-30 15:42:10 -0800</bug_when>
    <thetext>Comment on attachment 176841
Proposed change: fix more code path to use containingBlockLogicalWidthForContent and fix end margin computation for grid items.

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

&gt;&gt;&gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:465
&gt;&gt;&gt; +    // containingBlockLogicalWidthForContent). It&apos;s unclear whether this is totally fine.
&gt;&gt; 
&gt;&gt; Hmm, can we create a test for this?  I guess a sticky div inside a table or a flexbox or a grid should trigger this, right?
&gt; 
&gt; Yes, we should be able to reproduce it with a grid only (the other cases won&apos;t work as they don&apos;t use the override containing block logic). The grid should be the parent *and* containing block of the sticky element so that we apply the override though.
&gt; 
&gt; I should also throw in some positioned elements for good measure.

OK, I have spend more time playing with that:
* Our support of positioned element doesn&apos;t make sense currently but sadly follows the spec, I proposed a spec change (http://lists.w3.org/Archives/Public/www-style/2012Nov/0546.html). This would be better postponed to a follow-up bug.
* It looks like position: sticky doesn&apos;t work inside grid or an inline grid (I couldn&apos;t get it to work inside a display: block container either). It&apos;s maybe related to bug 100054 but I am not totally sure. Regardless, it seems that we should fix the broader issue of making it work in grid before being able to test this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780496</commentid>
    <comment_count>5</comment_count>
      <attachid>176841</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-30 15:51:33 -0800</bug_when>
    <thetext>Comment on attachment 176841
Proposed change: fix more code path to use containingBlockLogicalWidthForContent and fix end margin computation for grid items.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782105</commentid>
    <comment_count>6</comment_count>
      <attachid>176841</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-12-03 18:21:30 -0800</bug_when>
    <thetext>Comment on attachment 176841
Proposed change: fix more code path to use containingBlockLogicalWidthForContent and fix end margin computation for grid items.

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

&gt;&gt;&gt;&gt; Source/WebCore/rendering/RenderBoxModelObject.cpp:465
&gt;&gt;&gt;&gt; +    // containingBlockLogicalWidthForContent). It&apos;s unclear whether this is totally fine.
&gt;&gt;&gt; 
&gt;&gt;&gt; Hmm, can we create a test for this?  I guess a sticky div inside a table or a flexbox or a grid should trigger this, right?
&gt;&gt; 
&gt;&gt; Yes, we should be able to reproduce it with a grid only (the other cases won&apos;t work as they don&apos;t use the override containing block logic). The grid should be the parent *and* containing block of the sticky element so that we apply the override though.
&gt;&gt; 
&gt;&gt; I should also throw in some positioned elements for good measure.
&gt; 
&gt; OK, I have spend more time playing with that:
&gt; * Our support of positioned element doesn&apos;t make sense currently but sadly follows the spec, I proposed a spec change (http://lists.w3.org/Archives/Public/www-style/2012Nov/0546.html). This would be better postponed to a follow-up bug.
&gt; * It looks like position: sticky doesn&apos;t work inside grid or an inline grid (I couldn&apos;t get it to work inside a display: block container either). It&apos;s maybe related to bug 100054 but I am not totally sure. Regardless, it seems that we should fix the broader issue of making it work in grid before being able to test this change.

Filed bug 103956 for the first point and bug 103957 for the second.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782110</commentid>
    <comment_count>7</comment_count>
      <attachid>176841</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-03 18:25:17 -0800</bug_when>
    <thetext>Comment on attachment 176841
Proposed change: fix more code path to use containingBlockLogicalWidthForContent and fix end margin computation for grid items.

Clearing flags on attachment: 176841

Committed r136465: &lt;http://trac.webkit.org/changeset/136465&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782111</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-03 18:25:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176841</attachid>
            <date>2012-11-29 16:03:02 -0800</date>
            <delta_ts>2012-12-03 18:25:17 -0800</delta_ts>
            <desc>Proposed change: fix more code path to use containingBlockLogicalWidthForContent and fix end margin computation for grid items.</desc>
            <filename>bug-103677-20121129160034.patch</filename>
            <type>text/plain</type>
            <size>21308</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTVlZjc2MzA2MmM5ODA2
NTEyNTVkZDQwZmM1OGE2MWU1NDY3MWI5My4uZjkzODZmYmIzNTNkNWI4YThkMmY3ZTQzNWEzZDRi
N2FjNDE2ZmMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTExLTI5ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIFN1cHBvcnQgcGFkZGluZ3MgYW5kIG1hcmdpbnMgb24gZ3JpZCBpdGVtcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNjc3CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIgYnVnIDEw
Mjk2OCwgd2UgcHJvcGVybHkgcmVzb2x2ZSBncmlkIGl0ZW1zJyB3aWR0aCBhbmQgaGVpZ2h0IGFn
YWluc3QgdGhlCisgICAgICAgIGdyaWQgYXJlYXMnIHNpemVzLiBIb3dldmVyIHdlIGRpZG4ndCBj
aGVjayBmb3IgcGFkZGluZ3MgYW5kIG1hcmdpbnMsIHdoaWNoIGlzCisgICAgICAgIHdoYXQgdGhp
cyBjaGFuZ2UgZml4ZXMuLgorCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L3Bl
cmNlbnQtcGFkZGluZy1tYXJnaW4tcmVzb2x1dGlvbi1ncmlkLWl0ZW0uaHRtbAorCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6
OmNvbXB1dGVMb2dpY2FsV2lkdGhJblJlZ2lvbik6CisgICAgICAgIERvbid0IHN0cmV0Y2ggdGhl
IGVuZCBtYXJnaW4gdG8gbWF0Y2ggdGhlIGNvbnRhaW5pbmcgYmxvY2sncyBleHRlbnQuCisgICAg
ICAgIFRoZSBmaXggaXMgc2ltaWxhciB0byB3aGF0IHdhcyBkb25lIGZvciBmbGV4LWJveCBpbiBi
dWcgNjU4ODcuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbXB1dGVTdGlja3lQ
b3NpdGlvbkNvbnN0cmFpbnRzKToKKyAgICAgICAgQWRkZWQgYSBjb21tZW50IGFib3V0IG5vdCB1
c2luZyBjb250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhGb3JDb250ZW50LgorCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29tcHV0ZWRDU1NQYWRkaW5nVG9wKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlZENTU1BhZGRpbmdC
b3R0b20pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbXB1dGVk
Q1NTUGFkZGluZ0xlZnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6
OmNvbXB1dGVkQ1NTUGFkZGluZ1JpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1v
ZGVsT2JqZWN0Ojpjb21wdXRlZENTU1BhZGRpbmdCZWZvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbXB1dGVkQ1NTUGFkZGluZ0FmdGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlZENTU1BhZGRpbmdTdGFydCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29tcHV0ZWRDU1NQYWRk
aW5nRW5kKToKKyAgICAgICAgVXBkYXRlZCB0aGVzZSBmdW5jdGlvbnMgdG8gdXNlIGNvbnRhaW5p
bmdCbG9ja0xvZ2ljYWxXaWR0aEZvckNvbnRlbnQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyR3JpZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNSZW5kZXJHcmlkKToKKyAgICAgICAgQWRkZWQgaXNS
ZW5kZXJHcmlkLgorCiAyMDEyLTExLTI5ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IENvbnNvbGU6IGhvdmVyaW5nIG5vZGUg
d3JhcHBlcnMgaW4gb2JqZWN0IHRyZWUgc2hvdWxkIGhpZ2hsaWdodCB0aGVtIG9uIHRoZSBwYWdl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDQ0ZjNkZTExYTJiZDg4
MzI2NDUzZmRjZDFkNzllZmY3YjY3NTU2Y2YuLjA3NTEwZDQ1MzZjMTYyNDEzMzU0ZDlkNzBjYmNj
YWFkYmYzMWE5YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC0x
ODIxLDcgKzE4MjEsNyBAQCB2b2lkIFJlbmRlckJveDo6Y29tcHV0ZUxvZ2ljYWxXaWR0aEluUmVn
aW9uKExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYgY29tcHV0ZQogICAgIH0KICAgICAKICAg
ICBpZiAoIWhhc1BlcnBlbmRpY3VsYXJDb250YWluaW5nQmxvY2sgJiYgY29udGFpbmVyTG9naWNh
bFdpZHRoICYmIGNvbnRhaW5lckxvZ2ljYWxXaWR0aCAhPSAoY29tcHV0ZWRWYWx1ZXMubV9leHRl
bnQgKyBjb21wdXRlZFZhbHVlcy5tX21hcmdpbnMubV9zdGFydCArIGNvbXB1dGVkVmFsdWVzLm1f
bWFyZ2lucy5tX2VuZCkKLSAgICAgICAgICAgICYmICFpc0Zsb2F0aW5nKCkgJiYgIWlzSW5saW5l
KCkgJiYgIWNiLT5pc0ZsZXhpYmxlQm94SW5jbHVkaW5nRGVwcmVjYXRlZCgpKSB7CisgICAgICAg
ICYmICFpc0Zsb2F0aW5nKCkgJiYgIWlzSW5saW5lKCkgJiYgIWNiLT5pc0ZsZXhpYmxlQm94SW5j
bHVkaW5nRGVwcmVjYXRlZCgpICYmICFjYi0+aXNSZW5kZXJHcmlkKCkpIHsKICAgICAgICAgTGF5
b3V0VW5pdCBuZXdNYXJnaW4gPSBjb250YWluZXJMb2dpY2FsV2lkdGggLSBjb21wdXRlZFZhbHVl
cy5tX2V4dGVudCAtIGNiLT5tYXJnaW5TdGFydEZvckNoaWxkKHRoaXMpOwogICAgICAgICBib29s
IGhhc0ludmVydGVkRGlyZWN0aW9uID0gY2ItPnN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rp
b24oKSAhPSBzdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCk7CiAgICAgICAgIGlmICho
YXNJbnZlcnRlZERpcmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94TW9kZWxPYmplY3QuY3BwCmluZGV4IDI5MzU5MWQ3NjY4YzYzNTNhNGZiYWExNzE0YmYx
NzM5MzFkNTUxYzcuLjk1N2U2NjI3NTEyODE3N2RkNmU1NWJmN2U4Y2E1ZGRkNTc5Y2Q4YzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNw
cApAQCAtNDYxLDYgKzQ2MSw4IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbXB1dGVT
dGlja3lQb3NpdGlvbkNvbnN0cmFpbnRzKFN0aWNreVBvc2l0aW9uVmlld3BvCiAKICAgICBMYXlv
dXRSZWN0IGNvbnRhaW5lckNvbnRlbnRSZWN0ID0gY29udGFpbmluZ0Jsb2NrLT5jb250ZW50Qm94
UmVjdCgpOwogCisgICAgLy8gU3RpY2t5IHBvc2l0aW9uZWQgZWxlbWVudCBpZ25vcmUgYW55IG92
ZXJyaWRlIGxvZ2ljYWwgd2lkdGggb24gdGhlIGNvbnRhaW5pbmcgYmxvY2sgKGFzIHRoZXkgZG9u
J3QgY2FsbAorICAgIC8vIGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aEZvckNvbnRlbnQpLiBJ
dCdzIHVuY2xlYXIgd2hldGhlciB0aGlzIGlzIHRvdGFsbHkgZmluZS4KICAgICBMYXlvdXRVbml0
IG1pbkxlZnRNYXJnaW4gPSBtaW5pbXVtVmFsdWVGb3JMZW5ndGgoc3R5bGUoKS0+bWFyZ2luTGVm
dCgpLCBjb250YWluaW5nQmxvY2stPmF2YWlsYWJsZUxvZ2ljYWxXaWR0aCgpLCB2aWV3KCkpOwog
ICAgIExheW91dFVuaXQgbWluVG9wTWFyZ2luID0gbWluaW11bVZhbHVlRm9yTGVuZ3RoKHN0eWxl
KCktPm1hcmdpblRvcCgpLCBjb250YWluaW5nQmxvY2stPmF2YWlsYWJsZUxvZ2ljYWxXaWR0aCgp
LCB2aWV3KCkpOwogICAgIExheW91dFVuaXQgbWluUmlnaHRNYXJnaW4gPSBtaW5pbXVtVmFsdWVG
b3JMZW5ndGgoc3R5bGUoKS0+bWFyZ2luUmlnaHQoKSwgY29udGFpbmluZ0Jsb2NrLT5hdmFpbGFi
bGVMb2dpY2FsV2lkdGgoKSwgdmlldygpKTsKQEAgLTU1NSw3ICs1NTcsNyBAQCBMYXlvdXRVbml0
IFJlbmRlckJveE1vZGVsT2JqZWN0Ojpjb21wdXRlZENTU1BhZGRpbmdUb3AoKSBjb25zdAogICAg
IFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSAwOwogICAgIExlbmd0aCBwYWRkaW5nID0gc3R5bGUo
KS0+cGFkZGluZ1RvcCgpOwogICAgIGlmIChwYWRkaW5nLmlzUGVyY2VudCgpKQotICAgICAgICB3
ID0gY29udGFpbmluZ0Jsb2NrKCktPmF2YWlsYWJsZUxvZ2ljYWxXaWR0aCgpOworICAgICAgICB3
ID0gY29udGFpbmluZ0Jsb2NrTG9naWNhbFdpZHRoRm9yQ29udGVudCgpOwogICAgIGVsc2UgaWYg
KHBhZGRpbmcuaXNWaWV3cG9ydFBlcmNlbnRhZ2UoKSkKICAgICAgICAgcmVuZGVyVmlldyA9IHZp
ZXcoKTsKICAgICByZXR1cm4gbWluaW11bVZhbHVlRm9yTGVuZ3RoKHBhZGRpbmcsIHcsIHJlbmRl
clZpZXcpOwpAQCAtNTY3LDcgKzU2OSw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94TW9kZWxPYmpl
Y3Q6OmNvbXB1dGVkQ1NTUGFkZGluZ0JvdHRvbSgpIGNvbnN0CiAgICAgUmVuZGVyVmlldyogcmVu
ZGVyVmlldyA9IDA7CiAgICAgTGVuZ3RoIHBhZGRpbmcgPSBzdHlsZSgpLT5wYWRkaW5nQm90dG9t
KCk7CiAgICAgaWYgKHBhZGRpbmcuaXNQZXJjZW50KCkpCi0gICAgICAgIHcgPSBjb250YWluaW5n
QmxvY2soKS0+YXZhaWxhYmxlTG9naWNhbFdpZHRoKCk7CisgICAgICAgIHcgPSBjb250YWluaW5n
QmxvY2tMb2dpY2FsV2lkdGhGb3JDb250ZW50KCk7CiAgICAgZWxzZSBpZiAocGFkZGluZy5pc1Zp
ZXdwb3J0UGVyY2VudGFnZSgpKQogICAgICAgICByZW5kZXJWaWV3ID0gdmlldygpOwogICAgIHJl
dHVybiBtaW5pbXVtVmFsdWVGb3JMZW5ndGgocGFkZGluZywgdywgcmVuZGVyVmlldyk7CkBAIC01
NzksNyArNTgxLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29tcHV0ZWRD
U1NQYWRkaW5nTGVmdCgpIGNvbnN0CiAgICAgUmVuZGVyVmlldyogcmVuZGVyVmlldyA9IDA7CiAg
ICAgTGVuZ3RoIHBhZGRpbmcgPSBzdHlsZSgpLT5wYWRkaW5nTGVmdCgpOwogICAgIGlmIChwYWRk
aW5nLmlzUGVyY2VudCgpKQotICAgICAgICB3ID0gY29udGFpbmluZ0Jsb2NrKCktPmF2YWlsYWJs
ZUxvZ2ljYWxXaWR0aCgpOworICAgICAgICB3ID0gY29udGFpbmluZ0Jsb2NrTG9naWNhbFdpZHRo
Rm9yQ29udGVudCgpOwogICAgIGVsc2UgaWYgKHBhZGRpbmcuaXNWaWV3cG9ydFBlcmNlbnRhZ2Uo
KSkKICAgICAgICAgcmVuZGVyVmlldyA9IHZpZXcoKTsKICAgICByZXR1cm4gbWluaW11bVZhbHVl
Rm9yTGVuZ3RoKHBhZGRpbmcsIHcsIHJlbmRlclZpZXcpOwpAQCAtNTkxLDcgKzU5Myw3IEBAIExh
eW91dFVuaXQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OmNvbXB1dGVkQ1NTUGFkZGluZ1JpZ2h0KCkg
Y29uc3QKICAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gMDsKICAgICBMZW5ndGggcGFkZGlu
ZyA9IHN0eWxlKCktPnBhZGRpbmdSaWdodCgpOwogICAgIGlmIChwYWRkaW5nLmlzUGVyY2VudCgp
KQotICAgICAgICB3ID0gY29udGFpbmluZ0Jsb2NrKCktPmF2YWlsYWJsZUxvZ2ljYWxXaWR0aCgp
OworICAgICAgICB3ID0gY29udGFpbmluZ0Jsb2NrTG9naWNhbFdpZHRoRm9yQ29udGVudCgpOwog
ICAgIGVsc2UgaWYgKHBhZGRpbmcuaXNWaWV3cG9ydFBlcmNlbnRhZ2UoKSkKICAgICAgICAgcmVu
ZGVyVmlldyA9IHZpZXcoKTsKICAgICByZXR1cm4gbWluaW11bVZhbHVlRm9yTGVuZ3RoKHBhZGRp
bmcsIHcsIHJlbmRlclZpZXcpOwpAQCAtNjAzLDcgKzYwNSw3IEBAIExheW91dFVuaXQgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6OmNvbXB1dGVkQ1NTUGFkZGluZ0JlZm9yZSgpIGNvbnN0CiAgICAgUmVu
ZGVyVmlldyogcmVuZGVyVmlldyA9IDA7CiAgICAgTGVuZ3RoIHBhZGRpbmcgPSBzdHlsZSgpLT5w
YWRkaW5nQmVmb3JlKCk7CiAgICAgaWYgKHBhZGRpbmcuaXNQZXJjZW50KCkpCi0gICAgICAgIHcg
PSBjb250YWluaW5nQmxvY2soKS0+YXZhaWxhYmxlTG9naWNhbFdpZHRoKCk7CisgICAgICAgIHcg
PSBjb250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhGb3JDb250ZW50KCk7CiAgICAgZWxzZSBpZiAo
cGFkZGluZy5pc1ZpZXdwb3J0UGVyY2VudGFnZSgpKQogICAgICAgICByZW5kZXJWaWV3ID0gdmll
dygpOwogICAgIHJldHVybiBtaW5pbXVtVmFsdWVGb3JMZW5ndGgocGFkZGluZywgdywgcmVuZGVy
Vmlldyk7CkBAIC02MTUsNyArNjE3LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVj
dDo6Y29tcHV0ZWRDU1NQYWRkaW5nQWZ0ZXIoKSBjb25zdAogICAgIFJlbmRlclZpZXcqIHJlbmRl
clZpZXcgPSAwOwogICAgIExlbmd0aCBwYWRkaW5nID0gc3R5bGUoKS0+cGFkZGluZ0FmdGVyKCk7
CiAgICAgaWYgKHBhZGRpbmcuaXNQZXJjZW50KCkpCi0gICAgICAgIHcgPSBjb250YWluaW5nQmxv
Y2soKS0+YXZhaWxhYmxlTG9naWNhbFdpZHRoKCk7CisgICAgICAgIHcgPSBjb250YWluaW5nQmxv
Y2tMb2dpY2FsV2lkdGhGb3JDb250ZW50KCk7CiAgICAgZWxzZSBpZiAocGFkZGluZy5pc1ZpZXdw
b3J0UGVyY2VudGFnZSgpKQogICAgICAgICByZW5kZXJWaWV3ID0gdmlldygpOwogICAgIHJldHVy
biBtaW5pbXVtVmFsdWVGb3JMZW5ndGgocGFkZGluZywgdywgcmVuZGVyVmlldyk7CkBAIC02Mjcs
NyArNjI5LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29tcHV0ZWRDU1NQ
YWRkaW5nU3RhcnQoKSBjb25zdAogICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSAwOwogICAg
IExlbmd0aCBwYWRkaW5nID0gc3R5bGUoKS0+cGFkZGluZ1N0YXJ0KCk7CiAgICAgaWYgKHBhZGRp
bmcuaXNQZXJjZW50KCkpCi0gICAgICAgIHcgPSBjb250YWluaW5nQmxvY2soKS0+YXZhaWxhYmxl
TG9naWNhbFdpZHRoKCk7CisgICAgICAgIHcgPSBjb250YWluaW5nQmxvY2tMb2dpY2FsV2lkdGhG
b3JDb250ZW50KCk7CiAgICAgZWxzZSBpZiAocGFkZGluZy5pc1ZpZXdwb3J0UGVyY2VudGFnZSgp
KQogICAgICAgICByZW5kZXJWaWV3ID0gdmlldygpOwogICAgIHJldHVybiBtaW5pbXVtVmFsdWVG
b3JMZW5ndGgocGFkZGluZywgdywgcmVuZGVyVmlldyk7CkBAIC02MzksNyArNjQxLDcgQEAgTGF5
b3V0VW5pdCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6Y29tcHV0ZWRDU1NQYWRkaW5nRW5kKCkgY29u
c3QKICAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gMDsKICAgICBMZW5ndGggcGFkZGluZyA9
IHN0eWxlKCktPnBhZGRpbmdFbmQoKTsKICAgICBpZiAocGFkZGluZy5pc1BlcmNlbnQoKSkKLSAg
ICAgICAgdyA9IGNvbnRhaW5pbmdCbG9jaygpLT5hdmFpbGFibGVMb2dpY2FsV2lkdGgoKTsKKyAg
ICAgICAgdyA9IGNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxXaWR0aEZvckNvbnRlbnQoKTsKICAgICBl
bHNlIGlmIChwYWRkaW5nLmlzVmlld3BvcnRQZXJjZW50YWdlKCkpCiAgICAgICAgIHJlbmRlclZp
ZXcgPSB2aWV3KCk7CiAgICAgcmV0dXJuIG1pbmltdW1WYWx1ZUZvckxlbmd0aChwYWRkaW5nLCB3
LCByZW5kZXJWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCmluZGV4IDM0
MGM2NDg1MTAxNDAzOGI4OTY2NjVmMjlhYWUyNWIyMTFiYWYxYTQuLmJlOWJiYWQ4NWEyMmNhZDQy
YTVkOWU5NzU5NGI1NDRmYmZiNjM4ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdy
aWQuaApAQCAtNDQsNiArNDQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNhbkNvbGxh
cHNlQW5vbnltb3VzQmxvY2tDaGlsZCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIGZhbHNlOyB9
CiAKIHByaXZhdGU6CisgICAgdmlydHVhbCBib29sIGlzUmVuZGVyR3JpZCgpIGNvbnN0IE9WRVJS
SURFIHsgcmV0dXJuIHRydWU7IH0KKwogICAgIGNsYXNzIEdyaWRUcmFjazsKICAgICBlbnVtIFRy
YWNrU2l6aW5nRGlyZWN0aW9uIHsgRm9yQ29sdW1ucywgRm9yUm93cyB9OwogICAgIHZvaWQgY29t
cHV0ZWRVc2VkQnJlYWR0aE9mR3JpZFRyYWNrcyhUcmFja1NpemluZ0RpcmVjdGlvbiwgVmVjdG9y
PEdyaWRUcmFjaz4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRl
eCAyNTgyNzZiMzY5MmFjMzM5MTQ5NDQwMTJlYjRiODBmODlhNjNjNzY2Li40NzkyZjczNzM4MWE1
NDg4OTFkNTA2ZDk2NGYxYjU0YTc5NTBmYTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCkBAIC0zOTYsNiArMzk2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBpc1JlbmRlckZ1bGxTY3JlZW5QbGFjZWhvbGRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckdyaWQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorCiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyRmxvd1RocmVhZCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyTmFtZWRGbG93VGhy
ZWFkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3OWE1ZmY2ZjEyNmE2
NWY4YTMzZGVmOWVjNzdhOTdkOTE5ZWNkMjk3Li5mYjc5YmYxZjFkNzc3Y2FkZWRjOGIxYjk2NTY2
MjMyYjFjYjE3ZTAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTEtMjkgIEp1bGllbiBD
aGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAgICAgICAgW0NTUyBHcmlkIExh
eW91dF0gU3VwcG9ydCBwZXJjZW50YWdlIHBhZGRpbmdzIGFuZCBtYXJnaW5zIG9uIGdyaWQgaXRl
bXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzY3
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcmVz
b3VyY2VzL2NoZWNrLWxheW91dC5qczoKKyAgICAgICAgRXh0ZW5kZWQgY2hlY2stbGF5b3V0IHRv
IGJlIGFibGUgdG8gcXVlcnkgcGFkZGluZ3MgYW5kIG1hcmdpbnMuIE5vdGUgdGhhdCBpbiBvcmRl
ciB0byBjb21wYXJlLAorICAgICAgICB0aGUgYXR0cmlidXRlIHdpdGggdGhlIHJldHVybmVkIHZh
bHVlIGZyb20gZ2V0Q29tcHV0ZWRTdHlsZSwgd2UgbmVlZCB0byB0cmltIHRoZSB1bml0ICgicHgi
KQorICAgICAgICBmcm9tIHRoZSBhY3R1YWwgdmFsdWVzLiBUaGlzIHRyaWNrIGFsc28gd29ya3Mg
aW4gRmlyZUZveCBhbmQgT3BlcmEuCisKKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9w
ZXJjZW50LXBhZGRpbmctbWFyZ2luLXJlc29sdXRpb24tZ3JpZC1pdGVtLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcGVyY2VudC1wYWRkaW5nLW1h
cmdpbi1yZXNvbHV0aW9uLWdyaWQtaXRlbS5odG1sOiBBZGRlZC4KKwogMjAxMi0xMS0yOCAgRGFu
aWVsIEJhdGVzICA8ZGJhdGVzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBMYXlv
dXRUZXN0cy9mYXN0L2pzL3N0cmluZy1yZXBsYWNlbWVudC1vdXRvZm1lbW9yeS5odG1sIGNyYXNo
ZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3BlcmNlbnQt
cGFkZGluZy1tYXJnaW4tcmVzb2x1dGlvbi1ncmlkLWl0ZW0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvcGVyY2VudC1wYWRkaW5nLW1hcmdpbi1yZXNvbHV0
aW9uLWdyaWQtaXRlbS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWZiZWRjODI5MTA1NjYyMjFi
NmJkYmQ4OTI4N2ZlYjkwY2ExZjE2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzLWdyaWQtbGF5b3V0L3BlcmNlbnQtcGFkZGluZy1tYXJnaW4tcmVzb2x1dGlvbi1ncmlk
LWl0ZW0tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVGVzdCB0aGF0IHJlc29sdmluZyBw
ZXJjZW50YWdlIHBhZGRpbmcgYW5kIG1hcmdpbiBvbiBncmlkIGl0ZW1zIHdvcmtzIHByb3Blcmx5
IG9uIGEgZml4ZWQgZ3JpZCB3aXRoIGRpZmZlcmVudCB3cml0aW5nIG1vZGVzLgorCitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxh
eW91dC9wZXJjZW50LXBhZGRpbmctbWFyZ2luLXJlc29sdXRpb24tZ3JpZC1pdGVtLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9wZXJjZW50LXBhZGRpbmctbWFyZ2luLXJl
c29sdXRpb24tZ3JpZC1pdGVtLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI1NzY0OGZkZTk2ZmNmYzNhNDBi
MjBlOGYzYWIwNmUxNWY0NmIyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdyaWQtbGF5b3V0L3BlcmNlbnQtcGFkZGluZy1tYXJnaW4tcmVzb2x1dGlvbi1ncmlkLWl0
ZW0uaHRtbApAQCAtMCwwICsxLDk4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHNjcmlw
dD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVy
ZW5jZSgiV2ViS2l0Q1NTR3JpZExheW91dEVuYWJsZWQiLCAxKTsKKzwvc2NyaXB0PgorPHN0eWxl
PgorLmdyaWQgeworICAgIGRpc3BsYXk6IC13ZWJraXQtZ3JpZDsKKyAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBncmV5OworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW5zOiAxMDBweCAzMDBweDsKKyAgICAt
d2Via2l0LWdyaWQtcm93czogNTBweCAxNTBweDsKKyAgICBoZWlnaHQ6IDIwMHB4OworICAgIHdp
ZHRoOiA0MDBweDsKK30KKworI2EgeworICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAg
LXdlYmtpdC1ncmlkLWNvbHVtbjogMTsKKyAgICAtd2Via2l0LWdyaWQtcm93OiAxOworfQorCisj
YiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogbGltZTsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1u
OiAyOworICAgIC13ZWJraXQtZ3JpZC1yb3c6IDE7Cit9CisKKyNjIHsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBwdXJwbGU7CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbjogMTsKKyAgICAtd2Via2l0
LWdyaWQtcm93OiAyOworfQorCisjZCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOwor
ICAgIC13ZWJraXQtZ3JpZC1jb2x1bW46IDI7CisgICAgLXdlYmtpdC1ncmlkLXJvdzogMjsKK30K
KworLnBlcmNlbnRQYWRkaW5nIHsKKyAgICB3aWR0aDogMHB4OworICAgIGhlaWdodDogMHB4Owor
ICAgIHBhZGRpbmc6IDUwJTsKK30KKworLnBlcmNlbnRNYXJnaW4geworICAgIHdpZHRoOiAwcHg7
CisgICAgaGVpZ2h0OiAwcHg7CisgICAgbWFyZ2luOiA1MCU7Cit9CisKKy5wZXJjZW50UGFkZGlu
Z0FuZE1hcmdpbiB7CisgICAgd2lkdGg6IDBweDsKKyAgICBoZWlnaHQ6IDBweDsKKyAgICBwYWRk
aW5nOiAxMCU7CisgICAgbWFyZ2luOiAyMCU7Cit9CisKKy52ZXJ0aWNhbFJMIHsKKyAgICAtd2Vi
a2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9jaGVjay1sYXlvdXQuanMiPjwvc2NyaXB0PgorPGJvZHkgb25sb2Fk
PSJjaGVja0xheW91dCgnLmdyaWQnKSI+CisKKzxwPlRlc3QgdGhhdCByZXNvbHZpbmcgcGVyY2Vu
dGFnZSBwYWRkaW5nIGFuZCBtYXJnaW4gb24gZ3JpZCBpdGVtcyB3b3JrcyBwcm9wZXJseSBvbiBh
IGZpeGVkIGdyaWQgd2l0aCBkaWZmZXJlbnQgd3JpdGluZyBtb2Rlcy48L3A+CisKKzxkaXYgY2xh
c3M9ImdyaWQiPgorICAgIDxkaXYgaWQ9ImEiIGNsYXNzPSJwZXJjZW50UGFkZGluZyIgZGF0YS1l
eHBlY3RlZC1wYWRkaW5nLXRvcD0iNTAiIGRhdGEtZXhwZWN0ZWQtcGFkZGluZy1yaWdodD0iNTAi
IGRhdGEtZXhwZWN0ZWQtcGFkZGluZy1ib3R0b209IjUwIiBkYXRhLWV4cGVjdGVkLXBhZGRpbmct
bGVmdD0iNTAiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImIiIGNsYXNzPSJwZXJjZW50TWFyZ2luIiBk
YXRhLWV4cGVjdGVkLW1hcmdpbi10b3A9IjE1MCIgZGF0YS1leHBlY3RlZC1tYXJnaW4tcmlnaHQ9
IjE1MCIgZGF0YS1leHBlY3RlZC1tYXJnaW4tYm90dG9tPSIxNTAiIGRhdGEtZXhwZWN0ZWQtbWFy
Z2luLWxlZnQ9IjE1MCI+PC9kaXY+CisgICAgPGRpdiBpZD0iYyIgY2xhc3M9InBlcmNlbnRQYWRk
aW5nQW5kTWFyZ2luIiBkYXRhLWV4cGVjdGVkLXBhZGRpbmctdG9wPSIxMCIgZGF0YS1leHBlY3Rl
ZC1wYWRkaW5nLXJpZ2h0PSIxMCIgZGF0YS1leHBlY3RlZC1wYWRkaW5nLWJvdHRvbT0iMTAiIGRh
dGEtZXhwZWN0ZWQtcGFkZGluZy1sZWZ0PSIxMCIgZGF0YS1leHBlY3RlZC1tYXJnaW4tdG9wPSIy
MCIgZGF0YS1leHBlY3RlZC1tYXJnaW4tcmlnaHQ9IjIwIiBkYXRhLWV4cGVjdGVkLW1hcmdpbi1i
b3R0b209IjIwIiBkYXRhLWV4cGVjdGVkLW1hcmdpbi1sZWZ0PSIyMCI+PC9kaXY+CisgICAgPGRp
diBpZD0iZCIgY2xhc3M9InBlcmNlbnRQYWRkaW5nQW5kTWFyZ2luIiBkYXRhLWV4cGVjdGVkLXBh
ZGRpbmctdG9wPSIzMCIgZGF0YS1leHBlY3RlZC1wYWRkaW5nLXJpZ2h0PSIzMCIgZGF0YS1leHBl
Y3RlZC1wYWRkaW5nLWJvdHRvbT0iMzAiIGRhdGEtZXhwZWN0ZWQtcGFkZGluZy1sZWZ0PSIzMCIg
ZGF0YS1leHBlY3RlZC1tYXJnaW4tdG9wPSI2MCIgZGF0YS1leHBlY3RlZC1tYXJnaW4tcmlnaHQ9
IjYwIiBkYXRhLWV4cGVjdGVkLW1hcmdpbi1ib3R0b209IjYwIiBkYXRhLWV4cGVjdGVkLW1hcmdp
bi1sZWZ0PSI2MCI+PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBjbGFzcz0iZ3JpZCB2ZXJ0aWNhbFJM
Ij4KKyAgICA8ZGl2IGlkPSJhIiBjbGFzcz0icGVyY2VudFBhZGRpbmciIGRhdGEtZXhwZWN0ZWQt
cGFkZGluZy10b3A9IjUwIiBkYXRhLWV4cGVjdGVkLXBhZGRpbmctcmlnaHQ9IjUwIiBkYXRhLWV4
cGVjdGVkLXBhZGRpbmctYm90dG9tPSI1MCIgZGF0YS1leHBlY3RlZC1wYWRkaW5nLWxlZnQ9IjUw
Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJiIiBjbGFzcz0icGVyY2VudE1hcmdpbiIgZGF0YS1leHBl
Y3RlZC1tYXJnaW4tdG9wPSIxNTAiIGRhdGEtZXhwZWN0ZWQtbWFyZ2luLXJpZ2h0PSIxNTAiIGRh
dGEtZXhwZWN0ZWQtbWFyZ2luLWJvdHRvbT0iMTUwIiBkYXRhLWV4cGVjdGVkLW1hcmdpbi1sZWZ0
PSIxNTAiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImMiIGNsYXNzPSJwZXJjZW50UGFkZGluZ0FuZE1h
cmdpbiIgZGF0YS1leHBlY3RlZC1wYWRkaW5nLXRvcD0iMTAiIGRhdGEtZXhwZWN0ZWQtcGFkZGlu
Zy1yaWdodD0iMTAiIGRhdGEtZXhwZWN0ZWQtcGFkZGluZy1ib3R0b209IjEwIiBkYXRhLWV4cGVj
dGVkLXBhZGRpbmctbGVmdD0iMTAiIGRhdGEtZXhwZWN0ZWQtbWFyZ2luLXRvcD0iMjAiIGRhdGEt
ZXhwZWN0ZWQtbWFyZ2luLXJpZ2h0PSIyMCIgZGF0YS1leHBlY3RlZC1tYXJnaW4tYm90dG9tPSIy
MCIgZGF0YS1leHBlY3RlZC1tYXJnaW4tbGVmdD0iMjAiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImQi
IGNsYXNzPSJwZXJjZW50UGFkZGluZ0FuZE1hcmdpbiIgZGF0YS1leHBlY3RlZC1wYWRkaW5nLXRv
cD0iMzAiIGRhdGEtZXhwZWN0ZWQtcGFkZGluZy1yaWdodD0iMzAiIGRhdGEtZXhwZWN0ZWQtcGFk
ZGluZy1ib3R0b209IjMwIiBkYXRhLWV4cGVjdGVkLXBhZGRpbmctbGVmdD0iMzAiIGRhdGEtZXhw
ZWN0ZWQtbWFyZ2luLXRvcD0iNjAiIGRhdGEtZXhwZWN0ZWQtbWFyZ2luLXJpZ2h0PSI2MCIgZGF0
YS1leHBlY3RlZC1tYXJnaW4tYm90dG9tPSI2MCIgZGF0YS1leHBlY3RlZC1tYXJnaW4tbGVmdD0i
NjAiPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgY2xhc3M9ImdyaWQiPgorICAgIDxkaXYgaWQ9ImEi
IGNsYXNzPSJwZXJjZW50UGFkZGluZyB2ZXJ0aWNhbFJMIiBkYXRhLWV4cGVjdGVkLXBhZGRpbmct
dG9wPSI1MCIgZGF0YS1leHBlY3RlZC1wYWRkaW5nLXJpZ2h0PSI1MCIgZGF0YS1leHBlY3RlZC1w
YWRkaW5nLWJvdHRvbT0iNTAiIGRhdGEtZXhwZWN0ZWQtcGFkZGluZy1sZWZ0PSI1MCI+PC9kaXY+
CisgICAgPGRpdiBpZD0iYiIgY2xhc3M9InBlcmNlbnRNYXJnaW4gdmVydGljYWxSTCIgZGF0YS1l
eHBlY3RlZC1tYXJnaW4tdG9wPSIxNTAiIGRhdGEtZXhwZWN0ZWQtbWFyZ2luLXJpZ2h0PSIxNTAi
IGRhdGEtZXhwZWN0ZWQtbWFyZ2luLWJvdHRvbT0iMTUwIiBkYXRhLWV4cGVjdGVkLW1hcmdpbi1s
ZWZ0PSIxNTAiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImMiIGNsYXNzPSJwZXJjZW50UGFkZGluZ0Fu
ZE1hcmdpbiB2ZXJ0aWNhbFJMIiBkYXRhLWV4cGVjdGVkLXBhZGRpbmctdG9wPSIxMCIgZGF0YS1l
eHBlY3RlZC1wYWRkaW5nLXJpZ2h0PSIxMCIgZGF0YS1leHBlY3RlZC1wYWRkaW5nLWJvdHRvbT0i
MTAiIGRhdGEtZXhwZWN0ZWQtcGFkZGluZy1sZWZ0PSIxMCIgZGF0YS1leHBlY3RlZC1tYXJnaW4t
dG9wPSIyMCIgZGF0YS1leHBlY3RlZC1tYXJnaW4tcmlnaHQ9IjIwIiBkYXRhLWV4cGVjdGVkLW1h
cmdpbi1ib3R0b209IjIwIiBkYXRhLWV4cGVjdGVkLW1hcmdpbi1sZWZ0PSIyMCI+PC9kaXY+Cisg
ICAgPGRpdiBpZD0iZCIgY2xhc3M9InBlcmNlbnRQYWRkaW5nQW5kTWFyZ2luIHZlcnRpY2FsUkwi
IGRhdGEtZXhwZWN0ZWQtcGFkZGluZy10b3A9IjMwIiBkYXRhLWV4cGVjdGVkLXBhZGRpbmctcmln
aHQ9IjMwIiBkYXRhLWV4cGVjdGVkLXBhZGRpbmctYm90dG9tPSIzMCIgZGF0YS1leHBlY3RlZC1w
YWRkaW5nLWxlZnQ9IjMwIiBkYXRhLWV4cGVjdGVkLW1hcmdpbi10b3A9IjYwIiBkYXRhLWV4cGVj
dGVkLW1hcmdpbi1yaWdodD0iNjAiIGRhdGEtZXhwZWN0ZWQtbWFyZ2luLWJvdHRvbT0iNjAiIGRh
dGEtZXhwZWN0ZWQtbWFyZ2luLWxlZnQ9IjYwIj48L2Rpdj4KKzwvZGl2PgorCis8ZGl2IGNsYXNz
PSJncmlkIj4KKyAgICA8ZGl2IGlkPSJhIiBjbGFzcz0icGVyY2VudFBhZGRpbmcgdmVydGljYWxS
TCIgZGF0YS1leHBlY3RlZC1wYWRkaW5nLXRvcD0iNTAiIGRhdGEtZXhwZWN0ZWQtcGFkZGluZy1y
aWdodD0iNTAiIGRhdGEtZXhwZWN0ZWQtcGFkZGluZy1ib3R0b209IjUwIiBkYXRhLWV4cGVjdGVk
LXBhZGRpbmctbGVmdD0iNTAiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImIiIGNsYXNzPSJwZXJjZW50
TWFyZ2luIiBkYXRhLWV4cGVjdGVkLW1hcmdpbi10b3A9IjE1MCIgZGF0YS1leHBlY3RlZC1tYXJn
aW4tcmlnaHQ9IjE1MCIgZGF0YS1leHBlY3RlZC1tYXJnaW4tYm90dG9tPSIxNTAiIGRhdGEtZXhw
ZWN0ZWQtbWFyZ2luLWxlZnQ9IjE1MCI+PC9kaXY+CisgICAgPGRpdiBpZD0iYyIgY2xhc3M9InBl
cmNlbnRQYWRkaW5nQW5kTWFyZ2luIHZlcnRpY2FsUkwiIGRhdGEtZXhwZWN0ZWQtcGFkZGluZy10
b3A9IjEwIiBkYXRhLWV4cGVjdGVkLXBhZGRpbmctcmlnaHQ9IjEwIiBkYXRhLWV4cGVjdGVkLXBh
ZGRpbmctYm90dG9tPSIxMCIgZGF0YS1leHBlY3RlZC1wYWRkaW5nLWxlZnQ9IjEwIiBkYXRhLWV4
cGVjdGVkLW1hcmdpbi10b3A9IjIwIiBkYXRhLWV4cGVjdGVkLW1hcmdpbi1yaWdodD0iMjAiIGRh
dGEtZXhwZWN0ZWQtbWFyZ2luLWJvdHRvbT0iMjAiIGRhdGEtZXhwZWN0ZWQtbWFyZ2luLWxlZnQ9
IjIwIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJkIiBjbGFzcz0icGVyY2VudFBhZGRpbmdBbmRNYXJn
aW4iIGRhdGEtZXhwZWN0ZWQtcGFkZGluZy10b3A9IjMwIiBkYXRhLWV4cGVjdGVkLXBhZGRpbmct
cmlnaHQ9IjMwIiBkYXRhLWV4cGVjdGVkLXBhZGRpbmctYm90dG9tPSIzMCIgZGF0YS1leHBlY3Rl
ZC1wYWRkaW5nLWxlZnQ9IjMwIiBkYXRhLWV4cGVjdGVkLW1hcmdpbi10b3A9IjYwIiBkYXRhLWV4
cGVjdGVkLW1hcmdpbi1yaWdodD0iNjAiIGRhdGEtZXhwZWN0ZWQtbWFyZ2luLWJvdHRvbT0iNjAi
IGRhdGEtZXhwZWN0ZWQtbWFyZ2luLWxlZnQ9IjYwIj48L2Rpdj4KKzwvZGl2PgorCis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvY2hlY2stbGF5b3V0
LmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL2NoZWNrLWxheW91dC5qcwppbmRleCBmNTg3NjQ3
MWQ0OTEwOGExNmQ1M2Q4ZmE1ZjdmMjlkZjVkNDYzNTEwLi4yYjFmNTQwZjI4ODA0MTdkZmEyZDM0
ZGU3YTZlMjNjNjM2YWI2NGM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvY2hl
Y2stbGF5b3V0LmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy9jaGVjay1sYXlvdXQuanMK
QEAgLTc3LDYgKzc3LDc4IEBAIGZ1bmN0aW9uIGNoZWNrRXhwZWN0ZWRWYWx1ZXMobm9kZSwgZmFp
bHVyZXMpCiAgICAgICAgIGlmIChhY3R1YWxEaXNwbGF5ICE9IGV4cGVjdGVkRGlzcGxheSkKICAg
ICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZERpc3BsYXkgKyAi
IGZvciBkaXNwbGF5LCBidXQgZ290ICIgKyBhY3R1YWxEaXNwbGF5ICsgIi4gIik7CiAgICAgfQor
CisgICAgdmFyIGV4cGVjdGVkUGFkZGluZ1RvcCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUu
Z2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLXBhZGRpbmctdG9wIik7CisgICAgaWYgKGV4cGVj
dGVkUGFkZGluZ1RvcCkgeworICAgICAgICB2YXIgYWN0dWFsUGFkZGluZ1RvcCA9IGdldENvbXB1
dGVkU3R5bGUobm9kZSkucGFkZGluZ1RvcDsKKyAgICAgICAgLy8gVHJpbSB0aGUgdW5pdCAicHgi
IGZyb20gdGhlIG91dHB1dC4KKyAgICAgICAgYWN0dWFsUGFkZGluZ1RvcCA9IGFjdHVhbFBhZGRp
bmdUb3Auc3Vic3RyaW5nKDAsIGFjdHVhbFBhZGRpbmdUb3AubGVuZ3RoIC0gMik7CisgICAgICAg
IGlmIChhY3R1YWxQYWRkaW5nVG9wICE9IGV4cGVjdGVkUGFkZGluZ1RvcCkKKyAgICAgICAgICAg
IGZhaWx1cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZFBhZGRpbmdUb3AgKyAiIGZvciBw
YWRkaW5nLXRvcCwgYnV0IGdvdCAiICsgYWN0dWFsUGFkZGluZ1RvcCArICIuICIpOworICAgIH0K
KworICAgIHZhciBleHBlY3RlZFBhZGRpbmdCb3R0b20gPSBub2RlLmdldEF0dHJpYnV0ZSAmJiBu
b2RlLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1wYWRkaW5nLWJvdHRvbSIpOworICAgIGlm
IChleHBlY3RlZFBhZGRpbmdCb3R0b20pIHsKKyAgICAgICAgdmFyIGFjdHVhbFBhZGRpbmdCb3R0
b20gPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpLnBhZGRpbmdCb3R0b207CisgICAgICAgIC8vIFRy
aW0gdGhlIHVuaXQgInB4IiBmcm9tIHRoZSBvdXRwdXQuCisgICAgICAgIGFjdHVhbFBhZGRpbmdC
b3R0b20gPSBhY3R1YWxQYWRkaW5nQm90dG9tLnN1YnN0cmluZygwLCBhY3R1YWxQYWRkaW5nQm90
dG9tLmxlbmd0aCAtIDIpOworICAgICAgICBpZiAoYWN0dWFsUGFkZGluZ0JvdHRvbSAhPSBleHBl
Y3RlZFBhZGRpbmdCb3R0b20pCisgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJFeHBlY3RlZCAi
ICsgZXhwZWN0ZWRQYWRkaW5nQm90dG9tICsgIiBmb3IgcGFkZGluZy1ib3R0b20sIGJ1dCBnb3Qg
IiArIGFjdHVhbFBhZGRpbmdCb3R0b20gKyAiLiAiKTsKKyAgICB9CisKKyAgICB2YXIgZXhwZWN0
ZWRQYWRkaW5nTGVmdCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJk
YXRhLWV4cGVjdGVkLXBhZGRpbmctbGVmdCIpOworICAgIGlmIChleHBlY3RlZFBhZGRpbmdMZWZ0
KSB7CisgICAgICAgIHZhciBhY3R1YWxQYWRkaW5nTGVmdCA9IGdldENvbXB1dGVkU3R5bGUobm9k
ZSkucGFkZGluZ0xlZnQ7CisgICAgICAgIC8vIFRyaW0gdGhlIHVuaXQgInB4IiBmcm9tIHRoZSBv
dXRwdXQuCisgICAgICAgIGFjdHVhbFBhZGRpbmdMZWZ0ID0gYWN0dWFsUGFkZGluZ0xlZnQuc3Vi
c3RyaW5nKDAsIGFjdHVhbFBhZGRpbmdMZWZ0Lmxlbmd0aCAtIDIpOworICAgICAgICBpZiAoYWN0
dWFsUGFkZGluZ0xlZnQgIT0gZXhwZWN0ZWRQYWRkaW5nTGVmdCkKKyAgICAgICAgICAgIGZhaWx1
cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZFBhZGRpbmdMZWZ0ICsgIiBmb3IgcGFkZGlu
Zy1sZWZ0LCBidXQgZ290ICIgKyBhY3R1YWxQYWRkaW5nTGVmdCArICIuICIpOworICAgIH0KKwor
ICAgIHZhciBleHBlY3RlZFBhZGRpbmdSaWdodCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUu
Z2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLXBhZGRpbmctcmlnaHQiKTsKKyAgICBpZiAoZXhw
ZWN0ZWRQYWRkaW5nUmlnaHQpIHsKKyAgICAgICAgdmFyIGFjdHVhbFBhZGRpbmdSaWdodCA9IGdl
dENvbXB1dGVkU3R5bGUobm9kZSkucGFkZGluZ1JpZ2h0OworICAgICAgICAvLyBUcmltIHRoZSB1
bml0ICJweCIgZnJvbSB0aGUgb3V0cHV0LgorICAgICAgICBhY3R1YWxQYWRkaW5nUmlnaHQgPSBh
Y3R1YWxQYWRkaW5nUmlnaHQuc3Vic3RyaW5nKDAsIGFjdHVhbFBhZGRpbmdSaWdodC5sZW5ndGgg
LSAyKTsKKyAgICAgICAgaWYgKGFjdHVhbFBhZGRpbmdSaWdodCAhPSBleHBlY3RlZFBhZGRpbmdS
aWdodCkKKyAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZFBh
ZGRpbmdSaWdodCArICIgZm9yIHBhZGRpbmctcmlnaHQsIGJ1dCBnb3QgIiArIGFjdHVhbFBhZGRp
bmdSaWdodCArICIuICIpOworICAgIH0KKworICAgIHZhciBleHBlY3RlZE1hcmdpblRvcCA9IG5v
ZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLW1hcmdp
bi10b3AiKTsKKyAgICBpZiAoZXhwZWN0ZWRNYXJnaW5Ub3ApIHsKKyAgICAgICAgdmFyIGFjdHVh
bE1hcmdpblRvcCA9IGdldENvbXB1dGVkU3R5bGUobm9kZSkubWFyZ2luVG9wOworICAgICAgICAv
LyBUcmltIHRoZSB1bml0ICJweCIgZnJvbSB0aGUgb3V0cHV0LgorICAgICAgICBhY3R1YWxNYXJn
aW5Ub3AgPSBhY3R1YWxNYXJnaW5Ub3Auc3Vic3RyaW5nKDAsIGFjdHVhbE1hcmdpblRvcC5sZW5n
dGggLSAyKTsKKyAgICAgICAgaWYgKGFjdHVhbE1hcmdpblRvcCAhPSBleHBlY3RlZE1hcmdpblRv
cCkKKyAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZE1hcmdp
blRvcCArICIgZm9yIG1hcmdpbi10b3AsIGJ1dCBnb3QgIiArIGFjdHVhbE1hcmdpblRvcCArICIu
ICIpOworICAgIH0KKworICAgIHZhciBleHBlY3RlZE1hcmdpbkJvdHRvbSA9IG5vZGUuZ2V0QXR0
cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLW1hcmdpbi1ib3R0b20i
KTsKKyAgICBpZiAoZXhwZWN0ZWRNYXJnaW5Cb3R0b20pIHsKKyAgICAgICAgdmFyIGFjdHVhbE1h
cmdpbkJvdHRvbSA9IGdldENvbXB1dGVkU3R5bGUobm9kZSkubWFyZ2luQm90dG9tOworICAgICAg
ICAvLyBUcmltIHRoZSB1bml0ICJweCIgZnJvbSB0aGUgb3V0cHV0LgorICAgICAgICBhY3R1YWxN
YXJnaW5Cb3R0b20gPSBhY3R1YWxNYXJnaW5Cb3R0b20uc3Vic3RyaW5nKDAsIGFjdHVhbE1hcmdp
bkJvdHRvbS5sZW5ndGggLSAyKTsKKyAgICAgICAgaWYgKGFjdHVhbE1hcmdpbkJvdHRvbSAhPSBl
eHBlY3RlZE1hcmdpbkJvdHRvbSkKKyAgICAgICAgICAgIGZhaWx1cmVzLnB1c2goIkV4cGVjdGVk
ICIgKyBleHBlY3RlZE1hcmdpbkJvdHRvbSArICIgZm9yIG1hcmdpbi1ib3R0b20sIGJ1dCBnb3Qg
IiArIGFjdHVhbE1hcmdpbkJvdHRvbSArICIuICIpOworICAgIH0KKworICAgIHZhciBleHBlY3Rl
ZE1hcmdpbkxlZnQgPSBub2RlLmdldEF0dHJpYnV0ZSAmJiBub2RlLmdldEF0dHJpYnV0ZSgiZGF0
YS1leHBlY3RlZC1tYXJnaW4tbGVmdCIpOworICAgIGlmIChleHBlY3RlZE1hcmdpbkxlZnQpIHsK
KyAgICAgICAgdmFyIGFjdHVhbE1hcmdpbkxlZnQgPSBnZXRDb21wdXRlZFN0eWxlKG5vZGUpLm1h
cmdpbkxlZnQ7CisgICAgICAgIC8vIFRyaW0gdGhlIHVuaXQgInB4IiBmcm9tIHRoZSBvdXRwdXQu
CisgICAgICAgIGFjdHVhbE1hcmdpbkxlZnQgPSBhY3R1YWxNYXJnaW5MZWZ0LnN1YnN0cmluZygw
LCBhY3R1YWxNYXJnaW5MZWZ0Lmxlbmd0aCAtIDIpOworICAgICAgICBpZiAoYWN0dWFsTWFyZ2lu
TGVmdCAhPSBleHBlY3RlZE1hcmdpbkxlZnQpCisgICAgICAgICAgICBmYWlsdXJlcy5wdXNoKCJF
eHBlY3RlZCAiICsgZXhwZWN0ZWRNYXJnaW5MZWZ0ICsgIiBmb3IgbWFyZ2luLWxlZnQsIGJ1dCBn
b3QgIiArIGFjdHVhbE1hcmdpbkxlZnQgKyAiLiAiKTsKKyAgICB9CisKKyAgICB2YXIgZXhwZWN0
ZWRNYXJnaW5SaWdodCA9IG5vZGUuZ2V0QXR0cmlidXRlICYmIG5vZGUuZ2V0QXR0cmlidXRlKCJk
YXRhLWV4cGVjdGVkLW1hcmdpbi1yaWdodCIpOworICAgIGlmIChleHBlY3RlZE1hcmdpblJpZ2h0
KSB7CisgICAgICAgIHZhciBhY3R1YWxNYXJnaW5SaWdodCA9IGdldENvbXB1dGVkU3R5bGUobm9k
ZSkubWFyZ2luUmlnaHQ7CisgICAgICAgIC8vIFRyaW0gdGhlIHVuaXQgInB4IiBmcm9tIHRoZSBv
dXRwdXQuCisgICAgICAgIGFjdHVhbE1hcmdpblJpZ2h0ID0gYWN0dWFsTWFyZ2luUmlnaHQuc3Vi
c3RyaW5nKDAsIGFjdHVhbE1hcmdpblJpZ2h0Lmxlbmd0aCAtIDIpOworICAgICAgICBpZiAoYWN0
dWFsTWFyZ2luUmlnaHQgIT0gZXhwZWN0ZWRNYXJnaW5SaWdodCkKKyAgICAgICAgICAgIGZhaWx1
cmVzLnB1c2goIkV4cGVjdGVkICIgKyBleHBlY3RlZE1hcmdpblJpZ2h0ICsgIiBmb3IgbWFyZ2lu
LXJpZ2h0LCBidXQgZ290ICIgKyBhY3R1YWxNYXJnaW5SaWdodCArICIuICIpOworICAgIH0KIH0K
IAogd2luZG93LmNoZWNrTGF5b3V0ID0gZnVuY3Rpb24oc2VsZWN0b3JMaXN0KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>