<?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>131469</bug_id>
          
          <creation_ts>2014-04-09 18:39:44 -0700</creation_ts>
          <short_desc>[iOS][WK2] Add the initial WebProcess handling of animated resize for rotation</short_desc>
          <delta_ts>2014-04-09 20:39:58 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>enrica</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>999382</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-09 18:39:44 -0700</bug_when>
    <thetext>[iOS][WK2] Add the initial WebProcess handling of animated resize for rotation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999383</commentid>
    <comment_count>1</comment_count>
      <attachid>229011</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-09 18:46:17 -0700</bug_when>
    <thetext>Created attachment 229011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999386</commentid>
    <comment_count>2</comment_count>
      <attachid>229011</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-04-09 18:58:57 -0700</bug_when>
    <thetext>Comment on attachment 229011
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:31
&gt; +#import &lt;CoreGraphics/CGFloat.h&gt;

this is sorted wrong

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:480
&gt; +        double currentTargetScale = [[_contentView layer] affineTransform].a;

pulling things out of transforms at random is slightly scary unless you know you&apos;re the only person touching them.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:482
&gt; +        _resizeAnimationTransformAdjustements = CATransform3DMakeScale(scale, scale, 0);

the first &quot;e&quot; in adjustments is not real.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:489
&gt; +        _resizeAnimationTransformAdjustements.m41 = (currentContentOffset.x - newContentOffset.x) / currentTargetScale;

can&apos;t you use one of the CATransform functions to do this

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:1300
&gt; +        double verticalScrollAdjusment = _resizeAnimationTransformAdjustements.m42 * currentScale;

a *different* misspelling of adjustment :)

&gt; Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm:1738
&gt; +        double scaleDifference = targetScale / scale;

this would look a lot prettier with FloatRect/friends&apos; helpers (supporting scale, adding and subtracting sizes and points, etc.)

&gt; Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm:1766
&gt; +        double verticalAdjustement = 0;

nopppppe

&gt; Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm:1770
&gt; +            horizontalAdjustment += - newExposedContentRect.x();

why &quot;+= -&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999401</commentid>
    <comment_count>3</comment_count>
      <attachid>229018</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-09 19:34:08 -0700</bug_when>
    <thetext>Created attachment 229018
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999404</commentid>
    <comment_count>4</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-09 19:40:52 -0700</bug_when>
    <thetext>Thanks for the review!
English is too hard :)

&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:489
&gt; &gt; +        _resizeAnimationTransformAdjustements.m41 = (currentContentOffset.x - newContentOffset.x) / currentTargetScale;
&gt; 
&gt; can&apos;t you use one of the CATransform functions to do this

The reason I modify the matrix in place is I do not want the composition of the translation with the scale, we need the translation to be in the target scale until the end of the animation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999413</commentid>
    <comment_count>5</comment_count>
      <attachid>229018</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-09 20:39:54 -0700</bug_when>
    <thetext>Comment on attachment 229018
Patch

Clearing flags on attachment: 229018

Committed r167060: &lt;http://trac.webkit.org/changeset/167060&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999414</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-09 20:39:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229011</attachid>
            <date>2014-04-09 18:46:17 -0700</date>
            <delta_ts>2014-04-09 19:34:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131469-20140409184555.patch</filename>
            <type>text/plain</type>
            <size>26737</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2OTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2MxZTVhMzIyN2EwMzk1
