<?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>201487</bug_id>
          
          <creation_ts>2019-09-04 19:42:28 -0700</creation_ts>
          <short_desc>Generate event region for both the main graphics layer and the scrolled contents layer</short_desc>
          <delta_ts>2019-09-05 11:04:17 -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>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1567966</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-09-04 19:42:28 -0700</bug_when>
    <thetext>We currently generate region for one of them only. With borders both need it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567968</commentid>
    <comment_count>1</comment_count>
      <attachid>378041</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-09-04 19:46:26 -0700</bug_when>
    <thetext>Created attachment 378041
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567976</commentid>
    <comment_count>2</comment_count>
      <attachid>378041</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-09-04 20:24:39 -0700</bug_when>
    <thetext>Comment on attachment 378041
patch

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

Are there behavioral changes from using RenderLayerBacking::paintIntoLayer() now that can be tested?

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1601
&gt; +        auto clipRect = enclosingIntRect(compositedBounds());

Isn&apos;t this wrong for the scrolled contents? You need to expand the clip there.

An issue with generating the event region for the entire scrolled contents is that you&apos;re potentially traversing a massive render tree, most of which is not visible. Ideally we&apos;d generate event regions for areas with live tiles only.

&gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1604
&gt; +        auto layerOffset = toIntSize(graphicsLayer.scrollOffset()) - roundedIntSize(graphicsLayer.offsetFromRenderer());

I think it would be a bit nicer to pass in the data to apply the scrolling offset. I don&apos;t really like GraphicsLayers knowing about scrolling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568146</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-09-05 09:46:40 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #2)
&gt; Comment on attachment 378041 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=378041&amp;action=review
&gt; 
&gt; Are there behavioral changes from using RenderLayerBacking::paintIntoLayer()
&gt; now that can be tested?
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayerBacking.cpp:1601
&gt; &gt; +        auto clipRect = enclosingIntRect(compositedBounds());
&gt; 
&gt; Isn&apos;t this wrong for the scrolled contents? You need to expand the clip
&gt; there.

Fixed this to provide the layer size as the dirty rect (it worked before in common cases because the dirty rect is mostly ignored). 

&gt; An issue with generating the event region for the entire scrolled contents
&gt; is that you&apos;re potentially traversing a massive render tree, most of which
&gt; is not visible. Ideally we&apos;d generate event regions for areas with live
&gt; tiles only.

On the other hand we won&apos;t need to update the event region during scrolling if we generate it all at once (separate invalidation bit will enable that).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568149</commentid>
    <comment_count>4</comment_count>
      <attachid>378091</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-09-05 09:54:37 -0700</bug_when>
    <thetext>Created attachment 378091
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568159</commentid>
    <comment_count>5</comment_count>
      <attachid>378093</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-09-05 10:25:22 -0700</bug_when>
    <thetext>Created attachment 378093
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568164</commentid>
    <comment_count>6</comment_count>
      <attachid>378094</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-09-05 10:31:27 -0700</bug_when>
    <thetext>Created attachment 378094
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568177</commentid>
    <comment_count>7</comment_count>
      <attachid>378094</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-05 11:03:24 -0700</bug_when>
    <thetext>Comment on attachment 378094
patch

Clearing flags on attachment: 378094

Committed r249536: &lt;https://trac.webkit.org/changeset/249536&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568178</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-05 11:03:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1568179</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-05 11:04:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/55074928&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378041</attachid>
            <date>2019-09-04 19:46:26 -0700</date>
            <delta_ts>2019-09-05 09:54:37 -0700</delta_ts>
            <desc>patch</desc>
            <filename>event-region-both.patch</filename>
            <type>text/plain</type>
            <size>10837</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMTkxYTI0YTQwNi4uMjI2NmU4ZDkxYzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxOS0wOS0wNCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
