<?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>180774</bug_id>
          
          <creation_ts>2017-12-13 15:29:13 -0800</creation_ts>
          <short_desc>Add SPI to query for the current and last auto fill button type and pass user data object to _webView:focusShouldStartInputSession:</short_desc>
          <delta_ts>2017-12-18 09:14:13 -0800</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 Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>achristensen</cc>
    
    <cc>rniwa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1381321</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-12-13 15:29:13 -0800</bug_when>
    <thetext>Add SPI to query for the auto fill button type and the last auto fill button type of a field.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381324</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-12-13 15:29:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/36033832&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1381331</commentid>
    <comment_count>2</comment_count>
      <attachid>329273</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-12-13 15:42:47 -0800</bug_when>
    <thetext>Created attachment 329273
Patch and layout test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382262</commentid>
    <comment_count>3</comment_count>
      <attachid>329273</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-12-15 13:04:47 -0800</bug_when>
    <thetext>Comment on attachment 329273
Patch and layout test

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

&gt; Source/WebCore/html/HTMLInputElement.h:463
&gt;      unsigned m_autoFillButtonType : 2; // AutoFillButtonType;
&gt; +    unsigned m_lastAutoFillButtonType : 2; // AutoFillButtonType;

Why do these have trailing semicolons?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382765</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-12-18 09:13:15 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #3)
&gt; Comment on attachment 329273 [details]
&gt; Patch and layout test
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=329273&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLInputElement.h:463
&gt; &gt;      unsigned m_autoFillButtonType : 2; // AutoFillButtonType;
&gt; &gt; +    unsigned m_lastAutoFillButtonType : 2; // AutoFillButtonType;
&gt; 
&gt; Why do these have trailing semicolons?

Will remove before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382766</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-12-18 09:14:13 -0800</bug_when>
    <thetext>Committed r226048: &lt;https://trac.webkit.org/changeset/226048&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329273</attachid>
            <date>2017-12-13 15:42:47 -0800</date>
            <delta_ts>2017-12-15 13:04:47 -0800</delta_ts>
            <desc>Patch and layout test</desc>
            <filename>bug-180774-20171213154246.patch</filename>
            <type>text/plain</type>
            <size>27742</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1ODQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTZmZTFmY2U1MjNjMzc4
