<?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>129592</bug_id>
          
          <creation_ts>2014-03-02 17:16:18 -0800</creation_ts>
          <short_desc>Streamline use of TextIterator, cutting down includes and use of soon-to-be-deleted functions</short_desc>
          <delta_ts>2014-03-02 18:24:57 -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>Text</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>986211</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-02 17:16:18 -0800</bug_when>
    <thetext>Streamline use of TextIterator, cutting down includes and use of soon-to-be-deleted functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986216</commentid>
    <comment_count>1</comment_count>
      <attachid>225618</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-02 17:29:11 -0800</bug_when>
    <thetext>Created attachment 225618
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986228</commentid>
    <comment_count>2</comment_count>
      <attachid>225622</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-02 18:10:28 -0800</bug_when>
    <thetext>Created attachment 225622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986232</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-02 18:14:40 -0800</bug_when>
    <thetext>I’ll wait for EWS to build this successfully on GTK-WK2 and Windows before I land it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>986233</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-02 18:24:57 -0800</bug_when>
    <thetext>Committed r164964: &lt;http://trac.webkit.org/changeset/164964&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225618</attachid>
            <date>2014-03-02 17:29:11 -0800</date>
            <delta_ts>2014-03-02 17:58:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129592-20140302172910.patch</filename>
            <type>text/plain</type>
            <size>32527</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0OTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTI1YTUwYzY2ZmRhOWQw
