<?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>133013</bug_id>
          
          <creation_ts>2014-05-16 15:33:00 -0700</creation_ts>
          <short_desc>Element within flattened frame may update its scroll state during the layout phase of the wrong RenderView</short_desc>
          <delta_ts>2014-05-20 13:35:16 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>hyatt</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1009873</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-05-16 15:33:00 -0700</bug_when>
    <thetext>Assuming frame flattening is enabled. Consider a page with the following markup:

&lt;div id=&quot;test-container&quot; style=&quot;display: -webkit-flex; -webkit-flex-direction: column; height: 512px;&quot;&gt;
    &lt;iframe style=&quot;width: 100%; overflow: hidden&quot; height=&quot;0&quot; srcdoc=&quot;
        &lt;div style=&apos;display: -webkit-flex; -webkit-flex-direction: column; height: 128px; width: 128px; background-color: blue&apos;&gt;
            &lt;div id=&apos;scrollableDiv&apos; style=&apos;display: none; overflow-y: scroll; width: 100px;&apos;&gt;&lt;/div&gt;
        &lt;/div&gt;
        &lt;script&gt;
        window.setTimeout(function () {
            var scrollableDiv = document.getElementById(&apos;scrollableDiv&apos;);
            scrollableDiv.innerHTML = &apos;Supercalifragilisticexpialidocious&apos;; /* A string that cannot be word-wrapped and exceeds the width of the scrollableDiv. */
            scrollableDiv.style.display = &apos;block&apos;;
        }, 0);
        &lt;/script&gt;
    &quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;

Then the assertion ASSERT(m_next) fails in LayoutState::LayoutState(std::unique_ptr&lt;LayoutState&gt;, ...).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009874</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-05-16 15:33:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/16760154&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1009875</commentid>
    <comment_count>2</comment_count>
      <attachid>231598</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-05-16 15:38:58 -0700</bug_when>
    <thetext>Created attachment 231598
Work-in-progress patch and layout tests

