<?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>171140</bug_id>
          
          <creation_ts>2017-04-21 13:43:57 -0700</creation_ts>
          <short_desc>[iOS] REGRESSION (r209409): getBoundingClientRect is wrong for fixed-position elements in resize/orientationchange</short_desc>
          <delta_ts>2017-05-07 14:23:23 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=170595</see_also>
          <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="Tim Horton">thorton</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1299839</commentid>
    <comment_count>0</comment_count>
      <attachid>307789</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-04-21 13:43:57 -0700</bug_when>
    <thetext>Created attachment 307789
testcase

Steps to Reproduce:

1. Open attached test page in Safari on iOS 10.3+.
2. Rotate.

Expected: all three borders should line up
Actual: the borders (green and blue) that are derived from the bounding client rect of the fixed-position element inside onresize/onorientationchange don&apos;t line up with the fixed-position element&apos;s border.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299852</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-04-21 13:52:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/31765167&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299875</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-04-21 14:09:16 -0700</bug_when>
    <thetext>We need a way to test rotation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299906</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-04-21 14:41:14 -0700</bug_when>
    <thetext>I don&apos;t think testing this is blocked on &quot;a way to test rotation&quot;, I&apos;m pretty sure this is just a resize bug. And we have ways to test that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300626</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-04-24 12:55:10 -0700</bug_when>
    <thetext>This regressed in https://trac.webkit.org/changeset/209409/webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300762</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-04-24 17:42:53 -0700</bug_when>
    <thetext>(And ToT is OK with Visual Viewports disabled)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1300866</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-04-24 20:40:26 -0700</bug_when>
    <thetext>It turns out (after hours of debugging) that the problem here is simple: WebPage::dynamicViewportSizeUpdate was not updated to set the layoutViewportOverrideRect instead of the customFixedPositionLayoutRect like WebPage::updateVisibleContentRects was.

I have tested after making this change and things are better; I&apos;ll make some tests and post a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301236</commentid>
    <comment_count>7</comment_count>
      <attachid>308144</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-04-25 14:21:55 -0700</bug_when>
    <thetext>Created attachment 308144
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301246</commentid>
    <comment_count>8</comment_count>
      <attachid>308144</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-04-25 14:39:06 -0700</bug_when>
    <thetext>Comment on attachment 308144
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm:-2992
&gt; -    frameView.setCustomFixedPositionLayoutRect(fixedPositionLayoutRect);

We may want to try to clean this up and share more code between dynamicViewportSizeUpdate and updateVisibleContentRects, but that is a much bigger change that I don&apos;t want to make at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301681</commentid>
    <comment_count>9</comment_count>
      <attachid>308144</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-04-26 11:05:11 -0700</bug_when>
    <thetext>Comment on attachment 308144
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm:2994
&gt; +        frameView.setLayoutViewportOverrideRect(LayoutRect(fixedPositionLayoutRect));

This is wrong, because fixedPositionLayoutRect comes from frameView.viewportConstrainedObjectsRect(), which is for the old-style fixed behavior, not the visual viewport behavior. We need to get this rect from _page-&gt;computeCustomFixedPositionRect().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305490</commentid>
    <comment_count>10</comment_count>
      <attachid>309262</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-05-05 20:06:37 -0700</bug_when>
    <thetext>Created attachment 309262
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305682</commentid>
    <comment_count>11</comment_count>
      <attachid>309316</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-05-06 21:24:02 -0700</bug_when>
    <thetext>Created attachment 309316
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305721</commentid>
    <comment_count>12</comment_count>
      <attachid>309323</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-05-07 10:49:36 -0700</bug_when>
    <thetext>Created attachment 309323
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305748</commentid>
    <comment_count>13</comment_count>
      <attachid>309323</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-07 14:23:21 -0700</bug_when>
    <thetext>Comment on attachment 309323
Patch

Clearing flags on attachment: 309323

Committed r216352: &lt;http://trac.webkit.org/changeset/216352&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305749</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-07 14:23:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>307789</attachid>
            <date>2017-04-21 13:43:57 -0700</date>
            <delta_ts>2017-04-21 13:43:57 -0700</delta_ts>
            <desc>testcase</desc>
            <filename>testresize-amp.html</filename>
            <type>text/html</type>
            <size>1425</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">PGhlYWQ+PG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MSI+PC9o
ZWFkPgo8c3R5bGU+CmRpdiB7CiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94Owp9CgojbGFzdG9y
aWVudGF0aW9uY2hhbmdlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIGJvcmRlcjogMTVw
eCBzb2xpZCBncmVlbjsKCiAgICB0b3A6IDA7CiAgICBsZWZ0OiAwOwp9CgojbGFzdHJlc2l6ZSB7
CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBib3JkZXI6IDE1cHggZG90dGVkIGJsdWU7Cgog
ICAgdG9wOiAwOwogICAgbGVmdDogMDsKfQoKI2V4dGVudCB7CiAgICBwb3NpdGlvbjogZml4ZWQ7
CiAgICBib3JkZXI6IDEwcHggc29saWQgcmVkOwoKICAgIHRvcDogMDsKICAgIGxlZnQ6IDA7CiAg
ICBib3R0b206IDA7CiAgICByaWdodDogMDsKfQoKI2xvZyB7CiAgICBmb250LXNpemU6IDlwdDsK
ICAgIHBhZGRpbmc6IDIwcHg7Cn0KPC9zdHlsZT4KPHNjcmlwdD4KZnVuY3Rpb24gd2lkdGgoKSB7
CiAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4dGVudCIpLmdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpLndpZHRoOwp9CgpmdW5jdGlvbiBoZWlnaHQoKSB7CiAgICByZXR1cm4gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImV4dGVudCIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhl
aWdodDsKfQoKd2luZG93Lm9ucmVzaXplID0gZnVuY3Rpb24gKCkgewogICAgbG9nKCJyZXNpemUi
KTsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXN0cmVzaXplIikuc3R5bGUud2lkdGgg
PSB3aWR0aCgpICsgInB4IjsKICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXN0cmVzaXpl
Iikuc3R5bGUuaGVpZ2h0ID0gaGVpZ2h0KCkgKyAicHgiOwp9Cgp3aW5kb3cub25vcmllbnRhdGlv
bmNoYW5nZSA9IGZ1bmN0aW9uICgpIHsKICAgIGxvZygib3JpZW50YXRpb25jaGFuZ2UiKTsKICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsYXN0b3JpZW50YXRpb25jaGFuZ2UiKS5zdHlsZS53
aWR0aCA9IHdpZHRoKCkgKyAicHgiOwogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxhc3Rv
cmllbnRhdGlvbmNoYW5nZSIpLnN0eWxlLmhlaWdodCA9IGhlaWdodCgpICsgInB4IjsKfQoKZnVu
Y3Rpb24gbG9nKHJlYXNvbikgewogICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLmlu
bmVySFRNTCA9IHJlYXNvbiArICI6ICIgKyB3aWR0aCgpICsgIiAiICsgaGVpZ2h0KCkgKyAiPGJy
Lz4iICsgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZyIpLmlubmVySFRNTDsKfQo8L3Njcmlw
dD4KPGRpdiBpZD0ibG9nIj48L2Rpdj4KPGRpdiBpZD0iZXh0ZW50Ij48L2Rpdj4KPGRpdiBpZD0i
bGFzdG9yaWVudGF0aW9uY2hhbmdlIj48L2Rpdj4KPGRpdiBpZD0ibGFzdHJlc2l6ZSI+PC9kaXY+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308144</attachid>
            <date>2017-04-25 14:21:55 -0700</date>
            <delta_ts>2017-05-05 20:06:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171140-20170425142155.patch</filename>
            <type>text/plain</type>
            <size>12050</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NzQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGM0MzU2Y2Y5NjkzNGQ3
YjM0Yzg0ZDg0NjY1MWU3MDA3ZDgzOTAwYi4uNWEzZWFiZjFkMzM1YTU4ZGY0OTQ3NzQ4MjZmYzNk
MzQ1ZmI0NDJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA0LTI1ICBUaW1v
dGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBS
RUdSRVNTSU9OIChyMjA5NDA5KTogZ2V0Qm91bmRpbmdDbGllbnRSZWN0IGlzIHdyb25nIGZvciBm
aXhlZC1wb3NpdGlvbiBlbGVtZW50cyBpbiByZXNpemUvb3JpZW50YXRpb25jaGFuZ2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTE0MAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzE3NjUxNjc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUp
OgorICAgICAgICBDb3JyZWN0bHkgdXBkYXRlIHRoZSBsYXlvdXRWaWV3cG9ydE92ZXJyaWRlUmVj
dCBkdXJpbmcgYW5pbWF0ZWQgcmVzaXplLgorCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnZp
ZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5nZWQpOgorICAgICAgICBMZWF2ZSBhIGNvbW1lbnQgYWJv
dXQgYW5vdGhlciBjYWxsZXIgb2Ygc2V0Q3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlY3QKKyAg
ICAgICAgdGhhdCBwcm9iYWJseSBuZWVkcyB0byBjaGFuZ2UsIGJ1dCBpc24ndCBkaXJlY3RseSBy
ZWxhdGVkIHRvIHRoaXMgYnVnLgorCiAyMDE3LTA0LTI1ICBKb2huIFdpbGFuZGVyICA8d2lsYW5k
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlc291cmNlIExvYWQgU3RhdGlzdGljczogQ2xlYXIg
bmV0d29yayBwcm9jZXNzIGNhY2hlIHdoZW4gY2xlYXJpbmcgc3RvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA0ODY5
YjA2Y2ZlZDhmMTkwMThiYjMxN2Q5ZTMyMmQ3OGE5NTAzODQ5Li5iNDQ1OWJhZjE2MDQ0NDJiZTdi
OWM1MmI1YWYwMjk2Y2UyOGQxM2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0yOTg5LDcgKzI5ODksMTYgQEAgdm9p
ZCBXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbWlu
aW11bUxheW91dFNpemUsIGNvbnMKIAogICAgIGZyYW1lVmlldy51cGRhdGVMYXlvdXRBbmRTdHls
ZUlmTmVlZGVkUmVjdXJzaXZlKCk7CiAgICAgSW50UmVjdCBmaXhlZFBvc2l0aW9uTGF5b3V0UmVj
dCA9IGVuY2xvc2luZ0ludFJlY3QoZnJhbWVWaWV3LnZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3Rz
UmVjdCgpKTsKLSAgICBmcmFtZVZpZXcuc2V0Q3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlY3Qo
Zml4ZWRQb3NpdGlvbkxheW91dFJlY3QpOworCisgICAgaWYgKGZyYW1lVmlldy5mcmFtZSgpLnNl
dHRpbmdzKCkudmlzdWFsVmlld3BvcnRFbmFibGVkKCkpIHsKKyAgICAgICAgZnJhbWVWaWV3LnNl
dExheW91dFZpZXdwb3J0T3ZlcnJpZGVSZWN0KExheW91dFJlY3QoZml4ZWRQb3NpdGlvbkxheW91
dFJlY3QpKTsKKyAgICAgICAgY29uc3QgYXV0byYgc3RhdGUgPSBlZGl0b3JTdGF0ZSgpOworICAg
ICAgICBpZiAoIXN0YXRlLmlzTWlzc2luZ1Bvc3RMYXlvdXREYXRhICYmIHN0YXRlLnBvc3RMYXlv
dXREYXRhKCkuaW5zaWRlRml4ZWRQb3NpdGlvbikgeworICAgICAgICAgICAgZnJhbWVWaWV3LmZy
YW1lKCkuc2VsZWN0aW9uKCkuc2V0Q2FyZXRSZWN0TmVlZHNVcGRhdGUoKTsKKyAgICAgICAgICAg
IHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RWRpdG9yU3RhdGVDaGFuZ2VkKHN0YXRlKSk7
CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgZnJhbWVWaWV3LnNldEN1c3RvbUZpeGVk
UG9zaXRpb25MYXlvdXRSZWN0KGZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KTsKIAogICAgIGZyYW1l
Vmlldy5zZXRDdXN0b21TaXplRm9yUmVzaXplRXZlbnQoZXhwYW5kZWRJbnRTaXplKHRhcmdldFVu
b2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMuc2l6ZSgpKSk7CiAgICAgc2V0RGV2
aWNlT3JpZW50YXRpb24oZGV2aWNlT3JpZW50YXRpb24pOwpAQCAtMzA2Myw2ICszMDcyLDcgQEAg
dm9pZCBXZWJQYWdlOjp2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKCkKICAgICAKICAgICBp
ZiAoIW1faGFzUmVjZWl2ZWRWaXNpYmxlQ29udGVudFJlY3RzQWZ0ZXJEaWRDb21taXRMb2FkKSB7
CiAgICAgICAgIC8vIFRoaXMgdGFrZXMgc2NhbGUgaW50byBhY2NvdW50LCBzbyBkbyBhZnRlciB0
aGUgc2NhbGUgY2hhbmdlLgorICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgcHJvYmFibHkg
c2V0TGF5b3V0Vmlld3BvcnRPdmVycmlkZVJlY3QgaW4gdmlzdWFsIHZpZXdwb3J0IG1vZGUuCiAg
ICAgICAgIGZyYW1lVmlldy5zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdChlbmNsb3Np
bmdJbnRSZWN0KGZyYW1lVmlldy52aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0c1JlY3QoKSkpOwog
CiAgICAgICAgIGZyYW1lVmlldy5zZXRDdXN0b21TaXplRm9yUmVzaXplRXZlbnQoZXhwYW5kZWRJ
bnRTaXplKG1fdmlld3BvcnRDb25maWd1cmF0aW9uLm1pbmltdW1MYXlvdXRTaXplKCkpKTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4ZWU1M2Vk
YWVjNWNlNGJlNGI1ZmUyZjVkZmNkZDdmYTRhOTAxMjk5Li5kNTI5MmY3MWYxNjExNGEzMTEwZTcx
YmM2NmUxMjlkOWY0YjI0MmQ2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTctMDQtMjUgIFRpbW90aHkgSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFJFR1JFU1NJT04g
KHIyMDk0MDkpOiBnZXRCb3VuZGluZ0NsaWVudFJlY3QgaXMgd3JvbmcgZm9yIGZpeGVkLXBvc2l0
aW9uIGVsZW1lbnRzIGluIHJlc2l6ZS9vcmllbnRhdGlvbmNoYW5nZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTQwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS8zMTc2NTE2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW06
CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGVyZm9ybVN5bmNocm9ub3VzQW5p
bWF0ZWRSZXNpemUpOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICogVGVzdFJ1bm5lclNo
YXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdU
Ujo6VUlTY3JpcHRDb250cm9sbGVyOjpwZXJmb3JtU3luY2hyb25vdXNBbmltYXRlZFJlc2l6ZSk6
CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250
cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9s
bGVySU9TLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBlcmZvcm1TeW5j
aHJvbm91c0FuaW1hdGVkUmVzaXplKToKKyAgICAgICAgQWRkIGEgbWVjaGFuaXNtIHRvIHRlc3Qg
YW5pbWF0ZWQgcmVzaXplLgorCiAyMDE3LTA0LTI1ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtA
aWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGZvbGxvdy11cCB0byByMjE1NzM5IGFu
ZCByMjE1NzQwLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0
Q29udHJvbGxlcklPUy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRy
b2xsZXJJT1MubW0KaW5kZXggYjBlMDRkZDY2YTkxM2Q2NmEwNGI5ZjhkMjhkMjc0ODU2NzFjZDZj
NS4uMTEzNjM4ZjQ1NTU3MjJlM2IwYjU4NjkxZDFjNzU5NjJiZWNiNTRiMCAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCkBAIC0zMjAs
NiArMzIwLDEwIEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRPYnNjdXJlZEluc2V0cyhk
b3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUpCiB7CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250
cm9sbGVyOjpwZXJmb3JtU3luY2hyb25vdXNBbmltYXRlZFJlc2l6ZShsb25nLCBsb25nKQorewor
fQorCiB9CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIu
aWRsIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlT
Y3JpcHRDb250cm9sbGVyLmlkbAppbmRleCBkYmE0NTZlYmNiMWUzZjk4N2Q4OWIyNzg2ZWU1M2Zi
ZGM5YWUyYWJiLi40OTQxNWNlZDQ4MTM0NjQ3M2JlYjUwOWYwMDMyMmY3ZGM4YzQ4YjhlIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9V
SVNjcmlwdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKQEAgLTIzNCw0ICsyMzQs
NiBAQCBpbnRlcmZhY2UgVUlTY3JpcHRDb250cm9sbGVyIHsKICAgICB2b2lkIG92ZXJyaWRlUHJl
ZmVyZW5jZShET01TdHJpbmcgcHJlZmVyZW5jZSwgRE9NU3RyaW5nIHZhbHVlKTsKIAogICAgIHZv
aWQgc2V0T2JzY3VyZWRJbnNldHMoZG91YmxlIHRvcCwgZG91YmxlIHJpZ2h0LCBkb3VibGUgYm90
dG9tLCBkb3VibGUgbGVmdCk7CisKKyAgICB2b2lkIHBlcmZvcm1TeW5jaHJvbm91c0FuaW1hdGVk
UmVzaXplKGxvbmcgd2lkdGgsIGxvbmcgaGVpZ2h0KTsKIH07CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwIGIv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVy
LmNwcAppbmRleCAwZjFmY2MxZDQ5ZjIxNmUzNWM3MWY4NmZhZjg4NmU4YWE0OTk3NTljLi4yMjhj
MGRhY2Y1MDUxZmM1NzdkYzYyNjgxMjQ4YTVkM2ZlNTlkZjUyIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCisr
KyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJv
bGxlci5jcHAKQEAgLTQwMyw2ICs0MDMsMTAgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNl
dE9ic2N1cmVkSW5zZXRzKGRvdWJsZSB0b3AsIGRvdWJsZSByaWdodCwgZG91YmxlIGJvdHQKIHsK
IH0KIAordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBlcmZvcm1TeW5jaHJvbm91c0FuaW1hdGVk
UmVzaXplKGxvbmcgd2lkdGgsIGxvbmcgaGVpZ2h0KQoreworfQorCiAjZW5kaWYKIAogI2lmICFQ
TEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKaW5kZXggNjYyNzM4ODdiOWU2YWI5
OTE2YjU5YTkxODlhMjIxYjEwODRkN2EzMC4uYTE0MDQ5ZmNkOWQyYzFhNjcyYTcxM2UyNjlhMDZh
ZjVkMzEwODVkNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKQEAgLTE1OCw2ICsxNTgsOCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHNldE9ic2N1cmVkSW5zZXRzKGRvdWJsZSB0b3AsIGRvdWJsZSBy
aWdodCwgZG91YmxlIGJvdHRvbSwgZG91YmxlIGxlZnQpOwogCisgICAgdm9pZCBwZXJmb3JtU3lu
Y2hyb25vdXNBbmltYXRlZFJlc2l6ZShsb25nIHdpZHRoLCBsb25nIGhlaWdodCk7CisKIHByaXZh
dGU6CiAgICAgVUlTY3JpcHRDb250cm9sbGVyKFVJU2NyaXB0Q29udGV4dCYpOwogICAgIApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9T
Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1t
CmluZGV4IDU3YTE5NTQ5ZDlkODkzZjJlMmQ4MjQyNjRjMTYwN2YzMGM1ZjJkYmQuLjRiMWQzZjhk
YjAxYzAxNTQ4Njk4NDg1NGMyMmFhZWY1NGNkY2RiMzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KQEAgLTY3Niw2ICs2NzYs
MTggQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldE9ic2N1cmVkSW5zZXRzKGRvdWJsZSB0
b3AsIGRvdWJsZSByaWdodCwgZG91YmxlIGJvdHQKICAgICB3ZWJWaWV3Ll9vYnNjdXJlZEluc2V0
cyA9IGluc2V0czsKIH0KIAordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBlcmZvcm1TeW5jaHJv
bm91c0FuaW1hdGVkUmVzaXplKGxvbmcgd2lkdGgsIGxvbmcgaGVpZ2h0KQoreworICAgIFBsYXRm
b3JtV2ViVmlldyAqcGxhdGZvcm1XZWJWaWV3ID0gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigp
Lm1haW5XZWJWaWV3KCk7CisgICAgVGVzdFJ1bm5lcldLV2ViVmlldyAqd2ViVmlldyA9IHBsYXRm
b3JtV2ViVmlldy0+cGxhdGZvcm1WaWV3KCk7CisKKyAgICBbd2ViVmlldyBfYmVnaW5BbmltYXRl
ZFJlc2l6ZVdpdGhVcGRhdGVzOl4geworICAgICAgICBwbGF0Zm9ybVdlYlZpZXctPnJlc2l6ZVRv
KHdpZHRoLCBoZWlnaHQpOworICAgIH1dOworCisgICAgW3dlYlZpZXcgX2VuZEFuaW1hdGVkUmVz
aXplXTsKK30KKwogfQogCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBhZjJmN2Zl
Mzk1MTA2ZjAzOTBjMTQwODZmZTY5ZDU5NGYyZGY4NjkuLjUxNjYzMGRkNDIyNzQwZTUzZWUxYmYw
OGUyZTljNDg1MGNhZmNlOGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNy0wNC0yNSAgVGlt
b3RoeSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10g
UkVHUkVTU0lPTiAocjIwOTQwOSk6IGdldEJvdW5kaW5nQ2xpZW50UmVjdCBpcyB3cm9uZyBmb3Ig
Zml4ZWQtcG9zaXRpb24gZWxlbWVudHMgaW4gcmVzaXplL29yaWVudGF0aW9uY2hhbmdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExNDAKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzMxNzY1MTY3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC92aXN1YWwtdmlld3BvcnQvaW9zL2ZpeGVkLWxh
eW91dC1hZnRlci1hbmltYXRlZC1yZXNpemUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3Zpc3VhbC12aWV3cG9ydC9pb3MvZml4ZWQtbGF5b3V0LWFmdGVyLWFuaW1hdGVkLXJl
c2l6ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgQWRkIGEgdGVzdCBlbnN1cmluZyB0aGF0IHRoZSBs
YXlvdXRWaWV3cG9ydFJlY3QgYW5kIGEgZml4ZWQgZWxlbWVudCdzCisgICAgICAgIGJvdW5kaW5n
IHJlY3QgYXJlIHVwZGF0ZWQgaW4gdGhlIG9ucmVzaXplIGhhbmRsZXIgZHVyaW5nIGFuIGFuaW1h
dGVkIHJlc2l6ZS4KKwogMjAxNy0wNC0yNSAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxl
LmNvbT4KIAogICAgICAgICBNYXJrIGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3Vy
Y2Utc2l6ZXMtZGlzay1jYWNoZS5odG1sIGFzIGZsYWt5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC92aXN1YWwtdmlld3BvcnQvaW9zL2ZpeGVkLWxheW91dC1hZnRlci1hbmltYXRlZC1y
ZXNpemUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC92aXN1YWwtdmlld3BvcnQvaW9z
L2ZpeGVkLWxheW91dC1hZnRlci1hbmltYXRlZC1yZXNpemUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmYxMjQ1MmQ1OWUzMzkwMGVhNTM5OTZjYTcyNzM1MWYxOTEwYmUwMTYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3Zpc3VhbC12aWV3cG9ydC9pb3MvZml4ZWQtbGF5b3V0
LWFmdGVyLWFuaW1hdGVkLXJlc2l6ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitCZWZv
cmUgUmVzaXplOgorTGF5b3V0IHZpZXdwb3J0OiB7InRvcCI6MCwicmlnaHQiOjMyMCwiYm90dG9t
Ijo1NDgsImxlZnQiOjAsIndpZHRoIjozMjAsImhlaWdodCI6NTQ4fQorVmlzdWFsIHZpZXdwb3J0
OiB7InRvcCI6MCwicmlnaHQiOjMyMCwiYm90dG9tIjo1NDgsImxlZnQiOjAsIndpZHRoIjozMjAs
ImhlaWdodCI6NTQ4fQorRml4ZWQgZWxlbWVudCByZWN0OiB7InRvcCI6MCwicmlnaHQiOjMyMCwi
Ym90dG9tIjo1NDgsImxlZnQiOjAsIndpZHRoIjozMjAsImhlaWdodCI6NTQ4fQorQWZ0ZXIgUmVz
aXplOgorTGF5b3V0IHZpZXdwb3J0OiB7InRvcCI6MCwicmlnaHQiOjEwMDAsImJvdHRvbSI6NTAw
LCJsZWZ0IjowLCJ3aWR0aCI6MTAwMCwiaGVpZ2h0Ijo1MDB9CitWaXN1YWwgdmlld3BvcnQ6IHsi
dG9wIjowLCJyaWdodCI6MTAwMCwiYm90dG9tIjo1MDAsImxlZnQiOjAsIndpZHRoIjoxMDAwLCJo
ZWlnaHQiOjUwMH0KK0ZpeGVkIGVsZW1lbnQgcmVjdDogeyJ0b3AiOjAsInJpZ2h0IjoxMDAwLCJi
b3R0b20iOjUwMCwibGVmdCI6MCwid2lkdGgiOjEwMDAsImhlaWdodCI6NTAwfQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Zpc3VhbC12aWV3cG9ydC9pb3MvZml4ZWQtbGF5b3V0LWFm
dGVyLWFuaW1hdGVkLXJlc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC92aXN1YWwtdmlld3Bv
cnQvaW9zL2ZpeGVkLWxheW91dC1hZnRlci1hbmltYXRlZC1yZXNpemUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42ZWU4NTllOGMyOGIzOWVjNmUwNWQyNGYxZjQwMjIzYmQxZjM3YTliCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC92aXN1YWwtdmlld3BvcnQvaW9zL2ZpeGVkLWxheW91dC1h
ZnRlci1hbmltYXRlZC1yZXNpemUuaHRtbApAQCAtMCwwICsxLDY3IEBACis8IURPQ1RZUEUgaHRt
bD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAt
LT4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
aW5pdGlhbC1zY2FsZT0xLjAiPgorICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAg
ICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgIH0KKyAgICAgICAgLmZpeGVkIHsKKyAgICAgICAg
ICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZl
cjsKKyAgICAgICAgICAgIHRvcDogMDsKKyAgICAgICAgICAgIGJvdHRvbTogMDsKKyAgICAgICAg
ICAgIGxlZnQ6IDA7CisgICAgICAgICAgICByaWdodDogMDsKKyAgICAgICAgfQorICAgIDwvc3R5
bGU+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0QW5pbWF0
ZWRSZXNpemVVSVNjcmlwdCh3aWR0aCwgaGVpZ2h0KQorICAgICAgICB7CisgICAgICAgICAgICBy
ZXR1cm4gYChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIucGVyZm9y
bVN5bmNocm9ub3VzQW5pbWF0ZWRSZXNpemUoJHt3aWR0aH0sICR7aGVpZ2h0fSk7CisgICAgICAg
ICAgICB9KSgpO2A7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBsb2coc3RyKQorICAg
ICAgICB7CisgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0cycpLmlu
bmVyVGV4dCArPSBzdHIgKyAiXG4iOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gcnVu
VGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwg
IXRlc3RSdW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgICAgICBsb2coIkJlZm9yZSBSZXNpemU6Iik7CisgICAgICAgICAgICBsb2coIkxheW91dCB2
aWV3cG9ydDogIiArIEpTT04uc3RyaW5naWZ5KGludGVybmFscy5sYXlvdXRWaWV3cG9ydFJlY3Qo
KSkpOworICAgICAgICAgICAgbG9nKCJWaXN1YWwgdmlld3BvcnQ6ICIgKyBKU09OLnN0cmluZ2lm
eShpbnRlcm5hbHMudmlzdWFsVmlld3BvcnRSZWN0KCkpKTsKKyAgICAgICAgICAgIGxvZygiRml4
ZWQgZWxlbWVudCByZWN0OiAiICsgSlNPTi5zdHJpbmdpZnkoZG9jdW1lbnQuZ2V0RWxlbWVudHNC
eUNsYXNzTmFtZSgiZml4ZWQiKVswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkpOworCisgICAg
ICAgICAgICB3aW5kb3cub25yZXNpemUgPSBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAg
bG9nKCJBZnRlciBSZXNpemU6Iik7CisgICAgICAgICAgICAgICAgbG9nKCJMYXlvdXQgdmlld3Bv
cnQ6ICIgKyBKU09OLnN0cmluZ2lmeShpbnRlcm5hbHMubGF5b3V0Vmlld3BvcnRSZWN0KCkpKTsK
KyAgICAgICAgICAgICAgICBsb2coIlZpc3VhbCB2aWV3cG9ydDogIiArIEpTT04uc3RyaW5naWZ5
KGludGVybmFscy52aXN1YWxWaWV3cG9ydFJlY3QoKSkpOworICAgICAgICAgICAgICAgIGxvZygi
Rml4ZWQgZWxlbWVudCByZWN0OiAiICsgSlNPTi5zdHJpbmdpZnkoZG9jdW1lbnQuZ2V0RWxlbWVu
dHNCeUNsYXNzTmFtZSgiZml4ZWQiKVswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkpOworCisg
ICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0QW5pbWF0ZWRSZXNpemVVSVNj
cmlwdCgxMDAwLCA1MDApKTsKKyAgICAgICAgfQorCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cHJlIGlkPSJyZXN1bHRzIj48L3ByZT4KKzxkaXYgY2xhc3M9ImZpeGVkIj4KKzwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>
<flag name="review"
          id="329328"
          type_id="1"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309262</attachid>
            <date>2017-05-05 20:06:37 -0700</date>
            <delta_ts>2017-05-06 21:24:01 -0700</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>26455</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9yb3RhdGlvbi9sYXlvdXQt
