<?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>198451</bug_id>
          
          <creation_ts>2019-06-01 02:17:14 -0700</creation_ts>
          <short_desc>Remove some unused selection code</short_desc>
          <delta_ts>2019-06-05 11:01:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>
          <dependson>198549</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1540958</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-06-01 02:17:14 -0700</bug_when>
    <thetext>Remove some unused selection code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1540959</commentid>
    <comment_count>1</comment_count>
      <attachid>371111</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-06-01 02:17:39 -0700</bug_when>
    <thetext>Created attachment 371111
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541466</commentid>
    <comment_count>2</comment_count>
      <attachid>371251</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-06-03 23:12:36 -0700</bug_when>
    <thetext>Created attachment 371251
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541533</commentid>
    <comment_count>3</comment_count>
      <attachid>371251</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2019-06-04 06:15:34 -0700</bug_when>
    <thetext>Comment on attachment 371251
Patch

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

I’m nervous about this, but the bots seem to be green....

&gt; Source/WebKit/Platform/spi/ios/UIKitSPI.h:-559
&gt; -

Are we sure non of this is needed? I thought this assistant was still used in legacy web kit, though it’s mostly broken, it can still be triggered sometimes.

&gt; Source/WebKit/Platform/spi/ios/UIKitSPI.h:-600
&gt; -- (void)showDictionaryFor:(NSString *)selectedTerm fromRect:(CGRect)presentationRect;

I know we use some of the above methods, I’m surprised that these are ok to remove? Are we sure this is ok?

&gt; Source/WebKit/Shared/ios/GestureTypes.h:45
&gt;      PhraseBoundary

Does this need to have values specified, or since It’s an enumeration class jf’s Ok? Removing one in the middle of a list makes me nervous.

&gt; Source/WebKit/UIProcess/ios/WKPDFView.mm:526
&gt;      auto selectionAssistant = adoptNS([[UIWKSelectionAssistant alloc] initWithView:[_hostViewController view]]);

File a radar? I would hope this would be very easy to do, and would clean up a lot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541559</commentid>
    <comment_count>4</comment_count>
      <attachid>371251</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-06-04 07:37:32 -0700</bug_when>
    <thetext>Comment on attachment 371251
Patch

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

&gt;&gt; Source/WebKit/Platform/spi/ios/UIKitSPI.h:-559
&gt;&gt; -
&gt; 
&gt; Are we sure non of this is needed? I thought this assistant was still used in legacy web kit, though it’s mostly broken, it can still be triggered sometimes.

This is WebKit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541562</commentid>
    <comment_count>5</comment_count>
      <attachid>371251</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-06-04 07:39:32 -0700</bug_when>
    <thetext>Comment on attachment 371251
Patch

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

&gt;&gt;&gt; Source/WebKit/Platform/spi/ios/UIKitSPI.h:-559
&gt;&gt;&gt; -
&gt;&gt; 
&gt;&gt; Are we sure non of this is needed? I thought this assistant was still used in legacy web kit, though it’s mostly broken, it can still be triggered sometimes.
&gt; 
&gt; This is WebKit

Oops, half-finished comment 🤦🏻‍♂️

This is just a forward declaration in WebKit, so I don&apos;t think it will have any impact in legacy WebKit.

&gt;&gt; Source/WebKit/UIProcess/ios/WKPDFView.mm:526
&gt;&gt;      auto selectionAssistant = adoptNS([[UIWKSelectionAssistant alloc] initWithView:[_hostViewController view]]);
&gt; 
&gt; File a radar? I would hope this would be very easy to do, and would clean up a lot.

+1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541774</commentid>
    <comment_count>6</comment_count>
      <attachid>371251</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-04 16:27:36 -0700</bug_when>
    <thetext>Comment on attachment 371251
Patch

Clearing flags on attachment: 371251

Committed r246086: &lt;https://trac.webkit.org/changeset/246086&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541775</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-04 16:27:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541777</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-04 16:28:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/51419978&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1541804</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-04 17:21:05 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 198549</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542085</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-06-05 11:01:19 -0700</bug_when>
    <thetext>Tried again in https://trac.webkit.org/changeset/246116/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371111</attachid>
            <date>2019-06-01 02:17:39 -0700</date>
            <delta_ts>2019-06-03 23:12:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198451-20190601021738.patch</filename>
            <type>text/plain</type>
            <size>13913</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBkOWNhNWFkNDhjMmJlNmVk
