<?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>134189</bug_id>
          
          <creation_ts>2014-06-23 02:01:55 -0700</creation_ts>
          <short_desc>[wk2] Synchronously wait a short time for a layer tree update after bringing a web view in-window</short_desc>
          <delta_ts>2014-06-23 14:34:38 -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>WebKit2</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>
          
          <blocked>134004</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1017509</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-06-23 02:01:55 -0700</bug_when>
    <thetext>So that we don&apos;t flash white because of the unparented layer tree.

We can probably short-circuit this sometimes if we have view snapshots, but that is a future optimization.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017511</commentid>
    <comment_count>1</comment_count>
      <attachid>233589</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-06-23 02:48:15 -0700</bug_when>
    <thetext>Created attachment 233589
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017647</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-06-23 12:39:49 -0700</bug_when>
    <thetext>This won&apos;t apply because it&apos;s on top of https://bugs.webkit.org/show_bug.cgi?id=134004</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017674</commentid>
    <comment_count>3</comment_count>
      <attachid>233589</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-23 13:53:37 -0700</bug_when>
    <thetext>Comment on attachment 233589
patch

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

&gt; Source/WebKit2/UIProcess/mac/RemoteLayerTreeDrawingAreaProxy.mm:327
&gt; +    auto viewStateUpdateTimeout = std::chrono::milliseconds(500);

500 vs...

&gt; Source/WebKit2/UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:132
&gt; +    auto viewStateUpdateTimeout = std::chrono::milliseconds(250);

250?

&gt; Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.h:124
&gt; +        static PassRefPtr&lt;BackingStoreFlusher&gt; create(FlushingContext);

Did you mean to pass by value?

&gt; Source/WebKit2/WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:320
&gt; +    BackingStoreFlusher::FlushingContext flushingContext;

I can has constructor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017693</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-06-23 14:33:39 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/170319</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1017695</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-06-23 14:34:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/17425232&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233589</attachid>
            <date>2014-06-23 02:48:15 -0700</date>
            <delta_ts>2014-06-23 13:53:37 -0700</delta_ts>
            <desc>patch</desc>
            <filename>sync-switch.diff</filename>
            <type>text/plain</type>
            <size>27785</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwNTc4NmVlLi4zNTYyNjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjgg
QEAKKzIwMTQtMDYtMjMgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgW2lPU11bd2syXSBTeW5jaHJvbm91c2x5IHdhaXQgYSBzaG9ydCB0aW1lIGZvciBh
IGxheWVyIHRyZWUgdXBkYXRlIGFmdGVyIGJyaW5naW5nIGEgd2ViIHZpZXcgaW4td2luZG93Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzQxODkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHRoZSBv
bGQgYmVoYXZpb3Igb2YgLVtXS1ZpZXcgZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlc1N5
bmNdIHRoZSBkZWZhdWx0OyBzeW5jaHJvbm91c2x5IHdhaXQKKyAgICAgICAgZm9yIGEgZnJhY3Rp
b24gb2YgYSBzZWNvbmQgd2hlbiBhIHBhZ2UgdGhhdCB3YXMgcHJldmlvdXNseSBpbi13aW5kb3cg
YnV0IGN1cnJlbnRseSBpc24ndCBjb21lcyBiYWNrIGluLXdpbmRvdywKKyAgICAgICAgdW50aWwg
bmV3IGNvbnRlbnQgaXMgcGFpbnRlZCAob3Igd2UgaGl0IGEgdGltZW91dCkuCisgICAgICAgIAor
ICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6
OkRyYXdpbmdBcmVhUHJveHk6OndhaXRGb3JEaWRVcGRhdGVWaWV3U3RhdGUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5t
bToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6
d2FpdEZvckRpZFVwZGF0ZVZpZXdTdGF0ZSk6CisgICAgICAgIERlbGVnYXRlIHdhaXRGb3JEaWRV
cGRhdGVWaWV3U3RhdGUgdG8gdGhlIERyYXdpbmdBcmVhUHJveHlzLCBiZWNhdXNlIGJlaGF2aW9y
IGlzIHZlcnkgZGVwZW5kZW50IG9uIHRoZW0uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvcmVBbmltYXRpb25EaWRDb21taXRMYXll
cnMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp3
YWl0Rm9yRGlkVXBkYXRlVmlld1N0YXRlKToKKyAgICAgICAgSW1wbGVtZW50IHdhaXRGb3JEaWRV
cGRhdGVWaWV3U3RhdGUgZm9yIHRoZSBSZW1vdGVMYXllclRyZWU7IGl0IHdhaXRzIGZvciBDb21t
aXRMYXllclRyZWUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlUHJveHk6OnVwZGF0ZVZpZXdTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6dmlld1N0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5OjpkaXNwYXRjaFZpZXdTdGF0ZUNoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6d2FpdEZvckRpZFVwZGF0ZVZpZXdTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cmVzZXRTdGF0ZUFmdGVyUHJvY2Vzc0V4aXRlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6dmlld1NpemUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRVcGRh
dGVWaWV3U3RhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAg
ICAgICAgKC1bV0tWaWV3IGVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNTeW5jXSk6Cisg
ICAgICAgIEFsd2F5cyB3YWl0Rm9yRGlkVXBkYXRlVmlld1N0YXRlIHdoZW4gYSBwYWdlIHRoYXQg
d2FzIHByZXZpb3VzbHkgaW4td2luZG93IGJ1dCBjdXJyZW50bHkgaXNuJ3QgY29tZXMgYmFjayBp
bi13aW5kb3cuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaDoK
KyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OnZpZXdTdGF0ZURpZENoYW5nZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0Vmlld1N0YXRl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlkVXBkYXRlVmlld1N0YXRlVGltZXJGaXJl
ZCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6
OmZsdXNoTGF5ZXJzKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWE6OnZpZXdTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisgICAgICAgIChX
ZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjp2aWV3U3RhdGVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYTo6ZGlkVXBkYXRlVmlld1N0YXRlVGltZXJGaXJlZCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpkaWRVcGRhdGVWaWV3U3RhdGVUaW1lckZpcmVkKTogRGVsZXRlZC4KKyAgICAg
ICAgRGVsZWdhdGUgc2VuZGluZyBvZiBkaWRVcGRhdGVWaWV3U3RhdGUgdG8gdGhlIERyYXdpbmdB
cmVhcyAoUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEgd29uJ3Qgc2VuZCBpdCwKKyAgICAgICAg
ICAgIGJlY2F1c2UgdGhlIFVJIHByb2Nlc3Mgd2FpdHMgZm9yIENvbW1pdExheWVyVHJlZSBpbnN0
ZWFkKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhOjpCYWNraW5nU3RvcmVGbHVzaGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYTo6QmFja2luZ1N0b3JlRmx1c2hlcjo6QmFja2luZ1N0b3Jl
Rmx1c2hlcik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpC
YWNraW5nU3RvcmVGbHVzaGVyOjpmbHVzaCk6CisgICAgICAgIE1ha2UgUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEncyBCYWNraW5nU3RvcmVGbHVzaGVyIHRha2UgcGFyYW1ldGVycyBpbiBhIHN0
cnVjdCBpbnN0ZWFkIG9mIGFzIGFyZ3VtZW50cyB0byA6OmNyZWF0ZS4KKwogMjAxNC0wNi0yMiAg
VGltb3RoeSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2lP
U11bd2syXSBFbnN1cmUgdGhhdCBsYXllcnMgYXJlIG1hcmtlZCB2b2xhdGlsZSBiZWZvcmUgYWxs
b3dpbmcgdGhlIHByb2Nlc3MgdG8gc3VzcGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3Lm1tCmluZGV4IDI4MzNjZjAuLmUwOGJiZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTM3NTQsNiArMzc1NCw3IEBAIHN0YXRp
YyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgp
CiAjZW5kaWYKIH0KIAorLy8gRklYTUU6IEFsbCBvZiB0aGVzZSAiRGVmZXJyaW5nVmlld0luV2lu
ZG93Q2hhbmdlcyIgbWV0aG9kcyBzaG91bGQgYmUgYWJsZSB0byBiZSByZW1vdmVkIG9uY2UgY2xp
ZW50cyBhcmUgd2VhbmVkIG9mZiBvZiB0aGVtLgogLSAodm9pZCliZWdpbkRlZmVycmluZ1ZpZXdJ
bldpbmRvd0NoYW5nZXMKIHsKICAgICBpZiAoX2RhdGEtPl9zaG91bGREZWZlclZpZXdJbldpbmRv
d0NoYW5nZXMpIHsKQEAgLTM3ODYsMTggKzM3ODcsMTIgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRo
V2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQgPSBfZGF0YS0+X3BhZ2VDbGll
bnQuZ2V0KCk7Ci0gICAgYm9vbCBoYXNQZW5kaW5nVmlld0luV2luZG93Q2hhbmdlID0gX2RhdGEt
Pl92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCAmJiBfZGF0YS0+X3BhZ2UtPmlzSW5XaW5k
b3coKSAhPSBwYWdlQ2xpZW50LT5pc1ZpZXdJbldpbmRvdygpOwotCiAgICAgX2RhdGEtPl9zaG91
bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMgPSBOTzsKIAogICAgIGlmIChfZGF0YS0+X3ZpZXdJ
bldpbmRvd0NoYW5nZVdhc0RlZmVycmVkKSB7Ci0gICAgICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0
YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6SXNJbldpbmRvdywgaGFzUGVuZGluZ1ZpZXdJbldpbmRv
d0NoYW5nZSA/IFdlYlBhZ2VQcm94eTo6V2FudHNSZXBseU9yTm90OjpEb2VzV2FudFJlcGx5IDog
V2ViUGFnZVByb3h5OjpXYW50c1JlcGx5T3JOb3Q6OkRvZXNOb3RXYW50UmVwbHkpOworICAgICAg
ICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzSW5XaW5kb3cp
OwogICAgICAgICBfZGF0YS0+X3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkID0gTk87CiAg
ICAgfQotCi0gICAgaWYgKGhhc1BlbmRpbmdWaWV3SW5XaW5kb3dDaGFuZ2UpCi0gICAgICAgIF9k
YXRhLT5fcGFnZS0+d2FpdEZvckRpZFVwZGF0ZVZpZXdTdGF0ZSgpOwogfQogCiAtIChCT09MKWlz
RGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9E
cmF3aW5nQXJlYVByb3h5LmgKaW5kZXggN2E1YjdhYy4uODY4NWQ2NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC04Nyw2ICs4Nyw4IEBAIHB1Ymxp
YzoKIAogICAgIHZpcnR1YWwgdWludDY0X3QgbGFzdFZpc2libGVUcmFuc2FjdGlvbklEKCkgY29u
c3QgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIDA7IH0KIAorICAgIHZpcnR1YWwgdm9p
ZCB3YWl0Rm9yRGlkVXBkYXRlVmlld1N0YXRlKCkgeyB9CisKIHByb3RlY3RlZDoKICAgICBleHBs
aWNpdCBEcmF3aW5nQXJlYVByb3h5KERyYXdpbmdBcmVhVHlwZSwgV2ViUGFnZVByb3h5Kik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZmYwYTM4Zi4u
MjE0ZDFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTI4MCw2ICsyODAsNyBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBw
YWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIHVpbgogICAgICwgbV9nZW9sb2Nh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigqdGhpcykKICAgICAsIG1fbm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCp0aGlzKQogICAgICwgbV92aWV3U3RhdGUoVmlld1N0
YXRlOjpOb0ZsYWdzKQorICAgICwgbV92aWV3V2FzRXZlckluV2luZG93KGZhbHNlKQogICAgICwg
bV9iYWNrRm9yd2FyZExpc3QoV2ViQmFja0ZvcndhcmRMaXN0OjpjcmVhdGUoKnRoaXMpKQogICAg
ICwgbV9sb2FkU3RhdGVBdFByb2Nlc3NFeGl0KEZyYW1lTG9hZFN0YXRlOjpTdGF0ZTo6RmluaXNo
ZWQpCiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQpA
QCAtMzYyLDcgKzM2Myw2IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQm
IHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWluCiAgICAgLCBtX2F1dG9T
aXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoZmFsc2UpCiAgICAgLCBtX21lZGlhVm9sdW1l
KDEpCiAgICAgLCBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3codHJ1ZSkKLSAgICAsIG1fd2Fp
dGluZ0ZvckRpZFVwZGF0ZVZpZXdTdGF0ZShmYWxzZSkKICAgICAsIG1fc2Nyb2xsUGlubmluZ0Jl
aGF2aW9yKERvTm90UGluKQogICAgICwgbV9uYXZpZ2F0aW9uSUQoMCkKICAgICAsIG1fY29uZmln
dXJhdGlvblByZWZlcmVuY2VWYWx1ZXMoY29uZmlndXJhdGlvbi5wcmVmZXJlbmNlVmFsdWVzKQpA
QCAtMTA5NCwxOSArMTA5NCwyMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlVmlld1N0YXRl
KFZpZXdTdGF0ZTo6RmxhZ3MgZmxhZ3NUb1VwZGF0ZSkKICAgICAgICAgbV92aWV3U3RhdGUgfD0g
Vmlld1N0YXRlOjpJc1Zpc2libGU7CiAgICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBWaWV3U3RhdGU6
OklzVmlzaWJsZU9yT2NjbHVkZWQgJiYgbV9wYWdlQ2xpZW50LmlzVmlld1Zpc2libGVPck9jY2x1
ZGVkKCkpCiAgICAgICAgIG1fdmlld1N0YXRlIHw9IFZpZXdTdGF0ZTo6SXNWaXNpYmxlT3JPY2Ns
dWRlZDsKLSAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIFZpZXdTdGF0ZTo6SXNJbldpbmRvdyAmJiBt
X3BhZ2VDbGllbnQuaXNWaWV3SW5XaW5kb3coKSkKKyAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIFZp
ZXdTdGF0ZTo6SXNJbldpbmRvdyAmJiBtX3BhZ2VDbGllbnQuaXNWaWV3SW5XaW5kb3coKSkgewog
ICAgICAgICBtX3ZpZXdTdGF0ZSB8PSBWaWV3U3RhdGU6OklzSW5XaW5kb3c7CisgICAgICAgIG1f
dmlld1dhc0V2ZXJJbldpbmRvdyA9IHRydWU7CisgICAgfQogICAgIGlmIChmbGFnc1RvVXBkYXRl
ICYgVmlld1N0YXRlOjpJc1Zpc3VhbGx5SWRsZSAmJiBtX3BhZ2VDbGllbnQuaXNWaXN1YWxseUlk
bGUoKSkKICAgICAgICAgbV92aWV3U3RhdGUgfD0gVmlld1N0YXRlOjpJc1Zpc3VhbGx5SWRsZTsK
IH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OkZs
YWdzIG1heUhhdmVDaGFuZ2VkLCBXYW50c1JlcGx5T3JOb3Qgd2FudHNSZXBseSkKK3ZvaWQgV2Vi
UGFnZVByb3h5Ojp2aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpGbGFncyBtYXlIYXZlQ2hh
bmdlZCkKIHsKKyAgICBib29sIGlzTmV3bHlJbldpbmRvdyA9ICFpc0luV2luZG93KCkgJiYgKG1h
eUhhdmVDaGFuZ2VkICYgVmlld1N0YXRlOjpJc0luV2luZG93KSAmJiBtX3BhZ2VDbGllbnQuaXNW
aWV3SW5XaW5kb3coKTsKKwogICAgIG1fcG90ZW50aWFsbHlDaGFuZ2VkVmlld1N0YXRlRmxhZ3Mg
fD0gbWF5SGF2ZUNoYW5nZWQ7Ci0gICAgbV92aWV3U3RhdGVDaGFuZ2VXYW50c1JlcGx5ID0gKHdh
bnRzUmVwbHkgPT0gV2FudHNSZXBseU9yTm90OjpEb2VzV2FudFJlcGx5IHx8IG1fdmlld1N0YXRl
Q2hhbmdlV2FudHNSZXBseSA9PSBXYW50c1JlcGx5T3JOb3Q6OkRvZXNXYW50UmVwbHkpID8gV2Fu
dHNSZXBseU9yTm90OjpEb2VzV2FudFJlcGx5IDogV2FudHNSZXBseU9yTm90OjpEb2VzTm90V2Fu
dFJlcGx5OworICAgIG1fdmlld1N0YXRlQ2hhbmdlV2FudHNSZXBseSA9ICgobV92aWV3V2FzRXZl
ckluV2luZG93ICYmIGlzTmV3bHlJbldpbmRvdykgfHwgbV92aWV3U3RhdGVDaGFuZ2VXYW50c1Jl
cGx5ID09IFdhbnRzUmVwbHlPck5vdDo6RG9lc1dhbnRSZXBseSkgPyBXYW50c1JlcGx5T3JOb3Q6
OkRvZXNXYW50UmVwbHkgOiBXYW50c1JlcGx5T3JOb3Q6OkRvZXNOb3RXYW50UmVwbHk7CiAKICNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICBib29sIGlzTmV3bHlJbldpbmRvdyA9ICEobV92aWV3U3Rh
dGUgJiBWaWV3U3RhdGU6OklzSW5XaW5kb3cpICYmIChtYXlIYXZlQ2hhbmdlZCAmIFZpZXdTdGF0
ZTo6SXNJbldpbmRvdykgJiYgbV9wYWdlQ2xpZW50LmlzVmlld0luV2luZG93KCk7CiAgICAgaWYg
KGlzTmV3bHlJbldpbmRvdykgewogICAgICAgICBkaXNwYXRjaFZpZXdTdGF0ZUNoYW5nZSgpOwog
ICAgICAgICByZXR1cm47CkBAIC0xMTc0LDYgKzExNzcsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGlzcGF0Y2hWaWV3U3RhdGVDaGFuZ2UoKQogCiAgICAgdXBkYXRlQmFja2luZ1N0b3JlRGlzY2Fy
ZGFibGVTdGF0ZSgpOwogCisgICAgaWYgKG1fdmlld1N0YXRlQ2hhbmdlV2FudHNSZXBseSA9PSBX
YW50c1JlcGx5T3JOb3Q6OkRvZXNXYW50UmVwbHkpCisgICAgICAgIHdhaXRGb3JEaWRVcGRhdGVW
aWV3U3RhdGUoKTsKKwogICAgIG1fcG90ZW50aWFsbHlDaGFuZ2VkVmlld1N0YXRlRmxhZ3MgPSBW
aWV3U3RhdGU6Ok5vRmxhZ3M7CiAgICAgbV92aWV3U3RhdGVDaGFuZ2VXYW50c1JlcGx5ID0gV2Fu
dHNSZXBseU9yTm90OjpEb2VzTm90V2FudFJlcGx5OwogfQpAQCAtMTIwMywxOSArMTIwOSwxOSBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6bGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpCiAKIHZvaWQg
V2ViUGFnZVByb3h5Ojp3YWl0Rm9yRGlkVXBkYXRlVmlld1N0YXRlKCkKIHsKLSAgICAvLyBJZiB3
ZSBoYXZlIHByZXZpb3VzbHkgdGltZWQgb3V0IHdpdGggbm8gcmVzcG9uc2UgZnJvbSB0aGUgV2Vi
UHJvY2VzcywgZG9uJ3QgYmxvY2sgdGhlIFVJUHJvY2VzcyBhZ2FpbiB1bnRpbCBpdCBzdGFydHMg
cmVzcG9uZGluZy4KLSAgICBpZiAobV93YWl0aW5nRm9yRGlkVXBkYXRlVmlld1N0YXRlKQorICAg
IGlmICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIWlzVmFsaWQoKSkK
KyAgICBpZiAobV9wcm9jZXNzLT5zdGF0ZSgpICE9IFdlYlByb2Nlc3NQcm94eTo6U3RhdGU6OlJ1
bm5pbmcpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIElmIHdlIGhhdmUgcHJldmlvdXNseSB0
aW1lZCBvdXQgd2l0aCBubyByZXNwb25zZSBmcm9tIHRoZSBXZWJQcm9jZXNzLCBkb24ndCBibG9j
ayB0aGUgVUlQcm9jZXNzIGFnYWluIHVudGlsIGl0IHN0YXJ0cyByZXNwb25kaW5nLgorICAgIGlm
IChtX3dhaXRpbmdGb3JEaWRVcGRhdGVWaWV3U3RhdGUpCiAgICAgICAgIHJldHVybjsKIAogICAg
IG1fd2FpdGluZ0ZvckRpZFVwZGF0ZVZpZXdTdGF0ZSA9IHRydWU7CiAKLSAgICBpZiAobV9wcm9j
ZXNzLT5zdGF0ZSgpICE9IFdlYlByb2Nlc3NQcm94eTo6U3RhdGU6OkxhdW5jaGluZykgewotICAg
ICAgICBhdXRvIHZpZXdTdGF0ZVVwZGF0ZVRpbWVvdXQgPSBzdGQ6OmNocm9ubzo6bWlsbGlzZWNv
bmRzKDI1MCk7Ci0gICAgICAgIG1fcHJvY2Vzcy0+Y29ubmVjdGlvbigpLT53YWl0Rm9yQW5kRGlz
cGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRVcGRhdGVWaWV3U3Rh
dGU+KG1fcGFnZUlELCB2aWV3U3RhdGVVcGRhdGVUaW1lb3V0KTsKLSAgICB9CisgICAgbV9kcmF3
aW5nQXJlYS0+d2FpdEZvckRpZFVwZGF0ZVZpZXdTdGF0ZSgpOwogfQogCiBJbnRTaXplIFdlYlBh
Z2VQcm94eTo6dmlld1NpemUoKSBjb25zdApAQCAtNDI5NSw3ICs0MzAxLDYgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnJlc2V0U3RhdGVBZnRlclByb2Nlc3NFeGl0ZWQoKQogCiAgICAgbV9pc1ZhbGlk
ID0gZmFsc2U7CiAgICAgbV9pc1BhZ2VTdXNwZW5kZWQgPSBmYWxzZTsKLSAgICBtX3dhaXRpbmdG
b3JEaWRVcGRhdGVWaWV3U3RhdGUgPSBmYWxzZTsKIAogICAgIGlmIChtX21haW5GcmFtZSkgewog
ICAgICAgICBtX3VybEF0UHJvY2Vzc0V4aXQgPSBtX21haW5GcmFtZS0+dXJsKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZGE5MTU3MC4uN2Y5MGY1ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMzYxLDkgKzM2MSwxMCBA
QCBwdWJsaWM6CiAgICAgYm9vbCBkZWxlZ2F0ZXNTY3JvbGxpbmcoKSBjb25zdCB7IHJldHVybiBt
X2RlbGVnYXRlc1Njcm9sbGluZzsgfQogCiAgICAgZW51bSBjbGFzcyBXYW50c1JlcGx5T3JOb3Qg
eyBEb2VzTm90V2FudFJlcGx5LCBEb2VzV2FudFJlcGx5IH07Ci0gICAgdm9pZCB2aWV3U3RhdGVE
aWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpGbGFncyBtYXlIYXZlQ2hhbmdlZCwgV2FudHNS
ZXBseU9yTm90ID0gV2FudHNSZXBseU9yTm90OjpEb2VzTm90V2FudFJlcGx5KTsKKyAgICB2b2lk
IHZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIG1heUhhdmVDaGFu
Z2VkKTsKICAgICBib29sIGlzSW5XaW5kb3coKSBjb25zdCB7IHJldHVybiBtX3ZpZXdTdGF0ZSAm
IFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNJbldpbmRvdzsgfQogICAgIHZvaWQgd2FpdEZvckRpZFVw
ZGF0ZVZpZXdTdGF0ZSgpOworICAgIHZvaWQgZGlkVXBkYXRlVmlld1N0YXRlKCkgeyBtX3dhaXRp
bmdGb3JEaWRVcGRhdGVWaWV3U3RhdGUgPSBmYWxzZTsgfQogCiAgICAgdm9pZCBsYXllckhvc3Rp
bmdNb2RlRGlkQ2hhbmdlKCk7CiAKQEAgLTU3NSw4ICs1NzYsNiBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIGxpc3RlbkZvckxheW91dE1pbGVzdG9uZXMoV2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lcyk7
CiAKLSAgICB2b2lkIGRpZFVwZGF0ZVZpZXdTdGF0ZSgpIHsgbV93YWl0aW5nRm9yRGlkVXBkYXRl
Vmlld1N0YXRlID0gZmFsc2U7IH0KLQogICAgIGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhcigp
IGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhcjsgfQogICAg
IGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIoKSBjb25zdCB7IHJldHVybiBtX21haW5GcmFtZUhh
c1ZlcnRpY2FsU2Nyb2xsYmFyOyB9CiAKQEAgLTEzMjEsNiArMTMyMCw3IEBAIHByaXZhdGU6CiAg
ICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9ub3RpZmljYXRp
b25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAKICAgICBXZWJDb3JlOjpWaWV3U3RhdGU6OkZs
YWdzIG1fdmlld1N0YXRlOworICAgIGJvb2wgbV92aWV3V2FzRXZlckluV2luZG93OwogCiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxQcm9jZXNzVGhyb3R0bGVyOjpGb3Jl
Z3JvdW5kQWN0aXZpdHlUb2tlbj4gbV9hY3Rpdml0eVRva2VuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkuaAppbmRleCA0NGE2OWE5Li4zNzg3NzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJv
eHkuaApAQCAtNjcsNiArNjcsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVE
ZWJ1Z0luZGljYXRvcigpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlRGVidWdJbmRpY2F0b3Io
V2ViQ29yZTo6SW50U2l6ZSBjb250ZW50c1NpemUsIGJvb2wgcm9vdExheWVyQ2hhbmdlZCwgZmxv
YXQgc2NhbGUpOwogICAgIHZvaWQgdXBkYXRlRGVidWdJbmRpY2F0b3JQb3NpdGlvbigpOworCisg
ICAgdmlydHVhbCB2b2lkIHdhaXRGb3JEaWRVcGRhdGVWaWV3U3RhdGUoKSBvdmVycmlkZTsKICAg
ICAKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IGluZGljYXRvckxvY2F0aW9uKCkgY29uc3Q7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCBhNWE3MTY3Li40YTg2N2MxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC0zNyw2ICszNyw3IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0lPU3VyZmFjZVBvb2wuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQWN0aW9uRGlzYWJs
aW5nQ0FMYXllckRlbGVnYXRlLmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBJUEM7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAogc3RhdGljIGNvbnN0IENGSW5kZXggZGlkQ29tbWl0TGF5ZXJzUnVu
TG9vcE9yZGVyID0gKENGSW5kZXgpUnVuTG9vcE9ic2VydmVyOjpXZWxsS25vd25SdW5Mb29wT3Jk
ZXJzOjpDb3JlQW5pbWF0aW9uQ29tbWl0ICsgMTsKQEAgLTMxNyw2ICszMTgsMTQgQEAgdm9pZCBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb3JlQW5pbWF0aW9uRGlkQ29tbWl0TGF5
ZXJzKCkKICAgICBtX3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRyYXdp
bmdBcmVhOjpEaWRVcGRhdGUoKSwgbV93ZWJQYWdlUHJveHktPnBhZ2VJRCgpKTsKIAogICAgIG1f
bGFzdFZpc2libGVUcmFuc2FjdGlvbklEID0gbV90cmFuc2FjdGlvbklERm9yUGVuZGluZ0NBQ29t
bWl0OworCisgICAgbV93ZWJQYWdlUHJveHktPmRpZFVwZGF0ZVZpZXdTdGF0ZSgpOworfQorCit2
b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OndhaXRGb3JEaWRVcGRhdGVWaWV3
U3RhdGUoKQoreworICAgIGF1dG8gdmlld1N0YXRlVXBkYXRlVGltZW91dCA9IHN0ZDo6Y2hyb25v
OjptaWxsaXNlY29uZHMoNTAwKTsKKyAgICBtX3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLmNvbm5l
Y3Rpb24oKS0+d2FpdEZvckFuZERpc3BhdGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OlJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OkNvbW1pdExheWVyVHJlZT4obV93ZWJQYWdlUHJveHkt
PnBhZ2VJRCgpLCB2aWV3U3RhdGVVcGRhdGVUaW1lb3V0LCBJbnRlcnJ1cHRXYWl0aW5nSWZTeW5j
TWVzc2FnZUFycml2ZXMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWFQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggNDllOTg0Mi4uZDU4NDJlNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5LmgKQEAgLTUyLDYgKzUyLDggQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgYWRqdXN0VHJhbnNpZW50Wm9vbShkb3VibGUgc2NhbGUsIFdlYkNvcmU6OkZs
b2F0UG9pbnQgb3JpZ2luKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0VHJhbnNp
ZW50Wm9vbShkb3VibGUgc2NhbGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQgb3JpZ2luKSBvdmVycmlk
ZTsKIAorICAgIHZpcnR1YWwgdm9pZCB3YWl0Rm9yRGlkVXBkYXRlVmlld1N0YXRlKCkgb3ZlcnJp
ZGU7CisKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZpcnR1YWwgdm9pZCBkaWRVcGRh
dGVHZW9tZXRyeSgpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBpbnRyaW5zaWNDb250ZW50
U2l6ZURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBuZXdJbnRyaW5zaWNDb250ZW50
U2l6ZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0KaW5kZXgg
YWUwNmNkMy4uMDgxZGZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQpA
QCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQ
cm9jZXNzUHJveHkuaCIKIAordXNpbmcgbmFtZXNwYWNlIElQQzsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEyNiw2ICsxMjcsMTIgQEAgdm9pZCBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpkaWRVcGRhdGVHZW9tZXRyeSgpCiAg
ICAgICAgIHNlbmRVcGRhdGVHZW9tZXRyeSgpOwogfQogCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhUHJveHk6OndhaXRGb3JEaWRVcGRhdGVWaWV3U3RhdGUoKQoreworICAgIGF1
dG8gdmlld1N0YXRlVXBkYXRlVGltZW91dCA9IHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHMoMjUw
KTsKKyAgICBtX3dlYlBhZ2VQcm94eS0+cHJvY2VzcygpLmNvbm5lY3Rpb24oKS0+d2FpdEZvckFu
ZERpc3BhdGNoSW1tZWRpYXRlbHk8TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkVXBkYXRlVmll
d1N0YXRlPihtX3dlYlBhZ2VQcm94eS0+cGFnZUlEKCksIHZpZXdTdGF0ZVVwZGF0ZVRpbWVvdXQs
IEludGVycnVwdFdhaXRpbmdJZlN5bmNNZXNzYWdlQXJyaXZlcyk7Cit9CisKIHZvaWQgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6aW50cmluc2ljQ29udGVudFNpemVEaWRDaGFu
Z2UoY29uc3QgSW50U2l6ZSYgbmV3SW50cmluc2ljQ29udGVudFNpemUpCiB7CiAgICAgaWYgKG1f
d2ViUGFnZVByb3h5LT5taW5pbXVtTGF5b3V0U2l6ZSgpLndpZHRoKCkgPiAwKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAppbmRleCBmNmIwZDI1
Li4wZmU5OTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEuaApAQCAtMTE0LDcgKzExNCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9p
ZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdVcGRhdGVkU2Nyb2xsUG9zaXRpb24oc3RkOjpmdW5jdGlv
bjx2b2lkICgpPik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNv
cmU6OlZpZXdTdGF0ZTo6RmxhZ3MpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB2aWV3U3RhdGVEaWRD
aGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpGbGFncywgYm9vbCB3YW50c0RpZFVwZGF0ZVZpZXdT
dGF0ZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0
aW5nTW9kZSkgeyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgbWFya0xheWVyc1ZvbGF0aWxlSW1tZWRp
YXRlbHlJZlBvc3NpYmxlKCkgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDJiYjFiZTUuLjM3ZGFkYWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTI2Niw3
ICsyNjYsNiBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICAsIG1fYWNjZXNzaWJpbGl0eU9i
amVjdCgwKQogI2VuZGlmCiAgICAgLCBtX3NldENhblN0YXJ0TWVkaWFUaW1lcihSdW5Mb29wOjpt
YWluKCksIHRoaXMsICZXZWJQYWdlOjpzZXRDYW5TdGFydE1lZGlhVGltZXJGaXJlZCkKLSAgICAs
IG1fc2VuZERpZFVwZGF0ZVZpZXdTdGF0ZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJldl
YlBhZ2U6OmRpZFVwZGF0ZVZpZXdTdGF0ZVRpbWVyRmlyZWQpCiAgICAgLCBtX2Zvcm1DbGllbnQo
c3RkOjptYWtlX3VuaXF1ZTxBUEk6OkluamVjdGVkQnVuZGxlOjpGb3JtQ2xpZW50PigpKQogICAg
ICwgbV91aUNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPEFQSTo6SW5qZWN0ZWRCdW5kbGU6OlBhZ2VV
SUNsaWVudD4oKSkKICAgICAsIG1fZmluZENvbnRyb2xsZXIodGhpcykKQEAgLTIxNzQsMTMgKzIx
NzMsNiBAQCB2b2lkIFdlYlBhZ2U6OnNldENhblN0YXJ0TWVkaWFUaW1lckZpcmVkKCkKICAgICAg
ICAgbV9wYWdlLT5zZXRDYW5TdGFydE1lZGlhKHRydWUpOwogfQogCi0jaWYgIVBMQVRGT1JNKE1B
QykKLXZvaWQgV2ViUGFnZTo6ZGlkVXBkYXRlVmlld1N0YXRlVGltZXJGaXJlZCgpCi17Ci0gICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRVcGRhdGVWaWV3U3RhdGUoKSk7Ci19Ci0j
ZW5kaWYKLQogaW5saW5lIGJvb2wgV2ViUGFnZTo6Y2FuSGFuZGxlVXNlckV2ZW50cygpIGNvbnN0
CiB7CiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCkBAIC0yMjIwLDE2ICsyMjEyLDE0IEBA
IHZvaWQgV2ViUGFnZTo6c2V0Vmlld1N0YXRlKFZpZXdTdGF0ZTo6RmxhZ3Mgdmlld1N0YXRlLCBi
b29sIHdhbnRzRGlkVXBkYXRlVmlld1N0CiAgICAgVmlld1N0YXRlOjpGbGFncyBjaGFuZ2VkID0g
bV92aWV3U3RhdGUgXiB2aWV3U3RhdGU7CiAgICAgbV92aWV3U3RhdGUgPSB2aWV3U3RhdGU7CiAK
LSAgICBtX2RyYXdpbmdBcmVhLT52aWV3U3RhdGVEaWRDaGFuZ2UoY2hhbmdlZCk7CiAgICAgbV9w
YWdlLT5zZXRWaWV3U3RhdGUodmlld1N0YXRlKTsKICAgICBmb3IgKGF1dG8qIHBsdWdpblZpZXcg
OiBtX3BsdWdpblZpZXdzKQogICAgICAgICBwbHVnaW5WaWV3LT52aWV3U3RhdGVEaWRDaGFuZ2Uo
Y2hhbmdlZCk7CiAKKyAgICBtX2RyYXdpbmdBcmVhLT52aWV3U3RhdGVEaWRDaGFuZ2UoY2hhbmdl
ZCwgd2FudHNEaWRVcGRhdGVWaWV3U3RhdGUpOworCiAgICAgaWYgKGNoYW5nZWQgJiBWaWV3U3Rh
dGU6OklzSW5XaW5kb3cpCiAgICAgICAgIHVwZGF0ZUlzSW5XaW5kb3coKTsKLQotICAgIGlmICh3
YW50c0RpZFVwZGF0ZVZpZXdTdGF0ZSkKLSAgICAgICAgbV9zZW5kRGlkVXBkYXRlVmlld1N0YXRl
VGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNldExheWVySG9zdGlu
Z01vZGUodW5zaWduZWQgbGF5ZXJIb3N0aW5nTW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGIwZTgzYjcuLmRkNjRmMWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTAyNCw3ICsxMDI0LDYg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY2hhbmdlU2VsZWN0ZWRJbmRleChpbnQzMl90IGluZGV4
KTsKICAgICB2b2lkIHNldENhblN0YXJ0TWVkaWFUaW1lckZpcmVkKCk7Ci0gICAgdm9pZCBkaWRV
cGRhdGVWaWV3U3RhdGVUaW1lckZpcmVkKCk7CiAKICAgICBib29sIGNhbkhhbmRsZVVzZXJFdmVu
dHMoKSBjb25zdDsKIApAQCAtMTEyOCw3ICsxMTI3LDYgQEAgcHJpdmF0ZToKICNlbmRpZiAvLyAh
UExBVEZPUk0oSU9TKQogCiAgICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9zZXRDYW5TdGFy
dE1lZGlhVGltZXI7Ci0gICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZT4gbV9zZW5kRGlkVXBkYXRl
Vmlld1N0YXRlVGltZXI7CiAgICAgYm9vbCBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7CiAK
ICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8V2ViVW5kb1N0ZXA+PiBtX3VuZG9TdGVwTWFw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oCmluZGV4IGEyMDU5Y2EuLmU5Y2Nk
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgKQEAgLTk1LDYgKzk1LDgg
QEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBtYWluRnJhbWVDb250ZW50U2l6ZUNoYW5n
ZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOwogCisgICAgdmlydHVhbCB2b2lk
IHZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIGNoYW5nZWQsIGJv
b2wgd2FudHNEaWRVcGRhdGVWaWV3U3RhdGUpIG92ZXJyaWRlOworCiAgICAgLy8gR3JhcGhpY3NM
YXllckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgb3ZlcnJpZGUgeyB9CiAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIG92ZXJyaWRlIHsgfQpAQCAtMTEzLDE4ICsxMTUsMjEgQEAgcHJpdmF0ZToKIAogICAg
IGNsYXNzIEJhY2tpbmdTdG9yZUZsdXNoZXIgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8
QmFja2luZ1N0b3JlRmx1c2hlcj4gewogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8QmFja2luZ1N0b3JlRmx1c2hlcj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbiosIHN0ZDo6
dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiwgVmVjdG9yPFJldGFpblB0cjxDR0NvbnRl
eHRSZWY+Pik7CisgICAgICAgIHN0cnVjdCBGbHVzaGluZ0NvbnRleHQgeworICAgICAgICAgICAg
UmVmUHRyPElQQzo6Q29ubmVjdGlvbj4gY29ubmVjdGlvbjsKKyAgICAgICAgICAgIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBjb21taXRFbmNvZGVyOworICAgICAgICAgICAg
VmVjdG9yPFJldGFpblB0cjxDR0NvbnRleHRSZWY+PiBjb250ZXh0c1RvRmx1c2g7CisgICAgICAg
IH07CisKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8QmFja2luZ1N0b3JlRmx1c2hlcj4gY3Jl
YXRlKEZsdXNoaW5nQ29udGV4dCk7CiAKICAgICAgICAgdm9pZCBmbHVzaCgpOwogICAgICAgICBi
b29sIGhhc0ZsdXNoZWQoKSBjb25zdCB7IHJldHVybiBtX2hhc0ZsdXNoZWQ7IH0KIAogICAgIHBy
aXZhdGU6Ci0gICAgICAgIEJhY2tpbmdTdG9yZUZsdXNoZXIoSVBDOjpDb25uZWN0aW9uKiwgc3Rk
Ojp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+LCBWZWN0b3I8UmV0YWluUHRyPENHQ29u
dGV4dFJlZj4+KTsKLQotICAgICAgICBSZWZQdHI8SVBDOjpDb25uZWN0aW9uPiBtX2Nvbm5lY3Rp
b247Ci0gICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxJUEM6Ok1lc3NhZ2VFbmNvZGVyPiBtX2NvbW1p
dEVuY29kZXI7Ci0gICAgICAgIFZlY3RvcjxSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPj4gbV9jb250
ZXh0c1RvRmx1c2g7CisgICAgICAgIEJhY2tpbmdTdG9yZUZsdXNoZXIoRmx1c2hpbmdDb250ZXh0
KTsKIAorICAgICAgICBGbHVzaGluZ0NvbnRleHQgbV9jb250ZXh0OwogICAgICAgICBzdGQ6OmF0
b21pYzxib29sPiBtX2hhc0ZsdXNoZWQ7CiAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5t
bSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWEubW0KaW5kZXggY2I4Nzc1ZS4uYWJjYTUxMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhLm1tCkBAIC0zMTcsNyArMzE3LDEyIEBAIHZvaWQgUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKCkKICAgICBpZiAoaGFkQW55Q2hhbmdlZEJh
Y2tpbmdTdG9yZSkKICAgICAgICAgYmFja2luZ1N0b3JlQ29sbGVjdGlvbi5zY2hlZHVsZVZvbGF0
aWxpdHlUaW1lcigpOwogCi0gICAgUmVmUHRyPEJhY2tpbmdTdG9yZUZsdXNoZXI+IGJhY2tpbmdT
dG9yZUZsdXNoZXIgPSBCYWNraW5nU3RvcmVGbHVzaGVyOjpjcmVhdGUoV2ViUHJvY2Vzczo6c2hh
cmVkKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSwgc3RkOjptb3ZlKGNvbW1pdEVuY29kZXIp
LCBzdGQ6Om1vdmUoY29udGV4dHNUb0ZsdXNoKSk7CisgICAgQmFja2luZ1N0b3JlRmx1c2hlcjo6
Rmx1c2hpbmdDb250ZXh0IGZsdXNoaW5nQ29udGV4dDsKKyAgICBmbHVzaGluZ0NvbnRleHQuY29u
bmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCk7
CisgICAgZmx1c2hpbmdDb250ZXh0LmNvbW1pdEVuY29kZXIgPSBzdGQ6Om1vdmUoY29tbWl0RW5j
b2Rlcik7CisgICAgZmx1c2hpbmdDb250ZXh0LmNvbnRleHRzVG9GbHVzaCA9IHN0ZDo6bW92ZShj
b250ZXh0c1RvRmx1c2gpOworCisgICAgUmVmUHRyPEJhY2tpbmdTdG9yZUZsdXNoZXI+IGJhY2tp
bmdTdG9yZUZsdXNoZXIgPSBCYWNraW5nU3RvcmVGbHVzaGVyOjpjcmVhdGUoc3RkOjptb3ZlKGZs
dXNoaW5nQ29udGV4dCkpOwogICAgIG1fcGVuZGluZ0JhY2tpbmdTdG9yZUZsdXNoZXIgPSBiYWNr
aW5nU3RvcmVGbHVzaGVyOwogCiAgICAgZGlzcGF0Y2hfYXN5bmMobV9jb21taXRRdWV1ZSwgW2Jh
Y2tpbmdTdG9yZUZsdXNoZXJdewpAQCAtMzYwLDE1ICszNjUsMTMgQEAgYm9vbCBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYTo6bWFya0xheWVyc1ZvbGF0aWxlSW1tZWRpYXRlbHlJZlBvc3NpYmxl
KCkKICAgICByZXR1cm4gbV9yZW1vdGVMYXllclRyZWVDb250ZXh0LT5iYWNraW5nU3RvcmVDb2xs
ZWN0aW9uKCkubWFya0FsbEJhY2tpbmdTdG9yZVZvbGF0aWxlSW1tZWRpYXRlbHlJZlBvc3NpYmxl
KCk7CiB9CiAKLVBhc3NSZWZQdHI8UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OkJhY2tpbmdT
dG9yZUZsdXNoZXI+IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpCYWNraW5nU3RvcmVGbHVz
aGVyOjpjcmVhdGUoSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBzdGQ6OnVuaXF1ZV9wdHI8
SVBDOjpNZXNzYWdlRW5jb2Rlcj4gZW5jb2RlciwgVmVjdG9yPFJldGFpblB0cjxDR0NvbnRleHRS
ZWY+PiBjb250ZXh0c1RvRmx1c2gpCitQYXNzUmVmUHRyPFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhOjpCYWNraW5nU3RvcmVGbHVzaGVyPiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6QmFj
a2luZ1N0b3JlRmx1c2hlcjo6Y3JlYXRlKEJhY2tpbmdTdG9yZUZsdXNoZXI6OkZsdXNoaW5nQ29u
dGV4dCBjb250ZXh0KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWE6OkJhY2tpbmdTdG9yZUZsdXNoZXIoY29ubmVjdGlvbiwgc3RkOjptb3ZlKGVu
Y29kZXIpLCBzdGQ6Om1vdmUoY29udGV4dHNUb0ZsdXNoKSkpOworICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OkJhY2tpbmdTdG9yZUZsdXNoZXIoc3Rk
Ojptb3ZlKGNvbnRleHQpKSk7CiB9CiAKLVJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpCYWNr
aW5nU3RvcmVGbHVzaGVyOjpCYWNraW5nU3RvcmVGbHVzaGVyKElQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6TWVzc2FnZUVuY29kZXI+IGVuY29kZXIsIFZl
Y3RvcjxSZXRhaW5QdHI8Q0dDb250ZXh0UmVmPj4gY29udGV4dHNUb0ZsdXNoKQotICAgIDogbV9j
b25uZWN0aW9uKGNvbm5lY3Rpb24pCi0gICAgLCBtX2NvbW1pdEVuY29kZXIoc3RkOjptb3ZlKGVu
Y29kZXIpKQotICAgICwgbV9jb250ZXh0c1RvRmx1c2goc3RkOjptb3ZlKGNvbnRleHRzVG9GbHVz
aCkpCitSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6QmFja2luZ1N0b3JlRmx1c2hlcjo6QmFj
a2luZ1N0b3JlRmx1c2hlcihGbHVzaGluZ0NvbnRleHQgY29udGV4dCkKKyAgICA6IG1fY29udGV4
dChzdGQ6Om1vdmUoY29udGV4dCkpCiAgICAgLCBtX2hhc0ZsdXNoZWQoZmFsc2UpCiB7CiB9CkBA
IC0zNzcsMTEgKzM4MCwxNiBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpCYWNr
aW5nU3RvcmVGbHVzaGVyOjpmbHVzaCgpCiB7CiAgICAgQVNTRVJUKCFtX2hhc0ZsdXNoZWQpOwog
Ci0gICAgZm9yIChhdXRvJiBjb250ZXh0IDogbV9jb250ZXh0c1RvRmx1c2gpCisgICAgZm9yIChh
dXRvJiBjb250ZXh0IDogbV9jb250ZXh0LmNvbnRleHRzVG9GbHVzaCkKICAgICAgICAgQ0dDb250
ZXh0Rmx1c2goY29udGV4dC5nZXQoKSk7CiAgICAgbV9oYXNGbHVzaGVkID0gdHJ1ZTsKIAotICAg
IG1fY29ubmVjdGlvbi0+c2VuZE1lc3NhZ2Uoc3RkOjptb3ZlKG1fY29tbWl0RW5jb2RlcikpOwor
ICAgIG1fY29udGV4dC5jb25uZWN0aW9uLT5zZW5kTWVzc2FnZShzdGQ6Om1vdmUobV9jb250ZXh0
LmNvbW1pdEVuY29kZXIpKTsKK30KKwordm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6
dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MsIGJvb2wgd2FudHNEaWRVcGRhdGVW
aWV3U3RhdGUpCit7CisgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBzdXNwZW5kIHBhaW50aW5nIHdo
aWxlIG5vdCB2aXNpYmxlLCBsaWtlIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhPyBQcm9i
YWJseS4KIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLmgKaW5kZXggOGMxY2ZkOC4uZGIwMmY0YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvVHJhbnNmb3JtYXRpb25NYXRyaXguaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
CiBPQkpDX0NMQVNTIENBTGF5ZXI7CiAKQEAgLTU0LDggKzU1LDYgQEAgcHVibGljOgogICAgIFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhKFdlYlBhZ2UmLCBjb25zdCBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzJik7CiAgICAgdmlydHVhbCB+VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWEoKTsKIAotICAgIHZpcnR1YWwgdm9pZCB2aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmll
d1N0YXRlOjpGbGFncyBjaGFuZ2VkKSBvdmVycmlkZTsKLQogcHJpdmF0ZToKICAgICAvLyBEcmF3
aW5nQXJlYQogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBvdmVycmlkZTsKQEAg
LTgxLDYgKzgwLDkgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VUaWxl
ZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3Kikgb3ZlcnJpZGU7
CiAKKyAgICB2aXJ0dWFsIHZvaWQgdmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0
ZTo6RmxhZ3MgY2hhbmdlZCwgYm9vbCB3YW50c0RpZFVwZGF0ZVZpZXdTdGF0ZSkgb3ZlcnJpZGU7
CisgICAgdm9pZCBkaWRVcGRhdGVWaWV3U3RhdGVUaW1lckZpcmVkKCk7CisKICAgICAvLyBXZWJD
b3JlOjpMYXllckZsdXNoU2NoZWR1bGVyQ2xpZW50CiAgICAgdmlydHVhbCBib29sIGZsdXNoTGF5
ZXJzKCkgb3ZlcnJpZGU7CiAKQEAgLTEzNiw2ICsxMzgsOCBAQCBwcml2YXRlOgogICAgIFdlYkNv
cmU6OkZsb2F0UG9pbnQgbV90cmFuc2llbnRab29tT3JpZ2luOwogCiAgICAgV2ViQ29yZTo6VHJh
bnNmb3JtYXRpb25NYXRyaXggbV90cmFuc2Zvcm07CisKKyAgICBSdW5Mb29wOjpUaW1lcjxUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYT4gbV9zZW5kRGlkVXBkYXRlVmlld1N0YXRlVGltZXI7
CiB9OwogCiBEUkFXSU5HX0FSRUFfVFlQRV9DQVNUUyhUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYSwgdHlwZSgpID09IERyYXdpbmdBcmVhVHlwZVRpbGVkQ29yZUFuaW1hdGlvbik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQppbmRleCAwYmM2MGE3Li5lMzA1
NjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Rp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTc1
LDYgKzc1LDcgQEAgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OlRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhKFdlYlBhZ2UmIHdlYlBhZ2UsIGMKICAgICAsIG1fZXhwb3NlZFJlY3Qo
RmxvYXRSZWN0OjppbmZpbml0ZVJlY3QoKSkKICAgICAsIG1fc2Nyb2xsZWRFeHBvc2VkUmVjdChG
bG9hdFJlY3Q6OmluZmluaXRlUmVjdCgpKQogICAgICwgbV90cmFuc2llbnRab29tU2NhbGUoMSkK
KyAgICAsIG1fc2VuZERpZFVwZGF0ZVZpZXdTdGF0ZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhp
cywgJlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpkaWRVcGRhdGVWaWV3U3RhdGVUaW1l
ckZpcmVkKQogewogICAgIG1fd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnNldEZvcmNl
Q29tcG9zaXRpbmdNb2RlKHRydWUpOwogCkBAIC0yOTQsNyArMjk1LDcgQEAgYm9vbCBUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMoKQogICAgIHJldHVybiByZXR1cm5W
YWx1ZTsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dmlld1N0YXRl
RGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCkKK3ZvaWQgVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWE6OnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OkZsYWdzIGNoYW5n
ZWQsIGJvb2wgd2FudHNEaWRVcGRhdGVWaWV3U3RhdGUpCiB7CiAgICAgaWYgKGNoYW5nZWQgJiBW
aWV3U3RhdGU6OklzVmlzaWJsZSkgewogICAgICAgICBpZiAobV93ZWJQYWdlLmlzVmlzaWJsZSgp
KQpAQCAtMzAyLDYgKzMwMywxNSBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
Ojp2aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpGbGFncyBjaGFuZ2VkKQogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBzdXNwZW5kUGFpbnRpbmcoKTsKICAgICB9CisKKyAgICBpZiAod2Fu
dHNEaWRVcGRhdGVWaWV3U3RhdGUpCisgICAgICAgIG1fc2VuZERpZFVwZGF0ZVZpZXdTdGF0ZVRp
bWVyLnN0YXJ0T25lU2hvdCgwKTsKK30KKwordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYTo6ZGlkVXBkYXRlVmlld1N0YXRlVGltZXJGaXJlZCgpCit7CisgICAgW0NBVHJhbnNhY3Rp
b24gZmx1c2hdOworICAgIG1fd2ViUGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRp
ZFVwZGF0ZVZpZXdTdGF0ZSgpKTsKIH0KIAogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYTo6c3VzcGVuZFBhaW50aW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbQppbmRleCBkOGNjNTlhLi4wMTcyMDM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFj
Lm1tCkBAIC05ODksMTIgKzk4OSw2IEBAIHZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREZGcm9t
UERGRG9jdW1lbnQoQ0dDb250ZXh0UmVmIGNvbnRleHQsIFBERkRvY3VtZW50ICpwCiAgICAgfQog
fQogCi12b2lkIFdlYlBhZ2U6OmRpZFVwZGF0ZVZpZXdTdGF0ZVRpbWVyRmlyZWQoKQotewotICAg
IFtDQVRyYW5zYWN0aW9uIGZsdXNoXTsKLSAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZFVwZGF0ZVZpZXdTdGF0ZSgpKTsKLX0KLQogI2lmIEVOQUJMRShXRUJHTCkKIFdlYkNvcmU6
OldlYkdMTG9hZFBvbGljeSBXZWJQYWdlOjp3ZWJHTFBvbGljeUZvclVSTChXZWJGcmFtZSogZnJh
bWUsIGNvbnN0IFN0cmluZyYgdXJsKQogewo=
</data>
<flag name="review"
          id="258082"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>