dmlld3BvcnQtZHVyaW5nLXJvdGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9p
b3Mvcm90YXRpb24vbGF5b3V0LXZpZXdwb3J0LWR1cmluZy1yb3RhdGlvbi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc1Y2FjOWQ0YjNkYmJiOWUyNjVhZDM1NjhiOWQ0NDIxYzA1NGZlNjMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvcm90YXRpb24vbGF5b3V0LXZpZXdw
b3J0LWR1cmluZy1yb3RhdGlvbi5odG1sCkBAIC0wLDAgKzEsMTAyIEBACis8IURPQ1RZUEUgaHRt
bD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgXSAt
LT4KKworPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
aW5pdGlhbC1zY2FsZT0xLjAiPgorICAgIDxzdHlsZT4KKyAgICAgICAgYm9keSB7CisgICAgICAg
ICAgICBoZWlnaHQ6IDIwMDBweDsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgI2V4dGVu
dCB7CisgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CisgICAgICAgICAgICBib3JkZXI6IDEw
cHggc29saWQgcmdiYSgwLCAwLCAxMjgsIDAuNSk7CisgICAgICAgICAgICB0b3A6IDA7CisgICAg
ICAgICAgICBsZWZ0OiAwOworICAgICAgICAgICAgYm90dG9tOiAwOworICAgICAgICAgICAgcmln
aHQ6IDA7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgICAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFZpc3VhbFZpZXdwb3J0RW5h
YmxlZCh0cnVlKTsKKworICAgICAgICBmdW5jdGlvbiBnZXRSb3RhdGlvblVJU2NyaXB0KCkKKyAg
ICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuc2ltdWxhdGVSb3RhdGlvbignbGFuZHNjYXBl
LXJpZ2h0JywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5k
b0FmdGVyVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAg
ICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KSgpO2AKKyAg
ICAgICAgfQorICAgICAgICAKKyAgICAgICAgZnVuY3Rpb24gc3RyaW5nRnJvbVJlY3QoZG9tUmVj
dCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGAke2RvbVJlY3QueH0sICR7ZG9tUmVj
dC55fSAtICR7ZG9tUmVjdC53aWR0aH0geCAke2RvbVJlY3QuaGVpZ2h0fWA7CisgICAgICAgIH0K
KworICAgICAgICB2YXIgbG9nZ2luZyA9ICcnOworICAgICAgICBmdW5jdGlvbiBhY2N1bXVsYXRl
TG9nKHMpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2dpbmcgKz0gcyArICdcbic7CisgICAg
ICAgIH0KKworICAgICAgICBmdW5jdGlvbiBsb2dGaXhlZE9iamVjdCgpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHZhciBmaXhlZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXh0
ZW50Jyk7CisgICAgICAgICAgICBhY2N1bXVsYXRlTG9nKCdjbGllbnQgcmVjdCBvZiBmaXhlZCBv
YmplY3Q6JyArIHN0cmluZ0Zyb21SZWN0KGZpeGVkRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKSkpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gbG9nRml4ZWRBbmRWaWV3cG9y
dHMoKQorICAgICAgICB7CisgICAgICAgICAgICBhY2N1bXVsYXRlTG9nKCdsYXlvdXRWaWV3cG9y
dDogJyArIHN0cmluZ0Zyb21SZWN0KGludGVybmFscy5sYXlvdXRWaWV3cG9ydFJlY3QoKSkpOwor
ICAgICAgICAgICAgYWNjdW11bGF0ZUxvZygndmlzdWFsVmlld3BvcnQ6ICcgKyBzdHJpbmdGcm9t
UmVjdChpbnRlcm5hbHMudmlzdWFsVmlld3BvcnRSZWN0KCkpKTsKKyAgICAgICAgICAgIGxvZ0Zp
eGVkT2JqZWN0KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQorICAg
ICAgICB7CisgICAgICAgICAgICBhY2N1bXVsYXRlTG9nKCdCZWZvcmUgcm90YXRpb24nKTsKKyAg
ICAgICAgICAgIGxvZ0ZpeGVkQW5kVmlld3BvcnRzKCk7CisgICAgICAgICAgICBpZiAoIXdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgdGVz
dFJ1bm5lci5ydW5VSVNjcmlwdChnZXRSb3RhdGlvblVJU2NyaXB0KCksIGZ1bmN0aW9uKHJlc3Vs
dCkgeworICAgICAgICAgICAgICAgIGFjY3VtdWxhdGVMb2coJycpOworICAgICAgICAgICAgICAg
IGFjY3VtdWxhdGVMb2coJ0FmdGVyIHJvdGF0aW9uJyk7CisgICAgICAgICAgICAgICAgbG9nRml4
ZWRBbmRWaWV3cG9ydHMoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB2YXIg
bG9nUHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncHJlJyk7CisgICAgICAgICAgICAgICAg
bG9nUHJlLnRleHRDb250ZW50ID0gbG9nZ2luZzsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5i
b2R5LmFwcGVuZENoaWxkKGxvZ1ByZSk7CisKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwor
ICAgICAgICAgICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ3Jlc2l6ZScsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYWNjdW11bGF0ZUxvZygnJyk7
CisgICAgICAgICAgICBhY2N1bXVsYXRlTG9nKCdJbiByZXNpemUgZXZlbnQgaGFuZGxlcjonKTsK
KyAgICAgICAgICAgIGxvZ0ZpeGVkQW5kVmlld3BvcnRzKCk7CisgICAgICAgIH0sIGZhbHNlKTsK
KyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29yaWVudGF0aW9uY2hhbmdlJywgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICBhY2N1bXVsYXRlTG9nKCcnKTsKKyAgICAgICAgICAgIGFj
Y3VtdWxhdGVMb2coJ0luIG9yaWVudGF0aW9uY2hhbmdlIGV2ZW50IGhhbmRsZXI6Jyk7CisgICAg
ICAgICAgICBhY2N1bXVsYXRlTG9nKCcoVGhpcyB3aWxsIHRyaWdnZXIgdGhlIHJlc2l6ZSBoYW5k
bGVyIGJ5IGZvcmNpbmcgYSBsYXlvdXQuKScpOworICAgICAgICAgICAgbG9nRml4ZWRBbmRWaWV3
cG9ydHMoKTsKKyAgICAgICAgfSwgZmFsc2UpOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8ZGl2IGlkPSJleHRlbnQiPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3JvdGF0aW9uL2xheW91
dC12aWV3cG9ydC1kdXJpbmctc2FmYXJpLXR5cGUtcm90YXRpb24uaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL2lvcy9yb3RhdGlvbi9sYXlvdXQtdmlld3BvcnQtZHVyaW5nLXNhZmFyaS10
eXBlLXJvdGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmEyMDRmZTRhYTg1YjdhOWU4Y2IyZjY1NWZi
MGUzMjgxYmI1YTk5YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L2lvcy9yb3RhdGlvbi9sYXlvdXQtdmlld3BvcnQtZHVyaW5nLXNhZmFyaS10eXBlLXJvdGF0aW9u
Lmh0bWwKQEAgLTAsMCArMSwxMDIgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorCis8aHRtbD4KKzxoZWFk
PgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEuMCI+
CisgICAgPHN0eWxlPgorICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIGhlaWdodDogMjAwMHB4
OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAjZXh0ZW50IHsKKyAgICAgICAgICAgIHBv
c2l0aW9uOiBmaXhlZDsKKyAgICAgICAgICAgIGJvcmRlcjogMTBweCBzb2xpZCByZ2JhKDAsIDAs
IDEyOCwgMC41KTsKKyAgICAgICAgICAgIHRvcDogMDsKKyAgICAgICAgICAgIGxlZnQ6IDA7Cisg
ICAgICAgICAgICBib3R0b206IDA7CisgICAgICAgICAgICByaWdodDogMDsKKyAgICAgICAgfQor
ICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAganNUZXN0SXNBc3lu
YyA9IHRydWU7CisKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRFbmFibGVkKHRydWUpOworCisgICAg
ICAgIGZ1bmN0aW9uIGdldFJvdGF0aW9uVUlTY3JpcHQoKQorICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4gYAorICAgICAgICAgICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHVp
Q29udHJvbGxlci5zaW11bGF0ZVJvdGF0aW9uTGlrZVNhZmFyaSgnbGFuZHNjYXBlLXJpZ2h0Jywg
ZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kb0FmdGVyVmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgICAg
IH0pCisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQor
ICAgICAgICAKKyAgICAgICAgZnVuY3Rpb24gc3RyaW5nRnJvbVJlY3QoZG9tUmVjdCkKKyAgICAg
ICAgeworICAgICAgICAgICAgcmV0dXJuIGAke2RvbVJlY3QueH0sICR7ZG9tUmVjdC55fSAtICR7
ZG9tUmVjdC53aWR0aH0geCAke2RvbVJlY3QuaGVpZ2h0fWA7CisgICAgICAgIH0KKworICAgICAg
ICB2YXIgbG9nZ2luZyA9ICcnOworICAgICAgICBmdW5jdGlvbiBhY2N1bXVsYXRlTG9nKHMpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGxvZ2dpbmcgKz0gcyArICdcbic7CisgICAgICAgIH0KKwor
ICAgICAgICBmdW5jdGlvbiBsb2dGaXhlZE9iamVjdCgpCisgICAgICAgIHsKKyAgICAgICAgICAg
IHZhciBmaXhlZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXh0ZW50Jyk7Cisg
ICAgICAgICAgICBhY2N1bXVsYXRlTG9nKCdjbGllbnQgcmVjdCBvZiBmaXhlZCBvYmplY3Q6JyAr
IHN0cmluZ0Zyb21SZWN0KGZpeGVkRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSkpOwor
ICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gbG9nRml4ZWRBbmRWaWV3cG9ydHMoKQorICAg
ICAgICB7CisgICAgICAgICAgICBhY2N1bXVsYXRlTG9nKCdsYXlvdXRWaWV3cG9ydDogJyArIHN0
cmluZ0Zyb21SZWN0KGludGVybmFscy5sYXlvdXRWaWV3cG9ydFJlY3QoKSkpOworICAgICAgICAg
ICAgYWNjdW11bGF0ZUxvZygndmlzdWFsVmlld3BvcnQ6ICcgKyBzdHJpbmdGcm9tUmVjdChpbnRl
cm5hbHMudmlzdWFsVmlld3BvcnRSZWN0KCkpKTsKKyAgICAgICAgICAgIGxvZ0ZpeGVkT2JqZWN0
KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBkb1Rlc3QoKQorICAgICAgICB7Cisg
ICAgICAgICAgICBhY2N1bXVsYXRlTG9nKCdCZWZvcmUgcm90YXRpb24nKTsKKyAgICAgICAgICAg
IGxvZ0ZpeGVkQW5kVmlld3BvcnRzKCk7CisgICAgICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgdGVzdFJ1bm5lci5y
dW5VSVNjcmlwdChnZXRSb3RhdGlvblVJU2NyaXB0KCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAg
ICAgICAgICAgICAgIGFjY3VtdWxhdGVMb2coJycpOworICAgICAgICAgICAgICAgIGFjY3VtdWxh
dGVMb2coJ0FmdGVyIHJvdGF0aW9uJyk7CisgICAgICAgICAgICAgICAgbG9nRml4ZWRBbmRWaWV3
cG9ydHMoKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB2YXIgbG9nUHJlID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncHJlJyk7CisgICAgICAgICAgICAgICAgbG9nUHJlLnRl
eHRDb250ZW50ID0gbG9nZ2luZzsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGxvZ1ByZSk7CisKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0KKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6
ZScsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYWNjdW11bGF0ZUxvZygnJyk7CisgICAgICAg
ICAgICBhY2N1bXVsYXRlTG9nKCdJbiByZXNpemUgZXZlbnQgaGFuZGxlcjonKTsKKyAgICAgICAg
ICAgIGxvZ0ZpeGVkQW5kVmlld3BvcnRzKCk7CisgICAgICAgIH0sIGZhbHNlKTsKKyAgICAgICAg
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ29yaWVudGF0aW9uY2hhbmdlJywgZnVuY3Rpb24oKSB7
CisgICAgICAgICAgICBhY2N1bXVsYXRlTG9nKCcnKTsKKyAgICAgICAgICAgIGFjY3VtdWxhdGVM
b2coJ0luIG9yaWVudGF0aW9uY2hhbmdlIGV2ZW50IGhhbmRsZXI6Jyk7CisgICAgICAgICAgICBh
Y2N1bXVsYXRlTG9nKCcoVGhpcyB3aWxsIHRyaWdnZXIgdGhlIHJlc2l6ZSBoYW5kbGVyIGJ5IGZv
cmNpbmcgYSBsYXlvdXQuKScpOworICAgICAgICAgICAgbG9nRml4ZWRBbmRWaWV3cG9ydHMoKTsK
KyAgICAgICAgfSwgZmFsc2UpOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCds
b2FkJywgZG9UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
ICA8ZGl2IGlkPSJleHRlbnQiPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291
cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDY3MTllOTA2MTA1NGJiNWM5NTZiMzFlNGY5NmRjYjk5
N2I2ZWUyZDcuLjMxMGYzYjQwYmYzMjE4MWQ0YTNhZTIzY2RlZDE0ZDYxOTI4ZDQzN2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTE4MTEsNiArMTgxMSwyOCBAQCB2b2lkIEZyYW1l
Vmlldzo6cmVtb3ZlVmlld3BvcnRDb25zdHJhaW5lZE9iamVjdChSZW5kZXJFbGVtZW50KiBvYmpl
Y3QpCiAgICAgfQogfQogCitMYXlvdXRSZWN0IEZyYW1lVmlldzo6Y29tcHV0ZVVwZGF0ZWRMYXlv
dXRWaWV3cG9ydFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgbGF5b3V0Vmlld3BvcnQsIGNvbnN0IExh
eW91dFJlY3QmIGRvY3VtZW50UmVjdCwgY29uc3QgTGF5b3V0U2l6ZSYgdW5vYnNjdXJlZENvbnRl
bnRTaXplLCBjb25zdCBMYXlvdXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3QsIGNvbnN0IExh
eW91dFNpemUmIGJhc2VMYXlvdXRWaWV3cG9ydFNpemUsIGNvbnN0IExheW91dFBvaW50JiBzdGFi
bGVMYXlvdXRWaWV3cG9ydE9yaWdpbk1pbiwgY29uc3QgTGF5b3V0UG9pbnQmIHN0YWJsZUxheW91
dFZpZXdwb3J0T3JpZ2luTWF4LCBMYXlvdXRWaWV3cG9ydENvbnN0cmFpbnQgY29uc3RyYWludCkK
K3sKKyAgICBMYXlvdXRSZWN0IGxheW91dFZpZXdwb3J0UmVjdCA9IGxheW91dFZpZXdwb3J0Owor
ICAgIAorICAgIC8vIFRoZSBsYXlvdXQgdmlld3BvcnQgaXMgbmV2ZXIgc21hbGxlciB0aGFuIGJh
c2VMYXlvdXRWaWV3cG9ydFNpemUsIGFuZCBuZXZlciBiZSBzbWFsbGVyIHRoYW4gdGhlIHVub2Jz
Y3VyZWRDb250ZW50UmVjdC4KKyAgICBMYXlvdXRTaXplIGNvbnN0cmFpbmVkU2l6ZSA9IGJhc2VM
YXlvdXRWaWV3cG9ydFNpemU7CisgICAgbGF5b3V0Vmlld3BvcnRSZWN0LnNldFNpemUoY29uc3Ry
YWluZWRTaXplLmV4cGFuZGVkVG8odW5vYnNjdXJlZENvbnRlbnRTaXplKSk7CisgICAgICAgIAor
ICAgIExheW91dFBvaW50IGxheW91dFZpZXdwb3J0T3JpZ2luID0gY29tcHV0ZUxheW91dFZpZXdw
b3J0T3JpZ2luKHVub2JzY3VyZWRDb250ZW50UmVjdCwgc3RhYmxlTGF5b3V0Vmlld3BvcnRPcmln
aW5NaW4sIHN0YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luTWF4LCBsYXlvdXRWaWV3cG9ydFJlY3Qs
IFN0aWNrVG9WaWV3cG9ydEJvdW5kcyk7CisgICAgICAgIAorICAgIGlmIChjb25zdHJhaW50ID09
IExheW91dFZpZXdwb3J0Q29uc3RyYWludDo6Q29uc3RyYWluZWRUb0RvY3VtZW50UmVjdCkgewor
ICAgICAgICAvLyBUaGUgbWF4IHN0YWJsZSBsYXlvdXQgdmlld3BvcnQgb3JpZ2luIHJlYWxseSBk
ZXBlbmRzIG9uIHRoZSBzaXplIG9mIHRoZSBsYXlvdXQgdmlld3BvcnQgaXRzZWxmLCBzbyB3ZSBu
ZWVkIHRvIGFkanVzdCB0aGUgbG9jYXRpb24gb2YgdGhlIGxheW91dCB2aWV3cG9ydCBvbmUgZmlu
YWwgdGltZSB0byBtYWtlIHN1cmUgaXQgZG9lcyBub3QgZW5kIHVwIG91dCBvZiBib3VuZHMgb2Yg
dGhlIGRvY3VtZW50LgorICAgICAgICAvLyBXaXRob3V0IHRoaXMgYWRqdXN0bWVudCAoYW5kIHdp
dGggdXNpbmcgdGhlIG5vbi1jb25zdHJhaW5lZCB1bm9ic2N1cmVkQ29udGVudFJlY3QncyBzaXpl
IGFzIHRoZSBzaXplIG9mIHRoZSBsYXlvdXQgdmlld3BvcnQpIHRoZSBsYXlvdXQgdmlld3BvcnQg
Y2FuIGJlIHB1c2hlZCBwYXN0IHRoZSBib3VuZHMgb2YgdGhlIGRvY3VtZW50IGR1cmluZyBydWJi
ZXItYmFuZGluZywgYW5kIGNhbm5vdCBiZSBwdXNoZWQKKyAgICAgICAgLy8gYmFjayBpbiB1bnRp
bCB0aGUgdXNlciBzY3JvbGxzIGJhY2sgaW4gdGhlIG90aGVyIGRpcmVjdGlvbi4KKyAgICAgICAg
bGF5b3V0Vmlld3BvcnRPcmlnaW4uc2V0WChjbGFtcFRvPGZsb2F0PihsYXlvdXRWaWV3cG9ydE9y
aWdpbi54KCksIDAsIGRvY3VtZW50UmVjdC53aWR0aCgpIC0gbGF5b3V0Vmlld3BvcnRSZWN0Lndp
ZHRoKCkpKTsKKyAgICAgICAgbGF5b3V0Vmlld3BvcnRPcmlnaW4uc2V0WShjbGFtcFRvPGZsb2F0
PihsYXlvdXRWaWV3cG9ydE9yaWdpbi55KCksIDAsIGRvY3VtZW50UmVjdC5oZWlnaHQoKSAtIGxh
eW91dFZpZXdwb3J0UmVjdC5oZWlnaHQoKSkpOworICAgIH0KKyAgICBsYXlvdXRWaWV3cG9ydFJl
Y3Quc2V0TG9jYXRpb24obGF5b3V0Vmlld3BvcnRPcmlnaW4pOworICAgIAorICAgIHJldHVybiBs
YXlvdXRWaWV3cG9ydFJlY3Q7Cit9CisKIC8vIHZpc3VhbFZpZXdwb3J0IGFuZCBsYXlvdXRWaWV3
cG9ydCBhcmUgYm90aCBpbiBjb250ZW50IGNvb3JkaW5hdGVzICh1bnpvb21lZCkuCiBMYXlvdXRQ
b2ludCBGcmFtZVZpZXc6OmNvbXB1dGVMYXlvdXRWaWV3cG9ydE9yaWdpbihjb25zdCBMYXlvdXRS
ZWN0JiB2aXN1YWxWaWV3cG9ydCwgY29uc3QgTGF5b3V0UG9pbnQmIHN0YWJsZUxheW91dFZpZXdw
b3J0T3JpZ2luTWluLCBjb25zdCBMYXlvdXRQb2ludCYgc3RhYmxlTGF5b3V0Vmlld3BvcnRPcmln
aW5NYXgsIGNvbnN0IExheW91dFJlY3QmIGxheW91dFZpZXdwb3J0LCBTY3JvbGxCZWhhdmlvckZv
ckZpeGVkRWxlbWVudHMgZml4ZWRCZWhhdmlvcikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmlu
ZGV4IGIxNGZlZjMzYjc0NjI2NjgyM2Q4MzQ1MDRiYjZhN2Q3NDU2MmYzNTkuLjE5MGI3ZDVhMTNh
ZjQ0ODQ1MWEwMDQyODQzZWU1NmUwZWQ0ODVlM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApA
QCAtMzA1LDcgKzMwNSwxMCBAQCBwdWJsaWM6CiAgICAgLy8gU3RhdGljIGZ1bmN0aW9uIGNhbiBi
ZSBjYWxsZWQgZnJvbSBhbm90aGVyIHRocmVhZC4KICAgICBzdGF0aWMgTGF5b3V0UG9pbnQgc2Ny
b2xsUG9zaXRpb25Gb3JGaXhlZFBvc2l0aW9uKGNvbnN0IExheW91dFJlY3QmIHZpc2libGVDb250
ZW50UmVjdCwgY29uc3QgTGF5b3V0U2l6ZSYgdG90YWxDb250ZW50c1NpemUsIGNvbnN0IExheW91
dFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgTGF5b3V0UG9pbnQmIHNjcm9sbE9yaWdpbiwg
ZmxvYXQgZnJhbWVTY2FsZUZhY3RvciwgYm9vbCBmaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVU
b0ZyYW1lLCBTY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMsIGludCBoZWFkZXJIZWlnaHQs
IGludCBmb290ZXJIZWlnaHQpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExheW91dFBv
aW50IGNvbXB1dGVMYXlvdXRWaWV3cG9ydE9yaWdpbihjb25zdCBMYXlvdXRSZWN0JiB2aXN1YWxW
aWV3cG9ydCwgY29uc3QgTGF5b3V0UG9pbnQmIHN0YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luTWlu
LCBjb25zdCBMYXlvdXRQb2ludCYgc3RhYmxlTGF5b3V0Vmlld3BvcnRPcmlnaW5NYXgsIGNvbnN0
IExheW91dFJlY3QmIGxheW91dFZpZXdwb3J0LCBTY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVu
dHMgZml4ZWRCZWhhdmlvcik7CisgICAgZW51bSBjbGFzcyBMYXlvdXRWaWV3cG9ydENvbnN0cmFp
bnQgeyBDb25zdHJhaW5lZFRvRG9jdW1lbnRSZWN0LCBVbmNvbnN0cmFpbmVkIH07CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIExheW91dFJlY3QgY29tcHV0ZVVwZGF0ZWRMYXlvdXRWaWV3cG9y
dFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgbGF5b3V0Vmlld3BvcnQsIGNvbnN0IExheW91dFJlY3Qm
IGRvY3VtZW50UmVjdCwgY29uc3QgTGF5b3V0U2l6ZSYgdW5vYnNjdXJlZENvbnRlbnRTaXplLCBj
b25zdCBMYXlvdXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3QsIGNvbnN0IExheW91dFNpemUm
IGJhc2VMYXlvdXRWaWV3cG9ydFNpemUsIGNvbnN0IExheW91dFBvaW50JiBzdGFibGVMYXlvdXRW
aWV3cG9ydE9yaWdpbk1pbiwgY29uc3QgTGF5b3V0UG9pbnQmIHN0YWJsZUxheW91dFZpZXdwb3J0
T3JpZ2luTWF4LCBMYXlvdXRWaWV3cG9ydENvbnN0cmFpbnQpOworICAgIAorICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBMYXlvdXRQb2ludCBjb21wdXRlTGF5b3V0Vmlld3BvcnRPcmlnaW4oY29u
c3QgTGF5b3V0UmVjdCYgdmlzdWFsVmlld3BvcnQsIGNvbnN0IExheW91dFBvaW50JiBzdGFibGVM
YXlvdXRWaWV3cG9ydE9yaWdpbk1pbiwgY29uc3QgTGF5b3V0UG9pbnQmIHN0YWJsZUxheW91dFZp
ZXdwb3J0T3JpZ2luTWF4LCBjb25zdCBMYXlvdXRSZWN0JiBsYXlvdXRWaWV3cG9ydCwgU2Nyb2xs
QmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRzKTsKIAogICAgIC8vIFRoZXNlIGxheWVycyBhcmUgcG9z
aXRpb25lZCBkaWZmZXJlbnRseSB3aGVuIHRoZXJlIGlzIGEgdG9wQ29udGVudEluc2V0LCBhIGhl
YWRlciwgb3IgYSBmb290ZXIuIFRoZXNlIHZhbHVlIG5lZWQgdG8gYmUgY29tcHV0ZWQKICAgICAv
LyBvbiBib3RoIHRoZSBtYWluIHRocmVhZCBhbmQgdGhlIHNjcm9sbGluZyB0aHJlYWQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZGQ5M2QwMmNhMzY2ZTZlYTE5
YTg5ODYwNWJiM2QwMzNkMzgyNDc5Ny4uNmI1NmQxNTUyZjAxMDBjYmU4OTEzNTUzYmQ4ODAxMDEz
MzFlZmY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTcs
MTcgKzU3LDE4IEBACiAjaW5jbHVkZSAiV2ViUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmgiCiAj
aW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcmVm
ZXJlbmNlcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUvQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg+IC8v
IEZJWE1FOiBOZWVkZWQgYnkgV2ViUGFnZVByb3h5TWVzc2FnZXMuaCBmb3IgRElDVEFUSU9OX0FM
VEVSTkFUSVZFUy4KICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IldlYlBvcHVwTWVudVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tl
ci5oIgogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2llcy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQWN0
aXZpdHlTdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg+
IC8vIEZJWE1FOiBOZWVkZWQgYnkgV2ViUGFnZVByb3h5TWVzc2FnZXMuaCBmb3IgRElDVEFUSU9O
X0FMVEVSTkFUSVZFUy4KICNpbmNsdWRlIDxXZWJDb3JlL0F1dG9wbGF5RXZlbnQuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0NvbG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnQWN0aW9ucy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRXZlbnRUcmFja2luZ1JlZ2lvbnMuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvSGl0VGVzdFJlc3VsdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFQcm9kdWNlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgpAQCAtNDk5LDggKzUwMCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoY29uc3QgVmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYpOwogICAgIHZvaWQgcmVzZW5kTGFzdFZpc2libGVD
b250ZW50UmVjdHMoKTsKIAotICAgIGVudW0gY2xhc3MgVW5vYnNjdXJlZFJlY3RDb25zdHJhaW50
IHsgQ29uc3RyYWluZWRUb0RvY3VtZW50UmVjdCwgVW5jb25zdHJhaW5lZCB9OwotICAgIFdlYkNv
cmU6OkZsb2F0UmVjdCBjb21wdXRlQ3VzdG9tRml4ZWRQb3NpdGlvblJlY3QoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5kcywgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBjdXJyZW50Q3VzdG9tRml4ZWRQb3NpdGlvblJlY3QsIGRv
dWJsZSBkaXNwbGF5ZWRDb250ZW50U2NhbGUsIFVub2JzY3VyZWRSZWN0Q29uc3RyYWludCA9IFVu
b2JzY3VyZWRSZWN0Q29uc3RyYWludDo6VW5jb25zdHJhaW5lZCwgYm9vbCB2aXN1YWxWaWV3cG9y
dEVuYWJsZWQgPSBmYWxzZSkgY29uc3Q7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbXB1dGVD
dXN0b21GaXhlZFBvc2l0aW9uUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3Vy
ZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVu
dFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IGN1cnJlbnRDdXN0b21GaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIGRpc3BsYXllZENvbnRlbnRT
Y2FsZSwgV2ViQ29yZTo6RnJhbWVWaWV3OjpMYXlvdXRWaWV3cG9ydENvbnN0cmFpbnQgPSBXZWJD
b3JlOjpGcmFtZVZpZXc6OkxheW91dFZpZXdwb3J0Q29uc3RyYWludDo6VW5jb25zdHJhaW5lZCwg
Ym9vbCB2aXN1YWxWaWV3cG9ydEVuYWJsZWQgPSBmYWxzZSkgY29uc3Q7CiAKICAgICB2b2lkIG92
ZXJmbG93U2Nyb2xsVmlld1dpbGxTdGFydFBhbkdlc3R1cmUoKTsKICAgICB2b2lkIG92ZXJmbG93
U2Nyb2xsVmlld0RpZFNjcm9sbCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1t
CmluZGV4IGRiOTJmMTM1Y2I4ODRhNGIxMWIzMjRjMjU5ZTlhYzViY2EzMDc1YzUuLjFkZWJhZGQ0
ZGNmZTZjOTk1OTI1MWZlNmZjNmQzNjQ4MDhiNjQ2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHlJT1MubW0KQEAgLTk2LDcgKzk2LDcgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5Ojpjb25uZWN0U3RhdGVOb2RlTGF5ZXJzKFNjcm9sbGluZ1N0YXRlVHJlZSYK
IEZsb2F0UmVjdCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpjdXN0b21GaXhlZFBv
c2l0aW9uUmVjdCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fd2ViUGFnZVByb3h5LmNvbXB1dGVD
dXN0b21GaXhlZFBvc2l0aW9uUmVjdChtX3dlYlBhZ2VQcm94eS51bm9ic2N1cmVkQ29udGVudFJl
Y3QoKSwgbV93ZWJQYWdlUHJveHkudW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0
Vmlld0JvdW5kcygpLCBtX3dlYlBhZ2VQcm94eS5jdXN0b21GaXhlZFBvc2l0aW9uUmVjdCgpLAot
ICAgICAgICBtX3dlYlBhZ2VQcm94eS5kaXNwbGF5ZWRDb250ZW50U2NhbGUoKSwgV2ViUGFnZVBy
b3h5OjpVbm9ic2N1cmVkUmVjdENvbnN0cmFpbnQ6OlVuY29uc3RyYWluZWQsIHZpc3VhbFZpZXdw
b3J0RW5hYmxlZCgpKTsKKyAgICAgICAgbV93ZWJQYWdlUHJveHkuZGlzcGxheWVkQ29udGVudFNj
YWxlKCksIEZyYW1lVmlldzo6TGF5b3V0Vmlld3BvcnRDb25zdHJhaW50OjpVbmNvbnN0cmFpbmVk
LCB2aXN1YWxWaWV3cG9ydEVuYWJsZWQoKSk7CiB9CiAKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5vZGVXaWxsU3RhcnRQYW5HZXN0dXJlKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRleCBjOGUx
MTBhOTFmN2Y3NDUwNGU3NGI1NjQ5YzE2YzA0MTI1YzcwYjZhLi40MzYzNTBkMTE2MzhjMzIxYjA3
N2QwYzE3ZjUxOTZkMDU0NGUyOWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3Lm1tCkBAIC00MDYsNyArNDA2LDcgQEAgLSAodm9pZClkaWRVcGRhdGVW
aXNpYmxlUmVjdDooQ0dSZWN0KXZpc2libGVDb250ZW50UmVjdAogICAgIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gX3BhZ2UtPnNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkoKTsKIAogICAgIENHUmVjdCB1bm9ic2N1cmVkQ29udGVudFJlY3RS
ZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzID0gW3NlbGYgX2NvbXB1dGVVbm9ic2N1cmVkQ29udGVu
dFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzOnVub2JzY3VyZWRDb250ZW50UmVjdCBpbnB1
dFZpZXdCb3VuZHM6aW5wdXRWaWV3Qm91bmRzXTsKLSAgICBGbG9hdFJlY3QgZml4ZWRQb3NpdGlv
blJlY3RGb3JMYXlvdXQgPSBfcGFnZS0+Y29tcHV0ZUN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KHVu
b2JzY3VyZWRDb250ZW50UmVjdCwgdW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0
Vmlld0JvdW5kcywgX3BhZ2UtPmN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KCksIHpvb21TY2FsZSwg
V2ViUGFnZVByb3h5OjpVbm9ic2N1cmVkUmVjdENvbnN0cmFpbnQ6OkNvbnN0cmFpbmVkVG9Eb2N1
bWVudFJlY3QsIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT52aXN1YWxWaWV3cG9ydEVuYWJsZWQoKSk7
CisgICAgRmxvYXRSZWN0IGZpeGVkUG9zaXRpb25SZWN0Rm9yTGF5b3V0ID0gX3BhZ2UtPmNvbXB1
dGVDdXN0b21GaXhlZFBvc2l0aW9uUmVjdCh1bm9ic2N1cmVkQ29udGVudFJlY3QsIHVub2JzY3Vy
ZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMsIF9wYWdlLT5jdXN0b21GaXhl
ZFBvc2l0aW9uUmVjdCgpLCB6b29tU2NhbGUsIEZyYW1lVmlldzo6TGF5b3V0Vmlld3BvcnRDb25z
dHJhaW50OjpDb25zdHJhaW5lZFRvRG9jdW1lbnRSZWN0LCBzY3JvbGxpbmdDb29yZGluYXRvci0+
dmlzdWFsVmlld3BvcnRFbmFibGVkKCkpOwogCiAgICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRl
SW5mbyB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKAogICAgICAgICB2aXNpYmxlQ29udGVu
dFJlY3QsCkBAIC00MzUsNyArNDM1LDcgQEAgLSAodm9pZClkaWRVcGRhdGVWaXNpYmxlUmVjdDoo
Q0dSZWN0KXZpc2libGVDb250ZW50UmVjdAogCiAgICAgX3NpemVDaGFuZ2VkU2luY2VMYXN0Vmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlID0gTk87CiAKLSAgICBGbG9hdFJlY3QgZml4ZWRQb3NpdGlv
blJlY3QgPSBfcGFnZS0+Y29tcHV0ZUN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KF9wYWdlLT51bm9i
c2N1cmVkQ29udGVudFJlY3QoKSwgX3BhZ2UtPnVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3Rp
bmdJbnB1dFZpZXdCb3VuZHMoKSwgX3BhZ2UtPmN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KCksIHpv
b21TY2FsZSwgV2ViUGFnZVByb3h5OjpVbm9ic2N1cmVkUmVjdENvbnN0cmFpbnQ6OlVuY29uc3Ry
YWluZWQsIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT52aXN1YWxWaWV3cG9ydEVuYWJsZWQoKSk7Cisg
ICAgRmxvYXRSZWN0IGZpeGVkUG9zaXRpb25SZWN0ID0gX3BhZ2UtPmNvbXB1dGVDdXN0b21GaXhl
ZFBvc2l0aW9uUmVjdChfcGFnZS0+dW5vYnNjdXJlZENvbnRlbnRSZWN0KCksIF9wYWdlLT51bm9i
c2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzKCksIF9wYWdlLT5jdXN0
b21GaXhlZFBvc2l0aW9uUmVjdCgpLCB6b29tU2NhbGUsIEZyYW1lVmlldzo6TGF5b3V0Vmlld3Bv
cnRDb25zdHJhaW50OjpVbmNvbnN0cmFpbmVkLCBzY3JvbGxpbmdDb29yZGluYXRvci0+dmlzdWFs
Vmlld3BvcnRFbmFibGVkKCkpOwogICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT52aWV3cG9ydENo
YW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnJvb3RTY3Jv
bGxpbmdOb2RlSUQoKSwgZml4ZWRQb3NpdGlvblJlY3QsIHpvb21TY2FsZSk7CiAKICAgICBkcmF3
aW5nQXJlYS0+dXBkYXRlRGVidWdJbmRpY2F0b3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggNDdhZTZiMzFhMTE4M2VlZmI2NDM5
YTVlMmMyNjA4ODljMDhkNTZkOC4uY2ZkMWUyMzM4N2Y2YjdhNjE4NGRlYmQ4NDcyODQ1ZDk1ZGYz
Y2FlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJ
T1MubW0KQEAgLTIzMSw3ICsyMzEsNyBAQCBzdGF0aWMgaW5saW5lIGZsb2F0IGFkanVzdGVkVW5l
eHBvc2VkTWF4RWRnZShmbG9hdCBkb2N1bWVudEVkZ2UsIGZsb2F0IGV4cG9zZWRSZQogfQogCiAv
LyBGSVhNRTogcmVuYW1lIHRoaXMgd2hlbiB2aXN1YWwgdmlld3BvcnRzIGFyZSB0aGUgZGVmYXVs
dC4KLVdlYkNvcmU6OkZsb2F0UmVjdCBXZWJQYWdlUHJveHk6OmNvbXB1dGVDdXN0b21GaXhlZFBv
c2l0aW9uUmVjdChjb25zdCBGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRz
LCBjb25zdCBGbG9hdFJlY3QmIGN1cnJlbnRDdXN0b21GaXhlZFBvc2l0aW9uUmVjdCwgZG91Ymxl
IGRpc3BsYXllZENvbnRlbnRTY2FsZSwgVW5vYnNjdXJlZFJlY3RDb25zdHJhaW50IGNvbnN0cmFp
bnQsIGJvb2wgdmlzdWFsVmlld3BvcnRFbmFibGVkKSBjb25zdAorV2ViQ29yZTo6RmxvYXRSZWN0
IFdlYlBhZ2VQcm94eTo6Y29tcHV0ZUN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KGNvbnN0IEZsb2F0
UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHVub2JzY3VyZWRD
b250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMsIGNvbnN0IEZsb2F0UmVjdCYgY3Vy
cmVudEN1c3RvbUZpeGVkUG9zaXRpb25SZWN0LCBkb3VibGUgZGlzcGxheWVkQ29udGVudFNjYWxl
LCBGcmFtZVZpZXc6OkxheW91dFZpZXdwb3J0Q29uc3RyYWludCBjb25zdHJhaW50LCBib29sIHZp
c3VhbFZpZXdwb3J0RW5hYmxlZCkgY29uc3QKIHsKICAgICBGbG9hdFJlY3QgY29uc3RyYWluZWRV
bm9ic2N1cmVkUmVjdCA9IHVub2JzY3VyZWRDb250ZW50UmVjdDsKICAgICBGbG9hdFJlY3QgZG9j
dW1lbnRSZWN0ID0gbV9wYWdlQ2xpZW50LmRvY3VtZW50UmVjdCgpOwpAQCAtMjM5LDcgKzIzOSw3
IEBAIFdlYkNvcmU6OkZsb2F0UmVjdCBXZWJQYWdlUHJveHk6OmNvbXB1dGVDdXN0b21GaXhlZFBv
c2l0aW9uUmVjdChjb25zdCBGbG9hdFJlY3QmCiAgICAgaWYgKCF2aXN1YWxWaWV3cG9ydEVuYWJs
ZWQgJiYgbV9wYWdlQ2xpZW50LmlzQXNzaXN0aW5nTm9kZSgpKQogICAgICAgICByZXR1cm4gZG9j
dW1lbnRSZWN0OwogCi0gICAgaWYgKGNvbnN0cmFpbnQgPT0gVW5vYnNjdXJlZFJlY3RDb25zdHJh
aW50OjpDb25zdHJhaW5lZFRvRG9jdW1lbnRSZWN0KQorICAgIGlmIChjb25zdHJhaW50ID09IEZy
YW1lVmlldzo6TGF5b3V0Vmlld3BvcnRDb25zdHJhaW50OjpDb25zdHJhaW5lZFRvRG9jdW1lbnRS
ZWN0KQogICAgICAgICBjb25zdHJhaW5lZFVub2JzY3VyZWRSZWN0LmludGVyc2VjdChkb2N1bWVu
dFJlY3QpOwogCiAgICAgZG91YmxlIG1pbmltdW1TY2FsZSA9IG1fcGFnZUNsaWVudC5taW5pbXVt
Wm9vbVNjYWxlKCk7CkBAIC0yNTMsMzMgKzI1MywxNCBAQCBXZWJDb3JlOjpGbG9hdFJlY3QgV2Vi
UGFnZVByb3h5Ojpjb21wdXRlQ3VzdG9tRml4ZWRQb3NpdGlvblJlY3QoY29uc3QgRmxvYXRSZWN0
JgogICAgICAgICBjb25zdHJhaW5lZFVub2JzY3VyZWRSZWN0LnNldFdpZHRoKGFkanVzdGVkVW5l
eHBvc2VkTWF4RWRnZShkb2N1bWVudFJlY3QubWF4WCgpLCBjb25zdHJhaW5lZFVub2JzY3VyZWRS
ZWN0Lm1heFgoKSwgZmFjdG9yKSAtIGNvbnN0cmFpbmVkVW5vYnNjdXJlZFJlY3QueCgpKTsKICAg
ICAgICAgY29uc3RyYWluZWRVbm9ic2N1cmVkUmVjdC5zZXRIZWlnaHQoYWRqdXN0ZWRVbmV4cG9z
ZWRNYXhFZGdlKGRvY3VtZW50UmVjdC5tYXhZKCksIGNvbnN0cmFpbmVkVW5vYnNjdXJlZFJlY3Qu
bWF4WSgpLCBmYWN0b3IpIC0gY29uc3RyYWluZWRVbm9ic2N1cmVkUmVjdC55KCkpOwogICAgIH0K
LSAgICAKKwogICAgIGlmICghdmlzdWFsVmlld3BvcnRFbmFibGVkKQogICAgICAgICByZXR1cm4g
RnJhbWVWaWV3OjpyZWN0Rm9yVmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMoZW5jbG9zaW5nTGF5
b3V0UmVjdChjb25zdHJhaW5lZFVub2JzY3VyZWRSZWN0KSwgTGF5b3V0U2l6ZShkb2N1bWVudFJl
Y3Quc2l6ZSgpKSwgZGlzcGxheWVkQ29udGVudFNjYWxlLCBmYWxzZSwgU3RpY2tUb1ZpZXdwb3J0
Qm91bmRzKTsKLQotICAgIEZsb2F0UmVjdCBsYXlvdXRWaWV3cG9ydFJlY3QgPSBjdXJyZW50Q3Vz
dG9tRml4ZWRQb3NpdGlvblJlY3Q7Ci0KLSAgICAvLyBUaGUgbGF5b3V0IHZpZXdwb3J0IGlzIG5l
dmVyIHNtYWxsZXIgdGhhbiBtX2Jhc2VMYXlvdXRWaWV3cG9ydFNpemUsIGFuZCBuZXZlciBiZSBz
bWFsbGVyIHRoYW4gdGhlIGNvbnN0cmFpbmVkVW5vYnNjdXJlZFJlY3QuCi0gICAgRmxvYXRTaXpl
IGNvbnN0cmFpbmVkU2l6ZSA9IG1fYmFzZUxheW91dFZpZXdwb3J0U2l6ZTsKLSAgICBpZiAoaXNC
ZWxvd01pbmltdW1TY2FsZSkKLSAgICAgICAgbGF5b3V0Vmlld3BvcnRSZWN0LnNldFNpemUoY29u
c3RyYWluZWRTaXplLmV4cGFuZGVkVG8oY29uc3RyYWluZWRVbm9ic2N1cmVkUmVjdC5zaXplKCkp
KTsKLSAgICBlbHNlCi0gICAgICAgIGxheW91dFZpZXdwb3J0UmVjdC5zZXRTaXplKGNvbnN0cmFp
bmVkU2l6ZS5leHBhbmRlZFRvKHVub2JzY3VyZWRDb250ZW50UmVjdC5zaXplKCkpKTsKLQotICAg
IExheW91dFBvaW50IGxheW91dFZpZXdwb3J0T3JpZ2luOwotICAgIGlmIChpc0JlbG93TWluaW11
bVNjYWxlKQotICAgICAgICBsYXlvdXRWaWV3cG9ydE9yaWdpbiA9IEZyYW1lVmlldzo6Y29tcHV0
ZUxheW91dFZpZXdwb3J0T3JpZ2luKGVuY2xvc2luZ0xheW91dFJlY3QoY29uc3RyYWluZWRVbm9i
c2N1cmVkUmVjdCksIG1fbWluU3RhYmxlTGF5b3V0Vmlld3BvcnRPcmlnaW4sIG1fbWF4U3RhYmxl
TGF5b3V0Vmlld3BvcnRPcmlnaW4sIGVuY2xvc2luZ0xheW91dFJlY3QobGF5b3V0Vmlld3BvcnRS
ZWN0KSwgU3RpY2tUb1ZpZXdwb3J0Qm91bmRzKTsKLSAgICBlbHNlCi0gICAgICAgIGxheW91dFZp
ZXdwb3J0T3JpZ2luID0gRnJhbWVWaWV3Ojpjb21wdXRlTGF5b3V0Vmlld3BvcnRPcmlnaW4oZW5j
bG9zaW5nTGF5b3V0UmVjdCh1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3
Qm91bmRzKSwgbV9taW5TdGFibGVMYXlvdXRWaWV3cG9ydE9yaWdpbiwgbV9tYXhTdGFibGVMYXlv
dXRWaWV3cG9ydE9yaWdpbiwgZW5jbG9zaW5nTGF5b3V0UmVjdChsYXlvdXRWaWV3cG9ydFJlY3Qp
LCBTdGlja1RvVmlld3BvcnRCb3VuZHMpOwotCi0gICAgaWYgKGNvbnN0cmFpbnQgPT0gVW5vYnNj
dXJlZFJlY3RDb25zdHJhaW50OjpDb25zdHJhaW5lZFRvRG9jdW1lbnRSZWN0KSB7Ci0gICAgICAg
IC8vIFRoZSBtYXggc3RhYmxlIGxheW91dCB2aWV3cG9ydCBvcmlnaW4gcmVhbGx5IGRlcGVuZHMg
b24gdGhlIHNpemUgb2YgdGhlIGxheW91dCB2aWV3cG9ydCBpdHNlbGYsIHNvIHdlIG5lZWQgdG8g
YWRqdXN0IHRoZSBsb2NhdGlvbiBvZiB0aGUgbGF5b3V0IHZpZXdwb3J0IG9uZSBmaW5hbCB0aW1l
IHRvIG1ha2Ugc3VyZSBpdCBkb2VzIG5vdCBlbmQgdXAgb3V0IG9mIGJvdW5kcyBvZiB0aGUgZG9j
dW1lbnQuCi0gICAgICAgIC8vIFdpdGhvdXQgdGhpcyBhZGp1c3RtZW50IChhbmQgd2l0aCB1c2lu
ZyB0aGUgbm9uLWNvbnN0cmFpbmVkIHVub2JzY3VyZWRDb250ZW50UmVjdCdzIHNpemUgYXMgdGhl
IHNpemUgb2YgdGhlIGxheW91dCB2aWV3cG9ydCkgdGhlIGxheW91dCB2aWV3cG9ydCBjYW4gYmUg
cHVzaGVkIHBhc3QgdGhlIGJvdW5kcyBvZiB0aGUgZG9jdW1lbnQgZHVyaW5nIHJ1YmJlci1iYW5k
aW5nLCBhbmQgY2Fubm90IGJlIHB1c2hlZAotICAgICAgICAvLyBiYWNrIGluIHVudGlsIHRoZSB1
c2VyIHNjcm9sbHMgYmFjayBpbiB0aGUgb3RoZXIgZGlyZWN0aW9uLgotICAgICAgICBsYXlvdXRW
aWV3cG9ydE9yaWdpbi5zZXRYKGNsYW1wVG88ZmxvYXQ+KGxheW91dFZpZXdwb3J0T3JpZ2luLngo
KSwgMCwgZG9jdW1lbnRSZWN0LndpZHRoKCkgLSBsYXlvdXRWaWV3cG9ydFJlY3Qud2lkdGgoKSkp
OwotICAgICAgICBsYXlvdXRWaWV3cG9ydE9yaWdpbi5zZXRZKGNsYW1wVG88ZmxvYXQ+KGxheW91
dFZpZXdwb3J0T3JpZ2luLnkoKSwgMCwgZG9jdW1lbnRSZWN0LmhlaWdodCgpIC0gbGF5b3V0Vmll
d3BvcnRSZWN0LmhlaWdodCgpKSk7Ci0gICAgfQotICAgIGxheW91dFZpZXdwb3J0UmVjdC5zZXRM
b2NhdGlvbihsYXlvdXRWaWV3cG9ydE9yaWdpbik7CisgICAgICAgIAorICAgIEZsb2F0U2l6ZSBj
b25zdGFpbmVkU2l6ZSA9IGlzQmVsb3dNaW5pbXVtU2NhbGUgPyBjb25zdHJhaW5lZFVub2JzY3Vy
ZWRSZWN0LnNpemUoKSA6IHVub2JzY3VyZWRDb250ZW50UmVjdC5zaXplKCk7CisgICAgRmxvYXRS
ZWN0IHVub2JzY3VyZWRDb250ZW50UmVjdEZvclZpZXdwb3J0ID0gaXNCZWxvd01pbmltdW1TY2Fs
ZSA/IGNvbnN0cmFpbmVkVW5vYnNjdXJlZFJlY3QgOiB1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNw
ZWN0aW5nSW5wdXRWaWV3Qm91bmRzOworICAgIAorICAgIEZsb2F0UmVjdCBsYXlvdXRWaWV3cG9y
dFJlY3QgPSBGcmFtZVZpZXc6OmNvbXB1dGVVcGRhdGVkTGF5b3V0Vmlld3BvcnRSZWN0KExheW91
dFJlY3QoY3VycmVudEN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KSwgTGF5b3V0UmVjdChkb2N1bWVu
dFJlY3QpLCBMYXlvdXRTaXplKGNvbnN0YWluZWRTaXplKSwgTGF5b3V0UmVjdCh1bm9ic2N1cmVk
Q29udGVudFJlY3RGb3JWaWV3cG9ydCksIG1fYmFzZUxheW91dFZpZXdwb3J0U2l6ZSwgbV9taW5T
dGFibGVMYXlvdXRWaWV3cG9ydE9yaWdpbiwgbV9tYXhTdGFibGVMYXlvdXRWaWV3cG9ydE9yaWdp
biwgY29uc3RyYWludCk7CiAgICAgCiAgICAgaWYgKGxheW91dFZpZXdwb3J0UmVjdCAhPSBjdXJy
ZW50Q3VzdG9tRml4ZWRQb3NpdGlvblJlY3QpCiAgICAgICAgIExPR19XSVRIX1NUUkVBTShWaXNp
YmxlUmVjdHMsIHN0cmVhbSA8PCAiV2ViUGFnZVByb3h5Ojpjb21wdXRlQ3VzdG9tRml4ZWRQb3Np
dGlvblJlY3Q6IG5ldyBsYXlvdXQgdmlld3BvcnQgICIgPDwgbGF5b3V0Vmlld3BvcnRSZWN0KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCBmYTNjOWE4NmNlODM2MDZhZjIwNjIw
YjFmNjYwZjFkMmNmODViOTU0Li5hMWIyMjk5OTQ3ZmIxMjU3YzhlZTNjYzI1YjczNTliNTNmMWZl
Njc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0yMDMsNyArMjAzLDcgQEAg
dm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUoY29u
c3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnMKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKG1fd2Vi
UGFnZVByb3h5LnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKS0+aGFzRml4ZWRPclN0aWNreSgp
KSB7CiAgICAgICAgIC8vIElmIHdlIGdvdCBhIG5ldyBsYXllciBmb3IgYSBmaXhlZCBvciBzdGlj
a3kgbm9kZSwgaXRzIHBvc2l0aW9uIGZyb20gdGhlIFdlYlByb2Nlc3MgaXMgcHJvYmFibHkgc3Rh
bGUuIFdlIG5lZWQgdG8gcmUtcnVuIHRoZSAidmlld3BvcnQiIGNoYW5nZWQgbG9naWMgdG8gdWRw
YXRlIGl0IHdpdGggb3VyIFVJLXNpZGUgc3RhdGUuCi0gICAgICAgIEZsb2F0UmVjdCBjdXN0b21G
aXhlZFBvc2l0aW9uUmVjdCA9IG1fd2ViUGFnZVByb3h5LmNvbXB1dGVDdXN0b21GaXhlZFBvc2l0
aW9uUmVjdChtX3dlYlBhZ2VQcm94eS51bm9ic2N1cmVkQ29udGVudFJlY3QoKSwgbV93ZWJQYWdl
UHJveHkudW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5kcygpLCBt
X3dlYlBhZ2VQcm94eS5jdXN0b21GaXhlZFBvc2l0aW9uUmVjdCgpLCBtX3dlYlBhZ2VQcm94eS5k
aXNwbGF5ZWRDb250ZW50U2NhbGUoKSwgV2ViUGFnZVByb3h5OjpVbm9ic2N1cmVkUmVjdENvbnN0
cmFpbnQ6OlVuY29uc3RyYWluZWQsIG1fd2ViUGFnZVByb3h5LnNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkoKS0+dmlzdWFsVmlld3BvcnRFbmFibGVkKCkpOworICAgICAgICBGbG9hdFJlY3QgY3Vz
dG9tRml4ZWRQb3NpdGlvblJlY3QgPSBtX3dlYlBhZ2VQcm94eS5jb21wdXRlQ3VzdG9tRml4ZWRQ
b3NpdGlvblJlY3QobV93ZWJQYWdlUHJveHkudW5vYnNjdXJlZENvbnRlbnRSZWN0KCksIG1fd2Vi
UGFnZVByb3h5LnVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMo
KSwgbV93ZWJQYWdlUHJveHkuY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QoKSwgbV93ZWJQYWdlUHJv
eHkuZGlzcGxheWVkQ29udGVudFNjYWxlKCksIEZyYW1lVmlldzo6TGF5b3V0Vmlld3BvcnRDb25z
dHJhaW50OjpVbmNvbnN0cmFpbmVkLCBtX3dlYlBhZ2VQcm94eS5zY3JvbGxpbmdDb29yZGluYXRv
clByb3h5KCktPnZpc3VhbFZpZXdwb3J0RW5hYmxlZCgpKTsKICAgICAgICAgbV93ZWJQYWdlUHJv
eHkuc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpLT52aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0
ZWRTY3JvbGxpbmcobV93ZWJQYWdlUHJveHkuc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpLT5y
b290U2Nyb2xsaW5nTm9kZUlEKCksIGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0LCBtX3dlYlBhZ2VQ
cm94eS5kaXNwbGF5ZWRDb250ZW50U2NhbGUoKSk7CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXgg
NjVmMGUyYjY2YWVmNDc1ZmEzOWJmODZmNjRmMjA3NDVhNTNhN2E2Ny4uYzc0ODBmM2JmMDkzYThj
YWZmY2JiMTU1YTFjYWIwYjQ4NDhjOGIzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjk4OCw4ICsyOTg4LDE1IEBA
IHZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUm
IG1pbmltdW1MYXlvdXRTaXplLCBjb25zCiAgICAgc2NhbGVQYWdlKHNjYWxlLCByb3VuZGVkVW5v
YnNjdXJlZENvbnRlbnRSZWN0UG9zaXRpb24pOwogCiAgICAgZnJhbWVWaWV3LnVwZGF0ZUxheW91
dEFuZFN0eWxlSWZOZWVkZWRSZWN1cnNpdmUoKTsKLSAgICBJbnRSZWN0IGZpeGVkUG9zaXRpb25M
YXlvdXRSZWN0ID0gZW5jbG9zaW5nSW50UmVjdChmcmFtZVZpZXcudmlld3BvcnRDb25zdHJhaW5l
ZE9iamVjdHNSZWN0KCkpOwotICAgIGZyYW1lVmlldy5zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5
b3V0UmVjdChmaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCk7CisKKyAgICBpZiAoZnJhbWVWaWV3LmZy
YW1lKCkuc2V0dGluZ3MoKS52aXN1YWxWaWV3cG9ydEVuYWJsZWQoKSkgeworICAgICAgICBMYXlv
dXRSZWN0IGRvY3VtZW50UmVjdCA9IEludFJlY3QoZnJhbWVWaWV3LnNjcm9sbE9yaWdpbigpLCBm
cmFtZVZpZXcuY29udGVudHNTaXplKCkpOworICAgICAgICBMYXlvdXRSZWN0IGxheW91dFZpZXdw
b3J0UmVjdCA9IEZyYW1lVmlldzo6Y29tcHV0ZVVwZGF0ZWRMYXlvdXRWaWV3cG9ydFJlY3QoZnJh
bWVWaWV3LmxheW91dFZpZXdwb3J0UmVjdCgpLCBkb2N1bWVudFJlY3QsIExheW91dFNpemUobmV3
VW5vYnNjdXJlZENvbnRlbnRSZWN0LnNpemUoKSksIExheW91dFJlY3QobmV3VW5vYnNjdXJlZENv
bnRlbnRSZWN0KSwgZnJhbWVWaWV3LmJhc2VMYXlvdXRWaWV3cG9ydFNpemUoKSwgZnJhbWVWaWV3
Lm1pblN0YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luKCksIGZyYW1lVmlldy5tYXhTdGFibGVMYXlv
dXRWaWV3cG9ydE9yaWdpbigpLCBGcmFtZVZpZXc6OkxheW91dFZpZXdwb3J0Q29uc3RyYWludDo6
Q29uc3RyYWluZWRUb0RvY3VtZW50UmVjdCk7CisgICAgICAgIGZyYW1lVmlldy5zZXRMYXlvdXRW
aWV3cG9ydE92ZXJyaWRlUmVjdChsYXlvdXRWaWV3cG9ydFJlY3QpOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIEludFJlY3QgZml4ZWRQb3NpdGlvbkxheW91dFJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0
KGZyYW1lVmlldy52aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0c1JlY3QoKSk7CisgICAgICAgIGZy
YW1lVmlldy5zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdChmaXhlZFBvc2l0aW9uTGF5
b3V0UmVjdCk7CisgICAgfQogCiAgICAgZnJhbWVWaWV3LnNldEN1c3RvbVNpemVGb3JSZXNpemVF
dmVudChleHBhbmRlZEludFNpemUodGFyZ2V0VW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29y
ZGluYXRlcy5zaXplKCkpKTsKICAgICBzZXREZXZpY2VPcmllbnRhdGlvbihkZXZpY2VPcmllbnRh
dGlvbik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309316</attachid>
            <date>2017-05-06 21:24:02 -0700</date>
            <delta_ts>2017-05-07 10:49:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171140-20170506212401.patch</filename>
            <type>text/plain</type>
            <size>32601</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDllZWE0MzY3MWUyOWZh
