<?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>166424</bug_id>
          
          <creation_ts>2016-12-22 10:30:10 -0800</creation_ts>
          <short_desc>Make WebCore::EditorInsertAction an enum class</short_desc>
          <delta_ts>2016-12-22 13:11: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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>bdakin</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1262326</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-12-22 10:30:10 -0800</bug_when>
    <thetext>Make WebCore::EditorInsertAction an enum class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262329</commentid>
    <comment_count>1</comment_count>
      <attachid>297657</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-12-22 10:32:49 -0800</bug_when>
    <thetext>Created attachment 297657
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262350</commentid>
    <comment_count>2</comment_count>
      <attachid>297665</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2016-12-22 11:53:37 -0800</bug_when>
    <thetext>Created attachment 297665
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262354</commentid>
    <comment_count>3</comment_count>
      <attachid>297665</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-12-22 12:15:43 -0800</bug_when>
    <thetext>Comment on attachment 297665
Patch

r=me (assuming bots are all green before you land).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262370</commentid>
    <comment_count>4</comment_count>
      <attachid>297665</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-22 13:11:10 -0800</bug_when>
    <thetext>Comment on attachment 297665
Patch

Clearing flags on attachment: 297665

Committed r210109: &lt;http://trac.webkit.org/changeset/210109&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262371</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-22 13:11:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297657</attachid>
            <date>2016-12-22 10:32:49 -0800</date>
            <delta_ts>2016-12-22 11:53:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166424-20161222103144.patch</filename>
            <type>text/plain</type>
            <size>26321</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjExZDNmN2ZhOWU2YzNi