YzYxOTgzY2QyMjMxNzc0NGNkZDcxZjMzMi4uNDhmMzU4ZjAyNjk2MzVjYzk4M2RjYjg2ZDlkNTlh
NGFmMjkyZGI4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE0LTA0LTA5ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdW1dLMl0g
QWRkIHRoZSBpbml0aWFsIFdlYlByb2Nlc3MgaGFuZGxpbmcgb2YgYW5pbWF0ZWQgcmVzaXplIGZv
ciByb3RhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTMxNDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIHRoZSBiYXNpYyBoYW5kbGluZyBvZiBkeW5hbWljIHJlc2l6ZSBmcm9tIHRoZSBXZWJQ
cm9jZXNzLgorCisgICAgICAgIE9uIGFuaW1hdGVkIHJlc2l6ZSwgdGhlIFVJUHJvY2VzcyBkZWNp
ZGVzIG5ldyB0YXJnZXQgcmVjdHMgYW5kIHNjYWxlLiBUaGUgaW5mb3JtYXRpb24KKyAgICAgICAg
aXMgdGhlbiBwYXNzZWQgdG8gdGhlIFdlYlByb2Nlc3MgdG8gdXBkYXRlIHRoZSBjb250ZW50Lgor
CisgICAgICAgIEZvciB2YXJpb3VzIHJlYXNvbiwgdGhlIHRhcmdldCByZWN0cyBhbmQgc2NhbGUg
Y29tcHV0ZWQgYnkgdGhlIFVJUHJvY2VzcyBjYW4gYmUgaW5jb3JyZWN0CisgICAgICAgIChmb3Ig
ZXhhbXBsZSwgaWYgdmlld3BvcnQgY29uc3RyYWludHMgbGltaXQgdGhlIHNjYWxlKS4KKworICAg
ICAgICBJbiB0aG9zZSBjYXNlcywgdGhlIFdlYlByb2Nlc3MgaGFzIGFsbCB0aGUgaW5mb3JtYXRp
b24gdG8gY29tcHV0ZSBhIGJldHRlciB0YXJnZXQuIFRoaXMgcGF0Y2gKKyAgICAgICAgYWRkcyBz
dWNoIGEgYmFzaWMgdXBkYXRlIG1lY2hhbmlzbS4KKworICAgICAgICBPbmNlIHRoZSBuZXcgdmFs
dWVzIGFyZSBjb21wdXRlZCwgdGhleSBhcmUgc2VudCBiYWNrIHRvIHRoZSBVSVByb2Nlc3MuIElm
IHRoZSByb3RhdGlvbiBhbmltYXRpb24KKyAgICAgICAgaXMgc3RpbGwgb25nb2luZywgd2UgZG8g
bm90IHdhbnQgbWVzcyB3aXRoIGl0LiBXaGF0IHdlIGRvIGlzIHNldCBhIHRlbXBvcmFyeSB0cmFu
c2Zvcm0gb24gdGhlIHN1YnZpZXdzCisgICAgICAgIGFuZCByZXN0b3JlIHRoZSByZWFsIHZhbHVl
IGFmdGVyIHRoZSBhbmltYXRpb24uIFRoZSBrZXkgaXMgdG8gaGF2ZSB0aGUgdHdvIG1hdHJpeCBt
dWx0aXBseWluZyB0byB0aGUgZW5kCisgICAgICAgIHZhbHVlIHNvIHRoYXQgdGhlcmUgaXMgbm8g
dmlzdWFsIGRpZmZlcmVuY2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kaWRDb21taXRMYXllclRyZWU6V2ViS2l0
OjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9keW5hbWljVmlld3BvcnRVcGRhdGVDaGFuZ2Vk
VGFyZ2V0VG9TY2FsZTpwb3NpdGlvbjpdKToKKyAgICAgICAgKHNldFZpZXdwb3J0Q29uZmlndXJh
dGlvbk1pbmltdW1MYXlvdXRTaXplKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9mcmFtZU9yQm91
bmRzQ2hhbmdlZF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldE1pbmltdW1MYXlvdXRTaXpl
T3ZlcnJpZGU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfYmVnaW5BbmltYXRlZFJlc2l6ZVRv
U2l6ZTpvYnNjdXJlZEluc2V0czptaW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlOl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX2VuZEFuaW1hdGVkUmVzaXplXSk6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
aW9zL1dLVmlld0lPUy5tbToKKyAgICAgICAgKC1bV0tWaWV3IF9mcmFtZU9yQm91bmRzQ2hhbmdl
ZF0pOgorICAgICAgICAoLVtXS1ZpZXcgc2V0TWluaW11bUxheW91dFNpemVPdmVycmlkZTpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6ZHluYW1pY1ZpZXdwb3J0VXBkYXRlQ2hhbmdlZFRhcmdldCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNldE1p
bmltdW1MYXlvdXRTaXplOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmR5bmFtaWNW
aWV3cG9ydFNpemVVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmR5bmFt
aWNWaWV3cG9ydFVwZGF0ZUNoYW5nZWRUYXJnZXQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToK
KwogMjAxNC0wNC0wNyAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXVtXSzJdIEltcGxlbWVudCB0aGUgdXBkYXRlIG9mIGNvbnRlbnQgb2Zmc2V0
IG9uIGFuaW1hdGVkIHJlc2l6ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQppbmRleCBmN2I5YmE5NzcwN2Y3YTA3MTE5ODU0YmQ5YzJhMGU5OTQ5
MGI2YTM1Li45Y2UxZDYzYTJmM2VmNTFkMDA5ZmJkNDg5NDBkOTZhODIwNDcxM2EwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMjgs
NiArMjgsNyBAQAogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIAorI2ltcG9ydCA8Q29yZUdyYXBoaWNz
L0NHRmxvYXQuaD4KICNpbXBvcnQgIkZpbmRDbGllbnQuaCIKICNpbXBvcnQgIk5hdmlnYXRpb25T
dGF0ZS5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCIKQEAgLTk4LDYg
Kzk5LDcgQEAKICAgICBVSUVkZ2VJbnNldHMgX29ic2N1cmVkSW5zZXRzOwogICAgIGJvb2wgX2lz
Q2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHk7CiAgICAgQk9PTCBfaXNBbmltYXRp
bmdSZXNpemU7CisgICAgQ0FUcmFuc2Zvcm0zRCBfcmVzaXplQW5pbWF0aW9uVHJhbnNmb3JtQWRq
dXN0ZW1lbnRzOwogICAgIENHRmxvYXQgX2xhc3RBZGp1c3RtZW50Rm9yU2Nyb2xsZXI7CiAgICAg
Q0dGbG9hdCBfa2V5Ym9hcmRWZXJ0aWNhbE92ZXJsYXA7CiAKQEAgLTQ0OCw4ICs0NTAsMTAgQEAg
c3RhdGljIENHRmxvYXQgY29udGVudFpvb21TY2FsZShXS1dlYlZpZXcqIHdlYlZpZXcpCiB7CiAg
ICAgQVNTRVJUKCFfY3VzdG9tQ29udGVudFZpZXcpOwogCi0gICAgaWYgKF9pc0FuaW1hdGluZ1Jl
c2l6ZSkKKyAgICBpZiAoX2lzQW5pbWF0aW5nUmVzaXplKSB7CisgICAgICAgIFtfY29udGVudFZp
ZXcgbGF5ZXJdLnN1YmxheWVyVHJhbnNmb3JtID0gX3Jlc2l6ZUFuaW1hdGlvblRyYW5zZm9ybUFk
anVzdGVtZW50czsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIFtfc2Nyb2xsVmlldyBz
ZXRDb250ZW50U2l6ZTpbX2NvbnRlbnRWaWV3IGZyYW1lXS5zaXplXTsKICAgICBbX3Njcm9sbFZp
ZXcgc2V0TWluaW11bVpvb21TY2FsZTpsYXllclRyZWVUcmFuc2FjdGlvbi5taW5pbXVtU2NhbGVG
YWN0b3IoKV07CkBAIC00NjgsNyArNDcyLDIzIEBAIHN0YXRpYyBDR0Zsb2F0IGNvbnRlbnRab29t
U2NhbGUoV0tXZWJWaWV3KiB3ZWJWaWV3KQogICAgICAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVu
dE9mZnNldDpDR1BvaW50TWFrZSgtaW5zZXQubGVmdCwgLWluc2V0LnRvcCldOwogICAgICAgICBf
aXNXYWl0aW5nRm9yTmV3TGF5ZXJUcmVlQWZ0ZXJEaWRDb21taXRMb2FkID0gTk87CiAgICAgfQor
fQorCistICh2b2lkKV9keW5hbWljVmlld3BvcnRVcGRhdGVDaGFuZ2VkVGFyZ2V0VG9TY2FsZToo
ZG91YmxlKW5ld1NjYWxlIHBvc2l0aW9uOihDR1BvaW50KW5ld1Njcm9sbFBvc2l0aW9uCit7Cisg
ICAgaWYgKF9pc0FuaW1hdGluZ1Jlc2l6ZSkgeworICAgICAgICBkb3VibGUgY3VycmVudFRhcmdl
dFNjYWxlID0gW1tfY29udGVudFZpZXcgbGF5ZXJdIGFmZmluZVRyYW5zZm9ybV0uYTsKKyAgICAg
ICAgZG91YmxlIHNjYWxlID0gbmV3U2NhbGUgLyBjdXJyZW50VGFyZ2V0U2NhbGU7CisgICAgICAg
IF9yZXNpemVBbmltYXRpb25UcmFuc2Zvcm1BZGp1c3RlbWVudHMgPSBDQVRyYW5zZm9ybTNETWFr
ZVNjYWxlKHNjYWxlLCBzY2FsZSwgMCk7CiAKKyAgICAgICAgQ0dQb2ludCBuZXdDb250ZW50T2Zm
c2V0ID0gQ0dQb2ludE1ha2UobmV3U2Nyb2xsUG9zaXRpb24ueCAqIG5ld1NjYWxlLCBuZXdTY3Jv
bGxQb3NpdGlvbi55ICogbmV3U2NhbGUpOworICAgICAgICBuZXdDb250ZW50T2Zmc2V0LnggLT0g
X29ic2N1cmVkSW5zZXRzLmxlZnQ7CisgICAgICAgIG5ld0NvbnRlbnRPZmZzZXQueSAtPSBfb2Jz
Y3VyZWRJbnNldHMudG9wOworICAgICAgICBDR1BvaW50IGN1cnJlbnRDb250ZW50T2Zmc2V0ID0g
W19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdOworCisgICAgICAgIF9yZXNpemVBbmltYXRpb25U
cmFuc2Zvcm1BZGp1c3RlbWVudHMubTQxID0gKGN1cnJlbnRDb250ZW50T2Zmc2V0LnggLSBuZXdD
b250ZW50T2Zmc2V0LngpIC8gY3VycmVudFRhcmdldFNjYWxlOworICAgICAgICBfcmVzaXplQW5p
bWF0aW9uVHJhbnNmb3JtQWRqdXN0ZW1lbnRzLm00MiA9IChjdXJyZW50Q29udGVudE9mZnNldC55
IC0gbmV3Q29udGVudE9mZnNldC55KSAvIGN1cnJlbnRUYXJnZXRTY2FsZTsKKyAgICB9CiB9CiAK
IC0gKFJldGFpblB0cjxDR0ltYWdlUmVmPilfdGFrZVZpZXdTbmFwc2hvdApAQCAtNjc0LDExICs2
OTQsMTYgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNl
dChXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmYKICAgICBbX2NvbnRlbnRWaWV3IGRpZFpv
b21Ub1NjYWxlOnNjYWxlXTsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkIHNldFZpZXdwb3J0Q29u
ZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlLCBj
b25zdCBDR1NpemUmIHNpemUpCit7CisgICAgcGFnZS5zZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25N
aW5pbXVtTGF5b3V0U2l6ZShXZWJDb3JlOjpJbnRTaXplKENHQ2VpbGluZyhzaXplLndpZHRoKSwg
Q0dDZWlsaW5nKHNpemUuaGVpZ2h0KSkpOworfQorCiAtICh2b2lkKV9mcmFtZU9yQm91bmRzQ2hh
bmdlZAogewogICAgIENHUmVjdCBib3VuZHMgPSBzZWxmLmJvdW5kczsKICAgICBpZiAoIV9oYXNT
dGF0aWNNaW5pbXVtTGF5b3V0U2l6ZSAmJiAhX2lzQW5pbWF0aW5nUmVzaXplKQotICAgICAgICBb
X2NvbnRlbnRWaWV3IHNldE1pbmltdW1MYXlvdXRTaXplOmJvdW5kcy5zaXplXTsKKyAgICAgICAg
c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoKl9wYWdlLCBib3VuZHMu
c2l6ZSk7CiAgICAgW19zY3JvbGxWaWV3IHNldEZyYW1lOmJvdW5kc107CiAgICAgW19jb250ZW50
VmlldyBzZXRNaW5pbXVtU2l6ZTpib3VuZHMuc2l6ZV07CiAgICAgW19jdXN0b21Db250ZW50Vmll
dyB3ZWJfc2V0TWluaW11bVNpemU6Ym91bmRzLnNpemVdOwpAQCAtMTE1Miw3ICsxMTc3LDcgQEAg
c3RhdGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25zIHRvRmluZE9wdGlvbnMoX1dLRmluZE9w
dGlvbnMgd2tGaW5kT3B0aW9ucykKIHsKICAgICBfaGFzU3RhdGljTWluaW11bUxheW91dFNpemUg
PSBZRVM7CiAgICAgX21pbmltdW1MYXlvdXRTaXplT3ZlcnJpZGUgPSBtaW5pbXVtTGF5b3V0U2l6
ZU92ZXJyaWRlOwotICAgIFtfY29udGVudFZpZXcgc2V0TWluaW11bUxheW91dFNpemU6bWluaW11
bUxheW91dFNpemVPdmVycmlkZV07CisgICAgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11
bUxheW91dFNpemUoKl9wYWdlLCBtaW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlKTsKIH0KIAogLSAo
VUlFZGdlSW5zZXRzKV9vYnNjdXJlZEluc2V0cwpAQCAtMTE5Niw2ICsxMjIxLDcgQEAgc3RhdGlj
IGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25zIHRvRmluZE9wdGlvbnMoX1dLRmluZE9wdGlvbnMg
d2tGaW5kT3B0aW9ucykKIC0gKHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVUb1NpemU6KENHU2l6
ZSlmdXR1cmVTaXplIG9ic2N1cmVkSW5zZXRzOihVSUVkZ2VJbnNldHMpZnV0dXJlT2JzY3VyZWRJ
bnNldHMgbWluaW11bUxheW91dFNpemVPdmVycmlkZTooQ0dTaXplKWZ1dHVyZU1pbmltdW1MYXlv
dXRTaXplCiB7CiAgICAgX2lzQW5pbWF0aW5nUmVzaXplID0gWUVTOworICAgIF9yZXNpemVBbmlt
YXRpb25UcmFuc2Zvcm1BZGp1c3RlbWVudHMgPSBDQVRyYW5zZm9ybTNESWRlbnRpdHk7CiAKICAg
ICBpZiAoX2N1c3RvbUNvbnRlbnRWaWV3KQogICAgICAgICByZXR1cm47CkBAIC0xMjUwLDEzICsx
Mjc2LDMzIEBAIHN0YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5kT3B0aW9ucyB0b0ZpbmRPcHRpb25z
KF9XS0ZpbmRPcHRpb25zIHdrRmluZE9wdGlvbnMpCiAgICAgLy8gRklYTUU6IGlmIHdlIGhhdmUg
Y29udGVudCBjZW50ZXJlZCBhZnRlciBkb3VibGUgdGFwIHRvIHpvb20sIHdlIHNob3VsZCBhbHNv
IHRyeSB0byBrZWVwIHRoYXQgcmVjdCBpbiB2aWV3LgogICAgIFtfc2Nyb2xsVmlldyBzZXRDb250
ZW50T2Zmc2V0OmNvbnRlbnRPZmZzZXRdOwogCi0gICAgLy8gRklYTUU6IFNlbmQgYSBzaW5nbGUg
bWVzc2FnZSB0byB0aGUgV2ViUHJvY2VzcyB0byBsYXlvdXQgYW5kIHJlcGFpbnQgaW5zdGVhZC4K
LSAgICAvLyBGSVhNRTogU2VuZCByZXNpemUgZXZlbnQuCi0gICAgW19jb250ZW50VmlldyBzZXRN
aW5pbXVtTGF5b3V0U2l6ZTpmdXR1cmVNaW5pbXVtTGF5b3V0U2l6ZV07CisgICAgQ0dSZWN0IHZp
c2libGVSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMgPSBbc2VsZiBjb252ZXJ0UmVjdDpmdXR1cmVC
b3VuZHMgdG9WaWV3Ol9jb250ZW50Vmlldy5nZXQoKV07CisKKyAgICBDR1JlY3QgdW5vYnNjdXJl
ZFJlY3QgPSBVSUVkZ2VJbnNldHNJbnNldFJlY3QoZnV0dXJlQm91bmRzLCBfb2JzY3VyZWRJbnNl
dHMpOworICAgIENHUmVjdCB1bm9ic2N1cmVkUmVjdEluQ29udGVudENvb3JkaW5hdGVzID0gW3Nl
bGYgY29udmVydFJlY3Q6dW5vYnNjdXJlZFJlY3QgdG9WaWV3Ol9jb250ZW50Vmlldy5nZXQoKV07
CisKKyAgICBfcGFnZS0+ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShXZWJDb3JlOjpJbnRTaXpl
KENHQ2VpbGluZyhmdXR1cmVNaW5pbXVtTGF5b3V0U2l6ZS53aWR0aCksIENHQ2VpbGluZyhmdXR1
cmVNaW5pbXVtTGF5b3V0U2l6ZS5oZWlnaHQpKSwgdmlzaWJsZVJlY3RJbkNvbnRlbnRDb29yZGlu
YXRlcywgdW5vYnNjdXJlZFJlY3RJbkNvbnRlbnRDb29yZGluYXRlcywgdGFyZ2V0U2NhbGUpOwog
fQogCiAtICh2b2lkKV9lbmRBbmltYXRlZFJlc2l6ZQogeworICAgIGlmICghX2N1c3RvbUNvbnRl
bnRWaWV3KSB7CisgICAgICAgIENBTGF5ZXIgKmNvbnRlbnRWaWV3TGF5ZXIgPSBbX2NvbnRlbnRW
aWV3IGxheWVyXTsKKyAgICAgICAgQ0FUcmFuc2Zvcm0zRCByZXNpemVBbmltYXRpb25UcmFuc2Zv
cm1BZGp1c3RlbWVudHMgPSBfcmVzaXplQW5pbWF0aW9uVHJhbnNmb3JtQWRqdXN0ZW1lbnRzOwor
ICAgICAgICBDR0Zsb2F0IGFkanVzdG1lbnRTY2FsZSA9IHJlc2l6ZUFuaW1hdGlvblRyYW5zZm9y
bUFkanVzdGVtZW50cy5tMTE7CisgICAgICAgIGNvbnRlbnRWaWV3TGF5ZXIuc3VibGF5ZXJUcmFu
c2Zvcm0gPSBDQVRyYW5zZm9ybTNESWRlbnRpdHk7CisKKyAgICAgICAgQ0dGbG9hdCBjdXJyZW50
U2NhbGUgPSBjb250ZW50Wm9vbVNjYWxlKHNlbGYpOworICAgICAgICBDR1BvaW50IGN1cnJlbnRT
Y3JvbGxPZmZzZXQgPSBbX3Njcm9sbFZpZXcgY29udGVudE9mZnNldF07CisgICAgICAgIFtfc2Ny
b2xsVmlldyBzZXRab29tU2NhbGU6YWRqdXN0bWVudFNjYWxlICogY3VycmVudFNjYWxlXTsKKwor
ICAgICAgICBkb3VibGUgaG9yaXpvbnRhbFNjcm9sbEFkanVzdGVtZW50ID0gX3Jlc2l6ZUFuaW1h
dGlvblRyYW5zZm9ybUFkanVzdGVtZW50cy5tNDEgKiBjdXJyZW50U2NhbGU7CisgICAgICAgIGRv
dWJsZSB2ZXJ0aWNhbFNjcm9sbEFkanVzbWVudCA9IF9yZXNpemVBbmltYXRpb25UcmFuc2Zvcm1B
ZGp1c3RlbWVudHMubTQyICogY3VycmVudFNjYWxlOworCisgICAgICAgIFtfc2Nyb2xsVmlldyBz
ZXRDb250ZW50T2Zmc2V0OkNHUG9pbnRNYWtlKGN1cnJlbnRTY3JvbGxPZmZzZXQueCAtIGhvcml6
b250YWxTY3JvbGxBZGp1c3RlbWVudCwgY3VycmVudFNjcm9sbE9mZnNldC55IC0gdmVydGljYWxT
Y3JvbGxBZGp1c21lbnQpXTsKKyAgICB9CisKKyAgICBfcmVzaXplQW5pbWF0aW9uVHJhbnNmb3Jt
QWRqdXN0ZW1lbnRzID0gQ0FUcmFuc2Zvcm0zRElkZW50aXR5OwogICAgIF9pc0FuaW1hdGluZ1Jl
c2l6ZSA9IE5POwogICAgIFtzZWxmIF91cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzXTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaAppbmRleCA4NDM4YjE1OWM5MmNmYmY1NGZiM2NjYmQyNWM1YmY4Y2JlYTQwNTMzLi42
ZjlkMmIzOGZkNDRhNDUwOTVmMWYyNDMwNWFkMDdhYzNjNTEwYmU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBA
IC02MCw2ICs2MCw4IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIC0gKHZvaWQpX2RpZENvbW1pdExv
YWRGb3JNYWluRnJhbWU7CiAtICh2b2lkKV9kaWRDb21taXRMYXllclRyZWU6KGNvbnN0IFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKWxheWVyVHJlZVRyYW5zYWN0aW9uOwogCist
ICh2b2lkKV9keW5hbWljVmlld3BvcnRVcGRhdGVDaGFuZ2VkVGFyZ2V0VG9TY2FsZTooZG91Ymxl
KW5ld1NjYWxlIHBvc2l0aW9uOihDR1BvaW50KW5ld1Njcm9sbFBvc2l0aW9uOworCiAtIChSZXRh
aW5QdHI8Q0dJbWFnZVJlZj4pX3Rha2VWaWV3U25hcHNob3Q7CiAKIC0gKEJPT0wpX3Njcm9sbFRv
UmVjdDooV2ViQ29yZTo6RmxvYXRSZWN0KXRhcmdldFJlY3Qgb3JpZ2luOihXZWJDb3JlOjpGbG9h
dFBvaW50KW9yaWdpbiBtaW5pbXVtU2Nyb2xsRGlzdGFuY2U6KGZsb2F0KW1pbmltdW1TY3JvbGxE
aXN0YW5jZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1dL
Vmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1dLVmlld0lPUy5t
bQppbmRleCBjMTNhODRhYjg3ZTM5MzkwNDExY2M4OGE2ZTMwMDliMzllN2IzNjJjLi5hNzc1MzU5
MjZlMTI3NWIyYjU4MjVhMTIwOTk3YTBhOTEzMGJjMjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9XS1ZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9pb3MvV0tWaWV3SU9TLm1tCkBAIC0yNDgsOCArMjQ4LDYgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKIC0gKHZvaWQpX2ZyYW1lT3JCb3VuZHNDaGFuZ2VkCiB7CiAgICAg
Q0dSZWN0IGJvdW5kcyA9IFtzZWxmIGJvdW5kc107Ci0gICAgaWYgKCFfaGFzU3RhdGljTWluaW11
bUxheW91dFNpemUpCi0gICAgICAgIFtfY29udGVudFZpZXcgc2V0TWluaW11bUxheW91dFNpemU6
Ym91bmRzLnNpemVdOwogICAgIFtfc2Nyb2xsVmlldyBzZXRGcmFtZTpib3VuZHNdOwogICAgIFtf
Y29udGVudFZpZXcgc2V0TWluaW11bVNpemU6Ym91bmRzLnNpemVdOwogICAgIFtzZWxmIF91cGRh
dGVWaXNpYmxlQ29udGVudFJlY3RzXTsKQEAgLTMzNiw3ICszMzQsNiBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViS2l0OwogewogICAgIF9oYXNTdGF0aWNNaW5pbXVtTGF5b3V0U2l6ZSA9IFlFUzsKICAg
ICBfbWluaW11bUxheW91dFNpemVPdmVycmlkZSA9IG1pbmltdW1MYXlvdXRTaXplT3ZlcnJpZGU7
Ci0gICAgW19jb250ZW50VmlldyBzZXRNaW5pbXVtTGF5b3V0U2l6ZTptaW5pbXVtTGF5b3V0U2l6
ZU92ZXJyaWRlXTsKIH0KIAogLSAoVUlFZGdlSW5zZXRzKV9vYnNjdXJlZEluc2V0cwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggZDIxYzBmNmM0MGEzMmM0MzRhMzE3OWUw
NmI0ZDJmZDZkYmVlY2Y0NC4uZjg5NGQ2NTYxNDIyYjFhZjE1YmM3MDYzMzMwYTIwOTQzMmY2ODA3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0yMzksNiArMjM5LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRHZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVz
KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBWZWN0b3I8
V2ViQ29yZTo6RmxvYXRRdWFkPiYgaGlnaGxpZ2h0ZWRRdWFkcywgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wUmlnaHRSYWRp
dXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbUxlZnRSYWRpdXMsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBkeW5hbWljVmlld3BvcnRVcGRhdGVDaGFuZ2VkVGFyZ2V0KGRv
dWJsZSBuZXdTY2FsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRp
b24pID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydEFzc2lzdGluZ05vZGUoY29uc3QgQXNz
aXN0ZWROb2RlSW5mb3JtYXRpb24mLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc3RvcEFzc2lzdGluZ05vZGUoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNWE3NmNkODhlY2JhYmQ3NWNkZjFkNTU4ZTk5YzQwNzgy
MTVmOGYyZC4uYjM3OTI1ZmYwNmZhZjRjNjQzNDlmZDA3NDE5ZjUyMzBiM2Y0ODJlNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTc2LDYgKzU3Niw4IEBAIHB1
YmxpYzoKICAgICBib29sIHVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoY29uc3QgVmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mbyYpOwogICAgIHVpbnQ2NF90IG5leHRWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFZpc2libGVDb250ZW50UmVjdFVwZGF0
ZS51cGRhdGVJRCgpICsgMTsgfQogICAgIHVpbnQ2NF90IGxhc3RWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFZpc2libGVDb250ZW50UmVjdFVwZGF0ZS51
cGRhdGVJRCgpOyB9CisKKyAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgbWluaW11bUxheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IHRhcmdldFVub2JzY3VyZWRSZWN0LCBkb3VibGUgdGFyZ2V0U2NhbGUpOwogICAgIAogICAgIHZv
aWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYpOwogICAgIHZvaWQgZGlkQ29tbWl0TGF5ZXJUcmVlKGNvbnN0IFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKTsKQEAgLTEzMzMsNiArMTMzNSw3IEBAIHByaXZh
dGU6CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSB2aWV3cG9ydFNj
cmVlblNpemUoKTsKIAorICAgIHZvaWQgZHluYW1pY1ZpZXdwb3J0VXBkYXRlQ2hhbmdlZFRhcmdl
dChkb3VibGUgbmV3VGFyZ2V0U2NhbGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Nj
cm9sbFBvc2l0aW9uKTsKICAgICB2b2lkIGRpZEdldFRhcEhpZ2hsaWdodEdlb21ldHJpZXModWlu
dDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IsIGNvbnN0IFZlY3Rv
cjxXZWJDb3JlOjpGbG9hdFF1YWQ+JiBnZW9tZXRyaWVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiB0b3BMZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB0b3BSaWdodFJhZGl1cywg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYm90dG9tTGVmdFJhZGl1cywgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgYm90dG9tUmlnaHRSYWRpdXMpOwogCiAgICAgdm9pZCBzdGFydEFzc2lzdGluZ05v
ZGUoY29uc3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgppbmRleCBiZThhNWZmNTZiZDg4MGJhMmVjNGRlMmZlYTQ1MzhlM2VhN2YwNWQxLi45NTRkMTdm
M2YyNmY4ZDRjMDE3Nzc5NDNkZjQ5OWJlZTM5YzY3OWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTMxNiw2ICszMTYsNyBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Mp
CisgICAgRHluYW1pY1ZpZXdwb3J0VXBkYXRlQ2hhbmdlZFRhcmdldChkb3VibGUgbmV3VGFyZ2V0
U2NhbGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQgbmV3U2Nyb2xsUG9zaXRpb24pCiAgICAgRGlkR2V0
VGFwSGlnaGxpZ2h0R2VvbWV0cmllcyh1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OkNvbG9y
IGNvbG9yLCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiBnZW9tZXRyaWVzLCBXZWJDb3JlOjpJ
bnRTaXplIHRvcExlZnRSYWRpdXMsIFdlYkNvcmU6OkludFNpemUgdG9wUmlnaHRSYWRpdXMsIFdl
YkNvcmU6OkludFNpemUgYm90dG9tTGVmdFJhZGl1cywgV2ViQ29yZTo6SW50U2l6ZSBib3R0b21S
aWdodFJhZGl1cykKIAogICAgIFN0YXJ0QXNzaXN0aW5nTm9kZShXZWJLaXQ6OkFzc2lzdGVkTm9k
ZUluZm9ybWF0aW9uIGluZm9ybWF0aW9uLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1lc3Nh
Z2VFbmNvZGVyIHVzZXJEYXRhKSBWYXJpYWRpYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IGUwYTBlMzk3NmU1NDIzNTE5ZTEzMzdl
MjU5NmU1MTA1YjQxOGViZTkuLjAwMmZkZDkzZjFiMjBiZGMzNWZmZjJkZmVlZWIzMDhkN2RmMGE3
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLmgKQEAgLTEwNiw2ICsxMDYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRH
ZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29y
ZTo6Q29sb3ImLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYgaGlnaGxpZ2h0ZWRR
dWFkcywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgdG9wUmlnaHRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRv
bUxlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzKSBv
dmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRMYXllclRyZWUoY29uc3QgUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZHlu
YW1pY1ZpZXdwb3J0VXBkYXRlQ2hhbmdlZFRhcmdldChkb3VibGUgbmV3U2NhbGUsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uKSBvdmVycmlkZTsKIAogICAgIHZp
cnR1YWwgdm9pZCBzdGFydEFzc2lzdGluZ05vZGUoY29uc3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRp
b24mLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBz
dG9wQXNzaXN0aW5nTm9kZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggNzQ4N2ZmYzQ4NjlmYWEyZWE2MDhm
MGEzYzRiZWFhNDVjYjZjMmU5My4uZWViYzg2ZTY2MTIwMGU5MDc3ZDRkMDgwMzJkZWQ4M2U3N2Mz
N2RiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tCkBAIC0zNjgsNiArMzY4LDExIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENv
bW1pdExheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgbGF5ZXJUCiAg
ICAgW21fY29udGVudFZpZXcgX2RpZENvbW1pdExheWVyVHJlZTpsYXllclRyZWVUcmFuc2FjdGlv
bl07CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmR5bmFtaWNWaWV3cG9ydFVwZGF0ZUNoYW5n
ZWRUYXJnZXQoZG91YmxlIG5ld1NjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdT
Y3JvbGxQb3NpdGlvbikKK3sKKyAgICBbbV93ZWJWaWV3IF9keW5hbWljVmlld3BvcnRVcGRhdGVD
aGFuZ2VkVGFyZ2V0VG9TY2FsZTpuZXdTY2FsZSBwb3NpdGlvbjpuZXdTY3JvbGxQb3NpdGlvbl07
Cit9CisKIHZvaWQgUGFnZUNsaWVudEltcGw6OnN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBBc3Np
c3RlZE5vZGVJbmZvcm1hdGlvbiYgbm9kZUluZm9ybWF0aW9uLCBBUEk6Ok9iamVjdCogdXNlckRh
dGEpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyghdXNlckRhdGEgfHwgdXNlckRhdGEtPnR5cGUoKSA9
PSBBUEk6Ok9iamVjdDo6VHlwZTo6RGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlldy5oCmluZGV4IDgxM2E3NjAyZmI0ZDUzNTI2MDFkZDlhZjA4ZTZlNWY0
Yzk4ZGJhYWUuLjA1OWJkNTBmNTQ0NTI0YTdjZjg3NzYxZTRjMTcyZDg1Y2I4MDk0MjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCkBAIC01OSw3ICs1
OSw2IEBAIHN0cnVjdCBXZWJQYWdlQ29uZmlndXJhdGlvbjsKIC0gKGluc3RhbmNldHlwZSlpbml0
V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29udGV4dDooV2ViS2l0OjpXZWJDb250ZXh0Jiljb250
ZXh0IGNvbmZpZ3VyYXRpb246KFdlYktpdDo6V2ViUGFnZUNvbmZpZ3VyYXRpb24pd2ViUGFnZUNv
bmZpZ3VyYXRpb24gd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldzsKIAogLSAodm9pZClzZXRN
aW5pbXVtU2l6ZTooQ0dTaXplKXNpemU7Ci0tICh2b2lkKXNldE1pbmltdW1MYXlvdXRTaXplOihD
R1NpemUpc2l6ZTsKIC0gKHZvaWQpZGlkVXBkYXRlVmlzaWJsZVJlY3Q6KENHUmVjdCl2aXNpYmxl
UmVjdCB1bm9ic2N1cmVkUmVjdDooQ0dSZWN0KXVub2JzY3VyZWRSZWN0IHNjYWxlOihDR0Zsb2F0
KXNjYWxlIGluU3RhYmxlU3RhdGU6KEJPT0wpaXNTdGFibGVTdGF0ZTsKIAogLSAodm9pZClkaWRG
aW5pc2hTY3JvbGxpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXcubW0KaW5kZXggZWU0M2FmZGNlNmJhMTZjNDE0ZmJjOGU2NmU2ZTE2ZTQ2MGFmY2Q0Ny4u
YmUyYTNiYmRkYzM5ZDYwOTI0YTI2OTZiMTJkZDA4ZGM2MDcxYmQ3ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtMzMxLDExICszMzEsNiBA
QCBzdGF0aWMgaW5saW5lIEZsb2F0UmVjdCBmaXhlZFBvc2l0aW9uUmVjdEZyb21FeHBvc2VkUmVj
dChDR1JlY3QgdW5vYnNjdXJlZFJlY3QsCiAgICAgX3BhZ2UtPmRyYXdpbmdBcmVhKCktPnNldFNp
emUoSW50U2l6ZShzaXplKSwgSW50U2l6ZSgpLCBJbnRTaXplKCkpOwogfQogCi0tICh2b2lkKXNl
dE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUpc2l6ZQotewotICAgIF9wYWdlLT5zZXRWaWV3cG9y
dENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShJbnRTaXplKENHQ2VpbGluZyhzaXplLndp
ZHRoKSwgQ0dDZWlsaW5nKHNpemUuaGVpZ2h0KSkpOwotfQotCiAtICh2b2lkKWRpZEZpbmlzaFNj
cm9sbGluZwogewogICAgIFtzZWxmIF9kaWRFbmRTY3JvbGxpbmdPclpvb21pbmddOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCBhZWVj
MWYzYTViMTJiYzMyMDdkMWZkNzU2NjFhYTJmNTc1MTdlMTczLi4yYTQyN2Y4YWZmYjg3YWQxNmQ3
MWJiMmNiN2Y5ZTAwYmJhMzJlNDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMTg4LDYgKzE4OCwxMSBAQCBib29sIFdlYlBhZ2VQ
cm94eTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyhjb25zdCBWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGVJbmZvJgogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6ZHlu
YW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBJbnRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGRvdWJsZSB0YXJnZXRTY2FsZSkKK3sKKyAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUo
bWluaW11bUxheW91dFNpemUsIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgdGFyZ2V0VW5vYnNj
dXJlZFJlY3QsIHRhcmdldFNjYWxlKSwgbV9wYWdlSUQpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgc2l6ZSkKIHsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2U6OlNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKHNpemUpLCBtX3Bh
Z2VJRCk7CkBAIC00NTgsNiArNDYzLDExIEBAIEZsb2F0U2l6ZSBXZWJQYWdlUHJveHk6OnZpZXdw
b3J0U2NyZWVuU2l6ZSgpCiAgICAgcmV0dXJuIEZsb2F0U2l6ZShXS0dldFZpZXdwb3J0U2NyZWVu
U2l6ZSgpKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmR5bmFtaWNWaWV3cG9ydFVwZGF0ZUNo
YW5nZWRUYXJnZXQoZG91YmxlIG5ld1NjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBu
ZXdTY3JvbGxQb3NpdGlvbikKK3sKKyAgICBtX3BhZ2VDbGllbnQuZHluYW1pY1ZpZXdwb3J0VXBk
YXRlQ2hhbmdlZFRhcmdldChuZXdTY2FsZSwgbmV3U2Nyb2xsUG9zaXRpb24pOworfQorCiB2b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkR2V0VGFwSGlnaGxpZ2h0R2VvbWV0cmllcyh1aW50NjRfdCByZXF1
ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6
OkZsb2F0UXVhZD4mIGhpZ2hsaWdodGVkUXVhZHMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRv
cExlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcFJpZ2h0UmFkaXVzLCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21MZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBib3R0b21SaWdodFJhZGl1cykKIHsKICAgICBtX3BhZ2VDbGllbnQuZGlkR2V0VGFwSGln
aGxpZ2h0R2VvbWV0cmllcyhyZXF1ZXN0SUQsIGNvbG9yLCBoaWdobGlnaHRlZFF1YWRzLCB0b3BM
ZWZ0UmFkaXVzLCB0b3BSaWdodFJhZGl1cywgYm90dG9tTGVmdFJhZGl1cywgYm90dG9tUmlnaHRS
YWRpdXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5k
ZXggMjAwMDM0OWQ1MzJiZWJjMGVkMmRmOTQ4YWFmMWNlOTVmZTFiMGY2Ni4uODU5MWM2MTEwNDg3
MWEwNDdiZGZlOWIyZDIyN2E1OGZkNDVjZmJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02OTQsNiArNjk0LDcgQEAgcHVibGljOgogCiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxh
eW91dFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOworICAgIHZvaWQgZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGRvdWJsZSBzY2FsZSk7
CiAgICAgdm9pZCB2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiAgICAgdm9pZCB1cGRh
dGVWaXNpYmxlQ29udGVudFJlY3RzKGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8m
KTsKICAgICBib29sIHNjYWxlV2FzU2V0QnlVSVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX3Nj
YWxlV2FzU2V0QnlVSVByb2Nlc3M7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMTI1YjBjZjQwZTJkMzkyMDdk
MzY0N2IyNjhkYTc3ZTFiMGM0NzY0Mi4uYTM0OWY0YTZjYzU4ODQyNjhlZDgzYWE0N2U4NDgwNDQy
NzczZjZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTQ0LDYgKzQ0LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFn
ZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgV2hlZWxFdmVudFN5bmNGb3JUZXN0aW5nKFdlYktpdDo6
V2ViV2hlZWxFdmVudCBldmVudCkgLT4gKGJvb2wgaGFuZGxlZCkKICNpZiBQTEFURk9STShJT1Mp
CiAgICAgU2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoV2ViQ29yZTo6
SW50U2l6ZSBzaXplKQorICAgIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoV2ViQ29yZTo6SW50
U2l6ZSBtaW5pbXVtTGF5b3V0U2l6ZSwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldEV4cG9zZWRD
b250ZW50UmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0LCBkb3Vi
bGUgc2NhbGUpCiAKICAgICBIYW5kbGVUYXAoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpCiAgICAg
VGFwSGlnaGxpZ2h0QXRQb3NpdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OkZsb2F0
UG9pbnQgcG9pbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggNmU4MDI3OGRlMzQyZTE2OWFhOGRjOGYzNzk1Y2UxMDE4
ZjcxYWFkNy4uMGU3MzYwOTE2MGY1NDU5ZWUzOTQ0NmQ4MGMzYmEwMDMwYTQyZDhiMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bQpAQCAtMTcwNiw2ICsxNzA2LDg5IEBAIHZvaWQgV2ViUGFnZTo6c2V0Vmlld3BvcnRDb25maWd1
cmF0aW9uTWluaW11bUxheW91dFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICB2aWV3cG9y
dENvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZShjb25zdCBJbnRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3QgRmxv
YXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0
VW5vYnNjdXJlZFJlY3QsIGRvdWJsZSB0YXJnZXRTY2FsZSkKK3sKKyAgICAvLyBGSVhNRTogdGhp
cyBkb2VzIG5vdCBoYW5kbGUgdGhlIGNhc2VzIHdoZXJlIHRoZSBjb250ZW50IHdvdWxkIGNoYW5n
ZSB0aGUgY29udGVudCBzaXplIG9yIHNjcm9sbCBwb3NpdGlvbiBmcm9tIEphdmFTY3JpcHQuCisg
ICAgLy8gVG8gaGFuZGxlIHRob3NlIGNhc2VzLCB3ZSB3b3VsZCBuZWVkIHRvIHJlZG8gdGhpcyBj
b21wdXRhdGlvbiBvbiBldmVyeSBjaGFuZ2UgdW50aWwgdGhlIG5leHQgdmlzaWJsZSBjb250ZW50
IHJlY3QgdXBkYXRlLgorCisgICAgRnJhbWVWaWV3JiBmcmFtZVZpZXcgPSAqbV9wYWdlLT5tYWlu
RnJhbWUoKS52aWV3KCk7CisgICAgSW50U2l6ZSBvbGRDb250ZW50U2l6ZSA9IGZyYW1lVmlldy5j
b250ZW50c1NpemUoKTsKKworICAgIG1fdmlld3BvcnRDb25maWd1cmF0aW9uLnNldE1pbmltdW1M
YXlvdXRTaXplKG1pbmltdW1MYXlvdXRTaXplKTsKKyAgICBJbnRTaXplIG5ld0xheW91dFNpemUg
PSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5sYXlvdXRTaXplKCk7CisgICAgc2V0Rml4ZWRMYXlv
dXRTaXplKG5ld0xheW91dFNpemUpOworICAgIGZyYW1lVmlldy51cGRhdGVMYXlvdXRBbmRTdHls
ZUlmTmVlZGVkUmVjdXJzaXZlKCk7CisKKyAgICBJbnRTaXplIG5ld0NvbnRlbnRTaXplID0gZnJh
bWVWaWV3LmNvbnRlbnRzU2l6ZSgpOworCisgICAgZG91YmxlIHNjYWxlOworICAgIGlmICghbV91
c2VySGFzQ2hhbmdlZFBhZ2VTY2FsZUZhY3RvcikKKyAgICAgICAgc2NhbGUgPSBtX3ZpZXdwb3J0
Q29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGUoKTsKKyAgICBlbHNlCisgICAgICAgIHNjYWxlID0g
c3RkOjptYXgoc3RkOjptaW4odGFyZ2V0U2NhbGUsIG1fdmlld3BvcnRDb25maWd1cmF0aW9uLm1h
eGltdW1TY2FsZSgpKSwgbV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubWluaW11bVNjYWxlKCkpOwor
CisgICAgRmxvYXRSZWN0IG5ld1Vub2JzY3VyZWRDb250ZW50UmVjdCA9IHRhcmdldFVub2JzY3Vy
ZWRSZWN0OworICAgIEZsb2F0UmVjdCBuZXdFeHBvc2VkQ29udGVudFJlY3QgPSB0YXJnZXRFeHBv
c2VkQ29udGVudFJlY3Q7CisKKyAgICBpZiAoc2NhbGUgIT0gdGFyZ2V0U2NhbGUpIHsKKyAgICAg
ICAgLy8gVGhlIHRhcmdldCBzY2FsZSB0aGUgVUkgaXMgdXNpbmcgY2Fubm90IGJlIHJlYWNoZWQg
YnkgdGhlIGNvbnRlbnQuIFdlIG5lZWQgdG8gY29tcHV0ZSBuZXcgdGFyZ2V0cyBiYXNlZAorICAg
ICAgICAvLyBvbiB0aGUgdmlld3BvcnQgY29uc3RyYWludCBhbmQgcmVwb3J0IGV2ZXJ5dGhpbmcg
YmFjayB0byB0aGUgVUlQcm9jZXNzLgorCisgICAgICAgIC8vIDEpIENvbXB1dGUgYSBuZXcgdW5v
YnNjdXJlZCByZWN0IGNlbnRlcmVkIGFyb3VuZCB0aGUgb3JpZ2luYWwgb25lLgorICAgICAgICBk
b3VibGUgc2NhbGVEaWZmZXJlbmNlID0gdGFyZ2V0U2NhbGUgLyBzY2FsZTsKKyAgICAgICAgZG91
YmxlIG5ld1Vub2JzY3VyZWRSZWN0V2lkdGggPSB0YXJnZXRVbm9ic2N1cmVkUmVjdC53aWR0aCgp
ICogc2NhbGVEaWZmZXJlbmNlOworICAgICAgICBkb3VibGUgbmV3VW5vYnNjdXJlZFJlY3RIZWln
aHQgPSB0YXJnZXRVbm9ic2N1cmVkUmVjdC5oZWlnaHQoKSAqIHNjYWxlRGlmZmVyZW5jZTsKKyAg
ICAgICAgZG91YmxlIG5ld1Vub2JzY3VyZWRSZWN0WCA9IHRhcmdldFVub2JzY3VyZWRSZWN0Lngo
KSAtIChuZXdVbm9ic2N1cmVkUmVjdFdpZHRoIC0gdGFyZ2V0VW5vYnNjdXJlZFJlY3Qud2lkdGgo
KSkgLyAyOworICAgICAgICBkb3VibGUgbmV3VW5vYnNjdXJlZFJlY3RZID0gdGFyZ2V0VW5vYnNj
dXJlZFJlY3QueSgpIC0gKG5ld1Vub2JzY3VyZWRSZWN0SGVpZ2h0IC0gdGFyZ2V0VW5vYnNjdXJl
ZFJlY3QuaGVpZ2h0KCkpIC8gMjsKKyAgICAgICAgbmV3VW5vYnNjdXJlZENvbnRlbnRSZWN0ID0g
RmxvYXRSZWN0KG5ld1Vub2JzY3VyZWRSZWN0WCwgbmV3VW5vYnNjdXJlZFJlY3RZLCBuZXdVbm9i
c2N1cmVkUmVjdFdpZHRoLCBuZXdVbm9ic2N1cmVkUmVjdEhlaWdodCk7CisKKyAgICAgICAgLy8g
MikgRXh0ZW5kIG91ciBuZXcgdW5vYnNjdXJlZFJlY3QgYnkgdGhlIG9ic2N1cmVkIG1hcmdpbnMg
dG8gZ2V0IGEgbmV3IGV4cG9zZWQgcmVjdC4KKyAgICAgICAgZG91YmxlIG9ic2N1cmVkVG9wTWFy
Z2luID0gKHRhcmdldFVub2JzY3VyZWRSZWN0LnkoKSAtIHRhcmdldEV4cG9zZWRDb250ZW50UmVj
dC55KCkpICogc2NhbGVEaWZmZXJlbmNlOworICAgICAgICBkb3VibGUgb2JzY3VyZWRMZWZ0TWFy
Z2luID0gKHRhcmdldFVub2JzY3VyZWRSZWN0LngoKSAtIHRhcmdldEV4cG9zZWRDb250ZW50UmVj
dC54KCkpICogc2NhbGVEaWZmZXJlbmNlOworICAgICAgICBkb3VibGUgb2JzY3VyZWRCb3R0b21N
YXJnaW4gPSAodGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0Lm1heFkoKSAtIHRhcmdldFVub2JzY3Vy
ZWRSZWN0Lm1heFkoKSkgKiBzY2FsZURpZmZlcmVuY2U7CisgICAgICAgIGRvdWJsZSBvYnNjdXJl
ZFJpZ2h0TWFyZ2luID0gKHRhcmdldEV4cG9zZWRDb250ZW50UmVjdC5tYXhYKCkgLSB0YXJnZXRV
bm9ic2N1cmVkUmVjdC5tYXhYKCkpICogc2NhbGVEaWZmZXJlbmNlOworICAgICAgICBuZXdFeHBv
c2VkQ29udGVudFJlY3QgPSBGbG9hdFJlY3QobmV3VW5vYnNjdXJlZFJlY3RYIC0gb2JzY3VyZWRM
ZWZ0TWFyZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3
VW5vYnNjdXJlZFJlY3RZIC0gb2JzY3VyZWRUb3BNYXJnaW4sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBuZXdVbm9ic2N1cmVkUmVjdFdpZHRoICsgb2JzY3VyZWRM
ZWZ0TWFyZ2luICsgb2JzY3VyZWRSaWdodE1hcmdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG5ld1Vub2JzY3VyZWRSZWN0SGVpZ2h0ICsgb2JzY3VyZWRUb3BN
YXJnaW4gKyBvYnNjdXJlZEJvdHRvbU1hcmdpbik7CisKKyAgICAgICAgLy8gRklYTUU6IEFkanVz
dCB0aGUgcmVjdHMgYmFzZWQgb24gdGhlIGNvbnRlbnQuCisgICAgfQorCisgICAgaWYgKG9sZENv
bnRlbnRTaXplICE9IG5ld0NvbnRlbnRTaXplIHx8IHNjYWxlICE9IHRhcmdldFNjYWxlKSB7Cisg
ICAgICAgIC8vIFNuYXAgdGhlIG5ldyB1bm9ic2N1cmVkIHJlY3QgYmFjayBpbnRvIHRoZSBjb250
ZW50IHJlY3QuCisgICAgICAgIG5ld1Vub2JzY3VyZWRDb250ZW50UmVjdC5zZXRXaWR0aChzdGQ6
Om1pbihzdGF0aWNfY2FzdDxmbG9hdD4obmV3Q29udGVudFNpemUud2lkdGgoKSksIG5ld0V4cG9z
ZWRDb250ZW50UmVjdC53aWR0aCgpKSk7CisgICAgICAgIG5ld1Vub2JzY3VyZWRDb250ZW50UmVj
dC5zZXRIZWlnaHQoc3RkOjptaW4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5ld0NvbnRlbnRTaXplLmhl
aWdodCgpKSwgbmV3RXhwb3NlZENvbnRlbnRSZWN0LmhlaWdodCgpKSk7CisKKyAgICAgICAgZG91
YmxlIGhvcml6b250YWxBZGp1c3RtZW50ID0gMDsKKyAgICAgICAgaWYgKG5ld0V4cG9zZWRDb250
ZW50UmVjdC5tYXhYKCkgPiBuZXdDb250ZW50U2l6ZS53aWR0aCgpKQorICAgICAgICAgICAgaG9y
aXpvbnRhbEFkanVzdG1lbnQgLT0gbmV3RXhwb3NlZENvbnRlbnRSZWN0Lm1heFgoKSAtIG5ld0Nv
bnRlbnRTaXplLndpZHRoKCk7CisgICAgICAgIGRvdWJsZSB2ZXJ0aWNhbEFkanVzdGVtZW50ID0g
MDsKKyAgICAgICAgaWYgKG5ld0V4cG9zZWRDb250ZW50UmVjdC5tYXhZKCkgPiBuZXdDb250ZW50
U2l6ZS5oZWlnaHQoKSkKKyAgICAgICAgICAgIHZlcnRpY2FsQWRqdXN0ZW1lbnQgLT0gbmV3RXhw
b3NlZENvbnRlbnRSZWN0Lm1heFkoKSAtIG5ld0NvbnRlbnRTaXplLmhlaWdodCgpOworICAgICAg
ICBpZiAobmV3RXhwb3NlZENvbnRlbnRSZWN0LngoKSA8IDApCisgICAgICAgICAgICBob3Jpem9u
dGFsQWRqdXN0bWVudCArPSAtIG5ld0V4cG9zZWRDb250ZW50UmVjdC54KCk7CisgICAgICAgIGlm
IChuZXdFeHBvc2VkQ29udGVudFJlY3QueSgpIDwgMCkKKyAgICAgICAgICAgIHZlcnRpY2FsQWRq
dXN0ZW1lbnQgKz0gLSBuZXdFeHBvc2VkQ29udGVudFJlY3QueSgpOworCisgICAgICAgIG5ld1Vu
b2JzY3VyZWRDb250ZW50UmVjdC5tb3ZlKGhvcml6b250YWxBZGp1c3RtZW50LCB2ZXJ0aWNhbEFk
anVzdGVtZW50KTsKKyAgICAgICAgbmV3RXhwb3NlZENvbnRlbnRSZWN0Lm1vdmUoaG9yaXpvbnRh
bEFkanVzdG1lbnQsIHZlcnRpY2FsQWRqdXN0ZW1lbnQpOworICAgIH0KKworICAgIGZyYW1lVmll
dy5zZXRTY3JvbGxWZWxvY2l0eSgwLCAwLCAwLCBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUo
KSk7CisKKyAgICBJbnRSZWN0IHJvdW5kZWRVbm9ic2N1cmVkQ29udGVudFJlY3QgPSByb3VuZGVk
SW50UmVjdChuZXdVbm9ic2N1cmVkQ29udGVudFJlY3QpOworICAgIGZyYW1lVmlldy5zZXRTY3Jv
bGxPZmZzZXQocm91bmRlZFVub2JzY3VyZWRDb250ZW50UmVjdC5sb2NhdGlvbigpKTsKKyAgICBm
cmFtZVZpZXcuc2V0VW5vYnNjdXJlZENvbnRlbnRSZWN0KHJvdW5kZWRVbm9ic2N1cmVkQ29udGVu
dFJlY3QpOworICAgIG1fZHJhd2luZ0FyZWEtPnNldEV4cG9zZWRDb250ZW50UmVjdChuZXdFeHBv
c2VkQ29udGVudFJlY3QpOworCisgICAgaWYgKHNjYWxlID09IHRhcmdldFNjYWxlKQorICAgICAg
ICBzY2FsZVBhZ2Uoc2NhbGUsIGZyYW1lVmlldy5zY3JvbGxQb3NpdGlvbigpKTsKKworICAgIGlm
IChzY2FsZSAhPSB0YXJnZXRTY2FsZSB8fCByb3VuZGVkSW50UG9pbnQodGFyZ2V0VW5vYnNjdXJl
ZFJlY3QubG9jYXRpb24oKSkgIT0gcm91bmRlZFVub2JzY3VyZWRDb250ZW50UmVjdC5sb2NhdGlv
bigpKQorICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkR5bmFtaWNWaWV3cG9y
dFVwZGF0ZUNoYW5nZWRUYXJnZXQoc2NhbGUsIGZyYW1lVmlldy5zY3JvbGxQb3NpdGlvbigpKSk7
Cit9CisKIHZvaWQgV2ViUGFnZTo6dmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCgpCiB7CiAg
ICAgc2V0Rml4ZWRMYXlvdXRTaXplKG1fdmlld3BvcnRDb25maWd1cmF0aW9uLmxheW91dFNpemUo
KSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229018</attachid>
            <date>2014-04-09 19:34:08 -0700</date>
            <delta_ts>2014-04-09 20:39:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131469-20140409193347.patch</filename>
            <type>text/plain</type>
            <size>26792</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2OTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2MxZTVhMzIyN2EwMzk1
