<?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>132537</bug_id>
          
          <creation_ts>2014-05-03 17:28:39 -0700</creation_ts>
          <short_desc>[iOS WK2] Turn off position:fixed behavior when the keyboard is up</short_desc>
          <delta_ts>2014-07-21 16:45:15 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
    
    <cc>jonlee</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1006425</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-03 17:28:39 -0700</bug_when>
    <thetext>[iOS WK2] Turn off position:fixed behavior when the keyboard is up</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006426</commentid>
    <comment_count>1</comment_count>
      <attachid>230773</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-03 17:34:22 -0700</bug_when>
    <thetext>Created attachment 230773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006427</commentid>
    <comment_count>2</comment_count>
      <attachid>230774</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-03 17:35:56 -0700</bug_when>
    <thetext>Created attachment 230774
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006440</commentid>
    <comment_count>3</comment_count>
      <attachid>230774</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-05-03 18:35:19 -0700</bug_when>
    <thetext>Comment on attachment 230774
Patch

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

Cool!

If you have time, it would be really nice to not freeze the layout in some cases. If you can fix the caret issue, I would be happy to come with the heuristic and fix the animation.

&gt; Source/WebKit2/UIProcess/ios/WKContentView.mm:316
&gt; +        _lastFixedPositionRect = fixedPositionRectFromExposedRect(unobscuredRect, [self bounds].size, zoomScale);

We should rename fixedPositionRectFromExposedRect() to fixedPositionRectFromUnobscuredRect() at some point.

[self bounds].size -&gt; self.bounds.size.

&gt; Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:2105
&gt; +- (BOOL)_hasAssistedNode
&gt; +{
&gt; +    return _assistedNodeInformation.elementType != WKTypeNone;
&gt; +}

Shouldn&apos;t you use &quot;isEditable&quot; and/or &quot;isAssistingNode&quot; instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006486</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-04 10:44:24 -0700</bug_when>
    <thetext>There&apos;s a problem when moving from one form field in a postion:fixed to the next, so I&apos;ll refine this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1007363</commentid>
    <comment_count>5</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2014-05-07 10:50:02 -0700</bug_when>
    <thetext>&lt;rdar://problem/16665614&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1012640</commentid>
    <comment_count>6</comment_count>
      <attachid>230774</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-05-30 11:35:48 -0700</bug_when>
    <thetext>Comment on attachment 230774
Patch

Need to do something better than this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023773</commentid>
    <comment_count>7</comment_count>
      <attachid>235244</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-07-21 13:34:01 -0700</bug_when>
    <thetext>Created attachment 235244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023780</commentid>
    <comment_count>8</comment_count>
      <attachid>235244</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-07-21 14:05:26 -0700</bug_when>
    <thetext>Comment on attachment 235244
Patch

Looks reasonable.

Can you please force an updateVisibleContentRect from [WKContentView _startAssistingNode:] in if the focus succeed and the AssistedNodeInformation has insideFixedPosition? (if not you could remove insideFixedPosition entirely).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023802</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-07-21 16:45:15 -0700</bug_when>
    <thetext>https://trac.webkit.org/r171320</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230773</attachid>
            <date>2014-05-03 17:34:22 -0700</date>
            <delta_ts>2014-05-03 17:35:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132537-20140503173359.patch</filename>
            <type>text/plain</type>
            <size>22534</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4MjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDRlOWYzZTA1YTdkZmRh
