<?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>149968</bug_id>
          
          <creation_ts>2015-10-09 14:15:11 -0700</creation_ts>
          <short_desc>Web pages with unscalable viewports shouldn&apos;t have a single tap delay</short_desc>
          <delta_ts>2016-03-30 13:37:11 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=153180</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>122212</blocked>
    
    <blocked>150382</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>18runt88</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>daes234</cc>
    
    <cc>jonlee</cc>
    
    <cc>rbyers</cc>
    
    <cc>redux</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1132009</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-10-09 14:15:11 -0700</bug_when>
    <thetext>When a page has an unscalable viewport (for instance, user-scalable = no or minimum-scale = 1, maximum-scale = 1) we should not have to wait 350 ms for the double tap gesture recognizer to fire.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132022</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-10-09 15:15:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/23054453&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132115</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-10-10 01:02:29 -0700</bug_when>
    <thetext>Can we just get rid of unscalable web pages instead? These are the worst.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132167</commentid>
    <comment_count>3</comment_count>
      <attachid>262834</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-10-10 15:33:09 -0700</bug_when>
    <thetext>Created attachment 262834
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132238</commentid>
    <comment_count>4</comment_count>
      <attachid>262864</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-10-11 09:59:24 -0700</bug_when>
    <thetext>Created attachment 262864
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1132561</commentid>
    <comment_count>5</comment_count>
      <attachid>262864</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-10-12 16:22:05 -0700</bug_when>
    <thetext>Comment on attachment 262864
Patch

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

&gt; Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:2266
&gt; +- (void)_setDoubleTapGesturesEnabled:(BOOL)enabled
&gt; +{
&gt; +    if (enabled &amp;&amp; ![_doubleTapGestureRecognizer isEnabled]) {
&gt; +        // The first tap recognized after re-enabling double tap gestures will not wait for the
&gt; +        // second tap before committing. To fix this, we use a new double tap gesture recognizer.
&gt; +        [self removeGestureRecognizer:_doubleTapGestureRecognizer.get()];
&gt; +        [_doubleTapGestureRecognizer setDelegate:nil];
&gt; +        [self _createAndConfigureDoubleTapGestureRecognizer];
&gt; +    }
&gt; +    [_doubleTapGestureRecognizer setEnabled:enabled];
&gt; +}

Why can&apos;t we do this when we adjust the UIScrollView zoom scales? We know if it&apos;s zoomable there.

&gt; Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm:252
&gt; +    bool viewportIsUserScalable = userCanScaleViewport(m_viewportConfiguration);
&gt; +    if (viewportWasUserScalable != viewportIsUserScalable)
&gt; +        send(Messages::WebPageProxy::ViewportUserScalableDidChange(viewportIsUserScalable));

This should not be a new message (if it&apos;s needed at all); it should be in the transaction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133035</commentid>
    <comment_count>6</comment_count>
      <attachid>263057</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-10-13 21:54:57 -0700</bug_when>
    <thetext>Created attachment 263057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133264</commentid>
    <comment_count>7</comment_count>
      <attachid>263057</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-14 14:21:26 -0700</bug_when>
    <thetext>Comment on attachment 263057
Patch

Clearing flags on attachment: 263057

Committed r191072: &lt;http://trac.webkit.org/changeset/191072&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133265</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-14 14:21:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133305</commentid>
    <comment_count>9</comment_count>
    <who name="Patrick H. Lauke">redux</who>
    <bug_when>2015-10-14 16:32:32 -0700</bug_when>
    <thetext>Great stuff and fast work there. Interesting to note that my proposal to tackle this has been sitting in limbo for 2 years https://bugs.webkit.org/show_bug.cgi?id=122212</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262834</attachid>
            <date>2015-10-10 15:33:09 -0700</date>
            <delta_ts>2015-10-11 09:59:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149968-20151010153234.patch</filename>
            <type>text/plain</type>
            <size>16230</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzM5MzczZWRjNTlmMjUy