OTZiZDYzMmUxN2M0MDdhMzE5YTkwMzA0ZC4uYjIxMmE2MTI1NmIxN2IyNGZmOWI3Y2EwZjllNDFm
ZjcyYTRjMTMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDkzIEBACiAyMDE0LTAzLTAyICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAorICAgICAgICBTdHJlYW1saW5lIHVzZSBvZiBU
ZXh0SXRlcmF0b3IsIGN1dHRpbmcgZG93biBpbmNsdWRlcyBhbmQgdXNlIG9mIHNvb24tdG8tYmUt
ZGVsZXRlZCBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyOTU5MgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46IFJlLXNvcnRlZCB0
aGlzIGZpbGUuIE5vdCBzdXJlIGhvdyBpdCBnb3QgdW5zb3J0ZWQuCisKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5nRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UpOiBDYWxsIFRl
eHRJdGVyYXRvcjo6dGV4dAorICAgICAgICBpbnN0ZWFkIG9mIFRleHRJdGVyYXRvcjo6bGVuZ3Ro
LiBBbHNvIHJlbW92ZWQgdW5uZWVkZWQgc3BlY2lhbCBjYXNlIGZvciBlbXB0eSBzdHJpbmcKKyAg
ICAgICAgYW5kIGV4Y2VwdGlvbiBjb2RlLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6bGVuZ3RoRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UpOiBEaXR0by4KKworICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOiBJbmNsdWRlIFRleHRJdGVy
YXRvckJlaGF2aW9yLmggaW5zdGVhZCBvZgorICAgICAgICBUZXh0SXRlcmF0b3IuaC4KKworICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6IEluY2x1
ZGUgVGV4dEl0ZXJhdG9yLmguCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW06IFJlbW92ZWQgdW5uZWVkZWQKKyAgICAgICAg
VGV4dEl0ZXJhdG9yLmggaW5jbHVkZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAoLVtXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciBkb0FYQXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5n
ZTpdKTogQ2FsbAorICAgICAgICBUZXh0SXRlcmF0b3I6OnRleHQgaW5zdGVhZCBvZiBUZXh0SXRl
cmF0b3I6Omxlbmd0aC4KKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDogSW5jbHVkZSBUZXh0
SXRlcmF0b3IuaC4KKworICAgICAgICAqIGRvbS9Ob2RlLmNwcDogSW5jbHVkZSBSYW5nZS5oLgor
CisgICAgICAgICogZG9tL1Bvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9u
Ojppc0NhbmRpZGF0ZSk6IENhc3QgdG8gUmVuZGVyQmxvY2tGbG93IHNpbmNlIHRoYXQncyB3aGF0
IHRoZQorICAgICAgICB0eXBlIGNoZWNrIGFib3ZlIGRvZXMuIFVzZSBhIHJldHVybiBzdGF0ZW1l
bnQgaW5zdGVhZCBvZiBhbiBlbHNlIGZvciBiZXR0ZXIgZmxvdy4KKyAgICAgICAgKFdlYkNvcmU6
OlBvc2l0aW9uOjpsZWFkaW5nV2hpdGVzcGFjZVBvc2l0aW9uKTogQ2FsbAorICAgICAgICBkZXBy
ZWNhdGVkSXNDb2xsYXBzaWJsZVdoaXRlc3BhY2UgYnkgaXRzIG5ldyBuYW1lIChuZXdseSBkZXBy
ZWNhdGVkKS4KKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjp0cmFpbGluZ1doaXRlc3BhY2VQ
b3NpdGlvbik6IERpdHRvLgorCisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpmaXJzdE5vZGUpOiBBZGRlZCBhIEZJWE1FIGFib3V0IGNvZGUgdGhhdCBj
bGVhcmx5IGRvZXMgbm90CisgICAgICAgIGJlbG9uZy4gVGhpcyBpcyBzb21ldGhpbmcgd2UgcmVh
bGx5IG5lZWQgdG8gZml4LgorCisgICAgICAgICogZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250
cm9sbGVyLmNwcDogSW5jbHVkZSBUZXh0SXRlcmF0b3IuaC4KKyAgICAgICAgKiBlZGl0aW5nL0Fw
cGx5U3R5bGVDb21tYW5kLmNwcDogRGl0dG8uCisKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
OjpwcmVwYXJlV2hpdGVzcGFjZUF0UG9zaXRpb25Gb3JTcGxpdCk6IENhbGwKKyAgICAgICAgZGVw
cmVjYXRlZElzQ29sbGFwc2libGVXaGl0ZXNwYWNlIGJ5IGl0cyBuZXcgbmFtZSAobmV3bHkgZGVw
cmVjYXRlZCkuCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOiBJbmNsdWRlIFRleHRJdGVy
YXRvckJlaGF2aW9yLmggaW5zdGVhZCBvZiBUZXh0SXRlcmF0b3IuaC4KKworICAgICAgICAqIGVk
aXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRIVE1M
VGV4dFRvSW50ZXJjaGFuZ2VGb3JtYXQpOiBDYWxsCisgICAgICAgIGRlcHJlY2F0ZWRJc0NvbGxh
cHNpYmxlV2hpdGVzcGFjZSBieSBpdHMgbmV3IG5hbWUgKG5ld2x5IGRlcHJlY2F0ZWQpLgorCisg
ICAgICAgICogZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmNwcDogSW5jbHVkZSBU
ZXh0SXRlcmF0b3IuaC4KKworICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmg6IE1vdmVk
IGlzQ29sbGFwc2libGVXaGl0ZXNwYWNlIGZyb20gaGVyZSBpbnRvCisgICAgICAgIGh0bWxlZGl0
aW5nLmggYW5kIHJlbmFtZWQgaXQgZGVwcmVjYXRlZElzQ29sbGFwc2libGVXaGl0ZXNwYWNlLgor
CisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwOiBDYWxsCisgICAgICAgIGRlcHJl
Y2F0ZWRJc0NvbGxhcHNpYmxlV2hpdGVzcGFjZSBieSBpdHMgbmV3IG5hbWUgKG5ld2x5IGRlcHJl
Y2F0ZWQpLgorCisgICAgICAgICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcDogSW5jbHVkZSBU
ZXh0SXRlcmF0b3IuaC4KKworICAgICAgICAqIGVkaXRpbmcvVmlzaWJsZVVuaXRzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXZpb3VzQm91bmRhcnkpOiBDYWxsIFRleHRJdGVyYXRvcjo6dGV4
dCBpbnN0ZWFkIG9mCisgICAgICAgIFRleHRJdGVyYXRvcjo6bGVuZ3RoLgorICAgICAgICAoV2Vi
Q29yZTo6bmV4dEJvdW5kYXJ5KTogRGl0dG8uCisKKyAgICAgICAgKiBlZGl0aW5nL2h0bWxlZGl0
aW5nLmNwcDogSW5jbHVkZSBUZXh0SXRlcmF0b3IuaC4KKworICAgICAgICAqIGVkaXRpbmcvaHRt
bGVkaXRpbmcuaDogUmVtb3ZlZCBub24taGVscGZ1bCBzZWN0aW9uIGNvbW1lbnRzLgorICAgICAg
ICBBZGRlZCBGSVhNRSBhYm91dCBpc1doaXRlc3BhY2UuIEFkZGVkIGRlcHJlY2F0ZWRJc0NvbGxh
cHNpYmxlV2hpdGVzcGFjZSwKKyAgICAgICAgZm9ybWVybHkgbm90IGRlcHJlY2F0ZWQgYW5kIGlu
IFRleHRJdGVyYXRvci5oLgorCisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOiBJbmNsdWRl
IFRleHRJdGVyYXRvci5oLgorCisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNw
cDogSW5jbHVkZSBUZXh0SXRlcmF0b3IuaC4KKworICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlbGVjdGlvbkNvbnRhaW5zUG9zc2li
bGVXb3JkKTogQ2FsbCBUZXh0SXRlcmF0b3I6OnRleHQKKyAgICAgICAgaW5zdGVhZCBvZiBUZXh0
SXRlcmF0b3I6Omxlbmd0aCBhbmQgVGV4dEl0ZXJhdG9yOjpjaGFyYWN0ZXJBdC4KKworICAgICAg
ICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDogU29ydGVkIGNvbmRpdGlvbmFsIGluY2x1ZGVzIGFs
cGhhYmV0aWNhbGx5IGJ5IGNvbmRpdGlvbi4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9IVE1M
Q29udmVydGVyLm1tOgorICAgICAgICAoK1tXZWJIVE1MQ29udmVydGVyIGVkaXRpbmdBdHRyaWJ1
dGVkU3RyaW5nRnJvbVJhbmdlOl0pOiBDYWxsIFRleHRJdGVyYXRvcjo6dGV4dAorICAgICAgICBp
bnN0ZWFkIG9mIFRleHRJdGVyYXRvcjo6bGVuZ3RoLgorCisyMDE0LTAzLTAyICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KKwogICAgICAgICBTcGxpdCBUZXh0SXRlcmF0b3JCZWhhdmlv
ciBpbnRvIGEgc2VwYXJhdGUgaGVhZGVyCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjk1NzgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDJlNzQxOWM3NmUxY2ZiZjM3
NmJmN2Y0MGEyNDM5YTQzMGVkYzBjNTYuLjA3NjkxYWVkNWEwNmJkYTQzMTFjMmM0OGI4MTNiMjI2
OGU4N2FhMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNC0wMy0wMiAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3RyZWFtbGluZSB1c2Ugb2YgVGV4
dEl0ZXJhdG9yLCBjdXR0aW5nIGRvd24gaW5jbHVkZXMgYW5kIHVzZSBvZiBzb29uLXRvLWJlLWRl
bGV0ZWQgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjk1OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOiBBZGRlZCBub3ctbmVlZGVkIGlu
Y2x1ZGUuCisKIDIwMTQtMDMtMDIgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBUcnkgdG8gZml4IHRoZSAzMi1iaXQgYnVpbGQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmlu
ZGV4IGJiMWY2MGM2NGFjYjFmYzI5MmZhZTM5NTRlYTZhNjE5OWI3MzcwMDQuLmZkODJiMWM4ODBl
NmM5YzdiMGNjYmRjM2Q1NmE5ZDYyNjljYTY5ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0x
MzM5LDggKzEzMzksOCBAQCBfX1pON1dlYkNvcmU5RnJhbWVWaWV3NTJkaXNhYmxlTGF5ZXJGbHVz
aFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0aW9uRXYKIF9fWk43V2ViQ29yZTlGcmFt
ZVZpZXc2Y3JlYXRlRVJOU181RnJhbWVFCiBfX1pON1dlYkNvcmU5SFRNTE5hbWVzMTBhY3Rpb25B
dHRyRQogX19aTjdXZWJDb3JlOUhUTUxOYW1lczEwbGlzdGluZ1RhZ0UKLV9fWk43V2ViQ29yZTlI
VE1MTmFtZXMxMXRleHRhcmVhVGFnRQogX19aTjdXZWJDb3JlOUhUTUxOYW1lczExb3B0Z3JvdXBU
YWdFCitfX1pON1dlYkNvcmU5SFRNTE5hbWVzMTF0ZXh0YXJlYVRhZ0UKIF9fWk43V2ViQ29yZTlI
VE1MTmFtZXMxMmRpc2FibGVkQXR0ckUKIF9fWk43V2ViQ29yZTlIVE1MTmFtZXMxMnNlbGVjdGVk
QXR0ckUKIF9fWk43V2ViQ29yZTlIVE1MTmFtZXMxM2Jsb2NrcXVvdGVUYWdFCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRl
eCA5YjdlZTFmMGM4ZGQ2MTU5N2Y3ZGNmOTM4NjFlZWI3MzM5MWM0MzNlLi5hY2I2ZjJmMGNlYWE4
ZGM5OGJlNmI1NmNjNjdjMTk5ZjRmNjg5OGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTU5LDYgKzU5LDcgQEAK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAj
aW5jbHVkZSAiVGV4dENoZWNraW5nSGVscGVyLmgiCisjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgi
CiAjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5p
dHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgpAQCAtMTAzOSwyMCArMTA0MCwxNSBAQCBT
dHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5nRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2Uo
Y29uc3QgVmlzaWJsZVBvc2l0aW9uUgogICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBtYWtlUmFu
Z2UodmlzaWJsZVBvc2l0aW9uUmFuZ2Uuc3RhcnQsIHZpc2libGVQb3NpdGlvblJhbmdlLmVuZCk7
CiAgICAgZm9yIChUZXh0SXRlcmF0b3IgaXQocmFuZ2UuZ2V0KCkpOyAhaXQuYXRFbmQoKTsgaXQu
YWR2YW5jZSgpKSB7CiAgICAgICAgIC8vIG5vbi16ZXJvIGxlbmd0aCBtZWFucyB0ZXh0dWFsIG5v
ZGUsIHplcm8gbGVuZ3RoIG1lYW5zIHJlcGxhY2VkIG5vZGUgKEFLQSAiYXR0YWNobWVudHMiIGlu
IEFYKQotICAgICAgICBpZiAoaXQubGVuZ3RoKCkpIHsKLSAgICAgICAgICAgIC8vIEFkZCBhIHRl
eHR1YWwgcmVwcmVzZW50YXRpb24gZm9yIGxpc3QgbWFya2VyIHRleHQKLSAgICAgICAgICAgIFN0
cmluZyBsaXN0TWFya2VyVGV4dCA9IGxpc3RNYXJrZXJUZXh0Rm9yTm9kZUFuZFBvc2l0aW9uKGl0
Lm5vZGUoKSwgdmlzaWJsZVBvc2l0aW9uUmFuZ2Uuc3RhcnQpOwotICAgICAgICAgICAgaWYgKCFs
aXN0TWFya2VyVGV4dC5pc0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
bGlzdE1hcmtlclRleHQpOwotCisgICAgICAgIGlmIChpdC50ZXh0KCkubGVuZ3RoKCkpIHsKKyAg
ICAgICAgICAgIC8vIEFkZCBhIHRleHR1YWwgcmVwcmVzZW50YXRpb24gZm9yIGxpc3QgbWFya2Vy
IHRleHQuCisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChsaXN0TWFya2VyVGV4dEZvck5vZGVB
bmRQb3NpdGlvbihpdC5ub2RlKCksIHZpc2libGVQb3NpdGlvblJhbmdlLnN0YXJ0KSk7CiAgICAg
ICAgICAgICBpdC5hcHBlbmRUZXh0VG9TdHJpbmdCdWlsZGVyKGJ1aWxkZXIpOwogICAgICAgICB9
IGVsc2UgewogICAgICAgICAgICAgLy8gbG9jYXRlIHRoZSBub2RlIGFuZCBzdGFydGluZyBvZmZz
ZXQgZm9yIHRoaXMgcmVwbGFjZWQgcmFuZ2UKLSAgICAgICAgICAgIGludCBleGNlcHRpb24gPSAw
OwotICAgICAgICAgICAgTm9kZSogbm9kZSA9IGl0LnJhbmdlKCktPnN0YXJ0Q29udGFpbmVyKGV4
Y2VwdGlvbik7Ci0gICAgICAgICAgICBBU1NFUlQobm9kZSA9PSBpdC5yYW5nZSgpLT5lbmRDb250
YWluZXIoZXhjZXB0aW9uKSk7Ci0gICAgICAgICAgICBpbnQgb2Zmc2V0ID0gaXQucmFuZ2UoKS0+
c3RhcnRPZmZzZXQoZXhjZXB0aW9uKTsKLQorICAgICAgICAgICAgTm9kZSogbm9kZSA9IGl0LnJh
bmdlKCktPnN0YXJ0Q29udGFpbmVyKCk7CisgICAgICAgICAgICBBU1NFUlQobm9kZSA9PSBpdC5y
YW5nZSgpLT5lbmRDb250YWluZXIoKSk7CisgICAgICAgICAgICBpbnQgb2Zmc2V0ID0gaXQucmFu
Z2UoKS0+c3RhcnRPZmZzZXQoKTsKICAgICAgICAgICAgIGlmIChyZXBsYWNlZE5vZGVOZWVkc0No
YXJhY3Rlcihub2RlLT5jaGlsZE5vZGUob2Zmc2V0KSkpCiAgICAgICAgICAgICAgICAgYnVpbGRl
ci5hcHBlbmQob2JqZWN0UmVwbGFjZW1lbnRDaGFyYWN0ZXIpOwogICAgICAgICB9CkBAIC0xMDcx
LDggKzEwNjcsOCBAQCBpbnQgQWNjZXNzaWJpbGl0eU9iamVjdDo6bGVuZ3RoRm9yVmlzaWJsZVBv
c2l0aW9uUmFuZ2UoY29uc3QgVmlzaWJsZVBvc2l0aW9uUmFuZwogICAgIFJlZlB0cjxSYW5nZT4g
cmFuZ2UgPSBtYWtlUmFuZ2UodmlzaWJsZVBvc2l0aW9uUmFuZ2Uuc3RhcnQsIHZpc2libGVQb3Np
dGlvblJhbmdlLmVuZCk7CiAgICAgZm9yIChUZXh0SXRlcmF0b3IgaXQocmFuZ2UuZ2V0KCkpOyAh
aXQuYXRFbmQoKTsgaXQuYWR2YW5jZSgpKSB7CiAgICAgICAgIC8vIG5vbi16ZXJvIGxlbmd0aCBt
ZWFucyB0ZXh0dWFsIG5vZGUsIHplcm8gbGVuZ3RoIG1lYW5zIHJlcGxhY2VkIG5vZGUgKEFLQSAi
YXR0YWNobWVudHMiIGluIEFYKQotICAgICAgICBpZiAoaXQubGVuZ3RoKCkpCi0gICAgICAgICAg
ICBsZW5ndGggKz0gaXQubGVuZ3RoKCk7CisgICAgICAgIGlmIChpdC50ZXh0KCkubGVuZ3RoKCkp
CisgICAgICAgICAgICBsZW5ndGggKz0gaXQudGV4dCgpLmxlbmd0aCgpOwogICAgICAgICBlbHNl
IHsKICAgICAgICAgICAgIC8vIGxvY2F0ZSB0aGUgbm9kZSBhbmQgc3RhcnRpbmcgb2Zmc2V0IGZv
ciB0aGlzIHJlcGxhY2VkIHJhbmdlCiAgICAgICAgICAgICBpbnQgZXhjZXB0aW9uID0gMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgK
aW5kZXggYjRmMGZiNTRiOThkODMwYmQ1MTMzZTk2MzRlN2Y0YjJmNWM1OTI5OC4uNmUxZTkzYjU5
OWFmNTlmYmFlODBiYTBmYWI0MjlmMjZhNzk2YWU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTMzLDcgKzMzLDcgQEAK
ICNpbmNsdWRlICJGbG9hdFF1YWQuaCIKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVk
ZSAiUGF0aC5oIgotI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlRleHRJdGVy
YXRvckJlaGF2aW9yLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCiAjaW5jbHVkZSAi
VmlzaWJsZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcAppbmRleCBlMWFjMWU4ZTRiZDlkNDg1MjVjYTBmNzRlZTQ1NGQyZmYyOGE5ZDk2Li5m
YzkwNzY3MGM0NmM1ZjhhMzM1ZTE1NGI5NTFiYWFjMTdjMTQ1YjhjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHAKQEAgLTk3LDYgKzk3LDcgQEAKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCiAjaW5j
bHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIgorI2lu
Y2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1
ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJCYXNlLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJCYXNlLm1tCmluZGV4IDgxN2U5NTM0MDJkMTIxODEw
MDIzNmQ1ODdlZDczNGQzYjViZGJiYmQuLmU0NzZkOGYwZGYzZTNmMDBmOTgyOGRlNTVkZDc2ZTA2
MWM3N2EyMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW0KQEAg
LTY2LDcgKzY2LDYgQEAKICNpbXBvcnQgIlNpbXBsZUZvbnREYXRhLmgiCiAjaW1wb3J0ICJUZXh0
Q2hlY2tlckNsaWVudC5oIgogI2ltcG9ydCAiVGV4dENoZWNraW5nSGVscGVyLmgiCi0jaW1wb3J0
ICJUZXh0SXRlcmF0b3IuaCIKICNpbXBvcnQgIlZpc2libGVVbml0cy5oIgogI2ltcG9ydCAiV2Vi
Q29yZUZyYW1lVmlldy5oIgogI2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggZDQwMjkwYTQyZjBlZDFlNDg1OTNk
Yzc3OTQyMGRlNDBhMDFiMDZiYi4uYzhiYjM0NDBkZThjYmYzZTc0MGU0YTllMmRiZWFkODZmYTk3
MTU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAgLTEwNjks
NyArMTA2OSw3IEBAIC0gKE5TQXR0cmlidXRlZFN0cmluZyopZG9BWEF0dHJpYnV0ZWRTdHJpbmdG
b3JUZXh0TWFya2VyUmFuZ2U6KGlkKXRleHRNYXJrZXJSYW5nCiAgICAgICAgIGludCBvZmZzZXQg
PSBpdC5yYW5nZSgpLT5zdGFydE9mZnNldChleGNlcHRpb24pOwogICAgICAgICAKICAgICAgICAg
Ly8gbm9uLXplcm8gbGVuZ3RoIG1lYW5zIHRleHR1YWwgbm9kZSwgemVybyBsZW5ndGggbWVhbnMg
cmVwbGFjZWQgbm9kZSAoQUtBICJhdHRhY2htZW50cyIgaW4gQVgpCi0gICAgICAgIGlmIChpdC5s
ZW5ndGgoKSAhPSAwKSB7CisgICAgICAgIGlmIChpdC50ZXh0KCkubGVuZ3RoKCkpIHsKICAgICAg
ICAgICAgIC8vIEFkZCB0aGUgdGV4dCBvZiB0aGUgbGlzdCBtYXJrZXIgaXRlbSBpZiBuZWNlc3Nh
cnkuCiAgICAgICAgICAgICBTdHJpbmcgbGlzdE1hcmtlclRleHQgPSBtX29iamVjdC0+bGlzdE1h
cmtlclRleHRGb3JOb2RlQW5kUG9zaXRpb24obm9kZSwgVmlzaWJsZVBvc2l0aW9uKGl0LnJhbmdl
KCktPnN0YXJ0UG9zaXRpb24oKSkpOwogICAgICAgICAgICAgaWYgKCFsaXN0TWFya2VyVGV4dC5p
c0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMzQwOGRmNTc1NWQwNjEzZDhjZDZl
NmEyNTZhMzY1YjUzNmNiOGY5Yi4uODk3ZTdhMDRlN2IwY2U1Mzg5YjkyNjczMThmOTczZjg0YWVj
ZGJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNzMsNiArNzMsNyBAQAogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAiU3R5
bGVSZXNvbHZlci5oIgorI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlZvaWRD
YWxsYmFjay5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJYTUxOU05hbWVz
LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5jcHAKaW5kZXggY2VhZTUzNjM3ZDMzODI0ODBkMWJlZWYzNjlmZmZkZDdh
ZmRiZGYyZS4uYTk5YWVhNDViMjA3OTU5OGE0NmQ2MWMzZjEwYjljNGFjMWI5OWNmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Ob2RlLmNwcApAQCAtNjEsNiArNjEsNyBAQAogI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVu
dC5oIgogI2luY2x1ZGUgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oIgogI2luY2x1ZGUgIlByb2dy
ZXNzRXZlbnQuaCIKKyNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgi
CiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vUG9zaXRpb24uY3BwCmluZGV4IDZmNGM2MmEzZDViYTc4MWEzMjVlYTQyNDFhN2Qz
YjI1OWJiN2Y4ZTEuLjlmMDhjNjIzMjViNjBhNzBmZTgzMjE1YjE4MjJiODBmNDcwOTdhZmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL1Bvc2l0aW9uLmNwcApAQCAtOTM5LDE2ICs5MzksMTYgQEAgYm9vbCBQb3NpdGlv
bjo6aXNDYW5kaWRhdGUoKSBjb25zdAogICAgICAgICByZXR1cm4gIW5vZGVJc1VzZXJTZWxlY3RO
b25lKGRlcHJlY2F0ZWROb2RlKCkpICYmIGF0Rmlyc3RFZGl0aW5nUG9zaXRpb25Gb3JOb2RlKCk7
CiAKICAgICBpZiAocmVuZGVyZXItPmlzUmVuZGVyQmxvY2tGbG93KCkpIHsKLSAgICAgICAgUmVu
ZGVyQmxvY2smIGJsb2NrID0gdG9SZW5kZXJCbG9jaygqcmVuZGVyZXIpOworICAgICAgICBSZW5k
ZXJCbG9ja0Zsb3cmIGJsb2NrID0gdG9SZW5kZXJCbG9ja0Zsb3coKnJlbmRlcmVyKTsKICAgICAg
ICAgaWYgKGJsb2NrLmxvZ2ljYWxIZWlnaHQoKSB8fCBtX2FuY2hvck5vZGUtPmhhc1RhZ05hbWUo
Ym9keVRhZykpIHsKICAgICAgICAgICAgIGlmICghUG9zaXRpb246Omhhc1JlbmRlcmVkTm9uQW5v
bnltb3VzRGVzY2VuZGFudHNXaXRoSGVpZ2h0KGJsb2NrKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gYXRGaXJzdEVkaXRpbmdQb3NpdGlvbkZvck5vZGUoKSAmJiAhUG9zaXRpb246Om5vZGVJc1Vz
ZXJTZWxlY3ROb25lKGRlcHJlY2F0ZWROb2RlKCkpOwogICAgICAgICAgICAgcmV0dXJuIG1fYW5j
aG9yTm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpICYmICFQb3NpdGlvbjo6bm9kZUlzVXNlclNlbGVj
dE5vbmUoZGVwcmVjYXRlZE5vZGUoKSkgJiYgYXRFZGl0aW5nQm91bmRhcnkoKTsKICAgICAgICAg
fQotICAgIH0gZWxzZQotICAgICAgICByZXR1cm4gbV9hbmNob3JOb2RlLT5oYXNFZGl0YWJsZVN0
eWxlKCkgJiYgIVBvc2l0aW9uOjpub2RlSXNVc2VyU2VsZWN0Tm9uZShkZXByZWNhdGVkTm9kZSgp
KSAmJiBhdEVkaXRpbmdCb3VuZGFyeSgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQog
Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX2FuY2hvck5vZGUtPmhhc0VkaXRhYmxl
U3R5bGUoKSAmJiAhUG9zaXRpb246Om5vZGVJc1VzZXJTZWxlY3ROb25lKGRlcHJlY2F0ZWROb2Rl
KCkpICYmIGF0RWRpdGluZ0JvdW5kYXJ5KCk7CiB9CiAKIGJvb2wgUG9zaXRpb246OmlzUmVuZGVy
ZWRDaGFyYWN0ZXIoKSBjb25zdApAQCAtMTA2OCw3ICsxMDY4LDcgQEAgUG9zaXRpb24gUG9zaXRp
b246OmxlYWRpbmdXaGl0ZXNwYWNlUG9zaXRpb24oRUFmZmluaXR5IGFmZmluaXR5LCBib29sIGNv
bnNpZGVyTm8KICAgICBpZiAocHJldiAhPSAqdGhpcyAmJiBpblNhbWVFbmNsb3NpbmdCbG9ja0Zs
b3dFbGVtZW50KGRlcHJlY2F0ZWROb2RlKCksIHByZXYuZGVwcmVjYXRlZE5vZGUoKSkgJiYgcHJl
di5kZXByZWNhdGVkTm9kZSgpLT5pc1RleHROb2RlKCkpIHsKICAgICAgICAgU3RyaW5nIHN0cmlu
ZyA9IHRvVGV4dChwcmV2LmRlcHJlY2F0ZWROb2RlKCkpLT5kYXRhKCk7CiAgICAgICAgIFVDaGFy
IGMgPSBzdHJpbmdbcHJldi5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpXTsKLSAgICAgICAgaWYg
KGNvbnNpZGVyTm9uQ29sbGFwc2libGVXaGl0ZXNwYWNlID8gKGlzU3BhY2VPck5ld2xpbmUoYykg
fHwgYyA9PSBub0JyZWFrU3BhY2UpIDogaXNDb2xsYXBzaWJsZVdoaXRlc3BhY2UoYykpCisgICAg
ICAgIGlmIChjb25zaWRlck5vbkNvbGxhcHNpYmxlV2hpdGVzcGFjZSA/IChpc1NwYWNlT3JOZXds
aW5lKGMpIHx8IGMgPT0gbm9CcmVha1NwYWNlKSA6IGRlcHJlY2F0ZWRJc0NvbGxhcHNpYmxlV2hp
dGVzcGFjZShjKSkKICAgICAgICAgICAgIGlmIChpc0VkaXRhYmxlUG9zaXRpb24ocHJldikpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHByZXY7CiAgICAgfQpAQCAtMTA4Nyw3ICsxMDg3LDcgQEAg
UG9zaXRpb24gUG9zaXRpb246OnRyYWlsaW5nV2hpdGVzcGFjZVBvc2l0aW9uKEVBZmZpbml0eSwg
Ym9vbCBjb25zaWRlck5vbkNvbGxhcHMKICAgICBVQ2hhciBjID0gdi5jaGFyYWN0ZXJBZnRlcigp
OwogICAgIC8vIFRoZSBzcGFjZSBtdXN0IG5vdCBiZSBpbiBhbm90aGVyIHBhcmFncmFwaCBhbmQg
aXQgbXVzdCBiZSBlZGl0YWJsZS4KICAgICBpZiAoIWlzRW5kT2ZQYXJhZ3JhcGgodikgJiYgdi5u
ZXh0KENhbm5vdENyb3NzRWRpdGluZ0JvdW5kYXJ5KS5pc05vdE51bGwoKSkKLSAgICAgICAgaWYg
KGNvbnNpZGVyTm9uQ29sbGFwc2libGVXaGl0ZXNwYWNlID8gKGlzU3BhY2VPck5ld2xpbmUoYykg
fHwgYyA9PSBub0JyZWFrU3BhY2UpIDogaXNDb2xsYXBzaWJsZVdoaXRlc3BhY2UoYykpCisgICAg
ICAgIGlmIChjb25zaWRlck5vbkNvbGxhcHNpYmxlV2hpdGVzcGFjZSA/IChpc1NwYWNlT3JOZXds
aW5lKGMpIHx8IGMgPT0gbm9CcmVha1NwYWNlKSA6IGRlcHJlY2F0ZWRJc0NvbGxhcHNpYmxlV2hp
dGVzcGFjZShjKSkKICAgICAgICAgICAgIHJldHVybiAqdGhpczsKICAgICAKICAgICByZXR1cm4g
UG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCmluZGV4IGMzZThhNTc4NjJlMGUyMTAyNzBkMmU3
NzA3OGUwNTkzZTFlOTQzYzUuLjRmZTcxOWU5MzkwYWU5YTk5ZDM3YThjYTM1Yzg5MGM1ZWMzM2M5
NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1JhbmdlLmNwcApAQCAtMTU3MCw2ICsxNTcwLDggQEAgTm9kZSogUmFuZ2U6
OmZpcnN0Tm9kZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiAwOwogICAgIGlmIChtX3N0YXJ0LmNv
bnRhaW5lcigpLT5vZmZzZXRJbkNoYXJhY3RlcnMoKSkKICAgICAgICAgcmV0dXJuIG1fc3RhcnQu
Y29udGFpbmVyKCk7CisgICAgLy8gRklYTUU6IEEgcmVuZGVyZXItYmFzZWQgcnVsZSBpcyBjb21w
bGV0ZWx5IG91dCBvZiBwbGFjZSBoZXJlLgorICAgIC8vIEZvciBvbmUgdGhpbmcsIHRoZSByZW5k
ZXJlciBjb3VsZCBiZSBvdXQgb2YgZGF0ZSBpZiB0aGUgRE9NIHdhcyByZWNlbnRseSBjaGFuZ2Vk
LgogICAgIGlmIChpc1JlbmRlcmVyUmVwbGFjZWRFbGVtZW50KG1fc3RhcnQuY29udGFpbmVyKCkt
PnJlbmRlcmVyKCkpKQogICAgICAgICByZXR1cm4gbV9zdGFydC5jb250YWluZXIoKTsKICAgICBp
ZiAoTm9kZSogY2hpbGQgPSBtX3N0YXJ0LmNvbnRhaW5lcigpLT5jaGlsZE5vZGUobV9zdGFydC5v
ZmZzZXQoKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZl
VGV4dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRl
eHRDb250cm9sbGVyLmNwcAppbmRleCAyZTdlYzQ2MmFlZWE2MWI4Yjg1MjNhN2IzZWY5ZDk3MDFh
YzQ4Yzc1Li41MDIxNjIzMWQ5NmI0NzE4MTBkZmEyY2Q1ZGM5NTY0ZTQzNmQxMDYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FsdGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5j
cHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgogI2lu
Y2x1ZGUgIlRleHRDaGVja2luZ0hlbHBlci5oIgogI2luY2x1ZGUgIlRleHRFdmVudC5oIgorI2lu
Y2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1
ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3BwCmluZGV4IDk1MzEwZjVmMjY5Y2Y5NzM2NjEw
ZTcyMzAwYTNmMjU3NjdiYjJkNjIuLmFhYzkwZjc4N2NkNTJiNmZlZTQ4OTgyM2I0MjYzZWE1ZGUy
MDk2NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1h
bmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3Bw
CkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVk
ZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlICJUZXh0SXRl
cmF0b3IuaCIKICNpbmNsdWRlICJUZXh0Tm9kZVRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIlZpc2li
bGVVbml0cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IDMxNDI4M2QzM2E4NTBjZDgx
MzdhZWEzNDdmOTAxZjdlYzZlODRiYzUuLjAwMjFlYzM5ZTkyZDFmNzE5NzNiMjU0NjUxNGYyYjIw
NmJkZGQxMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRp
dENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENv
bW1hbmQuY3BwCkBAIC03NzMsOSArNzczLDkgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6
cHJlcGFyZVdoaXRlc3BhY2VBdFBvc2l0aW9uRm9yU3BsaXQoUG9zaXRpb24mIHBvc2l0aW8KICAg
ICBWaXNpYmxlUG9zaXRpb24gcHJldmlvdXNWaXNpYmxlUG9zKHZpc2libGVQb3MucHJldmlvdXMo
KSk7CiAgICAgUG9zaXRpb24gcHJldmlvdXMocHJldmlvdXNWaXNpYmxlUG9zLmRlZXBFcXVpdmFs
ZW50KCkpOwogICAgIAotICAgIGlmIChpc0NvbGxhcHNpYmxlV2hpdGVzcGFjZShwcmV2aW91c1Zp
c2libGVQb3MuY2hhcmFjdGVyQWZ0ZXIoKSkgJiYgcHJldmlvdXMuZGVwcmVjYXRlZE5vZGUoKS0+
aXNUZXh0Tm9kZSgpICYmICFwcmV2aW91cy5kZXByZWNhdGVkTm9kZSgpLT5oYXNUYWdOYW1lKGJy
VGFnKSkKKyAgICBpZiAoZGVwcmVjYXRlZElzQ29sbGFwc2libGVXaGl0ZXNwYWNlKHByZXZpb3Vz
VmlzaWJsZVBvcy5jaGFyYWN0ZXJBZnRlcigpKSAmJiBwcmV2aW91cy5kZXByZWNhdGVkTm9kZSgp
LT5pc1RleHROb2RlKCkgJiYgIXByZXZpb3VzLmRlcHJlY2F0ZWROb2RlKCktPmhhc1RhZ05hbWUo
YnJUYWcpKQogICAgICAgICByZXBsYWNlVGV4dEluTm9kZVByZXNlcnZpbmdNYXJrZXJzKHRvVGV4
dChwcmV2aW91cy5kZXByZWNhdGVkTm9kZSgpKSwgcHJldmlvdXMuZGVwcmVjYXRlZEVkaXRpbmdP
ZmZzZXQoKSwgMSwgbm9uQnJlYWtpbmdTcGFjZVN0cmluZygpKTsKLSAgICBpZiAoaXNDb2xsYXBz
aWJsZVdoaXRlc3BhY2UodmlzaWJsZVBvcy5jaGFyYWN0ZXJBZnRlcigpKSAmJiBwb3NpdGlvbi5k
ZXByZWNhdGVkTm9kZSgpLT5pc1RleHROb2RlKCkgJiYgIXBvc2l0aW9uLmRlcHJlY2F0ZWROb2Rl
KCktPmhhc1RhZ05hbWUoYnJUYWcpKQorICAgIGlmIChkZXByZWNhdGVkSXNDb2xsYXBzaWJsZVdo
aXRlc3BhY2UodmlzaWJsZVBvcy5jaGFyYWN0ZXJBZnRlcigpKSAmJiBwb3NpdGlvbi5kZXByZWNh
dGVkTm9kZSgpLT5pc1RleHROb2RlKCkgJiYgIXBvc2l0aW9uLmRlcHJlY2F0ZWROb2RlKCktPmhh
c1RhZ05hbWUoYnJUYWcpKQogICAgICAgICByZXBsYWNlVGV4dEluTm9kZVByZXNlcnZpbmdNYXJr
ZXJzKHRvVGV4dChwb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpKSwgcG9zaXRpb24uZGVwcmVjYXRl
ZEVkaXRpbmdPZmZzZXQoKSwgMSwgbm9uQnJlYWtpbmdTcGFjZVN0cmluZygpKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggYzU2NzI2MDQ2MjdkZGFjMmUwNjY0MTQyZjQ4ZmRlZDlm
MjQ3OWU0OS4uZDExNWVlODQyYmEyYjg4OWYzN2U0MzIxMjNlZjAwZjcwZjhlNTAwYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSAiRmluZE9wdGlv
bnMuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIlRleHRDaGVja2lu
Zy5oIgotI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgorI2luY2x1ZGUgIlRleHRJdGVyYXRvckJl
aGF2aW9yLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVNlbGVjdGlvbi5oIgogI2luY2x1ZGUgIldyaXRp
bmdEaXJlY3Rpb24uaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9IVE1M
SW50ZXJjaGFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9IVE1MSW50ZXJjaGFuZ2Uu
Y3BwCmluZGV4IDJmNzI5NTExOGYyNDEwZGM4YTBmZTY4Yzg3MmU2ZWMwMDA0OTMwNTYuLjNiYjBm
ZTlkMjJkMzZmMjJlODMyZjkwZmQ1YWNmZWQ0MzQwZDczOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0hUTUxJbnRlcmNoYW5nZS5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJS
ZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5o
IgorI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CiAKQEAgLTUw
LDEwICs1MSwxMCBAQCBTdHJpbmcgY29udmVydEhUTUxUZXh0VG9JbnRlcmNoYW5nZUZvcm1hdChj
b25zdCBTdHJpbmcmIGluLCBjb25zdCBUZXh0KiBub2RlKQogICAgIHVuc2lnbmVkIGNvbnN1bWVk
ID0gMDsKICAgICB3aGlsZSAoaSA8IGluLmxlbmd0aCgpKSB7CiAgICAgICAgIGNvbnN1bWVkID0g
MTsKLSAgICAgICAgaWYgKGlzQ29sbGFwc2libGVXaGl0ZXNwYWNlKGluW2ldKSkgeworICAgICAg
ICBpZiAoZGVwcmVjYXRlZElzQ29sbGFwc2libGVXaGl0ZXNwYWNlKGluW2ldKSkgewogICAgICAg
ICAgICAgLy8gY291bnQgbnVtYmVyIG9mIGFkam9pbmluZyBzcGFjZXMKICAgICAgICAgICAgIHVu
c2lnbmVkIGogPSBpICsgMTsKLSAgICAgICAgICAgIHdoaWxlIChqIDwgaW4ubGVuZ3RoKCkgJiYg
aXNDb2xsYXBzaWJsZVdoaXRlc3BhY2UoaW5bal0pKQorICAgICAgICAgICAgd2hpbGUgKGogPCBp
bi5sZW5ndGgoKSAmJiBkZXByZWNhdGVkSXNDb2xsYXBzaWJsZVdoaXRlc3BhY2UoaW5bal0pKQog
ICAgICAgICAgICAgICAgIGorKzsKICAgICAgICAgICAgIHVuc2lnbmVkIGNvdW50ID0gaiAtIGk7
CiAgICAgICAgICAgICBjb25zdW1lZCA9IGNvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5jcHAKaW5kZXggOTQzZTQ4MzU3YzUy
ZTllOTZjOWEwMDFiZmYwZTcwYzY3YTI2M2UxNS4uNTcwYzIyZTE5ZjFjMTE2ZjUwZTE0NWU0MjZj
NDlmZTYzNjA3YzdkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbGlu
Z0NvcnJlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxs
aW5nQ29ycmVjdGlvbkNvbW1hbmQuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oIgogI2luY2x1ZGUgIlNl
dFNlbGVjdGlvbkNvbW1hbmQuaCIKKyNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRl
ICJtYXJrdXAuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
ZXh0SXRlcmF0b3IuY3BwCmluZGV4IDBiOGNhYjM3ZjczNzJjMmVhNGU2NmQzNmRiZGNhNzkxZWY0
MTE2NzMuLmY1NjE3YmQ2NTI1N2RjMTc5MjRjODc1MzMyMGIxNTQ4MmViMzNjNTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5jcHAKQEAgLTU0MCwxNSArNTQwLDE1IEBAIGJv
b2wgVGV4dEl0ZXJhdG9yOjpoYW5kbGVUZXh0Tm9kZSgpCiAgICAgICAgIC8vIFRoaXMgY29kZSBh
aW1zIHRvIHByb2R1Y2Ugc2FtZSByZXN1bHRzIGFzIGhhbmRsZVRleHRCb3goKSBiZWxvdyBzbyB0
ZXN0IHJlc3VsdHMgZG9uJ3QgY2hhbmdlLiBJdCBkb2VzIG5vdCBtYWtlIG11Y2ggbG9naWNhbCBz
ZW5zZS4KICAgICAgICAgdW5zaWduZWQgcnVuRW5kID0gbV9vZmZzZXQ7CiAgICAgICAgIHVuc2ln
bmVkIHJ1blN0YXJ0ID0gbV9vZmZzZXQ7Ci0gICAgICAgIHdoaWxlIChydW5FbmQgPCBzdHIubGVu
Z3RoKCkgJiYgKGlzQ29sbGFwc2libGVXaGl0ZXNwYWNlKHN0cltydW5FbmRdKSB8fCBzdHJbcnVu
RW5kXSA9PSAnXHQnKSkKKyAgICAgICAgd2hpbGUgKHJ1bkVuZCA8IHN0ci5sZW5ndGgoKSAmJiAo
ZGVwcmVjYXRlZElzQ29sbGFwc2libGVXaGl0ZXNwYWNlKHN0cltydW5FbmRdKSB8fCBzdHJbcnVu
RW5kXSA9PSAnXHQnKSkKICAgICAgICAgICAgICsrcnVuRW5kOwotICAgICAgICBib29sIGFkZFNw
YWNlRm9yUHJldmlvdXMgPSBtX2xhc3RUZXh0Tm9kZUVuZGVkV2l0aENvbGxhcHNlZFNwYWNlICYm
IG1fbGFzdENoYXJhY3RlciAmJiAhaXNDb2xsYXBzaWJsZVdoaXRlc3BhY2UobV9sYXN0Q2hhcmFj
dGVyKTsKKyAgICAgICAgYm9vbCBhZGRTcGFjZUZvclByZXZpb3VzID0gbV9sYXN0VGV4dE5vZGVF
bmRlZFdpdGhDb2xsYXBzZWRTcGFjZSAmJiBtX2xhc3RDaGFyYWN0ZXIgJiYgIWRlcHJlY2F0ZWRJ
c0NvbGxhcHNpYmxlV2hpdGVzcGFjZShtX2xhc3RDaGFyYWN0ZXIpOwogICAgICAgICBpZiAocnVu
RW5kID4gcnVuU3RhcnQgfHwgYWRkU3BhY2VGb3JQcmV2aW91cykgewogICAgICAgICAgICAgaWYg
KHJ1bkVuZCA9PSBzdHIubGVuZ3RoKCkpIHsKICAgICAgICAgICAgICAgICBtX2xhc3RUZXh0Tm9k
ZUVuZGVkV2l0aENvbGxhcHNlZFNwYWNlID0gdHJ1ZTsKICAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGJvb2wgYWRkU3BhY2VGb3JDdXJyZW50
ID0gcnVuU3RhcnQgfHwgKG1fbGFzdENoYXJhY3RlciAmJiAhaXNDb2xsYXBzaWJsZVdoaXRlc3Bh
Y2UobV9sYXN0Q2hhcmFjdGVyKSk7CisgICAgICAgICAgICBib29sIGFkZFNwYWNlRm9yQ3VycmVu
dCA9IHJ1blN0YXJ0IHx8IChtX2xhc3RDaGFyYWN0ZXIgJiYgIWRlcHJlY2F0ZWRJc0NvbGxhcHNp
YmxlV2hpdGVzcGFjZShtX2xhc3RDaGFyYWN0ZXIpKTsKICAgICAgICAgICAgIGlmIChhZGRTcGFj
ZUZvckN1cnJlbnQgfHwgYWRkU3BhY2VGb3JQcmV2aW91cykgewogICAgICAgICAgICAgICAgIGVt
aXRDaGFyYWN0ZXIoJyAnLCBtX25vZGUsIDAsIHJ1blN0YXJ0LCBydW5FbmQpOwogICAgICAgICAg
ICAgICAgIG1fb2Zmc2V0ID0gcnVuRW5kOwpAQCAtNTU2LDcgKzU1Niw3IEBAIGJvb2wgVGV4dEl0
ZXJhdG9yOjpoYW5kbGVUZXh0Tm9kZSgpCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBydW5T
dGFydCA9IHJ1bkVuZDsKICAgICAgICAgfQotICAgICAgICB3aGlsZSAocnVuRW5kIDwgc3RyLmxl
bmd0aCgpICYmICFpc0NvbGxhcHNpYmxlV2hpdGVzcGFjZShzdHJbcnVuRW5kXSkpCisgICAgICAg
IHdoaWxlIChydW5FbmQgPCBzdHIubGVuZ3RoKCkgJiYgIWRlcHJlY2F0ZWRJc0NvbGxhcHNpYmxl
V2hpdGVzcGFjZShzdHJbcnVuRW5kXSkpCiAgICAgICAgICAgICArK3J1bkVuZDsKICAgICAgICAg
aWYgKHJ1blN0YXJ0IDwgc3RyLmxlbmd0aCgpKQogICAgICAgICAgICAgZW1pdFRleHQobV9ub2Rl
LCByZW5kZXJlciwgcnVuU3RhcnQsIHJ1bkVuZCk7CkBAIC02MTQsNyArNjE0LDcgQEAgdm9pZCBU
ZXh0SXRlcmF0b3I6OmhhbmRsZVRleHRCb3goKQogICAgICAgICBJbmxpbmVUZXh0Qm94KiBmaXJz
dFRleHRCb3ggPSByZW5kZXJlci0+Y29udGFpbnNSZXZlcnNlZFRleHQoKSA/IChtX3NvcnRlZFRl
eHRCb3hlcy5pc0VtcHR5KCkgPyAwIDogbV9zb3J0ZWRUZXh0Qm94ZXNbMF0pIDogcmVuZGVyZXIt
PmZpcnN0VGV4dEJveCgpOwogICAgICAgICBib29sIG5lZWRTcGFjZSA9IG1fbGFzdFRleHROb2Rl
RW5kZWRXaXRoQ29sbGFwc2VkU3BhY2UKICAgICAgICAgICAgIHx8IChtX3RleHRCb3ggPT0gZmly
c3RUZXh0Qm94ICYmIHRleHRCb3hTdGFydCA9PSBydW5TdGFydCAmJiBydW5TdGFydCA+IDApOwot
ICAgICAgICBpZiAobmVlZFNwYWNlICYmICFpc0NvbGxhcHNpYmxlV2hpdGVzcGFjZShtX2xhc3RD
aGFyYWN0ZXIpICYmIG1fbGFzdENoYXJhY3RlcikgeworICAgICAgICBpZiAobmVlZFNwYWNlICYm
ICFkZXByZWNhdGVkSXNDb2xsYXBzaWJsZVdoaXRlc3BhY2UobV9sYXN0Q2hhcmFjdGVyKSAmJiBt
X2xhc3RDaGFyYWN0ZXIpIHsKICAgICAgICAgICAgIGlmIChtX2xhc3RUZXh0Tm9kZSA9PSBtX25v
ZGUgJiYgcnVuU3RhcnQgPiAwICYmIHN0cltydW5TdGFydCAtIDFdID09ICcgJykgewogICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIHNwYWNlUnVuU3RhcnQgPSBydW5TdGFydCAtIDE7CiAgICAgICAg
ICAgICAgICAgd2hpbGUgKHNwYWNlUnVuU3RhcnQgPiAwICYmIHN0cltzcGFjZVJ1blN0YXJ0IC0g
MV0gPT0gJyAnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmgKaW5kZXggYjk0MDJk
NjI3MTk1MGMzNGQ2ZWU5OGJmMjFiNThhZWU2ZWEwYzg1OS4uNzQ5ZjEyNzMyZjY2NWM1NTVkYTIw
OGVlYjRkMTBhYmFiNWVjM2U4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
ZXh0SXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJdGVyYXRvci5o
CkBAIC0zOCwxOSArMzgsNiBAQCBjbGFzcyBJbmxpbmVUZXh0Qm94OwogY2xhc3MgUmVuZGVyVGV4
dDsKIGNsYXNzIFJlbmRlclRleHRGcmFnbWVudDsKIAotLy8gRklYTUU6IENhbid0IHJlYWxseSBh
bnN3ZXIgdGhpcyBxdWVzdGlvbiBjb3JyZWN0bHkgd2l0aG91dCBrbm93aW5nIHRoZSB3aGl0ZS1z
cGFjZSBtb2RlLgotLy8gRklYTUU6IE1vdmUgdGhpcyBzb21ld2hlcmUgZWxzZSBpbiB0aGUgZWRp
dGluZyBkaXJlY3RvcnkuIEl0IGRvZXNuJ3QgYmVsb25nIGhlcmUuCi1pbmxpbmUgYm9vbCBpc0Nv
bGxhcHNpYmxlV2hpdGVzcGFjZShVQ2hhciBjKQotewotICAgIHN3aXRjaCAoYykgewotICAgICAg
ICBjYXNlICcgJzoKLSAgICAgICAgY2FzZSAnXG4nOgotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotfQot
CiBTdHJpbmcgcGxhaW5UZXh0KGNvbnN0IFJhbmdlKiwgVGV4dEl0ZXJhdG9yQmVoYXZpb3IgPSBU
ZXh0SXRlcmF0b3JEZWZhdWx0QmVoYXZpb3IsIGJvb2wgaXNEaXNwbGF5U3RyaW5nID0gZmFsc2Up
OwogUGFzc1JlZlB0cjxSYW5nZT4gZmluZFBsYWluVGV4dChjb25zdCBSYW5nZSosIGNvbnN0IFN0
cmluZyYsIEZpbmRPcHRpb25zKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9UeXBpbmdDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFu
ZC5jcHAKaW5kZXggY2UwZTNiOGFjNmMwOTI5ZTI1MGU0Y2E5YTYxYzdhODJhNmE0OThiMS4uYmEx
MDdjMTg4ODgwZDQwMjEwZTY2YjRhNTc5MTdiMzAxMzRiY2VlMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5oIgogI2luY2x1ZGUgIkluc2VydFRleHRDb21t
YW5kLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgi
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVVuaXRzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlzaWJsZVVuaXRzLmNwcAppbmRleCA0YjQ5NTQxMjZj
ZmY5MmNkYzE5MmFiZDFhNDM4MzgyMWM5OGU3NzFmLi5iMDQyNDdiMzgxODc0NzBmODIxMGYyZTc3
NzhjZjgyNzNjNjM5YmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2li
bGVVbml0cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlVW5pdHMuY3Bw
CkBAIC01MzEsNyArNTMxLDcgQEAgc3RhdGljIFZpc2libGVQb3NpdGlvbiBwcmV2aW91c0JvdW5k
YXJ5KGNvbnN0IFZpc2libGVQb3NpdGlvbiYgYywgQm91bmRhcnlTZWFyY2gKICAgICAgICAgICAg
IHByZXBlbmQoc3RyaW5nLCBpdC50ZXh0KCkpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
IC8vIFRyZWF0IGJ1bGxldHMgdXNlZCBpbiB0aGUgdGV4dCBzZWN1cml0eSBtb2RlIGFzIHJlZ3Vs
YXIgY2hhcmFjdGVycyB3aGVuIGxvb2tpbmcgZm9yIGJvdW5kYXJpZXMKLSAgICAgICAgICAgIHBy
ZXBlbmRSZXBlYXRlZENoYXJhY3RlcihzdHJpbmcsICd4JywgaXQubGVuZ3RoKCkpOworICAgICAg
ICAgICAgcHJlcGVuZFJlcGVhdGVkQ2hhcmFjdGVyKHN0cmluZywgJ3gnLCBpdC50ZXh0KCkubGVu
Z3RoKCkpOwogICAgICAgICB9CiAgICAgICAgIGlmIChzdHJpbmcuc2l6ZSgpID4gc3VmZml4TGVu
Z3RoKSB7CiAgICAgICAgICAgICBuZXh0ID0gc2VhcmNoRnVuY3Rpb24oU3RyaW5nVmlldyhzdHJp
bmcuZGF0YSgpLCBzdHJpbmcuc2l6ZSgpKSwgc3RyaW5nLnNpemUoKSAtIHN1ZmZpeExlbmd0aCwg
TWF5SGF2ZU1vcmVDb250ZXh0LCBuZWVkTW9yZUNvbnRleHQpOwpAQCAtNjA0LDcgKzYwNCw3IEBA
IHN0YXRpYyBWaXNpYmxlUG9zaXRpb24gbmV4dEJvdW5kYXJ5KGNvbnN0IFZpc2libGVQb3NpdGlv
biYgYywgQm91bmRhcnlTZWFyY2hGdW5jCiAgICAgICAgICAgICBhcHBlbmQoc3RyaW5nLCBpdC50
ZXh0KCkpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIC8vIFRyZWF0IGJ1bGxldHMgdXNl
ZCBpbiB0aGUgdGV4dCBzZWN1cml0eSBtb2RlIGFzIHJlZ3VsYXIgY2hhcmFjdGVycyB3aGVuIGxv
b2tpbmcgZm9yIGJvdW5kYXJpZXMKLSAgICAgICAgICAgIGFwcGVuZFJlcGVhdGVkQ2hhcmFjdGVy
KHN0cmluZywgJ3gnLCBpdC5sZW5ndGgoKSk7CisgICAgICAgICAgICBhcHBlbmRSZXBlYXRlZENo
YXJhY3RlcihzdHJpbmcsICd4JywgaXQudGV4dCgpLmxlbmd0aCgpKTsKICAgICAgICAgfQogICAg
ICAgICBpZiAoc3RyaW5nLnNpemUoKSA+IHByZWZpeExlbmd0aCkgewogICAgICAgICAgICAgbmV4
dCA9IHNlYXJjaEZ1bmN0aW9uKFN0cmluZ1ZpZXcoc3RyaW5nLmRhdGEoKSwgc3RyaW5nLnNpemUo
KSksIHByZWZpeExlbmd0aCwgTWF5SGF2ZU1vcmVDb250ZXh0LCBuZWVkTW9yZUNvbnRleHQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcAppbmRleCBmZWRkOGM3YWIxOTYyOTli
NGYwYzg4MGY1NDEzYTE1Yjk3ZDE1MzkyLi4wNTA1ODNkYzk5MzJhNGJiMzRjZTllNjViMmM1ZjVk
Njk1ZTY0MGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5n
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmNwcApAQCAtNDks
NiArNDksNyBAQAogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIKICNpbmNsdWRlICJTaGFkb3dS
b290LmgiCiAjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2lu
Y2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5j
bHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9odG1sZWRpdGluZy5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5o
CmluZGV4IDMxN2U5Njk4YjdhOWFkODQ5MjAzMzQ0M2ViMjMxZDAwZjgwOWI3MzQuLjM2M2RiOGEx
MTk2YTNmMWYxNWRkNmJhYThiMDA4N2U5Y2Y5MDhlZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0
bWxlZGl0aW5nLmgKQEAgLTQ0LDcgKzQ0LDYgQEAgY2xhc3MgUmFuZ2U7CiBjbGFzcyBWaXNpYmxl
UG9zaXRpb247CiBjbGFzcyBWaXNpYmxlU2VsZWN0aW9uOwogCi0KIC8vIFRoaXMgZmlsZSBjb250
YWlucyBhIHNldCBvZiBoZWxwZXIgZnVuY3Rpb25zIHVzZWQgYnkgdGhlIGVkaXRpbmcgY29tbWFu
ZHMKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjE0LDkgKzIxMyw3IEBAIE5vZGUqIGVuY2xv
c2luZ0xpc3RDaGlsZChOb2RlKik7CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBFbGVtZW50CiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgCi0vLyBGdW5jdGlvbnMgcmV0dXJuaW5nIEVsZW1lbnQK
LSAgICAKKwogUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVu
dCYpOwogUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVhdGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYs
IFBhc3NSZWZQdHI8Tm9kZT4gdGFiVGV4dE5vZGUpOwogUGFzc1JlZlB0cjxFbGVtZW50PiBjcmVh
dGVUYWJTcGFuRWxlbWVudChEb2N1bWVudCYsIGNvbnN0IFN0cmluZyYgdGFiVGV4dCk7CkBAIC0y
MjUsMjYgKzIyMiwzMCBAQCBQYXNzUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUJsb2NrUGxhY2Vob2xk
ZXJFbGVtZW50KERvY3VtZW50Jik7CiBFbGVtZW50KiBlZGl0YWJsZVJvb3RGb3JQb3NpdGlvbihj
b25zdCBQb3NpdGlvbiYsIEVkaXRhYmxlVHlwZSA9IENvbnRlbnRJc0VkaXRhYmxlKTsKIEVsZW1l
bnQqIHVuc3BsaXR0YWJsZUVsZW1lbnRGb3JQb3NpdGlvbihjb25zdCBQb3NpdGlvbiYpOwogCi0v
LyBCb29sZWFuIGZ1bmN0aW9ucyBvbiBFbGVtZW50Ci0gICAgCiBib29sIGNhbk1lcmdlTGlzdHMo
RWxlbWVudCogZmlyc3RMaXN0LCBFbGVtZW50KiBzZWNvbmRMaXN0KTsKICAgICAKIC8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIC8vIFZpc2libGVTZWxlY3Rpb24KIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAot
Ly8gRnVuY3Rpb25zIHJldHVybmluZyBWaXNpYmxlU2VsZWN0aW9uCiBWaXNpYmxlU2VsZWN0aW9u
IHNlbGVjdGlvbkZvclBhcmFncmFwaEl0ZXJhdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7
CiAKIFBvc2l0aW9uIGFkanVzdGVkU2VsZWN0aW9uU3RhcnRGb3JTdHlsZUNvbXB1dGF0aW9uKGNv
bnN0IFZpc2libGVTZWxlY3Rpb24mKTsKICAgICAKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotLy8g
TWlzY2VsbGFuZW91cyBmdW5jdGlvbnMgb24gVGV4dAorLy8gRklYTUU6IFRoaXMgaXMgb25seSBv
bmUgb2YgbWFueSBkZWZpbml0aW9ucyBvZiB3aGl0ZXNwYWNlLCBzbyB0aGUgbmFtZSBpcyBub3Qg
c3BlY2lmaWMgZW5vdWdoLgogaW5saW5lIGJvb2wgaXNXaGl0ZXNwYWNlKFVDaGFyIGMpCiB7CiAg
ICAgcmV0dXJuIGMgPT0gbm9CcmVha1NwYWNlIHx8IGMgPT0gJyAnIHx8IGMgPT0gJ1xuJyB8fCBj
ID09ICdcdCc7CiB9CiAKKy8vIEZJWE1FOiBDYW4ndCByZWFsbHkgYW5zd2VyIHRoaXMgcXVlc3Rp
b24gY29ycmVjdGx5IHdpdGhvdXQga25vd2luZyB0aGUgd2hpdGUtc3BhY2UgbW9kZS4KK2lubGlu
ZSBib29sIGRlcHJlY2F0ZWRJc0NvbGxhcHNpYmxlV2hpdGVzcGFjZShVQ2hhciBjKQoreworICAg
IHJldHVybiBjID09ICcgJyB8fCBjID09ICdcbic7Cit9CisKIGlubGluZSBib29sIGlzQW1iaWd1
b3VzQm91bmRhcnlDaGFyYWN0ZXIoVUNoYXIgY2hhcmFjdGVyKQogewogICAgIC8vIFRoZXNlIGFy
ZSBjaGFyYWN0ZXJzIHRoYXQgY2FuIGJlaGF2ZSBhcyB3b3JkIGJvdW5kYXJpZXMsIGJ1dCBjYW4g
YXBwZWFyIHdpdGhpbiB3b3Jkcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFya3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAppbmRleCBmNGIz
NGUzMWY2NTU5ZGI0OWFiYmYyYmRjMWJlZWJkZjQ1Y2IxMDE1Li5kMDAwZTZiYjk1Y2VhMmY1ODQ2
MmU1ZDAzMDU4ZDdhOTg2MGQ0MmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L21hcmt1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCkBAIC01
NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5oIgorI2luY2x1ZGUgIlRleHRJdGVyYXRv
ci5oIgogI2luY2x1ZGUgIlZpc2libGVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJWaXNpYmxlVW5p
dHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggNmEyZDYwYWMyNjZmZDhlZmM0OWI4NGRmMjU2OGQ1
NGY4MDllZjRmYi4uZDBiNmQwNjQ1MTQ0NTM2ZTVjOTViNzMzNDdlMmJkNzA1NDE3ZjlhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCkBAIC00Nyw2ICs0
Nyw3IEBACiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9yLmgi
CiAjaW5jbHVkZSAiVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmgiCisjaW5jbHVkZSAiVGV4dEl0
ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dE5vZGVUcmF2ZXJzYWwuaCIKICNpbmNsdWRlIDx3dGYv
UmVmLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IGM2MWU4YTk3ODVlZDk4MzQxNDk0
NmMxM2EyMTQ1MWI2MGIzYTk1YzIuLjcwMzczYWE0NTY3YzcwZjRjNzY4M2ZhMzMwY2Y0YTJhMzYy
ODE2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5j
cHAKQEAgLTcxOCw5ICs3MTgsOSBAQCBzdGF0aWMgYm9vbCBzZWxlY3Rpb25Db250YWluc1Bvc3Np
YmxlV29yZChGcmFtZSogZnJhbWUpCiB7CiAgICAgLy8gQ3VycmVudCBhbGdvcml0aG06IGxvb2sg
Zm9yIGEgY2hhcmFjdGVyIHRoYXQncyBub3QganVzdCBhIHNlcGFyYXRvci4KICAgICBmb3IgKFRl
eHRJdGVyYXRvciBpdChmcmFtZS0+c2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQo
KSk7ICFpdC5hdEVuZCgpOyBpdC5hZHZhbmNlKCkpIHsKLSAgICAgICAgaW50IGxlbmd0aCA9IGl0
Lmxlbmd0aCgpOworICAgICAgICBpbnQgbGVuZ3RoID0gaXQudGV4dCgpLmxlbmd0aCgpOwogICAg
ICAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBpZiAo
IShVX0dFVF9HQ19NQVNLKGl0LmNoYXJhY3RlckF0KGkpKSAmIFVfR0NfWl9NQVNLKSkKKyAgICAg
ICAgICAgIGlmICghKFVfR0VUX0dDX01BU0soaXQudGV4dCgpW2ldKSAmIFVfR0NfWl9NQVNLKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCAwZjhhOWNiYTkzZWZjMTg3ZjE4YTYzMjM3Njgw
YTdmMmVhMDM2YWQ2Li5iNjNmOWE5ZThkOWE1Y2RkNGIyNTRkYzlkODU1ZTYwN2Y3MmJmMzQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC05OCwxOCArOTgsMjEgQEAKICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1RlbXBvcmFyeUNoYW5n
ZS5oPgogCi0jaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKKyNpZiBFTkFCTEUoQ1NTX0lNQUdFX1NF
VCkKKyNpbmNsdWRlICJTdHlsZUNhY2hlZEltYWdlU2V0LmgiCisjZW5kaWYKKwogI2lmIEVOQUJM
RShJT1NfVE9VQ0hfRVZFTlRTKQogI2luY2x1ZGUgIlBsYXRmb3JtVG91Y2hFdmVudElPUy5oIgot
I2Vsc2UKLSNpbmNsdWRlICJQbGF0Zm9ybVRvdWNoRXZlbnQuaCIKICNlbmRpZgorCisjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKICNpbmNsdWRlICJUb3VjaEV2ZW50LmgiCiAjaW5jbHVkZSAiVG91
Y2hMaXN0LmgiCiAjZW5kaWYKIAotI2lmIEVOQUJMRShDU1NfSU1BR0VfU0VUKQotI2luY2x1ZGUg
IlN0eWxlQ2FjaGVkSW1hZ2VTZXQuaCIKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAhRU5B
QkxFKElPU19UT1VDSF9FVkVOVFMpCisjaW5jbHVkZSAiUGxhdGZvcm1Ub3VjaEV2ZW50LmgiCiAj
ZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL0hUTUxDb252ZXJ0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvSFRNTENvbnZlcnRlci5tbQppbmRleCA4NDgxMWE1MzI5NGJjNWU4MGNlNTk4NDFjZjY4YTZk
ZDUyODdiOWU1Li4wNzY0OGYyOGVjYWE0ZmUwZDdkMmI5NTMxMDUwMDY1YzI2ZTNhODdkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSFRNTENvbnZlcnRlci5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvSFRNTENvbnZlcnRlci5tbQpAQCAtMjQ5OSw3
ICsyNDk5LDcgQEAgKyAoTlNBdHRyaWJ1dGVkU3RyaW5nICopZWRpdGluZ0F0dHJpYnV0ZWRTdHJp
bmdGcm9tUmFuZ2U6KFJhbmdlKilyYW5nZQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAg
ICAgICAgaW50IGN1cnJlbnRUZXh0TGVuZ3RoID0gaXQubGVuZ3RoKCk7CisgICAgICAgIGludCBj
dXJyZW50VGV4dExlbmd0aCA9IGl0LnRleHQoKS5sZW5ndGgoKTsKICAgICAgICAgaWYgKCFjdXJy
ZW50VGV4dExlbmd0aCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDEyOGRlZTI4OGUyY2E2ZDUxNzI2Zjg3ZjVj
YjU5Mjc2ZmJmY2E0ZDYuLmFlNDRiYjUxNjg3MTM4MTdkOWEyNjBlNWEzNjIyNGI4YjhjYTlmMDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC05OCw2ICs5
OCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dGZWF0dXJlcy5oPgogI2luY2x1ZGUgPHN0
ZGlvLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nVmlldy5oPgogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKICNpbmNsdWRl
ICJSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgiCg==
</data>
<flag name="review"
          id="249770"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225622</attachid>
            <date>2014-03-02 18:10:28 -0800</date>
            <delta_ts>2014-03-02 18:10:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129592-20140302181028.patch</filename>
            <type>text/plain</type>
            <size>34380</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0OTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM5ZjAyY2RiMjcyMmJi