YWMxMjBjYTZkZTk2YWVkN2RhNGYyMDVhZS4uNDUzOWFiZTk5M2FmODYxZmI5MGQyN2ZhNDA2MTdk
OTNhMzM0NzY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDE0LTA1LTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFtpT1MgV0syXSBU
dXJuIG9mZiBwb3NpdGlvbjpmaXhlZCBiZWhhdmlvciB3aGVuIHRoZSBrZXlib2FyZCBpcyB1cAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNTM3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBU
byBlbnN1cmUgdGhhdCBmb3JtIGZpZWxkcyBpbnNpZGUgcG9zaXRpb246Zml4ZWQgYXJlIHNjcm9s
bGFibGUgaW50bworICAgICAgICB2aWV3IHdoZW4gdGhleSBhcmUgYmVpbmcgaW50ZXJhY3RlZCB3
aXRoLCB3ZSBzdG9wIHVwZGF0aW5nIHRoZSBmaXhlZAorICAgICAgICBwb3NpdGlvbiByZWN0IHdo
ZW4gdGhlcmUgaXMgYSBub2RlIGJlaW5nIGFzc2lzdGVkLgorICAgICAgICAKKyAgICAgICAgSW4g
dGhlIHNjcm9sbGluZyB0cmVlLCB0aGlzIHJlcXVpcmVzIHRoYXQgd2UgdXNlIGEgZml4ZWRQb3Np
dGlvblJlY3QgcGFzc2VkCisgICAgICAgIGludG8gdXBkYXRlTGF5ZXJzQWZ0ZXJWaWV3cG9ydENo
YW5nZSgpLCByYXRoZXIgdGhhbiBvbmUgd2UgY29tcHV0ZQorICAgICAgICBvbiB0aGUgZmx5IGJh
c2VkIG9uIHRoZSB2aWV3cG9ydCByZWN0LgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46Cisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxpbmdUcmVlOjp2aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsUG9zaXRpb25DaGFuZ2Vk
VmlhRGVsZWdhdGVkU2Nyb2xsaW5nKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVJT1MuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZUlPUzo6dXBkYXRlTGF5ZXJzQWZ0ZXJWaWV3cG9ydENoYW5nZSk6CisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLmg6Cisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6OnVw
ZGF0ZUxheWVyc0FmdGVyVmlld3BvcnRDaGFuZ2UpOgorCisyMDE0LTA1LTAzICBTaW1vbiBGcmFz
ZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCiAgICAgICAgIFZlcnkgZnV6enkgbGF5ZXJz
IHVuZGVyIG5vbi1kZWNvbXBhc2FibGUgbWF0cmljZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjUxNgogICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MTY3MTc0Nzg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDNmMzA3NTMwN2U5Mzk3MGNmYjExYmM1NzZjYzI2MjAz
OGMxZWJkNC4uMDM4MzQ0M2Y0YWRiNWM4YmFhMTcyYTM0Yjc5MjNmYzI5NmM2MzkyZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDE0LTA1LTAzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFtpT1MgV0syXSBUdXJuIG9mZiBwb3NpdGlvbjpm
aXhlZCBiZWhhdmlvciB3aGVuIHRoZSBrZXlib2FyZCBpcyB1cAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNTM3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gZW5zdXJlIHRoYXQgZm9ybSBmaWVsZHMg
aW5zaWRlIHBvc2l0aW9uOmZpeGVkIGFyZSBzY3JvbGxhYmxlIGludG8KKyAgICAgICAgdmlldyB3
aGVuIHRoZXkgYXJlIGJlaW5nIGludGVyYWN0ZWQgd2l0aCwgd2Ugc3RvcCB1cGRhdGluZyB0aGUg
Zml4ZWQKKyAgICAgICAgcG9zaXRpb24gcmVjdCB3aGVuIHRoZXJlIGlzIGEgbm9kZSBiZWluZyBh
c3Npc3RlZC4KKyAgICAgICAgCisgICAgICAgIHZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNj
cm9sbGluZygpIG5lZWRzIHRvIHRha2UgYSBmaXhlZFBvc2l0aW9uUmVjdAorICAgICAgICB0byBw
YXNzIGRvd24gdG8gdGhlIHNjcm9sbGluZyB0cmVlLgorICAgICAgICAKKyAgICAgICAgV0tDb250
ZW50VmlldyBub3cgY2FjaGVzIHRoZSBsYXN0IGN1c3RvbSBmaXhlZCBwb3NpdGlvbiByZWN0IHRo
YXQKKyAgICAgICAgd2FzIGNvbXB1dGVkLCBhbmQgZG9lc24ndCBjaGFuZ2UgaXQgaWYgYSBub2Rl
IGlzIGJlaW5nIGFzc2lzdGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6dmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Ny
b2xsaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3VzdG9tRml4ZWRQb3NpdGlvblJlY3QpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBpbml0
V2l0aEZyYW1lOmNvbnRleHQ6V2ViS2l0Ojpjb25maWd1cmF0aW9uOldlYktpdDo6d2ViVmlldzpd
KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkaWRVcGRhdGVWaXNpYmxlUmVjdDp1bm9ic2N1
cmVkUmVjdDpzY2FsZTppblN0YWJsZVN0YXRlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2hhc0Fz
c2lzdGVkTm9kZV0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKToKKworMjAxNC0wNS0wMyAgU2ltb24gRnJhc2Vy
ICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKwogICAgICAgICBbVUktc2lkZSBjb21wb3NpdGlu
Z10gQXNzZXJ0aW9uIGluIFBsYXRmb3JtQ0FGaWx0ZXJzOjpzZXRGaWx0ZXJzT25MYXllciB3aXRo
IGFuaW1hdGVkIHJlZmVyZW5jZSBmaWx0ZXIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEzMjUyOAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTY2NzE2
NjA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGM1ODRmNjJhZGRkNmE1MzY3NGI4YTJkZmVlYTk1
NjNhZWYzZTEzZDcuLjVlZjc2YmNiMDk2OWY0OWNlYzA2OTUwM2MyZjA5ZjY0ODcwNjA5YjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZXhwLmluCkBAIC0yNzU4LDcgKzI3NTgsNyBAQCBfX1pON1dlYkNvcmUxM1Nj
cm9sbGluZ1RyZWUyMXNldENhblJ1YmJlckJhbmRTdGF0ZUViYmJiCiBfX1pON1dlYkNvcmUxM1Nj
cm9sbGluZ1RyZWUzMXdpbGxXaGVlbEV2ZW50U3RhcnRTd2lwZUdlc3R1cmVFUktOU18xOFBsYXRm
b3JtV2hlZWxFdmVudEUKIF9fWk43V2ViQ29yZTEzU2Nyb2xsaW5nVHJlZTMyaXNQb2ludEluTm9u
RmFzdFNjcm9sbGFibGVSZWdpb25FTlNfOEludFBvaW50RQogX19aTjdXZWJDb3JlMTNTY3JvbGxp
bmdUcmVlMzVzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseUVSS05TXzE4UGxhdGZv
cm1XaGVlbEV2ZW50RQotX19aTjdXZWJDb3JlMTNTY3JvbGxpbmdUcmVlMzZ2aWV3cG9ydENoYW5n
ZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmdFeVJLTlNfOUZsb2F0UmVjdEVkCitfX1pON1dlYkNvcmUx
M1Njcm9sbGluZ1RyZWUzNnZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZ0V5UktO
U185RmxvYXRSZWN0RVMzX2QKIF9fWk43V2ViQ29yZTEzU2Nyb2xsaW5nVHJlZTM3c2V0U2Nyb2xs
aW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZEViCiBfX1pON1dlYkNvcmUxM1Njcm9sbGluZ1Ry
ZWU0MnNjcm9sbFBvc2l0aW9uQ2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZ0V5UktOU18xMEZs
b2F0UG9pbnRFCiBfX1pON1dlYkNvcmUxM1Njcm9sbGluZ1RyZWVDMkV2CkBAIC0yODIzLDcgKzI4
MjMsNyBAQCBfX1pON1dlYkNvcmUyOVNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjNmNyZWF0
ZUVSTlNfMTNTY3JvbGxpbmdUcmVlRU5TXzE3U2NybwogX19aTjdXZWJDb3JlMjlTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZUlPUzE3c2V0U2Nyb2xsUG9zaXRpb25FUktOU18xMEZsb2F0UG9pbnRF
CiBfX1pON1dlYkNvcmUyOVNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TMTl1cGRhdGVBZnRl
ckNoaWxkcmVuRVJLTlNfMThTY3JvbGxpbmdTdGF0ZU5vZGVFCiBfX1pON1dlYkNvcmUyOVNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TMjB1cGRhdGVCZWZvcmVDaGlsZHJlbkVSS05TXzE4U2Ny
b2xsaW5nU3RhdGVOb2RlRQotX19aTjdXZWJDb3JlMjlTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZUlPUzMxdXBkYXRlTGF5ZXJzQWZ0ZXJWaWV3cG9ydENoYW5nZUVSS05TXzlGbG9hdFJlY3RFZAor
X19aTjdXZWJDb3JlMjlTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzMxdXBkYXRlTGF5ZXJz
QWZ0ZXJWaWV3cG9ydENoYW5nZUVSS05TXzlGbG9hdFJlY3RFUzNfZAogX19aTjdXZWJDb3JlMjlT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzMydXBkYXRlTGF5ZXJzQWZ0ZXJEZWxlZ2F0ZWRT
Y3JvbGxFUktOU18xMEZsb2F0UG9pbnRFCiBfX1pON1dlYkNvcmUyOVNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlSU9TNDZzZXRTY3JvbGxQb3NpdGlvbldpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFp
bnRzRVJLTlNfMTBGbG9hdFBvaW50RQogX19aTjdXZWJDb3JlMjlTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZUlPUzZjcmVhdGVFUk5TXzEzU2Nyb2xsaW5nVHJlZUVOU18xN1Njcm9sbGluZ05vZGVU
eXBlRXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5j
cHAKaW5kZXggYmVmODFlNDcxOGNjNmNmODIzMThkNTMxNWE3ZjQ2NjNmODY4ODFhNC4uNDRkYmY4
NDViNDJmNzI0NWVlNzE3NDI1MTY5Yjc3MWQ0OWUwNmU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgdm9p
ZCBTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgd2hlZWxFdmVudCkKICAgICAgICAgbV9yb290Tm9kZS0+aGFuZGxlV2hlZWxFdmVudCh3aGVl
bEV2ZW50KTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlOjp2aWV3cG9ydENoYW5nZWRWaWFEZWxl
Z2F0ZWRTY3JvbGxpbmcoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiB2aWV3cG9ydFJlY3QsIGRvdWJsZSBzY2FsZSkKK3ZvaWQgU2Nyb2xsaW5nVHJlZTo6
dmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFNjcm9sbGluZ05vZGVJRCBub2Rl
SUQsIGNvbnN0IEZsb2F0UmVjdCYgdmlld3BvcnRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGZpeGVk
UG9zaXRpb25SZWN0LCBkb3VibGUgc2NhbGUpCiB7CiAgICAgU2Nyb2xsaW5nVHJlZU5vZGUqIG5v
ZGUgPSBub2RlRm9ySUQobm9kZUlEKTsKICAgICBpZiAoIW5vZGUpCkBAIC0xMDcsMTAgKzEwNywx
MCBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9s
bGluZyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELAogICAgIGlmICghbm9kZS0+aXNTY3JvbGxpbmdO
b2RlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHRvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGUobm9kZSktPnVwZGF0ZUxheWVyc0FmdGVyVmlld3BvcnRDaGFuZ2Uodmlld3BvcnRSZWN0LCBz
Y2FsZSk7CisgICAgdG9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZShub2RlKS0+dXBkYXRlTGF5
ZXJzQWZ0ZXJWaWV3cG9ydENoYW5nZSh2aWV3cG9ydFJlY3QsIGZpeGVkUG9zaXRpb25SZWN0LCBz
Y2FsZSk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsUG9zaXRpb25DaGFuZ2VkVmlh
RGVsZWdhdGVkU2Nyb2xsaW5nKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uKQordm9pZCBTY3JvbGxpbmdUcmVlOjpzY3JvbGxQ
b3NpdGlvbkNoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJ
RCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCiB7CiAgICAgU2Nyb2xsaW5nVHJl
ZU5vZGUqIG5vZGUgPSBub2RlRm9ySUQobm9kZUlEKTsKICAgICBpZiAoIW5vZGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggMmY0N2E2YWM1
YTM4ZjJjNDJmNmIzYTYwYWI5MzEzYzQwM2FiOWI0ZS4uOWNmYmI0YTY1ZGM5NzVmMTAyNDgxYTQx
YmFjODYzNTIyOTE3NWZiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaApAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBEZWxlZ2F0
ZWQgc2Nyb2xsaW5nL3pvb21pbmcgaGFzIGNhdXNlZCB0aGUgdmlld3BvcnQgdG8gY2hhbmdlLCBz
byB1cGRhdGUgdmlld3BvcnQtY29uc3RyYWluZWQgbGF5ZXJzCiAgICAgLy8gKGJ1dCBkb24ndCBj
YXVzZSBzY3JvbGwgZXZlbnRzIHRvIGJlIGZpcmVkKS4KLSAgICB2aXJ0dWFsIHZvaWQgdmlld3Bv
cnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiB2aWV3cG9ydFJlY3QsIGRvdWJsZSBzY2FsZSk7CisgICAgdmlydHVh
bCB2b2lkIHZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhTY3JvbGxpbmdOb2Rl
SUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdmlld3BvcnRSZWN0LCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBkb3VibGUgc2NhbGUpOwogCiAgICAgLy8g
RGVsZWdhdGVkIHNjcm9sbGluZyBoYXMgc2Nyb2xsZWQgYSBub2RlLiBVcGRhdGUgbGF5ZXIgcG9z
aXRpb25zIG9uIGRlc2NlbmRhbnQgdHJlZSBub2RlcywKICAgICAvLyBhbmQgY2FsbCBzY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbCgpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKaW5kZXggMWYxODE1YmU4
MjNhYWVjYWQ5NjQxMGY4MjEwYTliYTNlMGIxM2QwMC4uZTAwMDEwZDQ4OTNhZDczODJhYWNhNmY0
MGY3NzM5ODcxM2EyMjMwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCkBAIC01NCw3ICs1NCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgRmxvYXRQ
b2ludCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb25XaXRob3V0Q29u
dGVudEVkZ2VDb25zdHJhaW50cyhjb25zdCBGbG9hdFBvaW50JikgPSAwOwogCi0gICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUxheWVyc0FmdGVyVmlld3BvcnRDaGFuZ2UoY29uc3QgRmxvYXRSZWN0JiB2
aWV3cG9ydFJlY3QsIGRvdWJsZSBzY2FsZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVM
YXllcnNBZnRlclZpZXdwb3J0Q2hhbmdlKGNvbnN0IEZsb2F0UmVjdCYgdmlld3BvcnRSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBkb3VibGUgc2NhbGUpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlTGF5ZXJzQWZ0ZXJEZWxlZ2F0ZWRTY3JvbGwoY29uc3QgRmxv
YXRQb2ludCYpIHsgfQogCiAgICAgU3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zIHN5bmNocm9u
b3VzU2Nyb2xsaW5nUmVhc29ucygpIGNvbnN0IHsgcmV0dXJuIG1fc3luY2hyb25vdXNTY3JvbGxp
bmdSZWFzb25zOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9p
b3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUy5oCmluZGV4IGMzZWU5
NWEyMjNiMjJjZmNmNDNlMTE0NGZhZTNhMTk3YjU2NDAwNTkuLmMyNGZhZWE2ZWRiYjIwY2YzN2Iy
ZmNlMDYxNTkwZWU0YzgxYWM2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUy5o
CkBAIC01NCw3ICs1NCw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xs
UG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRTY3JvbGxQb3NpdGlvbldpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbnRzKGNvbnN0IEZsb2F0
UG9pbnQmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMYXllcnNBZnRlclZp
ZXdwb3J0Q2hhbmdlKGNvbnN0IEZsb2F0UmVjdCYgdmlld3BvcnRSZWN0LCBkb3VibGUgc2NhbGUp
OworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMYXllcnNBZnRlclZpZXdwb3J0Q2hhbmdlKGNvbnN0
IEZsb2F0UmVjdCYgdmlld3BvcnRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25S
ZWN0LCBkb3VibGUgc2NhbGUpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMYXllcnNBZnRlckRl
bGVnYXRlZFNjcm9sbChjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNl
dFNjcm9sbExheWVyUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlSU9TLm1tCmluZGV4IDQzMGRiM2Y1MDQwMTQ0YTMwYWM1NzY0ZmRiZGU4ZjJj
NzE4MWZiYWUuLjAxY2VjMjk1YzgzODliMWI4ZmYyZGI4ZGMxMzkwZGQ0NTEzMDU4MmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3Mv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MubW0KQEAgLTEzNywxOCArMTM3LDE2IEBAIHZv
aWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1M6OnNldFNjcm9sbExheWVyUG9zaXRpb24o
Y29uc3QgRmxvYXRQb2ludCYgc2NyCiAgICAgdXBkYXRlQ2hpbGROb2Rlc0FmdGVyU2Nyb2xsKHNj
cm9sbFBvc2l0aW9uKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6
dXBkYXRlTGF5ZXJzQWZ0ZXJWaWV3cG9ydENoYW5nZShjb25zdCBGbG9hdFJlY3QmIHZpZXdwb3J0
UmVjdCwgZG91YmxlIHNjYWxlKQordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6
dXBkYXRlTGF5ZXJzQWZ0ZXJWaWV3cG9ydENoYW5nZShjb25zdCBGbG9hdFJlY3QmIHZpZXdwb3J0
UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIC8qc2NhbGUq
LykKIHsKICAgICBbbV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXIgc2V0UG9zaXRpb246dmlld3BvcnRS
ZWN0LmxvY2F0aW9uKCldOwogCiAgICAgaWYgKCFtX2NoaWxkcmVuKQogICAgICAgICByZXR1cm47
CiAKLSAgICBGbG9hdFJlY3Qgdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHNSZWN0ID0gRnJhbWVW
aWV3OjpyZWN0Rm9yVmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMoZW5jbG9zaW5nTGF5b3V0UmVj
dCh2aWV3cG9ydFJlY3QpLCB0b3RhbENvbnRlbnRzU2l6ZSgpLCBzY2FsZSwgZmFsc2UsIHNjcm9s
bEJlaGF2aW9yRm9yRml4ZWRFbGVtZW50cygpKTsKLQogICAgIHNpemVfdCBzaXplID0gbV9jaGls
ZHJlbi0+c2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQotICAg
ICAgICBtX2NoaWxkcmVuLT5hdChpKS0+cGFyZW50U2Nyb2xsUG9zaXRpb25EaWRDaGFuZ2Uodmll
d3BvcnRDb25zdHJhaW5lZE9iamVjdHNSZWN0LCBGbG9hdFNpemUoKSk7CisgICAgICAgIG1fY2hp
bGRyZW4tPmF0KGkpLT5wYXJlbnRTY3JvbGxQb3NpdGlvbkRpZENoYW5nZShmaXhlZFBvc2l0aW9u
UmVjdCwgRmxvYXRTaXplKCkpOwogfQogCiB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
SU9TOjp1cGRhdGVMYXllcnNBZnRlckRlbGVnYXRlZFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBz
Y3JvbGxQb3NpdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLmgKaW5kZXggMjll
Yjg1MDZlMTI4NWVjYmZkOWFmNzdiYjhmMWZhM2VkNWY0MjgzNS4uOGNjMGQ2ODBhNTMxZTI5Yjgw
ZWUxMzA4MzJmMDczNGNlNzQzMDgyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFj
LmgKQEAgLTY5LDcgKzY5LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xs
UG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRTY3JvbGxQb3NpdGlvbldpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbnRzKGNvbnN0IEZsb2F0
UG9pbnQmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMYXllcnNBZnRlclZp
ZXdwb3J0Q2hhbmdlKGNvbnN0IEZsb2F0UmVjdCYgdmlld3BvcnRSZWN0LCBkb3VibGUgc2NhbGUp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMYXllcnNBZnRlclZpZXdwb3J0Q2hh
bmdlKGNvbnN0IEZsb2F0UmVjdCYgdmlld3BvcnRSZWN0LCBjb25zdCBGbG9hdFJlY3QmIGZpeGVk
UG9zaXRpb25SZWN0LCBkb3VibGUgc2NhbGUpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRTY3Jv
bGxMYXllclBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlTWFjLm1tCmluZGV4IDI3MDlhYTI3NjEwZGE4NGI0ZTY5NjZhZmM3MTU4M2Q1Y2Ji
MjZiYTAuLmFmM2JlNjJkZjQ0MTYwNzU0YjZmZDEwODQ3MDJmN2Y4MWNkOGIzMGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW0KQEAgLTM5OCw3ICszOTgsNyBAQCB2b2lkIFNj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjpzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0
IEZsb2F0UG9pbnQmIHBvcwogICAgICAgICBtX2NoaWxkcmVuLT5hdChpKS0+cGFyZW50U2Nyb2xs
UG9zaXRpb25EaWRDaGFuZ2Uodmlld3BvcnRSZWN0LCBGbG9hdFNpemUoKSk7CiB9CiAKLXZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6OnVwZGF0ZUxheWVyc0FmdGVyVmlld3BvcnRD
aGFuZ2UoY29uc3QgRmxvYXRSZWN0JiwgZG91YmxlKQordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZU1hYzo6dXBkYXRlTGF5ZXJzQWZ0ZXJWaWV3cG9ydENoYW5nZShjb25zdCBGbG9hdFJl
Y3QmLCBjb25zdCBGbG9hdFJlY3QmLCBkb3VibGUpCiB7CiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcAppbmRleCA5
NGIxNGFkOWM4NWM5YjMzYmFmZmVhOGNkYTViMDMxM2E4YTZhYjFmLi45OGI5NzA1ZDIxYTRmODg3
ODljOTg1NGExODliZTEyZGMzZjI3Yzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eS5jcHAKQEAgLTE0NCw5ICsxNDQsOSBAQCBib29sIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHk6OmlzUG9pbnRJbk5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uKGNvbnN0IFdl
YgogICAgIHJldHVybiBtX3Njcm9sbGluZ1RyZWUtPmlzUG9pbnRJbk5vbkZhc3RTY3JvbGxhYmxl
UmVnaW9uKHApOwogfQogCi12b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnZp
ZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlE
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpZXdwb3J0UmVjdCwgZG91YmxlIHNjYWxlKQor
dm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojp2aWV3cG9ydENoYW5nZWRWaWFE
ZWxlZ2F0ZWRTY3JvbGxpbmcoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0JiB2aWV3cG9ydFJlY3QsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZml4ZWRQ
b3NpdGlvblJlY3QsIGRvdWJsZSBzY2FsZSkKIHsKLSAgICBtX3Njcm9sbGluZ1RyZWUtPnZpZXdw
b3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhub2RlSUQsIHZpZXdwb3J0UmVjdCwgc2Nh
bGUpOworICAgIG1fc2Nyb2xsaW5nVHJlZS0+dmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Ny
b2xsaW5nKG5vZGVJRCwgdmlld3BvcnRSZWN0LCBmaXhlZFBvc2l0aW9uUmVjdCwgc2NhbGUpOwog
fQogCiAvLyBUaGlzIGNvbWVzIGZyb20gdGhlIHNjcm9sbGluZyB0cmVlLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAppbmRleCBiNzNhYWYxZTRlMjE4ZTczZGMwY2RjMWI0
M2ZkNWE1MjhlNTI4OTg4Li4zZjFiZDJhZjI4NjAyODdmNzgyZmNkMDMwNjU2YmJjMzVhOGZiYWNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
U2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaApAQCAtNTgsNyArNTgs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1BvaW50SW5Ob25GYXN0U2Nyb2xsYWJsZVJlZ2lvbihj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0OwogCiAgICAgLy8gQ2FsbGVkIGV4dGVybmFs
bHkgd2hlbiBuYXRpdmUgdmlld3MgbW92ZSBhcm91bmQuCi0gICAgdm9pZCB2aWV3cG9ydENoYW5n
ZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHZpZXdwb3J0UmVjdCwgZG91YmxlIHNjYWxlKTsKKyAgICB2b2lk
IHZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhXZWJDb3JlOjpTY3JvbGxpbmdO
b2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdmlld3BvcnRSZWN0LCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBkb3VibGUgc2NhbGUpOwogCiAgICAg
Ly8gRklYTUU6IGV4cG9zZSB0aGUgdHJlZSBhbmQgcGFzcyB0aGlzIHRvIHRoYXQ/CiAgICAgYm9v
bCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFdlYkNvcmU6OlBsYXRmb3JtV2hlZWxFdmVudCYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGQ4ZGUwNTQ5MjVjYjEw
NjIyNTNhMGQ4ZTQ2N2FlMDgzMGMwM2E2YzMuLjBjODQ2NThlY2I2ZDE1NjI0Mzg5MjI4ODU4NjJj
MTcwNzg1YjcxZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTU4MSw2ICs1ODEsNyBAQCBwdWJsaWM6CiAgICAgZG91YmxlIGRpc3BsYXllZENvbnRlbnRTY2Fs
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFZpc2libGVDb250ZW50UmVjdFVwZGF0ZS5zY2FsZSgp
OyB9CiAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBleHBvc2VkQ29udGVudFJlY3QoKSBj
b25zdCB7IHJldHVybiBtX2xhc3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGUuZXhwb3NlZFJlY3Qo
KTsgfQogICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZENvbnRlbnRSZWN0
KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlLnVub2JzY3Vy
ZWRSZWN0KCk7IH0KKyAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGN1c3RvbUZpeGVkUG9z
aXRpb25SZWN0KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRl
LmN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KCk7IH0KIAogICAgIGJvb2wgdXBkYXRlVmlzaWJsZUNv
bnRlbnRSZWN0cyhjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJik7CiAgICAgdWlu
dDY0X3QgbmV4dFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlEKCkgY29uc3QgeyByZXR1cm4gbV9s
YXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlLnVwZGF0ZUlEKCkgKyAxOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCmluZGV4IGQ0NTI3NDUyOTI3NDFl
ZTZlNzFhNGJiYmQxNDRjNDk0NDczYzA4OTguLmExMzk2ZWIzMDcwMWRkNjY5ZWVhNjQ0ZmIwYWVj
MmUxM2Y3OTBmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlldy5oCkBAIC00OSw2ICs0OSw3IEBAIHN0cnVjdCBXZWJQYWdlQ29uZmlndXJhdGlvbjsKIEBw
YWNrYWdlCiAgICAgUmVmUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBfcGFnZTsKICAgICBXS1dl
YlZpZXcgKl93ZWJWaWV3OworICAgIENHUmVjdCBfbGFzdEZpeGVkUG9zaXRpb25SZWN0OwogfQog
CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdLQnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlciAqYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRleCBkNzZlYjRkOGVkZTBkOTM2MDkzNjllNTEy
Y2E0OWE1NjIxZWQ5M2Q4Li5jYzU4MzljNmI3ZmU3OGM0OWEwZGZkMDdhZjRhNTNjMzg5NWU1YzI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBA
IC0yMDksOSArMjA5LDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClm
cmFtZSBjb250ZXh0OihXZWJLaXQ6OldlYkNvbnRleHQmKWNvbnRleHQKICAgICBzZWxmLmxheWVy
LmhpdFRlc3RzQXNPcGFxdWUgPSBZRVM7CiAKICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRl
ZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9hcHBsaWNh
dGlvbldpbGxFbnRlckZvcmVncm91bmQ6KSBuYW1lOlVJQXBwbGljYXRpb25XaWxsRW50ZXJGb3Jl
Z3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNhdGlv
bl1dOwotCiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNl
cnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYXBwbGljYXRpb25XaWxsUmVzaWduQWN0aXZl
OikgbmFtZTpVSUFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZU5vdGlmaWNhdGlvbiBvYmplY3Q6
W1VJQXBwbGljYXRpb24gc2hhcmVkQXBwbGljYXRpb25dXTsKLQogICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0
b3IoX2FwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlOikgbmFtZTpVSUFwcGxpY2F0aW9uRGlkQmVj
b21lQWN0aXZlTm90aWZpY2F0aW9uIG9iamVjdDpbVUlBcHBsaWNhdGlvbiBzaGFyZWRBcHBsaWNh
dGlvbl1dOwogCiAgICAgcmV0dXJuIHNlbGY7CkBAIC0zMTQsMTEgKzMxMiwxMyBAQCAtICh2b2lk
KWRpZFVwZGF0ZVZpc2libGVSZWN0OihDR1JlY3QpdmlzaWJsZVJlY3QgdW5vYnNjdXJlZFJlY3Q6
KENHUmVjdCl1bm9ic2N1cgogICAgICAgICBmaWx0ZXJlZFNjYWxlID0gX3BhZ2UtPmRpc3BsYXll
ZENvbnRlbnRTY2FsZSgpOwogICAgIH0KIAotICAgIEZsb2F0UmVjdCBjdXN0b21GaXhlZFBvc2l0
aW9uUmVjdCA9IGZpeGVkUG9zaXRpb25SZWN0RnJvbUV4cG9zZWRSZWN0KHVub2JzY3VyZWRSZWN0
LCBbc2VsZiBib3VuZHNdLnNpemUsIHpvb21TY2FsZSk7Ci0gICAgX3BhZ2UtPnVwZGF0ZVZpc2li
bGVDb250ZW50UmVjdHMoVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyhfcGFnZS0+bmV4dFZp
c2libGVDb250ZW50UmVjdFVwZGF0ZUlEKCksIHZpc2libGVSZWN0LCB1bm9ic2N1cmVkUmVjdCwg
Y3VzdG9tRml4ZWRQb3NpdGlvblJlY3QsIGZpbHRlcmVkU2NhbGUsIGlzU3RhYmxlU3RhdGUsIHRp
bWVzdGFtcCwgdmVsb2NpdHlEYXRhLmhvcml6b250YWxWZWxvY2l0eSwgdmVsb2NpdHlEYXRhLnZl
cnRpY2FsVmVsb2NpdHksIHZlbG9jaXR5RGF0YS5zY2FsZUNoYW5nZVJhdGUpKTsKKyAgICBpZiAo
IVtzZWxmIF9oYXNBc3Npc3RlZE5vZGVdIHx8IENHUmVjdElzRW1wdHkoX2xhc3RGaXhlZFBvc2l0
aW9uUmVjdCkpCisgICAgICAgIF9sYXN0Rml4ZWRQb3NpdGlvblJlY3QgPSBmaXhlZFBvc2l0aW9u
UmVjdEZyb21FeHBvc2VkUmVjdCh1bm9ic2N1cmVkUmVjdCwgW3NlbGYgYm91bmRzXS5zaXplLCB6
b29tU2NhbGUpOworCisgICAgX3BhZ2UtPnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoVmlzaWJs
ZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyhfcGFnZS0+bmV4dFZpc2libGVDb250ZW50UmVjdFVwZGF0
ZUlEKCksIHZpc2libGVSZWN0LCB1bm9ic2N1cmVkUmVjdCwgX2xhc3RGaXhlZFBvc2l0aW9uUmVj
dCwgZmlsdGVyZWRTY2FsZSwgaXNTdGFibGVTdGF0ZSwgdGltZXN0YW1wLCB2ZWxvY2l0eURhdGEu
aG9yaXpvbnRhbFZlbG9jaXR5LCB2ZWxvY2l0eURhdGEudmVydGljYWxWZWxvY2l0eSwgdmVsb2Np
dHlEYXRhLnNjYWxlQ2hhbmdlUmF0ZSkpOwogICAgIAogICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gX3BhZ2UtPnNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkoKTsKLSAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+dmlld3BvcnRDaGFuZ2Vk
VmlhRGVsZWdhdGVkU2Nyb2xsaW5nKHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5yb290U2Nyb2xsaW5n
Tm9kZUlEKCksIHVub2JzY3VyZWRSZWN0LCB6b29tU2NhbGUpOworICAgIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLT52aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoc2Nyb2xsaW5nQ29v
cmRpbmF0b3ItPnJvb3RTY3JvbGxpbmdOb2RlSUQoKSwgdW5vYnNjdXJlZFJlY3QsIF9sYXN0Rml4
ZWRQb3NpdGlvblJlY3QsIHpvb21TY2FsZSk7CiAKICAgICBpZiAoYXV0byBkcmF3aW5nQXJlYSA9
IF9wYWdlLT5kcmF3aW5nQXJlYSgpKQogICAgICAgICBkcmF3aW5nQXJlYS0+dXBkYXRlRGVidWdJ
bmRpY2F0b3IoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IDhlYzEyZDFlYWI5YmVmNDkzODljMmYzZTkz
ZjE4ZWYxZWRkNDg2N2MuLmRhMWI1YTZmMTNjOWZiNzI4N2YxNzUyOTYyOGJjODQ2MjNhZTY5YjMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaApAQCAtMTMzLDYgKzEzMyw3IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0
aW9uRGF0YSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIGNvbnN0IFdlYktpdDo6
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mIHBvc2l0aW9uSW5mb3JtYXRpb247CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIGNvbnN0IFdlYktpdDo6V0tBdXRvQ29ycmVj
dGlvbkRhdGEmIGF1dG9jb3JyZWN0aW9uRGF0YTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgY29uc3QgV2ViS2l0OjpBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYgYXNzaXN0ZWROb2Rl
SW5mb3JtYXRpb247CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1faGFz
QXNzaXN0ZWROb2RlKSBCT09MIGhhc0Fzc2lzdGVkTm9kZTsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgVUlXZWJGb3JtQWNjZXNzb3J5ICpmb3JtQWNjZXNzb3J5VmlldzsKIAogLSAo
dm9pZClzZXR1cEludGVyYWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCAyMWYyMzU2YmFlMjgx
NTZjYWI5OWNhZGU3YTY4ZGE4NDQwZWMwOTEzLi4zNjliZTg2YjE1Yjk0ZGE1M2JiOGZkYjU3YWJi
MWU2OWRmZGZkMThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMjA5OSw2ICsyMDk5LDExIEBAIC0g
KHZvaWQpX3N0b3BBc3Npc3RpbmdOb2RlCiAgICAgW193ZWJTZWxlY3Rpb25Bc3Npc3RhbnQgcmVz
aWduZWRGaXJzdFJlc3BvbmRlcl07CiB9CiAKKy0gKEJPT0wpX2hhc0Fzc2lzdGVkTm9kZQorewor
ICAgIHJldHVybiBfYXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uZWxlbWVudFR5cGUgIT0gV0tUeXBl
Tm9uZTsKK30KKwogLSAodm9pZClfc2VsZWN0aW9uQ2hhbmdlZAogewogICAgIF9zZWxlY3Rpb25O
ZWVkc1VwZGF0ZSA9IFlFUzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCAwNmNi
NDhkNGExYTMwYTY4NzU4YTkyZmMzYzZkYmVhYzEwZGIyOTg5Li40OWZiNjFjNWI0Mjk4MWFmZTE0
OTk5MWM5ZWFhYTlkNzY5YTUwZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBA
IC0xMzIsNyArMTMyLDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpj
b21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnMKICNpZiBQTEFURk9STShJ
T1MpCiAgICAgaWYgKGZpeGVkT3JTdGlja3lMYXllckNoYW5nZWQpIHsKICAgICAgICAgLy8gSWYg
d2UgZ290IGEgbmV3IGxheWVyIGZvciBhIGZpeGVkIG9yIHN0aWNreSBub2RlLCBpdHMgcG9zaXRp
b24gZnJvbSB0aGUgV2ViUHJvY2VzcyBpcyBwcm9iYWJseSBzdGFsZS4gV2UgbmVlZCB0byByZS1y
dW4gdGhlICJ2aWV3cG9ydCIgY2hhbmdlZCBsb2dpYyB0byB1ZHBhdGUgaXQgd2l0aCBvdXIgVUkt
c2lkZSBzdGF0ZS4KLSAgICAgICAgbV93ZWJQYWdlUHJveHktPnNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkoKS0+dmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKG1fd2ViUGFnZVBy
b3h5LT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5KCktPnJvb3RTY3JvbGxpbmdOb2RlSUQoKSwg
bV93ZWJQYWdlUHJveHktPnVub2JzY3VyZWRDb250ZW50UmVjdCgpLCBtX3dlYlBhZ2VQcm94eS0+
ZGlzcGxheWVkQ29udGVudFNjYWxlKCkpOworICAgICAgICBtX3dlYlBhZ2VQcm94eS0+c2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eSgpLT52aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxp
bmcobV93ZWJQYWdlUHJveHktPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKS0+cm9vdFNjcm9s
bGluZ05vZGVJRCgpLCBtX3dlYlBhZ2VQcm94eS0+dW5vYnNjdXJlZENvbnRlbnRSZWN0KCksIG1f
d2ViUGFnZVByb3h5LT5jdXN0b21GaXhlZFBvc2l0aW9uUmVjdCgpLCBtX3dlYlBhZ2VQcm94eS0+
ZGlzcGxheWVkQ29udGVudFNjYWxlKCkpOwogICAgIH0KICNlbmRpZgogI2VuZGlmIC8vIEVOQUJM
RShBU1lOQ19TQ1JPTExJTkcpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230774</attachid>
            <date>2014-05-03 17:35:56 -0700</date>
            <delta_ts>2014-07-21 13:33:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132537-20140503173533.patch</filename>
            <type>text/plain</type>
            <size>22604</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4MjI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDRlOWYzZTA1YTdkZmRh