OWJmYjcyNWI1MDJlMmM4M2I4ZTRhMDdhYy4uYmE2ZWQzMjM3MWMzOTY5ZmI3ZTJhODM3NTBmZDFl
N2Q1MzFhNDA4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE2LTEyLTIyICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFdlYkNvcmU6OkVkaXRv
ckluc2VydEFjdGlvbiBhbiBlbnVtIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY0MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjphcHBseURp
Y3RhdGlvbkFsdGVybmF0aXZlKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnBhc3RlQXNQbGFpblRleHRXaXRoUGFzdGVib2FyZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNob3VsZEluc2VydFRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjppbnNlcnRUZXh0V2l0aG91dFNlbmRpbmdUZXh0RXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yOjppbnNlcnRMaW5lQnJlYWspOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1dvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjptYXJrQW5kUmVwbGFjZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OmNoYW5nZUJhY2tUb1JlcGxhY2VkU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6
dHJhbnNwb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6aGFuZGxlQWNjZXB0ZWRDYW5k
aWRhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9ySW5zZXJ0QWN0aW9uLmg6CisgICAgICAg
ICgpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvZ3RrL0VkaXRvckd0ay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQpOgorICAgICAgICAqIGVk
aXRpbmcvaW9zL0VkaXRvcklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGFzdGVX
aXRoUGFzdGVib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rp
b25XaXRoQXR0cmlidXRlZFN0cmluZyk6CisgICAgICAgICogZWRpdGluZy9tYWMvRWRpdG9yTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVwbGFjZU5vZGVGcm9tUGFzdGVib2FyZCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoQXR0cmlidXRlZFN0cmlu
Zyk6CisgICAgICAgICogZWRpdGluZy93aW4vRWRpdG9yV2luLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6cGFzdGVXaXRoUGFzdGVib2FyZCk6CisgICAgICAgICogcGFnZS9Db250ZXh0
TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW5zZXJ0VW5pY29kZUNoYXJh
Y3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRN
ZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKToKKwogMjAx
Ni0xMi0yMSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgSG9sZGlu
ZyBkb3duIG9uIGNhbmRpZGF0ZXMgaW4gdGhlIFRvdWNoQmFyIHNob3VsZCBzaG93IHBhbmVsIG9u
IHNjcmVlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDEyNmU4MWE2ZTkxNWQ2MzNiN2FiZmNmZWU0ZmRj
NjIwNjQ2OTljYmIuLmI0OGZmN2Q2MjhhODBkZTQyZDVlNWU0N2EwM2MyZTlhNmUwN2YxOTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNi0xMi0yMiAgQW5keSBFc3RlcyAg
PGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBXZWJDb3JlOjpFZGl0b3JJbnNlcnRB
Y3Rpb24gYW4gZW51bSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY2NDI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAg
IChraXQpOgorCiAyMDE2LTEyLTIxICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAog
ICAgICAgICBIb2xkaW5nIGRvd24gb24gY2FuZGlkYXRlcyBpbiB0aGUgVG91Y2hCYXIgc2hvdWxk
IHNob3cgcGFuZWwgb24gc2NyZWVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMTI1MzkxYzhhZmViMWVk
NGY2ZjgwYmIyMjI3OWZkNmU2OWFmMzJjMy4uNDdmMWNmNzI4NmYwZGE4NjMzZDk5NzJjYTQ5MDJj
NGI1NmExZTJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTEyLTIy
ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFdlYkNvcmU6
OkVkaXRvckluc2VydEFjdGlvbiBhbiBlbnVtIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY0MjQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHA6CisgICAgICAgIChraXQpOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRJ
bnNlcnROb2RlKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6c2hvdWxkSW5zZXJ0VGV4dCk6
CisKIDIwMTYtMTItMTkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAK
ICAgICAgICAgW0VTNl0gRW5hYmxlIEVTNiBNb2R1bGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTBhZjkyYzhh
ZGY4ZDFiOTM3NWMwMGIxZWZmM2I5N2UwYWQwYWU5YS4uNGYyODcxNzQ3ZDRiYTRiMzNlZTkxMDJj
Nzc5ZWU3N2E3ZTNhNjcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTEyLTIy
ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFdlYkNvcmU6
OkVkaXRvckluc2VydEFjdGlvbiBhbiBlbnVtIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY0MjQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyLm1tOgorICAgICAgICAodG9XSyk6CisKIDIwMTYtMTItMjEg
IEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIEhvbGRpbmcgZG93biBv
biBjYW5kaWRhdGVzIGluIHRoZSBUb3VjaEJhciBzaG91bGQgc2hvdyBwYW5lbCBvbiBzY3JlZW4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xs
ZXIuY3BwCmluZGV4IGQ1Y2QxZWE2N2RkOTBiODkzZjUzNDdhN2ExN2VlY2UwOTRhNGFhNmMuLmNl
ZTM3ODcxZGNkNmQ5N2UyMmRmMGFiNDg0MTI5Zjg0ZjViYzA3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwOCwgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBA
IC03MjksNyArNzI5LDcgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjphcHBseURp
Y3RhdGlvbkFsdGVybmF0aXZlKGNvbnN0IFN0cmluZyYgYWx0ZXJuYXQKICNpZiBVU0UoRElDVEFU
SU9OX0FMVEVSTkFUSVZFUykKICAgICBFZGl0b3ImIGVkaXRvciA9IG1fZnJhbWUuZWRpdG9yKCk7
CiAgICAgUmVmUHRyPFJhbmdlPiBzZWxlY3Rpb24gPSBlZGl0b3Iuc2VsZWN0ZWRSYW5nZSgpOwot
ICAgIGlmICghc2VsZWN0aW9uIHx8ICFlZGl0b3Iuc2hvdWxkSW5zZXJ0VGV4dChhbHRlcm5hdGl2
ZVN0cmluZywgc2VsZWN0aW9uLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQpKQorICAg
IGlmICghc2VsZWN0aW9uIHx8ICFlZGl0b3Iuc2hvdWxkSW5zZXJ0VGV4dChhbHRlcm5hdGl2ZVN0
cmluZywgc2VsZWN0aW9uLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3RlZCkpCiAgICAg
ICAgIHJldHVybjsKICAgICBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXImIG1hcmtlcnMgPSBzZWxl
Y3Rpb24tPnN0YXJ0Q29udGFpbmVyKCkuZG9jdW1lbnQoKS5tYXJrZXJzKCk7CiAgICAgVmVjdG9y
PFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIqPiBkaWN0YXRpb25BbHRlcm5hdGl2ZXNNYXJrZXJzID0g
bWFya2Vycy5tYXJrZXJzSW5SYW5nZShzZWxlY3Rpb24uZ2V0KCksIERvY3VtZW50TWFya2VyOjpE
aWN0YXRpb25BbHRlcm5hdGl2ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGZj
ZmI1YWQzYWMwOGQ1NzdmYzU1ZWRjMGEzYjgxNThiODFjZWJkMDMuLjYxYTc1NmU3YjY1MzIzYmZj
YTQyN2ExYjI0MmU1ZGQwNzNiMjdjZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAg
LTQ0Myw3ICs0NDMsNyBAQCB2b2lkIEVkaXRvcjo6cGFzdGVBc1BsYWluVGV4dEJ5cGFzc2luZ0RI
VE1MKCkKIHZvaWQgRWRpdG9yOjpwYXN0ZUFzUGxhaW5UZXh0V2l0aFBhc3RlYm9hcmQoUGFzdGVi
b2FyZCYgcGFzdGVib2FyZCkKIHsKICAgICBTdHJpbmcgdGV4dCA9IHJlYWRQbGFpblRleHRGcm9t
UGFzdGVib2FyZChwYXN0ZWJvYXJkKTsKLSAgICBpZiAoY2xpZW50KCkgJiYgY2xpZW50KCktPnNo
b3VsZEluc2VydFRleHQodGV4dCwgc2VsZWN0ZWRSYW5nZSgpLmdldCgpLCBFZGl0b3JJbnNlcnRB
Y3Rpb25QYXN0ZWQpKQorICAgIGlmIChjbGllbnQoKSAmJiBjbGllbnQoKS0+c2hvdWxkSW5zZXJ0
VGV4dCh0ZXh0LCBzZWxlY3RlZFJhbmdlKCkuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvbjo6UGFz
dGVkKSkKICAgICAgICAgcGFzdGVBc1BsYWluVGV4dCh0ZXh0LCBjYW5TbWFydFJlcGxhY2VXaXRo
UGFzdGVib2FyZChwYXN0ZWJvYXJkKSk7CiB9CiAKQEAgLTU3NSw3ICs1NzUsNyBAQCBib29sIEVk
aXRvcjo6dHJ5REhUTUxQYXN0ZSgpCiAKIGJvb2wgRWRpdG9yOjpzaG91bGRJbnNlcnRUZXh0KGNv
bnN0IFN0cmluZyYgdGV4dCwgUmFuZ2UqIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb24gYWN0aW9u
KSBjb25zdAogewotICAgIGlmIChtX2ZyYW1lLmxvYWRlcigpLnNob3VsZFN1cHByZXNzS2V5Ym9h
cmRJbnB1dCgpICYmIGFjdGlvbiA9PSBFZGl0b3JJbnNlcnRBY3Rpb25UeXBlZCkKKyAgICBpZiAo
bV9mcmFtZS5sb2FkZXIoKS5zaG91bGRTdXBwcmVzc0tleWJvYXJkSW5wdXQoKSAmJiBhY3Rpb24g
PT0gRWRpdG9ySW5zZXJ0QWN0aW9uOjpUeXBlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgcmV0dXJuIGNsaWVudCgpICYmIGNsaWVudCgpLT5zaG91bGRJbnNlcnRUZXh0KHRleHQsIHJh
bmdlLCBhY3Rpb24pOwpAQCAtMTA5MSw3ICsxMDkxLDcgQEAgYm9vbCBFZGl0b3I6Omluc2VydFRl
eHRXaXRob3V0U2VuZGluZ1RleHRFdmVudChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0
SW4KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzZWxl
Y3Rpb24udG9Ob3JtYWxpemVkUmFuZ2UoKTsKIAotICAgIGlmICghc2hvdWxkSW5zZXJ0VGV4dCh0
ZXh0LCByYW5nZS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uVHlwZWQpKQorICAgIGlmICghc2hv
dWxkSW5zZXJ0VGV4dCh0ZXh0LCByYW5nZS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uOjpUeXBl
ZCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgdXBkYXRlTWFya2Vyc0ZvcldvcmRzQWZm
ZWN0ZWRCeUVkaXRpbmcoaXNTcGFjZU9yTmV3bGluZSh0ZXh0WzBdKSk7CkBAIC0xMTQ4LDcgKzEx
NDgsNyBAQCBib29sIEVkaXRvcjo6aW5zZXJ0TGluZUJyZWFrKCkKICAgICBpZiAoIWNhbkVkaXQo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFzaG91bGRJbnNlcnRUZXh0KCJc
biIsIG1fZnJhbWUuc2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgRWRpdG9y
SW5zZXJ0QWN0aW9uVHlwZWQpKQorICAgIGlmICghc2hvdWxkSW5zZXJ0VGV4dCgiXG4iLCBtX2Zy
YW1lLnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCksIEVkaXRvckluc2VydEFj
dGlvbjo6VHlwZWQpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIFZpc2libGVQb3NpdGlv
biBjYXJldCA9IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkudmlzaWJsZVN0YXJ0KCk7
CkBAIC0xMTY4LDcgKzExNjgsNyBAQCBib29sIEVkaXRvcjo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yKCkKICAgICBpZiAoIWNhbkVkaXRSaWNobHkoKSkKICAgICAgICAgcmV0dXJuIGluc2VydExp
bmVCcmVhaygpOwogCi0gICAgaWYgKCFzaG91bGRJbnNlcnRUZXh0KCJcbiIsIG1fZnJhbWUuc2Vs
ZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uVHlw
ZWQpKQorICAgIGlmICghc2hvdWxkSW5zZXJ0VGV4dCgiXG4iLCBtX2ZyYW1lLnNlbGVjdGlvbigp
LnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvbjo6VHlwZWQpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIFZpc2libGVQb3NpdGlvbiBjYXJldCA9IG1fZnJh
bWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkudmlzaWJsZVN0YXJ0KCk7CkBAIC0yMjYzLDcgKzIy
NjMsNyBAQCB2b2lkIEVkaXRvcjo6bWFya01pc3NwZWxsaW5nc0FmdGVyVHlwaW5nVG9Xb3JkKGNv
bnN0IFZpc2libGVQb3NpdGlvbiAmd29yZFN0YXJ0LAogICAgICAgICAgICAgbV9mcmFtZS5zZWxl
Y3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKICAgICAgICAgfQogCi0gICAgICAg
IGlmICghbV9mcmFtZS5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KGF1dG9jb3JyZWN0ZWRTdHJp
bmcsIG1pc3NwZWxsaW5nUmFuZ2UuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvblR5cGVkKSkKKyAg
ICAgICAgaWYgKCFtX2ZyYW1lLmVkaXRvcigpLnNob3VsZEluc2VydFRleHQoYXV0b2NvcnJlY3Rl
ZFN0cmluZywgbWlzc3BlbGxpbmdSYW5nZS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uOjpUeXBl
ZCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1fZnJhbWUuZWRpdG9yKCkucmVwbGFj
ZVNlbGVjdGlvbldpdGhUZXh0KGF1dG9jb3JyZWN0ZWRTdHJpbmcsIGZhbHNlLCBmYWxzZSwgRWRp
dEFjdGlvbkluc2VydCk7CiAKQEAgLTI1NjAsNyArMjU2MCw3IEBAIHZvaWQgRWRpdG9yOjptYXJr
QW5kUmVwbGFjZUZvcihQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0LCBjb25z
dCBWZWN0CiAgICAgICAgICAgICAgICAgcmVzdG9yZVNlbGVjdGlvbkFmdGVyQ2hhbmdlID0gZmFs
c2U7CiAgICAgICAgICAgICAgICAgaWYgKGNhbkVkaXRSaWNobHkoKSkKICAgICAgICAgICAgICAg
ICAgICAgYXBwbHlDb21tYW5kKENyZWF0ZUxpbmtDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwg
cmVwbGFjZW1lbnQpKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoY2FuRWRpdCgpICYmIHNob3Vs
ZEluc2VydFRleHQocmVwbGFjZW1lbnQsIHJhbmdlVG9SZXBsYWNlLmdldCgpLCBFZGl0b3JJbnNl
cnRBY3Rpb25UeXBlZCkpIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY2FuRWRpdCgpICYmIHNo
b3VsZEluc2VydFRleHQocmVwbGFjZW1lbnQsIHJhbmdlVG9SZXBsYWNlLmdldCgpLCBFZGl0b3JJ
bnNlcnRBY3Rpb246OlR5cGVkKSkgewogICAgICAgICAgICAgICAgIGNvcnJlY3RTcGVsbGNoZWNr
aW5nUHJlc2VydmluZ1RleHRDaGVja2luZ1BhcmFncmFwaChwYXJhZ3JhcGgsIHJhbmdlVG9SZXBs
YWNlLCByZXBsYWNlbWVudCwgcmVzdWx0TG9jYXRpb24sIHJlc3VsdExlbmd0aCk7CiAKICAgICAg
ICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKSB7CkBAIC0yNjEwLDcgKzI2MTAsNyBAQCB2b2lkIEVkaXRvcjo6Y2hh
bmdlQmFja1RvUmVwbGFjZWRTdHJpbmcoY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPFJhbmdlPiBzZWxlY3Rpb24gPSBzZWxlY3RlZFJh
bmdlKCk7Ci0gICAgaWYgKCFzaG91bGRJbnNlcnRUZXh0KHJlcGxhY2VkU3RyaW5nLCBzZWxlY3Rp
b24uZ2V0KCksIEVkaXRvckluc2VydEFjdGlvblBhc3RlZCkpCisgICAgaWYgKCFzaG91bGRJbnNl
cnRUZXh0KHJlcGxhY2VkU3RyaW5nLCBzZWxlY3Rpb24uZ2V0KCksIEVkaXRvckluc2VydEFjdGlv
bjo6UGFzdGVkKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIG1fYWx0ZXJuYXRpdmVUZXh0
Q29udHJvbGxlci0+cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZVJldmVyc2VkKHJlcGxhY2Vk
U3RyaW5nLCBzZWxlY3Rpb24pOwpAQCAtMjg1Myw3ICsyODUzLDcgQEAgdm9pZCBFZGl0b3I6OnRy
YW5zcG9zZSgpCiAgICAgfQogCiAgICAgLy8gSW5zZXJ0IHRoZSB0cmFuc3Bvc2VkIGNoYXJhY3Rl
cnMuCi0gICAgaWYgKCFzaG91bGRJbnNlcnRUZXh0KHRyYW5zcG9zZWQsIHJhbmdlLmdldCgpLCBF
ZGl0b3JJbnNlcnRBY3Rpb25UeXBlZCkpCisgICAgaWYgKCFzaG91bGRJbnNlcnRUZXh0KHRyYW5z
cG9zZWQsIHJhbmdlLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OlR5cGVkKSkKICAgICAgICAg
cmV0dXJuOwogICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dCh0cmFuc3Bvc2VkLCBmYWxzZSwg
ZmFsc2UsIEVkaXRBY3Rpb25JbnNlcnQpOwogfQpAQCAtMzYwMSw3ICszNjAxLDcgQEAgdm9pZCBF
ZGl0b3I6OmhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKFRleHRDaGVja2luZ1Jlc3VsdCBhY2NlcHRl
ZENhbmRpZGF0ZSkKICAgICBtX2lzSGFuZGxpbmdBY2NlcHRlZENhbmRpZGF0ZSA9IHRydWU7CiAK
ICAgICBpZiAoYXV0byByYW5nZSA9IHJhbmdlRm9yVGV4dENoZWNraW5nUmVzdWx0KGFjY2VwdGVk
Q2FuZGlkYXRlKSkgewotICAgICAgICBpZiAoc2hvdWxkSW5zZXJ0VGV4dChhY2NlcHRlZENhbmRp
ZGF0ZS5yZXBsYWNlbWVudCwgcmFuZ2UuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvblR5cGVkKSkg
eworICAgICAgICBpZiAoc2hvdWxkSW5zZXJ0VGV4dChhY2NlcHRlZENhbmRpZGF0ZS5yZXBsYWNl
bWVudCwgcmFuZ2UuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvbjo6VHlwZWQpKSB7CiAgICAgICAg
ICAgICBSZWY8UmVwbGFjZVJhbmdlV2l0aFRleHRDb21tYW5kPiByZXBsYWNlQ29tbWFuZCA9IFJl
cGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZDo6Y3JlYXRlKHJhbmdlLmdldCgpLCBhY2NlcHRlZENh
bmRpZGF0ZS5yZXBsYWNlbWVudCk7CiAgICAgICAgICAgICBhcHBseUNvbW1hbmQocmVwbGFjZUNv
bW1hbmQucHRyKCkpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvckluc2VydEFjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JJ
bnNlcnRBY3Rpb24uaAppbmRleCA2Nzc2NDliMjBlOWZjYjQyNjljZjRmNmRhMjA1NTVkZWZhNTJi
NjM2Li5mMzI1NTFlMjVjYzU5NTIwZmZkMWMwZTU3NTgzNjcxYmZiYmNjODJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckluc2VydEFjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9ySW5zZXJ0QWN0aW9uLmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDExICsyNywxMCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIFRoaXMgbXVzdCBiZSBrZXB0IGluIHN5bmMgd2l0
aCBXZWJWaWV3SW5zZXJ0QWN0aW9uIGRlZmluZWQgaW4gV2ViRWRpdGluZ0RlbGVnYXRlLmgKLWVu
dW0gRWRpdG9ySW5zZXJ0QWN0aW9uIHsKLSAgICBFZGl0b3JJbnNlcnRBY3Rpb25UeXBlZCwKLSAg
ICBFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQsCi0gICAgRWRpdG9ySW5zZXJ0QWN0aW9uRHJvcHBl
ZAorZW51bSBjbGFzcyBFZGl0b3JJbnNlcnRBY3Rpb24geworICAgIFR5cGVkLAorICAgIFBhc3Rl
ZCwKKyAgICBEcm9wcGVkLAogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9ndGsvRWRpdG9yR3RrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvZ3RrL0VkaXRvckd0ay5jcHAKaW5kZXggMzIwMjgxNDY4NGY4OTdhZDY5NTI3
ZDBkNWRlZmFkY2JkYTg2ZDBmYy4uZWZjMDRlNzYxZTIxMjhlMDM0MDVmOGI3OTIwNzJlOTAwY2Q1
OGRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9ndGsvRWRpdG9yR3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9FZGl0b3JHdGsuY3BwCkBAIC03Niw3
ICs3Niw3IEBAIHZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqIHBh
c3RlYm9hcmQsIGJvb2wgYWxsb3dQbGFpblRleHQsIE1hCiAKICAgICBib29sIGNob3NlUGxhaW5U
ZXh0OwogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdt
ZW50RnJvbVBhc3RlYm9hcmREYXRhKCpwYXN0ZWJvYXJkLCBtX2ZyYW1lLCAqcmFuZ2UsIGFsbG93
UGxhaW5UZXh0LCBjaG9zZVBsYWluVGV4dCk7Ci0gICAgaWYgKGZyYWdtZW50ICYmIHNob3VsZElu
c2VydEZyYWdtZW50KGZyYWdtZW50LCByYW5nZSwgRWRpdG9ySW5zZXJ0QWN0aW9uUGFzdGVkKSkK
KyAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxkSW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdl
LCBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3RlZCkpCiAgICAgICAgIHBhc3RlQXNGcmFnbWVudChm
cmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBjYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZCgq
cGFzdGVib2FyZCksIGNob3NlUGxhaW5UZXh0LCBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCmluZGV4IDdmNWM0MjJjMDBm
OWViMzg1Zjk0ZWU0YmJiMmYxYjIzMzlhZTZlMTAuLmM1ZThjMjkxMjRiZjA3YmE5NmNlNTRjMjdl
Y2I4YmNmZjdiNTY0N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0Vk
aXRvcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0K
QEAgLTUzMCw3ICs1MzAsNyBAQCB2b2lkIEVkaXRvcjo6cGFzdGVXaXRoUGFzdGVib2FyZChQYXN0
ZWJvYXJkKiBwYXN0ZWJvYXJkLCBib29sIGFsbG93UGxhaW5UZXh0LCBNYQogICAgICAgICBmcmFn
bWVudCA9IHdlYkNvbnRlbnRGcm9tUGFzdGVib2FyZCgqcGFzdGVib2FyZCwgKnJhbmdlLCBhbGxv
d1BsYWluVGV4dCwgY2hvc2VQbGFpblRleHRJZ25vcmVkKTsKICAgICB9CiAKLSAgICBpZiAoZnJh
Z21lbnQgJiYgc2hvdWxkSW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNl
cnRBY3Rpb25QYXN0ZWQpKQorICAgIGlmIChmcmFnbWVudCAmJiBzaG91bGRJbnNlcnRGcmFnbWVu
dChmcmFnbWVudCwgcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvbjo6UGFzdGVkKSkKICAgICAgICAg
cGFzdGVBc0ZyYWdtZW50KGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGNhblNtYXJ0UmVwbGFj
ZVdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgZmFsc2UsIG1haWxCbG9ja3F1b3RlSGFuZGxp
bmcpOwogfQogCkBAIC01OTYsMTEgKzU5NiwxMSBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVj
dGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmlidXRlZFN0cmluZyAqYXR0cmlidXRlZAog
CiAgICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuaXNDb250ZW50UmljaGx5
RWRpdGFibGUoKSkgewogICAgICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQg
PSBjcmVhdGVGcmFnbWVudEFuZEFkZFJlc291cmNlcyhhdHRyaWJ1dGVkU3RyaW5nKTsKLSAgICAg
ICAgaWYgKGZyYWdtZW50ICYmIHNob3VsZEluc2VydEZyYWdtZW50KGZyYWdtZW50LCBzZWxlY3Rl
ZFJhbmdlKCksIEVkaXRvckluc2VydEFjdGlvblBhc3RlZCkpCisgICAgICAgIGlmIChmcmFnbWVu
dCAmJiBzaG91bGRJbnNlcnRGcmFnbWVudChmcmFnbWVudCwgc2VsZWN0ZWRSYW5nZSgpLCBFZGl0
b3JJbnNlcnRBY3Rpb246OlBhc3RlZCkpCiAgICAgICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoZnJh
Z21lbnQucmVsZWFzZU5vbk51bGwoKSwgZmFsc2UsIGZhbHNlLCBtYWlsQmxvY2txdW90ZUhhbmRs
aW5nKTsKICAgICB9IGVsc2UgewogICAgICAgICBTdHJpbmcgdGV4dCA9IFthdHRyaWJ1dGVkU3Ry
aW5nIHN0cmluZ107Ci0gICAgICAgIGlmIChzaG91bGRJbnNlcnRUZXh0KHRleHQsIHNlbGVjdGVk
UmFuZ2UoKS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uUGFzdGVkKSkKKyAgICAgICAgaWYgKHNo
b3VsZEluc2VydFRleHQodGV4dCwgc2VsZWN0ZWRSYW5nZSgpLmdldCgpLCBFZGl0b3JJbnNlcnRB
Y3Rpb246OlBhc3RlZCkpCiAgICAgICAgICAgICBwYXN0ZUFzUGxhaW5UZXh0KHRleHQsIGZhbHNl
KTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0
b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KaW5kZXgg
MmJjMDM0NmRjMmNjYTU2MTgyZDcyNDQ0NzFmMTQ3M2IyMDM2ZjMyZC4uYjU0YmJkMTdlN2YwOGZl
NmVhZjA5OTdlNzg3M2U1ZjVhY2RkMjMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYWMvRWRpdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0Vk
aXRvck1hYy5tbQpAQCAtOTksNyArOTksNyBAQCB2b2lkIEVkaXRvcjo6cGFzdGVXaXRoUGFzdGVi
b2FyZChQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBib29sIGFsbG93UGxhaW5UZXh0LCBNYQogICAg
IGJvb2wgY2hvc2VQbGFpblRleHQ7CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdt
ZW50ID0gd2ViQ29udGVudEZyb21QYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkLCAqcmFuZ2UsIGFsbG93
UGxhaW5UZXh0LCBjaG9zZVBsYWluVGV4dCk7CiAKLSAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxk
SW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQp
KQorICAgIGlmIChmcmFnbWVudCAmJiBzaG91bGRJbnNlcnRGcmFnbWVudChmcmFnbWVudCwgcmFu
Z2UsIEVkaXRvckluc2VydEFjdGlvbjo6UGFzdGVkKSkKICAgICAgICAgcGFzdGVBc0ZyYWdtZW50
KGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJk
KCpwYXN0ZWJvYXJkKSwgZmFsc2UsIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpOwogCiAgICAgY2xp
ZW50KCktPnNldEluc2VydGlvblBhc3RlYm9hcmQoU3RyaW5nKCkpOwpAQCAtMjc5LDcgKzI3OSw3
IEBAIHZvaWQgRWRpdG9yOjpyZXBsYWNlTm9kZUZyb21QYXN0ZWJvYXJkKE5vZGUqIG5vZGUsIGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiAgICAgYm9vbCBjaG9zZVBsYWluVGV4dDsKICAg
ICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gd2ViQ29udGVudEZyb21Q
YXN0ZWJvYXJkKHBhc3RlYm9hcmQsICpyYW5nZSwgdHJ1ZSwgY2hvc2VQbGFpblRleHQpKSB7CiAg
ICAgICAgIG1heWJlQ29weU5vZGVBdHRyaWJ1dGVzVG9GcmFnbWVudCgqbm9kZSwgKmZyYWdtZW50
KTsKLSAgICAgICAgaWYgKHNob3VsZEluc2VydEZyYWdtZW50KGZyYWdtZW50LCByYW5nZSwgRWRp
dG9ySW5zZXJ0QWN0aW9uUGFzdGVkKSkKKyAgICAgICAgaWYgKHNob3VsZEluc2VydEZyYWdtZW50
KGZyYWdtZW50LCByYW5nZSwgRWRpdG9ySW5zZXJ0QWN0aW9uOjpQYXN0ZWQpKQogICAgICAgICAg
ICAgcGFzdGVBc0ZyYWdtZW50KGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGNhblNtYXJ0UmVw
bGFjZVdpdGhQYXN0ZWJvYXJkKHBhc3RlYm9hcmQpLCBmYWxzZSwgTWFpbEJsb2NrcXVvdGVIYW5k
bGluZzo6SWdub3JlQmxvY2txdW90ZSk7CiAgICAgfQogCkBAIC03MjQsMTEgKzcyNCwxMSBAQCB2
b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmli
dXRlZFN0cmluZyAqYXR0cmlidXRlZAogCiAgICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuc2Vs
ZWN0aW9uKCkuaXNDb250ZW50UmljaGx5RWRpdGFibGUoKSkgewogICAgICAgICBSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEFuZEFkZFJlc291cmNlcyhh
dHRyaWJ1dGVkU3RyaW5nKTsKLSAgICAgICAgaWYgKGZyYWdtZW50ICYmIHNob3VsZEluc2VydEZy
YWdtZW50KGZyYWdtZW50LCBzZWxlY3RlZFJhbmdlKCksIEVkaXRvckluc2VydEFjdGlvblBhc3Rl
ZCkpCisgICAgICAgIGlmIChmcmFnbWVudCAmJiBzaG91bGRJbnNlcnRGcmFnbWVudChmcmFnbWVu
dCwgc2VsZWN0ZWRSYW5nZSgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3RlZCkpCiAgICAgICAg
ICAgICBwYXN0ZUFzRnJhZ21lbnQoZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgZmFsc2UsIGZh
bHNlLCBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKTsKICAgICB9IGVsc2UgewogICAgICAgICBTdHJp
bmcgdGV4dCA9IFthdHRyaWJ1dGVkU3RyaW5nIHN0cmluZ107Ci0gICAgICAgIGlmIChzaG91bGRJ
bnNlcnRUZXh0KHRleHQsIHNlbGVjdGVkUmFuZ2UoKS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9u
UGFzdGVkKSkKKyAgICAgICAgaWYgKHNob3VsZEluc2VydFRleHQodGV4dCwgc2VsZWN0ZWRSYW5n
ZSgpLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3RlZCkpCiAgICAgICAgICAgICBwYXN0
ZUFzUGxhaW5UZXh0KHRleHQsIGZhbHNlKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy93aW4vRWRpdG9yV2luLmNwcAppbmRleCBkZjBmMjM1OWM5NDMxODBjN2I0MjFlNDczM2E1M2Fj
YTliYjA1MDEyLi44Yjc5OTQ3N2ViZGU4MDkzMDNkZGEzNTJjNDczMTY5MDVmNjQ4YWJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvd2luL0VkaXRvcldpbi5jcHAKQEAgLTQzLDcgKzQzLDcgQEAg
dm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwg
Ym9vbCBhbGxvd1BsYWluVGV4dCwgTWEKIAogICAgIGJvb2wgY2hvc2VQbGFpblRleHQ7CiAgICAg
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gcGFzdGVib2FyZC0+ZG9jdW1lbnRG
cmFnbWVudChtX2ZyYW1lLCAqcmFuZ2UsIGFsbG93UGxhaW5UZXh0LCBjaG9zZVBsYWluVGV4dCk7
Ci0gICAgaWYgKGZyYWdtZW50ICYmIHNob3VsZEluc2VydEZyYWdtZW50KGZyYWdtZW50LCByYW5n
ZSwgRWRpdG9ySW5zZXJ0QWN0aW9uUGFzdGVkKSkKKyAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxk
SW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3Rl
ZCkpCiAgICAgICAgIHBhc3RlQXNGcmFnbWVudChmcmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBj
YW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZCgqcGFzdGVib2FyZCksIGNob3NlUGxhaW5UZXh0
LCBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IDg4ZjUyYTc2MmVmNDMwM2ZjYTQxN2M4ZDg4
NGJiOGIzNjliMTY4MmYuLjY2MDQ1N2MxY2M0NWQ2ZTE4YTdiNGRhNmM3ZTJjNDQ1OGRmZTViNWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMDcsIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxp
YSBTLkwKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTIwMiw3ICsyMDIsNyBAQCBzdGF0aWMgdm9pZCBv
cGVuTmV3V2luZG93KGNvbnN0IFVSTCYgdXJsVG9Mb2FkLCBGcmFtZSogZnJhbWUsIFNob3VsZE9w
ZW5FeHRlcm5hbAogc3RhdGljIHZvaWQgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihVQ2hhciBjaGFy
YWN0ZXIsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBTdHJpbmcgdGV4dCgmY2hhcmFjdGVyLCAxKTsK
LSAgICBpZiAoIWZyYW1lLT5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KHRleHQsIGZyYW1lLT5z
ZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb25U
eXBlZCkpCisgICAgaWYgKCFmcmFtZS0+ZWRpdG9yKCkuc2hvdWxkSW5zZXJ0VGV4dCh0ZXh0LCBm
cmFtZS0+c2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgRWRpdG9ySW5zZXJ0
QWN0aW9uOjpUeXBlZCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChmcmFtZS0+ZG9j
dW1lbnQoKSk7CkBAIC0zNTYsNyArMzU2LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6
OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KICNl
bmRpZgogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdHdWVzczogewogICAgICAg
ICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbiA9IGZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rp
b24oKTsKLSAgICAgICAgaWYgKGZyYW1lLT5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KHRpdGxl
LCBzZWxlY3Rpb24udG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9u
UGFzdGVkKSkgeworICAgICAgICBpZiAoZnJhbWUtPmVkaXRvcigpLnNob3VsZEluc2VydFRleHQo
dGl0bGUsIHNlbGVjdGlvbi50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpLCBFZGl0b3JJbnNlcnRB
Y3Rpb246OlBhc3RlZCkpIHsKICAgICAgICAgICAgIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpD
b21tYW5kT3B0aW9ucyByZXBsYWNlT3B0aW9ucyA9IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpN
YXRjaFN0eWxlIHwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlByZXZlbnROZXN0aW5nOwogCiAg
ICAgICAgICAgICBpZiAoZnJhbWUtPmVkaXRvcigpLmJlaGF2aW9yKCkuc2hvdWxkQWxsb3dTcGVs
bGluZ1N1Z2dlc3Rpb25zV2l0aG91dFNlbGVjdGlvbigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwCmluZGV4IGI4MjI2NzI4ZDVjNmJlZTcwODY5MTBiNjVlMDEyZmVkOTJi
MzAzNDEuLjdiYmJkYTQyYWZjNGFhOTI4ZDZjOTFiMzI5MmU3ZTBjYTA4MmViN2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNywgMjAwOS0yMDEwLCAyMDEzLCAyMDE1LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC01MTQsNyArNTE0LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyhj
b25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgaWYgKGRyYWdJc01vdmUoaW5uZXJGcmFtZS0+
c2VsZWN0aW9uKCksIGRyYWdEYXRhKSB8fCBkcmFnQ2FyZXQuaXNDb250ZW50UmljaGx5RWRpdGFi
bGUoKSkgewogICAgICAgICBib29sIGNob3NlUGxhaW5UZXh0ID0gZmFsc2U7CiAgICAgICAgIFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGRvY3VtZW50RnJhZ21lbnRGcm9tRHJh
Z0RhdGEoZHJhZ0RhdGEsICppbm5lckZyYW1lLCAqcmFuZ2UsIHRydWUsIGNob3NlUGxhaW5UZXh0
KTsKLSAgICAgICAgaWYgKCFmcmFnbWVudCB8fCAhaW5uZXJGcmFtZS0+ZWRpdG9yKCkuc2hvdWxk
SW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb25Ecm9wcGVk
KSkgeworICAgICAgICBpZiAoIWZyYWdtZW50IHx8ICFpbm5lckZyYW1lLT5lZGl0b3IoKS5zaG91
bGRJbnNlcnRGcmFnbWVudChmcmFnbWVudCwgcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvbjo6RHJv
cHBlZCkpIHsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCkBAIC01Mzcs
NyArNTM3LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyhjb25zdCBE
cmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBTdHJp
bmcgdGV4dCA9IGRyYWdEYXRhLmFzUGxhaW5UZXh0KCk7Ci0gICAgICAgIGlmICh0ZXh0LmlzRW1w
dHkoKSB8fCAhaW5uZXJGcmFtZS0+ZWRpdG9yKCkuc2hvdWxkSW5zZXJ0VGV4dCh0ZXh0LCByYW5n
ZS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uRHJvcHBlZCkpIHsKKyAgICAgICAgaWYgKHRleHQu
aXNFbXB0eSgpIHx8ICFpbm5lckZyYW1lLT5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KHRleHQs
IHJhbmdlLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OkRyb3BwZWQpKSB7CiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDJhMmM1YmJkOTcwZGNjYzRh
MzA3ZTc2OGU5MTZhZDRjZTQxNDg5YmQuLmQ4NmYzOGNjMzFhYTVjOTA3MjI5NGVhMTg4YzhiMjY0
ODdiMWNiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW0KQEAgLTEwMiw5ICsxMDIsMTYgQEAgQGludGVyZmFjZSBOU0F0dHJp
YnV0ZWRTdHJpbmcgKFdlYk5TQXR0cmlidXRlZFN0cmluZ0RldGFpbHMpCiAtIChET01Eb2N1bWVu
dEZyYWdtZW50ICopX2RvY3VtZW50RnJvbVJhbmdlOihOU1JhbmdlKXJhbmdlIGRvY3VtZW50OihE
T01Eb2N1bWVudCAqKWRvY3VtZW50IGRvY3VtZW50QXR0cmlidXRlczooTlNEaWN0aW9uYXJ5ICop
YXR0cmlidXRlcyBzdWJyZXNvdXJjZXM6KE5TQXJyYXkgKiopc3VicmVzb3VyY2VzOwogQGVuZAog
Ci1zdGF0aWMgV2ViVmlld0luc2VydEFjdGlvbiBraXQoRWRpdG9ySW5zZXJ0QWN0aW9uIGNvcmVB
Y3Rpb24pCi17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYlZpZXdJbnNlcnRBY3Rpb24+KGNv
cmVBY3Rpb24pOworc3RhdGljIFdlYlZpZXdJbnNlcnRBY3Rpb24ga2l0KEVkaXRvckluc2VydEFj
dGlvbiBhY3Rpb24pCit7CisgICAgc3dpdGNoIChhY3Rpb24pIHsKKyAgICBjYXNlIEVkaXRvcklu
c2VydEFjdGlvbjo6VHlwZWQ6CisgICAgICAgIHJldHVybiBXZWJWaWV3SW5zZXJ0QWN0aW9uVHlw
ZWQ7CisgICAgY2FzZSBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3RlZDoKKyAgICAgICAgcmV0dXJu
IFdlYlZpZXdJbnNlcnRBY3Rpb25QYXN0ZWQ7CisgICAgY2FzZSBFZGl0b3JJbnNlcnRBY3Rpb246
OkRyb3BwZWQ6CisgICAgICAgIHJldHVybiBXZWJWaWV3SW5zZXJ0QWN0aW9uRHJvcHBlZDsKKyAg
ICB9CiB9CiAKIEBpbnRlcmZhY2UgV2ViVW5kb1N0ZXAgOiBOU09iamVjdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXgg
ZjhiOTA4ZGNiYWIxODI2NzRlZTIyMzlmMjFjNGMzZmFmMzBmYThmYy4uZDg5YjVmMDdiYmQ2NmQy
ZTEwYTk0MGU2NTBlODBiZjFjNWZhNGJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0yODQsNiArMjg0LDE4IEBA
IGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGREZWxldGVSYW5nZShSYW5nZSogcmFuZ2UpCiAg
ICAgcmV0dXJuIHNob3VsZERlbGV0ZTsKIH0KIAorc3RhdGljIFdlYlZpZXdJbnNlcnRBY3Rpb24g
a2l0KEVkaXRvckluc2VydEFjdGlvbiBhY3Rpb24pCit7CisgICAgc3dpdGNoIChhY3Rpb24pIHsK
KyAgICBjYXNlIEVkaXRvckluc2VydEFjdGlvbjo6VHlwZWQ6CisgICAgICAgIHJldHVybiBXZWJW
aWV3SW5zZXJ0QWN0aW9uVHlwZWQ7CisgICAgY2FzZSBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3Rl
ZDoKKyAgICAgICAgcmV0dXJuIFdlYlZpZXdJbnNlcnRBY3Rpb25QYXN0ZWQ7CisgICAgY2FzZSBF
ZGl0b3JJbnNlcnRBY3Rpb246OkRyb3BwZWQ6CisgICAgICAgIHJldHVybiBXZWJWaWV3SW5zZXJ0
QWN0aW9uRHJvcHBlZDsKKyAgICB9Cit9CisKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRJ
bnNlcnROb2RlKE5vZGUqIG5vZGUsIFJhbmdlKiBpbnNlcnRpbmdSYW5nZSwgRWRpdG9ySW5zZXJ0
QWN0aW9uIGdpdmVuQWN0aW9uKQogeyAKICAgICBDT01QdHI8SVdlYkVkaXRpbmdEZWxlZ2F0ZT4g
ZWRpdGluZ0RlbGVnYXRlOwpAQCAtMzAxLDcgKzMxMyw3IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50
OjpzaG91bGRJbnNlcnROb2RlKE5vZGUqIG5vZGUsIFJhbmdlKiBpbnNlcnRpbmdSYW5nZSwgRWRp
dG9yCiAgICAgQk9PTCBzaG91bGRJbnNlcnQgPSBGQUxTRTsKICAgICBDT01QdHI8SVdlYkVkaXRp
bmdEZWxlZ2F0ZTI+IGVkaXRpbmdEZWxlZ2F0ZTIoUXVlcnksIGVkaXRpbmdEZWxlZ2F0ZSk7CiAg
ICAgaWYgKGVkaXRpbmdEZWxlZ2F0ZTIpIHsKLSAgICAgICAgaWYgKEZBSUxFRChlZGl0aW5nRGVs
ZWdhdGUyLT5zaG91bGRJbnNlcnROb2RlKG1fd2ViVmlldywgaW5zZXJ0RE9NTm9kZS5nZXQoKSwg
aW5zZXJ0aW5nRE9NUmFuZ2UuZ2V0KCksIHN0YXRpY19jYXN0PFdlYlZpZXdJbnNlcnRBY3Rpb24+
KGdpdmVuQWN0aW9uKSwgJnNob3VsZEluc2VydCkpKQorICAgICAgICBpZiAoRkFJTEVEKGVkaXRp
bmdEZWxlZ2F0ZTItPnNob3VsZEluc2VydE5vZGUobV93ZWJWaWV3LCBpbnNlcnRET01Ob2RlLmdl
dCgpLCBpbnNlcnRpbmdET01SYW5nZS5nZXQoKSwga2l0KGdpdmVuQWN0aW9uKSwgJnNob3VsZElu
c2VydCkpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0zMjAsNyArMzMy
LDcgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZEluc2VydFRleHQoY29uc3QgU3RyaW5n
JiBzdHIsIFJhbmdlKiBpbnNlcnRpbmdSYW5nZSwKIAogICAgIEJTdHJpbmcgdGV4dChzdHIpOwog
ICAgIEJPT0wgc2hvdWxkSW5zZXJ0ID0gRkFMU0U7Ci0gICAgaWYgKEZBSUxFRChlZGl0aW5nRGVs
ZWdhdGUtPnNob3VsZEluc2VydFRleHQobV93ZWJWaWV3LCB0ZXh0LCBpbnNlcnRpbmdET01SYW5n
ZS5nZXQoKSwgc3RhdGljX2Nhc3Q8V2ViVmlld0luc2VydEFjdGlvbj4oZ2l2ZW5BY3Rpb24pLCAm
c2hvdWxkSW5zZXJ0KSkpCisgICAgaWYgKEZBSUxFRChlZGl0aW5nRGVsZWdhdGUtPnNob3VsZElu
c2VydFRleHQobV93ZWJWaWV3LCB0ZXh0LCBpbnNlcnRpbmdET01SYW5nZS5nZXQoKSwga2l0KGdp
dmVuQWN0aW9uKSwgJnNob3VsZEluc2VydCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAg
IHJldHVybiBzaG91bGRJbnNlcnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQVBJQ2FzdC5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUFQSUNhc3QuaAppbmRl
eCA5ZWQ4ODg1MzYzZGRmMmQzZWYxNWE2MWY5NjYyZTdkZDA2ZTJkZTk3Li5hMTY1MDM4ZWJlYWE4
NjJhYjlhM2U0MTUzYjI1ZWE2NDE2ZTFhMzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQVBJQ2FzdC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVBUElD
YXN0LmgKQEAgLTIzLDggKzIzLDcgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogCi0jaWZuZGVmIFdLQnVuZGxlQVBJQ2FzdF9oCi0jZGVmaW5lIFdLQnVuZGxlQVBJ
Q2FzdF9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgogI2lu
Y2x1ZGUgIldLQnVuZGxlUGFnZS5oIgpAQCAtNzQsMTEgKzczLDExIEBAIFdLX0FERF9BUElfTUFQ
UElORyhXS0J1bmRsZVNjcmlwdFdvcmxkUmVmLCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKQog
aW5saW5lIFdLSW5zZXJ0QWN0aW9uVHlwZSB0b0FQSShXZWJDb3JlOjpFZGl0b3JJbnNlcnRBY3Rp
b24gYWN0aW9uKQogewogICAgIHN3aXRjaCAoYWN0aW9uKSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpF
ZGl0b3JJbnNlcnRBY3Rpb25UeXBlZDoKKyAgICBjYXNlIFdlYkNvcmU6OkVkaXRvckluc2VydEFj
dGlvbjo6VHlwZWQ6CiAgICAgICAgIHJldHVybiBrV0tJbnNlcnRBY3Rpb25UeXBlZDsKLSAgICBj
YXNlIFdlYkNvcmU6OkVkaXRvckluc2VydEFjdGlvblBhc3RlZDoKKyAgICBjYXNlIFdlYkNvcmU6
OkVkaXRvckluc2VydEFjdGlvbjo6UGFzdGVkOgogICAgICAgICByZXR1cm4ga1dLSW5zZXJ0QWN0
aW9uUGFzdGVkOwotICAgIGNhc2UgV2ViQ29yZTo6RWRpdG9ySW5zZXJ0QWN0aW9uRHJvcHBlZDoK
KyAgICBjYXNlIFdlYkNvcmU6OkVkaXRvckluc2VydEFjdGlvbjo6RHJvcHBlZDoKICAgICAgICAg
cmV0dXJuIGtXS0luc2VydEFjdGlvbkRyb3BwZWQ7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwpAQCAtOTgsNSArOTcsMyBAQCBpbmxpbmUgV0tBZmZpbml0eVR5cGUgdG9BUEkoV2Vi
Q29yZTo6RUFmZmluaXR5IGFmZmluaXR5KQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQot
I2VuZGlmIC8vIFdLQnVuZGxlQVBJQ2FzdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3Nl
ckNvbnRleHRDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxl
ci5tbQppbmRleCA1YzU0OGNhZDU3Y2E2ODZjZDdjZWI1NTNiMWU5MjU1Y2EwMDBlNDMzLi4wM2Jh
OWZlNmE2NjkwYWNiYjA3ZjNjZjdhNjg5NWZlNzA4MGQwMmRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1
Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29u
dGV4dENvbnRyb2xsZXIubW0KQEAgLTU3NiwxMSArNTc2LDExIEBAIC0gKGlkIDxXS1dlYlByb2Nl
c3NQbHVnSW5FZGl0aW5nRGVsZWdhdGU+KV9lZGl0aW5nRGVsZWdhdGUKIHN0YXRpYyBpbmxpbmUg
V0tFZGl0b3JJbnNlcnRBY3Rpb24gdG9XSyhFZGl0b3JJbnNlcnRBY3Rpb24gYWN0aW9uKQogewog
ICAgIHN3aXRjaCAoYWN0aW9uKSB7Ci0gICAgY2FzZSBFZGl0b3JJbnNlcnRBY3Rpb25UeXBlZDoK
KyAgICBjYXNlIEVkaXRvckluc2VydEFjdGlvbjo6VHlwZWQ6CiAgICAgICAgIHJldHVybiBXS0Vk
aXRvckluc2VydEFjdGlvblR5cGVkOwotICAgIGNhc2UgRWRpdG9ySW5zZXJ0QWN0aW9uUGFzdGVk
OgorICAgIGNhc2UgRWRpdG9ySW5zZXJ0QWN0aW9uOjpQYXN0ZWQ6CiAgICAgICAgIHJldHVybiBX
S0VkaXRvckluc2VydEFjdGlvblBhc3RlZDsKLSAgICBjYXNlIEVkaXRvckluc2VydEFjdGlvbkRy
b3BwZWQ6CisgICAgY2FzZSBFZGl0b3JJbnNlcnRBY3Rpb246OkRyb3BwZWQ6CiAgICAgICAgIHJl
dHVybiBXS0VkaXRvckluc2VydEFjdGlvbkRyb3BwZWQ7CiAgICAgfQogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297665</attachid>
            <date>2016-12-22 11:53:37 -0800</date>
            <delta_ts>2016-12-22 13:11:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166424-20161222115233.patch</filename>
            <type>text/plain</type>
            <size>26388</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMDc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjExZDNmN2ZhOWU2YzNi
