<?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>149152</bug_id>
          
          <creation_ts>2015-09-14 22:27:08 -0700</creation_ts>
          <short_desc>Move most IDB object encoding/decoding from WebKit2 to WebCore</short_desc>
          <delta_ts>2015-09-15 09:36:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1125891</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-14 22:27:08 -0700</bug_when>
    <thetext>Move most IDB object encoding/decoding from WebKit2 to WebCore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125892</commentid>
    <comment_count>1</comment_count>
      <attachid>261175</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-14 22:29:54 -0700</bug_when>
    <thetext>Created attachment 261175
Patch v1

For an EWS run - Not including ChangeLogs because I have other changes locally that would cause this to not apply on EWS.

Definitely reviewable, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125968</commentid>
    <comment_count>2</comment_count>
      <attachid>261193</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-15 08:53:38 -0700</bug_when>
    <thetext>Created attachment 261193
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125975</commentid>
    <comment_count>3</comment_count>
      <attachid>261193</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-09-15 08:57:40 -0700</bug_when>
    <thetext>Comment on attachment 261193
Patch v2

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

r=me if ews passes

&gt; Source/WebKit2/Shared/WebCoreArgumentCoders.h:405
&gt;  template&lt;&gt; struct ArgumentCoder&lt;WebCore::IDBGetResult&gt; {

IDBGetResult feels left out :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125980</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-15 09:11:59 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 261193 [details]
&gt; Patch v2
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=261193&amp;action=review
&gt; 
&gt; r=me if ews passes
&gt; 
&gt; &gt; Source/WebKit2/Shared/WebCoreArgumentCoders.h:405
&gt; &gt;  template&lt;&gt; struct ArgumentCoder&lt;WebCore::IDBGetResult&gt; {
&gt; 
&gt; IDBGetResult feels left out :(

It can&apos;t be moved right now because it uses DataReference which is WK2-only.

But good news - While resolving https://bugs.webkit.org/show_bug.cgi?id=149117, IDBGetResult will be going away entirely. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125986</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-15 09:34:02 -0700</bug_when>
    <thetext>The EFL failure:

../../Source/WebCore/Modules/indexeddb/IDBKeyPath.h: In static member function &apos;static bool WebCore::IDBKeyPath::decode(Decoder&amp;, WebCore::IDBKeyPath&amp;) [with Decoder = IPC::ArgumentDecoder]&apos;:
../../Source/WebCore/Modules/indexeddb/IDBKeyPath.h:140:1: error: control reaches end of non-void function [-Werror=return-type]

...Even though all switch cases are accounted for. :(  Stupid compiler.

Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1125988</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-09-15 09:36:47 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/189810</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261175</attachid>
            <date>2015-09-14 22:29:54 -0700</date>
            <delta_ts>2015-09-15 08:53:38 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>19553</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
TWV0YWRhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
TWV0YWRhdGEuaAppbmRleCAxNWI3YzI4Li5mYTQzZDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU1ldGFkYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VNZXRhZGF0YS5oCkBAIC02OCw2
ICs2OCw5IEBAIHN0cnVjdCBJREJEYXRhYmFzZU1ldGFkYXRhIHsKICAgICB7CiAgICAgfQogCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0Owor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwg
SURCRGF0YWJhc2VNZXRhZGF0YSYpOworCiAgICAgU3RyaW5nIG5hbWU7CiAgICAgaW50NjRfdCBp
ZDsKICAgICB1aW50NjRfdCB2ZXJzaW9uOwpAQCAtNzksNiArODIsMzMgQEAgc3RydWN0IElEQkRh
dGFiYXNlTWV0YWRhdGEgewogICAgIFdFQkNPUkVfRVhQT1JUIElEQkRhdGFiYXNlTWV0YWRhdGEg
aXNvbGF0ZWRDb3B5KCkgY29uc3Q7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9p
ZCBJREJEYXRhYmFzZU1ldGFkYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sK
KyAgICBlbmNvZGVyIDw8IG5hbWUgPDwgaWQgPDwgdmVyc2lvbiA8PCBtYXhPYmplY3RTdG9yZUlk
IDw8IG9iamVjdFN0b3JlczsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgSURC
RGF0YWJhc2VNZXRhZGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIElEQkRhdGFiYXNlTWV0
YWRhdGEmIG1ldGFkYXRhKQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWV0YWRhdGEubmFt
ZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWV0
YWRhdGEuaWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKG1ldGFkYXRhLnZlcnNpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKG1ldGFkYXRhLm1heE9iamVjdFN0b3JlSWQpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1ldGFkYXRhLm9iamVjdFN0b3Jl
cykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4TWV0
YWRhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4TWV0YWRh
dGEuaAppbmRleCBiN2ZjMTA0Li4yZjIxMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleE1ldGFkYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhNZXRhZGF0YS5oCkBAIC01MCw2ICs1MCw5IEBAIHN0
cnVjdCBJREJJbmRleE1ldGFkYXRhIHsKICAgICAgICAgLCBtdWx0aUVudHJ5KG11bHRpRW50cnkp
CiAgICAgewogICAgIH0KKyAgICAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IGJvb2wgZGVjb2RlKERlY29kZXImLCBJREJJbmRleE1ldGFkYXRhJik7CiAKICAgICBTdHJpbmcg
bmFtZTsKICAgICBpbnQ2NF90IGlkOwpAQCAtNjIsNiArNjUsMzMgQEAgc3RydWN0IElEQkluZGV4
TWV0YWRhdGEgewogICAgIHN0YXRpYyBjb25zdCBpbnQ2NF90IEludmFsaWRJZCA9IC0xOwogfTsK
IAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgSURCSW5kZXhNZXRhZGF0YTo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBuYW1lIDw8IGlkIDw8
IGtleVBhdGggPDwgdW5pcXVlIDw8IG11bHRpRW50cnk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERl
Y29kZXI+Citib29sIElEQkluZGV4TWV0YWRhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJ
REJJbmRleE1ldGFkYXRhJiBtZXRhZGF0YSkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1l
dGFkYXRhLm5hbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKG1ldGFkYXRhLmlkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShtZXRhZGF0YS5rZXlQYXRoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXRhZGF0YS51bmlxdWUpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1ldGFkYXRhLm11bHRpRW50cnkp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmgKaW5kZXggNDRk
OGE0Yy4uNmM4NGU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCS2V5RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QktleURhdGEuaApAQCAtNzksNiArNzksOSBAQCBzdHJ1Y3QgSURCS2V5RGF0YSB7CiAgICAgdm9p
ZCBzZXREYXRlVmFsdWUoZG91YmxlKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldE51bWJl
clZhbHVlKGRvdWJsZSk7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29k
ZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIGJv
b2wgZGVjb2RlKERlY29kZXImLCBJREJLZXlEYXRhJik7CisgICAgCiAjaWZuZGVmIE5ERUJVRwog
ICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBsb2dnaW5nU3RyaW5nKCkgY29uc3Q7CiAjZW5kaWYK
QEAgLTkwLDYgKzkzLDc3IEBAIHN0cnVjdCBJREJLZXlEYXRhIHsKICAgICBib29sIGlzTnVsbDsK
IH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIElEQktleURhdGE6OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgaXNOdWxsOworICAgIGlm
IChpc051bGwpCisgICAgICAgIHJldHVybjsKKworICAgIGVuY29kZXIuZW5jb2RlRW51bSh0eXBl
KTsKKworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgS2V5VHlwZTo6SW52YWxpZDoKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBLZXlUeXBlOjpBcnJheToKKyAgICAgICAgZW5jb2RlciA8
PCBhcnJheVZhbHVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEtleVR5cGU6OlN0cmluZzoK
KyAgICAgICAgZW5jb2RlciA8PCBzdHJpbmdWYWx1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBLZXlUeXBlOjpEYXRlOgorICAgIGNhc2UgS2V5VHlwZTo6TnVtYmVyOgorICAgICAgICBlbmNv
ZGVyIDw8IG51bWJlclZhbHVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEtleVR5cGU6Ok1h
eDoKKyAgICBjYXNlIEtleVR5cGU6Ok1pbjoKKyAgICAgICAgLy8gTWF4VHlwZSBhbmQgTWluVHlw
ZSBhcmUgb25seSB1c2VkIGZvciBjb21wYXJpc29uIHRvIG90aGVyIGtleXMuCisgICAgICAgIC8v
IFRoZXkgc2hvdWxkIG5ldmVyIGJlIGVuY29kZWQvZGVjb2RlZC4KKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordGVtcGxhdGU8Y2xhc3Mg
RGVjb2Rlcj4KK2Jvb2wgSURCS2V5RGF0YTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIElEQktl
eURhdGEmIGtleURhdGEpCit7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShrZXlEYXRhLmlzTnVs
bCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChrZXlEYXRhLmlzTnVsbCkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bShrZXlEYXRh
LnR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzd2l0Y2ggKGtleURhdGEudHlw
ZSkgeworICAgIGNhc2UgS2V5VHlwZTo6SW52YWxpZDoKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBLZXlUeXBlOjpBcnJheToKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShrZXlEYXRhLmFy
cmF5VmFsdWUpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEtleVR5cGU6OlN0cmluZzoKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShrZXlE
YXRhLnN0cmluZ1ZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBLZXlUeXBlOjpEYXRlOgorICAgIGNhc2UgS2V5VHlwZTo6TnVtYmVyOgor
ICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGtleURhdGEubnVtYmVyVmFsdWUpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEtleVR5cGU6Ok1h
eDoKKyAgICBjYXNlIEtleVR5cGU6Ok1pbjoKKyAgICAgICAgLy8gTWF4VHlwZSBhbmQgTWluVHlw
ZSBhcmUgb25seSB1c2VkIGZvciBjb21wYXJpc29uIHRvIG90aGVyIGtleXMuCisgICAgICAgIC8v
IFRoZXkgc2hvdWxkIG5ldmVyIGJlIGVuY29kZWQvZGVjb2RlZC4KKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIGRlY29kZXIubWFya0ludmFsaWQoKTsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguaAppbmRleCAxMWIyYjE5Li43
YjE3MmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJL
ZXlQYXRoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0
aC5oCkBAIC03Nyw2ICs3Nyw5IEBAIHB1YmxpYzoKIAogICAgIElEQktleVBhdGggaXNvbGF0ZWRD
b3B5KCkgY29uc3Q7CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIGJvb2wg
ZGVjb2RlKERlY29kZXImLCBJREJLZXlQYXRoJik7CisgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBlbmNvZGUoS2V5ZWRFbmNvZGVyJikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIGJvb2wgZGVjb2RlKEtleWVkRGVjb2RlciYsIElEQktleVBhdGgmKTsKIApAQCAtODYsNiAr
ODksNTYgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8U3RyaW5nPiBtX2FycmF5OwogfTsKIAordGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgSURCS2V5UGF0aDo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fdHlwZSk7CisKKyAgICBz
d2l0Y2ggKG1fdHlwZSkgeworICAgIGNhc2UgSURCS2V5UGF0aDo6TnVsbFR5cGU6CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgSURCS2V5UGF0aDo6U3RyaW5nVHlwZToKKyAgICAgICAgZW5jb2Rl
ciA8PCBtX3N0cmluZzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJREJLZXlQYXRoOjpBcnJh
eVR5cGU6CisgICAgICAgIGVuY29kZXIgPDwgbV9hcnJheTsKKyAgICAgICAgYnJlYWs7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorfQorCit0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9vbCBJREJLZXlQYXRoOjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgSURCS2V5UGF0aCYga2V5UGF0aCkKK3sKKyAgICBJREJLZXlQYXRoOjpUeXBlIHR5cGU7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0odHlwZSkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgSURCS2V5UGF0aDo6TnVsbFR5cGU6
CisgICAgICAgIGtleVBhdGggPSBJREJLZXlQYXRoKCk7CisgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgY2FzZSBJREJLZXlQYXRoOjpTdHJpbmdUeXBlOiB7CisgICAgICAgIFN0cmluZyBzdHJp
bmc7CisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RyaW5nKSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICBrZXlQYXRoID0gSURCS2V5UGF0aChzdHJpbmcpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgY2FzZSBJREJLZXlQYXRoOjpBcnJheVR5cGU6
IHsKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gYXJyYXk7CisgICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUoYXJyYXkpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGtleVBh
dGggPSBJREJLZXlQYXRoKGFycmF5KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAg
IH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlRGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2VEYXRhLmgKaW5kZXggNTZjZjQ2
MS4uOThjODJjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCS2V5UmFuZ2VEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCS2V5UmFuZ2VEYXRhLmgKQEAgLTYxLDYgKzYxLDkgQEAgc3RydWN0IElEQktleVJhbmdlRGF0
YSB7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzRXhhY3RseU9uZUtleSgpIGNvbnN0Owog
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVy
JiwgSURCS2V5UmFuZ2VEYXRhJik7CisKICAgICBib29sIGlzTnVsbDsKIAogICAgIElEQktleURh
dGEgbG93ZXJLZXk7CkBAIC03MCw2ICs3Myw0MCBAQCBzdHJ1Y3QgSURCS2V5UmFuZ2VEYXRhIHsK
ICAgICBib29sIHVwcGVyT3BlbjsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lk
IElEQktleVJhbmdlRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAg
ZW5jb2RlciA8PCBpc051bGw7CisgICAgaWYgKGlzTnVsbCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgZW5jb2RlciA8PCB1cHBlcktleSA8PCBsb3dlcktleSA8PCB1cHBlck9wZW4gPDwgbG93ZXJP
cGVuOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9vbCBJREJLZXlSYW5nZURhdGE6
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlKQorewor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoa2V5UmFuZ2UuaXNOdWxsKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKGtleVJhbmdlLmlzTnVsbCkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGtleVJhbmdlLnVwcGVyS2V5KSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShrZXlSYW5nZS5sb3dlcktl
eSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoa2V5
UmFuZ2UudXBwZXJPcGVuKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShrZXlSYW5nZS5sb3dlck9wZW4pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZU1ldGFkYXRhLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZU1ldGFkYXRhLmgKaW5kZXggNTlhYzBh
OS4uODZiNDdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCT2JqZWN0U3RvcmVNZXRhZGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9iamVjdFN0b3JlTWV0YWRhdGEuaApAQCAtNDksNiArNDksOSBAQCBzdHJ1Y3Qg
SURCT2JqZWN0U3RvcmVNZXRhZGF0YSB7CiAgICAgewogICAgIH0KIAorICAgIHRlbXBsYXRlPGNs
YXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIElEQk9iamVjdFN0b3Jl
TWV0YWRhdGEmKTsKKyAgICAKICAgICBTdHJpbmcgbmFtZTsKICAgICBpbnQ2NF90IGlkOwogICAg
IElEQktleVBhdGgga2V5UGF0aDsKQEAgLTYzLDYgKzY2LDM2IEBAIHN0cnVjdCBJREJPYmplY3RT
dG9yZU1ldGFkYXRhIHsKICAgICBJREJPYmplY3RTdG9yZU1ldGFkYXRhIGlzb2xhdGVkQ29weSgp
IGNvbnN0OwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgSURCT2JqZWN0U3Rv
cmVNZXRhZGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2Rl
ciA8PCBuYW1lIDw8IGlkIDw8IGtleVBhdGggPDwgYXV0b0luY3JlbWVudCA8PCBtYXhJbmRleElk
IDw8IGluZGV4ZXM7Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citib29sIElEQk9iamVj
dFN0b3JlTWV0YWRhdGE6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBJREJPYmplY3RTdG9yZU1l
dGFkYXRhJiBtZXRhZGF0YSkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1ldGFkYXRhLm5h
bWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1l
dGFkYXRhLmlkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShtZXRhZGF0YS5rZXlQYXRoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShtZXRhZGF0YS5hdXRvSW5jcmVtZW50KSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXRhZGF0YS5tYXhJbmRleElkKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXRhZGF0
YS5pbmRleGVzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RB
VEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmNwcAppbmRleCA3ZmJkM2Q0Li43ZjIzMjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtNDMsMTEgKzQzLDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL0ZpbHRlck9wZXJhdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNz
Q29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgotI2luY2x1ZGUg
PFdlYkNvcmUvSURCRGF0YWJhc2VNZXRhZGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSURCR2V0
UmVzdWx0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9JREJLZXlEYXRhLmg+Ci0jaW5jbHVkZSA8V2Vi
Q29yZS9JREJLZXlQYXRoLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9JREJLZXlSYW5nZURhdGEuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MZW5ndGguaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BhdGguaD4KQEAgLTE4MTAsNTUgKzE4MDYsNyBAQCBib29sIEFy
Z3VtZW50Q29kZXI8RmlsdGVyT3BlcmF0aW9ucz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRl
Y29kZXIsIEZpbHRlck9wZQogI2VuZGlmIC8vICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAK
ICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKLXZvaWQgQXJndW1lbnRDb2RlcjxJREJEYXRh
YmFzZU1ldGFkYXRhPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgSURC
RGF0YWJhc2VNZXRhZGF0YSYgbWV0YWRhdGEpCi17Ci0gICAgZW5jb2RlciA8PCBtZXRhZGF0YS5u
YW1lIDw8IG1ldGFkYXRhLmlkIDw8IG1ldGFkYXRhLnZlcnNpb24gPDwgbWV0YWRhdGEubWF4T2Jq
ZWN0U3RvcmVJZCA8PCBtZXRhZGF0YS5vYmplY3RTdG9yZXM7Ci19Ci0KLWJvb2wgQXJndW1lbnRD
b2RlcjxJREJEYXRhYmFzZU1ldGFkYXRhPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgSURCRGF0YWJhc2VNZXRhZGF0YSYgbWV0YWRhdGEpCi17Ci0gICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShtZXRhZGF0YS5uYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShtZXRhZGF0YS5pZCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IGlmICghZGVjb2Rlci5kZWNvZGUobWV0YWRhdGEudmVyc2lvbikpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWV0YWRhdGEubWF4T2JqZWN0U3RvcmVJ
ZCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWV0
YWRhdGEub2JqZWN0U3RvcmVzKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxJREJJbmRleE1ldGFkYXRhPjo6ZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgSURCSW5kZXhNZXRhZGF0YSYgbWV0YWRh
dGEpCi17Ci0gICAgZW5jb2RlciA8PCBtZXRhZGF0YS5uYW1lIDw8IG1ldGFkYXRhLmlkIDw8IG1l
dGFkYXRhLmtleVBhdGggPDwgbWV0YWRhdGEudW5pcXVlIDw8IG1ldGFkYXRhLm11bHRpRW50cnk7
Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJREJJbmRleE1ldGFkYXRhPjo6ZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYgZGVjb2RlciwgSURCSW5kZXhNZXRhZGF0YSYgbWV0YWRhdGEpCi17Ci0gICAg
aWYgKCFkZWNvZGVyLmRlY29kZShtZXRhZGF0YS5uYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXRhZGF0YS5pZCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWV0YWRhdGEua2V5UGF0aCkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWV0YWRhdGEu
dW5pcXVlKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShtZXRhZGF0YS5tdWx0aUVudHJ5KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0
dXJuIHRydWU7Ci19CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxJREJHZXRSZXN1bHQ+OjplbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJREJHZXRSZXN1bHQmIHJlc3VsdCkKIHsK
QEAgLTE4OTYsMTg1ICsxODQ0LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPElEQkdldFJlc3VsdD46
OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIElEQkdldFJlc3VsdCYKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPElEQktleURhdGE+OjplbmNvZGUoQXJn
dW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhKQotewotICAg
IGVuY29kZXIgPDwga2V5RGF0YS5pc051bGw7Ci0gICAgaWYgKGtleURhdGEuaXNOdWxsKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBlbmNvZGVyLmVuY29kZUVudW0oa2V5RGF0YS50eXBlKTsKLQot
ICAgIHN3aXRjaCAoa2V5RGF0YS50eXBlKSB7Ci0gICAgY2FzZSBLZXlUeXBlOjpJbnZhbGlkOgot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEtleVR5cGU6OkFycmF5OgotICAgICAgICBlbmNvZGVy
IDw8IGtleURhdGEuYXJyYXlWYWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBLZXlUeXBl
OjpTdHJpbmc6Ci0gICAgICAgIGVuY29kZXIgPDwga2V5RGF0YS5zdHJpbmdWYWx1ZTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBLZXlUeXBlOjpEYXRlOgotICAgIGNhc2UgS2V5VHlwZTo6TnVt
YmVyOgotICAgICAgICBlbmNvZGVyIDw8IGtleURhdGEubnVtYmVyVmFsdWU7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgS2V5VHlwZTo6TWF4OgotICAgIGNhc2UgS2V5VHlwZTo6TWluOgotICAg
ICAgICAvLyBNYXhUeXBlIGFuZCBNaW5UeXBlIGFyZSBvbmx5IHVzZWQgZm9yIGNvbXBhcmlzb24g
dG8gb3RoZXIga2V5cy4KLSAgICAgICAgLy8gVGhleSBzaG91bGQgbmV2ZXIgYmUgc2VudCBhY3Jv
c3MgdGhlIHdpcmUuCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVh
azsKLSAgICB9Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJREJLZXlEYXRhPjo6ZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYga2V5RGF0YSkKLXsKLSAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKGtleURhdGEuaXNOdWxsKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgaWYgKGtleURhdGEuaXNOdWxsKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGVFbnVtKGtleURhdGEudHlwZSkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIHN3aXRjaCAoa2V5RGF0YS50eXBlKSB7Ci0gICAgY2FzZSBLZXlUeXBlOjpJbnZh
bGlkOgotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtleVR5cGU6OkFycmF5OgotICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGtleURhdGEuYXJyYXlWYWx1ZSkpCi0gICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2V5VHlwZTo6U3RyaW5nOgotICAg
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGtleURhdGEuc3RyaW5nVmFsdWUpKQotICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtleVR5cGU6OkRhdGU6
Ci0gICAgY2FzZSBLZXlUeXBlOjpOdW1iZXI6Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
a2V5RGF0YS5udW1iZXJWYWx1ZSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgS2V5VHlwZTo6TWF4OgotICAgIGNhc2UgS2V5VHlwZTo6TWluOgot
ICAgICAgICAvLyBNYXhUeXBlIGFuZCBNaW5UeXBlIGFyZSBvbmx5IHVzZWQgZm9yIGNvbXBhcmlz
b24gdG8gb3RoZXIga2V5cy4KLSAgICAgICAgLy8gVGhleSBzaG91bGQgbmV2ZXIgYmUgc2VudCBh
Y3Jvc3MgdGhlIHdpcmUuCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBk
ZWNvZGVyLm1hcmtJbnZhbGlkKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPElEQktleVBhdGg+OjplbmNv
ZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJREJLZXlQYXRoJiBrZXlQYXRoKQot
ewotICAgIGVuY29kZXIuZW5jb2RlRW51bShrZXlQYXRoLnR5cGUoKSk7Ci0KLSAgICBzd2l0Y2gg
KGtleVBhdGgudHlwZSgpKSB7Ci0gICAgY2FzZSBJREJLZXlQYXRoOjpOdWxsVHlwZToKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBJREJLZXlQYXRoOjpTdHJpbmdUeXBlOgotICAgICAgICBlbmNv
ZGVyIDw8IGtleVBhdGguc3RyaW5nKCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSURCS2V5
UGF0aDo6QXJyYXlUeXBlOgotICAgICAgICBlbmNvZGVyIDw8IGtleVBhdGguYXJyYXkoKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgfQotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8SURCS2V5UGF0aD46OmRlY29kZShBcmd1
bWVudERlY29kZXImIGRlY29kZXIsIElEQktleVBhdGgmIGtleVBhdGgpCi17Ci0gICAgSURCS2V5
UGF0aDo6VHlwZSB0eXBlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHR5cGUpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIElEQktl
eVBhdGg6Ok51bGxUeXBlOgotICAgICAgICBrZXlQYXRoID0gSURCS2V5UGF0aCgpOwotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLQotICAgIGNhc2UgSURCS2V5UGF0aDo6U3RyaW5nVHlwZTogewotICAg
ICAgICBTdHJpbmcgc3RyaW5nOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHN0cmluZykp
Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICAgICAga2V5UGF0aCA9IElEQktleVBh
dGgoc3RyaW5nKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGNhc2UgSURCS2V5
UGF0aDo6QXJyYXlUeXBlOiB7Ci0gICAgICAgIFZlY3RvcjxTdHJpbmc+IGFycmF5OwotICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKGFycmF5KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgICAgICBrZXlQYXRoID0gSURCS2V5UGF0aChhcnJheSk7Ci0gICAgICAgIHJldHVybiB0
cnVlOwotICAgIH0KLSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQot
fQotCi12b2lkIEFyZ3VtZW50Q29kZXI8SURCS2V5UmFuZ2VEYXRhPjo6ZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZSkKLXsKLSAg
ICBlbmNvZGVyIDw8IGtleVJhbmdlLmlzTnVsbDsKLSAgICBpZiAoa2V5UmFuZ2UuaXNOdWxsKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBlbmNvZGVyIDw8IGtleVJhbmdlLnVwcGVyS2V5IDw8IGtl
eVJhbmdlLmxvd2VyS2V5IDw8IGtleVJhbmdlLnVwcGVyT3BlbiA8PCBrZXlSYW5nZS5sb3dlck9w
ZW47Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJREJLZXlSYW5nZURhdGE+OjpkZWNvZGUoQXJn
dW1lbnREZWNvZGVyJiBkZWNvZGVyLCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlKQotewotICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoa2V5UmFuZ2UuaXNOdWxsKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgaWYgKGtleVJhbmdlLmlzTnVsbCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0K
LSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGtleVJhbmdlLnVwcGVyS2V5KSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShrZXlSYW5nZS5sb3dlcktleSkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoa2V5UmFu
Z2UudXBwZXJPcGVuKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShrZXlSYW5nZS5sb3dlck9wZW4pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBBcmd1bWVudENvZGVyPElEQk9iamVjdFN0b3JlTWV0
YWRhdGE+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJREJPYmplY3RT
dG9yZU1ldGFkYXRhJiBtZXRhZGF0YSkKLXsKLSAgICBlbmNvZGVyIDw8IG1ldGFkYXRhLm5hbWUg
PDwgbWV0YWRhdGEuaWQgPDwgbWV0YWRhdGEua2V5UGF0aCA8PCBtZXRhZGF0YS5hdXRvSW5jcmVt
ZW50IDw8IG1ldGFkYXRhLm1heEluZGV4SWQgPDwgbWV0YWRhdGEuaW5kZXhlczsKLX0KLQotYm9v
bCBBcmd1bWVudENvZGVyPElEQk9iamVjdFN0b3JlTWV0YWRhdGE+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyJiBkZWNvZGVyLCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJiBtZXRhZGF0YSkKLXsKLSAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKG1ldGFkYXRhLm5hbWUpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1ldGFkYXRhLmlkKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXRhZGF0YS5rZXlQYXRoKSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXRhZGF0
YS5hdXRvSW5jcmVtZW50KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShtZXRhZGF0YS5tYXhJbmRleElkKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXRhZGF0YS5pbmRleGVzKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KICNlbmRpZiAvLyBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKIAogdm9pZCBBcmd1bWVudENvZGVyPFNlc3Npb25JRD46OmVuY29kZShB
cmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFNlc3Npb25JRCYgc2Vzc2lvbklEKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IGNmNTQ5
M2IuLjE2ZTBhZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmgKQEAgLTQ3LDcgKzQ3LDYgQEAgY2xhc3MgRmxvYXRSb3VuZGVkUmVjdDsKIGNsYXNz
IEZsb2F0U2l6ZTsKIGNsYXNzIEZpeGVkUG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzOwogY2xh
c3MgSFRUUEhlYWRlck1hcDsKLWNsYXNzIElEQktleVBhdGg7CiBjbGFzcyBJbnRQb2ludDsKIGNs
YXNzIEludFJlY3Q7CiBjbGFzcyBJbnRTaXplOwpAQCAtNzMsMTQgKzcyLDkgQEAgc3RydWN0IENv
b2tpZTsKIHN0cnVjdCBEaWN0YXRpb25BbHRlcm5hdGl2ZTsKIHN0cnVjdCBEaWN0aW9uYXJ5UG9w
dXBJbmZvOwogc3RydWN0IEZpbGVDaG9vc2VyU2V0dGluZ3M7Ci1zdHJ1Y3QgSURCRGF0YWJhc2VN
ZXRhZGF0YTsKLXN0cnVjdCBJREJHZXRSZXN1bHQ7Ci1zdHJ1Y3QgSURCSW5kZXhNZXRhZGF0YTsK
LXN0cnVjdCBJREJLZXlEYXRhOwotc3RydWN0IElEQktleVJhbmdlRGF0YTsKLXN0cnVjdCBJREJP
YmplY3RTdG9yZU1ldGFkYXRhOwogc3RydWN0IExlbmd0aDsKIHN0cnVjdCBHcmFtbWFyRGV0YWls
Oworc3RydWN0IElEQkdldFJlc3VsdDsKIHN0cnVjdCBNaW1lQ2xhc3NJbmZvOwogc3RydWN0IFBh
c3RlYm9hcmRJbWFnZTsKIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudDsKQEAgLTQwOCw0MSAr
NDAyLDEwIEBAIGJvb2wgZGVjb2RlRmlsdGVyT3BlcmF0aW9uKEFyZ3VtZW50RGVjb2RlciYsIFJl
ZlB0cjxXZWJDb3JlOjpGaWx0ZXJPcGVyYXRpb24+Jik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpJREJEYXRhYmFzZU1ldGFkYXRhPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50
RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OklEQkRhdGFiYXNlTWV0YWRhdGEmKTsKLSAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6SURCRGF0YWJhc2VNZXRh
ZGF0YSYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJ
REJHZXRSZXN1bHQ+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwg
Y29uc3QgV2ViQ29yZTo6SURCR2V0UmVzdWx0Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OklEQkdldFJlc3VsdCYpOwogfTsKLQotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJREJJbmRleE1ldGFkYXRhPiB7Ci0gICAg
c3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OklEQklu
ZGV4TWV0YWRhdGEmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwg
V2ViQ29yZTo6SURCSW5kZXhNZXRhZGF0YSYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJn
dW1lbnRDb2RlcjxXZWJDb3JlOjpJREJLZXlEYXRhPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmKTsKLSAgICBzdGF0
aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6SURCS2V5RGF0YSYpOwot
fTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJREJLZXlQYXRo
PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0IFdlYkNv
cmU6OklEQktleVBhdGgmKTsKLSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVy
JiwgV2ViQ29yZTo6SURCS2V5UGF0aCYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1l
bnRDb2RlcjxXZWJDb3JlOjpJREJLZXlSYW5nZURhdGE+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhJik7Ci0g
ICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OklEQktleVJh
bmdlRGF0YSYpOwotfTsKLQotdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpJREJPYmplY3RTdG9yZU1ldGFkYXRhPiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OklEQk9iamVjdFN0b3JlTWV0YWRhdGEmKTsKLSAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6SURCT2JqZWN0
U3RvcmVNZXRhZGF0YSYpOwotfTsKLQogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNF
KQogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNlc3Npb25JRD4g
ewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>261193</attachid>
            <date>2015-09-15 08:53:38 -0700</date>
            <delta_ts>2015-09-15 08:57:40 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>22348</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxZjZjNGQ4Li40MDI3YzIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTUtMDktMTUgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIE1vdmUgbW9zdCBJREIgb2JqZWN0IGVuY29kaW5nL2RlY29kaW5nIGZyb20gV2ViS2l0MiB0
byBXZWJDb3JlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ5MTUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIChDbGVhbnVwLCBubyBiZWhhdmlvciBjaGFuZ2UpLgorCisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VNZXRhZGF0YS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SURCRGF0YWJhc2VNZXRhZGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QkRhdGFiYXNlTWV0YWRhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCSW5kZXhNZXRhZGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhNZXRhZGF0YTo6
ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4TWV0YWRhdGE6OmRlY29kZSk6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oOgorICAgICAgICAoV2ViQ29y
ZTo6SURCS2V5RGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURhdGE6OmRl
Y29kZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aC5oOgorICAgICAg
ICAoV2ViQ29yZTo6SURCS2V5UGF0aDo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQktl
eVBhdGg6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2VE
YXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZURhdGE6OmVuY29kZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZURhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmVNZXRhZGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6
SURCT2JqZWN0U3RvcmVNZXRhZGF0YTo6ZW5jb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9i
amVjdFN0b3JlTWV0YWRhdGE6OmRlY29kZSk6CisKIDIwMTUtMDktMTQgIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgdGhlIGVudW0gSURCS2V5OjpUeXBl
IGludG8gYSB1dGlsaXR5IGVudW0gY2xhc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU1ldGFkYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZU1ldGFkYXRhLmgKaW5kZXggMTViN2MyOC4uZmE0
M2Q2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VNZXRhZGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlTWV0YWRhdGEuaApAQCAtNjgsNiArNjgsOSBAQCBzdHJ1Y3QgSURCRGF0YWJhc2VN
ZXRhZGF0YSB7CiAgICAgewogICAgIH0KIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZv
aWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIElEQkRhdGFiYXNlTWV0YWRhdGEmKTsKKwogICAg
IFN0cmluZyBuYW1lOwogICAgIGludDY0X3QgaWQ7CiAgICAgdWludDY0X3QgdmVyc2lvbjsKQEAg
LTc5LDYgKzgyLDMzIEBAIHN0cnVjdCBJREJEYXRhYmFzZU1ldGFkYXRhIHsKICAgICBXRUJDT1JF
X0VYUE9SVCBJREJEYXRhYmFzZU1ldGFkYXRhIGlzb2xhdGVkQ29weSgpIGNvbnN0OwogfTsKIAor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgSURCRGF0YWJhc2VNZXRhZGF0YTo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBuYW1lIDw8IGlkIDw8
IHZlcnNpb24gPDwgbWF4T2JqZWN0U3RvcmVJZCA8PCBvYmplY3RTdG9yZXM7Cit9CisKK3RlbXBs
YXRlPGNsYXNzIERlY29kZXI+Citib29sIElEQkRhdGFiYXNlTWV0YWRhdGE6OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBJREJEYXRhYmFzZU1ldGFkYXRhJiBtZXRhZGF0YSkKK3sKKyAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKG1ldGFkYXRhLm5hbWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1ldGFkYXRhLmlkKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXRhZGF0YS52ZXJzaW9uKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXRhZGF0YS5tYXhP
YmplY3RTdG9yZUlkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShtZXRhZGF0YS5vYmplY3RTdG9yZXMpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleE1ldGFkYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJJbmRleE1ldGFkYXRhLmgKaW5kZXggYjdmYzEwNC4uMmYyMTJhNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXhNZXRh
ZGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4TWV0
YWRhdGEuaApAQCAtNTAsNiArNTAsOSBAQCBzdHJ1Y3QgSURCSW5kZXhNZXRhZGF0YSB7CiAgICAg
ICAgICwgbXVsdGlFbnRyeShtdWx0aUVudHJ5KQogICAgIHsKICAgICB9CisgICAgCisgICAgdGVt
cGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRl
bXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgSURCSW5k
ZXhNZXRhZGF0YSYpOwogCiAgICAgU3RyaW5nIG5hbWU7CiAgICAgaW50NjRfdCBpZDsKQEAgLTYy
LDYgKzY1LDMzIEBAIHN0cnVjdCBJREJJbmRleE1ldGFkYXRhIHsKICAgICBzdGF0aWMgY29uc3Qg
aW50NjRfdCBJbnZhbGlkSWQgPSAtMTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2
b2lkIElEQkluZGV4TWV0YWRhdGE6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAorewor
ICAgIGVuY29kZXIgPDwgbmFtZSA8PCBpZCA8PCBrZXlQYXRoIDw8IHVuaXF1ZSA8PCBtdWx0aUVu
dHJ5OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorYm9vbCBJREJJbmRleE1ldGFkYXRh
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSURCSW5kZXhNZXRhZGF0YSYgbWV0YWRhdGEpCit7
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXRhZGF0YS5uYW1lKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXRhZGF0YS5pZCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWV0YWRhdGEua2V5UGF0
aCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWV0
YWRhdGEudW5pcXVlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShtZXRhZGF0YS5tdWx0aUVudHJ5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCS2V5RGF0YS5oCmluZGV4IDQ0ZDhhNGMuLjZjODRlNDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmgKQEAgLTc5LDYgKzc5LDkgQEAg
c3RydWN0IElEQktleURhdGEgewogICAgIHZvaWQgc2V0RGF0ZVZhbHVlKGRvdWJsZSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXROdW1iZXJWYWx1ZShkb3VibGUpOwogCisgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBs
YXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgSURCS2V5RGF0
YSYpOworICAgIAogI2lmbmRlZiBOREVCVUcKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgbG9n
Z2luZ1N0cmluZygpIGNvbnN0OwogI2VuZGlmCkBAIC05MCw2ICs5Myw3NyBAQCBzdHJ1Y3QgSURC
S2V5RGF0YSB7CiAgICAgYm9vbCBpc051bGw7CiB9OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
Pgordm9pZCBJREJLZXlEYXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAg
ICBlbmNvZGVyIDw8IGlzTnVsbDsKKyAgICBpZiAoaXNOdWxsKQorICAgICAgICByZXR1cm47CisK
KyAgICBlbmNvZGVyLmVuY29kZUVudW0odHlwZSk7CisKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAg
ICBjYXNlIEtleVR5cGU6OkludmFsaWQ6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgS2V5VHlw
ZTo6QXJyYXk6CisgICAgICAgIGVuY29kZXIgPDwgYXJyYXlWYWx1ZTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBLZXlUeXBlOjpTdHJpbmc6CisgICAgICAgIGVuY29kZXIgPDwgc3RyaW5nVmFs
dWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgS2V5VHlwZTo6RGF0ZToKKyAgICBjYXNlIEtl
eVR5cGU6Ok51bWJlcjoKKyAgICAgICAgZW5jb2RlciA8PCBudW1iZXJWYWx1ZTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBLZXlUeXBlOjpNYXg6CisgICAgY2FzZSBLZXlUeXBlOjpNaW46Cisg
ICAgICAgIC8vIE1heFR5cGUgYW5kIE1pblR5cGUgYXJlIG9ubHkgdXNlZCBmb3IgY29tcGFyaXNv
biB0byBvdGhlciBrZXlzLgorICAgICAgICAvLyBUaGV5IHNob3VsZCBuZXZlciBiZSBlbmNvZGVk
L2RlY29kZWQuCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsK
KyAgICB9Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+Citib29sIElEQktleURhdGE6OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBJREJLZXlEYXRhJiBrZXlEYXRhKQoreworICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUoa2V5RGF0YS5pc051bGwpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBpZiAoa2V5RGF0YS5pc051bGwpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZUVudW0oa2V5RGF0YS50eXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgc3dpdGNoIChrZXlEYXRhLnR5cGUpIHsKKyAgICBjYXNlIEtleVR5cGU6OkludmFs
aWQ6CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgS2V5VHlwZTo6QXJyYXk6CisgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoa2V5RGF0YS5hcnJheVZhbHVlKSkKKyAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBLZXlUeXBlOjpTdHJpbmc6CisgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoa2V5RGF0YS5zdHJpbmdWYWx1ZSkpCisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgS2V5VHlwZTo6RGF0ZToK
KyAgICBjYXNlIEtleVR5cGU6Ok51bWJlcjoKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShr
ZXlEYXRhLm51bWJlclZhbHVlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBLZXlUeXBlOjpNYXg6CisgICAgY2FzZSBLZXlUeXBlOjpNaW46Cisg
ICAgICAgIC8vIE1heFR5cGUgYW5kIE1pblR5cGUgYXJlIG9ubHkgdXNlZCBmb3IgY29tcGFyaXNv
biB0byBvdGhlciBrZXlzLgorICAgICAgICAvLyBUaGV5IHNob3VsZCBuZXZlciBiZSBlbmNvZGVk
L2RlY29kZWQuCisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBkZWNvZGVy
Lm1hcmtJbnZhbGlkKCk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJLZXlQYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXlQYXRoLmgKaW5kZXggMTFiMmIxOS4uN2IxNzJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguaApAQCAtNzcsNiArNzcsOSBAQCBwdWJsaWM6
CiAKICAgICBJREJLZXlQYXRoIGlzb2xhdGVkQ29weSgpIGNvbnN0OwogCisgICAgdGVtcGxhdGU8
Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgIHRlbXBsYXRl
PGNsYXNzIERlY29kZXI+IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgSURCS2V5UGF0aCYp
OworICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5jb2RlKEtleWVkRW5jb2RlciYpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGRlY29kZShLZXllZERlY29kZXIm
LCBJREJLZXlQYXRoJik7CiAKQEAgLTg2LDYgKzg5LDU2IEBAIHByaXZhdGU6CiAgICAgVmVjdG9y
PFN0cmluZz4gbV9hcnJheTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIElE
QktleVBhdGg6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIu
ZW5jb2RlRW51bShtX3R5cGUpOworCisgICAgc3dpdGNoIChtX3R5cGUpIHsKKyAgICBjYXNlIElE
QktleVBhdGg6Ok51bGxUeXBlOgorICAgICAgICBicmVhazsKKyAgICBjYXNlIElEQktleVBhdGg6
OlN0cmluZ1R5cGU6CisgICAgICAgIGVuY29kZXIgPDwgbV9zdHJpbmc7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgSURCS2V5UGF0aDo6QXJyYXlUeXBlOgorICAgICAgICBlbmNvZGVyIDw8IG1f
YXJyYXk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIH0KK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK2Jvb2wgSURC
S2V5UGF0aDo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIElEQktleVBhdGgmIGtleVBhdGgpCit7
CisgICAgSURCS2V5UGF0aDo6VHlwZSB0eXBlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVt
KHR5cGUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAg
ICBjYXNlIElEQktleVBhdGg6Ok51bGxUeXBlOgorICAgICAgICBrZXlQYXRoID0gSURCS2V5UGF0
aCgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGNhc2UgSURCS2V5UGF0aDo6U3RyaW5n
VHlwZTogeworICAgICAgICBTdHJpbmcgc3RyaW5nOworICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHN0cmluZykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAga2V5UGF0
aCA9IElEQktleVBhdGgoc3RyaW5nKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAg
IGNhc2UgSURCS2V5UGF0aDo6QXJyYXlUeXBlOiB7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IGFy
cmF5OworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGFycmF5KSkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICBrZXlQYXRoID0gSURCS2V5UGF0aChhcnJheSk7CisgICAg
ICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJLZXlSYW5nZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QktleVJhbmdlRGF0YS5oCmluZGV4IDU2Y2Y0NjEuLjk4YzgyY2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlRGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlRGF0YS5oCkBAIC02MSw2ICs2
MSw5IEBAIHN0cnVjdCBJREJLZXlSYW5nZURhdGEgewogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBpc0V4YWN0bHlPbmVLZXkoKSBjb25zdDsKIAorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
PiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIElEQktleVJhbmdlRGF0YSYpOworCiAgICAg
Ym9vbCBpc051bGw7CiAKICAgICBJREJLZXlEYXRhIGxvd2VyS2V5OwpAQCAtNzAsNiArNzMsNDAg
QEAgc3RydWN0IElEQktleVJhbmdlRGF0YSB7CiAgICAgYm9vbCB1cHBlck9wZW47CiB9OwogCit0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBJREJLZXlSYW5nZURhdGE6OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgaXNOdWxsOworICAgIGlmIChp
c051bGwpCisgICAgICAgIHJldHVybjsKKworICAgIGVuY29kZXIgPDwgdXBwZXJLZXkgPDwgbG93
ZXJLZXkgPDwgdXBwZXJPcGVuIDw8IGxvd2VyT3BlbjsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4KK2Jvb2wgSURCS2V5UmFuZ2VEYXRhOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgSURC
S2V5UmFuZ2VEYXRhJiBrZXlSYW5nZSkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGtleVJh
bmdlLmlzTnVsbCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChrZXlSYW5nZS5p
c051bGwpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShr
ZXlSYW5nZS51cHBlcktleSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVj
b2Rlci5kZWNvZGUoa2V5UmFuZ2UubG93ZXJLZXkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGtleVJhbmdlLnVwcGVyT3BlbikpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoa2V5UmFuZ2UubG93ZXJPcGVu
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3Rv
cmVNZXRhZGF0YS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0
U3RvcmVNZXRhZGF0YS5oCmluZGV4IDU5YWMwYTkuLjg2YjQ3ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlTWV0YWRhdGEuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZU1ldGFkYXRh
LmgKQEAgLTQ5LDYgKzQ5LDkgQEAgc3RydWN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEgewogICAg
IHsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNv
ZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIGJvb2wgZGVj
b2RlKERlY29kZXImLCBJREJPYmplY3RTdG9yZU1ldGFkYXRhJik7CisgICAgCiAgICAgU3RyaW5n
IG5hbWU7CiAgICAgaW50NjRfdCBpZDsKICAgICBJREJLZXlQYXRoIGtleVBhdGg7CkBAIC02Myw2
ICs2NiwzNiBAQCBzdHJ1Y3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSB7CiAgICAgSURCT2JqZWN0
U3RvcmVNZXRhZGF0YSBpc29sYXRlZENvcHkoKSBjb25zdDsKIH07CiAKK3RlbXBsYXRlPGNsYXNz
IEVuY29kZXI+Cit2b2lkIElEQk9iamVjdFN0b3JlTWV0YWRhdGE6OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbmFtZSA8PCBpZCA8PCBrZXlQYXRoIDw8
IGF1dG9JbmNyZW1lbnQgPDwgbWF4SW5kZXhJZCA8PCBpbmRleGVzOworfQorCit0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPgorYm9vbCBJREJPYmplY3RTdG9yZU1ldGFkYXRhOjpkZWNvZGUoRGVjb2Rl
ciYgZGVjb2RlciwgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgbWV0YWRhdGEpCit7CisgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShtZXRhZGF0YS5uYW1lKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXRhZGF0YS5pZCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWV0YWRhdGEua2V5UGF0aCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWV0YWRhdGEuYXV0
b0luY3JlbWVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUobWV0YWRhdGEubWF4SW5kZXhJZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUobWV0YWRhdGEuaW5kZXhlcykpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzN2I1Njkw
Li5kMDBhNTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTUtMDktMTUgIEJyYWR5
IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vdmUgbW9zdCBJREIgb2Jq
ZWN0IGVuY29kaW5nL2RlY29kaW5nIGZyb20gV2ViS2l0MiB0byBXZWJDb3JlLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ5MTUyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJREJEYXRhYmFz
ZU1ldGFkYXRhPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2Rl
cjxJREJEYXRhYmFzZU1ldGFkYXRhPjo6ZGVjb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxJREJJbmRleE1ldGFkYXRhPjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxJREJJbmRleE1ldGFkYXRhPjo6ZGVjb2RlKTogRGVsZXRl
ZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJREJLZXlEYXRhPjo6ZW5jb2RlKTogRGVs
ZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJREJLZXlEYXRhPjo6ZGVjb2RlKTog
RGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJREJLZXlQYXRoPjo6ZW5jb2Rl
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJREJLZXlQYXRoPjo6ZGVj
b2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJREJLZXlSYW5nZURh
dGE+OjplbmNvZGUpOiBEZWxldGVkLgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPElEQktl
eVJhbmdlRGF0YT46OmRlY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8SURCT2JqZWN0U3RvcmVNZXRhZGF0YT46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8SURCT2JqZWN0U3RvcmVNZXRhZGF0YT46OmRlY29kZSk6IERlbGV0
ZWQuCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorCiAyMDE1LTA5
LTE0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIHRo
ZSBlbnVtIElEQktleTo6VHlwZSBpbnRvIGEgdXRpbGl0eSBlbnVtIGNsYXNzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBhY2JlMTI2
Li43MWRjM2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmNwcApAQCAtNDMsMTEgKzQzLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbHRlck9w
ZXJhdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgotI2luY2x1ZGUgPFdlYkNvcmUvSURCRGF0YWJh
c2VNZXRhZGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSURCR2V0UmVzdWx0Lmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9JREJLZXlEYXRhLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9JREJLZXlQYXRoLmg+
Ci0jaW5jbHVkZSA8V2ViQ29yZS9JREJLZXlSYW5nZURhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ltYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9MZW5ndGguaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BhdGguaD4KQEAgLTE4MTAsNTUgKzE4MDYsNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8RmlsdGVy
T3BlcmF0aW9ucz46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIEZpbHRlck9wZQog
I2VuZGlmIC8vICFVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAKICNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKLXZvaWQgQXJndW1lbnRDb2RlcjxJREJEYXRhYmFzZU1ldGFkYXRhPjo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgSURCRGF0YWJhc2VNZXRhZGF0YSYg
bWV0YWRhdGEpCi17Ci0gICAgZW5jb2RlciA8PCBtZXRhZGF0YS5uYW1lIDw8IG1ldGFkYXRhLmlk
IDw8IG1ldGFkYXRhLnZlcnNpb24gPDwgbWV0YWRhdGEubWF4T2JqZWN0U3RvcmVJZCA8PCBtZXRh
ZGF0YS5vYmplY3RTdG9yZXM7Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJREJEYXRhYmFzZU1l
dGFkYXRhPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgSURCRGF0YWJhc2VNZXRh
ZGF0YSYgbWV0YWRhdGEpCi17Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXRhZGF0YS5uYW1l
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXRh
ZGF0YS5pZCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUobWV0YWRhdGEudmVyc2lvbikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUobWV0YWRhdGEubWF4T2JqZWN0U3RvcmVJZCkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWV0YWRhdGEub2JqZWN0U3RvcmVz
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZvaWQg
QXJndW1lbnRDb2RlcjxJREJJbmRleE1ldGFkYXRhPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlciwgY29uc3QgSURCSW5kZXhNZXRhZGF0YSYgbWV0YWRhdGEpCi17Ci0gICAgZW5jb2Rl
ciA8PCBtZXRhZGF0YS5uYW1lIDw8IG1ldGFkYXRhLmlkIDw8IG1ldGFkYXRhLmtleVBhdGggPDwg
bWV0YWRhdGEudW5pcXVlIDw8IG1ldGFkYXRhLm11bHRpRW50cnk7Ci19Ci0KLWJvb2wgQXJndW1l
bnRDb2RlcjxJREJJbmRleE1ldGFkYXRhPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2Rl
ciwgSURCSW5kZXhNZXRhZGF0YSYgbWV0YWRhdGEpCi17Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShtZXRhZGF0YS5uYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShtZXRhZGF0YS5pZCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUobWV0YWRhdGEua2V5UGF0aCkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWV0YWRhdGEudW5pcXVlKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShtZXRhZGF0YS5tdWx0aUVu
dHJ5KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHRydWU7Ci19CiAKIHZv
aWQgQXJndW1lbnRDb2RlcjxJREJHZXRSZXN1bHQ+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBJREJHZXRSZXN1bHQmIHJlc3VsdCkKIHsKQEAgLTE4OTYsMTg1ICsxODQz
LDYgQEAgYm9vbCBBcmd1bWVudENvZGVyPElEQkdldFJlc3VsdD46OmRlY29kZShBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIElEQkdldFJlc3VsdCYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9p
ZCBBcmd1bWVudENvZGVyPElEQktleURhdGE+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhKQotewotICAgIGVuY29kZXIgPDwga2V5RGF0
YS5pc051bGw7Ci0gICAgaWYgKGtleURhdGEuaXNOdWxsKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBlbmNvZGVyLmVuY29kZUVudW0oa2V5RGF0YS50eXBlKTsKLQotICAgIHN3aXRjaCAoa2V5RGF0
YS50eXBlKSB7Ci0gICAgY2FzZSBLZXlUeXBlOjpJbnZhbGlkOgotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIEtleVR5cGU6OkFycmF5OgotICAgICAgICBlbmNvZGVyIDw8IGtleURhdGEuYXJyYXlW
YWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBLZXlUeXBlOjpTdHJpbmc6Ci0gICAgICAg
IGVuY29kZXIgPDwga2V5RGF0YS5zdHJpbmdWYWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBLZXlUeXBlOjpEYXRlOgotICAgIGNhc2UgS2V5VHlwZTo6TnVtYmVyOgotICAgICAgICBlbmNv
ZGVyIDw8IGtleURhdGEubnVtYmVyVmFsdWU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgS2V5
VHlwZTo6TWF4OgotICAgIGNhc2UgS2V5VHlwZTo6TWluOgotICAgICAgICAvLyBLZXlUeXBlOjpN
YXggYW5kIEtleVR5cGU6Ok1pbiBhcmUgb25seSB1c2VkIGZvciBjb21wYXJpc29uIHRvIG90aGVy
IGtleXMuCi0gICAgICAgIC8vIFRoZXkgc2hvdWxkIG5ldmVyIGJlIHNlbnQgYWNyb3NzIHRoZSB3
aXJlLgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
fQotfQotCi1ib29sIEFyZ3VtZW50Q29kZXI8SURCS2V5RGF0YT46OmRlY29kZShBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIElEQktleURhdGEmIGtleURhdGEpCi17Ci0gICAgaWYgKCFkZWNvZGVy
LmRlY29kZShrZXlEYXRhLmlzTnVsbCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlm
IChrZXlEYXRhLmlzTnVsbCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlRW51bShrZXlEYXRhLnR5cGUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICBzd2l0Y2ggKGtleURhdGEudHlwZSkgewotICAgIGNhc2UgS2V5VHlwZTo6SW52YWxpZDoKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBLZXlUeXBlOjpBcnJheToKLSAgICAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShrZXlEYXRhLmFycmF5VmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEtleVR5cGU6OlN0cmluZzoKLSAgICAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShrZXlEYXRhLnN0cmluZ1ZhbHVlKSkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBLZXlUeXBlOjpEYXRlOgotICAgIGNh
c2UgS2V5VHlwZTo6TnVtYmVyOgotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGtleURhdGEu
bnVtYmVyVmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEtleVR5cGU6Ok1heDoKLSAgICBjYXNlIEtleVR5cGU6Ok1pbjoKLSAgICAgICAg
Ly8gS2V5VHlwZTo6TWF4IGFuZCBLZXlUeXBlOjpNaW4gYXJlIG9ubHkgdXNlZCBmb3IgY29tcGFy
aXNvbiB0byBvdGhlciBrZXlzLgotICAgICAgICAvLyBUaGV5IHNob3VsZCBuZXZlciBiZSBzZW50
IGFjcm9zcyB0aGUgd2lyZS4KLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
IGRlY29kZXIubWFya0ludmFsaWQoKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQot
ICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8SURCS2V5UGF0aD46OmVu
Y29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IElEQktleVBhdGgmIGtleVBhdGgp
Ci17Ci0gICAgZW5jb2Rlci5lbmNvZGVFbnVtKGtleVBhdGgudHlwZSgpKTsKLQotICAgIHN3aXRj
aCAoa2V5UGF0aC50eXBlKCkpIHsKLSAgICBjYXNlIElEQktleVBhdGg6Ok51bGxUeXBlOgotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIElEQktleVBhdGg6OlN0cmluZ1R5cGU6Ci0gICAgICAgIGVu
Y29kZXIgPDwga2V5UGF0aC5zdHJpbmcoKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJREJL
ZXlQYXRoOjpBcnJheVR5cGU6Ci0gICAgICAgIGVuY29kZXIgPDwga2V5UGF0aC5hcnJheSgpOwot
ICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICB9Ci19Ci0KLWJvb2wgQXJndW1lbnRDb2RlcjxJREJLZXlQYXRoPjo6ZGVjb2RlKEFy
Z3VtZW50RGVjb2RlciYgZGVjb2RlciwgSURCS2V5UGF0aCYga2V5UGF0aCkKLXsKLSAgICBJREJL
ZXlQYXRoOjpUeXBlIHR5cGU7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0odHlwZSkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNhc2UgSURC
S2V5UGF0aDo6TnVsbFR5cGU6Ci0gICAgICAgIGtleVBhdGggPSBJREJLZXlQYXRoKCk7Ci0gICAg
ICAgIHJldHVybiB0cnVlOwotCi0gICAgY2FzZSBJREJLZXlQYXRoOjpTdHJpbmdUeXBlOiB7Ci0g
ICAgICAgIFN0cmluZyBzdHJpbmc7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3RyaW5n
KSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgICAgICBrZXlQYXRoID0gSURCS2V5
UGF0aChzdHJpbmcpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgY2FzZSBJREJL
ZXlQYXRoOjpBcnJheVR5cGU6IHsKLSAgICAgICAgVmVjdG9yPFN0cmluZz4gYXJyYXk7Ci0gICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUoYXJyYXkpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgICAgIGtleVBhdGggPSBJREJLZXlQYXRoKGFycmF5KTsKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgfQotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9
Ci19Ci0KLXZvaWQgQXJndW1lbnRDb2RlcjxJREJLZXlSYW5nZURhdGE+OjplbmNvZGUoQXJndW1l
bnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlKQotewot
ICAgIGVuY29kZXIgPDwga2V5UmFuZ2UuaXNOdWxsOwotICAgIGlmIChrZXlSYW5nZS5pc051bGwp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIGVuY29kZXIgPDwga2V5UmFuZ2UudXBwZXJLZXkgPDwg
a2V5UmFuZ2UubG93ZXJLZXkgPDwga2V5UmFuZ2UudXBwZXJPcGVuIDw8IGtleVJhbmdlLmxvd2Vy
T3BlbjsKLX0KLQotYm9vbCBBcmd1bWVudENvZGVyPElEQktleVJhbmdlRGF0YT46OmRlY29kZShB
cmd1bWVudERlY29kZXImIGRlY29kZXIsIElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2UpCi17Ci0g
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShrZXlSYW5nZS5pc051bGwpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBpZiAoa2V5UmFuZ2UuaXNOdWxsKQotICAgICAgICByZXR1cm4gdHJ1ZTsK
LQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUoa2V5UmFuZ2UudXBwZXJLZXkpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGtleVJhbmdlLmxvd2VyS2V5
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFkZWNvZGVyLmRlY29kZShrZXlS
YW5nZS51cHBlck9wZW4pKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKGtleVJhbmdlLmxvd2VyT3BlbikpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIHJldHVybiB0cnVlOwotfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8SURCT2JqZWN0U3RvcmVN
ZXRhZGF0YT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0IElEQk9iamVj
dFN0b3JlTWV0YWRhdGEmIG1ldGFkYXRhKQotewotICAgIGVuY29kZXIgPDwgbWV0YWRhdGEubmFt
ZSA8PCBtZXRhZGF0YS5pZCA8PCBtZXRhZGF0YS5rZXlQYXRoIDw8IG1ldGFkYXRhLmF1dG9JbmNy
ZW1lbnQgPDwgbWV0YWRhdGEubWF4SW5kZXhJZCA8PCBtZXRhZGF0YS5pbmRleGVzOwotfQotCi1i
b29sIEFyZ3VtZW50Q29kZXI8SURCT2JqZWN0U3RvcmVNZXRhZGF0YT46OmRlY29kZShBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIElEQk9iamVjdFN0b3JlTWV0YWRhdGEmIG1ldGFkYXRhKQotewot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWV0YWRhdGEubmFtZSkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLQotICAgIGlmICghZGVjb2Rlci5kZWNvZGUobWV0YWRhdGEuaWQpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1ldGFkYXRhLmtleVBhdGgp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1ldGFk
YXRhLmF1dG9JbmNyZW1lbnQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKG1ldGFkYXRhLm1heEluZGV4SWQpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKG1ldGFkYXRhLmluZGV4ZXMpKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogI2VuZGlmIC8vIEVOQUJMRShJ
TkRFWEVEX0RBVEFCQVNFKQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8U2Vzc2lvbklEPjo6ZW5jb2Rl
KEFyZ3VtZW50RW5jb2RlciYgZW5jb2RlciwgY29uc3QgU2Vzc2lvbklEJiBzZXNzaW9uSUQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggY2Y1
NDkzYi4uMTZlMGFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaApAQCAtNDcsNyArNDcsNiBAQCBjbGFzcyBGbG9hdFJvdW5kZWRSZWN0OwogY2xh
c3MgRmxvYXRTaXplOwogY2xhc3MgRml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM7CiBj
bGFzcyBIVFRQSGVhZGVyTWFwOwotY2xhc3MgSURCS2V5UGF0aDsKIGNsYXNzIEludFBvaW50Owog
Y2xhc3MgSW50UmVjdDsKIGNsYXNzIEludFNpemU7CkBAIC03MywxNCArNzIsOSBAQCBzdHJ1Y3Qg
Q29va2llOwogc3RydWN0IERpY3RhdGlvbkFsdGVybmF0aXZlOwogc3RydWN0IERpY3Rpb25hcnlQ
b3B1cEluZm87CiBzdHJ1Y3QgRmlsZUNob29zZXJTZXR0aW5nczsKLXN0cnVjdCBJREJEYXRhYmFz
ZU1ldGFkYXRhOwotc3RydWN0IElEQkdldFJlc3VsdDsKLXN0cnVjdCBJREJJbmRleE1ldGFkYXRh
Owotc3RydWN0IElEQktleURhdGE7Ci1zdHJ1Y3QgSURCS2V5UmFuZ2VEYXRhOwotc3RydWN0IElE
Qk9iamVjdFN0b3JlTWV0YWRhdGE7CiBzdHJ1Y3QgTGVuZ3RoOwogc3RydWN0IEdyYW1tYXJEZXRh
aWw7CitzdHJ1Y3QgSURCR2V0UmVzdWx0Owogc3RydWN0IE1pbWVDbGFzc0luZm87CiBzdHJ1Y3Qg
UGFzdGVib2FyZEltYWdlOwogc3RydWN0IFBhc3RlYm9hcmRXZWJDb250ZW50OwpAQCAtNDA4LDQx
ICs0MDIsMTAgQEAgYm9vbCBkZWNvZGVGaWx0ZXJPcGVyYXRpb24oQXJndW1lbnREZWNvZGVyJiwg
UmVmUHRyPFdlYkNvcmU6OkZpbHRlck9wZXJhdGlvbj4mKTsKICNlbmRpZgogCiAjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OklEQkRhdGFiYXNlTWV0YWRhdGE+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1l
bnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SURCRGF0YWJhc2VNZXRhZGF0YSYpOwotICAgIHN0
YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpJREJEYXRhYmFzZU1l
dGFkYXRhJik7Ci19OwotCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OklEQkdldFJlc3VsdD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpJREJHZXRSZXN1bHQmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
QXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6SURCR2V0UmVzdWx0Jik7CiB9OwotCi10ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OklEQkluZGV4TWV0YWRhdGE+IHsKLSAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SURC
SW5kZXhNZXRhZGF0YSYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIm
LCBXZWJDb3JlOjpJREJJbmRleE1ldGFkYXRhJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OklEQktleURhdGE+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYpOwotICAgIHN0
YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpJREJLZXlEYXRhJik7
Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OklEQktleVBh
dGg+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyJiwgY29uc3QgV2Vi
Q29yZTo6SURCS2V5UGF0aCYpOwotICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29k
ZXImLCBXZWJDb3JlOjpJREJLZXlQYXRoJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1
bWVudENvZGVyPFdlYkNvcmU6OklEQktleVJhbmdlRGF0YT4gewotICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmKTsK
LSAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyJiwgV2ViQ29yZTo6SURCS2V5
UmFuZ2VEYXRhJik7Ci19OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OklEQk9iamVjdFN0b3JlTWV0YWRhdGE+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJn
dW1lbnRFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVNZXRhZGF0YSYpOwot
ICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpJREJPYmpl
Y3RTdG9yZU1ldGFkYXRhJik7Ci19OwotCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U2Vzc2lvbklE
PiB7Cg==
</data>
<flag name="review"
          id="286403"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>