<?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>203498</bug_id>
          
          <creation_ts>2019-10-28 12:14:03 -0700</creation_ts>
          <short_desc>Replace InteractionInformationAtPosition.nodeAtPositionIsFocusedElement with an element context</short_desc>
          <delta_ts>2019-10-28 19:34:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>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>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1584535</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-10-28 12:14:03 -0700</bug_when>
    <thetext>…and also add an element context to FocusedElementInformation, and compare the two instead of checking nodeAtPositionIsFocusedElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584711</commentid>
    <comment_count>1</comment_count>
      <attachid>382130</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-10-28 16:20:34 -0700</bug_when>
    <thetext>Created attachment 382130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584747</commentid>
    <comment_count>2</comment_count>
      <attachid>382139</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-10-28 16:53:23 -0700</bug_when>
    <thetext>Created attachment 382139
Fix macOS build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584801</commentid>
    <comment_count>3</comment_count>
      <attachid>382139</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-28 19:34:27 -0700</bug_when>
    <thetext>Comment on attachment 382139
Fix macOS build

Clearing flags on attachment: 382139

Committed r251693: &lt;https://trac.webkit.org/changeset/251693&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1584802</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-28 19:34:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382130</attachid>
            <date>2019-10-28 16:20:34 -0700</date>
            <delta_ts>2019-10-28 16:53:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203498-20191028162032.patch</filename>
            <type>text/plain</type>
            <size>20659</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDExYmUyYzFmMmI2NzhlMWM5