YWRkODMzMzllNGE1ZTA3OWMzMmI4ODNiZC4uOWViYmFkOTU0YmU4NTE1MmNkZDg1YTUyOWQzYzgx
MzY3ZWZlMWY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE1LTEwLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBwYWdlcyB3
aXRoIHVuc2NhbGFibGUgdmlld3BvcnRzIHNob3VsZG4ndCBoYXZlIGEgc2luZ2xlIHRhcCBkZWxh
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5OTY4
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMzA1NDQ1Mz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGEgdmlld3BvcnQgaXMgdW5zY2FsYWJs
ZSAoc3BlY2lmaWVkIHRocm91Z2ggdGhlIG1ldGEgdmlld3BvcnQgdGFnKSB3ZQorICAgICAgICBk
byBub3QgYWRkIGEgZGVsYXkgdG8gb3VyIHNpbmdsZSB0YXAgZ2VzdHVyZSByZWNvZ25pemVyLiBX
ZSBkbyB0aGlzIGJ5CisgICAgICAgIGRpc2FibGluZyBvciByZWluaXRpYWxpemluZyB0aGUgV0tD
b250ZW50VmlldydzIGRvdWJsZSB0YXAgZ2VzdHVyZSByZWNvZ25pemVyCisgICAgICAgIHdoZW4g
dGhlIHZpZXdwb3J0IGJlY29tZXMgdW5zY2FsYWJsZSBvciBzY2FsYWJsZSwgcmVzcGVjdGl2ZWx5
LiBBIHZpZXdwb3J0IGlzCisgICAgICAgIGRlZW1lZCB1bnNjYWxhYmxlIHdoZW4gaXQgaGFzIHVz
ZXItc2NhbGFibGUgPSBubywgb3Igd2hlbiB0aGUgbWluaW11bSBhbmQKKyAgICAgICAgbWF4aW11
bSBzY2FsZXMgYXJlIGVxdWFsLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfZGlkQ2hhbmdlVmlld3BvcnRVc2VyU2Nh
bGFibGU6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5h
bC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VWaWV3cG9ydFVzZXJTY2FsYWJsZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBfY3JlYXRlQW5kQ29uZmlndXJlRG91YmxlVGFwR2VzdHVyZVJlY29n
bml6ZXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBzZXR1cEludGVyYWN0aW9uXSk6Cisg
ICAgICAgICgtW1dLQ29udGVudFZpZXcgX3NldERvdWJsZVRhcEdlc3R1cmVzRW5hYmxlZDpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojp2aWV3cG9ydFVzZXJTY2FsYWJsZURpZENoYW5nZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2Vi
S2l0Ojp1c2VyQ2FuU2NhbGVWaWV3cG9ydCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnZp
ZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZSk6CisKIDIwMTUtMTAtMDggIE1pY2hhZWwgQ2F0YW56
YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEZvcm1hdCBzdHJpbmcgaXNz
dWVzIGluIE5ldHdvcmtDYWNoZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggYzJmYjhjMDZkMjEwMWEyMmQ0Y2Q0ZDhhZjEzODNm
OTU5ZmE4ZGYxNy4uMGViNTgzOTk1MTMwYTlkZWU1MGMwOTdlMDBiMmNlNzdkMmM1N2FhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAg
LTgxMiw2ICs4MTIsMTEgQEAgLSAodm9pZClfc2V0Vmlld3BvcnRNZXRhVGFnV2lkdGg6KGZsb2F0
KW5ld1dpZHRoCiAgICAgX3ZpZXdwb3J0TWV0YVRhZ1dpZHRoID0gbmV3V2lkdGg7CiB9CiAKKy0g
KHZvaWQpX2RpZENoYW5nZVZpZXdwb3J0VXNlclNjYWxhYmxlOihCT09MKXVzZXJTY2FsYWJsZQor
eworICAgIFtfY29udGVudFZpZXcgX3NldERvdWJsZVRhcEdlc3R1cmVzRW5hYmxlZDp1c2VyU2Nh
bGFibGVdOworfQorCiAtICh2b2lkKV93aWxsSW52b2tlVUlTY3JvbGxWaWV3RGVsZWdhdGVDYWxs
YmFjawogewogICAgIF9kZWxheVVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMgPSBZRVM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVy
bmFsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVy
bmFsLmgKaW5kZXggZDJkZWYyM2ZkNTIwOWQ0OTk0MGFhYjRhZWU4OTU4MDUzZjQyZDQ4Mi4uZTE3
YWYzYTg1ZTU1YjM4ZjhkMWRlYzQ2MWI4N2U2YTQyZjRmOTEyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaApAQCAt
OTEsNiArOTEsNyBAQCBzdHJ1Y3QgUHJpbnRJbmZvOwogLSAodm9pZClfc2V0SGFzQ3VzdG9tQ29u
dGVudFZpZXc6KEJPT0wpaGFzQ3VzdG9tQ29udGVudFZpZXcgbG9hZGVkTUlNRVR5cGU6KGNvbnN0
IFdURjo6U3RyaW5nJiltaW1lVHlwZTsKIC0gKHZvaWQpX2RpZEZpbmlzaExvYWRpbmdEYXRhRm9y
Q3VzdG9tQ29udGVudFByb3ZpZGVyV2l0aFN1Z2dlc3RlZEZpbGVuYW1lOihjb25zdCBXVEY6OlN0
cmluZyYpc3VnZ2VzdGVkRmlsZW5hbWUgZGF0YTooTlNEYXRhICopZGF0YTsKIC0gKHZvaWQpX3Nl
dFZpZXdwb3J0TWV0YVRhZ1dpZHRoOihmbG9hdCluZXdXaWR0aDsKKy0gKHZvaWQpX2RpZENoYW5n
ZVZpZXdwb3J0VXNlclNjYWxhYmxlOihCT09MKXVzZXJTY2FsYWJsZTsKIAogLSAodm9pZClfd2ls
bEludm9rZVVJU2Nyb2xsVmlld0RlbGVnYXRlQ2FsbGJhY2s7CiAtICh2b2lkKV9kaWRJbnZva2VV
SVNjcm9sbFZpZXdEZWxlZ2F0ZUNhbGxiYWNrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmgKaW5kZXggN2VlODFiOTY0MmI1ZGZjYmI5MjI4ZWFkNWI3OTkwMzA1MzNlOTRiNC4uNTQ1
YmU4N2IxOWI1OTc2NGUyZTY1OGZlMTQzNjlhNDAxZDQ1YTQ4YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0yODksNiArMjg5LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoYm9vbCBoYXNWaWRlbywgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgem9vbVRv
UmVjdChXZWJDb3JlOjpGbG9hdFJlY3QsIGRvdWJsZSBtaW5pbXVtU2NhbGUsIGRvdWJsZSBtYXhp
bXVtU2NhbGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRNZXRhVGFn
V2lkdGgoZmxvYXQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRVc2Vy
U2NhbGFibGUoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgZG91YmxlIG1pbmltdW1ab29tU2NhbGUo
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgZG9jdW1lbnRSZWN0
KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvdmVyZmxvd1Njcm9sbFZpZXdXaWxsU3Rh
cnRQYW5HZXN0dXJlKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IDUzYjdmOTNmMjdkOGMwMjlkMWNlMjMzYWEzYWVmMDZjYWYxZmFiOGIuLjBjYzlhZGFh
Yzg4OWM1ZWYwMGEwOGMxYzE5Njc5ZWQ1YWRmZGIyZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKQEAgLTUwNiw2ICs1MDYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBj
b21taXRQb3RlbnRpYWxUYXBGYWlsZWQoKTsKICAgICB2b2lkIGRpZE5vdEhhbmRsZVRhcEFzQ2xp
Y2soY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKICAgICB2b2lkIHZpZXdwb3J0TWV0YVRhZ1dp
ZHRoRGlkQ2hhbmdlKGZsb2F0IHdpZHRoKTsKKyAgICB2b2lkIHZpZXdwb3J0VXNlclNjYWxhYmxl
RGlkQ2hhbmdlKGJvb2wgdXNlclNjYWxhYmxlKTsKICAgICB2b2lkIGRpZEZpbmlzaERyYXdpbmdQ
YWdlc1RvUERGKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogICAgIHZvaWQgY29udGVudFNp
emVDYXRlZ29yeURpZENoYW5nZShjb25zdCBTdHJpbmcmIGNvbnRlbnRTaXplQ2F0ZWdvcnkpOwog
ICAgIHZvaWQgZ2V0TG9va3VwQ29udGV4dEF0UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IDY4ZmQwNTNhZjA2NzVlYTU5NmZhMzllMzE2NzJhM2RlZGNkNGI2NTguLjFiMTY1
NTllMmRiYjBlY2ZhOWJiMzYzN2YzZGRmNGFiMDUyMGNkYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMTg5LDYgKzE4OSw3
IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgQ29tbWl0UG90ZW50aWFsVGFwRmFp
bGVkKCkKICAgICBEaWROb3RIYW5kbGVUYXBBc0NsaWNrKFdlYkNvcmU6OkludFBvaW50IHBvaW50
KQogICAgIFZpZXdwb3J0TWV0YVRhZ1dpZHRoRGlkQ2hhbmdlKGZsb2F0IHdpZHRoKQorICAgIFZp
ZXdwb3J0VXNlclNjYWxhYmxlRGlkQ2hhbmdlKGJvb2wgdXNlclNjYWxhYmxlKQogICAgIERpZEZp
bmlzaERyYXdpbmdQYWdlc1RvUERGKElQQzo6RGF0YVJlZmVyZW5jZSBwZGZEYXRhKQogI2VuZGlm
CiAjaWYgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDVhMWJkZTEyNzcyZTkzOWMyYmM4MzllZTg5M2RmOTg4
NjRiNWMyZjAuLjBmMTNlZjAwN2Q5NTYwNjFhODM5NDIxNzA3MmI5NmZiNmI3ODY4OGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAg
LTEzMiw2ICsxMzIsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29sIGhhbmRsZVJ1bk9w
ZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgV2ViT3BlblBhbmVsUGFyYW1l
dGVycyosIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkqKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRNZXRhVGFnV2lkdGgoZmxvYXQpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFVzZXJTY2FsYWJsZShib29sKSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIGRvdWJsZSBtaW5pbXVtWm9vbVNjYWxlKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgZG9jdW1lbnRSZWN0KCkgY29u
c3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLm1tCmluZGV4IGVkZDRjZTVhZWExZTExNWU2MGU1NzhiZWJjM2Y5MGUwNzYz
OGQ2N2QuLjJkOTBmYzYwN2VkYTc2MzEzNGM4NmRkY2EzZDY0MTgwYzhlMDJkZWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAt
MjU5LDYgKzI1OSwxMSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VWaWV3cG9ydE1l
dGFUYWdXaWR0aChmbG9hdCBuZXdXaWR0aCkKICAgICBbbV93ZWJWaWV3IF9zZXRWaWV3cG9ydE1l
dGFUYWdXaWR0aDpuZXdXaWR0aF07CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENoYW5n
ZVZpZXdwb3J0VXNlclNjYWxhYmxlKGJvb2wgdXNlclNjYWxhYmxlKQoreworICAgIFttX3dlYlZp
ZXcgX2RpZENoYW5nZVZpZXdwb3J0VXNlclNjYWxhYmxlOnVzZXJTY2FsYWJsZV07Cit9CisKIGRv
dWJsZSBQYWdlQ2xpZW50SW1wbDo6bWluaW11bVpvb21TY2FsZSgpIGNvbnN0CiB7CiAgICAgaWYg
KFVJU2Nyb2xsVmlldyAqc2Nyb2xsZXIgPSBbbV93ZWJWaWV3IHNjcm9sbFZpZXddKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLmgKaW5kZXggZDc5ZTExODJhMmE5YTI3YWQxMGY3N2MxMWMyZGM0OWNmNWFkMjYxMS4uNDli
NDE5Y2RmZjk0NjAzYTBmOGI2NmFjOGZmMzM4YThmNzMxZGU1ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBA
IC0yMDMsNiArMjAzLDcgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIC0gKHZvaWQp
X2VuYWJsZUluc3BlY3Rvck5vZGVTZWFyY2g7CiAtICh2b2lkKV9kaXNhYmxlSW5zcGVjdG9yTm9k
ZVNlYXJjaDsKIC0gKHZvaWQpX2JlY29tZUZpcnN0UmVzcG9uZGVyV2l0aFNlbGVjdGlvbk1vdmlu
Z0ZvcndhcmQ6KEJPT0wpc2VsZWN0aW5nRm9yd2FyZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAo
XikoQk9PTCBkaWRCZWNvbWVGaXJzdFJlc3BvbmRlcikpY29tcGxldGlvbkhhbmRsZXI7CistICh2
b2lkKV9zZXREb3VibGVUYXBHZXN0dXJlc0VuYWJsZWQ6KEJPT0wpZW5hYmxlZDsKIEBlbmQKIAog
I2lmIEhBVkUoTElOS19QUkVWSUVXKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCAwM2M0YWEwMTkzYTE2
YTQ4ZmViMWY4N2NiM2I0YTk5YzY5M2M1Y2U4Li5lNTU5OGMyNmIxNGQzMGRkZTA3NzlmZjU5MWQx
NWI4ZTViYzNjYzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMjk5LDYgKzI5OSwxNSBAQCBzdGF0
aWMgVUlXZWJTZWxlY3Rpb25Nb2RlIHRvVUlXZWJTZWxlY3Rpb25Nb2RlKFdLU2VsZWN0aW9uR3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdAogICAgIHJldHVybiBVSVdlYlNlbGVjdGlvbk1vZGVXZWI7CiB9
CiAKKy0gKHZvaWQpX2NyZWF0ZUFuZENvbmZpZ3VyZURvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVy
Cit7CisgICAgX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyID0gYWRvcHROUyhbW1VJVGFwR2Vz
dHVyZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRoVGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3Rv
cihfZG91YmxlVGFwUmVjb2duaXplZDopXSk7CisgICAgW19kb3VibGVUYXBHZXN0dXJlUmVjb2du
aXplciBzZXROdW1iZXJPZlRhcHNSZXF1aXJlZDoyXTsKKyAgICBbX2RvdWJsZVRhcEdlc3R1cmVS
ZWNvZ25pemVyIHNldERlbGVnYXRlOnNlbGZdOworICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25p
emVyOl9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CisgICAgW19zaW5nbGVUYXBH
ZXN0dXJlUmVjb2duaXplciByZXF1aXJlT3RoZXJHZXN0dXJlVG9GYWlsOl9kb3VibGVUYXBHZXN0
dXJlUmVjb2duaXplci5nZXQoKV07Cit9CisKIC0gKHZvaWQpc2V0dXBJbnRlcmFjdGlvbgogewog
ICAgIGlmICghX2ludGVyYWN0aW9uVmlld3NDb250YWluZXJWaWV3KSB7CkBAIC0zMjIsMTEgKzMz
MSw3IEBAIC0gKHZvaWQpc2V0dXBJbnRlcmFjdGlvbgogICAgIFtfc2luZ2xlVGFwR2VzdHVyZVJl
Y29nbml6ZXIgc2V0UmVzZXRUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF9zaW5nbGVUYXBE
aWRSZXNldDopXTsKICAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpfc2luZ2xlVGFwR2Vz
dHVyZVJlY29nbml6ZXIuZ2V0KCldOwogCi0gICAgX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVy
ID0gYWRvcHROUyhbW1VJVGFwR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRoVGFyZ2V0
OnNlbGYgYWN0aW9uOkBzZWxlY3RvcihfZG91YmxlVGFwUmVjb2duaXplZDopXSk7Ci0gICAgW19k
b3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXROdW1iZXJPZlRhcHNSZXF1aXJlZDoyXTsKLSAg
ICBbX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOnNlbGZdOwotICAgIFtz
ZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQo
KV07Ci0gICAgW19zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplciByZXF1aXJlT3RoZXJHZXN0dXJl
VG9GYWlsOl9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CisgICAgW3NlbGYgX2Ny
ZWF0ZUFuZENvbmZpZ3VyZURvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyXTsKIAogICAgIF90d29G
aW5nZXJEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciA9IGFkb3B0TlMoW1tVSVRhcEdlc3R1cmVS
ZWNvZ25pemVyIGFsbG9jXSBpbml0V2l0aFRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0b3IoX3R3
b0ZpbmdlckRvdWJsZVRhcFJlY29nbml6ZWQ6KV0pOwogICAgIFtfdHdvRmluZ2VyRG91YmxlVGFw
R2VzdHVyZVJlY29nbml6ZXIgc2V0TnVtYmVyT2ZUYXBzUmVxdWlyZWQ6Ml07CkBAIC0yMjQ4LDYg
KzIyNTMsMTggQEAgLSAodm9pZClfYmVjb21lRmlyc3RSZXNwb25kZXJXaXRoU2VsZWN0aW9uTW92
aW5nRm9yd2FyZDooQk9PTClzZWxlY3RpbmdGb3J3YXJkIGMKICAgICB9KTsKIH0KIAorLSAodm9p
ZClfc2V0RG91YmxlVGFwR2VzdHVyZXNFbmFibGVkOihCT09MKWVuYWJsZWQKK3sKKyAgICBpZiAo
ZW5hYmxlZCAmJiAhW19kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBpc0VuYWJsZWRdKSB7Cisg
ICAgICAgIC8vIFRoZSBmaXJzdCB0YXAgcmVjb2duaXplZCBhZnRlciByZS1lbmFibGluZyBkb3Vi
bGUgdGFwIGdlc3R1cmVzIHdpbGwgbm90IHdhaXQgZm9yIHRoZQorICAgICAgICAvLyBzZWNvbmQg
dGFwIGJlZm9yZSBjb21taXR0aW5nLiBUbyBmaXggdGhpcywgd2UgdXNlIGEgbmV3IGRvdWJsZSB0
YXAgZ2VzdHVyZSByZWNvZ25pemVyLgorICAgICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2du
aXplcjpfZG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOworICAgICAgICBbX2RvdWJs
ZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOm5pbF07CisgICAgICAgIFtzZWxmIF9j
cmVhdGVBbmRDb25maWd1cmVEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplcl07CisgICAgfQorICAg
IFtfZG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0RW5hYmxlZDplbmFibGVkXTsKK30KKwog
LSAodm9pZClhY2Nlc3NvcnlBdXRvRmlsbAogewogICAgIGlkIDxfV0tGb3JtRGVsZWdhdGU+IGZv
cm1EZWxlZ2F0ZSA9IFtfd2ViVmlldyBfZm9ybURlbGVnYXRlXTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KaW5kZXggMGEzMjlkMDkyODgwYWI3
YmM4ZjI5MzgzZTgwNGIxZjkyOTBhZTY0OS4uOWI0YjdmMTU1ODQ1NDI0YjI2ZjdlN2QwZDA2NGRm
YWU2ZjhlM2Q5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdl
UHJveHlJT1MubW0KQEAgLTkzNyw2ICs5MzcsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZpZXdw
b3J0TWV0YVRhZ1dpZHRoRGlkQ2hhbmdlKGZsb2F0IHdpZHRoKQogICAgIG1fcGFnZUNsaWVudC5k
aWRDaGFuZ2VWaWV3cG9ydE1ldGFUYWdXaWR0aCh3aWR0aCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVBy
b3h5Ojp2aWV3cG9ydFVzZXJTY2FsYWJsZURpZENoYW5nZShib29sIHVzZXJTY2FsYWJsZSkKK3sK
KyAgICBtX3BhZ2VDbGllbnQuZGlkQ2hhbmdlVmlld3BvcnRVc2VyU2NhbGFibGUodXNlclNjYWxh
YmxlKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OmRpZEZpbmlzaERyYXdpbmdQYWdlc1RvUERG
KGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgcGRmRGF0YSkKIHsKICAgICBtX3BhZ2VDbGllbnQu
ZGlkRmluaXNoRHJhd2luZ1BhZ2VzVG9QREYocGRmRGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggYjMwYjU0ZjUy
MzhlMGY2MDNiNjRhYWU2MDM2YzliZDk4Yzc2ZjZmMS4uNjAwN2Y2MDU1ZWJhZWE2ZTdjYTM5NWEx
ODlkYjkyYjAxNjc0YzVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjI4LDExICsyMjgsMTcgQEAgRmxvYXRTaXpl
IFdlYlBhZ2U6OmF2YWlsYWJsZVNjcmVlblNpemUoKSBjb25zdAogICAgIHJldHVybiBtX2F2YWls
YWJsZVNjcmVlblNpemU7CiB9CiAKK2lubGluZSBib29sIHVzZXJDYW5TY2FsZVZpZXdwb3J0KGNv
bnN0IFZpZXdwb3J0Q29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKK3sKKyAgICByZXR1cm4g
Y29uZmlndXJhdGlvbi5hbGxvd3NVc2VyU2NhbGluZygpICYmIGNvbmZpZ3VyYXRpb24ubWluaW11
bVNjYWxlKCkgPCBjb25maWd1cmF0aW9uLm1heGltdW1TY2FsZSgpOworfQorCiB2b2lkIFdlYlBh
Z2U6OnZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYg
dmlld3BvcnRBcmd1bWVudHMpCiB7CiAgICAgaWYgKG1fdmlld3BvcnRDb25maWd1cmF0aW9uLnZp
ZXdwb3J0QXJndW1lbnRzKCkgPT0gdmlld3BvcnRBcmd1bWVudHMpCiAgICAgICAgIHJldHVybjsK
IAorICAgIGJvb2wgdmlld3BvcnRXYXNVc2VyU2NhbGFibGUgPSB1c2VyQ2FuU2NhbGVWaWV3cG9y
dChtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbik7CiAgICAgZmxvYXQgb2xkV2lkdGggPSBtX3ZpZXdw
b3J0Q29uZmlndXJhdGlvbi52aWV3cG9ydEFyZ3VtZW50cygpLndpZHRoOwogCiAgICAgbV92aWV3
cG9ydENvbmZpZ3VyYXRpb24uc2V0Vmlld3BvcnRBcmd1bWVudHModmlld3BvcnRBcmd1bWVudHMp
OwpAQCAtMjQwLDYgKzI0NiwxMCBAQCB2b2lkIFdlYlBhZ2U6OnZpZXdwb3J0UHJvcGVydGllc0Rp
ZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYgdmlld3BvcnRBcmd1bQogCiAgICAgaWYg
KG9sZFdpZHRoICE9IHZpZXdwb3J0QXJndW1lbnRzLndpZHRoKQogICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlZpZXdwb3J0TWV0YVRhZ1dpZHRoRGlkQ2hhbmdlKHZpZXdwb3J0
QXJndW1lbnRzLndpZHRoKSk7CisKKyAgICBib29sIHZpZXdwb3J0SXNVc2VyU2NhbGFibGUgPSB1
c2VyQ2FuU2NhbGVWaWV3cG9ydChtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbik7CisgICAgaWYgKHZp
ZXdwb3J0V2FzVXNlclNjYWxhYmxlICE9IHZpZXdwb3J0SXNVc2VyU2NhbGFibGUpCisgICAgICAg
IHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Vmlld3BvcnRVc2VyU2NhbGFibGVEaWRDaGFu
Z2Uodmlld3BvcnRJc1VzZXJTY2FsYWJsZSkpOwogfQogCiB2b2lkIFdlYlBhZ2U6OmRpZFJlY2Vp
dmVNb2JpbGVEb2NUeXBlKGJvb2wgaXNNb2JpbGVEb2N0eXBlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMwZWUwYWFlYmIz
Njc4NzIxN2RhODc3NTkzNGY2NTQ0YzcwZDU2YzQuLjM3NDRlMWM4ZmQxMDhjOWFjZjI3NDZhMWVj
YTEzMjc2Y2M5NGQ5MmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNS0xMC0xMCAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgcGFnZXMgd2l0
aCB1bnNjYWxhYmxlIHZpZXdwb3J0cyBzaG91bGRuJ3QgaGF2ZSBhIHNpbmdsZSB0YXAgZGVsYXkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0OTk2OAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjMwNTQ0NTM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbGF5b3V0IHRlc3QgdG8gY2hlY2sgdGhh
dCB3aGVuIGEgdmlld3BvcnQgaXMgdW5zY2FsYWJsZSAoc3BlY2lmaWVkIHRocm91Z2gKKyAgICAg
ICAgdGhlIG1ldGEgdmlld3BvcnQgdGFnKSB3ZSBkbyBub3QgYWRkIGEgZGVsYXkgdG8gb3VyIHNp
bmdsZSB0YXAgZ2VzdHVyZSByZWNvZ25pemVyLgorCisgICAgICAgICogZmFzdC9ldmVudHMvaW9z
L3Vuc2NhbGFibGUtdmlld3BvcnQtY2xpY2tzLW9uLWRvdWJsZXRhcC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2lvcy91bnNjYWxhYmxlLXZpZXdwb3J0LWNsaWNr
cy1vbi1kb3VibGV0YXAuaHRtbDogQWRkZWQuCisKIDIwMTUtMTAtMDggIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgQmFja2dyb3VuZHMgYmxlZWQgb3V0
IG9mIG5hdGl2ZWx5IHJlbmRlcmVkIHRleHQgZmllbGRzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9pb3MvdW5zY2FsYWJsZS12aWV3cG9ydC1jbGlja3Mtb24tZG91YmxldGFw
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy91bnNjYWxhYmxlLXZp
ZXdwb3J0LWNsaWNrcy1vbi1kb3VibGV0YXAtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjMDY0
ZjNlMTM1NmZiYzU4YTNhZjE4MzdlMGFlNzMyNmI1Y2MxNDkKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3MvdW5zY2FsYWJsZS12aWV3cG9ydC1jbGlja3Mtb24t
ZG91YmxldGFwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworRG91YmxlIHRhcHBpbmcg
b24gdGhlIGJ1dHRvbiBzaG91bGQgZmlyZSAyIGNsaWNrIGV2ZW50cy4KK0NsaWNrIQorQ2xpY2sh
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy91bnNjYWxhYmxlLXZp
ZXdwb3J0LWNsaWNrcy1vbi1kb3VibGV0YXAuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L2lvcy91bnNjYWxhYmxlLXZpZXdwb3J0LWNsaWNrcy1vbi1kb3VibGV0YXAuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jOTFhNmUyMGFjZDJlNmYxNDQ0YjA1NTc3MzE4ZTdmNDA0NGUzNDI1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Vuc2NhbGFibGUtdmlld3BvcnQt
Y2xpY2tzLW9uLWRvdWJsZXRhcC5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9DVFlQRSBodG1s
PiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0t
PgorCis8aHRtbD4KKzxtZXRhIGlkPSJ2aWV3cG9ydC1kYXRhIiBuYW1lPSJ2aWV3cG9ydCIgY29u
dGVudD0idXNlci1zY2FsYWJsZT1ubywgaW5pdGlhbC1zY2FsZT0xLjAiPgorCis8aGVhZD4KKyAg
ICA8c2NyaXB0IGlkPSJ1aS1zY3JpcHQiIHR5cGU9InRleHQvcGxhaW4iPgorICAgICAgICAoZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZG91YmxlVGFwQXRQb2ludCg1MCwg
NTAsIGZ1bmN0aW9uKCkge30pOworICAgICAgICB9KSgpOworICAgIDwvc2NyaXB0PgorCisgICAg
PHNjcmlwdD4KKyAgICB2YXIgY2xpY2tDb3VudCA9IDA7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBnZXRVSVNjcmlwdCgp
IHsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1aS1zY3JpcHQiKS50
ZXh0OworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmICh0ZXN0
UnVubmVyLnJ1blVJU2NyaXB0KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0
KGdldFVJU2NyaXB0KCksIGZ1bmN0aW9uKHJlc3VsdCkge30pOworICAgICAgICB9CisgICAgfQor
ICAgIGZ1bmN0aW9uIGhhbmRsZUNsaWNrZWQoKSB7CisgICAgICAgIGNsaWNrQ291bnQrKzsKKyAg
ICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgi
Q2xpY2shIikpOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImJyIikpOworICAgICAgICBpZiAoY2xpY2tDb3VudCA9PSAyKQorICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorICAgIDwvc2NyaXB0PgorCisg
ICAgPHN0eWxlPgorICAgIGJvZHkgeworICAgICAgICBtYXJnaW46IDA7CisgICAgfQorCisgICAg
I3RhcmdldCB7CisgICAgICAgIHdpZHRoOiAxMDBweDsKKyAgICAgICAgaGVpZ2h0OiAxMDBweDsK
KyAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHkgb25sb2FkPSJydW5UZXN0KCki
PgorICAgIDxidXR0b24gaWQ9InRhcmdldCIgb25jbGljaz0iaGFuZGxlQ2xpY2tlZCgpIj48L2J1
dHRvbj4KKyAgICA8ZGl2PkRvdWJsZSB0YXBwaW5nIG9uIHRoZSBidXR0b24gc2hvdWxkIGZpcmUg
MiBjbGljayBldmVudHMuPC9kaXY+Cis8L2JvZHk+CisKKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>262864</attachid>
            <date>2015-10-11 09:59:24 -0700</date>
            <delta_ts>2015-10-13 21:54:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149968-20151011095848.patch</filename>
            <type>text/plain</type>
            <size>14591</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzM5MzczZWRjNTlmMjUy