OWJmYjcyNWI1MDJlMmM4M2I4ZTRhMDdhYy4uYmE2ZWQzMjM3MWMzOTY5ZmI3ZTJhODM3NTBmZDFl
N2Q1MzFhNDA4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE2LTEyLTIyICBBbmR5
IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFdlYkNvcmU6OkVkaXRv
ckluc2VydEFjdGlvbiBhbiBlbnVtIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY0MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjphcHBseURp
Y3RhdGlvbkFsdGVybmF0aXZlKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnBhc3RlQXNQbGFpblRleHRXaXRoUGFzdGVib2FyZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnNob3VsZEluc2VydFRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjppbnNlcnRUZXh0V2l0aG91dFNlbmRpbmdUZXh0RXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yOjppbnNlcnRMaW5lQnJlYWspOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yOjppbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1dvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yOjptYXJrQW5kUmVwbGFjZUZvcik6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6
OmNoYW5nZUJhY2tUb1JlcGxhY2VkU3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6
dHJhbnNwb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6aGFuZGxlQWNjZXB0ZWRDYW5k
aWRhdGUpOgorICAgICAgICAqIGVkaXRpbmcvRWRpdG9ySW5zZXJ0QWN0aW9uLmg6CisgICAgICAg
ICgpOiBEZWxldGVkLgorICAgICAgICAqIGVkaXRpbmcvZ3RrL0VkaXRvckd0ay5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQpOgorICAgICAgICAqIGVk
aXRpbmcvaW9zL0VkaXRvcklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cGFzdGVX
aXRoUGFzdGVib2FyZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rp
b25XaXRoQXR0cmlidXRlZFN0cmluZyk6CisgICAgICAgICogZWRpdGluZy9tYWMvRWRpdG9yTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6cmVwbGFjZU5vZGVGcm9tUGFzdGVib2FyZCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3I6OnJlcGxhY2VTZWxlY3Rpb25XaXRoQXR0cmlidXRlZFN0cmlu
Zyk6CisgICAgICAgICogZWRpdGluZy93aW4vRWRpdG9yV2luLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvcjo6cGFzdGVXaXRoUGFzdGVib2FyZCk6CisgICAgICAgICogcGFnZS9Db250ZXh0
TWVudUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aW5zZXJ0VW5pY29kZUNoYXJh
Y3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRN
ZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKToKKwogMjAx
Ni0xMi0yMSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgSG9sZGlu
ZyBkb3duIG9uIGNhbmRpZGF0ZXMgaW4gdGhlIFRvdWNoQmFyIHNob3VsZCBzaG93IHBhbmVsIG9u
IHNjcmVlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDEyNmU4MWE2ZTkxNWQ2MzNiN2FiZmNmZWU0ZmRj
NjIwNjQ2OTljYmIuLmI0OGZmN2Q2MjhhODBkZTQyZDVlNWU0N2EwM2MyZTlhNmUwN2YxOTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNi0xMi0yMiAgQW5keSBFc3RlcyAg
PGFlc3Rlc0BhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBXZWJDb3JlOjpFZGl0b3JJbnNlcnRB
Y3Rpb24gYW4gZW51bSBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTY2NDI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAg
IChraXQpOgorCiAyMDE2LTEyLTIxICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAog
ICAgICAgICBIb2xkaW5nIGRvd24gb24gY2FuZGlkYXRlcyBpbiB0aGUgVG91Y2hCYXIgc2hvdWxk
IHNob3cgcGFuZWwgb24gc2NyZWVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggMTI1MzkxYzhhZmViMWVk
NGY2ZjgwYmIyMjI3OWZkNmU2OWFmMzJjMy4uNDdmMWNmNzI4NmYwZGE4NjMzZDk5NzJjYTQ5MDJj
NGI1NmExZTJlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTEyLTIy
ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFdlYkNvcmU6
OkVkaXRvckluc2VydEFjdGlvbiBhbiBlbnVtIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY0MjQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHA6CisgICAgICAgIChraXQpOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRJ
bnNlcnROb2RlKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6c2hvdWxkSW5zZXJ0VGV4dCk6
CisKIDIwMTYtMTItMTkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAK
ICAgICAgICAgW0VTNl0gRW5hYmxlIEVTNiBNb2R1bGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTBhZjkyYzhh
ZGY4ZDFiOTM3NWMwMGIxZWZmM2I5N2UwYWQwYWU5YS4uNGYyODcxNzQ3ZDRiYTRiMzNlZTkxMDJj
Nzc5ZWU3N2E3ZTNhNjcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE2LTEyLTIy
ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFdlYkNvcmU6
OkVkaXRvckluc2VydEFjdGlvbiBhbiBlbnVtIGNsYXNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjY0MjQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJ
L2MvV0tCdW5kbGVBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvQVBJKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyLm1tOgorICAgICAgICAodG9XSyk6CisKIDIwMTYtMTItMjEg
IEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIEhvbGRpbmcgZG93biBv
biBjYW5kaWRhdGVzIGluIHRoZSBUb3VjaEJhciBzaG91bGQgc2hvdyBwYW5lbCBvbiBzY3JlZW4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xs
ZXIuY3BwCmluZGV4IGQ1Y2QxZWE2N2RkOTBiODkzZjUzNDdhN2ExN2VlY2UwOTRhNGFhNmMuLmNl
ZTM3ODcxZGNkNmQ5N2UyMmRmMGFiNDg0MTI5Zjg0ZjViYzA3NmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwOCwgMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBA
IC03MjksNyArNzI5LDcgQEAgdm9pZCBBbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyOjphcHBseURp
Y3RhdGlvbkFsdGVybmF0aXZlKGNvbnN0IFN0cmluZyYgYWx0ZXJuYXQKICNpZiBVU0UoRElDVEFU
SU9OX0FMVEVSTkFUSVZFUykKICAgICBFZGl0b3ImIGVkaXRvciA9IG1fZnJhbWUuZWRpdG9yKCk7
CiAgICAgUmVmUHRyPFJhbmdlPiBzZWxlY3Rpb24gPSBlZGl0b3Iuc2VsZWN0ZWRSYW5nZSgpOwot
ICAgIGlmICghc2VsZWN0aW9uIHx8ICFlZGl0b3Iuc2hvdWxkSW5zZXJ0VGV4dChhbHRlcm5hdGl2
ZVN0cmluZywgc2VsZWN0aW9uLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQpKQorICAg
IGlmICghc2VsZWN0aW9uIHx8ICFlZGl0b3Iuc2hvdWxkSW5zZXJ0VGV4dChhbHRlcm5hdGl2ZVN0
cmluZywgc2VsZWN0aW9uLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3RlZCkpCiAgICAg
ICAgIHJldHVybjsKICAgICBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXImIG1hcmtlcnMgPSBzZWxl
Y3Rpb24tPnN0YXJ0Q29udGFpbmVyKCkuZG9jdW1lbnQoKS5tYXJrZXJzKCk7CiAgICAgVmVjdG9y
PFJlbmRlcmVkRG9jdW1lbnRNYXJrZXIqPiBkaWN0YXRpb25BbHRlcm5hdGl2ZXNNYXJrZXJzID0g
bWFya2Vycy5tYXJrZXJzSW5SYW5nZShzZWxlY3Rpb24uZ2V0KCksIERvY3VtZW50TWFya2VyOjpE
aWN0YXRpb25BbHRlcm5hdGl2ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGZj
ZmI1YWQzYWMwOGQ1NzdmYzU1ZWRjMGEzYjgxNThiODFjZWJkMDMuLjYxYTc1NmU3YjY1MzIzYmZj
YTQyN2ExYjI0MmU1ZGQwNzNiMjdjZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAg
LTQ0Myw3ICs0NDMsNyBAQCB2b2lkIEVkaXRvcjo6cGFzdGVBc1BsYWluVGV4dEJ5cGFzc2luZ0RI
VE1MKCkKIHZvaWQgRWRpdG9yOjpwYXN0ZUFzUGxhaW5UZXh0V2l0aFBhc3RlYm9hcmQoUGFzdGVi
b2FyZCYgcGFzdGVib2FyZCkKIHsKICAgICBTdHJpbmcgdGV4dCA9IHJlYWRQbGFpblRleHRGcm9t
UGFzdGVib2FyZChwYXN0ZWJvYXJkKTsKLSAgICBpZiAoY2xpZW50KCkgJiYgY2xpZW50KCktPnNo
b3VsZEluc2VydFRleHQodGV4dCwgc2VsZWN0ZWRSYW5nZSgpLmdldCgpLCBFZGl0b3JJbnNlcnRB
Y3Rpb25QYXN0ZWQpKQorICAgIGlmIChjbGllbnQoKSAmJiBjbGllbnQoKS0+c2hvdWxkSW5zZXJ0
VGV4dCh0ZXh0LCBzZWxlY3RlZFJhbmdlKCkuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvbjo6UGFz
dGVkKSkKICAgICAgICAgcGFzdGVBc1BsYWluVGV4dCh0ZXh0LCBjYW5TbWFydFJlcGxhY2VXaXRo
UGFzdGVib2FyZChwYXN0ZWJvYXJkKSk7CiB9CiAKQEAgLTU3NSw3ICs1NzUsNyBAQCBib29sIEVk
aXRvcjo6dHJ5REhUTUxQYXN0ZSgpCiAKIGJvb2wgRWRpdG9yOjpzaG91bGRJbnNlcnRUZXh0KGNv
bnN0IFN0cmluZyYgdGV4dCwgUmFuZ2UqIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb24gYWN0aW9u
KSBjb25zdAogewotICAgIGlmIChtX2ZyYW1lLmxvYWRlcigpLnNob3VsZFN1cHByZXNzS2V5Ym9h
cmRJbnB1dCgpICYmIGFjdGlvbiA9PSBFZGl0b3JJbnNlcnRBY3Rpb25UeXBlZCkKKyAgICBpZiAo
bV9mcmFtZS5sb2FkZXIoKS5zaG91bGRTdXBwcmVzc0tleWJvYXJkSW5wdXQoKSAmJiBhY3Rpb24g
PT0gRWRpdG9ySW5zZXJ0QWN0aW9uOjpUeXBlZCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgcmV0dXJuIGNsaWVudCgpICYmIGNsaWVudCgpLT5zaG91bGRJbnNlcnRUZXh0KHRleHQsIHJh
bmdlLCBhY3Rpb24pOwpAQCAtMTA5MSw3ICsxMDkxLDcgQEAgYm9vbCBFZGl0b3I6Omluc2VydFRl
eHRXaXRob3V0U2VuZGluZ1RleHRFdmVudChjb25zdCBTdHJpbmcmIHRleHQsIGJvb2wgc2VsZWN0
SW4KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzZWxl
Y3Rpb24udG9Ob3JtYWxpemVkUmFuZ2UoKTsKIAotICAgIGlmICghc2hvdWxkSW5zZXJ0VGV4dCh0
ZXh0LCByYW5nZS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uVHlwZWQpKQorICAgIGlmICghc2hv
dWxkSW5zZXJ0VGV4dCh0ZXh0LCByYW5nZS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uOjpUeXBl
ZCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgdXBkYXRlTWFya2Vyc0ZvcldvcmRzQWZm
ZWN0ZWRCeUVkaXRpbmcoaXNTcGFjZU9yTmV3bGluZSh0ZXh0WzBdKSk7CkBAIC0xMTQ4LDcgKzEx
NDgsNyBAQCBib29sIEVkaXRvcjo6aW5zZXJ0TGluZUJyZWFrKCkKICAgICBpZiAoIWNhbkVkaXQo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFzaG91bGRJbnNlcnRUZXh0KCJc
biIsIG1fZnJhbWUuc2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgRWRpdG9y
SW5zZXJ0QWN0aW9uVHlwZWQpKQorICAgIGlmICghc2hvdWxkSW5zZXJ0VGV4dCgiXG4iLCBtX2Zy
YW1lLnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCksIEVkaXRvckluc2VydEFj
dGlvbjo6VHlwZWQpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIFZpc2libGVQb3NpdGlv
biBjYXJldCA9IG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkudmlzaWJsZVN0YXJ0KCk7
CkBAIC0xMTY4LDcgKzExNjgsNyBAQCBib29sIEVkaXRvcjo6aW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yKCkKICAgICBpZiAoIWNhbkVkaXRSaWNobHkoKSkKICAgICAgICAgcmV0dXJuIGluc2VydExp
bmVCcmVhaygpOwogCi0gICAgaWYgKCFzaG91bGRJbnNlcnRUZXh0KCJcbiIsIG1fZnJhbWUuc2Vs
ZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uVHlw
ZWQpKQorICAgIGlmICghc2hvdWxkSW5zZXJ0VGV4dCgiXG4iLCBtX2ZyYW1lLnNlbGVjdGlvbigp
LnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvbjo6VHlwZWQpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIFZpc2libGVQb3NpdGlvbiBjYXJldCA9IG1fZnJh
bWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkudmlzaWJsZVN0YXJ0KCk7CkBAIC0yMjYzLDcgKzIy
NjMsNyBAQCB2b2lkIEVkaXRvcjo6bWFya01pc3NwZWxsaW5nc0FmdGVyVHlwaW5nVG9Xb3JkKGNv
bnN0IFZpc2libGVQb3NpdGlvbiAmd29yZFN0YXJ0LAogICAgICAgICAgICAgbV9mcmFtZS5zZWxl
Y3Rpb24oKS5zZXRTZWxlY3Rpb24obmV3U2VsZWN0aW9uKTsKICAgICAgICAgfQogCi0gICAgICAg
IGlmICghbV9mcmFtZS5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KGF1dG9jb3JyZWN0ZWRTdHJp
bmcsIG1pc3NwZWxsaW5nUmFuZ2UuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvblR5cGVkKSkKKyAg
ICAgICAgaWYgKCFtX2ZyYW1lLmVkaXRvcigpLnNob3VsZEluc2VydFRleHQoYXV0b2NvcnJlY3Rl
ZFN0cmluZywgbWlzc3BlbGxpbmdSYW5nZS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uOjpUeXBl
ZCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1fZnJhbWUuZWRpdG9yKCkucmVwbGFj
ZVNlbGVjdGlvbldpdGhUZXh0KGF1dG9jb3JyZWN0ZWRTdHJpbmcsIGZhbHNlLCBmYWxzZSwgRWRp
dEFjdGlvbkluc2VydCk7CiAKQEAgLTI1NjAsNyArMjU2MCw3IEBAIHZvaWQgRWRpdG9yOjptYXJr
QW5kUmVwbGFjZUZvcihQYXNzUmVmUHRyPFNwZWxsQ2hlY2tSZXF1ZXN0PiByZXF1ZXN0LCBjb25z
dCBWZWN0CiAgICAgICAgICAgICAgICAgcmVzdG9yZVNlbGVjdGlvbkFmdGVyQ2hhbmdlID0gZmFs
c2U7CiAgICAgICAgICAgICAgICAgaWYgKGNhbkVkaXRSaWNobHkoKSkKICAgICAgICAgICAgICAg
ICAgICAgYXBwbHlDb21tYW5kKENyZWF0ZUxpbmtDb21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwg
cmVwbGFjZW1lbnQpKTsKLSAgICAgICAgICAgIH0gZWxzZSBpZiAoY2FuRWRpdCgpICYmIHNob3Vs
ZEluc2VydFRleHQocmVwbGFjZW1lbnQsIHJhbmdlVG9SZXBsYWNlLmdldCgpLCBFZGl0b3JJbnNl
cnRBY3Rpb25UeXBlZCkpIHsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoY2FuRWRpdCgpICYmIHNo
b3VsZEluc2VydFRleHQocmVwbGFjZW1lbnQsIHJhbmdlVG9SZXBsYWNlLmdldCgpLCBFZGl0b3JJ
bnNlcnRBY3Rpb246OlR5cGVkKSkgewogICAgICAgICAgICAgICAgIGNvcnJlY3RTcGVsbGNoZWNr
aW5nUHJlc2VydmluZ1RleHRDaGVja2luZ1BhcmFncmFwaChwYXJhZ3JhcGgsIHJhbmdlVG9SZXBs
YWNlLCByZXBsYWNlbWVudCwgcmVzdWx0TG9jYXRpb24sIHJlc3VsdExlbmd0aCk7CiAKICAgICAg
ICAgICAgICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKSB7CkBAIC0yNjEwLDcgKzI2MTAsNyBAQCB2b2lkIEVkaXRvcjo6Y2hh
bmdlQmFja1RvUmVwbGFjZWRTdHJpbmcoY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZykKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPFJhbmdlPiBzZWxlY3Rpb24gPSBzZWxlY3RlZFJh
bmdlKCk7Ci0gICAgaWYgKCFzaG91bGRJbnNlcnRUZXh0KHJlcGxhY2VkU3RyaW5nLCBzZWxlY3Rp
b24uZ2V0KCksIEVkaXRvckluc2VydEFjdGlvblBhc3RlZCkpCisgICAgaWYgKCFzaG91bGRJbnNl
cnRUZXh0KHJlcGxhY2VkU3RyaW5nLCBzZWxlY3Rpb24uZ2V0KCksIEVkaXRvckluc2VydEFjdGlv
bjo6UGFzdGVkKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIG1fYWx0ZXJuYXRpdmVUZXh0
Q29udHJvbGxlci0+cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZVJldmVyc2VkKHJlcGxhY2Vk
U3RyaW5nLCBzZWxlY3Rpb24pOwpAQCAtMjg1Myw3ICsyODUzLDcgQEAgdm9pZCBFZGl0b3I6OnRy
YW5zcG9zZSgpCiAgICAgfQogCiAgICAgLy8gSW5zZXJ0IHRoZSB0cmFuc3Bvc2VkIGNoYXJhY3Rl
cnMuCi0gICAgaWYgKCFzaG91bGRJbnNlcnRUZXh0KHRyYW5zcG9zZWQsIHJhbmdlLmdldCgpLCBF
ZGl0b3JJbnNlcnRBY3Rpb25UeXBlZCkpCisgICAgaWYgKCFzaG91bGRJbnNlcnRUZXh0KHRyYW5z
cG9zZWQsIHJhbmdlLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OlR5cGVkKSkKICAgICAgICAg
cmV0dXJuOwogICAgIHJlcGxhY2VTZWxlY3Rpb25XaXRoVGV4dCh0cmFuc3Bvc2VkLCBmYWxzZSwg
ZmFsc2UsIEVkaXRBY3Rpb25JbnNlcnQpOwogfQpAQCAtMzYwMSw3ICszNjAxLDcgQEAgdm9pZCBF
ZGl0b3I6OmhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKFRleHRDaGVja2luZ1Jlc3VsdCBhY2NlcHRl
ZENhbmRpZGF0ZSkKICAgICBtX2lzSGFuZGxpbmdBY2NlcHRlZENhbmRpZGF0ZSA9IHRydWU7CiAK
ICAgICBpZiAoYXV0byByYW5nZSA9IHJhbmdlRm9yVGV4dENoZWNraW5nUmVzdWx0KGFjY2VwdGVk
Q2FuZGlkYXRlKSkgewotICAgICAgICBpZiAoc2hvdWxkSW5zZXJ0VGV4dChhY2NlcHRlZENhbmRp
ZGF0ZS5yZXBsYWNlbWVudCwgcmFuZ2UuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvblR5cGVkKSkg
eworICAgICAgICBpZiAoc2hvdWxkSW5zZXJ0VGV4dChhY2NlcHRlZENhbmRpZGF0ZS5yZXBsYWNl
bWVudCwgcmFuZ2UuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvbjo6VHlwZWQpKSB7CiAgICAgICAg
ICAgICBSZWY8UmVwbGFjZVJhbmdlV2l0aFRleHRDb21tYW5kPiByZXBsYWNlQ29tbWFuZCA9IFJl
cGxhY2VSYW5nZVdpdGhUZXh0Q29tbWFuZDo6Y3JlYXRlKHJhbmdlLmdldCgpLCBhY2NlcHRlZENh
bmRpZGF0ZS5yZXBsYWNlbWVudCk7CiAgICAgICAgICAgICBhcHBseUNvbW1hbmQocmVwbGFjZUNv
bW1hbmQucHRyKCkpOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvckluc2VydEFjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JJ
bnNlcnRBY3Rpb24uaAppbmRleCA2Nzc2NDliMjBlOWZjYjQyNjljZjRmNmRhMjA1NTVkZWZhNTJi
NjM2Li5mMzI1NTFlMjVjYzU5NTIwZmZkMWMwZTU3NTgzNjcxYmZiYmNjODJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckluc2VydEFjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9ySW5zZXJ0QWN0aW9uLmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDExICsyNywxMCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIFRoaXMgbXVzdCBiZSBrZXB0IGluIHN5bmMgd2l0
aCBXZWJWaWV3SW5zZXJ0QWN0aW9uIGRlZmluZWQgaW4gV2ViRWRpdGluZ0RlbGVnYXRlLmgKLWVu
dW0gRWRpdG9ySW5zZXJ0QWN0aW9uIHsKLSAgICBFZGl0b3JJbnNlcnRBY3Rpb25UeXBlZCwKLSAg
ICBFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQsCi0gICAgRWRpdG9ySW5zZXJ0QWN0aW9uRHJvcHBl
ZAorZW51bSBjbGFzcyBFZGl0b3JJbnNlcnRBY3Rpb24geworICAgIFR5cGVkLAorICAgIFBhc3Rl
ZCwKKyAgICBEcm9wcGVkLAogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9ndGsvRWRpdG9yR3RrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvZ3RrL0VkaXRvckd0ay5jcHAKaW5kZXggMzIwMjgxNDY4NGY4OTdhZDY5NTI3
ZDBkNWRlZmFkY2JkYTg2ZDBmYy4uZWZjMDRlNzYxZTIxMjhlMDM0MDVmOGI3OTIwNzJlOTAwY2Q1
OGRlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9ndGsvRWRpdG9yR3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9FZGl0b3JHdGsuY3BwCkBAIC03Niw3
ICs3Niw3IEBAIHZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJvYXJkKFBhc3RlYm9hcmQqIHBh
c3RlYm9hcmQsIGJvb2wgYWxsb3dQbGFpblRleHQsIE1hCiAKICAgICBib29sIGNob3NlUGxhaW5U
ZXh0OwogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdt
ZW50RnJvbVBhc3RlYm9hcmREYXRhKCpwYXN0ZWJvYXJkLCBtX2ZyYW1lLCAqcmFuZ2UsIGFsbG93
UGxhaW5UZXh0LCBjaG9zZVBsYWluVGV4dCk7Ci0gICAgaWYgKGZyYWdtZW50ICYmIHNob3VsZElu
c2VydEZyYWdtZW50KGZyYWdtZW50LCByYW5nZSwgRWRpdG9ySW5zZXJ0QWN0aW9uUGFzdGVkKSkK
KyAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxkSW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdl
LCBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3RlZCkpCiAgICAgICAgIHBhc3RlQXNGcmFnbWVudChm
cmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBjYW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZCgq
cGFzdGVib2FyZCksIGNob3NlUGxhaW5UZXh0LCBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9pb3MvRWRpdG9ySU9TLm1tCmluZGV4IDdmNWM0MjJjMDBm
OWViMzg1Zjk0ZWU0YmJiMmYxYjIzMzlhZTZlMTAuLmM1ZThjMjkxMjRiZjA3YmE5NmNlNTRjMjdl
Y2I4YmNmZjdiNTY0N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaW9zL0Vk
aXRvcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2lvcy9FZGl0b3JJT1MubW0K
QEAgLTUzMCw3ICs1MzAsNyBAQCB2b2lkIEVkaXRvcjo6cGFzdGVXaXRoUGFzdGVib2FyZChQYXN0
ZWJvYXJkKiBwYXN0ZWJvYXJkLCBib29sIGFsbG93UGxhaW5UZXh0LCBNYQogICAgICAgICBmcmFn
bWVudCA9IHdlYkNvbnRlbnRGcm9tUGFzdGVib2FyZCgqcGFzdGVib2FyZCwgKnJhbmdlLCBhbGxv
d1BsYWluVGV4dCwgY2hvc2VQbGFpblRleHRJZ25vcmVkKTsKICAgICB9CiAKLSAgICBpZiAoZnJh
Z21lbnQgJiYgc2hvdWxkSW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNl
cnRBY3Rpb25QYXN0ZWQpKQorICAgIGlmIChmcmFnbWVudCAmJiBzaG91bGRJbnNlcnRGcmFnbWVu
dChmcmFnbWVudCwgcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvbjo6UGFzdGVkKSkKICAgICAgICAg
cGFzdGVBc0ZyYWdtZW50KGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGNhblNtYXJ0UmVwbGFj
ZVdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgZmFsc2UsIG1haWxCbG9ja3F1b3RlSGFuZGxp
bmcpOwogfQogCkBAIC01OTYsMTEgKzU5NiwxMSBAQCB2b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVj
dGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmlidXRlZFN0cmluZyAqYXR0cmlidXRlZAog
CiAgICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuc2VsZWN0aW9uKCkuaXNDb250ZW50UmljaGx5
RWRpdGFibGUoKSkgewogICAgICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQg
PSBjcmVhdGVGcmFnbWVudEFuZEFkZFJlc291cmNlcyhhdHRyaWJ1dGVkU3RyaW5nKTsKLSAgICAg
ICAgaWYgKGZyYWdtZW50ICYmIHNob3VsZEluc2VydEZyYWdtZW50KGZyYWdtZW50LCBzZWxlY3Rl
ZFJhbmdlKCksIEVkaXRvckluc2VydEFjdGlvblBhc3RlZCkpCisgICAgICAgIGlmIChmcmFnbWVu
dCAmJiBzaG91bGRJbnNlcnRGcmFnbWVudChmcmFnbWVudCwgc2VsZWN0ZWRSYW5nZSgpLCBFZGl0
b3JJbnNlcnRBY3Rpb246OlBhc3RlZCkpCiAgICAgICAgICAgICBwYXN0ZUFzRnJhZ21lbnQoZnJh
Z21lbnQucmVsZWFzZU5vbk51bGwoKSwgZmFsc2UsIGZhbHNlLCBtYWlsQmxvY2txdW90ZUhhbmRs
aW5nKTsKICAgICB9IGVsc2UgewogICAgICAgICBTdHJpbmcgdGV4dCA9IFthdHRyaWJ1dGVkU3Ry
aW5nIHN0cmluZ107Ci0gICAgICAgIGlmIChzaG91bGRJbnNlcnRUZXh0KHRleHQsIHNlbGVjdGVk
UmFuZ2UoKS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uUGFzdGVkKSkKKyAgICAgICAgaWYgKHNo
b3VsZEluc2VydFRleHQodGV4dCwgc2VsZWN0ZWRSYW5nZSgpLmdldCgpLCBFZGl0b3JJbnNlcnRB
Y3Rpb246OlBhc3RlZCkpCiAgICAgICAgICAgICBwYXN0ZUFzUGxhaW5UZXh0KHRleHQsIGZhbHNl
KTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0
b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hYy9FZGl0b3JNYWMubW0KaW5kZXgg
MmJjMDM0NmRjMmNjYTU2MTgyZDcyNDQ0NzFmMTQ3M2IyMDM2ZjMyZC4uYjU0YmJkMTdlN2YwOGZl
NmVhZjA5OTdlNzg3M2U1ZjVhY2RkMjMxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYWMvRWRpdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFjL0Vk
aXRvck1hYy5tbQpAQCAtOTksNyArOTksNyBAQCB2b2lkIEVkaXRvcjo6cGFzdGVXaXRoUGFzdGVi
b2FyZChQYXN0ZWJvYXJkKiBwYXN0ZWJvYXJkLCBib29sIGFsbG93UGxhaW5UZXh0LCBNYQogICAg
IGJvb2wgY2hvc2VQbGFpblRleHQ7CiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdt
ZW50ID0gd2ViQ29udGVudEZyb21QYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkLCAqcmFuZ2UsIGFsbG93
UGxhaW5UZXh0LCBjaG9zZVBsYWluVGV4dCk7CiAKLSAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxk
SW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQp
KQorICAgIGlmIChmcmFnbWVudCAmJiBzaG91bGRJbnNlcnRGcmFnbWVudChmcmFnbWVudCwgcmFu
Z2UsIEVkaXRvckluc2VydEFjdGlvbjo6UGFzdGVkKSkKICAgICAgICAgcGFzdGVBc0ZyYWdtZW50
KGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJk
KCpwYXN0ZWJvYXJkKSwgZmFsc2UsIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpOwogCiAgICAgY2xp
ZW50KCktPnNldEluc2VydGlvblBhc3RlYm9hcmQoU3RyaW5nKCkpOwpAQCAtMjc5LDcgKzI3OSw3
IEBAIHZvaWQgRWRpdG9yOjpyZXBsYWNlTm9kZUZyb21QYXN0ZWJvYXJkKE5vZGUqIG5vZGUsIGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiAgICAgYm9vbCBjaG9zZVBsYWluVGV4dDsKICAg
ICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gd2ViQ29udGVudEZyb21Q
YXN0ZWJvYXJkKHBhc3RlYm9hcmQsICpyYW5nZSwgdHJ1ZSwgY2hvc2VQbGFpblRleHQpKSB7CiAg
ICAgICAgIG1heWJlQ29weU5vZGVBdHRyaWJ1dGVzVG9GcmFnbWVudCgqbm9kZSwgKmZyYWdtZW50
KTsKLSAgICAgICAgaWYgKHNob3VsZEluc2VydEZyYWdtZW50KGZyYWdtZW50LCByYW5nZSwgRWRp
dG9ySW5zZXJ0QWN0aW9uUGFzdGVkKSkKKyAgICAgICAgaWYgKHNob3VsZEluc2VydEZyYWdtZW50
KGZyYWdtZW50LCByYW5nZSwgRWRpdG9ySW5zZXJ0QWN0aW9uOjpQYXN0ZWQpKQogICAgICAgICAg
ICAgcGFzdGVBc0ZyYWdtZW50KGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGNhblNtYXJ0UmVw
bGFjZVdpdGhQYXN0ZWJvYXJkKHBhc3RlYm9hcmQpLCBmYWxzZSwgTWFpbEJsb2NrcXVvdGVIYW5k
bGluZzo6SWdub3JlQmxvY2txdW90ZSk7CiAgICAgfQogCkBAIC03MjQsMTEgKzcyNCwxMSBAQCB2
b2lkIEVkaXRvcjo6cmVwbGFjZVNlbGVjdGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmli
dXRlZFN0cmluZyAqYXR0cmlidXRlZAogCiAgICAgaWYgKG1fZnJhbWUuc2VsZWN0aW9uKCkuc2Vs
ZWN0aW9uKCkuaXNDb250ZW50UmljaGx5RWRpdGFibGUoKSkgewogICAgICAgICBSZWZQdHI8RG9j
dW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEFuZEFkZFJlc291cmNlcyhh
dHRyaWJ1dGVkU3RyaW5nKTsKLSAgICAgICAgaWYgKGZyYWdtZW50ICYmIHNob3VsZEluc2VydEZy
YWdtZW50KGZyYWdtZW50LCBzZWxlY3RlZFJhbmdlKCksIEVkaXRvckluc2VydEFjdGlvblBhc3Rl
ZCkpCisgICAgICAgIGlmIChmcmFnbWVudCAmJiBzaG91bGRJbnNlcnRGcmFnbWVudChmcmFnbWVu
dCwgc2VsZWN0ZWRSYW5nZSgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3RlZCkpCiAgICAgICAg
ICAgICBwYXN0ZUFzRnJhZ21lbnQoZnJhZ21lbnQucmVsZWFzZU5vbk51bGwoKSwgZmFsc2UsIGZh
bHNlLCBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKTsKICAgICB9IGVsc2UgewogICAgICAgICBTdHJp
bmcgdGV4dCA9IFthdHRyaWJ1dGVkU3RyaW5nIHN0cmluZ107Ci0gICAgICAgIGlmIChzaG91bGRJ
bnNlcnRUZXh0KHRleHQsIHNlbGVjdGVkUmFuZ2UoKS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9u
UGFzdGVkKSkKKyAgICAgICAgaWYgKHNob3VsZEluc2VydFRleHQodGV4dCwgc2VsZWN0ZWRSYW5n
ZSgpLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3RlZCkpCiAgICAgICAgICAgICBwYXN0
ZUFzUGxhaW5UZXh0KHRleHQsIGZhbHNlKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy93aW4vRWRpdG9yV2luLmNwcAppbmRleCBkZjBmMjM1OWM5NDMxODBjN2I0MjFlNDczM2E1M2Fj
YTliYjA1MDEyLi44Yjc5OTQ3N2ViZGU4MDkzMDNkZGEzNTJjNDczMTY5MDVmNjQ4YWJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3dpbi9FZGl0b3JXaW4uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvd2luL0VkaXRvcldpbi5jcHAKQEAgLTQzLDcgKzQzLDcgQEAg
dm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVib2FyZCwg
Ym9vbCBhbGxvd1BsYWluVGV4dCwgTWEKIAogICAgIGJvb2wgY2hvc2VQbGFpblRleHQ7CiAgICAg
UmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gcGFzdGVib2FyZC0+ZG9jdW1lbnRG
cmFnbWVudChtX2ZyYW1lLCAqcmFuZ2UsIGFsbG93UGxhaW5UZXh0LCBjaG9zZVBsYWluVGV4dCk7
Ci0gICAgaWYgKGZyYWdtZW50ICYmIHNob3VsZEluc2VydEZyYWdtZW50KGZyYWdtZW50LCByYW5n
ZSwgRWRpdG9ySW5zZXJ0QWN0aW9uUGFzdGVkKSkKKyAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxk
SW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3Rl
ZCkpCiAgICAgICAgIHBhc3RlQXNGcmFnbWVudChmcmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBj
YW5TbWFydFJlcGxhY2VXaXRoUGFzdGVib2FyZCgqcGFzdGVib2FyZCksIGNob3NlUGxhaW5UZXh0
LCBtYWlsQmxvY2txdW90ZUhhbmRsaW5nKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IDg4ZjUyYTc2MmVmNDMwM2ZjYTQxN2M4ZDg4
NGJiOGIzNjliMTY4MmYuLjY2MDQ1N2MxY2M0NWQ2ZTE4YTdiNGRhNmM3ZTJjNDQ1OGRmZTViNWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMDcsIDIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxp
YSBTLkwKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTIwMiw3ICsyMDIsNyBAQCBzdGF0aWMgdm9pZCBv
cGVuTmV3V2luZG93KGNvbnN0IFVSTCYgdXJsVG9Mb2FkLCBGcmFtZSogZnJhbWUsIFNob3VsZE9w
ZW5FeHRlcm5hbAogc3RhdGljIHZvaWQgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihVQ2hhciBjaGFy
YWN0ZXIsIEZyYW1lKiBmcmFtZSkKIHsKICAgICBTdHJpbmcgdGV4dCgmY2hhcmFjdGVyLCAxKTsK
LSAgICBpZiAoIWZyYW1lLT5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KHRleHQsIGZyYW1lLT5z
ZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb25U
eXBlZCkpCisgICAgaWYgKCFmcmFtZS0+ZWRpdG9yKCkuc2hvdWxkSW5zZXJ0VGV4dCh0ZXh0LCBm
cmFtZS0+c2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgRWRpdG9ySW5zZXJ0
QWN0aW9uOjpUeXBlZCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChmcmFtZS0+ZG9j
dW1lbnQoKSk7CkBAIC0zNTYsNyArMzU2LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6
OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KICNl
bmRpZgogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdHdWVzczogewogICAgICAg
ICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbiA9IGZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rp
b24oKTsKLSAgICAgICAgaWYgKGZyYW1lLT5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KHRpdGxl
LCBzZWxlY3Rpb24udG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9u
UGFzdGVkKSkgeworICAgICAgICBpZiAoZnJhbWUtPmVkaXRvcigpLnNob3VsZEluc2VydFRleHQo
dGl0bGUsIHNlbGVjdGlvbi50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpLCBFZGl0b3JJbnNlcnRB
Y3Rpb246OlBhc3RlZCkpIHsKICAgICAgICAgICAgIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpD
b21tYW5kT3B0aW9ucyByZXBsYWNlT3B0aW9ucyA9IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpN
YXRjaFN0eWxlIHwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlByZXZlbnROZXN0aW5nOwogCiAg
ICAgICAgICAgICBpZiAoZnJhbWUtPmVkaXRvcigpLmJlaGF2aW9yKCkuc2hvdWxkQWxsb3dTcGVs
bGluZ1N1Z2dlc3Rpb25zV2l0aG91dFNlbGVjdGlvbigpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwCmluZGV4IGI4MjI2NzI4ZDVjNmJlZTcwODY5MTBiNjVlMDEyZmVkOTJi
MzAzNDEuLjdiYmJkYTQyYWZjNGFhOTI4ZDZjOTFiMzI5MmU3ZTBjYTA4MmViN2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNywgMjAwOS0yMDEwLCAyMDEzLCAyMDE1LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC01MTQsNyArNTE0LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyhj
b25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgaWYgKGRyYWdJc01vdmUoaW5uZXJGcmFtZS0+
c2VsZWN0aW9uKCksIGRyYWdEYXRhKSB8fCBkcmFnQ2FyZXQuaXNDb250ZW50UmljaGx5RWRpdGFi
bGUoKSkgewogICAgICAgICBib29sIGNob3NlUGxhaW5UZXh0ID0gZmFsc2U7CiAgICAgICAgIFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGRvY3VtZW50RnJhZ21lbnRGcm9tRHJh
Z0RhdGEoZHJhZ0RhdGEsICppbm5lckZyYW1lLCAqcmFuZ2UsIHRydWUsIGNob3NlUGxhaW5UZXh0
KTsKLSAgICAgICAgaWYgKCFmcmFnbWVudCB8fCAhaW5uZXJGcmFtZS0+ZWRpdG9yKCkuc2hvdWxk
SW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdlLCBFZGl0b3JJbnNlcnRBY3Rpb25Ecm9wcGVk
KSkgeworICAgICAgICBpZiAoIWZyYWdtZW50IHx8ICFpbm5lckZyYW1lLT5lZGl0b3IoKS5zaG91
bGRJbnNlcnRGcmFnbWVudChmcmFnbWVudCwgcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvbjo6RHJv
cHBlZCkpIHsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCkBAIC01Mzcs
NyArNTM3LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyhjb25zdCBE
cmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBTdHJp
bmcgdGV4dCA9IGRyYWdEYXRhLmFzUGxhaW5UZXh0KCk7Ci0gICAgICAgIGlmICh0ZXh0LmlzRW1w
dHkoKSB8fCAhaW5uZXJGcmFtZS0+ZWRpdG9yKCkuc2hvdWxkSW5zZXJ0VGV4dCh0ZXh0LCByYW5n
ZS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uRHJvcHBlZCkpIHsKKyAgICAgICAgaWYgKHRleHQu
aXNFbXB0eSgpIHx8ICFpbm5lckZyYW1lLT5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KHRleHQs
IHJhbmdlLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OkRyb3BwZWQpKSB7CiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDJhMmM1YmJkOTcwZGNjYzRh
MzA3ZTc2OGU5MTZhZDRjZTQxNDg5YmQuLmQ4NmYzOGNjMzFhYTVjOTA3MjI5NGVhMTg4YzhiMjY0
ODdiMWNiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW0KQEAgLTEwMiw5ICsxMDIsMTYgQEAgQGludGVyZmFjZSBOU0F0dHJp
YnV0ZWRTdHJpbmcgKFdlYk5TQXR0cmlidXRlZFN0cmluZ0RldGFpbHMpCiAtIChET01Eb2N1bWVu
dEZyYWdtZW50ICopX2RvY3VtZW50RnJvbVJhbmdlOihOU1JhbmdlKXJhbmdlIGRvY3VtZW50OihE
T01Eb2N1bWVudCAqKWRvY3VtZW50IGRvY3VtZW50QXR0cmlidXRlczooTlNEaWN0aW9uYXJ5ICop
YXR0cmlidXRlcyBzdWJyZXNvdXJjZXM6KE5TQXJyYXkgKiopc3VicmVzb3VyY2VzOwogQGVuZAog
Ci1zdGF0aWMgV2ViVmlld0luc2VydEFjdGlvbiBraXQoRWRpdG9ySW5zZXJ0QWN0aW9uIGNvcmVB
Y3Rpb24pCi17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYlZpZXdJbnNlcnRBY3Rpb24+KGNv
cmVBY3Rpb24pOworc3RhdGljIFdlYlZpZXdJbnNlcnRBY3Rpb24ga2l0KEVkaXRvckluc2VydEFj
dGlvbiBhY3Rpb24pCit7CisgICAgc3dpdGNoIChhY3Rpb24pIHsKKyAgICBjYXNlIEVkaXRvcklu
c2VydEFjdGlvbjo6VHlwZWQ6CisgICAgICAgIHJldHVybiBXZWJWaWV3SW5zZXJ0QWN0aW9uVHlw
ZWQ7CisgICAgY2FzZSBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3RlZDoKKyAgICAgICAgcmV0dXJu
IFdlYlZpZXdJbnNlcnRBY3Rpb25QYXN0ZWQ7CisgICAgY2FzZSBFZGl0b3JJbnNlcnRBY3Rpb246
OkRyb3BwZWQ6CisgICAgICAgIHJldHVybiBXZWJWaWV3SW5zZXJ0QWN0aW9uRHJvcHBlZDsKKyAg
ICB9CiB9CiAKIEBpbnRlcmZhY2UgV2ViVW5kb1N0ZXAgOiBOU09iamVjdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXgg
ZjhiOTA4ZGNiYWIxODI2NzRlZTIyMzlmMjFjNGMzZmFmMzBmYThmYy4uZmIyMzQyN2QxYmNlMDkz
Yjk5YzEwYWNjZjliN2Q5YzdmZTc0Njk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0yODQsNiArMjg0LDIxIEBA
IGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGREZWxldGVSYW5nZShSYW5nZSogcmFuZ2UpCiAg
ICAgcmV0dXJuIHNob3VsZERlbGV0ZTsKIH0KIAorc3RhdGljIFdlYlZpZXdJbnNlcnRBY3Rpb24g
a2l0KEVkaXRvckluc2VydEFjdGlvbiBhY3Rpb24pCit7CisgICAgc3dpdGNoIChhY3Rpb24pIHsK
KyAgICBjYXNlIEVkaXRvckluc2VydEFjdGlvbjo6VHlwZWQ6CisgICAgICAgIHJldHVybiBXZWJW
aWV3SW5zZXJ0QWN0aW9uVHlwZWQ7CisgICAgY2FzZSBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3Rl
ZDoKKyAgICAgICAgcmV0dXJuIFdlYlZpZXdJbnNlcnRBY3Rpb25QYXN0ZWQ7CisgICAgY2FzZSBF
ZGl0b3JJbnNlcnRBY3Rpb246OkRyb3BwZWQ6CisgICAgICAgIHJldHVybiBXZWJWaWV3SW5zZXJ0
QWN0aW9uRHJvcHBlZDsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gV2ViVmlld0luc2VydEFjdGlvblR5cGVkOworfQorCiBib29sIFdlYkVkaXRvckNsaWVu
dDo6c2hvdWxkSW5zZXJ0Tm9kZShOb2RlKiBub2RlLCBSYW5nZSogaW5zZXJ0aW5nUmFuZ2UsIEVk
aXRvckluc2VydEFjdGlvbiBnaXZlbkFjdGlvbikKIHsgCiAgICAgQ09NUHRyPElXZWJFZGl0aW5n
RGVsZWdhdGU+IGVkaXRpbmdEZWxlZ2F0ZTsKQEAgLTMwMSw3ICszMTYsNyBAQCBib29sIFdlYkVk
aXRvckNsaWVudDo6c2hvdWxkSW5zZXJ0Tm9kZShOb2RlKiBub2RlLCBSYW5nZSogaW5zZXJ0aW5n
UmFuZ2UsIEVkaXRvcgogICAgIEJPT0wgc2hvdWxkSW5zZXJ0ID0gRkFMU0U7CiAgICAgQ09NUHRy
PElXZWJFZGl0aW5nRGVsZWdhdGUyPiBlZGl0aW5nRGVsZWdhdGUyKFF1ZXJ5LCBlZGl0aW5nRGVs
ZWdhdGUpOwogICAgIGlmIChlZGl0aW5nRGVsZWdhdGUyKSB7Ci0gICAgICAgIGlmIChGQUlMRUQo
ZWRpdGluZ0RlbGVnYXRlMi0+c2hvdWxkSW5zZXJ0Tm9kZShtX3dlYlZpZXcsIGluc2VydERPTU5v
ZGUuZ2V0KCksIGluc2VydGluZ0RPTVJhbmdlLmdldCgpLCBzdGF0aWNfY2FzdDxXZWJWaWV3SW5z
ZXJ0QWN0aW9uPihnaXZlbkFjdGlvbiksICZzaG91bGRJbnNlcnQpKSkKKyAgICAgICAgaWYgKEZB
SUxFRChlZGl0aW5nRGVsZWdhdGUyLT5zaG91bGRJbnNlcnROb2RlKG1fd2ViVmlldywgaW5zZXJ0
RE9NTm9kZS5nZXQoKSwgaW5zZXJ0aW5nRE9NUmFuZ2UuZ2V0KCksIGtpdChnaXZlbkFjdGlvbiks
ICZzaG91bGRJbnNlcnQpKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAt
MzIwLDcgKzMzNSw3IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRJbnNlcnRUZXh0KGNv
bnN0IFN0cmluZyYgc3RyLCBSYW5nZSogaW5zZXJ0aW5nUmFuZ2UsCiAKICAgICBCU3RyaW5nIHRl
eHQoc3RyKTsKICAgICBCT09MIHNob3VsZEluc2VydCA9IEZBTFNFOwotICAgIGlmIChGQUlMRUQo
ZWRpdGluZ0RlbGVnYXRlLT5zaG91bGRJbnNlcnRUZXh0KG1fd2ViVmlldywgdGV4dCwgaW5zZXJ0
aW5nRE9NUmFuZ2UuZ2V0KCksIHN0YXRpY19jYXN0PFdlYlZpZXdJbnNlcnRBY3Rpb24+KGdpdmVu
QWN0aW9uKSwgJnNob3VsZEluc2VydCkpKQorICAgIGlmIChGQUlMRUQoZWRpdGluZ0RlbGVnYXRl
LT5zaG91bGRJbnNlcnRUZXh0KG1fd2ViVmlldywgdGV4dCwgaW5zZXJ0aW5nRE9NUmFuZ2UuZ2V0
KCksIGtpdChnaXZlbkFjdGlvbiksICZzaG91bGRJbnNlcnQpKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKICAgICByZXR1cm4gc2hvdWxkSW5zZXJ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUFQSUNhc3QuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVBUElD
YXN0LmgKaW5kZXggOWVkODg4NTM2M2RkZjJkM2VmMTVhNjFmOTY2MmU3ZGQwNmUyZGU5Ny4uYTE2
NTAzOGViZWFhODYyYWI5YTNlNDE1M2IyNWVhNjQxNmUxYTM1MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUFQSUNhc3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlQVBJQ2FzdC5oCkBAIC0yMyw4ICsyMyw3IEBACiAgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBXS0J1bmRsZUFQSUNhc3RfaAotI2RlZmluZSBX
S0J1bmRsZUFQSUNhc3RfaAorI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJXS1NoYXJlZEFQSUNh
c3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZVBhZ2UuaCIKQEAgLTc0LDExICs3MywxMSBAQCBXS19B
RERfQVBJX01BUFBJTkcoV0tCdW5kbGVTY3JpcHRXb3JsZFJlZiwgSW5qZWN0ZWRCdW5kbGVTY3Jp
cHRXb3JsZCkKIGlubGluZSBXS0luc2VydEFjdGlvblR5cGUgdG9BUEkoV2ViQ29yZTo6RWRpdG9y
SW5zZXJ0QWN0aW9uIGFjdGlvbikKIHsKICAgICBzd2l0Y2ggKGFjdGlvbikgewotICAgIGNhc2Ug
V2ViQ29yZTo6RWRpdG9ySW5zZXJ0QWN0aW9uVHlwZWQ6CisgICAgY2FzZSBXZWJDb3JlOjpFZGl0
b3JJbnNlcnRBY3Rpb246OlR5cGVkOgogICAgICAgICByZXR1cm4ga1dLSW5zZXJ0QWN0aW9uVHlw
ZWQ7Ci0gICAgY2FzZSBXZWJDb3JlOjpFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQ6CisgICAgY2Fz
ZSBXZWJDb3JlOjpFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3RlZDoKICAgICAgICAgcmV0dXJuIGtX
S0luc2VydEFjdGlvblBhc3RlZDsKLSAgICBjYXNlIFdlYkNvcmU6OkVkaXRvckluc2VydEFjdGlv
bkRyb3BwZWQ6CisgICAgY2FzZSBXZWJDb3JlOjpFZGl0b3JJbnNlcnRBY3Rpb246OkRyb3BwZWQ6
CiAgICAgICAgIHJldHVybiBrV0tJbnNlcnRBY3Rpb25Ecm9wcGVkOwogICAgIH0KICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKQEAgLTk4LDUgKzk3LDMgQEAgaW5saW5lIFdLQWZmaW5pdHlUeXBl
IHRvQVBJKFdlYkNvcmU6OkVBZmZpbml0eSBhZmZpbml0eSkKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0Ci0KLSNlbmRpZiAvLyBXS0J1bmRsZUFQSUNhc3RfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4
dENvbnRyb2xsZXIubW0KaW5kZXggNWM1NDhjYWQ1N2NhNjg2Y2Q3Y2ViNTUzYjFlOTI1NWNhMDAw
ZTQzMy4uMDNiYTlmZTZhNjY5MGFjYmIwN2YzY2Y3YTY4OTVmZTcwODBkMDJkZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2Vi
UHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0lu
QnJvd3NlckNvbnRleHRDb250cm9sbGVyLm1tCkBAIC01NzYsMTEgKzU3NiwxMSBAQCAtIChpZCA8
V0tXZWJQcm9jZXNzUGx1Z0luRWRpdGluZ0RlbGVnYXRlPilfZWRpdGluZ0RlbGVnYXRlCiBzdGF0
aWMgaW5saW5lIFdLRWRpdG9ySW5zZXJ0QWN0aW9uIHRvV0soRWRpdG9ySW5zZXJ0QWN0aW9uIGFj
dGlvbikKIHsKICAgICBzd2l0Y2ggKGFjdGlvbikgewotICAgIGNhc2UgRWRpdG9ySW5zZXJ0QWN0
aW9uVHlwZWQ6CisgICAgY2FzZSBFZGl0b3JJbnNlcnRBY3Rpb246OlR5cGVkOgogICAgICAgICBy
ZXR1cm4gV0tFZGl0b3JJbnNlcnRBY3Rpb25UeXBlZDsKLSAgICBjYXNlIEVkaXRvckluc2VydEFj
dGlvblBhc3RlZDoKKyAgICBjYXNlIEVkaXRvckluc2VydEFjdGlvbjo6UGFzdGVkOgogICAgICAg
ICByZXR1cm4gV0tFZGl0b3JJbnNlcnRBY3Rpb25QYXN0ZWQ7Ci0gICAgY2FzZSBFZGl0b3JJbnNl
cnRBY3Rpb25Ecm9wcGVkOgorICAgIGNhc2UgRWRpdG9ySW5zZXJ0QWN0aW9uOjpEcm9wcGVkOgog
ICAgICAgICByZXR1cm4gV0tFZGl0b3JJbnNlcnRBY3Rpb25Ecm9wcGVkOwogICAgIH0KIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>