MTljOGJhNGE3MmI0OGNmNTc0ZTgxMjBiOS4uOGQzMWUwMjRjMDFmZjIxOTFlOTUxNjE4NmEyODMz
MGIxODBiNWJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE3LTA1LTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFJFR1JF
U1NJT04gKHIyMDk0MDkpOiBnZXRCb3VuZGluZ0NsaWVudFJlY3QgaXMgd3JvbmcgZm9yIGZpeGVk
LXBvc2l0aW9uIGVsZW1lbnRzIGluIHJlc2l6ZS9vcmllbnRhdGlvbmNoYW5nZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTQwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViUGFnZTo6ZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZSgpIGlzIGNhbGxlZCBkdXJpbmcgcm90YXRpb24sIGFuZCBkb2VzIGEg
bGF5b3V0IHdoaWNoIG5lZWRzIHRvIGhhdmUKKyAgICAgICAgYW4gdXAtdG8tZGF0ZSBsYXlvdXQg
dmlld3BvcnQsIHNpbmNlIHRoZSBsYXlvdXQgdmlld3BvcnQgc3RhdGUgaXMgZGV0ZWN0YWJsZSBp
biBvcmllbnRhdGlvbmNoYW5nZSBhbmQKKyAgICAgICAgcmVzaXplIGV2ZW50cyB2aWEgZmV0Y2hp
bmcgdGhlIGNsaWVudCByZWN0IG9mIGZpeGVkIGVsZW1lbnRzLiBOb3JtYWxseSB3ZSBzZW5kIGlu
IHRoZSBsYXlvdXQgdmlld3BvcnQKKyAgICAgICAgZnJvbSB0aGUgVUkgcHJvY2VzcywgYnV0IGlu
IHRoaXMgY2FzZSB3ZSBuZWVkIHRvIGNvbXB1dGUgb25lIGluIHRoZSB3ZWIgcHJvY2Vzcy4gU28g
ZmFjdG9yIGNvZGUKKyAgICAgICAgaW50byBGcmFtZVZpZXcgdG8gZG8gdGhlIGNvbXB1dGF0aW9u
LCBjYWxsZWQgZnJvbSBib3RoIHBsYWNlcy4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVudHMv
aW9zL3JvdGF0aW9uL2xheW91dC12aWV3cG9ydC1kdXJpbmctcm90YXRpb24uaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9ldmVudHMvaW9zL3JvdGF0aW9uL2xheW91dC12aWV3cG9ydC1kdXJpbmct
c2FmYXJpLXR5cGUtcm90YXRpb24uaHRtbAorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpjb21wdXRlVXBkYXRlZExheW91dFZpZXdw
b3J0UmVjdCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKwogMjAxNy0wNS0wNiAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIyMTYzMzMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2ZjYTcwZTNmNzU5MDNjNmNjYjRmODBkNzg4
NzllN2E0NzVkNTY4Ni4uYmNhNjEwMGM5OGY5YTQ1MjRjNzlmNTc0ZjM5ODRiYTkwMmFhNzg4NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDE3LTA1LTA2ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFtpT1NdIFJFR1JFU1NJT04gKHIyMDk0
MDkpOiBnZXRCb3VuZGluZ0NsaWVudFJlY3QgaXMgd3JvbmcgZm9yIGZpeGVkLXBvc2l0aW9uIGVs
ZW1lbnRzIGluIHJlc2l6ZS9vcmllbnRhdGlvbmNoYW5nZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTQwCisgICAgICAgIHJkYXI6Ly9wcm9ibGVt
LzMxNzY1MTY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZSgpIGlzIGNhbGxlZCBkdXJpbmcg
cm90YXRpb24sIGFuZCBkb2VzIGEgbGF5b3V0IHdoaWNoIG5lZWRzIHRvIGhhdmUKKyAgICAgICAg
YW4gdXAtdG8tZGF0ZSBsYXlvdXQgdmlld3BvcnQsIHNpbmNlIHRoZSBsYXlvdXQgdmlld3BvcnQg
c3RhdGUgaXMgZGV0ZWN0YWJsZSBpbiBvcmllbnRhdGlvbmNoYW5nZSBhbmQKKyAgICAgICAgcmVz
aXplIGV2ZW50cyB2aWEgZmV0Y2hpbmcgdGhlIGNsaWVudCByZWN0IG9mIGZpeGVkIGVsZW1lbnRz
LiBOb3JtYWxseSB3ZSBzZW5kIGluIHRoZSBsYXlvdXQgdmlld3BvcnQKKyAgICAgICAgZnJvbSB0
aGUgVUkgcHJvY2VzcywgYnV0IGluIHRoaXMgY2FzZSB3ZSBuZWVkIHRvIGNvbXB1dGUgb25lIGlu
IHRoZSB3ZWIgcHJvY2Vzcy4gU28gZmFjdG9yIGNvZGUKKyAgICAgICAgaW50byBGcmFtZVZpZXcg
dG8gZG8gdGhlIGNvbXB1dGF0aW9uLCBjYWxsZWQgZnJvbSBib3RoIHBsYWNlcy4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW06CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgZGlkVXBkYXRlVmlzaWJsZVJlY3Q6dW5vYnNjdXJlZFJlY3Q6dW5vYnNjdXJl
ZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlczpvYnNjdXJlZEluc2V0czp1bm9ic2N1cmVkU2Fm
ZUFyZWFJbnNldHM6aW5wdXRWaWV3Qm91bmRzOnNjYWxlOm1pbmltdW1TY2FsZTppblN0YWJsZVN0
YXRlOmlzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHk6ZW5jbG9zZWRJblNjcm9s
bGFibGVBbmNlc3RvclZpZXc6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tcHV0ZUN1c3RvbUZp
eGVkUG9zaXRpb25SZWN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJlZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkeW5h
bWljVmlld3BvcnRTaXplVXBkYXRlKToKKworMjAxNy0wNS0wNiAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KKwogICAgICAgICBbaU9TIFdLMl0gTWFrZSByb3RhdGlvbiB0
ZXN0cyBtb3JlIHJlbGlhYmxlCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzE3NzgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDgxMjJk
NzcxOTM3ODE0ZjZkOGY3ZTU3ODI5YWVlZjJiMjFmMjIwMjEuLjdlMTcyZWZlNjE4YTlkMGNiOWFk
MmMwOTM1MDY3NmZmNGYyYjg4MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTE4
MTEsNiArMTgxMSwyOCBAQCB2b2lkIEZyYW1lVmlldzo6cmVtb3ZlVmlld3BvcnRDb25zdHJhaW5l
ZE9iamVjdChSZW5kZXJFbGVtZW50KiBvYmplY3QpCiAgICAgfQogfQogCitMYXlvdXRSZWN0IEZy
YW1lVmlldzo6Y29tcHV0ZVVwZGF0ZWRMYXlvdXRWaWV3cG9ydFJlY3QoY29uc3QgTGF5b3V0UmVj
dCYgbGF5b3V0Vmlld3BvcnQsIGNvbnN0IExheW91dFJlY3QmIGRvY3VtZW50UmVjdCwgY29uc3Qg
TGF5b3V0U2l6ZSYgdW5vYnNjdXJlZENvbnRlbnRTaXplLCBjb25zdCBMYXlvdXRSZWN0JiB1bm9i
c2N1cmVkQ29udGVudFJlY3QsIGNvbnN0IExheW91dFNpemUmIGJhc2VMYXlvdXRWaWV3cG9ydFNp
emUsIGNvbnN0IExheW91dFBvaW50JiBzdGFibGVMYXlvdXRWaWV3cG9ydE9yaWdpbk1pbiwgY29u
c3QgTGF5b3V0UG9pbnQmIHN0YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luTWF4LCBMYXlvdXRWaWV3
cG9ydENvbnN0cmFpbnQgY29uc3RyYWludCkKK3sKKyAgICBMYXlvdXRSZWN0IGxheW91dFZpZXdw
b3J0UmVjdCA9IGxheW91dFZpZXdwb3J0OworICAgIAorICAgIC8vIFRoZSBsYXlvdXQgdmlld3Bv
cnQgaXMgbmV2ZXIgc21hbGxlciB0aGFuIGJhc2VMYXlvdXRWaWV3cG9ydFNpemUsIGFuZCBuZXZl
ciBiZSBzbWFsbGVyIHRoYW4gdGhlIHVub2JzY3VyZWRDb250ZW50UmVjdC4KKyAgICBMYXlvdXRT
aXplIGNvbnN0cmFpbmVkU2l6ZSA9IGJhc2VMYXlvdXRWaWV3cG9ydFNpemU7CisgICAgbGF5b3V0
Vmlld3BvcnRSZWN0LnNldFNpemUoY29uc3RyYWluZWRTaXplLmV4cGFuZGVkVG8odW5vYnNjdXJl
ZENvbnRlbnRTaXplKSk7CisgICAgICAgIAorICAgIExheW91dFBvaW50IGxheW91dFZpZXdwb3J0
T3JpZ2luID0gY29tcHV0ZUxheW91dFZpZXdwb3J0T3JpZ2luKHVub2JzY3VyZWRDb250ZW50UmVj
dCwgc3RhYmxlTGF5b3V0Vmlld3BvcnRPcmlnaW5NaW4sIHN0YWJsZUxheW91dFZpZXdwb3J0T3Jp
Z2luTWF4LCBsYXlvdXRWaWV3cG9ydFJlY3QsIFN0aWNrVG9WaWV3cG9ydEJvdW5kcyk7CisgICAg
ICAgIAorICAgIGlmIChjb25zdHJhaW50ID09IExheW91dFZpZXdwb3J0Q29uc3RyYWludDo6Q29u
c3RyYWluZWRUb0RvY3VtZW50UmVjdCkgeworICAgICAgICAvLyBUaGUgbWF4IHN0YWJsZSBsYXlv
dXQgdmlld3BvcnQgb3JpZ2luIHJlYWxseSBkZXBlbmRzIG9uIHRoZSBzaXplIG9mIHRoZSBsYXlv
dXQgdmlld3BvcnQgaXRzZWxmLCBzbyB3ZSBuZWVkIHRvIGFkanVzdCB0aGUgbG9jYXRpb24gb2Yg
dGhlIGxheW91dCB2aWV3cG9ydCBvbmUgZmluYWwgdGltZSB0byBtYWtlIHN1cmUgaXQgZG9lcyBu
b3QgZW5kIHVwIG91dCBvZiBib3VuZHMgb2YgdGhlIGRvY3VtZW50LgorICAgICAgICAvLyBXaXRo
b3V0IHRoaXMgYWRqdXN0bWVudCAoYW5kIHdpdGggdXNpbmcgdGhlIG5vbi1jb25zdHJhaW5lZCB1
bm9ic2N1cmVkQ29udGVudFJlY3QncyBzaXplIGFzIHRoZSBzaXplIG9mIHRoZSBsYXlvdXQgdmll
d3BvcnQpIHRoZSBsYXlvdXQgdmlld3BvcnQgY2FuIGJlIHB1c2hlZCBwYXN0IHRoZSBib3VuZHMg
b2YgdGhlIGRvY3VtZW50IGR1cmluZyBydWJiZXItYmFuZGluZywgYW5kIGNhbm5vdCBiZSBwdXNo
ZWQKKyAgICAgICAgLy8gYmFjayBpbiB1bnRpbCB0aGUgdXNlciBzY3JvbGxzIGJhY2sgaW4gdGhl
IG90aGVyIGRpcmVjdGlvbi4KKyAgICAgICAgbGF5b3V0Vmlld3BvcnRPcmlnaW4uc2V0WChjbGFt
cFRvPGZsb2F0PihsYXlvdXRWaWV3cG9ydE9yaWdpbi54KCksIDAsIGRvY3VtZW50UmVjdC53aWR0
aCgpIC0gbGF5b3V0Vmlld3BvcnRSZWN0LndpZHRoKCkpKTsKKyAgICAgICAgbGF5b3V0Vmlld3Bv
cnRPcmlnaW4uc2V0WShjbGFtcFRvPGZsb2F0PihsYXlvdXRWaWV3cG9ydE9yaWdpbi55KCksIDAs
IGRvY3VtZW50UmVjdC5oZWlnaHQoKSAtIGxheW91dFZpZXdwb3J0UmVjdC5oZWlnaHQoKSkpOwor
ICAgIH0KKyAgICBsYXlvdXRWaWV3cG9ydFJlY3Quc2V0TG9jYXRpb24obGF5b3V0Vmlld3BvcnRP
cmlnaW4pOworICAgIAorICAgIHJldHVybiBsYXlvdXRWaWV3cG9ydFJlY3Q7Cit9CisKIC8vIHZp
c3VhbFZpZXdwb3J0IGFuZCBsYXlvdXRWaWV3cG9ydCBhcmUgYm90aCBpbiBjb250ZW50IGNvb3Jk
aW5hdGVzICh1bnpvb21lZCkuCiBMYXlvdXRQb2ludCBGcmFtZVZpZXc6OmNvbXB1dGVMYXlvdXRW
aWV3cG9ydE9yaWdpbihjb25zdCBMYXlvdXRSZWN0JiB2aXN1YWxWaWV3cG9ydCwgY29uc3QgTGF5
b3V0UG9pbnQmIHN0YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luTWluLCBjb25zdCBMYXlvdXRQb2lu
dCYgc3RhYmxlTGF5b3V0Vmlld3BvcnRPcmlnaW5NYXgsIGNvbnN0IExheW91dFJlY3QmIGxheW91
dFZpZXdwb3J0LCBTY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMgZml4ZWRCZWhhdmlvcikK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGNkYjJmYmViN2Q0NjAxZGVhYmRjMGFmZDZh
N2U4NTg0MzVkYjQ1ZmEuLmNhNmI0MDM4NjVjMjJhZGUwOTZkMjRjNDQzNjdmMDg4NDM2YmIwNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMzA1LDcgKzMwNSwxMCBAQCBwdWJsaWM6CiAg
ICAgLy8gU3RhdGljIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgZnJvbSBhbm90aGVyIHRocmVhZC4K
ICAgICBzdGF0aWMgTGF5b3V0UG9pbnQgc2Nyb2xsUG9zaXRpb25Gb3JGaXhlZFBvc2l0aW9uKGNv
bnN0IExheW91dFJlY3QmIHZpc2libGVDb250ZW50UmVjdCwgY29uc3QgTGF5b3V0U2l6ZSYgdG90
YWxDb250ZW50c1NpemUsIGNvbnN0IExheW91dFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qg
TGF5b3V0UG9pbnQmIHNjcm9sbE9yaWdpbiwgZmxvYXQgZnJhbWVTY2FsZUZhY3RvciwgYm9vbCBm
aXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lLCBTY3JvbGxCZWhhdmlvckZvckZpeGVk
RWxlbWVudHMsIGludCBoZWFkZXJIZWlnaHQsIGludCBmb290ZXJIZWlnaHQpOwogCi0gICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIExheW91dFBvaW50IGNvbXB1dGVMYXlvdXRWaWV3cG9ydE9yaWdp
bihjb25zdCBMYXlvdXRSZWN0JiB2aXN1YWxWaWV3cG9ydCwgY29uc3QgTGF5b3V0UG9pbnQmIHN0
YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luTWluLCBjb25zdCBMYXlvdXRQb2ludCYgc3RhYmxlTGF5
b3V0Vmlld3BvcnRPcmlnaW5NYXgsIGNvbnN0IExheW91dFJlY3QmIGxheW91dFZpZXdwb3J0LCBT
Y3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMgZml4ZWRCZWhhdmlvcik7CisgICAgZW51bSBj
bGFzcyBMYXlvdXRWaWV3cG9ydENvbnN0cmFpbnQgeyBDb25zdHJhaW5lZFRvRG9jdW1lbnRSZWN0
LCBVbmNvbnN0cmFpbmVkIH07CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIExheW91dFJlY3Qg
Y29tcHV0ZVVwZGF0ZWRMYXlvdXRWaWV3cG9ydFJlY3QoY29uc3QgTGF5b3V0UmVjdCYgbGF5b3V0
Vmlld3BvcnQsIGNvbnN0IExheW91dFJlY3QmIGRvY3VtZW50UmVjdCwgY29uc3QgTGF5b3V0U2l6
ZSYgdW5vYnNjdXJlZENvbnRlbnRTaXplLCBjb25zdCBMYXlvdXRSZWN0JiB1bm9ic2N1cmVkQ29u
dGVudFJlY3QsIGNvbnN0IExheW91dFNpemUmIGJhc2VMYXlvdXRWaWV3cG9ydFNpemUsIGNvbnN0
IExheW91dFBvaW50JiBzdGFibGVMYXlvdXRWaWV3cG9ydE9yaWdpbk1pbiwgY29uc3QgTGF5b3V0
UG9pbnQmIHN0YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luTWF4LCBMYXlvdXRWaWV3cG9ydENvbnN0
cmFpbnQpOworICAgIAorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBMYXlvdXRQb2ludCBjb21w
dXRlTGF5b3V0Vmlld3BvcnRPcmlnaW4oY29uc3QgTGF5b3V0UmVjdCYgdmlzdWFsVmlld3BvcnQs
IGNvbnN0IExheW91dFBvaW50JiBzdGFibGVMYXlvdXRWaWV3cG9ydE9yaWdpbk1pbiwgY29uc3Qg
TGF5b3V0UG9pbnQmIHN0YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luTWF4LCBjb25zdCBMYXlvdXRS
ZWN0JiBsYXlvdXRWaWV3cG9ydCwgU2Nyb2xsQmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRzKTsKIAog
ICAgIC8vIFRoZXNlIGxheWVycyBhcmUgcG9zaXRpb25lZCBkaWZmZXJlbnRseSB3aGVuIHRoZXJl
IGlzIGEgdG9wQ29udGVudEluc2V0LCBhIGhlYWRlciwgb3IgYSBmb290ZXIuIFRoZXNlIHZhbHVl
IG5lZWQgdG8gYmUgY29tcHV0ZWQKICAgICAvLyBvbiBib3RoIHRoZSBtYWluIHRocmVhZCBhbmQg
dGhlIHNjcm9sbGluZyB0aHJlYWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggZGQ5M2QwMmNhMzY2ZTZlYTE5YTg5ODYwNWJiM2QwMzNkMzgyNDc5Ny4uNmI1NmQx
NTUyZjAxMDBjYmU4OTEzNTUzYmQ4ODAxMDEzMzFlZmY3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTcsMTcgKzU3LDE4IEBACiAjaW5jbHVkZSAiV2ViUGFn
ZUluamVjdGVkQnVuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHkuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlcy5oIgotI2luY2x1ZGUgPFdlYkNvcmUv
QWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg+IC8vIEZJWE1FOiBOZWVkZWQgYnkgV2ViUGFnZVByb3h5
TWVzc2FnZXMuaCBmb3IgRElDVEFUSU9OX0FMVEVSTkFUSVZFUy4KICNpbmNsdWRlICJXZWJQYWdl
UHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBvcHVwTWVudVByb3h5LmgiCiAjaW5jbHVk
ZSAiV2ViUHJvY2Vzc0xpZmV0aW1lVHJhY2tlci5oIgogI2luY2x1ZGUgIldlYnNpdGVQb2xpY2ll
cy5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvQWx0ZXJuYXRpdmVUZXh0Q2xpZW50Lmg+IC8vIEZJWE1FOiBOZWVkZWQgYnkgV2ViUGFnZVBy
b3h5TWVzc2FnZXMuaCBmb3IgRElDVEFUSU9OX0FMVEVSTkFUSVZFUy4KICNpbmNsdWRlIDxXZWJD
b3JlL0F1dG9wbGF5RXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0NvbG9yLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9EcmFnQWN0aW9ucy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnRUcmFja2lu
Z1JlZ2lvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0ZyYW1lVmlldy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSGl0VGVzdFJlc3Vs
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQcm9kdWNlci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZS5oPgpAQCAtNDk5LDggKzUwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVZp
c2libGVDb250ZW50UmVjdHMoY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYpOwog
ICAgIHZvaWQgcmVzZW5kTGFzdFZpc2libGVDb250ZW50UmVjdHMoKTsKIAotICAgIGVudW0gY2xh
c3MgVW5vYnNjdXJlZFJlY3RDb25zdHJhaW50IHsgQ29uc3RyYWluZWRUb0RvY3VtZW50UmVjdCwg
VW5jb25zdHJhaW5lZCB9OwotICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBjb21wdXRlQ3VzdG9tRml4
ZWRQb3NpdGlvblJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVu
dFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0UmVz
cGVjdGluZ0lucHV0Vmlld0JvdW5kcywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBjdXJyZW50
Q3VzdG9tRml4ZWRQb3NpdGlvblJlY3QsIGRvdWJsZSBkaXNwbGF5ZWRDb250ZW50U2NhbGUsIFVu
b2JzY3VyZWRSZWN0Q29uc3RyYWludCA9IFVub2JzY3VyZWRSZWN0Q29uc3RyYWludDo6VW5jb25z
dHJhaW5lZCwgYm9vbCB2aXN1YWxWaWV3cG9ydEVuYWJsZWQgPSBmYWxzZSkgY29uc3Q7CisgICAg
V2ViQ29yZTo6RmxvYXRSZWN0IGNvbXB1dGVDdXN0b21GaXhlZFBvc2l0aW9uUmVjdChjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRz
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGN1cnJlbnRDdXN0b21GaXhlZFBvc2l0aW9uUmVj
dCwgZG91YmxlIGRpc3BsYXllZENvbnRlbnRTY2FsZSwgV2ViQ29yZTo6RnJhbWVWaWV3OjpMYXlv
dXRWaWV3cG9ydENvbnN0cmFpbnQgPSBXZWJDb3JlOjpGcmFtZVZpZXc6OkxheW91dFZpZXdwb3J0
Q29uc3RyYWludDo6VW5jb25zdHJhaW5lZCwgYm9vbCB2aXN1YWxWaWV3cG9ydEVuYWJsZWQgPSBm
YWxzZSkgY29uc3Q7CiAKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsVmlld1dpbGxTdGFydFBhbkdl
c3R1cmUoKTsKICAgICB2b2lkIG92ZXJmbG93U2Nyb2xsVmlld0RpZFNjcm9sbCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tCmluZGV4IGRiOTJmMTM1Y2I4ODRhNGIxMWIzMjRj
MjU5ZTlhYzViY2EzMDc1YzUuLjFkZWJhZGQ0ZGNmZTZjOTk1OTI1MWZlNmZjNmQzNjQ4MDhiNjQ2
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0KQEAgLTk2LDcgKzk2LDcg
QEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojpjb25uZWN0U3RhdGVOb2Rl
TGF5ZXJzKFNjcm9sbGluZ1N0YXRlVHJlZSYKIEZsb2F0UmVjdCBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5OjpjdXN0b21GaXhlZFBvc2l0aW9uUmVjdCgpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1fd2ViUGFnZVByb3h5LmNvbXB1dGVDdXN0b21GaXhlZFBvc2l0aW9uUmVjdChtX3dlYlBh
Z2VQcm94eS51bm9ic2N1cmVkQ29udGVudFJlY3QoKSwgbV93ZWJQYWdlUHJveHkudW5vYnNjdXJl
ZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5kcygpLCBtX3dlYlBhZ2VQcm94eS5j
dXN0b21GaXhlZFBvc2l0aW9uUmVjdCgpLAotICAgICAgICBtX3dlYlBhZ2VQcm94eS5kaXNwbGF5
ZWRDb250ZW50U2NhbGUoKSwgV2ViUGFnZVByb3h5OjpVbm9ic2N1cmVkUmVjdENvbnN0cmFpbnQ6
OlVuY29uc3RyYWluZWQsIHZpc3VhbFZpZXdwb3J0RW5hYmxlZCgpKTsKKyAgICAgICAgbV93ZWJQ
YWdlUHJveHkuZGlzcGxheWVkQ29udGVudFNjYWxlKCksIEZyYW1lVmlldzo6TGF5b3V0Vmlld3Bv
cnRDb25zdHJhaW50OjpVbmNvbnN0cmFpbmVkLCB2aXN1YWxWaWV3cG9ydEVuYWJsZWQoKSk7CiB9
CiAKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2Nyb2xsaW5nVHJlZU5v
ZGVXaWxsU3RhcnRQYW5HZXN0dXJlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlldy5tbQppbmRleCBjOGUxMTBhOTFmN2Y3NDUwNGU3NGI1NjQ5YzE2YzA0MTI1
YzcwYjZhLi40MzYzNTBkMTE2MzhjMzIxYjA3N2QwYzE3ZjUxOTZkMDU0NGUyOWRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBAIC00MDYsNyAr
NDA2LDcgQEAgLSAodm9pZClkaWRVcGRhdGVWaXNpYmxlUmVjdDooQ0dSZWN0KXZpc2libGVDb250
ZW50UmVjdAogICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkqIHNjcm9sbGluZ0Nv
b3JkaW5hdG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKIAogICAgIENH
UmVjdCB1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzID0gW3Nl
bGYgX2NvbXB1dGVVbm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRz
OnVub2JzY3VyZWRDb250ZW50UmVjdCBpbnB1dFZpZXdCb3VuZHM6aW5wdXRWaWV3Qm91bmRzXTsK
LSAgICBGbG9hdFJlY3QgZml4ZWRQb3NpdGlvblJlY3RGb3JMYXlvdXQgPSBfcGFnZS0+Y29tcHV0
ZUN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KHVub2JzY3VyZWRDb250ZW50UmVjdCwgdW5vYnNjdXJl
ZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5kcywgX3BhZ2UtPmN1c3RvbUZpeGVk
UG9zaXRpb25SZWN0KCksIHpvb21TY2FsZSwgV2ViUGFnZVByb3h5OjpVbm9ic2N1cmVkUmVjdENv
bnN0cmFpbnQ6OkNvbnN0cmFpbmVkVG9Eb2N1bWVudFJlY3QsIHNjcm9sbGluZ0Nvb3JkaW5hdG9y
LT52aXN1YWxWaWV3cG9ydEVuYWJsZWQoKSk7CisgICAgRmxvYXRSZWN0IGZpeGVkUG9zaXRpb25S
ZWN0Rm9yTGF5b3V0ID0gX3BhZ2UtPmNvbXB1dGVDdXN0b21GaXhlZFBvc2l0aW9uUmVjdCh1bm9i
c2N1cmVkQ29udGVudFJlY3QsIHVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZp
ZXdCb3VuZHMsIF9wYWdlLT5jdXN0b21GaXhlZFBvc2l0aW9uUmVjdCgpLCB6b29tU2NhbGUsIEZy
YW1lVmlldzo6TGF5b3V0Vmlld3BvcnRDb25zdHJhaW50OjpDb25zdHJhaW5lZFRvRG9jdW1lbnRS
ZWN0LCBzY3JvbGxpbmdDb29yZGluYXRvci0+dmlzdWFsVmlld3BvcnRFbmFibGVkKCkpOwogCiAg
ICAgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyB2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvKAogICAgICAgICB2aXNpYmxlQ29udGVudFJlY3QsCkBAIC00MzUsNyArNDM1LDcgQEAgLSAo
dm9pZClkaWRVcGRhdGVWaXNpYmxlUmVjdDooQ0dSZWN0KXZpc2libGVDb250ZW50UmVjdAogCiAg
ICAgX3NpemVDaGFuZ2VkU2luY2VMYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlID0gTk87CiAK
LSAgICBGbG9hdFJlY3QgZml4ZWRQb3NpdGlvblJlY3QgPSBfcGFnZS0+Y29tcHV0ZUN1c3RvbUZp
eGVkUG9zaXRpb25SZWN0KF9wYWdlLT51bm9ic2N1cmVkQ29udGVudFJlY3QoKSwgX3BhZ2UtPnVu
b2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMoKSwgX3BhZ2UtPmN1
c3RvbUZpeGVkUG9zaXRpb25SZWN0KCksIHpvb21TY2FsZSwgV2ViUGFnZVByb3h5OjpVbm9ic2N1
cmVkUmVjdENvbnN0cmFpbnQ6OlVuY29uc3RyYWluZWQsIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT52
aXN1YWxWaWV3cG9ydEVuYWJsZWQoKSk7CisgICAgRmxvYXRSZWN0IGZpeGVkUG9zaXRpb25SZWN0
ID0gX3BhZ2UtPmNvbXB1dGVDdXN0b21GaXhlZFBvc2l0aW9uUmVjdChfcGFnZS0+dW5vYnNjdXJl
ZENvbnRlbnRSZWN0KCksIF9wYWdlLT51bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5w
dXRWaWV3Qm91bmRzKCksIF9wYWdlLT5jdXN0b21GaXhlZFBvc2l0aW9uUmVjdCgpLCB6b29tU2Nh
bGUsIEZyYW1lVmlldzo6TGF5b3V0Vmlld3BvcnRDb25zdHJhaW50OjpVbmNvbnN0cmFpbmVkLCBz
Y3JvbGxpbmdDb29yZGluYXRvci0+dmlzdWFsVmlld3BvcnRFbmFibGVkKCkpOwogICAgIHNjcm9s
bGluZ0Nvb3JkaW5hdG9yLT52aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoc2Ny
b2xsaW5nQ29vcmRpbmF0b3ItPnJvb3RTY3JvbGxpbmdOb2RlSUQoKSwgZml4ZWRQb3NpdGlvblJl
Y3QsIHpvb21TY2FsZSk7CiAKICAgICBkcmF3aW5nQXJlYS0+dXBkYXRlRGVidWdJbmRpY2F0b3Io
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0K
aW5kZXggNDdhZTZiMzFhMTE4M2VlZmI2NDM5YTVlMmMyNjA4ODljMDhkNTZkOC4uY2ZkMWUyMzM4
N2Y2YjdhNjE4NGRlYmQ4NDcyODQ1ZDk1ZGYzY2FlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTIzMSw3ICsyMzEsNyBAQCBzdGF0
aWMgaW5saW5lIGZsb2F0IGFkanVzdGVkVW5leHBvc2VkTWF4RWRnZShmbG9hdCBkb2N1bWVudEVk
Z2UsIGZsb2F0IGV4cG9zZWRSZQogfQogCiAvLyBGSVhNRTogcmVuYW1lIHRoaXMgd2hlbiB2aXN1
YWwgdmlld3BvcnRzIGFyZSB0aGUgZGVmYXVsdC4KLVdlYkNvcmU6OkZsb2F0UmVjdCBXZWJQYWdl
UHJveHk6OmNvbXB1dGVDdXN0b21GaXhlZFBvc2l0aW9uUmVjdChjb25zdCBGbG9hdFJlY3QmIHVu
b2JzY3VyZWRDb250ZW50UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJl
Y3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzLCBjb25zdCBGbG9hdFJlY3QmIGN1cnJlbnRDdXN0
b21GaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIGRpc3BsYXllZENvbnRlbnRTY2FsZSwgVW5vYnNj
dXJlZFJlY3RDb25zdHJhaW50IGNvbnN0cmFpbnQsIGJvb2wgdmlzdWFsVmlld3BvcnRFbmFibGVk
KSBjb25zdAorV2ViQ29yZTo6RmxvYXRSZWN0IFdlYlBhZ2VQcm94eTo6Y29tcHV0ZUN1c3RvbUZp
eGVkUG9zaXRpb25SZWN0KGNvbnN0IEZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdC
b3VuZHMsIGNvbnN0IEZsb2F0UmVjdCYgY3VycmVudEN1c3RvbUZpeGVkUG9zaXRpb25SZWN0LCBk
b3VibGUgZGlzcGxheWVkQ29udGVudFNjYWxlLCBGcmFtZVZpZXc6OkxheW91dFZpZXdwb3J0Q29u
c3RyYWludCBjb25zdHJhaW50LCBib29sIHZpc3VhbFZpZXdwb3J0RW5hYmxlZCkgY29uc3QKIHsK
ICAgICBGbG9hdFJlY3QgY29uc3RyYWluZWRVbm9ic2N1cmVkUmVjdCA9IHVub2JzY3VyZWRDb250
ZW50UmVjdDsKICAgICBGbG9hdFJlY3QgZG9jdW1lbnRSZWN0ID0gbV9wYWdlQ2xpZW50LmRvY3Vt
ZW50UmVjdCgpOwpAQCAtMjM5LDcgKzIzOSw3IEBAIFdlYkNvcmU6OkZsb2F0UmVjdCBXZWJQYWdl
UHJveHk6OmNvbXB1dGVDdXN0b21GaXhlZFBvc2l0aW9uUmVjdChjb25zdCBGbG9hdFJlY3QmCiAg
ICAgaWYgKCF2aXN1YWxWaWV3cG9ydEVuYWJsZWQgJiYgbV9wYWdlQ2xpZW50LmlzQXNzaXN0aW5n
Tm9kZSgpKQogICAgICAgICByZXR1cm4gZG9jdW1lbnRSZWN0OwogCi0gICAgaWYgKGNvbnN0cmFp
bnQgPT0gVW5vYnNjdXJlZFJlY3RDb25zdHJhaW50OjpDb25zdHJhaW5lZFRvRG9jdW1lbnRSZWN0
KQorICAgIGlmIChjb25zdHJhaW50ID09IEZyYW1lVmlldzo6TGF5b3V0Vmlld3BvcnRDb25zdHJh
aW50OjpDb25zdHJhaW5lZFRvRG9jdW1lbnRSZWN0KQogICAgICAgICBjb25zdHJhaW5lZFVub2Jz
Y3VyZWRSZWN0LmludGVyc2VjdChkb2N1bWVudFJlY3QpOwogCiAgICAgZG91YmxlIG1pbmltdW1T
Y2FsZSA9IG1fcGFnZUNsaWVudC5taW5pbXVtWm9vbVNjYWxlKCk7CkBAIC0yNTMsMzMgKzI1Mywx
NCBAQCBXZWJDb3JlOjpGbG9hdFJlY3QgV2ViUGFnZVByb3h5Ojpjb21wdXRlQ3VzdG9tRml4ZWRQ
b3NpdGlvblJlY3QoY29uc3QgRmxvYXRSZWN0JgogICAgICAgICBjb25zdHJhaW5lZFVub2JzY3Vy
ZWRSZWN0LnNldFdpZHRoKGFkanVzdGVkVW5leHBvc2VkTWF4RWRnZShkb2N1bWVudFJlY3QubWF4
WCgpLCBjb25zdHJhaW5lZFVub2JzY3VyZWRSZWN0Lm1heFgoKSwgZmFjdG9yKSAtIGNvbnN0cmFp
bmVkVW5vYnNjdXJlZFJlY3QueCgpKTsKICAgICAgICAgY29uc3RyYWluZWRVbm9ic2N1cmVkUmVj
dC5zZXRIZWlnaHQoYWRqdXN0ZWRVbmV4cG9zZWRNYXhFZGdlKGRvY3VtZW50UmVjdC5tYXhZKCks
IGNvbnN0cmFpbmVkVW5vYnNjdXJlZFJlY3QubWF4WSgpLCBmYWN0b3IpIC0gY29uc3RyYWluZWRV
bm9ic2N1cmVkUmVjdC55KCkpOwogICAgIH0KLSAgICAKKwogICAgIGlmICghdmlzdWFsVmlld3Bv
cnRFbmFibGVkKQogICAgICAgICByZXR1cm4gRnJhbWVWaWV3OjpyZWN0Rm9yVmlld3BvcnRDb25z
dHJhaW5lZE9iamVjdHMoZW5jbG9zaW5nTGF5b3V0UmVjdChjb25zdHJhaW5lZFVub2JzY3VyZWRS
ZWN0KSwgTGF5b3V0U2l6ZShkb2N1bWVudFJlY3Quc2l6ZSgpKSwgZGlzcGxheWVkQ29udGVudFNj
YWxlLCBmYWxzZSwgU3RpY2tUb1ZpZXdwb3J0Qm91bmRzKTsKLQotICAgIEZsb2F0UmVjdCBsYXlv
dXRWaWV3cG9ydFJlY3QgPSBjdXJyZW50Q3VzdG9tRml4ZWRQb3NpdGlvblJlY3Q7Ci0KLSAgICAv
LyBUaGUgbGF5b3V0IHZpZXdwb3J0IGlzIG5ldmVyIHNtYWxsZXIgdGhhbiBtX2Jhc2VMYXlvdXRW
aWV3cG9ydFNpemUsIGFuZCBuZXZlciBiZSBzbWFsbGVyIHRoYW4gdGhlIGNvbnN0cmFpbmVkVW5v
YnNjdXJlZFJlY3QuCi0gICAgRmxvYXRTaXplIGNvbnN0cmFpbmVkU2l6ZSA9IG1fYmFzZUxheW91
dFZpZXdwb3J0U2l6ZTsKLSAgICBpZiAoaXNCZWxvd01pbmltdW1TY2FsZSkKLSAgICAgICAgbGF5
b3V0Vmlld3BvcnRSZWN0LnNldFNpemUoY29uc3RyYWluZWRTaXplLmV4cGFuZGVkVG8oY29uc3Ry
YWluZWRVbm9ic2N1cmVkUmVjdC5zaXplKCkpKTsKLSAgICBlbHNlCi0gICAgICAgIGxheW91dFZp
ZXdwb3J0UmVjdC5zZXRTaXplKGNvbnN0cmFpbmVkU2l6ZS5leHBhbmRlZFRvKHVub2JzY3VyZWRD
b250ZW50UmVjdC5zaXplKCkpKTsKLQotICAgIExheW91dFBvaW50IGxheW91dFZpZXdwb3J0T3Jp
Z2luOwotICAgIGlmIChpc0JlbG93TWluaW11bVNjYWxlKQotICAgICAgICBsYXlvdXRWaWV3cG9y
dE9yaWdpbiA9IEZyYW1lVmlldzo6Y29tcHV0ZUxheW91dFZpZXdwb3J0T3JpZ2luKGVuY2xvc2lu
Z0xheW91dFJlY3QoY29uc3RyYWluZWRVbm9ic2N1cmVkUmVjdCksIG1fbWluU3RhYmxlTGF5b3V0
Vmlld3BvcnRPcmlnaW4sIG1fbWF4U3RhYmxlTGF5b3V0Vmlld3BvcnRPcmlnaW4sIGVuY2xvc2lu
Z0xheW91dFJlY3QobGF5b3V0Vmlld3BvcnRSZWN0KSwgU3RpY2tUb1ZpZXdwb3J0Qm91bmRzKTsK
LSAgICBlbHNlCi0gICAgICAgIGxheW91dFZpZXdwb3J0T3JpZ2luID0gRnJhbWVWaWV3Ojpjb21w
dXRlTGF5b3V0Vmlld3BvcnRPcmlnaW4oZW5jbG9zaW5nTGF5b3V0UmVjdCh1bm9ic2N1cmVkQ29u
dGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzKSwgbV9taW5TdGFibGVMYXlvdXRWaWV3
cG9ydE9yaWdpbiwgbV9tYXhTdGFibGVMYXlvdXRWaWV3cG9ydE9yaWdpbiwgZW5jbG9zaW5nTGF5
b3V0UmVjdChsYXlvdXRWaWV3cG9ydFJlY3QpLCBTdGlja1RvVmlld3BvcnRCb3VuZHMpOwotCi0g
ICAgaWYgKGNvbnN0cmFpbnQgPT0gVW5vYnNjdXJlZFJlY3RDb25zdHJhaW50OjpDb25zdHJhaW5l
ZFRvRG9jdW1lbnRSZWN0KSB7Ci0gICAgICAgIC8vIFRoZSBtYXggc3RhYmxlIGxheW91dCB2aWV3
cG9ydCBvcmlnaW4gcmVhbGx5IGRlcGVuZHMgb24gdGhlIHNpemUgb2YgdGhlIGxheW91dCB2aWV3
cG9ydCBpdHNlbGYsIHNvIHdlIG5lZWQgdG8gYWRqdXN0IHRoZSBsb2NhdGlvbiBvZiB0aGUgbGF5
b3V0IHZpZXdwb3J0IG9uZSBmaW5hbCB0aW1lIHRvIG1ha2Ugc3VyZSBpdCBkb2VzIG5vdCBlbmQg
dXAgb3V0IG9mIGJvdW5kcyBvZiB0aGUgZG9jdW1lbnQuCi0gICAgICAgIC8vIFdpdGhvdXQgdGhp
cyBhZGp1c3RtZW50IChhbmQgd2l0aCB1c2luZyB0aGUgbm9uLWNvbnN0cmFpbmVkIHVub2JzY3Vy
ZWRDb250ZW50UmVjdCdzIHNpemUgYXMgdGhlIHNpemUgb2YgdGhlIGxheW91dCB2aWV3cG9ydCkg
dGhlIGxheW91dCB2aWV3cG9ydCBjYW4gYmUgcHVzaGVkIHBhc3QgdGhlIGJvdW5kcyBvZiB0aGUg
ZG9jdW1lbnQgZHVyaW5nIHJ1YmJlci1iYW5kaW5nLCBhbmQgY2Fubm90IGJlIHB1c2hlZAotICAg
ICAgICAvLyBiYWNrIGluIHVudGlsIHRoZSB1c2VyIHNjcm9sbHMgYmFjayBpbiB0aGUgb3RoZXIg
ZGlyZWN0aW9uLgotICAgICAgICBsYXlvdXRWaWV3cG9ydE9yaWdpbi5zZXRYKGNsYW1wVG88Zmxv
YXQ+KGxheW91dFZpZXdwb3J0T3JpZ2luLngoKSwgMCwgZG9jdW1lbnRSZWN0LndpZHRoKCkgLSBs
YXlvdXRWaWV3cG9ydFJlY3Qud2lkdGgoKSkpOwotICAgICAgICBsYXlvdXRWaWV3cG9ydE9yaWdp
bi5zZXRZKGNsYW1wVG88ZmxvYXQ+KGxheW91dFZpZXdwb3J0T3JpZ2luLnkoKSwgMCwgZG9jdW1l
bnRSZWN0LmhlaWdodCgpIC0gbGF5b3V0Vmlld3BvcnRSZWN0LmhlaWdodCgpKSk7Ci0gICAgfQot
ICAgIGxheW91dFZpZXdwb3J0UmVjdC5zZXRMb2NhdGlvbihsYXlvdXRWaWV3cG9ydE9yaWdpbik7
CisgICAgICAgIAorICAgIEZsb2F0U2l6ZSBjb25zdGFpbmVkU2l6ZSA9IGlzQmVsb3dNaW5pbXVt
U2NhbGUgPyBjb25zdHJhaW5lZFVub2JzY3VyZWRSZWN0LnNpemUoKSA6IHVub2JzY3VyZWRDb250
ZW50UmVjdC5zaXplKCk7CisgICAgRmxvYXRSZWN0IHVub2JzY3VyZWRDb250ZW50UmVjdEZvclZp
ZXdwb3J0ID0gaXNCZWxvd01pbmltdW1TY2FsZSA/IGNvbnN0cmFpbmVkVW5vYnNjdXJlZFJlY3Qg
OiB1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzOworICAgIAor
ICAgIEZsb2F0UmVjdCBsYXlvdXRWaWV3cG9ydFJlY3QgPSBGcmFtZVZpZXc6OmNvbXB1dGVVcGRh
dGVkTGF5b3V0Vmlld3BvcnRSZWN0KExheW91dFJlY3QoY3VycmVudEN1c3RvbUZpeGVkUG9zaXRp
b25SZWN0KSwgTGF5b3V0UmVjdChkb2N1bWVudFJlY3QpLCBMYXlvdXRTaXplKGNvbnN0YWluZWRT
aXplKSwgTGF5b3V0UmVjdCh1bm9ic2N1cmVkQ29udGVudFJlY3RGb3JWaWV3cG9ydCksIG1fYmFz
ZUxheW91dFZpZXdwb3J0U2l6ZSwgbV9taW5TdGFibGVMYXlvdXRWaWV3cG9ydE9yaWdpbiwgbV9t
YXhTdGFibGVMYXlvdXRWaWV3cG9ydE9yaWdpbiwgY29uc3RyYWludCk7CiAgICAgCiAgICAgaWYg
KGxheW91dFZpZXdwb3J0UmVjdCAhPSBjdXJyZW50Q3VzdG9tRml4ZWRQb3NpdGlvblJlY3QpCiAg
ICAgICAgIExPR19XSVRIX1NUUkVBTShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAiV2ViUGFnZVBy
b3h5Ojpjb21wdXRlQ3VzdG9tRml4ZWRQb3NpdGlvblJlY3Q6IG5ldyBsYXlvdXQgdmlld3BvcnQg
ICIgPDwgbGF5b3V0Vmlld3BvcnRSZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpp
bmRleCBmYTNjOWE4NmNlODM2MDZhZjIwNjIwYjFmNjYwZjFkMmNmODViOTU0Li5hMWIyMjk5OTQ3
ZmIxMjU3YzhlZTNjYzI1YjczNTliNTNmMWZlNjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Lm1tCkBAIC0yMDMsNyArMjAzLDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5Ojpjb21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnMKICNpZiBQ
TEFURk9STShJT1MpCiAgICAgaWYgKG1fd2ViUGFnZVByb3h5LnNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkoKS0+aGFzRml4ZWRPclN0aWNreSgpKSB7CiAgICAgICAgIC8vIElmIHdlIGdvdCBhIG5l
dyBsYXllciBmb3IgYSBmaXhlZCBvciBzdGlja3kgbm9kZSwgaXRzIHBvc2l0aW9uIGZyb20gdGhl
IFdlYlByb2Nlc3MgaXMgcHJvYmFibHkgc3RhbGUuIFdlIG5lZWQgdG8gcmUtcnVuIHRoZSAidmll
d3BvcnQiIGNoYW5nZWQgbG9naWMgdG8gdWRwYXRlIGl0IHdpdGggb3VyIFVJLXNpZGUgc3RhdGUu
Ci0gICAgICAgIEZsb2F0UmVjdCBjdXN0b21GaXhlZFBvc2l0aW9uUmVjdCA9IG1fd2ViUGFnZVBy
b3h5LmNvbXB1dGVDdXN0b21GaXhlZFBvc2l0aW9uUmVjdChtX3dlYlBhZ2VQcm94eS51bm9ic2N1
cmVkQ29udGVudFJlY3QoKSwgbV93ZWJQYWdlUHJveHkudW5vYnNjdXJlZENvbnRlbnRSZWN0UmVz
cGVjdGluZ0lucHV0Vmlld0JvdW5kcygpLCBtX3dlYlBhZ2VQcm94eS5jdXN0b21GaXhlZFBvc2l0
aW9uUmVjdCgpLCBtX3dlYlBhZ2VQcm94eS5kaXNwbGF5ZWRDb250ZW50U2NhbGUoKSwgV2ViUGFn
ZVByb3h5OjpVbm9ic2N1cmVkUmVjdENvbnN0cmFpbnQ6OlVuY29uc3RyYWluZWQsIG1fd2ViUGFn
ZVByb3h5LnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKS0+dmlzdWFsVmlld3BvcnRFbmFibGVk
KCkpOworICAgICAgICBGbG9hdFJlY3QgY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QgPSBtX3dlYlBh
Z2VQcm94eS5jb21wdXRlQ3VzdG9tRml4ZWRQb3NpdGlvblJlY3QobV93ZWJQYWdlUHJveHkudW5v
YnNjdXJlZENvbnRlbnRSZWN0KCksIG1fd2ViUGFnZVByb3h5LnVub2JzY3VyZWRDb250ZW50UmVj
dFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMoKSwgbV93ZWJQYWdlUHJveHkuY3VzdG9tRml4ZWRQ
b3NpdGlvblJlY3QoKSwgbV93ZWJQYWdlUHJveHkuZGlzcGxheWVkQ29udGVudFNjYWxlKCksIEZy
YW1lVmlldzo6TGF5b3V0Vmlld3BvcnRDb25zdHJhaW50OjpVbmNvbnN0cmFpbmVkLCBtX3dlYlBh
Z2VQcm94eS5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCktPnZpc3VhbFZpZXdwb3J0RW5hYmxl
ZCgpKTsKICAgICAgICAgbV93ZWJQYWdlUHJveHkuc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgp
LT52aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcobV93ZWJQYWdlUHJveHkuc2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpLT5yb290U2Nyb2xsaW5nTm9kZUlEKCksIGN1c3RvbUZp
eGVkUG9zaXRpb25SZWN0LCBtX3dlYlBhZ2VQcm94eS5kaXNwbGF5ZWRDb250ZW50U2NhbGUoKSk7
CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggNjVmMGUyYjY2YWVmNDc1ZmEzOWJmODZmNjRmMjA3
NDVhNTNhN2E2Ny4uMjUyOGFmODY2ZjA3YmRmM2ZiYzI5NWU1NmY5YTM5ZThhODUwYzY5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQpAQCAtMjgzNyw2ICsyODM3LDcgQEAgdm9pZCBXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRT
aXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUsIGNvbnMKICAgICBT
ZXRGb3JTY29wZTxib29sPiBkeW5hbWljU2l6ZVVwZGF0ZUd1YXJkKG1faW5EeW5hbWljU2l6ZVVw
ZGF0ZSwgdHJ1ZSk7CiAgICAgLy8gRklYTUU6IHRoaXMgZG9lcyBub3QgaGFuZGxlIHRoZSBjYXNl
cyB3aGVyZSB0aGUgY29udGVudCB3b3VsZCBjaGFuZ2UgdGhlIGNvbnRlbnQgc2l6ZSBvciBzY3Jv
bGwgcG9zaXRpb24gZnJvbSBKYXZhU2NyaXB0LgogICAgIC8vIFRvIGhhbmRsZSB0aG9zZSBjYXNl
cywgd2Ugd291bGQgbmVlZCB0byByZWRvIHRoaXMgY29tcHV0YXRpb24gb24gZXZlcnkgY2hhbmdl
IHVudGlsIHRoZSBuZXh0IHZpc2libGUgY29udGVudCByZWN0IHVwZGF0ZS4KKyAgICBMT0dfV0lU
SF9TVFJFQU0oVmlzaWJsZVJlY3RzLCBzdHJlYW0gPDwgIlxuV2ViUGFnZTo6ZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZSAtIHRhcmdldFVub2JzY3VyZWRSZWN0ICIgPDwgdGFyZ2V0VW5vYnNjdXJl
ZFJlY3QgPDwgIiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QgIiA8PCB0YXJnZXRFeHBvc2VkQ29u
dGVudFJlY3QgPDwgIiB0YXJnZXRTY2FsZSAiIDw8IHRhcmdldFNjYWxlKTsKIAogICAgIEZyYW1l
VmlldyYgZnJhbWVWaWV3ID0gKm1fcGFnZS0+bWFpbkZyYW1lKCkudmlldygpOwogICAgIEludFNp
emUgb2xkQ29udGVudFNpemUgPSBmcmFtZVZpZXcuY29udGVudHNTaXplKCk7CkBAIC0yOTg4LDgg
KzI5ODksMTUgQEAgdm9pZCBXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0
IEZsb2F0U2l6ZSYgbWluaW11bUxheW91dFNpemUsIGNvbnMKICAgICBzY2FsZVBhZ2Uoc2NhbGUs
IHJvdW5kZWRVbm9ic2N1cmVkQ29udGVudFJlY3RQb3NpdGlvbik7CiAKICAgICBmcmFtZVZpZXcu
dXBkYXRlTGF5b3V0QW5kU3R5bGVJZk5lZWRlZFJlY3Vyc2l2ZSgpOwotICAgIEludFJlY3QgZml4
ZWRQb3NpdGlvbkxheW91dFJlY3QgPSBlbmNsb3NpbmdJbnRSZWN0KGZyYW1lVmlldy52aWV3cG9y
dENvbnN0cmFpbmVkT2JqZWN0c1JlY3QoKSk7Ci0gICAgZnJhbWVWaWV3LnNldEN1c3RvbUZpeGVk
UG9zaXRpb25MYXlvdXRSZWN0KGZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KTsKKworICAgIGlmIChm
cmFtZVZpZXcuZnJhbWUoKS5zZXR0aW5ncygpLnZpc3VhbFZpZXdwb3J0RW5hYmxlZCgpKSB7Cisg
ICAgICAgIExheW91dFJlY3QgZG9jdW1lbnRSZWN0ID0gSW50UmVjdChmcmFtZVZpZXcuc2Nyb2xs
T3JpZ2luKCksIGZyYW1lVmlldy5jb250ZW50c1NpemUoKSk7CisgICAgICAgIExheW91dFJlY3Qg
bGF5b3V0Vmlld3BvcnRSZWN0ID0gRnJhbWVWaWV3Ojpjb21wdXRlVXBkYXRlZExheW91dFZpZXdw
b3J0UmVjdChmcmFtZVZpZXcubGF5b3V0Vmlld3BvcnRSZWN0KCksIGRvY3VtZW50UmVjdCwgTGF5
b3V0U2l6ZShuZXdVbm9ic2N1cmVkQ29udGVudFJlY3Quc2l6ZSgpKSwgTGF5b3V0UmVjdChuZXdV
bm9ic2N1cmVkQ29udGVudFJlY3QpLCBmcmFtZVZpZXcuYmFzZUxheW91dFZpZXdwb3J0U2l6ZSgp
LCBmcmFtZVZpZXcubWluU3RhYmxlTGF5b3V0Vmlld3BvcnRPcmlnaW4oKSwgZnJhbWVWaWV3Lm1h
eFN0YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luKCksIEZyYW1lVmlldzo6TGF5b3V0Vmlld3BvcnRD
b25zdHJhaW50OjpDb25zdHJhaW5lZFRvRG9jdW1lbnRSZWN0KTsKKyAgICAgICAgZnJhbWVWaWV3
LnNldExheW91dFZpZXdwb3J0T3ZlcnJpZGVSZWN0KGxheW91dFZpZXdwb3J0UmVjdCk7CisgICAg
fSBlbHNlIHsKKyAgICAgICAgSW50UmVjdCBmaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCA9IGVuY2xv
c2luZ0ludFJlY3QoZnJhbWVWaWV3LnZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzUmVjdCgpKTsK
KyAgICAgICAgZnJhbWVWaWV3LnNldEN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KGZpeGVk
UG9zaXRpb25MYXlvdXRSZWN0KTsKKyAgICB9CiAKICAgICBmcmFtZVZpZXcuc2V0Q3VzdG9tU2l6
ZUZvclJlc2l6ZUV2ZW50KGV4cGFuZGVkSW50U2l6ZSh0YXJnZXRVbm9ic2N1cmVkUmVjdEluU2Ny
b2xsVmlld0Nvb3JkaW5hdGVzLnNpemUoKSkpOwogICAgIHNldERldmljZU9yaWVudGF0aW9uKGRl
dmljZU9yaWVudGF0aW9uKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyYzMwZDM4MmQyYzdhY2MzZWJiZWJjODM1OTE5MTZm
ZTc3ZmNjZDMzLi4zY2UzNTdlNTdlYjY3YTE3NGI3ZGRmYjc3MWFjZDY2NzdjNDU2NGQyIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDUgKzEsMjYgQEAKIDIwMTctMDUtMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CiAKKyAgICAgICAgW2lPU10gUkVHUkVTU0lPTiAocjIwOTQwOSk6IGdldEJv
dW5kaW5nQ2xpZW50UmVjdCBpcyB3cm9uZyBmb3IgZml4ZWQtcG9zaXRpb24gZWxlbWVudHMgaW4g
cmVzaXplL29yaWVudGF0aW9uY2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzExNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUZXN0cyB0aGF0IGZldGNoIHRoZSBkaW1lbnNpb25zIG9mIGEgZml4
ZWQgZWxlbWVudCBpbiByZXNpemUgYW5kIG9yaWVudGF0aW9uY2hhbmdlIGhhbmRsZXJzLAorICAg
ICAgICB3aGljaCBpcyBhIHByb3h5IGZvciByZWFkaW5nIHRoZSBsYXlvdXQgdmlld3BvcnQuCisK
KyAgICAgICAgKiBmYXN0L2V2ZW50cy9pb3Mvcm90YXRpb24vbGF5b3V0LXZpZXdwb3J0LWR1cmlu
Zy1yb3RhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2lv
cy9yb3RhdGlvbi9sYXlvdXQtdmlld3BvcnQtZHVyaW5nLXJvdGF0aW9uLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGZhc3QvZXZlbnRzL2lvcy9yb3RhdGlvbi9sYXlvdXQtdmlld3BvcnQtZHVyaW5n
LXNhZmFyaS10eXBlLXJvdGF0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9ldmVudHMvaW9zL3JvdGF0aW9uL2xheW91dC12aWV3cG9ydC1kdXJpbmctc2FmYXJpLXR5cGUt
cm90YXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW9zL3JvdGF0aW9u
L3Jlc291cmNlcy9yb3RhdGlvbi11dGlscy5qczogQWRkZWQuCisgICAgICAgIChzdHJpbmdGcm9t
UmVjdCk6CisgICAgICAgIChhY2N1bXVsYXRlTG9nKToKKyAgICAgICAgKGxvZ0ZpeGVkT2JqZWN0
KToKKyAgICAgICAgKGxvZ0ZpeGVkQW5kVmlld3BvcnRzKToKKyAgICAgICAgKGRvVGVzdCk6CisK
KzIwMTctMDUtMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAg
ICAgICAgW2lPUyBXSzJdIE1ha2Ugcm90YXRpb24gdGVzdHMgbW9yZSByZWxpYWJsZQogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxNzc4CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9yb3RhdGlvbi9sYXlvdXQtdmlld3Bv
cnQtZHVyaW5nLXJvdGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L2lvcy9yb3RhdGlvbi9sYXlvdXQtdmlld3BvcnQtZHVyaW5nLXJvdGF0aW9uLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yN2UwYWEwMDBhNzM5ZDU1OTBmOWMzOGIzOGUxZmUyNDc0ZDYxNDVmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3JvdGF0aW9uL2xh
eW91dC12aWV3cG9ydC1kdXJpbmctcm90YXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAg
QEAKK0JlZm9yZSByb3RhdGlvbgorbGF5b3V0Vmlld3BvcnQ6IDAsIDAgLSAzMjAgeCA1NDgKK3Zp
c3VhbFZpZXdwb3J0OiAwLCAwIC0gMzIwIHggNTQ4CitjbGllbnQgcmVjdCBvZiBmaXhlZCBvYmpl
Y3Q6MCwgMCAtIDMyMCB4IDU0OAorCitJbiBvcmllbnRhdGlvbmNoYW5nZSBldmVudCBoYW5kbGVy
OgorbGF5b3V0Vmlld3BvcnQ6IDAsIDAgLSAzMjAgeCA1NDgKK3Zpc3VhbFZpZXdwb3J0OiAwLCAw
IC0gMzIwIHggNTQ4CitjbGllbnQgcmVjdCBvZiBmaXhlZCBvYmplY3Q6MCwgMCAtIDMyMCB4IDU0
OAorCitJbiByZXNpemUgZXZlbnQgaGFuZGxlcjoKK2xheW91dFZpZXdwb3J0OiAwLCAwIC0gNTY4
IHggMzIwCit2aXN1YWxWaWV3cG9ydDogMCwgMCAtIDU2OCB4IDMyMAorY2xpZW50IHJlY3Qgb2Yg
Zml4ZWQgb2JqZWN0OjAsIDAgLSA1NjggeCAzMjAKKworQWZ0ZXIgcm90YXRpb24KK2xheW91dFZp
ZXdwb3J0OiAwLCAwIC0gNTY4IHggMzIwCit2aXN1YWxWaWV3cG9ydDogMCwgMCAtIDU2OCB4IDMy
MAorY2xpZW50IHJlY3Qgb2YgZml4ZWQgb2JqZWN0OjAsIDAgLSA1NjggeCAzMjAKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3JvdGF0aW9uL2xheW91dC12aWV3cG9y
dC1kdXJpbmctcm90YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9yb3Rh
dGlvbi9sYXlvdXQtdmlld3BvcnQtZHVyaW5nLXJvdGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjlh
MWIyNDIyMzMzYmM5NDYzYTZiY2NiM2FmOTkwZTc0OGM1ZDZhMQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9yb3RhdGlvbi9sYXlvdXQtdmlld3BvcnQtZHVy
aW5nLXJvdGF0aW9uLmh0bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+CisKKzxo
dG1sPgorPGhlYWQ+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwt
c2NhbGU9MS4wIj4KKyAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgaGVp
Z2h0OiAyMDAwcHg7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgICNleHRlbnQgeworICAg
ICAgICAgICAgcG9zaXRpb246IGZpeGVkOworICAgICAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlk
IHJnYmEoMCwgMCwgMTI4LCAwLjUpOworICAgICAgICAgICAgdG9wOiAwOworICAgICAgICAgICAg
bGVmdDogMDsKKyAgICAgICAgICAgIGJvdHRvbTogMDsKKyAgICAgICAgICAgIHJpZ2h0OiAwOwor
ICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3JvdGF0aW9uLXV0aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBm
dW5jdGlvbiBnZXRSb3RhdGlvblVJU2NyaXB0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0
dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB1aUNvbnRy
b2xsZXIuc2ltdWxhdGVSb3RhdGlvbignbGFuZHNjYXBlLXJpZ2h0JywgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kb0FmdGVyVmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxl
ci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAg
ICAgICAgfSk7CisgICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorICAgICAgICAKKyAgICAg
ICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsIGZ1bmN0aW9uKCkgeworICAgICAg
ICAgICAgYWNjdW11bGF0ZUxvZygnJyk7CisgICAgICAgICAgICBhY2N1bXVsYXRlTG9nKCdJbiBy
ZXNpemUgZXZlbnQgaGFuZGxlcjonKTsKKyAgICAgICAgICAgIGxvZ0ZpeGVkQW5kVmlld3BvcnRz
KCk7CisgICAgICAgIH0sIGZhbHNlKTsKKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignb3JpZW50YXRpb25jaGFuZ2UnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGFjY3VtdWxh
dGVMb2coJycpOworICAgICAgICAgICAgYWNjdW11bGF0ZUxvZygnSW4gb3JpZW50YXRpb25jaGFu
Z2UgZXZlbnQgaGFuZGxlcjonKTsKKyAgICAgICAgICAgIGxvZ0ZpeGVkQW5kVmlld3BvcnRzKCk7
CisgICAgICAgIH0sIGZhbHNlKTsKKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
bG9hZCcsIGRvVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cisg
ICAgPGRpdiBpZD0iZXh0ZW50Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9yb3RhdGlvbi9sYXlvdXQtdmlld3Bv
cnQtZHVyaW5nLXNhZmFyaS10eXBlLXJvdGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL2lvcy9yb3RhdGlvbi9sYXlvdXQtdmlld3BvcnQtZHVyaW5nLXNhZmFyaS10
eXBlLXJvdGF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZGRiOWFlYmZmYjY0NzQ2MjA4
OThjYzUwNjc2M2Q1ZGYxM2I4NTAzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvaW9zL3JvdGF0aW9uL2xheW91dC12aWV3cG9ydC1kdXJpbmctc2FmYXJpLXR5cGUt
cm90YXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjEgQEAKK0JlZm9yZSByb3RhdGlvbgor
bGF5b3V0Vmlld3BvcnQ6IDAsIDAgLSAzMjAgeCA1NDgKK3Zpc3VhbFZpZXdwb3J0OiAwLCAwIC0g
MzIwIHggNTQ4CitjbGllbnQgcmVjdCBvZiBmaXhlZCBvYmplY3Q6MCwgMCAtIDMyMCB4IDU0OAor
CitJbiBvcmllbnRhdGlvbmNoYW5nZSBldmVudCBoYW5kbGVyOgorKFRoaXMgd2lsbCB0cmlnZ2Vy
IHRoZSByZXNpemUgaGFuZGxlciBieSBmb3JjaW5nIGEgbGF5b3V0LikKKworSW4gcmVzaXplIGV2
ZW50IGhhbmRsZXI6CitsYXlvdXRWaWV3cG9ydDogMCwgMCAtIDU2OCB4IDMyMAordmlzdWFsVmll
d3BvcnQ6IDAsIDAgLSA1NjggeCAzMjAKK2NsaWVudCByZWN0IG9mIGZpeGVkIG9iamVjdDowLCAw
IC0gNTY4IHggMzIwCitsYXlvdXRWaWV3cG9ydDogMCwgMCAtIDU2OCB4IDMyMAordmlzdWFsVmll
d3BvcnQ6IDAsIDAgLSA1NjggeCAzMjAKK2NsaWVudCByZWN0IG9mIGZpeGVkIG9iamVjdDowLCAw
IC0gNTY4IHggMzIwCisKK0FmdGVyIHJvdGF0aW9uCitsYXlvdXRWaWV3cG9ydDogMCwgMCAtIDU2
OCB4IDU0OAordmlzdWFsVmlld3BvcnQ6IDAsIDAgLSA1NjggeCAzMjAKK2NsaWVudCByZWN0IG9m
IGZpeGVkIG9iamVjdDowLCAwIC0gNTY4IHggNTQ4CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL2lvcy9yb3RhdGlvbi9sYXlvdXQtdmlld3BvcnQtZHVyaW5nLXNhZmFyaS10
eXBlLXJvdGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvcm90YXRpb24v
bGF5b3V0LXZpZXdwb3J0LWR1cmluZy1zYWZhcmktdHlwZS1yb3RhdGlvbi5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmY4YmNhMjYyOTlkZTEyZWFmNjAwZWUzM2IwZDNkOGJmMWUzY2FlYzgKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvcm90YXRpb24vbGF5b3V0LXZpZXdw
b3J0LWR1cmluZy1zYWZhcmktdHlwZS1yb3RhdGlvbi5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwh
RE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3Bv
cnQ9dHJ1ZSBdIC0tPgorCis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0
IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEuMCI+CisgICAgPHN0eWxlPgorICAgICAgICBib2R5
IHsKKyAgICAgICAgICAgIGhlaWdodDogMjAwMHB4OworICAgICAgICB9CisgICAgICAgIAorICAg
ICAgICAjZXh0ZW50IHsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAgICAgICAgICAg
IGJvcmRlcjogMTBweCBzb2xpZCByZ2JhKDAsIDAsIDEyOCwgMC41KTsKKyAgICAgICAgICAgIHRv
cDogMDsKKyAgICAgICAgICAgIGxlZnQ6IDA7CisgICAgICAgICAgICBib3R0b206IDA7CisgICAg
ICAgICAgICByaWdodDogMDsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdCBzcmM9InJlc291cmNlcy9yb3RhdGlvbi11dGlscy5qcyI+PC9zY3JpcHQ+CisgICAg
PHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gZ2V0Um90YXRpb25VSVNjcmlwdCgpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHJldHVybiBgCisgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICAgICAgdWlDb250cm9sbGVyLnNpbXVsYXRlUm90YXRpb25MaWtlU2FmYXJpKCdsYW5k
c2NhcGUtcmlnaHQnLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdWlDb250cm9s
bGVyLmRvQWZ0ZXJWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUoZnVuY3Rpb24gKCkgeworICAgICAg
ICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAg
ICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7
YAorICAgICAgICB9CisgICAgICAgIAorICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcign
cmVzaXplJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBhY2N1bXVsYXRlTG9nKCcnKTsKKyAg
ICAgICAgICAgIGFjY3VtdWxhdGVMb2coJ0luIHJlc2l6ZSBldmVudCBoYW5kbGVyOicpOworICAg
ICAgICAgICAgbG9nRml4ZWRBbmRWaWV3cG9ydHMoKTsKKyAgICAgICAgfSwgZmFsc2UpOworCisg
ICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdvcmllbnRhdGlvbmNoYW5nZScsIGZ1bmN0
aW9uKCkgeworICAgICAgICAgICAgYWNjdW11bGF0ZUxvZygnJyk7CisgICAgICAgICAgICBhY2N1
bXVsYXRlTG9nKCdJbiBvcmllbnRhdGlvbmNoYW5nZSBldmVudCBoYW5kbGVyOicpOworICAgICAg
ICAgICAgYWNjdW11bGF0ZUxvZygnKFRoaXMgd2lsbCB0cmlnZ2VyIHRoZSByZXNpemUgaGFuZGxl
ciBieSBmb3JjaW5nIGEgbGF5b3V0LiknKTsKKyAgICAgICAgICAgIGxvZ0ZpeGVkQW5kVmlld3Bv
cnRzKCk7CisgICAgICAgIH0sIGZhbHNlKTsKKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFsc2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+CisgICAgPGRpdiBpZD0iZXh0ZW50Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9yb3RhdGlvbi9yZXNvdXJj
ZXMvcm90YXRpb24tdXRpbHMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvcm90YXRp
b24vcmVzb3VyY2VzL3JvdGF0aW9uLXV0aWxzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiNDI5NzMwZGE3ZTRk
ZDQ0NjE1ZjI5ZTdkNmVkZDBjYzdkMzg2MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9pb3Mvcm90YXRpb24vcmVzb3VyY2VzL3JvdGF0aW9uLXV0aWxzLmpzCkBA
IC0wLDAgKzEsNDkgQEAKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitpZiAod2luZG93LmludGVy
bmFscykKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRFbmFibGVkKHRy
dWUpOworCitmdW5jdGlvbiBzdHJpbmdGcm9tUmVjdChkb21SZWN0KQoreworICAgIHJldHVybiBg
JHtkb21SZWN0Lnh9LCAke2RvbVJlY3QueX0gLSAke2RvbVJlY3Qud2lkdGh9IHggJHtkb21SZWN0
LmhlaWdodH1gOworfQorCit2YXIgbG9nZ2luZyA9ICcnOworZnVuY3Rpb24gYWNjdW11bGF0ZUxv
ZyhzKQoreworICAgIGxvZ2dpbmcgKz0gcyArICdcbic7Cit9CisKK2Z1bmN0aW9uIGxvZ0ZpeGVk
T2JqZWN0KCkKK3sKKyAgICB2YXIgZml4ZWRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2V4dGVudCcpOworICAgIGFjY3VtdWxhdGVMb2coJ2NsaWVudCByZWN0IG9mIGZpeGVkIG9i
amVjdDonICsgc3RyaW5nRnJvbVJlY3QoZml4ZWRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpKSk7Cit9CisKK2Z1bmN0aW9uIGxvZ0ZpeGVkQW5kVmlld3BvcnRzKCkKK3sKKyAgICBhY2N1
bXVsYXRlTG9nKCdsYXlvdXRWaWV3cG9ydDogJyArIHN0cmluZ0Zyb21SZWN0KGludGVybmFscy5s
YXlvdXRWaWV3cG9ydFJlY3QoKSkpOworICAgIGFjY3VtdWxhdGVMb2coJ3Zpc3VhbFZpZXdwb3J0
OiAnICsgc3RyaW5nRnJvbVJlY3QoaW50ZXJuYWxzLnZpc3VhbFZpZXdwb3J0UmVjdCgpKSk7Cisg
ICAgbG9nRml4ZWRPYmplY3QoKTsKK30KKworZnVuY3Rpb24gZG9UZXN0KCkKK3sKKyAgICBhY2N1
bXVsYXRlTG9nKCdCZWZvcmUgcm90YXRpb24nKTsKKyAgICBsb2dGaXhlZEFuZFZpZXdwb3J0cygp
OworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHJldHVybjsKKworICAgIHRl
c3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0Um90YXRpb25VSVNjcmlwdCgpLCBmdW5jdGlvbihyZXN1
bHQpIHsKKyAgICAgICAgYWNjdW11bGF0ZUxvZygnJyk7CisgICAgICAgIGFjY3VtdWxhdGVMb2co
J0FmdGVyIHJvdGF0aW9uJyk7CisgICAgICAgIGxvZ0ZpeGVkQW5kVmlld3BvcnRzKCk7CisgICAg
ICAgIAorICAgICAgICB2YXIgbG9nUHJlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncHJlJyk7
CisgICAgICAgIGxvZ1ByZS50ZXh0Q29udGVudCA9IGxvZ2dpbmc7CisgICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQobG9nUHJlKTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9KTsKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>309323</attachid>
            <date>2017-05-07 10:49:36 -0700</date>
            <delta_ts>2017-05-07 14:23:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171140-20170507104935.patch</filename>
            <type>text/plain</type>
            <size>31893</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE2MzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGZiNGU3ZjlhMTVjNjhh