ZGZkMzMwZWZlMGQwOWZkOGIxNGNkMDdjZi4uMjRkOGE1MzkxODYxYzEyMGVjNGM5YTQ2YTUxYmZl
ZTMwN2Q1YmUwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDkzIEBACiAyMDE0LTAzLTAyICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAorICAgICAgICBTdHJlYW1saW5lIHVzZSBvZiBU
ZXh0SXRlcmF0b3IsIGN1dHRpbmcgZG93biBpbmNsdWRlcyBhbmQgdXNlIG9mIHNvb24tdG8tYmUt
ZGVsZXRlZCBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyOTU5MgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46IFJlLXNvcnRlZCB0
aGlzIGZpbGUuIE5vdCBzdXJlIGhvdyBpdCBnb3QgdW5zb3J0ZWQuCisKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eU9iamVjdDo6c3RyaW5nRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UpOiBDYWxsIFRl
eHRJdGVyYXRvcjo6dGV4dAorICAgICAgICBpbnN0ZWFkIG9mIFRleHRJdGVyYXRvcjo6bGVuZ3Ro
LiBBbHNvIHJlbW92ZWQgdW5uZWVkZWQgc3BlY2lhbCBjYXNlIGZvciBlbXB0eSBzdHJpbmcKKyAg
ICAgICAgYW5kIGV4Y2VwdGlvbiBjb2RlLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdDo6bGVuZ3RoRm9yVmlzaWJsZVBvc2l0aW9uUmFuZ2UpOiBEaXR0by4KKworICAgICAg
ICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOiBJbmNsdWRlIFRleHRJdGVy
YXRvckJlaGF2aW9yLmggaW5zdGVhZCBvZgorICAgICAgICBUZXh0SXRlcmF0b3IuaC4KKworICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6IEluY2x1
ZGUgVGV4dEl0ZXJhdG9yLmguCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2UubW06IFJlbW92ZWQgdW5uZWVkZWQKKyAgICAgICAg
VGV4dEl0ZXJhdG9yLmggaW5jbHVkZS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tOgorICAgICAgICAoLVtXZWJBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciBkb0FYQXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5n
ZTpdKTogQ2FsbAorICAgICAgICBUZXh0SXRlcmF0b3I6OnRleHQgaW5zdGVhZCBvZiBUZXh0SXRl
cmF0b3I6Omxlbmd0aC4KKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDogSW5jbHVkZSBUZXh0
SXRlcmF0b3IuaC4KKworICAgICAgICAqIGRvbS9Ob2RlLmNwcDogSW5jbHVkZSBSYW5nZS5oLgor
CisgICAgICAgICogZG9tL1Bvc2l0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9u
Ojppc0NhbmRpZGF0ZSk6IENhc3QgdG8gUmVuZGVyQmxvY2tGbG93IHNpbmNlIHRoYXQncyB3aGF0
IHRoZQorICAgICAgICB0eXBlIGNoZWNrIGFib3ZlIGRvZXMuIFVzZSBhIHJldHVybiBzdGF0ZW1l
bnQgaW5zdGVhZCBvZiBhbiBlbHNlIGZvciBiZXR0ZXIgZmxvdy4KKyAgICAgICAgKFdlYkNvcmU6
OlBvc2l0aW9uOjpsZWFkaW5nV2hpdGVzcGFjZVBvc2l0aW9uKTogQ2FsbAorICAgICAgICBkZXBy
ZWNhdGVkSXNDb2xsYXBzaWJsZVdoaXRlc3BhY2UgYnkgaXRzIG5ldyBuYW1lIChuZXdseSBkZXBy
ZWNhdGVkKS4KKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjp0cmFpbGluZ1doaXRlc3BhY2VQ
b3NpdGlvbik6IERpdHRvLgorCisgICAgICAgICogZG9tL1JhbmdlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJhbmdlOjpmaXJzdE5vZGUpOiBBZGRlZCBhIEZJWE1FIGFib3V0IGNvZGUgdGhhdCBj
bGVhcmx5IGRvZXMgbm90CisgICAgICAgIGJlbG9uZy4gVGhpcyBpcyBzb21ldGhpbmcgd2UgcmVh
bGx5IG5lZWQgdG8gZml4LgorCisgICAgICAgICogZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250
cm9sbGVyLmNwcDogSW5jbHVkZSBUZXh0SXRlcmF0b3IuaC4KKyAgICAgICAgKiBlZGl0aW5nL0Fw
cGx5U3R5bGVDb21tYW5kLmNwcDogRGl0dG8uCisKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0
ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5k
OjpwcmVwYXJlV2hpdGVzcGFjZUF0UG9zaXRpb25Gb3JTcGxpdCk6IENhbGwKKyAgICAgICAgZGVw
cmVjYXRlZElzQ29sbGFwc2libGVXaGl0ZXNwYWNlIGJ5IGl0cyBuZXcgbmFtZSAobmV3bHkgZGVw
cmVjYXRlZCkuCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOiBJbmNsdWRlIFRleHRJdGVy
YXRvckJlaGF2aW9yLmggaW5zdGVhZCBvZiBUZXh0SXRlcmF0b3IuaC4KKworICAgICAgICAqIGVk
aXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRIVE1M
VGV4dFRvSW50ZXJjaGFuZ2VGb3JtYXQpOiBDYWxsCisgICAgICAgIGRlcHJlY2F0ZWRJc0NvbGxh
cHNpYmxlV2hpdGVzcGFjZSBieSBpdHMgbmV3IG5hbWUgKG5ld2x5IGRlcHJlY2F0ZWQpLgorCisg
ICAgICAgICogZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmNwcDogSW5jbHVkZSBU
ZXh0SXRlcmF0b3IuaC4KKworICAgICAgICAqIGVkaXRpbmcvVGV4dEl0ZXJhdG9yLmg6IE1vdmVk
IGlzQ29sbGFwc2libGVXaGl0ZXNwYWNlIGZyb20gaGVyZSBpbnRvCisgICAgICAgIGh0bWxlZGl0
aW5nLmggYW5kIHJlbmFtZWQgaXQgZGVwcmVjYXRlZElzQ29sbGFwc2libGVXaGl0ZXNwYWNlLgor
CisgICAgICAgICogZWRpdGluZy9UZXh0SXRlcmF0b3IuY3BwOiBDYWxsCisgICAgICAgIGRlcHJl
Y2F0ZWRJc0NvbGxhcHNpYmxlV2hpdGVzcGFjZSBieSBpdHMgbmV3IG5hbWUgKG5ld2x5IGRlcHJl
Y2F0ZWQpLgorCisgICAgICAgICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcDogSW5jbHVkZSBU
ZXh0SXRlcmF0b3IuaC4KKworICAgICAgICAqIGVkaXRpbmcvVmlzaWJsZVVuaXRzLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXZpb3VzQm91bmRhcnkpOiBDYWxsIFRleHRJdGVyYXRvcjo6dGV4
dCBpbnN0ZWFkIG9mCisgICAgICAgIFRleHRJdGVyYXRvcjo6bGVuZ3RoLgorICAgICAgICAoV2Vi
Q29yZTo6bmV4dEJvdW5kYXJ5KTogRGl0dG8uCisKKyAgICAgICAgKiBlZGl0aW5nL2h0bWxlZGl0
aW5nLmNwcDogSW5jbHVkZSBUZXh0SXRlcmF0b3IuaC4KKworICAgICAgICAqIGVkaXRpbmcvaHRt
bGVkaXRpbmcuaDogUmVtb3ZlZCBub24taGVscGZ1bCBzZWN0aW9uIGNvbW1lbnRzLgorICAgICAg
ICBBZGRlZCBGSVhNRSBhYm91dCBpc1doaXRlc3BhY2UuIEFkZGVkIGRlcHJlY2F0ZWRJc0NvbGxh
cHNpYmxlV2hpdGVzcGFjZSwKKyAgICAgICAgZm9ybWVybHkgbm90IGRlcHJlY2F0ZWQgYW5kIGlu
IFRleHRJdGVyYXRvci5oLgorCisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOiBJbmNsdWRl
IFRleHRJdGVyYXRvci5oLgorCisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNw
cDogSW5jbHVkZSBUZXh0SXRlcmF0b3IuaC4KKworICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNlbGVjdGlvbkNvbnRhaW5zUG9zc2li
bGVXb3JkKTogQ2FsbCBUZXh0SXRlcmF0b3I6OnRleHQKKyAgICAgICAgaW5zdGVhZCBvZiBUZXh0
SXRlcmF0b3I6Omxlbmd0aCBhbmQgVGV4dEl0ZXJhdG9yOjpjaGFyYWN0ZXJBdC4KKworICAgICAg
ICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDogU29ydGVkIGNvbmRpdGlvbmFsIGluY2x1ZGVzIGFs
cGhhYmV0aWNhbGx5IGJ5IGNvbmRpdGlvbi4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9IVE1M
Q29udmVydGVyLm1tOgorICAgICAgICAoK1tXZWJIVE1MQ29udmVydGVyIGVkaXRpbmdBdHRyaWJ1
dGVkU3RyaW5nRnJvbVJhbmdlOl0pOiBDYWxsIFRleHRJdGVyYXRvcjo6dGV4dAorICAgICAgICBp
bnN0ZWFkIG9mIFRleHRJdGVyYXRvcjo6bGVuZ3RoLgorCisyMDE0LTAzLTAyICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KKwogICAgICAgICBGaXggYnVpbGQgZm9yIGNhc2Utc2Vuc2l0
aXZlIGZpbGUgc3lzdGVtcy4KIAogICAgICAgICAqIHBsYXRmb3JtL1VzZXJBY3Rpdml0eS5oOiBS
dW5sb29wIC0+IFJ1bkxvb3AuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggNDMzNGU4MjE1OGM2OGM2YzZj
MGYxNTFhMTM5ZGNiMGQyNjk3MDBhYy4uZmQ4Nzk0YmE5NzE5NTg3YWQ2OTAyMWM2YjU3ZjcyYzhl
ZTc2N2I3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE0LTAzLTAyICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBTdHJlYW1saW5lIHVzZSBv
ZiBUZXh0SXRlcmF0b3IsIGN1dHRpbmcgZG93biBpbmNsdWRlcyBhbmQgdXNlIG9mIHNvb24tdG8t
YmUtZGVsZXRlZCBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyOTU5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDogQWRkZWQg
bm93LW5lZWRlZCBpbmNsdWRlLgorCiAyMDE0LTAyLTI1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgR2V0IHJpZCBvZiBWaXNpdGVkTGlua1N0cmF0ZWd5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggMmU3NDE5Yzc2ZTFjZmJmMzc2YmY3ZjQwYTI0MzlhNDMwZWRjMGM1Ni4u
NDg0MzEzOGQzZWYxZGRkODhjOWRlMzRmYWE0NmM0YmJmN2ExNzU4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDEzIEBACisyMDE0LTAzLTAyICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
KworICAgICAgICBTdHJlYW1saW5lIHVzZSBvZiBUZXh0SXRlcmF0b3IsIGN1dHRpbmcgZG93biBp
bmNsdWRlcyBhbmQgdXNlIG9mIHNvb24tdG8tYmUtZGVsZXRlZCBmdW5jdGlvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTU5MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHA6IEFkZGVkIG5vdy1uZWVkZWQgaW5jbHVkZS4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6IERpdHRvLgorCiAyMDE0LTAzLTAyICBEYW4gQmVybnN0
ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgVHJ5IHRvIGZpeCB0aGUgMzItYml0IGJ1
aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBiYjFmNjBjNjRhY2IxZmMyOTJmYWUzOTU0ZWE2
YTYxOTliNzM3MDA0Li5mZDgyYjFjODgwZTZjOWM3YjBjY2JkYzNkNTZhOWQ2MjY5Y2E2OWZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTMzOSw4ICsxMzM5LDggQEAgX19aTjdXZWJDb3JlOUZy
YW1lVmlldzUyZGlzYWJsZUxheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlGb3JJbnRlcmFj
dGlvbkV2CiBfX1pON1dlYkNvcmU5RnJhbWVWaWV3NmNyZWF0ZUVSTlNfNUZyYW1lRQogX19aTjdX
ZWJDb3JlOUhUTUxOYW1lczEwYWN0aW9uQXR0ckUKIF9fWk43V2ViQ29yZTlIVE1MTmFtZXMxMGxp
c3RpbmdUYWdFCi1fX1pON1dlYkNvcmU5SFRNTE5hbWVzMTF0ZXh0YXJlYVRhZ0UKIF9fWk43V2Vi
Q29yZTlIVE1MTmFtZXMxMW9wdGdyb3VwVGFnRQorX19aTjdXZWJDb3JlOUhUTUxOYW1lczExdGV4
dGFyZWFUYWdFCiBfX1pON1dlYkNvcmU5SFRNTE5hbWVzMTJkaXNhYmxlZEF0dHJFCiBfX1pON1dl
YkNvcmU5SFRNTE5hbWVzMTJzZWxlY3RlZEF0dHJFCiBfX1pON1dlYkNvcmU5SFRNTE5hbWVzMTNi
bG9ja3F1b3RlVGFnRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggOWI3ZWUxZjBjOGRkNjE1OTdmN2RjZjkzODYxZWVi
NzMzOTFjNDMzZS4uYWNiNmYyZjBjZWFhOGRjOThiZTZiNTZjYzY3YzE5OWY0ZjY4OThmOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3QuY3BwCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJUZXh0Q2hlY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlRleHRDaGVja2luZ0hlbHBlci5oIgor
I2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlVzZXJHZXN0dXJlSW5kaWNhdG9y
LmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIK
QEAgLTEwMzksMjAgKzEwNDAsMTUgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN0cmlu
Z0ZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlvblIKICAgICBSZWZQ
dHI8UmFuZ2U+IHJhbmdlID0gbWFrZVJhbmdlKHZpc2libGVQb3NpdGlvblJhbmdlLnN0YXJ0LCB2
aXNpYmxlUG9zaXRpb25SYW5nZS5lbmQpOwogICAgIGZvciAoVGV4dEl0ZXJhdG9yIGl0KHJhbmdl
LmdldCgpKTsgIWl0LmF0RW5kKCk7IGl0LmFkdmFuY2UoKSkgewogICAgICAgICAvLyBub24temVy
byBsZW5ndGggbWVhbnMgdGV4dHVhbCBub2RlLCB6ZXJvIGxlbmd0aCBtZWFucyByZXBsYWNlZCBu
b2RlIChBS0EgImF0dGFjaG1lbnRzIiBpbiBBWCkKLSAgICAgICAgaWYgKGl0Lmxlbmd0aCgpKSB7
Ci0gICAgICAgICAgICAvLyBBZGQgYSB0ZXh0dWFsIHJlcHJlc2VudGF0aW9uIGZvciBsaXN0IG1h
cmtlciB0ZXh0Ci0gICAgICAgICAgICBTdHJpbmcgbGlzdE1hcmtlclRleHQgPSBsaXN0TWFya2Vy
VGV4dEZvck5vZGVBbmRQb3NpdGlvbihpdC5ub2RlKCksIHZpc2libGVQb3NpdGlvblJhbmdlLnN0
YXJ0KTsKLSAgICAgICAgICAgIGlmICghbGlzdE1hcmtlclRleHQuaXNFbXB0eSgpKQotICAgICAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxpc3RNYXJrZXJUZXh0KTsKLQorICAgICAgICBpZiAo
aXQudGV4dCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICAvLyBBZGQgYSB0ZXh0dWFsIHJlcHJl
c2VudGF0aW9uIGZvciBsaXN0IG1hcmtlciB0ZXh0LgorICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmQobGlzdE1hcmtlclRleHRGb3JOb2RlQW5kUG9zaXRpb24oaXQubm9kZSgpLCB2aXNpYmxlUG9z
aXRpb25SYW5nZS5zdGFydCkpOwogICAgICAgICAgICAgaXQuYXBwZW5kVGV4dFRvU3RyaW5nQnVp
bGRlcihidWlsZGVyKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIC8vIGxvY2F0ZSB0
aGUgbm9kZSBhbmQgc3RhcnRpbmcgb2Zmc2V0IGZvciB0aGlzIHJlcGxhY2VkIHJhbmdlCi0gICAg
ICAgICAgICBpbnQgZXhjZXB0aW9uID0gMDsKLSAgICAgICAgICAgIE5vZGUqIG5vZGUgPSBpdC5y
YW5nZSgpLT5zdGFydENvbnRhaW5lcihleGNlcHRpb24pOwotICAgICAgICAgICAgQVNTRVJUKG5v
ZGUgPT0gaXQucmFuZ2UoKS0+ZW5kQ29udGFpbmVyKGV4Y2VwdGlvbikpOwotICAgICAgICAgICAg
aW50IG9mZnNldCA9IGl0LnJhbmdlKCktPnN0YXJ0T2Zmc2V0KGV4Y2VwdGlvbik7Ci0KKyAgICAg
ICAgICAgIE5vZGUqIG5vZGUgPSBpdC5yYW5nZSgpLT5zdGFydENvbnRhaW5lcigpOworICAgICAg
ICAgICAgQVNTRVJUKG5vZGUgPT0gaXQucmFuZ2UoKS0+ZW5kQ29udGFpbmVyKCkpOworICAgICAg
ICAgICAgaW50IG9mZnNldCA9IGl0LnJhbmdlKCktPnN0YXJ0T2Zmc2V0KCk7CiAgICAgICAgICAg
ICBpZiAocmVwbGFjZWROb2RlTmVlZHNDaGFyYWN0ZXIobm9kZS0+Y2hpbGROb2RlKG9mZnNldCkp
KQogICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKG9iamVjdFJlcGxhY2VtZW50Q2hhcmFj
dGVyKTsKICAgICAgICAgfQpAQCAtMTA3MSw4ICsxMDY3LDggQEAgaW50IEFjY2Vzc2liaWxpdHlP
YmplY3Q6Omxlbmd0aEZvclZpc2libGVQb3NpdGlvblJhbmdlKGNvbnN0IFZpc2libGVQb3NpdGlv
blJhbmcKICAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gbWFrZVJhbmdlKHZpc2libGVQb3NpdGlv
blJhbmdlLnN0YXJ0LCB2aXNpYmxlUG9zaXRpb25SYW5nZS5lbmQpOwogICAgIGZvciAoVGV4dEl0
ZXJhdG9yIGl0KHJhbmdlLmdldCgpKTsgIWl0LmF0RW5kKCk7IGl0LmFkdmFuY2UoKSkgewogICAg
ICAgICAvLyBub24temVybyBsZW5ndGggbWVhbnMgdGV4dHVhbCBub2RlLCB6ZXJvIGxlbmd0aCBt
ZWFucyByZXBsYWNlZCBub2RlIChBS0EgImF0dGFjaG1lbnRzIiBpbiBBWCkKLSAgICAgICAgaWYg
KGl0Lmxlbmd0aCgpKQotICAgICAgICAgICAgbGVuZ3RoICs9IGl0Lmxlbmd0aCgpOworICAgICAg
ICBpZiAoaXQudGV4dCgpLmxlbmd0aCgpKQorICAgICAgICAgICAgbGVuZ3RoICs9IGl0LnRleHQo
KS5sZW5ndGgoKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAvLyBsb2NhdGUgdGhlIG5v
ZGUgYW5kIHN0YXJ0aW5nIG9mZnNldCBmb3IgdGhpcyByZXBsYWNlZCByYW5nZQogICAgICAgICAg
ICAgaW50IGV4Y2VwdGlvbiA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IGI0ZjBmYjU0Yjk4ZDgzMGJkNTEzM2U5NjM0
ZTdmNGIyZjVjNTkyOTguLjZlMWU5M2I1OTlhZjU5ZmJhZTgwYmEwZmFiNDI5ZjI2YTc5NmFlNWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5oCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiRmxvYXRRdWFkLmgiCiAjaW5jbHVk
ZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgIlBhdGguaCIKLSNpbmNsdWRlICJUZXh0SXRlcmF0
b3IuaCIKKyNpbmNsdWRlICJUZXh0SXRlcmF0b3JCZWhhdmlvci5oIgogI2luY2x1ZGUgIlZpc2li
bGVQb3NpdGlvbi5oIgogI2luY2x1ZGUgIlZpc2libGVTZWxlY3Rpb24uaCIKICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggZTFhYzFlOGU0YmQ5ZDQ4NTI1
Y2EwZjc0ZWU0NTRkMmZmMjhhOWQ5Ni4uZmM5MDc2NzBjNDZjNWY4YTMzNWUxNTRiOTUxYmFhYzE3
YzE0NWI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC05Nyw2ICs5Nyw3IEBACiAjaW5jbHVk
ZSAiU1ZHU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJUZXh0Q29u
dHJvbElubmVyRWxlbWVudHMuaCIKKyNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRl
ICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgPHd0
Zi9TdGRMaWJFeHRyYXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5tbSBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyQmFzZS5t
bQppbmRleCA4MTdlOTUzNDAyZDEyMTgxMDAyMzZkNTg3ZWQ3MzRkM2I1YmRiYmJkLi5lNDc2ZDhm
MGRmM2UzZjAwZjk4MjhkZTU1ZGQ3NmUwNjFjNzdhMjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlckJhc2Uu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJCYXNlLm1tCkBAIC02Niw3ICs2Niw2IEBACiAjaW1wb3J0ICJTaW1wbGVG
b250RGF0YS5oIgogI2ltcG9ydCAiVGV4dENoZWNrZXJDbGllbnQuaCIKICNpbXBvcnQgIlRleHRD
aGVja2luZ0hlbHBlci5oIgotI2ltcG9ydCAiVGV4dEl0ZXJhdG9yLmgiCiAjaW1wb3J0ICJWaXNp
YmxlVW5pdHMuaCIKICNpbXBvcnQgIldlYkNvcmVGcmFtZVZpZXcuaCIKICNpbXBvcnQgIldlYkNv
cmVPYmpDRXh0cmFzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmlu
ZGV4IGQ0MDI5MGE0MmYwZWQxZTQ4NTkzZGM3Nzk0MjBkZTQwYTAxYjA2YmIuLmM4YmIzNDQwZGU4
Y2JmM2U3NDBlNGE5ZTJkYmVhZDg2ZmE5NzE1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tCkBAIC0xMDY5LDcgKzEwNjksNyBAQCAtIChOU0F0dHJpYnV0ZWRTdHJp
bmcqKWRvQVhBdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlOihpZCl0ZXh0TWFya2Vy
UmFuZwogICAgICAgICBpbnQgb2Zmc2V0ID0gaXQucmFuZ2UoKS0+c3RhcnRPZmZzZXQoZXhjZXB0
aW9uKTsKICAgICAgICAgCiAgICAgICAgIC8vIG5vbi16ZXJvIGxlbmd0aCBtZWFucyB0ZXh0dWFs
IG5vZGUsIHplcm8gbGVuZ3RoIG1lYW5zIHJlcGxhY2VkIG5vZGUgKEFLQSAiYXR0YWNobWVudHMi
IGluIEFYKQotICAgICAgICBpZiAoaXQubGVuZ3RoKCkgIT0gMCkgeworICAgICAgICBpZiAoaXQu
dGV4dCgpLmxlbmd0aCgpKSB7CiAgICAgICAgICAgICAvLyBBZGQgdGhlIHRleHQgb2YgdGhlIGxp
c3QgbWFya2VyIGl0ZW0gaWYgbmVjZXNzYXJ5LgogICAgICAgICAgICAgU3RyaW5nIGxpc3RNYXJr
ZXJUZXh0ID0gbV9vYmplY3QtPmxpc3RNYXJrZXJUZXh0Rm9yTm9kZUFuZFBvc2l0aW9uKG5vZGUs
IFZpc2libGVQb3NpdGlvbihpdC5yYW5nZSgpLT5zdGFydFBvc2l0aW9uKCkpKTsKICAgICAgICAg
ICAgIGlmICghbGlzdE1hcmtlclRleHQuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmlu
ZGV4IDM0MDhkZjU3NTVkMDYxM2Q4Y2Q2ZTZhMjU2YTM2NWI1MzZjYjhmOWIuLjg5N2U3YTA0ZTdi
MGNlNTM4OWI5MjY3MzE4Zjk3M2Y4NGFlY2RiYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAg
LTczLDYgKzczLDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlUHJv
cGVydGllcy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKKyNpbmNsdWRlICJUZXh0SXRl
cmF0b3IuaCIKICNpbmNsdWRlICJWb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50
LmgiCiAjaW5jbHVkZSAiWE1MTlNOYW1lcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGNlYWU1MzYz
N2QzMzgyNDgwZDFiZWVmMzY5ZmZmZGQ3YWZkYmRmMmUuLmE5OWFlYTQ1YjIwNzk1OThhNDZkNjFj
M2YxMGI5YzRhYzFiOTljZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTYxLDYgKzYxLDcgQEAKICNp
bmNsdWRlICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24uaCIKICNpbmNsdWRlICJQcm9ncmVzc0V2ZW50LmgiCisjaW5jbHVkZSAiUmFuZ2UuaCIK
ICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1
ZGUgIlJlbmRlclRleHRDb250cm9sLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
UG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAppbmRleCA2ZjRj
NjJhM2Q1YmE3ODFhMzI1ZWE0MjQxYTdkM2IyNTliYjdmOGUxLi45ZjA4YzYyMzI1YjYwYTcwZmU4
MzIxNWIxODIyYjgwZjQ3MDk3YWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9z
aXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAgLTkzOSwx
NiArOTM5LDE2IEBAIGJvb2wgUG9zaXRpb246OmlzQ2FuZGlkYXRlKCkgY29uc3QKICAgICAgICAg
cmV0dXJuICFub2RlSXNVc2VyU2VsZWN0Tm9uZShkZXByZWNhdGVkTm9kZSgpKSAmJiBhdEZpcnN0
RWRpdGluZ1Bvc2l0aW9uRm9yTm9kZSgpOwogCiAgICAgaWYgKHJlbmRlcmVyLT5pc1JlbmRlckJs
b2NrRmxvdygpKSB7Ci0gICAgICAgIFJlbmRlckJsb2NrJiBibG9jayA9IHRvUmVuZGVyQmxvY2so
KnJlbmRlcmVyKTsKKyAgICAgICAgUmVuZGVyQmxvY2tGbG93JiBibG9jayA9IHRvUmVuZGVyQmxv
Y2tGbG93KCpyZW5kZXJlcik7CiAgICAgICAgIGlmIChibG9jay5sb2dpY2FsSGVpZ2h0KCkgfHwg
bV9hbmNob3JOb2RlLT5oYXNUYWdOYW1lKGJvZHlUYWcpKSB7CiAgICAgICAgICAgICBpZiAoIVBv
c2l0aW9uOjpoYXNSZW5kZXJlZE5vbkFub255bW91c0Rlc2NlbmRhbnRzV2l0aEhlaWdodChibG9j
aykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGF0Rmlyc3RFZGl0aW5nUG9zaXRpb25Gb3JOb2Rl
KCkgJiYgIVBvc2l0aW9uOjpub2RlSXNVc2VyU2VsZWN0Tm9uZShkZXByZWNhdGVkTm9kZSgpKTsK
ICAgICAgICAgICAgIHJldHVybiBtX2FuY2hvck5vZGUtPmhhc0VkaXRhYmxlU3R5bGUoKSAmJiAh
UG9zaXRpb246Om5vZGVJc1VzZXJTZWxlY3ROb25lKGRlcHJlY2F0ZWROb2RlKCkpICYmIGF0RWRp
dGluZ0JvdW5kYXJ5KCk7CiAgICAgICAgIH0KLSAgICB9IGVsc2UKLSAgICAgICAgcmV0dXJuIG1f
YW5jaG9yTm9kZS0+aGFzRWRpdGFibGVTdHlsZSgpICYmICFQb3NpdGlvbjo6bm9kZUlzVXNlclNl
bGVjdE5vbmUoZGVwcmVjYXRlZE5vZGUoKSkgJiYgYXRFZGl0aW5nQm91bmRhcnkoKTsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KIAotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4g
bV9hbmNob3JOb2RlLT5oYXNFZGl0YWJsZVN0eWxlKCkgJiYgIVBvc2l0aW9uOjpub2RlSXNVc2Vy
U2VsZWN0Tm9uZShkZXByZWNhdGVkTm9kZSgpKSAmJiBhdEVkaXRpbmdCb3VuZGFyeSgpOwogfQog
CiBib29sIFBvc2l0aW9uOjppc1JlbmRlcmVkQ2hhcmFjdGVyKCkgY29uc3QKQEAgLTEwNjgsNyAr
MTA2OCw3IEBAIFBvc2l0aW9uIFBvc2l0aW9uOjpsZWFkaW5nV2hpdGVzcGFjZVBvc2l0aW9uKEVB
ZmZpbml0eSBhZmZpbml0eSwgYm9vbCBjb25zaWRlck5vCiAgICAgaWYgKHByZXYgIT0gKnRoaXMg
JiYgaW5TYW1lRW5jbG9zaW5nQmxvY2tGbG93RWxlbWVudChkZXByZWNhdGVkTm9kZSgpLCBwcmV2
LmRlcHJlY2F0ZWROb2RlKCkpICYmIHByZXYuZGVwcmVjYXRlZE5vZGUoKS0+aXNUZXh0Tm9kZSgp
KSB7CiAgICAgICAgIFN0cmluZyBzdHJpbmcgPSB0b1RleHQocHJldi5kZXByZWNhdGVkTm9kZSgp
KS0+ZGF0YSgpOwogICAgICAgICBVQ2hhciBjID0gc3RyaW5nW3ByZXYuZGVwcmVjYXRlZEVkaXRp
bmdPZmZzZXQoKV07Ci0gICAgICAgIGlmIChjb25zaWRlck5vbkNvbGxhcHNpYmxlV2hpdGVzcGFj
ZSA/IChpc1NwYWNlT3JOZXdsaW5lKGMpIHx8IGMgPT0gbm9CcmVha1NwYWNlKSA6IGlzQ29sbGFw
c2libGVXaGl0ZXNwYWNlKGMpKQorICAgICAgICBpZiAoY29uc2lkZXJOb25Db2xsYXBzaWJsZVdo
aXRlc3BhY2UgPyAoaXNTcGFjZU9yTmV3bGluZShjKSB8fCBjID09IG5vQnJlYWtTcGFjZSkgOiBk
ZXByZWNhdGVkSXNDb2xsYXBzaWJsZVdoaXRlc3BhY2UoYykpCiAgICAgICAgICAgICBpZiAoaXNF
ZGl0YWJsZVBvc2l0aW9uKHByZXYpKQogICAgICAgICAgICAgICAgIHJldHVybiBwcmV2OwogICAg
IH0KQEAgLTEwODcsNyArMTA4Nyw3IEBAIFBvc2l0aW9uIFBvc2l0aW9uOjp0cmFpbGluZ1doaXRl
c3BhY2VQb3NpdGlvbihFQWZmaW5pdHksIGJvb2wgY29uc2lkZXJOb25Db2xsYXBzCiAgICAgVUNo
YXIgYyA9IHYuY2hhcmFjdGVyQWZ0ZXIoKTsKICAgICAvLyBUaGUgc3BhY2UgbXVzdCBub3QgYmUg
aW4gYW5vdGhlciBwYXJhZ3JhcGggYW5kIGl0IG11c3QgYmUgZWRpdGFibGUuCiAgICAgaWYgKCFp
c0VuZE9mUGFyYWdyYXBoKHYpICYmIHYubmV4dChDYW5ub3RDcm9zc0VkaXRpbmdCb3VuZGFyeSku
aXNOb3ROdWxsKCkpCi0gICAgICAgIGlmIChjb25zaWRlck5vbkNvbGxhcHNpYmxlV2hpdGVzcGFj
ZSA/IChpc1NwYWNlT3JOZXdsaW5lKGMpIHx8IGMgPT0gbm9CcmVha1NwYWNlKSA6IGlzQ29sbGFw
c2libGVXaGl0ZXNwYWNlKGMpKQorICAgICAgICBpZiAoY29uc2lkZXJOb25Db2xsYXBzaWJsZVdo
aXRlc3BhY2UgPyAoaXNTcGFjZU9yTmV3bGluZShjKSB8fCBjID09IG5vQnJlYWtTcGFjZSkgOiBk
ZXByZWNhdGVkSXNDb2xsYXBzaWJsZVdoaXRlc3BhY2UoYykpCiAgICAgICAgICAgICByZXR1cm4g
KnRoaXM7CiAgICAgCiAgICAgcmV0dXJuIFBvc2l0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAppbmRl
eCBjM2U4YTU3ODYyZTBlMjEwMjcwZDJlNzcwNzhlMDU5M2UxZTk0M2M1Li40ZmU3MTllOTM5MGFl
OWE5OWQzN2E4Y2EzNWM4OTBjNWVjMzNjOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vUmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTE1NzAs
NiArMTU3MCw4IEBAIE5vZGUqIFJhbmdlOjpmaXJzdE5vZGUoKSBjb25zdAogICAgICAgICByZXR1
cm4gMDsKICAgICBpZiAobV9zdGFydC5jb250YWluZXIoKS0+b2Zmc2V0SW5DaGFyYWN0ZXJzKCkp
CiAgICAgICAgIHJldHVybiBtX3N0YXJ0LmNvbnRhaW5lcigpOworICAgIC8vIEZJWE1FOiBBIHJl
bmRlcmVyLWJhc2VkIHJ1bGUgaXMgY29tcGxldGVseSBvdXQgb2YgcGxhY2UgaGVyZS4KKyAgICAv
LyBGb3Igb25lIHRoaW5nLCB0aGUgcmVuZGVyZXIgY291bGQgYmUgb3V0IG9mIGRhdGUgaWYgdGhl
IERPTSB3YXMgcmVjZW50bHkgY2hhbmdlZC4KICAgICBpZiAoaXNSZW5kZXJlclJlcGxhY2VkRWxl
bWVudChtX3N0YXJ0LmNvbnRhaW5lcigpLT5yZW5kZXJlcigpKSkKICAgICAgICAgcmV0dXJuIG1f
c3RhcnQuY29udGFpbmVyKCk7CiAgICAgaWYgKE5vZGUqIGNoaWxkID0gbV9zdGFydC5jb250YWlu
ZXIoKS0+Y2hpbGROb2RlKG1fc3RhcnQub2Zmc2V0KCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BbHRlcm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvQWx0ZXJuYXRpdmVUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggMmU3ZWM0NjJh
ZWVhNjFiOGI4NTIzYTdiM2VmOWQ5NzAxYWM0OGM3NS4uNTAyMTYyMzFkOTZiNDcxODEwZGZhMmNk
NWRjOTU2NGU0MzZkMTA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BbHRl
cm5hdGl2ZVRleHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Fs
dGVybmF0aXZlVGV4dENvbnRyb2xsZXIuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAi
VGV4dENoZWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJUZXh0Q2hlY2tpbmdIZWxwZXIuaCIKICNp
bmNsdWRlICJUZXh0RXZlbnQuaCIKKyNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRl
ICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgIm1h
cmt1cC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApp
bmRleCA5NTMxMGY1ZjI2OWNmOTczNjYxMGU3MjMwMGEzZjI1NzY3YmIyZDYyLi5hYWM5MGY3ODdj
ZDUyYjZmZWU0ODk4MjNiNDI2M2VhNWRlMjA5NjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIlN0
eWxlUHJvcGVydGllcy5oIgogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIuaCIKICNpbmNsdWRlICJU
ZXh0LmgiCisjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dE5vZGVUcmF2
ZXJzYWwuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJodG1sZWRpdGlu
Zy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNw
cAppbmRleCAzMTQyODNkMzNhODUwY2Q4MTM3YWVhMzQ3ZjkwMWY3ZWM2ZTg0YmM1Li4wMDIxZWMz
OWU5MmQxZjcxOTczYjI1NDY1MTRmMmIyMDZiZGRkMTAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtNzczLDkgKzc3Myw5IEBAIHZv
aWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnByZXBhcmVXaGl0ZXNwYWNlQXRQb3NpdGlvbkZvclNw
bGl0KFBvc2l0aW9uJiBwb3NpdGlvCiAgICAgVmlzaWJsZVBvc2l0aW9uIHByZXZpb3VzVmlzaWJs
ZVBvcyh2aXNpYmxlUG9zLnByZXZpb3VzKCkpOwogICAgIFBvc2l0aW9uIHByZXZpb3VzKHByZXZp
b3VzVmlzaWJsZVBvcy5kZWVwRXF1aXZhbGVudCgpKTsKICAgICAKLSAgICBpZiAoaXNDb2xsYXBz
aWJsZVdoaXRlc3BhY2UocHJldmlvdXNWaXNpYmxlUG9zLmNoYXJhY3RlckFmdGVyKCkpICYmIHBy
ZXZpb3VzLmRlcHJlY2F0ZWROb2RlKCktPmlzVGV4dE5vZGUoKSAmJiAhcHJldmlvdXMuZGVwcmVj
YXRlZE5vZGUoKS0+aGFzVGFnTmFtZShiclRhZykpCisgICAgaWYgKGRlcHJlY2F0ZWRJc0NvbGxh
cHNpYmxlV2hpdGVzcGFjZShwcmV2aW91c1Zpc2libGVQb3MuY2hhcmFjdGVyQWZ0ZXIoKSkgJiYg
cHJldmlvdXMuZGVwcmVjYXRlZE5vZGUoKS0+aXNUZXh0Tm9kZSgpICYmICFwcmV2aW91cy5kZXBy
ZWNhdGVkTm9kZSgpLT5oYXNUYWdOYW1lKGJyVGFnKSkKICAgICAgICAgcmVwbGFjZVRleHRJbk5v
ZGVQcmVzZXJ2aW5nTWFya2Vycyh0b1RleHQocHJldmlvdXMuZGVwcmVjYXRlZE5vZGUoKSksIHBy
ZXZpb3VzLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIDEsIG5vbkJyZWFraW5nU3BhY2VTdHJp
bmcoKSk7Ci0gICAgaWYgKGlzQ29sbGFwc2libGVXaGl0ZXNwYWNlKHZpc2libGVQb3MuY2hhcmFj
dGVyQWZ0ZXIoKSkgJiYgcG9zaXRpb24uZGVwcmVjYXRlZE5vZGUoKS0+aXNUZXh0Tm9kZSgpICYm
ICFwb3NpdGlvbi5kZXByZWNhdGVkTm9kZSgpLT5oYXNUYWdOYW1lKGJyVGFnKSkKKyAgICBpZiAo
ZGVwcmVjYXRlZElzQ29sbGFwc2libGVXaGl0ZXNwYWNlKHZpc2libGVQb3MuY2hhcmFjdGVyQWZ0
ZXIoKSkgJiYgcG9zaXRpb24uZGVwcmVjYXRlZE5vZGUoKS0+aXNUZXh0Tm9kZSgpICYmICFwb3Np
dGlvbi5kZXByZWNhdGVkTm9kZSgpLT5oYXNUYWdOYW1lKGJyVGFnKSkKICAgICAgICAgcmVwbGFj
ZVRleHRJbk5vZGVQcmVzZXJ2aW5nTWFya2Vycyh0b1RleHQocG9zaXRpb24uZGVwcmVjYXRlZE5v
ZGUoKSksIHBvc2l0aW9uLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCksIDEsIG5vbkJyZWFraW5n
U3BhY2VTdHJpbmcoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCmluZGV4IGM1NjcyNjA0
NjI3ZGRhYzJlMDY2NDE0MmY0OGZkZWQ5ZjI0NzllNDkuLmQxMTVlZTg0MmJhMmI4ODlmMzdlNDMy
MTIzZWYwMGY3MGY4ZTUwMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMzcsNyArMzcs
NyBAQAogI2luY2x1ZGUgIkZpbmRPcHRpb25zLmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxlY3Rpb24u
aCIKICNpbmNsdWRlICJUZXh0Q2hlY2tpbmcuaCIKLSNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIK
KyNpbmNsdWRlICJUZXh0SXRlcmF0b3JCZWhhdmlvci5oIgogI2luY2x1ZGUgIlZpc2libGVTZWxl
Y3Rpb24uaCIKICNpbmNsdWRlICJXcml0aW5nRGlyZWN0aW9uLmgiCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvSFRNTEludGVyY2hhbmdlLmNwcAppbmRleCAyZjcyOTUxMThmMjQxMGRjOGEwZmU2
OGM4NzJlNmVjMDAwNDkzMDU2Li4zYmIwZmU5ZDIyZDM2ZjIyZTgzMmY5MGZkNWFjZmVkNDM0MGQ3
MzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0hUTUxJbnRlcmNoYW5nZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9IVE1MSW50ZXJjaGFuZ2UuY3BwCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgogI2luY2x1ZGUgIlRleHQuaCIK
ICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9D
aGFyYWN0ZXJOYW1lcy5oPgogCkBAIC01MCwxMCArNTEsMTAgQEAgU3RyaW5nIGNvbnZlcnRIVE1M
VGV4dFRvSW50ZXJjaGFuZ2VGb3JtYXQoY29uc3QgU3RyaW5nJiBpbiwgY29uc3QgVGV4dCogbm9k
ZSkKICAgICB1bnNpZ25lZCBjb25zdW1lZCA9IDA7CiAgICAgd2hpbGUgKGkgPCBpbi5sZW5ndGgo
KSkgewogICAgICAgICBjb25zdW1lZCA9IDE7Ci0gICAgICAgIGlmIChpc0NvbGxhcHNpYmxlV2hp
dGVzcGFjZShpbltpXSkpIHsKKyAgICAgICAgaWYgKGRlcHJlY2F0ZWRJc0NvbGxhcHNpYmxlV2hp
dGVzcGFjZShpbltpXSkpIHsKICAgICAgICAgICAgIC8vIGNvdW50IG51bWJlciBvZiBhZGpvaW5p
bmcgc3BhY2VzCiAgICAgICAgICAgICB1bnNpZ25lZCBqID0gaSArIDE7Ci0gICAgICAgICAgICB3
aGlsZSAoaiA8IGluLmxlbmd0aCgpICYmIGlzQ29sbGFwc2libGVXaGl0ZXNwYWNlKGluW2pdKSkK
KyAgICAgICAgICAgIHdoaWxlIChqIDwgaW4ubGVuZ3RoKCkgJiYgZGVwcmVjYXRlZElzQ29sbGFw
c2libGVXaGl0ZXNwYWNlKGluW2pdKSkKICAgICAgICAgICAgICAgICBqKys7CiAgICAgICAgICAg
ICB1bnNpZ25lZCBjb3VudCA9IGogLSBpOwogICAgICAgICAgICAgY29uc3VtZWQgPSBjb3VudDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxpbmdDb3JyZWN0aW9uQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NwZWxsaW5nQ29ycmVjdGlvbkNvbW1h
bmQuY3BwCmluZGV4IDk0M2U0ODM1N2M1MmU5ZTk2YzlhMDAxYmZmMGU3MGM2N2EyNjNlMTUuLjU3
MGMyMmUxOWYxYzExNmY1MGUxNDVlNDI2YzQ5ZmU2MzYwN2M3ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmNwcApAQCAtMzMs
NiArMzMsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQuaCIKICNpbmNsdWRlICJTZXRTZWxlY3Rpb25Db21tYW5kLmgiCisjaW5jbHVkZSAi
VGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmNwcAppbmRleCAwYjhjYWIzN2Y3
MzcyYzJlYTRlNjZkMzZkYmRjYTc5MWVmNDExNjczLi5mNTYxN2JkNjUyNTdkYzE3OTI0Yzg3NTMz
MjBiMTU0ODJlYjMzYzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRJ
dGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuY3Bw
CkBAIC01NDAsMTUgKzU0MCwxNSBAQCBib29sIFRleHRJdGVyYXRvcjo6aGFuZGxlVGV4dE5vZGUo
KQogICAgICAgICAvLyBUaGlzIGNvZGUgYWltcyB0byBwcm9kdWNlIHNhbWUgcmVzdWx0cyBhcyBo
YW5kbGVUZXh0Qm94KCkgYmVsb3cgc28gdGVzdCByZXN1bHRzIGRvbid0IGNoYW5nZS4gSXQgZG9l
cyBub3QgbWFrZSBtdWNoIGxvZ2ljYWwgc2Vuc2UuCiAgICAgICAgIHVuc2lnbmVkIHJ1bkVuZCA9
IG1fb2Zmc2V0OwogICAgICAgICB1bnNpZ25lZCBydW5TdGFydCA9IG1fb2Zmc2V0OwotICAgICAg
ICB3aGlsZSAocnVuRW5kIDwgc3RyLmxlbmd0aCgpICYmIChpc0NvbGxhcHNpYmxlV2hpdGVzcGFj
ZShzdHJbcnVuRW5kXSkgfHwgc3RyW3J1bkVuZF0gPT0gJ1x0JykpCisgICAgICAgIHdoaWxlIChy
dW5FbmQgPCBzdHIubGVuZ3RoKCkgJiYgKGRlcHJlY2F0ZWRJc0NvbGxhcHNpYmxlV2hpdGVzcGFj
ZShzdHJbcnVuRW5kXSkgfHwgc3RyW3J1bkVuZF0gPT0gJ1x0JykpCiAgICAgICAgICAgICArK3J1
bkVuZDsKLSAgICAgICAgYm9vbCBhZGRTcGFjZUZvclByZXZpb3VzID0gbV9sYXN0VGV4dE5vZGVF
bmRlZFdpdGhDb2xsYXBzZWRTcGFjZSAmJiBtX2xhc3RDaGFyYWN0ZXIgJiYgIWlzQ29sbGFwc2li
bGVXaGl0ZXNwYWNlKG1fbGFzdENoYXJhY3Rlcik7CisgICAgICAgIGJvb2wgYWRkU3BhY2VGb3JQ
cmV2aW91cyA9IG1fbGFzdFRleHROb2RlRW5kZWRXaXRoQ29sbGFwc2VkU3BhY2UgJiYgbV9sYXN0
Q2hhcmFjdGVyICYmICFkZXByZWNhdGVkSXNDb2xsYXBzaWJsZVdoaXRlc3BhY2UobV9sYXN0Q2hh
cmFjdGVyKTsKICAgICAgICAgaWYgKHJ1bkVuZCA+IHJ1blN0YXJ0IHx8IGFkZFNwYWNlRm9yUHJl
dmlvdXMpIHsKICAgICAgICAgICAgIGlmIChydW5FbmQgPT0gc3RyLmxlbmd0aCgpKSB7CiAgICAg
ICAgICAgICAgICAgbV9sYXN0VGV4dE5vZGVFbmRlZFdpdGhDb2xsYXBzZWRTcGFjZSA9IHRydWU7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBib29sIGFkZFNwYWNlRm9yQ3VycmVudCA9IHJ1blN0YXJ0IHx8IChtX2xhc3RDaGFyYWN0ZXIg
JiYgIWlzQ29sbGFwc2libGVXaGl0ZXNwYWNlKG1fbGFzdENoYXJhY3RlcikpOworICAgICAgICAg
ICAgYm9vbCBhZGRTcGFjZUZvckN1cnJlbnQgPSBydW5TdGFydCB8fCAobV9sYXN0Q2hhcmFjdGVy
ICYmICFkZXByZWNhdGVkSXNDb2xsYXBzaWJsZVdoaXRlc3BhY2UobV9sYXN0Q2hhcmFjdGVyKSk7
CiAgICAgICAgICAgICBpZiAoYWRkU3BhY2VGb3JDdXJyZW50IHx8IGFkZFNwYWNlRm9yUHJldmlv
dXMpIHsKICAgICAgICAgICAgICAgICBlbWl0Q2hhcmFjdGVyKCcgJywgbV9ub2RlLCAwLCBydW5T
dGFydCwgcnVuRW5kKTsKICAgICAgICAgICAgICAgICBtX29mZnNldCA9IHJ1bkVuZDsKQEAgLTU1
Niw3ICs1NTYsNyBAQCBib29sIFRleHRJdGVyYXRvcjo6aGFuZGxlVGV4dE5vZGUoKQogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgcnVuU3RhcnQgPSBydW5FbmQ7CiAgICAgICAgIH0KLSAgICAg
ICAgd2hpbGUgKHJ1bkVuZCA8IHN0ci5sZW5ndGgoKSAmJiAhaXNDb2xsYXBzaWJsZVdoaXRlc3Bh
Y2Uoc3RyW3J1bkVuZF0pKQorICAgICAgICB3aGlsZSAocnVuRW5kIDwgc3RyLmxlbmd0aCgpICYm
ICFkZXByZWNhdGVkSXNDb2xsYXBzaWJsZVdoaXRlc3BhY2Uoc3RyW3J1bkVuZF0pKQogICAgICAg
ICAgICAgKytydW5FbmQ7CiAgICAgICAgIGlmIChydW5TdGFydCA8IHN0ci5sZW5ndGgoKSkKICAg
ICAgICAgICAgIGVtaXRUZXh0KG1fbm9kZSwgcmVuZGVyZXIsIHJ1blN0YXJ0LCBydW5FbmQpOwpA
QCAtNjE0LDcgKzYxNCw3IEBAIHZvaWQgVGV4dEl0ZXJhdG9yOjpoYW5kbGVUZXh0Qm94KCkKICAg
ICAgICAgSW5saW5lVGV4dEJveCogZmlyc3RUZXh0Qm94ID0gcmVuZGVyZXItPmNvbnRhaW5zUmV2
ZXJzZWRUZXh0KCkgPyAobV9zb3J0ZWRUZXh0Qm94ZXMuaXNFbXB0eSgpID8gMCA6IG1fc29ydGVk
VGV4dEJveGVzWzBdKSA6IHJlbmRlcmVyLT5maXJzdFRleHRCb3goKTsKICAgICAgICAgYm9vbCBu
ZWVkU3BhY2UgPSBtX2xhc3RUZXh0Tm9kZUVuZGVkV2l0aENvbGxhcHNlZFNwYWNlCiAgICAgICAg
ICAgICB8fCAobV90ZXh0Qm94ID09IGZpcnN0VGV4dEJveCAmJiB0ZXh0Qm94U3RhcnQgPT0gcnVu
U3RhcnQgJiYgcnVuU3RhcnQgPiAwKTsKLSAgICAgICAgaWYgKG5lZWRTcGFjZSAmJiAhaXNDb2xs
YXBzaWJsZVdoaXRlc3BhY2UobV9sYXN0Q2hhcmFjdGVyKSAmJiBtX2xhc3RDaGFyYWN0ZXIpIHsK
KyAgICAgICAgaWYgKG5lZWRTcGFjZSAmJiAhZGVwcmVjYXRlZElzQ29sbGFwc2libGVXaGl0ZXNw
YWNlKG1fbGFzdENoYXJhY3RlcikgJiYgbV9sYXN0Q2hhcmFjdGVyKSB7CiAgICAgICAgICAgICBp
ZiAobV9sYXN0VGV4dE5vZGUgPT0gbV9ub2RlICYmIHJ1blN0YXJ0ID4gMCAmJiBzdHJbcnVuU3Rh
cnQgLSAxXSA9PSAnICcpIHsKICAgICAgICAgICAgICAgICB1bnNpZ25lZCBzcGFjZVJ1blN0YXJ0
ID0gcnVuU3RhcnQgLSAxOwogICAgICAgICAgICAgICAgIHdoaWxlIChzcGFjZVJ1blN0YXJ0ID4g
MCAmJiBzdHJbc3BhY2VSdW5TdGFydCAtIDFdID09ICcgJykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Rl
eHRJdGVyYXRvci5oCmluZGV4IGI5NDAyZDYyNzE5NTBjMzRkNmVlOThiZjIxYjU4YWVlNmVhMGM4
NTkuLjc0OWYxMjczMmY2NjVjNTU1ZGEyMDhlZWI0ZDEwYWJhYjVlYzNlODYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dEl0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0SXRlcmF0b3IuaApAQCAtMzgsMTkgKzM4LDYgQEAgY2xhc3MgSW5saW5l
VGV4dEJveDsKIGNsYXNzIFJlbmRlclRleHQ7CiBjbGFzcyBSZW5kZXJUZXh0RnJhZ21lbnQ7CiAK
LS8vIEZJWE1FOiBDYW4ndCByZWFsbHkgYW5zd2VyIHRoaXMgcXVlc3Rpb24gY29ycmVjdGx5IHdp
dGhvdXQga25vd2luZyB0aGUgd2hpdGUtc3BhY2UgbW9kZS4KLS8vIEZJWE1FOiBNb3ZlIHRoaXMg
c29tZXdoZXJlIGVsc2UgaW4gdGhlIGVkaXRpbmcgZGlyZWN0b3J5LiBJdCBkb2Vzbid0IGJlbG9u
ZyBoZXJlLgotaW5saW5lIGJvb2wgaXNDb2xsYXBzaWJsZVdoaXRlc3BhY2UoVUNoYXIgYykKLXsK
LSAgICBzd2l0Y2ggKGMpIHsKLSAgICAgICAgY2FzZSAnICc6Ci0gICAgICAgIGNhc2UgJ1xuJzoK
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIH0KLX0KLQogU3RyaW5nIHBsYWluVGV4dChjb25zdCBSYW5nZSos
IFRleHRJdGVyYXRvckJlaGF2aW9yID0gVGV4dEl0ZXJhdG9yRGVmYXVsdEJlaGF2aW9yLCBib29s
IGlzRGlzcGxheVN0cmluZyA9IGZhbHNlKTsKIFBhc3NSZWZQdHI8UmFuZ2U+IGZpbmRQbGFpblRl
eHQoY29uc3QgUmFuZ2UqLCBjb25zdCBTdHJpbmcmLCBGaW5kT3B0aW9ucyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL1R5cGluZ0NvbW1hbmQuY3BwCmluZGV4IGNlMGUzYjhhYzZjMDkyOWUyNTBl
NGNhOWE2MWM3YTgyYTZhNDk4YjEuLmJhMTA3YzE4ODg4MGQ0MDIxMGU2NmI0YTU3OTE3YjMwMTM0
YmNlZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcApAQCAtMzcs
NiArMzcsNyBAQAogI2luY2x1ZGUgIkluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQuaCIK
ICNpbmNsdWRlICJJbnNlcnRUZXh0Q29tbWFuZC5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQu
aCIKKyNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIK
ICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1Zpc2libGVVbml0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVV
bml0cy5jcHAKaW5kZXggNGI0OTU0MTI2Y2ZmOTJjZGMxOTJhYmQxYTQzODM4MjFjOThlNzcxZi4u
YjA0MjQ3YjM4MTg3NDcwZjgyMTBmMmU3Nzc4Y2Y4MjczYzYzOWJmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9WaXNpYmxlVW5pdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVmlzaWJsZVVuaXRzLmNwcApAQCAtNTMxLDcgKzUzMSw3IEBAIHN0YXRpYyBWaXNp
YmxlUG9zaXRpb24gcHJldmlvdXNCb3VuZGFyeShjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMsIEJv
dW5kYXJ5U2VhcmNoCiAgICAgICAgICAgICBwcmVwZW5kKHN0cmluZywgaXQudGV4dCgpKTsKICAg
ICAgICAgZWxzZSB7CiAgICAgICAgICAgICAvLyBUcmVhdCBidWxsZXRzIHVzZWQgaW4gdGhlIHRl
eHQgc2VjdXJpdHkgbW9kZSBhcyByZWd1bGFyIGNoYXJhY3RlcnMgd2hlbiBsb29raW5nIGZvciBi
b3VuZGFyaWVzCi0gICAgICAgICAgICBwcmVwZW5kUmVwZWF0ZWRDaGFyYWN0ZXIoc3RyaW5nLCAn
eCcsIGl0Lmxlbmd0aCgpKTsKKyAgICAgICAgICAgIHByZXBlbmRSZXBlYXRlZENoYXJhY3Rlcihz
dHJpbmcsICd4JywgaXQudGV4dCgpLmxlbmd0aCgpKTsKICAgICAgICAgfQogICAgICAgICBpZiAo
c3RyaW5nLnNpemUoKSA+IHN1ZmZpeExlbmd0aCkgewogICAgICAgICAgICAgbmV4dCA9IHNlYXJj
aEZ1bmN0aW9uKFN0cmluZ1ZpZXcoc3RyaW5nLmRhdGEoKSwgc3RyaW5nLnNpemUoKSksIHN0cmlu
Zy5zaXplKCkgLSBzdWZmaXhMZW5ndGgsIE1heUhhdmVNb3JlQ29udGV4dCwgbmVlZE1vcmVDb250
ZXh0KTsKQEAgLTYwNCw3ICs2MDQsNyBAQCBzdGF0aWMgVmlzaWJsZVBvc2l0aW9uIG5leHRCb3Vu
ZGFyeShjb25zdCBWaXNpYmxlUG9zaXRpb24mIGMsIEJvdW5kYXJ5U2VhcmNoRnVuYwogICAgICAg
ICAgICAgYXBwZW5kKHN0cmluZywgaXQudGV4dCgpKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAg
ICAgICAvLyBUcmVhdCBidWxsZXRzIHVzZWQgaW4gdGhlIHRleHQgc2VjdXJpdHkgbW9kZSBhcyBy
ZWd1bGFyIGNoYXJhY3RlcnMgd2hlbiBsb29raW5nIGZvciBib3VuZGFyaWVzCi0gICAgICAgICAg
ICBhcHBlbmRSZXBlYXRlZENoYXJhY3RlcihzdHJpbmcsICd4JywgaXQubGVuZ3RoKCkpOworICAg
ICAgICAgICAgYXBwZW5kUmVwZWF0ZWRDaGFyYWN0ZXIoc3RyaW5nLCAneCcsIGl0LnRleHQoKS5s
ZW5ndGgoKSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHN0cmluZy5zaXplKCkgPiBwcmVmaXhM
ZW5ndGgpIHsKICAgICAgICAgICAgIG5leHQgPSBzZWFyY2hGdW5jdGlvbihTdHJpbmdWaWV3KHN0
cmluZy5kYXRhKCksIHN0cmluZy5zaXplKCkpLCBwcmVmaXhMZW5ndGgsIE1heUhhdmVNb3JlQ29u
dGV4dCwgbmVlZE1vcmVDb250ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvaHRtbGVkaXRpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5j
cHAKaW5kZXggZmVkZDhjN2FiMTk2Mjk5YjRmMGM4ODBmNTQxM2ExNWI5N2QxNTM5Mi4uMDUwNTgz
ZGM5OTMyYTRiYjM0Y2U5ZTY1YjJjNWY1ZDY5NWU2NDBkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9odG1sZWRpdGluZy5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNs
dWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRl
IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvaHRtbGVkaXRpbmcuaAppbmRleCAzMTdlOTY5OGI3YTlhZDg0OTIwMzM0NDNl
YjIzMWQwMGY4MDliNzM0Li4zNjNkYjhhMTE5NmEzZjFmMTVkZDZiYWE4YjAwODdlOWNmOTA4ZWVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2h0bWxlZGl0aW5nLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9odG1sZWRpdGluZy5oCkBAIC00NCw3ICs0NCw2IEBAIGNs
YXNzIFJhbmdlOwogY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogY2xhc3MgVmlzaWJsZVNlbGVjdGlv
bjsKIAotCiAvLyBUaGlzIGZpbGUgY29udGFpbnMgYSBzZXQgb2YgaGVscGVyIGZ1bmN0aW9ucyB1
c2VkIGJ5IHRoZSBlZGl0aW5nIGNvbW1hbmRzCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTIx
NCw5ICsyMTMsNyBAQCBOb2RlKiBlbmNsb3NpbmdMaXN0Q2hpbGQoTm9kZSopOwogLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogLy8gRWxlbWVudAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotICAgIAotLy8gRnVu
Y3Rpb25zIHJldHVybmluZyBFbGVtZW50Ci0gICAgCisKIFBhc3NSZWZQdHI8RWxlbWVudD4gY3Jl
YXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmKTsKIFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRl
VGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBQYXNzUmVmUHRyPE5vZGU+IHRhYlRleHROb2RlKTsK
IFBhc3NSZWZQdHI8RWxlbWVudD4gY3JlYXRlVGFiU3BhbkVsZW1lbnQoRG9jdW1lbnQmLCBjb25z
dCBTdHJpbmcmIHRhYlRleHQpOwpAQCAtMjI1LDI2ICsyMjIsMzAgQEAgUGFzc1JlZlB0cjxFbGVt
ZW50PiBjcmVhdGVCbG9ja1BsYWNlaG9sZGVyRWxlbWVudChEb2N1bWVudCYpOwogRWxlbWVudCog
ZWRpdGFibGVSb290Rm9yUG9zaXRpb24oY29uc3QgUG9zaXRpb24mLCBFZGl0YWJsZVR5cGUgPSBD
b250ZW50SXNFZGl0YWJsZSk7CiBFbGVtZW50KiB1bnNwbGl0dGFibGVFbGVtZW50Rm9yUG9zaXRp
b24oY29uc3QgUG9zaXRpb24mKTsKIAotLy8gQm9vbGVhbiBmdW5jdGlvbnMgb24gRWxlbWVudAot
ICAgIAogYm9vbCBjYW5NZXJnZUxpc3RzKEVsZW1lbnQqIGZpcnN0TGlzdCwgRWxlbWVudCogc2Vj
b25kTGlzdCk7CiAgICAgCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAvLyBWaXNpYmxlU2VsZWN0aW9u
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLS8vIEZ1bmN0aW9ucyByZXR1cm5pbmcgVmlzaWJsZVNl
bGVjdGlvbgogVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb25Gb3JQYXJhZ3JhcGhJdGVyYXRpb24o
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogCiBQb3NpdGlvbiBhZGp1c3RlZFNlbGVjdGlvblN0
YXJ0Rm9yU3R5bGVDb21wdXRhdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CiAgICAgCisv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAKLS8vIE1pc2NlbGxhbmVvdXMgZnVuY3Rpb25zIG9uIFRleHQK
Ky8vIEZJWE1FOiBUaGlzIGlzIG9ubHkgb25lIG9mIG1hbnkgZGVmaW5pdGlvbnMgb2Ygd2hpdGVz
cGFjZSwgc28gdGhlIG5hbWUgaXMgbm90IHNwZWNpZmljIGVub3VnaC4KIGlubGluZSBib29sIGlz
V2hpdGVzcGFjZShVQ2hhciBjKQogewogICAgIHJldHVybiBjID09IG5vQnJlYWtTcGFjZSB8fCBj
ID09ICcgJyB8fCBjID09ICdcbicgfHwgYyA9PSAnXHQnOwogfQogCisvLyBGSVhNRTogQ2FuJ3Qg
cmVhbGx5IGFuc3dlciB0aGlzIHF1ZXN0aW9uIGNvcnJlY3RseSB3aXRob3V0IGtub3dpbmcgdGhl
IHdoaXRlLXNwYWNlIG1vZGUuCitpbmxpbmUgYm9vbCBkZXByZWNhdGVkSXNDb2xsYXBzaWJsZVdo
aXRlc3BhY2UoVUNoYXIgYykKK3sKKyAgICByZXR1cm4gYyA9PSAnICcgfHwgYyA9PSAnXG4nOwor
fQorCiBpbmxpbmUgYm9vbCBpc0FtYmlndW91c0JvdW5kYXJ5Q2hhcmFjdGVyKFVDaGFyIGNoYXJh
Y3RlcikKIHsKICAgICAvLyBUaGVzZSBhcmUgY2hhcmFjdGVycyB0aGF0IGNhbiBiZWhhdmUgYXMg
d29yZCBib3VuZGFyaWVzLCBidXQgY2FuIGFwcGVhciB3aXRoaW4gd29yZHMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hcmt1cC5jcHAKaW5kZXggZjRiMzRlMzFmNjU1OWRiNDlhYmJmMmJkYzFiZWViZGY0NWNi
MTAxNS4uZDAwMGU2YmI5NWNlYTJmNTg0NjJlNWQwMzA1OGQ3YTk4NjBkNDJjZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvbWFya3VwLmNwcApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIlJlbmRlckJs
b2NrLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnRpZXMu
aCIKKyNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJWaXNpYmxlU2VsZWN0aW9u
LmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCmluZGV4IDZhMmQ2
MGFjMjY2ZmQ4ZWZjNDliODRkZjI1NjhkNTRmODA5ZWY0ZmIuLmQwYjZkMDY0NTE0NDUzNmU1Yzk1
YjczMzQ3ZTJiZDcwNTQxN2Y5YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFy
ZWFFbGVtZW50LmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNs
dWRlICJUZXh0QnJlYWtJdGVyYXRvci5oIgogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVt
ZW50cy5oIgorI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlRleHROb2RlVHJh
dmVyc2FsLmgiCiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRy
YXMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApp
bmRleCBjNjFlOGE5Nzg1ZWQ5ODM0MTQ5NDZjMTNhMjE0NTFiNjBiM2E5NWMyLi43MDM3M2FhNDU2
N2M3MGY0Yzc2ODNmYTMzMGNmNGEyYTM2MjgxNjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC03MTgsOSArNzE4LDkgQEAgc3RhdGljIGJv
b2wgc2VsZWN0aW9uQ29udGFpbnNQb3NzaWJsZVdvcmQoRnJhbWUqIGZyYW1lKQogewogICAgIC8v
IEN1cnJlbnQgYWxnb3JpdGhtOiBsb29rIGZvciBhIGNoYXJhY3RlciB0aGF0J3Mgbm90IGp1c3Qg
YSBzZXBhcmF0b3IuCiAgICAgZm9yIChUZXh0SXRlcmF0b3IgaXQoZnJhbWUtPnNlbGVjdGlvbigp
LnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCkpOyAhaXQuYXRFbmQoKTsgaXQuYWR2YW5jZSgpKSB7
Ci0gICAgICAgIGludCBsZW5ndGggPSBpdC5sZW5ndGgoKTsKKyAgICAgICAgaW50IGxlbmd0aCA9
IGl0LnRleHQoKS5sZW5ndGgoKTsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGg7
ICsraSkgewotICAgICAgICAgICAgaWYgKCEoVV9HRVRfR0NfTUFTSyhpdC5jaGFyYWN0ZXJBdChp
KSkgJiBVX0dDX1pfTUFTSykpCisgICAgICAgICAgICBpZiAoIShVX0dFVF9HQ19NQVNLKGl0LnRl
eHQoKVtpXSkgJiBVX0dDX1pfTUFTSykpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggMGY4
YTljYmE5M2VmYzE4N2YxOGE2MzIzNzY4MGE3ZjJlYTAzNmFkNi4uYjYzZjlhOWU4ZDlhNWNkZDRi
MjU0ZGM5ZDg1NWU2MDdmNzJiZjM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNw
cApAQCAtOTgsMTggKzk4LDIxIEBACiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9UZW1wb3JhcnlDaGFuZ2UuaD4KIAotI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CisjaWYgRU5BQkxFKENTU19JTUFHRV9TRVQpCisjaW5jbHVkZSAiU3R5bGVDYWNoZWRJbWFnZVNl
dC5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICNpbmNsdWRlICJQ
bGF0Zm9ybVRvdWNoRXZlbnRJT1MuaCIKLSNlbHNlCi0jaW5jbHVkZSAiUGxhdGZvcm1Ub3VjaEV2
ZW50LmgiCiAjZW5kaWYKKworI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAjaW5jbHVkZSAiVG91
Y2hFdmVudC5oIgogI2luY2x1ZGUgIlRvdWNoTGlzdC5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUo
Q1NTX0lNQUdFX1NFVCkKLSNpbmNsdWRlICJTdHlsZUNhY2hlZEltYWdlU2V0LmgiCisjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykgJiYgIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQorI2luY2x1ZGUg
IlBsYXRmb3JtVG91Y2hFdmVudC5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9IVE1MQ29udmVydGVyLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hUTUxDb252ZXJ0ZXIubW0KaW5kZXggODQ4MTFh
NTMyOTRiYzVlODBjZTU5ODQxY2Y2OGE2ZGQ1Mjg3YjllNS4uMDc2NDhmMjhlY2FhNGZlMGQ3ZDJi
OTUzMTA1MDA2NWMyNmUzYTg3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL0hUTUxDb252ZXJ0ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0hU
TUxDb252ZXJ0ZXIubW0KQEAgLTI0OTksNyArMjQ5OSw3IEBAICsgKE5TQXR0cmlidXRlZFN0cmlu
ZyAqKWVkaXRpbmdBdHRyaWJ1dGVkU3RyaW5nRnJvbVJhbmdlOihSYW5nZSopcmFuZ2UKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGludCBjdXJyZW50VGV4dExlbmd0aCA9IGl0
Lmxlbmd0aCgpOworICAgICAgICBpbnQgY3VycmVudFRleHRMZW5ndGggPSBpdC50ZXh0KCkubGVu
Z3RoKCk7CiAgICAgICAgIGlmICghY3VycmVudFRleHRMZW5ndGgpCiAgICAgICAgICAgICBjb250
aW51ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5jcHAKaW5kZXggMDFiMjNjODY3NzljOGViM2ExYjQxYjBkYmRiYTdkZDdkYTJl
ZWFlNi4uODRmOWFmY2QwYjdiNGM0NDQyNGE4OWQ4YWM2MjZmZGY3Nzg5YWQ4NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
CkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9VbmRvU3RlcC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Zpc2libGVTZWxlY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMTI4ZGVlMjg4
ZTJjYTZkNTE3MjZmODdmNWNiNTkyNzZmYmZjYTRkNi4uYWU0NGJiNTE2ODcxMzgxN2Q5YTI2MGU1
YTM2MjI0YjhiOGNhOWYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKQEAgLTk4LDYgKzk4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd0ZlYXR1cmVz
Lmg+CiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CiAKICNpZiBFTkFCTEUoQVNZTkNfU0NS
T0xMSU5HKQogI2luY2x1ZGUgIlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAyNDVl
NmUwMmFmYTFjNWMyNzE0MzlkYTJlNGNlNWM1MjM4NThkNWMzLi4yODk0Y2Q0ZGZmZmNhYTUzMTU0
YjEzMjJiOGRiMmFkZjNlYzliY2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNDAsNiArMTQwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L1NoYXJlZEJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU3ViZnJhbWVMb2FkZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1N1YnN0aXR1dGVEYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0
SXRlcmF0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJJbnB1dEJyaWRnZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvVmlzaWJsZVBvc2l0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaXNpYmxl
VW5pdHMuaD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>