YzYxOTgzY2QyMjMxNzc0NGNkZDcxZjMzMi4uMzQxNzlhOTg5Njg2MTIwNGI4MDliYjE4YTkzMzFm
M2NlZDIzZDVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDE0LTA0LTA5ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdW1dLMl0g
QWRkIHRoZSBpbml0aWFsIFdlYlByb2Nlc3MgaGFuZGxpbmcgb2YgYW5pbWF0ZWQgcmVzaXplIGZv
ciByb3RhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTMxNDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBB
ZGQgdGhlIGJhc2ljIGhhbmRsaW5nIG9mIGR5bmFtaWMgcmVzaXplIGZyb20gdGhlIFdlYlByb2Nl
c3MuCisKKyAgICAgICAgT24gYW5pbWF0ZWQgcmVzaXplLCB0aGUgVUlQcm9jZXNzIGRlY2lkZXMg
bmV3IHRhcmdldCByZWN0cyBhbmQgc2NhbGUuIFRoZSBpbmZvcm1hdGlvbgorICAgICAgICBpcyB0
aGVuIHBhc3NlZCB0byB0aGUgV2ViUHJvY2VzcyB0byB1cGRhdGUgdGhlIGNvbnRlbnQuCisKKyAg
ICAgICAgRm9yIHZhcmlvdXMgcmVhc29uLCB0aGUgdGFyZ2V0IHJlY3RzIGFuZCBzY2FsZSBjb21w
dXRlZCBieSB0aGUgVUlQcm9jZXNzIGNhbiBiZSBpbmNvcnJlY3QKKyAgICAgICAgKGZvciBleGFt
cGxlLCBpZiB2aWV3cG9ydCBjb25zdHJhaW50cyBsaW1pdCB0aGUgc2NhbGUpLgorCisgICAgICAg
IEluIHRob3NlIGNhc2VzLCB0aGUgV2ViUHJvY2VzcyBoYXMgYWxsIHRoZSBpbmZvcm1hdGlvbiB0
byBjb21wdXRlIGEgYmV0dGVyIHRhcmdldC4gVGhpcyBwYXRjaAorICAgICAgICBhZGRzIHN1Y2gg
YSBiYXNpYyB1cGRhdGUgbWVjaGFuaXNtLgorCisgICAgICAgIE9uY2UgdGhlIG5ldyB2YWx1ZXMg
YXJlIGNvbXB1dGVkLCB0aGV5IGFyZSBzZW50IGJhY2sgdG8gdGhlIFVJUHJvY2Vzcy4gSWYgdGhl
IHJvdGF0aW9uIGFuaW1hdGlvbgorICAgICAgICBpcyBzdGlsbCBvbmdvaW5nLCB3ZSBkbyBub3Qg
d2FudCBtZXNzIHdpdGggaXQuIFdoYXQgd2UgZG8gaXMgc2V0IGEgdGVtcG9yYXJ5IHRyYW5zZm9y
bSBvbiB0aGUgc3Vidmlld3MKKyAgICAgICAgYW5kIHJlc3RvcmUgdGhlIHJlYWwgdmFsdWUgYWZ0
ZXIgdGhlIGFuaW1hdGlvbi4gVGhlIGtleSBpcyB0byBoYXZlIHRoZSB0d28gbWF0cml4IG11bHRp
cGx5aW5nIHRvIHRoZSBlbmQKKyAgICAgICAgdmFsdWUgc28gdGhhdCB0aGVyZSBpcyBubyB2aXN1
YWwgZGlmZmVyZW5jZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RpZENvbW1pdExheWVyVHJlZTpXZWJLaXQ6Ol0p
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZUNoYW5nZWRUYXJn
ZXRUb1NjYWxlOnBvc2l0aW9uOl0pOgorICAgICAgICAoc2V0Vmlld3BvcnRDb25maWd1cmF0aW9u
TWluaW11bUxheW91dFNpemUpOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2ZyYW1lT3JCb3VuZHND
aGFuZ2VkXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0TWluaW11bUxheW91dFNpemVPdmVy
cmlkZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9iZWdpbkFuaW1hdGVkUmVzaXplVG9TaXpl
Om9ic2N1cmVkSW5zZXRzOm1pbmltdW1MYXlvdXRTaXplT3ZlcnJpZGU6XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBfZW5kQW5pbWF0ZWRSZXNpemVdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3Mv
V0tWaWV3SU9TLm1tOgorICAgICAgICAoLVtXS1ZpZXcgX2ZyYW1lT3JCb3VuZHNDaGFuZ2VkXSk6
CisgICAgICAgICgtW1dLVmlldyBzZXRNaW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlOl0pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnRJbXBsOjpkeW5hbWljVmlld3BvcnRVcGRhdGVDaGFuZ2VkVGFyZ2V0KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXcubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2V0TWluaW11
bUxheW91dFNpemU6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdl
UHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZHluYW1pY1Zp
ZXdwb3J0VXBkYXRlQ2hhbmdlZFRhcmdldCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUpOgorCiAy
MDE0LTA0LTA3ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtpT1NdW1dLMl0gSW1wbGVtZW50IHRoZSB1cGRhdGUgb2YgY29udGVudCBvZmZzZXQgb24g
YW5pbWF0ZWQgcmVzaXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCmluZGV4IGY3YjliYTk3NzA3ZjdhMDcxMTk4NTRiZDljMmEwZTk5NDkwYjZh
MzUuLjRkZjI1ZTQ0ZjJlMjMxMWU0ZTk3YjkzYmNlM2M4NWM1MDY4MTAxZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC02NCw2ICs2
NCw3IEBACiAjaW1wb3J0ICJXS1BERlZpZXcuaCIKICNpbXBvcnQgIldLU2Nyb2xsVmlldy5oIgog
I2ltcG9ydCAiV0tXZWJWaWV3Q29udGVudFByb3ZpZGVyUmVnaXN0cnkuaCIKKyNpbXBvcnQgPENv
cmVHcmFwaGljcy9DR0Zsb2F0Lmg+CiAjaW1wb3J0IDxVSUtpdC9VSVBlcmlwaGVyYWxIb3N0X1By
aXZhdGUuaD4KIAogQGludGVyZmFjZSBVSVNjcm9sbFZpZXcgKFVJU2Nyb2xsVmlld0ludGVybmFs
KQpAQCAtOTgsNiArOTksNyBAQAogICAgIFVJRWRnZUluc2V0cyBfb2JzY3VyZWRJbnNldHM7CiAg
ICAgYm9vbCBfaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseTsKICAgICBCT09M
IF9pc0FuaW1hdGluZ1Jlc2l6ZTsKKyAgICBDQVRyYW5zZm9ybTNEIF9yZXNpemVBbmltYXRpb25U
cmFuc2Zvcm1BZGp1c3RtZW50czsKICAgICBDR0Zsb2F0IF9sYXN0QWRqdXN0bWVudEZvclNjcm9s
bGVyOwogICAgIENHRmxvYXQgX2tleWJvYXJkVmVydGljYWxPdmVybGFwOwogCkBAIC00NDgsOCAr
NDUwLDEwIEBAIHN0YXRpYyBDR0Zsb2F0IGNvbnRlbnRab29tU2NhbGUoV0tXZWJWaWV3KiB3ZWJW
aWV3KQogewogICAgIEFTU0VSVCghX2N1c3RvbUNvbnRlbnRWaWV3KTsKIAotICAgIGlmIChfaXNB
bmltYXRpbmdSZXNpemUpCisgICAgaWYgKF9pc0FuaW1hdGluZ1Jlc2l6ZSkgeworICAgICAgICBb
X2NvbnRlbnRWaWV3IGxheWVyXS5zdWJsYXllclRyYW5zZm9ybSA9IF9yZXNpemVBbmltYXRpb25U
cmFuc2Zvcm1BZGp1c3RtZW50czsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIFtfc2Ny
b2xsVmlldyBzZXRDb250ZW50U2l6ZTpbX2NvbnRlbnRWaWV3IGZyYW1lXS5zaXplXTsKICAgICBb
X3Njcm9sbFZpZXcgc2V0TWluaW11bVpvb21TY2FsZTpsYXllclRyZWVUcmFuc2FjdGlvbi5taW5p
bXVtU2NhbGVGYWN0b3IoKV07CkBAIC00NjgsNyArNDcyLDIzIEBAIHN0YXRpYyBDR0Zsb2F0IGNv
bnRlbnRab29tU2NhbGUoV0tXZWJWaWV3KiB3ZWJWaWV3KQogICAgICAgICBbX3Njcm9sbFZpZXcg
c2V0Q29udGVudE9mZnNldDpDR1BvaW50TWFrZSgtaW5zZXQubGVmdCwgLWluc2V0LnRvcCldOwog
ICAgICAgICBfaXNXYWl0aW5nRm9yTmV3TGF5ZXJUcmVlQWZ0ZXJEaWRDb21taXRMb2FkID0gTk87
CiAgICAgfQorfQorCistICh2b2lkKV9keW5hbWljVmlld3BvcnRVcGRhdGVDaGFuZ2VkVGFyZ2V0
VG9TY2FsZTooZG91YmxlKW5ld1NjYWxlIHBvc2l0aW9uOihDR1BvaW50KW5ld1Njcm9sbFBvc2l0
aW9uCit7CisgICAgaWYgKF9pc0FuaW1hdGluZ1Jlc2l6ZSkgeworICAgICAgICBkb3VibGUgY3Vy
cmVudFRhcmdldFNjYWxlID0gW1tfY29udGVudFZpZXcgbGF5ZXJdIGFmZmluZVRyYW5zZm9ybV0u
YTsKKyAgICAgICAgZG91YmxlIHNjYWxlID0gbmV3U2NhbGUgLyBjdXJyZW50VGFyZ2V0U2NhbGU7
CisgICAgICAgIF9yZXNpemVBbmltYXRpb25UcmFuc2Zvcm1BZGp1c3RtZW50cyA9IENBVHJhbnNm
b3JtM0RNYWtlU2NhbGUoc2NhbGUsIHNjYWxlLCAwKTsKIAorICAgICAgICBDR1BvaW50IG5ld0Nv
bnRlbnRPZmZzZXQgPSBDR1BvaW50TWFrZShuZXdTY3JvbGxQb3NpdGlvbi54ICogbmV3U2NhbGUs
IG5ld1Njcm9sbFBvc2l0aW9uLnkgKiBuZXdTY2FsZSk7CisgICAgICAgIG5ld0NvbnRlbnRPZmZz
ZXQueCAtPSBfb2JzY3VyZWRJbnNldHMubGVmdDsKKyAgICAgICAgbmV3Q29udGVudE9mZnNldC55
IC09IF9vYnNjdXJlZEluc2V0cy50b3A7CisgICAgICAgIENHUG9pbnQgY3VycmVudENvbnRlbnRP
ZmZzZXQgPSBbX3Njcm9sbFZpZXcgY29udGVudE9mZnNldF07CisKKyAgICAgICAgX3Jlc2l6ZUFu
aW1hdGlvblRyYW5zZm9ybUFkanVzdG1lbnRzLm00MSA9IChjdXJyZW50Q29udGVudE9mZnNldC54
IC0gbmV3Q29udGVudE9mZnNldC54KSAvIGN1cnJlbnRUYXJnZXRTY2FsZTsKKyAgICAgICAgX3Jl
c2l6ZUFuaW1hdGlvblRyYW5zZm9ybUFkanVzdG1lbnRzLm00MiA9IChjdXJyZW50Q29udGVudE9m
ZnNldC55IC0gbmV3Q29udGVudE9mZnNldC55KSAvIGN1cnJlbnRUYXJnZXRTY2FsZTsKKyAgICB9
CiB9CiAKIC0gKFJldGFpblB0cjxDR0ltYWdlUmVmPilfdGFrZVZpZXdTbmFwc2hvdApAQCAtNjc0
LDExICs2OTQsMTYgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVu
dE9mZnNldChXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmYKICAgICBbX2NvbnRlbnRWaWV3
IGRpZFpvb21Ub1NjYWxlOnNjYWxlXTsKIH0KIAorc3RhdGljIGlubGluZSB2b2lkIHNldFZpZXdw
b3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKFdlYktpdDo6V2ViUGFnZVByb3h5JiBw
YWdlLCBjb25zdCBDR1NpemUmIHNpemUpCit7CisgICAgcGFnZS5zZXRWaWV3cG9ydENvbmZpZ3Vy
YXRpb25NaW5pbXVtTGF5b3V0U2l6ZShXZWJDb3JlOjpJbnRTaXplKENHQ2VpbGluZyhzaXplLndp
ZHRoKSwgQ0dDZWlsaW5nKHNpemUuaGVpZ2h0KSkpOworfQorCiAtICh2b2lkKV9mcmFtZU9yQm91
bmRzQ2hhbmdlZAogewogICAgIENHUmVjdCBib3VuZHMgPSBzZWxmLmJvdW5kczsKICAgICBpZiAo
IV9oYXNTdGF0aWNNaW5pbXVtTGF5b3V0U2l6ZSAmJiAhX2lzQW5pbWF0aW5nUmVzaXplKQotICAg
ICAgICBbX2NvbnRlbnRWaWV3IHNldE1pbmltdW1MYXlvdXRTaXplOmJvdW5kcy5zaXplXTsKKyAg
ICAgICAgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoKl9wYWdlLCBi
b3VuZHMuc2l6ZSk7CiAgICAgW19zY3JvbGxWaWV3IHNldEZyYW1lOmJvdW5kc107CiAgICAgW19j
b250ZW50VmlldyBzZXRNaW5pbXVtU2l6ZTpib3VuZHMuc2l6ZV07CiAgICAgW19jdXN0b21Db250
ZW50VmlldyB3ZWJfc2V0TWluaW11bVNpemU6Ym91bmRzLnNpemVdOwpAQCAtMTE1Miw3ICsxMTc3
LDcgQEAgc3RhdGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25zIHRvRmluZE9wdGlvbnMoX1dL
RmluZE9wdGlvbnMgd2tGaW5kT3B0aW9ucykKIHsKICAgICBfaGFzU3RhdGljTWluaW11bUxheW91
dFNpemUgPSBZRVM7CiAgICAgX21pbmltdW1MYXlvdXRTaXplT3ZlcnJpZGUgPSBtaW5pbXVtTGF5
b3V0U2l6ZU92ZXJyaWRlOwotICAgIFtfY29udGVudFZpZXcgc2V0TWluaW11bUxheW91dFNpemU6
bWluaW11bUxheW91dFNpemVPdmVycmlkZV07CisgICAgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9u
TWluaW11bUxheW91dFNpemUoKl9wYWdlLCBtaW5pbXVtTGF5b3V0U2l6ZU92ZXJyaWRlKTsKIH0K
IAogLSAoVUlFZGdlSW5zZXRzKV9vYnNjdXJlZEluc2V0cwpAQCAtMTE5Niw2ICsxMjIxLDcgQEAg
c3RhdGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25zIHRvRmluZE9wdGlvbnMoX1dLRmluZE9w
dGlvbnMgd2tGaW5kT3B0aW9ucykKIC0gKHZvaWQpX2JlZ2luQW5pbWF0ZWRSZXNpemVUb1NpemU6
KENHU2l6ZSlmdXR1cmVTaXplIG9ic2N1cmVkSW5zZXRzOihVSUVkZ2VJbnNldHMpZnV0dXJlT2Jz
Y3VyZWRJbnNldHMgbWluaW11bUxheW91dFNpemVPdmVycmlkZTooQ0dTaXplKWZ1dHVyZU1pbmlt
dW1MYXlvdXRTaXplCiB7CiAgICAgX2lzQW5pbWF0aW5nUmVzaXplID0gWUVTOworICAgIF9yZXNp
emVBbmltYXRpb25UcmFuc2Zvcm1BZGp1c3RtZW50cyA9IENBVHJhbnNmb3JtM0RJZGVudGl0eTsK
IAogICAgIGlmIChfY3VzdG9tQ29udGVudFZpZXcpCiAgICAgICAgIHJldHVybjsKQEAgLTEyNTAs
MTMgKzEyNzYsMzMgQEAgc3RhdGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25zIHRvRmluZE9w
dGlvbnMoX1dLRmluZE9wdGlvbnMgd2tGaW5kT3B0aW9ucykKICAgICAvLyBGSVhNRTogaWYgd2Ug
aGF2ZSBjb250ZW50IGNlbnRlcmVkIGFmdGVyIGRvdWJsZSB0YXAgdG8gem9vbSwgd2Ugc2hvdWxk
IGFsc28gdHJ5IHRvIGtlZXAgdGhhdCByZWN0IGluIHZpZXcuCiAgICAgW19zY3JvbGxWaWV3IHNl
dENvbnRlbnRPZmZzZXQ6Y29udGVudE9mZnNldF07CiAKLSAgICAvLyBGSVhNRTogU2VuZCBhIHNp
bmdsZSBtZXNzYWdlIHRvIHRoZSBXZWJQcm9jZXNzIHRvIGxheW91dCBhbmQgcmVwYWludCBpbnN0
ZWFkLgotICAgIC8vIEZJWE1FOiBTZW5kIHJlc2l6ZSBldmVudC4KLSAgICBbX2NvbnRlbnRWaWV3
IHNldE1pbmltdW1MYXlvdXRTaXplOmZ1dHVyZU1pbmltdW1MYXlvdXRTaXplXTsKKyAgICBDR1Jl
Y3QgdmlzaWJsZVJlY3RJbkNvbnRlbnRDb29yZGluYXRlcyA9IFtzZWxmIGNvbnZlcnRSZWN0OmZ1
dHVyZUJvdW5kcyB0b1ZpZXc6X2NvbnRlbnRWaWV3LmdldCgpXTsKKworICAgIENHUmVjdCB1bm9i
c2N1cmVkUmVjdCA9IFVJRWRnZUluc2V0c0luc2V0UmVjdChmdXR1cmVCb3VuZHMsIF9vYnNjdXJl
ZEluc2V0cyk7CisgICAgQ0dSZWN0IHVub2JzY3VyZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMg
PSBbc2VsZiBjb252ZXJ0UmVjdDp1bm9ic2N1cmVkUmVjdCB0b1ZpZXc6X2NvbnRlbnRWaWV3Lmdl
dCgpXTsKKworICAgIF9wYWdlLT5keW5hbWljVmlld3BvcnRTaXplVXBkYXRlKFdlYkNvcmU6Oklu
dFNpemUoQ0dDZWlsaW5nKGZ1dHVyZU1pbmltdW1MYXlvdXRTaXplLndpZHRoKSwgQ0dDZWlsaW5n
KGZ1dHVyZU1pbmltdW1MYXlvdXRTaXplLmhlaWdodCkpLCB2aXNpYmxlUmVjdEluQ29udGVudENv
b3JkaW5hdGVzLCB1bm9ic2N1cmVkUmVjdEluQ29udGVudENvb3JkaW5hdGVzLCB0YXJnZXRTY2Fs
ZSk7CiB9CiAKIC0gKHZvaWQpX2VuZEFuaW1hdGVkUmVzaXplCiB7CisgICAgaWYgKCFfY3VzdG9t
Q29udGVudFZpZXcpIHsKKyAgICAgICAgQ0FMYXllciAqY29udGVudFZpZXdMYXllciA9IFtfY29u
dGVudFZpZXcgbGF5ZXJdOworICAgICAgICBDQVRyYW5zZm9ybTNEIHJlc2l6ZUFuaW1hdGlvblRy
YW5zZm9ybUFkanVzdGVtZW50cyA9IF9yZXNpemVBbmltYXRpb25UcmFuc2Zvcm1BZGp1c3RtZW50
czsKKyAgICAgICAgQ0dGbG9hdCBhZGp1c3RtZW50U2NhbGUgPSByZXNpemVBbmltYXRpb25UcmFu
c2Zvcm1BZGp1c3RlbWVudHMubTExOworICAgICAgICBjb250ZW50Vmlld0xheWVyLnN1YmxheWVy
VHJhbnNmb3JtID0gQ0FUcmFuc2Zvcm0zRElkZW50aXR5OworCisgICAgICAgIENHRmxvYXQgY3Vy
cmVudFNjYWxlID0gY29udGVudFpvb21TY2FsZShzZWxmKTsKKyAgICAgICAgQ0dQb2ludCBjdXJy
ZW50U2Nyb2xsT2Zmc2V0ID0gW19zY3JvbGxWaWV3IGNvbnRlbnRPZmZzZXRdOworICAgICAgICBb
X3Njcm9sbFZpZXcgc2V0Wm9vbVNjYWxlOmFkanVzdG1lbnRTY2FsZSAqIGN1cnJlbnRTY2FsZV07
CisKKyAgICAgICAgZG91YmxlIGhvcml6b250YWxTY3JvbGxBZGp1c3RlbWVudCA9IF9yZXNpemVB
bmltYXRpb25UcmFuc2Zvcm1BZGp1c3RtZW50cy5tNDEgKiBjdXJyZW50U2NhbGU7CisgICAgICAg
IGRvdWJsZSB2ZXJ0aWNhbFNjcm9sbEFkanVzdG1lbnQgPSBfcmVzaXplQW5pbWF0aW9uVHJhbnNm
b3JtQWRqdXN0bWVudHMubTQyICogY3VycmVudFNjYWxlOworCisgICAgICAgIFtfc2Nyb2xsVmll
dyBzZXRDb250ZW50T2Zmc2V0OkNHUG9pbnRNYWtlKGN1cnJlbnRTY3JvbGxPZmZzZXQueCAtIGhv
cml6b250YWxTY3JvbGxBZGp1c3RlbWVudCwgY3VycmVudFNjcm9sbE9mZnNldC55IC0gdmVydGlj
YWxTY3JvbGxBZGp1c3RtZW50KV07CisgICAgfQorCisgICAgX3Jlc2l6ZUFuaW1hdGlvblRyYW5z
Zm9ybUFkanVzdG1lbnRzID0gQ0FUcmFuc2Zvcm0zRElkZW50aXR5OwogICAgIF9pc0FuaW1hdGlu
Z1Jlc2l6ZSA9IE5POwogICAgIFtzZWxmIF91cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzXTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
SW50ZXJuYWwuaAppbmRleCA4NDM4YjE1OWM5MmNmYmY1NGZiM2NjYmQyNWM1YmY4Y2JlYTQwNTMz
Li42ZjlkMmIzOGZkNDRhNDUwOTVmMWYyNDMwNWFkMDdhYzNjNTEwYmU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5o
CkBAIC02MCw2ICs2MCw4IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIC0gKHZvaWQpX2RpZENvbW1p
dExvYWRGb3JNYWluRnJhbWU7CiAtICh2b2lkKV9kaWRDb21taXRMYXllclRyZWU6KGNvbnN0IFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKWxheWVyVHJlZVRyYW5zYWN0aW9uOwog
CistICh2b2lkKV9keW5hbWljVmlld3BvcnRVcGRhdGVDaGFuZ2VkVGFyZ2V0VG9TY2FsZTooZG91
YmxlKW5ld1NjYWxlIHBvc2l0aW9uOihDR1BvaW50KW5ld1Njcm9sbFBvc2l0aW9uOworCiAtIChS
ZXRhaW5QdHI8Q0dJbWFnZVJlZj4pX3Rha2VWaWV3U25hcHNob3Q7CiAKIC0gKEJPT0wpX3Njcm9s
bFRvUmVjdDooV2ViQ29yZTo6RmxvYXRSZWN0KXRhcmdldFJlY3Qgb3JpZ2luOihXZWJDb3JlOjpG
bG9hdFBvaW50KW9yaWdpbiBtaW5pbXVtU2Nyb2xsRGlzdGFuY2U6KGZsb2F0KW1pbmltdW1TY3Jv
bGxEaXN0YW5jZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9z
L1dLVmlld0lPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvaW9zL1dLVmlld0lP
Uy5tbQppbmRleCBjMTNhODRhYjg3ZTM5MzkwNDExY2M4OGE2ZTMwMDliMzllN2IzNjJjLi5hNzc1
MzU5MjZlMTI3NWIyYjU4MjVhMTIwOTk3YTBhOTEzMGJjMjdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2lvcy9XS1ZpZXdJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9pb3MvV0tWaWV3SU9TLm1tCkBAIC0yNDgsOCArMjQ4LDYgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIC0gKHZvaWQpX2ZyYW1lT3JCb3VuZHNDaGFuZ2VkCiB7CiAg
ICAgQ0dSZWN0IGJvdW5kcyA9IFtzZWxmIGJvdW5kc107Ci0gICAgaWYgKCFfaGFzU3RhdGljTWlu
aW11bUxheW91dFNpemUpCi0gICAgICAgIFtfY29udGVudFZpZXcgc2V0TWluaW11bUxheW91dFNp
emU6Ym91bmRzLnNpemVdOwogICAgIFtfc2Nyb2xsVmlldyBzZXRGcmFtZTpib3VuZHNdOwogICAg
IFtfY29udGVudFZpZXcgc2V0TWluaW11bVNpemU6Ym91bmRzLnNpemVdOwogICAgIFtzZWxmIF91
cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzXTsKQEAgLTMzNiw3ICszMzQsNiBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OwogewogICAgIF9oYXNTdGF0aWNNaW5pbXVtTGF5b3V0U2l6ZSA9IFlFUzsK
ICAgICBfbWluaW11bUxheW91dFNpemVPdmVycmlkZSA9IG1pbmltdW1MYXlvdXRTaXplT3ZlcnJp
ZGU7Ci0gICAgW19jb250ZW50VmlldyBzZXRNaW5pbXVtTGF5b3V0U2l6ZTptaW5pbXVtTGF5b3V0
U2l6ZU92ZXJyaWRlXTsKIH0KIAogLSAoVUlFZGdlSW5zZXRzKV9vYnNjdXJlZEluc2V0cwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggZDIxYzBmNmM0MGEzMmM0MzRhMzE3
OWUwNmI0ZDJmZDZkYmVlY2Y0NC4uZjg5NGQ2NTYxNDIyYjFhZjE1YmM3MDYzMzMwYTIwOTQzMmY2
ODA3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0yMzksNiArMjM5
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRHZXRUYXBIaWdobGlnaHRHZW9tZXRy
aWVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBWZWN0
b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYgaGlnaGxpZ2h0ZWRRdWFkcywgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wUmlnaHRS
YWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbUxlZnRSYWRpdXMsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkeW5hbWljVmlld3BvcnRVcGRhdGVDaGFuZ2VkVGFyZ2V0
KGRvdWJsZSBuZXdTY2FsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9z
aXRpb24pID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydEFzc2lzdGluZ05vZGUoY29uc3Qg
QXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgc3RvcEFzc2lzdGluZ05vZGUoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNWE3NmNkODhlY2JhYmQ3NWNkZjFkNTU4ZTk5YzQw
NzgyMTVmOGYyZC4uYjM3OTI1ZmYwNmZhZjRjNjQzNDlmZDA3NDE5ZjUyMzBiM2Y0ODJlNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTc2LDYgKzU3Niw4IEBA
IHB1YmxpYzoKICAgICBib29sIHVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoY29uc3QgVmlzaWJs
ZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYpOwogICAgIHVpbnQ2NF90IG5leHRWaXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZS51cGRhdGVJRCgpICsgMTsgfQogICAgIHVpbnQ2NF90IGxhc3RWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFZpc2libGVDb250ZW50UmVjdFVwZGF0
ZS51cGRhdGVJRCgpOyB9CisKKyAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgbWluaW11bUxheW91dFNpemUsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgdGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHRhcmdldFVub2JzY3VyZWRSZWN0LCBkb3VibGUgdGFyZ2V0U2NhbGUpOwogICAgIAogICAg
IHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYpOwogICAgIHZvaWQgZGlkQ29tbWl0TGF5ZXJUcmVlKGNvbnN0IFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKTsKQEAgLTEzMzMsNiArMTMzNSw3IEBAIHBy
aXZhdGU6CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSB2aWV3cG9y
dFNjcmVlblNpemUoKTsKIAorICAgIHZvaWQgZHluYW1pY1ZpZXdwb3J0VXBkYXRlQ2hhbmdlZFRh
cmdldChkb3VibGUgbmV3VGFyZ2V0U2NhbGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5l
d1Njcm9sbFBvc2l0aW9uKTsKICAgICB2b2lkIGRpZEdldFRhcEhpZ2hsaWdodEdlb21ldHJpZXMo
dWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IsIGNvbnN0IFZl
Y3RvcjxXZWJDb3JlOjpGbG9hdFF1YWQ+JiBnZW9tZXRyaWVzLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiB0b3BMZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB0b3BSaWdodFJhZGl1
cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYm90dG9tTGVmdFJhZGl1cywgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgYm90dG9tUmlnaHRSYWRpdXMpOwogCiAgICAgdm9pZCBzdGFydEFzc2lzdGlu
Z05vZGUoY29uc3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mLCBJUEM6Ok1lc3NhZ2VEZWNvZGVy
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgppbmRleCBiZThhNWZmNTZiZDg4MGJhMmVjNGRlMmZlYTQ1MzhlM2VhN2YwNWQxLi45NTRk
MTdmM2YyNmY4ZDRjMDE3Nzc5NDNkZjQ5OWJlZTM5YzY3OWI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTMxNiw2ICszMTYs
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2VuZGlmCiAKICNpZiBQTEFURk9STShJ
T1MpCisgICAgRHluYW1pY1ZpZXdwb3J0VXBkYXRlQ2hhbmdlZFRhcmdldChkb3VibGUgbmV3VGFy
Z2V0U2NhbGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQgbmV3U2Nyb2xsUG9zaXRpb24pCiAgICAgRGlk
R2V0VGFwSGlnaGxpZ2h0R2VvbWV0cmllcyh1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OkNv
bG9yIGNvbG9yLCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiBnZW9tZXRyaWVzLCBXZWJDb3Jl
OjpJbnRTaXplIHRvcExlZnRSYWRpdXMsIFdlYkNvcmU6OkludFNpemUgdG9wUmlnaHRSYWRpdXMs
IFdlYkNvcmU6OkludFNpemUgYm90dG9tTGVmdFJhZGl1cywgV2ViQ29yZTo6SW50U2l6ZSBib3R0
b21SaWdodFJhZGl1cykKIAogICAgIFN0YXJ0QXNzaXN0aW5nTm9kZShXZWJLaXQ6OkFzc2lzdGVk
Tm9kZUluZm9ybWF0aW9uIGluZm9ybWF0aW9uLCBXZWJLaXQ6OkluamVjdGVkQnVuZGxlVXNlck1l
c3NhZ2VFbmNvZGVyIHVzZXJEYXRhKSBWYXJpYWRpYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IGUwYTBlMzk3NmU1NDIzNTE5ZTEz
MzdlMjU5NmU1MTA1YjQxOGViZTkuLjAwMmZkZDkzZjFiMjBiZGMzNWZmZjJkZmVlZWIzMDhkN2Rm
MGE3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLmgKQEAgLTEwNiw2ICsxMDYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBk
aWRHZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2Vi
Q29yZTo6Q29sb3ImLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYgaGlnaGxpZ2h0
ZWRRdWFkcywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgdG9wUmlnaHRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJv
dHRvbUxlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVz
KSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRMYXllclRyZWUoY29uc3Qg
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZHluYW1pY1ZpZXdwb3J0VXBkYXRlQ2hhbmdlZFRhcmdldChkb3VibGUgbmV3U2NhbGUsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uKSBvdmVycmlkZTsKIAogICAg
IHZpcnR1YWwgdm9pZCBzdGFydEFzc2lzdGluZ05vZGUoY29uc3QgQXNzaXN0ZWROb2RlSW5mb3Jt
YXRpb24mLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9p
ZCBzdG9wQXNzaXN0aW5nTm9kZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggNzQ4N2ZmYzQ4NjlmYWEyZWE2
MDhmMGEzYzRiZWFhNDVjYjZjMmU5My4uZWViYzg2ZTY2MTIwMGU5MDc3ZDRkMDgwMzJkZWQ4M2U3
N2MzN2RiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tCkBAIC0zNjgsNiArMzY4LDExIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRp
ZENvbW1pdExheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgbGF5ZXJU
CiAgICAgW21fY29udGVudFZpZXcgX2RpZENvbW1pdExheWVyVHJlZTpsYXllclRyZWVUcmFuc2Fj
dGlvbl07CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmR5bmFtaWNWaWV3cG9ydFVwZGF0ZUNo
YW5nZWRUYXJnZXQoZG91YmxlIG5ld1NjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBu
ZXdTY3JvbGxQb3NpdGlvbikKK3sKKyAgICBbbV93ZWJWaWV3IF9keW5hbWljVmlld3BvcnRVcGRh
dGVDaGFuZ2VkVGFyZ2V0VG9TY2FsZTpuZXdTY2FsZSBwb3NpdGlvbjpuZXdTY3JvbGxQb3NpdGlv
bl07Cit9CisKIHZvaWQgUGFnZUNsaWVudEltcGw6OnN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBB
c3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYgbm9kZUluZm9ybWF0aW9uLCBBUEk6Ok9iamVjdCogdXNl
ckRhdGEpCiB7CiAgICAgTUVTU0FHRV9DSEVDSyghdXNlckRhdGEgfHwgdXNlckRhdGEtPnR5cGUo
KSA9PSBBUEk6Ok9iamVjdDo6VHlwZTo6RGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlldy5oCmluZGV4IDgxM2E3NjAyZmI0ZDUzNTI2MDFkZDlhZjA4ZTZl
NWY0Yzk4ZGJhYWUuLjA1OWJkNTBmNTQ0NTI0YTdjZjg3NzYxZTRjMTcyZDg1Y2I4MDk0MjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCkBAIC01OSw3
ICs1OSw2IEBAIHN0cnVjdCBXZWJQYWdlQ29uZmlndXJhdGlvbjsKIC0gKGluc3RhbmNldHlwZSlp
bml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29udGV4dDooV2ViS2l0OjpXZWJDb250ZXh0Jilj
b250ZXh0IGNvbmZpZ3VyYXRpb246KFdlYktpdDo6V2ViUGFnZUNvbmZpZ3VyYXRpb24pd2ViUGFn
ZUNvbmZpZ3VyYXRpb24gd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldzsKIAogLSAodm9pZClz
ZXRNaW5pbXVtU2l6ZTooQ0dTaXplKXNpemU7Ci0tICh2b2lkKXNldE1pbmltdW1MYXlvdXRTaXpl
OihDR1NpemUpc2l6ZTsKIC0gKHZvaWQpZGlkVXBkYXRlVmlzaWJsZVJlY3Q6KENHUmVjdCl2aXNp
YmxlUmVjdCB1bm9ic2N1cmVkUmVjdDooQ0dSZWN0KXVub2JzY3VyZWRSZWN0IHNjYWxlOihDR0Zs
b2F0KXNjYWxlIGluU3RhYmxlU3RhdGU6KEJPT0wpaXNTdGFibGVTdGF0ZTsKIAogLSAodm9pZClk
aWRGaW5pc2hTY3JvbGxpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXcubW0KaW5kZXggZWU0M2FmZGNlNmJhMTZjNDE0ZmJjOGU2NmU2ZTE2ZTQ2MGFmY2Q0
Ny4uYmUyYTNiYmRkYzM5ZDYwOTI0YTI2OTZiMTJkZDA4ZGM2MDcxYmQ3ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQpAQCAtMzMxLDExICszMzEs
NiBAQCBzdGF0aWMgaW5saW5lIEZsb2F0UmVjdCBmaXhlZFBvc2l0aW9uUmVjdEZyb21FeHBvc2Vk
UmVjdChDR1JlY3QgdW5vYnNjdXJlZFJlY3QsCiAgICAgX3BhZ2UtPmRyYXdpbmdBcmVhKCktPnNl
dFNpemUoSW50U2l6ZShzaXplKSwgSW50U2l6ZSgpLCBJbnRTaXplKCkpOwogfQogCi0tICh2b2lk
KXNldE1pbmltdW1MYXlvdXRTaXplOihDR1NpemUpc2l6ZQotewotICAgIF9wYWdlLT5zZXRWaWV3
cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShJbnRTaXplKENHQ2VpbGluZyhzaXpl
LndpZHRoKSwgQ0dDZWlsaW5nKHNpemUuaGVpZ2h0KSkpOwotfQotCiAtICh2b2lkKWRpZEZpbmlz
aFNjcm9sbGluZwogewogICAgIFtzZWxmIF9kaWRFbmRTY3JvbGxpbmdPclpvb21pbmddOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCBh
ZWVjMWYzYTViMTJiYzMyMDdkMWZkNzU2NjFhYTJmNTc1MTdlMTczLi4yYTQyN2Y4YWZmYjg3YWQx
NmQ3MWJiMmNiN2Y5ZTAwYmJhMzJlNDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMTg4LDYgKzE4OCwxMSBAQCBib29sIFdlYlBh
Z2VQcm94eTo6dXBkYXRlVmlzaWJsZUNvbnRlbnRSZWN0cyhjb25zdCBWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvJgogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6
ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBJbnRTaXplJiBtaW5pbXVtTGF5b3V0U2l6
ZSwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGRvdWJsZSB0YXJnZXRTY2FsZSkKK3sKKyAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkR5bmFtaWNWaWV3cG9ydFNpemVVcGRh
dGUobWluaW11bUxheW91dFNpemUsIHRhcmdldEV4cG9zZWRDb250ZW50UmVjdCwgdGFyZ2V0VW5v
YnNjdXJlZFJlY3QsIHRhcmdldFNjYWxlKSwgbV9wYWdlSUQpOworfQorCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6c2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgc2l6ZSkKIHsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2U6OlNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKHNpemUpLCBt
X3BhZ2VJRCk7CkBAIC00NTgsNiArNDYzLDExIEBAIEZsb2F0U2l6ZSBXZWJQYWdlUHJveHk6OnZp
ZXdwb3J0U2NyZWVuU2l6ZSgpCiAgICAgcmV0dXJuIEZsb2F0U2l6ZShXS0dldFZpZXdwb3J0U2Ny
ZWVuU2l6ZSgpKTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OmR5bmFtaWNWaWV3cG9ydFVwZGF0
ZUNoYW5nZWRUYXJnZXQoZG91YmxlIG5ld1NjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBuZXdTY3JvbGxQb3NpdGlvbikKK3sKKyAgICBtX3BhZ2VDbGllbnQuZHluYW1pY1ZpZXdwb3J0
VXBkYXRlQ2hhbmdlZFRhcmdldChuZXdTY2FsZSwgbmV3U2Nyb2xsUG9zaXRpb24pOworfQorCiB2
b2lkIFdlYlBhZ2VQcm94eTo6ZGlkR2V0VGFwSGlnaGxpZ2h0R2VvbWV0cmllcyh1aW50NjRfdCBy
ZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvciwgY29uc3QgVmVjdG9yPFdlYkNv
cmU6OkZsb2F0UXVhZD4mIGhpZ2hsaWdodGVkUXVhZHMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IHRvcExlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcFJpZ2h0UmFkaXVzLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21MZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBib3R0b21SaWdodFJhZGl1cykKIHsKICAgICBtX3BhZ2VDbGllbnQuZGlkR2V0VGFw
SGlnaGxpZ2h0R2VvbWV0cmllcyhyZXF1ZXN0SUQsIGNvbG9yLCBoaWdobGlnaHRlZFF1YWRzLCB0
b3BMZWZ0UmFkaXVzLCB0b3BSaWdodFJhZGl1cywgYm90dG9tTGVmdFJhZGl1cywgYm90dG9tUmln
aHRSYWRpdXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
aW5kZXggMjAwMDM0OWQ1MzJiZWJjMGVkMmRmOTQ4YWFmMWNlOTVmZTFiMGY2Ni4uODU5MWM2MTEw
NDg3MWEwNDdiZGZlOWIyZDIyN2E1OGZkNDVjZmJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC02OTQsNiArNjk0LDcgQEAgcHVibGljOgogCiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgc2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11
bUxheW91dFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOworICAgIHZvaWQgZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBtaW5pbXVtTGF5b3V0U2l6
ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0VW5vYnNjdXJlZFJlY3QsIGRvdWJsZSBzY2Fs
ZSk7CiAgICAgdm9pZCB2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiAgICAgdm9pZCB1
cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm8mKTsKICAgICBib29sIHNjYWxlV2FzU2V0QnlVSVByb2Nlc3MoKSBjb25zdCB7IHJldHVybiBt
X3NjYWxlV2FzU2V0QnlVSVByb2Nlc3M7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMTI1YjBjZjQwZTJkMzky
MDdkMzY0N2IyNjhkYTc3ZTFiMGM0NzY0Mi4uYTM0OWY0YTZjYzU4ODQyNjhlZDgzYWE0N2U4NDgw
NDQyNzczZjZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTQ0LDYgKzQ0LDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgV2hlZWxFdmVudFN5bmNGb3JUZXN0aW5nKFdlYktp
dDo6V2ViV2hlZWxFdmVudCBldmVudCkgLT4gKGJvb2wgaGFuZGxlZCkKICNpZiBQTEFURk9STShJ
T1MpCiAgICAgU2V0Vmlld3BvcnRDb25maWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoV2ViQ29y
ZTo6SW50U2l6ZSBzaXplKQorICAgIER5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUoV2ViQ29yZTo6
SW50U2l6ZSBtaW5pbXVtTGF5b3V0U2l6ZSwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldEV4cG9z
ZWRDb250ZW50UmVjdCwgV2ViQ29yZTo6RmxvYXRSZWN0IHRhcmdldFVub2JzY3VyZWRSZWN0LCBk
b3VibGUgc2NhbGUpCiAKICAgICBIYW5kbGVUYXAoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQpCiAg
ICAgVGFwSGlnaGxpZ2h0QXRQb3NpdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OkZs
b2F0UG9pbnQgcG9pbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggNmU4MDI3OGRlMzQyZTE2OWFhOGRjOGYzNzk1Y2Ux
MDE4ZjcxYWFkNy4uMDMyOGIwMTYzMTcyOGYyMTIyMWIyMjQ3NmI2YWE4MzI3NDBkN2UzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQpAQCAtMTcwNiw2ICsxNzA2LDg5IEBAIHZvaWQgV2ViUGFnZTo6c2V0Vmlld3BvcnRDb25m
aWd1cmF0aW9uTWluaW11bUxheW91dFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICAgICB2aWV3
cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6ZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBJbnRTaXplJiBtaW5pbXVtTGF5b3V0U2l6ZSwgY29uc3Qg
RmxvYXRSZWN0JiB0YXJnZXRFeHBvc2VkQ29udGVudFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGFy
Z2V0VW5vYnNjdXJlZFJlY3QsIGRvdWJsZSB0YXJnZXRTY2FsZSkKK3sKKyAgICAvLyBGSVhNRTog
dGhpcyBkb2VzIG5vdCBoYW5kbGUgdGhlIGNhc2VzIHdoZXJlIHRoZSBjb250ZW50IHdvdWxkIGNo
YW5nZSB0aGUgY29udGVudCBzaXplIG9yIHNjcm9sbCBwb3NpdGlvbiBmcm9tIEphdmFTY3JpcHQu
CisgICAgLy8gVG8gaGFuZGxlIHRob3NlIGNhc2VzLCB3ZSB3b3VsZCBuZWVkIHRvIHJlZG8gdGhp
cyBjb21wdXRhdGlvbiBvbiBldmVyeSBjaGFuZ2UgdW50aWwgdGhlIG5leHQgdmlzaWJsZSBjb250
ZW50IHJlY3QgdXBkYXRlLgorCisgICAgRnJhbWVWaWV3JiBmcmFtZVZpZXcgPSAqbV9wYWdlLT5t
YWluRnJhbWUoKS52aWV3KCk7CisgICAgSW50U2l6ZSBvbGRDb250ZW50U2l6ZSA9IGZyYW1lVmll
dy5jb250ZW50c1NpemUoKTsKKworICAgIG1fdmlld3BvcnRDb25maWd1cmF0aW9uLnNldE1pbmlt
dW1MYXlvdXRTaXplKG1pbmltdW1MYXlvdXRTaXplKTsKKyAgICBJbnRTaXplIG5ld0xheW91dFNp
emUgPSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5sYXlvdXRTaXplKCk7CisgICAgc2V0Rml4ZWRM
YXlvdXRTaXplKG5ld0xheW91dFNpemUpOworICAgIGZyYW1lVmlldy51cGRhdGVMYXlvdXRBbmRT
dHlsZUlmTmVlZGVkUmVjdXJzaXZlKCk7CisKKyAgICBJbnRTaXplIG5ld0NvbnRlbnRTaXplID0g
ZnJhbWVWaWV3LmNvbnRlbnRzU2l6ZSgpOworCisgICAgZG91YmxlIHNjYWxlOworICAgIGlmICgh
bV91c2VySGFzQ2hhbmdlZFBhZ2VTY2FsZUZhY3RvcikKKyAgICAgICAgc2NhbGUgPSBtX3ZpZXdw
b3J0Q29uZmlndXJhdGlvbi5pbml0aWFsU2NhbGUoKTsKKyAgICBlbHNlCisgICAgICAgIHNjYWxl
ID0gc3RkOjptYXgoc3RkOjptaW4odGFyZ2V0U2NhbGUsIG1fdmlld3BvcnRDb25maWd1cmF0aW9u
Lm1heGltdW1TY2FsZSgpKSwgbV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubWluaW11bVNjYWxlKCkp
OworCisgICAgRmxvYXRSZWN0IG5ld1Vub2JzY3VyZWRDb250ZW50UmVjdCA9IHRhcmdldFVub2Jz
Y3VyZWRSZWN0OworICAgIEZsb2F0UmVjdCBuZXdFeHBvc2VkQ29udGVudFJlY3QgPSB0YXJnZXRF
eHBvc2VkQ29udGVudFJlY3Q7CisKKyAgICBpZiAoc2NhbGUgIT0gdGFyZ2V0U2NhbGUpIHsKKyAg
ICAgICAgLy8gVGhlIHRhcmdldCBzY2FsZSB0aGUgVUkgaXMgdXNpbmcgY2Fubm90IGJlIHJlYWNo
ZWQgYnkgdGhlIGNvbnRlbnQuIFdlIG5lZWQgdG8gY29tcHV0ZSBuZXcgdGFyZ2V0cyBiYXNlZAor
ICAgICAgICAvLyBvbiB0aGUgdmlld3BvcnQgY29uc3RyYWludCBhbmQgcmVwb3J0IGV2ZXJ5dGhp
bmcgYmFjayB0byB0aGUgVUlQcm9jZXNzLgorCisgICAgICAgIC8vIDEpIENvbXB1dGUgYSBuZXcg
dW5vYnNjdXJlZCByZWN0IGNlbnRlcmVkIGFyb3VuZCB0aGUgb3JpZ2luYWwgb25lLgorICAgICAg
ICBkb3VibGUgc2NhbGVEaWZmZXJlbmNlID0gdGFyZ2V0U2NhbGUgLyBzY2FsZTsKKyAgICAgICAg
ZG91YmxlIG5ld1Vub2JzY3VyZWRSZWN0V2lkdGggPSB0YXJnZXRVbm9ic2N1cmVkUmVjdC53aWR0
aCgpICogc2NhbGVEaWZmZXJlbmNlOworICAgICAgICBkb3VibGUgbmV3VW5vYnNjdXJlZFJlY3RI
ZWlnaHQgPSB0YXJnZXRVbm9ic2N1cmVkUmVjdC5oZWlnaHQoKSAqIHNjYWxlRGlmZmVyZW5jZTsK
KyAgICAgICAgZG91YmxlIG5ld1Vub2JzY3VyZWRSZWN0WCA9IHRhcmdldFVub2JzY3VyZWRSZWN0
LngoKSAtIChuZXdVbm9ic2N1cmVkUmVjdFdpZHRoIC0gdGFyZ2V0VW5vYnNjdXJlZFJlY3Qud2lk
dGgoKSkgLyAyOworICAgICAgICBkb3VibGUgbmV3VW5vYnNjdXJlZFJlY3RZID0gdGFyZ2V0VW5v
YnNjdXJlZFJlY3QueSgpIC0gKG5ld1Vub2JzY3VyZWRSZWN0SGVpZ2h0IC0gdGFyZ2V0VW5vYnNj
dXJlZFJlY3QuaGVpZ2h0KCkpIC8gMjsKKyAgICAgICAgbmV3VW5vYnNjdXJlZENvbnRlbnRSZWN0
ID0gRmxvYXRSZWN0KG5ld1Vub2JzY3VyZWRSZWN0WCwgbmV3VW5vYnNjdXJlZFJlY3RZLCBuZXdV
bm9ic2N1cmVkUmVjdFdpZHRoLCBuZXdVbm9ic2N1cmVkUmVjdEhlaWdodCk7CisKKyAgICAgICAg
Ly8gMikgRXh0ZW5kIG91ciBuZXcgdW5vYnNjdXJlZFJlY3QgYnkgdGhlIG9ic2N1cmVkIG1hcmdp
bnMgdG8gZ2V0IGEgbmV3IGV4cG9zZWQgcmVjdC4KKyAgICAgICAgZG91YmxlIG9ic2N1cmVkVG9w
TWFyZ2luID0gKHRhcmdldFVub2JzY3VyZWRSZWN0LnkoKSAtIHRhcmdldEV4cG9zZWRDb250ZW50
UmVjdC55KCkpICogc2NhbGVEaWZmZXJlbmNlOworICAgICAgICBkb3VibGUgb2JzY3VyZWRMZWZ0
TWFyZ2luID0gKHRhcmdldFVub2JzY3VyZWRSZWN0LngoKSAtIHRhcmdldEV4cG9zZWRDb250ZW50
UmVjdC54KCkpICogc2NhbGVEaWZmZXJlbmNlOworICAgICAgICBkb3VibGUgb2JzY3VyZWRCb3R0
b21NYXJnaW4gPSAodGFyZ2V0RXhwb3NlZENvbnRlbnRSZWN0Lm1heFkoKSAtIHRhcmdldFVub2Jz
Y3VyZWRSZWN0Lm1heFkoKSkgKiBzY2FsZURpZmZlcmVuY2U7CisgICAgICAgIGRvdWJsZSBvYnNj
dXJlZFJpZ2h0TWFyZ2luID0gKHRhcmdldEV4cG9zZWRDb250ZW50UmVjdC5tYXhYKCkgLSB0YXJn
ZXRVbm9ic2N1cmVkUmVjdC5tYXhYKCkpICogc2NhbGVEaWZmZXJlbmNlOworICAgICAgICBuZXdF
eHBvc2VkQ29udGVudFJlY3QgPSBGbG9hdFJlY3QobmV3VW5vYnNjdXJlZFJlY3RYIC0gb2JzY3Vy
ZWRMZWZ0TWFyZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bmV3VW5vYnNjdXJlZFJlY3RZIC0gb2JzY3VyZWRUb3BNYXJnaW4sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdVbm9ic2N1cmVkUmVjdFdpZHRoICsgb2JzY3Vy
ZWRMZWZ0TWFyZ2luICsgb2JzY3VyZWRSaWdodE1hcmdpbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG5ld1Vub2JzY3VyZWRSZWN0SGVpZ2h0ICsgb2JzY3VyZWRU
b3BNYXJnaW4gKyBvYnNjdXJlZEJvdHRvbU1hcmdpbik7CisKKyAgICAgICAgLy8gRklYTUU6IEFk
anVzdCB0aGUgcmVjdHMgYmFzZWQgb24gdGhlIGNvbnRlbnQuCisgICAgfQorCisgICAgaWYgKG9s
ZENvbnRlbnRTaXplICE9IG5ld0NvbnRlbnRTaXplIHx8IHNjYWxlICE9IHRhcmdldFNjYWxlKSB7
CisgICAgICAgIC8vIFNuYXAgdGhlIG5ldyB1bm9ic2N1cmVkIHJlY3QgYmFjayBpbnRvIHRoZSBj
b250ZW50IHJlY3QuCisgICAgICAgIG5ld1Vub2JzY3VyZWRDb250ZW50UmVjdC5zZXRXaWR0aChz
dGQ6Om1pbihzdGF0aWNfY2FzdDxmbG9hdD4obmV3Q29udGVudFNpemUud2lkdGgoKSksIG5ld0V4
cG9zZWRDb250ZW50UmVjdC53aWR0aCgpKSk7CisgICAgICAgIG5ld1Vub2JzY3VyZWRDb250ZW50
UmVjdC5zZXRIZWlnaHQoc3RkOjptaW4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KG5ld0NvbnRlbnRTaXpl
LmhlaWdodCgpKSwgbmV3RXhwb3NlZENvbnRlbnRSZWN0LmhlaWdodCgpKSk7CisKKyAgICAgICAg
ZG91YmxlIGhvcml6b250YWxBZGp1c3RtZW50ID0gMDsKKyAgICAgICAgaWYgKG5ld0V4cG9zZWRD
b250ZW50UmVjdC5tYXhYKCkgPiBuZXdDb250ZW50U2l6ZS53aWR0aCgpKQorICAgICAgICAgICAg
aG9yaXpvbnRhbEFkanVzdG1lbnQgLT0gbmV3RXhwb3NlZENvbnRlbnRSZWN0Lm1heFgoKSAtIG5l
d0NvbnRlbnRTaXplLndpZHRoKCk7CisgICAgICAgIGRvdWJsZSB2ZXJ0aWNhbEFkanVzdG1lbnQg
PSAwOworICAgICAgICBpZiAobmV3RXhwb3NlZENvbnRlbnRSZWN0Lm1heFkoKSA+IG5ld0NvbnRl
bnRTaXplLmhlaWdodCgpKQorICAgICAgICAgICAgdmVydGljYWxBZGp1c3RtZW50IC09IG5ld0V4
cG9zZWRDb250ZW50UmVjdC5tYXhZKCkgLSBuZXdDb250ZW50U2l6ZS5oZWlnaHQoKTsKKyAgICAg
ICAgaWYgKG5ld0V4cG9zZWRDb250ZW50UmVjdC54KCkgPCAwKQorICAgICAgICAgICAgaG9yaXpv
bnRhbEFkanVzdG1lbnQgKz0gLSBuZXdFeHBvc2VkQ29udGVudFJlY3QueCgpOworICAgICAgICBp
ZiAobmV3RXhwb3NlZENvbnRlbnRSZWN0LnkoKSA8IDApCisgICAgICAgICAgICB2ZXJ0aWNhbEFk
anVzdG1lbnQgKz0gLSBuZXdFeHBvc2VkQ29udGVudFJlY3QueSgpOworCisgICAgICAgIG5ld1Vu
b2JzY3VyZWRDb250ZW50UmVjdC5tb3ZlKGhvcml6b250YWxBZGp1c3RtZW50LCB2ZXJ0aWNhbEFk
anVzdG1lbnQpOworICAgICAgICBuZXdFeHBvc2VkQ29udGVudFJlY3QubW92ZShob3Jpem9udGFs
QWRqdXN0bWVudCwgdmVydGljYWxBZGp1c3RtZW50KTsKKyAgICB9CisKKyAgICBmcmFtZVZpZXcu
c2V0U2Nyb2xsVmVsb2NpdHkoMCwgMCwgMCwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkp
OworCisgICAgSW50UmVjdCByb3VuZGVkVW5vYnNjdXJlZENvbnRlbnRSZWN0ID0gcm91bmRlZElu
dFJlY3QobmV3VW5vYnNjdXJlZENvbnRlbnRSZWN0KTsKKyAgICBmcmFtZVZpZXcuc2V0U2Nyb2xs
T2Zmc2V0KHJvdW5kZWRVbm9ic2N1cmVkQ29udGVudFJlY3QubG9jYXRpb24oKSk7CisgICAgZnJh
bWVWaWV3LnNldFVub2JzY3VyZWRDb250ZW50UmVjdChyb3VuZGVkVW5vYnNjdXJlZENvbnRlbnRS
ZWN0KTsKKyAgICBtX2RyYXdpbmdBcmVhLT5zZXRFeHBvc2VkQ29udGVudFJlY3QobmV3RXhwb3Nl
ZENvbnRlbnRSZWN0KTsKKworICAgIGlmIChzY2FsZSA9PSB0YXJnZXRTY2FsZSkKKyAgICAgICAg
c2NhbGVQYWdlKHNjYWxlLCBmcmFtZVZpZXcuc2Nyb2xsUG9zaXRpb24oKSk7CisKKyAgICBpZiAo
c2NhbGUgIT0gdGFyZ2V0U2NhbGUgfHwgcm91bmRlZEludFBvaW50KHRhcmdldFVub2JzY3VyZWRS
ZWN0LmxvY2F0aW9uKCkpICE9IHJvdW5kZWRVbm9ic2N1cmVkQ29udGVudFJlY3QubG9jYXRpb24o
KSkKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEeW5hbWljVmlld3BvcnRV
cGRhdGVDaGFuZ2VkVGFyZ2V0KHNjYWxlLCBmcmFtZVZpZXcuc2Nyb2xsUG9zaXRpb24oKSkpOwor
fQorCiB2b2lkIFdlYlBhZ2U6OnZpZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5nZWQoKQogewogICAg
IHNldEZpeGVkTGF5b3V0U2l6ZShtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5sYXlvdXRTaXplKCkp
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>