YWRkODMzMzllNGE1ZTA3OWMzMmI4ODNiZC4uZmUyYTdjZDkzZDkzNDFiM2UwZmUwYjY4ZGU3YTEx
MWFlODAyOGFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE1LTEwLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBwYWdlcyB3
aXRoIHVuc2NhbGFibGUgdmlld3BvcnRzIHNob3VsZG4ndCBoYXZlIGEgc2luZ2xlIHRhcCBkZWxh
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5OTY4
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMzA1NDQ1Mz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGEgdmlld3BvcnQgaXMgdW5zY2FsYWJs
ZSAoc3BlY2lmaWVkIHRocm91Z2ggdGhlIG1ldGEgdmlld3BvcnQgdGFnKSB3ZQorICAgICAgICBk
byBub3QgYWRkIGEgZGVsYXkgdG8gb3VyIHNpbmdsZSB0YXAgZ2VzdHVyZSByZWNvZ25pemVyLiBX
ZSBkbyB0aGlzIGJ5CisgICAgICAgIGRpc2FibGluZyBvciByZWluaXRpYWxpemluZyB0aGUgV0tD
b250ZW50VmlldydzIGRvdWJsZSB0YXAgZ2VzdHVyZSByZWNvZ25pemVyCisgICAgICAgIHdoZW4g
dGhlIHZpZXdwb3J0IGJlY29tZXMgdW5zY2FsYWJsZSBvciBzY2FsYWJsZSwgcmVzcGVjdGl2ZWx5
LiBBIHZpZXdwb3J0IGlzCisgICAgICAgIGRlZW1lZCB1bnNjYWxhYmxlIHdoZW4gaXQgaGFzIHVz
ZXItc2NhbGFibGUgPSBubywgb3Igd2hlbiB0aGUgbWluaW11bSBhbmQKKyAgICAgICAgbWF4aW11
bSBzY2FsZXMgYXJlIGVxdWFsLgorCisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZENoYW5nZVZpZXdwb3J0
VXNlclNjYWxhYmxlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9jcmVhdGVBbmRDb25maWd1cmVEb3Vi
bGVUYXBHZXN0dXJlUmVjb2duaXplcl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNldHVw
SW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2V0RG91YmxlVGFwR2Vz
dHVyZXNFbmFibGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnZpZXdwb3J0VXNlclNjYWxhYmxl
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OnVzZXJDYW5TY2FsZVZpZXdwb3J0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZTo6dmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKToKKwogMjAxNS0xMC0w
OCAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAg
Rm9ybWF0IHN0cmluZyBpc3N1ZXMgaW4gTmV0d29ya0NhY2hlLmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggN2VlODFiOTY0MmI1ZGZjYmI5MjI4ZWFkNWI3OTkwMzA1
MzNlOTRiNC4uNTQ1YmU4N2IxOWI1OTc2NGUyZTY1OGZlMTQzNjlhNDAxZDQ1YTQ4YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0yODksNiArMjg5LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoYm9vbCBoYXNWaWRl
bywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgem9vbVRvUmVjdChXZWJDb3JlOjpGbG9hdFJlY3QsIGRvdWJsZSBtaW5pbXVtU2NhbGUs
IGRvdWJsZSBtYXhpbXVtU2NhbGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmll
d3BvcnRNZXRhVGFnV2lkdGgoZmxvYXQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdl
Vmlld3BvcnRVc2VyU2NhbGFibGUoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgZG91YmxlIG1pbmlt
dW1ab29tU2NhbGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qg
ZG9jdW1lbnRSZWN0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvdmVyZmxvd1Njcm9s
bFZpZXdXaWxsU3RhcnRQYW5HZXN0dXJlKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IDUzYjdmOTNmMjdkOGMwMjlkMWNlMjMzYWEzYWVmMDZjYWYxZmFi
OGIuLjBjYzlhZGFhYzg4OWM1ZWYwMGEwOGMxYzE5Njc5ZWQ1YWRmZGIyZDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTUwNiw2ICs1MDYsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjb21taXRQb3RlbnRpYWxUYXBGYWlsZWQoKTsKICAgICB2b2lkIGRpZE5vdEhh
bmRsZVRhcEFzQ2xpY2soY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKTsKICAgICB2b2lkIHZpZXdw
b3J0TWV0YVRhZ1dpZHRoRGlkQ2hhbmdlKGZsb2F0IHdpZHRoKTsKKyAgICB2b2lkIHZpZXdwb3J0
VXNlclNjYWxhYmxlRGlkQ2hhbmdlKGJvb2wgdXNlclNjYWxhYmxlKTsKICAgICB2b2lkIGRpZEZp
bmlzaERyYXdpbmdQYWdlc1RvUERGKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpOwogICAgIHZv
aWQgY29udGVudFNpemVDYXRlZ29yeURpZENoYW5nZShjb25zdCBTdHJpbmcmIGNvbnRlbnRTaXpl
Q2F0ZWdvcnkpOwogICAgIHZvaWQgZ2V0TG9va3VwQ29udGV4dEF0UG9pbnQoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiwgQ2FsbGJhY2tC
YXNlOjpFcnJvcik+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDY4ZmQwNTNhZjA2NzVlYTU5NmZhMzllMzE2NzJhM2RlZGNk
NGI2NTguLjFiMTY1NTllMmRiYjBlY2ZhOWJiMzYzN2YzZGRmNGFiMDUyMGNkYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAt
MTg5LDYgKzE4OSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgQ29tbWl0UG90
ZW50aWFsVGFwRmFpbGVkKCkKICAgICBEaWROb3RIYW5kbGVUYXBBc0NsaWNrKFdlYkNvcmU6Oklu
dFBvaW50IHBvaW50KQogICAgIFZpZXdwb3J0TWV0YVRhZ1dpZHRoRGlkQ2hhbmdlKGZsb2F0IHdp
ZHRoKQorICAgIFZpZXdwb3J0VXNlclNjYWxhYmxlRGlkQ2hhbmdlKGJvb2wgdXNlclNjYWxhYmxl
KQogICAgIERpZEZpbmlzaERyYXdpbmdQYWdlc1RvUERGKElQQzo6RGF0YVJlZmVyZW5jZSBwZGZE
YXRhKQogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDVhMWJkZTEyNzcyZTkzOWMyYmM4
MzllZTg5M2RmOTg4NjRiNWMyZjAuLjBmMTNlZjAwN2Q5NTYwNjFhODM5NDIxNzA3MmI5NmZiNmI3
ODY4OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLmgKQEAgLTEzMiw2ICsxMzIsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBib29s
IGhhbmRsZVJ1bk9wZW5QYW5lbChXZWJQYWdlUHJveHkqLCBXZWJGcmFtZVByb3h5KiwgV2ViT3Bl
blBhbmVsUGFyYW1ldGVycyosIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkqKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRNZXRhVGFnV2lkdGgoZmxv
YXQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFVzZXJTY2Fs
YWJsZShib29sKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGRvdWJsZSBtaW5pbXVtWm9vbVNjYWxl
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgZG9jdW1l
bnRSZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGVkZDRjZTVhZWExZTExNWU2MGU1Nzhi
ZWJjM2Y5MGUwNzYzOGQ2N2QuLmM3ZWE1M2E4NWJmODgzZTQyOTcxNjcyYjQ2YWY5NzM3ZTFiYjRl
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQpAQCAtMjU5LDYgKzI1OSwxMSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFu
Z2VWaWV3cG9ydE1ldGFUYWdXaWR0aChmbG9hdCBuZXdXaWR0aCkKICAgICBbbV93ZWJWaWV3IF9z
ZXRWaWV3cG9ydE1ldGFUYWdXaWR0aDpuZXdXaWR0aF07CiB9CiAKK3ZvaWQgUGFnZUNsaWVudElt
cGw6OmRpZENoYW5nZVZpZXdwb3J0VXNlclNjYWxhYmxlKGJvb2wgdXNlclNjYWxhYmxlKQorewor
ICAgIFttX2NvbnRlbnRWaWV3IF9zZXREb3VibGVUYXBHZXN0dXJlc0VuYWJsZWQ6dXNlclNjYWxh
YmxlXTsKK30KKwogZG91YmxlIFBhZ2VDbGllbnRJbXBsOjptaW5pbXVtWm9vbVNjYWxlKCkgY29u
c3QKIHsKICAgICBpZiAoVUlTY3JvbGxWaWV3ICpzY3JvbGxlciA9IFttX3dlYlZpZXcgc2Nyb2xs
Vmlld10pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCBkNzllMTE4MmEyYTlhMjdhZDEwZjc3YzExYzJkYzQ5
Y2Y1YWQyNjExLi40OWI0MTljZGZmOTQ2MDNhMGY4YjY2YWM4ZmYzMzhhOGY3MzFkZTVmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLmgKQEAgLTIwMyw2ICsyMDMsNyBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRh
dGEgewogLSAodm9pZClfZW5hYmxlSW5zcGVjdG9yTm9kZVNlYXJjaDsKIC0gKHZvaWQpX2Rpc2Fi
bGVJbnNwZWN0b3JOb2RlU2VhcmNoOwogLSAodm9pZClfYmVjb21lRmlyc3RSZXNwb25kZXJXaXRo
U2VsZWN0aW9uTW92aW5nRm9yd2FyZDooQk9PTClzZWxlY3RpbmdGb3J3YXJkIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShCT09MIGRpZEJlY29tZUZpcnN0UmVzcG9uZGVyKSljb21wbGV0aW9u
SGFuZGxlcjsKKy0gKHZvaWQpX3NldERvdWJsZVRhcEdlc3R1cmVzRW5hYmxlZDooQk9PTCllbmFi
bGVkOwogQGVuZAogCiAjaWYgSEFWRShMSU5LX1BSRVZJRVcpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4
IDAzYzRhYTAxOTNhMTZhNDhmZWIxZjg3Y2IzYjRhOTljNjkzYzVjZTguLmU1NTk4YzI2YjE0ZDMw
ZGRlMDc3OWZmNTkxZDE1YjhlNWJjM2NjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0yOTksNiAr
Mjk5LDE1IEBAIHN0YXRpYyBVSVdlYlNlbGVjdGlvbk1vZGUgdG9VSVdlYlNlbGVjdGlvbk1vZGUo
V0tTZWxlY3Rpb25HcmFudWxhcml0eSBncmFudWxhcml0CiAgICAgcmV0dXJuIFVJV2ViU2VsZWN0
aW9uTW9kZVdlYjsKIH0KIAorLSAodm9pZClfY3JlYXRlQW5kQ29uZmlndXJlRG91YmxlVGFwR2Vz
dHVyZVJlY29nbml6ZXIKK3sKKyAgICBfZG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9w
dE5TKFtbVUlUYXBHZXN0dXJlUmVjb2duaXplciBhbGxvY10gaW5pdFdpdGhUYXJnZXQ6c2VsZiBh
Y3Rpb246QHNlbGVjdG9yKF9kb3VibGVUYXBSZWNvZ25pemVkOildKTsKKyAgICBbX2RvdWJsZVRh
cEdlc3R1cmVSZWNvZ25pemVyIHNldE51bWJlck9mVGFwc1JlcXVpcmVkOjJdOworICAgIFtfZG91
YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6c2VsZl07CisgICAgW3NlbGYgYWRk
R2VzdHVyZVJlY29nbml6ZXI6X2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKKyAg
ICBbX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHJlcXVpcmVPdGhlckdlc3R1cmVUb0ZhaWw6
X2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKK30KKwogLSAodm9pZClzZXR1cElu
dGVyYWN0aW9uCiB7CiAgICAgaWYgKCFfaW50ZXJhY3Rpb25WaWV3c0NvbnRhaW5lclZpZXcpIHsK
QEAgLTMyMiwxMSArMzMxLDcgQEAgLSAodm9pZClzZXR1cEludGVyYWN0aW9uCiAgICAgW19zaW5n
bGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRSZXNldFRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0
b3IoX3NpbmdsZVRhcERpZFJlc2V0OildOwogICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVy
Ol9zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07CiAKLSAgICBfZG91YmxlVGFwR2Vz
dHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtbVUlUYXBHZXN0dXJlUmVjb2duaXplciBhbGxvY10g
aW5pdFdpdGhUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF9kb3VibGVUYXBSZWNvZ25pemVk
OildKTsKLSAgICBbX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNldE51bWJlck9mVGFwc1Jl
cXVpcmVkOjJdOwotICAgIFtfZG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6
c2VsZl07Ci0gICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X2RvdWJsZVRhcEdlc3R1cmVS
ZWNvZ25pemVyLmdldCgpXTsKLSAgICBbX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHJlcXVp
cmVPdGhlckdlc3R1cmVUb0ZhaWw6X2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsK
KyAgICBbc2VsZiBfY3JlYXRlQW5kQ29uZmlndXJlRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXJd
OwogCiAgICAgX3R3b0ZpbmdlckRvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyID0gYWRvcHROUyhb
W1VJVGFwR2VzdHVyZVJlY29nbml6ZXIgYWxsb2NdIGluaXRXaXRoVGFyZ2V0OnNlbGYgYWN0aW9u
OkBzZWxlY3RvcihfdHdvRmluZ2VyRG91YmxlVGFwUmVjb2duaXplZDopXSk7CiAgICAgW190d29G
aW5nZXJEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXROdW1iZXJPZlRhcHNSZXF1aXJlZDoy
XTsKQEAgLTIyNDgsNiArMjI1MywxOCBAQCAtICh2b2lkKV9iZWNvbWVGaXJzdFJlc3BvbmRlcldp
dGhTZWxlY3Rpb25Nb3ZpbmdGb3J3YXJkOihCT09MKXNlbGVjdGluZ0ZvcndhcmQgYwogICAgIH0p
OwogfQogCistICh2b2lkKV9zZXREb3VibGVUYXBHZXN0dXJlc0VuYWJsZWQ6KEJPT0wpZW5hYmxl
ZAoreworICAgIGlmIChlbmFibGVkICYmICFbX2RvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVyIGlz
RW5hYmxlZF0pIHsKKyAgICAgICAgLy8gVGhlIGZpcnN0IHRhcCByZWNvZ25pemVkIGFmdGVyIHJl
LWVuYWJsaW5nIGRvdWJsZSB0YXAgZ2VzdHVyZXMgd2lsbCBub3Qgd2FpdCBmb3IgdGhlCisgICAg
ICAgIC8vIHNlY29uZCB0YXAgYmVmb3JlIGNvbW1pdHRpbmcuIFRvIGZpeCB0aGlzLCB3ZSB1c2Ug
YSBuZXcgZG91YmxlIHRhcCBnZXN0dXJlIHJlY29nbml6ZXIuCisgICAgICAgIFtzZWxmIHJlbW92
ZUdlc3R1cmVSZWNvZ25pemVyOl9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKV07Cisg
ICAgICAgIFtfZG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6bmlsXTsKKyAg
ICAgICAgW3NlbGYgX2NyZWF0ZUFuZENvbmZpZ3VyZURvdWJsZVRhcEdlc3R1cmVSZWNvZ25pemVy
XTsKKyAgICB9CisgICAgW19kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBzZXRFbmFibGVkOmVu
YWJsZWRdOworfQorCiAtICh2b2lkKWFjY2Vzc29yeUF1dG9GaWxsCiB7CiAgICAgaWQgPF9XS0Zv
cm1EZWxlZ2F0ZT4gZm9ybURlbGVnYXRlID0gW193ZWJWaWV3IF9mb3JtRGVsZWdhdGVdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAw
YTMyOWQwOTI4ODBhYjdiYzhmMjkzODNlODA0YjFmOTI5MGFlNjQ5Li45YjRiN2YxNTU4NDU0MjRi
MjZmN2U3ZDBkMDY0ZGZhZTZmOGUzZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtOTM3LDYgKzkzNywxMSBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6dmlld3BvcnRNZXRhVGFnV2lkdGhEaWRDaGFuZ2UoZmxvYXQgd2lkdGgpCiAgICAg
bV9wYWdlQ2xpZW50LmRpZENoYW5nZVZpZXdwb3J0TWV0YVRhZ1dpZHRoKHdpZHRoKTsKIH0KIAor
dm9pZCBXZWJQYWdlUHJveHk6OnZpZXdwb3J0VXNlclNjYWxhYmxlRGlkQ2hhbmdlKGJvb2wgdXNl
clNjYWxhYmxlKQoreworICAgIG1fcGFnZUNsaWVudC5kaWRDaGFuZ2VWaWV3cG9ydFVzZXJTY2Fs
YWJsZSh1c2VyU2NhbGFibGUpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoRHJh
d2luZ1BhZ2VzVG9QREYoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBwZGZEYXRhKQogewogICAg
IG1fcGFnZUNsaWVudC5kaWRGaW5pc2hEcmF3aW5nUGFnZXNUb1BERihwZGZEYXRhKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpp
bmRleCBiMzBiNTRmNTIzOGUwZjYwM2I2NGFhZTYwMzZjOWJkOThjNzZmNmYxLi42MDA3ZjYwNTVl
YmFlYTZlN2NhMzk1YTE4OWRiOTJiMDE2NzRjNWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0yMjgsMTEgKzIyOCwx
NyBAQCBGbG9hdFNpemUgV2ViUGFnZTo6YXZhaWxhYmxlU2NyZWVuU2l6ZSgpIGNvbnN0CiAgICAg
cmV0dXJuIG1fYXZhaWxhYmxlU2NyZWVuU2l6ZTsKIH0KIAoraW5saW5lIGJvb2wgdXNlckNhblNj
YWxlVmlld3BvcnQoY29uc3QgVmlld3BvcnRDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQor
eworICAgIHJldHVybiBjb25maWd1cmF0aW9uLmFsbG93c1VzZXJTY2FsaW5nKCkgJiYgY29uZmln
dXJhdGlvbi5taW5pbXVtU2NhbGUoKSA8IGNvbmZpZ3VyYXRpb24ubWF4aW11bVNjYWxlKCk7Cit9
CisKIHZvaWQgV2ViUGFnZTo6dmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdw
b3J0QXJndW1lbnRzJiB2aWV3cG9ydEFyZ3VtZW50cykKIHsKICAgICBpZiAobV92aWV3cG9ydENv
bmZpZ3VyYXRpb24udmlld3BvcnRBcmd1bWVudHMoKSA9PSB2aWV3cG9ydEFyZ3VtZW50cykKICAg
ICAgICAgcmV0dXJuOwogCisgICAgYm9vbCB2aWV3cG9ydFdhc1VzZXJTY2FsYWJsZSA9IHVzZXJD
YW5TY2FsZVZpZXdwb3J0KG1fdmlld3BvcnRDb25maWd1cmF0aW9uKTsKICAgICBmbG9hdCBvbGRX
aWR0aCA9IG1fdmlld3BvcnRDb25maWd1cmF0aW9uLnZpZXdwb3J0QXJndW1lbnRzKCkud2lkdGg7
CiAKICAgICBtX3ZpZXdwb3J0Q29uZmlndXJhdGlvbi5zZXRWaWV3cG9ydEFyZ3VtZW50cyh2aWV3
cG9ydEFyZ3VtZW50cyk7CkBAIC0yNDAsNiArMjQ2LDEwIEBAIHZvaWQgV2ViUGFnZTo6dmlld3Bv
cnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJiB2aWV3cG9ydEFy
Z3VtCiAKICAgICBpZiAob2xkV2lkdGggIT0gdmlld3BvcnRBcmd1bWVudHMud2lkdGgpCiAgICAg
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Vmlld3BvcnRNZXRhVGFnV2lkdGhEaWRD
aGFuZ2Uodmlld3BvcnRBcmd1bWVudHMud2lkdGgpKTsKKworICAgIGJvb2wgdmlld3BvcnRJc1Vz
ZXJTY2FsYWJsZSA9IHVzZXJDYW5TY2FsZVZpZXdwb3J0KG1fdmlld3BvcnRDb25maWd1cmF0aW9u
KTsKKyAgICBpZiAodmlld3BvcnRXYXNVc2VyU2NhbGFibGUgIT0gdmlld3BvcnRJc1VzZXJTY2Fs
YWJsZSkKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpWaWV3cG9ydFVzZXJT
Y2FsYWJsZURpZENoYW5nZSh2aWV3cG9ydElzVXNlclNjYWxhYmxlKSk7CiB9CiAKIHZvaWQgV2Vi
UGFnZTo6ZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoYm9vbCBpc01vYmlsZURvY3R5cGUpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggMzBlZTBhYWViYjM2Nzg3MjE3ZGE4Nzc1OTM0ZjY1NDRjNzBkNTZjNC4uMzc0NGUxYzhmZDEw
OGM5YWNmMjc0NmExZWNhMTMyNzZjYzk0ZDkyZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1
LTEwLTEwICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IFdlYiBwYWdlcyB3aXRoIHVuc2NhbGFibGUgdmlld3BvcnRzIHNob3VsZG4ndCBoYXZlIGEgc2lu
Z2xlIHRhcCBkZWxheQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ5OTY4CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMzA1NDQ1Mz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBsYXlvdXQgdGVz
dCB0byBjaGVjayB0aGF0IHdoZW4gYSB2aWV3cG9ydCBpcyB1bnNjYWxhYmxlIChzcGVjaWZpZWQg
dGhyb3VnaAorICAgICAgICB0aGUgbWV0YSB2aWV3cG9ydCB0YWcpIHdlIGRvIG5vdCBhZGQgYSBk
ZWxheSB0byBvdXIgc2luZ2xlIHRhcCBnZXN0dXJlIHJlY29nbml6ZXIuCisKKyAgICAgICAgKiBm
YXN0L2V2ZW50cy9pb3MvdW5zY2FsYWJsZS12aWV3cG9ydC1jbGlja3Mtb24tZG91YmxldGFwLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvaW9zL3Vuc2NhbGFibGUt
dmlld3BvcnQtY2xpY2tzLW9uLWRvdWJsZXRhcC5odG1sOiBBZGRlZC4KKwogMjAxNS0xMC0wOCAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBCYWNrZ3Jv
dW5kcyBibGVlZCBvdXQgb2YgbmF0aXZlbHkgcmVuZGVyZWQgdGV4dCBmaWVsZHMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy91bnNjYWxhYmxlLXZpZXdwb3J0LWNsaWNr
cy1vbi1kb3VibGV0YXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9z
L3Vuc2NhbGFibGUtdmlld3BvcnQtY2xpY2tzLW9uLWRvdWJsZXRhcC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMWMwNjRmM2UxMzU2ZmJjNThhM2FmMTgzN2UwYWU3MzI2YjVjYzE0OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2lvcy91bnNjYWxhYmxlLXZpZXdw
b3J0LWNsaWNrcy1vbi1kb3VibGV0YXAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitE
b3VibGUgdGFwcGluZyBvbiB0aGUgYnV0dG9uIHNob3VsZCBmaXJlIDIgY2xpY2sgZXZlbnRzLgor
Q2xpY2shCitDbGljayEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9z
L3Vuc2NhbGFibGUtdmlld3BvcnQtY2xpY2tzLW9uLWRvdWJsZXRhcC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvaW9zL3Vuc2NhbGFibGUtdmlld3BvcnQtY2xpY2tzLW9uLWRvdWJsZXRh
cC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmM5MWE2ZTIwYWNkMmU2ZjE0NDRiMDU1NzczMThlN2Y0MDQ0ZTM0
MjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3MvdW5zY2Fs
YWJsZS12aWV3cG9ydC1jbGlja3Mtb24tZG91YmxldGFwLmh0bWwKQEAgLTAsMCArMSw1NSBAQAor
PCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3
cG9ydD10cnVlIF0gLS0+CisKKzxodG1sPgorPG1ldGEgaWQ9InZpZXdwb3J0LWRhdGEiIG5hbWU9
InZpZXdwb3J0IiBjb250ZW50PSJ1c2VyLXNjYWxhYmxlPW5vLCBpbml0aWFsLXNjYWxlPTEuMCI+
CisKKzxoZWFkPgorICAgIDxzY3JpcHQgaWQ9InVpLXNjcmlwdCIgdHlwZT0idGV4dC9wbGFpbiI+
CisgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIHVpQ29udHJvbGxlci5kb3VibGVU
YXBBdFBvaW50KDUwLCA1MCwgZnVuY3Rpb24oKSB7fSk7CisgICAgICAgIH0pKCk7CisgICAgPC9z
Y3JpcHQ+CisKKyAgICA8c2NyaXB0PgorICAgIHZhciBjbGlja0NvdW50ID0gMDsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9u
IGdldFVJU2NyaXB0KCkgeworICAgICAgICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InVpLXNjcmlwdCIpLnRleHQ7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAg
ICAgICAgaWYgKHRlc3RSdW5uZXIucnVuVUlTY3JpcHQpIHsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIucnVuVUlTY3JpcHQoZ2V0VUlTY3JpcHQoKSwgZnVuY3Rpb24ocmVzdWx0KSB7fSk7CisgICAg
ICAgIH0KKyAgICB9CisgICAgZnVuY3Rpb24gaGFuZGxlQ2xpY2tlZCgpIHsKKyAgICAgICAgY2xp
Y2tDb3VudCsrOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKCJDbGljayEiKSk7CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKSk7CisgICAgICAgIGlmIChjbGlja0NvdW50
ID09IDIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisgICAg
PC9zY3JpcHQ+CisKKyAgICA8c3R5bGU+CisgICAgYm9keSB7CisgICAgICAgIG1hcmdpbjogMDsK
KyAgICB9CisKKyAgICAjdGFyZ2V0IHsKKyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBo
ZWlnaHQ6IDEwMHB4OworICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+CisgICAgPGJ1dHRvbiBpZD0idGFyZ2V0IiBvbmNsaWNrPSJoYW5kbGVD
bGlja2VkKCkiPjwvYnV0dG9uPgorICAgIDxkaXY+RG91YmxlIHRhcHBpbmcgb24gdGhlIGJ1dHRv
biBzaG91bGQgZmlyZSAyIGNsaWNrIGV2ZW50cy48L2Rpdj4KKzwvYm9keT4KKworPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263057</attachid>
            <date>2015-10-13 21:54:57 -0700</date>
            <delta_ts>2015-10-14 14:21:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-149968-20151013215420.patch</filename>
            <type>text/plain</type>
            <size>9209</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkwODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzM5MzczZWRjNTlmMjUy