MDVlZDU2YjgxZjZjOWFlNmE0ZTIyN2IuLjRmN2IzZDE4MzQzMTcyMzY3OGEwOWEyZmE3MzEyY2U3
NzM4MTE1ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMTktMTAtMjggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5ub2RlQXRQb3NpdGlvbklzRm9jdXNlZEVsZW1lbnQg
d2l0aCBhbiBlbGVtZW50IGNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMzQ5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlZmFjdG9ycyBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
biwgc3VjaCB0aGF0IGl0IGRvZXNuJ3QgbmVlZCBhIHNwZWNpYWwgZmxhZyB0byBpbmRpY2F0ZSB3
aGV0aGVyIHRoZXJlCisgICAgICAgIGlzIGEgZm9jdXNlZCBlbGVtZW50IGF0IHRoZSBwb3NpdGlv
bi4gVGhpcyBpcyBhIGZvbGxvd3VwIHRvIHdlYmtpdC5vcmcvYi8yMDMyNjQ7IG5vIG5ldyB0ZXN0
cywgYXMgdGhlcmUgc2hvdWxkCisgICAgICAgIGJlIG5vIGNoYW5nZSBpbiBiZWhhdmlvci4KKwor
ICAgICAgICAqIFNoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbjo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5oOgorCisgICAgICAgIEFkZCBhbiBl
bGVtZW50Q29udGV4dCB0byBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uIHRvIHJlcHJlc2VudCB0
aGUgZm9jdXNlZCBlbGVtZW50OyB0aGVuLCBpbnN0ZWFkIG9mIGNoZWNraW5nCisgICAgICAgIHdo
ZXRoZXIgdGhlcmUgaXMgYSBmb2N1c2VkIGVsZW1lbnQgdW5kZXJuZWF0aCB0aGUgcmVxdWVzdCBw
b3NpdGlvbiwgc2ltcGx5IGNoZWNrIHRoYXQgdGhlIHBvc2l0aW9uIGluZm9ybWF0aW9uJ3MKKyAg
ICAgICAgZWxlbWVudCBjb250ZXh0IG1hdGNoZXMgdGhlIEZvY3VzZWRFbGVtZW50SW5mb3JtYXRp
b24ncyBlbGVtZW50IGNvbnRleHQuCisKKyAgICAgICAgQWRkaXRpb25hbGx5LCByZW5hbWUgZWxl
bWVudFJlY3QgaW4gRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiB0byBpbnRlcmFjdGlvblJlY3Qs
IHRvIGRyYXcgYSBkaXN0aW5jdGlvbiBiZXR3ZWVuCisgICAgICAgIHRoaXMgcmVjdCBhbmQgdGhl
IG5ldyBFbGVtZW50Q29udGV4dCdzIGJvdW5kaW5nUmVjdC4KKworICAgICAgICAqIFNoYXJlZC9p
b3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaDoKKyAgICAgICAgKiBTaGFyZWQv
aW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tOgorICAgICAgICAoV2ViS2l0
OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZW5jb2RlIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmRlY29kZSk6CisK
KyAgICAgICAgUmVtb3ZlIHRoZSBub2RlQXRQb3NpdGlvbklzRm9jdXNlZEVsZW1lbnQgZmxhZy4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kaWRHZXRUYXBIaWdobGlnaHRGb3JSZXF1ZXN0OmNv
bG9yOnF1YWRzOnRvcExlZnRSYWRpdXM6dG9wUmlnaHRSYWRpdXM6Ym90dG9tTGVmdFJhZGl1czpi
b3R0b21SaWdodFJhZGl1czpub2RlSGFzQnVpbHRJbkNsaWNrSGFuZGxpbmc6XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX3pvb21Ub1JldmVhbEZvY3VzZWRFbGVtZW50XSk6CisgICAgICAg
ICgtW1dLQ29udGVudFZpZXcgX3NlbGVjdGlvbkNsaXBSZWN0XSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgZ2VzdHVyZVJlY29nbml6ZXJTaG91bGRCZWdpbjpdKToKKyAgICAgICAgKC1bV0tD
b250ZW50VmlldyB0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlOnNob3VsZEJlZ2luQXRQb2ludDpdKToK
KworICAgICAgICBJbiB2YXJpb3VzIHBsYWNlcyB0aGF0IGNvbnN1bHQgbm9kZUF0UG9zaXRpb25J
c0ZvY3VzZWRFbGVtZW50LCBpbnN0ZWFkIGNoZWNrIHRoYXQgdGhlIHBvc2l0aW9uIGluZm9ybWF0
aW9uJ3MKKyAgICAgICAgaGl0LXRlc3RlZCBlbGVtZW50IGNvbnRleHQgaXMgdGhlIHNhbWUgYXMg
dGhlIGZvY3VzZWQgZWxlbWVudCwgdmlhIEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uCisKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZV0pOgorCisg
ICAgICAgIE51a2UgdGhlIGNhY2hlZCBwb3NpdGlvbiBpbmZvcm1hdGlvbiBkYXRhIHVwb24gbmF2
aWdhdGlvbjsgd2l0aG91dCB0aGlzIHR3ZWFrLCB3ZSB3aWxsIGZhaWwgd2hlbiBydW5uaW5nIHNl
dmVyYWwKKyAgICAgICAgaU9TIGxheW91dCB0ZXN0cyBiYWNrLXRvLWJhY2ssIHRoYXQgdGFwIGlu
IGV4YWN0bHkgdGhlIHNhbWUgbG9jYXRpb24uCisKKyAgICAgICAgKHJlY3RUb1JldmVhbFdoZW5a
b29taW5nVG9Gb2N1c2VkRWxlbWVudCk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2VsZW1l
bnREaWRGb2N1czp1c2VySXNJbnRlcmFjdGluZzpibHVyUHJldmlvdXNOb2RlOmFjdGl2aXR5U3Rh
dGVDaGFuZ2VzOnVzZXJPYmplY3Q6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2VsZW1l
bnREaWRCbHVyXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcmVjdEZvckZvY3VzZWRGb3Jt
Q29udHJvbFZpZXc6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2RpZENoYW5nZUZvY3Vz
ZWRFbGVtZW50UmVjdDp0b1JlY3Q6XSk6IERlbGV0ZWQuCisKKyAgICAgICAgUmVtb3ZlIGNvZGUg
dG8gaW52YWxpZGF0ZSBjYWNoZWQgcG9zaXRpb24gaW5mb3JtYXRpb24gd2hlbiBjaGFuZ2luZyB0
aGUgZm9jdXNlZCBlbGVtZW50IHJlY3QuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1z
L1dLRm9ybVBvcG92ZXIubW06CisgICAgICAgICgtW1dLUm90YXRpbmdQb3BvdmVyIHByZXNlbnRQ
b3BvdmVyQW5pbWF0ZWQ6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJEYXRhTGlzdFN1
Z2dlc3Rpb25zRHJvcGRvd25NYWMubW06CisgICAgICAgICgtW1dLRGF0YUxpc3RTdWdnZXN0aW9u
c0NvbnRyb2xsZXIgaW5pdFdpdGhJbmZvcm1hdGlvbjppblZpZXc6XSk6CisgICAgICAgICgtW1dL
RGF0YUxpc3RTdWdnZXN0aW9uc0NvbnRyb2xsZXIgdXBkYXRlV2l0aEluZm9ybWF0aW9uOl0pOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZTo6cG9zaXRpb25JbmZvcm1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmdldEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24pOgorCiAyMDE5LTEwLTI4ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBiaW5k
aW5ncyBzdXBwb3J0IGZvciB0aGUgZW50ZXJrZXloaW50IEhUTUwgYXR0cmlidXRlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uY3BwCmluZGV4
IDMyZGJiZGRkZTM5N2U3NjYxZmRkZmI4NDRmYTY5N2JhNmNkYTk5YmMuLmQ1YWEzMWQwNzc2YjFh
Zjc4OGFiMGJmZGU2OGNkYWZhM2U3ZGQzZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uY3BwCkBAIC02Myw3ICs2Myw4IEBAIE9wdGlv
bmFsPE9wdGlvbkl0ZW0+IE9wdGlvbkl0ZW06OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIp
CiAKIHZvaWQgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbjo6ZW5jb2RlKElQQzo6RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IGVsZW1lbnRSZWN0OworICAgIGVuY29k
ZXIgPDwgaW50ZXJhY3Rpb25SZWN0OworICAgIGVuY29kZXIgPDwgZWxlbWVudENvbnRleHQ7CiAg
ICAgZW5jb2RlciA8PCBsYXN0SW50ZXJhY3Rpb25Mb2NhdGlvbjsKICAgICBlbmNvZGVyIDw8IG1p
bmltdW1TY2FsZUZhY3RvcjsKICAgICBlbmNvZGVyIDw8IG1heGltdW1TY2FsZUZhY3RvcjsKQEAg
LTExMyw3ICsxMTQsMTAgQEAgdm9pZCBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uOjplbmNvZGUo
SVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiBib29sIEZvY3VzZWRFbGVtZW50SW5mb3Jt
YXRpb246OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIEZvY3VzZWRFbGVtZW50SW5mb3Jt
YXRpb24mIHJlc3VsdCkKIHsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5lbGVtZW50
UmVjdCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaW50ZXJhY3Rpb25SZWN0KSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
ZWxlbWVudENvbnRleHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHJlc3VsdC5sYXN0SW50ZXJhY3Rpb25Mb2NhdGlvbikpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmgKaW5kZXggZDNkMjg4YzU2
YjRmNjE5MTJlMGE5N2U3ODg0NzE0ZDkxZGY5YTBiMy4uNWZhY2ZlMWE0MWQzMDVjYzhjMjE4ZDI1
MDI1NzQ4Y2I4NDIxZTYzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvRm9jdXNl
ZEVsZW1lbnRJbmZvcm1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0ZvY3VzZWRF
bGVtZW50SW5mb3JtYXRpb24uaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
QXV0b2NhcGl0YWxpemVUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXV0b2ZpbGwuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0NvbG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FbGVtZW50Q29udGV4
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvSW5wdXRNb2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CkBAIC05Niw3ICs5
Nyw4IEBAIHN0cnVjdCBPcHRpb25JdGVtIHsKIHVzaW5nIEZvY3VzZWRFbGVtZW50SWRlbnRpZmll
ciA9IHVpbnQ2NF90OwogCiBzdHJ1Y3QgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiB7Ci0gICAg
V2ViQ29yZTo6SW50UmVjdCBlbGVtZW50UmVjdDsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IGludGVy
YWN0aW9uUmVjdDsKKyAgICBXZWJDb3JlOjpFbGVtZW50Q29udGV4dCBlbGVtZW50Q29udGV4dDsK
ICAgICBXZWJDb3JlOjpJbnRQb2ludCBsYXN0SW50ZXJhY3Rpb25Mb2NhdGlvbjsKICAgICBkb3Vi
bGUgbWluaW11bVNjYWxlRmFjdG9yIHsgLUlORklOSVRZIH07CiAgICAgZG91YmxlIG1heGltdW1T
Y2FsZUZhY3RvciB7IElORklOSVRZIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCmluZGV4IDUzMDdk
MjUxNmZjYmZiYTBhOTU0NDk3ZTQzNzM4ZjBiOGI5YmUzMDUuLjVkZTU4ZDk2YzRiNmZjOWIzMmY0
MWE5ZjFhNGRlMmU2NTYwODdmOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lv
cy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCkBAIC01MSw3ICs1
MSw2IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiB7CiAgICAgSW50
ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QgcmVxdWVzdDsKIAogICAgIGJvb2wgY2FuQmVWYWxp
ZCB7IHRydWUgfTsKLSAgICBib29sIG5vZGVBdFBvc2l0aW9uSXNGb2N1c2VkRWxlbWVudCB7IGZh
bHNlIH07CiAgICAgYm9vbCBub2RlQXRQb3NpdGlvbkhhc0RvdWJsZUNsaWNrSGFuZGxlciB7IGZh
bHNlIH07CiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgYm9vbCBoYXNTZWxlY3Rp
b25BdFBvc2l0aW9uIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbQppbmRleCA5YzAx
MzA5MDc3ZjJkZDAwZTExNmYzYTBmNjZmNjMxN2FkOTg0YzNjLi5iYzcyZDFmMGY5Mjc1YmIzMTk2
NmRkMjc3ZTg5NjMxMGU1MWNjOTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9p
b3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tCkBAIC00NCw3
ICs0NCw2IEBAIHZvaWQgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmVuY29kZShJ
UEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCByZXF1ZXN0OwogCiAg
ICAgZW5jb2RlciA8PCBjYW5CZVZhbGlkOwotICAgIGVuY29kZXIgPDwgbm9kZUF0UG9zaXRpb25J
c0ZvY3VzZWRFbGVtZW50OwogICAgIGVuY29kZXIgPDwgbm9kZUF0UG9zaXRpb25IYXNEb3VibGVD
bGlja0hhbmRsZXI7CiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAgZW5jb2RlciA8
PCBoYXNTZWxlY3Rpb25BdFBvc2l0aW9uOwpAQCAtOTYsOSArOTUsNiBAQCBib29sIEludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBJ
bnRlcmFjdGlvbgogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmNhbkJlVmFsaWQpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5u
b2RlQXRQb3NpdGlvbklzRm9jdXNlZEVsZW1lbnQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5ub2RlQXRQb3NpdGlvbkhhc0RvdWJsZUNs
aWNrSGFuZGxlcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXgg
ZTRjM2Q0NjhmODI1NzZlMjYwZjcxYTA0MzRjY2FlZGEyNDBlZGRkNC4uODk1NzIyNzkxODAxNDgw
MjU4Y2NiMTMwNGUxMzJmNGY2OWQ0M2MxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xNjk2LDcgKzE2
OTYsNyBAQCAtICh2b2lkKV9kaWRHZXRUYXBIaWdobGlnaHRGb3JSZXF1ZXN0Oih1aW50NjRfdCly
ZXF1ZXN0SUQgY29sb3I6KGNvbnN0IFdlYkNvcmU6OgogICAgIGlmICghX2lzVGFwSGlnaGxpZ2h0
SURWYWxpZCB8fCBfbGF0ZXN0VGFwSUQgIT0gcmVxdWVzdElEKQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAoaGFzRm9jdXNlZEVsZW1lbnQoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24pICYm
IF9wb3NpdGlvbkluZm9ybWF0aW9uLm5vZGVBdFBvc2l0aW9uSXNGb2N1c2VkRWxlbWVudCkKKyAg
ICBpZiAoaGFzRm9jdXNlZEVsZW1lbnQoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24pICYmIF9w
b3NpdGlvbkluZm9ybWF0aW9uLmVsZW1lbnRDb250ZXh0ID09IF9mb2N1c2VkRWxlbWVudEluZm9y
bWF0aW9uLmVsZW1lbnRDb250ZXh0KQogICAgICAgICByZXR1cm47CiAKICAgICBfaXNUYXBIaWdo
bGlnaHRJRFZhbGlkID0gTk87CkBAIC0xODcxLDcgKzE4NzEsNyBAQCAtICh2b2lkKV96b29tVG9S
ZXZlYWxGb2N1c2VkRWxlbWVudAogCiAgICAgLy8gSW4gY2FzZSB1c2VyIHNjYWxpbmcgaXMgZm9y
Y2UgZW5hYmxlZCwgZG8gbm90IHVzZSB0aGF0IHNjYWxpbmcgd2hlbiB6b29taW5nIGluIHdpdGgg
YW4gaW5wdXQgZmllbGQuCiAgICAgLy8gWm9vbWluZyBhYm92ZSB0aGUgcGFnZSdzIGRlZmF1bHQg
c2NhbGUgZmFjdG9yIHNob3VsZCBvbmx5IGhhcHBlbiB3aGVuIHRoZSB1c2VyIHBlcmZvcm1zIGl0
LgotICAgIFtzZWxmIF96b29tVG9Gb2N1c1JlY3Q6X2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24u
ZWxlbWVudFJlY3QKKyAgICBbc2VsZiBfem9vbVRvRm9jdXNSZWN0Ol9mb2N1c2VkRWxlbWVudElu
Zm9ybWF0aW9uLmludGVyYWN0aW9uUmVjdAogICAgICAgICBzZWxlY3Rpb25SZWN0Ol9kaWRBY2Nl
c3NvcnlUYWJJbml0aWF0ZUZvY3VzID8gV2ViQ29yZTo6RmxvYXRSZWN0KCkgOiByZWN0VG9SZXZl
YWxXaGVuWm9vbWluZ1RvRm9jdXNlZEVsZW1lbnQoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24s
IF9wYWdlLT5lZGl0b3JTdGF0ZSgpKQogICAgICAgICBpbnNpZGVGaXhlZDpfZm9jdXNlZEVsZW1l
bnRJbmZvcm1hdGlvbi5pbnNpZGVGaXhlZFBvc2l0aW9uCiAgICAgICAgIGZvbnRTaXplOl9mb2N1
c2VkRWxlbWVudEluZm9ybWF0aW9uLm5vZGVGb250U2l6ZQpAQCAtMTkyMiw3ICsxOTIyLDcgQEAg
LSAoQ0dSZWN0KV9zZWxlY3Rpb25DbGlwUmVjdAogICAgICAgICByZXR1cm4gQ0dSZWN0TnVsbDsK
IAogICAgIGlmIChfcGFnZS0+d2FpdGluZ0ZvclBvc3RMYXlvdXRFZGl0b3JTdGF0ZVVwZGF0ZUFm
dGVyRm9jdXNpbmdFbGVtZW50KCkpCi0gICAgICAgIHJldHVybiBfZm9jdXNlZEVsZW1lbnRJbmZv
cm1hdGlvbi5lbGVtZW50UmVjdDsKKyAgICAgICAgcmV0dXJuIF9mb2N1c2VkRWxlbWVudEluZm9y
bWF0aW9uLmludGVyYWN0aW9uUmVjdDsKIAogICAgIHJldHVybiBfcGFnZS0+ZWRpdG9yU3RhdGUo
KS5wb3N0TGF5b3V0RGF0YSgpLmZvY3VzZWRFbGVtZW50UmVjdDsKIH0KQEAgLTIyNjgsNyArMjI2
OCw3IEBAIC0gKEJPT0wpZ2VzdHVyZVJlY29nbml6ZXJTaG91bGRCZWdpbjooVUlHZXN0dXJlUmVj
b2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCiAgICAgICAgICAgICAvLyBJZiB0aGUgZm9jdXNl
ZCBlbGVtZW50IGlzIHRoZSBzYW1lLCBwcmV2ZW50IHRoZSBnZXN0dXJlLgogICAgICAgICAgICAg
aWYgKCFbc2VsZiBlbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0ZTpXZWJLaXQ6Oklu
dGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KFdlYkNvcmU6OnJvdW5kZWRJbnRQb2ludChwb2lu
dCkpXSkKICAgICAgICAgICAgICAgICByZXR1cm4gTk87Ci0gICAgICAgICAgICBpZiAoX3Bvc2l0
aW9uSW5mb3JtYXRpb24ubm9kZUF0UG9zaXRpb25Jc0ZvY3VzZWRFbGVtZW50KQorICAgICAgICAg
ICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0aW9uLmVsZW1lbnRDb250ZXh0ID09IF9mb2N1c2VkRWxl
bWVudEluZm9ybWF0aW9uLmVsZW1lbnRDb250ZXh0KQogICAgICAgICAgICAgICAgIHJldHVybiBO
TzsKICAgICAgICAgfQogICAgIH0KQEAgLTIzMTQsNyArMjMxNCw3IEBAIC0gKEJPT0wpZ2VzdHVy
ZVJlY29nbml6ZXJTaG91bGRCZWdpbjooVUlHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNv
Z25pemVyCiAKICAgICAgICAgaWYgKGhhc0ZvY3VzZWRFbGVtZW50KF9mb2N1c2VkRWxlbWVudElu
Zm9ybWF0aW9uKSkgewogICAgICAgICAgICAgLy8gUHJldmVudCB0aGUgZ2VzdHVyZSBpZiBpdCBp
cyB0aGUgc2FtZSBub2RlLgotICAgICAgICAgICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0aW9uLm5v
ZGVBdFBvc2l0aW9uSXNGb2N1c2VkRWxlbWVudCkKKyAgICAgICAgICAgIGlmIChfcG9zaXRpb25J
bmZvcm1hdGlvbi5lbGVtZW50Q29udGV4dCA9PSBfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5l
bGVtZW50Q29udGV4dCkKICAgICAgICAgICAgICAgICByZXR1cm4gTk87CiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICAvLyBQcmV2ZW50IHRoZSBnZXN0dXJlIGlmIHRoZXJlIGlzIG5vIGFj
dGlvbiBmb3IgdGhlIG5vZGUuCkBAIC0yNDQ5LDcgKzI0NDksNyBAQCAtIChCT09MKXRleHRJbnRl
cmFjdGlvbkdlc3R1cmU6KFVJV0tHZXN0dXJlVHlwZSlnZXN0dXJlIHNob3VsZEJlZ2luQXRQb2lu
dDooQ0dQbwogCiAgICAgLy8gSWYgd2UncmUgY3VycmVudGx5IGZvY3VzaW5nIGFuIGVkaXRhYmxl
IGVsZW1lbnQsIG9ubHkgYWxsb3cgdGhlIHNlbGVjdGlvbiB0byBtb3ZlIHdpdGhpbiB0aGF0IGZv
Y3VzZWQgZWxlbWVudC4KICAgICBpZiAoc2VsZi5pc0ZvY3VzaW5nRWxlbWVudCkKLSAgICAgICAg
cmV0dXJuIF9wb3NpdGlvbkluZm9ybWF0aW9uLm5vZGVBdFBvc2l0aW9uSXNGb2N1c2VkRWxlbWVu
dDsKKyAgICAgICAgcmV0dXJuIF9wb3NpdGlvbkluZm9ybWF0aW9uLmVsZW1lbnRDb250ZXh0ID09
IF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVsZW1lbnRDb250ZXh0OwogCiAgICAgLy8gSWYg
d2UncmUgc2VsZWN0aW5nIHNvbWV0aGluZywgZG9uJ3QgYWN0aXZhdGUgaGlnaGxpZ2h0LgogICAg
IGlmIChnZXN0dXJlID09IFVJV0tHZXN0dXJlTG91cGUgJiYgW3NlbGYgaGFzU2VsZWN0YWJsZVBv
c2l0aW9uQXRQb2ludDpwb2ludF0pCkBAIC00MTUwLDYgKzQxNTAsOSBAQCAtICh2b2lkKV9kaWRD
b21taXRMb2FkRm9yTWFpbkZyYW1lCiAgICAgW3NlbGYgX2NhbmNlbExvbmdQcmVzc0dlc3R1cmVS
ZWNvZ25pemVyXTsKICAgICBbc2VsZiBfaGlkZUNvbnRleHRNZW51SGludENvbnRhaW5lcl07CiAg
ICAgW193ZWJWaWV3IF9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lXTsKKworICAgIF9oYXNWYWxp
ZFBvc2l0aW9uSW5mb3JtYXRpb24gPSBOTzsKKyAgICBfcG9zaXRpb25JbmZvcm1hdGlvbiA9IHsg
fTsKIH0KIAogI2lmICFVU0UoVUlLSVRfS0VZQk9BUkRfQURESVRJT05TKQpAQCAtNTQwMSw3ICs1
NDA0LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkU2hvd0tleWJvYXJkRm9yRWxlbWVudChjb25zdCBX
ZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24KIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFJl
Y3QgcmVjdFRvUmV2ZWFsV2hlblpvb21pbmdUb0ZvY3VzZWRFbGVtZW50KGNvbnN0IFdlYktpdDo6
Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYgZWxlbWVudEluZm8sIGNvbnN0IFdlYktpdDo6RWRp
dG9yU3RhdGUmIGVkaXRvclN0YXRlKQogewogICAgIFdlYkNvcmU6OkludFJlY3QgZWxlbWVudElu
dGVyYWN0aW9uUmVjdDsKLSAgICBpZiAoZWxlbWVudEluZm8uZWxlbWVudFJlY3QuY29udGFpbnMo
ZWxlbWVudEluZm8ubGFzdEludGVyYWN0aW9uTG9jYXRpb24pKQorICAgIGlmIChlbGVtZW50SW5m
by5pbnRlcmFjdGlvblJlY3QuY29udGFpbnMoZWxlbWVudEluZm8ubGFzdEludGVyYWN0aW9uTG9j
YXRpb24pKQogICAgICAgICBlbGVtZW50SW50ZXJhY3Rpb25SZWN0ID0geyBlbGVtZW50SW5mby5s
YXN0SW50ZXJhY3Rpb25Mb2NhdGlvbiwgeyAxLCAxIH0gfTsKIAogICAgIGlmICghbWF5Q29udGFp
blNlbGVjdGFibGVUZXh0KGVsZW1lbnRJbmZvLmVsZW1lbnRUeXBlKSkKQEAgLTU0MjMsNyArNTQy
Niw3IEBAIHN0YXRpYyBXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdFRvUmV2ZWFsV2hlblpvb21pbmdU
b0ZvY3VzZWRFbGVtZW50KGNvbnN0IFdlYktpdDo6CiAgICAgfSBlbHNlCiAgICAgICAgIHNlbGVj
dGlvbkJvdW5kaW5nUmVjdCA9IHBvc3RMYXlvdXREYXRhLmNhcmV0UmVjdEF0U3RhcnQ7CiAKLSAg
ICBzZWxlY3Rpb25Cb3VuZGluZ1JlY3QuaW50ZXJzZWN0KGVsZW1lbnRJbmZvLmVsZW1lbnRSZWN0
KTsKKyAgICBzZWxlY3Rpb25Cb3VuZGluZ1JlY3QuaW50ZXJzZWN0KGVsZW1lbnRJbmZvLmludGVy
YWN0aW9uUmVjdCk7CiAgICAgcmV0dXJuIHNlbGVjdGlvbkJvdW5kaW5nUmVjdDsKIH0KIApAQCAt
NTUyNCw3ICs1NTI3LDcgQEAgLSAodm9pZClfZWxlbWVudERpZEZvY3VzOihjb25zdCBXZWJLaXQ6
OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mKWluZm9ybWF0aW9uIHUKIAogICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgcmVtb3ZlIHRoaXMgY2hlY2sgd2hlbiB3ZSBtYW5hZ2UgdG8gc2VuZCBFbGVt
ZW50RGlkRm9jdXMgZnJvbSB0aGUgV2ViUHJvY2VzcwogICAgIC8vIG9ubHkgd2hlbiBpdCBpcyB0
cnVseSB0aW1lIHRvIHNob3cgdGhlIGtleWJvYXJkLgotICAgIGlmIChfZm9jdXNlZEVsZW1lbnRJ
bmZvcm1hdGlvbi5lbGVtZW50VHlwZSA9PSBpbmZvcm1hdGlvbi5lbGVtZW50VHlwZSAmJiBfZm9j
dXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50UmVjdCA9PSBpbmZvcm1hdGlvbi5lbGVtZW50
UmVjdCkgeworICAgIGlmIChfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50VHlwZSA9
PSBpbmZvcm1hdGlvbi5lbGVtZW50VHlwZSAmJiBfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5p
bnRlcmFjdGlvblJlY3QgPT0gaW5mb3JtYXRpb24uaW50ZXJhY3Rpb25SZWN0KSB7CiAgICAgICAg
IGlmIChfaW5wdXRQZXJpcGhlcmFsKSB7CiAgICAgICAgICAgICBpZiAoIXNlbGYuaXNGaXJzdFJl
c3BvbmRlcikKICAgICAgICAgICAgICAgICBbc2VsZiBiZWNvbWVGaXJzdFJlc3BvbmRlcl07CkBA
IC01NTU2LDcgKzU1NTksNiBAQCAtICh2b2lkKV9lbGVtZW50RGlkRm9jdXM6KGNvbnN0IFdlYktp
dDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYpaW5mb3JtYXRpb24gdQogICAgIGlmIChkZWxl
Z2F0ZUltcGxlbWVudHNXaWxsU3RhcnRJbnB1dFNlc3Npb24pCiAgICAgICAgIFtpbnB1dERlbGVn
YXRlIF93ZWJWaWV3Ol93ZWJWaWV3IHdpbGxTdGFydElucHV0U2Vzc2lvbjpfZm9ybUlucHV0U2Vz
c2lvbi5nZXQoKV07CiAKLSAgICBhdXRvIHByZXZpb3VzRWxlbWVudFJlY3QgPSBfaXNDaGFuZ2lu
Z0ZvY3VzID8gX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudFJlY3QgOiBXZWJDb3Jl
OjpJbnRSZWN0KCk7CiAgICAgQk9PTCBpc1NlbGVjdGFibGUgPSBtYXlDb250YWluU2VsZWN0YWJs
ZVRleHQoaW5mb3JtYXRpb24uZWxlbWVudFR5cGUpOwogICAgIEJPT0wgZWRpdGFibGVDaGFuZ2Vk
ID0gW3NlbGYgc2V0SXNFZGl0YWJsZTppc1NlbGVjdGFibGVdOwogICAgIF9mb2N1c2VkRWxlbWVu
dEluZm9ybWF0aW9uID0gaW5mb3JtYXRpb247CkBAIC01NjAzLDggKzU2MDUsNiBAQCAtICh2b2lk
KV9lbGVtZW50RGlkRm9jdXM6KGNvbnN0IFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlv
biYpaW5mb3JtYXRpb24gdQogICAgICAgICBbaW5wdXREZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmll
dyBkaWRTdGFydElucHV0U2Vzc2lvbjpfZm9ybUlucHV0U2Vzc2lvbi5nZXQoKV07CiAgICAgCiAg
ICAgW193ZWJWaWV3IGRpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbl07Ci0KLSAgICBbc2Vs
ZiBfZGlkQ2hhbmdlRm9jdXNlZEVsZW1lbnRSZWN0OnByZXZpb3VzRWxlbWVudFJlY3QgdG9SZWN0
Ol9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVsZW1lbnRSZWN0XTsKIH0KIAogLSAodm9pZClf
ZWxlbWVudERpZEJsdXIKQEAgLTU2MjgsNyArNTYyOCw2IEBAIC0gKHZvaWQpX2VsZW1lbnREaWRC
bHVyCiAjZW5kaWYKIAogICAgIEJPT0wgZWRpdGFibGVDaGFuZ2VkID0gW3NlbGYgc2V0SXNFZGl0
YWJsZTpOT107Ci0gICAgYXV0byBwcmV2aW91c0VsZW1lbnRSZWN0ID0gX2ZvY3VzZWRFbGVtZW50
SW5mb3JtYXRpb24uZWxlbWVudFJlY3Q7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBjb21wbGV0
ZWx5IGludmFsaWRhdGUgX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24gaGVyZSwgaW5zdGVhZCBv
ZiBhIHN1YnNldCBvZiBpbmRpdmlkdWFsIG1lbWJlcnMuCiAgICAgX2ZvY3VzZWRFbGVtZW50SW5m
b3JtYXRpb24uZWxlbWVudFR5cGUgPSBXZWJLaXQ6OklucHV0VHlwZTo6Tm9uZTsKICAgICBfZm9j
dXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5zaG91bGRTeW50aGVzaXplS2V5RXZlbnRzRm9yRWRpdGlu
ZyA9IGZhbHNlOwpAQCAtNTY2MiwyMyArNTY2MSw4IEBAIC0gKHZvaWQpX2VsZW1lbnREaWRCbHVy
CiAgICAgICAgIF9wYWdlLT5zZXRJc1Nob3dpbmdJbnB1dFZpZXdGb3JGb2N1c2VkRWxlbWVudChm
YWxzZSk7CiAgICAgfQogCi0gICAgaWYgKCFfaXNDaGFuZ2luZ0ZvY3VzKSB7CisgICAgaWYgKCFf
aXNDaGFuZ2luZ0ZvY3VzKQogICAgICAgICBfZGlkQWNjZXNzb3J5VGFiSW5pdGlhdGVGb2N1cyA9
IE5POwotICAgICAgICBbc2VsZiBfZGlkQ2hhbmdlRm9jdXNlZEVsZW1lbnRSZWN0OnByZXZpb3Vz
RWxlbWVudFJlY3QgdG9SZWN0OldlYkNvcmU6OkludFJlY3QoKV07Ci0gICAgfQotfQotCi0tICh2
b2lkKV9kaWRDaGFuZ2VGb2N1c2VkRWxlbWVudFJlY3Q6KGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KXByZXZpb3VzUmVjdCB0b1JlY3Q6KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKW5ld1JlY3QKLXsK
LSAgICBpZiAocHJldmlvdXNSZWN0ID09IG5ld1JlY3QpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGlmIChuZXdSZWN0LmlzRW1wdHkoKSAmJiAhX3Bvc2l0aW9uSW5mb3JtYXRpb24ubm9kZUF0UG9z
aXRpb25Jc0ZvY3VzZWRFbGVtZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBJZiB0aGUg
Zm9jdXNlZCBlbGVtZW50IHJlY3QgY2hhbmdlZCwgdGhlIGNhY2hlZCBwb3NpdGlvbiBpbmZvcm1h
dGlvbidzIG5vZGVBdFBvc2l0aW9uSXNGb2N1c2VkRWxlbWVudCBtYXkgYmUgc3RhbGUuCi0gICAg
X2hhc1ZhbGlkUG9zaXRpb25JbmZvcm1hdGlvbiA9IE5POwotICAgIF9wb3NpdGlvbkluZm9ybWF0
aW9uID0geyB9OwogfQogCiAtICh2b2lkKV91cGRhdGVJbnB1dENvbnRleHRBZnRlckJsdXJyaW5n
QW5kUmVmb2N1c2luZ0VsZW1lbnQKQEAgLTU5ODksNyArNTk3Myw3IEBAIC0gKHZvaWQpZm9jdXNl
ZEZvcm1Db250cm9sVmlld0RpZEJlZ2luRWRpdGluZzooV0tGb2N1c2VkRm9ybUNvbnRyb2xWaWV3
ICopdmlldwogCiAtIChDR1JlY3QpcmVjdEZvckZvY3VzZWRGb3JtQ29udHJvbFZpZXc6KFdLRm9j
dXNlZEZvcm1Db250cm9sVmlldyAqKXZpZXcKIHsKLSAgICByZXR1cm4gW3NlbGYgY29udmVydFJl
Y3Q6X2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudFJlY3QgdG9WaWV3OnZpZXddOwor
ICAgIHJldHVybiBbc2VsZiBjb252ZXJ0UmVjdDpfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5p
bnRlcmFjdGlvblJlY3QgdG9WaWV3OnZpZXddOwogfQogCiAtIChDR1JlY3QpbmV4dFJlY3RGb3JG
b2N1c2VkRm9ybUNvbnRyb2xWaWV3OihXS0ZvY3VzZWRGb3JtQ29udHJvbFZpZXcgKil2aWV3CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9wb3Zl
ci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLm1t
CmluZGV4IGE0YzRhYzNhOGM3MTMyODkwNTNiYzk3M2M2YjkyOTFhNzczOGRhODAuLjA5ODY2ZWFl
MmMyZDYyNGY0MzAxNmQyMTY5NDVhOGVlNDdhNTIwMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0Zvcm1Qb3BvdmVyLm1tCkBAIC0xNDIsNyArMTQyLDcg
QEAgLSAodm9pZClwcmVzZW50UG9wb3ZlckFuaW1hdGVkOihCT09MKWFuaW1hdGVkCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBlcm1pdHRlZEFycm93RGlyZWN0aW9uczpkaXJlY3Rpb25zCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmltYXRlZDphbmltYXRl
ZF07CiAgICAgfSBlbHNlIHsKLSAgICAgICAgQ0dSZWN0IGJvdW5kaW5nQm94T2ZET01Ob2RlID0g
X3ZpZXcuZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50UmVjdDsKKyAgICAgICAgQ0dS
ZWN0IGJvdW5kaW5nQm94T2ZET01Ob2RlID0gX3ZpZXcuZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlv
bi5pbnRlcmFjdGlvblJlY3Q7CiAgICAgICAgIFtfcG9wb3ZlckNvbnRyb2xsZXIgcHJlc2VudFBv
cG92ZXJGcm9tUmVjdDpDR1JlY3RJbnRlZ3JhbChib3VuZGluZ0JveE9mRE9NTm9kZSkKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5WaWV3Ol92aWV3CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBlcm1pdHRlZEFycm93RGlyZWN0aW9uczpkaXJlY3Rpb25z
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0YUxpc3RTdWdn
ZXN0aW9uc0Ryb3Bkb3duTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkRh
dGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bk1hYy5tbQppbmRleCA1ZDAyZTRiNTI2OWIyZWQwY2M2
N2E4MjM5YzIxMjhhOWE0N2M4YWI4Li41YjE2Y2MzZGM4YjdhOGRiNWJjYTNmNmJhY2RjYjgwODhh
ZjBjZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViRGF0YUxp
c3RTdWdnZXN0aW9uc0Ryb3Bkb3duTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25NYWMubW0KQEAgLTI5MywxMSArMjkz
LDExIEBAIC0gKGlkKWluaXRXaXRoSW5mb3JtYXRpb246KFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2Vz
dGlvbkluZm9ybWF0aW9uJiYpaW5mb3JtYXRpb24KIAogICAgIF9wcmVzZW50aW5nVmlldyA9IHBy
ZXNlbnRpbmdWaWV3OwogICAgIF9zdWdnZXN0aW9ucyA9IFdURk1vdmUoaW5mb3JtYXRpb24uc3Vn
Z2VzdGlvbnMpOwotICAgIF90YWJsZSA9IGFkb3B0TlMoW1tXS0RhdGFMaXN0U3VnZ2VzdGlvblRh
YmxlVmlldyBhbGxvY10gaW5pdFdpdGhFbGVtZW50UmVjdDppbmZvcm1hdGlvbi5lbGVtZW50UmVj
dF0pOworICAgIF90YWJsZSA9IGFkb3B0TlMoW1tXS0RhdGFMaXN0U3VnZ2VzdGlvblRhYmxlVmll
dyBhbGxvY10gaW5pdFdpdGhFbGVtZW50UmVjdDppbmZvcm1hdGlvbi5pbnRlcmFjdGlvblJlY3Rd
KTsKIAogICAgIF9lbmNsb3NpbmdXaW5kb3cgPSBhZG9wdE5TKFtbV0tEYXRhTGlzdFN1Z2dlc3Rp
b25XaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNaZXJvUmVjdCBzdHlsZU1hc2s6
KE5TV2luZG93U3R5bGVNYXNrVGl0bGVkIHwgTlNXaW5kb3dTdHlsZU1hc2tGdWxsU2l6ZUNvbnRl
bnRWaWV3KSBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKICAgICBb
X2VuY2xvc2luZ1dpbmRvdyBzZXRSZWxlYXNlZFdoZW5DbG9zZWQ6Tk9dOwotICAgIFtfZW5jbG9z
aW5nV2luZG93IHNldEZyYW1lOltzZWxmIGRyb3Bkb3duUmVjdEZvckVsZW1lbnRSZWN0OmluZm9y
bWF0aW9uLmVsZW1lbnRSZWN0XSBkaXNwbGF5OllFU107CisgICAgW19lbmNsb3NpbmdXaW5kb3cg
c2V0RnJhbWU6W3NlbGYgZHJvcGRvd25SZWN0Rm9yRWxlbWVudFJlY3Q6aW5mb3JtYXRpb24uaW50
ZXJhY3Rpb25SZWN0XSBkaXNwbGF5OllFU107CiAgICAgW19lbmNsb3NpbmdXaW5kb3cgc2V0VGl0
bGVWaXNpYmlsaXR5Ok5TV2luZG93VGl0bGVIaWRkZW5dOwogICAgIFtfZW5jbG9zaW5nV2luZG93
IHNldFRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50OllFU107CiAgICAgW19lbmNsb3NpbmdXaW5k
b3cgc2V0TW92YWJsZTpOT107CkBAIC0zMjcsNyArMzI3LDcgQEAgLSAodm9pZCl1cGRhdGVXaXRo
SW5mb3JtYXRpb246KFdlYkNvcmU6OkRhdGFMaXN0U3VnZ2VzdGlvbkluZm9ybWF0aW9uJiYpaW5m
b3JtYXQKICAgICBfc3VnZ2VzdGlvbnMgPSBXVEZNb3ZlKGluZm9ybWF0aW9uLnN1Z2dlc3Rpb25z
KTsKICAgICBbX3RhYmxlIHJlbG9hZF07CiAKLSAgICBbX2VuY2xvc2luZ1dpbmRvdyBzZXRGcmFt
ZTpbc2VsZiBkcm9wZG93blJlY3RGb3JFbGVtZW50UmVjdDppbmZvcm1hdGlvbi5lbGVtZW50UmVj
dF0gZGlzcGxheTpZRVNdOworICAgIFtfZW5jbG9zaW5nV2luZG93IHNldEZyYW1lOltzZWxmIGRy
b3Bkb3duUmVjdEZvckVsZW1lbnRSZWN0OmluZm9ybWF0aW9uLmludGVyYWN0aW9uUmVjdF0gZGlz
cGxheTpZRVNdOwogfQogCiAtICh2b2lkKW5vdGlmeUFjY2Vzc2liaWxpdHlDbGllbnRzOihOU1N0
cmluZyAqKWluZm8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KaW5kZXggNjY3M2Q2M2I4MmFhY2VmNjM4ZDQ2NTI3OWIyYzlkMDJiMjkw
MTJmNC4uZDYyMzgxMGY0MTQ0OWM4MTBkZDJmZTVjZjExYTc1ZmUyYjgzNTVkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAg
LTI3ODAsNyArMjc4MCw2IEBAIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIFdlYlBh
Z2U6OnBvc2l0aW9uSW5mb3JtYXRpb24oY29uc3QgSW50ZXJhY3Rpb25JCiAgICAgRmxvYXRQb2lu
dCBhZGp1c3RlZFBvaW50OwogICAgIGF1dG8qIG5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cyA9
IG1fcGFnZS0+bWFpbkZyYW1lKCkubm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzKHJlcXVlc3Qu
cG9pbnQsIGFkanVzdGVkUG9pbnQpOwogCi0gICAgaW5mby5ub2RlQXRQb3NpdGlvbklzRm9jdXNl
ZEVsZW1lbnQgPSBub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMgPT0gbV9mb2N1c2VkRWxlbWVu
dDsKICAgICBpbmZvLmFkanVzdGVkUG9pbnRGb3JOb2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMg
PSBhZGp1c3RlZFBvaW50OwogICAgIGluZm8ubm9kZUF0UG9zaXRpb25IYXNEb3VibGVDbGlja0hh
bmRsZXIgPSBtX3BhZ2UtPm1haW5GcmFtZSgpLm5vZGVSZXNwb25kaW5nVG9Eb3VibGVDbGlja0V2
ZW50KHJlcXVlc3QucG9pbnQsIGFkanVzdGVkUG9pbnQpOwogCkBAIC0yOTA1LDkgKzI5MDQsMTEg
QEAgdm9pZCBXZWJQYWdlOjpnZXRGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uKEZvY3VzZWRFbGVt
ZW50SW5mb3JtYXRpb24mIGluZm9ybWF0aW8KICAgICBsYXlvdXRJZk5lZWRlZCgpOwogCiAgICAg
aW5mb3JtYXRpb24ubGFzdEludGVyYWN0aW9uTG9jYXRpb24gPSBtX2xhc3RJbnRlcmFjdGlvbkxv
Y2F0aW9uOworICAgIGlmIChhdXRvIGVsZW1lbnRDb250ZXh0ID0gY29udGV4dEZvckVsZW1lbnQo
Km1fZm9jdXNlZEVsZW1lbnQpKQorICAgICAgICBpbmZvcm1hdGlvbi5lbGVtZW50Q29udGV4dCA9
IFdURk1vdmUoKmVsZW1lbnRDb250ZXh0KTsKIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IG1f
Zm9jdXNlZEVsZW1lbnQtPnJlbmRlcmVyKCkpIHsKLSAgICAgICAgaW5mb3JtYXRpb24uZWxlbWVu
dFJlY3QgPSByb290Vmlld0ludGVyYWN0aW9uQm91bmRzRm9yRWxlbWVudCgqbV9mb2N1c2VkRWxl
bWVudCk7CisgICAgICAgIGluZm9ybWF0aW9uLmludGVyYWN0aW9uUmVjdCA9IHJvb3RWaWV3SW50
ZXJhY3Rpb25Cb3VuZHNGb3JFbGVtZW50KCptX2ZvY3VzZWRFbGVtZW50KTsKICAgICAgICAgaW5m
b3JtYXRpb24ubm9kZUZvbnRTaXplID0gcmVuZGVyZXItPnN0eWxlKCkuZm9udERlc2NyaXB0aW9u
KCkuY29tcHV0ZWRTaXplKCk7CiAKICAgICAgICAgYm9vbCBpbkZpeGVkID0gZmFsc2U7CkBAIC0y
OTE1LDcgKzI5MTYsNyBAQCB2b2lkIFdlYlBhZ2U6OmdldEZvY3VzZWRFbGVtZW50SW5mb3JtYXRp
b24oRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYgaW5mb3JtYXRpbwogICAgICAgICBpbmZvcm1h
dGlvbi5pbnNpZGVGaXhlZFBvc2l0aW9uID0gaW5GaXhlZDsKICAgICAgICAgaW5mb3JtYXRpb24u
aXNSVEwgPSByZW5kZXJlci0+c3R5bGUoKS5kaXJlY3Rpb24oKSA9PSBUZXh0RGlyZWN0aW9uOjpS
VEw7CiAgICAgfSBlbHNlCi0gICAgICAgIGluZm9ybWF0aW9uLmVsZW1lbnRSZWN0ID0gSW50UmVj
dCgpOworICAgICAgICBpbmZvcm1hdGlvbi5pbnRlcmFjdGlvblJlY3QgPSB7IH07CiAKICAgICBp
ZiAoaXM8SFRNTEVsZW1lbnQ+KG1fZm9jdXNlZEVsZW1lbnQpKQogICAgICAgICBpbmZvcm1hdGlv
bi5pc1NwZWxsQ2hlY2tpbmdFbmFibGVkID0gZG93bmNhc3Q8SFRNTEVsZW1lbnQ+KCptX2ZvY3Vz
ZWRFbGVtZW50KS5zcGVsbGNoZWNrKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382139</attachid>
            <date>2019-10-28 16:53:23 -0700</date>
            <delta_ts>2019-10-28 19:34:27 -0700</delta_ts>
            <desc>Fix macOS build</desc>
            <filename>bug-203498-20191028165323.patch</filename>
            <type>text/plain</type>
            <size>18555</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUxNjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDExYmUyYzFmMmI2NzhlMWM5