R2VuZXJhdGUgZXZlbnQgcmVnaW9uIGZvciBib3RoIHRoZSBtYWluIGdyYXBoaWNzIGxheWVyIGFu
ZCB0aGUgc2Nyb2xsZWQgY29udGVudHMgbGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQ4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXJl
Z2lvbi1iYWNraW5nLXNoYXJpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1yZWdpb24tb3ZlcmZsb3ctZXhwZWN0ZWQudHh0OgorCiAyMDE5
LTA5LTA0ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjI0OTM2NCk6IExheW91dCBUZXN0IHdlYmdwdS90ZXh0dXJlLXRy
aWFuZ2xlLXN0cmlwLmh0bWwgaXMgRmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXJlZ2lvbi1iYWNraW5nLXNoYXJpbmctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXJlZ2lv
bi1iYWNraW5nLXNoYXJpbmctZXhwZWN0ZWQudHh0CmluZGV4IDBkMzQ0ZDQ5YzA2Li4xNDNhNDNm
YzczOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLXJlZ2lvbi1iYWNraW5nLXNoYXJpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1yZWdpb24tYmFja2luZy1zaGFyaW5nLWV4
cGVjdGVkLnR4dApAQCAtMTIsNiArMTIsOSBAQAogICAgICAgICAoR3JhcGhpY3NMYXllcgogICAg
ICAgICAgIChwb3NpdGlvbiA4LjAwIDEzLjAwKQogICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIw
MC4wMCkKKyAgICAgICAgICAoZXZlbnQgcmVnaW9uCisgICAgICAgICAgICAocmVjdCAoMCwwKSB3
aWR0aD01MDAgaGVpZ2h0PTUwMCkKKyAgICAgICAgICApCiAgICAgICAgICAgKGNoaWxkcmVuIDEK
ICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCiAgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAw
IDIwMC4wMCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1yZWdpb24tb3ZlcmZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXJlZ2lvbi1vdmVyZmxvdy1leHBlY3RlZC50eHQKaW5k
ZXggYzQ3N2Q0YjQ2YmIuLjVkYTAxYWNiNzRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wb2lu
dGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcmVnaW9uLW92ZXJmbG93LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcmVnaW9uLW92
ZXJmbG93LWV4cGVjdGVkLnR4dApAQCAtMTIsNiArMTIsOSBAQAogICAgICAgICAoR3JhcGhpY3NM
YXllcgogICAgICAgICAgIChwb3NpdGlvbiA4LjAwIDguMDApCiAgICAgICAgICAgKGJvdW5kcyAy
MDAuMDAgMjAwLjAwKQorICAgICAgICAgIChldmVudCByZWdpb24KKyAgICAgICAgICAgIChyZWN0
ICgwLDApIHdpZHRoPTIwMCBoZWlnaHQ9MjAwKQorICAgICAgICAgICkKICAgICAgICAgICAoY2hp
bGRyZW4gMQogICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKICAgICAgICAgICAgICAgKGJvdW5k
cyAyMDAuMDAgMjAwLjAwKQpAQCAtMzYsNiArMzksOSBAQAogICAgICAgICAoR3JhcGhpY3NMYXll
cgogICAgICAgICAgIChwb3NpdGlvbiA4LjAwIDIwOC4wMCkKICAgICAgICAgICAoYm91bmRzIDIw
MC4wMCAyMDAuMDApCisgICAgICAgICAgKGV2ZW50IHJlZ2lvbgorICAgICAgICAgICAgKHJlY3Qg
KDAsMCkgd2lkdGg9MjAwIGhlaWdodD0yMDApCisgICAgICAgICAgKQogICAgICAgICAgIChjaGls
ZHJlbiAxCiAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgogICAgICAgICAgICAgICAoYm91bmRz
IG9yaWdpbiAxNTAuMDAgMTUwLjAwKQpAQCAtNjMsNiArNjksOSBAQAogICAgICAgICAgIChwb3Np
dGlvbiA4LjAwIDQwOC4wMCkKICAgICAgICAgICAoYm91bmRzIDI1MC4wMCAyNTAuMDApCiAgICAg
ICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChldmVudCByZWdpb24KKyAgICAgICAg
ICAgIChyZWN0ICgwLDApIHdpZHRoPTI1MCBoZWlnaHQ9MjUwKQorICAgICAgICAgICkKICAgICAg
ICAgICAoY2hpbGRyZW4gMQogICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKICAgICAgICAgICAg
ICAgKG9mZnNldEZyb21SZW5kZXJlciB3aWR0aD0yNSBoZWlnaHQ9MjUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZmUwNGVhY2RlZTIuLmM4NDhkYTU0ZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIw
MTktMDktMDQgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIEdl
bmVyYXRlIGV2ZW50IHJlZ2lvbiBmb3IgYm90aCB0aGUgbWFpbiBncmFwaGljcyBsYXllciBhbmQg
dGhlIHNjcm9sbGVkIGNvbnRlbnRzIGxheWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE0ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBjdXJyZW50bHkgZ2VuZXJhdGUgcmVnaW9uIGZvciBvbmUg
b2YgdGhlbSBvbmx5LiBXaXRoIGJvcmRlcnMgYm90aCBuZWVkIGl0LgorICAgICAgICAKKyAgICAg
ICAgQWxzbyBzaGFyZSBtb3JlIGNvZGUgd2l0aCBwYWludGluZyBwYXRocy4KKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVFdmVudFJlZ2lvbik6CisKKyAgICAgICAgR2VuZXJhdGUg
cmVnaW9uIGZvciBib3RoIGxheWVycy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJC
YWNraW5nOjpwYWludEludG9MYXllcik6CisKKyAgICAgICAgQWRkIGV2ZW50IHJlZ2lvbiBjb250
ZXh0IHBhcmFtZXRlciBzbyB3ZSBjYW4gdXNlIHRoaXMgZnVuY3Rpb24gZm9yIGV2ZW50IHJlZ2lv
biB1cGRhdGUgdG9vLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5o
OgorCiAyMDE5LTA5LTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBYnN0cmFjdCBvdXQgV2ViU29ja2V0Q2hhbm5lbCBtZXNzYWdlIHF1ZXVlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDFjYzVi
Y2NmNjhiLi42NmNjN2VjMzZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAKQEAgLTE1OTIsMjUgKzE1OTIsMjUgQEAgdm9pZCBSZW5kZXJM
YXllckJhY2tpbmc6OnVwZGF0ZUV2ZW50UmVnaW9uKCkKICAgICBpZiAobV9vd25pbmdMYXllci5p
c1JlbmRlclZpZXdMYXllcigpICYmICFoYXNUb3VjaEFjdGlvbkVsZW1lbnRzKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBHcmFwaGljc0NvbnRleHQgbnVsbENvbnRleHQobnVsbHB0cik7Ci0gICAg
UmVuZGVyTGF5ZXI6OkxheWVyUGFpbnRpbmdJbmZvIHBhaW50aW5nSW5mbygmbV9vd25pbmdMYXll
ciwgY29tcG9zaXRlZEJvdW5kcygpLCB7IH0sIExheW91dFNpemUoKSk7CisgICAgYXV0byB1cGRh
dGVFdmVudFJlZ2lvbkZvckxheWVyID0gWyZdKEdyYXBoaWNzTGF5ZXImIGdyYXBoaWNzTGF5ZXIp
IHsKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0IG51bGxDb250ZXh0KG51bGxwdHIpOworICAgICAg
ICBSZW5kZXJMYXllcjo6TGF5ZXJQYWludGluZ0luZm8gcGFpbnRpbmdJbmZvKCZtX293bmluZ0xh
eWVyLCBjb21wb3NpdGVkQm91bmRzKCksIHsgfSwgTGF5b3V0U2l6ZSgpKTsKIAotICAgIEV2ZW50
UmVnaW9uIGV2ZW50UmVnaW9uOwotICAgIGF1dG8gZXZlbnRSZWdpb25Db250ZXh0ID0gZXZlbnRS
ZWdpb24ubWFrZUNvbnRleHQoKTsKLSAgICBwYWludGluZ0luZm8uZXZlbnRSZWdpb25Db250ZXh0
ID0gJmV2ZW50UmVnaW9uQ29udGV4dDsKKyAgICAgICAgRXZlbnRSZWdpb24gZXZlbnRSZWdpb247
CisgICAgICAgIGF1dG8gZXZlbnRSZWdpb25Db250ZXh0ID0gZXZlbnRSZWdpb24ubWFrZUNvbnRl
eHQoKTsKKyAgICAgICAgYXV0byBjbGlwUmVjdCA9IGVuY2xvc2luZ0ludFJlY3QoY29tcG9zaXRl
ZEJvdW5kcygpKTsKKyAgICAgICAgcGFpbnRJbnRvTGF5ZXIoJmdyYXBoaWNzTGF5ZXIsIG51bGxD
b250ZXh0LCBjbGlwUmVjdCwgeyB9LCAmZXZlbnRSZWdpb25Db250ZXh0KTsKIAotICAgIGF1dG8g
cGFpbnRGbGFncyA9IFJlbmRlckxheWVyOjpwYWludExheWVyUGFpbnRpbmdDb21wb3NpdGluZ0Fs
bFBoYXNlc0ZsYWdzKCkgfCBSZW5kZXJMYXllcjo6UGFpbnRMYXllckNvbGxlY3RpbmdFdmVudFJl
Z2lvbjsKLSAgICBtX293bmluZ0xheWVyLnBhaW50TGF5ZXJDb250ZW50cyhudWxsQ29udGV4dCwg
cGFpbnRpbmdJbmZvLCBwYWludEZsYWdzKTsKKyAgICAgICAgYXV0byBsYXllck9mZnNldCA9IHRv
SW50U2l6ZShncmFwaGljc0xheWVyLnNjcm9sbE9mZnNldCgpKSAtIHJvdW5kZWRJbnRTaXplKGdy
YXBoaWNzTGF5ZXIub2Zmc2V0RnJvbVJlbmRlcmVyKCkpOworICAgICAgICBldmVudFJlZ2lvbi50
cmFuc2xhdGUobGF5ZXJPZmZzZXQpOwogCi0gICAgZm9yIChhdXRvJiBsYXllciA6IG1fYmFja2lu
Z1NoYXJpbmdMYXllcnMpCi0gICAgICAgIGxheWVyLT5wYWludExheWVyV2l0aEVmZmVjdHMobnVs
bENvbnRleHQsIHBhaW50aW5nSW5mbywgcGFpbnRGbGFncyk7Ci0KLSAgICBHcmFwaGljc0xheWVy
JiBsYXllckZvckV2ZW50UmVnaW9uID0gbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXIgPyAqbV9zY3Jv
bGxlZENvbnRlbnRzTGF5ZXIgOiAqbV9ncmFwaGljc0xheWVyOworICAgICAgICBncmFwaGljc0xh
eWVyLnNldEV2ZW50UmVnaW9uKFdURk1vdmUoZXZlbnRSZWdpb24pKTsKKyAgICB9OwogCi0gICAg
YXV0byBsYXllck9mZnNldCA9IHRvSW50U2l6ZShsYXllckZvckV2ZW50UmVnaW9uLnNjcm9sbE9m
ZnNldCgpKSAtIHJvdW5kZWRJbnRTaXplKGxheWVyRm9yRXZlbnRSZWdpb24ub2Zmc2V0RnJvbVJl
bmRlcmVyKCkpOwotICAgIGV2ZW50UmVnaW9uLnRyYW5zbGF0ZShsYXllck9mZnNldCk7CisgICAg
dXBkYXRlRXZlbnRSZWdpb25Gb3JMYXllcigqbV9ncmFwaGljc0xheWVyKTsKIAotICAgIGxheWVy
Rm9yRXZlbnRSZWdpb24uc2V0RXZlbnRSZWdpb24oV1RGTW92ZShldmVudFJlZ2lvbikpOworICAg
IGlmIChtX3Njcm9sbGVkQ29udGVudHNMYXllcikKKyAgICAgICAgdXBkYXRlRXZlbnRSZWdpb25G
b3JMYXllcigqbV9zY3JvbGxlZENvbnRlbnRzTGF5ZXIpOwogI2VuZGlmCiB9CiAKQEAgLTI3NzYs
NyArMjc3Niw3IEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpzZXRDb250ZW50c05lZWREaXNw
bGF5SW5SZWN0KGNvbnN0IExheW91dFJlY3QmIHIsIEdyYXBoCiAKIHZvaWQgUmVuZGVyTGF5ZXJC
YWNraW5nOjpwYWludEludG9MYXllcihjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVy
LCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsCiAgICAgY29uc3QgSW50UmVjdCYgcGFpbnREaXJ0
eVJlY3QsIC8vIEluIHRoZSBjb29yZHMgb2Ygcm9vdExheWVyLgotICAgIE9wdGlvblNldDxQYWlu
dEJlaGF2aW9yPiBwYWludEJlaGF2aW9yKQorICAgIE9wdGlvblNldDxQYWludEJlaGF2aW9yPiBw
YWludEJlaGF2aW9yLCBFdmVudFJlZ2lvbkNvbnRleHQqIGV2ZW50UmVnaW9uQ29udGV4dCkKIHsK
ICAgICBpZiAoKHBhaW50c0ludG9XaW5kb3coKSB8fCBwYWludHNJbnRvQ29tcG9zaXRlZEFuY2Vz
dG9yKCkpICYmIGdyYXBoaWNzTGF5ZXItPnBhaW50aW5nUGhhc2UoKSAhPSBPcHRpb25TZXQ8R3Jh
cGhpY3NMYXllclBhaW50aW5nUGhhc2U+KEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOjpDaGls
ZENsaXBwaW5nTWFzaykpIHsKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIU9TKFdJTkRP
V1MpCkBAIC0yNzkwLDMzICsyNzkwLDQxIEBAIHZvaWQgUmVuZGVyTGF5ZXJCYWNraW5nOjpwYWlu
dEludG9MYXllcihjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyLCBHcmFwCiAKICAg
ICBhdXRvIHBhaW50RmxhZ3MgPSBwYWludEZsYWdzRm9yTGF5ZXIoKmdyYXBoaWNzTGF5ZXIpOwog
CisgICAgaWYgKGV2ZW50UmVnaW9uQ29udGV4dCkKKyAgICAgICAgcGFpbnRGbGFncy5hZGQoUmVu
ZGVyTGF5ZXI6OlBhaW50TGF5ZXJDb2xsZWN0aW5nRXZlbnRSZWdpb24pOworCiAjaWZuZGVmIE5E
RUJVRwogICAgIFJlbmRlckVsZW1lbnQ6OlNldExheW91dE5lZWRlZEZvcmJpZGRlblNjb3BlIGZv
cmJpZFNldE5lZWRzTGF5b3V0KCZyZW5kZXJlcigpKTsKICNlbmRpZgogCiAgICAgYXV0byBwYWlu
dE9uZUxheWVyID0gWyZdKFJlbmRlckxheWVyJiBsYXllciwgT3B0aW9uU2V0PFJlbmRlckxheWVy
OjpQYWludExheWVyRmxhZz4gcGFpbnRGbGFncykgewotICAgICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxQYWludChsYXllci5yZW5kZXJlcigpKTsKLQogICAgICAgICBGcmFtZVZp
ZXc6OlBhaW50aW5nU3RhdGUgcGFpbnRpbmdTdGF0ZTsKLSAgICAgICAgaWYgKGxheWVyLmlzUmVu
ZGVyVmlld0xheWVyKCkpCi0gICAgICAgICAgICByZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZpZXco
KS53aWxsUGFpbnRDb250ZW50cyhjb250ZXh0LCBwYWludERpcnR5UmVjdCwgcGFpbnRpbmdTdGF0
ZSk7CisgICAgICAgIGlmICghZXZlbnRSZWdpb25Db250ZXh0KSB7CisgICAgICAgICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQYWludChsYXllci5yZW5kZXJlcigpKTsKKworICAg
ICAgICAgICAgaWYgKGxheWVyLmlzUmVuZGVyVmlld0xheWVyKCkpCisgICAgICAgICAgICAgICAg
cmVuZGVyZXIoKS52aWV3KCkuZnJhbWVWaWV3KCkud2lsbFBhaW50Q29udGVudHMoY29udGV4dCwg
cGFpbnREaXJ0eVJlY3QsIHBhaW50aW5nU3RhdGUpOworICAgICAgICB9CiAKICAgICAgICAgUmVu
ZGVyTGF5ZXI6OkxheWVyUGFpbnRpbmdJbmZvIHBhaW50aW5nSW5mbygmbV9vd25pbmdMYXllciwg
cGFpbnREaXJ0eVJlY3QsIHBhaW50QmVoYXZpb3IsIC1tX3N1YnBpeGVsT2Zmc2V0RnJvbVJlbmRl
cmVyKTsKKyAgICAgICAgcGFpbnRpbmdJbmZvLmV2ZW50UmVnaW9uQ29udGV4dCA9IGV2ZW50UmVn
aW9uQ29udGV4dDsKIAogICAgICAgICBpZiAoJmxheWVyID09ICZtX293bmluZ0xheWVyKSB7CiAg
ICAgICAgICAgICBsYXllci5wYWludExheWVyQ29udGVudHMoY29udGV4dCwgcGFpbnRpbmdJbmZv
LCBwYWludEZsYWdzKTsKIAotICAgICAgICAgICAgaWYgKGxheWVyLmNvbnRhaW5zRGlydHlPdmVy
bGF5U2Nyb2xsYmFycygpKQorICAgICAgICAgICAgaWYgKGxheWVyLmNvbnRhaW5zRGlydHlPdmVy
bGF5U2Nyb2xsYmFycygpICYmICFldmVudFJlZ2lvbkNvbnRleHQpCiAgICAgICAgICAgICAgICAg
bGF5ZXIucGFpbnRMYXllckNvbnRlbnRzKGNvbnRleHQsIHBhaW50aW5nSW5mbywgcGFpbnRGbGFn
cyB8IFJlbmRlckxheWVyOjpQYWludExheWVyUGFpbnRpbmdPdmVybGF5U2Nyb2xsYmFycyk7CiAg
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbGF5ZXIucGFpbnRMYXllcldpdGhFZmZlY3RzKGNv
bnRleHQsIHBhaW50aW5nSW5mbywgcGFpbnRGbGFncyk7CiAKLSAgICAgICAgaWYgKGxheWVyLmlz
UmVuZGVyVmlld0xheWVyKCkpCi0gICAgICAgICAgICByZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZp
ZXcoKS5kaWRQYWludENvbnRlbnRzKGNvbnRleHQsIHBhaW50RGlydHlSZWN0LCBwYWludGluZ1N0
YXRlKTsKKyAgICAgICAgaWYgKCFldmVudFJlZ2lvbkNvbnRleHQpIHsKKyAgICAgICAgICAgIGlm
IChsYXllci5pc1JlbmRlclZpZXdMYXllcigpKQorICAgICAgICAgICAgICAgIHJlbmRlcmVyKCku
dmlldygpLmZyYW1lVmlldygpLmRpZFBhaW50Q29udGVudHMoY29udGV4dCwgcGFpbnREaXJ0eVJl
Y3QsIHBhaW50aW5nU3RhdGUpOwogCi0gICAgICAgIEFTU0VSVCghbV9vd25pbmdMYXllci5tX3Vz
ZWRUcmFuc3BhcmVuY3kpOworICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRQYWludChsYXllci5yZW5kZXJlcigpLCBwYWludERpcnR5UmVjdCk7CisgICAgICAgIH0KIAot
ICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFBhaW50KGxheWVyLnJlbmRlcmVy
KCksIHBhaW50RGlydHlSZWN0KTsKKyAgICAgICAgQVNTRVJUKCFtX293bmluZ0xheWVyLm1fdXNl
ZFRyYW5zcGFyZW5jeSk7CiAgICAgfTsKIAogICAgIHBhaW50T25lTGF5ZXIobV9vd25pbmdMYXll
ciwgcGFpbnRGbGFncyk7CkBAIC0yODMxLDEyICsyODM5LDE1IEBAIHZvaWQgUmVuZGVyTGF5ZXJC
YWNraW5nOjpwYWludEludG9MYXllcihjb25zdCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVy
LCBHcmFwCiAKICAgICAgICAgaWYgKGdyYXBoaWNzTGF5ZXItPnBhaW50aW5nUGhhc2UoKS5jb250
YWlucyhHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZTo6T3ZlcmZsb3dDb250ZW50cykpCiAgICAg
ICAgICAgICBzaGFyaW5nTGF5ZXJQYWludEZsYWdzLmFkZChSZW5kZXJMYXllcjo6UGFpbnRMYXll
clBhaW50aW5nT3ZlcmZsb3dDb250ZW50cyk7CisgICAgICAgIGlmIChldmVudFJlZ2lvbkNvbnRl
eHQpCisgICAgICAgICAgICBzaGFyaW5nTGF5ZXJQYWludEZsYWdzLmFkZChSZW5kZXJMYXllcjo6
UGFpbnRMYXllckNvbGxlY3RpbmdFdmVudFJlZ2lvbik7CiAKICAgICAgICAgZm9yIChhdXRvJiBs
YXllcldlYWtQdHIgOiBtX2JhY2tpbmdTaGFyaW5nTGF5ZXJzKQogICAgICAgICAgICAgcGFpbnRP
bmVMYXllcigqbGF5ZXJXZWFrUHRyLCBzaGFyaW5nTGF5ZXJQYWludEZsYWdzKTsKICAgICB9CiAK
LSAgICBjb21wb3NpdG9yKCkuZGlkUGFpbnRCYWNraW5nKHRoaXMpOworICAgIGlmICghZXZlbnRS
ZWdpb25Db250ZXh0KQorICAgICAgICBjb21wb3NpdG9yKCkuZGlkUGFpbnRCYWNraW5nKHRoaXMp
OwogfQogCiBPcHRpb25TZXQ8UmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJGbGFnPiBSZW5kZXJMYXll
ckJhY2tpbmc6OnBhaW50RmxhZ3NGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyJiBncmFwaGlj
c0xheWVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5oCmluZGV4IDIyZGZjNjlhNGVhLi5mYzZhODMyNDU4YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApAQCAtMzUsNiArMzUsNyBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEV2ZW50UmVnaW9uQ29udGV4dDsKIGNsYXNzIEtl
eWZyYW1lTGlzdDsKIGNsYXNzIFBhaW50ZWRDb250ZW50c0luZm87CiBjbGFzcyBSZW5kZXJMYXll
ckNvbXBvc2l0b3I7CkBAIC0zNzYsNyArMzc3LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGhhc1Rp
bGVkQmFja2luZ0ZsYXR0ZW5pbmdMYXllcigpIGNvbnN0IHsgcmV0dXJuIChtX2NoaWxkQ29udGFp
bm1lbnRMYXllciAmJiBtX2lzRnJhbWVMYXllcldpdGhUaWxlZEJhY2tpbmcpOyB9CiAgICAgR3Jh
cGhpY3NMYXllciogdGlsZUNhY2hlRmxhdHRlbmluZ0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9p
c0ZyYW1lTGF5ZXJXaXRoVGlsZWRCYWNraW5nID8gbV9jaGlsZENvbnRhaW5tZW50TGF5ZXIuZ2V0
KCkgOiBudWxscHRyOyB9CiAKLSAgICB2b2lkIHBhaW50SW50b0xheWVyKGNvbnN0IEdyYXBoaWNz
TGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBwYWludERpcnR5UmVjdCwg
T3B0aW9uU2V0PFBhaW50QmVoYXZpb3I+KTsKKyAgICB2b2lkIHBhaW50SW50b0xheWVyKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBwYWludERp
cnR5UmVjdCwgT3B0aW9uU2V0PFBhaW50QmVoYXZpb3I+LCBFdmVudFJlZ2lvbkNvbnRleHQqID0g
bnVsbHB0cik7CiAgICAgT3B0aW9uU2V0PFJlbmRlckxheWVyOjpQYWludExheWVyRmxhZz4gcGFp
bnRGbGFnc0ZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXImKSBjb25zdDsKICAgICAKICAgICB2
b2lkIHBhaW50RGVidWdPdmVybGF5cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250
ZXh0Jik7Cg==
</data>
<flag name="review"
          id="393711"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378091</attachid>
            <date>2019-09-05 09:54:37 -0700</date>
            <delta_ts>2019-09-05 10:25:22 -0700</delta_ts>
            <desc>patch</desc>
            <filename>event-region-both-2.patch</filename>
            <type>text/plain</type>
            <size>11319</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMTkxYTI0YTQwNi4uMjI2NmU4ZDkxYzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxOS0wOS0wNCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