YWRkODMzMzllNGE1ZTA3OWMzMmI4ODNiZC4uNTY3ODFlMmFmMzA3M2VkYWQ2OGExOGNiMWZkODAy
YjU2YzFhYTY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTEwLTEwICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBwYWdlcyB3
aXRoIHVuc2NhbGFibGUgdmlld3BvcnRzIHNob3VsZG4ndCBoYXZlIGEgc2luZ2xlIHRhcCBkZWxh
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5OTY4
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMzA1NDQ1Mz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGEgdmlld3BvcnQgaXMgdW5zY2FsYWJs
ZSAoc3BlY2lmaWVkIHRocm91Z2ggdGhlIG1ldGEgdmlld3BvcnQgdGFnKSB3ZQorICAgICAgICBk
byBub3QgYWRkIGEgZGVsYXkgdG8gb3VyIHNpbmdsZSB0YXAgZ2VzdHVyZSByZWNvZ25pemVyLiBX
ZSBkbyB0aGlzIGJ5CisgICAgICAgIGRpc2FibGluZyBvciByZWluaXRpYWxpemluZyB0aGUgV0tD
b250ZW50VmlldydzIGRvdWJsZSB0YXAgZ2VzdHVyZSByZWNvZ25pemVyCisgICAgICAgIHdoZW4g
dGhlIHZpZXdwb3J0IGJlY29tZXMgdW5zY2FsYWJsZSBvciBzY2FsYWJsZSwgcmVzcGVjdGl2ZWx5
LiBBIHZpZXdwb3J0IGlzCisgICAgICAgIGRlZW1lZCB1bnNjYWxhYmxlIHdoZW4gaXQgaGFzIHVz
ZXItc2NhbGFibGUgPSBubywgb3Igd2hlbiB0aGUgbWluaW11bSBzY2FsZSBpcworICAgICAgICBn
cmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG1heGltdW0gc2NhbGUuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9k
aWRDb21taXRMYXllclRyZWU6XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY3JlYXRlQW5kQ29uZmln
dXJlRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXJdKTogUHVsbGVkIGxvZ2ljCisgICAgICAgICAg
ICAgICAgZm9yIGluaXRpYWxpemluZyBhIGRvdWJsZSB0YXAgZ2VzdHVyZSByZWNvZ25pemVyIG91
dCBpbnRvIGEgaGVscGVyIGZ1bmN0aW9uLgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHNldHVw
SW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2V0RG91YmxlVGFwR2Vz
dHVyZXNFbmFibGVkOl0pOiBUdXJucyBnZXN0dXJlIHJlY29nbml0aW9uIGZvciBkb3VibGUKKyAg
ICAgICAgICAgICAgICB0YXBzIG9uIG9yIG9mZi4KKwogMjAxNS0xMC0wOCAgTWljaGFlbCBDYXRh
bnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgRm9ybWF0IHN0cmluZyBp
c3N1ZXMgaW4gTmV0d29ya0NhY2hlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBjMmZiOGMwNmQyMTAxYTIyZDRjZDRkOGFmMTM4
M2Y5NTlmYThkZjE3Li4xM2RiNmExMTUyN2U1ZmNhM2U2NDY5M2RiODliN2QxM2Y5NTBkYTg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpA
QCAtMTAwNiw2ICsxMDA2LDggQEAgLSAodm9pZClfZGlkQ29tbWl0TGF5ZXJUcmVlOihjb25zdCBX
ZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJilsYXllclRyZWUKICAgICBpZiAoIWxh
eWVyVHJlZVRyYW5zYWN0aW9uLnNjYWxlV2FzU2V0QnlVSVByb2Nlc3MoKSAmJiAhW19zY3JvbGxW
aWV3IGlzWm9vbWluZ10gJiYgIVtfc2Nyb2xsVmlldyBpc1pvb21Cb3VuY2luZ10gJiYgIVtfc2Ny
b2xsVmlldyBfaXNBbmltYXRpbmdab29tXSkKICAgICAgICAgW19zY3JvbGxWaWV3IHNldFpvb21T
Y2FsZTpsYXllclRyZWVUcmFuc2FjdGlvbi5wYWdlU2NhbGVGYWN0b3IoKV07CiAKKyAgICBbX2Nv
bnRlbnRWaWV3IF9zZXREb3VibGVUYXBHZXN0dXJlc0VuYWJsZWQ6W19zY3JvbGxWaWV3IGlzWm9v
bUVuYWJsZWRdICYmIFtfc2Nyb2xsVmlldyBtaW5pbXVtWm9vbVNjYWxlXSA8IFtfc2Nyb2xsVmll
dyBtYXhpbXVtWm9vbVNjYWxlXV07CisKICAgICBbc2VsZiBfdXBkYXRlU2Nyb2xsVmlld0JhY2tn
cm91bmRdOwogCiAgICAgaWYgKF9nZXN0dXJlQ29udHJvbGxlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4
IGQ3OWUxMTgyYTJhOWEyN2FkMTBmNzdjMTFjMmRjNDljZjVhZDI2MTEuLjQ5YjQxOWNkZmY5NDYw
M2EwZjhiNjZhYzhmZjMzOGE4ZjczMWRlNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMjAzLDYgKzIw
Myw3IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAtICh2b2lkKV9lbmFibGVJbnNw
ZWN0b3JOb2RlU2VhcmNoOwogLSAodm9pZClfZGlzYWJsZUluc3BlY3Rvck5vZGVTZWFyY2g7CiAt
ICh2b2lkKV9iZWNvbWVGaXJzdFJlc3BvbmRlcldpdGhTZWxlY3Rpb25Nb3ZpbmdGb3J3YXJkOihC
T09MKXNlbGVjdGluZ0ZvcndhcmQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wgZGlk
QmVjb21lRmlyc3RSZXNwb25kZXIpKWNvbXBsZXRpb25IYW5kbGVyOworLSAodm9pZClfc2V0RG91
YmxlVGFwR2VzdHVyZXNFbmFibGVkOihCT09MKWVuYWJsZWQ7CiBAZW5kCiAKICNpZiBIQVZFKExJ
TktfUFJFVklFVykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggMDNjNGFhMDE5M2ExNmE0OGZlYjFmODdj
YjNiNGE5OWM2OTNjNWNlOC4uZTU1OThjMjZiMTRkMzBkZGUwNzc5ZmY1OTFkMTViOGU1YmMzY2My
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTI5OSw2ICsyOTksMTUgQEAgc3RhdGljIFVJV2ViU2Vs
ZWN0aW9uTW9kZSB0b1VJV2ViU2VsZWN0aW9uTW9kZShXS1NlbGVjdGlvbkdyYW51bGFyaXR5IGdy
YW51bGFyaXQKICAgICByZXR1cm4gVUlXZWJTZWxlY3Rpb25Nb2RlV2ViOwogfQogCistICh2b2lk
KV9jcmVhdGVBbmRDb25maWd1cmVEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplcgoreworICAgIF9k
b3VibGVUYXBHZXN0dXJlUmVjb2duaXplciA9IGFkb3B0TlMoW1tVSVRhcEdlc3R1cmVSZWNvZ25p
emVyIGFsbG9jXSBpbml0V2l0aFRhcmdldDpzZWxmIGFjdGlvbjpAc2VsZWN0b3IoX2RvdWJsZVRh
cFJlY29nbml6ZWQ6KV0pOworICAgIFtfZG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgc2V0TnVt
YmVyT2ZUYXBzUmVxdWlyZWQ6Ml07CisgICAgW19kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciBz
ZXREZWxlZ2F0ZTpzZWxmXTsKKyAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjpfZG91Ymxl
VGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOworICAgIFtfc2luZ2xlVGFwR2VzdHVyZVJlY29n
bml6ZXIgcmVxdWlyZU90aGVyR2VzdHVyZVRvRmFpbDpfZG91YmxlVGFwR2VzdHVyZVJlY29nbml6
ZXIuZ2V0KCldOworfQorCiAtICh2b2lkKXNldHVwSW50ZXJhY3Rpb24KIHsKICAgICBpZiAoIV9p
bnRlcmFjdGlvblZpZXdzQ29udGFpbmVyVmlldykgewpAQCAtMzIyLDExICszMzEsNyBAQCAtICh2
b2lkKXNldHVwSW50ZXJhY3Rpb24KICAgICBbX3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25pemVyIHNl
dFJlc2V0VGFyZ2V0OnNlbGYgYWN0aW9uOkBzZWxlY3Rvcihfc2luZ2xlVGFwRGlkUmVzZXQ6KV07
CiAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X3NpbmdsZVRhcEdlc3R1cmVSZWNvZ25p
emVyLmdldCgpXTsKIAotICAgIF9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplciA9IGFkb3B0TlMo
W1tVSVRhcEdlc3R1cmVSZWNvZ25pemVyIGFsbG9jXSBpbml0V2l0aFRhcmdldDpzZWxmIGFjdGlv
bjpAc2VsZWN0b3IoX2RvdWJsZVRhcFJlY29nbml6ZWQ6KV0pOwotICAgIFtfZG91YmxlVGFwR2Vz
dHVyZVJlY29nbml6ZXIgc2V0TnVtYmVyT2ZUYXBzUmVxdWlyZWQ6Ml07Ci0gICAgW19kb3VibGVU
YXBHZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpzZWxmXTsKLSAgICBbc2VsZiBhZGRHZXN0
dXJlUmVjb2duaXplcjpfZG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwotICAgIFtf
c2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZXIgcmVxdWlyZU90aGVyR2VzdHVyZVRvRmFpbDpfZG91
YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOworICAgIFtzZWxmIF9jcmVhdGVBbmRDb25m
aWd1cmVEb3VibGVUYXBHZXN0dXJlUmVjb2duaXplcl07CiAKICAgICBfdHdvRmluZ2VyRG91Ymxl
VGFwR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFtbVUlUYXBHZXN0dXJlUmVjb2duaXplciBh
bGxvY10gaW5pdFdpdGhUYXJnZXQ6c2VsZiBhY3Rpb246QHNlbGVjdG9yKF90d29GaW5nZXJEb3Vi
bGVUYXBSZWNvZ25pemVkOildKTsKICAgICBbX3R3b0ZpbmdlckRvdWJsZVRhcEdlc3R1cmVSZWNv
Z25pemVyIHNldE51bWJlck9mVGFwc1JlcXVpcmVkOjJdOwpAQCAtMjI0OCw2ICsyMjUzLDE4IEBA
IC0gKHZvaWQpX2JlY29tZUZpcnN0UmVzcG9uZGVyV2l0aFNlbGVjdGlvbk1vdmluZ0ZvcndhcmQ6
KEJPT0wpc2VsZWN0aW5nRm9yd2FyZCBjCiAgICAgfSk7CiB9CiAKKy0gKHZvaWQpX3NldERvdWJs
ZVRhcEdlc3R1cmVzRW5hYmxlZDooQk9PTCllbmFibGVkCit7CisgICAgaWYgKGVuYWJsZWQgJiYg
IVtfZG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXIgaXNFbmFibGVkXSkgeworICAgICAgICAvLyBU
aGUgZmlyc3QgdGFwIHJlY29nbml6ZWQgYWZ0ZXIgcmUtZW5hYmxpbmcgZG91YmxlIHRhcCBnZXN0
dXJlcyB3aWxsIG5vdCB3YWl0IGZvciB0aGUKKyAgICAgICAgLy8gc2Vjb25kIHRhcCBiZWZvcmUg
Y29tbWl0dGluZy4gVG8gZml4IHRoaXMsIHdlIHVzZSBhIG5ldyBkb3VibGUgdGFwIGdlc3R1cmUg
cmVjb2duaXplci4KKyAgICAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X2RvdWJs
ZVRhcEdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKKyAgICAgICAgW19kb3VibGVUYXBHZXN0dXJl
UmVjb2duaXplciBzZXREZWxlZ2F0ZTpuaWxdOworICAgICAgICBbc2VsZiBfY3JlYXRlQW5kQ29u
ZmlndXJlRG91YmxlVGFwR2VzdHVyZVJlY29nbml6ZXJdOworICAgIH0KKyAgICBbX2RvdWJsZVRh
cEdlc3R1cmVSZWNvZ25pemVyIHNldEVuYWJsZWQ6ZW5hYmxlZF07Cit9CisKIC0gKHZvaWQpYWNj
ZXNzb3J5QXV0b0ZpbGwKIHsKICAgICBpZCA8X1dLRm9ybURlbGVnYXRlPiBmb3JtRGVsZWdhdGUg
PSBbX3dlYlZpZXcgX2Zvcm1EZWxlZ2F0ZV07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzBlZTBhYWViYjM2Nzg3MjE3ZGE4
Nzc1OTM0ZjY1NDRjNzBkNTZjNC4uMzc0NGUxYzhmZDEwOGM5YWNmMjc0NmExZWNhMTMyNzZjYzk0
ZDkyZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE1LTEwLTEwICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBwYWdlcyB3aXRoIHVuc2NhbGFi
bGUgdmlld3BvcnRzIHNob3VsZG4ndCBoYXZlIGEgc2luZ2xlIHRhcCBkZWxheQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5OTY4CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8yMzA1NDQ1Mz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBsYXlvdXQgdGVzdCB0byBjaGVjayB0aGF0IHdoZW4gYSB2
aWV3cG9ydCBpcyB1bnNjYWxhYmxlIChzcGVjaWZpZWQgdGhyb3VnaAorICAgICAgICB0aGUgbWV0
YSB2aWV3cG9ydCB0YWcpIHdlIGRvIG5vdCBhZGQgYSBkZWxheSB0byBvdXIgc2luZ2xlIHRhcCBn
ZXN0dXJlIHJlY29nbml6ZXIuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pb3MvdW5zY2FsYWJs
ZS12aWV3cG9ydC1jbGlja3Mtb24tZG91YmxldGFwLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ldmVudHMvaW9zL3Vuc2NhbGFibGUtdmlld3BvcnQtY2xpY2tzLW9uLWRvdWJs
ZXRhcC5odG1sOiBBZGRlZC4KKwogMjAxNS0xMC0wOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBCYWNrZ3JvdW5kcyBibGVlZCBvdXQgb2YgbmF0aXZl
bHkgcmVuZGVyZWQgdGV4dCBmaWVsZHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2lvcy91bnNjYWxhYmxlLXZpZXdwb3J0LWNsaWNrcy1vbi1kb3VibGV0YXAtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Vuc2NhbGFibGUtdmlld3BvcnQtY2xp
Y2tzLW9uLWRvdWJsZXRhcC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWMwNjRmM2UxMzU2ZmJj
NThhM2FmMTgzN2UwYWU3MzI2YjVjYzE0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL2lvcy91bnNjYWxhYmxlLXZpZXdwb3J0LWNsaWNrcy1vbi1kb3VibGV0YXAt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitEb3VibGUgdGFwcGluZyBvbiB0aGUgYnV0
dG9uIHNob3VsZCBmaXJlIDIgY2xpY2sgZXZlbnRzLgorQ2xpY2shCitDbGljayEKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Vuc2NhbGFibGUtdmlld3BvcnQtY2xp
Y2tzLW9uLWRvdWJsZXRhcC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW9zL3Vuc2Nh
bGFibGUtdmlld3BvcnQtY2xpY2tzLW9uLWRvdWJsZXRhcC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5MWE2
ZTIwYWNkMmU2ZjE0NDRiMDU1NzczMThlN2Y0MDQ0ZTM0MjUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pb3MvdW5zY2FsYWJsZS12aWV3cG9ydC1jbGlja3Mtb24t
ZG91YmxldGFwLmh0bWwKQEAgLTAsMCArMSw1NSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+CisKKzxodG1s
PgorPG1ldGEgaWQ9InZpZXdwb3J0LWRhdGEiIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ1c2Vy
LXNjYWxhYmxlPW5vLCBpbml0aWFsLXNjYWxlPTEuMCI+CisKKzxoZWFkPgorICAgIDxzY3JpcHQg
aWQ9InVpLXNjcmlwdCIgdHlwZT0idGV4dC9wbGFpbiI+CisgICAgICAgIChmdW5jdGlvbigpIHsK
KyAgICAgICAgICAgIHVpQ29udHJvbGxlci5kb3VibGVUYXBBdFBvaW50KDUwLCA1MCwgZnVuY3Rp
b24oKSB7fSk7CisgICAgICAgIH0pKCk7CisgICAgPC9zY3JpcHQ+CisKKyAgICA8c2NyaXB0Pgor
ICAgIHZhciBjbGlja0NvdW50ID0gMDsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGdldFVJU2NyaXB0KCkgeworICAgICAg
ICByZXR1cm4gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVpLXNjcmlwdCIpLnRleHQ7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHRlc3RSdW5uZXIucnVu
VUlTY3JpcHQpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0VUlTY3Jp
cHQoKSwgZnVuY3Rpb24ocmVzdWx0KSB7fSk7CisgICAgICAgIH0KKyAgICB9CisgICAgZnVuY3Rp
b24gaGFuZGxlQ2xpY2tlZCgpIHsKKyAgICAgICAgY2xpY2tDb3VudCsrOworICAgICAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJDbGljayEiKSk7
CisgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiYnIiKSk7CisgICAgICAgIGlmIChjbGlja0NvdW50ID09IDIpCisgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisgICAgPC9zY3JpcHQ+CisKKyAgICA8c3R5bGU+
CisgICAgYm9keSB7CisgICAgICAgIG1hcmdpbjogMDsKKyAgICB9CisKKyAgICAjdGFyZ2V0IHsK
KyAgICAgICAgd2lkdGg6IDEwMHB4OworICAgICAgICBoZWlnaHQ6IDEwMHB4OworICAgIH0KKyAg
ICA8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CisgICAgPGJ1
dHRvbiBpZD0idGFyZ2V0IiBvbmNsaWNrPSJoYW5kbGVDbGlja2VkKCkiPjwvYnV0dG9uPgorICAg
IDxkaXY+RG91YmxlIHRhcHBpbmcgb24gdGhlIGJ1dHRvbiBzaG91bGQgZmlyZSAyIGNsaWNrIGV2
ZW50cy48L2Rpdj4KKzwvYm9keT4KKworPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>