YWMxMjBjYTZkZTk2YWVkN2RhNGYyMDVhZS4uZGU2ZWZjODJjOTM4ZGQ2ODM5MjU2NTQ2ZTU3NTUw
ZDk0Zjk1ODY0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDE0LTA1LTAzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFtpT1MgV0syXSBU
dXJuIG9mZiBwb3NpdGlvbjpmaXhlZCBiZWhhdmlvciB3aGVuIHRoZSBrZXlib2FyZCBpcyB1cAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNTM3Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjY2NTYxND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRvIGVuc3VyZSB0aGF0IGZvcm0gZmll
bGRzIGluc2lkZSBwb3NpdGlvbjpmaXhlZCBhcmUgc2Nyb2xsYWJsZSBpbnRvCisgICAgICAgIHZp
ZXcgd2hlbiB0aGV5IGFyZSBiZWluZyBpbnRlcmFjdGVkIHdpdGgsIHdlIHN0b3AgdXBkYXRpbmcg
dGhlIGZpeGVkCisgICAgICAgIHBvc2l0aW9uIHJlY3Qgd2hlbiB0aGVyZSBpcyBhIG5vZGUgYmVp
bmcgYXNzaXN0ZWQuCisgICAgICAgIAorICAgICAgICBJbiB0aGUgc2Nyb2xsaW5nIHRyZWUsIHRo
aXMgcmVxdWlyZXMgdGhhdCB3ZSB1c2UgYSBmaXhlZFBvc2l0aW9uUmVjdCBwYXNzZWQKKyAgICAg
ICAgaW50byB1cGRhdGVMYXllcnNBZnRlclZpZXdwb3J0Q2hhbmdlKCksIHJhdGhlciB0aGFuIG9u
ZSB3ZSBjb21wdXRlCisgICAgICAgIG9uIHRoZSBmbHkgYmFzZWQgb24gdGhlIHZpZXdwb3J0IHJl
Y3QuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OnZp
ZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlOjpzY3JvbGxQb3NpdGlvbkNoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcp
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBw
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUy5oOgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TOjp1cGRhdGVM
YXllcnNBZnRlclZpZXdwb3J0Q2hhbmdlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6dXBkYXRlTGF5ZXJzQWZ0ZXJWaWV3cG9y
dENoYW5nZSk6CisKKzIwMTQtMDUtMDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CisKICAgICAgICAgVmVyeSBmdXp6eSBsYXllcnMgdW5kZXIgbm9uLWRlY29tcGFzYWJs
ZSBtYXRyaWNlcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTMyNTE2CiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjcxNzQ3OD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCA0M2YzMDc1MzA3ZTkzOTcwY2ZiMTFiYzU3NmNjMjYyMDM4YzFlYmQ0Li5jN2FmNjBiN2FkZjZl
YzZiYjlmZGU3NmMzMzU3ZTBmYWU3Yzc5M2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzggQEAK
IDIwMTQtMDUtMDMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKKyAg
ICAgICAgW2lPUyBXSzJdIFR1cm4gb2ZmIHBvc2l0aW9uOmZpeGVkIGJlaGF2aW9yIHdoZW4gdGhl
IGtleWJvYXJkIGlzIHVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzI1MzcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2NjY1NjE0PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGVuc3VyZSB0aGF0
IGZvcm0gZmllbGRzIGluc2lkZSBwb3NpdGlvbjpmaXhlZCBhcmUgc2Nyb2xsYWJsZSBpbnRvCisg
ICAgICAgIHZpZXcgd2hlbiB0aGV5IGFyZSBiZWluZyBpbnRlcmFjdGVkIHdpdGgsIHdlIHN0b3Ag
dXBkYXRpbmcgdGhlIGZpeGVkCisgICAgICAgIHBvc2l0aW9uIHJlY3Qgd2hlbiB0aGVyZSBpcyBh
IG5vZGUgYmVpbmcgYXNzaXN0ZWQuCisgICAgICAgIAorICAgICAgICB2aWV3cG9ydENoYW5nZWRW
aWFEZWxlZ2F0ZWRTY3JvbGxpbmcoKSBuZWVkcyB0byB0YWtlIGEgZml4ZWRQb3NpdGlvblJlY3QK
KyAgICAgICAgdG8gcGFzcyBkb3duIHRvIHRoZSBzY3JvbGxpbmcgdHJlZS4KKyAgICAgICAgCisg
ICAgICAgIFdLQ29udGVudFZpZXcgbm93IGNhY2hlcyB0aGUgbGFzdCBjdXN0b20gZml4ZWQgcG9z
aXRpb24gcmVjdCB0aGF0CisgICAgICAgIHdhcyBjb21wdXRlZCwgYW5kIGRvZXNuJ3QgY2hhbmdl
IGl0IGlmIGEgbm9kZSBpcyBiZWluZyBhc3Npc3RlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9T
Y3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnZpZXdwb3J0Q2hhbmdlZFZp
YURlbGVnYXRlZFNjcm9sbGluZyk6CisgICAgICAgICogVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmN1c3RvbUZpeGVkUG9z
aXRpb25SZWN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW06CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgaW5pdFdpdGhGcmFtZTpjb250ZXh0OldlYktpdDo6Y29uZmlndXJhdGlvbjpXZWJL
aXQ6OndlYlZpZXc6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZGlkVXBkYXRlVmlzaWJs
ZVJlY3Q6dW5vYnNjdXJlZFJlY3Q6c2NhbGU6aW5TdGFibGVTdGF0ZTpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IF9oYXNBc3Npc3RlZE5vZGVdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJlZSk6CisKKzIwMTQtMDUtMDMg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgW1VJLXNp
ZGUgY29tcG9zaXRpbmddIEFzc2VydGlvbiBpbiBQbGF0Zm9ybUNBRmlsdGVyczo6c2V0RmlsdGVy
c09uTGF5ZXIgd2l0aCBhbmltYXRlZCByZWZlcmVuY2UgZmlsdGVyCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI1MjgKICAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzE2NjcxNjYwPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBjNTg0ZjYyYWRkZDZhNTM2
NzRiOGEyZGZlZWE5NTYzYWVmM2UxM2Q3Li41ZWY3NmJjYjA5NjlmNDljZWMwNjk1MDNjMmYwOWY2
NDg3MDYwOWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjc1OCw3ICsyNzU4LDcgQEAgX19a
TjdXZWJDb3JlMTNTY3JvbGxpbmdUcmVlMjFzZXRDYW5SdWJiZXJCYW5kU3RhdGVFYmJiYgogX19a
TjdXZWJDb3JlMTNTY3JvbGxpbmdUcmVlMzF3aWxsV2hlZWxFdmVudFN0YXJ0U3dpcGVHZXN0dXJl
RVJLTlNfMThQbGF0Zm9ybVdoZWVsRXZlbnRFCiBfX1pON1dlYkNvcmUxM1Njcm9sbGluZ1RyZWUz
MmlzUG9pbnRJbk5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uRU5TXzhJbnRQb2ludEUKIF9fWk43V2Vi
Q29yZTEzU2Nyb2xsaW5nVHJlZTM1c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHlF
UktOU18xOFBsYXRmb3JtV2hlZWxFdmVudEUKLV9fWk43V2ViQ29yZTEzU2Nyb2xsaW5nVHJlZTM2
dmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nRXlSS05TXzlGbG9hdFJlY3RFZAor
X19aTjdXZWJDb3JlMTNTY3JvbGxpbmdUcmVlMzZ2aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRT
Y3JvbGxpbmdFeVJLTlNfOUZsb2F0UmVjdEVTM19kCiBfX1pON1dlYkNvcmUxM1Njcm9sbGluZ1Ry
ZWUzN3NldFNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWRFYgogX19aTjdXZWJDb3Jl
MTNTY3JvbGxpbmdUcmVlNDJzY3JvbGxQb3NpdGlvbkNoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxp
bmdFeVJLTlNfMTBGbG9hdFBvaW50RQogX19aTjdXZWJDb3JlMTNTY3JvbGxpbmdUcmVlQzJFdgpA
QCAtMjgyMyw3ICsyODIzLDcgQEAgX19aTjdXZWJDb3JlMjlTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZU1hYzZjcmVhdGVFUk5TXzEzU2Nyb2xsaW5nVHJlZUVOU18xN1Njcm8KIF9fWk43V2ViQ29y
ZTI5U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MxN3NldFNjcm9sbFBvc2l0aW9uRVJLTlNf
MTBGbG9hdFBvaW50RQogX19aTjdXZWJDb3JlMjlTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlP
UzE5dXBkYXRlQWZ0ZXJDaGlsZHJlbkVSS05TXzE4U2Nyb2xsaW5nU3RhdGVOb2RlRQogX19aTjdX
ZWJDb3JlMjlTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzIwdXBkYXRlQmVmb3JlQ2hpbGRy
ZW5FUktOU18xOFNjcm9sbGluZ1N0YXRlTm9kZUUKLV9fWk43V2ViQ29yZTI5U2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVJT1MzMXVwZGF0ZUxheWVyc0FmdGVyVmlld3BvcnRDaGFuZ2VFUktOU185
RmxvYXRSZWN0RWQKK19fWk43V2ViQ29yZTI5U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1Mz
MXVwZGF0ZUxheWVyc0FmdGVyVmlld3BvcnRDaGFuZ2VFUktOU185RmxvYXRSZWN0RVMzX2QKIF9f
Wk43V2ViQ29yZTI5U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MzMnVwZGF0ZUxheWVyc0Fm
dGVyRGVsZWdhdGVkU2Nyb2xsRVJLTlNfMTBGbG9hdFBvaW50RQogX19aTjdXZWJDb3JlMjlTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzQ2c2V0U2Nyb2xsUG9zaXRpb25XaXRob3V0Q29udGVu
dEVkZ2VDb25zdHJhaW50c0VSS05TXzEwRmxvYXRQb2ludEUKIF9fWk43V2ViQ29yZTI5U2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVJT1M2Y3JlYXRlRVJOU18xM1Njcm9sbGluZ1RyZWVFTlNfMTdT
Y3JvbGxpbmdOb2RlVHlwZUV5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuY3BwCmluZGV4IGJlZjgxZTQ3MThjYzZjZjgyMzE4ZDUzMTVhN2Y0NjYzZjg2
ODgxYTQuLjQ0ZGJmODQ1YjQyZjcyNDVlZTcxNzQyNTE2OWI3NzFkNDllMDZlNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC05OCw3
ICs5OCw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQpCiAgICAgICAgIG1fcm9vdE5vZGUtPmhhbmRsZVdo
ZWVsRXZlbnQod2hlZWxFdmVudCk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZTo6dmlld3BvcnRD
aGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgdmlld3BvcnRSZWN0LCBkb3VibGUgc2NhbGUpCit2b2lkIFNj
cm9sbGluZ1RyZWU6OnZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhTY3JvbGxp
bmdOb2RlSUQgbm9kZUlELCBjb25zdCBGbG9hdFJlY3QmIHZpZXdwb3J0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNjYWxlKQogewogICAgIFNjcm9sbGlu
Z1RyZWVOb2RlKiBub2RlID0gbm9kZUZvcklEKG5vZGVJRCk7CiAgICAgaWYgKCFub2RlKQpAQCAt
MTA3LDEwICsxMDcsMTAgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjp2aWV3cG9ydENoYW5nZWRWaWFE
ZWxlZ2F0ZWRTY3JvbGxpbmcoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwKICAgICBpZiAoIW5vZGUt
PmlzU2Nyb2xsaW5nTm9kZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICB0b1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlKG5vZGUpLT51cGRhdGVMYXllcnNBZnRlclZpZXdwb3J0Q2hhbmdlKHZp
ZXdwb3J0UmVjdCwgc2NhbGUpOworICAgIHRvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUobm9k
ZSktPnVwZGF0ZUxheWVyc0FmdGVyVmlld3BvcnRDaGFuZ2Uodmlld3BvcnRSZWN0LCBmaXhlZFBv
c2l0aW9uUmVjdCwgc2NhbGUpOwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWU6OnNjcm9sbFBvc2l0
aW9uQ2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbikKK3ZvaWQgU2Nyb2xsaW5n
VHJlZTo6c2Nyb2xsUG9zaXRpb25DaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFNjcm9sbGlu
Z05vZGVJRCBub2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uKQogewogICAg
IFNjcm9sbGluZ1RyZWVOb2RlKiBub2RlID0gbm9kZUZvcklEKG5vZGVJRCk7CiAgICAgaWYgKCFu
b2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmlu
ZGV4IDJmNDdhNmFjNWEzOGYyYzQyZjZiM2E2MGFiOTMxM2M0MDNhYjliNGUuLjljZmJiNGE2NWRj
OTc1ZjEwMjQ4MWE0MWJhYzg2MzUyMjkxNzVmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgogCiAg
ICAgLy8gRGVsZWdhdGVkIHNjcm9sbGluZy96b29taW5nIGhhcyBjYXVzZWQgdGhlIHZpZXdwb3J0
IHRvIGNoYW5nZSwgc28gdXBkYXRlIHZpZXdwb3J0LWNvbnN0cmFpbmVkIGxheWVycwogICAgIC8v
IChidXQgZG9uJ3QgY2F1c2Ugc2Nyb2xsIGV2ZW50cyB0byBiZSBmaXJlZCkuCi0gICAgdmlydHVh
bCB2b2lkIHZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhTY3JvbGxpbmdOb2Rl
SUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdmlld3BvcnRSZWN0LCBkb3VibGUgc2NhbGUp
OworICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmco
U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpZXdwb3J0UmVjdCwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNjYWxl
KTsKIAogICAgIC8vIERlbGVnYXRlZCBzY3JvbGxpbmcgaGFzIHNjcm9sbGVkIGEgbm9kZS4gVXBk
YXRlIGxheWVyIHBvc2l0aW9ucyBvbiBkZXNjZW5kYW50IHRyZWUgbm9kZXMsCiAgICAgLy8gYW5k
IGNhbGwgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmlu
ZGV4IDFmMTgxNWJlODIzYWFlY2FkOTY0MTBmODIxMGE5YmEzZTBiMTNkMDAuLmUwMDAxMGQ0ODkz
YWQ3MzgyYWFjYTZmNDBmNzczOTg3MTNhMjIzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAt
NTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFBvc2l0aW9u
KGNvbnN0IEZsb2F0UG9pbnQmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFBvc2l0
aW9uV2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29uc3QgRmxvYXRQb2ludCYpID0gMDsK
IAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMYXllcnNBZnRlclZpZXdwb3J0Q2hhbmdlKGNvbnN0
IEZsb2F0UmVjdCYgdmlld3BvcnRSZWN0LCBkb3VibGUgc2NhbGUpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlTGF5ZXJzQWZ0ZXJWaWV3cG9ydENoYW5nZShjb25zdCBGbG9hdFJlY3QmIHZp
ZXdwb3J0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNj
YWxlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVkU2Ny
b2xsKGNvbnN0IEZsb2F0UG9pbnQmKSB7IH0KIAogICAgIFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVh
c29ucyBzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoKSBjb25zdCB7IHJldHVybiBtX3N5bmNo
cm9ub3VzU2Nyb2xsaW5nUmVhc29uczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1Mu
aAppbmRleCBjM2VlOTVhMjIzYjIyY2ZjZjQzZTExNDRmYWUzYTE5N2I1NjQwMDU5Li5jMjRmYWVh
NmVkYmIyMGNmMzdiMmZjZTA2MTU5MGVlNGM4MWFjNmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVJT1MuaApAQCAtNTQsNyArNTQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2
b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb25XaXRob3V0Q29udGVudEVkZ2VDb25zdHJhaW50
cyhjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
TGF5ZXJzQWZ0ZXJWaWV3cG9ydENoYW5nZShjb25zdCBGbG9hdFJlY3QmIHZpZXdwb3J0UmVjdCwg
ZG91YmxlIHNjYWxlKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTGF5ZXJzQWZ0ZXJWaWV3cG9y
dENoYW5nZShjb25zdCBGbG9hdFJlY3QmIHZpZXdwb3J0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBm
aXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNjYWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
TGF5ZXJzQWZ0ZXJEZWxlZ2F0ZWRTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwog
CiAgICAgdm9pZCBzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUy5tbQppbmRleCA0MzBkYjNmNTA0MDE0NGEzMGFj
NTc2NGZkYmRlOGYyYzcxODFmYmFlLi4wMWNlYzI5NWM4Mzg5YjFiOGZmMmRiOGRjMTM5MGRkNDUx
MzA1ODJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TLm1tCkBAIC0xMzcsMTgg
KzEzNywxNiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TOjpzZXRTY3JvbGxM
YXllclBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHNjcgogICAgIHVwZGF0ZUNoaWxkTm9kZXNB
ZnRlclNjcm9sbChzY3JvbGxQb3NpdGlvbik7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyVmlld3BvcnRDaGFuZ2UoY29uc3QgRmxvYXRS
ZWN0JiB2aWV3cG9ydFJlY3QsIGRvdWJsZSBzY2FsZSkKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVJT1M6OnVwZGF0ZUxheWVyc0FmdGVyVmlld3BvcnRDaGFuZ2UoY29uc3QgRmxvYXRS
ZWN0JiB2aWV3cG9ydFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgZml4ZWRQb3NpdGlvblJlY3QsIGRv
dWJsZSAvKnNjYWxlKi8pCiB7CiAgICAgW21fY291bnRlclNjcm9sbGluZ0xheWVyIHNldFBvc2l0
aW9uOnZpZXdwb3J0UmVjdC5sb2NhdGlvbigpXTsKIAogICAgIGlmICghbV9jaGlsZHJlbikKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgRmxvYXRSZWN0IHZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3Rz
UmVjdCA9IEZyYW1lVmlldzo6cmVjdEZvclZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKGVuY2xv
c2luZ0xheW91dFJlY3Qodmlld3BvcnRSZWN0KSwgdG90YWxDb250ZW50c1NpemUoKSwgc2NhbGUs
IGZhbHNlLCBzY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMoKSk7Ci0KICAgICBzaXplX3Qg
c2l6ZSA9IG1fY2hpbGRyZW4tPnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNp
emU7ICsraSkKLSAgICAgICAgbV9jaGlsZHJlbi0+YXQoaSktPnBhcmVudFNjcm9sbFBvc2l0aW9u
RGlkQ2hhbmdlKHZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzUmVjdCwgRmxvYXRTaXplKCkpOwor
ICAgICAgICBtX2NoaWxkcmVuLT5hdChpKS0+cGFyZW50U2Nyb2xsUG9zaXRpb25EaWRDaGFuZ2Uo
Zml4ZWRQb3NpdGlvblJlY3QsIEZsb2F0U2l6ZSgpKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlTGF5ZXJzQWZ0ZXJEZWxlZ2F0ZWRTY3JvbGwoY29uc3Qg
RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1h
Yy5oCmluZGV4IDI5ZWI4NTA2ZTEyODVlY2JmZDlhZjc3YmI4ZjFmYTNlZDVmNDI4MzUuLjhjYzBk
NjgwYTUzMWUyOWI4MGVlMTMwODMyZjA3MzRjZTc0MzA4MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZU1hYy5oCkBAIC02OSw3ICs2OSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2
b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb25XaXRob3V0Q29udGVudEVkZ2VDb25zdHJhaW50
cyhjb25zdCBGbG9hdFBvaW50Jikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
TGF5ZXJzQWZ0ZXJWaWV3cG9ydENoYW5nZShjb25zdCBGbG9hdFJlY3QmIHZpZXdwb3J0UmVjdCwg
ZG91YmxlIHNjYWxlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTGF5ZXJzQWZ0
ZXJWaWV3cG9ydENoYW5nZShjb25zdCBGbG9hdFJlY3QmIHZpZXdwb3J0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNjYWxlKSBvdmVycmlkZTsKIAogICAg
IHZvaWQgc2V0U2Nyb2xsTGF5ZXJQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5tbQppbmRleCAyNzA5YWEyNzYxMGRhODRiNGU2OTY2
YWZjNzE1ODNkNWNiYjI2YmEwLi5hZjNiZTYyZGY0NDE2MDc1NGI2ZmQxMDg0NzAyZjdmODFjZDhi
MzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjLm1tCkBAIC0zOTgsNyArMzk4
LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6c2V0U2Nyb2xsTGF5ZXJQ
b3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3MKICAgICAgICAgbV9jaGlsZHJlbi0+YXQoaSkt
PnBhcmVudFNjcm9sbFBvc2l0aW9uRGlkQ2hhbmdlKHZpZXdwb3J0UmVjdCwgRmxvYXRTaXplKCkp
OwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjp1cGRhdGVMYXllcnNB
ZnRlclZpZXdwb3J0Q2hhbmdlKGNvbnN0IEZsb2F0UmVjdCYsIGRvdWJsZSkKK3ZvaWQgU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6OnVwZGF0ZUxheWVyc0FmdGVyVmlld3BvcnRDaGFuZ2Uo
Y29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgZG91YmxlKQogewogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eS5jcHAKaW5kZXggOTRiMTRhZDljODVjOWIzM2JhZmZlYThjZGE1YjAzMTNhOGE2YWIxZi4uOThi
OTcwNWQyMWE0Zjg4Nzg5Yzk4NTRhMTg5YmUxMmRjM2YyN2M5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC0xNDQsOSArMTQ0LDkgQEAgYm9vbCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojppc1BvaW50SW5Ob25GYXN0U2Nyb2xsYWJsZVJl
Z2lvbihjb25zdCBXZWIKICAgICByZXR1cm4gbV9zY3JvbGxpbmdUcmVlLT5pc1BvaW50SW5Ob25G
YXN0U2Nyb2xsYWJsZVJlZ2lvbihwKTsKIH0KIAotdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5Ojp2aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoU2Nyb2xsaW5n
Tm9kZUlEIG5vZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB2aWV3cG9ydFJlY3QsIGRv
dWJsZSBzY2FsZSkKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6dmlld3Bv
cnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdmlld3BvcnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIGZpeGVkUG9zaXRpb25SZWN0LCBkb3VibGUgc2NhbGUpCiB7Ci0gICAgbV9zY3JvbGxp
bmdUcmVlLT52aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcobm9kZUlELCB2aWV3
cG9ydFJlY3QsIHNjYWxlKTsKKyAgICBtX3Njcm9sbGluZ1RyZWUtPnZpZXdwb3J0Q2hhbmdlZFZp
YURlbGVnYXRlZFNjcm9sbGluZyhub2RlSUQsIHZpZXdwb3J0UmVjdCwgZml4ZWRQb3NpdGlvblJl
Y3QsIHNjYWxlKTsKIH0KIAogLy8gVGhpcyBjb21lcyBmcm9tIHRoZSBzY3JvbGxpbmcgdHJlZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9s
bGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKaW5kZXggYjczYWFmMWU0ZTIx
OGU3M2RjMGNkYzFiNDNmZDVhNTI4ZTUyODk4OC4uM2YxYmQyYWYyODYwMjg3Zjc4MmZjZDAzMDY1
NmJiYzM1YThmYmFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9s
bGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgK
QEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNQb2ludEluTm9uRmFzdFNjcm9s
bGFibGVSZWdpb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBjb25zdDsKIAogICAgIC8vIENh
bGxlZCBleHRlcm5hbGx5IHdoZW4gbmF0aXZlIHZpZXdzIG1vdmUgYXJvdW5kLgotICAgIHZvaWQg
dmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFdlYkNvcmU6OlNjcm9sbGluZ05v
ZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB2aWV3cG9ydFJlY3QsIGRvdWJsZSBzY2Fs
ZSk7CisgICAgdm9pZCB2aWV3cG9ydENoYW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoV2ViQ29y
ZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpZXdwb3J0UmVj
dCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBmaXhlZFBvc2l0aW9uUmVjdCwgZG91YmxlIHNj
YWxlKTsKIAogICAgIC8vIEZJWE1FOiBleHBvc2UgdGhlIHRyZWUgYW5kIHBhc3MgdGhpcyB0byB0
aGF0PwogICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBXZWJDb3JlOjpQbGF0Zm9ybVdo
ZWVsRXZlbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBk
OGRlMDU0OTI1Y2IxMDYyMjUzYTBkOGU0NjdhZTA4MzBjMDNhNmMzLi4wYzg0NjU4ZWNiNmQxNTYy
NDM4OTIyODg1ODYyYzE3MDc4NWI3MWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCkBAIC01ODEsNiArNTgxLDcgQEAgcHVibGljOgogICAgIGRvdWJsZSBkaXNwbGF5
ZWRDb250ZW50U2NhbGUoKSBjb25zdCB7IHJldHVybiBtX2xhc3RWaXNpYmxlQ29udGVudFJlY3RV
cGRhdGUuc2NhbGUoKTsgfQogICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZXhwb3NlZENv
bnRlbnRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9sYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRl
LmV4cG9zZWRSZWN0KCk7IH0KICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3Vy
ZWRDb250ZW50UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFZpc2libGVDb250ZW50UmVjdFVw
ZGF0ZS51bm9ic2N1cmVkUmVjdCgpOyB9CisgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBj
dXN0b21GaXhlZFBvc2l0aW9uUmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFZpc2libGVDb250
ZW50UmVjdFVwZGF0ZS5jdXN0b21GaXhlZFBvc2l0aW9uUmVjdCgpOyB9CiAKICAgICBib29sIHVw
ZGF0ZVZpc2libGVDb250ZW50UmVjdHMoY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5m
byYpOwogICAgIHVpbnQ2NF90IG5leHRWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJRCgpIGNvbnN0
IHsgcmV0dXJuIG1fbGFzdFZpc2libGVDb250ZW50UmVjdFVwZGF0ZS51cGRhdGVJRCgpICsgMTsg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaAppbmRleCBk
NDUyNzQ1MjkyNzQxZWU2ZTcxYTRiYmJkMTQ0YzQ5NDQ3M2MwODk4Li5hMTM5NmViMzA3MDFkZDY2
OWVlYTY0NGZiMGFlYzJlMTNmNzkwZmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXcuaApAQCAtNDksNiArNDksNyBAQCBzdHJ1Y3QgV2ViUGFnZUNvbmZp
Z3VyYXRpb247CiBAcGFja2FnZQogICAgIFJlZlB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4gX3Bh
Z2U7CiAgICAgV0tXZWJWaWV3ICpfd2ViVmlldzsKKyAgICBDR1JlY3QgX2xhc3RGaXhlZFBvc2l0
aW9uUmVjdDsKIH0KIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS0Jyb3dzaW5n
Q29udGV4dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KaW5kZXggZDc2ZWI0ZDhlZGUw
ZDkzNjA5MzY5ZTUxMmNhNDlhNTYyMWVkOTNkOC4uY2M1ODM5YzZiN2ZlNzhjNDlhMGRmZDA3YWY0
YTUzYzM4OTVlNWMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5tbQpAQCAtMjA5LDkgKzIwOSw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZy
YW1lOihDR1JlY3QpZnJhbWUgY29udGV4dDooV2ViS2l0OjpXZWJDb250ZXh0Jiljb250ZXh0CiAg
ICAgc2VsZi5sYXllci5oaXRUZXN0c0FzT3BhcXVlID0gWUVTOwogCiAgICAgW1tOU05vdGlmaWNh
dGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxl
Y3RvcihfYXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kOikgbmFtZTpVSUFwcGxpY2F0aW9u
V2lsbEVudGVyRm9yZWdyb3VuZE5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJQXBwbGljYXRpb24gc2hh
cmVkQXBwbGljYXRpb25dXTsKLQogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENl
bnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FwcGxpY2F0aW9uV2ls
bFJlc2lnbkFjdGl2ZTopIG5hbWU6VUlBcHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmVOb3RpZmlj
YXRpb24gb2JqZWN0OltVSUFwcGxpY2F0aW9uIHNoYXJlZEFwcGxpY2F0aW9uXV07Ci0KICAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2Vs
ZWN0b3I6QHNlbGVjdG9yKF9hcHBsaWNhdGlvbkRpZEJlY29tZUFjdGl2ZTopIG5hbWU6VUlBcHBs
aWNhdGlvbkRpZEJlY29tZUFjdGl2ZU5vdGlmaWNhdGlvbiBvYmplY3Q6W1VJQXBwbGljYXRpb24g
c2hhcmVkQXBwbGljYXRpb25dXTsKIAogICAgIHJldHVybiBzZWxmOwpAQCAtMzE0LDExICszMTIs
MTMgQEAgLSAodm9pZClkaWRVcGRhdGVWaXNpYmxlUmVjdDooQ0dSZWN0KXZpc2libGVSZWN0IHVu
b2JzY3VyZWRSZWN0OihDR1JlY3QpdW5vYnNjdXIKICAgICAgICAgZmlsdGVyZWRTY2FsZSA9IF9w
YWdlLT5kaXNwbGF5ZWRDb250ZW50U2NhbGUoKTsKICAgICB9CiAKLSAgICBGbG9hdFJlY3QgY3Vz
dG9tRml4ZWRQb3NpdGlvblJlY3QgPSBmaXhlZFBvc2l0aW9uUmVjdEZyb21FeHBvc2VkUmVjdCh1
bm9ic2N1cmVkUmVjdCwgW3NlbGYgYm91bmRzXS5zaXplLCB6b29tU2NhbGUpOwotICAgIF9wYWdl
LT51cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8o
X3BhZ2UtPm5leHRWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJRCgpLCB2aXNpYmxlUmVjdCwgdW5v
YnNjdXJlZFJlY3QsIGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0LCBmaWx0ZXJlZFNjYWxlLCBpc1N0
YWJsZVN0YXRlLCB0aW1lc3RhbXAsIHZlbG9jaXR5RGF0YS5ob3Jpem9udGFsVmVsb2NpdHksIHZl
bG9jaXR5RGF0YS52ZXJ0aWNhbFZlbG9jaXR5LCB2ZWxvY2l0eURhdGEuc2NhbGVDaGFuZ2VSYXRl
KSk7CisgICAgaWYgKCFbc2VsZiBfaGFzQXNzaXN0ZWROb2RlXSB8fCBDR1JlY3RJc0VtcHR5KF9s
YXN0Rml4ZWRQb3NpdGlvblJlY3QpKQorICAgICAgICBfbGFzdEZpeGVkUG9zaXRpb25SZWN0ID0g
Zml4ZWRQb3NpdGlvblJlY3RGcm9tRXhwb3NlZFJlY3QodW5vYnNjdXJlZFJlY3QsIFtzZWxmIGJv
dW5kc10uc2l6ZSwgem9vbVNjYWxlKTsKKworICAgIF9wYWdlLT51cGRhdGVWaXNpYmxlQ29udGVu
dFJlY3RzKFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8oX3BhZ2UtPm5leHRWaXNpYmxlQ29u
dGVudFJlY3RVcGRhdGVJRCgpLCB2aXNpYmxlUmVjdCwgdW5vYnNjdXJlZFJlY3QsIF9sYXN0Rml4
ZWRQb3NpdGlvblJlY3QsIGZpbHRlcmVkU2NhbGUsIGlzU3RhYmxlU3RhdGUsIHRpbWVzdGFtcCwg
dmVsb2NpdHlEYXRhLmhvcml6b250YWxWZWxvY2l0eSwgdmVsb2NpdHlEYXRhLnZlcnRpY2FsVmVs
b2NpdHksIHZlbG9jaXR5RGF0YS5zY2FsZUNoYW5nZVJhdGUpKTsKICAgICAKICAgICBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5KiBzY3JvbGxpbmdDb29yZGluYXRvciA9IF9wYWdlLT5z
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5KCk7Ci0gICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPnZp
ZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhzY3JvbGxpbmdDb29yZGluYXRvci0+
cm9vdFNjcm9sbGluZ05vZGVJRCgpLCB1bm9ic2N1cmVkUmVjdCwgem9vbVNjYWxlKTsKKyAgICBz
Y3JvbGxpbmdDb29yZGluYXRvci0+dmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5n
KHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5yb290U2Nyb2xsaW5nTm9kZUlEKCksIHVub2JzY3VyZWRS
ZWN0LCBfbGFzdEZpeGVkUG9zaXRpb25SZWN0LCB6b29tU2NhbGUpOwogCiAgICAgaWYgKGF1dG8g
ZHJhd2luZ0FyZWEgPSBfcGFnZS0+ZHJhd2luZ0FyZWEoKSkKICAgICAgICAgZHJhd2luZ0FyZWEt
PnVwZGF0ZURlYnVnSW5kaWNhdG9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCA4ZWMxMmQxZWFiOWJl
ZjQ5Mzg5YzJmM2U5M2YxOGVmMWVkZDQ4NjdjLi5kYTFiNWE2ZjEzYzlmYjcyODdmMTc1Mjk2Mjhi
Yzg0NjIzYWU2OWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTEzMyw2ICsxMzMsNyBAQCBzdHJ1Y3Qg
V0tBdXRvQ29ycmVjdGlvbkRhdGEgewogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBj
b25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJiBwb3NpdGlvbklu
Zm9ybWF0aW9uOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBjb25zdCBXZWJLaXQ6
OldLQXV0b0NvcnJlY3Rpb25EYXRhJiBhdXRvY29ycmVjdGlvbkRhdGE7CiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIGNvbnN0IFdlYktpdDo6QXNzaXN0ZWROb2RlSW5mb3JtYXRpb24m
IGFzc2lzdGVkTm9kZUluZm9ybWF0aW9uOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
LCBnZXR0ZXI9X2hhc0Fzc2lzdGVkTm9kZSkgQk9PTCBoYXNBc3Npc3RlZE5vZGU7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJV2ViRm9ybUFjY2Vzc29yeSAqZm9ybUFjY2Vzc29y
eVZpZXc7CiAKIC0gKHZvaWQpc2V0dXBJbnRlcmFjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXgg
MjFmMjM1NmJhZTI4MTU2Y2FiOTljYWRlN2E2OGRhODQ0MGVjMDkxMy4uMzY5YmU4NmIxNWI5NGRh
NTNiYjhmZGI1N2FiYjFlNjlkZmRmZDE4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTIwOTksNiAr
MjA5OSwxMSBAQCAtICh2b2lkKV9zdG9wQXNzaXN0aW5nTm9kZQogICAgIFtfd2ViU2VsZWN0aW9u
QXNzaXN0YW50IHJlc2lnbmVkRmlyc3RSZXNwb25kZXJdOwogfQogCistIChCT09MKV9oYXNBc3Np
c3RlZE5vZGUKK3sKKyAgICByZXR1cm4gX2Fzc2lzdGVkTm9kZUluZm9ybWF0aW9uLmVsZW1lbnRU
eXBlICE9IFdLVHlwZU5vbmU7Cit9CisKIC0gKHZvaWQpX3NlbGVjdGlvbkNoYW5nZWQKIHsKICAg
ICBfc2VsZWN0aW9uTmVlZHNVcGRhdGUgPSBZRVM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHku
bW0KaW5kZXggMDZjYjQ4ZDRhMWEzMGE2ODc1OGE5MmZjM2M2ZGJlYWMxMGRiMjk4OS4uNDlmYjYx
YzViNDI5ODFhZmUxNDk5OTFjOWVhYWE5ZDc2OWE1MGYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbQpAQCAtMTMyLDcgKzEzMiw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAj
aWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChmaXhlZE9yU3RpY2t5TGF5ZXJDaGFuZ2VkKSB7CiAg
ICAgICAgIC8vIElmIHdlIGdvdCBhIG5ldyBsYXllciBmb3IgYSBmaXhlZCBvciBzdGlja3kgbm9k
ZSwgaXRzIHBvc2l0aW9uIGZyb20gdGhlIFdlYlByb2Nlc3MgaXMgcHJvYmFibHkgc3RhbGUuIFdl
IG5lZWQgdG8gcmUtcnVuIHRoZSAidmlld3BvcnQiIGNoYW5nZWQgbG9naWMgdG8gdWRwYXRlIGl0
IHdpdGggb3VyIFVJLXNpZGUgc3RhdGUuCi0gICAgICAgIG1fd2ViUGFnZVByb3h5LT5zY3JvbGxp
bmdDb29yZGluYXRvclByb3h5KCktPnZpZXdwb3J0Q2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGlu
ZyhtX3dlYlBhZ2VQcm94eS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSgpLT5yb290U2Nyb2xs
aW5nTm9kZUlEKCksIG1fd2ViUGFnZVByb3h5LT51bm9ic2N1cmVkQ29udGVudFJlY3QoKSwgbV93
ZWJQYWdlUHJveHktPmRpc3BsYXllZENvbnRlbnRTY2FsZSgpKTsKKyAgICAgICAgbV93ZWJQYWdl
UHJveHktPnNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKS0+dmlld3BvcnRDaGFuZ2VkVmlhRGVs
ZWdhdGVkU2Nyb2xsaW5nKG1fd2ViUGFnZVByb3h5LT5zY3JvbGxpbmdDb29yZGluYXRvclByb3h5
KCktPnJvb3RTY3JvbGxpbmdOb2RlSUQoKSwgbV93ZWJQYWdlUHJveHktPnVub2JzY3VyZWRDb250
ZW50UmVjdCgpLCBtX3dlYlBhZ2VQcm94eS0+Y3VzdG9tRml4ZWRQb3NpdGlvblJlY3QoKSwgbV93
ZWJQYWdlUHJveHktPmRpc3BsYXllZENvbnRlbnRTY2FsZSgpKTsKICAgICB9CiAjZW5kaWYKICNl
bmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235244</attachid>
            <date>2014-07-21 13:34:01 -0700</date>
            <delta_ts>2014-07-21 14:05:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132537-20140721133345.patch</filename>
            <type>text/plain</type>
            <size>11450</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxMzA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjE5ZjJkYzE4YzE1OGRk