R2VuZXJhdGUgZXZlbnQgcmVnaW9uIGZvciBib3RoIHRoZSBtYWluIGdyYXBoaWNzIGxheWVyIGFu
ZCB0aGUgc2Nyb2xsZWQgY29udGVudHMgbGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQ4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXJl
Z2lvbi1iYWNraW5nLXNoYXJpbmctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHBvaW50ZXJldmVu
dHMvaW9zL3RvdWNoLWFjdGlvbi1yZWdpb24tb3ZlcmZsb3ctZXhwZWN0ZWQudHh0OgorCiAyMDE5
LTA5LTA0ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjI0OTM2NCk6IExheW91dCBUZXN0IHdlYmdwdS90ZXh0dXJlLXRy
aWFuZ2xlLXN0cmlwLmh0bWwgaXMgRmFpbGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcG9p
bnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXJlZ2lvbi1iYWNraW5nLXNoYXJpbmctZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXJlZ2lv
bi1iYWNraW5nLXNoYXJpbmctZXhwZWN0ZWQudHh0CmluZGV4IDBkMzQ0ZDQ5YzA2Li4xNDNhNDNm
YzczOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0
aW9uLXJlZ2lvbi1iYWNraW5nLXNoYXJpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1yZWdpb24tYmFja2luZy1zaGFyaW5nLWV4
cGVjdGVkLnR4dApAQCAtMTIsNiArMTIsOSBAQAogICAgICAgICAoR3JhcGhpY3NMYXllcgogICAg
ICAgICAgIChwb3NpdGlvbiA4LjAwIDEzLjAwKQogICAgICAgICAgIChib3VuZHMgMjAwLjAwIDIw
MC4wMCkKKyAgICAgICAgICAoZXZlbnQgcmVnaW9uCisgICAgICAgICAgICAocmVjdCAoMCwwKSB3
aWR0aD01MDAgaGVpZ2h0PTUwMCkKKyAgICAgICAgICApCiAgICAgICAgICAgKGNoaWxkcmVuIDEK
ICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCiAgICAgICAgICAgICAgIChib3VuZHMgMjAwLjAw
IDIwMC4wMCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNo
LWFjdGlvbi1yZWdpb24tb3ZlcmZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXJlZ2lvbi1vdmVyZmxvdy1leHBlY3RlZC50eHQKaW5k
ZXggYzQ3N2Q0YjQ2YmIuLjVkYTAxYWNiNzRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wb2lu
dGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcmVnaW9uLW92ZXJmbG93LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcmVnaW9uLW92
ZXJmbG93LWV4cGVjdGVkLnR4dApAQCAtMTIsNiArMTIsOSBAQAogICAgICAgICAoR3JhcGhpY3NM
YXllcgogICAgICAgICAgIChwb3NpdGlvbiA4LjAwIDguMDApCiAgICAgICAgICAgKGJvdW5kcyAy
MDAuMDAgMjAwLjAwKQorICAgICAgICAgIChldmVudCByZWdpb24KKyAgICAgICAgICAgIChyZWN0
ICgwLDApIHdpZHRoPTIwMCBoZWlnaHQ9MjAwKQorICAgICAgICAgICkKICAgICAgICAgICAoY2hp
bGRyZW4gMQogICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKICAgICAgICAgICAgICAgKGJvdW5k
cyAyMDAuMDAgMjAwLjAwKQpAQCAtMzYsNiArMzksOSBAQAogICAgICAgICAoR3JhcGhpY3NMYXll
cgogICAgICAgICAgIChwb3NpdGlvbiA4LjAwIDIwOC4wMCkKICAgICAgICAgICAoYm91bmRzIDIw
MC4wMCAyMDAuMDApCisgICAgICAgICAgKGV2ZW50IHJlZ2lvbgorICAgICAgICAgICAgKHJlY3Qg
KDAsMCkgd2lkdGg9MjAwIGhlaWdodD0yMDApCisgICAgICAgICAgKQogICAgICAgICAgIChjaGls
ZHJlbiAxCiAgICAgICAgICAgICAoR3JhcGhpY3NMYXllcgogICAgICAgICAgICAgICAoYm91bmRz
IG9yaWdpbiAxNTAuMDAgMTUwLjAwKQpAQCAtNjMsNiArNjksOSBAQAogICAgICAgICAgIChwb3Np
dGlvbiA4LjAwIDQwOC4wMCkKICAgICAgICAgICAoYm91bmRzIDI1MC4wMCAyNTAuMDApCiAgICAg
ICAgICAgKGRyYXdzQ29udGVudCAxKQorICAgICAgICAgIChldmVudCByZWdpb24KKyAgICAgICAg
ICAgIChyZWN0ICgwLDApIHdpZHRoPTI1MCBoZWlnaHQ9MjUwKQorICAgICAgICAgICkKICAgICAg
ICAgICAoY2hpbGRyZW4gMQogICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKICAgICAgICAgICAg
ICAgKG9mZnNldEZyb21SZW5kZXJlciB3aWR0aD0yNSBoZWlnaHQ9MjUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZmUwNGVhY2RlZTIuLmM4NDhkYTU0ZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIw
MTktMDktMDQgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgorCisgICAgICAgIEdl
bmVyYXRlIGV2ZW50IHJlZ2lvbiBmb3IgYm90aCB0aGUgbWFpbiBncmFwaGljcyBsYXllciBhbmQg
dGhlIHNjcm9sbGVkIGNvbnRlbnRzIGxheWVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE0ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBjdXJyZW50bHkgZ2VuZXJhdGUgcmVnaW9uIGZvciBvbmUg
b2YgdGhlbSBvbmx5LiBXaXRoIGJvcmRlcnMgYm90aCBuZWVkIGl0LgorICAgICAgICAKKyAgICAg
ICAgQWxzbyBzaGFyZSBtb3JlIGNvZGUgd2l0aCBwYWludGluZyBwYXRocy4KKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJCYWNraW5nOjp1cGRhdGVFdmVudFJlZ2lvbik6CisKKyAgICAgICAgR2VuZXJhdGUg
cmVnaW9uIGZvciBib3RoIGxheWVycy4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJC
YWNraW5nOjpwYWludEludG9MYXllcik6CisKKyAgICAgICAgQWRkIGV2ZW50IHJlZ2lvbiBjb250
ZXh0IHBhcmFtZXRlciBzbyB3ZSBjYW4gdXNlIHRoaXMgZnVuY3Rpb24gZm9yIGV2ZW50IHJlZ2lv
biB1cGRhdGUgdG9vLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5o
OgorCiAyMDE5LTA5LTA0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBYnN0cmFjdCBvdXQgV2ViU29ja2V0Q2hhbm5lbCBtZXNzYWdlIHF1ZXVlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDFjYzVi
Y2NmNjhiLi5lMDc4NWVjNDMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHAKQEAgLTE1OTIsMjUgKzE1OTIsMjQgQEAgdm9pZCBSZW5kZXJM
YXllckJhY2tpbmc6OnVwZGF0ZUV2ZW50UmVnaW9uKCkKICAgICBpZiAobV9vd25pbmdMYXllci5p
c1JlbmRlclZpZXdMYXllcigpICYmICFoYXNUb3VjaEFjdGlvbkVsZW1lbnRzKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBHcmFwaGljc0NvbnRleHQgbnVsbENvbnRleHQobnVsbHB0cik7Ci0gICAg
UmVuZGVyTGF5ZXI6OkxheWVyUGFpbnRpbmdJbmZvIHBhaW50aW5nSW5mbygmbV9vd25pbmdMYXll
ciwgY29tcG9zaXRlZEJvdW5kcygpLCB7IH0sIExheW91dFNpemUoKSk7CisgICAgYXV0byB1cGRh
dGVFdmVudFJlZ2lvbkZvckxheWVyID0gWyZdKEdyYXBoaWNzTGF5ZXImIGdyYXBoaWNzTGF5ZXIp
IHsKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0IG51bGxDb250ZXh0KG51bGxwdHIpOworICAgICAg
ICBFdmVudFJlZ2lvbiBldmVudFJlZ2lvbjsKKyAgICAgICAgYXV0byBldmVudFJlZ2lvbkNvbnRl
eHQgPSBldmVudFJlZ2lvbi5tYWtlQ29udGV4dCgpOworICAgICAgICBhdXRvIGRpcnR5UmVjdCA9
IGVuY2xvc2luZ0ludFJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoZ3JhcGhpY3NMYXllci5vZmZz
ZXRGcm9tUmVuZGVyZXIoKSksIGdyYXBoaWNzTGF5ZXIuc2l6ZSgpKSk7CiAKLSAgICBFdmVudFJl
Z2lvbiBldmVudFJlZ2lvbjsKLSAgICBhdXRvIGV2ZW50UmVnaW9uQ29udGV4dCA9IGV2ZW50UmVn
aW9uLm1ha2VDb250ZXh0KCk7Ci0gICAgcGFpbnRpbmdJbmZvLmV2ZW50UmVnaW9uQ29udGV4dCA9
ICZldmVudFJlZ2lvbkNvbnRleHQ7CisgICAgICAgIHBhaW50SW50b0xheWVyKCZncmFwaGljc0xh
eWVyLCBudWxsQ29udGV4dCwgZGlydHlSZWN0LCB7IH0sICZldmVudFJlZ2lvbkNvbnRleHQpOwog
Ci0gICAgYXV0byBwYWludEZsYWdzID0gUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJQYWludGluZ0Nv
bXBvc2l0aW5nQWxsUGhhc2VzRmxhZ3MoKSB8IFJlbmRlckxheWVyOjpQYWludExheWVyQ29sbGVj
dGluZ0V2ZW50UmVnaW9uOwotICAgIG1fb3duaW5nTGF5ZXIucGFpbnRMYXllckNvbnRlbnRzKG51
bGxDb250ZXh0LCBwYWludGluZ0luZm8sIHBhaW50RmxhZ3MpOworICAgICAgICBhdXRvIGxheWVy
T2Zmc2V0ID0gdG9JbnRTaXplKGdyYXBoaWNzTGF5ZXIuc2Nyb2xsT2Zmc2V0KCkpIC0gcm91bmRl
ZEludFNpemUoZ3JhcGhpY3NMYXllci5vZmZzZXRGcm9tUmVuZGVyZXIoKSk7CisgICAgICAgIGV2
ZW50UmVnaW9uLnRyYW5zbGF0ZShsYXllck9mZnNldCk7CiAKLSAgICBmb3IgKGF1dG8mIGxheWVy
IDogbV9iYWNraW5nU2hhcmluZ0xheWVycykKLSAgICAgICAgbGF5ZXItPnBhaW50TGF5ZXJXaXRo
RWZmZWN0cyhudWxsQ29udGV4dCwgcGFpbnRpbmdJbmZvLCBwYWludEZsYWdzKTsKLQotICAgIEdy
YXBoaWNzTGF5ZXImIGxheWVyRm9yRXZlbnRSZWdpb24gPSBtX3Njcm9sbGVkQ29udGVudHNMYXll
ciA/ICptX3Njcm9sbGVkQ29udGVudHNMYXllciA6ICptX2dyYXBoaWNzTGF5ZXI7CisgICAgICAg
IGdyYXBoaWNzTGF5ZXIuc2V0RXZlbnRSZWdpb24oV1RGTW92ZShldmVudFJlZ2lvbikpOworICAg
IH07CiAKLSAgICBhdXRvIGxheWVyT2Zmc2V0ID0gdG9JbnRTaXplKGxheWVyRm9yRXZlbnRSZWdp
b24uc2Nyb2xsT2Zmc2V0KCkpIC0gcm91bmRlZEludFNpemUobGF5ZXJGb3JFdmVudFJlZ2lvbi5v
ZmZzZXRGcm9tUmVuZGVyZXIoKSk7Ci0gICAgZXZlbnRSZWdpb24udHJhbnNsYXRlKGxheWVyT2Zm
c2V0KTsKKyAgICB1cGRhdGVFdmVudFJlZ2lvbkZvckxheWVyKCptX2dyYXBoaWNzTGF5ZXIpOwog
Ci0gICAgbGF5ZXJGb3JFdmVudFJlZ2lvbi5zZXRFdmVudFJlZ2lvbihXVEZNb3ZlKGV2ZW50UmVn
aW9uKSk7CisgICAgaWYgKG1fc2Nyb2xsZWRDb250ZW50c0xheWVyKQorICAgICAgICB1cGRhdGVF
dmVudFJlZ2lvbkZvckxheWVyKCptX3Njcm9sbGVkQ29udGVudHNMYXllcik7CiAjZW5kaWYKIH0K
IApAQCAtMjc3Niw3ICsyNzc1LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnNldENvbnRl
bnRzTmVlZERpc3BsYXlJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYgciwgR3JhcGgKIAogdm9pZCBS
ZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdy
YXBoaWNzTGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwKICAgICBjb25zdCBJbnRSZWN0
JiBwYWludERpcnR5UmVjdCwgLy8gSW4gdGhlIGNvb3JkcyBvZiByb290TGF5ZXIuCi0gICAgT3B0
aW9uU2V0PFBhaW50QmVoYXZpb3I+IHBhaW50QmVoYXZpb3IpCisgICAgT3B0aW9uU2V0PFBhaW50
QmVoYXZpb3I+IHBhaW50QmVoYXZpb3IsIEV2ZW50UmVnaW9uQ29udGV4dCogZXZlbnRSZWdpb25D
b250ZXh0KQogewogICAgIGlmICgocGFpbnRzSW50b1dpbmRvdygpIHx8IHBhaW50c0ludG9Db21w
b3NpdGVkQW5jZXN0b3IoKSkgJiYgZ3JhcGhpY3NMYXllci0+cGFpbnRpbmdQaGFzZSgpICE9IE9w
dGlvblNldDxHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFzZT4oR3JhcGhpY3NMYXllclBhaW50aW5n
UGhhc2U6OkNoaWxkQ2xpcHBpbmdNYXNrKSkgewogI2lmICFQTEFURk9STShJT1NfRkFNSUxZKSAm
JiAhT1MoV0lORE9XUykKQEAgLTI3OTAsMzMgKzI3ODksNDEgQEAgdm9pZCBSZW5kZXJMYXllckJh
Y2tpbmc6OnBhaW50SW50b0xheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIs
IEdyYXAKIAogICAgIGF1dG8gcGFpbnRGbGFncyA9IHBhaW50RmxhZ3NGb3JMYXllcigqZ3JhcGhp
Y3NMYXllcik7CiAKKyAgICBpZiAoZXZlbnRSZWdpb25Db250ZXh0KQorICAgICAgICBwYWludEZs
YWdzLmFkZChSZW5kZXJMYXllcjo6UGFpbnRMYXllckNvbGxlY3RpbmdFdmVudFJlZ2lvbik7CisK
ICNpZm5kZWYgTkRFQlVHCiAgICAgUmVuZGVyRWxlbWVudDo6U2V0TGF5b3V0TmVlZGVkRm9yYmlk
ZGVuU2NvcGUgZm9yYmlkU2V0TmVlZHNMYXlvdXQoJnJlbmRlcmVyKCkpOwogI2VuZGlmCiAKICAg
ICBhdXRvIHBhaW50T25lTGF5ZXIgPSBbJl0oUmVuZGVyTGF5ZXImIGxheWVyLCBPcHRpb25TZXQ8
UmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJGbGFnPiBwYWludEZsYWdzKSB7Ci0gICAgICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50KGxheWVyLnJlbmRlcmVyKCkpOwotCiAgICAg
ICAgIEZyYW1lVmlldzo6UGFpbnRpbmdTdGF0ZSBwYWludGluZ1N0YXRlOwotICAgICAgICBpZiAo
bGF5ZXIuaXNSZW5kZXJWaWV3TGF5ZXIoKSkKLSAgICAgICAgICAgIHJlbmRlcmVyKCkudmlldygp
LmZyYW1lVmlldygpLndpbGxQYWludENvbnRlbnRzKGNvbnRleHQsIHBhaW50RGlydHlSZWN0LCBw
YWludGluZ1N0YXRlKTsKKyAgICAgICAgaWYgKCFldmVudFJlZ2lvbkNvbnRleHQpIHsKKyAgICAg
ICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFBhaW50KGxheWVyLnJlbmRlcmVy
KCkpOworCisgICAgICAgICAgICBpZiAobGF5ZXIuaXNSZW5kZXJWaWV3TGF5ZXIoKSkKKyAgICAg
ICAgICAgICAgICByZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZpZXcoKS53aWxsUGFpbnRDb250ZW50
cyhjb250ZXh0LCBwYWludERpcnR5UmVjdCwgcGFpbnRpbmdTdGF0ZSk7CisgICAgICAgIH0KIAog
ICAgICAgICBSZW5kZXJMYXllcjo6TGF5ZXJQYWludGluZ0luZm8gcGFpbnRpbmdJbmZvKCZtX293
bmluZ0xheWVyLCBwYWludERpcnR5UmVjdCwgcGFpbnRCZWhhdmlvciwgLW1fc3VicGl4ZWxPZmZz
ZXRGcm9tUmVuZGVyZXIpOworICAgICAgICBwYWludGluZ0luZm8uZXZlbnRSZWdpb25Db250ZXh0
ID0gZXZlbnRSZWdpb25Db250ZXh0OwogCiAgICAgICAgIGlmICgmbGF5ZXIgPT0gJm1fb3duaW5n
TGF5ZXIpIHsKICAgICAgICAgICAgIGxheWVyLnBhaW50TGF5ZXJDb250ZW50cyhjb250ZXh0LCBw
YWludGluZ0luZm8sIHBhaW50RmxhZ3MpOwogCi0gICAgICAgICAgICBpZiAobGF5ZXIuY29udGFp
bnNEaXJ0eU92ZXJsYXlTY3JvbGxiYXJzKCkpCisgICAgICAgICAgICBpZiAobGF5ZXIuY29udGFp
bnNEaXJ0eU92ZXJsYXlTY3JvbGxiYXJzKCkgJiYgIWV2ZW50UmVnaW9uQ29udGV4dCkKICAgICAg
ICAgICAgICAgICBsYXllci5wYWludExheWVyQ29udGVudHMoY29udGV4dCwgcGFpbnRpbmdJbmZv
LCBwYWludEZsYWdzIHwgUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJQYWludGluZ092ZXJsYXlTY3Jv
bGxiYXJzKTsKICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBsYXllci5wYWludExheWVyV2l0
aEVmZmVjdHMoY29udGV4dCwgcGFpbnRpbmdJbmZvLCBwYWludEZsYWdzKTsKIAotICAgICAgICBp
ZiAobGF5ZXIuaXNSZW5kZXJWaWV3TGF5ZXIoKSkKLSAgICAgICAgICAgIHJlbmRlcmVyKCkudmll
dygpLmZyYW1lVmlldygpLmRpZFBhaW50Q29udGVudHMoY29udGV4dCwgcGFpbnREaXJ0eVJlY3Qs
IHBhaW50aW5nU3RhdGUpOworICAgICAgICBpZiAoIWV2ZW50UmVnaW9uQ29udGV4dCkgeworICAg
ICAgICAgICAgaWYgKGxheWVyLmlzUmVuZGVyVmlld0xheWVyKCkpCisgICAgICAgICAgICAgICAg
cmVuZGVyZXIoKS52aWV3KCkuZnJhbWVWaWV3KCkuZGlkUGFpbnRDb250ZW50cyhjb250ZXh0LCBw
YWludERpcnR5UmVjdCwgcGFpbnRpbmdTdGF0ZSk7CiAKLSAgICAgICAgQVNTRVJUKCFtX293bmlu
Z0xheWVyLm1fdXNlZFRyYW5zcGFyZW5jeSk7CisgICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFBhaW50KGxheWVyLnJlbmRlcmVyKCksIHBhaW50RGlydHlSZWN0KTsKKyAg
ICAgICAgfQogCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUGFpbnQobGF5
ZXIucmVuZGVyZXIoKSwgcGFpbnREaXJ0eVJlY3QpOworICAgICAgICBBU1NFUlQoIW1fb3duaW5n
TGF5ZXIubV91c2VkVHJhbnNwYXJlbmN5KTsKICAgICB9OwogCiAgICAgcGFpbnRPbmVMYXllciht
X293bmluZ0xheWVyLCBwYWludEZsYWdzKTsKQEAgLTI4MzEsMTIgKzI4MzgsMTUgQEAgdm9pZCBS
ZW5kZXJMYXllckJhY2tpbmc6OnBhaW50SW50b0xheWVyKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdy
YXBoaWNzTGF5ZXIsIEdyYXAKIAogICAgICAgICBpZiAoZ3JhcGhpY3NMYXllci0+cGFpbnRpbmdQ
aGFzZSgpLmNvbnRhaW5zKEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlOjpPdmVyZmxvd0NvbnRl
bnRzKSkKICAgICAgICAgICAgIHNoYXJpbmdMYXllclBhaW50RmxhZ3MuYWRkKFJlbmRlckxheWVy
OjpQYWludExheWVyUGFpbnRpbmdPdmVyZmxvd0NvbnRlbnRzKTsKKyAgICAgICAgaWYgKGV2ZW50
UmVnaW9uQ29udGV4dCkKKyAgICAgICAgICAgIHNoYXJpbmdMYXllclBhaW50RmxhZ3MuYWRkKFJl
bmRlckxheWVyOjpQYWludExheWVyQ29sbGVjdGluZ0V2ZW50UmVnaW9uKTsKIAogICAgICAgICBm
b3IgKGF1dG8mIGxheWVyV2Vha1B0ciA6IG1fYmFja2luZ1NoYXJpbmdMYXllcnMpCiAgICAgICAg
ICAgICBwYWludE9uZUxheWVyKCpsYXllcldlYWtQdHIsIHNoYXJpbmdMYXllclBhaW50RmxhZ3Mp
OwogICAgIH0KIAotICAgIGNvbXBvc2l0b3IoKS5kaWRQYWludEJhY2tpbmcodGhpcyk7CisgICAg
aWYgKCFldmVudFJlZ2lvbkNvbnRleHQpCisgICAgICAgIGNvbXBvc2l0b3IoKS5kaWRQYWludEJh
Y2tpbmcodGhpcyk7CiB9CiAKIE9wdGlvblNldDxSZW5kZXJMYXllcjo6UGFpbnRMYXllckZsYWc+
IFJlbmRlckxheWVyQmFja2luZzo6cGFpbnRGbGFnc0ZvckxheWVyKGNvbnN0IEdyYXBoaWNzTGF5
ZXImIGdyYXBoaWNzTGF5ZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggMjJkZmM2OWE0ZWEuLmZjNmE4MzI0NThiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oCkBAIC0zNSw2ICsz
NSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRXZlbnRSZWdpb25Db250ZXh0
OwogY2xhc3MgS2V5ZnJhbWVMaXN0OwogY2xhc3MgUGFpbnRlZENvbnRlbnRzSW5mbzsKIGNsYXNz
IFJlbmRlckxheWVyQ29tcG9zaXRvcjsKQEAgLTM3Niw3ICszNzcsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgaGFzVGlsZWRCYWNraW5nRmxhdHRlbmluZ0xheWVyKCkgY29uc3QgeyByZXR1cm4gKG1f
Y2hpbGRDb250YWlubWVudExheWVyICYmIG1faXNGcmFtZUxheWVyV2l0aFRpbGVkQmFja2luZyk7
IH0KICAgICBHcmFwaGljc0xheWVyKiB0aWxlQ2FjaGVGbGF0dGVuaW5nTGF5ZXIoKSBjb25zdCB7
IHJldHVybiBtX2lzRnJhbWVMYXllcldpdGhUaWxlZEJhY2tpbmcgPyBtX2NoaWxkQ29udGFpbm1l
bnRMYXllci5nZXQoKSA6IG51bGxwdHI7IH0KIAotICAgIHZvaWQgcGFpbnRJbnRvTGF5ZXIoY29u
c3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmIHBhaW50
RGlydHlSZWN0LCBPcHRpb25TZXQ8UGFpbnRCZWhhdmlvcj4pOworICAgIHZvaWQgcGFpbnRJbnRv
TGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJl
Y3QmIHBhaW50RGlydHlSZWN0LCBPcHRpb25TZXQ8UGFpbnRCZWhhdmlvcj4sIEV2ZW50UmVnaW9u
Q29udGV4dCogPSBudWxscHRyKTsKICAgICBPcHRpb25TZXQ8UmVuZGVyTGF5ZXI6OlBhaW50TGF5
ZXJGbGFnPiBwYWludEZsYWdzRm9yTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciYpIGNvbnN0Owog
ICAgIAogICAgIHZvaWQgcGFpbnREZWJ1Z092ZXJsYXlzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBH
cmFwaGljc0NvbnRleHQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYjViMjE2ODhlZDYuLmQ2ODY1OGJjYjQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMTAzNjIsNyArMTAzNjIsNyBAQAogICAgICAgICAoLVtXS1ByZWZlcmVuY2Vz
IF9zZXRTaG91bGRBbGxvd0Rlc2lnblN5c3RlbVVJRm9udHM6XSk6CiAgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oOgogCi0yMDE5LTA3LTE1ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKzIwMTktMDctMTUgIEJyYWR5IEVpZHNvbiAg
PCBvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBXS1VSTFNjaGVtZVRhc2sgdGhyZWFkIHNh
ZmUuCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81MDQ3MTg2Mz4gYW5kIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTk3NjQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378093</attachid>
            <date>2019-09-05 10:25:22 -0700</date>
            <delta_ts>2019-09-05 10:27:31 -0700</delta_ts>
            <desc>patch</desc>
            <filename>event-region-both-3.patch</filename>
            <type>text/plain</type>
            <size>11315</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMTkxYTI0YTQwNi4uZTBjZWUxZjQzMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxOS0wOS0wNCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