ZDdhMjAwYTZhYTYxNDM4ZjBlYjQzM2IuLmE5OTE1YjQ0ZGE1MzkwNjkwMWU1NGMxNGRhNzg0NDUy
NWExMDkzMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTktMDYtMDEgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNvbWUgdW51
c2VkIHNlbGVjdGlvbiBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTg0NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaDoKKyAgICAgICAgKiBTaGFy
ZWQvaW9zL0dlc3R1cmVUeXBlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAodG9HZXN0dXJlVHlwZSk6CisgICAgICAgICh0
b1VJV0tHZXN0dXJlVHlwZSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW06
CisgICAgICAgICgtW1dLUERGVmlldyBhY3Rpb25TaGVldEFzc2lzdGFudDpzaGFyZUVsZW1lbnRX
aXRoVVJMOnJlY3Q6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnNlbGVjdFdpdGhHZXN0dXJlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6c2VsZWN0VGV4dFdpdGhHcmFudWxhcml0eUF0UG9pbnQpOgorICAgICAgICAoV2Vi
S2l0OjpjYW5TaHJpbmtUb1RleHRTZWxlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpoYXNDdXN0b21MaW5lSGVpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6cmFuZ2VGb3JXZWJTZWxlY3Rpb25BdFBvc2l0aW9uKTogRGVsZXRlZC4KKwogMjAxOS0wNS0z
MSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEVu
c3VyZSBrZXlib2FyZCBlZGl0aW5nIGlzIHVwIHRvIGRhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9zcGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggYzRjODEwNWM4Mzc4NGQ0MzE1NTNmMjdiNzI1ODZk
ODgyNWJlNzlkNS4uMWZmYWE4ZDVjZjMwNzJjNjczNzE3NGIzODIwNGNjNWQ1Y2YzNTI3NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAgLTY5LDcgKzY5LDYg
QEAKICNpbXBvcnQgPFVJS2l0L1VJVmlld0NvbnRyb2xsZXJfVmlld1NlcnZpY2UuaD4KICNpbXBv
cnQgPFVJS2l0L1VJVmlld19Qcml2YXRlLmg+CiAjaW1wb3J0IDxVSUtpdC9VSVZpc3VhbEVmZmVj
dF9Qcml2YXRlLmg+Ci0jaW1wb3J0IDxVSUtpdC9VSVdLU2VsZWN0aW9uQXNzaXN0YW50Lmg+CiAj
aW1wb3J0IDxVSUtpdC9VSVdLVGV4dEludGVyYWN0aW9uQXNzaXN0YW50Lmg+CiAjaW1wb3J0IDxV
SUtpdC9VSVdlYkJyb3dzZXJWaWV3Lmg+CiAjaW1wb3J0IDxVSUtpdC9VSVdlYkRvY3VtZW50Vmll
dy5oPgpAQCAtNTMwLDMzICs1MjksMTAgQEAgdHlwZWRlZiBOU19FTlVNIChOU0ludGVnZXIsIF9V
SUJhY2tkcm9wTWFza1ZpZXdGbGFncykgewogLSAoVUlDb2xvciAqKV9pbmhlcml0ZWRJbnRlcmFj
dGlvblRpbnRDb2xvcjsKIEBlbmQKIAotQGludGVyZmFjZSBVSVdlYlNlbGVjdGlvblZpZXcgOiBV
SVZpZXcKLUBlbmQKLQotQGludGVyZmFjZSBVSVdlYlNlbGVjdGlvbkFzc2lzdGFudCA6IE5TT2Jq
ZWN0IDxVSUdlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGU+Ci1AZW5kCi0KIEBwcm90b2NvbCBVSVNl
bGVjdGlvbkludGVyYWN0aW9uQXNzaXN0YW50CiAtICh2b2lkKXNob3dTZWxlY3Rpb25Db21tYW5k
czsKIEBlbmQKIAotQGludGVyZmFjZSBVSVdlYlNlbGVjdGlvbkFzc2lzdGFudCAoKQotLSAoQk9P
TClpc1NlbGVjdGlvbkdlc3R1cmVSZWNvZ25pemVyOihVSUdlc3R1cmVSZWNvZ25pemVyICopZ2Vz
dHVyZVJlY29nbml6ZXI7Ci0tIChpZClpbml0V2l0aFZpZXc6KFVJVmlldyAqKXZpZXc7Ci0tICh2
b2lkKWNsZWFyU2VsZWN0aW9uOwotLSAodm9pZClkaWRFbmRTY3JvbGxpbmdPclpvb21pbmdQYWdl
OwotLSAodm9pZClkaWRFbmRTY3JvbGxpbmdPdmVyZmxvdzsKLS0gKHZvaWQpcmVzaWduZWRGaXJz
dFJlc3BvbmRlcjsKLS0gKHZvaWQpc2VsZWN0aW9uQ2hhbmdlZDsKLS0gKHZvaWQpc2V0R2VzdHVy
ZVJlY29nbml6ZXJzOwotLSAodm9pZCl3aWxsU3RhcnRTY3JvbGxpbmdPclpvb21pbmdQYWdlOwot
LSAodm9pZCl3aWxsU3RhcnRTY3JvbGxpbmdPdmVyZmxvdzsKLSNpZiAhUExBVEZPUk0oSU9TTUFD
KQotQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikgVUlXZWJTZWxlY3Rpb25WaWV3ICpzZWxl
Y3Rpb25WaWV3OwotI2VuZGlmCi1AcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVj
dCBzZWxlY3Rpb25GcmFtZTsKLUBlbmQKLQogdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgVUlX
S1NlbGVjdGlvblRvdWNoKSB7CiAgICAgVUlXS1NlbGVjdGlvblRvdWNoU3RhcnRlZCA9IDAsCiAg
ICAgVUlXS1NlbGVjdGlvblRvdWNoTW92ZWQgPSAxLApAQCAtNTg2LDI0ICs1NjIsOSBAQCB0eXBl
ZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBVSVdLR2VzdHVyZVR5cGUpIHsKICAgICBVSVdLR2VzdHVy
ZVR3b0ZpbmdlclNpbmdsZVRhcCA9IDEwLAogICAgIFVJV0tHZXN0dXJlVHdvRmluZ2VyUmFuZ2Vk
U2VsZWN0R2VzdHVyZSA9IDExLAogICAgIFVJV0tHZXN0dXJlVGFwT25MaW5rV2l0aEdlc3R1cmUg
PSAxMiwKLSAgICBVSVdLR2VzdHVyZU1ha2VXZWJTZWxlY3Rpb24gPSAxMywKICAgICBVSVdLR2Vz
dHVyZVBocmFzZUJvdW5kYXJ5ID0gMTQsCiB9OwogCi1AaW50ZXJmYWNlIFVJV0tTZWxlY3Rpb25B
c3Npc3RhbnQgOiBVSVdlYlNlbGVjdGlvbkFzc2lzdGFudAotQGVuZAotCi1AaW50ZXJmYWNlIFVJ
V0tTZWxlY3Rpb25Bc3Npc3RhbnQgKCkKLS0gKEJPT0wpc2hvdWxkSGFuZGxlU2luZ2xlVGFwQXRQ
b2ludDooQ0dQb2ludClwb2ludDsKLS0gKHZvaWQpc2VsZWN0aW9uQ2hhbmdlZFdpdGhHZXN0dXJl
QXQ6KENHUG9pbnQpcG9pbnQgd2l0aEdlc3R1cmU6KFVJV0tHZXN0dXJlVHlwZSlnZXN0dXJlVHlw
ZSB3aXRoU3RhdGU6KFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZSlnZXN0dXJlU3RhdGUgd2l0aEZs
YWdzOihVSVdLU2VsZWN0aW9uRmxhZ3MpZmxhZ3M7Ci0tICh2b2lkKXNlbGVjdGlvbkNoYW5nZWRX
aXRoVG91Y2hBdDooQ0dQb2ludClwb2ludCB3aXRoU2VsZWN0aW9uVG91Y2g6KFVJV0tTZWxlY3Rp
b25Ub3VjaCl0b3VjaCB3aXRoRmxhZ3M6KFVJV0tTZWxlY3Rpb25GbGFncylmbGFnczsKLS0gKHZv
aWQpc2hvd0RpY3Rpb25hcnlGb3I6KE5TU3RyaW5nICopc2VsZWN0ZWRUZXJtIGZyb21SZWN0OihD
R1JlY3QpcHJlc2VudGF0aW9uUmVjdDsKLS0gKHZvaWQpc2hvd1NoYXJlU2hlZXRGb3I6KE5TU3Ry
aW5nICopc2VsZWN0ZWRUZXJtIGZyb21SZWN0OihDR1JlY3QpcHJlc2VudGF0aW9uUmVjdDsKLS0g
KHZvaWQpc2hvd1RleHRTZXJ2aWNlRm9yOihOU1N0cmluZyAqKXNlbGVjdGVkVGVybSBmcm9tUmVj
dDooQ0dSZWN0KXByZXNlbnRhdGlvblJlY3Q7Ci0tICh2b2lkKWxvb2t1cDooTlNTdHJpbmcgKil0
ZXh0V2l0aENvbnRleHQgd2l0aFJhbmdlOihOU1JhbmdlKXJhbmdlIGZyb21SZWN0OihDR1JlY3Qp
cHJlc2VudGF0aW9uUmVjdDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgVUlMb25n
UHJlc3NHZXN0dXJlUmVjb2duaXplciAqc2VsZWN0aW9uTG9uZ1ByZXNzUmVjb2duaXplcjsKLUBl
bmQKLQogQGludGVyZmFjZSBVSVdLQXV0b2NvcnJlY3Rpb25SZWN0cyA6IE5TT2JqZWN0CiBAZW5k
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9HZXN0dXJlVHlwZXMuaCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9HZXN0dXJlVHlwZXMuaAppbmRleCA2ODQ1MGQwZDYw
MjQwNmRkZmFhMmQxYzgwZjliNjQ3ZDliMjJjYmRjLi42ODZmMGQ4YmMwNzU3MzRjNjQyZmQ5MDNm
MTExYzUxNWViNDFmNmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvR2Vz
dHVyZVR5cGVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvaW9zL0dlc3R1cmVUeXBlcy5o
CkBAIC00Miw3ICs0Miw2IEBAIGVudW0gY2xhc3MgR2VzdHVyZVR5cGUgewogICAgIFR3b0Zpbmdl
clNpbmdsZVRhcCwKICAgICBUd29GaW5nZXJSYW5nZWRTZWxlY3RHZXN0dXJlLAogICAgIFRhcE9u
TGlua1dpdGhHZXN0dXJlLAotICAgIE1ha2VXZWJTZWxlY3Rpb24sCiAgICAgUGhyYXNlQm91bmRh
cnkKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDJmYmJhNzVmZWM3ZWIwMTBkYzk2MmY0NDNiZDBj
MWZiYjI0NTk1ZWYuLjU4MmMwNWE3Y2VlNzVjYzUxY2E5NTg4Njk1OWM0ZTYyMmE5MzNhNmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQpAQCAtMzI3OCw4ICszMjc4LDYgQEAgc3RhdGljIGlubGluZSBXZWJLaXQ6
Okdlc3R1cmVUeXBlIHRvR2VzdHVyZVR5cGUoVUlXS0dlc3R1cmVUeXBlIGdlc3R1cmVUeXBlKQog
ICAgICAgICByZXR1cm4gV2ViS2l0OjpHZXN0dXJlVHlwZTo6VHdvRmluZ2VyUmFuZ2VkU2VsZWN0
R2VzdHVyZTsKICAgICBjYXNlIFVJV0tHZXN0dXJlVGFwT25MaW5rV2l0aEdlc3R1cmU6CiAgICAg
ICAgIHJldHVybiBXZWJLaXQ6Okdlc3R1cmVUeXBlOjpUYXBPbkxpbmtXaXRoR2VzdHVyZTsKLSAg
ICBjYXNlIFVJV0tHZXN0dXJlTWFrZVdlYlNlbGVjdGlvbjoKLSAgICAgICAgcmV0dXJuIFdlYktp
dDo6R2VzdHVyZVR5cGU6Ok1ha2VXZWJTZWxlY3Rpb247CiAgICAgY2FzZSBVSVdLR2VzdHVyZVBo
cmFzZUJvdW5kYXJ5OgogICAgICAgICByZXR1cm4gV2ViS2l0OjpHZXN0dXJlVHlwZTo6UGhyYXNl
Qm91bmRhcnk7CiAgICAgfQpAQCAtMzMxNiw4ICszMzE0LDYgQEAgc3RhdGljIGlubGluZSBVSVdL
R2VzdHVyZVR5cGUgdG9VSVdLR2VzdHVyZVR5cGUoV2ViS2l0OjpHZXN0dXJlVHlwZSBnZXN0dXJl
VHlwZSkKICAgICAgICAgcmV0dXJuIFVJV0tHZXN0dXJlVHdvRmluZ2VyUmFuZ2VkU2VsZWN0R2Vz
dHVyZTsKICAgICBjYXNlIFdlYktpdDo6R2VzdHVyZVR5cGU6OlRhcE9uTGlua1dpdGhHZXN0dXJl
OgogICAgICAgICByZXR1cm4gVUlXS0dlc3R1cmVUYXBPbkxpbmtXaXRoR2VzdHVyZTsKLSAgICBj
YXNlIFdlYktpdDo6R2VzdHVyZVR5cGU6Ok1ha2VXZWJTZWxlY3Rpb246Ci0gICAgICAgIHJldHVy
biBVSVdLR2VzdHVyZU1ha2VXZWJTZWxlY3Rpb247CiAgICAgY2FzZSBXZWJLaXQ6Okdlc3R1cmVU
eXBlOjpQaHJhc2VCb3VuZGFyeToKICAgICAgICAgcmV0dXJuIFVJV0tHZXN0dXJlUGhyYXNlQm91
bmRhcnk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
UERGVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW0KaW5k
ZXggZDJmNGZmM2I4YzVmMDg1YjA5MmU3MGJjM2E2Mzc4YzczNjc3YTAxOS4uNDdhOTA4NDcwZjA0
MWMxYzU5ZGVjNzkxM2MyYjEyNzEyZGY3Y2JiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLUERGVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tQREZWaWV3Lm1tCkBAIC01MjIsOCArNTIyLDcgQEAgc3RhdGljIE5TU3RyaW5nQ29tcGFy
ZU9wdGlvbnMgc3RyaW5nQ29tcGFyZU9wdGlvbnMoX1dLRmluZE9wdGlvbnMgZmluZE9wdGlvbnMp
CiAKIC0gKHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQg
Kilhc3Npc3RhbnQgc2hhcmVFbGVtZW50V2l0aFVSTDooTlNVUkwgKil1cmwgcmVjdDooQ0dSZWN0
KWJvdW5kaW5nUmVjdAogewotICAgIGF1dG8gc2VsZWN0aW9uQXNzaXN0YW50ID0gYWRvcHROUyhb
W1VJV0tTZWxlY3Rpb25Bc3Npc3RhbnQgYWxsb2NdIGluaXRXaXRoVmlldzpbX2hvc3RWaWV3Q29u
dHJvbGxlciB2aWV3XV0pOwotICAgIFtzZWxlY3Rpb25Bc3Npc3RhbnQgc2hvd1NoYXJlU2hlZXRG
b3I6V1RGOjp1c2VyVmlzaWJsZVN0cmluZyh1cmwpIGZyb21SZWN0OmJvdW5kaW5nUmVjdF07Cisg
ICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgaG93IHRvIGRvIHRoaXMgd2l0aCBXS1NoYXJlU2hlZXQu
CiB9CiAKICNpZiBIQVZFKEFQUF9MSU5LUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAppbmRleCBmMmIyNGMyODMzNDM3ZDg5NzBkYjhjMmI0MmQ4NDNhYjI5NmVi
NzVmLi4yOGIwMmE3ZjUzZTA3OWY4NzM4YThjNzkxMjFmZDVlZmQyYzY5NmU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMjM4LDcgKzEyMzgsNiBA
QCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlVmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0
cygpOwogCiAgICAgc3RhdGljIHZvaWQgY29udmVydFNlbGVjdGlvblJlY3RzVG9Sb290VmlldyhX
ZWJDb3JlOjpGcmFtZVZpZXcqLCBWZWN0b3I8V2ViQ29yZTo6U2VsZWN0aW9uUmVjdD4mKTsKLSAg
ICBSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IHJhbmdlRm9yV2ViU2VsZWN0aW9uQXRQb3NpdGlvbihj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OlZpc2libGVQb3NpdGlvbiYs
IFNlbGVjdGlvbkZsYWdzJik7CiAgICAgdm9pZCBnZXRGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9u
KEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6
ZUFjY2Vzc2liaWxpdHkoKTsKICAgICB2b2lkIGdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1h
bmQoU3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlKTsKQEAgLTE4NTAsNyArMTg0OSw2IEBAIHBy
aXZhdGU6CiAKICAgICBSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IG1faW5pdGlhbFNlbGVjdGlvbjsK
ICAgICBXZWJDb3JlOjpWaXNpYmxlU2VsZWN0aW9uIG1fc3RvcmVkU2VsZWN0aW9uRm9yQWNjZXNz
aWJpbGl0eSB7IFdlYkNvcmU6OlZpc2libGVTZWxlY3Rpb24oKSB9OwotICAgIFdlYkNvcmU6Oklu
dFNpemUgbV9ibG9ja1NlbGVjdGlvbkRlc2lyZWRTaXplOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6
ZSBtX21heGltdW1Vbm9ic2N1cmVkU2l6ZTsKICAgICBpbnQzMl90IG1fZGV2aWNlT3JpZW50YXRp
b24geyAwIH07CiAgICAgYm9vbCBtX2tleWJvYXJkSXNBdHRhY2hlZCB7IGZhbHNlIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmlu
ZGV4IGM5Y2UxOGYxZjI1MTljZjhkODAwOGJmNmI5NWVlOGMyZjJjMjI1ZTguLmZiMWRkZGUyYWIz
OTM0NjdhMzUzNDAyNDk0MWQ1ZjliOGQyNDFiZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0xMzMsOSArMTMzLDYgQEAK
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLWNvbnN0IGlu
dCBibG9ja1NlbGVjdGlvblN0YXJ0V2lkdGggPSAxMDA7Ci1jb25zdCBpbnQgYmxvY2tTZWxlY3Rp
b25TdGFydEhlaWdodCA9IDEwMDsKLQogdm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUo
KQogewogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZUFjY2Vzc2liaWxpdHkoKTsKQEAgLTEyMzUsOTMg
KzEyMzIsNiBAQCBzdGF0aWMgSW50UmVjdCBzZWxlY3Rpb25Cb3hGb3JSYW5nZShXZWJDb3JlOjpS
YW5nZSogcmFuZ2UpCiAgICAgcmV0dXJuIGJvdW5kaW5nUmVjdDsKIH0KIAotc3RhdGljIGJvb2wg
Y2FuU2hyaW5rVG9UZXh0U2VsZWN0aW9uKE5vZGUqIG5vZGUpCi17Ci0gICAgaWYgKG5vZGUgJiYg
IWlzPEVsZW1lbnQ+KCpub2RlKSkKLSAgICAgICAgbm9kZSA9IG5vZGUtPnBhcmVudEVsZW1lbnQo
KTsKLSAgICAKLSAgICBhdXRvKiByZW5kZXJlciA9IChub2RlKSA/IG5vZGUtPnJlbmRlcmVyKCkg
OiBudWxscHRyOwotICAgIHJldHVybiByZW5kZXJlciAmJiByZW5kZXJlci0+Y2hpbGRyZW5Jbmxp
bmUoKSAmJiAoaXM8UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikgJiYgIWRvd25jYXN0PFJlbmRlckJs
b2NrPigqcmVuZGVyZXIpLmlubGluZUNvbnRpbnVhdGlvbigpKSAmJiAhcmVuZGVyZXItPmlzVGFi
bGUoKTsKLX0KLQotc3RhdGljIGJvb2wgaGFzQ3VzdG9tTGluZUhlaWdodChOb2RlJiBub2RlKQot
ewotICAgIGF1dG8qIHJlbmRlcmVyID0gbm9kZS5yZW5kZXJlcigpOwotICAgIHJldHVybiByZW5k
ZXJlciAmJiByZW5kZXJlci0+c3R5bGUoKS5saW5lSGVpZ2h0KCkuaXNTcGVjaWZpZWQoKTsKLX0K
LSAgICAKLVJlZlB0cjxSYW5nZT4gV2ViUGFnZTo6cmFuZ2VGb3JXZWJTZWxlY3Rpb25BdFBvc2l0
aW9uKGNvbnN0IEludFBvaW50JiBwb2ludCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlv
biwgU2VsZWN0aW9uRmxhZ3MmIGZsYWdzKQotewotICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0ID0g
bV9wYWdlLT5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2ludCgo
cG9pbnQpLCBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHkgfCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZl
IHwgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCB8IEhpdFRl
c3RSZXF1ZXN0OjpBbGxvd0NoaWxkRnJhbWVDb250ZW50KTsKLQotICAgIE5vZGUqIGN1cnJlbnRO
b2RlID0gcmVzdWx0LmlubmVyTm9kZSgpOwotICAgIGlmICghY3VycmVudE5vZGUpCi0gICAgICAg
IHJldHVybiBudWxscHRyOwotICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2U7Ci0gICAgRmxvYXRSZWN0
IGJvdW5kaW5nUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzOwotCi0gICAgaWYgKCFjdXJyZW50
Tm9kZS0+aXNUZXh0Tm9kZSgpICYmICFjYW5TaHJpbmtUb1RleHRTZWxlY3Rpb24oY3VycmVudE5v
ZGUpICYmIGhhc0N1c3RvbUxpbmVIZWlnaHQoKmN1cnJlbnROb2RlKSkgewotICAgICAgICBhdXRv
KiByZW5kZXJlciA9IGN1cnJlbnROb2RlLT5yZW5kZXJlcigpOwotICAgICAgICBpZiAoaXM8UmVu
ZGVyQmxvY2tGbG93PihyZW5kZXJlcikpIHsKLSAgICAgICAgICAgIGF1dG8qIHJlbmRlclRleHQg
PSBkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KCpyZW5kZXJlcikuZmluZENsb3Nlc3RUZXh0QXRB
YnNvbHV0ZVBvaW50KHBvaW50KTsKLSAgICAgICAgICAgIGlmIChyZW5kZXJUZXh0ICYmIHJlbmRl
clRleHQtPnRleHROb2RlKCkpCi0gICAgICAgICAgICAgICAgY3VycmVudE5vZGUgPSByZW5kZXJU
ZXh0LT50ZXh0Tm9kZSgpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgaWYgKGN1cnJlbnROb2Rl
LT5pc1RleHROb2RlKCkpIHsKLSAgICAgICAgcmFuZ2UgPSBlbmNsb3NpbmdUZXh0VW5pdE9mR3Jh
bnVsYXJpdHkocG9zaXRpb24sIFBhcmFncmFwaEdyYW51bGFyaXR5LCBEaXJlY3Rpb25Gb3J3YXJk
KTsKLSAgICAgICAgaWYgKCFyYW5nZSB8fCByYW5nZS0+Y29sbGFwc2VkKCkpCi0gICAgICAgICAg
ICByYW5nZSA9IFJhbmdlOjpjcmVhdGUoY3VycmVudE5vZGUtPmRvY3VtZW50KCksIHBvc2l0aW9u
LCBwb3NpdGlvbik7Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgbV9ibG9ja1JlY3RGb3JU
ZXh0U2VsZWN0aW9uID0gc2VsZWN0aW9uQm94Rm9yUmFuZ2UocmFuZ2UuZ2V0KCkpOwotICAgICAg
ICAgICAgcmFuZ2UgPSB3b3JkUmFuZ2VGcm9tUG9zaXRpb24ocG9zaXRpb24pOwotICAgICAgICB9
Ci0KLSAgICAgICAgcmV0dXJuIHJhbmdlOwotICAgIH0KLQotICAgIGlmICghY3VycmVudE5vZGUt
PmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS0+cGFy
ZW50RWxlbWVudCgpOwotCi0gICAgTm9kZSogYmVzdENob2ljZSA9IGN1cnJlbnROb2RlOwotICAg
IHdoaWxlIChjdXJyZW50Tm9kZSkgewotICAgICAgICBpZiAoY3VycmVudE5vZGUtPnJlbmRlcmVy
KCkpIHsKLSAgICAgICAgICAgIGJvdW5kaW5nUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzID0g
Y3VycmVudE5vZGUtPnJlbmRlcmVyKCktPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KHRydWUpOwot
ICAgICAgICAgICAgYm91bmRpbmdSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMuc2NhbGUobV9w
YWdlLT5wYWdlU2NhbGVGYWN0b3IoKSk7Ci0gICAgICAgICAgICBpZiAoYm91bmRpbmdSZWN0SW5T
Y3JvbGxWaWV3Q29vcmRpbmF0ZXMud2lkdGgoKSA+IG1fYmxvY2tTZWxlY3Rpb25EZXNpcmVkU2l6
ZS53aWR0aCgpICYmIGJvdW5kaW5nUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLmhlaWdodCgp
ID4gbV9ibG9ja1NlbGVjdGlvbkRlc2lyZWRTaXplLmhlaWdodCgpKQotICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgYmVzdENob2ljZSA9IGN1cnJlbnROb2RlOwotICAgICAgICB9
Ci0gICAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUtPnBhcmVudEVsZW1lbnQoKTsKLSAg
ICB9Ci0KLSAgICBpZiAoIWJlc3RDaG9pY2UpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0g
ICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGJlc3RDaG9pY2UtPnJlbmRlcmVyKCk7Ci0gICAg
aWYgKCFyZW5kZXJlciB8fCByZW5kZXJlci0+c3R5bGUoKS51c2VyU2VsZWN0KCkgPT0gVXNlclNl
bGVjdDo6Tm9uZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICBpZiAocmVuZGVyZXIt
PmNoaWxkcmVuSW5saW5lKCkgJiYgKGlzPFJlbmRlckJsb2NrPigqcmVuZGVyZXIpICYmICFkb3du
Y2FzdDxSZW5kZXJCbG9jaz4oKnJlbmRlcmVyKS5pbmxpbmVDb250aW51YXRpb24oKSkgJiYgIXJl
bmRlcmVyLT5pc1RhYmxlKCkpIHsKLSAgICAgICAgcmFuZ2UgPSBlbmNsb3NpbmdUZXh0VW5pdE9m
R3JhbnVsYXJpdHkocG9zaXRpb24sIFdvcmRHcmFudWxhcml0eSwgRGlyZWN0aW9uQmFja3dhcmQp
OwotICAgICAgICBpZiAocmFuZ2UgJiYgIXJhbmdlLT5jb2xsYXBzZWQoKSkKLSAgICAgICAgICAg
IHJldHVybiByYW5nZTsKLSAgICB9Ci0KLSAgICAvLyBJZiBhbGwgd2UgY291bGQgZmluZCBpcyBh
IGJsb2NrIHdob3NlIGhlaWdodCBpcyB2ZXJ5IGNsb3NlIHRvIHRoZSBoZWlnaHQKLSAgICAvLyBv
ZiB0aGUgdmlzaWJsZSBhcmVhLCBkb24ndCB1c2UgaXQuCi0gICAgY29uc3QgZmxvYXQgYWRqdXN0
bWVudEZhY3RvciA9IC45NzsKLSAgICBib3VuZGluZ1JlY3RJblNjcm9sbFZpZXdDb29yZGluYXRl
cyA9IHJlbmRlcmVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCh0cnVlKTsKLQotICAgIGlmIChi
b3VuZGluZ1JlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcy5oZWlnaHQoKSA+IG1fcGFnZS0+bWFp
bkZyYW1lKCkudmlldygpLT5leHBvc2VkQ29udGVudFJlY3QoKS5oZWlnaHQoKSAqIGFkanVzdG1l
bnRGYWN0b3IpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgcmFuZ2UgPSBSYW5nZTo6
Y3JlYXRlKGJlc3RDaG9pY2UtPmRvY3VtZW50KCkpOwotICAgIHJhbmdlLT5zZWxlY3ROb2RlQ29u
dGVudHMoKmJlc3RDaG9pY2UpOwotICAgIHJldHVybiByYW5nZS0+Y29sbGFwc2VkKCkgPyBudWxs
cHRyIDogcmFuZ2U7Ci19Ci0KIHZvaWQgV2ViUGFnZTo6c2VsZWN0V2l0aEdlc3R1cmUoY29uc3Qg
SW50UG9pbnQmIHBvaW50LCB1aW50MzJfdCBncmFudWxhcml0eSwgdWludDMyX3QgZ2VzdHVyZVR5
cGUsIHVpbnQzMl90IGdlc3R1cmVTdGF0ZSwgYm9vbCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRF
bGVtZW50LCBDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgYXV0byYgZnJhbWUgPSBtX3Bh
Z2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwpAQCAtMTQ2NSwxNCAr
MTM3NSw2IEBAIHZvaWQgV2ViUGFnZTo6c2VsZWN0V2l0aEdlc3R1cmUoY29uc3QgSW50UG9pbnQm
IHBvaW50LCB1aW50MzJfdCBncmFudWxhcml0eSwgdWluCiAgICAgICAgICAgICByYW5nZSA9IGVu
Y2xvc2luZ1RleHRVbml0T2ZHcmFudWxhcml0eShwb3NpdGlvbiwgUGFyYWdyYXBoR3JhbnVsYXJp
dHksIERpcmVjdGlvbkZvcndhcmQpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgR2VzdHVy
ZVR5cGU6Ok1ha2VXZWJTZWxlY3Rpb246Ci0gICAgICAgIGlmICh3a0dlc3R1cmVTdGF0ZSA9PSBH
ZXN0dXJlUmVjb2duaXplclN0YXRlOjpCZWdhbikgewotICAgICAgICAgICAgbV9ibG9ja1NlbGVj
dGlvbkRlc2lyZWRTaXplLnNldFdpZHRoKGJsb2NrU2VsZWN0aW9uU3RhcnRXaWR0aCk7Ci0gICAg
ICAgICAgICBtX2Jsb2NrU2VsZWN0aW9uRGVzaXJlZFNpemUuc2V0SGVpZ2h0KGJsb2NrU2VsZWN0
aW9uU3RhcnRIZWlnaHQpOwotICAgICAgICB9Ci0gICAgICAgIHJhbmdlID0gcmFuZ2VGb3JXZWJT
ZWxlY3Rpb25BdFBvc2l0aW9uKHBvaW50LCBwb3NpdGlvbiwgZmxhZ3MpOwotICAgICAgICBicmVh
azsKLQogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTIwNTYsOCArMTk1
OCw2IEBAIHZvaWQgV2ViUGFnZTo6c2VsZWN0VGV4dFdpdGhHcmFudWxhcml0eUF0UG9pbnQoY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50LCB1CiAgICAgYXV0byYgZnJhbWUgPSBtX3BhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpOwogICAgIFJlZlB0cjxSYW5n
ZT4gcmFuZ2UgPSByYW5nZUZvckdyYW51bGFyaXR5QXRQb2ludChmcmFtZSwgcG9pbnQsIGdyYW51
bGFyaXR5LCBpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50KTsKICAgICBpZiAoIWlzSW50
ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1lbnQpIHsKLSAgICAgICAgbV9ibG9ja1NlbGVjdGlvbkRl
c2lyZWRTaXplLnNldFdpZHRoKGJsb2NrU2VsZWN0aW9uU3RhcnRXaWR0aCk7Ci0gICAgICAgIG1f
YmxvY2tTZWxlY3Rpb25EZXNpcmVkU2l6ZS5zZXRIZWlnaHQoYmxvY2tTZWxlY3Rpb25TdGFydEhl
aWdodCk7CiAgICAgICAgIGF1dG8qIHJlbmRlcmVyID0gcmFuZ2UgPyByYW5nZS0+c3RhcnRDb250
YWluZXIoKS5yZW5kZXJlcigpIDogbnVsbHB0cjsKICAgICAgICAgaWYgKHJlbmRlcmVyICYmIHJl
bmRlcmVyLT5zdHlsZSgpLnByZXNlcnZlTmV3bGluZSgpKQogICAgICAgICAgICAgbV9ibG9ja1Jl
Y3RGb3JUZXh0U2VsZWN0aW9uID0gcmVuZGVyZXItPmFic29sdXRlQm91bmRpbmdCb3hSZWN0KHRy
dWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371251</attachid>
            <date>2019-06-03 23:12:36 -0700</date>
            <delta_ts>2019-06-04 16:27:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198451-20190603231235.patch</filename>
            <type>text/plain</type>
            <size>13695</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2MDEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBkOWNhNWFkNDhjMmJlNmVk