N2M1YWYyZjg3MTYyNzAzNjA4MWY4ZTFmNi4uNzAzNzA2ZmIxY2VkMDdjNDk3MDIzNTUzMjg0OTk2
MzUyN2YxZDI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE2IEBACiAyMDE0LTA3LTIxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFtpT1MgV0syXSBU
dXJuIG9mZiBwb3NpdGlvbjpmaXhlZCBiZWhhdmlvciB3aGVuIHRoZSBrZXlib2FyZCBpcyB1cAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyNTM3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3J0IFJl
bmRlck9iamVjdDo6bG9jYWxUb0NvbnRhaW5lclBvaW50KCkuCisKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKworMjAxNC0wNy0yMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKwogICAgICAgICBBZGQgaGVscGVyIGZ1bmN0aW9ucyB0byBkdW1wIHRoZSBzY3JvbGxp
bmcgc3RhdGUgdHJlZSBmcm9tIHRoZSBkZWJ1Z2dlcgogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1MTAxCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBhZjRhNmM3ZmU4
MzRkODMwYWY0YjE0YmI3YjI5MTNiZjg1OTkxMjY0Li5iNmZiOGVkNmYzMDQzYjZhOWMzN2I1OWVi
MWRhYTQwZjIzMTFkMDg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTQtMDctMjEg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPUyBX
SzJdIFR1cm4gb2ZmIHBvc2l0aW9uOmZpeGVkIGJlaGF2aW9yIHdoZW4gdGhlIGtleWJvYXJkIGlz
IHVwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzI1
MzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAg
ICAgIE1ha2UgaW50ZXJhY3Rpb24gd2l0aCBmb3JtIGVsZW1lbnRzIGluc2lkZSBwb3NpdGlvbjpm
aXhlZCBsZXNzIHRlcnJpYmxlIGJ5IHJlLWxheWluZyBvdXQKKyAgICAgICAgZml4ZWQgZWxlbWVu
dHMgcmVsYXRpdmUgdG8gdGhlIGRvY3VtZW50IHdoaWxlIHdlIGhhdmUgYW4gYXNzaXN0ZWQgbm9k
ZS4gVGhpcyBlbnN1cmVzCisgICAgICAgIHRoYXQgYWxsIHBhcnRzIG9mIGEgcG9zaXRpb246Zml4
ZWQgYXJlIGFjY2Vzc2libGUgKGUuZy4gaW5wdXRzIG9uIHRoZSByaWdodCBzaWRlCisgICAgICAg
IG9mIGEgZml4ZWQtd2lkdGggdG9wIGJhcikuCisgICAgICAgIAorICAgICAgICAqIFNoYXJlZC9B
c3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5jcHA6IEFkZCBhIGZsYWcgZm9yIGJlaW5nIGluc2lkZSBw
b3N0aW9uOmZpeGVkLAorICAgICAgICBhbmQgZW5jb2RlL2RlY29kZSBpdC4KKyAgICAgICAgKFdl
YktpdDo6QXNzaXN0ZWROb2RlSW5mb3JtYXRpb246OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6
OkFzc2lzdGVkTm9kZUluZm9ybWF0aW9uOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9Bc3Np
c3RlZE5vZGVJbmZvcm1hdGlvbi5oOgorICAgICAgICAoV2ViS2l0OjpBc3Npc3RlZE5vZGVJbmZv
cm1hdGlvbjo6QXNzaXN0ZWROb2RlSW5mb3JtYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
YWdlQ2xpZW50Lmg6IEFkZCBpc0Fzc2lzdGluZ05vZGUoKS4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmlzQXNzaXN0
aW5nTm9kZSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29tcHV0ZUN1c3RvbUZpeGVkUG9zaXRpb25S
ZWN0KTogSWYgd2UgaGF2ZSBhbiBhc3Npc3RlZAorICAgICAgICBub2RlLCBqdXN0IHVzZSB0aGUg
ZG9jdW1lbnQgcmVjdCBhcyB0aGUgY3VzdG9tIGZpeGVkIHBvc2l0aW9uIHJlY3QuCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpnZXRBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbik6IEdldCB0aGUgc2VsZWN0aW9u
IHJlY3QgZmlyc3QsCisgICAgICAgIHNpbmNlIHdlIGhhdmUgdG8gZml4IGl0IHVwIGZvciBwb3Np
dGlvbjpmaXhlZC4gSWYgdGhlIGVsZW1lbnQgaXMgaW5zaWRlIGZpeGVkCisgICAgICAgIHBvc2l0
aW9uIGluIHRoZSBtYWluIGZyYW1lLCByZS1zZXQgdGhlIGZpeGVkIHBvc2l0aW9uIHJlY3QgdG8g
dGhlIGRvY3VtZW50IHJlY3QKKyAgICAgICAgKHdoaWNoIGZvcmNlcyBhIGxheW91dCksIHJlLWZl
dGNoIGVsZW1lbnRSZWN0LCB0aGVuIHNldCBpdCBiYWNrLiBUaGlzIGVuc3VyZXMKKyAgICAgICAg
dGhhdCB0aGUgVUkgcHJvY2VzcyBnZXRzIGFuIGVsZW1lbnRSZWN0IHdoaWNoIGl0IGNhbiB6b29t
IHRvIGNvcnJlY3RseS4KKwogMjAxNC0wNy0yMSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgRGF0YWJhc2VQcm9jZXNzIGRvZXNuJ3QgcmVsYXVuY2ggYWZ0ZXIg
Y3Jhc2hpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGEwZDMyZDY0ODM4OTM3MzIwYjk5ZDNl
NmZlNjYwMjUwOWJkNTI4ZWUuLmRjNzA3MjFlOTcxZThkMzMyYmZmYmI5Y2EwMWNkNGJlYWQxNmMz
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0xNjEzLDYgKzE2MTMsNyBAQCBfX1pOSzdXZWJD
b3JlMTJSZW5kZXJPYmplY3QxNGVuY2xvc2luZ0xheWVyRXYKIF9fWk5LN1dlYkNvcmUxMlJlbmRl
ck9iamVjdDE1bG9jYWxUb0Fic29sdXRlRVJLTlNfMTBGbG9hdFBvaW50RWoKIF9fWk5LN1dlYkNv
cmUxMlJlbmRlck9iamVjdDE2cmVwYWludFJlY3RhbmdsZUVSS05TXzEwTGF5b3V0UmVjdEViCiBf
X1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QyMGxvY2FsVG9Db250YWluZXJRdWFkRVJLTlNfOUZs
b2F0UXVhZEVQS05TXzIyUmVuZGVyTGF5ZXJNb2RlbE9iamVjdEVqUGIKK19fWk5LN1dlYkNvcmUx
MlJlbmRlck9iamVjdDIxbG9jYWxUb0NvbnRhaW5lclBvaW50RVJLTlNfMTBGbG9hdFBvaW50RVBL
TlNfMjJSZW5kZXJMYXllck1vZGVsT2JqZWN0RWpQYgogX19aTks3V2ViQ29yZTEyUmVuZGVyT2Jq
ZWN0MjNhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdEViCiBfX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmpl
Y3QzOXBpeGVsU25hcHBlZEFic29sdXRlQ2xpcHBlZE92ZXJmbG93UmVjdEV2CiBfX1pOSzdXZWJD
b3JlMTJSZW5kZXJPYmplY3Q3Y2hpbGRBdEVqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Fzc2lzdGVkTm9kZUluZm9ybWF0aW9uLmNwcAppbmRleCA0N2IyYTJkNjI1Mjk1NDI1ZWRjYTE5
ZDk1NDZjYzc3N2RhZjIwYzI2Li4yMDFkZDIxMzhhODI1YWJiNzQ0ZTIwNDIzMmQ1MmMzN2MzMWNi
ODQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXNzaXN0ZWROb2RlSW5mb3Jt
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Bc3Npc3RlZE5vZGVJbmZvcm1h
dGlvbi5jcHAKQEAgLTc5LDYgKzc5LDcgQEAgdm9pZCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbjo6
ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIg
PDwgaXNNdWx0aVNlbGVjdDsKICAgICBlbmNvZGVyIDw8IGlzUmVhZE9ubHk7CiAgICAgZW5jb2Rl
ciA8PCBhbGxvd3NVc2VyU2NhbGluZzsKKyAgICBlbmNvZGVyIDw8IGluc2lkZUZpeGVkUG9zaXRp
b247CiAgICAgZW5jb2RlciA8PCB2YWx1ZTsKICAgICBlbmNvZGVyIDw8IHZhbHVlQXNOdW1iZXI7
CiAgICAgZW5jb2RlciA8PCB0aXRsZTsKQEAgLTEzNCw2ICsxMzUsOSBAQCBib29sIEFzc2lzdGVk
Tm9kZUluZm9ybWF0aW9uOjpkZWNvZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEFz
c2lzdGVkTm9kZQogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFsbG93c1VzZXJTY2Fs
aW5nKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShy
ZXN1bHQuaW5zaWRlRml4ZWRQb3NpdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnZhbHVlKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQXNzaXN0ZWROb2RlSW5mb3Jt
YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Bc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5o
CmluZGV4IDIzNzc1MDdlMDRkMTZmOGNhNGFiZWU3YzA0MDQ2ZTU4NGI3OTg5OWQuLjMxMGM5YzJl
MTBhODdjODkzYjI1MjViZmZmMDcyZDMzMDZjYTVmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Bc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Bc3Npc3RlZE5vZGVJbmZvcm1hdGlvbi5oCkBAIC0xMDIsNiArMTAyLDcgQEAgc3Ry
dWN0IEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uIHsKICAgICAgICAgLCBpc011bHRpU2VsZWN0KGZh
bHNlKQogICAgICAgICAsIGlzUmVhZE9ubHkoZmFsc2UpCiAgICAgICAgICwgYWxsb3dzVXNlclNj
YWxpbmcoZmFsc2UpCisgICAgICAgICwgaW5zaWRlRml4ZWRQb3NpdGlvbihmYWxzZSkKICAgICAg
ICAgLCBhdXRvY2FwaXRhbGl6ZVR5cGUoV2ViQXV0b2NhcGl0YWxpemVUeXBlRGVmYXVsdCkKICAg
ICAgICAgLCBlbGVtZW50VHlwZShJbnB1dFR5cGU6Ok5vbmUpCiAgICAgICAgICwgc2VsZWN0ZWRJ
bmRleCgtMSkKQEAgLTEyMCw2ICsxMjEsNyBAQCBzdHJ1Y3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRp
b24gewogICAgIGJvb2wgaXNNdWx0aVNlbGVjdDsKICAgICBib29sIGlzUmVhZE9ubHk7CiAgICAg
Ym9vbCBhbGxvd3NVc2VyU2NhbGluZzsKKyAgICBib29sIGluc2lkZUZpeGVkUG9zaXRpb247CiAg
ICAgV2ViQXV0b2NhcGl0YWxpemVUeXBlIGF1dG9jYXBpdGFsaXplVHlwZTsKICAgICBJbnB1dFR5
cGUgZWxlbWVudFR5cGU7CiAgICAgU3RyaW5nIGZvcm1BY3Rpb247CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaAppbmRleCA2OGMxM2YwYzNkMzIyYmNmNmZjMzU0ZjNkNTI4NzUyODMx
YWE1YzEyLi40NzllMGNjZDUxOGZkM2M1N2VlMDUwYmQ1NjI5ODEwYmUyYTIzOWM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTI1OSw2ICsyNTksNyBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnRBc3Npc3RpbmdOb2RlKGNvbnN0IEFzc2lzdGVkTm9k
ZUluZm9ybWF0aW9uJiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlvdXNO
b2RlLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc3RvcEFz
c2lzdGluZ05vZGUoKSA9IDA7CisgICAgdmlydHVhbCBib29sIGlzQXNzaXN0aW5nTm9kZSgpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0aW9uRGlkQ2hhbmdlKCkgPSAwOwogICAgIHZpcnR1
YWwgYm9vbCBpbnRlcnByZXRLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50Jiwg
Ym9vbCBpc0NoYXJFdmVudCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwb3NpdGlvbkluZm9ybWF0
aW9uRGlkQ2hhbmdlKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJikgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
CmluZGV4IDE4ZWYxZjQxOWJjMjMyNzI3ZjA2ZTljMjUyNTFmZmMyM2IwYzI1MTQuLjQ2MGFiZDAw
YTMzYTU3Yzg4MjYzMzg1NmExZTllZDZiYjE5M2Y2NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTExOSw2ICsxMTksNyBAQCBw
cml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBBc3Np
c3RlZE5vZGVJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clBy
ZXZpb3VzTm9kZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgc3RvcEFzc2lzdGluZ05vZGUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNB
c3Npc3RpbmdOb2RlKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdGlvbkRpZENo
YW5nZSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpbnRlcnByZXRLZXlFdmVudChjb25z
dCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCBpc0NoYXJFdmVudCkgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIHBvc2l0aW9uSW5mb3JtYXRpb25EaWRDaGFuZ2UoY29uc3QgSW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDIwYTM1NTNjODZk
YzBjNjIxYjcxYWU2Yjk0NWMwMmNjYjQzZTg1Y2EuLjEzZTAwN2ZjYWIwZGJjYjhkOTEzMmQ2ZTAw
NTYzYzE0ZWZlMmI0NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNTMwLDYgKzUzMCwxMSBAQCB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpzdGFydEFzc2lzdGluZ05vZGUoY29uc3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mIG5v
ZGVJbmZvcgogICAgIFttX2NvbnRlbnRWaWV3IF9zdGFydEFzc2lzdGluZ05vZGU6bm9kZUluZm9y
bWF0aW9uIHVzZXJJc0ludGVyYWN0aW5nOnVzZXJJc0ludGVyYWN0aW5nIGJsdXJQcmV2aW91c05v
ZGU6Ymx1clByZXZpb3VzTm9kZSB1c2VyT2JqZWN0OnVzZXJPYmplY3RdOwogfQogCitib29sIFBh
Z2VDbGllbnRJbXBsOjppc0Fzc2lzdGluZ05vZGUoKQoreworICAgIHJldHVybiBbbV9jb250ZW50
VmlldyBpc0Fzc2lzdGluZ05vZGVdOworfQorCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzdG9wQXNz
aXN0aW5nTm9kZSgpCiB7CiAgICAgW21fY29udGVudFZpZXcgX3N0b3BBc3Npc3RpbmdOb2RlXTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5k
ZXggODc5ODQyYzVhNTUzMDAzMWNkYmVhNjU2OTI0ZDg4ODIxZDI0OWFhZi4uMjRiMjFiMDNhZjQx
YTAxNmU2NmYzOTY5NTdjZDk4OTc3NzQ3NTYyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTIyMCw2ICsyMjAsOSBAQCBXZWJDb3Jl
OjpGbG9hdFJlY3QgV2ViUGFnZVByb3h5Ojpjb21wdXRlQ3VzdG9tRml4ZWRQb3NpdGlvblJlY3Qo
Y29uc3QgRmxvYXRSZWN0JgogICAgIEZsb2F0U2l6ZSBjb250ZW50c1NpemUgPSBtX3BhZ2VDbGll
bnQuY29udGVudHNTaXplKCk7CiAgICAgRmxvYXRSZWN0IGRvY3VtZW50UmVjdCA9IEZsb2F0UmVj
dChGbG9hdFBvaW50KCksIGNvbnRlbnRzU2l6ZSk7CiAKKyAgICBpZiAobV9wYWdlQ2xpZW50Lmlz
QXNzaXN0aW5nTm9kZSgpKQorICAgICAgICByZXR1cm4gZG9jdW1lbnRSZWN0OworCiAgICAgaWYg
KGNvbnN0cmFpbnQgPT0gVW5vYnNjdXJlZFJlY3RDb25zdHJhaW50OjpDb25zdHJhaW5lZFRvRG9j
dW1lbnRSZWN0KQogICAgICAgICBjb25zdHJhaW5lZFVub2JzY3VyZWRSZWN0LmludGVyc2VjdChk
b2N1bWVudFJlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggY2I2Nzk3OGVhOTMwYmM5ZDQzOTVhNTM2YTVhOWQ3
MGNmZTcxYTMxNi4uOTBiODI5OWQ3MGY4NTYzYWU1MmU4YWY2MTQ5YmI1ODBiNzM4OTkzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlP
Uy5tbQpAQCAtMTk4OSwxNCArMTk4OSwzMyBAQCB2b2lkIFdlYlBhZ2U6OmdldEFzc2lzdGVkTm9k
ZUluZm9ybWF0aW9uKEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uJiBpbmZvcm1hdGlvbikKIHsKICAg
ICBsYXlvdXRJZk5lZWRlZCgpOwogCisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIHJldHVybiB0
aGUgc2VsZWN0aW9uIHJlY3QsIGJ1dCB3aGVuIHRoaXMgaXMgY2FsbGVkIGF0IGZvY3VzIHRpbWUK
KyAgICAvLyB3ZSBkb24ndCBoYXZlIGEgc2VsZWN0aW9uIHlldC4gVXNpbmcgdGhlIGxhc3QgaW50
ZXJhY3Rpb24gbG9jYXRpb24gaXMgYSByZWFzb25hYmxlIGFwcHJveGltYXRpb24gZm9yIG5vdy4K
KyAgICAvLyBGSVhNRTogc2hvdWxkIHRoZSBzZWxlY3Rpb24gcmVjdCBhbHdheXMgYmUgaW5zaWRl
IHRoZSBlbGVtZW50UmVjdD8KKyAgICBpbmZvcm1hdGlvbi5zZWxlY3Rpb25SZWN0ID0gSW50UmVj
dChtX2xhc3RJbnRlcmFjdGlvbkxvY2F0aW9uLCBJbnRTaXplKDEsIDEpKTsKKwogICAgIGlmIChS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbV9hc3Npc3RlZE5vZGUtPnJlbmRlcmVyKCkpIHsKLSAg
ICAgICAgaW5mb3JtYXRpb24uZWxlbWVudFJlY3QgPSBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigp
LmZvY3VzZWRPck1haW5GcmFtZSgpLnZpZXcoKS0+Y29udGVudHNUb1Jvb3RWaWV3KHJlbmRlcmVy
LT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpKTsKKyAgICAgICAgRnJhbWUmIGVsZW1lbnRGcmFt
ZSA9IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCk7CisgICAg
ICAgIGluZm9ybWF0aW9uLmVsZW1lbnRSZWN0ID0gZWxlbWVudEZyYW1lLnZpZXcoKS0+Y29udGVu
dHNUb1Jvb3RWaWV3KHJlbmRlcmVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCgpKTsKICAgICAg
ICAgaW5mb3JtYXRpb24ubm9kZUZvbnRTaXplID0gcmVuZGVyZXItPnN0eWxlKCkuZm9udERlc2Ny
aXB0aW9uKCkuY29tcHV0ZWRTaXplKCk7CisKKyAgICAgICAgYm9vbCBpbkZpeGVkID0gZmFsc2U7
CisgICAgICAgIHJlbmRlcmVyLT5sb2NhbFRvQ29udGFpbmVyUG9pbnQoRmxvYXRQb2ludCgpLCBu
dWxscHRyLCAwLCAmaW5GaXhlZCk7CisgICAgICAgIGluZm9ybWF0aW9uLmluc2lkZUZpeGVkUG9z
aXRpb24gPSBpbkZpeGVkOworICAgICAgICAKKyAgICAgICAgaWYgKGluRml4ZWQgJiYgZWxlbWVu
dEZyYW1lLmlzTWFpbkZyYW1lKCkpIHsKKyAgICAgICAgICAgIEZyYW1lVmlldyogZnJhbWVWaWV3
ID0gZWxlbWVudEZyYW1lLnZpZXcoKTsKKyAgICAgICAgICAgIEludFJlY3QgY3VycmVudEZpeGVk
UG9zaXRpb25SZWN0ID0gZnJhbWVWaWV3LT5jdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVjdCgp
OworICAgICAgICAgICAgZnJhbWVWaWV3LT5zZXRDdXN0b21GaXhlZFBvc2l0aW9uTGF5b3V0UmVj
dChmcmFtZVZpZXctPnJlbmRlclZpZXcoKS0+ZG9jdW1lbnRSZWN0KCkpOworICAgICAgICAgICAg
aW5mb3JtYXRpb24uZWxlbWVudFJlY3QgPSBmcmFtZVZpZXctPmNvbnRlbnRzVG9Sb290Vmlldyhy
ZW5kZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QoKSk7CisgICAgICAgICAgICBmcmFtZVZp
ZXctPnNldEN1c3RvbUZpeGVkUG9zaXRpb25MYXlvdXRSZWN0KGN1cnJlbnRGaXhlZFBvc2l0aW9u
UmVjdCk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICghaW5mb3JtYXRpb24uZWxlbWVu
dFJlY3QuY29udGFpbnMoaW5mb3JtYXRpb24uc2VsZWN0aW9uUmVjdCkpCisgICAgICAgICAgICAg
ICAgaW5mb3JtYXRpb24uc2VsZWN0aW9uUmVjdC5zZXRMb2NhdGlvbihpbmZvcm1hdGlvbi5lbGVt
ZW50UmVjdC5sb2NhdGlvbigpKTsKKyAgICAgICAgfQogICAgIH0gZWxzZQogICAgICAgICBpbmZv
cm1hdGlvbi5lbGVtZW50UmVjdCA9IEludFJlY3QoKTsKLSAgICAvLyBGSVhNRTogVGhpcyBzaG91
bGQgcmV0dXJuIHRoZSBzZWxlY3Rpb24gcmVjdCwgYnV0IHdoZW4gdGhpcyBpcyBjYWxsZWQgYXQg
Zm9jdXMgdGltZQotICAgIC8vIHdlIGRvbid0IGhhdmUgYSBzZWxlY3Rpb24geWV0LiBVc2luZyB0
aGUgbGFzdCBpbnRlcmFjdGlvbiBsb2NhdGlvbiBpcyBhIHJlYXNvbmFibGUgYXBwcm94aW1hdGlv
biBmb3Igbm93LgotICAgIGluZm9ybWF0aW9uLnNlbGVjdGlvblJlY3QgPSBJbnRSZWN0KG1fbGFz
dEludGVyYWN0aW9uTG9jYXRpb24sIEludFNpemUoMSwgMSkpOworCiAgICAgaW5mb3JtYXRpb24u
bWluaW11bVNjYWxlRmFjdG9yID0gbV92aWV3cG9ydENvbmZpZ3VyYXRpb24ubWluaW11bVNjYWxl
KCk7CiAgICAgaW5mb3JtYXRpb24ubWF4aW11bVNjYWxlRmFjdG9yID0gbV92aWV3cG9ydENvbmZp
Z3VyYXRpb24ubWF4aW11bVNjYWxlKCk7CiAgICAgaW5mb3JtYXRpb24uYWxsb3dzVXNlclNjYWxp
bmcgPSBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5hbGxvd3NVc2VyU2NhbGluZygpOwo=
</data>
<flag name="review"
          id="259800"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>