NzVmNWY0MTFlOGU5MDg4ODE2ODFmYzEyZS4uNWM0NGE4YTgxMzRlYWNkYjVmZGQ5YjFjNTQyYjkw
ZWU2MTFhNDQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE3LTA1LTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFJFR1JF
U1NJT04gKHIyMDk0MDkpOiBnZXRCb3VuZGluZ0NsaWVudFJlY3QgaXMgd3JvbmcgZm9yIGZpeGVk
LXBvc2l0aW9uIGVsZW1lbnRzIGluIHJlc2l6ZS9vcmllbnRhdGlvbmNoYW5nZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTQwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViUGFnZTo6ZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZSgpIGlzIGNhbGxlZCBkdXJpbmcgcm90YXRpb24sIGFuZCBkb2VzIGEg
bGF5b3V0IHdoaWNoIG5lZWRzIHRvIGhhdmUKKyAgICAgICAgYW4gdXAtdG8tZGF0ZSBsYXlvdXQg
dmlld3BvcnQsIHNpbmNlIHRoZSBsYXlvdXQgdmlld3BvcnQgc3RhdGUgaXMgZGV0ZWN0YWJsZSBp
biBvcmllbnRhdGlvbmNoYW5nZSBhbmQKKyAgICAgICAgcmVzaXplIGV2ZW50cyB2aWEgZmV0Y2hp
bmcgdGhlIGNsaWVudCByZWN0IG9mIGZpeGVkIGVsZW1lbnRzLiBOb3JtYWxseSB3ZSBzZW5kIGlu
IHRoZSBsYXlvdXQgdmlld3BvcnQKKyAgICAgICAgZnJvbSB0aGUgVUkgcHJvY2VzcywgYnV0IGlu
IHRoaXMgY2FzZSB3ZSBuZWVkIHRvIGNvbXB1dGUgb25lIGluIHRoZSB3ZWIgcHJvY2Vzcy4gU28g
ZmFjdG9yIGNvZGUKKyAgICAgICAgaW50byBGcmFtZVZpZXcgdG8gZG8gdGhlIGNvbXB1dGF0aW9u
LCBjYWxsZWQgZnJvbSBib3RoIHBsYWNlcy4KKworICAgICAgICBUZXN0czogZmFzdC9ldmVudHMv
aW9zL3JvdGF0aW9uL2xheW91dC12aWV3cG9ydC1kdXJpbmctcm90YXRpb24uaHRtbAorICAgICAg
ICAgICAgICAgZmFzdC9ldmVudHMvaW9zL3JvdGF0aW9uL2xheW91dC12aWV3cG9ydC1kdXJpbmct
c2FmYXJpLXR5cGUtcm90YXRpb24uaHRtbAorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpjb21wdXRlVXBkYXRlZExheW91dFZpZXdw
b3J0UmVjdCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKwogMjAxNy0wNS0wNyAgU2Ft
IFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEltcGxlbWVudCBTdWJyZXNvdXJj
ZSBJbnRlZ3JpdHkgKFNSSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxZjEwNThkZWE4YjYyNzI2OGE5NDBmOGRk
OWI2Mzk0ZWViNzg1YzljLi45ZmU4MzkwYjgwOTFhOWNmZjUzZjViYjU5MGJhOTY0ZjE3Zjk4MTI2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTctMDUtMDYgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gUkVHUkVTU0lPTiAocjIw
OTQwOSk6IGdldEJvdW5kaW5nQ2xpZW50UmVjdCBpcyB3cm9uZyBmb3IgZml4ZWQtcG9zaXRpb24g
ZWxlbWVudHMgaW4gcmVzaXplL29yaWVudGF0aW9uY2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExNDAKKyAgICAgICAgcmRhcjovL3Byb2Js
ZW0vMzE3NjUxNjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKCkgaXMgY2FsbGVkIGR1cmlu
ZyByb3RhdGlvbiwgYW5kIGRvZXMgYSBsYXlvdXQgd2hpY2ggbmVlZHMgdG8gaGF2ZQorICAgICAg
ICBhbiB1cC10by1kYXRlIGxheW91dCB2aWV3cG9ydCwgc2luY2UgdGhlIGxheW91dCB2aWV3cG9y
dCBzdGF0ZSBpcyBkZXRlY3RhYmxlIGluIG9yaWVudGF0aW9uY2hhbmdlIGFuZAorICAgICAgICBy
ZXNpemUgZXZlbnRzIHZpYSBmZXRjaGluZyB0aGUgY2xpZW50IHJlY3Qgb2YgZml4ZWQgZWxlbWVu
dHMuIE5vcm1hbGx5IHdlIHNlbmQgaW4gdGhlIGxheW91dCB2aWV3cG9ydAorICAgICAgICBmcm9t
IHRoZSBVSSBwcm9jZXNzLCBidXQgaW4gdGhpcyBjYXNlIHdlIG5lZWQgdG8gY29tcHV0ZSBvbmUg
aW4gdGhlIHdlYiBwcm9jZXNzLiBTbyBmYWN0b3IgY29kZQorICAgICAgICBpbnRvIEZyYW1lVmll
dyB0byBkbyB0aGUgY29tcHV0YXRpb24sIGNhbGxlZCBmcm9tIGJvdGggcGxhY2VzLgorCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y3VzdG9tRml4ZWRQb3NpdGlvblJlY3Qp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBkaWRVcGRhdGVWaXNpYmxlUmVjdDp1bm9ic2N1cmVkUmVjdDp1bm9ic2N1
cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzOm9ic2N1cmVkSW5zZXRzOnVub2JzY3VyZWRT
YWZlQXJlYUluc2V0czppbnB1dFZpZXdCb3VuZHM6c2NhbGU6bWluaW11bVNjYWxlOmluU3RhYmxl
U3RhdGU6aXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseTplbmNsb3NlZEluU2Ny
b2xsYWJsZUFuY2VzdG9yVmlldzpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpjb21wdXRlQ3VzdG9t
Rml4ZWRQb3NpdGlvblJlY3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmR5
bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUpOgorCiAyMDE3LTA1LTA2ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQWxpZ24gb3VyIElETCBmaWxlcyB3aXRoIHRoZSBs
YXRlc3QgRE9NIHNwZWNpZmljYXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA2
NzE5ZTkwNjEwNTRiYjVjOTU2YjMxZTRmOTZkY2I5OTdiNmVlMmQ3Li4zMTBmM2I0MGJmMzIxODFk
NGEzYWUyM2NkZWQxNGQ2MTkyOGQ0MzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBA
IC0xODExLDYgKzE4MTEsMjggQEAgdm9pZCBGcmFtZVZpZXc6OnJlbW92ZVZpZXdwb3J0Q29uc3Ry
YWluZWRPYmplY3QoUmVuZGVyRWxlbWVudCogb2JqZWN0KQogICAgIH0KIH0KIAorTGF5b3V0UmVj
dCBGcmFtZVZpZXc6OmNvbXB1dGVVcGRhdGVkTGF5b3V0Vmlld3BvcnRSZWN0KGNvbnN0IExheW91
dFJlY3QmIGxheW91dFZpZXdwb3J0LCBjb25zdCBMYXlvdXRSZWN0JiBkb2N1bWVudFJlY3QsIGNv
bnN0IExheW91dFNpemUmIHVub2JzY3VyZWRDb250ZW50U2l6ZSwgY29uc3QgTGF5b3V0UmVjdCYg
dW5vYnNjdXJlZENvbnRlbnRSZWN0LCBjb25zdCBMYXlvdXRTaXplJiBiYXNlTGF5b3V0Vmlld3Bv
cnRTaXplLCBjb25zdCBMYXlvdXRQb2ludCYgc3RhYmxlTGF5b3V0Vmlld3BvcnRPcmlnaW5NaW4s
IGNvbnN0IExheW91dFBvaW50JiBzdGFibGVMYXlvdXRWaWV3cG9ydE9yaWdpbk1heCwgTGF5b3V0
Vmlld3BvcnRDb25zdHJhaW50IGNvbnN0cmFpbnQpCit7CisgICAgTGF5b3V0UmVjdCBsYXlvdXRW
aWV3cG9ydFJlY3QgPSBsYXlvdXRWaWV3cG9ydDsKKyAgICAKKyAgICAvLyBUaGUgbGF5b3V0IHZp
ZXdwb3J0IGlzIG5ldmVyIHNtYWxsZXIgdGhhbiBiYXNlTGF5b3V0Vmlld3BvcnRTaXplLCBhbmQg
bmV2ZXIgYmUgc21hbGxlciB0aGFuIHRoZSB1bm9ic2N1cmVkQ29udGVudFJlY3QuCisgICAgTGF5
b3V0U2l6ZSBjb25zdHJhaW5lZFNpemUgPSBiYXNlTGF5b3V0Vmlld3BvcnRTaXplOworICAgIGxh
eW91dFZpZXdwb3J0UmVjdC5zZXRTaXplKGNvbnN0cmFpbmVkU2l6ZS5leHBhbmRlZFRvKHVub2Jz
Y3VyZWRDb250ZW50U2l6ZSkpOworICAgICAgICAKKyAgICBMYXlvdXRQb2ludCBsYXlvdXRWaWV3
cG9ydE9yaWdpbiA9IGNvbXB1dGVMYXlvdXRWaWV3cG9ydE9yaWdpbih1bm9ic2N1cmVkQ29udGVu
dFJlY3QsIHN0YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luTWluLCBzdGFibGVMYXlvdXRWaWV3cG9y
dE9yaWdpbk1heCwgbGF5b3V0Vmlld3BvcnRSZWN0LCBTdGlja1RvVmlld3BvcnRCb3VuZHMpOwor
ICAgICAgICAKKyAgICBpZiAoY29uc3RyYWludCA9PSBMYXlvdXRWaWV3cG9ydENvbnN0cmFpbnQ6
OkNvbnN0cmFpbmVkVG9Eb2N1bWVudFJlY3QpIHsKKyAgICAgICAgLy8gVGhlIG1heCBzdGFibGUg
bGF5b3V0IHZpZXdwb3J0IG9yaWdpbiByZWFsbHkgZGVwZW5kcyBvbiB0aGUgc2l6ZSBvZiB0aGUg
bGF5b3V0IHZpZXdwb3J0IGl0c2VsZiwgc28gd2UgbmVlZCB0byBhZGp1c3QgdGhlIGxvY2F0aW9u
IG9mIHRoZSBsYXlvdXQgdmlld3BvcnQgb25lIGZpbmFsIHRpbWUgdG8gbWFrZSBzdXJlIGl0IGRv
ZXMgbm90IGVuZCB1cCBvdXQgb2YgYm91bmRzIG9mIHRoZSBkb2N1bWVudC4KKyAgICAgICAgLy8g
V2l0aG91dCB0aGlzIGFkanVzdG1lbnQgKGFuZCB3aXRoIHVzaW5nIHRoZSBub24tY29uc3RyYWlu
ZWQgdW5vYnNjdXJlZENvbnRlbnRSZWN0J3Mgc2l6ZSBhcyB0aGUgc2l6ZSBvZiB0aGUgbGF5b3V0
IHZpZXdwb3J0KSB0aGUgbGF5b3V0IHZpZXdwb3J0IGNhbiBiZSBwdXNoZWQgcGFzdCB0aGUgYm91
bmRzIG9mIHRoZSBkb2N1bWVudCBkdXJpbmcgcnViYmVyLWJhbmRpbmcsIGFuZCBjYW5ub3QgYmUg
cHVzaGVkCisgICAgICAgIC8vIGJhY2sgaW4gdW50aWwgdGhlIHVzZXIgc2Nyb2xscyBiYWNrIGlu
IHRoZSBvdGhlciBkaXJlY3Rpb24uCisgICAgICAgIGxheW91dFZpZXdwb3J0T3JpZ2luLnNldFgo
Y2xhbXBUbzxmbG9hdD4obGF5b3V0Vmlld3BvcnRPcmlnaW4ueCgpLCAwLCBkb2N1bWVudFJlY3Qu
d2lkdGgoKSAtIGxheW91dFZpZXdwb3J0UmVjdC53aWR0aCgpKSk7CisgICAgICAgIGxheW91dFZp
ZXdwb3J0T3JpZ2luLnNldFkoY2xhbXBUbzxmbG9hdD4obGF5b3V0Vmlld3BvcnRPcmlnaW4ueSgp
LCAwLCBkb2N1bWVudFJlY3QuaGVpZ2h0KCkgLSBsYXlvdXRWaWV3cG9ydFJlY3QuaGVpZ2h0KCkp
KTsKKyAgICB9CisgICAgbGF5b3V0Vmlld3BvcnRSZWN0LnNldExvY2F0aW9uKGxheW91dFZpZXdw
b3J0T3JpZ2luKTsKKyAgICAKKyAgICByZXR1cm4gbGF5b3V0Vmlld3BvcnRSZWN0OworfQorCiAv
LyB2aXN1YWxWaWV3cG9ydCBhbmQgbGF5b3V0Vmlld3BvcnQgYXJlIGJvdGggaW4gY29udGVudCBj
b29yZGluYXRlcyAodW56b29tZWQpLgogTGF5b3V0UG9pbnQgRnJhbWVWaWV3Ojpjb21wdXRlTGF5
b3V0Vmlld3BvcnRPcmlnaW4oY29uc3QgTGF5b3V0UmVjdCYgdmlzdWFsVmlld3BvcnQsIGNvbnN0
IExheW91dFBvaW50JiBzdGFibGVMYXlvdXRWaWV3cG9ydE9yaWdpbk1pbiwgY29uc3QgTGF5b3V0
UG9pbnQmIHN0YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luTWF4LCBjb25zdCBMYXlvdXRSZWN0JiBs
YXlvdXRWaWV3cG9ydCwgU2Nyb2xsQmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRzIGZpeGVkQmVoYXZp
b3IpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBiMTRmZWYzM2I3NDYyNjY4MjNkODM0
NTA0YmI2YTdkNzQ1NjJmMzU5Li4xOTBiN2Q1YTEzYWY0NDg0NTFhMDA0Mjg0M2VlNTZlMGVkNDg1
ZTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTMwNSw3ICszMDUsMTAgQEAgcHVibGlj
OgogICAgIC8vIFN0YXRpYyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGZyb20gYW5vdGhlciB0aHJl
YWQuCiAgICAgc3RhdGljIExheW91dFBvaW50IHNjcm9sbFBvc2l0aW9uRm9yRml4ZWRQb3NpdGlv
bihjb25zdCBMYXlvdXRSZWN0JiB2aXNpYmxlQ29udGVudFJlY3QsIGNvbnN0IExheW91dFNpemUm
IHRvdGFsQ29udGVudHNTaXplLCBjb25zdCBMYXlvdXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNv
bnN0IExheW91dFBvaW50JiBzY3JvbGxPcmlnaW4sIGZsb2F0IGZyYW1lU2NhbGVGYWN0b3IsIGJv
b2wgZml4ZWRFbGVtZW50c0xheW91dFJlbGF0aXZlVG9GcmFtZSwgU2Nyb2xsQmVoYXZpb3JGb3JG
aXhlZEVsZW1lbnRzLCBpbnQgaGVhZGVySGVpZ2h0LCBpbnQgZm9vdGVySGVpZ2h0KTsKIAotICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBMYXlvdXRQb2ludCBjb21wdXRlTGF5b3V0Vmlld3BvcnRP
cmlnaW4oY29uc3QgTGF5b3V0UmVjdCYgdmlzdWFsVmlld3BvcnQsIGNvbnN0IExheW91dFBvaW50
JiBzdGFibGVMYXlvdXRWaWV3cG9ydE9yaWdpbk1pbiwgY29uc3QgTGF5b3V0UG9pbnQmIHN0YWJs
ZUxheW91dFZpZXdwb3J0T3JpZ2luTWF4LCBjb25zdCBMYXlvdXRSZWN0JiBsYXlvdXRWaWV3cG9y
dCwgU2Nyb2xsQmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRzIGZpeGVkQmVoYXZpb3IpOworICAgIGVu
dW0gY2xhc3MgTGF5b3V0Vmlld3BvcnRDb25zdHJhaW50IHsgQ29uc3RyYWluZWRUb0RvY3VtZW50
UmVjdCwgVW5jb25zdHJhaW5lZCB9OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBMYXlvdXRS
ZWN0IGNvbXB1dGVVcGRhdGVkTGF5b3V0Vmlld3BvcnRSZWN0KGNvbnN0IExheW91dFJlY3QmIGxh
eW91dFZpZXdwb3J0LCBjb25zdCBMYXlvdXRSZWN0JiBkb2N1bWVudFJlY3QsIGNvbnN0IExheW91
dFNpemUmIHVub2JzY3VyZWRDb250ZW50U2l6ZSwgY29uc3QgTGF5b3V0UmVjdCYgdW5vYnNjdXJl
ZENvbnRlbnRSZWN0LCBjb25zdCBMYXlvdXRTaXplJiBiYXNlTGF5b3V0Vmlld3BvcnRTaXplLCBj
b25zdCBMYXlvdXRQb2ludCYgc3RhYmxlTGF5b3V0Vmlld3BvcnRPcmlnaW5NaW4sIGNvbnN0IExh
eW91dFBvaW50JiBzdGFibGVMYXlvdXRWaWV3cG9ydE9yaWdpbk1heCwgTGF5b3V0Vmlld3BvcnRD
b25zdHJhaW50KTsKKyAgICAKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTGF5b3V0UG9pbnQg
Y29tcHV0ZUxheW91dFZpZXdwb3J0T3JpZ2luKGNvbnN0IExheW91dFJlY3QmIHZpc3VhbFZpZXdw
b3J0LCBjb25zdCBMYXlvdXRQb2ludCYgc3RhYmxlTGF5b3V0Vmlld3BvcnRPcmlnaW5NaW4sIGNv
bnN0IExheW91dFBvaW50JiBzdGFibGVMYXlvdXRWaWV3cG9ydE9yaWdpbk1heCwgY29uc3QgTGF5
b3V0UmVjdCYgbGF5b3V0Vmlld3BvcnQsIFNjcm9sbEJlaGF2aW9yRm9yRml4ZWRFbGVtZW50cyk7
CiAKICAgICAvLyBUaGVzZSBsYXllcnMgYXJlIHBvc2l0aW9uZWQgZGlmZmVyZW50bHkgd2hlbiB0
aGVyZSBpcyBhIHRvcENvbnRlbnRJbnNldCwgYSBoZWFkZXIsIG9yIGEgZm9vdGVyLiBUaGVzZSB2
YWx1ZSBuZWVkIHRvIGJlIGNvbXB1dGVkCiAgICAgLy8gb24gYm90aCB0aGUgbWFpbiB0aHJlYWQg
YW5kIHRoZSBzY3JvbGxpbmcgdGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IGRkOTNkMDJjYTM2NmU2ZWExOWE4OTg2MDViYjNkMDMzZDM4MjQ3OTcuLjNi
OGZjMGY0Mzg0ZGZhYzdlZWE0MDI3NDIzNDM2Y2NmNDcwOTkxYzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTY4LDYgKzY4LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL0RyYWdBY3Rpb25zLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudFRyYWNraW5nUmVnaW9u
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvRnJhbWVWaWV3Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IaXRUZXN0UmVzdWx0Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9NZWRpYVByb2R1Y2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdl
Lmg+CkBAIC00OTksOCArNTAwLDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlVmlzaWJsZUNv
bnRlbnRSZWN0cyhjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJik7CiAgICAgdm9p
ZCByZXNlbmRMYXN0VmlzaWJsZUNvbnRlbnRSZWN0cygpOwogCi0gICAgZW51bSBjbGFzcyBVbm9i
c2N1cmVkUmVjdENvbnN0cmFpbnQgeyBDb25zdHJhaW5lZFRvRG9jdW1lbnRSZWN0LCBVbmNvbnN0
cmFpbmVkIH07Ci0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbXB1dGVDdXN0b21GaXhlZFBvc2l0
aW9uUmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5n
SW5wdXRWaWV3Qm91bmRzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGN1cnJlbnRDdXN0b21G
aXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIGRpc3BsYXllZENvbnRlbnRTY2FsZSwgVW5vYnNjdXJl
ZFJlY3RDb25zdHJhaW50ID0gVW5vYnNjdXJlZFJlY3RDb25zdHJhaW50OjpVbmNvbnN0cmFpbmVk
LCBib29sIHZpc3VhbFZpZXdwb3J0RW5hYmxlZCA9IGZhbHNlKSBjb25zdDsKKyAgICBXZWJDb3Jl
OjpGbG9hdFJlY3QgY29tcHV0ZUN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgY3VycmVudEN1c3RvbUZpeGVkUG9zaXRpb25SZWN0LCBkb3Vi
bGUgZGlzcGxheWVkQ29udGVudFNjYWxlLCBXZWJDb3JlOjpGcmFtZVZpZXc6OkxheW91dFZpZXdw
b3J0Q29uc3RyYWludCA9IFdlYkNvcmU6OkZyYW1lVmlldzo6TGF5b3V0Vmlld3BvcnRDb25zdHJh
aW50OjpVbmNvbnN0cmFpbmVkLCBib29sIHZpc3VhbFZpZXdwb3J0RW5hYmxlZCA9IGZhbHNlKSBj
b25zdDsKIAogICAgIHZvaWQgb3ZlcmZsb3dTY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgp
OwogICAgIHZvaWQgb3ZlcmZsb3dTY3JvbGxWaWV3RGlkU2Nyb2xsKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHlJT1MubW0KaW5kZXggZGI5MmYxMzVjYjg4NGE0YjExYjMyNGMyNTllOWFj
NWJjYTMwNzVjNS4uMWRlYmFkZDRkY2ZlNmM5OTU5MjUxZmU2ZmM2ZDM2NDgwOGI2NDY0OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVt
b3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbQpAQCAtOTYsNyArOTYsNyBAQCB2b2lk
IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmNvbm5lY3RTdGF0ZU5vZGVMYXllcnMo
U2Nyb2xsaW5nU3RhdGVUcmVlJgogRmxvYXRSZWN0IFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHk6OmN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV93
ZWJQYWdlUHJveHkuY29tcHV0ZUN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KG1fd2ViUGFnZVByb3h5
LnVub2JzY3VyZWRDb250ZW50UmVjdCgpLCBtX3dlYlBhZ2VQcm94eS51bm9ic2N1cmVkQ29udGVu
dFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzKCksIG1fd2ViUGFnZVByb3h5LmN1c3RvbUZp
eGVkUG9zaXRpb25SZWN0KCksCi0gICAgICAgIG1fd2ViUGFnZVByb3h5LmRpc3BsYXllZENvbnRl
bnRTY2FsZSgpLCBXZWJQYWdlUHJveHk6OlVub2JzY3VyZWRSZWN0Q29uc3RyYWludDo6VW5jb25z
dHJhaW5lZCwgdmlzdWFsVmlld3BvcnRFbmFibGVkKCkpOworICAgICAgICBtX3dlYlBhZ2VQcm94
eS5kaXNwbGF5ZWRDb250ZW50U2NhbGUoKSwgRnJhbWVWaWV3OjpMYXlvdXRWaWV3cG9ydENvbnN0
cmFpbnQ6OlVuY29uc3RyYWluZWQsIHZpc3VhbFZpZXdwb3J0RW5hYmxlZCgpKTsKIH0KIAogdm9p
ZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZVdpbGxT
dGFydFBhbkdlc3R1cmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3Lm1tCmluZGV4IGM4ZTExMGE5MWY3Zjc0NTA0ZTc0YjU2NDljMTZjMDQxMjVjNzBiNmEu
LjQzNjM1MGQxMTYzOGMzMjFiMDc3ZDBjMTdmNTE5NmQwNTQ0ZTI5ZGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KQEAgLTQwNiw3ICs0MDYsNyBA
QCAtICh2b2lkKWRpZFVwZGF0ZVZpc2libGVSZWN0OihDR1JlY3QpdmlzaWJsZUNvbnRlbnRSZWN0
CiAgICAgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSogc2Nyb2xsaW5nQ29vcmRpbmF0
b3IgPSBfcGFnZS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpOwogCiAgICAgQ0dSZWN0IHVu
b2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMgPSBbc2VsZiBfY29t
cHV0ZVVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHM6dW5vYnNj
dXJlZENvbnRlbnRSZWN0IGlucHV0Vmlld0JvdW5kczppbnB1dFZpZXdCb3VuZHNdOwotICAgIEZs
b2F0UmVjdCBmaXhlZFBvc2l0aW9uUmVjdEZvckxheW91dCA9IF9wYWdlLT5jb21wdXRlQ3VzdG9t
Rml4ZWRQb3NpdGlvblJlY3QodW5vYnNjdXJlZENvbnRlbnRSZWN0LCB1bm9ic2N1cmVkQ29udGVu
dFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzLCBfcGFnZS0+Y3VzdG9tRml4ZWRQb3NpdGlv
blJlY3QoKSwgem9vbVNjYWxlLCBXZWJQYWdlUHJveHk6OlVub2JzY3VyZWRSZWN0Q29uc3RyYWlu
dDo6Q29uc3RyYWluZWRUb0RvY3VtZW50UmVjdCwgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnZpc3Vh
bFZpZXdwb3J0RW5hYmxlZCgpKTsKKyAgICBGbG9hdFJlY3QgZml4ZWRQb3NpdGlvblJlY3RGb3JM
YXlvdXQgPSBfcGFnZS0+Y29tcHV0ZUN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KHVub2JzY3VyZWRD
b250ZW50UmVjdCwgdW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5k
cywgX3BhZ2UtPmN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KCksIHpvb21TY2FsZSwgRnJhbWVWaWV3
OjpMYXlvdXRWaWV3cG9ydENvbnN0cmFpbnQ6OkNvbnN0cmFpbmVkVG9Eb2N1bWVudFJlY3QsIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yLT52aXN1YWxWaWV3cG9ydEVuYWJsZWQoKSk7CiAKICAgICBWaXNp
YmxlQ29udGVudFJlY3RVcGRhdGVJbmZvIHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8oCiAg
ICAgICAgIHZpc2libGVDb250ZW50UmVjdCwKQEAgLTQzNSw3ICs0MzUsNyBAQCAtICh2b2lkKWRp
ZFVwZGF0ZVZpc2libGVSZWN0OihDR1JlY3QpdmlzaWJsZUNvbnRlbnRSZWN0CiAKICAgICBfc2l6
ZUNoYW5nZWRTaW5jZUxhc3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUgPSBOTzsKIAotICAgIEZs
b2F0UmVjdCBmaXhlZFBvc2l0aW9uUmVjdCA9IF9wYWdlLT5jb21wdXRlQ3VzdG9tRml4ZWRQb3Np
dGlvblJlY3QoX3BhZ2UtPnVub2JzY3VyZWRDb250ZW50UmVjdCgpLCBfcGFnZS0+dW5vYnNjdXJl
ZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5kcygpLCBfcGFnZS0+Y3VzdG9tRml4
ZWRQb3NpdGlvblJlY3QoKSwgem9vbVNjYWxlLCBXZWJQYWdlUHJveHk6OlVub2JzY3VyZWRSZWN0
Q29uc3RyYWludDo6VW5jb25zdHJhaW5lZCwgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnZpc3VhbFZp
ZXdwb3J0RW5hYmxlZCgpKTsKKyAgICBGbG9hdFJlY3QgZml4ZWRQb3NpdGlvblJlY3QgPSBfcGFn
ZS0+Y29tcHV0ZUN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KF9wYWdlLT51bm9ic2N1cmVkQ29udGVu
dFJlY3QoKSwgX3BhZ2UtPnVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdC
b3VuZHMoKSwgX3BhZ2UtPmN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KCksIHpvb21TY2FsZSwgRnJh
bWVWaWV3OjpMYXlvdXRWaWV3cG9ydENvbnN0cmFpbnQ6OlVuY29uc3RyYWluZWQsIHNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLT52aXN1YWxWaWV3cG9ydEVuYWJsZWQoKSk7CiAgICAgc2Nyb2xsaW5nQ29v
cmRpbmF0b3ItPnZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhzY3JvbGxpbmdD
b29yZGluYXRvci0+cm9vdFNjcm9sbGluZ05vZGVJRCgpLCBmaXhlZFBvc2l0aW9uUmVjdCwgem9v
bVNjYWxlKTsKIAogICAgIGRyYXdpbmdBcmVhLT51cGRhdGVEZWJ1Z0luZGljYXRvcigpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCA0
N2FlNmIzMWExMTgzZWVmYjY0MzlhNWUyYzI2MDg4OWMwOGQ1NmQ4Li5jZmQxZTIzMzg3ZjZiN2E2
MTg0ZGViZDg0NzI4NDVkOTVkZjNjYWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMjMxLDcgKzIzMSw3IEBAIHN0YXRpYyBpbmxp
bmUgZmxvYXQgYWRqdXN0ZWRVbmV4cG9zZWRNYXhFZGdlKGZsb2F0IGRvY3VtZW50RWRnZSwgZmxv
YXQgZXhwb3NlZFJlCiB9CiAKIC8vIEZJWE1FOiByZW5hbWUgdGhpcyB3aGVuIHZpc3VhbCB2aWV3
cG9ydHMgYXJlIHRoZSBkZWZhdWx0LgotV2ViQ29yZTo6RmxvYXRSZWN0IFdlYlBhZ2VQcm94eTo6
Y29tcHV0ZUN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KGNvbnN0IEZsb2F0UmVjdCYgdW5vYnNjdXJl
ZENvbnRlbnRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdFJlc3Bl
Y3RpbmdJbnB1dFZpZXdCb3VuZHMsIGNvbnN0IEZsb2F0UmVjdCYgY3VycmVudEN1c3RvbUZpeGVk
UG9zaXRpb25SZWN0LCBkb3VibGUgZGlzcGxheWVkQ29udGVudFNjYWxlLCBVbm9ic2N1cmVkUmVj
dENvbnN0cmFpbnQgY29uc3RyYWludCwgYm9vbCB2aXN1YWxWaWV3cG9ydEVuYWJsZWQpIGNvbnN0
CitXZWJDb3JlOjpGbG9hdFJlY3QgV2ViUGFnZVByb3h5Ojpjb21wdXRlQ3VzdG9tRml4ZWRQb3Np
dGlvblJlY3QoY29uc3QgRmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVudFJlY3QsIGNvbnN0IEZs
b2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5kcywg
Y29uc3QgRmxvYXRSZWN0JiBjdXJyZW50Q3VzdG9tRml4ZWRQb3NpdGlvblJlY3QsIGRvdWJsZSBk
aXNwbGF5ZWRDb250ZW50U2NhbGUsIEZyYW1lVmlldzo6TGF5b3V0Vmlld3BvcnRDb25zdHJhaW50
IGNvbnN0cmFpbnQsIGJvb2wgdmlzdWFsVmlld3BvcnRFbmFibGVkKSBjb25zdAogewogICAgIEZs
b2F0UmVjdCBjb25zdHJhaW5lZFVub2JzY3VyZWRSZWN0ID0gdW5vYnNjdXJlZENvbnRlbnRSZWN0
OwogICAgIEZsb2F0UmVjdCBkb2N1bWVudFJlY3QgPSBtX3BhZ2VDbGllbnQuZG9jdW1lbnRSZWN0
KCk7CkBAIC0yMzksNyArMjM5LDcgQEAgV2ViQ29yZTo6RmxvYXRSZWN0IFdlYlBhZ2VQcm94eTo6
Y29tcHV0ZUN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KGNvbnN0IEZsb2F0UmVjdCYKICAgICBpZiAo
IXZpc3VhbFZpZXdwb3J0RW5hYmxlZCAmJiBtX3BhZ2VDbGllbnQuaXNBc3Npc3RpbmdOb2RlKCkp
CiAgICAgICAgIHJldHVybiBkb2N1bWVudFJlY3Q7CiAKLSAgICBpZiAoY29uc3RyYWludCA9PSBV
bm9ic2N1cmVkUmVjdENvbnN0cmFpbnQ6OkNvbnN0cmFpbmVkVG9Eb2N1bWVudFJlY3QpCisgICAg
aWYgKGNvbnN0cmFpbnQgPT0gRnJhbWVWaWV3OjpMYXlvdXRWaWV3cG9ydENvbnN0cmFpbnQ6OkNv
bnN0cmFpbmVkVG9Eb2N1bWVudFJlY3QpCiAgICAgICAgIGNvbnN0cmFpbmVkVW5vYnNjdXJlZFJl
Y3QuaW50ZXJzZWN0KGRvY3VtZW50UmVjdCk7CiAKICAgICBkb3VibGUgbWluaW11bVNjYWxlID0g
bV9wYWdlQ2xpZW50Lm1pbmltdW1ab29tU2NhbGUoKTsKQEAgLTI1MywzMyArMjUzLDE0IEBAIFdl
YkNvcmU6OkZsb2F0UmVjdCBXZWJQYWdlUHJveHk6OmNvbXB1dGVDdXN0b21GaXhlZFBvc2l0aW9u
UmVjdChjb25zdCBGbG9hdFJlY3QmCiAgICAgICAgIGNvbnN0cmFpbmVkVW5vYnNjdXJlZFJlY3Qu
c2V0V2lkdGgoYWRqdXN0ZWRVbmV4cG9zZWRNYXhFZGdlKGRvY3VtZW50UmVjdC5tYXhYKCksIGNv
bnN0cmFpbmVkVW5vYnNjdXJlZFJlY3QubWF4WCgpLCBmYWN0b3IpIC0gY29uc3RyYWluZWRVbm9i
c2N1cmVkUmVjdC54KCkpOwogICAgICAgICBjb25zdHJhaW5lZFVub2JzY3VyZWRSZWN0LnNldEhl
aWdodChhZGp1c3RlZFVuZXhwb3NlZE1heEVkZ2UoZG9jdW1lbnRSZWN0Lm1heFkoKSwgY29uc3Ry
YWluZWRVbm9ic2N1cmVkUmVjdC5tYXhZKCksIGZhY3RvcikgLSBjb25zdHJhaW5lZFVub2JzY3Vy
ZWRSZWN0LnkoKSk7CiAgICAgfQotICAgIAorCiAgICAgaWYgKCF2aXN1YWxWaWV3cG9ydEVuYWJs
ZWQpCiAgICAgICAgIHJldHVybiBGcmFtZVZpZXc6OnJlY3RGb3JWaWV3cG9ydENvbnN0cmFpbmVk
T2JqZWN0cyhlbmNsb3NpbmdMYXlvdXRSZWN0KGNvbnN0cmFpbmVkVW5vYnNjdXJlZFJlY3QpLCBM
YXlvdXRTaXplKGRvY3VtZW50UmVjdC5zaXplKCkpLCBkaXNwbGF5ZWRDb250ZW50U2NhbGUsIGZh
bHNlLCBTdGlja1RvVmlld3BvcnRCb3VuZHMpOwotCi0gICAgRmxvYXRSZWN0IGxheW91dFZpZXdw
b3J0UmVjdCA9IGN1cnJlbnRDdXN0b21GaXhlZFBvc2l0aW9uUmVjdDsKLQotICAgIC8vIFRoZSBs
YXlvdXQgdmlld3BvcnQgaXMgbmV2ZXIgc21hbGxlciB0aGFuIG1fYmFzZUxheW91dFZpZXdwb3J0
U2l6ZSwgYW5kIG5ldmVyIGJlIHNtYWxsZXIgdGhhbiB0aGUgY29uc3RyYWluZWRVbm9ic2N1cmVk
UmVjdC4KLSAgICBGbG9hdFNpemUgY29uc3RyYWluZWRTaXplID0gbV9iYXNlTGF5b3V0Vmlld3Bv
cnRTaXplOwotICAgIGlmIChpc0JlbG93TWluaW11bVNjYWxlKQotICAgICAgICBsYXlvdXRWaWV3
cG9ydFJlY3Quc2V0U2l6ZShjb25zdHJhaW5lZFNpemUuZXhwYW5kZWRUbyhjb25zdHJhaW5lZFVu
b2JzY3VyZWRSZWN0LnNpemUoKSkpOwotICAgIGVsc2UKLSAgICAgICAgbGF5b3V0Vmlld3BvcnRS
ZWN0LnNldFNpemUoY29uc3RyYWluZWRTaXplLmV4cGFuZGVkVG8odW5vYnNjdXJlZENvbnRlbnRS
ZWN0LnNpemUoKSkpOwotCi0gICAgTGF5b3V0UG9pbnQgbGF5b3V0Vmlld3BvcnRPcmlnaW47Ci0g
ICAgaWYgKGlzQmVsb3dNaW5pbXVtU2NhbGUpCi0gICAgICAgIGxheW91dFZpZXdwb3J0T3JpZ2lu
ID0gRnJhbWVWaWV3Ojpjb21wdXRlTGF5b3V0Vmlld3BvcnRPcmlnaW4oZW5jbG9zaW5nTGF5b3V0
UmVjdChjb25zdHJhaW5lZFVub2JzY3VyZWRSZWN0KSwgbV9taW5TdGFibGVMYXlvdXRWaWV3cG9y
dE9yaWdpbiwgbV9tYXhTdGFibGVMYXlvdXRWaWV3cG9ydE9yaWdpbiwgZW5jbG9zaW5nTGF5b3V0
UmVjdChsYXlvdXRWaWV3cG9ydFJlY3QpLCBTdGlja1RvVmlld3BvcnRCb3VuZHMpOwotICAgIGVs
c2UKLSAgICAgICAgbGF5b3V0Vmlld3BvcnRPcmlnaW4gPSBGcmFtZVZpZXc6OmNvbXB1dGVMYXlv
dXRWaWV3cG9ydE9yaWdpbihlbmNsb3NpbmdMYXlvdXRSZWN0KHVub2JzY3VyZWRDb250ZW50UmVj
dFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMpLCBtX21pblN0YWJsZUxheW91dFZpZXdwb3J0T3Jp
Z2luLCBtX21heFN0YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luLCBlbmNsb3NpbmdMYXlvdXRSZWN0
KGxheW91dFZpZXdwb3J0UmVjdCksIFN0aWNrVG9WaWV3cG9ydEJvdW5kcyk7Ci0KLSAgICBpZiAo
Y29uc3RyYWludCA9PSBVbm9ic2N1cmVkUmVjdENvbnN0cmFpbnQ6OkNvbnN0cmFpbmVkVG9Eb2N1
bWVudFJlY3QpIHsKLSAgICAgICAgLy8gVGhlIG1heCBzdGFibGUgbGF5b3V0IHZpZXdwb3J0IG9y
aWdpbiByZWFsbHkgZGVwZW5kcyBvbiB0aGUgc2l6ZSBvZiB0aGUgbGF5b3V0IHZpZXdwb3J0IGl0
c2VsZiwgc28gd2UgbmVlZCB0byBhZGp1c3QgdGhlIGxvY2F0aW9uIG9mIHRoZSBsYXlvdXQgdmll
d3BvcnQgb25lIGZpbmFsIHRpbWUgdG8gbWFrZSBzdXJlIGl0IGRvZXMgbm90IGVuZCB1cCBvdXQg
b2YgYm91bmRzIG9mIHRoZSBkb2N1bWVudC4KLSAgICAgICAgLy8gV2l0aG91dCB0aGlzIGFkanVz
dG1lbnQgKGFuZCB3aXRoIHVzaW5nIHRoZSBub24tY29uc3RyYWluZWQgdW5vYnNjdXJlZENvbnRl
bnRSZWN0J3Mgc2l6ZSBhcyB0aGUgc2l6ZSBvZiB0aGUgbGF5b3V0IHZpZXdwb3J0KSB0aGUgbGF5
b3V0IHZpZXdwb3J0IGNhbiBiZSBwdXNoZWQgcGFzdCB0aGUgYm91bmRzIG9mIHRoZSBkb2N1bWVu
dCBkdXJpbmcgcnViYmVyLWJhbmRpbmcsIGFuZCBjYW5ub3QgYmUgcHVzaGVkCi0gICAgICAgIC8v
IGJhY2sgaW4gdW50aWwgdGhlIHVzZXIgc2Nyb2xscyBiYWNrIGluIHRoZSBvdGhlciBkaXJlY3Rp
b24uCi0gICAgICAgIGxheW91dFZpZXdwb3J0T3JpZ2luLnNldFgoY2xhbXBUbzxmbG9hdD4obGF5
b3V0Vmlld3BvcnRPcmlnaW4ueCgpLCAwLCBkb2N1bWVudFJlY3Qud2lkdGgoKSAtIGxheW91dFZp
ZXdwb3J0UmVjdC53aWR0aCgpKSk7Ci0gICAgICAgIGxheW91dFZpZXdwb3J0T3JpZ2luLnNldFko
Y2xhbXBUbzxmbG9hdD4obGF5b3V0Vmlld3BvcnRPcmlnaW4ueSgpLCAwLCBkb2N1bWVudFJlY3Qu
aGVpZ2h0KCkgLSBsYXlvdXRWaWV3cG9ydFJlY3QuaGVpZ2h0KCkpKTsKLSAgICB9Ci0gICAgbGF5
b3V0Vmlld3BvcnRSZWN0LnNldExvY2F0aW9uKGxheW91dFZpZXdwb3J0T3JpZ2luKTsKKyAgICAg
ICAgCisgICAgRmxvYXRTaXplIGNvbnN0YWluZWRTaXplID0gaXNCZWxvd01pbmltdW1TY2FsZSA/
IGNvbnN0cmFpbmVkVW5vYnNjdXJlZFJlY3Quc2l6ZSgpIDogdW5vYnNjdXJlZENvbnRlbnRSZWN0
LnNpemUoKTsKKyAgICBGbG9hdFJlY3QgdW5vYnNjdXJlZENvbnRlbnRSZWN0Rm9yVmlld3BvcnQg
PSBpc0JlbG93TWluaW11bVNjYWxlID8gY29uc3RyYWluZWRVbm9ic2N1cmVkUmVjdCA6IHVub2Jz
Y3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHM7CisgICAgCisgICAgRmxv
YXRSZWN0IGxheW91dFZpZXdwb3J0UmVjdCA9IEZyYW1lVmlldzo6Y29tcHV0ZVVwZGF0ZWRMYXlv
dXRWaWV3cG9ydFJlY3QoTGF5b3V0UmVjdChjdXJyZW50Q3VzdG9tRml4ZWRQb3NpdGlvblJlY3Qp
LCBMYXlvdXRSZWN0KGRvY3VtZW50UmVjdCksIExheW91dFNpemUoY29uc3RhaW5lZFNpemUpLCBM
YXlvdXRSZWN0KHVub2JzY3VyZWRDb250ZW50UmVjdEZvclZpZXdwb3J0KSwgbV9iYXNlTGF5b3V0
Vmlld3BvcnRTaXplLCBtX21pblN0YWJsZUxheW91dFZpZXdwb3J0T3JpZ2luLCBtX21heFN0YWJs
ZUxheW91dFZpZXdwb3J0T3JpZ2luLCBjb25zdHJhaW50KTsKICAgICAKICAgICBpZiAobGF5b3V0
Vmlld3BvcnRSZWN0ICE9IGN1cnJlbnRDdXN0b21GaXhlZFBvc2l0aW9uUmVjdCkKICAgICAgICAg
TE9HX1dJVEhfU1RSRUFNKFZpc2libGVSZWN0cywgc3RyZWFtIDw8ICJXZWJQYWdlUHJveHk6OmNv
bXB1dGVDdXN0b21GaXhlZFBvc2l0aW9uUmVjdDogbmV3IGxheW91dCB2aWV3cG9ydCAgIiA8PCBs
YXlvdXRWaWV3cG9ydFJlY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IGZh
M2M5YTg2Y2U4MzYwNmFmMjA2MjBiMWY2NjBmMWQyY2Y4NWI5NTQuLmExYjIyOTk5NDdmYjEyNTdj
OGVlM2NjMjViNzM1OWI1M2YxZmU2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0K
QEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6
OmNvbW1pdExheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFucwogI2lmIFBMQVRGT1JN
KElPUykKICAgICBpZiAobV93ZWJQYWdlUHJveHkuc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgp
LT5oYXNGaXhlZE9yU3RpY2t5KCkpIHsKICAgICAgICAgLy8gSWYgd2UgZ290IGEgbmV3IGxheWVy
IGZvciBhIGZpeGVkIG9yIHN0aWNreSBub2RlLCBpdHMgcG9zaXRpb24gZnJvbSB0aGUgV2ViUHJv
Y2VzcyBpcyBwcm9iYWJseSBzdGFsZS4gV2UgbmVlZCB0byByZS1ydW4gdGhlICJ2aWV3cG9ydCIg
Y2hhbmdlZCBsb2dpYyB0byB1ZHBhdGUgaXQgd2l0aCBvdXIgVUktc2lkZSBzdGF0ZS4KLSAgICAg
ICAgRmxvYXRSZWN0IGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0ID0gbV93ZWJQYWdlUHJveHkuY29t
cHV0ZUN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KG1fd2ViUGFnZVByb3h5LnVub2JzY3VyZWRDb250
ZW50UmVjdCgpLCBtX3dlYlBhZ2VQcm94eS51bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5n
SW5wdXRWaWV3Qm91bmRzKCksIG1fd2ViUGFnZVByb3h5LmN1c3RvbUZpeGVkUG9zaXRpb25SZWN0
KCksIG1fd2ViUGFnZVByb3h5LmRpc3BsYXllZENvbnRlbnRTY2FsZSgpLCBXZWJQYWdlUHJveHk6
OlVub2JzY3VyZWRSZWN0Q29uc3RyYWludDo6VW5jb25zdHJhaW5lZCwgbV93ZWJQYWdlUHJveHku
c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpLT52aXN1YWxWaWV3cG9ydEVuYWJsZWQoKSk7Cisg
ICAgICAgIEZsb2F0UmVjdCBjdXN0b21GaXhlZFBvc2l0aW9uUmVjdCA9IG1fd2ViUGFnZVByb3h5
LmNvbXB1dGVDdXN0b21GaXhlZFBvc2l0aW9uUmVjdChtX3dlYlBhZ2VQcm94eS51bm9ic2N1cmVk
Q29udGVudFJlY3QoKSwgbV93ZWJQYWdlUHJveHkudW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVj
dGluZ0lucHV0Vmlld0JvdW5kcygpLCBtX3dlYlBhZ2VQcm94eS5jdXN0b21GaXhlZFBvc2l0aW9u
UmVjdCgpLCBtX3dlYlBhZ2VQcm94eS5kaXNwbGF5ZWRDb250ZW50U2NhbGUoKSwgRnJhbWVWaWV3
OjpMYXlvdXRWaWV3cG9ydENvbnN0cmFpbnQ6OlVuY29uc3RyYWluZWQsIG1fd2ViUGFnZVByb3h5
LnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKS0+dmlzdWFsVmlld3BvcnRFbmFibGVkKCkpOwog
ICAgICAgICBtX3dlYlBhZ2VQcm94eS5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCktPnZpZXdw
b3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhtX3dlYlBhZ2VQcm94eS5zY3JvbGxpbmdD
b29yZGluYXRvclByb3h5KCktPnJvb3RTY3JvbGxpbmdOb2RlSUQoKSwgY3VzdG9tRml4ZWRQb3Np
dGlvblJlY3QsIG1fd2ViUGFnZVByb3h5LmRpc3BsYXllZENvbnRlbnRTY2FsZSgpKTsKICAgICB9
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3Mv
V2ViUGFnZUlPUy5tbQppbmRleCA2NWYwZTJiNjZhZWY0NzVmYTM5YmY4NmY2NGYyMDc0NWE1M2E3
YTY3Li4yNTI4YWY4NjZmMDdiZGYzZmJjMjk1ZTU2ZjlhMzllOGE4NTBjNjkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBA
IC0yODM3LDYgKzI4MzcsNyBAQCB2b2lkIFdlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGUoY29uc3QgRmxvYXRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29ucwogICAgIFNldEZvclNj
b3BlPGJvb2w+IGR5bmFtaWNTaXplVXBkYXRlR3VhcmQobV9pbkR5bmFtaWNTaXplVXBkYXRlLCB0
cnVlKTsKICAgICAvLyBGSVhNRTogdGhpcyBkb2VzIG5vdCBoYW5kbGUgdGhlIGNhc2VzIHdoZXJl
IHRoZSBjb250ZW50IHdvdWxkIGNoYW5nZSB0aGUgY29udGVudCBzaXplIG9yIHNjcm9sbCBwb3Np
dGlvbiBmcm9tIEphdmFTY3JpcHQuCiAgICAgLy8gVG8gaGFuZGxlIHRob3NlIGNhc2VzLCB3ZSB3
b3VsZCBuZWVkIHRvIHJlZG8gdGhpcyBjb21wdXRhdGlvbiBvbiBldmVyeSBjaGFuZ2UgdW50aWwg
dGhlIG5leHQgdmlzaWJsZSBjb250ZW50IHJlY3QgdXBkYXRlLgorICAgIExPR19XSVRIX1NUUkVB
TShWaXNpYmxlUmVjdHMsIHN0cmVhbSA8PCAiXG5XZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXpl
VXBkYXRlIC0gdGFyZ2V0VW5vYnNjdXJlZFJlY3QgIiA8PCB0YXJnZXRVbm9ic2N1cmVkUmVjdCA8
PCAiIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCAiIDw8IHRhcmdldEV4cG9zZWRDb250ZW50UmVj
dCA8PCAiIHRhcmdldFNjYWxlICIgPDwgdGFyZ2V0U2NhbGUpOwogCiAgICAgRnJhbWVWaWV3JiBm
cmFtZVZpZXcgPSAqbV9wYWdlLT5tYWluRnJhbWUoKS52aWV3KCk7CiAgICAgSW50U2l6ZSBvbGRD
b250ZW50U2l6ZSA9IGZyYW1lVmlldy5jb250ZW50c1NpemUoKTsKQEAgLTI5ODgsOCArMjk4OSwx
NSBAQCB2b2lkIFdlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3QgRmxvYXRT
aXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29ucwogICAgIHNjYWxlUGFnZShzY2FsZSwgcm91bmRl
ZFVub2JzY3VyZWRDb250ZW50UmVjdFBvc2l0aW9uKTsKIAogICAgIGZyYW1lVmlldy51cGRhdGVM
YXlvdXRBbmRTdHlsZUlmTmVlZGVkUmVjdXJzaXZlKCk7Ci0gICAgSW50UmVjdCBmaXhlZFBvc2l0
aW9uTGF5b3V0UmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoZnJhbWVWaWV3LnZpZXdwb3J0Q29uc3Ry
YWluZWRPYmplY3RzUmVjdCgpKTsKLSAgICBmcmFtZVZpZXcuc2V0Q3VzdG9tRml4ZWRQb3NpdGlv
bkxheW91dFJlY3QoZml4ZWRQb3NpdGlvbkxheW91dFJlY3QpOworCisgICAgaWYgKGZyYW1lVmll
dy5mcmFtZSgpLnNldHRpbmdzKCkudmlzdWFsVmlld3BvcnRFbmFibGVkKCkpIHsKKyAgICAgICAg
TGF5b3V0UmVjdCBkb2N1bWVudFJlY3QgPSBJbnRSZWN0KGZyYW1lVmlldy5zY3JvbGxPcmlnaW4o
KSwgZnJhbWVWaWV3LmNvbnRlbnRzU2l6ZSgpKTsKKyAgICAgICAgTGF5b3V0UmVjdCBsYXlvdXRW
aWV3cG9ydFJlY3QgPSBGcmFtZVZpZXc6OmNvbXB1dGVVcGRhdGVkTGF5b3V0Vmlld3BvcnRSZWN0
KGZyYW1lVmlldy5sYXlvdXRWaWV3cG9ydFJlY3QoKSwgZG9jdW1lbnRSZWN0LCBMYXlvdXRTaXpl
KG5ld1Vub2JzY3VyZWRDb250ZW50UmVjdC5zaXplKCkpLCBMYXlvdXRSZWN0KG5ld1Vub2JzY3Vy
ZWRDb250ZW50UmVjdCksIGZyYW1lVmlldy5iYXNlTGF5b3V0Vmlld3BvcnRTaXplKCksIGZyYW1l
Vmlldy5taW5TdGFibGVMYXlvdXRWaWV3cG9ydE9yaWdpbigpLCBmcmFtZVZpZXcubWF4U3RhYmxl
TGF5b3V0Vmlld3BvcnRPcmlnaW4oKSwgRnJhbWVWaWV3OjpMYXlvdXRWaWV3cG9ydENvbnN0cmFp
bnQ6OkNvbnN0cmFpbmVkVG9Eb2N1bWVudFJlY3QpOworICAgICAgICBmcmFtZVZpZXcuc2V0TGF5
b3V0Vmlld3BvcnRPdmVycmlkZVJlY3QobGF5b3V0Vmlld3BvcnRSZWN0KTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBJbnRSZWN0IGZpeGVkUG9zaXRpb25MYXlvdXRSZWN0ID0gZW5jbG9zaW5nSW50
UmVjdChmcmFtZVZpZXcudmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHNSZWN0KCkpOworICAgICAg
ICBmcmFtZVZpZXcuc2V0Q3VzdG9tRml4ZWRQb3NpdGlvbkxheW91dFJlY3QoZml4ZWRQb3NpdGlv
bkxheW91dFJlY3QpOworICAgIH0KIAogICAgIGZyYW1lVmlldy5zZXRDdXN0b21TaXplRm9yUmVz
aXplRXZlbnQoZXhwYW5kZWRJbnRTaXplKHRhcmdldFVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3
Q29vcmRpbmF0ZXMuc2l6ZSgpKSk7CiAgICAgc2V0RGV2aWNlT3JpZW50YXRpb24oZGV2aWNlT3Jp
ZW50YXRpb24pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDljMWI5NjExYWRlY2JhMGYxZmI0M2JjMGZmMTI1MzhmOTdmNzcz
NzYuLmIxZjc1OTFkY2Q0YTQ4MDQ1NzIwOTQxZjgxNDU4MTRmMDRjODA3MzkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNCBAQAorMjAxNy0wNS0wNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBbaU9TXSBSRUdSRVNTSU9OIChyMjA5NDA5KTogZ2V0Qm91bmRpbmdD
bGllbnRSZWN0IGlzIHdyb25nIGZvciBmaXhlZC1wb3NpdGlvbiBlbGVtZW50cyBpbiByZXNpemUv
b3JpZW50YXRpb25jaGFuZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3MTE0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3RzIHRoYXQgZmV0Y2ggdGhlIGRpbWVuc2lvbnMgb2YgYSBmaXhlZCBlbGVt
ZW50IGluIHJlc2l6ZSBhbmQgb3JpZW50YXRpb25jaGFuZ2UgaGFuZGxlcnMsCisgICAgICAgIHdo
aWNoIGlzIGEgcHJveHkgZm9yIHJlYWRpbmcgdGhlIGxheW91dCB2aWV3cG9ydC4KKworICAgICAg
ICAqIGZhc3QvZXZlbnRzL2lvcy9yb3RhdGlvbi9sYXlvdXQtdmlld3BvcnQtZHVyaW5nLXJvdGF0
aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW9zL3JvdGF0
aW9uL2xheW91dC12aWV3cG9ydC1kdXJpbmctcm90YXRpb24uaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9ldmVudHMvaW9zL3JvdGF0aW9uL2xheW91dC12aWV3cG9ydC1kdXJpbmctc2FmYXJp
LXR5cGUtcm90YXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50
cy9pb3Mvcm90YXRpb24vbGF5b3V0LXZpZXdwb3J0LWR1cmluZy1zYWZhcmktdHlwZS1yb3RhdGlv
bi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pb3Mvcm90YXRpb24vcmVzb3Vy
Y2VzL3JvdGF0aW9uLXV0aWxzLmpzOiBBZGRlZC4KKyAgICAgICAgKHN0cmluZ0Zyb21SZWN0KToK
KyAgICAgICAgKGFjY3VtdWxhdGVMb2cpOgorICAgICAgICAobG9nRml4ZWRPYmplY3QpOgorICAg
ICAgICAobG9nRml4ZWRBbmRWaWV3cG9ydHMpOgorICAgICAgICAoZG9UZXN0KToKKwogMjAxNy0w
NS0wNyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEltcGxlbWVudCBT
dWJyZXNvdXJjZSBJbnRlZ3JpdHkgKFNSSSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2lvcy9yb3RhdGlvbi9sYXlvdXQtdmlld3BvcnQtZHVyaW5nLXJvdGF0aW9uLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9yb3RhdGlvbi9sYXlvdXQtdmll
d3BvcnQtZHVyaW5nLXJvdGF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yN2UwYWEwMDBh
NzM5ZDU1OTBmOWMzOGIzOGUxZmUyNDc0ZDYxNDVmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvaW9zL3JvdGF0aW9uL2xheW91dC12aWV3cG9ydC1kdXJpbmctcm90
YXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjAgQEAKK0JlZm9yZSByb3RhdGlvbgorbGF5
b3V0Vmlld3BvcnQ6IDAsIDAgLSAzMjAgeCA1NDgKK3Zpc3VhbFZpZXdwb3J0OiAwLCAwIC0gMzIw
IHggNTQ4CitjbGllbnQgcmVjdCBvZiBmaXhlZCBvYmplY3Q6MCwgMCAtIDMyMCB4IDU0OAorCitJ
biBvcmllbnRhdGlvbmNoYW5nZSBldmVudCBoYW5kbGVyOgorbGF5b3V0Vmlld3BvcnQ6IDAsIDAg
LSAzMjAgeCA1NDgKK3Zpc3VhbFZpZXdwb3J0OiAwLCAwIC0gMzIwIHggNTQ4CitjbGllbnQgcmVj
dCBvZiBmaXhlZCBvYmplY3Q6MCwgMCAtIDMyMCB4IDU0OAorCitJbiByZXNpemUgZXZlbnQgaGFu
ZGxlcjoKK2xheW91dFZpZXdwb3J0OiAwLCAwIC0gNTY4IHggMzIwCit2aXN1YWxWaWV3cG9ydDog
MCwgMCAtIDU2OCB4IDMyMAorY2xpZW50IHJlY3Qgb2YgZml4ZWQgb2JqZWN0OjAsIDAgLSA1Njgg
eCAzMjAKKworQWZ0ZXIgcm90YXRpb24KK2xheW91dFZpZXdwb3J0OiAwLCAwIC0gNTY4IHggMzIw
Cit2aXN1YWxWaWV3cG9ydDogMCwgMCAtIDU2OCB4IDMyMAorY2xpZW50IHJlY3Qgb2YgZml4ZWQg
b2JqZWN0OjAsIDAgLSA1NjggeCAzMjAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvaW9zL3JvdGF0aW9uL2xheW91dC12aWV3cG9ydC1kdXJpbmctcm90YXRpb24uaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9yb3RhdGlvbi9sYXlvdXQtdmlld3BvcnQtZHVy
aW5nLXJvdGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjlhMWIyNDIyMzMzYmM5NDYzYTZiY2NiM2Fm
OTkwZTc0OGM1ZDZhMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L2lvcy9yb3RhdGlvbi9sYXlvdXQtdmlld3BvcnQtZHVyaW5nLXJvdGF0aW9uLmh0bWwKQEAgLTAs
MCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNl
RmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+CisKKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEg
bmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MS4wIj4KKyAgICA8c3R5bGU+
CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgaGVpZ2h0OiAyMDAwcHg7CisgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgICNleHRlbnQgeworICAgICAgICAgICAgcG9zaXRpb246IGZpeGVk
OworICAgICAgICAgICAgYm9yZGVyOiAxMHB4IHNvbGlkIHJnYmEoMCwgMCwgMTI4LCAwLjUpOwor
ICAgICAgICAgICAgdG9wOiAwOworICAgICAgICAgICAgbGVmdDogMDsKKyAgICAgICAgICAgIGJv
dHRvbTogMDsKKyAgICAgICAgICAgIHJpZ2h0OiAwOworICAgICAgICB9CisgICAgPC9zdHlsZT4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3JvdGF0aW9uLXV0aWxzLmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBmdW5jdGlvbiBnZXRSb3RhdGlvblVJU2Ny
aXB0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuc2ltdWxhdGVSb3RhdGlvbign
bGFuZHNjYXBlLXJpZ2h0JywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgIHVpQ29u
dHJvbGxlci5kb0FmdGVyVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlKGZ1bmN0aW9uICgpIHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7Cisg
ICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9
KSgpO2AKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoJ3Jlc2l6ZScsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYWNjdW11bGF0ZUxvZygnJyk7
CisgICAgICAgICAgICBhY2N1bXVsYXRlTG9nKCdJbiByZXNpemUgZXZlbnQgaGFuZGxlcjonKTsK
KyAgICAgICAgICAgIGxvZ0ZpeGVkQW5kVmlld3BvcnRzKCk7CisgICAgICAgIH0sIGZhbHNlKTsK
KworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignb3JpZW50YXRpb25jaGFuZ2UnLCBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgIGFjY3VtdWxhdGVMb2coJycpOworICAgICAgICAgICAg
YWNjdW11bGF0ZUxvZygnSW4gb3JpZW50YXRpb25jaGFuZ2UgZXZlbnQgaGFuZGxlcjonKTsKKyAg
ICAgICAgICAgIGxvZ0ZpeGVkQW5kVmlld3BvcnRzKCk7CisgICAgICAgIH0sIGZhbHNlKTsKKwor
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFsc2UpOwor
ICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0iZXh0ZW50Ij48L2Rp
dj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL2lvcy9yb3RhdGlvbi9sYXlvdXQtdmlld3BvcnQtZHVyaW5nLXNhZmFyaS10eXBlLXJv
dGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9yb3RhdGlv
bi9sYXlvdXQtdmlld3BvcnQtZHVyaW5nLXNhZmFyaS10eXBlLXJvdGF0aW9uLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mZGRiOWFlYmZmYjY0NzQ2MjA4OThjYzUwNjc2M2Q1ZGYxM2I4NTAzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3JvdGF0aW9uL2xh
eW91dC12aWV3cG9ydC1kdXJpbmctc2FmYXJpLXR5cGUtcm90YXRpb24tZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMjEgQEAKK0JlZm9yZSByb3RhdGlvbgorbGF5b3V0Vmlld3BvcnQ6IDAsIDAgLSAz
MjAgeCA1NDgKK3Zpc3VhbFZpZXdwb3J0OiAwLCAwIC0gMzIwIHggNTQ4CitjbGllbnQgcmVjdCBv
ZiBmaXhlZCBvYmplY3Q6MCwgMCAtIDMyMCB4IDU0OAorCitJbiBvcmllbnRhdGlvbmNoYW5nZSBl
dmVudCBoYW5kbGVyOgorKFRoaXMgd2lsbCB0cmlnZ2VyIHRoZSByZXNpemUgaGFuZGxlciBieSBm
b3JjaW5nIGEgbGF5b3V0LikKKworSW4gcmVzaXplIGV2ZW50IGhhbmRsZXI6CitsYXlvdXRWaWV3
cG9ydDogMCwgMCAtIDU2OCB4IDMyMAordmlzdWFsVmlld3BvcnQ6IDAsIDAgLSA1NjggeCAzMjAK
K2NsaWVudCByZWN0IG9mIGZpeGVkIG9iamVjdDowLCAwIC0gNTY4IHggMzIwCitsYXlvdXRWaWV3
cG9ydDogMCwgMCAtIDU2OCB4IDMyMAordmlzdWFsVmlld3BvcnQ6IDAsIDAgLSA1NjggeCAzMjAK
K2NsaWVudCByZWN0IG9mIGZpeGVkIG9iamVjdDowLCAwIC0gNTY4IHggMzIwCisKK0FmdGVyIHJv
dGF0aW9uCitsYXlvdXRWaWV3cG9ydDogMCwgMCAtIDU2OCB4IDU0OAordmlzdWFsVmlld3BvcnQ6
IDAsIDAgLSA1NjggeCAzMjAKK2NsaWVudCByZWN0IG9mIGZpeGVkIG9iamVjdDowLCAwIC0gNTY4
IHggNTQ4CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy9yb3RhdGlv
bi9sYXlvdXQtdmlld3BvcnQtZHVyaW5nLXNhZmFyaS10eXBlLXJvdGF0aW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvcm90YXRpb24vbGF5b3V0LXZpZXdwb3J0LWR1cmluZy1z
YWZhcmktdHlwZS1yb3RhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4YmNhMjYyOTlkZTEyZWFmNjAw
ZWUzM2IwZDNkOGJmMWUzY2FlYzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9pb3Mvcm90YXRpb24vbGF5b3V0LXZpZXdwb3J0LWR1cmluZy1zYWZhcmktdHlwZS1y
b3RhdGlvbi5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorCis8aHRtbD4K
KzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxl
PTEuMCI+CisgICAgPHN0eWxlPgorICAgICAgICBib2R5IHsKKyAgICAgICAgICAgIGhlaWdodDog
MjAwMHB4OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAjZXh0ZW50IHsKKyAgICAgICAg
ICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAgICAgICAgICAgIGJvcmRlcjogMTBweCBzb2xpZCByZ2Jh
KDAsIDAsIDEyOCwgMC41KTsKKyAgICAgICAgICAgIHRvcDogMDsKKyAgICAgICAgICAgIGxlZnQ6
IDA7CisgICAgICAgICAgICBib3R0b206IDA7CisgICAgICAgICAgICByaWdodDogMDsKKyAgICAg
ICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uLy4uL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9y
b3RhdGlvbi11dGlscy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rp
b24gZ2V0Um90YXRpb25VSVNjcmlwdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBg
CisgICAgICAgICAgICAoZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVy
LnNpbXVsYXRlUm90YXRpb25MaWtlU2FmYXJpKCdsYW5kc2NhcGUtcmlnaHQnLCBmdW5jdGlvbigp
IHsKKyAgICAgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLmRvQWZ0ZXJWaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGUoZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdWlDb250
cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgZnVuY3Rpb24oKSB7Cisg
ICAgICAgICAgICBhY2N1bXVsYXRlTG9nKCcnKTsKKyAgICAgICAgICAgIGFjY3VtdWxhdGVMb2co
J0luIHJlc2l6ZSBldmVudCBoYW5kbGVyOicpOworICAgICAgICAgICAgbG9nRml4ZWRBbmRWaWV3
cG9ydHMoKTsKKyAgICAgICAgfSwgZmFsc2UpOworCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExp
c3RlbmVyKCdvcmllbnRhdGlvbmNoYW5nZScsIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgYWNj
dW11bGF0ZUxvZygnJyk7CisgICAgICAgICAgICBhY2N1bXVsYXRlTG9nKCdJbiBvcmllbnRhdGlv
bmNoYW5nZSBldmVudCBoYW5kbGVyOicpOworICAgICAgICAgICAgYWNjdW11bGF0ZUxvZygnKFRo
aXMgd2lsbCB0cmlnZ2VyIHRoZSByZXNpemUgaGFuZGxlciBieSBmb3JjaW5nIGEgbGF5b3V0Likn
KTsKKyAgICAgICAgICAgIGxvZ0ZpeGVkQW5kVmlld3BvcnRzKCk7CisgICAgICAgIH0sIGZhbHNl
KTsKKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIGRvVGVzdCwgZmFs
c2UpOworICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0iZXh0ZW50
Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL2lvcy9yb3RhdGlvbi9yZXNvdXJjZXMvcm90YXRpb24tdXRpbHMuanMgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvcm90YXRpb24vcmVzb3VyY2VzL3JvdGF0aW9uLXV0
aWxzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZiNDI5NzMwZGE3ZTRkZDQ0NjE1ZjI5ZTdkNmVkZDBjYzdkMzg2
MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3Mvcm90YXRp
b24vcmVzb3VyY2VzL3JvdGF0aW9uLXV0aWxzLmpzCkBAIC0wLDAgKzEsNDkgQEAKK2pzVGVzdElz
QXN5bmMgPSB0cnVlOworCitpZiAod2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0VmlzdWFsVmlld3BvcnRFbmFibGVkKHRydWUpOworCitmdW5jdGlvbiBzdHJpbmdG
cm9tUmVjdChkb21SZWN0KQoreworICAgIHJldHVybiBgJHtkb21SZWN0Lnh9LCAke2RvbVJlY3Qu
eX0gLSAke2RvbVJlY3Qud2lkdGh9IHggJHtkb21SZWN0LmhlaWdodH1gOworfQorCit2YXIgbG9n
Z2luZyA9ICcnOworZnVuY3Rpb24gYWNjdW11bGF0ZUxvZyhzKQoreworICAgIGxvZ2dpbmcgKz0g
cyArICdcbic7Cit9CisKK2Z1bmN0aW9uIGxvZ0ZpeGVkT2JqZWN0KCkKK3sKKyAgICB2YXIgZml4
ZWRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4dGVudCcpOworICAgIGFjY3Vt
dWxhdGVMb2coJ2NsaWVudCByZWN0IG9mIGZpeGVkIG9iamVjdDonICsgc3RyaW5nRnJvbVJlY3Qo
Zml4ZWRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpKSk7Cit9CisKK2Z1bmN0aW9uIGxv
Z0ZpeGVkQW5kVmlld3BvcnRzKCkKK3sKKyAgICBhY2N1bXVsYXRlTG9nKCdsYXlvdXRWaWV3cG9y
dDogJyArIHN0cmluZ0Zyb21SZWN0KGludGVybmFscy5sYXlvdXRWaWV3cG9ydFJlY3QoKSkpOwor
ICAgIGFjY3VtdWxhdGVMb2coJ3Zpc3VhbFZpZXdwb3J0OiAnICsgc3RyaW5nRnJvbVJlY3QoaW50
ZXJuYWxzLnZpc3VhbFZpZXdwb3J0UmVjdCgpKSk7CisgICAgbG9nRml4ZWRPYmplY3QoKTsKK30K
KworZnVuY3Rpb24gZG9UZXN0KCkKK3sKKyAgICBhY2N1bXVsYXRlTG9nKCdCZWZvcmUgcm90YXRp
b24nKTsKKyAgICBsb2dGaXhlZEFuZFZpZXdwb3J0cygpOworICAgIGlmICghd2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgIHJldHVybjsKKworICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0
Um90YXRpb25VSVNjcmlwdCgpLCBmdW5jdGlvbihyZXN1bHQpIHsKKyAgICAgICAgYWNjdW11bGF0
ZUxvZygnJyk7CisgICAgICAgIGFjY3VtdWxhdGVMb2coJ0FmdGVyIHJvdGF0aW9uJyk7CisgICAg
ICAgIGxvZ0ZpeGVkQW5kVmlld3BvcnRzKCk7CisgICAgICAgIAorICAgICAgICB2YXIgbG9nUHJl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgncHJlJyk7CisgICAgICAgIGxvZ1ByZS50ZXh0Q29u
dGVudCA9IGxvZ2dpbmc7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9nUHJl
KTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICB9KTsKK30K
</data>

          </attachment>
      

    </bug>

</bugzilla>