Need to fix up layout test delayed-scroll-in-iframe-with-full-repaint-crash.html to show PASS message on success and add a ChangeLog entry. Also, consider making UpdateScrollInfoAfterLayoutDispatcher::{begin, end}Deferring() take a const RenderBlock&amp; as an argument as a way to deter calling these methods outside of RenderBlock or RenderBlock-derived classes (or is there a better way to achieve this?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010340</commentid>
    <comment_count>3</comment_count>
      <attachid>231736</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-05-19 16:41:15 -0700</bug_when>
    <thetext>Created attachment 231736
Patch and layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010356</commentid>
    <comment_count>4</comment_count>
      <attachid>231740</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-05-19 17:08:49 -0700</bug_when>
    <thetext>Created attachment 231740
Patch and layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010572</commentid>
    <comment_count>5</comment_count>
      <attachid>231740</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2014-05-20 11:20:09 -0700</bug_when>
    <thetext>Comment on attachment 231740
Patch and layout tests

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1010613</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-05-20 13:35:16 -0700</bug_when>
    <thetext>Committed r169128: &lt;http://trac.webkit.org/changeset/169128&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231598</attachid>
            <date>2014-05-16 15:38:58 -0700</date>
            <delta_ts>2014-05-19 16:41:09 -0700</delta_ts>
            <desc>Work-in-progress patch and layout tests</desc>
            <filename>WIP-Bug133013.patch</filename>
            <type>text/plain</type>
            <size>26700</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">RnJvbSBmZjllNGVmYjY1OTYxNjZiMTBjM2JhYjA1N2EwZWFkMjg4Y2M0ZmZmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQmF0ZXMgPGRiYXRlc0B3ZWJraXQub3JnPgpEYXRl
OiBUaHUsIDE1IE1heSAyMDE0IDA5OjUwOjE1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gV0lQIC0g
VXBkYXRlU2Nyb2xsSW5mb0Rpc3BhdGNoZXIKCi0tLQogLi4uL2ZsZXhib3gvZGVsYXllZC1zY3Jv
bGwtaW4taWZyYW1lLWNyYXNoLmh0bWwgICAgfCA0MCArKysrKysrKysrCiAuLi5kLXNjcm9sbC1p
bi1pZnJhbWUtd2l0aC1mdWxsLXJlcGFpbnQtY3Jhc2guaHRtbCB8IDM3ICsrKysrKysrKysKIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiAgIHwgIDggKysK
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgICAgICAgICAgIHwgNjEg
Ky0tLS0tLS0tLS0tLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgg
ICAgICAgICAgICAgfCAgOSAtLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuY3BwICAgICAgIHwgIDIgKy0KIC4uLi9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZs
ZXhpYmxlQm94LmNwcCAgICAgIHwgIDkgKystCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxleGlibGVCb3guY3BwICAgICB8ICA1ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5oICAgICAgICAgICAgICB8ICA4ICstCiAuLi4vVXBkYXRlU2Nyb2xsSW5mb0Fm
dGVyTGF5b3V0RGlzcGF0Y2hlci5jcHAgICAgICB8IDg1ICsrKysrKysrKysrKysrKysrKysrKysK
IC4uLi9VcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXREaXNwYXRjaGVyLmggICAgICAgIHwgNTYg
KysrKysrKysrKysrKysKIDExIGZpbGVzIGNoYW5nZWQsIDI0NiBpbnNlcnRpb25zKCspLCA3NCBk
ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gv
ZGVsYXllZC1zY3JvbGwtaW4taWZyYW1lLWNyYXNoLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBM
YXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gvZGVsYXllZC1zY3JvbGwtaW4taWZyYW1lLXdpdGgtZnVs
bC1yZXBhaW50LWNyYXNoLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvVXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0RGlzcGF0Y2hlci5jcHAKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvVXBkYXRlU2Nyb2xsSW5mb0Fm
dGVyTGF5b3V0RGlzcGF0Y2hlci5oCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mbGV4
Ym94L2RlbGF5ZWQtc2Nyb2xsLWluLWlmcmFtZS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9mbGV4Ym94L2RlbGF5ZWQtc2Nyb2xsLWluLWlmcmFtZS1jcmFzaC5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE5ZWEzMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2ZsZXhib3gvZGVsYXllZC1zY3JvbGwtaW4taWZyYW1lLWNyYXNoLmh0bWwK
QEAgLTAsMCArMSw0MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitpZiAod2luZG93LmludGVy
bmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCh0
cnVlKTsKKworZnVuY3Rpb24gZG9uZSgpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnNvbGUiKS5pbm5lclRleHQgPSAiUEFTUyI7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHRoYXQgd2UgZG9uJ3QgY2F1c2UgYW4gYXNzZXJ0aW9u
IGZhaWx1cmUgd2hlbiBwZXJmb3JtaW5nIGEgcGFydGlhbCByZXBhaW50IG9mIGFuICZsdDtpZnJh
bWUmZ3Q7LCBlbmNsb3NlZCBpbiBhIGZsZXggYm94LCB3aG9zZSBjb250ZW50IGRvY3VtZW50IGNv
bnRhaW5zIGEgZmxleCBib3ggd2l0aCBhIGNoaWxkIHNjcm9sbGFibGUgJmx0O2RpdiZndDsuPC9w
PgorPGRpdiBpZD0idGVzdC1jb250YWluZXIiIHN0eWxlPSJkaXNwbGF5OiAtd2Via2l0LWZsZXg7
IC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgaGVpZ2h0OiA1MTJweDsiPgorICAgIDxp
ZnJhbWUgc3R5bGU9IndpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuIiBoZWlnaHQ9IjAiIHNy
Y2RvYz0iCisgICAgICAgIDxkaXYgc3R5bGU9J2Rpc3BsYXk6IC13ZWJraXQtZmxleDsgLXdlYmtp
dC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOyBoZWlnaHQ6IDEyOHB4OyB3aWR0aDogMTI4cHg7IGJh
Y2tncm91bmQtY29sb3I6IGJsdWUnPgorICAgICAgICAgICAgPGRpdiBpZD0nc2Nyb2xsYWJsZURp
dicgc3R5bGU9J2Rpc3BsYXk6IG5vbmU7IG92ZXJmbG93LXk6IHNjcm9sbDsgd2lkdGg6IDEwMHB4
Oyc+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICB3aW5k
b3cuc2V0VGltZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB2YXIgc2Nyb2xsYWJsZURp
diA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzY3JvbGxhYmxlRGl2Jyk7CisgICAgICAgICAg
ICBzY3JvbGxhYmxlRGl2LmlubmVySFRNTCA9ICdTdXBlcmNhbGlmcmFnaWxpc3RpY2V4cGlhbGlk
b2Npb3VzJzsgLyogQSBzdHJpbmcgdGhhdCBjYW5ub3QgYmUgd29yZC13cmFwcGVkIGFuZCBleGNl
ZWRzIHRoZSB3aWR0aCBvZiB0aGUgc2Nyb2xsYWJsZURpdi4gKi8KKyAgICAgICAgICAgIHNjcm9s
bGFibGVEaXYuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CisgICAgICAgICAgICB3aW5kb3cucGFy
ZW50LmRvbmUoKTsKKyAgICAgICAgfSwgMCk7CisgICAgICAgIDwvc2NyaXB0PgorICAgICI+PC9p
ZnJhbWU+Cis8L2Rpdj4KKzxwcmUgaWQ9ImNvbnNvbGUiPkZBSUw8L3ByZT4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmxleGJveC9kZWxheWVkLXNjcm9s
bC1pbi1pZnJhbWUtd2l0aC1mdWxsLXJlcGFpbnQtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZmxleGJveC9kZWxheWVkLXNjcm9sbC1pbi1pZnJhbWUtd2l0aC1mdWxsLXJlcGFpbnQtY3Jh
c2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43YjBmOWExCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mbGV4Ym94L2RlbGF5ZWQtc2Nyb2xsLWlu
LWlmcmFtZS13aXRoLWZ1bGwtcmVwYWludC1jcmFzaC5odG1sCkBAIC0wLDAgKzEsMzcgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKK30KKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7CisKK2Z1bmN0aW9uIGRv
bmUoKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0
ID0gIlBBU1MiOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0
ZXN0cyB0aGF0IHdlIGRvbid0IGNhdXNlIGEgY3Jhc2ggd2hlbiBwZXJmb3JtaW5nIGEgZnVsbCBy
ZXBhaW50IG9mIGFuICZsdDtpZnJhbWUmZ3Q7LCBlbmNsb3NlZCBpbiBhIGZsZXggYm94LCB3aG9z
ZSBjb250ZW50IGRvY3VtZW50IGNvbnRhaW5zIGEgZmxleCBib3ggd2l0aCBhIGNoaWxkIHNjcm9s
bGFibGUgJmx0O2RpdiZndDsuPC9wPgorPGRpdiBpZD0idGVzdC1jb250YWluZXIiIHN0eWxlPSJk
aXNwbGF5OiAtd2Via2l0LWZsZXg7IC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgaGVp
Z2h0OiA1MTJweDsiPgorICAgIDxpZnJhbWUgc3R5bGU9IndpZHRoOiAxMDAlOyBvdmVyZmxvdzog
aGlkZGVuIiBoZWlnaHQ9IjAiIHNyY2RvYz0iCisgICAgICAgIDxkaXYgc3R5bGU9J2Rpc3BsYXk6
IC13ZWJraXQtZmxleDsgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOyBoZWlnaHQ6IDEy
OHB4OyB3aWR0aDogMTI4cHg7IGJhY2tncm91bmQtY29sb3I6IGJsdWUnPgorICAgICAgICAgICAg
PGRpdiBpZD0nc2Nyb2xsYWJsZURpdicgc3R5bGU9J292ZXJmbG93LXk6IHNjcm9sbDsgb3V0bGlu
ZTogbm9uZTsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsgLXdlYmtpdC1mbGV4OiAxOyc+Cisg
ICAgICAgICAgICAgICAgPGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+TG9yZW0g
aXBzdW0KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPHNjcmlw
dD4KKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Njcm9sbGFibGVEaXYnKS5zY3Jv
bGxUb3AgPSAxMDg7CisgICAgICAgIDwvc2NyaXB0PgorICAgICI+PC9pZnJhbWU+Cis8L2Rpdj4K
KzxwcmUgaWQ9ImNvbnNvbGUiPkZBSUw8L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkMWJm
ZGIwLi5kOTU5YjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC01NjgwLDYgKzU2ODAsOCBAQAogCQlDRTdCMkRCNDE1ODZBQkFE
MDA5OEIzRkEgLyogQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0U3QjJEQjAxNTg2QUJBRDAwOThCM0ZB
IC8qIEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci5tbSAqLzsgfTsKIAkJQ0U3QjJEQjUxNTg2
QUJBRDAwOThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0U3QjJEQjExNTg2QUJBRDAwOThCM0ZB
IC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNFN0IyREI2MTU4NkFCQUQwMDk4QjNGQSAvKiBUZXh0
QWx0ZXJuYXRpdmVXaXRoUmFuZ2UubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRTdCMkRCMjE1ODZBQkFEMDA5OEIzRkEgLyogVGV4dEFsdGVybmF0aXZl
V2l0aFJhbmdlLm1tICovOyB9OworCQlDRTg4NkI5QTE5MjQxRTRCMDA4NDI4QkQgLyogVXBkYXRl
U2Nyb2xsSW5mb0FmdGVyTGF5b3V0RGlzcGF0Y2hlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTg4NkI5ODE5MjQxRTRCMDA4NDI4QkQgLyogVXBk
YXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0RGlzcGF0Y2hlci5jcHAgKi87IH07CisJCUNFODg2QjlC
MTkyNDFFNEIwMDg0MjhCRCAvKiBVcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXREaXNwYXRjaGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRTg4NkI5
OTE5MjQxRTRCMDA4NDI4QkQgLyogVXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0RGlzcGF0Y2hl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUNF
OTUyMDhBMTgxMUI0NzUwMDdBNTM5MiAvKiBXZWJTYWZlSW5jcmVtZW50YWxTd2VlcGVySU9TLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMkM0Q0IxRDE2
MUExMzEyMDBEMjE0REEgLyogV2ViU2FmZUluY3JlbWVudGFsU3dlZXBlcklPUy5oICovOyB9Owog
CQlDRUNBREZDNjE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0VDQURGQzIxNTM3
NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFsdGVybmF0aXZlLmNwcCAqLzsgfTsKIAkJQ0VDQURG
QzcxNTM3NzhGRjAwRTM3MDY4IC8qIERpY3RhdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRUNBREZDMzE1Mzc3OEZGMDBFMzcw
NjggLyogRGljdGF0aW9uQWx0ZXJuYXRpdmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTMwNjQsNiArMTMwNjYsOCBAQAogCQlDRTdCMkRCMDE1
ODZBQkFEMDA5OEIzRkEgLyogQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9s
bGVyLm1tOyBwYXRoID0gbWFjL0FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U3QjJEQjExNTg2QUJBRDAwOThCM0ZBIC8qIFRleHRB
bHRlcm5hdGl2ZVdpdGhSYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBU
ZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaDsgcGF0aCA9IG1hYy9UZXh0QWx0ZXJuYXRpdmVXaXRo
UmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0U3QjJEQjIxNTg2QUJBRDAw
OThCM0ZBIC8qIFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5tbTsgcGF0aCA9
IG1hYy9UZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNFODg2Qjk4MTkyNDFFNEIwMDg0MjhCRCAvKiBVcGRhdGVTY3JvbGxJbmZvQWZ0ZXJM
YXlvdXREaXNwYXRjaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dERpc3BhdGNoZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDRTg4NkI5OTE5MjQxRTRCMDA4NDI4QkQgLyogVXBkYXRlU2Nyb2xs
SW5mb0FmdGVyTGF5b3V0RGlzcGF0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBVcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXREaXNwYXRjaGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNFQ0FERkMyMTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25B
bHRlcm5hdGl2ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0
YXRpb25BbHRlcm5hdGl2ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFQ0FE
RkMzMTUzNzc4RkYwMEUzNzA2OCAvKiBEaWN0YXRpb25BbHRlcm5hdGl2ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEaWN0YXRpb25BbHRlcm5hdGl2ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRUNBREZDNDE1Mzc3OEZGMDBFMzcwNjggLyogRGljdGF0aW9u
Q29tbWFuZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaWN0YXRp
b25Db21tYW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMTU3LDYgKzIy
MTYxLDggQEAKIAkJCQlFNEM5MUEwRDE4MDIzNDMxMDBBMTdGNkQgLyogVGV4dFBhaW50U3R5bGUu
aCAqLywKIAkJCQkzN0ZDOTZEQTExMDRFRDcxMDAzRTFGQUQgLyogVHJhaWxpbmdGbG9hdHNSb290
SW5saW5lQm94LmggKi8sCiAJCQkJQkNBMjU3MTQxMjkzQzAxMDAwN0EyNjNEIC8qIFZlcnRpY2Fs
UG9zaXRpb25DYWNoZS5oICovLAorCQkJCUNFODg2Qjk4MTkyNDFFNEIwMDg0MjhCRCAvKiBVcGRh
dGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXREaXNwYXRjaGVyLmNwcCAqLywKKwkJCQlDRTg4NkI5OTE5
MjQxRTRCMDA4NDI4QkQgLyogVXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0RGlzcGF0Y2hlci5o
ICovLAogCQkJKTsKIAkJCXBhdGggPSByZW5kZXJpbmc7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtMjUwMTAsNiArMjUwMTYsNyBAQAogCQkJCTA3OEUwOTE5MTdEMTREMUMwMDQyMEFB
MSAvKiBNZWRpYVN0cmVhbVRyYWNrRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3RkZERTY5
MTgxQUVENDIwMDcyRDQwOSAvKiBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMDc2MzA2RDAxN0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tTb3Vy
Y2VzQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAorCQkJCUNFODg2QjlCMTkyNDFFNEIwMDg0MjhC
RCAvKiBVcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXREaXNwYXRjaGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwNzYzMDZEMzE3RTE0NzhEMDA1QTdDNEUgLyogTWVkaWFTdHJlYW1UcmFja1NvdXJj
ZXNSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNzYzMDZFMzE3RTIyQTQzMDA1QTdDNEUg
LyogTWVkaWFTdHJlYW1UcmFja1NvdXJjZXNSZXF1ZXN0Q2xpZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlDRDY0MUVDMDE4MTlCMzYwMDBFRTRDNDEgLyogTWVkaWFUaW1lTWFjLmggaW4gSGVhZGVy
cyAqLywKQEAgLTI4Mzc1LDYgKzI4MzgyLDcgQEAKIAkJCQlFMUNBNUNCQzBFOENEQ0FGMDBFOEVG
OTAgLyogSlNXb3JrZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE4MjU2OEYwRUYy
QjAyRDAwOTMzMjQyIC8qIEpTV29ya2VyR2xvYmFsU2NvcGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRTFDMzZEMzQwRUIwQTA5NDAwNzQxMEJDIC8qIEpTV29ya2VyR2xvYmFsU2NvcGVCYXNlLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUNFODg2QjlBMTkyNDFFNEIwMDg0MjhCRCAvKiBVcGRhdGVT
Y3JvbGxJbmZvQWZ0ZXJMYXlvdXREaXNwYXRjaGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUx
ODI1OEFDMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUUxQzM2MkYwMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxv
Y2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMjcxQTU5MEVFRUNERTQwMEY2MTIxMyAv
KiBKU1dvcmtlck5hdmlnYXRvci5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDc1OTlkMDg4Li5lYzU5MTg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTkyLDEwICs5Miw2IEBAIHN0YXRp
YyBUcmFja2VkQ29udGFpbmVyTWFwKiBnUGVyY2VudEhlaWdodENvbnRhaW5lck1hcCA9IDA7CiAg
ICAgCiB0eXBlZGVmIFdURjo6SGFzaE1hcDxSZW5kZXJCbG9jayosIHN0ZDo6dW5pcXVlX3B0cjxM
aXN0SGFzaFNldDxSZW5kZXJJbmxpbmUqPj4+IENvbnRpbnVhdGlvbk91dGxpbmVUYWJsZU1hcDsK
IAotdHlwZWRlZiBXVEY6Okhhc2hTZXQ8UmVuZGVyQmxvY2sqPiBEZWxheWVkVXBkYXRlU2Nyb2xs
SW5mb1NldDsKLXN0YXRpYyBpbnQgZ0RlbGF5VXBkYXRlU2Nyb2xsSW5mbyA9IDA7Ci1zdGF0aWMg
RGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQqIGdEZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldCA9
IDA7Ci0KIC8vIEFsbG9jYXRlZCBvbmx5IHdoZW4gc29tZSBvZiB0aGVzZSBmaWVsZHMgaGF2ZSBu
b24tZGVmYXVsdCB2YWx1ZXMKIAogc3RydWN0IFJlbmRlckJsb2NrUmFyZURhdGEgewpAQCAtMjM2
LDcgKzIzMiw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCgpCiAgICAgICAg
ICAgICBwYXJlbnQoKS0+ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQodGhpcyk7CiAgICAgfQog
Ci0gICAgcmVtb3ZlRnJvbURlbGF5ZWRVcGRhdGVTY3JvbGxJbmZvU2V0KCk7CisgICAgdmlldygp
LnVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dERpc3BhdGNoZXIoKS53aWxsRGVzdHJveVJlbmRl
cmVyKCp0aGlzKTsKIAogICAgIFJlbmRlckJveDo6d2lsbEJlRGVzdHJveWVkKCk7CiB9CkBAIC05
MTksNTkgKzkxNSwxMCBAQCBib29sIFJlbmRlckJsb2NrOjppc1NlbGZDb2xsYXBzaW5nQmxvY2so
KSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBSZW5kZXJCbG9jazo6c3RhcnRE
ZWxheVVwZGF0ZVNjcm9sbEluZm8oKQotewotICAgIGlmIChnRGVsYXlVcGRhdGVTY3JvbGxJbmZv
ID09IDApIHsKLSAgICAgICAgQVNTRVJUKCFnRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQpOwot
ICAgICAgICBnRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQgPSBuZXcgRGVsYXllZFVwZGF0ZVNj
cm9sbEluZm9TZXQ7Ci0gICAgfQotICAgIEFTU0VSVChnRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9T
ZXQpOwotICAgICsrZ0RlbGF5VXBkYXRlU2Nyb2xsSW5mbzsKLX0KLQotdm9pZCBSZW5kZXJCbG9j
azo6ZmluaXNoRGVsYXlVcGRhdGVTY3JvbGxJbmZvKCkKLXsKLSAgICAtLWdEZWxheVVwZGF0ZVNj
cm9sbEluZm87Ci0gICAgQVNTRVJUKGdEZWxheVVwZGF0ZVNjcm9sbEluZm8gPj0gMCk7Ci0gICAg
aWYgKGdEZWxheVVwZGF0ZVNjcm9sbEluZm8gPT0gMCkgewotICAgICAgICBBU1NFUlQoZ0RlbGF5
ZWRVcGRhdGVTY3JvbGxJbmZvU2V0KTsKLQotICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVsYXll
ZFVwZGF0ZVNjcm9sbEluZm9TZXQ+IGluZm9TZXQoZ0RlbGF5ZWRVcGRhdGVTY3JvbGxJbmZvU2V0
KTsKLSAgICAgICAgZ0RlbGF5ZWRVcGRhdGVTY3JvbGxJbmZvU2V0ID0gMDsKLQotICAgICAgICBm
b3IgKERlbGF5ZWRVcGRhdGVTY3JvbGxJbmZvU2V0OjppdGVyYXRvciBpdCA9IGluZm9TZXQtPmJl
Z2luKCk7IGl0ICE9IGluZm9TZXQtPmVuZCgpOyArK2l0KSB7Ci0gICAgICAgICAgICBSZW5kZXJC
bG9jayogYmxvY2sgPSAqaXQ7Ci0gICAgICAgICAgICBpZiAoYmxvY2stPmhhc092ZXJmbG93Q2xp
cCgpKSB7Ci0gICAgICAgICAgICAgICAgYmxvY2stPmxheWVyKCktPnVwZGF0ZVNjcm9sbEluZm9B
ZnRlckxheW91dCgpOwotICAgICAgICAgICAgICAgIGJsb2NrLT5jbGVhckxheW91dE92ZXJmbG93
KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLXZvaWQgUmVuZGVyQmxv
Y2s6OnJlbW92ZUZyb21EZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldCgpCi17Ci0gICAgaWYgKFVO
TElLRUxZKGdEZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldCAhPSAwKSkKLSAgICAgICAgZ0RlbGF5
ZWRVcGRhdGVTY3JvbGxJbmZvU2V0LT5yZW1vdmUodGhpcyk7Ci19Ci0KIHZvaWQgUmVuZGVyQmxv
Y2s6OnVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dCgpCiB7Ci0gICAgaWYgKGhhc092ZXJmbG93
Q2xpcCgpKSB7Ci0gICAgICAgIGlmIChzdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2Rl
KCkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTc5MzcKLSAgICAgICAgICAgIC8vIFdvcmthcm91bmQgZm9yIG5vdy4gV2Ug
Y2Fubm90IGRlbGF5IHRoZSBzY3JvbGwgaW5mbyBmb3Igb3ZlcmZsb3cKLSAgICAgICAgICAgIC8v
IGZvciBpdGVtcyB3aXRoIG9wcG9zaXRlIHdyaXRpbmcgZGlyZWN0aW9ucywgYXMgdGhlIGNvbnRl
bnRzIG5lZWRzCi0gICAgICAgICAgICAvLyB0byBvdmVyZmxvdyBpbiB0aGF0IGRpcmVjdGlvbgot
ICAgICAgICAgICAgbGF5ZXIoKS0+dXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0KCk7Ci0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoZ0RlbGF5VXBkYXRlU2Ny
b2xsSW5mbykKLSAgICAgICAgICAgIGdEZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldC0+YWRkKHRo
aXMpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBsYXllcigpLT51cGRhdGVTY3JvbGxJbmZv
QWZ0ZXJMYXlvdXQoKTsKLSAgICB9CisgICAgaWYgKGhhc092ZXJmbG93Q2xpcCgpKQorICAgICAg
ICB2aWV3KCkudXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0RGlzcGF0Y2hlcigpLmRpc3BhdGNo
VXBkYXRlU2Nyb2xsSW5mb0ZvcigqdGhpcyk7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91
dCgpCkBAIC05ODgsNyArOTM1LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0KCkKICAgICAK
ICAgICAvLyBJdCdzIHNhZmUgdG8gY2hlY2sgZm9yIGNvbnRyb2wgY2xpcCBoZXJlLCBzaW5jZSBj
b250cm9scyBjYW4gbmV2ZXIgYmUgdGFibGUgY2VsbHMuCiAgICAgLy8gSWYgd2UgaGF2ZSBhIGxp
Z2h0d2VpZ2h0IGNsaXAsIHRoZXJlIGNhbiBuZXZlciBiZSBhbnkgb3ZlcmZsb3cgZnJvbSBjaGls
ZHJlbi4KLSAgICBpZiAoaGFzQ29udHJvbENsaXAoKSAmJiBtX292ZXJmbG93ICYmICFnRGVsYXlV
cGRhdGVTY3JvbGxJbmZvKQorICAgIGlmIChoYXNDb250cm9sQ2xpcCgpICYmIG1fb3ZlcmZsb3cg
JiYgIXZpZXcoKS51cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXREaXNwYXRjaGVyKCkuaXNEZWZl
cnJpbmdEaXNwYXRjaCgpKQogICAgICAgICBjbGVhckxheW91dE92ZXJmbG93KCk7CiAKICAgICBp
bnZhbGlkYXRlQmFja2dyb3VuZE9ic2N1cmF0aW9uU3RhdHVzKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5oCmluZGV4IGUzMDNjZDIuLjE0ZGNjOGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC0zNTUsMTYgKzM1NSw3IEBAIHByb3RlY3RlZDoK
ICAgICB2aXJ0dWFsIGludCBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgaW50IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0
IG92ZXJyaWRlOwogCi0gICAgLy8gRGVsYXkgdXBkYXRlIHNjcm9sbGJhciB1bnRpbCBmaW5pc2hE
ZWxheVJlcGFpbnQoKSB3aWxsIGJlCi0gICAgLy8gY2FsbGVkLiBUaGlzIGZ1bmN0aW9uIGlzIHVz
ZWQgd2hlbiBhIGZsZXhib3ggaXMgbGF5aW5nIG91dCBpdHMKLSAgICAvLyBkZXNjZW5kYW50LiBJ
ZiBtdWx0aXBsZSBjYWxscyBhcmUgbWFkZSB0byBzdGFydERlbGF5UmVwYWludCgpLAotICAgIC8v
IGZpbmlzaERlbGF5UmVwYWludCgpIHdpbGwgZG8gbm90aGluZyB1bnRpbCBmaW5pc2hEZWxheVJl
cGFpbnQoKQotICAgIC8vIGlzIGNhbGxlZCB0aGUgc2FtZSBudW1iZXIgb2YgdGltZXMuCi0gICAg
c3RhdGljIHZvaWQgc3RhcnREZWxheVVwZGF0ZVNjcm9sbEluZm8oKTsKLSAgICBzdGF0aWMgdm9p
ZCBmaW5pc2hEZWxheVVwZGF0ZVNjcm9sbEluZm8oKTsKLQogICAgIHZvaWQgdXBkYXRlU2Nyb2xs
SW5mb0FmdGVyTGF5b3V0KCk7Ci0gICAgdm9pZCByZW1vdmVGcm9tRGVsYXllZFVwZGF0ZVNjcm9s
bEluZm9TZXQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxl
KiBvbGRTdHlsZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0Zsb3cuY3BwCmluZGV4IDljNGM2OWIuLjYyNjYwOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC0xODIsNyArMTgyLDcgQEAgdm9pZCBS
ZW5kZXJCbG9ja0Zsb3c6OndpbGxCZURlc3Ryb3llZCgpCiAKICAgICBtX2xpbmVCb3hlcy5kZWxl
dGVMaW5lQm94ZXMoKTsKIAotICAgIHJlbW92ZUZyb21EZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1Nl
dCgpOworICAgIHZpZXcoKS51cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXREaXNwYXRjaGVyKCku
d2lsbERlc3Ryb3lSZW5kZXJlcigqdGhpcyk7CiAKICAgICAvLyBOT1RFOiBUaGlzIGp1bXBzIGRv
d24gdG8gUmVuZGVyQm94LCBieXBhc3NpbmcgUmVuZGVyQmxvY2sgc2luY2UgaXQgd291bGQgZG8g
ZHVwbGljYXRlIHdvcmsuCiAgICAgUmVuZGVyQm94Ojp3aWxsQmVEZXN0cm95ZWQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveC5jcHAKaW5kZXggZDI2NjczZi4uY2U4NmFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAKQEAgLTI5
LDYgKzI5LDcgQEAKICNpbmNsdWRlICJMYXlvdXRSZXBhaW50ZXIuaCIKICNpbmNsdWRlICJSZW5k
ZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKKyNpbmNsdWRlICJVcGRhdGVTY3Jv
bGxJbmZvQWZ0ZXJMYXlvdXREaXNwYXRjaGVyLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJh
cy5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CiAKQEAgLTM5MSw3
ICszOTIsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0SG9yaXpv
bnRhbEJveChib29sIHJlbGF5b3V0Q2hpbGRyZW4pCiAgICAgYm9vbCBoYXZlRmxleCA9IGZhbHNl
LCBmbGV4aW5nQ2hpbGRyZW4gPSBmYWxzZTsgCiAgICAgZ2F0aGVyRmxleENoaWxkcmVuSW5mbyhp
dGVyYXRvciwgcmVsYXlvdXRDaGlsZHJlbiwgaGlnaGVzdEZsZXhHcm91cCwgbG93ZXN0RmxleEdy
b3VwLCBoYXZlRmxleCk7CiAKLSAgICBSZW5kZXJCbG9jazo6c3RhcnREZWxheVVwZGF0ZVNjcm9s
bEluZm8oKTsKKyAgICB2aWV3KCkudXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0RGlzcGF0Y2hl
cigpLmJlZ2luRGVmZXJyaW5nKCk7CiAKICAgICBDaGlsZExheW91dERlbHRhcyBjaGlsZExheW91
dERlbHRhczsKICAgICBhcHBlbmRDaGlsZExheW91dERlbHRhcyh0aGlzLCBjaGlsZExheW91dERl
bHRhcyk7CkBAIC02MjEsNyArNjIyLDcgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVC
b3g6OmxheW91dEhvcml6b250YWxCb3goYm9vbCByZWxheW91dENoaWxkcmVuKQogICAgICAgICB9
CiAgICAgfSB3aGlsZSAoaGF2ZUZsZXgpOwogCi0gICAgUmVuZGVyQmxvY2s6OmZpbmlzaERlbGF5
VXBkYXRlU2Nyb2xsSW5mbygpOworICAgIHZpZXcoKS51cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlv
dXREaXNwYXRjaGVyKCkuZW5kRGVmZXJyaW5nKCk7CiAKICAgICBpZiAocmVtYWluaW5nU3BhY2Ug
PiAwICYmICgoc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkgJiYgc3R5bGUoKS5ib3hQ
YWNrKCkgIT0gU3RhcnQpCiAgICAgICAgIHx8ICghc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0
aW9uKCkgJiYgc3R5bGUoKS5ib3hQYWNrKCkgIT0gRW5kKSkpIHsKQEAgLTY5OCw3ICs2OTksNyBA
QCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0VmVydGljYWxCb3goYm9v
bCByZWxheW91dENoaWxkcmVuKQogICAgIGlmIChoYXZlTGluZUNsYW1wKQogICAgICAgICBhcHBs
eUxpbmVDbGFtcChpdGVyYXRvciwgcmVsYXlvdXRDaGlsZHJlbik7CiAKLSAgICBSZW5kZXJCbG9j
azo6c3RhcnREZWxheVVwZGF0ZVNjcm9sbEluZm8oKTsKKyAgICB2aWV3KCkudXBkYXRlU2Nyb2xs
SW5mb0FmdGVyTGF5b3V0RGlzcGF0Y2hlcigpLmJlZ2luRGVmZXJyaW5nKCk7CiAKICAgICBDaGls
ZExheW91dERlbHRhcyBjaGlsZExheW91dERlbHRhczsKICAgICBhcHBlbmRDaGlsZExheW91dERl
bHRhcyh0aGlzLCBjaGlsZExheW91dERlbHRhcyk7CkBAIC04NzksNyArODgwLDcgQEAgdm9pZCBS
ZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dFZlcnRpY2FsQm94KGJvb2wgcmVsYXlv
dXRDaGlsZHJlbikKICAgICAgICAgfQogICAgIH0gd2hpbGUgKGhhdmVGbGV4KTsKIAotICAgIFJl
bmRlckJsb2NrOjpmaW5pc2hEZWxheVVwZGF0ZVNjcm9sbEluZm8oKTsKKyAgICB2aWV3KCkudXBk
YXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0RGlzcGF0Y2hlcigpLmVuZERlZmVycmluZygpOwogCiAg
ICAgaWYgKHN0eWxlKCkuYm94UGFjaygpICE9IFN0YXJ0ICYmIHJlbWFpbmluZ1NwYWNlID4gMCkg
ewogICAgICAgICAvLyBDaGlsZHJlbiBtdXN0IGJlIHJlcG9zaXRpb25lZC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDNkMDRhMjAuLjBl
ZWRkZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJs
ZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkxheW91dFJlcGFpbnRlci5oIgogI2lu
Y2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgorI2luY2x1ZGUg
IlVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dERpc3BhdGNoZXIuaCIKICNpbmNsdWRlIDxsaW1p
dHM+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIApAQCAtMjcxLDcgKzI3Miw3IEBAIHZv
aWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwg
TGF5b3V0VW5pdCkKIAogICAgIG1fbnVtYmVyT2ZJbkZsb3dDaGlsZHJlbk9uRmlyc3RMaW5lID0g
LTE7CiAKLSAgICBSZW5kZXJCbG9jazo6c3RhcnREZWxheVVwZGF0ZVNjcm9sbEluZm8oKTsKKyAg
ICB2aWV3KCkudXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0RGlzcGF0Y2hlcigpLmJlZ2luRGVm
ZXJyaW5nKCk7CiAKICAgICBkaXJ0eUZvckxheW91dEZyb21QZXJjZW50YWdlSGVpZ2h0RGVzY2Vu
ZGFudHMoKTsKIApAQCAtMjg3LDcgKzI4OCw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6Omxh
eW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICB1cGRhdGVM
b2dpY2FsSGVpZ2h0KCk7CiAgICAgcmVwb3NpdGlvbkxvZ2ljYWxIZWlnaHREZXBlbmRlbnRGbGV4
SXRlbXMobGluZUNvbnRleHRzKTsKIAotICAgIFJlbmRlckJsb2NrOjpmaW5pc2hEZWxheVVwZGF0
ZVNjcm9sbEluZm8oKTsKKyAgICB2aWV3KCkudXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0RGlz
cGF0Y2hlcigpLmVuZERlZmVycmluZygpOwogCiAgICAgaWYgKGxvZ2ljYWxIZWlnaHQoKSAhPSBw
cmV2aW91c0hlaWdodCkKICAgICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9IHRydWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCA5Njk2NTMzLi5hNGQ3OWI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRl
ICJSZWdpb24uaCIKICNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKICNpbmNsdWRlICJTZWxl
Y3Rpb25TdWJ0cmVlUm9vdC5oIgorI2luY2x1ZGUgIlVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91
dERpc3BhdGNoZXIuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CkBAIC03Niw2ICs3Nyw4IEBAIHB1YmxpYzoKIAog
ICAgIEZyYW1lVmlldyYgZnJhbWVWaWV3KCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZVZpZXc7IH0K
IAorICAgIFVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dERpc3BhdGNoZXImIHVwZGF0ZVNjcm9s
bEluZm9BZnRlckxheW91dERpc3BhdGNoZXIoKSB7IHJldHVybiBtX3VwZGF0ZVNjcm9sbEluZm9B
ZnRlckxheW91dERpc3BhdGNoZXI7IH0KKwogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCB2aXN1YWxP
dmVyZmxvd1JlY3QoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJl
Y3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIExheW91dFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IG92ZXJyaWRlOwogICAg
IHZvaWQgcmVwYWludFJvb3RDb250ZW50cygpOwpAQCAtMjY2LDYgKzI2OSw3IEBAIHByaXZhdGU6
CiAgICAgICAgIC8vIFdlIHB1c2ggTGF5b3V0U3RhdGUgZXZlbiBpZiBsYXlvdXRTdGF0ZSBpcyBk
aXNhYmxlZCBiZWNhdXNlIGl0IHN0b3JlcyBsYXlvdXREZWx0YSB0b28uCiAgICAgICAgIGlmICgh
ZG9pbmdGdWxsUmVwYWludCgpIHx8IG1fbGF5b3V0U3RhdGUtPmlzUGFnaW5hdGVkKCkgfHwgcmVu
ZGVyZXIuZmxvd1RocmVhZENvbnRhaW5pbmdCbG9jaygpCiAgICAgICAgICAgICB8fCBtX2xheW91
dFN0YXRlLT5saW5lR3JpZCgpIHx8IChyZW5kZXJlci5zdHlsZSgpLmxpbmVHcmlkKCkgIT0gUmVu
ZGVyU3R5bGU6OmluaXRpYWxMaW5lR3JpZCgpICYmIHJlbmRlcmVyLmlzUmVuZGVyQmxvY2tGbG93
KCkpKSB7CisgICAgICAgICAgICBBU1NFUlQobV9sYXlvdXRTdGF0ZSk7CiAgICAgICAgICAgICBt
X2xheW91dFN0YXRlID0gc3RkOjptYWtlX3VuaXF1ZTxMYXlvdXRTdGF0ZT4oc3RkOjptb3ZlKG1f
bGF5b3V0U3RhdGUpLCAmcmVuZGVyZXIsIG9mZnNldCwgcGFnZUhlaWdodCwgcGFnZUhlaWdodENo
YW5nZWQpOwogICAgICAgICAgICAgcHVzaExheW91dFN0YXRlRm9yQ3VycmVudEZsb3dUaHJlYWQo
cmVuZGVyZXIpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CkBAIC0yOTYsNyArMzAwLDcgQEAg
cHJpdmF0ZToKIAogICAgIHZvaWQgcHVzaExheW91dFN0YXRlRm9yQ3VycmVudEZsb3dUaHJlYWQo
Y29uc3QgUmVuZGVyT2JqZWN0Jik7CiAgICAgdm9pZCBwb3BMYXlvdXRTdGF0ZUZvckN1cnJlbnRG
bG93VGhyZWFkKCk7Ci0gICAgCisKICAgICBmcmllbmQgY2xhc3MgTGF5b3V0U3RhdGVNYWludGFp
bmVyOwogICAgIGZyaWVuZCBjbGFzcyBMYXlvdXRTdGF0ZURpc2FibGVyOwogCkBAIC0zNTgsNiAr
MzYyLDggQEAgcHJpdmF0ZToKIAogICAgIEhhc2hTZXQ8UmVuZGVyRWxlbWVudCo+IG1fcmVuZGVy
ZXJzV2l0aFBhdXNlZEltYWdlQW5pbWF0aW9uOwogCisgICAgVXBkYXRlU2Nyb2xsSW5mb0FmdGVy
TGF5b3V0RGlzcGF0Y2hlciBtX3VwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dERpc3BhdGNoZXI7
CisKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBTZWxlY3Rpb25SZWN0R2F0aGVy
ZXIgbV9zZWxlY3Rpb25SZWN0R2F0aGVyZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9VcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXREaXNwYXRjaGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9VcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRE
aXNwYXRjaGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kM2NjNGE5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1VwZGF0ZVNjcm9s
bEluZm9BZnRlckxheW91dERpc3BhdGNoZXIuY3BwCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVXBkYXRlU2Nyb2xsSW5mb0FmdGVy
TGF5b3V0RGlzcGF0Y2hlci5oIgorCisjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKKyNpbmNsdWRl
ICJSZW5kZXJMYXllci5oIgorI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisjaW5jbHVkZSAiUmVu
ZGVyVmlldy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1VwZGF0ZVNjcm9sbEluZm9BZnRl
ckxheW91dERpc3BhdGNoZXI6OlVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dERpc3BhdGNoZXIo
KQorICAgIDogbV9kZWZlcnJlZFVwZGF0ZVNjcm9sbEluZm9EZXB0aCgwKQoreworfQorCit2b2lk
IFVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dERpc3BhdGNoZXI6OmRpc3BhdGNoVXBkYXRlU2Ny
b2xsSW5mb0ZvcihSZW5kZXJCbG9jayYgYmxvY2spCit7CisgICAgaWYgKGJsb2NrLnN0eWxlKCku
aXNGbGlwcGVkQmxvY2tzV3JpdGluZ01vZGUoKSkgeworICAgICAgICAvLyBGSVhNRTogaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3OTM3CisgICAgICAgIC8vIFdvcmth
cm91bmQgZm9yIG5vdy4gV2UgY2Fubm90IGRlbGF5IHRoZSBzY3JvbGwgaW5mbyBmb3Igb3ZlcmZs
b3cKKyAgICAgICAgLy8gZm9yIGl0ZW1zIHdpdGggb3Bwb3NpdGUgd3JpdGluZyBkaXJlY3Rpb25z
LCBhcyB0aGUgY29udGVudHMgbmVlZHMKKyAgICAgICAgLy8gdG8gb3ZlcmZsb3cgaW4gdGhhdCBk
aXJlY3Rpb24KKyAgICAgICAgYmxvY2subGF5ZXIoKS0+dXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5
b3V0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9kZWZlcnJlZFVwZGF0
ZVNjcm9sbEluZm9TZXQpCisgICAgICAgIG1fZGVmZXJyZWRVcGRhdGVTY3JvbGxJbmZvU2V0LT5h
ZGQoJmJsb2NrKTsKKyAgICBlbHNlCisgICAgICAgIGJsb2NrLmxheWVyKCktPnVwZGF0ZVNjcm9s
bEluZm9BZnRlckxheW91dCgpOworfQorCit2b2lkIFVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91
dERpc3BhdGNoZXI6OndpbGxEZXN0cm95UmVuZGVyZXIoUmVuZGVyQmxvY2smIGJsb2NrKQorewor
ICAgIGlmIChVTkxJS0VMWShtX2RlZmVycmVkVXBkYXRlU2Nyb2xsSW5mb1NldCAhPSAwKSkKKyAg
ICAgICAgbV9kZWZlcnJlZFVwZGF0ZVNjcm9sbEluZm9TZXQtPnJlbW92ZSgmYmxvY2spOworfQor
Cit2b2lkIFVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dERpc3BhdGNoZXI6OmJlZ2luRGVmZXJy
aW5nKCkKK3sKKyAgICBpZiAoIW1fZGVmZXJyZWRVcGRhdGVTY3JvbGxJbmZvRGVwdGgrKykKKyAg
ICAgICAgbV9kZWZlcnJlZFVwZGF0ZVNjcm9sbEluZm9TZXQgPSBzdGQ6Om1ha2VfdW5pcXVlPERl
ZmVycmVkVXBkYXRlU2Nyb2xsSW5mb1NldD4oKTsKK30KKwordm9pZCBVcGRhdGVTY3JvbGxJbmZv
QWZ0ZXJMYXlvdXREaXNwYXRjaGVyOjplbmREZWZlcnJpbmcoKQoreworICAgIEFTU0VSVChtX2Rl
ZmVycmVkVXBkYXRlU2Nyb2xsSW5mb0RlcHRoKTsKKyAgICBpZiAoLS1tX2RlZmVycmVkVXBkYXRl
U2Nyb2xsSW5mb0RlcHRoKQorICAgICAgICByZXR1cm47CisgICAgQVNTRVJUKG1fZGVmZXJyZWRV
cGRhdGVTY3JvbGxJbmZvU2V0KTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGVmZXJyZWRVcGRhdGVT
Y3JvbGxJbmZvU2V0PiBzaGFkb3dEZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1JlbmRlcmVycyA9IHN0
ZDo6bW92ZShtX2RlZmVycmVkVXBkYXRlU2Nyb2xsSW5mb1NldCk7CisgICAgZm9yIChhdXRvKiBy
ZW5kZXJCbG9jayA6ICpzaGFkb3dEZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1JlbmRlcmVycy5nZXQo
KSkgeworICAgICAgICBpZiAoIXJlbmRlckJsb2NrLT5oYXNPdmVyZmxvd0NsaXAoKSkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICByZW5kZXJCbG9jay0+bGF5ZXIoKS0+dXBkYXRlU2Ny
b2xsSW5mb0FmdGVyTGF5b3V0KCk7CisgICAgICAgIHJlbmRlckJsb2NrLT5jbGVhckxheW91dE92
ZXJmbG93KCk7CisgICAgfQorfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvVXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0RGlzcGF0Y2hlci5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1VwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dERpc3BhdGNoZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43NjBjNWM1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1VwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91
dERpc3BhdGNoZXIuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBVcGRh
dGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXREaXNwYXRjaGVyX2gKKyNkZWZpbmUgVXBkYXRlU2Nyb2xs
SW5mb0FmdGVyTGF5b3V0RGlzcGF0Y2hlcl9oCisKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgor
I2luY2x1ZGUgPG1lbW9yeT4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZW5kZXJC
bG9jazsKKworY2xhc3MgVXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0RGlzcGF0Y2hlciB7Citw
dWJsaWM6CisgICAgVXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0RGlzcGF0Y2hlcigpOworCisg
ICAgYm9vbCBpc0RlZmVycmluZ0Rpc3BhdGNoKCkgeyByZXR1cm4gbV9kZWZlcnJlZFVwZGF0ZVNj
cm9sbEluZm9TZXQuZ2V0KCk7IH0KKworICAgIHZvaWQgZGlzcGF0Y2hVcGRhdGVTY3JvbGxJbmZv
Rm9yKFJlbmRlckJsb2NrJik7CisKKyAgICB2b2lkIHdpbGxEZXN0cm95UmVuZGVyZXIoUmVuZGVy
QmxvY2smKTsKKworICAgIHZvaWQgYmVnaW5EZWZlcnJpbmcoKTsKKyAgICB2b2lkIGVuZERlZmVy
cmluZygpOworCisgICAgdHlwZWRlZiBIYXNoU2V0PFJlbmRlckJsb2NrKj4gRGVmZXJyZWRVcGRh
dGVTY3JvbGxJbmZvU2V0OworICAgIHN0ZDo6dW5pcXVlX3B0cjxEZWZlcnJlZFVwZGF0ZVNjcm9s
bEluZm9TZXQ+IG1fZGVmZXJyZWRVcGRhdGVTY3JvbGxJbmZvU2V0OworICAgIHVuc2lnbmVkIG1f
ZGVmZXJyZWRVcGRhdGVTY3JvbGxJbmZvRGVwdGg7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBVcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXREaXNwYXRjaGVyX2gK
LS0gCjEuOS4yIChBcHBsZSBHaXQtNDkp
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231736</attachid>
            <date>2014-05-19 16:41:15 -0700</date>
            <delta_ts>2014-05-19 17:08:45 -0700</delta_ts>
            <desc>Patch and layout tests</desc>
            <filename>bug-133013-20140519164033.patch</filename>
            <type>text/plain</type>
            <size>23674</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4OTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFlYjYzMjcyYWFmY2E2
MjliMjRiNmI5N2YwNjEzM2Q3ZThkODE0Yy4uY2JlNzY1NzQ1MWU3ODgxMDEzMzAyZGZiNmM2YWU1
OGM0NmI4NjE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE0LTA1LTE5ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBFbGVtZW50IHdpdGhpbiBm
bGF0dGVuZWQgZnJhbWUgbWF5IHVwZGF0ZSBpdHMgc2Nyb2xsIHN0YXRlIGR1cmluZyB0aGUgbGF5
b3V0IHBoYXNlIG9mIHRoZSB3cm9uZyBSZW5kZXJWaWV3CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMwMTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzE2NzYwMTU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3RzOiBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3Njcm9sbGFibGUtZmxleGJveC1pbnNp
ZGUtaWZyYW1lLXdpdGgtemVyby1oZWlnaHQtYW5kLW5lZWRzLWZ1bGwtcmVwYWludC1jcmFzaC5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3Njcm9sbGFibGUtZmxl
eGJveC1pbnNpZGUtaWZyYW1lLXdpdGgtemVyby1oZWlnaHQtYXNzZXJ0aW9uLWZhaWx1cmUuaHRt
bAorCisgICAgICAgIEZpeGVzIGFuIGlzc3VlIHdoZXJlIHRoZSBzY3JvbGwgc3RhdGUgb2YgYW4g
ZWxlbWVudCBtYXkgYmUgdXBkYXRlZCBkdXJpbmcgdGhlIGxheW91dCBvZiB0aGUgd3JvbmcKKyAg
ICAgICAgUmVuZGVyVmlldy4gSW4gcGFydGljdWxhciwgdGhlIHNjcm9sbCBzdGF0ZSBvZiBhbiBl
bGVtZW50IGluc2lkZSBhIENTUyBmbGV4IGJveCBpbiBhIGZsYXR0ZW5lZAorICAgICAgICBmcmFt
ZSBmIGlzIHVwZGF0ZWQgZHVyaW5nIHRoZSBsYXlvdXQgb2YgdGhlIFJlbmRlclZpZXcgYXNzb2Np
YXRlZCB3aXRoIHRoZSBwYXJlbnQgZnJhbWUgb2YgZiBpbnN0ZWFkCisgICAgICAgIG9mIGR1cmlu
ZyB0aGUgbGF5b3V0IG9mIHRoZSBSZW5kZXJWaWV3IGFzc29jaWF0ZWQgd2l0aCBmLgorCisgICAg
ICAgIFRoZSBsYXlvdXQgbWFjaGluZXJ5IGFzc3VtZXMgdGhhdCB0aGUgc2Nyb2xsIHN0YXRlIG9m
IGVhY2ggc2Nyb2xsYWJsZSBlbGVtZW50IGlzIHVwZGF0ZWQgYmVmb3JlIHRoZQorICAgICAgICBj
b21wbGV0aW9uIG9mIGxheW91dCBmb3IgaXRzIGFzc29jaWF0ZWQgUmVuZGVyVmlldy4gQ3VycmVu
dGx5IHdlIGhhdmUgbG9naWMgdG8gZGVmZXIgdXBkYXRpbmcgdGhlIHNjcm9sbAorICAgICAgICBz
dGF0ZSBvZiBhIHNjcm9sbGFibGUgZWxlbWVudCB1bnRpbCBjb21wbGV0aW9uIG9mIHJlY3Vyc2l2
ZSBsYXlvdXQuIEZvciBhIHBhZ2Ugd2l0aCBhIGZsYXR0ZW5lZCBmcmFtZSwgd2UKKyAgICAgICAg
ZGVmZXIgc3VjaCB1cGRhdGVzIHVudGlsIGNvbXBsZXRpb24gb2YgbGF5b3V0IGZvciBhbGwgUmVu
ZGVyVmlld3MgYWxvbmcgdGhlIGFuY2VzdG9yIGZyYW1lIGhpZXJhcmNoeSBvZgorICAgICAgICBl
YWNoIGZsYXR0ZW5lZCBmcmFtZSByZWdhcmRsZXNzIG9mIHRoZSBSZW5kZXJWaWV3IGFzc29jaWF0
ZWQgd2l0aCB0aGUgZWxlbWVudCB0aGF0IG9yaWdpbmF0ZWQgdGhlCisgICAgICAgIGRlZmVycmVk
IHNjcm9sbCBzdGF0ZSByZXF1ZXN0LiBJbnN0ZWFkLCBvbmx5IHRoZSBSZW5kZXJWaWV3IGFzc29j
aWF0ZWQgd2l0aCB0aGUgZWxlbWVudCB0aGF0IGRlZmVycmVkIGl0cworICAgICAgICBzY3JvbGwg
c3RhdGUgdXBkYXRlIHNob3VsZCBkaXNwYXRjaCB0aGUgc2Nyb2xsIHN0YXRlIHVwZGF0ZS4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6IFJlbW92ZWQgV1RGOjotcHJlZml4
IGluIHR5cGVkZWYgZGVmaW5pdGlvbiBmb3IgQ29udGludWF0aW9uT3V0bGluZVRhYmxlTWFwLgor
ICAgICAgICAoV2ViQ29yZTo6VXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb246
OlVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uKTogQWRkZWQ7IGEgc3RydWN0
CisgICAgICAgIHRoYXQgcmVwcmVzZW50cyBhIFJlbmRlclZpZXcgdiwgbmVzdGVkIHRyYW5zYWN0
aW9uIGNvdW50LCBhbmQgYSBsaXN0IG9mIFJlbmRlckJsb2NrcyBpbiB2IHRoYXQgd2lsbCBuZWVk
CisgICAgICAgIHRvIGhhdmUgdGhlaXIgc2Nyb2xsIHN0YXRlIHVwZGF0ZWQuIAorICAgICAgICAo
V2ViQ29yZTo6dXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb25TdGFjayk6IEFk
ZGVkOyByZXR1cm5zIHRoZSBnbG9iYWwgc3RhY2sgb2YgdHJhbnNhY3Rpb25zLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCk6IENhbGwgcmVtb3ZlRnJvbVVw
ZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uKCksIHdoaWNoCisgICAgICAgIHdh
cyBmb3JtZXJseSBuYW1lZCBhcyByZW1vdmVGcm9tRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQu
CisgICAgICAgIChXZWJDb3JlOjpjdXJyZW50VXBkYXRlU2Nyb2xsSW50b0FmdGVyTGF5b3V0VHJh
bnNhY3Rpb24pOiBBZGRlZDsgcmV0dXJucyB0aGUgdG9wLW1vc3QgdHJhbnNhY3Rpb24gaW4gdGhl
CisgICAgICAgIGdsb2JhbCBzdGFjay4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpi
ZWdpblVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uKTogTW9kaWZpZWQgYXMg
YXBwcm9wcmlhdGUgdG8gbWFrZSB1c2UKKyAgICAgICAgb2YgdGhlIGdsb2JhbCBzdGFjayBvZiB0
cmFuc2FjdGlvbnM7IGZvcm1lcmx5IG5hbWVkIHN0YXJ0RGVsYXlVcGRhdGVTY3JvbGxJbmZvLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmVuZEFuZENvbW1pdFVwZGF0ZVNjcm9sbElu
Zm9BZnRlckxheW91dFRyYW5zYWN0aW9uKTogTW9kaWZpZWQgYXMgYXBwcm9wcmlhdGUgdG8KKyAg
ICAgICAgbWFrZSB1c2Ugb2YgdGhlIGdsb2JhbCBzdGFjayBvZiB0cmFuc2FjdGlvbnM7IGZvcm1l
cmx5IG5hbWVkIGZpbmlzaERlbGF5VXBkYXRlU2Nyb2xsSW5mby4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrOjpyZW1vdmVGcm9tVXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNh
Y3Rpb24pOiBNb2RpZmllZCBhcyBhcHByb3ByaWF0ZSB0byBtYWtlCisgICAgICAgIHVzZSBvZiB0
aGUgZ2xvYmFsIHN0YWNrIG9mIHRyYW5zYWN0aW9uczsgZm9ybWVybHkgbmFtZWQgcmVtb3ZlRnJv
bURlbGF5ZWRVcGRhdGVTY3JvbGxJbmZvU2V0LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxv
Y2s6OnVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dCk6IE1vZGlmaWVkIGFzIGFwcHJvcHJpYXRl
IHRvIG1ha2UgdXNlIG9mIHRoZSBnbG9iYWwKKyAgICAgICAgc3RhY2sgb2YgdHJhbnNhY3Rpb25z
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnN0YXJ0RGVsYXlVcGRhdGVTY3JvbGxJbmZvKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpmaW5pc2hEZWxheVVwZGF0ZVNj
cm9sbEluZm8pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnJlbW92
ZUZyb21EZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldCk6IERlbGV0ZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OndpbGxCZURlc3Ryb3ll
ZCk6IENhbGwgcmVtb3ZlRnJvbVVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9u
KCksIHdoaWNoCisgICAgICAgIHdhcyBmb3JtZXJseSBuYW1lZCByZW1vdmVGcm9tRGVsYXllZFVw
ZGF0ZVNjcm9sbEluZm9TZXQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJEZXByZWNhdGVkRmxleGli
bGVCb3g6OmxheW91dEhvcml6b250YWxCb3gpOiBDYWxsIHtiZWdpbiwgZW5kfVVwZGF0ZVNjcm9s
bEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uKCksCisgICAgICAgIHdoaWNoIHdhcyBmb3JtZXJs
eSBuYW1lZCB7c3RhcnQsIGVuZH1EZWxheVVwZGF0ZVNjcm9sbEluZm8uCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dFZlcnRpY2FsQm94KTogRGl0
dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayk6IERpdHRvLgorCiAyMDE0
LTA1LTE2ICBNYXJ0aW4gSG9jayAgPG1ob2NrQGFwcGxlLmNvbT4KIAogICAgICAgICBNZW1vcnlD
YWNoZTo6YWRkSW1hZ2VUb0NhY2hlIHNob3VsZCByZXR1cm4gdGhlIHJlc3VsdCBvZiBhZGQoKS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDc1MmI0NzFlMGM0
ZjQ4NWI2ODY3NmY0MjRjYmIwZWFkNDAxN2Q3ODQuLjk2ZDkwMjRlYzNjODM4NzNkNGIxN2U5NGM1
ZDlmNGZjMzVkNTM0ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cApAQCAtNjQsNiArNjQsNyBAQAogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hh
ZG93Um9vdC5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybVN0YXRlLmgiCisjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1N0YWNrU3RhdHMuaD4KICNpbmNsdWRlIDx3
dGYvVGVtcG9yYXJ5Q2hhbmdlLmg+CiAKQEAgLTkwLDExICs5MSwyNiBAQCBzdGF0aWMgVHJhY2tl
ZERlc2NlbmRhbnRzTWFwKiBnUGVyY2VudEhlaWdodERlc2NlbmRhbnRzTWFwID0gMDsKIHN0YXRp
YyBUcmFja2VkQ29udGFpbmVyTWFwKiBnUG9zaXRpb25lZENvbnRhaW5lck1hcCA9IDA7CiBzdGF0
aWMgVHJhY2tlZENvbnRhaW5lck1hcCogZ1BlcmNlbnRIZWlnaHRDb250YWluZXJNYXAgPSAwOwog
ICAgIAotdHlwZWRlZiBXVEY6Okhhc2hNYXA8UmVuZGVyQmxvY2sqLCBzdGQ6OnVuaXF1ZV9wdHI8
TGlzdEhhc2hTZXQ8UmVuZGVySW5saW5lKj4+PiBDb250aW51YXRpb25PdXRsaW5lVGFibGVNYXA7
Cit0eXBlZGVmIEhhc2hNYXA8UmVuZGVyQmxvY2sqLCBzdGQ6OnVuaXF1ZV9wdHI8TGlzdEhhc2hT
ZXQ8UmVuZGVySW5saW5lKj4+PiBDb250aW51YXRpb25PdXRsaW5lVGFibGVNYXA7CiAKLXR5cGVk
ZWYgV1RGOjpIYXNoU2V0PFJlbmRlckJsb2NrKj4gRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQ7
Ci1zdGF0aWMgaW50IGdEZWxheVVwZGF0ZVNjcm9sbEluZm8gPSAwOwotc3RhdGljIERlbGF5ZWRV
cGRhdGVTY3JvbGxJbmZvU2V0KiBnRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQgPSAwOworc3Ry
dWN0IFVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uIHsKKyAgICBVcGRhdGVT
Y3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvbihjb25zdCBSZW5kZXJWaWV3JiB2aWV3KQor
ICAgICAgICA6IG5lc3RlZENvdW50KDApCisgICAgICAgICwgdmlldygmdmlldykKKyAgICB7Cisg
ICAgfQorCisgICAgaW50IG5lc3RlZENvdW50OworICAgIGNvbnN0IFJlbmRlclZpZXcqIHZpZXc7
CisgICAgSGFzaFNldDxSZW5kZXJCbG9jayo+IGJsb2NrczsKK307CisKK3R5cGVkZWYgVmVjdG9y
PFVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uPiBEZWxheWVkVXBkYXRlU2Ny
b2xsSW5mb1N0YWNrOworc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxEZWxheWVkVXBkYXRlU2Nyb2xs
SW5mb1N0YWNrPiYgdXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb25TdGFjaygp
Cit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPHN0ZDo6dW5pcXVlX3B0cjxEZWxheWVkVXBk
YXRlU2Nyb2xsSW5mb1N0YWNrPj4gZGVsYXllZFVwZGF0ZWRTY3JvbGxJbmZvU3RhY2s7CisgICAg
cmV0dXJuIGRlbGF5ZWRVcGRhdGVkU2Nyb2xsSW5mb1N0YWNrOworfQogCiAvLyBBbGxvY2F0ZWQg
b25seSB3aGVuIHNvbWUgb2YgdGhlc2UgZmllbGRzIGhhdmUgbm9uLWRlZmF1bHQgdmFsdWVzCiAK
QEAgLTIzNiw3ICsyNTIsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjp3aWxsQmVEZXN0cm95ZWQoKQog
ICAgICAgICAgICAgcGFyZW50KCktPmRpcnR5TGluZXNGcm9tQ2hhbmdlZENoaWxkKHRoaXMpOwog
ICAgIH0KIAotICAgIHJlbW92ZUZyb21EZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldCgpOworICAg
IHJlbW92ZUZyb21VcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvbigpOwogCiAg
ICAgUmVuZGVyQm94Ojp3aWxsQmVEZXN0cm95ZWQoKTsKIH0KQEAgLTkxOSw0MCArOTM1LDU2IEBA
IGJvb2wgUmVuZGVyQmxvY2s6OmlzU2VsZkNvbGxhcHNpbmdCbG9jaygpIGNvbnN0CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi12b2lkIFJlbmRlckJsb2NrOjpzdGFydERlbGF5VXBkYXRlU2Nyb2xs
SW5mbygpCitzdGF0aWMgaW5saW5lIFVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0
aW9uKiBjdXJyZW50VXBkYXRlU2Nyb2xsSW50b0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24oKQogewot
ICAgIGlmIChnRGVsYXlVcGRhdGVTY3JvbGxJbmZvID09IDApIHsKLSAgICAgICAgQVNTRVJUKCFn
RGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQpOwotICAgICAgICBnRGVsYXllZFVwZGF0ZVNjcm9s
bEluZm9TZXQgPSBuZXcgRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQ7Ci0gICAgfQotICAgIEFT
U0VSVChnRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQpOwotICAgICsrZ0RlbGF5VXBkYXRlU2Ny
b2xsSW5mbzsKKyAgICBpZiAoIXVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9u
U3RhY2soKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuICZ1cGRhdGVTY3Jv
bGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvblN0YWNrKCktPmxhc3QoKTsKIH0KIAotdm9pZCBS
ZW5kZXJCbG9jazo6ZmluaXNoRGVsYXlVcGRhdGVTY3JvbGxJbmZvKCkKK3ZvaWQgUmVuZGVyQmxv
Y2s6OmJlZ2luVXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24oKQogewotICAg
IC0tZ0RlbGF5VXBkYXRlU2Nyb2xsSW5mbzsKLSAgICBBU1NFUlQoZ0RlbGF5VXBkYXRlU2Nyb2xs
SW5mbyA+PSAwKTsKLSAgICBpZiAoZ0RlbGF5VXBkYXRlU2Nyb2xsSW5mbyA9PSAwKSB7Ci0gICAg
ICAgIEFTU0VSVChnRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQpOworICAgIGlmICghdXBkYXRl
U2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb25TdGFjaygpKQorICAgICAgICB1cGRhdGVT
Y3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvblN0YWNrKCkgPSBzdGQ6Om1ha2VfdW5pcXVl
PERlbGF5ZWRVcGRhdGVTY3JvbGxJbmZvU3RhY2s+KCk7CisgICAgaWYgKHVwZGF0ZVNjcm9sbElu
Zm9BZnRlckxheW91dFRyYW5zYWN0aW9uU3RhY2soKS0+aXNFbXB0eSgpIHx8IGN1cnJlbnRVcGRh
dGVTY3JvbGxJbnRvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvbigpLT52aWV3ICE9ICZ2aWV3KCkpCisg
ICAgICAgIHVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uU3RhY2soKS0+YXBw
ZW5kKFVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uKHZpZXcoKSkpOworICAg
ICsrY3VycmVudFVwZGF0ZVNjcm9sbEludG9BZnRlckxheW91dFRyYW5zYWN0aW9uKCktPm5lc3Rl
ZENvdW50OworfQogCi0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxEZWxheWVkVXBkYXRlU2Nyb2xs
SW5mb1NldD4gaW5mb1NldChnRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQpOwotICAgICAgICBn
RGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQgPSAwOwordm9pZCBSZW5kZXJCbG9jazo6ZW5kQW5k
Q29tbWl0VXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24oKQoreworICAgIFVw
ZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiA9IGN1cnJl
bnRVcGRhdGVTY3JvbGxJbnRvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvbigpOworICAgIEFTU0VSVCh0
cmFuc2FjdGlvbik7CisgICAgQVNTRVJUKHRyYW5zYWN0aW9uLT52aWV3ID09ICZ2aWV3KCkpOwor
ICAgIGlmICgtLXRyYW5zYWN0aW9uLT5uZXN0ZWRDb3VudCkKKyAgICAgICAgcmV0dXJuOwogCi0g
ICAgICAgIGZvciAoRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQ6Oml0ZXJhdG9yIGl0ID0gaW5m
b1NldC0+YmVnaW4oKTsgaXQgIT0gaW5mb1NldC0+ZW5kKCk7ICsraXQpIHsKLSAgICAgICAgICAg
IFJlbmRlckJsb2NrKiBibG9jayA9ICppdDsKLSAgICAgICAgICAgIGlmIChibG9jay0+aGFzT3Zl
cmZsb3dDbGlwKCkpIHsKLSAgICAgICAgICAgICAgICBibG9jay0+bGF5ZXIoKS0+dXBkYXRlU2Ny
b2xsSW5mb0FmdGVyTGF5b3V0KCk7Ci0gICAgICAgICAgICAgICAgYmxvY2stPmNsZWFyTGF5b3V0
T3ZlcmZsb3coKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgIC8vIENhbGxpbmcgUmVu
ZGVyTGF5ZXI6OnVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dCgpIG1heSBjYXVzZSBpdHMgYXNz
b2NpYXRlZCBibG9jayB0byBsYXlvdXQgYWdhaW4gYW5kCisgICAgLy8gdXBkYXRlcyBpdHMgc2Ny
b2xsIGluZm8gKGkuZS4gY2FsbCBSZW5kZXJCbG9jazo6dXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5
b3V0KCkpLiBXZSByZW1vdmUgfHRyYW5zYWN0aW9ufAorICAgIC8vIGZyb20gdGhlIHRyYW5zYWN0
aW9uIHN0YWNrIHRvIGVuc3VyZSB0aGF0IGFsbCBzdWJzZXF1ZW50IGNhbGxzIHRvIFJlbmRlckJs
b2NrOjp1cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXQoKQorICAgIC8vIGFyZSBkaXNwYXRjaGVk
IGltbWVkaWF0ZWx5LiBUaGF0IGlzLCB0byBlbnN1cmUgdGhhdCBzdWNoIHN1YnNlcXVlbnQgY2Fs
bHMgYXJlbid0IGFkZGVkIHRvIHx0cmFuc2FjdGlvbnwKKyAgICAvLyB3aGlsZSB3ZSBhcmUgcHJv
Y2Vzc2luZyBpdC4KKyAgICBWZWN0b3I8UmVuZGVyQmxvY2sqPiBibG9ja3NUb1VwZGF0ZTsKKyAg
ICBjb3B5VG9WZWN0b3IodHJhbnNhY3Rpb24tPmJsb2NrcywgYmxvY2tzVG9VcGRhdGUpOworICAg
IHVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uU3RhY2soKS0+cmVtb3ZlTGFz
dCgpOworICAgIGlmICh1cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvblN0YWNr
KCktPmlzRW1wdHkoKSkKKyAgICAgICAgdXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNh
Y3Rpb25TdGFjaygpID0gbnVsbHB0cjsKKworICAgIGZvciAoYXV0byogYmxvY2sgOiBibG9ja3NU
b1VwZGF0ZSkgeworICAgICAgICBBU1NFUlQoYmxvY2stPmhhc092ZXJmbG93Q2xpcCgpKTsKKyAg
ICAgICAgYmxvY2stPmxheWVyKCktPnVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dCgpOworICAg
ICAgICBibG9jay0+Y2xlYXJMYXlvdXRPdmVyZmxvdygpOwogICAgIH0KIH0KIAotdm9pZCBSZW5k
ZXJCbG9jazo6cmVtb3ZlRnJvbURlbGF5ZWRVcGRhdGVTY3JvbGxJbmZvU2V0KCkKK3ZvaWQgUmVu
ZGVyQmxvY2s6OnJlbW92ZUZyb21VcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlv
bigpCiB7Ci0gICAgaWYgKFVOTElLRUxZKGdEZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldCAhPSAw
KSkKLSAgICAgICAgZ0RlbGF5ZWRVcGRhdGVTY3JvbGxJbmZvU2V0LT5yZW1vdmUodGhpcyk7Cisg
ICAgaWYgKFVOTElLRUxZKHVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uU3Rh
Y2soKS5nZXQoKSAhPSAwKSkgeworICAgICAgICBVcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRU
cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24gPSBjdXJyZW50VXBkYXRlU2Nyb2xsSW50b0FmdGVyTGF5
b3V0VHJhbnNhY3Rpb24oKTsKKyAgICAgICAgQVNTRVJUKHRyYW5zYWN0aW9uKTsKKyAgICAgICAg
QVNTRVJUKHRyYW5zYWN0aW9uLT52aWV3ID09ICZ2aWV3KCkpOworICAgICAgICB0cmFuc2FjdGlv
bi0+YmxvY2tzLnJlbW92ZSh0aGlzKTsKKyAgICB9CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2s6OnVw
ZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dCgpCkBAIC05NjcsMTAgKzk5OSwxMiBAQCB2b2lkIFJl
bmRlckJsb2NrOjp1cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXQoKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKGdEZWxheVVwZGF0ZVNjcm9sbEluZm8pCi0g
ICAgICAgICAgICBnRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQtPmFkZCh0aGlzKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgbGF5ZXIoKS0+dXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0
KCk7CisgICAgICAgIFVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uKiB0cmFu
c2FjdGlvbiA9IGN1cnJlbnRVcGRhdGVTY3JvbGxJbnRvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvbigp
OworICAgICAgICBpZiAodHJhbnNhY3Rpb24gJiYgdHJhbnNhY3Rpb24tPnZpZXcgPT0gJnZpZXco
KSkgeworICAgICAgICAgICAgdHJhbnNhY3Rpb24tPmJsb2Nrcy5hZGQodGhpcyk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgbGF5ZXIoKS0+dXBkYXRlU2Nyb2xsSW5m
b0FmdGVyTGF5b3V0KCk7CiAgICAgfQogfQogCkBAIC05ODgsNyArMTAyMiw5IEBAIHZvaWQgUmVu
ZGVyQmxvY2s6OmxheW91dCgpCiAgICAgCiAgICAgLy8gSXQncyBzYWZlIHRvIGNoZWNrIGZvciBj
b250cm9sIGNsaXAgaGVyZSwgc2luY2UgY29udHJvbHMgY2FuIG5ldmVyIGJlIHRhYmxlIGNlbGxz
LgogICAgIC8vIElmIHdlIGhhdmUgYSBsaWdodHdlaWdodCBjbGlwLCB0aGVyZSBjYW4gbmV2ZXIg
YmUgYW55IG92ZXJmbG93IGZyb20gY2hpbGRyZW4uCi0gICAgaWYgKGhhc0NvbnRyb2xDbGlwKCkg
JiYgbV9vdmVyZmxvdyAmJiAhZ0RlbGF5VXBkYXRlU2Nyb2xsSW5mbykKKyAgICBVcGRhdGVTY3Jv
bGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24gPSBjdXJyZW50VXBkYXRl
U2Nyb2xsSW50b0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24oKTsKKyAgICBib29sIGlzRGVsYXlpbmdV
cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRJblZpZXcgPSB0cmFuc2FjdGlvbiAmJiB0cmFuc2Fj
dGlvbi0+dmlldyA9PSAmdmlldygpOworICAgIGlmIChoYXNDb250cm9sQ2xpcCgpICYmIG1fb3Zl
cmZsb3cgJiYgIWlzRGVsYXlpbmdVcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRJblZpZXcpCiAg
ICAgICAgIGNsZWFyTGF5b3V0T3ZlcmZsb3coKTsKIAogICAgIGludmFsaWRhdGVCYWNrZ3JvdW5k
T2JzY3VyYXRpb25TdGF0dXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgK
aW5kZXggZTMwM2NkMmJmNzZiMzhlYjM2NjViNzZkMWI3ZjJiMzk3NzIwYThiNS4uYjk2YmU4ZGZh
NzY4NDIwOWJhMmQ3YTQzMmFkMDFkNTAyMzUwNTdjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmgKQEAgLTM1NSwxNiArMzU1LDE1IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0
dWFsIGludCBmaXJzdExpbmVCYXNlbGluZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwg
aW50IGlubGluZUJsb2NrQmFzZWxpbmUoTGluZURpcmVjdGlvbk1vZGUpIGNvbnN0IG92ZXJyaWRl
OwogCi0gICAgLy8gRGVsYXkgdXBkYXRlIHNjcm9sbGJhciB1bnRpbCBmaW5pc2hEZWxheVJlcGFp
bnQoKSB3aWxsIGJlCi0gICAgLy8gY2FsbGVkLiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgd2hlbiBh
IGZsZXhib3ggaXMgbGF5aW5nIG91dCBpdHMKLSAgICAvLyBkZXNjZW5kYW50LiBJZiBtdWx0aXBs
ZSBjYWxscyBhcmUgbWFkZSB0byBzdGFydERlbGF5UmVwYWludCgpLAotICAgIC8vIGZpbmlzaERl
bGF5UmVwYWludCgpIHdpbGwgZG8gbm90aGluZyB1bnRpbCBmaW5pc2hEZWxheVJlcGFpbnQoKQot
ICAgIC8vIGlzIGNhbGxlZCB0aGUgc2FtZSBudW1iZXIgb2YgdGltZXMuCi0gICAgc3RhdGljIHZv
aWQgc3RhcnREZWxheVVwZGF0ZVNjcm9sbEluZm8oKTsKLSAgICBzdGF0aWMgdm9pZCBmaW5pc2hE
ZWxheVVwZGF0ZVNjcm9sbEluZm8oKTsKKyAgICAvLyBEZWxheSB1cGRhdGluZyBzY3JvbGxiYXJz
IHVudGlsIGVuZEFuZENvbW1pdFVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9u
KCkgaXMgY2FsbGVkLiBUaGVzZSBmdW5jdGlvbnMgYXJlIHVzZWQgd2hlbiBhCisgICAgLy8gZmxl
eGJveCBpcyBsYXlpbmcgb3V0IGl0cyBkZXNjZW5kYW50cy4gSWYgbXVsdGlwbGUgY2FsbHMgYXJl
IG1hZGUgdG8gYmVnaW5VcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvbigpIHRo
ZW4KKyAgICAvLyBlbmRBbmRDb21taXRVcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2Fj
dGlvbigpIHdpbGwgZG8gbm90aGluZyB1bnRpbCBpdCBpcyBjYWxsZWQgdGhlIHNhbWUgbnVtYmVy
IG9mIHRpbWVzLgorICAgIHZvaWQgYmVnaW5VcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFu
c2FjdGlvbigpOworICAgIHZvaWQgZW5kQW5kQ29tbWl0VXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5
b3V0VHJhbnNhY3Rpb24oKTsKKworICAgIHZvaWQgcmVtb3ZlRnJvbVVwZGF0ZVNjcm9sbEluZm9B
ZnRlckxheW91dFRyYW5zYWN0aW9uKCk7CiAKICAgICB2b2lkIHVwZGF0ZVNjcm9sbEluZm9BZnRl
ckxheW91dCgpOwotICAgIHZvaWQgcmVtb3ZlRnJvbURlbGF5ZWRVcGRhdGVTY3JvbGxJbmZvU2V0
KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVXaWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwg
Y29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5
bGUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcAppbmRleCAxZDU4YjZhN2Q4MmY3ZjFmNDc1OWVhZDQ4NTNlOThmYmFkMDc4YTYyLi42OTcx
OTgxYzBjYmQ3MWI4ZmQ4NGM3MGU5MjUwNjZiY2UwOTJlM2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQg
UmVuZGVyQmxvY2tGbG93Ojp3aWxsQmVEZXN0cm95ZWQoKQogCiAgICAgbV9saW5lQm94ZXMuZGVs
ZXRlTGluZUJveGVzKCk7CiAKLSAgICByZW1vdmVGcm9tRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9T
ZXQoKTsKKyAgICByZW1vdmVGcm9tVXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rp
b24oKTsKIAogICAgIC8vIE5PVEU6IFRoaXMganVtcHMgZG93biB0byBSZW5kZXJCb3gsIGJ5cGFz
c2luZyBSZW5kZXJCbG9jayBzaW5jZSBpdCB3b3VsZCBkbyBkdXBsaWNhdGUgd29yay4KICAgICBS
ZW5kZXJCb3g6OndpbGxCZURlc3Ryb3llZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCBkMjY2NzNm
MTVhOTM0NTVmNjRjODc3YmIxZTI2M2ExY2E2YzZiZTFjLi45NjhiMWRjMDU0ZGY0ZjdiNGVlNDU0
NGJkYjk4YzVhYTZhOWE3YjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcApAQCAtMzkxLDcgKzM5MSw3IEBA
IHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRIb3Jpem9udGFsQm94KGJv
b2wgcmVsYXlvdXRDaGlsZHJlbikKICAgICBib29sIGhhdmVGbGV4ID0gZmFsc2UsIGZsZXhpbmdD
aGlsZHJlbiA9IGZhbHNlOyAKICAgICBnYXRoZXJGbGV4Q2hpbGRyZW5JbmZvKGl0ZXJhdG9yLCBy
ZWxheW91dENoaWxkcmVuLCBoaWdoZXN0RmxleEdyb3VwLCBsb3dlc3RGbGV4R3JvdXAsIGhhdmVG
bGV4KTsKIAotICAgIFJlbmRlckJsb2NrOjpzdGFydERlbGF5VXBkYXRlU2Nyb2xsSW5mbygpOwor
ICAgIFJlbmRlckJsb2NrOjpiZWdpblVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0
aW9uKCk7CiAKICAgICBDaGlsZExheW91dERlbHRhcyBjaGlsZExheW91dERlbHRhczsKICAgICBh
cHBlbmRDaGlsZExheW91dERlbHRhcyh0aGlzLCBjaGlsZExheW91dERlbHRhcyk7CkBAIC02MjEs
NyArNjIxLDcgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dEhvcml6
b250YWxCb3goYm9vbCByZWxheW91dENoaWxkcmVuKQogICAgICAgICB9CiAgICAgfSB3aGlsZSAo
aGF2ZUZsZXgpOwogCi0gICAgUmVuZGVyQmxvY2s6OmZpbmlzaERlbGF5VXBkYXRlU2Nyb2xsSW5m
bygpOworICAgIFJlbmRlckJsb2NrOjplbmRBbmRDb21taXRVcGRhdGVTY3JvbGxJbmZvQWZ0ZXJM
YXlvdXRUcmFuc2FjdGlvbigpOwogCiAgICAgaWYgKHJlbWFpbmluZ1NwYWNlID4gMCAmJiAoKHN0
eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpICYmIHN0eWxlKCkuYm94UGFjaygpICE9IFN0
YXJ0KQogICAgICAgICB8fCAoIXN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpICYmIHN0
eWxlKCkuYm94UGFjaygpICE9IEVuZCkpKSB7CkBAIC02OTgsNyArNjk4LDcgQEAgdm9pZCBSZW5k
ZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dFZlcnRpY2FsQm94KGJvb2wgcmVsYXlvdXRD
aGlsZHJlbikKICAgICBpZiAoaGF2ZUxpbmVDbGFtcCkKICAgICAgICAgYXBwbHlMaW5lQ2xhbXAo
aXRlcmF0b3IsIHJlbGF5b3V0Q2hpbGRyZW4pOwogCi0gICAgUmVuZGVyQmxvY2s6OnN0YXJ0RGVs
YXlVcGRhdGVTY3JvbGxJbmZvKCk7CisgICAgUmVuZGVyQmxvY2s6OmJlZ2luVXBkYXRlU2Nyb2xs
SW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24oKTsKIAogICAgIENoaWxkTGF5b3V0RGVsdGFzIGNo
aWxkTGF5b3V0RGVsdGFzOwogICAgIGFwcGVuZENoaWxkTGF5b3V0RGVsdGFzKHRoaXMsIGNoaWxk
TGF5b3V0RGVsdGFzKTsKQEAgLTg3OSw3ICs4NzksNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveDo6bGF5b3V0VmVydGljYWxCb3goYm9vbCByZWxheW91dENoaWxkcmVuKQogICAg
ICAgICB9CiAgICAgfSB3aGlsZSAoaGF2ZUZsZXgpOwogCi0gICAgUmVuZGVyQmxvY2s6OmZpbmlz
aERlbGF5VXBkYXRlU2Nyb2xsSW5mbygpOworICAgIFJlbmRlckJsb2NrOjplbmRBbmRDb21taXRV
cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvbigpOwogCiAgICAgaWYgKHN0eWxl
KCkuYm94UGFjaygpICE9IFN0YXJ0ICYmIHJlbWFpbmluZ1NwYWNlID4gMCkgewogICAgICAgICAv
LyBDaGlsZHJlbiBtdXN0IGJlIHJlcG9zaXRpb25lZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDNkMDRhMjBjZDZkOGE2YjM3MzY0ZmU2
OTQzMzNmMThlZGFkYmM0OTAuLjViMzFlNzg1MDgzNjNlMDllYjQ0NmY0NjVlZGM5YWZiZTFhOTQw
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cApAQCAtMjcxLDcgKzI3MSw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2Nr
KGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKIAogICAgIG1fbnVtYmVyT2ZJbkZs
b3dDaGlsZHJlbk9uRmlyc3RMaW5lID0gLTE7CiAKLSAgICBSZW5kZXJCbG9jazo6c3RhcnREZWxh
eVVwZGF0ZVNjcm9sbEluZm8oKTsKKyAgICBSZW5kZXJCbG9jazo6YmVnaW5VcGRhdGVTY3JvbGxJ
bmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvbigpOwogCiAgICAgZGlydHlGb3JMYXlvdXRGcm9tUGVy
Y2VudGFnZUhlaWdodERlc2NlbmRhbnRzKCk7CiAKQEAgLTI4Nyw3ICsyODcsNyBAQCB2b2lkIFJl
bmRlckZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91
dFVuaXQpCiAgICAgdXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAgIHJlcG9zaXRpb25Mb2dpY2Fs
SGVpZ2h0RGVwZW5kZW50RmxleEl0ZW1zKGxpbmVDb250ZXh0cyk7CiAKLSAgICBSZW5kZXJCbG9j
azo6ZmluaXNoRGVsYXlVcGRhdGVTY3JvbGxJbmZvKCk7CisgICAgUmVuZGVyQmxvY2s6OmVuZEFu
ZENvbW1pdFVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uKCk7CiAKICAgICBp
ZiAobG9naWNhbEhlaWdodCgpICE9IHByZXZpb3VzSGVpZ2h0KQogICAgICAgICByZWxheW91dENo
aWxkcmVuID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwYzZlZDU2YTllODg1MjVlNzZhYjY3ZmJjMDE3NTYwMzlk
YTUwYjMzLi5lZDdjZmZhNmU3ZDQzYmQ1NzllNGMzZDQzZWE4NjEyZTVhOTlkNzVmIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMTQtMDUtMTkgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUu
Y29tPgorCisgICAgICAgIEVsZW1lbnQgd2l0aGluIGZsYXR0ZW5lZCBmcmFtZSBtYXkgdXBkYXRl
IGl0cyBzY3JvbGwgc3RhdGUgZHVyaW5nIHRoZSBsYXlvdXQgcGhhc2Ugb2YgdGhlIHdyb25nIFJl
bmRlclZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMzAxMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTY3NjAxNTQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgdGVzdHMgdG8gZW5zdXJl
IHRoYXQgdGhhdCB3ZSB1cGRhdGUgdGhlIHNjcm9sbCBzdGF0ZSBvZiBhbiBlbGVtZW50IGR1cmlu
ZyB0aGUgbGF5b3V0IHBoYXNlIG9mIGl0cworICAgICAgICBhc3NvY2lhdGVkIFJlbmRlclZpZXcu
CisKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3Njcm9sbGFibGUtZmxleGJveC1p
bnNpZGUtaWZyYW1lLXdpdGgtemVyby1oZWlnaHQtYW5kLW5lZWRzLWZ1bGwtcmVwYWludC1jcmFz
aC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcv
c2Nyb2xsYWJsZS1mbGV4Ym94LWluc2lkZS1pZnJhbWUtd2l0aC16ZXJvLWhlaWdodC1hbmQtbmVl
ZHMtZnVsbC1yZXBhaW50LWNyYXNoLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZnJhbWVz
L2ZsYXR0ZW5pbmcvc2Nyb2xsYWJsZS1mbGV4Ym94LWluc2lkZS1pZnJhbWUtd2l0aC16ZXJvLWhl
aWdodC1hc3NlcnRpb24tZmFpbHVyZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZnJhbWVzL2ZsYXR0ZW5pbmcvc2Nyb2xsYWJsZS1mbGV4Ym94LWluc2lkZS1pZnJhbWUtd2l0
aC16ZXJvLWhlaWdodC1hc3NlcnRpb24tZmFpbHVyZS5odG1sOiBBZGRlZC4KKwogMjAxNC0wNS0x
NiAgS2lyYW4gIDxraXJhbi5ndWR1cnVAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgUlRDRHRtZlNl
bmRlciBkZWZhdWx0IHZhbHVlcyBuZWVkIHRvIGJlIHVwZGF0ZWQuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3Njcm9sbGFibGUtZmxleGJveC1pbnNpZGUt
aWZyYW1lLXdpdGgtemVyby1oZWlnaHQtYW5kLW5lZWRzLWZ1bGwtcmVwYWludC1jcmFzaC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3Njcm9sbGFibGUt
ZmxleGJveC1pbnNpZGUtaWZyYW1lLXdpdGgtemVyby1oZWlnaHQtYW5kLW5lZWRzLWZ1bGwtcmVw
YWludC1jcmFzaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2UzYWJhODkyNGUyZmVkYmNjNDYy
YjBiZDQ4M2NhZWQ0ZTYxOTkzMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZnJhbWVzL2ZsYXR0ZW5pbmcvc2Nyb2xsYWJsZS1mbGV4Ym94LWluc2lkZS1pZnJhbWUtd2l0aC16
ZXJvLWhlaWdodC1hbmQtbmVlZHMtZnVsbC1yZXBhaW50LWNyYXNoLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKK1RoaXMgdGVzdHMgdGhhdCB3ZSBkb24ndCBjYXVzZSBhIGNyYXNoIHdoZW4g
cGVyZm9ybWluZyBhIGZ1bGwgcmVwYWludCBvZiBhbiA8aWZyYW1lPiB3aXRoIHplcm8gaGVpZ2h0
LCBlbmNsb3NlZCBpbiBhIGZsZXggYm94LCB3aG9zZSBjb250ZW50IGRvY3VtZW50IGNvbnRhaW5z
IGEgZmxleCBib3ggd2l0aCBhIGNoaWxkIHNjcm9sbGFibGUgPGRpdj4uCisKKworUEFTUwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zY3JvbGxhYmxlLWZs
ZXhib3gtaW5zaWRlLWlmcmFtZS13aXRoLXplcm8taGVpZ2h0LWFuZC1uZWVkcy1mdWxsLXJlcGFp
bnQtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvc2Nyb2xs
YWJsZS1mbGV4Ym94LWluc2lkZS1pZnJhbWUtd2l0aC16ZXJvLWhlaWdodC1hbmQtbmVlZHMtZnVs
bC1yZXBhaW50LWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWYyZjIwY2QzNWQzZDgyNjIwZThiNjkw
NWVlY2UyZGY0YzU0NWU4MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2ZsYXR0ZW5pbmcvc2Nyb2xsYWJsZS1mbGV4Ym94LWluc2lkZS1pZnJhbWUtd2l0aC16ZXJv
LWhlaWdodC1hbmQtbmVlZHMtZnVsbC1yZXBhaW50LWNyYXNoLmh0bWwKQEAgLTAsMCArMSwzOCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworfQorCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCh0cnVlKTsKKworZnVuY3Rp
b24gZG9uZSgpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5pbm5l
clRleHQgPSAiUEFTUyI7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5U
aGlzIHRlc3RzIHRoYXQgd2UgZG9uJ3QgY2F1c2UgYSBjcmFzaCB3aGVuIHBlcmZvcm1pbmcgYSBm
dWxsIHJlcGFpbnQgb2YgYW4gJmx0O2lmcmFtZSZndDsgd2l0aCB6ZXJvIGhlaWdodCwgZW5jbG9z
ZWQgaW4gYSBmbGV4IGJveCwgd2hvc2UgY29udGVudCBkb2N1bWVudCBjb250YWlucyBhIGZsZXgg
Ym94IHdpdGggYSBjaGlsZCBzY3JvbGxhYmxlICZsdDtkaXYmZ3Q7LjwvcD4KKzxkaXYgaWQ9InRl
c3QtY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTogLXdlYmtpdC1mbGV4OyAtd2Via2l0LWZsZXgt
ZGlyZWN0aW9uOiBjb2x1bW47IGhlaWdodDogNTEycHg7Ij4KKyAgICA8aWZyYW1lIHN0eWxlPSJ3
aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbiIgaGVpZ2h0PSIwIiBzcmNkb2M9IgorICAgICAg
ICA8ZGl2IHN0eWxlPSdkaXNwbGF5OiAtd2Via2l0LWZsZXg7IC13ZWJraXQtZmxleC1kaXJlY3Rp
b246IGNvbHVtbjsgaGVpZ2h0OiAxMjhweDsgd2lkdGg6IDEyOHB4OyBiYWNrZ3JvdW5kLWNvbG9y
OiBibHVlJz4KKyAgICAgICAgICAgIDxkaXYgaWQ9J3Njcm9sbGFibGVEaXYnIHN0eWxlPSdvdmVy
Zmxvdy15OiBzY3JvbGw7IG91dGxpbmU6IG5vbmU7IHdpZHRoOiAxMHB4OyBoZWlnaHQ6IDEwcHg7
IC13ZWJraXQtZmxleDogMTsnPgorICAgICAgICAgICAgICAgIDxicj48YnI+PGJyPjxicj48YnI+
PGJyPjxicj48YnI+PGJyPkxvcmVtIGlwc3VtCisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdzY3JvbGxhYmxlRGl2Jykuc2Nyb2xsVG9wID0gMTA4OworICAgICAgICB3aW5kb3cucGFyZW50
LmRvbmUoKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgIj48L2lmcmFtZT4KKzwvZGl2PgorPHBy
ZSBpZD0iY29uc29sZSI+RkFJTDwvcHJlPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zY3JvbGxhYmxlLWZsZXhib3gtaW5z
aWRlLWlmcmFtZS13aXRoLXplcm8taGVpZ2h0LWFzc2VydGlvbi1mYWlsdXJlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvc2Nyb2xsYWJsZS1mbGV4Ym94
LWluc2lkZS1pZnJhbWUtd2l0aC16ZXJvLWhlaWdodC1hc3NlcnRpb24tZmFpbHVyZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNTcwNzI4NzI1YWVhNGRjYWJkMDJjMzAzNDc3NWRjMzFmZTEyODkx
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcv
c2Nyb2xsYWJsZS1mbGV4Ym94LWluc2lkZS1pZnJhbWUtd2l0aC16ZXJvLWhlaWdodC1hc3NlcnRp
b24tZmFpbHVyZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitUaGlzIHRlc3RzIHRoYXQg
d2UgZG9uJ3QgY2F1c2UgYW4gYXNzZXJ0aW9uIGZhaWx1cmUgd2hlbiBwZXJmb3JtaW5nIGEgcGFy
dGlhbCByZXBhaW50IG9mIGFuIDxpZnJhbWU+IHdpdGggemVybyBoZWlnaHQsIGVuY2xvc2VkIGlu
IGEgZmxleCBib3gsIHdob3NlIGNvbnRlbnQgZG9jdW1lbnQgY29udGFpbnMgYSBmbGV4IGJveCB3
aXRoIGEgY2hpbGQgc2Nyb2xsYWJsZSA8ZGl2Pi4KKworCitQQVNTCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3Njcm9sbGFibGUtZmxleGJveC1pbnNpZGUt
aWZyYW1lLXdpdGgtemVyby1oZWlnaHQtYXNzZXJ0aW9uLWZhaWx1cmUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvc2Nyb2xsYWJsZS1mbGV4Ym94LWluc2lkZS1pZnJh
bWUtd2l0aC16ZXJvLWhlaWdodC1hc3NlcnRpb24tZmFpbHVyZS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZm
OGNkY2VjY2I2OWViZDZlZDU5ZGNkYzg5NDFiYzQ4ODdkZTY4NzYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3Njcm9sbGFibGUtZmxleGJveC1p
bnNpZGUtaWZyYW1lLXdpdGgtemVyby1oZWlnaHQtYXNzZXJ0aW9uLWZhaWx1cmUuaHRtbApAQCAt
MCwwICsxLDQwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2lmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKHRydWUp
OworCitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpLmlubmVyVGV4dCA9ICJQQVNTIjsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCB3ZSBkb24ndCBjYXVzZSBhbiBhc3NlcnRpb24gZmFp
bHVyZSB3aGVuIHBlcmZvcm1pbmcgYSBwYXJ0aWFsIHJlcGFpbnQgb2YgYW4gJmx0O2lmcmFtZSZn
dDsgd2l0aCB6ZXJvIGhlaWdodCwgZW5jbG9zZWQgaW4gYSBmbGV4IGJveCwgd2hvc2UgY29udGVu
dCBkb2N1bWVudCBjb250YWlucyBhIGZsZXggYm94IHdpdGggYSBjaGlsZCBzY3JvbGxhYmxlICZs
dDtkaXYmZ3Q7LjwvcD4KKzxkaXYgaWQ9InRlc3QtY29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTog
LXdlYmtpdC1mbGV4OyAtd2Via2l0LWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGhlaWdodDogNTEy
cHg7Ij4KKyAgICA8aWZyYW1lIHN0eWxlPSJ3aWR0aDogMTAwJTsgb3ZlcmZsb3c6IGhpZGRlbiIg
aGVpZ2h0PSIwIiBzcmNkb2M9IgorICAgICAgICA8ZGl2IHN0eWxlPSdkaXNwbGF5OiAtd2Via2l0
LWZsZXg7IC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgaGVpZ2h0OiAxMjhweDsgd2lk
dGg6IDEyOHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlJz4KKyAgICAgICAgICAgIDxkaXYgaWQ9
J3Njcm9sbGFibGVEaXYnIHN0eWxlPSdkaXNwbGF5OiBub25lOyBvdmVyZmxvdy15OiBzY3JvbGw7
IHdpZHRoOiAxMDBweDsnPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPHNjcmlwdD4K
KyAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgdmFy
IHNjcm9sbGFibGVEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2Nyb2xsYWJsZURpdicp
OworICAgICAgICAgICAgc2Nyb2xsYWJsZURpdi5pbm5lckhUTUwgPSAnU3VwZXJjYWxpZnJhZ2ls
aXN0aWNleHBpYWxpZG9jaW91cyc7IC8qIEEgc3RyaW5nIHRoYXQgY2Fubm90IGJlIHdvcmQtd3Jh
cHBlZCBhbmQgZXhjZWVkcyB0aGUgd2lkdGggb2YgdGhlIHNjcm9sbGFibGVEaXYuICovCisgICAg
ICAgICAgICBzY3JvbGxhYmxlRGl2LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOworICAgICAgICAg
ICAgd2luZG93LnBhcmVudC5kb25lKCk7CisgICAgICAgIH0sIDApOworICAgICAgICA8L3Njcmlw
dD4KKyAgICAiPjwvaWZyYW1lPgorPC9kaXY+Cis8cHJlIGlkPSJjb25zb2xlIj5GQUlMPC9wcmU+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>231740</attachid>
            <date>2014-05-19 17:08:49 -0700</date>
            <delta_ts>2014-05-20 11:20:08 -0700</delta_ts>
            <desc>Patch and layout tests</desc>
            <filename>bug-133013-20140519170807.patch</filename>
            <type>text/plain</type>
            <size>23595</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4OTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODFlYjYzMjcyYWFmY2E2
MjliMjRiNmI5N2YwNjEzM2Q3ZThkODE0Yy4uODg3NDZjOWJhNzE3NmJkMWRlOWIwNDVmMGEyNDI4
YjlmNGU0N2ZhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE0LTA1LTE5ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBFbGVtZW50IHdpdGhpbiBm
bGF0dGVuZWQgZnJhbWUgbWF5IHVwZGF0ZSBpdHMgc2Nyb2xsIHN0YXRlIGR1cmluZyB0aGUgbGF5
b3V0IHBoYXNlIG9mIHRoZSB3cm9uZyBSZW5kZXJWaWV3CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzMwMTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzE2NzYwMTU0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3RzOiBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3Njcm9sbGFibGUtZmxleGJveC1pbnNp
ZGUtaWZyYW1lLXdpdGgtemVyby1oZWlnaHQtYW5kLW5lZWRzLWZ1bGwtcmVwYWludC1jcmFzaC5o
dG1sCisgICAgICAgICAgICAgICBmYXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3Njcm9sbGFibGUtZmxl
eGJveC1pbnNpZGUtaWZyYW1lLXdpdGgtemVyby1oZWlnaHQtYXNzZXJ0aW9uLWZhaWx1cmUuaHRt
bAorCisgICAgICAgIEZpeGVzIGFuIGlzc3VlIHdoZXJlIHRoZSBzY3JvbGwgc3RhdGUgb2YgYW4g
ZWxlbWVudCBtYXkgYmUgdXBkYXRlZCBkdXJpbmcgdGhlIGxheW91dCBvZiB0aGUgd3JvbmcKKyAg
ICAgICAgUmVuZGVyVmlldy4gSW4gcGFydGljdWxhciwgdGhlIHNjcm9sbCBzdGF0ZSBvZiBhbiBl
bGVtZW50IGluc2lkZSBhIENTUyBmbGV4IGJveCBpbiBhIGZsYXR0ZW5lZAorICAgICAgICBmcmFt
ZSBmIGlzIHVwZGF0ZWQgZHVyaW5nIHRoZSBsYXlvdXQgb2YgdGhlIFJlbmRlclZpZXcgYXNzb2Np
YXRlZCB3aXRoIHRoZSBwYXJlbnQgZnJhbWUgb2YgZiBpbnN0ZWFkCisgICAgICAgIG9mIGR1cmlu
ZyB0aGUgbGF5b3V0IG9mIHRoZSBSZW5kZXJWaWV3IGFzc29jaWF0ZWQgd2l0aCBmLgorCisgICAg
ICAgIFRoZSBsYXlvdXQgbWFjaGluZXJ5IGFzc3VtZXMgdGhhdCB0aGUgc2Nyb2xsIHN0YXRlIG9m
IGVhY2ggc2Nyb2xsYWJsZSBlbGVtZW50IGlzIHVwZGF0ZWQgYmVmb3JlIHRoZQorICAgICAgICBj
b21wbGV0aW9uIG9mIGxheW91dCBmb3IgaXRzIGFzc29jaWF0ZWQgUmVuZGVyVmlldy4gQ3VycmVu
dGx5IHdlIGhhdmUgbG9naWMgdG8gZGVmZXIgdXBkYXRpbmcgdGhlIHNjcm9sbAorICAgICAgICBz
dGF0ZSBvZiBhIHNjcm9sbGFibGUgZWxlbWVudCB1bnRpbCBjb21wbGV0aW9uIG9mIHJlY3Vyc2l2
ZSBsYXlvdXQuIEZvciBhIHBhZ2Ugd2l0aCBhIGZsYXR0ZW5lZCBmcmFtZSwgd2UKKyAgICAgICAg
ZGVmZXIgc3VjaCB1cGRhdGVzIHVudGlsIGNvbXBsZXRpb24gb2YgbGF5b3V0IGZvciBhbGwgUmVu
ZGVyVmlld3MgYWxvbmcgdGhlIGFuY2VzdG9yIGZyYW1lIGhpZXJhcmNoeSBvZgorICAgICAgICBl
YWNoIGZsYXR0ZW5lZCBmcmFtZSByZWdhcmRsZXNzIG9mIHRoZSBSZW5kZXJWaWV3IGFzc29jaWF0
ZWQgd2l0aCB0aGUgZWxlbWVudCB0aGF0IG9yaWdpbmF0ZWQgdGhlCisgICAgICAgIGRlZmVycmVk
IHNjcm9sbCBzdGF0ZSByZXF1ZXN0LiBJbnN0ZWFkLCBvbmx5IHRoZSBSZW5kZXJWaWV3IGFzc29j
aWF0ZWQgd2l0aCB0aGUgZWxlbWVudCB0aGF0IGRlZmVycmVkIGl0cworICAgICAgICBzY3JvbGwg
c3RhdGUgdXBkYXRlIHNob3VsZCBkaXNwYXRjaCB0aGUgc2Nyb2xsIHN0YXRlIHVwZGF0ZS4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6IFJlbW92ZWQgV1RGOjotcHJlZml4
IGluIHR5cGVkZWYgZGVmaW5pdGlvbiBmb3IgQ29udGludWF0aW9uT3V0bGluZVRhYmxlTWFwLgor
ICAgICAgICAoV2ViQ29yZTo6VXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb246
OlVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uKTogQWRkZWQ7IGEgc3RydWN0
CisgICAgICAgIHRoYXQgcmVwcmVzZW50cyBhIFJlbmRlclZpZXcgdiwgbmVzdGVkIHRyYW5zYWN0
aW9uIGNvdW50LCBhbmQgYSBsaXN0IG9mIFJlbmRlckJsb2NrcyBpbiB2IHRoYXQgd2lsbCBuZWVk
CisgICAgICAgIHRvIGhhdmUgdGhlaXIgc2Nyb2xsIHN0YXRlIHVwZGF0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjp1cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvblN0YWNrKTogQWRk
ZWQ7IHJldHVybnMgdGhlIGdsb2JhbCBzdGFjayBvZiB0cmFuc2FjdGlvbnMuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCbG9jazo6d2lsbEJlRGVzdHJveWVkKTogQ2FsbCByZW1vdmVGcm9tVXBk
YXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24oKSwgd2hpY2gKKyAgICAgICAgd2Fz
IGZvcm1lcmx5IG5hbWVkIGFzIHJlbW92ZUZyb21EZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldC4K
KyAgICAgICAgKFdlYkNvcmU6OmN1cnJlbnRVcGRhdGVTY3JvbGxJbnRvQWZ0ZXJMYXlvdXRUcmFu
c2FjdGlvbik6IEFkZGVkOyByZXR1cm5zIHRoZSB0b3AtbW9zdCB0cmFuc2FjdGlvbiBpbiB0aGUK
KyAgICAgICAgZ2xvYmFsIHN0YWNrLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmJl
Z2luVXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24pOiBNb2RpZmllZCBhcyBh
cHByb3ByaWF0ZSB0byBtYWtlIHVzZQorICAgICAgICBvZiB0aGUgZ2xvYmFsIHN0YWNrIG9mIHRy
YW5zYWN0aW9uczsgZm9ybWVybHkgbmFtZWQgc3RhcnREZWxheVVwZGF0ZVNjcm9sbEluZm8uCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6ZW5kQW5kQ29tbWl0VXBkYXRlU2Nyb2xsSW5m
b0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24pOiBNb2RpZmllZCBhcyBhcHByb3ByaWF0ZSB0bworICAg
ICAgICBtYWtlIHVzZSBvZiB0aGUgZ2xvYmFsIHN0YWNrIG9mIHRyYW5zYWN0aW9uczsgZm9ybWVy
bHkgbmFtZWQgZmluaXNoRGVsYXlVcGRhdGVTY3JvbGxJbmZvLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQmxvY2s6OnJlbW92ZUZyb21VcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2Fj
dGlvbik6IE1vZGlmaWVkIGFzIGFwcHJvcHJpYXRlIHRvIG1ha2UKKyAgICAgICAgdXNlIG9mIHRo
ZSBnbG9iYWwgc3RhY2sgb2YgdHJhbnNhY3Rpb25zOyBmb3JtZXJseSBuYW1lZCByZW1vdmVGcm9t
RGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6dXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0KTogTW9kaWZpZWQgYXMgYXBwcm9wcmlhdGUg
dG8gbWFrZSB1c2Ugb2YgdGhlIGdsb2JhbAorICAgICAgICBzdGFjayBvZiB0cmFuc2FjdGlvbnMu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0KTogRGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCbG9jazo6c3RhcnREZWxheVVwZGF0ZVNjcm9sbEluZm8pOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmZpbmlzaERlbGF5VXBkYXRlU2Ny
b2xsSW5mbyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cmVtb3Zl
RnJvbURlbGF5ZWRVcGRhdGVTY3JvbGxJbmZvU2V0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6d2lsbEJlRGVzdHJveWVk
KTogQ2FsbCByZW1vdmVGcm9tVXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24o
KSwgd2hpY2gKKyAgICAgICAgd2FzIGZvcm1lcmx5IG5hbWVkIHJlbW92ZUZyb21EZWxheWVkVXBk
YXRlU2Nyb2xsSW5mb1NldC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZs
ZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveDo6bGF5b3V0SG9yaXpvbnRhbEJveCk6IENhbGwge2JlZ2luLCBlbmR9VXBkYXRlU2Nyb2xs
SW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24oKSwKKyAgICAgICAgd2hpY2ggd2FzIGZvcm1lcmx5
IG5hbWVkIHtzdGFydCwgZW5kfURlbGF5VXBkYXRlU2Nyb2xsSW5mby4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0VmVydGljYWxCb3gpOiBEaXR0
by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2NrKTogRGl0dG8uCisKIDIwMTQt
MDUtMTYgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgogCiAgICAgICAgIE1lbW9yeUNh
Y2hlOjphZGRJbWFnZVRvQ2FjaGUgc2hvdWxkIHJldHVybiB0aGUgcmVzdWx0IG9mIGFkZCgpLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggNzUyYjQ3MWUwYzRm
NDg1YjY4Njc2ZjQyNGNiYjBlYWQ0MDE3ZDc4NC4uOTZkOTAyNGVjM2M4Mzg3M2Q0YjE3ZTk0YzVk
OWY0ZmMzNWQ1MzRmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CkBAIC02NCw2ICs2NCw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTaGFk
b3dSb290LmgiCiAjaW5jbHVkZSAiVHJhbnNmb3JtU3RhdGUuaCIKKyNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RhY2tTdGF0cy5oPgogI2luY2x1ZGUgPHd0
Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KIApAQCAtOTAsMTEgKzkxLDI2IEBAIHN0YXRpYyBUcmFja2Vk
RGVzY2VuZGFudHNNYXAqIGdQZXJjZW50SGVpZ2h0RGVzY2VuZGFudHNNYXAgPSAwOwogc3RhdGlj
IFRyYWNrZWRDb250YWluZXJNYXAqIGdQb3NpdGlvbmVkQ29udGFpbmVyTWFwID0gMDsKIHN0YXRp
YyBUcmFja2VkQ29udGFpbmVyTWFwKiBnUGVyY2VudEhlaWdodENvbnRhaW5lck1hcCA9IDA7CiAg
ICAgCi10eXBlZGVmIFdURjo6SGFzaE1hcDxSZW5kZXJCbG9jayosIHN0ZDo6dW5pcXVlX3B0cjxM
aXN0SGFzaFNldDxSZW5kZXJJbmxpbmUqPj4+IENvbnRpbnVhdGlvbk91dGxpbmVUYWJsZU1hcDsK
K3R5cGVkZWYgSGFzaE1hcDxSZW5kZXJCbG9jayosIHN0ZDo6dW5pcXVlX3B0cjxMaXN0SGFzaFNl
dDxSZW5kZXJJbmxpbmUqPj4+IENvbnRpbnVhdGlvbk91dGxpbmVUYWJsZU1hcDsKIAotdHlwZWRl
ZiBXVEY6Okhhc2hTZXQ8UmVuZGVyQmxvY2sqPiBEZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldDsK
LXN0YXRpYyBpbnQgZ0RlbGF5VXBkYXRlU2Nyb2xsSW5mbyA9IDA7Ci1zdGF0aWMgRGVsYXllZFVw
ZGF0ZVNjcm9sbEluZm9TZXQqIGdEZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldCA9IDA7CitzdHJ1
Y3QgVXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24geworICAgIFVwZGF0ZVNj
cm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uKGNvbnN0IFJlbmRlclZpZXcmIHZpZXcpCisg
ICAgICAgIDogbmVzdGVkQ291bnQoMCkKKyAgICAgICAgLCB2aWV3KCZ2aWV3KQorICAgIHsKKyAg
ICB9CisKKyAgICBpbnQgbmVzdGVkQ291bnQ7CisgICAgY29uc3QgUmVuZGVyVmlldyogdmlldzsK
KyAgICBIYXNoU2V0PFJlbmRlckJsb2NrKj4gYmxvY2tzOworfTsKKwordHlwZWRlZiBWZWN0b3I8
VXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24+IERlbGF5ZWRVcGRhdGVTY3Jv
bGxJbmZvU3RhY2s7CitzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPERlbGF5ZWRVcGRhdGVTY3JvbGxJ
bmZvU3RhY2s+JiB1cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvblN0YWNrKCkK
K3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8c3RkOjp1bmlxdWVfcHRyPERlbGF5ZWRVcGRh
dGVTY3JvbGxJbmZvU3RhY2s+PiBkZWxheWVkVXBkYXRlZFNjcm9sbEluZm9TdGFjazsKKyAgICBy
ZXR1cm4gZGVsYXllZFVwZGF0ZWRTY3JvbGxJbmZvU3RhY2s7Cit9CiAKIC8vIEFsbG9jYXRlZCBv
bmx5IHdoZW4gc29tZSBvZiB0aGVzZSBmaWVsZHMgaGF2ZSBub24tZGVmYXVsdCB2YWx1ZXMKIApA
QCAtMjM2LDcgKzI1Miw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCgpCiAg
ICAgICAgICAgICBwYXJlbnQoKS0+ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQodGhpcyk7CiAg
ICAgfQogCi0gICAgcmVtb3ZlRnJvbURlbGF5ZWRVcGRhdGVTY3JvbGxJbmZvU2V0KCk7CisgICAg
cmVtb3ZlRnJvbVVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uKCk7CiAKICAg
ICBSZW5kZXJCb3g6OndpbGxCZURlc3Ryb3llZCgpOwogfQpAQCAtOTE5LDQwICs5MzUsNTYgQEAg
Ym9vbCBSZW5kZXJCbG9jazo6aXNTZWxmQ29sbGFwc2luZ0Jsb2NrKCkgY29uc3QKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLXZvaWQgUmVuZGVyQmxvY2s6OnN0YXJ0RGVsYXlVcGRhdGVTY3JvbGxJ
bmZvKCkKK3N0YXRpYyBpbmxpbmUgVXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rp
b24qIGN1cnJlbnRVcGRhdGVTY3JvbGxJbnRvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvbigpCiB7Ci0g
ICAgaWYgKGdEZWxheVVwZGF0ZVNjcm9sbEluZm8gPT0gMCkgewotICAgICAgICBBU1NFUlQoIWdE
ZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldCk7Ci0gICAgICAgIGdEZWxheWVkVXBkYXRlU2Nyb2xs
SW5mb1NldCA9IG5ldyBEZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldDsKLSAgICB9Ci0gICAgQVNT
RVJUKGdEZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldCk7Ci0gICAgKytnRGVsYXlVcGRhdGVTY3Jv
bGxJbmZvOworICAgIGlmICghdXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb25T
dGFjaygpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gJnVwZGF0ZVNjcm9s
bEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uU3RhY2soKS0+bGFzdCgpOwogfQogCi12b2lkIFJl
bmRlckJsb2NrOjpmaW5pc2hEZWxheVVwZGF0ZVNjcm9sbEluZm8oKQordm9pZCBSZW5kZXJCbG9j
azo6YmVnaW5VcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvbigpCiB7Ci0gICAg
LS1nRGVsYXlVcGRhdGVTY3JvbGxJbmZvOwotICAgIEFTU0VSVChnRGVsYXlVcGRhdGVTY3JvbGxJ
bmZvID49IDApOwotICAgIGlmIChnRGVsYXlVcGRhdGVTY3JvbGxJbmZvID09IDApIHsKLSAgICAg
ICAgQVNTRVJUKGdEZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldCk7CisgICAgaWYgKCF1cGRhdGVT
Y3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvblN0YWNrKCkpCisgICAgICAgIHVwZGF0ZVNj
cm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uU3RhY2soKSA9IHN0ZDo6bWFrZV91bmlxdWU8
RGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TdGFjaz4oKTsKKyAgICBpZiAodXBkYXRlU2Nyb2xsSW5m
b0FmdGVyTGF5b3V0VHJhbnNhY3Rpb25TdGFjaygpLT5pc0VtcHR5KCkgfHwgY3VycmVudFVwZGF0
ZVNjcm9sbEludG9BZnRlckxheW91dFRyYW5zYWN0aW9uKCktPnZpZXcgIT0gJnZpZXcoKSkKKyAg
ICAgICAgdXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb25TdGFjaygpLT5hcHBl
bmQoVXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24odmlldygpKSk7CisgICAg
KytjdXJyZW50VXBkYXRlU2Nyb2xsSW50b0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24oKS0+bmVzdGVk
Q291bnQ7Cit9CiAKLSAgICAgICAgc3RkOjp1bmlxdWVfcHRyPERlbGF5ZWRVcGRhdGVTY3JvbGxJ
bmZvU2V0PiBpbmZvU2V0KGdEZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldCk7Ci0gICAgICAgIGdE
ZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldCA9IDA7Cit2b2lkIFJlbmRlckJsb2NrOjplbmRBbmRD
b21taXRVcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvbigpCit7CisgICAgVXBk
YXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uID0gY3VycmVu
dFVwZGF0ZVNjcm9sbEludG9BZnRlckxheW91dFRyYW5zYWN0aW9uKCk7CisgICAgQVNTRVJUKHRy
YW5zYWN0aW9uKTsKKyAgICBBU1NFUlQodHJhbnNhY3Rpb24tPnZpZXcgPT0gJnZpZXcoKSk7Cisg
ICAgaWYgKC0tdHJhbnNhY3Rpb24tPm5lc3RlZENvdW50KQorICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgZm9yIChEZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldDo6aXRlcmF0b3IgaXQgPSBpbmZv
U2V0LT5iZWdpbigpOyBpdCAhPSBpbmZvU2V0LT5lbmQoKTsgKytpdCkgewotICAgICAgICAgICAg
UmVuZGVyQmxvY2sqIGJsb2NrID0gKml0OwotICAgICAgICAgICAgaWYgKGJsb2NrLT5oYXNPdmVy
Zmxvd0NsaXAoKSkgewotICAgICAgICAgICAgICAgIGJsb2NrLT5sYXllcigpLT51cGRhdGVTY3Jv
bGxJbmZvQWZ0ZXJMYXlvdXQoKTsKLSAgICAgICAgICAgICAgICBibG9jay0+Y2xlYXJMYXlvdXRP
dmVyZmxvdygpOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgLy8gQ2FsbGluZyBSZW5k
ZXJMYXllcjo6dXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0KCkgbWF5IGNhdXNlIGl0cyBhc3Nv
Y2lhdGVkIGJsb2NrIHRvIGxheW91dCBhZ2FpbiBhbmQKKyAgICAvLyB1cGRhdGVzIGl0cyBzY3Jv
bGwgaW5mbyAoaS5lLiBjYWxsIFJlbmRlckJsb2NrOjp1cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlv
dXQoKSkuIFdlIHJlbW92ZSB8dHJhbnNhY3Rpb258CisgICAgLy8gZnJvbSB0aGUgdHJhbnNhY3Rp
b24gc3RhY2sgdG8gZW5zdXJlIHRoYXQgYWxsIHN1YnNlcXVlbnQgY2FsbHMgdG8gUmVuZGVyQmxv
Y2s6OnVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dCgpCisgICAgLy8gYXJlIGRpc3BhdGNoZWQg
aW1tZWRpYXRlbHkuIFRoYXQgaXMsIHRvIGVuc3VyZSB0aGF0IHN1Y2ggc3Vic2VxdWVudCBjYWxs
cyBhcmVuJ3QgYWRkZWQgdG8gfHRyYW5zYWN0aW9ufAorICAgIC8vIHdoaWxlIHdlIGFyZSBwcm9j
ZXNzaW5nIGl0LgorICAgIFZlY3RvcjxSZW5kZXJCbG9jayo+IGJsb2Nrc1RvVXBkYXRlOworICAg
IGNvcHlUb1ZlY3Rvcih0cmFuc2FjdGlvbi0+YmxvY2tzLCBibG9ja3NUb1VwZGF0ZSk7CisgICAg
dXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb25TdGFjaygpLT5yZW1vdmVMYXN0
KCk7CisgICAgaWYgKHVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uU3RhY2so
KS0+aXNFbXB0eSgpKQorICAgICAgICB1cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2Fj
dGlvblN0YWNrKCkgPSBudWxscHRyOworCisgICAgZm9yIChhdXRvKiBibG9jayA6IGJsb2Nrc1Rv
VXBkYXRlKSB7CisgICAgICAgIEFTU0VSVChibG9jay0+aGFzT3ZlcmZsb3dDbGlwKCkpOworICAg
ICAgICBibG9jay0+bGF5ZXIoKS0+dXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0KCk7CisgICAg
ICAgIGJsb2NrLT5jbGVhckxheW91dE92ZXJmbG93KCk7CiAgICAgfQogfQogCi12b2lkIFJlbmRl
ckJsb2NrOjpyZW1vdmVGcm9tRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQoKQordm9pZCBSZW5k
ZXJCbG9jazo6cmVtb3ZlRnJvbVVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9u
KCkKIHsKLSAgICBpZiAoVU5MSUtFTFkoZ0RlbGF5ZWRVcGRhdGVTY3JvbGxJbmZvU2V0ICE9IDAp
KQotICAgICAgICBnRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQtPnJlbW92ZSh0aGlzKTsKKyAg
ICBpZiAoVU5MSUtFTFkodXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb25TdGFj
aygpLmdldCgpICE9IDApKSB7CisgICAgICAgIFVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRy
YW5zYWN0aW9uKiB0cmFuc2FjdGlvbiA9IGN1cnJlbnRVcGRhdGVTY3JvbGxJbnRvQWZ0ZXJMYXlv
dXRUcmFuc2FjdGlvbigpOworICAgICAgICBBU1NFUlQodHJhbnNhY3Rpb24pOworICAgICAgICBB
U1NFUlQodHJhbnNhY3Rpb24tPnZpZXcgPT0gJnZpZXcoKSk7CisgICAgICAgIHRyYW5zYWN0aW9u
LT5ibG9ja3MucmVtb3ZlKHRoaXMpOworICAgIH0KIH0KIAogdm9pZCBSZW5kZXJCbG9jazo6dXBk
YXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0KCkKQEAgLTk2NywxMCArOTk5LDEyIEBAIHZvaWQgUmVu
ZGVyQmxvY2s6OnVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dCgpCiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoZ0RlbGF5VXBkYXRlU2Nyb2xsSW5mbykKLSAg
ICAgICAgICAgIGdEZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1NldC0+YWRkKHRoaXMpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBsYXllcigpLT51cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXQo
KTsKKyAgICAgICAgVXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24qIHRyYW5z
YWN0aW9uID0gY3VycmVudFVwZGF0ZVNjcm9sbEludG9BZnRlckxheW91dFRyYW5zYWN0aW9uKCk7
CisgICAgICAgIGlmICh0cmFuc2FjdGlvbiAmJiB0cmFuc2FjdGlvbi0+dmlldyA9PSAmdmlldygp
KSB7CisgICAgICAgICAgICB0cmFuc2FjdGlvbi0+YmxvY2tzLmFkZCh0aGlzKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBsYXllcigpLT51cGRhdGVTY3JvbGxJbmZv
QWZ0ZXJMYXlvdXQoKTsKICAgICB9CiB9CiAKQEAgLTk4OCw3ICsxMDIyLDkgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6bGF5b3V0KCkKICAgICAKICAgICAvLyBJdCdzIHNhZmUgdG8gY2hlY2sgZm9yIGNv
bnRyb2wgY2xpcCBoZXJlLCBzaW5jZSBjb250cm9scyBjYW4gbmV2ZXIgYmUgdGFibGUgY2VsbHMu
CiAgICAgLy8gSWYgd2UgaGF2ZSBhIGxpZ2h0d2VpZ2h0IGNsaXAsIHRoZXJlIGNhbiBuZXZlciBi
ZSBhbnkgb3ZlcmZsb3cgZnJvbSBjaGlsZHJlbi4KLSAgICBpZiAoaGFzQ29udHJvbENsaXAoKSAm
JiBtX292ZXJmbG93ICYmICFnRGVsYXlVcGRhdGVTY3JvbGxJbmZvKQorICAgIFVwZGF0ZVNjcm9s
bEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiA9IGN1cnJlbnRVcGRhdGVT
Y3JvbGxJbnRvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvbigpOworICAgIGJvb2wgaXNEZWxheWluZ1Vw
ZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dEluVmlldyA9IHRyYW5zYWN0aW9uICYmIHRyYW5zYWN0
aW9uLT52aWV3ID09ICZ2aWV3KCk7CisgICAgaWYgKGhhc0NvbnRyb2xDbGlwKCkgJiYgbV9vdmVy
ZmxvdyAmJiAhaXNEZWxheWluZ1VwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dEluVmlldykKICAg
ICAgICAgY2xlYXJMYXlvdXRPdmVyZmxvdygpOwogCiAgICAgaW52YWxpZGF0ZUJhY2tncm91bmRP
YnNjdXJhdGlvblN0YXR1cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaApp
bmRleCBlMzAzY2QyYmY3NmIzOGViMzY2NWI3NmQxYjdmMmIzOTc3MjBhOGI1Li45NDE5OTY3YjBl
MDU5NzQ0NzcyYzliYzg4YWE4Y2FhYzk3YTBmYTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suaApAQCAtMzU1LDE2ICszNTUsMTUgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgaW50IGZpcnN0TGluZUJhc2VsaW5lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBp
bnQgaW5saW5lQmxvY2tCYXNlbGluZShMaW5lRGlyZWN0aW9uTW9kZSkgY29uc3Qgb3ZlcnJpZGU7
CiAKLSAgICAvLyBEZWxheSB1cGRhdGUgc2Nyb2xsYmFyIHVudGlsIGZpbmlzaERlbGF5UmVwYWlu
dCgpIHdpbGwgYmUKLSAgICAvLyBjYWxsZWQuIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB3aGVuIGEg
ZmxleGJveCBpcyBsYXlpbmcgb3V0IGl0cwotICAgIC8vIGRlc2NlbmRhbnQuIElmIG11bHRpcGxl
IGNhbGxzIGFyZSBtYWRlIHRvIHN0YXJ0RGVsYXlSZXBhaW50KCksCi0gICAgLy8gZmluaXNoRGVs
YXlSZXBhaW50KCkgd2lsbCBkbyBub3RoaW5nIHVudGlsIGZpbmlzaERlbGF5UmVwYWludCgpCi0g
ICAgLy8gaXMgY2FsbGVkIHRoZSBzYW1lIG51bWJlciBvZiB0aW1lcy4KLSAgICBzdGF0aWMgdm9p
ZCBzdGFydERlbGF5VXBkYXRlU2Nyb2xsSW5mbygpOwotICAgIHN0YXRpYyB2b2lkIGZpbmlzaERl
bGF5VXBkYXRlU2Nyb2xsSW5mbygpOworICAgIC8vIERlbGF5IHVwZGF0aW5nIHNjcm9sbGJhcnMg
dW50aWwgZW5kQW5kQ29tbWl0VXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24o
KSBpcyBjYWxsZWQuIFRoZXNlIGZ1bmN0aW9ucyBhcmUgdXNlZAorICAgIC8vIHdoZW4gYSBmbGV4
Ym94IGlzIGxheWluZyBvdXQgaXRzIGRlc2NlbmRhbnRzLiBJZiBtdWx0aXBsZSBjYWxscyBhcmUg
bWFkZSB0byBiZWdpblVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0aW9uKCkKKyAg
ICAvLyB0aGVuIGVuZEFuZENvbW1pdFVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5zYWN0
aW9uKCkgd2lsbCBkbyBub3RoaW5nIHVudGlsIGl0IGlzIGNhbGxlZCB0aGUgc2FtZSBudW1iZXIg
b2YgdGltZXMuCisgICAgdm9pZCBiZWdpblVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dFRyYW5z
YWN0aW9uKCk7CisgICAgdm9pZCBlbmRBbmRDb21taXRVcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlv
dXRUcmFuc2FjdGlvbigpOworCisgICAgdm9pZCByZW1vdmVGcm9tVXBkYXRlU2Nyb2xsSW5mb0Fm
dGVyTGF5b3V0VHJhbnNhY3Rpb24oKTsKIAogICAgIHZvaWQgdXBkYXRlU2Nyb2xsSW5mb0FmdGVy
TGF5b3V0KCk7Ci0gICAgdm9pZCByZW1vdmVGcm9tRGVsYXllZFVwZGF0ZVNjcm9sbEluZm9TZXQo
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBj
b25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBz
dHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHls
ZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
Y3BwCmluZGV4IDFkNThiNmE3ZDgyZjdmMWY0NzU5ZWFkNDg1M2U5OGZiYWQwNzhhNjIuLjY5NzE5
ODFjMGNiZDcxYjhmZDg0YzcwZTkyNTA2NmJjZTA5MmUzZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC0xODIsNyArMTgyLDcgQEAgdm9pZCBS
ZW5kZXJCbG9ja0Zsb3c6OndpbGxCZURlc3Ryb3llZCgpCiAKICAgICBtX2xpbmVCb3hlcy5kZWxl
dGVMaW5lQm94ZXMoKTsKIAotICAgIHJlbW92ZUZyb21EZWxheWVkVXBkYXRlU2Nyb2xsSW5mb1Nl
dCgpOworICAgIHJlbW92ZUZyb21VcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlv
bigpOwogCiAgICAgLy8gTk9URTogVGhpcyBqdW1wcyBkb3duIHRvIFJlbmRlckJveCwgYnlwYXNz
aW5nIFJlbmRlckJsb2NrIHNpbmNlIGl0IHdvdWxkIGRvIGR1cGxpY2F0ZSB3b3JrLgogICAgIFJl
bmRlckJveDo6d2lsbEJlRGVzdHJveWVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCmluZGV4IGQyNjY3M2Yx
NWE5MzQ1NWY2NGM4NzdiYjFlMjYzYTFjYTZjNmJlMWMuLmJiNWQxNGM1ZGFhY2IwOWVlYjAzYzBj
MTIwNTg3ZjU1NDVhYTY1MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwCkBAIC0zOTEsNyArMzkxLDcgQEAg
dm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dEhvcml6b250YWxCb3goYm9v
bCByZWxheW91dENoaWxkcmVuKQogICAgIGJvb2wgaGF2ZUZsZXggPSBmYWxzZSwgZmxleGluZ0No
aWxkcmVuID0gZmFsc2U7IAogICAgIGdhdGhlckZsZXhDaGlsZHJlbkluZm8oaXRlcmF0b3IsIHJl
bGF5b3V0Q2hpbGRyZW4sIGhpZ2hlc3RGbGV4R3JvdXAsIGxvd2VzdEZsZXhHcm91cCwgaGF2ZUZs
ZXgpOwogCi0gICAgUmVuZGVyQmxvY2s6OnN0YXJ0RGVsYXlVcGRhdGVTY3JvbGxJbmZvKCk7Cisg
ICAgYmVnaW5VcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvbigpOwogCiAgICAg
Q2hpbGRMYXlvdXREZWx0YXMgY2hpbGRMYXlvdXREZWx0YXM7CiAgICAgYXBwZW5kQ2hpbGRMYXlv
dXREZWx0YXModGhpcywgY2hpbGRMYXlvdXREZWx0YXMpOwpAQCAtNjIxLDcgKzYyMSw3IEBAIHZv
aWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRIb3Jpem9udGFsQm94KGJvb2wg
cmVsYXlvdXRDaGlsZHJlbikKICAgICAgICAgfQogICAgIH0gd2hpbGUgKGhhdmVGbGV4KTsKIAot
ICAgIFJlbmRlckJsb2NrOjpmaW5pc2hEZWxheVVwZGF0ZVNjcm9sbEluZm8oKTsKKyAgICBlbmRB
bmRDb21taXRVcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvbigpOwogCiAgICAg
aWYgKHJlbWFpbmluZ1NwYWNlID4gMCAmJiAoKHN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlv
bigpICYmIHN0eWxlKCkuYm94UGFjaygpICE9IFN0YXJ0KQogICAgICAgICB8fCAoIXN0eWxlKCku
aXNMZWZ0VG9SaWdodERpcmVjdGlvbigpICYmIHN0eWxlKCkuYm94UGFjaygpICE9IEVuZCkpKSB7
CkBAIC02OTgsNyArNjk4LDcgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6Omxh
eW91dFZlcnRpY2FsQm94KGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKICAgICBpZiAoaGF2ZUxpbmVD
bGFtcCkKICAgICAgICAgYXBwbHlMaW5lQ2xhbXAoaXRlcmF0b3IsIHJlbGF5b3V0Q2hpbGRyZW4p
OwogCi0gICAgUmVuZGVyQmxvY2s6OnN0YXJ0RGVsYXlVcGRhdGVTY3JvbGxJbmZvKCk7CisgICAg
YmVnaW5VcGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXRUcmFuc2FjdGlvbigpOwogCiAgICAgQ2hp
bGRMYXlvdXREZWx0YXMgY2hpbGRMYXlvdXREZWx0YXM7CiAgICAgYXBwZW5kQ2hpbGRMYXlvdXRE
ZWx0YXModGhpcywgY2hpbGRMYXlvdXREZWx0YXMpOwpAQCAtODc5LDcgKzg3OSw3IEBAIHZvaWQg
UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRWZXJ0aWNhbEJveChib29sIHJlbGF5
b3V0Q2hpbGRyZW4pCiAgICAgICAgIH0KICAgICB9IHdoaWxlIChoYXZlRmxleCk7CiAKLSAgICBS
ZW5kZXJCbG9jazo6ZmluaXNoRGVsYXlVcGRhdGVTY3JvbGxJbmZvKCk7CisgICAgZW5kQW5kQ29t
bWl0VXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24oKTsKIAogICAgIGlmIChz
dHlsZSgpLmJveFBhY2soKSAhPSBTdGFydCAmJiByZW1haW5pbmdTcGFjZSA+IDApIHsKICAgICAg
ICAgLy8gQ2hpbGRyZW4gbXVzdCBiZSByZXBvc2l0aW9uZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAppbmRleCAzZDA0YTIwY2Q2ZDhhNmIzNzM2
NGZlNjk0MzMzZjE4ZWRhZGJjNDkwLi4zYjNjZTIzMzc2YjFlOGUwMjExZTU2ZjM4ZDI4M2JlNTU0
MDQxNGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGli
bGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5jcHAKQEAgLTI3MSw3ICsyNzEsNyBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRC
bG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAKICAgICBtX251bWJlck9m
SW5GbG93Q2hpbGRyZW5PbkZpcnN0TGluZSA9IC0xOwogCi0gICAgUmVuZGVyQmxvY2s6OnN0YXJ0
RGVsYXlVcGRhdGVTY3JvbGxJbmZvKCk7CisgICAgYmVnaW5VcGRhdGVTY3JvbGxJbmZvQWZ0ZXJM
YXlvdXRUcmFuc2FjdGlvbigpOwogCiAgICAgZGlydHlGb3JMYXlvdXRGcm9tUGVyY2VudGFnZUhl
aWdodERlc2NlbmRhbnRzKCk7CiAKQEAgLTI4Nyw3ICsyODcsNyBAQCB2b2lkIFJlbmRlckZsZXhp
YmxlQm94OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAg
ICAgdXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAgIHJlcG9zaXRpb25Mb2dpY2FsSGVpZ2h0RGVw
ZW5kZW50RmxleEl0ZW1zKGxpbmVDb250ZXh0cyk7CiAKLSAgICBSZW5kZXJCbG9jazo6ZmluaXNo
RGVsYXlVcGRhdGVTY3JvbGxJbmZvKCk7CisgICAgZW5kQW5kQ29tbWl0VXBkYXRlU2Nyb2xsSW5m
b0FmdGVyTGF5b3V0VHJhbnNhY3Rpb24oKTsKIAogICAgIGlmIChsb2dpY2FsSGVpZ2h0KCkgIT0g
cHJldmlvdXNIZWlnaHQpCiAgICAgICAgIHJlbGF5b3V0Q2hpbGRyZW4gPSB0cnVlOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDBjNmVkNTZhOWU4ODUyNWU3NmFiNjdmYmMwMTc1NjAzOWRhNTBiMzMuLmVkN2NmZmE2ZTdkNDNi
ZDU3OWU0YzNkNDNlYTg2MTJlNWE5OWQ3NWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNC0w
NS0xOSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAgICAgICAgRWxlbWVu
dCB3aXRoaW4gZmxhdHRlbmVkIGZyYW1lIG1heSB1cGRhdGUgaXRzIHNjcm9sbCBzdGF0ZSBkdXJp
bmcgdGhlIGxheW91dCBwaGFzZSBvZiB0aGUgd3JvbmcgUmVuZGVyVmlldworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMDEzCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8xNjc2MDE1ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCB0ZXN0cyB0byBlbnN1cmUgdGhhdCB0aGF0IHdlIHVwZGF0ZSB0
aGUgc2Nyb2xsIHN0YXRlIG9mIGFuIGVsZW1lbnQgZHVyaW5nIHRoZSBsYXlvdXQgcGhhc2Ugb2Yg
aXRzCisgICAgICAgIGFzc29jaWF0ZWQgUmVuZGVyVmlldy4KKworICAgICAgICAqIGZhc3QvZnJh
bWVzL2ZsYXR0ZW5pbmcvc2Nyb2xsYWJsZS1mbGV4Ym94LWluc2lkZS1pZnJhbWUtd2l0aC16ZXJv
LWhlaWdodC1hbmQtbmVlZHMtZnVsbC1yZXBhaW50LWNyYXNoLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zY3JvbGxhYmxlLWZsZXhib3gtaW5z
aWRlLWlmcmFtZS13aXRoLXplcm8taGVpZ2h0LWFuZC1uZWVkcy1mdWxsLXJlcGFpbnQtY3Jhc2gu
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zY3JvbGxhYmxl
LWZsZXhib3gtaW5zaWRlLWlmcmFtZS13aXRoLXplcm8taGVpZ2h0LWFzc2VydGlvbi1mYWlsdXJl
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9z
Y3JvbGxhYmxlLWZsZXhib3gtaW5zaWRlLWlmcmFtZS13aXRoLXplcm8taGVpZ2h0LWFzc2VydGlv
bi1mYWlsdXJlLmh0bWw6IEFkZGVkLgorCiAyMDE0LTA1LTE2ICBLaXJhbiAgPGtpcmFuLmd1ZHVy
dUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBSVENEdG1mU2VuZGVyIGRlZmF1bHQgdmFsdWVzIG5l
ZWQgdG8gYmUgdXBkYXRlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2Zs
YXR0ZW5pbmcvc2Nyb2xsYWJsZS1mbGV4Ym94LWluc2lkZS1pZnJhbWUtd2l0aC16ZXJvLWhlaWdo
dC1hbmQtbmVlZHMtZnVsbC1yZXBhaW50LWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZnJhbWVzL2ZsYXR0ZW5pbmcvc2Nyb2xsYWJsZS1mbGV4Ym94LWluc2lkZS1pZnJhbWUt
d2l0aC16ZXJvLWhlaWdodC1hbmQtbmVlZHMtZnVsbC1yZXBhaW50LWNyYXNoLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jZTNhYmE4OTI0ZTJmZWRiY2M0NjJiMGJkNDgzY2FlZDRlNjE5OTMzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zY3Jv
bGxhYmxlLWZsZXhib3gtaW5zaWRlLWlmcmFtZS13aXRoLXplcm8taGVpZ2h0LWFuZC1uZWVkcy1m
dWxsLXJlcGFpbnQtY3Jhc2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0
cyB0aGF0IHdlIGRvbid0IGNhdXNlIGEgY3Jhc2ggd2hlbiBwZXJmb3JtaW5nIGEgZnVsbCByZXBh
aW50IG9mIGFuIDxpZnJhbWU+IHdpdGggemVybyBoZWlnaHQsIGVuY2xvc2VkIGluIGEgZmxleCBi
b3gsIHdob3NlIGNvbnRlbnQgZG9jdW1lbnQgY29udGFpbnMgYSBmbGV4IGJveCB3aXRoIGEgY2hp
bGQgc2Nyb2xsYWJsZSA8ZGl2Pi4KKworCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2ZyYW1lcy9mbGF0dGVuaW5nL3Njcm9sbGFibGUtZmxleGJveC1pbnNpZGUtaWZyYW1lLXdp
dGgtemVyby1oZWlnaHQtYW5kLW5lZWRzLWZ1bGwtcmVwYWludC1jcmFzaC5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zY3JvbGxhYmxlLWZsZXhib3gtaW5zaWRlLWlm
cmFtZS13aXRoLXplcm8taGVpZ2h0LWFuZC1uZWVkcy1mdWxsLXJlcGFpbnQtY3Jhc2guaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hZjJmMjBjZDM1ZDNkODI2MjBlOGI2OTA1ZWVjZTJkZjRjNTQ1ZTgxCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zY3JvbGxh
YmxlLWZsZXhib3gtaW5zaWRlLWlmcmFtZS13aXRoLXplcm8taGVpZ2h0LWFuZC1uZWVkcy1mdWxs
LXJlcGFpbnQtY3Jhc2guaHRtbApAQCAtMCwwICsxLDM4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9
CisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRGcmFt
ZUZsYXR0ZW5pbmdFbmFibGVkKHRydWUpOworCitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICJQQVNTIjsKKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoaXMgdGVzdHMgdGhhdCB3ZSBkb24n
dCBjYXVzZSBhIGNyYXNoIHdoZW4gcGVyZm9ybWluZyBhIGZ1bGwgcmVwYWludCBvZiBhbiAmbHQ7
aWZyYW1lJmd0OyB3aXRoIHplcm8gaGVpZ2h0LCBlbmNsb3NlZCBpbiBhIGZsZXggYm94LCB3aG9z
ZSBjb250ZW50IGRvY3VtZW50IGNvbnRhaW5zIGEgZmxleCBib3ggd2l0aCBhIGNoaWxkIHNjcm9s
bGFibGUgJmx0O2RpdiZndDsuPC9wPgorPGRpdiBpZD0idGVzdC1jb250YWluZXIiIHN0eWxlPSJk
aXNwbGF5OiAtd2Via2l0LWZsZXg7IC13ZWJraXQtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgaGVp
Z2h0OiA1MTJweDsiPgorICAgIDxpZnJhbWUgc3R5bGU9IndpZHRoOiAxMDAlOyBvdmVyZmxvdzog
aGlkZGVuIiBoZWlnaHQ9IjAiIHNyY2RvYz0iCisgICAgICAgIDxkaXYgc3R5bGU9J2Rpc3BsYXk6
IC13ZWJraXQtZmxleDsgLXdlYmtpdC1mbGV4LWRpcmVjdGlvbjogY29sdW1uOyBoZWlnaHQ6IDEy
OHB4OyB3aWR0aDogMTI4cHg7IGJhY2tncm91bmQtY29sb3I6IGJsdWUnPgorICAgICAgICAgICAg
PGRpdiBpZD0nc2Nyb2xsYWJsZURpdicgc3R5bGU9J292ZXJmbG93LXk6IHNjcm9sbDsgb3V0bGlu
ZTogbm9uZTsgd2lkdGg6IDEwcHg7IGhlaWdodDogMTBweDsgLXdlYmtpdC1mbGV4OiAxOyc+Cisg
ICAgICAgICAgICAgICAgPGJyPjxicj48YnI+PGJyPjxicj48YnI+PGJyPjxicj48YnI+TG9yZW0g
aXBzdW0KKyAgICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPHNjcmlw
dD4KKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Njcm9sbGFibGVEaXYnKS5zY3Jv
bGxUb3AgPSAxMDg7CisgICAgICAgIHdpbmRvdy5wYXJlbnQuZG9uZSgpOworICAgICAgICA8L3Nj
cmlwdD4KKyAgICAiPjwvaWZyYW1lPgorPC9kaXY+Cis8cHJlIGlkPSJjb25zb2xlIj5GQUlMPC9w
cmU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1l
cy9mbGF0dGVuaW5nL3Njcm9sbGFibGUtZmxleGJveC1pbnNpZGUtaWZyYW1lLXdpdGgtemVyby1o
ZWlnaHQtYXNzZXJ0aW9uLWZhaWx1cmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9m
cmFtZXMvZmxhdHRlbmluZy9zY3JvbGxhYmxlLWZsZXhib3gtaW5zaWRlLWlmcmFtZS13aXRoLXpl
cm8taGVpZ2h0LWFzc2VydGlvbi1mYWlsdXJlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NzA3
Mjg3MjVhZWE0ZGNhYmQwMmMzMDM0Nzc1ZGMzMWZlMTI4OTE1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRlbmluZy9zY3JvbGxhYmxlLWZsZXhib3gtaW5z
aWRlLWlmcmFtZS13aXRoLXplcm8taGVpZ2h0LWFzc2VydGlvbi1mYWlsdXJlLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdHMgdGhhdCB3ZSBkb24ndCBjYXVzZSBhbiBhc3Nl
cnRpb24gZmFpbHVyZSB3aGVuIHBlcmZvcm1pbmcgYSBwYXJ0aWFsIHJlcGFpbnQgb2YgYW4gPGlm
cmFtZT4gd2l0aCB6ZXJvIGhlaWdodCwgZW5jbG9zZWQgaW4gYSBmbGV4IGJveCwgd2hvc2UgY29u
dGVudCBkb2N1bWVudCBjb250YWlucyBhIGZsZXggYm94IHdpdGggYSBjaGlsZCBzY3JvbGxhYmxl
IDxkaXY+LgorCisKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2Zs
YXR0ZW5pbmcvc2Nyb2xsYWJsZS1mbGV4Ym94LWluc2lkZS1pZnJhbWUtd2l0aC16ZXJvLWhlaWdo
dC1hc3NlcnRpb24tZmFpbHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZmxhdHRl
bmluZy9zY3JvbGxhYmxlLWZsZXhib3gtaW5zaWRlLWlmcmFtZS13aXRoLXplcm8taGVpZ2h0LWFz
c2VydGlvbi1mYWlsdXJlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY4Y2RjZWNjYjY5ZWJkNmVkNTlkY2Rj
ODk0MWJjNDg4N2RlNjg3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2ZsYXR0ZW5pbmcvc2Nyb2xsYWJsZS1mbGV4Ym94LWluc2lkZS1pZnJhbWUtd2l0aC16ZXJv
LWhlaWdodC1hc3NlcnRpb24tZmFpbHVyZS5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKK30KKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQodHJ1ZSk7CisKK2Z1bmN0aW9uIGRvbmUoKQor
eworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJUZXh0ID0gIlBB
U1MiOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyB0
aGF0IHdlIGRvbid0IGNhdXNlIGFuIGFzc2VydGlvbiBmYWlsdXJlIHdoZW4gcGVyZm9ybWluZyBh
IHBhcnRpYWwgcmVwYWludCBvZiBhbiAmbHQ7aWZyYW1lJmd0OyB3aXRoIHplcm8gaGVpZ2h0LCBl
bmNsb3NlZCBpbiBhIGZsZXggYm94LCB3aG9zZSBjb250ZW50IGRvY3VtZW50IGNvbnRhaW5zIGEg
ZmxleCBib3ggd2l0aCBhIGNoaWxkIHNjcm9sbGFibGUgJmx0O2RpdiZndDsuPC9wPgorPGRpdiBp
ZD0idGVzdC1jb250YWluZXIiIHN0eWxlPSJkaXNwbGF5OiAtd2Via2l0LWZsZXg7IC13ZWJraXQt
ZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgaGVpZ2h0OiA1MTJweDsiPgorICAgIDxpZnJhbWUgc3R5
bGU9IndpZHRoOiAxMDAlOyBvdmVyZmxvdzogaGlkZGVuIiBoZWlnaHQ9IjAiIHNyY2RvYz0iCisg
ICAgICAgIDxkaXYgc3R5bGU9J2Rpc3BsYXk6IC13ZWJraXQtZmxleDsgLXdlYmtpdC1mbGV4LWRp
cmVjdGlvbjogY29sdW1uOyBoZWlnaHQ6IDEyOHB4OyB3aWR0aDogMTI4cHg7IGJhY2tncm91bmQt
Y29sb3I6IGJsdWUnPgorICAgICAgICAgICAgPGRpdiBpZD0nc2Nyb2xsYWJsZURpdicgc3R5bGU9
J2Rpc3BsYXk6IG5vbmU7IG92ZXJmbG93LXk6IHNjcm9sbDsgd2lkdGg6IDEwMHB4Oyc+PC9kaXY+
CisgICAgICAgIDwvZGl2PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICB3aW5kb3cuc2V0VGlt
ZW91dChmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB2YXIgc2Nyb2xsYWJsZURpdiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdzY3JvbGxhYmxlRGl2Jyk7CisgICAgICAgICAgICBzY3JvbGxh
YmxlRGl2LmlubmVySFRNTCA9ICdTdXBlcmNhbGlmcmFnaWxpc3RpY2V4cGlhbGlkb2Npb3VzJzsg
LyogQSBzdHJpbmcgdGhhdCBjYW5ub3QgYmUgd29yZC13cmFwcGVkIGFuZCBleGNlZWRzIHRoZSB3
aWR0aCBvZiB0aGUgc2Nyb2xsYWJsZURpdi4gKi8KKyAgICAgICAgICAgIHNjcm9sbGFibGVEaXYu
c3R5bGUuZGlzcGxheSA9ICdibG9jayc7CisgICAgICAgICAgICB3aW5kb3cucGFyZW50LmRvbmUo
KTsKKyAgICAgICAgfSwgMCk7CisgICAgICAgIDwvc2NyaXB0PgorICAgICI+PC9pZnJhbWU+Cis8
L2Rpdj4KKzxwcmUgaWQ9ImNvbnNvbGUiPkZBSUw8L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="256199"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>