ZDdhMjAwYTZhYTYxNDM4ZjBlYjQzM2IuLmE5OTE1YjQ0ZGE1MzkwNjkwMWU1NGMxNGRhNzg0NDUy
NWExMDkzMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTktMDYtMDEgIFRpbSBIb3J0
b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNvbWUgdW51
c2VkIHNlbGVjdGlvbiBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTg0NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFBsYXRmb3JtL3NwaS9pb3MvVUlLaXRTUEkuaDoKKyAgICAgICAgKiBTaGFy
ZWQvaW9zL0dlc3R1cmVUeXBlcy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAodG9HZXN0dXJlVHlwZSk6CisgICAgICAgICh0
b1VJV0tHZXN0dXJlVHlwZSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW06
CisgICAgICAgICgtW1dLUERGVmlldyBhY3Rpb25TaGVldEFzc2lzdGFudDpzaGFyZUVsZW1lbnRX
aXRoVVJMOnJlY3Q6XSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnNlbGVjdFdpdGhHZXN0dXJlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6c2VsZWN0VGV4dFdpdGhHcmFudWxhcml0eUF0UG9pbnQpOgorICAgICAgICAoV2Vi
S2l0OjpjYW5TaHJpbmtUb1RleHRTZWxlY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpoYXNDdXN0b21MaW5lSGVpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6cmFuZ2VGb3JXZWJTZWxlY3Rpb25BdFBvc2l0aW9uKTogRGVsZXRlZC4KKwogMjAxOS0wNS0z
MSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEVu
c3VyZSBrZXlib2FyZCBlZGl0aW5nIGlzIHVwIHRvIGRhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9zcGkvaW9zL1VJS2l0U1BJLmgKaW5kZXggYzRjODEwNWM4Mzc4NGQ0MzE1NTNmMjdiNzI1ODZk
ODgyNWJlNzlkNS4uNTU1MmUwNTJhNDQ4MDYxODQyNjU5YmJlZTAzNTA5NzViODQyZjhhOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKKysrIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmgKQEAgLTUzMCwzMyArNTMw
LDEwIEBAIHR5cGVkZWYgTlNfRU5VTSAoTlNJbnRlZ2VyLCBfVUlCYWNrZHJvcE1hc2tWaWV3Rmxh
Z3MpIHsKIC0gKFVJQ29sb3IgKilfaW5oZXJpdGVkSW50ZXJhY3Rpb25UaW50Q29sb3I7CiBAZW5k
CiAKLUBpbnRlcmZhY2UgVUlXZWJTZWxlY3Rpb25WaWV3IDogVUlWaWV3Ci1AZW5kCi0KLUBpbnRl
cmZhY2UgVUlXZWJTZWxlY3Rpb25Bc3Npc3RhbnQgOiBOU09iamVjdCA8VUlHZXN0dXJlUmVjb2du
aXplckRlbGVnYXRlPgotQGVuZAotCiBAcHJvdG9jb2wgVUlTZWxlY3Rpb25JbnRlcmFjdGlvbkFz
c2lzdGFudAogLSAodm9pZClzaG93U2VsZWN0aW9uQ29tbWFuZHM7CiBAZW5kCiAKLUBpbnRlcmZh
Y2UgVUlXZWJTZWxlY3Rpb25Bc3Npc3RhbnQgKCkKLS0gKEJPT0wpaXNTZWxlY3Rpb25HZXN0dXJl
UmVjb2duaXplcjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyOwotLSAo
aWQpaW5pdFdpdGhWaWV3OihVSVZpZXcgKil2aWV3OwotLSAodm9pZCljbGVhclNlbGVjdGlvbjsK
LS0gKHZvaWQpZGlkRW5kU2Nyb2xsaW5nT3Jab29taW5nUGFnZTsKLS0gKHZvaWQpZGlkRW5kU2Ny
b2xsaW5nT3ZlcmZsb3c7Ci0tICh2b2lkKXJlc2lnbmVkRmlyc3RSZXNwb25kZXI7Ci0tICh2b2lk
KXNlbGVjdGlvbkNoYW5nZWQ7Ci0tICh2b2lkKXNldEdlc3R1cmVSZWNvZ25pemVyczsKLS0gKHZv
aWQpd2lsbFN0YXJ0U2Nyb2xsaW5nT3Jab29taW5nUGFnZTsKLS0gKHZvaWQpd2lsbFN0YXJ0U2Ny
b2xsaW5nT3ZlcmZsb3c7Ci0jaWYgIVBMQVRGT1JNKElPU01BQykKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZXRhaW4pIFVJV2ViU2VsZWN0aW9uVmlldyAqc2VsZWN0aW9uVmlldzsKLSNlbmRpZgot
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1JlY3Qgc2VsZWN0aW9uRnJhbWU7Ci1A
ZW5kCi0KIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFVJV0tTZWxlY3Rpb25Ub3VjaCkgewog
ICAgIFVJV0tTZWxlY3Rpb25Ub3VjaFN0YXJ0ZWQgPSAwLAogICAgIFVJV0tTZWxlY3Rpb25Ub3Vj
aE1vdmVkID0gMSwKQEAgLTU4NiwyMiArNTYzLDE4IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVn
ZXIsIFVJV0tHZXN0dXJlVHlwZSkgewogICAgIFVJV0tHZXN0dXJlVHdvRmluZ2VyU2luZ2xlVGFw
ID0gMTAsCiAgICAgVUlXS0dlc3R1cmVUd29GaW5nZXJSYW5nZWRTZWxlY3RHZXN0dXJlID0gMTEs
CiAgICAgVUlXS0dlc3R1cmVUYXBPbkxpbmtXaXRoR2VzdHVyZSA9IDEyLAotICAgIFVJV0tHZXN0
dXJlTWFrZVdlYlNlbGVjdGlvbiA9IDEzLAogICAgIFVJV0tHZXN0dXJlUGhyYXNlQm91bmRhcnkg
PSAxNCwKIH07CiAKK0BpbnRlcmZhY2UgVUlXZWJTZWxlY3Rpb25Bc3Npc3RhbnQgOiBOU09iamVj
dAorQGVuZAorCiBAaW50ZXJmYWNlIFVJV0tTZWxlY3Rpb25Bc3Npc3RhbnQgOiBVSVdlYlNlbGVj
dGlvbkFzc2lzdGFudAogQGVuZAogCiBAaW50ZXJmYWNlIFVJV0tTZWxlY3Rpb25Bc3Npc3RhbnQg
KCkKLS0gKEJPT0wpc2hvdWxkSGFuZGxlU2luZ2xlVGFwQXRQb2ludDooQ0dQb2ludClwb2ludDsK
LS0gKHZvaWQpc2VsZWN0aW9uQ2hhbmdlZFdpdGhHZXN0dXJlQXQ6KENHUG9pbnQpcG9pbnQgd2l0
aEdlc3R1cmU6KFVJV0tHZXN0dXJlVHlwZSlnZXN0dXJlVHlwZSB3aXRoU3RhdGU6KFVJR2VzdHVy
ZVJlY29nbml6ZXJTdGF0ZSlnZXN0dXJlU3RhdGUgd2l0aEZsYWdzOihVSVdLU2VsZWN0aW9uRmxh
Z3MpZmxhZ3M7Ci0tICh2b2lkKXNlbGVjdGlvbkNoYW5nZWRXaXRoVG91Y2hBdDooQ0dQb2ludClw
b2ludCB3aXRoU2VsZWN0aW9uVG91Y2g6KFVJV0tTZWxlY3Rpb25Ub3VjaCl0b3VjaCB3aXRoRmxh
Z3M6KFVJV0tTZWxlY3Rpb25GbGFncylmbGFnczsKLS0gKHZvaWQpc2hvd0RpY3Rpb25hcnlGb3I6
KE5TU3RyaW5nICopc2VsZWN0ZWRUZXJtIGZyb21SZWN0OihDR1JlY3QpcHJlc2VudGF0aW9uUmVj
dDsKKy0gKGlkKWluaXRXaXRoVmlldzooVUlWaWV3ICopdmlldzsKIC0gKHZvaWQpc2hvd1NoYXJl
U2hlZXRGb3I6KE5TU3RyaW5nICopc2VsZWN0ZWRUZXJtIGZyb21SZWN0OihDR1JlY3QpcHJlc2Vu
dGF0aW9uUmVjdDsKLS0gKHZvaWQpc2hvd1RleHRTZXJ2aWNlRm9yOihOU1N0cmluZyAqKXNlbGVj
dGVkVGVybSBmcm9tUmVjdDooQ0dSZWN0KXByZXNlbnRhdGlvblJlY3Q7Ci0tICh2b2lkKWxvb2t1
cDooTlNTdHJpbmcgKil0ZXh0V2l0aENvbnRleHQgd2l0aFJhbmdlOihOU1JhbmdlKXJhbmdlIGZy
b21SZWN0OihDR1JlY3QpcHJlc2VudGF0aW9uUmVjdDsKLUBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgVUlMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplciAqc2VsZWN0aW9uTG9uZ1ByZXNz
UmVjb2duaXplcjsKIEBlbmQKIAogQGludGVyZmFjZSBVSVdLQXV0b2NvcnJlY3Rpb25SZWN0cyA6
IE5TT2JqZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvR2VzdHVyZVR5
cGVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvR2VzdHVyZVR5cGVzLmgKaW5kZXggNjg0
NTBkMGQ2MDI0MDZkZGZhYTJkMWM4MGY5YjY0N2Q5YjIyY2JkYy4uNjg2ZjBkOGJjMDc1NzM0YzY0
MmZkOTAzZjExMWM1MTVlYjQxZjZjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
aW9zL0dlc3R1cmVUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9HZXN0dXJl
VHlwZXMuaApAQCAtNDIsNyArNDIsNiBAQCBlbnVtIGNsYXNzIEdlc3R1cmVUeXBlIHsKICAgICBU
d29GaW5nZXJTaW5nbGVUYXAsCiAgICAgVHdvRmluZ2VyUmFuZ2VkU2VsZWN0R2VzdHVyZSwKICAg
ICBUYXBPbkxpbmtXaXRoR2VzdHVyZSwKLSAgICBNYWtlV2ViU2VsZWN0aW9uLAogICAgIFBocmFz
ZUJvdW5kYXJ5CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCAyZmJiYTc1ZmVjN2ViMDEwZGM5NjJm
NDQzYmQwYzFmYmIyNDU5NWVmLi41ODJjMDVhN2NlZTc1Y2M1MWNhOTU4ODY5NTljNGU2MjJhOTMz
YTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTMyNzgsOCArMzI3OCw2IEBAIHN0YXRpYyBpbmxpbmUg
V2ViS2l0OjpHZXN0dXJlVHlwZSB0b0dlc3R1cmVUeXBlKFVJV0tHZXN0dXJlVHlwZSBnZXN0dXJl
VHlwZSkKICAgICAgICAgcmV0dXJuIFdlYktpdDo6R2VzdHVyZVR5cGU6OlR3b0ZpbmdlclJhbmdl
ZFNlbGVjdEdlc3R1cmU7CiAgICAgY2FzZSBVSVdLR2VzdHVyZVRhcE9uTGlua1dpdGhHZXN0dXJl
OgogICAgICAgICByZXR1cm4gV2ViS2l0OjpHZXN0dXJlVHlwZTo6VGFwT25MaW5rV2l0aEdlc3R1
cmU7Ci0gICAgY2FzZSBVSVdLR2VzdHVyZU1ha2VXZWJTZWxlY3Rpb246Ci0gICAgICAgIHJldHVy
biBXZWJLaXQ6Okdlc3R1cmVUeXBlOjpNYWtlV2ViU2VsZWN0aW9uOwogICAgIGNhc2UgVUlXS0dl
c3R1cmVQaHJhc2VCb3VuZGFyeToKICAgICAgICAgcmV0dXJuIFdlYktpdDo6R2VzdHVyZVR5cGU6
OlBocmFzZUJvdW5kYXJ5OwogICAgIH0KQEAgLTMzMTYsOCArMzMxNCw2IEBAIHN0YXRpYyBpbmxp
bmUgVUlXS0dlc3R1cmVUeXBlIHRvVUlXS0dlc3R1cmVUeXBlKFdlYktpdDo6R2VzdHVyZVR5cGUg
Z2VzdHVyZVR5cGUpCiAgICAgICAgIHJldHVybiBVSVdLR2VzdHVyZVR3b0ZpbmdlclJhbmdlZFNl
bGVjdEdlc3R1cmU7CiAgICAgY2FzZSBXZWJLaXQ6Okdlc3R1cmVUeXBlOjpUYXBPbkxpbmtXaXRo
R2VzdHVyZToKICAgICAgICAgcmV0dXJuIFVJV0tHZXN0dXJlVGFwT25MaW5rV2l0aEdlc3R1cmU7
Ci0gICAgY2FzZSBXZWJLaXQ6Okdlc3R1cmVUeXBlOjpNYWtlV2ViU2VsZWN0aW9uOgotICAgICAg
ICByZXR1cm4gVUlXS0dlc3R1cmVNYWtlV2ViU2VsZWN0aW9uOwogICAgIGNhc2UgV2ViS2l0OjpH
ZXN0dXJlVHlwZTo6UGhyYXNlQm91bmRhcnk6CiAgICAgICAgIHJldHVybiBVSVdLR2VzdHVyZVBo
cmFzZUJvdW5kYXJ5OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS1BERlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tQREZWaWV3
Lm1tCmluZGV4IGQyZjRmZjNiOGM1ZjA4NWIwOTJlNzBiYzNhNjM3OGM3MzY3N2EwMTkuLjZjNTAw
ZmRhZDQ3ZDUzMjEwMzAyMWY5MWIwZGYzMWI2M2NiYWRlNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS1BERlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLUERGVmlldy5tbQpAQCAtNTIyLDYgKzUyMiw3IEBAIHN0YXRpYyBOU1N0cmlu
Z0NvbXBhcmVPcHRpb25zIHN0cmluZ0NvbXBhcmVPcHRpb25zKF9XS0ZpbmRPcHRpb25zIGZpbmRP
cHRpb25zKQogCiAtICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNz
aXN0YW50ICopYXNzaXN0YW50IHNoYXJlRWxlbWVudFdpdGhVUkw6KE5TVVJMICopdXJsIHJlY3Q6
KENHUmVjdClib3VuZGluZ1JlY3QKIHsKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHVzZSBXS1No
YXJlU2hlZXQgaW5zdGVhZCBvZiBVSVdLU2VsZWN0aW9uQXNzaXN0YW50IGZvciB0aGlzLgogICAg
IGF1dG8gc2VsZWN0aW9uQXNzaXN0YW50ID0gYWRvcHROUyhbW1VJV0tTZWxlY3Rpb25Bc3Npc3Rh
bnQgYWxsb2NdIGluaXRXaXRoVmlldzpbX2hvc3RWaWV3Q29udHJvbGxlciB2aWV3XV0pOwogICAg
IFtzZWxlY3Rpb25Bc3Npc3RhbnQgc2hvd1NoYXJlU2hlZXRGb3I6V1RGOjp1c2VyVmlzaWJsZVN0
cmluZyh1cmwpIGZyb21SZWN0OmJvdW5kaW5nUmVjdF07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggZjJiMjRjMjgzMzQzN2Q4OTcwZGI4YzJiNDJk
ODQzYWIyOTZlYjc1Zi4uMjhiMDJhN2Y1M2UwNzlmODczOGE4Yzc5MTIxZmQ1ZWZkMmM2OTZlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTIzOCw3
ICsxMjM4LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZVZpZXdwb3J0U2l6ZUZvckNTU1Zp
ZXdwb3J0VW5pdHMoKTsKIAogICAgIHN0YXRpYyB2b2lkIGNvbnZlcnRTZWxlY3Rpb25SZWN0c1Rv
Um9vdFZpZXcoV2ViQ29yZTo6RnJhbWVWaWV3KiwgVmVjdG9yPFdlYkNvcmU6OlNlbGVjdGlvblJl
Y3Q+Jik7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlJhbmdlPiByYW5nZUZvcldlYlNlbGVjdGlvbkF0
UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpWaXNpYmxl
UG9zaXRpb24mLCBTZWxlY3Rpb25GbGFncyYpOwogICAgIHZvaWQgZ2V0Rm9jdXNlZEVsZW1lbnRJ
bmZvcm1hdGlvbihGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJik7CiAgICAgdm9pZCBwbGF0Zm9y
bUluaXRpYWxpemVBY2Nlc3NpYmlsaXR5KCk7CiAgICAgdm9pZCBnZW5lcmF0ZVN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kKFN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZSk7CkBAIC0xODUwLDcgKzE4
NDksNiBAQCBwcml2YXRlOgogCiAgICAgUmVmUHRyPFdlYkNvcmU6OlJhbmdlPiBtX2luaXRpYWxT
ZWxlY3Rpb247CiAgICAgV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbiBtX3N0b3JlZFNlbGVjdGlv
bkZvckFjY2Vzc2liaWxpdHkgeyBXZWJDb3JlOjpWaXNpYmxlU2VsZWN0aW9uKCkgfTsKLSAgICBX
ZWJDb3JlOjpJbnRTaXplIG1fYmxvY2tTZWxlY3Rpb25EZXNpcmVkU2l6ZTsKICAgICBXZWJDb3Jl
OjpGbG9hdFNpemUgbV9tYXhpbXVtVW5vYnNjdXJlZFNpemU7CiAgICAgaW50MzJfdCBtX2Rldmlj
ZU9yaWVudGF0aW9uIHsgMCB9OwogICAgIGJvb2wgbV9rZXlib2FyZElzQXR0YWNoZWQgeyBmYWxz
ZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFn
ZUlPUy5tbQppbmRleCBjOWNlMThmMWYyNTE5Y2Y4ZDgwMDhiZjZiOTVlZThjMmYyYzIyNWU4Li5m
YjFkZGRlMmFiMzkzNDY3YTM1MzQwMjQ5NDFkNWY5YjhkMjQxYmU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMTMzLDkg
KzEzMyw2IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
Ci1jb25zdCBpbnQgYmxvY2tTZWxlY3Rpb25TdGFydFdpZHRoID0gMTAwOwotY29uc3QgaW50IGJs
b2NrU2VsZWN0aW9uU3RhcnRIZWlnaHQgPSAxMDA7Ci0KIHZvaWQgV2ViUGFnZTo6cGxhdGZvcm1J
bml0aWFsaXplKCkKIHsKICAgICBwbGF0Zm9ybUluaXRpYWxpemVBY2Nlc3NpYmlsaXR5KCk7CkBA
IC0xMjM1LDkzICsxMjMyLDYgQEAgc3RhdGljIEludFJlY3Qgc2VsZWN0aW9uQm94Rm9yUmFuZ2Uo
V2ViQ29yZTo6UmFuZ2UqIHJhbmdlKQogICAgIHJldHVybiBib3VuZGluZ1JlY3Q7CiB9CiAKLXN0
YXRpYyBib29sIGNhblNocmlua1RvVGV4dFNlbGVjdGlvbihOb2RlKiBub2RlKQotewotICAgIGlm
IChub2RlICYmICFpczxFbGVtZW50Pigqbm9kZSkpCi0gICAgICAgIG5vZGUgPSBub2RlLT5wYXJl
bnRFbGVtZW50KCk7Ci0gICAgCi0gICAgYXV0byogcmVuZGVyZXIgPSAobm9kZSkgPyBub2RlLT5y
ZW5kZXJlcigpIDogbnVsbHB0cjsKLSAgICByZXR1cm4gcmVuZGVyZXIgJiYgcmVuZGVyZXItPmNo
aWxkcmVuSW5saW5lKCkgJiYgKGlzPFJlbmRlckJsb2NrPigqcmVuZGVyZXIpICYmICFkb3duY2Fz
dDxSZW5kZXJCbG9jaz4oKnJlbmRlcmVyKS5pbmxpbmVDb250aW51YXRpb24oKSkgJiYgIXJlbmRl
cmVyLT5pc1RhYmxlKCk7Ci19Ci0KLXN0YXRpYyBib29sIGhhc0N1c3RvbUxpbmVIZWlnaHQoTm9k
ZSYgbm9kZSkKLXsKLSAgICBhdXRvKiByZW5kZXJlciA9IG5vZGUucmVuZGVyZXIoKTsKLSAgICBy
ZXR1cm4gcmVuZGVyZXIgJiYgcmVuZGVyZXItPnN0eWxlKCkubGluZUhlaWdodCgpLmlzU3BlY2lm
aWVkKCk7Ci19Ci0gICAgCi1SZWZQdHI8UmFuZ2U+IFdlYlBhZ2U6OnJhbmdlRm9yV2ViU2VsZWN0
aW9uQXRQb3NpdGlvbihjb25zdCBJbnRQb2ludCYgcG9pbnQsIGNvbnN0IFZpc2libGVQb3NpdGlv
biYgcG9zaXRpb24sIFNlbGVjdGlvbkZsYWdzJiBmbGFncykKLXsKLSAgICBIaXRUZXN0UmVzdWx0
IHJlc3VsdCA9IG1fcGFnZS0+bWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJlc3Vs
dEF0UG9pbnQoKHBvaW50KSwgSGl0VGVzdFJlcXVlc3Q6OlJlYWRPbmx5IHwgSGl0VGVzdFJlcXVl
c3Q6OkFjdGl2ZSB8IEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1VzZXJBZ2VudFNoYWRvd0NvbnRl
bnQgfCBIaXRUZXN0UmVxdWVzdDo6QWxsb3dDaGlsZEZyYW1lQ29udGVudCk7Ci0KLSAgICBOb2Rl
KiBjdXJyZW50Tm9kZSA9IHJlc3VsdC5pbm5lck5vZGUoKTsKLSAgICBpZiAoIWN1cnJlbnROb2Rl
KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlOwotICAg
IEZsb2F0UmVjdCBib3VuZGluZ1JlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlczsKLQotICAgIGlm
ICghY3VycmVudE5vZGUtPmlzVGV4dE5vZGUoKSAmJiAhY2FuU2hyaW5rVG9UZXh0U2VsZWN0aW9u
KGN1cnJlbnROb2RlKSAmJiBoYXNDdXN0b21MaW5lSGVpZ2h0KCpjdXJyZW50Tm9kZSkpIHsKLSAg
ICAgICAgYXV0byogcmVuZGVyZXIgPSBjdXJyZW50Tm9kZS0+cmVuZGVyZXIoKTsKLSAgICAgICAg
aWYgKGlzPFJlbmRlckJsb2NrRmxvdz4ocmVuZGVyZXIpKSB7Ci0gICAgICAgICAgICBhdXRvKiBy
ZW5kZXJUZXh0ID0gZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PigqcmVuZGVyZXIpLmZpbmRDbG9z
ZXN0VGV4dEF0QWJzb2x1dGVQb2ludChwb2ludCk7Ci0gICAgICAgICAgICBpZiAocmVuZGVyVGV4
dCAmJiByZW5kZXJUZXh0LT50ZXh0Tm9kZSgpKQotICAgICAgICAgICAgICAgIGN1cnJlbnROb2Rl
ID0gcmVuZGVyVGV4dC0+dGV4dE5vZGUoKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChj
dXJyZW50Tm9kZS0+aXNUZXh0Tm9kZSgpKSB7Ci0gICAgICAgIHJhbmdlID0gZW5jbG9zaW5nVGV4
dFVuaXRPZkdyYW51bGFyaXR5KHBvc2l0aW9uLCBQYXJhZ3JhcGhHcmFudWxhcml0eSwgRGlyZWN0
aW9uRm9yd2FyZCk7Ci0gICAgICAgIGlmICghcmFuZ2UgfHwgcmFuZ2UtPmNvbGxhcHNlZCgpKQot
ICAgICAgICAgICAgcmFuZ2UgPSBSYW5nZTo6Y3JlYXRlKGN1cnJlbnROb2RlLT5kb2N1bWVudCgp
LCBwb3NpdGlvbiwgcG9zaXRpb24pOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIG1fYmxv
Y2tSZWN0Rm9yVGV4dFNlbGVjdGlvbiA9IHNlbGVjdGlvbkJveEZvclJhbmdlKHJhbmdlLmdldCgp
KTsKLSAgICAgICAgICAgIHJhbmdlID0gd29yZFJhbmdlRnJvbVBvc2l0aW9uKHBvc2l0aW9uKTsK
LSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiByYW5nZTsKLSAgICB9Ci0KLSAgICBpZiAoIWN1
cnJlbnROb2RlLT5pc0VsZW1lbnROb2RlKCkpCi0gICAgICAgIGN1cnJlbnROb2RlID0gY3VycmVu
dE5vZGUtPnBhcmVudEVsZW1lbnQoKTsKLQotICAgIE5vZGUqIGJlc3RDaG9pY2UgPSBjdXJyZW50
Tm9kZTsKLSAgICB3aGlsZSAoY3VycmVudE5vZGUpIHsKLSAgICAgICAgaWYgKGN1cnJlbnROb2Rl
LT5yZW5kZXJlcigpKSB7Ci0gICAgICAgICAgICBib3VuZGluZ1JlY3RJblNjcm9sbFZpZXdDb29y
ZGluYXRlcyA9IGN1cnJlbnROb2RlLT5yZW5kZXJlcigpLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVj
dCh0cnVlKTsKLSAgICAgICAgICAgIGJvdW5kaW5nUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVz
LnNjYWxlKG1fcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkpOwotICAgICAgICAgICAgaWYgKGJvdW5k
aW5nUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLndpZHRoKCkgPiBtX2Jsb2NrU2VsZWN0aW9u
RGVzaXJlZFNpemUud2lkdGgoKSAmJiBib3VuZGluZ1JlY3RJblNjcm9sbFZpZXdDb29yZGluYXRl
cy5oZWlnaHQoKSA+IG1fYmxvY2tTZWxlY3Rpb25EZXNpcmVkU2l6ZS5oZWlnaHQoKSkKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGJlc3RDaG9pY2UgPSBjdXJyZW50Tm9kZTsK
LSAgICAgICAgfQotICAgICAgICBjdXJyZW50Tm9kZSA9IGN1cnJlbnROb2RlLT5wYXJlbnRFbGVt
ZW50KCk7Ci0gICAgfQotCi0gICAgaWYgKCFiZXN0Q2hvaWNlKQotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLQotICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBiZXN0Q2hvaWNlLT5yZW5kZXJl
cigpOwotICAgIGlmICghcmVuZGVyZXIgfHwgcmVuZGVyZXItPnN0eWxlKCkudXNlclNlbGVjdCgp
ID09IFVzZXJTZWxlY3Q6Ok5vbmUpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgaWYg
KHJlbmRlcmVyLT5jaGlsZHJlbklubGluZSgpICYmIChpczxSZW5kZXJCbG9jaz4oKnJlbmRlcmVy
KSAmJiAhZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpyZW5kZXJlcikuaW5saW5lQ29udGludWF0aW9u
KCkpICYmICFyZW5kZXJlci0+aXNUYWJsZSgpKSB7Ci0gICAgICAgIHJhbmdlID0gZW5jbG9zaW5n
VGV4dFVuaXRPZkdyYW51bGFyaXR5KHBvc2l0aW9uLCBXb3JkR3JhbnVsYXJpdHksIERpcmVjdGlv
bkJhY2t3YXJkKTsKLSAgICAgICAgaWYgKHJhbmdlICYmICFyYW5nZS0+Y29sbGFwc2VkKCkpCi0g
ICAgICAgICAgICByZXR1cm4gcmFuZ2U7Ci0gICAgfQotCi0gICAgLy8gSWYgYWxsIHdlIGNvdWxk
IGZpbmQgaXMgYSBibG9jayB3aG9zZSBoZWlnaHQgaXMgdmVyeSBjbG9zZSB0byB0aGUgaGVpZ2h0
Ci0gICAgLy8gb2YgdGhlIHZpc2libGUgYXJlYSwgZG9uJ3QgdXNlIGl0LgotICAgIGNvbnN0IGZs
b2F0IGFkanVzdG1lbnRGYWN0b3IgPSAuOTc7Ci0gICAgYm91bmRpbmdSZWN0SW5TY3JvbGxWaWV3
Q29vcmRpbmF0ZXMgPSByZW5kZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3QodHJ1ZSk7Ci0K
LSAgICBpZiAoYm91bmRpbmdSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMuaGVpZ2h0KCkgPiBt
X3BhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKS0+ZXhwb3NlZENvbnRlbnRSZWN0KCkuaGVpZ2h0KCkg
KiBhZGp1c3RtZW50RmFjdG9yKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJhbmdl
ID0gUmFuZ2U6OmNyZWF0ZShiZXN0Q2hvaWNlLT5kb2N1bWVudCgpKTsKLSAgICByYW5nZS0+c2Vs
ZWN0Tm9kZUNvbnRlbnRzKCpiZXN0Q2hvaWNlKTsKLSAgICByZXR1cm4gcmFuZ2UtPmNvbGxhcHNl
ZCgpID8gbnVsbHB0ciA6IHJhbmdlOwotfQotCiB2b2lkIFdlYlBhZ2U6OnNlbGVjdFdpdGhHZXN0
dXJlKGNvbnN0IEludFBvaW50JiBwb2ludCwgdWludDMyX3QgZ3JhbnVsYXJpdHksIHVpbnQzMl90
IGdlc3R1cmVUeXBlLCB1aW50MzJfdCBnZXN0dXJlU3RhdGUsIGJvb2wgaXNJbnRlcmFjdGluZ1dp
dGhGb2N1c2VkRWxlbWVudCwgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIGF1dG8mIGZy
YW1lID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKQEAg
LTE0NjUsMTQgKzEzNzUsNiBAQCB2b2lkIFdlYlBhZ2U6OnNlbGVjdFdpdGhHZXN0dXJlKGNvbnN0
IEludFBvaW50JiBwb2ludCwgdWludDMyX3QgZ3JhbnVsYXJpdHksIHVpbgogICAgICAgICAgICAg
cmFuZ2UgPSBlbmNsb3NpbmdUZXh0VW5pdE9mR3JhbnVsYXJpdHkocG9zaXRpb24sIFBhcmFncmFw
aEdyYW51bGFyaXR5LCBEaXJlY3Rpb25Gb3J3YXJkKTsKICAgICAgICAgYnJlYWs7CiAKLSAgICBj
YXNlIEdlc3R1cmVUeXBlOjpNYWtlV2ViU2VsZWN0aW9uOgotICAgICAgICBpZiAod2tHZXN0dXJl
U3RhdGUgPT0gR2VzdHVyZVJlY29nbml6ZXJTdGF0ZTo6QmVnYW4pIHsKLSAgICAgICAgICAgIG1f
YmxvY2tTZWxlY3Rpb25EZXNpcmVkU2l6ZS5zZXRXaWR0aChibG9ja1NlbGVjdGlvblN0YXJ0V2lk
dGgpOwotICAgICAgICAgICAgbV9ibG9ja1NlbGVjdGlvbkRlc2lyZWRTaXplLnNldEhlaWdodChi
bG9ja1NlbGVjdGlvblN0YXJ0SGVpZ2h0KTsKLSAgICAgICAgfQotICAgICAgICByYW5nZSA9IHJh
bmdlRm9yV2ViU2VsZWN0aW9uQXRQb3NpdGlvbihwb2ludCwgcG9zaXRpb24sIGZsYWdzKTsKLSAg
ICAgICAgYnJlYWs7Ci0KICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CkBAIC0y
MDU2LDggKzE5NTgsNiBAQCB2b2lkIFdlYlBhZ2U6OnNlbGVjdFRleHRXaXRoR3JhbnVsYXJpdHlB
dFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgdQogICAgIGF1dG8mIGZyYW1l
ID0gbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKTsKICAgICBS
ZWZQdHI8UmFuZ2U+IHJhbmdlID0gcmFuZ2VGb3JHcmFudWxhcml0eUF0UG9pbnQoZnJhbWUsIHBv
aW50LCBncmFudWxhcml0eSwgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2VkRWxlbWVudCk7CiAgICAg
aWYgKCFpc0ludGVyYWN0aW5nV2l0aEZvY3VzZWRFbGVtZW50KSB7Ci0gICAgICAgIG1fYmxvY2tT
ZWxlY3Rpb25EZXNpcmVkU2l6ZS5zZXRXaWR0aChibG9ja1NlbGVjdGlvblN0YXJ0V2lkdGgpOwot
ICAgICAgICBtX2Jsb2NrU2VsZWN0aW9uRGVzaXJlZFNpemUuc2V0SGVpZ2h0KGJsb2NrU2VsZWN0
aW9uU3RhcnRIZWlnaHQpOwogICAgICAgICBhdXRvKiByZW5kZXJlciA9IHJhbmdlID8gcmFuZ2Ut
PnN0YXJ0Q29udGFpbmVyKCkucmVuZGVyZXIoKSA6IG51bGxwdHI7CiAgICAgICAgIGlmIChyZW5k
ZXJlciAmJiByZW5kZXJlci0+c3R5bGUoKS5wcmVzZXJ2ZU5ld2xpbmUoKSkKICAgICAgICAgICAg
IG1fYmxvY2tSZWN0Rm9yVGV4dFNlbGVjdGlvbiA9IHJlbmRlcmVyLT5hYnNvbHV0ZUJvdW5kaW5n
Qm94UmVjdCh0cnVlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>