OTVlYTJhNzIzZjYxMDEyMjUwM2IwMmI4Ny4uOWYzNzA4ZTg4MGUxMjM3NmY4OTk2NjZmMTcwMDlm
MmFmMjY2ODIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTEyLTEzICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgU1BJIHRvIHF1ZXJ5
IGZvciB0aGUgY3VycmVudCBhbmQgbGFzdCBhdXRvIGZpbGwgYnV0dG9uIHR5cGUgYW5kIHBhc3Mg
dXNlciBkYXRhIG9iamVjdCB0byBfd2ViVmlldzpmb2N1c1Nob3VsZFN0YXJ0SW5wdXRTZXNzaW9u
OgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwNzc0
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjAzMzgzMj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2UgYSB3YXkgZm9yIGFuIGVtYmVkZGlu
ZyBjbGllbnQgdG8gcXVlcnkgZm9yIHRoZSBhdXRvIGZpbGwgYnV0dG9uIHR5cGUgb2YgYSBzcGVj
aWZpYworICAgICAgICBpbnB1dCBlbGVtZW50IGFzIGl0IG1heSBub3QgYmUgZmVhc2libGUgZm9y
IGEgY2xpZW50IHRvIHRyYWNrIHN1Y2ggc3RhdGUgdGhlbXNlbHZlcy4gRm9yCisgICAgICAgIHNp
bWlsYXIgcmVhc29ucyB0cmFjayBhbmQgZXhwb3NlIFNQSSB0byBxdWVyeSBmb3IgdGhlIGxhc3Qg
YXV0byBmaWxsIGJ1dHRvbiB0eXBlIGZvciBhCisgICAgICAgIHNwZWNpZmljIGZpZWxkLgorCisg
ICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvYXV0by1maWxsLWJ1dHRvbi9sYXN0LWF1dG8tZmlsbC1i
dXR0b24tdHlwZS5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6SFRNTElucHV0RWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzZXRTaG93QXV0b0ZpbGxCdXR0b24p
OgorICAgICAgICBVcGRhdGUgdGhlIGxhc3QgYXV0byBmaWxsIGJ1dHRvbiB0eXBlLgorCisgICAg
ICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50OjpsYXN0QXV0b0ZpbGxCdXR0b25UeXBlIGNvbnN0KTogQWRkZWQuCisKKyAgICAg
ICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0ludGVybmFs
c0F1dG9GaWxsQnV0dG9uVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmF1dG9G
aWxsQnV0dG9uVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Omxhc3RBdXRvRmls
bEJ1dHRvblR5cGUpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICog
dGVzdGluZy9JbnRlcm5hbHMuaWRsOgorICAgICAgICBBZGQgZnVuY3Rpb25zIGZvciB0ZXN0aW5n
LgorCiAyMDE3LTEyLTEyICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgaXM8SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ+IHJlcG9ydHMgdGhlIGlucHV0IHR5cGUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDBkN2I3MmM0YWUyZWJmYmNhNDQ5N2NkMTQ5YTA0YjdhMGMzYWNiMDEuLmEw
NzJlZWQxMjMxOGFlMjkyZTVmZDdjOTRjNWM1Y2NlOTFjZmUzYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNDAgQEAKKzIwMTctMTItMTMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBTUEkgdG8gcXVlcnkgZm9yIHRoZSBjdXJyZW50IGFuZCBsYXN0IGF1dG8g
ZmlsbCBidXR0b24gdHlwZSBhbmQgcGFzcyB1c2VyIGRhdGEgb2JqZWN0IHRvIF93ZWJWaWV3OmZv
Y3VzU2hvdWxkU3RhcnRJbnB1dFNlc3Npb246CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODA3NzQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2MDMz
ODMyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEhh
dmUgV0tGb2N1c2VkRWxlbWVudEluZm8gb3duIHRoZSBvcHRpb25hbCB1c2VyIGRhdGEgb2JqZWN0
IGFzc29jaWF0ZWQgd2l0aCB0aGUgZm9jdXNlZAorICAgICAgICBlbGVtZW50IGFzIG9wcG9zZWQg
dG8gaGF2aW5nIFdLRm9ybUlucHV0U2Vzc2lvbiBvd24gaXQuIFRoaXMgYWxsb3dzIHRoZSBJbmpl
Y3RlZCBCdW5kbGUncworICAgICAgICBfd2ViVmlldzpmb2N1c1Nob3VsZFN0YXJ0SW5wdXRTZXNz
aW9uOiBkZWxlZ2F0ZSBjYWxsYmFjayB0byBtYWtlIHVzZSBvZiB0aGlzIHVzZXIgZGF0YQorICAg
ICAgICB0byBkZXRlcm1pbmUgd2hldGhlciBmb2N1cyBzaG91bGQgc3RhcnQgYSBuZXcgaW5wdXQg
c2Vzc2lvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRm9jdXNlZEVsZW1l
bnRJbmZvLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW06CisgICAgICAgICgtW1dLRm9ybUlucHV0U2Vzc2lvbiBpbml0V2l0aENvbnRlbnRWaWV3
OmZvY3VzZWRFbGVtZW50SW5mbzpdKToKKyAgICAgICAgKC1bV0tGb3JtSW5wdXRTZXNzaW9uIHVz
ZXJPYmplY3RdKToKKyAgICAgICAgKC1bV0tGb2N1c2VkRWxlbWVudEluZm8gaW5pdFdpdGhBc3Np
c3RlZE5vZGVJbmZvcm1hdGlvbjppc1VzZXJJbml0aWF0ZWQ6dXNlck9iamVjdDpdKToKKyAgICAg
ICAgKC1bV0tGb2N1c2VkRWxlbWVudEluZm8gdXNlck9iamVjdF0pOgorICAgICAgICAoLVtXS0Nv
bnRlbnRWaWV3IF9zdGFydEFzc2lzdGluZ05vZGU6dXNlcklzSW50ZXJhY3Rpbmc6Ymx1clByZXZp
b3VzTm9kZTp1c2VyT2JqZWN0Ol0pOgorICAgICAgICAoLVtXS0Zvcm1JbnB1dFNlc3Npb24gaW5p
dFdpdGhDb250ZW50Vmlldzpmb2N1c2VkRWxlbWVudEluZm86dXNlck9iamVjdDpdKTogRGVsZXRl
ZC4KKyAgICAgICAgKC1bV0tGb2N1c2VkRWxlbWVudEluZm8gaW5pdFdpdGhBc3Npc3RlZE5vZGVJ
bmZvcm1hdGlvbjppc1VzZXJJbml0aWF0ZWQ6XSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRs
ZS5tbToKKyAgICAgICAgKHRvV0tBdXRvRmlsbEJ1dHRvblR5cGUpOgorICAgICAgICAoLVtXS1dl
YlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlIGh0bWxJbnB1dEVsZW1lbnRBdXRvRmlsbEJ1dHRvblR5
cGVdKToKKyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZSBodG1sSW5wdXRF
bGVtZW50TGFzdEF1dG9GaWxsQnV0dG9uVHlwZV0pOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGVQcml2YXRl
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5v
ZGVIYW5kbGUuY3BwOgorICAgICAgICAodG9XS0F1dG9GaWxsQnV0dG9uVHlwZSk6CisgICAgICAg
IChXS0J1bmRsZU5vZGVIYW5kbGVHZXRIVE1MSW5wdXRFbGVtZW50QXV0b0ZpbGxCdXR0b25UeXBl
KToKKyAgICAgICAgKFdLQnVuZGxlTm9kZUhhbmRsZUdldEhUTUxJbnB1dEVsZW1lbnRMYXN0QXV0
b0ZpbGxCdXR0b25UeXBlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlTm9kZUhhbmRsZVByaXZhdGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6Omh0bWxJbnB1dEVsZW1lbnRBdXRvRmls
bEJ1dHRvblR5cGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZU5vZGVI
YW5kbGU6Omh0bWxJbnB1dEVsZW1lbnRMYXN0QXV0b0ZpbGxCdXR0b25UeXBlIGNvbnN0KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVI
YW5kbGUuaDoKKwogMjAxNy0xMi0xMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIE9wdGlvbnNHVEsuY21ha2Ug
YW5kIE5FV1MgZm9yIDIuMTkuMyByZWxlYXNlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAKaW5kZXggMGJkY2NmYmZkZmM2MjBjODFlMjU2OWUwM2FiNGYxOWEzM2JlNDEy
Yy4uZmVlOWM1YjVlYjRjOTcwZjZmNjdiOWMxNWU3OTE3OWU2MWQ1NjZiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xMDksNiArMTA5LDcgQEAgSFRNTElu
cHV0RWxlbWVudDo6SFRNTElucHV0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1l
LCBEb2N1bWVudCYgZG9jdW0KICAgICAsIG1fYXV0b2NvbXBsZXRlKFVuaW5pdGlhbGl6ZWQpCiAg
ICAgLCBtX2lzQXV0b0ZpbGxlZChmYWxzZSkKICAgICAsIG1fYXV0b0ZpbGxCdXR0b25UeXBlKHN0
YXRpY19jYXN0PHVpbnQ4X3Q+KEF1dG9GaWxsQnV0dG9uVHlwZTo6Tm9uZSkpCisgICAgLCBtX2xh
c3RBdXRvRmlsbEJ1dHRvblR5cGUoc3RhdGljX2Nhc3Q8dWludDhfdD4oQXV0b0ZpbGxCdXR0b25U
eXBlOjpOb25lKSkKICAgICAsIG1faXNBdXRvRmlsbEF2YWlsYWJsZShmYWxzZSkKICNpZiBFTkFC
TEUoREFUQUxJU1RfRUxFTUVOVCkKICAgICAsIG1faGFzTm9uRW1wdHlMaXN0KGZhbHNlKQpAQCAt
MTM2OCw2ICsxMzY5LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRTaG93QXV0b0ZpbGxC
dXR0b24oQXV0b0ZpbGxCdXR0b25UeXBlIGF1dG9GaWxsQnV0dG9uVHkKICAgICBpZiAoc3RhdGlj
X2Nhc3Q8dWludDhfdD4oYXV0b0ZpbGxCdXR0b25UeXBlKSA9PSBtX2F1dG9GaWxsQnV0dG9uVHlw
ZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9sYXN0QXV0b0ZpbGxCdXR0b25UeXBlID0gbV9h
dXRvRmlsbEJ1dHRvblR5cGU7CiAgICAgbV9hdXRvRmlsbEJ1dHRvblR5cGUgPSBzdGF0aWNfY2Fz
dDx1aW50OF90PihhdXRvRmlsbEJ1dHRvblR5cGUpOwogICAgIG1faW5wdXRUeXBlLT51cGRhdGVB
dXRvRmlsbEJ1dHRvbigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApp
bmRleCBhNzY0MDc5YThmOGEzNjg3ODkyMDZmMmU1OTk1ZmE2ZjVkMzYyZTM3Li45OWRjZjE4YzM4
ZTI5YTRkYzMyM2E1ZDdiMzM2ODNkZDExMWRkM2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuaApAQCAtMjQ0LDYgKzI0NCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzQXV0
b0ZpbGxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNBdXRvRmlsbGVkOyB9CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRBdXRvRmlsbGVkKGJvb2wgPSB0cnVlKTsKIAorICAgIEF1dG9GaWxsQnV0
dG9uVHlwZSBsYXN0QXV0b0ZpbGxCdXR0b25UeXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8QXV0b0ZpbGxCdXR0b25UeXBlPihtX2xhc3RBdXRvRmlsbEJ1dHRvblR5cGUpOyB9CiAgICAg
QXV0b0ZpbGxCdXR0b25UeXBlIGF1dG9GaWxsQnV0dG9uVHlwZSgpIGNvbnN0IHsgcmV0dXJuIChB
dXRvRmlsbEJ1dHRvblR5cGUpbV9hdXRvRmlsbEJ1dHRvblR5cGU7IH0KICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFNob3dBdXRvRmlsbEJ1dHRvbihBdXRvRmlsbEJ1dHRvblR5cGUpOwogCkBA
IC00NTksNiArNDYwLDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX2F1dG9jb21wbGV0ZSA6
IDI7IC8vIEF1dG9Db21wbGV0ZVNldHRpbmcKICAgICBib29sIG1faXNBdXRvRmlsbGVkIDogMTsK
ICAgICB1bnNpZ25lZCBtX2F1dG9GaWxsQnV0dG9uVHlwZSA6IDI7IC8vIEF1dG9GaWxsQnV0dG9u
VHlwZTsKKyAgICB1bnNpZ25lZCBtX2xhc3RBdXRvRmlsbEJ1dHRvblR5cGUgOiAyOyAvLyBBdXRv
RmlsbEJ1dHRvblR5cGU7CiAgICAgYm9vbCBtX2lzQXV0b0ZpbGxBdmFpbGFibGUgOiAxOwogI2lm
IEVOQUJMRShEQVRBTElTVF9FTEVNRU5UKQogICAgIGJvb2wgbV9oYXNOb25FbXB0eUxpc3QgOiAx
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDIxMzZkYjgzN2YxODhiOTU0
MTdiYmIzYjNmM2Y5OGRiZDU0NjljNmYuLmY2NDExN2JkMzI0MGRhMmE1NDVhNDFhMTc2OWE3NDIw
Y2ZlNjY0YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTE2NjgsMTEg
KzE2NjgsMzUgQEAgc3RhdGljIEF1dG9GaWxsQnV0dG9uVHlwZSB0b0F1dG9GaWxsQnV0dG9uVHlw
ZShJbnRlcm5hbHM6OkF1dG9GaWxsQnV0dG9uVHlwZSB0eXAKICAgICByZXR1cm4gQXV0b0ZpbGxC
dXR0b25UeXBlOjpOb25lOwogfQogCitzdGF0aWMgSW50ZXJuYWxzOjpBdXRvRmlsbEJ1dHRvblR5
cGUgdG9JbnRlcm5hbHNBdXRvRmlsbEJ1dHRvblR5cGUoQXV0b0ZpbGxCdXR0b25UeXBlIHR5cGUp
Cit7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBBdXRvRmlsbEJ1dHRvblR5cGU6Ok5v
bmU6CisgICAgICAgIHJldHVybiBJbnRlcm5hbHM6OkF1dG9GaWxsQnV0dG9uVHlwZTo6Tm9uZTsK
KyAgICBjYXNlIEF1dG9GaWxsQnV0dG9uVHlwZTo6Q3JlZGVudGlhbHM6CisgICAgICAgIHJldHVy
biBJbnRlcm5hbHM6OkF1dG9GaWxsQnV0dG9uVHlwZTo6Q3JlZGVudGlhbHM7CisgICAgY2FzZSBB
dXRvRmlsbEJ1dHRvblR5cGU6OkNvbnRhY3RzOgorICAgICAgICByZXR1cm4gSW50ZXJuYWxzOjpB
dXRvRmlsbEJ1dHRvblR5cGU6OkNvbnRhY3RzOworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gSW50ZXJuYWxzOjpBdXRvRmlsbEJ1dHRvblR5cGU6Ok5vbmU7Cit9
CisKIHZvaWQgSW50ZXJuYWxzOjpzZXRTaG93QXV0b0ZpbGxCdXR0b24oSFRNTElucHV0RWxlbWVu
dCYgZWxlbWVudCwgQXV0b0ZpbGxCdXR0b25UeXBlIHR5cGUpCiB7CiAgICAgZWxlbWVudC5zZXRT
aG93QXV0b0ZpbGxCdXR0b24odG9BdXRvRmlsbEJ1dHRvblR5cGUodHlwZSkpOwogfQogCithdXRv
IEludGVybmFsczo6YXV0b0ZpbGxCdXR0b25UeXBlKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmIGVs
ZW1lbnQpIC0+IEF1dG9GaWxsQnV0dG9uVHlwZQoreworICAgIHJldHVybiB0b0ludGVybmFsc0F1
dG9GaWxsQnV0dG9uVHlwZShlbGVtZW50LmF1dG9GaWxsQnV0dG9uVHlwZSgpKTsKK30KKworYXV0
byBJbnRlcm5hbHM6Omxhc3RBdXRvRmlsbEJ1dHRvblR5cGUoY29uc3QgSFRNTElucHV0RWxlbWVu
dCYgZWxlbWVudCkgLT4gQXV0b0ZpbGxCdXR0b25UeXBlCit7CisgICAgcmV0dXJuIHRvSW50ZXJu
YWxzQXV0b0ZpbGxCdXR0b25UeXBlKGVsZW1lbnQubGFzdEF1dG9GaWxsQnV0dG9uVHlwZSgpKTsK
K30KKwogRXhjZXB0aW9uT3I8dm9pZD4gSW50ZXJuYWxzOjpzY3JvbGxFbGVtZW50VG9SZWN0KEVs
ZW1lbnQmIGVsZW1lbnQsIGludCB4LCBpbnQgeSwgaW50IHcsIGludCBoKQogewogICAgIEZyYW1l
VmlldyogZnJhbWVWaWV3ID0gZWxlbWVudC5kb2N1bWVudCgpLnZpZXcoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oCmluZGV4IGExMGVmYzYxYWY3YTlmMjE2NWMyNTcwY2YxZGY2NTNlNGRh
NjlmZWYuLmUwYjI2OGQwODE1NTMxMmVhYjhkMzQyZTA4MDYyOWY2MGFmMDYzM2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMjM2LDYgKzIzNiw4IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEF1dG9maWxsZWQoSFRNTElucHV0RWxlbWVudCYsIGJvb2wgZW5hYmxlZCk7CiAgICAg
ZW51bSBjbGFzcyBBdXRvRmlsbEJ1dHRvblR5cGUgeyBOb25lLCBDb250YWN0cywgQ3JlZGVudGlh
bHMgfTsKICAgICB2b2lkIHNldFNob3dBdXRvRmlsbEJ1dHRvbihIVE1MSW5wdXRFbGVtZW50Jiwg
QXV0b0ZpbGxCdXR0b25UeXBlKTsKKyAgICBBdXRvRmlsbEJ1dHRvblR5cGUgYXV0b0ZpbGxCdXR0
b25UeXBlKGNvbnN0IEhUTUxJbnB1dEVsZW1lbnQmKTsKKyAgICBBdXRvRmlsbEJ1dHRvblR5cGUg
bGFzdEF1dG9GaWxsQnV0dG9uVHlwZShjb25zdCBIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgRXhj
ZXB0aW9uT3I8dm9pZD4gc2Nyb2xsRWxlbWVudFRvUmVjdChFbGVtZW50JiwgaW50IHgsIGludCB5
LCBpbnQgdywgaW50IGgpOwogCiAgICAgRXhjZXB0aW9uT3I8U3RyaW5nPiBhdXRvZmlsbEZpZWxk
TmFtZShFbGVtZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggODQ5
OGVlYWMyYzQzZDE0MjFkYjNhNThhYjg5ZDYxYWQwNWVkOGM1OC4uZjVhMzhmODNmOTNjNTI1MGIz
NzRkMWIyMzlhMmQyYTdhYzU0NWUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bApAQCAtMTg4LDYgKzE4OCw4IEBAIGVudW0gRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3IgewogICAg
IHZvaWQgc2V0RWRpdGluZ1ZhbHVlKEhUTUxJbnB1dEVsZW1lbnQgaW5wdXRFbGVtZW50LCBET01T
dHJpbmcgdmFsdWUpOwogICAgIHZvaWQgc2V0QXV0b2ZpbGxlZChIVE1MSW5wdXRFbGVtZW50IGlu
cHV0RWxlbWVudCwgYm9vbGVhbiBlbmFibGVkKTsKICAgICB2b2lkIHNldFNob3dBdXRvRmlsbEJ1
dHRvbihIVE1MSW5wdXRFbGVtZW50IGlucHV0RWxlbWVudCwgQXV0b0ZpbGxCdXR0b25UeXBlIGF1
dG9GaWxsQnV0dG9uVHlwZSk7CisgICAgQXV0b0ZpbGxCdXR0b25UeXBlIGF1dG9GaWxsQnV0dG9u
VHlwZShIVE1MSW5wdXRFbGVtZW50IGlucHV0RWxlbWVudCk7CisgICAgQXV0b0ZpbGxCdXR0b25U
eXBlIGxhc3RBdXRvRmlsbEJ1dHRvblR5cGUoSFRNTElucHV0RWxlbWVudCBpbnB1dEVsZW1lbnQp
OwogCiAgICAgW01heVRocm93RXhjZXB0aW9uXSBSYW5nZT8gcmFuZ2VPZlN0cmluZyhET01TdHJp
bmcgdGV4dCwgUmFuZ2U/IHJlZmVyZW5jZVJhbmdlLCBzZXF1ZW5jZTxET01TdHJpbmc+IGZpbmRP
cHRpb25zKTsKICAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHVuc2lnbmVkIGxvbmcgY291bnRNYXRj
aGVzRm9yVGV4dChET01TdHJpbmcgdGV4dCwgc2VxdWVuY2U8RE9NU3RyaW5nPiBmaW5kT3B0aW9u
cywgRE9NU3RyaW5nIG1hcmtNYXRjaGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tGb2N1c2VkRWxlbWVudEluZm8uaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGb2N1c2VkRWxlbWVudEluZm8uaAppbmRleCBiNmZhNDU3
MGZkZDZmMDZkODNlODA4ZTQ4MjczNzM2YTIxZDQwMmE4Li42YTE1ZjU2NGNiZmEyNDhlNDZiZmYw
ZDJjNjQ3NWQ1NDQ5NDc5MmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRm9jdXNlZEVsZW1lbnRJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0ZvY3VzZWRFbGVtZW50SW5mby5oCkBAIC03NSw2ICs3NSw4IEBA
IHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLSW5wdXRUeXBlKSB7CiAgKi8KIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzVXNlckluaXRpYXRlZCkgQk9PTCB1c2Vy
SW5pdGlhdGVkOwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TT2JqZWN0IDxO
U1NlY3VyZUNvZGluZz4gKnVzZXJPYmplY3QgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CisKIEBlbmQKIAogI2VuZGlmIC8vIFdLX0FQSV9FTkFC
TEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbQppbmRleCA4OGI1YzA2ZGE0MDk1MTdmZTYyNmUxN2I4ZTc5MGVmYmZj
NzFjMjIxLi5iOWI1Y2Q1YzgyZTgxZGY5MzQxZjZjMzg2YzJiZmUzMmNkMDEwYjNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KQEAgLTI1NCwxOSArMjU0LDE4IEBAIEBlbmQKIEBwcm90b2NvbCBVSVNlbGVjdGlv
bkludGVyYWN0aW9uQXNzaXN0YW50OwogCiBAaW50ZXJmYWNlIFdLRm9jdXNlZEVsZW1lbnRJbmZv
IDogTlNPYmplY3QgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4KLS0gKGluc3RhbmNldHlwZSlpbml0
V2l0aEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uOihjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlv
biYpaW5mb3JtYXRpb24gaXNVc2VySW5pdGlhdGVkOihCT09MKWlzVXNlckluaXRpYXRlZDsKKy0g
KGluc3RhbmNldHlwZSlpbml0V2l0aEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uOihjb25zdCBBc3Np
c3RlZE5vZGVJbmZvcm1hdGlvbiYpaW5mb3JtYXRpb24gaXNVc2VySW5pdGlhdGVkOihCT09MKWlz
VXNlckluaXRpYXRlZCB1c2VyT2JqZWN0OihOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+ICopdXNl
ck9iamVjdDsKIEBlbmQKIAogQGludGVyZmFjZSBXS0Zvcm1JbnB1dFNlc3Npb24gOiBOU09iamVj
dCA8X1dLRm9ybUlucHV0U2Vzc2lvbj4KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29udGVu
dFZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3IGZvY3VzZWRFbGVtZW50SW5mbzooV0tGb2N1c2Vk
RWxlbWVudEluZm8gKillbGVtZW50SW5mbyB1c2VyT2JqZWN0OihOU09iamVjdCA8TlNTZWN1cmVD
b2Rpbmc+ICopdXNlck9iamVjdDsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvbnRlbnRWaWV3
OihXS0NvbnRlbnRWaWV3ICopdmlldyBmb2N1c2VkRWxlbWVudEluZm86KFdLRm9jdXNlZEVsZW1l
bnRJbmZvICopZWxlbWVudEluZm87CiAtICh2b2lkKWludmFsaWRhdGU7CiAKIEBlbmQKIAogQGlt
cGxlbWVudGF0aW9uIFdLRm9ybUlucHV0U2Vzc2lvbiB7CiAgICAgV0tDb250ZW50VmlldyAqX2Nv
bnRlbnRWaWV3OwotICAgIFJldGFpblB0cjxOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+PiBfdXNl
ck9iamVjdDsKICAgICBSZXRhaW5QdHI8V0tGb2N1c2VkRWxlbWVudEluZm8+IF9mb2N1c2VkRWxl
bWVudEluZm87CiAgICAgUmV0YWluUHRyPFVJVmlldz4gX2N1c3RvbUlucHV0VmlldzsKICAgICBS
ZXRhaW5QdHI8TlNBcnJheTxVSVRleHRTdWdnZXN0aW9uICo+PiBfc3VnZ2VzdGlvbnM7CkBAIC0y
NzQsMTQgKzI3MywxMyBAQCBAaW1wbGVtZW50YXRpb24gV0tGb3JtSW5wdXRTZXNzaW9uIHsKICAg
ICBCT09MIF9mb3JjZVNlY3VyZVRleHRFbnRyeTsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoQ29udGVudFZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3IGZvY3VzZWRFbGVtZW50SW5mbzoo
V0tGb2N1c2VkRWxlbWVudEluZm8gKillbGVtZW50SW5mbyB1c2VyT2JqZWN0OihOU09iamVjdCA8
TlNTZWN1cmVDb2Rpbmc+ICopdXNlck9iamVjdAorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29u
dGVudFZpZXc6KFdLQ29udGVudFZpZXcgKil2aWV3IGZvY3VzZWRFbGVtZW50SW5mbzooV0tGb2N1
c2VkRWxlbWVudEluZm8gKillbGVtZW50SW5mbwogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIg
aW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgX2NvbnRlbnRWaWV3ID0gdmlldzsK
ICAgICBfZm9jdXNlZEVsZW1lbnRJbmZvID0gZWxlbWVudEluZm87Ci0gICAgX3VzZXJPYmplY3Qg
PSB1c2VyT2JqZWN0OwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0yOTMsNyArMjkxLDcgQEAg
LSAoaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4pZm9jdXNlZEVsZW1lbnRJbmZvCiAKIC0gKE5T
T2JqZWN0IDxOU1NlY3VyZUNvZGluZz4gKil1c2VyT2JqZWN0CiB7Ci0gICAgcmV0dXJuIF91c2Vy
T2JqZWN0LmdldCgpOworICAgIHJldHVybiBbX2ZvY3VzZWRFbGVtZW50SW5mbyB1c2VyT2JqZWN0
XTsKIH0KIAogLSAoQk9PTClpc1ZhbGlkCkBAIC0zODMsOSArMzgxLDEwIEBAIEBpbXBsZW1lbnRh
dGlvbiBXS0ZvY3VzZWRFbGVtZW50SW5mbyB7CiAgICAgV0tJbnB1dFR5cGUgX3R5cGU7CiAgICAg
UmV0YWluUHRyPE5TU3RyaW5nPiBfdmFsdWU7CiAgICAgQk9PTCBfaXNVc2VySW5pdGlhdGVkOwor
ICAgIFJldGFpblB0cjxOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+PiBfdXNlck9iamVjdDsKIH0K
IAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQXNzaXN0ZWROb2RlSW5mb3JtYXRpb246KGNvbnN0
IEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiBpc1VzZXJJbml0aWF0ZWQ6KEJP
T0wpaXNVc2VySW5pdGlhdGVkCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhBc3Npc3RlZE5vZGVJ
bmZvcm1hdGlvbjooY29uc3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mKWluZm9ybWF0aW9uIGlz
VXNlckluaXRpYXRlZDooQk9PTClpc1VzZXJJbml0aWF0ZWQgdXNlck9iamVjdDooTlNPYmplY3Qg
PE5TU2VjdXJlQ29kaW5nPiAqKXVzZXJPYmplY3QKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVy
IGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTQ0OCw2ICs0NDcsNyBAQCAtIChpbnN0
YW5jZXR5cGUpaW5pdFdpdGhBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbjooY29uc3QgQXNzaXN0ZWRO
b2RlSW5mb3JtYXRpb24mKQogICAgIH0KICAgICBfdmFsdWUgPSBpbmZvcm1hdGlvbi52YWx1ZTsK
ICAgICBfaXNVc2VySW5pdGlhdGVkID0gaXNVc2VySW5pdGlhdGVkOworICAgIF91c2VyT2JqZWN0
ID0gdXNlck9iamVjdDsKICAgICByZXR1cm4gc2VsZjsKIH0KIApAQCAtNDY1LDYgKzQ2NSwxMSBA
QCAtIChCT09MKWlzVXNlckluaXRpYXRlZAogewogICAgIHJldHVybiBfaXNVc2VySW5pdGlhdGVk
OwogfQorCistIChOU09iamVjdCA8TlNTZWN1cmVDb2Rpbmc+ICopdXNlck9iamVjdAoreworICAg
IHJldHVybiBfdXNlck9iamVjdC5nZXQoKTsKK30KIEBlbmQKIAogQGludGVyZmFjZSBXS0NvbnRl
bnRWaWV3IChXS0ludGVyYWN0aW9uUHJpdmF0ZSkKQEAgLTM4NDYsNyArMzg1MSw3IEBAIC0gKHZv
aWQpX3N0YXJ0QXNzaXN0aW5nTm9kZTooY29uc3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mKWlu
Zm9ybWF0aW9uIHVzZXJJc0luCiAgICAgX2lucHV0Vmlld1VwZGF0ZURlZmVycmVyID0gbnVsbHB0
cjsKIAogICAgIGlkIDxfV0tJbnB1dERlbGVnYXRlPiBpbnB1dERlbGVnYXRlID0gW193ZWJWaWV3
IF9pbnB1dERlbGVnYXRlXTsKLSAgICBSZXRhaW5QdHI8V0tGb2N1c2VkRWxlbWVudEluZm8+IGZv
Y3VzZWRFbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tXS0ZvY3VzZWRFbGVtZW50SW5mbyBhbGxvY10g
aW5pdFdpdGhBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbjppbmZvcm1hdGlvbiBpc1VzZXJJbml0aWF0
ZWQ6dXNlcklzSW50ZXJhY3RpbmddKTsKKyAgICBSZXRhaW5QdHI8V0tGb2N1c2VkRWxlbWVudElu
Zm8+IGZvY3VzZWRFbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tXS0ZvY3VzZWRFbGVtZW50SW5mbyBh
bGxvY10gaW5pdFdpdGhBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbjppbmZvcm1hdGlvbiBpc1VzZXJJ
bml0aWF0ZWQ6dXNlcklzSW50ZXJhY3RpbmcgdXNlck9iamVjdDp1c2VyT2JqZWN0XSk7CiAgICAg
Qk9PTCBzaG91bGRTaG93S2V5Ym9hcmQ7CiAKICAgICBpZiAoW2lucHV0RGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpmb2N1c1Nob3VsZFN0YXJ0SW5wdXRTZXNz
aW9uOildKQpAQCAtMzkwMyw3ICszOTA4LDcgQEAgLSAodm9pZClfc3RhcnRBc3Npc3RpbmdOb2Rl
Oihjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYpaW5mb3JtYXRpb24gdXNlcklzSW4KICAg
ICBbX2lucHV0UGVyaXBoZXJhbCBiZWdpbkVkaXRpbmddOwogCiAgICAgaWYgKFtpbnB1dERlbGVn
YXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkU3RhcnRJbnB1dFNl
c3Npb246KV0pIHsKLSAgICAgICAgX2Zvcm1JbnB1dFNlc3Npb24gPSBhZG9wdE5TKFtbV0tGb3Jt
SW5wdXRTZXNzaW9uIGFsbG9jXSBpbml0V2l0aENvbnRlbnRWaWV3OnNlbGYgZm9jdXNlZEVsZW1l
bnRJbmZvOmZvY3VzZWRFbGVtZW50SW5mby5nZXQoKSB1c2VyT2JqZWN0OnVzZXJPYmplY3RdKTsK
KyAgICAgICAgX2Zvcm1JbnB1dFNlc3Npb24gPSBhZG9wdE5TKFtbV0tGb3JtSW5wdXRTZXNzaW9u
IGFsbG9jXSBpbml0V2l0aENvbnRlbnRWaWV3OnNlbGYgZm9jdXNlZEVsZW1lbnRJbmZvOmZvY3Vz
ZWRFbGVtZW50SW5mby5nZXQoKV0pOwogICAgICAgICBbaW5wdXREZWxlZ2F0ZSBfd2ViVmlldzpf
d2ViVmlldyBkaWRTdGFydElucHV0U2Vzc2lvbjpfZm9ybUlucHV0U2Vzc2lvbi5nZXQoKV07CiAg
ICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQ
bHVnSW5Ob2RlSGFuZGxlLm1tCmluZGV4IDdmMmMxMjQ0MjI3N2Q4NDFkNzlkOGY4NTJlMDk2Y2Zm
NGIyOWVjOWEuLjUyNTA1NTlhZjMwMDcwMDVmNzA0MWY1OTZlMjBjNzI0YmVmYWNkYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2Ev
V0tXZWJQcm9jZXNzUGx1Z0luTm9kZUhhbmRsZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5k
bGUubW0KQEAgLTE0MCwxMSArMTQwLDM2IEBAIHN0YXRpYyBXZWJDb3JlOjpBdXRvRmlsbEJ1dHRv
blR5cGUgdG9BdXRvRmlsbEJ1dHRvblR5cGUoX1dLQXV0b0ZpbGxCdXR0b25UeXBlIGF1CiAgICAg
cmV0dXJuIFdlYkNvcmU6OkF1dG9GaWxsQnV0dG9uVHlwZTo6Tm9uZTsKIH0KIAorc3RhdGljIF9X
S0F1dG9GaWxsQnV0dG9uVHlwZSB0b1dLQXV0b0ZpbGxCdXR0b25UeXBlKFdlYkNvcmU6OkF1dG9G
aWxsQnV0dG9uVHlwZSBhdXRvRmlsbEJ1dHRvblR5cGUpCit7CisgICAgc3dpdGNoIChhdXRvRmls
bEJ1dHRvblR5cGUpIHsKKyAgICBjYXNlIFdlYkNvcmU6OkF1dG9GaWxsQnV0dG9uVHlwZTo6Tm9u
ZToKKyAgICAgICAgcmV0dXJuIF9XS0F1dG9GaWxsQnV0dG9uVHlwZU5vbmU7CisgICAgY2FzZSBX
ZWJDb3JlOjpBdXRvRmlsbEJ1dHRvblR5cGU6OkNvbnRhY3RzOgorICAgICAgICByZXR1cm4gX1dL
QXV0b0ZpbGxCdXR0b25UeXBlQ29udGFjdHM7CisgICAgY2FzZSBXZWJDb3JlOjpBdXRvRmlsbEJ1
dHRvblR5cGU6OkNyZWRlbnRpYWxzOgorICAgICAgICByZXR1cm4gX1dLQXV0b0ZpbGxCdXR0b25U
eXBlQ3JlZGVudGlhbHM7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBfV0tBdXRvRmlsbEJ1dHRvblR5cGVOb25lOworCit9CisKIC0gKHZvaWQpc2V0SFRNTElu
cHV0RWxlbWVudEF1dG9GaWxsQnV0dG9uRW5hYmxlZFdpdGhCdXR0b25UeXBlOihfV0tBdXRvRmls
bEJ1dHRvblR5cGUpYXV0b0ZpbGxCdXR0b25UeXBlCiB7CiAgICAgX25vZGVIYW5kbGUtPnNldEhU
TUxJbnB1dEVsZW1lbnRBdXRvRmlsbEJ1dHRvbkVuYWJsZWQodG9BdXRvRmlsbEJ1dHRvblR5cGUo
YXV0b0ZpbGxCdXR0b25UeXBlKSk7CiB9CiAKKy0gKF9XS0F1dG9GaWxsQnV0dG9uVHlwZSlodG1s
SW5wdXRFbGVtZW50QXV0b0ZpbGxCdXR0b25UeXBlCit7CisgICAgcmV0dXJuIHRvV0tBdXRvRmls
bEJ1dHRvblR5cGUoX25vZGVIYW5kbGUtPmh0bWxJbnB1dEVsZW1lbnRBdXRvRmlsbEJ1dHRvblR5
cGUoKSk7Cit9CisKKy0gKF9XS0F1dG9GaWxsQnV0dG9uVHlwZSlodG1sSW5wdXRFbGVtZW50TGFz
dEF1dG9GaWxsQnV0dG9uVHlwZQoreworICAgIHJldHVybiB0b1dLQXV0b0ZpbGxCdXR0b25UeXBl
KF9ub2RlSGFuZGxlLT5odG1sSW5wdXRFbGVtZW50TGFzdEF1dG9GaWxsQnV0dG9uVHlwZSgpKTsK
K30KKwogLSAoQk9PTClIVE1MSW5wdXRFbGVtZW50SXNVc2VyRWRpdGVkCiB7CiAgICAgcmV0dXJu
IF9ub2RlSGFuZGxlLT5odG1sSW5wdXRFbGVtZW50TGFzdENoYW5nZVdhc1VzZXJFZGl0KCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0Nv
Y29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5vZGVIYW5kbGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2ViUHJvY2Vzc1BsdWdJbk5v
ZGVIYW5kbGVQcml2YXRlLmgKaW5kZXggN2ZhMDU2M2FkZjZjODE5ODI3YzU0Zjc0NDE1YmI5MjAx
YjQ5ZDA5Yi4uZTIwODc2NDYyYzEzNWUzYzJkZTkxZWM2NmY0ODM5Mjk5OTQxMTFiZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2NvYS9X
S1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luTm9k
ZUhhbmRsZVByaXZhdGUuaApAQCAtMzcsNiArMzcsOCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRl
Z2VyLCBfV0tBdXRvRmlsbEJ1dHRvblR5cGUpIHsKIAogLSAoQk9PTClpc0hUTUxJbnB1dEVsZW1l
bnRBdXRvRmlsbEJ1dHRvbkVuYWJsZWQgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RC
QSksIGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKXNldEhUTUxJbnB1dEVsZW1lbnRBdXRvRmls
bEJ1dHRvbkVuYWJsZWRXaXRoQnV0dG9uVHlwZTooX1dLQXV0b0ZpbGxCdXR0b25UeXBlKWF1dG9G
aWxsQnV0dG9uVHlwZSBXS19BUElfQVZBSUxBQkxFKG1hY29zeChXS19NQUNfVEJBKSwgaW9zKFdL
X0lPU19UQkEpKTsKKy0gKF9XS0F1dG9GaWxsQnV0dG9uVHlwZSlodG1sSW5wdXRFbGVtZW50QXV0
b0ZpbGxCdXR0b25UeXBlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3Mo
V0tfSU9TX1RCQSkpOworLSAoX1dLQXV0b0ZpbGxCdXR0b25UeXBlKWh0bWxJbnB1dEVsZW1lbnRM
YXN0QXV0b0ZpbGxCdXR0b25UeXBlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEp
LCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGUuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9k
ZUhhbmRsZS5jcHAKaW5kZXggZjM5NWYzNTQyNmZlMjVlZDdlZjExZDE5ZjY5ZWI2M2NjZjVlOGI4
Ny4uZTA4YzgwOWE4MTQ0NWVmNzQyYjQwMWIzNjk1YWZhNTdiYzAyYTQ1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9k
ZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZS5jcHAKQEAgLTUxLDYgKzUxLDIwIEBAIHN0YXRpYyBX
ZWJDb3JlOjpBdXRvRmlsbEJ1dHRvblR5cGUgdG9BdXRvRmlsbEJ1dHRvblR5cGUoV0tBdXRvRmls
bEJ1dHRvblR5cGUgd2tBCiAgICAgcmV0dXJuIFdlYkNvcmU6OkF1dG9GaWxsQnV0dG9uVHlwZTo6
Tm9uZTsKIH0KIAorc3RhdGljIFdLQXV0b0ZpbGxCdXR0b25UeXBlIHRvV0tBdXRvRmlsbEJ1dHRv
blR5cGUoV2ViQ29yZTo6QXV0b0ZpbGxCdXR0b25UeXBlIGF1dG9GaWxsQnV0dG9uVHlwZSkKK3sK
KyAgICBzd2l0Y2ggKGF1dG9GaWxsQnV0dG9uVHlwZSkgeworICAgIGNhc2UgV2ViQ29yZTo6QXV0
b0ZpbGxCdXR0b25UeXBlOjpOb25lOgorICAgICAgICByZXR1cm4ga1dLQXV0b0ZpbGxCdXR0b25U
eXBlTm9uZTsKKyAgICBjYXNlIFdlYkNvcmU6OkF1dG9GaWxsQnV0dG9uVHlwZTo6Q29udGFjdHM6
CisgICAgICAgIHJldHVybiBrV0tBdXRvRmlsbEJ1dHRvblR5cGVDb250YWN0czsKKyAgICBjYXNl
IFdlYkNvcmU6OkF1dG9GaWxsQnV0dG9uVHlwZTo6Q3JlZGVudGlhbHM6CisgICAgICAgIHJldHVy
biBrV0tBdXRvRmlsbEJ1dHRvblR5cGVDcmVkZW50aWFsczsKKyAgICB9CisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGtXS0F1dG9GaWxsQnV0dG9uVHlwZU5vbmU7Cit9CisK
IFdLVHlwZUlEIFdLQnVuZGxlTm9kZUhhbmRsZUdldFR5cGVJRCgpCiB7CiAgICAgcmV0dXJuIHRv
QVBJKEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6QVBJVHlwZSk7CkBAIC0xMjAsNiArMTM0LDE2
IEBAIHZvaWQgV0tCdW5kbGVOb2RlSGFuZGxlU2V0SFRNTElucHV0RWxlbWVudEF1dG9GaWxsQnV0
dG9uRW5hYmxlZFdpdGhCdXR0b25UeXBlKFdLCiAgICAgdG9JbXBsKGh0bWxJbnB1dEVsZW1lbnRI
YW5kbGVSZWYpLT5zZXRIVE1MSW5wdXRFbGVtZW50QXV0b0ZpbGxCdXR0b25FbmFibGVkKHRvQXV0
b0ZpbGxCdXR0b25UeXBlKGF1dG9GaWxsQnV0dG9uVHlwZSkpOwogfQogCitXS0F1dG9GaWxsQnV0
dG9uVHlwZSBXS0J1bmRsZU5vZGVIYW5kbGVHZXRIVE1MSW5wdXRFbGVtZW50QXV0b0ZpbGxCdXR0
b25UeXBlKFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBodG1sSW5wdXRFbGVtZW50SGFuZGxlUmVmKQor
eworICAgIHJldHVybiB0b1dLQXV0b0ZpbGxCdXR0b25UeXBlKHRvSW1wbChodG1sSW5wdXRFbGVt
ZW50SGFuZGxlUmVmKS0+aHRtbElucHV0RWxlbWVudEF1dG9GaWxsQnV0dG9uVHlwZSgpKTsKK30K
KworV0tBdXRvRmlsbEJ1dHRvblR5cGUgV0tCdW5kbGVOb2RlSGFuZGxlR2V0SFRNTElucHV0RWxl
bWVudExhc3RBdXRvRmlsbEJ1dHRvblR5cGUoV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGh0bWxJbnB1
dEVsZW1lbnRIYW5kbGVSZWYpCit7CisgICAgcmV0dXJuIHRvV0tBdXRvRmlsbEJ1dHRvblR5cGUo
dG9JbXBsKGh0bWxJbnB1dEVsZW1lbnRIYW5kbGVSZWYpLT5odG1sSW5wdXRFbGVtZW50TGFzdEF1
dG9GaWxsQnV0dG9uVHlwZSgpKTsKK30KKwogYm9vbCBXS0J1bmRsZU5vZGVIYW5kbGVHZXRIVE1M
SW5wdXRFbGVtZW50QXV0b0ZpbGxBdmFpbGFibGUoV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGh0bWxJ
bnB1dEVsZW1lbnRIYW5kbGVSZWYpCiB7CiAgICAgcmV0dXJuIHRvSW1wbChodG1sSW5wdXRFbGVt
ZW50SGFuZGxlUmVmKS0+aXNBdXRvRmlsbEF2YWlsYWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRs
ZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZU5vZGVIYW5kbGVQcml2YXRlLmgKaW5kZXggMTA1YTNjZDM4MTUxYWI5MjZmNjE3
ZDAwMTM3ODQyZjgyZmJiZjc1ZC4uNGU1YTQ4N2NhNTcwYTMyMDEwMTBkYjkzM2Y3MTU5NjgwYmM3
ZGJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlTm9kZUhhbmRsZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxlUHJpdmF0ZS5o
CkBAIC02NCw2ICs2NCw4IEBAIFdLX0VYUE9SVCBib29sIFdLQnVuZGxlTm9kZUhhbmRsZUdldEhU
TUxJbnB1dEVsZW1lbnRBdXRvRmlsbGVkKFdLQnVuZGxlTm9kZUhhbmRsCiBXS19FWFBPUlQgdm9p
ZCBXS0J1bmRsZU5vZGVIYW5kbGVTZXRIVE1MSW5wdXRFbGVtZW50QXV0b0ZpbGxlZChXS0J1bmRs
ZU5vZGVIYW5kbGVSZWYgaHRtbElucHV0RWxlbWVudEhhbmRsZSwgYm9vbCBmaWxsZWQpOwogV0tf
RVhQT1JUIGJvb2wgV0tCdW5kbGVOb2RlSGFuZGxlR2V0SFRNTElucHV0RWxlbWVudEF1dG9GaWxs
QnV0dG9uRW5hYmxlZChXS0J1bmRsZU5vZGVIYW5kbGVSZWYgaHRtbElucHV0RWxlbWVudEhhbmRs
ZSk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZU5vZGVIYW5kbGVTZXRIVE1MSW5wdXRFbGVtZW50
QXV0b0ZpbGxCdXR0b25FbmFibGVkV2l0aEJ1dHRvblR5cGUoV0tCdW5kbGVOb2RlSGFuZGxlUmVm
IGh0bWxJbnB1dEVsZW1lbnRIYW5kbGUsIFdLQXV0b0ZpbGxCdXR0b25UeXBlIGF1dG9GaWxsQnV0
dG9uVHlwZSk7CitXS19FWFBPUlQgV0tBdXRvRmlsbEJ1dHRvblR5cGUgV0tCdW5kbGVOb2RlSGFu
ZGxlR2V0SFRNTElucHV0RWxlbWVudEF1dG9GaWxsQnV0dG9uVHlwZShXS0J1bmRsZU5vZGVIYW5k
bGVSZWYgaHRtbElucHV0RWxlbWVudEhhbmRsZSk7CitXS19FWFBPUlQgV0tBdXRvRmlsbEJ1dHRv
blR5cGUgV0tCdW5kbGVOb2RlSGFuZGxlR2V0SFRNTElucHV0RWxlbWVudExhc3RBdXRvRmlsbEJ1
dHRvblR5cGUoV0tCdW5kbGVOb2RlSGFuZGxlUmVmIGh0bWxJbnB1dEVsZW1lbnRIYW5kbGUpOwog
V0tfRVhQT1JUIGJvb2wgV0tCdW5kbGVOb2RlSGFuZGxlR2V0SFRNTElucHV0RWxlbWVudEF1dG9G
aWxsQXZhaWxhYmxlKFdLQnVuZGxlTm9kZUhhbmRsZVJlZiBodG1sSW5wdXRFbGVtZW50SGFuZGxl
KTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlTm9kZUhhbmRsZVNldEhUTUxJbnB1dEVsZW1lbnRB
dXRvRmlsbEF2YWlsYWJsZShXS0J1bmRsZU5vZGVIYW5kbGVSZWYgaHRtbElucHV0RWxlbWVudEhh
bmRsZSwgYm9vbCBhdXRvRmlsbEF2YWlsYWJsZSk7CiBXS19FWFBPUlQgV0tSZWN0IFdLQnVuZGxl
Tm9kZUhhbmRsZUdldEhUTUxJbnB1dEVsZW1lbnRBdXRvRmlsbEJ1dHRvbkJvdW5kcyhXS0J1bmRs
ZU5vZGVIYW5kbGVSZWYgaHRtbElucHV0RWxlbWVudEhhbmRsZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9k
ZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9N
L0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5jcHAKaW5kZXggZDkwYmQ2NGI5N2VjN2FiOTljYWUx
ZWJmN2JkZDBiOTNhYzNhYjY0YS4uMTE3Y2MyMTA3MGNkNTE5Zjg4MGE1N2FhYWYyNDhkNTBiY2Jm
N2ZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmNwcApA
QCAtMjcxLDYgKzI3MSwyMCBAQCB2b2lkIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6c2V0SFRN
TElucHV0RWxlbWVudEF1dG9GaWxsQnV0dG9uRW5hYmxlZChBdXRvRmlsbAogICAgIGRvd25jYXN0
PEhUTUxJbnB1dEVsZW1lbnQ+KG1fbm9kZS5nZXQoKSkuc2V0U2hvd0F1dG9GaWxsQnV0dG9uKGF1
dG9GaWxsQnV0dG9uVHlwZSk7CiB9CiAKK0F1dG9GaWxsQnV0dG9uVHlwZSBJbmplY3RlZEJ1bmRs
ZU5vZGVIYW5kbGU6Omh0bWxJbnB1dEVsZW1lbnRBdXRvRmlsbEJ1dHRvblR5cGUoKSBjb25zdAor
eworICAgIGlmICghaXM8SFRNTElucHV0RWxlbWVudD4obV9ub2RlKSkKKyAgICAgICAgcmV0dXJu
IEF1dG9GaWxsQnV0dG9uVHlwZTo6Tm9uZTsKKyAgICByZXR1cm4gZG93bmNhc3Q8SFRNTElucHV0
RWxlbWVudD4obV9ub2RlLmdldCgpKS5hdXRvRmlsbEJ1dHRvblR5cGUoKTsKK30KKworQXV0b0Zp
bGxCdXR0b25UeXBlIEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6aHRtbElucHV0RWxlbWVudExh
c3RBdXRvRmlsbEJ1dHRvblR5cGUoKSBjb25zdAoreworICAgIGlmICghaXM8SFRNTElucHV0RWxl
bWVudD4obV9ub2RlKSkKKyAgICAgICAgcmV0dXJuIEF1dG9GaWxsQnV0dG9uVHlwZTo6Tm9uZTsK
KyAgICByZXR1cm4gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4obV9ub2RlLmdldCgpKS5sYXN0
QXV0b0ZpbGxCdXR0b25UeXBlKCk7Cit9CisKIGJvb2wgSW5qZWN0ZWRCdW5kbGVOb2RlSGFuZGxl
Ojppc0F1dG9GaWxsQXZhaWxhYmxlKCkgY29uc3QKIHsKICAgICBpZiAoIWlzPEhUTUxJbnB1dEVs
ZW1lbnQ+KG1fbm9kZSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRsZS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0RPTS9JbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUu
aAppbmRleCBhYmFiMTk3YTIyYTliN2Y0NWZiZGQ5ZGE2NjZhYmQxYmVlYjg5ZjVkLi4yYmM2N2Ez
NGJmNjgwNmE1ZTRiOTkzY2E3ZTBiYjQ1MWJjZjMzMTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvRE9NL0luamVjdGVkQnVuZGxlTm9kZUhhbmRs
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9ET00vSW5q
ZWN0ZWRCdW5kbGVOb2RlSGFuZGxlLmgKQEAgLTcwLDYgKzcwLDggQEAgcHVibGljOgogICAgIHZv
aWQgc2V0SFRNTElucHV0RWxlbWVudEF1dG9GaWxsZWQoYm9vbCk7CiAgICAgYm9vbCBpc0hUTUxJ
bnB1dEVsZW1lbnRBdXRvRmlsbEJ1dHRvbkVuYWJsZWQoKSBjb25zdDsKICAgICB2b2lkIHNldEhU
TUxJbnB1dEVsZW1lbnRBdXRvRmlsbEJ1dHRvbkVuYWJsZWQoV2ViQ29yZTo6QXV0b0ZpbGxCdXR0
b25UeXBlKTsKKyAgICBXZWJDb3JlOjpBdXRvRmlsbEJ1dHRvblR5cGUgaHRtbElucHV0RWxlbWVu
dEF1dG9GaWxsQnV0dG9uVHlwZSgpIGNvbnN0OworICAgIFdlYkNvcmU6OkF1dG9GaWxsQnV0dG9u
VHlwZSBodG1sSW5wdXRFbGVtZW50TGFzdEF1dG9GaWxsQnV0dG9uVHlwZSgpIGNvbnN0OwogICAg
IGJvb2wgaXNBdXRvRmlsbEF2YWlsYWJsZSgpIGNvbnN0OwogICAgIHZvaWQgc2V0QXV0b0ZpbGxB
dmFpbGFibGUoYm9vbCk7CiAgICAgV2ViQ29yZTo6SW50UmVjdCBodG1sSW5wdXRFbGVtZW50QXV0
b0ZpbGxCdXR0b25Cb3VuZHMoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYWUxZWUyZWIwN2VlNDljMjllM2M2ZjY0MzRl
ZDAwODU0M2RmNjdiLi45MmE4MDZjOWFiNGM3NWI5ZWJiNmFlMGYxMmMwMjU5NGRiNGY5OGU0IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTctMTItMTMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNA
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBTUEkgdG8gcXVlcnkgZm9yIHRoZSBjdXJyZW50IGFu
ZCBsYXN0IGF1dG8gZmlsbCBidXR0b24gdHlwZSBhbmQgcGFzcyB1c2VyIGRhdGEgb2JqZWN0IHRv
IF93ZWJWaWV3OmZvY3VzU2hvdWxkU3RhcnRJbnB1dFNlc3Npb246CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA3NzQKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzM2MDMzODMyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZHMgYSB0ZXN0IHRvIGVuc3VyZSB0aGF0IHdlIGNhbiBxdWVyeSBmb3IgdGhl
IGN1cnJlbnQgYXV0byBmaWxsIGJ1dHRvbiB0eXBlIGFuZCBsYXN0IGF1dG8gZmlsbCBidXR0b24K
KyAgICAgICAgdHlwZSBvZiBhbiBIVE1MIGlucHV0IGVsZW1lbnQuCisKKyAgICAgICAgKiBmYXN0
L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vbGFzdC1hdXRvLWZpbGwtYnV0dG9uLXR5cGUtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vbGFz
dC1hdXRvLWZpbGwtYnV0dG9uLXR5cGUuaHRtbDogQWRkZWQuCisKIDIwMTctMTItMTMgIE1zMmdl
ciAgPE1zMmdlckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gVGVzdCBnYXJkZW5p
bmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvYXV0by1maWxsLWJ1dHRvbi9s
YXN0LWF1dG8tZmlsbC1idXR0b24tdHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2F1dG8tZmlsbC1idXR0b24vbGFzdC1hdXRvLWZpbGwtYnV0dG9uLXR5cGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjliMzJkNTBmYWFkZTBkNDAyNzY4MTcwYWFkZWQ4MWNlNzczZmU2
NzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2F1dG8tZmlsbC1i
dXR0b24vbGFzdC1hdXRvLWZpbGwtYnV0dG9uLXR5cGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTkgQEAKK1RoaXMgdGVzdHMgdGhhdCBxdWVyeWluZyBmb3IgdGhlIGxhc3QgYXV0byBmaWxsIGJ1
dHRvbiB0eXBlIHdvcmtzLiBUaGlzIHRlc3QgbXVzdCBiZSBydW4gaW4gV2ViS2l0VGVzdFJ1bm5l
ciBvciBEdW1wUmVuZGVyVHJlZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgaW50ZXJuYWxzLmF1dG9GaWxsQnV0dG9uVHlwZShpbnB1dEVsZW1lbnQpIGlzICJOb25lIgor
aW50ZXJuYWxzLnNldFNob3dBdXRvRmlsbEJ1dHRvbihpbnB1dEVsZW1lbnQsICdDcmVkZW50aWFs
cycpCitQQVNTIGludGVybmFscy5hdXRvRmlsbEJ1dHRvblR5cGUoaW5wdXRFbGVtZW50KSBpcyAi
Q3JlZGVudGlhbHMiCitQQVNTIGludGVybmFscy5sYXN0QXV0b0ZpbGxCdXR0b25UeXBlKGlucHV0
RWxlbWVudCkgaXMgIk5vbmUiCitpbnRlcm5hbHMuc2V0U2hvd0F1dG9GaWxsQnV0dG9uKGlucHV0
RWxlbWVudCwgJ0NvbnRhY3RzJykKK1BBU1MgaW50ZXJuYWxzLmF1dG9GaWxsQnV0dG9uVHlwZShp
bnB1dEVsZW1lbnQpIGlzICJDb250YWN0cyIKK1BBU1MgaW50ZXJuYWxzLmxhc3RBdXRvRmlsbEJ1
dHRvblR5cGUoaW5wdXRFbGVtZW50KSBpcyAiQ3JlZGVudGlhbHMiCitpbnRlcm5hbHMuc2V0U2hv
d0F1dG9GaWxsQnV0dG9uKGlucHV0RWxlbWVudCwgJ05vbmUnKQorUEFTUyBpbnRlcm5hbHMuYXV0
b0ZpbGxCdXR0b25UeXBlKGlucHV0RWxlbWVudCkgaXMgIk5vbmUiCitQQVNTIGludGVybmFscy5s
YXN0QXV0b0ZpbGxCdXR0b25UeXBlKGlucHV0RWxlbWVudCkgaXMgIkNvbnRhY3RzIgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvYXV0by1maWxsLWJ1dHRvbi9sYXN0LWF1dG8tZmlsbC1i
dXR0b24tdHlwZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9hdXRvLWZpbGwtYnV0dG9u
L2xhc3QtYXV0by1maWxsLWJ1dHRvbi10eXBlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzkzYTA3OTg5NzNl
YjViNTZkMzQxMjU4YTZiMjdhNDAwZDMzYzhmYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvYXV0by1maWxsLWJ1dHRvbi9sYXN0LWF1dG8tZmlsbC1idXR0b24tdHlw
ZS5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iaW5wdXQiPgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgcXVlcnlpbmcgZm9yIHRoZSBsYXN0IGF1dG8g
ZmlsbCBidXR0b24gdHlwZSB3b3Jrcy4gVGhpcyB0ZXN0IG11c3QgYmUgcnVuIGluIFdlYktpdFRl
c3RSdW5uZXIgb3IgRHVtcFJlbmRlclRyZWUuIik7CisKK2lmICghd2luZG93LmludGVybmFscykK
KyAgICB0ZXN0RmFpbGVkKCJNdXN0IGJlIHJ1biBpbiBXZWJLaXRUZXN0UnVubmVyIG9yIER1bXBS
ZW5kZXJUcmVlIik7CitlbHNlIHsKKyAgICB2YXIgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImlucHV0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnRlcm5h
bHMuYXV0b0ZpbGxCdXR0b25UeXBlKGlucHV0RWxlbWVudCkiLCAiTm9uZSIpOworICAgIGV2YWxB
bmRMb2coImludGVybmFscy5zZXRTaG93QXV0b0ZpbGxCdXR0b24oaW5wdXRFbGVtZW50LCAnQ3Jl
ZGVudGlhbHMnKSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiaW50ZXJuYWxzLmF1dG9G
aWxsQnV0dG9uVHlwZShpbnB1dEVsZW1lbnQpIiwgIkNyZWRlbnRpYWxzIik7CisgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJpbnRlcm5hbHMubGFzdEF1dG9GaWxsQnV0dG9uVHlwZShpbnB1dEVs
ZW1lbnQpIiwgIk5vbmUiKTsKKyAgICBldmFsQW5kTG9nKCJpbnRlcm5hbHMuc2V0U2hvd0F1dG9G
aWxsQnV0dG9uKGlucHV0RWxlbWVudCwgJ0NvbnRhY3RzJykiKTsKKyAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImludGVybmFscy5hdXRvRmlsbEJ1dHRvblR5cGUoaW5wdXRFbGVtZW50KSIsICJD
b250YWN0cyIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiaW50ZXJuYWxzLmxhc3RBdXRv
RmlsbEJ1dHRvblR5cGUoaW5wdXRFbGVtZW50KSIsICJDcmVkZW50aWFscyIpOworICAgIGV2YWxB
bmRMb2coImludGVybmFscy5zZXRTaG93QXV0b0ZpbGxCdXR0b24oaW5wdXRFbGVtZW50LCAnTm9u
ZScpIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJpbnRlcm5hbHMuYXV0b0ZpbGxCdXR0
b25UeXBlKGlucHV0RWxlbWVudCkiLCAiTm9uZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiaW50ZXJuYWxzLmxhc3RBdXRvRmlsbEJ1dHRvblR5cGUoaW5wdXRFbGVtZW50KSIsICJDb250
YWN0cyIpOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="348376"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>