R2VuZXJhdGUgZXZlbnQgcmVnaW9uIGZvciBib3RoIHRoZSBtYWluIGdyYXBoaWNzIGxheWVyIGFu
ZCB0aGUgc2Nyb2xsZWQgY29udGVudHMgbGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQ4NworCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KKworICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1yZWdp
b24tYmFja2luZy1zaGFyaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tcmVnaW9uLW92ZXJmbG93LWV4cGVjdGVkLnR4dDoKKwogMjAxOS0w
OS0wNCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIyNDkzNjQpOiBMYXlvdXQgVGVzdCB3ZWJncHUvdGV4dHVyZS10cmlh
bmdsZS1zdHJpcC5odG1sIGlzIEZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1yZWdpb24tYmFja2luZy1zaGFyaW5nLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1yZWdpb24t
YmFja2luZy1zaGFyaW5nLWV4cGVjdGVkLnR4dAppbmRleCAwZDM0NGQ0OWMwNi4uMTQzYTQzZmM3
MzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1yZWdpb24tYmFja2luZy1zaGFyaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcmVnaW9uLWJhY2tpbmctc2hhcmluZy1leHBl
Y3RlZC50eHQKQEAgLTEyLDYgKzEyLDkgQEAKICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKICAgICAg
ICAgICAocG9zaXRpb24gOC4wMCAxMy4wMCkKICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAu
MDApCisgICAgICAgICAgKGV2ZW50IHJlZ2lvbgorICAgICAgICAgICAgKHJlY3QgKDAsMCkgd2lk
dGg9NTAwIGhlaWdodD01MDApCisgICAgICAgICAgKQogICAgICAgICAgIChjaGlsZHJlbiAxCiAg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgogICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAy
MDAuMDApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tcmVnaW9uLW92ZXJmbG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1yZWdpb24tb3ZlcmZsb3ctZXhwZWN0ZWQudHh0CmluZGV4
IGM0NzdkNGI0NmJiLi41ZGEwMWFjYjc0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXJlZ2lvbi1vdmVyZmxvdy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXJlZ2lvbi1vdmVy
Zmxvdy1leHBlY3RlZC50eHQKQEAgLTEyLDYgKzEyLDkgQEAKICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKICAgICAgICAgICAocG9zaXRpb24gOC4wMCA4LjAwKQogICAgICAgICAgIChib3VuZHMgMjAw
LjAwIDIwMC4wMCkKKyAgICAgICAgICAoZXZlbnQgcmVnaW9uCisgICAgICAgICAgICAocmVjdCAo
MCwwKSB3aWR0aD0yMDAgaGVpZ2h0PTIwMCkKKyAgICAgICAgICApCiAgICAgICAgICAgKGNoaWxk
cmVuIDEKICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCiAgICAgICAgICAgICAgIChib3VuZHMg
MjAwLjAwIDIwMC4wMCkKQEAgLTM2LDYgKzM5LDkgQEAKICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
ICAgICAgICAgICAocG9zaXRpb24gOC4wMCAyMDguMDApCiAgICAgICAgICAgKGJvdW5kcyAyMDAu
MDAgMjAwLjAwKQorICAgICAgICAgIChldmVudCByZWdpb24KKyAgICAgICAgICAgIChyZWN0ICgw
LDApIHdpZHRoPTIwMCBoZWlnaHQ9MjAwKQorICAgICAgICAgICkKICAgICAgICAgICAoY2hpbGRy
ZW4gMQogICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKICAgICAgICAgICAgICAgKGJvdW5kcyBv
cmlnaW4gMTUwLjAwIDE1MC4wMCkKQEAgLTYzLDYgKzY5LDkgQEAKICAgICAgICAgICAocG9zaXRp
b24gOC4wMCA0MDguMDApCiAgICAgICAgICAgKGJvdW5kcyAyNTAuMDAgMjUwLjAwKQogICAgICAg
ICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoZXZlbnQgcmVnaW9uCisgICAgICAgICAg
ICAocmVjdCAoMCwwKSB3aWR0aD0yNTAgaGVpZ2h0PTI1MCkKKyAgICAgICAgICApCiAgICAgICAg
ICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCiAgICAgICAgICAgICAg
IChvZmZzZXRGcm9tUmVuZGVyZXIgd2lkdGg9MjUgaGVpZ2h0PTI1KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZl
MDRlYWNkZWUyLi45NGRlMzhjMzNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE5
LTA5LTA0ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBHZW5l
cmF0ZSBldmVudCByZWdpb24gZm9yIGJvdGggdGhlIG1haW4gZ3JhcGhpY3MgbGF5ZXIgYW5kIHRo
ZSBzY3JvbGxlZCBjb250ZW50cyBsYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNDg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJh
c2VyLgorCisgICAgICAgIFdlIGN1cnJlbnRseSBnZW5lcmF0ZSByZWdpb24gZm9yIG9uZSBvZiB0
aGVtIG9ubHkuIFdpdGggYm9yZGVycyBib3RoIG5lZWQgaXQuCisgICAgICAgIAorICAgICAgICBB
bHNvIHNoYXJlIG1vcmUgY29kZSB3aXRoIHBhaW50aW5nIHBhdGhzLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckJhY2tpbmc6OnVwZGF0ZUV2ZW50UmVnaW9uKToKKworICAgICAgICBHZW5lcmF0ZSByZWdp
b24gZm9yIGJvdGggbGF5ZXJzLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tp
bmc6OnBhaW50SW50b0xheWVyKToKKworICAgICAgICBBZGQgZXZlbnQgcmVnaW9uIGNvbnRleHQg
cGFyYW1ldGVyIHNvIHdlIGNhbiB1c2UgdGhpcyBmdW5jdGlvbiBmb3IgZXZlbnQgcmVnaW9uIHVw
ZGF0ZSB0b28uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmg6CisK
IDIwMTktMDktMDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IEFic3RyYWN0IG91dCBXZWJTb2NrZXRDaGFubmVsIG1lc3NhZ2UgcXVldWUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMWNjNWJjY2Y2
OGIuLmUwNzg1ZWM0MzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcApAQCAtMTU5MiwyNSArMTU5MiwyNCBAQCB2b2lkIFJlbmRlckxheWVy
QmFja2luZzo6dXBkYXRlRXZlbnRSZWdpb24oKQogICAgIGlmIChtX293bmluZ0xheWVyLmlzUmVu
ZGVyVmlld0xheWVyKCkgJiYgIWhhc1RvdWNoQWN0aW9uRWxlbWVudHMpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIEdyYXBoaWNzQ29udGV4dCBudWxsQ29udGV4dChudWxscHRyKTsKLSAgICBSZW5k
ZXJMYXllcjo6TGF5ZXJQYWludGluZ0luZm8gcGFpbnRpbmdJbmZvKCZtX293bmluZ0xheWVyLCBj
b21wb3NpdGVkQm91bmRzKCksIHsgfSwgTGF5b3V0U2l6ZSgpKTsKKyAgICBhdXRvIHVwZGF0ZUV2
ZW50UmVnaW9uRm9yTGF5ZXIgPSBbJl0oR3JhcGhpY3NMYXllciYgZ3JhcGhpY3NMYXllcikgewor
ICAgICAgICBHcmFwaGljc0NvbnRleHQgbnVsbENvbnRleHQobnVsbHB0cik7CisgICAgICAgIEV2
ZW50UmVnaW9uIGV2ZW50UmVnaW9uOworICAgICAgICBhdXRvIGV2ZW50UmVnaW9uQ29udGV4dCA9
IGV2ZW50UmVnaW9uLm1ha2VDb250ZXh0KCk7CisgICAgICAgIGF1dG8gZGlydHlSZWN0ID0gZW5j
bG9zaW5nSW50UmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludChncmFwaGljc0xheWVyLm9mZnNldEZy
b21SZW5kZXJlcigpKSwgZ3JhcGhpY3NMYXllci5zaXplKCkpKTsKIAotICAgIEV2ZW50UmVnaW9u
IGV2ZW50UmVnaW9uOwotICAgIGF1dG8gZXZlbnRSZWdpb25Db250ZXh0ID0gZXZlbnRSZWdpb24u
bWFrZUNvbnRleHQoKTsKLSAgICBwYWludGluZ0luZm8uZXZlbnRSZWdpb25Db250ZXh0ID0gJmV2
ZW50UmVnaW9uQ29udGV4dDsKKyAgICAgICAgcGFpbnRJbnRvTGF5ZXIoJmdyYXBoaWNzTGF5ZXIs
IG51bGxDb250ZXh0LCBkaXJ0eVJlY3QsIHsgfSwgJmV2ZW50UmVnaW9uQ29udGV4dCk7CiAKLSAg
ICBhdXRvIHBhaW50RmxhZ3MgPSBSZW5kZXJMYXllcjo6cGFpbnRMYXllclBhaW50aW5nQ29tcG9z
aXRpbmdBbGxQaGFzZXNGbGFncygpIHwgUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJDb2xsZWN0aW5n
RXZlbnRSZWdpb247Ci0gICAgbV9vd25pbmdMYXllci5wYWludExheWVyQ29udGVudHMobnVsbENv
bnRleHQsIHBhaW50aW5nSW5mbywgcGFpbnRGbGFncyk7CisgICAgICAgIGF1dG8gbGF5ZXJPZmZz
ZXQgPSB0b0ludFNpemUoZ3JhcGhpY3NMYXllci5zY3JvbGxPZmZzZXQoKSkgLSByb3VuZGVkSW50
U2l6ZShncmFwaGljc0xheWVyLm9mZnNldEZyb21SZW5kZXJlcigpKTsKKyAgICAgICAgZXZlbnRS
ZWdpb24udHJhbnNsYXRlKGxheWVyT2Zmc2V0KTsKIAotICAgIGZvciAoYXV0byYgbGF5ZXIgOiBt
X2JhY2tpbmdTaGFyaW5nTGF5ZXJzKQotICAgICAgICBsYXllci0+cGFpbnRMYXllcldpdGhFZmZl
Y3RzKG51bGxDb250ZXh0LCBwYWludGluZ0luZm8sIHBhaW50RmxhZ3MpOwotCi0gICAgR3JhcGhp
Y3NMYXllciYgbGF5ZXJGb3JFdmVudFJlZ2lvbiA9IG1fc2Nyb2xsZWRDb250ZW50c0xheWVyID8g
Km1fc2Nyb2xsZWRDb250ZW50c0xheWVyIDogKm1fZ3JhcGhpY3NMYXllcjsKKyAgICAgICAgZ3Jh
cGhpY3NMYXllci5zZXRFdmVudFJlZ2lvbihXVEZNb3ZlKGV2ZW50UmVnaW9uKSk7CisgICAgfTsK
IAotICAgIGF1dG8gbGF5ZXJPZmZzZXQgPSB0b0ludFNpemUobGF5ZXJGb3JFdmVudFJlZ2lvbi5z
Y3JvbGxPZmZzZXQoKSkgLSByb3VuZGVkSW50U2l6ZShsYXllckZvckV2ZW50UmVnaW9uLm9mZnNl
dEZyb21SZW5kZXJlcigpKTsKLSAgICBldmVudFJlZ2lvbi50cmFuc2xhdGUobGF5ZXJPZmZzZXQp
OworICAgIHVwZGF0ZUV2ZW50UmVnaW9uRm9yTGF5ZXIoKm1fZ3JhcGhpY3NMYXllcik7CiAKLSAg
ICBsYXllckZvckV2ZW50UmVnaW9uLnNldEV2ZW50UmVnaW9uKFdURk1vdmUoZXZlbnRSZWdpb24p
KTsKKyAgICBpZiAobV9zY3JvbGxlZENvbnRlbnRzTGF5ZXIpCisgICAgICAgIHVwZGF0ZUV2ZW50
UmVnaW9uRm9yTGF5ZXIoKm1fc2Nyb2xsZWRDb250ZW50c0xheWVyKTsKICNlbmRpZgogfQogCkBA
IC0yNzc2LDcgKzI3NzUsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6c2V0Q29udGVudHNO
ZWVkRGlzcGxheUluUmVjdChjb25zdCBMYXlvdXRSZWN0JiByLCBHcmFwaAogCiB2b2lkIFJlbmRl
ckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhp
Y3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LAogICAgIGNvbnN0IEludFJlY3QmIHBh
aW50RGlydHlSZWN0LCAvLyBJbiB0aGUgY29vcmRzIG9mIHJvb3RMYXllci4KLSAgICBPcHRpb25T
ZXQ8UGFpbnRCZWhhdmlvcj4gcGFpbnRCZWhhdmlvcikKKyAgICBPcHRpb25TZXQ8UGFpbnRCZWhh
dmlvcj4gcGFpbnRCZWhhdmlvciwgRXZlbnRSZWdpb25Db250ZXh0KiBldmVudFJlZ2lvbkNvbnRl
eHQpCiB7CiAgICAgaWYgKChwYWludHNJbnRvV2luZG93KCkgfHwgcGFpbnRzSW50b0NvbXBvc2l0
ZWRBbmNlc3RvcigpKSAmJiBncmFwaGljc0xheWVyLT5wYWludGluZ1BoYXNlKCkgIT0gT3B0aW9u
U2V0PEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlPihHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFz
ZTo6Q2hpbGRDbGlwcGluZ01hc2spKSB7CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpICYmICFP
UyhXSU5ET1dTKQpAQCAtMjc5MCwzMyArMjc4OSw0MSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2lu
Zzo6cGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3Jh
cAogCiAgICAgYXV0byBwYWludEZsYWdzID0gcGFpbnRGbGFnc0ZvckxheWVyKCpncmFwaGljc0xh
eWVyKTsKIAorICAgIGlmIChldmVudFJlZ2lvbkNvbnRleHQpCisgICAgICAgIHBhaW50RmxhZ3Mu
YWRkKFJlbmRlckxheWVyOjpQYWludExheWVyQ29sbGVjdGluZ0V2ZW50UmVnaW9uKTsKKwogI2lm
bmRlZiBOREVCVUcKICAgICBSZW5kZXJFbGVtZW50OjpTZXRMYXlvdXROZWVkZWRGb3JiaWRkZW5T
Y29wZSBmb3JiaWRTZXROZWVkc0xheW91dCgmcmVuZGVyZXIoKSk7CiAjZW5kaWYKIAogICAgIGF1
dG8gcGFpbnRPbmVMYXllciA9IFsmXShSZW5kZXJMYXllciYgbGF5ZXIsIE9wdGlvblNldDxSZW5k
ZXJMYXllcjo6UGFpbnRMYXllckZsYWc+IHBhaW50RmxhZ3MpIHsKLSAgICAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnQobGF5ZXIucmVuZGVyZXIoKSk7Ci0KICAgICAgICAg
RnJhbWVWaWV3OjpQYWludGluZ1N0YXRlIHBhaW50aW5nU3RhdGU7Ci0gICAgICAgIGlmIChsYXll
ci5pc1JlbmRlclZpZXdMYXllcigpKQotICAgICAgICAgICAgcmVuZGVyZXIoKS52aWV3KCkuZnJh
bWVWaWV3KCkud2lsbFBhaW50Q29udGVudHMoY29udGV4dCwgcGFpbnREaXJ0eVJlY3QsIHBhaW50
aW5nU3RhdGUpOworICAgICAgICBpZiAoIWV2ZW50UmVnaW9uQ29udGV4dCkgeworICAgICAgICAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnQobGF5ZXIucmVuZGVyZXIoKSk7
CisKKyAgICAgICAgICAgIGlmIChsYXllci5pc1JlbmRlclZpZXdMYXllcigpKQorICAgICAgICAg
ICAgICAgIHJlbmRlcmVyKCkudmlldygpLmZyYW1lVmlldygpLndpbGxQYWludENvbnRlbnRzKGNv
bnRleHQsIHBhaW50RGlydHlSZWN0LCBwYWludGluZ1N0YXRlKTsKKyAgICAgICAgfQogCiAgICAg
ICAgIFJlbmRlckxheWVyOjpMYXllclBhaW50aW5nSW5mbyBwYWludGluZ0luZm8oJm1fb3duaW5n
TGF5ZXIsIHBhaW50RGlydHlSZWN0LCBwYWludEJlaGF2aW9yLCAtbV9zdWJwaXhlbE9mZnNldEZy
b21SZW5kZXJlcik7CisgICAgICAgIHBhaW50aW5nSW5mby5ldmVudFJlZ2lvbkNvbnRleHQgPSBl
dmVudFJlZ2lvbkNvbnRleHQ7CiAKICAgICAgICAgaWYgKCZsYXllciA9PSAmbV9vd25pbmdMYXll
cikgewogICAgICAgICAgICAgbGF5ZXIucGFpbnRMYXllckNvbnRlbnRzKGNvbnRleHQsIHBhaW50
aW5nSW5mbywgcGFpbnRGbGFncyk7CiAKLSAgICAgICAgICAgIGlmIChsYXllci5jb250YWluc0Rp
cnR5T3ZlcmxheVNjcm9sbGJhcnMoKSkKKyAgICAgICAgICAgIGlmIChsYXllci5jb250YWluc0Rp
cnR5T3ZlcmxheVNjcm9sbGJhcnMoKSAmJiAhZXZlbnRSZWdpb25Db250ZXh0KQogICAgICAgICAg
ICAgICAgIGxheWVyLnBhaW50TGF5ZXJDb250ZW50cyhjb250ZXh0LCBwYWludGluZ0luZm8sIHBh
aW50RmxhZ3MgfCBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5nT3ZlcmxheVNjcm9sbGJh
cnMpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGxheWVyLnBhaW50TGF5ZXJXaXRoRWZm
ZWN0cyhjb250ZXh0LCBwYWludGluZ0luZm8sIHBhaW50RmxhZ3MpOwogCi0gICAgICAgIGlmIChs
YXllci5pc1JlbmRlclZpZXdMYXllcigpKQotICAgICAgICAgICAgcmVuZGVyZXIoKS52aWV3KCku
ZnJhbWVWaWV3KCkuZGlkUGFpbnRDb250ZW50cyhjb250ZXh0LCBwYWludERpcnR5UmVjdCwgcGFp
bnRpbmdTdGF0ZSk7CisgICAgICAgIGlmICghZXZlbnRSZWdpb25Db250ZXh0KSB7CisgICAgICAg
ICAgICBpZiAobGF5ZXIuaXNSZW5kZXJWaWV3TGF5ZXIoKSkKKyAgICAgICAgICAgICAgICByZW5k
ZXJlcigpLnZpZXcoKS5mcmFtZVZpZXcoKS5kaWRQYWludENvbnRlbnRzKGNvbnRleHQsIHBhaW50
RGlydHlSZWN0LCBwYWludGluZ1N0YXRlKTsKIAotICAgICAgICBBU1NFUlQoIW1fb3duaW5nTGF5
ZXIubV91c2VkVHJhbnNwYXJlbmN5KTsKKyAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUGFpbnQobGF5ZXIucmVuZGVyZXIoKSwgcGFpbnREaXJ0eVJlY3QpOworICAgICAg
ICB9CiAKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWludChsYXllci5y
ZW5kZXJlcigpLCBwYWludERpcnR5UmVjdCk7CisgICAgICAgIEFTU0VSVCghbV9vd25pbmdMYXll
ci5tX3VzZWRUcmFuc3BhcmVuY3kpOwogICAgIH07CiAKICAgICBwYWludE9uZUxheWVyKG1fb3du
aW5nTGF5ZXIsIHBhaW50RmxhZ3MpOwpAQCAtMjgzMSwxMiArMjgzOCwxNSBAQCB2b2lkIFJlbmRl
ckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhp
Y3NMYXllciwgR3JhcAogCiAgICAgICAgIGlmIChncmFwaGljc0xheWVyLT5wYWludGluZ1BoYXNl
KCkuY29udGFpbnMoR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U6Ok92ZXJmbG93Q29udGVudHMp
KQogICAgICAgICAgICAgc2hhcmluZ0xheWVyUGFpbnRGbGFncy5hZGQoUmVuZGVyTGF5ZXI6OlBh
aW50TGF5ZXJQYWludGluZ092ZXJmbG93Q29udGVudHMpOworICAgICAgICBpZiAoZXZlbnRSZWdp
b25Db250ZXh0KQorICAgICAgICAgICAgc2hhcmluZ0xheWVyUGFpbnRGbGFncy5hZGQoUmVuZGVy
TGF5ZXI6OlBhaW50TGF5ZXJDb2xsZWN0aW5nRXZlbnRSZWdpb24pOwogCiAgICAgICAgIGZvciAo
YXV0byYgbGF5ZXJXZWFrUHRyIDogbV9iYWNraW5nU2hhcmluZ0xheWVycykKICAgICAgICAgICAg
IHBhaW50T25lTGF5ZXIoKmxheWVyV2Vha1B0ciwgc2hhcmluZ0xheWVyUGFpbnRGbGFncyk7CiAg
ICAgfQogCi0gICAgY29tcG9zaXRvcigpLmRpZFBhaW50QmFja2luZyh0aGlzKTsKKyAgICBpZiAo
IWV2ZW50UmVnaW9uQ29udGV4dCkKKyAgICAgICAgY29tcG9zaXRvcigpLmRpZFBhaW50QmFja2lu
Zyh0aGlzKTsKIH0KIAogT3B0aW9uU2V0PFJlbmRlckxheWVyOjpQYWludExheWVyRmxhZz4gUmVu
ZGVyTGF5ZXJCYWNraW5nOjpwYWludEZsYWdzRm9yTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciYg
Z3JhcGhpY3NMYXllcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuaAppbmRleCAyMmRmYzY5YTRlYS4uZmM2YTgzMjQ1OGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTM1LDYgKzM1LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBFdmVudFJlZ2lvbkNvbnRleHQ7CiBj
bGFzcyBLZXlmcmFtZUxpc3Q7CiBjbGFzcyBQYWludGVkQ29udGVudHNJbmZvOwogY2xhc3MgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOwpAQCAtMzc2LDcgKzM3Nyw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBoYXNUaWxlZEJhY2tpbmdGbGF0dGVuaW5nTGF5ZXIoKSBjb25zdCB7IHJldHVybiAobV9jaGls
ZENvbnRhaW5tZW50TGF5ZXIgJiYgbV9pc0ZyYW1lTGF5ZXJXaXRoVGlsZWRCYWNraW5nKTsgfQog
ICAgIEdyYXBoaWNzTGF5ZXIqIHRpbGVDYWNoZUZsYXR0ZW5pbmdMYXllcigpIGNvbnN0IHsgcmV0
dXJuIG1faXNGcmFtZUxheWVyV2l0aFRpbGVkQmFja2luZyA/IG1fY2hpbGRDb250YWlubWVudExh
eWVyLmdldCgpIDogbnVsbHB0cjsgfQogCi0gICAgdm9pZCBwYWludEludG9MYXllcihjb25zdCBH
cmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgcGFpbnREaXJ0
eVJlY3QsIE9wdGlvblNldDxQYWludEJlaGF2aW9yPik7CisgICAgdm9pZCBwYWludEludG9MYXll
cihjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYg
cGFpbnREaXJ0eVJlY3QsIE9wdGlvblNldDxQYWludEJlaGF2aW9yPiwgRXZlbnRSZWdpb25Db250
ZXh0KiA9IG51bGxwdHIpOwogICAgIE9wdGlvblNldDxSZW5kZXJMYXllcjo6UGFpbnRMYXllckZs
YWc+IHBhaW50RmxhZ3NGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyJikgY29uc3Q7CiAgICAg
CiAgICAgdm9pZCBwYWludERlYnVnT3ZlcmxheXMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBo
aWNzQ29udGV4dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiNWIyMTY4OGVkNi4uZDY4NjU4YmNiNDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xMDM2Miw3ICsxMDM2Miw3IEBACiAgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3Nl
dFNob3VsZEFsbG93RGVzaWduU3lzdGVtVUlGb250czpdKToKICAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CiAKLTIwMTktMDctMTUgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorMjAxOS0wNy0xNSAgQnJhZHkgRWlkc29uICA8IG9u
QGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFdLVVJMU2NoZW1lVGFzayB0aHJlYWQgc2FmZS4K
ICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUwNDcxODYzPiBhbmQgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTc2NAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378094</attachid>
            <date>2019-09-05 10:31:27 -0700</date>
            <delta_ts>2019-09-05 11:03:24 -0700</delta_ts>
            <desc>patch</desc>
            <filename>event-region-both-4.patch</filename>
            <type>text/plain</type>
            <size>10787</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMTkxYTI0YTQwNi4uZTBjZWUxZjQzMjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAxOS0wOS0wNCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAg
R2VuZXJhdGUgZXZlbnQgcmVnaW9uIGZvciBib3RoIHRoZSBtYWluIGdyYXBoaWNzIGxheWVyIGFu
ZCB0aGUgc2Nyb2xsZWQgY29udGVudHMgbGF5ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTQ4NworCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9u
IEZyYXNlci4KKworICAgICAgICAqIHBvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1yZWdp
b24tYmFja2luZy1zaGFyaW5nLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBwb2ludGVyZXZlbnRz
L2lvcy90b3VjaC1hY3Rpb24tcmVnaW9uLW92ZXJmbG93LWV4cGVjdGVkLnR4dDoKKwogMjAxOS0w
OS0wNCAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJFR1JFU1NJT04gKHIyNDkzNjQpOiBMYXlvdXQgVGVzdCB3ZWJncHUvdGV4dHVyZS10cmlh
bmdsZS1zdHJpcC5odG1sIGlzIEZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BvaW50
ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1yZWdpb24tYmFja2luZy1zaGFyaW5nLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlvbi1yZWdpb24t
YmFja2luZy1zaGFyaW5nLWV4cGVjdGVkLnR4dAppbmRleCAwZDM0NGQ0OWMwNi4uMTQzYTQzZmM3
MzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BvaW50ZXJldmVudHMvaW9zL3RvdWNoLWFjdGlv
bi1yZWdpb24tYmFja2luZy1zaGFyaW5nLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9w
b2ludGVyZXZlbnRzL2lvcy90b3VjaC1hY3Rpb24tcmVnaW9uLWJhY2tpbmctc2hhcmluZy1leHBl
Y3RlZC50eHQKQEAgLTEyLDYgKzEyLDkgQEAKICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKICAgICAg
ICAgICAocG9zaXRpb24gOC4wMCAxMy4wMCkKICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAyMDAu
MDApCisgICAgICAgICAgKGV2ZW50IHJlZ2lvbgorICAgICAgICAgICAgKHJlY3QgKDAsMCkgd2lk
dGg9NTAwIGhlaWdodD01MDApCisgICAgICAgICAgKQogICAgICAgICAgIChjaGlsZHJlbiAxCiAg
ICAgICAgICAgICAoR3JhcGhpY3NMYXllcgogICAgICAgICAgICAgICAoYm91bmRzIDIwMC4wMCAy
MDAuMDApCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wb2ludGVyZXZlbnRzL2lvcy90b3VjaC1h
Y3Rpb24tcmVnaW9uLW92ZXJmbG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BvaW50ZXJl
dmVudHMvaW9zL3RvdWNoLWFjdGlvbi1yZWdpb24tb3ZlcmZsb3ctZXhwZWN0ZWQudHh0CmluZGV4
IGM0NzdkNGI0NmJiLi41ZGEwMWFjYjc0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcG9pbnRl
cmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXJlZ2lvbi1vdmVyZmxvdy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcG9pbnRlcmV2ZW50cy9pb3MvdG91Y2gtYWN0aW9uLXJlZ2lvbi1vdmVy
Zmxvdy1leHBlY3RlZC50eHQKQEAgLTEyLDYgKzEyLDkgQEAKICAgICAgICAgKEdyYXBoaWNzTGF5
ZXIKICAgICAgICAgICAocG9zaXRpb24gOC4wMCA4LjAwKQogICAgICAgICAgIChib3VuZHMgMjAw
LjAwIDIwMC4wMCkKKyAgICAgICAgICAoZXZlbnQgcmVnaW9uCisgICAgICAgICAgICAocmVjdCAo
MCwwKSB3aWR0aD0yMDAgaGVpZ2h0PTIwMCkKKyAgICAgICAgICApCiAgICAgICAgICAgKGNoaWxk
cmVuIDEKICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCiAgICAgICAgICAgICAgIChib3VuZHMg
MjAwLjAwIDIwMC4wMCkKQEAgLTM2LDYgKzM5LDkgQEAKICAgICAgICAgKEdyYXBoaWNzTGF5ZXIK
ICAgICAgICAgICAocG9zaXRpb24gOC4wMCAyMDguMDApCiAgICAgICAgICAgKGJvdW5kcyAyMDAu
MDAgMjAwLjAwKQorICAgICAgICAgIChldmVudCByZWdpb24KKyAgICAgICAgICAgIChyZWN0ICgw
LDApIHdpZHRoPTIwMCBoZWlnaHQ9MjAwKQorICAgICAgICAgICkKICAgICAgICAgICAoY2hpbGRy
ZW4gMQogICAgICAgICAgICAgKEdyYXBoaWNzTGF5ZXIKICAgICAgICAgICAgICAgKGJvdW5kcyBv
cmlnaW4gMTUwLjAwIDE1MC4wMCkKQEAgLTYzLDYgKzY5LDkgQEAKICAgICAgICAgICAocG9zaXRp
b24gOC4wMCA0MDguMDApCiAgICAgICAgICAgKGJvdW5kcyAyNTAuMDAgMjUwLjAwKQogICAgICAg
ICAgIChkcmF3c0NvbnRlbnQgMSkKKyAgICAgICAgICAoZXZlbnQgcmVnaW9uCisgICAgICAgICAg
ICAocmVjdCAoMCwwKSB3aWR0aD0yNTAgaGVpZ2h0PTI1MCkKKyAgICAgICAgICApCiAgICAgICAg
ICAgKGNoaWxkcmVuIDEKICAgICAgICAgICAgIChHcmFwaGljc0xheWVyCiAgICAgICAgICAgICAg
IChvZmZzZXRGcm9tUmVuZGVyZXIgd2lkdGg9MjUgaGVpZ2h0PTI1KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGZl
MDRlYWNkZWUyLi45NGRlMzhjMzNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE5
LTA5LTA0ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBHZW5l
cmF0ZSBldmVudCByZWdpb24gZm9yIGJvdGggdGhlIG1haW4gZ3JhcGhpY3MgbGF5ZXIgYW5kIHRo
ZSBzY3JvbGxlZCBjb250ZW50cyBsYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNDg3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJh
c2VyLgorCisgICAgICAgIFdlIGN1cnJlbnRseSBnZW5lcmF0ZSByZWdpb24gZm9yIG9uZSBvZiB0
aGVtIG9ubHkuIFdpdGggYm9yZGVycyBib3RoIG5lZWQgaXQuCisgICAgICAgIAorICAgICAgICBB
bHNvIHNoYXJlIG1vcmUgY29kZSB3aXRoIHBhaW50aW5nIHBhdGhzLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllckJhY2tpbmc6OnVwZGF0ZUV2ZW50UmVnaW9uKToKKworICAgICAgICBHZW5lcmF0ZSByZWdp
b24gZm9yIGJvdGggbGF5ZXJzLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tp
bmc6OnBhaW50SW50b0xheWVyKToKKworICAgICAgICBBZGQgZXZlbnQgcmVnaW9uIGNvbnRleHQg
cGFyYW1ldGVyIHNvIHdlIGNhbiB1c2UgdGhpcyBmdW5jdGlvbiBmb3IgZXZlbnQgcmVnaW9uIHVw
ZGF0ZSB0b28uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmg6CisK
IDIwMTktMDktMDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IEFic3RyYWN0IG91dCBXZWJTb2NrZXRDaGFubmVsIG1lc3NhZ2UgcXVldWUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggMWNjNWJjY2Y2
OGIuLmUwNzg1ZWM0MzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJCYWNraW5nLmNwcApAQCAtMTU5MiwyNSArMTU5MiwyNCBAQCB2b2lkIFJlbmRlckxheWVy
QmFja2luZzo6dXBkYXRlRXZlbnRSZWdpb24oKQogICAgIGlmIChtX293bmluZ0xheWVyLmlzUmVu
ZGVyVmlld0xheWVyKCkgJiYgIWhhc1RvdWNoQWN0aW9uRWxlbWVudHMpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIEdyYXBoaWNzQ29udGV4dCBudWxsQ29udGV4dChudWxscHRyKTsKLSAgICBSZW5k
ZXJMYXllcjo6TGF5ZXJQYWludGluZ0luZm8gcGFpbnRpbmdJbmZvKCZtX293bmluZ0xheWVyLCBj
b21wb3NpdGVkQm91bmRzKCksIHsgfSwgTGF5b3V0U2l6ZSgpKTsKKyAgICBhdXRvIHVwZGF0ZUV2
ZW50UmVnaW9uRm9yTGF5ZXIgPSBbJl0oR3JhcGhpY3NMYXllciYgZ3JhcGhpY3NMYXllcikgewor
ICAgICAgICBHcmFwaGljc0NvbnRleHQgbnVsbENvbnRleHQobnVsbHB0cik7CisgICAgICAgIEV2
ZW50UmVnaW9uIGV2ZW50UmVnaW9uOworICAgICAgICBhdXRvIGV2ZW50UmVnaW9uQ29udGV4dCA9
IGV2ZW50UmVnaW9uLm1ha2VDb250ZXh0KCk7CisgICAgICAgIGF1dG8gZGlydHlSZWN0ID0gZW5j
bG9zaW5nSW50UmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludChncmFwaGljc0xheWVyLm9mZnNldEZy
b21SZW5kZXJlcigpKSwgZ3JhcGhpY3NMYXllci5zaXplKCkpKTsKIAotICAgIEV2ZW50UmVnaW9u
IGV2ZW50UmVnaW9uOwotICAgIGF1dG8gZXZlbnRSZWdpb25Db250ZXh0ID0gZXZlbnRSZWdpb24u
bWFrZUNvbnRleHQoKTsKLSAgICBwYWludGluZ0luZm8uZXZlbnRSZWdpb25Db250ZXh0ID0gJmV2
ZW50UmVnaW9uQ29udGV4dDsKKyAgICAgICAgcGFpbnRJbnRvTGF5ZXIoJmdyYXBoaWNzTGF5ZXIs
IG51bGxDb250ZXh0LCBkaXJ0eVJlY3QsIHsgfSwgJmV2ZW50UmVnaW9uQ29udGV4dCk7CiAKLSAg
ICBhdXRvIHBhaW50RmxhZ3MgPSBSZW5kZXJMYXllcjo6cGFpbnRMYXllclBhaW50aW5nQ29tcG9z
aXRpbmdBbGxQaGFzZXNGbGFncygpIHwgUmVuZGVyTGF5ZXI6OlBhaW50TGF5ZXJDb2xsZWN0aW5n
RXZlbnRSZWdpb247Ci0gICAgbV9vd25pbmdMYXllci5wYWludExheWVyQ29udGVudHMobnVsbENv
bnRleHQsIHBhaW50aW5nSW5mbywgcGFpbnRGbGFncyk7CisgICAgICAgIGF1dG8gbGF5ZXJPZmZz
ZXQgPSB0b0ludFNpemUoZ3JhcGhpY3NMYXllci5zY3JvbGxPZmZzZXQoKSkgLSByb3VuZGVkSW50
U2l6ZShncmFwaGljc0xheWVyLm9mZnNldEZyb21SZW5kZXJlcigpKTsKKyAgICAgICAgZXZlbnRS
ZWdpb24udHJhbnNsYXRlKGxheWVyT2Zmc2V0KTsKIAotICAgIGZvciAoYXV0byYgbGF5ZXIgOiBt
X2JhY2tpbmdTaGFyaW5nTGF5ZXJzKQotICAgICAgICBsYXllci0+cGFpbnRMYXllcldpdGhFZmZl
Y3RzKG51bGxDb250ZXh0LCBwYWludGluZ0luZm8sIHBhaW50RmxhZ3MpOwotCi0gICAgR3JhcGhp
Y3NMYXllciYgbGF5ZXJGb3JFdmVudFJlZ2lvbiA9IG1fc2Nyb2xsZWRDb250ZW50c0xheWVyID8g
Km1fc2Nyb2xsZWRDb250ZW50c0xheWVyIDogKm1fZ3JhcGhpY3NMYXllcjsKKyAgICAgICAgZ3Jh
cGhpY3NMYXllci5zZXRFdmVudFJlZ2lvbihXVEZNb3ZlKGV2ZW50UmVnaW9uKSk7CisgICAgfTsK
IAotICAgIGF1dG8gbGF5ZXJPZmZzZXQgPSB0b0ludFNpemUobGF5ZXJGb3JFdmVudFJlZ2lvbi5z
Y3JvbGxPZmZzZXQoKSkgLSByb3VuZGVkSW50U2l6ZShsYXllckZvckV2ZW50UmVnaW9uLm9mZnNl
dEZyb21SZW5kZXJlcigpKTsKLSAgICBldmVudFJlZ2lvbi50cmFuc2xhdGUobGF5ZXJPZmZzZXQp
OworICAgIHVwZGF0ZUV2ZW50UmVnaW9uRm9yTGF5ZXIoKm1fZ3JhcGhpY3NMYXllcik7CiAKLSAg
ICBsYXllckZvckV2ZW50UmVnaW9uLnNldEV2ZW50UmVnaW9uKFdURk1vdmUoZXZlbnRSZWdpb24p
KTsKKyAgICBpZiAobV9zY3JvbGxlZENvbnRlbnRzTGF5ZXIpCisgICAgICAgIHVwZGF0ZUV2ZW50
UmVnaW9uRm9yTGF5ZXIoKm1fc2Nyb2xsZWRDb250ZW50c0xheWVyKTsKICNlbmRpZgogfQogCkBA
IC0yNzc2LDcgKzI3NzUsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6c2V0Q29udGVudHNO
ZWVkRGlzcGxheUluUmVjdChjb25zdCBMYXlvdXRSZWN0JiByLCBHcmFwaAogCiB2b2lkIFJlbmRl
ckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhp
Y3NMYXllciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LAogICAgIGNvbnN0IEludFJlY3QmIHBh
aW50RGlydHlSZWN0LCAvLyBJbiB0aGUgY29vcmRzIG9mIHJvb3RMYXllci4KLSAgICBPcHRpb25T
ZXQ8UGFpbnRCZWhhdmlvcj4gcGFpbnRCZWhhdmlvcikKKyAgICBPcHRpb25TZXQ8UGFpbnRCZWhh
dmlvcj4gcGFpbnRCZWhhdmlvciwgRXZlbnRSZWdpb25Db250ZXh0KiBldmVudFJlZ2lvbkNvbnRl
eHQpCiB7CiAgICAgaWYgKChwYWludHNJbnRvV2luZG93KCkgfHwgcGFpbnRzSW50b0NvbXBvc2l0
ZWRBbmNlc3RvcigpKSAmJiBncmFwaGljc0xheWVyLT5wYWludGluZ1BoYXNlKCkgIT0gT3B0aW9u
U2V0PEdyYXBoaWNzTGF5ZXJQYWludGluZ1BoYXNlPihHcmFwaGljc0xheWVyUGFpbnRpbmdQaGFz
ZTo6Q2hpbGRDbGlwcGluZ01hc2spKSB7CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpICYmICFP
UyhXSU5ET1dTKQpAQCAtMjc5MCwzMyArMjc4OSw0MSBAQCB2b2lkIFJlbmRlckxheWVyQmFja2lu
Zzo6cGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllciwgR3Jh
cAogCiAgICAgYXV0byBwYWludEZsYWdzID0gcGFpbnRGbGFnc0ZvckxheWVyKCpncmFwaGljc0xh
eWVyKTsKIAorICAgIGlmIChldmVudFJlZ2lvbkNvbnRleHQpCisgICAgICAgIHBhaW50RmxhZ3Mu
YWRkKFJlbmRlckxheWVyOjpQYWludExheWVyQ29sbGVjdGluZ0V2ZW50UmVnaW9uKTsKKwogI2lm
bmRlZiBOREVCVUcKICAgICBSZW5kZXJFbGVtZW50OjpTZXRMYXlvdXROZWVkZWRGb3JiaWRkZW5T
Y29wZSBmb3JiaWRTZXROZWVkc0xheW91dCgmcmVuZGVyZXIoKSk7CiAjZW5kaWYKIAogICAgIGF1
dG8gcGFpbnRPbmVMYXllciA9IFsmXShSZW5kZXJMYXllciYgbGF5ZXIsIE9wdGlvblNldDxSZW5k
ZXJMYXllcjo6UGFpbnRMYXllckZsYWc+IHBhaW50RmxhZ3MpIHsKLSAgICAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnQobGF5ZXIucmVuZGVyZXIoKSk7Ci0KICAgICAgICAg
RnJhbWVWaWV3OjpQYWludGluZ1N0YXRlIHBhaW50aW5nU3RhdGU7Ci0gICAgICAgIGlmIChsYXll
ci5pc1JlbmRlclZpZXdMYXllcigpKQotICAgICAgICAgICAgcmVuZGVyZXIoKS52aWV3KCkuZnJh
bWVWaWV3KCkud2lsbFBhaW50Q29udGVudHMoY29udGV4dCwgcGFpbnREaXJ0eVJlY3QsIHBhaW50
aW5nU3RhdGUpOworICAgICAgICBpZiAoIWV2ZW50UmVnaW9uQ29udGV4dCkgeworICAgICAgICAg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUGFpbnQobGF5ZXIucmVuZGVyZXIoKSk7
CisKKyAgICAgICAgICAgIGlmIChsYXllci5pc1JlbmRlclZpZXdMYXllcigpKQorICAgICAgICAg
ICAgICAgIHJlbmRlcmVyKCkudmlldygpLmZyYW1lVmlldygpLndpbGxQYWludENvbnRlbnRzKGNv
bnRleHQsIHBhaW50RGlydHlSZWN0LCBwYWludGluZ1N0YXRlKTsKKyAgICAgICAgfQogCiAgICAg
ICAgIFJlbmRlckxheWVyOjpMYXllclBhaW50aW5nSW5mbyBwYWludGluZ0luZm8oJm1fb3duaW5n
TGF5ZXIsIHBhaW50RGlydHlSZWN0LCBwYWludEJlaGF2aW9yLCAtbV9zdWJwaXhlbE9mZnNldEZy
b21SZW5kZXJlcik7CisgICAgICAgIHBhaW50aW5nSW5mby5ldmVudFJlZ2lvbkNvbnRleHQgPSBl
dmVudFJlZ2lvbkNvbnRleHQ7CiAKICAgICAgICAgaWYgKCZsYXllciA9PSAmbV9vd25pbmdMYXll
cikgewogICAgICAgICAgICAgbGF5ZXIucGFpbnRMYXllckNvbnRlbnRzKGNvbnRleHQsIHBhaW50
aW5nSW5mbywgcGFpbnRGbGFncyk7CiAKLSAgICAgICAgICAgIGlmIChsYXllci5jb250YWluc0Rp
cnR5T3ZlcmxheVNjcm9sbGJhcnMoKSkKKyAgICAgICAgICAgIGlmIChsYXllci5jb250YWluc0Rp
cnR5T3ZlcmxheVNjcm9sbGJhcnMoKSAmJiAhZXZlbnRSZWdpb25Db250ZXh0KQogICAgICAgICAg
ICAgICAgIGxheWVyLnBhaW50TGF5ZXJDb250ZW50cyhjb250ZXh0LCBwYWludGluZ0luZm8sIHBh
aW50RmxhZ3MgfCBSZW5kZXJMYXllcjo6UGFpbnRMYXllclBhaW50aW5nT3ZlcmxheVNjcm9sbGJh
cnMpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIGxheWVyLnBhaW50TGF5ZXJXaXRoRWZm
ZWN0cyhjb250ZXh0LCBwYWludGluZ0luZm8sIHBhaW50RmxhZ3MpOwogCi0gICAgICAgIGlmIChs
YXllci5pc1JlbmRlclZpZXdMYXllcigpKQotICAgICAgICAgICAgcmVuZGVyZXIoKS52aWV3KCku
ZnJhbWVWaWV3KCkuZGlkUGFpbnRDb250ZW50cyhjb250ZXh0LCBwYWludERpcnR5UmVjdCwgcGFp
bnRpbmdTdGF0ZSk7CisgICAgICAgIGlmICghZXZlbnRSZWdpb25Db250ZXh0KSB7CisgICAgICAg
ICAgICBpZiAobGF5ZXIuaXNSZW5kZXJWaWV3TGF5ZXIoKSkKKyAgICAgICAgICAgICAgICByZW5k
ZXJlcigpLnZpZXcoKS5mcmFtZVZpZXcoKS5kaWRQYWludENvbnRlbnRzKGNvbnRleHQsIHBhaW50
RGlydHlSZWN0LCBwYWludGluZ1N0YXRlKTsKIAotICAgICAgICBBU1NFUlQoIW1fb3duaW5nTGF5
ZXIubV91c2VkVHJhbnNwYXJlbmN5KTsKKyAgICAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkUGFpbnQobGF5ZXIucmVuZGVyZXIoKSwgcGFpbnREaXJ0eVJlY3QpOworICAgICAg
ICB9CiAKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRQYWludChsYXllci5y
ZW5kZXJlcigpLCBwYWludERpcnR5UmVjdCk7CisgICAgICAgIEFTU0VSVCghbV9vd25pbmdMYXll
ci5tX3VzZWRUcmFuc3BhcmVuY3kpOwogICAgIH07CiAKICAgICBwYWludE9uZUxheWVyKG1fb3du
aW5nTGF5ZXIsIHBhaW50RmxhZ3MpOwpAQCAtMjgzMSwxMiArMjgzOCwxNSBAQCB2b2lkIFJlbmRl
ckxheWVyQmFja2luZzo6cGFpbnRJbnRvTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciogZ3JhcGhp
Y3NMYXllciwgR3JhcAogCiAgICAgICAgIGlmIChncmFwaGljc0xheWVyLT5wYWludGluZ1BoYXNl
KCkuY29udGFpbnMoR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2U6Ok92ZXJmbG93Q29udGVudHMp
KQogICAgICAgICAgICAgc2hhcmluZ0xheWVyUGFpbnRGbGFncy5hZGQoUmVuZGVyTGF5ZXI6OlBh
aW50TGF5ZXJQYWludGluZ092ZXJmbG93Q29udGVudHMpOworICAgICAgICBpZiAoZXZlbnRSZWdp
b25Db250ZXh0KQorICAgICAgICAgICAgc2hhcmluZ0xheWVyUGFpbnRGbGFncy5hZGQoUmVuZGVy
TGF5ZXI6OlBhaW50TGF5ZXJDb2xsZWN0aW5nRXZlbnRSZWdpb24pOwogCiAgICAgICAgIGZvciAo
YXV0byYgbGF5ZXJXZWFrUHRyIDogbV9iYWNraW5nU2hhcmluZ0xheWVycykKICAgICAgICAgICAg
IHBhaW50T25lTGF5ZXIoKmxheWVyV2Vha1B0ciwgc2hhcmluZ0xheWVyUGFpbnRGbGFncyk7CiAg
ICAgfQogCi0gICAgY29tcG9zaXRvcigpLmRpZFBhaW50QmFja2luZyh0aGlzKTsKKyAgICBpZiAo
IWV2ZW50UmVnaW9uQ29udGV4dCkKKyAgICAgICAgY29tcG9zaXRvcigpLmRpZFBhaW50QmFja2lu
Zyh0aGlzKTsKIH0KIAogT3B0aW9uU2V0PFJlbmRlckxheWVyOjpQYWludExheWVyRmxhZz4gUmVu
ZGVyTGF5ZXJCYWNraW5nOjpwYWludEZsYWdzRm9yTGF5ZXIoY29uc3QgR3JhcGhpY3NMYXllciYg
Z3JhcGhpY3NMYXllcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuaAppbmRleCAyMmRmYzY5YTRlYS4uZmM2YTgzMjQ1OGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTM1LDYgKzM1LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBFdmVudFJlZ2lvbkNvbnRleHQ7CiBj
bGFzcyBLZXlmcmFtZUxpc3Q7CiBjbGFzcyBQYWludGVkQ29udGVudHNJbmZvOwogY2xhc3MgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOwpAQCAtMzc2LDcgKzM3Nyw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBoYXNUaWxlZEJhY2tpbmdGbGF0dGVuaW5nTGF5ZXIoKSBjb25zdCB7IHJldHVybiAobV9jaGls
ZENvbnRhaW5tZW50TGF5ZXIgJiYgbV9pc0ZyYW1lTGF5ZXJXaXRoVGlsZWRCYWNraW5nKTsgfQog
ICAgIEdyYXBoaWNzTGF5ZXIqIHRpbGVDYWNoZUZsYXR0ZW5pbmdMYXllcigpIGNvbnN0IHsgcmV0
dXJuIG1faXNGcmFtZUxheWVyV2l0aFRpbGVkQmFja2luZyA/IG1fY2hpbGRDb250YWlubWVudExh
eWVyLmdldCgpIDogbnVsbHB0cjsgfQogCi0gICAgdm9pZCBwYWludEludG9MYXllcihjb25zdCBH
cmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgcGFpbnREaXJ0
eVJlY3QsIE9wdGlvblNldDxQYWludEJlaGF2aW9yPik7CisgICAgdm9pZCBwYWludEludG9MYXll
cihjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYg
cGFpbnREaXJ0eVJlY3QsIE9wdGlvblNldDxQYWludEJlaGF2aW9yPiwgRXZlbnRSZWdpb25Db250
ZXh0KiA9IG51bGxwdHIpOwogICAgIE9wdGlvblNldDxSZW5kZXJMYXllcjo6UGFpbnRMYXllckZs
YWc+IHBhaW50RmxhZ3NGb3JMYXllcihjb25zdCBHcmFwaGljc0xheWVyJikgY29uc3Q7CiAgICAg
CiAgICAgdm9pZCBwYWludERlYnVnT3ZlcmxheXMoY29uc3QgR3JhcGhpY3NMYXllciosIEdyYXBo
aWNzQ29udGV4dCYpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>