MDVlZDU2YjgxZjZjOWFlNmE0ZTIyN2IuLjA1ZmY1ODg0MWY4NTc3YTBjODBiZmRiYjhlZTAxNTMy
Y2QxZjM4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjIgQEAKKzIwMTktMTAtMjggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5ub2RlQXRQb3NpdGlvbklzRm9jdXNlZEVsZW1lbnQg
d2l0aCBhbiBlbGVtZW50IGNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMzQ5OAorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24u
CisKKyAgICAgICAgUmVmYWN0b3JzIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLCBz
dWNoIHRoYXQgaXQgZG9lc24ndCBuZWVkIGEgc3BlY2lhbCBmbGFnIHRvIGluZGljYXRlIHdoZXRo
ZXIgdGhlcmUKKyAgICAgICAgaXMgYSBmb2N1c2VkIGVsZW1lbnQgYXQgdGhlIHBvc2l0aW9uLiBU
aGlzIGlzIGEgZm9sbG93dXAgdG8gd2Via2l0Lm9yZy9iLzIwMzI2NDsgbm8gbmV3IHRlc3RzLCBh
cyB0aGVyZSBzaG91bGQKKyAgICAgICAgYmUgbm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAg
ICAgICogU2hhcmVkL0ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uOjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmg6CisKKyAgICAgICAgQWRkIGFuIGVsZW1l
bnRDb250ZXh0IHRvIEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24gdG8gcmVwcmVzZW50IHRoZSBm
b2N1c2VkIGVsZW1lbnQ7IHRoZW4sIGluc3RlYWQgb2YgY2hlY2tpbmcKKyAgICAgICAgd2hldGhl
ciB0aGVyZSBpcyBhIGZvY3VzZWQgZWxlbWVudCB1bmRlcm5lYXRoIHRoZSByZXF1ZXN0IHBvc2l0
aW9uLCBzaW1wbHkgY2hlY2sgdGhhdCB0aGUgcG9zaXRpb24gaW5mb3JtYXRpb24ncworICAgICAg
ICBlbGVtZW50IGNvbnRleHQgbWF0Y2hlcyB0aGUgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbidz
IGVsZW1lbnQgY29udGV4dC4KKworICAgICAgICBBZGRpdGlvbmFsbHksIHJlbmFtZSBlbGVtZW50
UmVjdCBpbiBGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uIHRvIGludGVyYWN0aW9uUmVjdCwgdG8g
ZHJhdyBhIGRpc3RpbmN0aW9uIGJldHdlZW4KKyAgICAgICAgdGhpcyByZWN0IGFuZCB0aGUgbmV3
IEVsZW1lbnRDb250ZXh0J3MgYm91bmRpbmdSZWN0LgorCisgICAgICAgICogU2hhcmVkL2lvcy9J
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oOgorICAgICAgICAqIFNoYXJlZC9pb3Mv
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW06CisgICAgICAgIChXZWJLaXQ6Oklu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZGVjb2RlKToKKworICAg
ICAgICBSZW1vdmUgdGhlIG5vZGVBdFBvc2l0aW9uSXNGb2N1c2VkRWxlbWVudCBmbGFnLgorCisg
ICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAg
ICAgICgtW1dLQ29udGVudFZpZXcgX2RpZEdldFRhcEhpZ2hsaWdodEZvclJlcXVlc3Q6Y29sb3I6
cXVhZHM6dG9wTGVmdFJhZGl1czp0b3BSaWdodFJhZGl1czpib3R0b21MZWZ0UmFkaXVzOmJvdHRv
bVJpZ2h0UmFkaXVzOm5vZGVIYXNCdWlsdEluQ2xpY2tIYW5kbGluZzpdKToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfem9vbVRvUmV2ZWFsRm9jdXNlZEVsZW1lbnRdKToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfc2VsZWN0aW9uQ2xpcFJlY3RdKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBnZXN0dXJlUmVjb2duaXplclNob3VsZEJlZ2luOl0pOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IHRleHRJbnRlcmFjdGlvbkdlc3R1cmU6c2hvdWxkQmVnaW5BdFBvaW50Ol0pOgorCisg
ICAgICAgIEluIHZhcmlvdXMgcGxhY2VzIHRoYXQgY29uc3VsdCBub2RlQXRQb3NpdGlvbklzRm9j
dXNlZEVsZW1lbnQsIGluc3RlYWQgY2hlY2sgdGhhdCB0aGUgcG9zaXRpb24gaW5mb3JtYXRpb24n
cworICAgICAgICBoaXQtdGVzdGVkIGVsZW1lbnQgY29udGV4dCBpcyB0aGUgc2FtZSBhcyB0aGUg
Zm9jdXNlZCBlbGVtZW50LCB2aWEgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi4KKworICAgICAg
ICAoLVtXS0NvbnRlbnRWaWV3IF9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lXSk6CisKKyAgICAg
ICAgTnVrZSB0aGUgY2FjaGVkIHBvc2l0aW9uIGluZm9ybWF0aW9uIGRhdGEgdXBvbiBuYXZpZ2F0
aW9uOyB3aXRob3V0IHRoaXMgdHdlYWssIHdlIHdpbGwgZmFpbCB3aGVuIHJ1bm5pbmcgc2V2ZXJh
bAorICAgICAgICBpT1MgbGF5b3V0IHRlc3RzIGJhY2stdG8tYmFjaywgdGhhdCB0YXAgaW4gZXhh
Y3RseSB0aGUgc2FtZSBsb2NhdGlvbi4KKworICAgICAgICAocmVjdFRvUmV2ZWFsV2hlblpvb21p
bmdUb0ZvY3VzZWRFbGVtZW50KToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZWxlbWVudERp
ZEZvY3VzOnVzZXJJc0ludGVyYWN0aW5nOmJsdXJQcmV2aW91c05vZGU6YWN0aXZpdHlTdGF0ZUNo
YW5nZXM6dXNlck9iamVjdDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZWxlbWVudERp
ZEJsdXJdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyByZWN0Rm9yRm9jdXNlZEZvcm1Db250
cm9sVmlldzpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlkQ2hhbmdlRm9jdXNlZEVs
ZW1lbnRSZWN0OnRvUmVjdDpdKTogRGVsZXRlZC4KKworICAgICAgICBSZW1vdmUgY29kZSB0byBp
bnZhbGlkYXRlIGNhY2hlZCBwb3NpdGlvbiBpbmZvcm1hdGlvbiB3aGVuIGNoYW5naW5nIHRoZSBm
b2N1c2VkIGVsZW1lbnQgcmVjdC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tG
b3JtUG9wb3Zlci5tbToKKyAgICAgICAgKC1bV0tSb3RhdGluZ1BvcG92ZXIgcHJlc2VudFBvcG92
ZXJBbmltYXRlZDpdKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBvc2l0aW9uSW5mb3JtYXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpnZXRGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uKToK
KwogMjAxOS0xMC0yOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGQgYmluZGluZ3Mgc3VwcG9ydCBmb3IgdGhlIGVudGVya2V5aGludCBIVE1MIGF0
dHJpYnV0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRm9jdXNlZEVsZW1lbnRJ
bmZvcm1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9y
bWF0aW9uLmNwcAppbmRleCAzMmRiYmRkZGUzOTdlNzY2MWZkZGZiODQ0ZmE2OTdiYTZjZGE5OWJj
Li5kNWFhMzFkMDc3NmIxYWY3ODhhYjBiZmRlNjhjZGFmYTNlN2RkM2RkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmNwcApAQCAtNjMs
NyArNjMsOCBAQCBPcHRpb25hbDxPcHRpb25JdGVtPiBPcHRpb25JdGVtOjpkZWNvZGUoSVBDOjpE
ZWNvZGVyJiBkZWNvZGVyKQogCiB2b2lkIEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb246OmVuY29k
ZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCBlbGVtZW50
UmVjdDsKKyAgICBlbmNvZGVyIDw8IGludGVyYWN0aW9uUmVjdDsKKyAgICBlbmNvZGVyIDw8IGVs
ZW1lbnRDb250ZXh0OwogICAgIGVuY29kZXIgPDwgbGFzdEludGVyYWN0aW9uTG9jYXRpb247CiAg
ICAgZW5jb2RlciA8PCBtaW5pbXVtU2NhbGVGYWN0b3I7CiAgICAgZW5jb2RlciA8PCBtYXhpbXVt
U2NhbGVGYWN0b3I7CkBAIC0xMTMsNyArMTE0LDEwIEBAIHZvaWQgRm9jdXNlZEVsZW1lbnRJbmZv
cm1hdGlvbjo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKIAogYm9vbCBGb2N1
c2VkRWxlbWVudEluZm9ybWF0aW9uOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNvZGVyLCBGb2N1
c2VkRWxlbWVudEluZm9ybWF0aW9uJiByZXN1bHQpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQuZWxlbWVudFJlY3QpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lmlu
dGVyYWN0aW9uUmVjdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rl
ci5kZWNvZGUocmVzdWx0LmVsZW1lbnRDb250ZXh0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubGFzdEludGVyYWN0aW9uTG9jYXRpb24p
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvRm9jdXNlZEVsZW1lbnRJbmZvcm1h
dGlvbi5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5o
CmluZGV4IGQzZDI4OGM1NmI0ZjYxOTEyZTBhOTdlNzg4NDcxNGQ5MWRmOWEwYjMuLjVmYWNmZTFh
NDFkMzA1Y2M4YzIxOGQyNTAyNTc0OGNiODQyMWU2M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Gb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0F1dG9jYXBpdGFsaXplVHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0F1dG9maWxsLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Db2xvci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvRWxlbWVudENvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0lucHV0TW9kZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVj
dC5oPgpAQCAtOTYsNyArOTcsOCBAQCBzdHJ1Y3QgT3B0aW9uSXRlbSB7CiB1c2luZyBGb2N1c2Vk
RWxlbWVudElkZW50aWZpZXIgPSB1aW50NjRfdDsKIAogc3RydWN0IEZvY3VzZWRFbGVtZW50SW5m
b3JtYXRpb24gewotICAgIFdlYkNvcmU6OkludFJlY3QgZWxlbWVudFJlY3Q7CisgICAgV2ViQ29y
ZTo6SW50UmVjdCBpbnRlcmFjdGlvblJlY3Q7CisgICAgV2ViQ29yZTo6RWxlbWVudENvbnRleHQg
ZWxlbWVudENvbnRleHQ7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQgbGFzdEludGVyYWN0aW9uTG9j
YXRpb247CiAgICAgZG91YmxlIG1pbmltdW1TY2FsZUZhY3RvciB7IC1JTkZJTklUWSB9OwogICAg
IGRvdWJsZSBtYXhpbXVtU2NhbGVGYWN0b3IgeyBJTkZJTklUWSB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b24uaAppbmRleCA1MzA3ZDI1MTZmY2JmYmEwYTk1NDQ5N2U0MzczOGYwYjhiOWJlMzA1Li41ZGU1
OGQ5NmM0YjZmYzliMzJmNDFhOWYxYTRkZTJlNjU2MDg3Zjk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b24uaApAQCAtNTEsNyArNTEsNiBAQCBzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24gewogICAgIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3Q7CiAKICAg
ICBib29sIGNhbkJlVmFsaWQgeyB0cnVlIH07Ci0gICAgYm9vbCBub2RlQXRQb3NpdGlvbklzRm9j
dXNlZEVsZW1lbnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbm9kZUF0UG9zaXRpb25IYXNEb3VibGVD
bGlja0hhbmRsZXIgeyBmYWxzZSB9OwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQogICAg
IGJvb2wgaGFzU2VsZWN0aW9uQXRQb3NpdGlvbiB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b24ubW0KaW5kZXggOWMwMTMwOTA3N2YyZGQwMGUxMTZmM2EwZjY2ZjYzMTdhZDk4NGMzYy4uYmM3
MmQxZjBmOTI3NWJiMzE5NjZkZDI3N2U4OTYzMTBlNTFjYzk3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbi5tbQpAQCAtNDQsNyArNDQsNiBAQCB2b2lkIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBv
c2l0aW9uOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIg
PDwgcmVxdWVzdDsKIAogICAgIGVuY29kZXIgPDwgY2FuQmVWYWxpZDsKLSAgICBlbmNvZGVyIDw8
IG5vZGVBdFBvc2l0aW9uSXNGb2N1c2VkRWxlbWVudDsKICAgICBlbmNvZGVyIDw8IG5vZGVBdFBv
c2l0aW9uSGFzRG91YmxlQ2xpY2tIYW5kbGVyOwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9O
KQogICAgIGVuY29kZXIgPDwgaGFzU2VsZWN0aW9uQXRQb3NpdGlvbjsKQEAgLTk2LDkgKzk1LDYg
QEAgYm9vbCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZGVjb2RlKElQQzo6RGVj
b2RlciYgZGVjb2RlciwgSW50ZXJhY3Rpb24KICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3Vs
dC5jYW5CZVZhbGlkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQubm9kZUF0UG9zaXRpb25Jc0ZvY3VzZWRFbGVtZW50KSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubm9kZUF0UG9z
aXRpb25IYXNEb3VibGVDbGlja0hhbmRsZXIpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tCmluZGV4IGU0YzNkNDY4ZjgyNTc2ZTI2MGY3MWEwNDM0Y2NhZWRhMjQwZWRkZDQu
Ljg5NTcyMjc5MTgwMTQ4MDI1OGNjYjEzMDRlMTMyZjRmNjlkNDNjMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQpAQCAtMTY5Niw3ICsxNjk2LDcgQEAgLSAodm9pZClfZGlkR2V0VGFwSGlnaGxpZ2h0Rm9yUmVx
dWVzdDoodWludDY0X3QpcmVxdWVzdElEIGNvbG9yOihjb25zdCBXZWJDb3JlOjoKICAgICBpZiAo
IV9pc1RhcEhpZ2hsaWdodElEVmFsaWQgfHwgX2xhdGVzdFRhcElEICE9IHJlcXVlc3RJRCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGhhc0ZvY3VzZWRFbGVtZW50KF9mb2N1c2VkRWxlbWVu
dEluZm9ybWF0aW9uKSAmJiBfcG9zaXRpb25JbmZvcm1hdGlvbi5ub2RlQXRQb3NpdGlvbklzRm9j
dXNlZEVsZW1lbnQpCisgICAgaWYgKGhhc0ZvY3VzZWRFbGVtZW50KF9mb2N1c2VkRWxlbWVudElu
Zm9ybWF0aW9uKSAmJiBfcG9zaXRpb25JbmZvcm1hdGlvbi5lbGVtZW50Q29udGV4dCA9PSBfZm9j
dXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50Q29udGV4dCkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgX2lzVGFwSGlnaGxpZ2h0SURWYWxpZCA9IE5POwpAQCAtMTg3MSw3ICsxODcxLDcgQEAg
LSAodm9pZClfem9vbVRvUmV2ZWFsRm9jdXNlZEVsZW1lbnQKIAogICAgIC8vIEluIGNhc2UgdXNl
ciBzY2FsaW5nIGlzIGZvcmNlIGVuYWJsZWQsIGRvIG5vdCB1c2UgdGhhdCBzY2FsaW5nIHdoZW4g
em9vbWluZyBpbiB3aXRoIGFuIGlucHV0IGZpZWxkLgogICAgIC8vIFpvb21pbmcgYWJvdmUgdGhl
IHBhZ2UncyBkZWZhdWx0IHNjYWxlIGZhY3RvciBzaG91bGQgb25seSBoYXBwZW4gd2hlbiB0aGUg
dXNlciBwZXJmb3JtcyBpdC4KLSAgICBbc2VsZiBfem9vbVRvRm9jdXNSZWN0Ol9mb2N1c2VkRWxl
bWVudEluZm9ybWF0aW9uLmVsZW1lbnRSZWN0CisgICAgW3NlbGYgX3pvb21Ub0ZvY3VzUmVjdDpf
Zm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5pbnRlcmFjdGlvblJlY3QKICAgICAgICAgc2VsZWN0
aW9uUmVjdDpfZGlkQWNjZXNzb3J5VGFiSW5pdGlhdGVGb2N1cyA/IFdlYkNvcmU6OkZsb2F0UmVj
dCgpIDogcmVjdFRvUmV2ZWFsV2hlblpvb21pbmdUb0ZvY3VzZWRFbGVtZW50KF9mb2N1c2VkRWxl
bWVudEluZm9ybWF0aW9uLCBfcGFnZS0+ZWRpdG9yU3RhdGUoKSkKICAgICAgICAgaW5zaWRlRml4
ZWQ6X2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uaW5zaWRlRml4ZWRQb3NpdGlvbgogICAgICAg
ICBmb250U2l6ZTpfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5ub2RlRm9udFNpemUKQEAgLTE5
MjIsNyArMTkyMiw3IEBAIC0gKENHUmVjdClfc2VsZWN0aW9uQ2xpcFJlY3QKICAgICAgICAgcmV0
dXJuIENHUmVjdE51bGw7CiAKICAgICBpZiAoX3BhZ2UtPndhaXRpbmdGb3JQb3N0TGF5b3V0RWRp
dG9yU3RhdGVVcGRhdGVBZnRlckZvY3VzaW5nRWxlbWVudCgpKQotICAgICAgICByZXR1cm4gX2Zv
Y3VzZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudFJlY3Q7CisgICAgICAgIHJldHVybiBfZm9j
dXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5pbnRlcmFjdGlvblJlY3Q7CiAKICAgICByZXR1cm4gX3Bh
Z2UtPmVkaXRvclN0YXRlKCkucG9zdExheW91dERhdGEoKS5mb2N1c2VkRWxlbWVudFJlY3Q7CiB9
CkBAIC0yMjY4LDcgKzIyNjgsNyBAQCAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVyU2hvdWxkQmVn
aW46KFVJR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgogICAgICAgICAgICAg
Ly8gSWYgdGhlIGZvY3VzZWQgZWxlbWVudCBpcyB0aGUgc2FtZSwgcHJldmVudCB0aGUgZ2VzdHVy
ZS4KICAgICAgICAgICAgIGlmICghW3NlbGYgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBU
b0RhdGU6V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdChXZWJDb3JlOjpyb3Vu
ZGVkSW50UG9pbnQocG9pbnQpKV0pCiAgICAgICAgICAgICAgICAgcmV0dXJuIE5POwotICAgICAg
ICAgICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0aW9uLm5vZGVBdFBvc2l0aW9uSXNGb2N1c2VkRWxl
bWVudCkKKyAgICAgICAgICAgIGlmIChfcG9zaXRpb25JbmZvcm1hdGlvbi5lbGVtZW50Q29udGV4
dCA9PSBfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50Q29udGV4dCkKICAgICAgICAg
ICAgICAgICByZXR1cm4gTk87CiAgICAgICAgIH0KICAgICB9CkBAIC0yMzE0LDcgKzIzMTQsNyBA
QCAtIChCT09MKWdlc3R1cmVSZWNvZ25pemVyU2hvdWxkQmVnaW46KFVJR2VzdHVyZVJlY29nbml6
ZXIgKilnZXN0dXJlUmVjb2duaXplcgogCiAgICAgICAgIGlmIChoYXNGb2N1c2VkRWxlbWVudChf
Zm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbikpIHsKICAgICAgICAgICAgIC8vIFByZXZlbnQgdGhl
IGdlc3R1cmUgaWYgaXQgaXMgdGhlIHNhbWUgbm9kZS4KLSAgICAgICAgICAgIGlmIChfcG9zaXRp
b25JbmZvcm1hdGlvbi5ub2RlQXRQb3NpdGlvbklzRm9jdXNlZEVsZW1lbnQpCisgICAgICAgICAg
ICBpZiAoX3Bvc2l0aW9uSW5mb3JtYXRpb24uZWxlbWVudENvbnRleHQgPT0gX2ZvY3VzZWRFbGVt
ZW50SW5mb3JtYXRpb24uZWxlbWVudENvbnRleHQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE5P
OwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8gUHJldmVudCB0aGUgZ2VzdHVyZSBp
ZiB0aGVyZSBpcyBubyBhY3Rpb24gZm9yIHRoZSBub2RlLgpAQCAtMjQ0OSw3ICsyNDQ5LDcgQEAg
LSAoQk9PTCl0ZXh0SW50ZXJhY3Rpb25HZXN0dXJlOihVSVdLR2VzdHVyZVR5cGUpZ2VzdHVyZSBz
aG91bGRCZWdpbkF0UG9pbnQ6KENHUG8KIAogICAgIC8vIElmIHdlJ3JlIGN1cnJlbnRseSBmb2N1
c2luZyBhbiBlZGl0YWJsZSBlbGVtZW50LCBvbmx5IGFsbG93IHRoZSBzZWxlY3Rpb24gdG8gbW92
ZSB3aXRoaW4gdGhhdCBmb2N1c2VkIGVsZW1lbnQuCiAgICAgaWYgKHNlbGYuaXNGb2N1c2luZ0Vs
ZW1lbnQpCi0gICAgICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlvbi5ub2RlQXRQb3NpdGlv
bklzRm9jdXNlZEVsZW1lbnQ7CisgICAgICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlvbi5l
bGVtZW50Q29udGV4dCA9PSBfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50Q29udGV4
dDsKIAogICAgIC8vIElmIHdlJ3JlIHNlbGVjdGluZyBzb21ldGhpbmcsIGRvbid0IGFjdGl2YXRl
IGhpZ2hsaWdodC4KICAgICBpZiAoZ2VzdHVyZSA9PSBVSVdLR2VzdHVyZUxvdXBlICYmIFtzZWxm
IGhhc1NlbGVjdGFibGVQb3NpdGlvbkF0UG9pbnQ6cG9pbnRdKQpAQCAtNDE1MCw2ICs0MTUwLDkg
QEAgLSAodm9pZClfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZQogICAgIFtzZWxmIF9jYW5jZWxM
b25nUHJlc3NHZXN0dXJlUmVjb2duaXplcl07CiAgICAgW3NlbGYgX2hpZGVDb250ZXh0TWVudUhp
bnRDb250YWluZXJdOwogICAgIFtfd2ViVmlldyBfZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZV07
CisKKyAgICBfaGFzVmFsaWRQb3NpdGlvbkluZm9ybWF0aW9uID0gTk87CisgICAgX3Bvc2l0aW9u
SW5mb3JtYXRpb24gPSB7IH07CiB9CiAKICNpZiAhVVNFKFVJS0lUX0tFWUJPQVJEX0FERElUSU9O
UykKQEAgLTU0MDEsNyArNTQwNCw3IEBAIHN0YXRpYyBib29sIHNob3VsZFNob3dLZXlib2FyZEZv
ckVsZW1lbnQoY29uc3QgV2ViS2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uCiBzdGF0aWMg
V2ViQ29yZTo6RmxvYXRSZWN0IHJlY3RUb1JldmVhbFdoZW5ab29taW5nVG9Gb2N1c2VkRWxlbWVu
dChjb25zdCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mIGVsZW1lbnRJbmZvLCBj
b25zdCBXZWJLaXQ6OkVkaXRvclN0YXRlJiBlZGl0b3JTdGF0ZSkKIHsKICAgICBXZWJDb3JlOjpJ
bnRSZWN0IGVsZW1lbnRJbnRlcmFjdGlvblJlY3Q7Ci0gICAgaWYgKGVsZW1lbnRJbmZvLmVsZW1l
bnRSZWN0LmNvbnRhaW5zKGVsZW1lbnRJbmZvLmxhc3RJbnRlcmFjdGlvbkxvY2F0aW9uKSkKKyAg
ICBpZiAoZWxlbWVudEluZm8uaW50ZXJhY3Rpb25SZWN0LmNvbnRhaW5zKGVsZW1lbnRJbmZvLmxh
c3RJbnRlcmFjdGlvbkxvY2F0aW9uKSkKICAgICAgICAgZWxlbWVudEludGVyYWN0aW9uUmVjdCA9
IHsgZWxlbWVudEluZm8ubGFzdEludGVyYWN0aW9uTG9jYXRpb24sIHsgMSwgMSB9IH07CiAKICAg
ICBpZiAoIW1heUNvbnRhaW5TZWxlY3RhYmxlVGV4dChlbGVtZW50SW5mby5lbGVtZW50VHlwZSkp
CkBAIC01NDIzLDcgKzU0MjYsNyBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3RUb1Jl
dmVhbFdoZW5ab29taW5nVG9Gb2N1c2VkRWxlbWVudChjb25zdCBXZWJLaXQ6OgogICAgIH0gZWxz
ZQogICAgICAgICBzZWxlY3Rpb25Cb3VuZGluZ1JlY3QgPSBwb3N0TGF5b3V0RGF0YS5jYXJldFJl
Y3RBdFN0YXJ0OwogCi0gICAgc2VsZWN0aW9uQm91bmRpbmdSZWN0LmludGVyc2VjdChlbGVtZW50
SW5mby5lbGVtZW50UmVjdCk7CisgICAgc2VsZWN0aW9uQm91bmRpbmdSZWN0LmludGVyc2VjdChl
bGVtZW50SW5mby5pbnRlcmFjdGlvblJlY3QpOwogICAgIHJldHVybiBzZWxlY3Rpb25Cb3VuZGlu
Z1JlY3Q7CiB9CiAKQEAgLTU1MjQsNyArNTUyNyw3IEBAIC0gKHZvaWQpX2VsZW1lbnREaWRGb2N1
czooY29uc3QgV2ViS2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1
CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlbW92ZSB0aGlzIGNoZWNrIHdoZW4gd2UgbWFu
YWdlIHRvIHNlbmQgRWxlbWVudERpZEZvY3VzIGZyb20gdGhlIFdlYlByb2Nlc3MKICAgICAvLyBv
bmx5IHdoZW4gaXQgaXMgdHJ1bHkgdGltZSB0byBzaG93IHRoZSBrZXlib2FyZC4KLSAgICBpZiAo
X2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudFR5cGUgPT0gaW5mb3JtYXRpb24uZWxl
bWVudFR5cGUgJiYgX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudFJlY3QgPT0gaW5m
b3JtYXRpb24uZWxlbWVudFJlY3QpIHsKKyAgICBpZiAoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRp
b24uZWxlbWVudFR5cGUgPT0gaW5mb3JtYXRpb24uZWxlbWVudFR5cGUgJiYgX2ZvY3VzZWRFbGVt
ZW50SW5mb3JtYXRpb24uaW50ZXJhY3Rpb25SZWN0ID09IGluZm9ybWF0aW9uLmludGVyYWN0aW9u
UmVjdCkgewogICAgICAgICBpZiAoX2lucHV0UGVyaXBoZXJhbCkgewogICAgICAgICAgICAgaWYg
KCFzZWxmLmlzRmlyc3RSZXNwb25kZXIpCiAgICAgICAgICAgICAgICAgW3NlbGYgYmVjb21lRmly
c3RSZXNwb25kZXJdOwpAQCAtNTU1Niw3ICs1NTU5LDYgQEAgLSAodm9pZClfZWxlbWVudERpZEZv
Y3VzOihjb25zdCBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24mKWluZm9ybWF0aW9u
IHUKICAgICBpZiAoZGVsZWdhdGVJbXBsZW1lbnRzV2lsbFN0YXJ0SW5wdXRTZXNzaW9uKQogICAg
ICAgICBbaW5wdXREZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyB3aWxsU3RhcnRJbnB1dFNlc3Np
b246X2Zvcm1JbnB1dFNlc3Npb24uZ2V0KCldOwogCi0gICAgYXV0byBwcmV2aW91c0VsZW1lbnRS
ZWN0ID0gX2lzQ2hhbmdpbmdGb2N1cyA/IF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVsZW1l
bnRSZWN0IDogV2ViQ29yZTo6SW50UmVjdCgpOwogICAgIEJPT0wgaXNTZWxlY3RhYmxlID0gbWF5
Q29udGFpblNlbGVjdGFibGVUZXh0KGluZm9ybWF0aW9uLmVsZW1lbnRUeXBlKTsKICAgICBCT09M
IGVkaXRhYmxlQ2hhbmdlZCA9IFtzZWxmIHNldElzRWRpdGFibGU6aXNTZWxlY3RhYmxlXTsKICAg
ICBfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiA9IGluZm9ybWF0aW9uOwpAQCAtNTYwMyw4ICs1
NjA1LDYgQEAgLSAodm9pZClfZWxlbWVudERpZEZvY3VzOihjb25zdCBXZWJLaXQ6OkZvY3VzZWRF
bGVtZW50SW5mb3JtYXRpb24mKWluZm9ybWF0aW9uIHUKICAgICAgICAgW2lucHV0RGVsZWdhdGUg
X3dlYlZpZXc6X3dlYlZpZXcgZGlkU3RhcnRJbnB1dFNlc3Npb246X2Zvcm1JbnB1dFNlc3Npb24u
Z2V0KCldOwogICAgIAogICAgIFtfd2ViVmlldyBkaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rp
b25dOwotCi0gICAgW3NlbGYgX2RpZENoYW5nZUZvY3VzZWRFbGVtZW50UmVjdDpwcmV2aW91c0Vs
ZW1lbnRSZWN0IHRvUmVjdDpfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5lbGVtZW50UmVjdF07
CiB9CiAKIC0gKHZvaWQpX2VsZW1lbnREaWRCbHVyCkBAIC01NjI4LDcgKzU2MjgsNiBAQCAtICh2
b2lkKV9lbGVtZW50RGlkQmx1cgogI2VuZGlmCiAKICAgICBCT09MIGVkaXRhYmxlQ2hhbmdlZCA9
IFtzZWxmIHNldElzRWRpdGFibGU6Tk9dOwotICAgIGF1dG8gcHJldmlvdXNFbGVtZW50UmVjdCA9
IF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVsZW1lbnRSZWN0OwogICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgY29tcGxldGVseSBpbnZhbGlkYXRlIF9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9u
IGhlcmUsIGluc3RlYWQgb2YgYSBzdWJzZXQgb2YgaW5kaXZpZHVhbCBtZW1iZXJzLgogICAgIF9m
b2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVsZW1lbnRUeXBlID0gV2ViS2l0OjpJbnB1dFR5cGU6
Ok5vbmU7CiAgICAgX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uc2hvdWxkU3ludGhlc2l6ZUtl
eUV2ZW50c0ZvckVkaXRpbmcgPSBmYWxzZTsKQEAgLTU2NjIsMjMgKzU2NjEsOCBAQCAtICh2b2lk
KV9lbGVtZW50RGlkQmx1cgogICAgICAgICBfcGFnZS0+c2V0SXNTaG93aW5nSW5wdXRWaWV3Rm9y
Rm9jdXNlZEVsZW1lbnQoZmFsc2UpOwogICAgIH0KIAotICAgIGlmICghX2lzQ2hhbmdpbmdGb2N1
cykgeworICAgIGlmICghX2lzQ2hhbmdpbmdGb2N1cykKICAgICAgICAgX2RpZEFjY2Vzc29yeVRh
YkluaXRpYXRlRm9jdXMgPSBOTzsKLSAgICAgICAgW3NlbGYgX2RpZENoYW5nZUZvY3VzZWRFbGVt
ZW50UmVjdDpwcmV2aW91c0VsZW1lbnRSZWN0IHRvUmVjdDpXZWJDb3JlOjpJbnRSZWN0KCldOwot
ICAgIH0KLX0KLQotLSAodm9pZClfZGlkQ2hhbmdlRm9jdXNlZEVsZW1lbnRSZWN0Oihjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JilwcmV2aW91c1JlY3QgdG9SZWN0Oihjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiluZXdSZWN0Ci17Ci0gICAgaWYgKHByZXZpb3VzUmVjdCA9PSBuZXdSZWN0KQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAobmV3UmVjdC5pc0VtcHR5KCkgJiYgIV9wb3NpdGlvbkluZm9y
bWF0aW9uLm5vZGVBdFBvc2l0aW9uSXNGb2N1c2VkRWxlbWVudCkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgLy8gSWYgdGhlIGZvY3VzZWQgZWxlbWVudCByZWN0IGNoYW5nZWQsIHRoZSBjYWNoZWQg
cG9zaXRpb24gaW5mb3JtYXRpb24ncyBub2RlQXRQb3NpdGlvbklzRm9jdXNlZEVsZW1lbnQgbWF5
IGJlIHN0YWxlLgotICAgIF9oYXNWYWxpZFBvc2l0aW9uSW5mb3JtYXRpb24gPSBOTzsKLSAgICBf
cG9zaXRpb25JbmZvcm1hdGlvbiA9IHsgfTsKIH0KIAogLSAodm9pZClfdXBkYXRlSW5wdXRDb250
ZXh0QWZ0ZXJCbHVycmluZ0FuZFJlZm9jdXNpbmdFbGVtZW50CkBAIC01OTg5LDcgKzU5NzMsNyBA
QCAtICh2b2lkKWZvY3VzZWRGb3JtQ29udHJvbFZpZXdEaWRCZWdpbkVkaXRpbmc6KFdLRm9jdXNl
ZEZvcm1Db250cm9sVmlldyAqKXZpZXcKIAogLSAoQ0dSZWN0KXJlY3RGb3JGb2N1c2VkRm9ybUNv
bnRyb2xWaWV3OihXS0ZvY3VzZWRGb3JtQ29udHJvbFZpZXcgKil2aWV3CiB7Ci0gICAgcmV0dXJu
IFtzZWxmIGNvbnZlcnRSZWN0Ol9mb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uLmVsZW1lbnRSZWN0
IHRvVmlldzp2aWV3XTsKKyAgICByZXR1cm4gW3NlbGYgY29udmVydFJlY3Q6X2ZvY3VzZWRFbGVt
ZW50SW5mb3JtYXRpb24uaW50ZXJhY3Rpb25SZWN0IHRvVmlldzp2aWV3XTsKIH0KIAogLSAoQ0dS
ZWN0KW5leHRSZWN0Rm9yRm9jdXNlZEZvcm1Db250cm9sVmlldzooV0tGb2N1c2VkRm9ybUNvbnRy
b2xWaWV3ICopdmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zv
cm1zL1dLRm9ybVBvcG92ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMv
V0tGb3JtUG9wb3Zlci5tbQppbmRleCBhNGM0YWMzYThjNzEzMjg5MDUzYmM5NzNjNmI5MjkxYTc3
MzhkYTgwLi4wOTg2NmVhZTJjMmQ2MjRmNDMwMTZkMjE2OTQ1YThlZTQ3YTUyMDE5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9wb3Zlci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGb3JtUG9wb3Zlci5tbQpA
QCAtMTQyLDcgKzE0Miw3IEBAIC0gKHZvaWQpcHJlc2VudFBvcG92ZXJBbmltYXRlZDooQk9PTClh
bmltYXRlZAogICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJtaXR0ZWRBcnJvd0RpcmVjdGlv
bnM6ZGlyZWN0aW9ucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YW5pbWF0ZWQ6YW5pbWF0ZWRdOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIENHUmVjdCBib3VuZGlu
Z0JveE9mRE9NTm9kZSA9IF92aWV3LmZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uZWxlbWVudFJl
Y3Q7CisgICAgICAgIENHUmVjdCBib3VuZGluZ0JveE9mRE9NTm9kZSA9IF92aWV3LmZvY3VzZWRF
bGVtZW50SW5mb3JtYXRpb24uaW50ZXJhY3Rpb25SZWN0OwogICAgICAgICBbX3BvcG92ZXJDb250
cm9sbGVyIHByZXNlbnRQb3BvdmVyRnJvbVJlY3Q6Q0dSZWN0SW50ZWdyYWwoYm91bmRpbmdCb3hP
ZkRPTU5vZGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
VmlldzpfdmlldwogICAgICAgICAgICAgICAgICAgICAgICAgICBwZXJtaXR0ZWRBcnJvd0RpcmVj
dGlvbnM6ZGlyZWN0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA2NjczZDYzYjgyYWFjZWY2MzhkNDY1Mjc5YjJjOWQw
MmIyOTAxMmY0Li5kNjIzODEwZjQxNDQ5YzgxMGRkMmZlNWNmMTFhNzVmZTJiODM1NWRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5t
bQpAQCAtMjc4MCw3ICsyNzgwLDYgQEAgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24g
V2ViUGFnZTo6cG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFjdGlvbkkKICAgICBGbG9h
dFBvaW50IGFkanVzdGVkUG9pbnQ7CiAgICAgYXV0byogbm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZl
bnRzID0gbV9wYWdlLT5tYWluRnJhbWUoKS5ub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMocmVx
dWVzdC5wb2ludCwgYWRqdXN0ZWRQb2ludCk7CiAKLSAgICBpbmZvLm5vZGVBdFBvc2l0aW9uSXNG
b2N1c2VkRWxlbWVudCA9IG5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cyA9PSBtX2ZvY3VzZWRF
bGVtZW50OwogICAgIGluZm8uYWRqdXN0ZWRQb2ludEZvck5vZGVSZXNwb25kaW5nVG9DbGlja0V2
ZW50cyA9IGFkanVzdGVkUG9pbnQ7CiAgICAgaW5mby5ub2RlQXRQb3NpdGlvbkhhc0RvdWJsZUNs
aWNrSGFuZGxlciA9IG1fcGFnZS0+bWFpbkZyYW1lKCkubm9kZVJlc3BvbmRpbmdUb0RvdWJsZUNs
aWNrRXZlbnQocmVxdWVzdC5wb2ludCwgYWRqdXN0ZWRQb2ludCk7CiAKQEAgLTI5MDUsOSArMjkw
NCwxMSBAQCB2b2lkIFdlYlBhZ2U6OmdldEZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24oRm9jdXNl
ZEVsZW1lbnRJbmZvcm1hdGlvbiYgaW5mb3JtYXRpbwogICAgIGxheW91dElmTmVlZGVkKCk7CiAK
ICAgICBpbmZvcm1hdGlvbi5sYXN0SW50ZXJhY3Rpb25Mb2NhdGlvbiA9IG1fbGFzdEludGVyYWN0
aW9uTG9jYXRpb247CisgICAgaWYgKGF1dG8gZWxlbWVudENvbnRleHQgPSBjb250ZXh0Rm9yRWxl
bWVudCgqbV9mb2N1c2VkRWxlbWVudCkpCisgICAgICAgIGluZm9ybWF0aW9uLmVsZW1lbnRDb250
ZXh0ID0gV1RGTW92ZSgqZWxlbWVudENvbnRleHQpOwogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVy
ID0gbV9mb2N1c2VkRWxlbWVudC0+cmVuZGVyZXIoKSkgewotICAgICAgICBpbmZvcm1hdGlvbi5l
bGVtZW50UmVjdCA9IHJvb3RWaWV3SW50ZXJhY3Rpb25Cb3VuZHNGb3JFbGVtZW50KCptX2ZvY3Vz
ZWRFbGVtZW50KTsKKyAgICAgICAgaW5mb3JtYXRpb24uaW50ZXJhY3Rpb25SZWN0ID0gcm9vdFZp
ZXdJbnRlcmFjdGlvbkJvdW5kc0ZvckVsZW1lbnQoKm1fZm9jdXNlZEVsZW1lbnQpOwogICAgICAg
ICBpbmZvcm1hdGlvbi5ub2RlRm9udFNpemUgPSByZW5kZXJlci0+c3R5bGUoKS5mb250RGVzY3Jp
cHRpb24oKS5jb21wdXRlZFNpemUoKTsKIAogICAgICAgICBib29sIGluRml4ZWQgPSBmYWxzZTsK
QEAgLTI5MTUsNyArMjkxNiw3IEBAIHZvaWQgV2ViUGFnZTo6Z2V0Rm9jdXNlZEVsZW1lbnRJbmZv
cm1hdGlvbihGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJiBpbmZvcm1hdGlvCiAgICAgICAgIGlu
Zm9ybWF0aW9uLmluc2lkZUZpeGVkUG9zaXRpb24gPSBpbkZpeGVkOwogICAgICAgICBpbmZvcm1h
dGlvbi5pc1JUTCA9IHJlbmRlcmVyLT5zdHlsZSgpLmRpcmVjdGlvbigpID09IFRleHREaXJlY3Rp
b246OlJUTDsKICAgICB9IGVsc2UKLSAgICAgICAgaW5mb3JtYXRpb24uZWxlbWVudFJlY3QgPSBJ
bnRSZWN0KCk7CisgICAgICAgIGluZm9ybWF0aW9uLmludGVyYWN0aW9uUmVjdCA9IHsgfTsKIAog
ICAgIGlmIChpczxIVE1MRWxlbWVudD4obV9mb2N1c2VkRWxlbWVudCkpCiAgICAgICAgIGluZm9y
bWF0aW9uLmlzU3BlbGxDaGVja2luZ0VuYWJsZWQgPSBkb3duY2FzdDxIVE1MRWxlbWVudD4oKm1f
Zm9jdXNlZEVsZW1lbnQpLnNwZWxsY2hlY2soKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>