<?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>147347</bug_id>
          
          <creation_ts>2015-07-27 17:57:55 -0700</creation_ts>
          <short_desc>[ES6] Implement Reflect.enumerate</short_desc>
          <delta_ts>2015-07-27 23:03:03 -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>New Bugs</component>
          <version>528+ (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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>darin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1112634</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-27 17:57:55 -0700</bug_when>
    <thetext>[ES6] Implement Reflect.enumerate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112636</commentid>
    <comment_count>1</comment_count>
      <attachid>257622</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-27 18:00:17 -0700</bug_when>
    <thetext>Created attachment 257622
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112637</commentid>
    <comment_count>2</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-27 18:01:29 -0700</bug_when>
    <thetext>In this patch, we leverages JSPropertyNameEnumerator, so it leverages the existing caching system.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112652</commentid>
    <comment_count>3</comment_count>
      <attachid>257627</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-27 19:22:53 -0700</bug_when>
    <thetext>Created attachment 257627
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1112683</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2015-07-27 23:03:03 -0700</bug_when>
    <thetext>Committed r187483: &lt;http://trac.webkit.org/changeset/187483&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257622</attachid>
            <date>2015-07-27 18:00:17 -0700</date>
            <delta_ts>2015-07-27 19:22:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147347-20150727175901.patch</filename>
            <type>text/plain</type>
            <size>27453</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NDY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
MmMwNzEwMWMzNzFlNmExYjQyYzUzMDBjNzY3ODE4ZjAxZmFjOTU5Li4xOWJjYWIxZjA3Mzg2MDBk
YjJkZjUzYTkyNjQ2YTg3NWM4ZTdhYmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSw0MyBAQAorMjAxNS0wNy0yNyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgUmVmbGVjdC5lbnVtZXJhdGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzM0NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1w
bGVtZW50cyBSZWZsZWN0LmVudW1lcmF0ZS4KKyAgICAgICAgSXQgcmV0dXJucyB0aGUgaXRlcmF0
b3IgdGhhdCBpdGVyYXRlcyB0aGUgZW51bWVyYWJsZSBrZXlzIG9mIHRoZSBnaXZlbiBvYmplY3Qu
CisgICAgICAgIEl0IGZvbGxvd3MgdGhlIGZvci1pbidzIGVudW1lcmF0aW9uIG9yZGVyLgorCisg
ICAgICAgIFRvIGltcGxlbWVudCBpdCwgd2Ugd3JpdGUgZG93biB0aGUgc2FtZSBsb2dpYyB0byB0
aGUgZm9yLWluJ3MgZW51bWVyYXRpb24gY29kZSBpbiBDKysuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmluaXQpOgorICAgICAgICAoSlNDOjpKU0dsb2Jh
bE9iamVjdDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVj
dC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6cHJvcGVydHlOYW1lSXRlcmF0b3JT
dHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHA6
IEFkZGVkLgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpKU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yKToKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6Y2xv
bmUpOgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpjcmVhdGUpOgorICAg
ICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAg
ICAgIChKU0M6OkpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAg
ICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpuZXh0KToKKyAgICAgICAgKEpTQzo6cHJv
cGVydHlOYW1lSXRlcmF0b3JGdW5jTmV4dCk6CisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJh
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvUmVmbGVjdE9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OnJlZmxlY3RPYmplY3RFbnVtZXJhdGUpOgorICAgICAgICAqIHRl
c3RzL3N0cmVzcy9yZWZsZWN0LWVudW1lcmF0ZS5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRC
ZSk6CisgICAgICAgIChzaG91bGRUaHJvdyk6CisKIDIwMTUtMDctMjcgIFl1c3VrZSBTdXp1a2kg
IDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAgICAgICAgU3BhcnNlVmFsdWVNYXAgY2hlY2sg
aXMgc2tpcHBlZCB3aGVuIHRoZSBidXR0ZXJmbHkncyB2ZWN0b3JMZW5ndGggaXMgbGFyZ2VyIHRo
YW4gdGhlIGFjY2Vzcy1yZXF1ZXN0ZWQgaW5kZXgKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzI2NQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKaW5kZXggNTE5ZmNhZjQ2MTEzOWNmNzExODg2ZjhkMTM0YTlkZGM1MWE4NjI1Ny4uMjE1
MzBhMDdkZTA0NzdiYTU3Zjg2YmNkM2NhYjA0YmFjZjBlNWI1MyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DTWFrZUxpc3RzLnR4dApAQCAtNTE2LDYgKzUxNiw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9S
VU5USU1FX1NPVVJDRVMKICAgICBydW50aW1lL0pTUHJvbWlzZURlZmVycmVkLmNwcAogICAgIHJ1
bnRpbWUvSlNQcm9taXNlUHJvdG90eXBlLmNwcAogICAgIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yLmNwcAorICAgIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAKICAg
ICBydW50aW1lL0pTUHJveHkuY3BwCiAgICAgcnVudGltZS9KU1Njb3BlLmNwcAogICAgIHJ1bnRp
bWUvSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2og
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0
Q29yZS52Y3hwcm9qCmluZGV4IDExOGE5MTNkZjU0Njg4NWM0NDZjYTVhYjNlNDY3N2MzOTI4ZmYw
MjIuLjI0NGJhMTk0MTQ5OGUyMzgwMmFhZjRmNjM4MDgwOTFjNGQxZTdhZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRD
b3JlLnZjeHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZj
eHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagpAQCAtNzY4LDYgKzc2OCw3IEBACiAgICAgPENs
Q29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTUHJvbWlzZURlZmVycmVkLmNwcCIgLz4KICAg
ICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNQcm9taXNlUHJvdG90eXBlLmNwcCIg
Lz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNQcm9wZXJ0eU5hbWVFbnVt
ZXJhdG9yLmNwcCIgLz4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50
aW1lXEpTUHJveHkuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxK
U1Njb3BlLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNTZWdt
ZW50ZWRWYXJpYWJsZU9iamVjdC5jcHAiIC8+CkBAIC0xNTkyLDYgKzE1OTMsNyBAQAogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU1Byb21pc2VEZWZlcnJlZC5oIiAvPgogICAg
IDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU1Byb21pc2VQcm90b3R5cGUuaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNQcm9wZXJ0eU5hbWVFbnVtZXJh
dG9yLmgiIC8+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTUHJvcGVydHlO
YW1lSXRlcmF0b3IuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNQ
cm94eS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU1Njb3BlLmgi
IC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTU2VnbWVudGVkVmFyaWFi
bGVPYmplY3QuaCIgLz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHBy
b2ouZmlsdGVycwppbmRleCA2MGM2NDlhODMzYmVmYTViMmI5YjQ3ZjkyNTkyNTRiYjVhZWQwZjNm
Li5jNWJkNTQ5OGRmM2E4NTdiYjhlNWRkOWNiMDhkMWNiM2E5NmRlZDdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qLmZpbHRlcnMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCkBAIC02OTYsNiArNjk2
LDkgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNQcm9wZXJ0eU5hbWVF
bnVtZXJhdG9yLmNwcCI+CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0Ns
Q29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvci5jcHAiPgorICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+CisgICAgPC9D
bENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTUHJveHkuY3Bw
Ij4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgpAQCAt
Mjc2MCw2ICsyNzYzLDkgQEAKICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmgiPgogICAgICAgPEZpbHRlcj5ydW50aW1lPC9GaWx0ZXI+
CiAgICAgPC9DbEluY2x1ZGU+CisgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50aW1lXEpT
UHJvcGVydHlOYW1lSXRlcmF0b3IuaCI+CisgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4K
KyAgICA8L0NsSW5jbHVkZT4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNQ
cm94eS5oIj4KICAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xJbmNsdWRl
PgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiNGEzMjhiODY2NGNkMzRiMjQ5MTll
ZDEwMjBlNTRkNmMyM2EwNjE3Li5iNGFjYzE5NDAxODU5MzQ3MjM4NzVjMDI1YjU2YTY1OTM1YmFl
NDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTY1OCw2ICsxNjU4LDggQEAK
IAkJRTMzNjM3QTUxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RPYmplY3QuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTMzNjM3QTMxQjYzMjIwMjAw
RUUwODQwIC8qIFJlZmxlY3RPYmplY3QuY3BwICovOyB9OwogCQlFMzM2MzdBNjFCNjMyMjAyMDBF
RTA4NDAgLyogUmVmbGVjdE9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTMzNjM3QTQxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RPYmplY3Qu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFMzU0
NjIyQjFCNjA2NUQxMDA1NDUzODYgLyogQ29uc3RydWN0QWJpbGl0eS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTM1NDYyMkExQjYwNjVEMTAwNTQ1Mzg2
IC8qIENvbnN0cnVjdEFiaWxpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQlFM0VGODg3NDFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFM0VGODg3MjFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5j
cHAgKi87IH07CisJCUUzRUY4ODc1MUI2NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0
ZXJhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
M0VGODg3MzFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0OURDMTZCMTJF
RjI5M0UwMDE4NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0OURDMTU1MTJFRjI3NzIwMDE4NEExRiAv
KiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCAqLzsgfTsKIAkJRTQ5REMxNkMxMkVGMjk0RTAwMTg0
QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEU0OURDMTUxMTJFRjI3MjIwMDE4NEExRiAvKiBTb3VyY2VQcm92
aWRlckNhY2hlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRTQ5REMxNkQxMkVGMjk1MzAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGVJdGVt
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDlEQzE0
OTEyRUYyNjFBMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzQ0Myw2ICszNDQ1LDgg
QEAKIAkJRTMzNjM3QTMxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RPYmplY3QuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVmbGVjdE9iamVjdC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUzMzYzN0E0MUI2MzIyMDIwMEVFMDg0MCAvKiBSZWZs
ZWN0T2JqZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZmxlY3RPYmpl
Y3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTM1NDYyMkExQjYwNjVEMTAwNTQ1
Mzg2IC8qIENvbnN0cnVjdEFiaWxpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ29uc3RydWN0QWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFM0VG
ODg3MjFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTNFRjg4NzMxQjY2REYyMzAwM0YyNkNC
IC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFNDlEQzE0OTEyRUYyNjFBMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291cmNlUHJvdmlkZXJDYWNoZUl0
ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ5REMxNTExMkVGMjcyMjAwMTg0
QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU291cmNlUHJvdmlkZXJDYWNoZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNDlEQzE1NTEyRUYyNzcyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTb3VyY2VQcm92aWRlckNhY2hlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ1OTcsNiArNDYwMSw4IEBACiAJCQkJ
N0MxODRFMUQxN0JFRTIyRTAwN0NCNjNBIC8qIEpTUHJvbWlzZVByb3RvdHlwZS5oICovLAogCQkJ
CTJBMDVBQkQzMTk2MURGMjQwMDM0MTc1MCAvKiBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3Bw
ICovLAogCQkJCTJBMDVBQkQ0MTk2MURGMjQwMDM0MTc1MCAvKiBKU1Byb3BlcnR5TmFtZUVudW1l
cmF0b3IuaCAqLywKKwkJCQlFM0VGODg3MjFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5h
bWVJdGVyYXRvci5jcHAgKi8sCisJCQkJRTNFRjg4NzMxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJv
cGVydHlOYW1lSXRlcmF0b3IuaCAqLywKIAkJCQk4NjI1NTNDRTE2MTM2QUE1MDA5RjE3RDAgLyog
SlNQcm94eS5jcHAgKi8sCiAJCQkJODYyNTUzQ0YxNjEzNkFBNTAwOUYxN0QwIC8qIEpTUHJveHku
aCAqLywKIAkJCQkxNDg3NEFFMTE1RUJERTRBMDAyRTM1ODcgLyogSlNTY29wZS5jcHAgKi8sCkBA
IC01Njg0LDYgKzU2OTAsNyBAQAogCQkJCTJBRDJFREZCMTk3OTlFMzgwMDRENjQ3OCAvKiBFbnVt
ZXJhdGlvbk1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1RUY5QjE4MUExRDQ0MDYwMDcwMkU5
MCAvKiBnZW5lcmF0ZV9jcHBfcHJvdG9jb2xfdHlwZXNfaGVhZGVyLnB5IGluIEhlYWRlcnMgKi8s
CiAJCQkJQTVFRjlCMTkxQTFENDQwNzAwNzAyRTkwIC8qIGdlbmVyYXRlX2NwcF9wcm90b2NvbF90
eXBlc19pbXBsZW1lbnRhdGlvbi5weSBpbiBIZWFkZXJzICovLAorCQkJCUUzRUY4ODc1MUI2NkRG
MjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDNEY0QjZGNjFBMDVDOTg0MDA1Q0FCNzYgLyogb2JqY19nZW5lcmF0b3JfdGVtcGxhdGVzLnB5
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzBEQzNFMEExQjJERjJDNzAwMDU0Mjk5IC8qIEl0ZXJhdG9y
UHJvdG90eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUVGOUIxNzFBMUQ0NDAzMDA3MDJFOTAg
LyogZ2VuZXJhdGVfY3BwX2Zyb250ZW5kX2Rpc3BhdGNoZXJfaW1wbGVtZW50YXRpb24ucHkgaW4g
SGVhZGVycyAqLywKQEAgLTc2MjYsNiArNzYzMyw3IEBACiAJCQkJMEYyQjY3MDQxN0I2QjVBQjAw
QTdBRTNGIC8qIFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCUMyMjU0OTQzMTVGN0RCQUEwMDY1RTg5OCAvKiBTbG90VmlzaXRvci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk5MzMwNDAyQzBFNkE3NjQwMDA3ODZFNkEgLyogU21hbGxTdHJpbmdzLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUUzRUY4ODc0MUI2NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGOEYyQjlFMTczMDZDOEQwMDdE
QkRBNSAvKiBTb3VyY2VDb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNDkzQUZBMTZEMENB
RDMwMDg0NTA4QiAvKiBTb3VyY2VQcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDlE
QzE2QjEyRUYyOTNFMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZS5jcHAgaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0
LmNwcAppbmRleCAzZWZhNjY3MDBmMDM0ZDcxNTFiNjJjODcxMDE4OWVjNDRlM2Q4MzQwLi4yNjE4
M2VmOWVmZWE0NzkxNDYxMTY1YTk2Mjk1ZWM0NDZhOTE1OTJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCkBAIC04NSw2ICs4NSw3IEBA
CiAjaW5jbHVkZSAiSlNQcm9taXNlLmgiCiAjaW5jbHVkZSAiSlNQcm9taXNlQ29uc3RydWN0b3Iu
aCIKICNpbmNsdWRlICJKU1Byb21pc2VQcm90b3R5cGUuaCIKKyNpbmNsdWRlICJKU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiSlNTZXQuaCIKICNpbmNsdWRlICJKU1NldEl0ZXJh
dG9yLmgiCiAjaW5jbHVkZSAiSlNTdHJpbmdJdGVyYXRvci5oIgpAQCAtMzU5LDYgKzM2MCw3IEBA
IG1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGUuc2V0KHZtLCB0aGlzLCBjYXBpdGFsTmFtZSMj
UHJvdG90eXBlOjpjcmVhdGUodm0sIHRoCiBtXyAjIyBwcm9wZXJOYW1lICMjIFN0cnVjdHVyZS5z
ZXQodm0sIHRoaXMsIGluc3RhbmNlVHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBtXyAj
IyBsb3dlck5hbWUgIyMgUHJvdG90eXBlLmdldCgpKSk7CiAgICAgCiAgICAgRk9SX0VBQ0hfQlVJ
TFRJTl9ERVJJVkVEX0lURVJBVE9SX1RZUEUoQ1JFQVRFX1BST1RPVFlQRV9GT1JfREVSSVZFRF9J
VEVSQVRPUl9UWVBFKQorICAgIG1fcHJvcGVydHlOYW1lSXRlcmF0b3JTdHJ1Y3R1cmUuc2V0KHZt
LCB0aGlzLCBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMs
IG1faXRlcmF0b3JQcm90b3R5cGUuZ2V0KCkpKTsKICAgICAKICN1bmRlZiBDUkVBVEVfUFJPVE9U
WVBFX0ZPUl9ERVJJVkVEX0lURVJBVE9SX1RZUEUKIApAQCAtNzg0LDYgKzc4Niw3IEBAIHZvaWQg
SlNHbG9iYWxPYmplY3Q6OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBTbG90VmlzaXRvciYg
dmlzaXRvcikKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9jYWxsYmFja0NvbnN0
cnVjdG9yU3RydWN0dXJlKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9jYWxs
YmFja0Z1bmN0aW9uU3RydWN0dXJlKTsKICAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+
bV9jYWxsYmFja09iamVjdFN0cnVjdHVyZSk7CisgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmpl
Y3QtPm1fcHJvcGVydHlOYW1lSXRlcmF0b3JTdHJ1Y3R1cmUpOwogI2lmIEpTQ19PQkpDX0FQSV9F
TkFCTEVECiAgICAgdmlzaXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fb2JqY0NhbGxiYWNrRnVu
Y3Rpb25TdHJ1Y3R1cmUpOwogICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX29iamNX
cmFwcGVyT2JqZWN0U3RydWN0dXJlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdC5oCmluZGV4IDZlNjk1ZDQxYjkwMWUwOTUwYTVhMzU4NTMxZmRlNTY1
ZTJjODE2YjEuLjk5ODc5ZDEyYjRhNTExODVkNDM5ZjlhY2E4N2E5NmYxM2E5MDU1YzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaApAQCAtMjI1
LDYgKzIyNSw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVudGVkVmFy
aWFibGVPYmplY3QgewogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fY2FsbGJhY2tDb25z
dHJ1Y3RvclN0cnVjdHVyZTsKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2NhbGxiYWNr
RnVuY3Rpb25TdHJ1Y3R1cmU7CiAgICAgV3JpdGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9jYWxsYmFj
a09iamVjdFN0cnVjdHVyZTsKKyAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX3Byb3BlcnR5
TmFtZUl0ZXJhdG9yU3RydWN0dXJlOwogI2lmIEpTQ19PQkpDX0FQSV9FTkFCTEVECiAgICAgV3Jp
dGVCYXJyaWVyPFN0cnVjdHVyZT4gbV9vYmpjQ2FsbGJhY2tGdW5jdGlvblN0cnVjdHVyZTsKICAg
ICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX29iamNXcmFwcGVyT2JqZWN0U3RydWN0dXJlOwpA
QCAtNDUxLDYgKzQ1Miw3IEBAIGNsYXNzIEpTR2xvYmFsT2JqZWN0IDogcHVibGljIEpTU2VnbWVu
dGVkVmFyaWFibGVPYmplY3QgewogICAgIFN0cnVjdHVyZSogY2FsbGJhY2tDb25zdHJ1Y3RvclN0
cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGJhY2tDb25zdHJ1Y3RvclN0cnVjdHVyZS5n
ZXQoKTsgfQogICAgIFN0cnVjdHVyZSogY2FsbGJhY2tGdW5jdGlvblN0cnVjdHVyZSgpIGNvbnN0
IHsgcmV0dXJuIG1fY2FsbGJhY2tGdW5jdGlvblN0cnVjdHVyZS5nZXQoKTsgfQogICAgIFN0cnVj
dHVyZSogY2FsbGJhY2tPYmplY3RTdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNr
T2JqZWN0U3RydWN0dXJlLmdldCgpOyB9CisgICAgU3RydWN0dXJlKiBwcm9wZXJ0eU5hbWVJdGVy
YXRvclN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydHlOYW1lSXRlcmF0b3JTdHJ1
Y3R1cmUuZ2V0KCk7IH0KICNpZiBKU0NfT0JKQ19BUElfRU5BQkxFRAogICAgIFN0cnVjdHVyZSog
b2JqY0NhbGxiYWNrRnVuY3Rpb25TdHJ1Y3R1cmUoKSBjb25zdCB7IHJldHVybiBtX29iamNDYWxs
YmFja0Z1bmN0aW9uU3RydWN0dXJlLmdldCgpOyB9CiAgICAgU3RydWN0dXJlKiBvYmpjV3JhcHBl
ck9iamVjdFN0cnVjdHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqY1dyYXBwZXJPYmplY3RTdHJ1
Y3R1cmUuZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTk3NDlhNTI0ZjMwYmRl
NTVlMGJlMzRiMzliYzljNTM3NDg1ZjA4OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwCkBAIC0wLDAgKzEs
MTUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlLCBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgiCisK
KyNpbmNsdWRlICJJZGVudGlmaWVySW5saW5lcy5oIgorI2luY2x1ZGUgIkl0ZXJhdG9yT3BlcmF0
aW9ucy5oIgorI2luY2x1ZGUgIkpTQ0pTVmFsdWVJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNDZWxs
SW5saW5lcy5oIgorI2luY2x1ZGUgIkpTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oIgorI2luY2x1
ZGUgIlNsb3RWaXNpdG9ySW5saW5lcy5oIgorI2luY2x1ZGUgIlN0cnVjdHVyZUlubGluZXMuaCIK
KworbmFtZXNwYWNlIEpTQyB7CisKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IHByb3BlcnR5TmFtZUl0ZXJhdG9yRnVuY05leHQoRXhlY1N0YXRlKik7CisKK2NvbnN0IENsYXNz
SW5mbyBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpzX2luZm8gPSB7ICJQcm9wZXJ0eU5hbWUgSXRl
cmF0b3IiLCAmQmFzZTo6c19pbmZvLCAwLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTUHJvcGVydHlO
YW1lSXRlcmF0b3IpIH07CisKK0pTUHJvcGVydHlOYW1lSXRlcmF0b3I6OkpTUHJvcGVydHlOYW1l
SXRlcmF0b3IoVk0mIHZtLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNPYmplY3QqIG9iamVjdCwg
SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJhdG9yKQorICAgIDogQmFzZSh2bSwgc3Ry
dWN0dXJlKQorICAgICwgbV9pdGVyYXRlZE9iamVjdCh2bSwgdGhpcywgb2JqZWN0KQorICAgICwg
bV9wcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKHZtLCB0aGlzLCBlbnVtZXJhdG9yKQorICAgICwgbV9l
bnVtZXJhdGlvblBoYXNlKEVudW1lcmF0aW9uUGhhc2U6OkluZGV4ZWROYW1lcykKKyAgICAsIG1f
Y3Vyc29yKDApCit7Cit9CisKK0pTUHJvcGVydHlOYW1lSXRlcmF0b3IqIEpTUHJvcGVydHlOYW1l
SXRlcmF0b3I6OmNsb25lKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBhdXRvIGl0ZXJhdG9yID0g
SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6Y3JlYXRlKGV4ZWMsIGV4ZWMtPmNhbGxlZSgpLT5nbG9i
YWxPYmplY3QoKS0+cHJvcGVydHlOYW1lSXRlcmF0b3JTdHJ1Y3R1cmUoKSwgbV9pdGVyYXRlZE9i
amVjdC5nZXQoKSwgbV9wcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmdldCgpKTsKKyAgICBpdGVyYXRv
ci0+bV9lbnVtZXJhdGlvblBoYXNlID0gbV9lbnVtZXJhdGlvblBoYXNlOworICAgIGl0ZXJhdG9y
LT5tX2N1cnNvciA9IG1fY3Vyc29yOworICAgIHJldHVybiBpdGVyYXRvcjsKK30KKworSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvciogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6Y3JlYXRlKEV4ZWNTdGF0
ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTT2JqZWN0KiBpdGVyYXRlZE9iamVjdCkK
K3sKKyAgICByZXR1cm4gSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6Y3JlYXRlKGV4ZWMsIHN0cnVj
dHVyZSwgaXRlcmF0ZWRPYmplY3QsIHByb3BlcnR5TmFtZUVudW1lcmF0b3IoZXhlYywgaXRlcmF0
ZWRPYmplY3QpKTsKK30KKworSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogSlNQcm9wZXJ0eU5hbWVJ
dGVyYXRvcjo6Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpT
T2JqZWN0KiBpdGVyYXRlZE9iamVjdCwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKiBlbnVtZXJh
dG9yKQoreworICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CisgICAgSlNQcm9wZXJ0eU5hbWVJdGVy
YXRvciogaW5zdGFuY2UgPSBuZXcgKE5vdE51bGwsIGFsbG9jYXRlQ2VsbDxKU1Byb3BlcnR5TmFt
ZUl0ZXJhdG9yPih2bS5oZWFwKSkgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcih2bSwgc3RydWN0dXJl
LCBpdGVyYXRlZE9iamVjdCwgZW51bWVyYXRvcik7CisgICAgaW5zdGFuY2UtPmZpbmlzaENyZWF0
aW9uKHZtLCBzdHJ1Y3R1cmUtPmdsb2JhbE9iamVjdCgpKTsKKyAgICByZXR1cm4gaW5zdGFuY2U7
Cit9CisKK3ZvaWQgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQoreworICAgIEJhc2U6OmZpbmlzaENyZWF0
aW9uKHZtKTsKKyAgICBBU1NFUlQoaW5oZXJpdHMoaW5mbygpKSk7CisgICAgSlNDX05BVElWRV9G
VU5DVElPTih2bS5wcm9wZXJ0eU5hbWVzLT5uZXh0LCBwcm9wZXJ0eU5hbWVJdGVyYXRvckZ1bmNO
ZXh0LCBEb250RW51bSwgMCk7Cit9CisKK3ZvaWQgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6dmlz
aXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQoreworICAgIEpT
UHJvcGVydHlOYW1lSXRlcmF0b3IqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNQcm9wZXJ0eU5hbWVJ
dGVyYXRvcio+KGNlbGwpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVj
dCwgaW5mbygpKTsKKyAgICBCYXNlOjp2aXNpdENoaWxkcmVuKHRoaXNPYmplY3QsIHZpc2l0b3Ip
OworICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX2l0ZXJhdGVkT2JqZWN0KTsKKyAg
ICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9wcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKTsK
K30KKworYm9vbCBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpuZXh0KEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSYgb3V0cHV0KQoreworICAgIGlmIChtX2VudW1lcmF0aW9uUGhhc2UgPT0gRW51bWVy
YXRpb25QaGFzZTo6SW5kZXhlZE5hbWVzKSB7CisgICAgICAgIGZvciAoOyBtX2N1cnNvciA8IG1f
cHJvcGVydHlOYW1lRW51bWVyYXRvci0+aW5kZXhlZExlbmd0aCgpOykgeworICAgICAgICAgICAg
dWludDMyX3QgaW5kZXggPSBtX2N1cnNvcisrOworICAgICAgICAgICAgaWYgKG1faXRlcmF0ZWRP
YmplY3QtPmhhc1Byb3BlcnR5KGV4ZWMsIGluZGV4KSkgeworICAgICAgICAgICAgICAgIG91dHB1
dCA9IGpzU3RyaW5nKGV4ZWMsIElkZW50aWZpZXI6OmZyb20oZXhlYywgaW5kZXgpLnN0cmluZygp
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICBtX2N1cnNvciA9IDA7CisgICAgICAgIG1fZW51bWVyYXRpb25QaGFzZSA9IEVu
dW1lcmF0aW9uUGhhc2U6OlN0cnVjdHVyZU5hbWVzOworICAgIH0KKworICAgIGlmIChtX2VudW1l
cmF0aW9uUGhhc2UgPT0gRW51bWVyYXRpb25QaGFzZTo6U3RydWN0dXJlTmFtZXMpIHsKKyAgICAg
ICAgZm9yICg7IG1fY3Vyc29yIDwgbV9wcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLT5lbmRTdHJ1Y3R1
cmVQcm9wZXJ0eUluZGV4KCk7KSB7CisgICAgICAgICAgICB1aW50MzJfdCBpbmRleCA9IG1fY3Vy
c29yKys7CisgICAgICAgICAgICBKU1N0cmluZyogcHJvcGVydHlOYW1lID0gbV9wcm9wZXJ0eU5h
bWVFbnVtZXJhdG9yLT5wcm9wZXJ0eU5hbWVBdEluZGV4KGluZGV4KTsKKyAgICAgICAgICAgIEFT
U0VSVChwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgaWYgKG1faXRlcmF0ZWRPYmplY3QtPnN0
cnVjdHVyZShleGVjLT52bSgpKS0+aWQoKSA9PSBtX3Byb3BlcnR5TmFtZUVudW1lcmF0b3ItPmNh
Y2hlZFN0cnVjdHVyZUlEKCkpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQgPSBwcm9wZXJ0eU5h
bWU7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGlmIChtX2l0ZXJhdGVkT2JqZWN0LT5oYXNQcm9wZXJ0eShleGVjLCBwcm9wZXJ0eU5h
bWUtPnRvSWRlbnRpZmllcihleGVjKSkpIHsKKyAgICAgICAgICAgICAgICBvdXRwdXQgPSBwcm9w
ZXJ0eU5hbWU7CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICAgICAgQVNTRVJUKG1fY3Vyc29yID49IG1fcHJvcGVydHlOYW1lRW51bWVy
YXRvci0+ZW5kU3RydWN0dXJlUHJvcGVydHlJbmRleCgpKTsKKyAgICAgICAgLy8gVXNlIHRoZSBz
YW1lIG1fY3Vyc29yIGluIHRoZSBHZW5lcmljTmFtZXMgcGhhc2UuCisgICAgICAgIG1fZW51bWVy
YXRpb25QaGFzZSA9IEVudW1lcmF0aW9uUGhhc2U6OkdlbmVyaWNOYW1lczsKKyAgICB9CisKKyAg
ICBpZiAobV9lbnVtZXJhdGlvblBoYXNlID09IEVudW1lcmF0aW9uUGhhc2U6OkdlbmVyaWNOYW1l
cykgeworICAgICAgICBmb3IgKDsgbV9jdXJzb3IgPCBtX3Byb3BlcnR5TmFtZUVudW1lcmF0b3It
PmVuZEdlbmVyaWNQcm9wZXJ0eUluZGV4KCk7KSB7CisgICAgICAgICAgICB1aW50MzJfdCBpbmRl
eCA9IG1fY3Vyc29yKys7CisgICAgICAgICAgICBKU1N0cmluZyogcHJvcGVydHlOYW1lID0gbV9w
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yLT5wcm9wZXJ0eU5hbWVBdEluZGV4KGluZGV4KTsKKyAgICAg
ICAgICAgIEFTU0VSVChwcm9wZXJ0eU5hbWUpOworICAgICAgICAgICAgaWYgKG1faXRlcmF0ZWRP
YmplY3QtPmhhc1Byb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZS0+dG9JZGVudGlmaWVyKGV4ZWMp
KSkgeworICAgICAgICAgICAgICAgIG91dHB1dCA9IHByb3BlcnR5TmFtZTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBtX2Vu
dW1lcmF0aW9uUGhhc2UgPSBFbnVtZXJhdGlvblBoYXNlOjpEb25lOworICAgIH0KKworICAgIHJl
dHVybiBmYWxzZTsKK30KKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFByb3Bl
cnR5TmFtZUl0ZXJhdG9yIEZ1bmN0aW9ucyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisK
K0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvcGVydHlOYW1lSXRlcmF0b3JGdW5jTmV4
dChFeGVjU3RhdGUqIGV4ZWMpCit7CisgICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogaXRlcmF0
b3IgPSBqc0R5bmFtaWNDYXN0PEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqPihleGVjLT50aGlzVmFs
dWUoKSk7CisgICAgaWYgKCFpdGVyYXRvcikKKyAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZSh0aHJvd1R5cGVFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkNhbm5vdCBjYWxsIFByb3BlcnR5
TmFtZUl0ZXJhdG9yLm5leHQoKSBvbiBhIG5vbi1Qcm9wZXJ0eU5hbWVJdGVyYXRvciBvYmplY3Qi
KSkpOworCisgICAgSlNWYWx1ZSByZXN1bHQ7CisgICAgaWYgKGl0ZXJhdG9yLT5uZXh0KGV4ZWMs
IHJlc3VsdCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoY3JlYXRlSXRlcmF0b3JS
ZXN1bHRPYmplY3QoZXhlYywgcmVzdWx0LCBmYWxzZSkpOworICAgIHJldHVybiBKU1ZhbHVlOjpl
bmNvZGUoY3JlYXRlSXRlcmF0b3JSZXN1bHRPYmplY3QoZXhlYywganNVbmRlZmluZWQoKSwgdHJ1
ZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTUHJvcGVydHlOYW1lSXRlcmF0b3IuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZDdh
ZWIxMWE2OGM3Zjc4YjNjZmVjZTI3OWE4MDJiN2Q0OGM2ZWY1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oCkBA
IC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUsIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yX2gKKyNkZWZpbmUgSlNQcm9wZXJ0
eU5hbWVJdGVyYXRvcl9oCisKKyNpbmNsdWRlICJKU09iamVjdC5oIgorI2luY2x1ZGUgIkpTUHJv
cGVydHlOYW1lRW51bWVyYXRvci5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvciA6IHB1YmxpYyBKU05vbkZpbmFsT2JqZWN0IHsKK3B1YmxpYzoKKyAg
ICB0eXBlZGVmIEpTTm9uRmluYWxPYmplY3QgQmFzZTsKKworICAgIGVudW0gY2xhc3MgRW51bWVy
YXRpb25QaGFzZSA6IHVpbnQzMl90IHsKKyAgICAgICAgSW5kZXhlZE5hbWVzLAorICAgICAgICBT
dHJ1Y3R1cmVOYW1lcywKKyAgICAgICAgR2VuZXJpY05hbWVzLAorICAgICAgICBEb25lCisgICAg
fTsKKworICAgIERFQ0xBUkVfRVhQT1JUX0lORk87CisKKyAgICBzdGF0aWMgU3RydWN0dXJlKiBj
cmVhdGVTdHJ1Y3R1cmUoVk0mIHZtLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1Zh
bHVlIHByb3RvdHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBTdHJ1Y3R1cmU6OmNyZWF0ZSh2
bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIFR5cGVJbmZvKE9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgaW5mbygpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgSlNQcm9wZXJ0eU5hbWVJdGVy
YXRvciogY3JlYXRlKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZSosIEpTT2JqZWN0Kik7CisKKyAgICBK
U1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBjbG9uZShFeGVjU3RhdGUqKTsKKyAgICBib29sIG5leHQo
RXhlY1N0YXRlKiwgSlNWYWx1ZSYpOworCisgICAgc3RhdGljIHZvaWQgdmlzaXRDaGlsZHJlbihK
U0NlbGwqLCBTbG90VmlzaXRvciYpOworCitwcml2YXRlOgorICAgIEpTUHJvcGVydHlOYW1lSXRl
cmF0b3IoVk0mLCBTdHJ1Y3R1cmUqLCBKU09iamVjdCosIEpTUHJvcGVydHlOYW1lRW51bWVyYXRv
ciopOworCisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihWTSYsIEpTR2xvYmFsT2JqZWN0Kik7CisK
KyAgICBzdGF0aWMgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogY3JlYXRlKEV4ZWNTdGF0ZSosIFN0
cnVjdHVyZSosIEpTT2JqZWN0KiwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKik7CisKKyAgICBX
cml0ZUJhcnJpZXI8SlNPYmplY3Q+IG1faXRlcmF0ZWRPYmplY3Q7CisgICAgV3JpdGVCYXJyaWVy
PEpTUHJvcGVydHlOYW1lRW51bWVyYXRvcj4gbV9wcm9wZXJ0eU5hbWVFbnVtZXJhdG9yOworICAg
IEVudW1lcmF0aW9uUGhhc2UgbV9lbnVtZXJhdGlvblBoYXNlOworICAgIHVpbnQzMl90IG1fY3Vy
c29yOworfTsKKworfQorCisjZW5kaWYgLy8gSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcl9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWZsZWN0T2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZmxlY3RPYmplY3QuY3BwCmluZGV4IGU5
MzU0NjM1Nzk2MGVmZWE2OWI5MDk1ZWE3Y2Y1ZTA5ZjYzZjJkZjkuLjZjZTMzN2MxZjgyN2QyNTFh
NzY0M2YyMDIxNzM3NjhmOTFjMzM3NGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZmxlY3RPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1JlZmxlY3RPYmplY3QuY3BwCkBAIC0yNywxOCArMjcsMTUgQEAKICNpbmNsdWRlICJS
ZWZsZWN0T2JqZWN0LmgiCiAKICNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNQ
cm9wZXJ0eU5hbWVJdGVyYXRvci5oIgogI2luY2x1ZGUgIkxvb2t1cC5oIgogI2luY2x1ZGUgIk9i
amVjdENvbnN0cnVjdG9yLmgiCiAKIG5hbWVzcGFjZSBKU0MgewogCi1zdGF0aWMgRW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0T3duS2V5cyhFeGVjU3RhdGUqKTsKLQot
fQotCi1uYW1lc3BhY2UgSlNDIHsKLQorc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgcmVmbGVjdE9iamVjdEVudW1lcmF0ZShFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RJc0V4dGVuc2libGUoRXhlY1N0YXRlKik7
CitzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0T3duS2V5
cyhFeGVjU3RhdGUqKTsKIAogfQogCkBAIC01NCw2ICs1MSw3IEBAIGNvbnN0IENsYXNzSW5mbyBS
ZWZsZWN0T2JqZWN0OjpzX2luZm8gPSB7ICJSZWZsZWN0IiwgJkJhc2U6OnNfaW5mbywgJnJlZmxl
Y3RPYmplCiBAYmVnaW4gcmVmbGVjdE9iamVjdFRhYmxlCiAgICAgYXBwbHkgICAgICAgICAgIHJl
ZmxlY3RPYmplY3RBcHBseSAgICAgICAgICBEb250RW51bXxGdW5jdGlvbiAzCiAgICAgZGVsZXRl
UHJvcGVydHkgIHJlZmxlY3RPYmplY3REZWxldGVQcm9wZXJ0eSBEb250RW51bXxGdW5jdGlvbiAy
CisgICAgZW51bWVyYXRlICAgICAgIHJlZmxlY3RPYmplY3RFbnVtZXJhdGUgICAgICBEb250RW51
bXxGdW5jdGlvbiAxCiAgICAgaXNFeHRlbnNpYmxlICAgIHJlZmxlY3RPYmplY3RJc0V4dGVuc2li
bGUgICBEb250RW51bXxGdW5jdGlvbiAxCiAgICAgb3duS2V5cyAgICAgICAgIHJlZmxlY3RPYmpl
Y3RPd25LZXlzICAgICAgICBEb250RW51bXxGdW5jdGlvbiAxCiBAZW5kCkBAIC03Nyw2ICs3NSwx
NCBAQCBib29sIFJlZmxlY3RPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcgogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gRnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK0Vu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVjdE9iamVjdEVudW1lcmF0ZShFeGVjU3Rh
dGUqIGV4ZWMpCit7CisgICAgSlNWYWx1ZSB0YXJnZXQgPSBleGVjLT5hcmd1bWVudCgwKTsKKyAg
ICBpZiAoIXRhcmdldC5pc09iamVjdCgpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KHRocm93VHlwZUVycm9yKGV4ZWMsIEFTQ0lJTGl0ZXJhbCgiUmVmbGVjdC5lbnVtZXJhdGUgcmVx
dWlyZXMgdGhlIGZpcnN0IGFyZ3VtZW50IGJlIGFuIG9iamVjdCIpKSk7CisgICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpjcmVhdGUoZXhlYywgZXhlYy0+
bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5wcm9wZXJ0eU5hbWVJdGVyYXRvclN0cnVjdHVyZSgpLCBh
c09iamVjdCh0YXJnZXQpKSk7Cit9CisKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVm
bGVjdE9iamVjdElzRXh0ZW5zaWJsZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgSlNWYWx1ZSB0
YXJnZXQgPSBleGVjLT5hcmd1bWVudCgwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3MvcmVmbGVjdC1lbnVtZXJhdGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL3JlZmxlY3QtZW51bWVyYXRlLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmZmUx
Njg2OTYzYmIyYjE5NDYxYWRjYzU5OGIyYzM5NTBlODA5MTkKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3JlZmxlY3QtZW51bWVyYXRlLmpzCkBA
IC0wLDAgKzEsNTQgQEAKK2Z1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKKyAg
ICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQg
dmFsdWU6ICcgKyBhY3R1YWwpOworfQorCitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBtZXNz
YWdlKSB7CisgICAgdmFyIGVycm9yID0gbnVsbDsKKyAgICB0cnkgeworICAgICAgICBmdW5jKCk7
CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBlcnJvciA9IGU7CisgICAgfQorICAgIGlmICgh
ZXJyb3IpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigibm90IHRocm93bi4iKTsKKyAgICBpZiAo
U3RyaW5nKGVycm9yKSAhPT0gbWVzc2FnZSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJiYWQg
ZXJyb3I6ICIgKyBTdHJpbmcoZXJyb3IpKTsKK30KKworc2hvdWxkQmUoUmVmbGVjdC5lbnVtZXJh
dGUubGVuZ3RoLCAxKTsKKworc2hvdWxkVGhyb3coKCkgPT4geworICAgIFJlZmxlY3QuZW51bWVy
YXRlKCJoZWxsbyIpOworfSwgYFR5cGVFcnJvcjogUmVmbGVjdC5lbnVtZXJhdGUgcmVxdWlyZXMg
dGhlIGZpcnN0IGFyZ3VtZW50IGJlIGFuIG9iamVjdGApOworCit2YXIgaXRlcmF0b3IgPSBSZWZs
ZWN0LmVudW1lcmF0ZSh7fSk7Cit2YXIgaXRlcmF0b3JQcm90b3R5cGUgPSBbXVtTeW1ib2wuaXRl
cmF0b3JdKCkuX19wcm90b19fLl9fcHJvdG9fXzsKK3Nob3VsZEJlKGl0ZXJhdG9yLl9fcHJvdG9f
XyA9PT0gaXRlcmF0b3JQcm90b3R5cGUsIHRydWUpOworc2hvdWxkQmUoaXRlcmF0b3IuaGFzT3du
UHJvcGVydHkoJ25leHQnKSwgdHJ1ZSk7CitzaG91bGRCZShpdGVyYXRvci5uZXh0Lmxlbmd0aCwg
MCk7CitzaG91bGRCZShpdGVyYXRvcltTeW1ib2wuaXRlcmF0b3JdKCkgPT09IGl0ZXJhdG9yLCB0
cnVlKTsKKworZnVuY3Rpb24gdGVzdEl0ZXJhdG9yKG9iamVjdCwgZXhwZWN0ZWQpIHsKKyAgICB2
YXIgaW5kZXggPSAwOworICAgIGZvciAodmFyIG5hbWUgb2YgUmVmbGVjdC5lbnVtZXJhdGUob2Jq
ZWN0KSkKKyAgICAgICAgc2hvdWxkQmUobmFtZSA9PT0gZXhwZWN0ZWRbaW5kZXgrK10sIHRydWUp
OworICAgIHNob3VsZEJlKGluZGV4LCBleHBlY3RlZC5sZW5ndGgpOworfQorCit0ZXN0SXRlcmF0
b3IoeyBoZWxsbzo0MiwgMDogMCB9LCBbJzAnLCAnaGVsbG8nXSk7Cit0ZXN0SXRlcmF0b3IoeyAx
OjEsIGhlbGxvOjQyLCAwOiAwIH0sIFsnMCcsICcxJywgJ2hlbGxvJ10pOwordGVzdEl0ZXJhdG9y
KHsgMToxLCBoZWxsbzo0MiwgMDogMCwgd29ybGQ6ICdvaycsIDEwMDAwMDowIH0sIFsnMCcsICcx
JywgJzEwMDAwMCcsICdoZWxsbycsICd3b3JsZCddKTsKKwordGVzdEl0ZXJhdG9yKHsgMToxLCBo
ZWxsbzo0MiwgMDogMCwgW1N5bWJvbC51bnNjb3BhYmxlc106IDQyLCB3b3JsZDogJ29rJywgMTAw
MDAwOjAgfSwgWycwJywgJzEnLCAnMTAwMDAwJywgJ2hlbGxvJywgJ3dvcmxkJ10pOworCit2YXIg
b2JqZWN0ID0geyAxOjEsIGhlbGxvOjQyLCAwOiAwLCBbU3ltYm9sLnVuc2NvcGFibGVzXTogNDIs
IHdvcmxkOiAnb2snLCAxMDAwMDA6MCB9OworT2JqZWN0LmRlZmluZVByb3BlcnR5KG9iamVjdCwg
J2hpZGRlbicsIHsKKyAgICB2YWx1ZTogNDIsCisgICAgZW51bWVyYWJsZTogZmFsc2UKK30pOwor
dGVzdEl0ZXJhdG9yKG9iamVjdCwgWycwJywgJzEnLCAnMTAwMDAwJywgJ2hlbGxvJywgJ3dvcmxk
J10pOworCit0ZXN0SXRlcmF0b3IoeyBoZWxsbzo0MiwgMDogMCwgX19wcm90b19fOiB7IDE6IDEs
IHdvcmxkOiA0MiB9IH0sIFsnMCcsICdoZWxsbycsICcxJywgJ3dvcmxkJ10pOwordGVzdEl0ZXJh
dG9yKHt9LCBbXSk7Cit0ZXN0SXRlcmF0b3IoW10sIFtdKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>257627</attachid>
            <date>2015-07-27 19:22:53 -0700</date>
            <delta_ts>2015-07-27 20:33:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147347-20150727192136.patch</filename>
            <type>text/plain</type>
            <size>27314</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NDcxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NWMzM2MwMjg1MWEyZTUwOGNjYzczZmNlNGU2YTUzNWI3YzI1YzhhLi44ZTA0ZTYwYjBjMmMzM2U3
Y2NiNGExYjA4ZTBkMzg3YjMyOTA4NDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxNS0wNy0yNyAgWXVzdWtlIFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWls
LmNvbT4KKworICAgICAgICBbRVM2XSBJbXBsZW1lbnQgUmVmbGVjdC5lbnVtZXJhdGUKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzM0NworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaW1w
bGVtZW50cyBSZWZsZWN0LmVudW1lcmF0ZS4KKyAgICAgICAgSXQgcmV0dXJucyB0aGUgaXRlcmF0
b3IgdGhhdCBpdGVyYXRlcyB0aGUgZW51bWVyYWJsZSBrZXlzIG9mIHRoZSBnaXZlbiBvYmplY3Qu
CisgICAgICAgIEl0IGZvbGxvd3MgdGhlIGZvci1pbidzIGVudW1lcmF0aW9uIG9yZGVyLgorCisg
ICAgICAgIFRvIGltcGxlbWVudCBpdCwgd2Ugd3JpdGUgZG93biB0aGUgc2FtZSBsb2dpYyB0byB0
aGUgZm9yLWluJ3MgZW51bWVyYXRpb24gY29kZSBpbiBDKysuCisKKyAgICAgICAgKiBDTWFrZUxp
c3RzLnR4dDoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2o6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qLmZpbHRlcnM6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0LmNwcDoKKyAg
ICAgICAgKEpTQzo6SlNHbG9iYWxPYmplY3Q6OmluaXQpOgorICAgICAgICAoSlNDOjpKU0dsb2Jh
bE9iamVjdDo6dmlzaXRDaGlsZHJlbik6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVj
dC5oOgorICAgICAgICAoSlNDOjpKU0dsb2JhbE9iamVjdDo6cHJvcGVydHlOYW1lSXRlcmF0b3JT
dHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5jcHA6
IEFkZGVkLgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpKU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yKToKKyAgICAgICAgKEpTQzo6SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6Y2xv
bmUpOgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpjcmVhdGUpOgorICAg
ICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpmaW5pc2hDcmVhdGlvbik6CisgICAg
ICAgIChKU0M6OkpTUHJvcGVydHlOYW1lSXRlcmF0b3I6OnZpc2l0Q2hpbGRyZW4pOgorICAgICAg
ICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpuZXh0KToKKyAgICAgICAgKEpTQzo6cHJv
cGVydHlOYW1lSXRlcmF0b3JGdW5jTmV4dCk6CisgICAgICAgICogcnVudGltZS9KU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yLmg6IEFkZGVkLgorICAgICAgICAoSlNDOjpKU1Byb3BlcnR5TmFtZUl0ZXJh
dG9yOjpjcmVhdGVTdHJ1Y3R1cmUpOgorICAgICAgICAqIHJ1bnRpbWUvUmVmbGVjdE9iamVjdC5j
cHA6CisgICAgICAgIChKU0M6OnJlZmxlY3RPYmplY3RFbnVtZXJhdGUpOgorICAgICAgICAqIHRl
c3RzL3N0cmVzcy9yZWZsZWN0LWVudW1lcmF0ZS5qczogQWRkZWQuCisgICAgICAgIChzaG91bGRC
ZSk6CisgICAgICAgIChzaG91bGRUaHJvdyk6CisKIDIwMTUtMDctMjcgIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBVc2UgTmluamEgb24gV2lu
ZG93cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5NzcwOTE4YTU1MmJm
YTIxNDY5ZWFlOWJjMWM0MjIyMTFkMjA0NDkxLi5jMzY1NDc1ZGU0ZTk1NTQxOTI2YTIwNWJlM2Qw
NWRkOWEwNmNiODhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01MTYs
NiArNTE2LDcgQEAgc2V0KEphdmFTY3JpcHRDb3JlX1JVTlRJTUVfU09VUkNFUwogICAgIHJ1bnRp
bWUvSlNQcm9taXNlRGVmZXJyZWQuY3BwCiAgICAgcnVudGltZS9KU1Byb21pc2VQcm90b3R5cGUu
Y3BwCiAgICAgcnVudGltZS9KU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwCisgICAgcnVudGlt
ZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcAogICAgIHJ1bnRpbWUvSlNQcm94eS5jcHAKICAg
ICBydW50aW1lL0pTU2NvcGUuY3BwCiAgICAgcnVudGltZS9KU1NlZ21lbnRlZFZhcmlhYmxlT2Jq
ZWN0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2oKaW5kZXggMTE4YTkx
M2RmNTQ2ODg1YzQ0NmNhNWFiM2U0Njc3YzM5MjhmZjAyMi4uMjQ0YmExOTQxNDk4ZTIzODAyYWFm
NGY2MzgwODA5MWM0ZDFlN2FkYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvagorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29yZS52Y3hw
cm9qCkBAIC03NjgsNiArNzY4LDcgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRp
bWVcSlNQcm9taXNlRGVmZXJyZWQuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5c
cnVudGltZVxKU1Byb21pc2VQcm90b3R5cGUuY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5ccnVudGltZVxKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwIiAvPgorICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCIgLz4K
ICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNQcm94eS5jcHAiIC8+CiAgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTU2NvcGUuY3BwIiAvPgogICAgIDxDbENv
bXBpbGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU1NlZ21lbnRlZFZhcmlhYmxlT2JqZWN0LmNwcCIg
Lz4KQEAgLTE1OTIsNiArMTU5Myw3IEBACiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxydW50
aW1lXEpTUHJvbWlzZURlZmVycmVkLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlxy
dW50aW1lXEpTUHJvbWlzZVByb3RvdHlwZS5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5ccnVudGltZVxKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaCIgLz4KKyAgICA8Q2xJbmNsdWRl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oIiAvPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU1Byb3h5LmgiIC8+CiAgICAgPENsSW5jbHVk
ZSBJbmNsdWRlPSIuLlxydW50aW1lXEpTU2NvcGUuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHJ1bnRpbWVcSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdC5oIiAvPgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjeHByb2ovSmF2YVNjcmlw
dENvcmUudmN4cHJvai5maWx0ZXJzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjeHByb2ovSmF2YVNjcmlwdENvcmUudmN4cHJvai5maWx0ZXJzCmluZGV4IDYwYzY0OWE4
MzNiZWZhNWIyYjliNDdmOTI1OTI1NGJiNWFlZDBmM2YuLmM1YmQ1NDk4ZGYzYTg1N2JiOGU1ZGQ5
Y2IwOGQxY2IzYTk2ZGVkN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3hwcm9qL0phdmFTY3JpcHRDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmN4cHJvai9KYXZhU2NyaXB0Q29y
ZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTY5Niw2ICs2OTYsOSBAQAogICAgIDxDbENvbXBpbGUgSW5j
bHVkZT0iLi5ccnVudGltZVxKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuY3BwIj4KICAgICAgIDxG
aWx0ZXI+cnVudGltZTwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5ccnVudGltZVxKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCI+CisgICAgICA8
RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KKyAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxl
IEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNQcm94eS5jcHAiPgogICAgICAgPEZpbHRlcj5ydW50aW1l
PC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+CkBAIC0yNzYwLDYgKzI3NjMsOSBAQAogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3IuaCI+
CiAgICAgICA8RmlsdGVyPnJ1bnRpbWU8L0ZpbHRlcj4KICAgICA8L0NsSW5jbHVkZT4KKyAgICA8
Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHJ1bnRpbWVcSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oIj4K
KyAgICAgIDxGaWx0ZXI+cnVudGltZTwvRmlsdGVyPgorICAgIDwvQ2xJbmNsdWRlPgogICAgIDxD
bEluY2x1ZGUgSW5jbHVkZT0iLi5ccnVudGltZVxKU1Byb3h5LmgiPgogICAgICAgPEZpbHRlcj5y
dW50aW1lPC9GaWx0ZXI+CiAgICAgPC9DbEluY2x1ZGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGI0YTMyOGI4NjY0Y2QzNGIyNDkxOWVkMTAyMGU1NGQ2YzIzYTA2MTcuLmI0YWNj
MTk0MDE4NTkzNDcyMzg3NWMwMjViNTZhNjU5MzViYWU0ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xNjU4LDYgKzE2NTgsOCBAQAogCQlFMzM2MzdBNTFCNjMyMjAyMDBFRTA4
NDAgLyogUmVmbGVjdE9iamVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMzM2MzdBMzFCNjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5j
cHAgKi87IH07CiAJCUUzMzYzN0E2MUI2MzIyMDIwMEVFMDg0MCAvKiBSZWZsZWN0T2JqZWN0Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMzM2MzdBNDFC
NjMyMjAyMDBFRTA4NDAgLyogUmVmbGVjdE9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUUzNTQ2MjJCMUI2MDY1RDEwMDU0NTM4NiAvKiBD
b25zdHJ1Y3RBYmlsaXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMzU0NjIyQTFCNjA2NUQxMDA1NDUzODYgLyogQ29uc3RydWN0QWJpbGl0eS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUUzRUY4ODc0
MUI2NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRUY4ODcyMUI2NkRGMjMwMDNG
MjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCAqLzsgfTsKKwkJRTNFRjg4NzUxQjY2
REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUzRUY4ODczMUI2NkRGMjMwMDNGMjZDQiAv
KiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQ5REMxNkIxMkVGMjkzRTAwMTg0QTFGIC8qIFNvdXJjZVBy
b3ZpZGVyQ2FjaGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTQ5REMxNTUxMkVGMjc3MjAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3Bw
ICovOyB9OwogCQlFNDlEQzE2QzEyRUYyOTRFMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNo
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5REMx
NTExMkVGMjcyMjAwMTg0QTFGIC8qIFNvdXJjZVByb3ZpZGVyQ2FjaGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDlEQzE2RDEyRUYyOTUzMDAx
ODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNoZUl0ZW0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0OURDMTQ5MTJFRjI2MUEwMDE4NEExRiAvKiBTb3Vy
Y2VQcm92aWRlckNhY2hlSXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0zNDQzLDYgKzM0NDUsOCBAQAogCQlFMzM2MzdBMzFCNjMyMjAyMDBF
RTA4NDAgLyogUmVmbGVjdE9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZWZsZWN0T2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTMzNjM3QTQxQjYzMjIwMjAwRUUwODQwIC8qIFJlZmxlY3RPYmplY3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUmVmbGVjdE9iamVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMzU0NjIyQTFCNjA2NUQxMDA1NDUzODYgLyogQ29uc3RydWN0QWJpbGl0eS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb25zdHJ1Y3RBYmlsaXR5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUzRUY4ODcyMUI2NkRGMjMwMDNGMjZDQiAvKiBK
U1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFM0VGODg3MzFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRv
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1Byb3BlcnR5TmFtZUl0ZXJh
dG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0OURDMTQ5MTJFRjI2MUEwMDE4
NEExRiAvKiBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFNDlEQzE1MTEyRUYyNzIyMDAxODRBMUYgLyogU291cmNlUHJvdmlkZXJDYWNo
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VQcm92aWRlckNhY2hl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0OURDMTU1MTJFRjI3NzIwMDE4NEEx
RiAvKiBTb3VyY2VQcm92aWRlckNhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNvdXJjZVByb3ZpZGVyQ2FjaGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNDU5Nyw2ICs0NjAxLDggQEAKIAkJCQk3QzE4NEUxRDE3QkVFMjJFMDA3Q0I2M0Eg
LyogSlNQcm9taXNlUHJvdG90eXBlLmggKi8sCiAJCQkJMkEwNUFCRDMxOTYxREYyNDAwMzQxNzUw
IC8qIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvci5jcHAgKi8sCiAJCQkJMkEwNUFCRDQxOTYxREYy
NDAwMzQxNzUwIC8qIEpTUHJvcGVydHlOYW1lRW51bWVyYXRvci5oICovLAorCQkJCUUzRUY4ODcy
MUI2NkRGMjMwMDNGMjZDQiAvKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmNwcCAqLywKKwkJCQlF
M0VGODg3MzFCNjZERjIzMDAzRjI2Q0IgLyogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5oICovLAog
CQkJCTg2MjU1M0NFMTYxMzZBQTUwMDlGMTdEMCAvKiBKU1Byb3h5LmNwcCAqLywKIAkJCQk4NjI1
NTNDRjE2MTM2QUE1MDA5RjE3RDAgLyogSlNQcm94eS5oICovLAogCQkJCTE0ODc0QUUxMTVFQkRF
NEEwMDJFMzU4NyAvKiBKU1Njb3BlLmNwcCAqLywKQEAgLTU2ODQsNiArNTY5MCw3IEBACiAJCQkJ
MkFEMkVERkIxOTc5OUUzODAwNEQ2NDc4IC8qIEVudW1lcmF0aW9uTW9kZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTVFRjlCMTgxQTFENDQwNjAwNzAyRTkwIC8qIGdlbmVyYXRlX2NwcF9wcm90b2Nv
bF90eXBlc19oZWFkZXIucHkgaW4gSGVhZGVycyAqLywKIAkJCQlBNUVGOUIxOTFBMUQ0NDA3MDA3
MDJFOTAgLyogZ2VuZXJhdGVfY3BwX3Byb3RvY29sX3R5cGVzX2ltcGxlbWVudGF0aW9uLnB5IGlu
IEhlYWRlcnMgKi8sCisJCQkJRTNFRjg4NzUxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlO
YW1lSXRlcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUM0RjRCNkY2MUEwNUM5ODQwMDVDQUI3
NiAvKiBvYmpjX2dlbmVyYXRvcl90ZW1wbGF0ZXMucHkgaW4gSGVhZGVycyAqLywKIAkJCQk3MERD
M0UwQTFCMkRGMkM3MDAwNTQyOTkgLyogSXRlcmF0b3JQcm90b3R5cGUuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE1RUY5QjE3MUExRDQ0MDMwMDcwMkU5MCAvKiBnZW5lcmF0ZV9jcHBfZnJvbnRlbmRf
ZGlzcGF0Y2hlcl9pbXBsZW1lbnRhdGlvbi5weSBpbiBIZWFkZXJzICovLApAQCAtNzYyNiw2ICs3
NjMzLDcgQEAKIAkJCQkwRjJCNjcwNDE3QjZCNUFCMDBBN0FFM0YgLyogU2ltcGxlVHlwZWRBcnJh
eUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzIyNTQ5NDMxNUY3REJBQTAwNjVF
ODk4IC8qIFNsb3RWaXNpdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMzA0MDJDMEU2QTc2
NDAwMDc4NkU2QSAvKiBTbWFsbFN0cmluZ3MuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTNFRjg4
NzQxQjY2REYyMzAwM0YyNkNCIC8qIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEY4RjJCOUUxNzMwNkM4RDAwN0RCREE1IC8qIFNvdXJjZUNvZGUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEY0OTNBRkExNkQwQ0FEMzAwODQ1MDhCIC8qIFNvdXJjZVByb3Zp
ZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUU0OURDMTZCMTJFRjI5M0UwMDE4NEExRiAvKiBT
b3VyY2VQcm92aWRlckNhY2hlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwCmluZGV4IDNlZmE2NjcwMGYwMzRk
NzE1MWI2MmM4NzEwMTg5ZWM0NGUzZDgzNDAuLjI2MTgzZWY5ZWZlYTQ3OTE0NjExNjVhOTYyOTVl
YzQ0NmE5MTU5MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0ds
b2JhbE9iamVjdC5jcHAKQEAgLTg1LDYgKzg1LDcgQEAKICNpbmNsdWRlICJKU1Byb21pc2UuaCIK
ICNpbmNsdWRlICJKU1Byb21pc2VDb25zdHJ1Y3Rvci5oIgogI2luY2x1ZGUgIkpTUHJvbWlzZVBy
b3RvdHlwZS5oIgorI2luY2x1ZGUgIkpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCIKICNpbmNsdWRl
ICJKU1NldC5oIgogI2luY2x1ZGUgIkpTU2V0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJKU1N0cmlu
Z0l0ZXJhdG9yLmgiCkBAIC0zNTksNiArMzYwLDcgQEAgbV8gIyMgbG93ZXJOYW1lICMjIFByb3Rv
dHlwZS5zZXQodm0sIHRoaXMsIGNhcGl0YWxOYW1lIyNQcm90b3R5cGU6OmNyZWF0ZSh2bSwgdGgK
IG1fICMjIHByb3Blck5hbWUgIyMgU3RydWN0dXJlLnNldCh2bSwgdGhpcywgaW5zdGFuY2VUeXBl
OjpjcmVhdGVTdHJ1Y3R1cmUodm0sIHRoaXMsIG1fICMjIGxvd2VyTmFtZSAjIyBQcm90b3R5cGUu
Z2V0KCkpKTsKICAgICAKICAgICBGT1JfRUFDSF9CVUlMVElOX0RFUklWRURfSVRFUkFUT1JfVFlQ
RShDUkVBVEVfUFJPVE9UWVBFX0ZPUl9ERVJJVkVEX0lURVJBVE9SX1RZUEUpCisgICAgbV9wcm9w
ZXJ0eU5hbWVJdGVyYXRvclN0cnVjdHVyZS5zZXQodm0sIHRoaXMsIEpTUHJvcGVydHlOYW1lSXRl
cmF0b3I6OmNyZWF0ZVN0cnVjdHVyZSh2bSwgdGhpcywgbV9pdGVyYXRvclByb3RvdHlwZS5nZXQo
KSkpOwogICAgIAogI3VuZGVmIENSRUFURV9QUk9UT1RZUEVfRk9SX0RFUklWRURfSVRFUkFUT1Jf
VFlQRQogCkBAIC03ODQsNiArNzg2LDcgQEAgdm9pZCBKU0dsb2JhbE9iamVjdDo6dmlzaXRDaGls
ZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgIHZpc2l0b3IuYXBw
ZW5kKCZ0aGlzT2JqZWN0LT5tX2NhbGxiYWNrQ29uc3RydWN0b3JTdHJ1Y3R1cmUpOwogICAgIHZp
c2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX2NhbGxiYWNrRnVuY3Rpb25TdHJ1Y3R1cmUpOwog
ICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2JqZWN0LT5tX2NhbGxiYWNrT2JqZWN0U3RydWN0dXJl
KTsKKyAgICB2aXNpdG9yLmFwcGVuZCgmdGhpc09iamVjdC0+bV9wcm9wZXJ0eU5hbWVJdGVyYXRv
clN0cnVjdHVyZSk7CiAjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKICAgICB2aXNpdG9yLmFwcGVu
ZCgmdGhpc09iamVjdC0+bV9vYmpjQ2FsbGJhY2tGdW5jdGlvblN0cnVjdHVyZSk7CiAgICAgdmlz
aXRvci5hcHBlbmQoJnRoaXNPYmplY3QtPm1fb2JqY1dyYXBwZXJPYmplY3RTdHJ1Y3R1cmUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3Qu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0LmgKaW5kZXgg
NmU2OTVkNDFiOTAxZTA5NTBhNWEzNTg1MzFmZGU1NjVlMmM4MTZiMS4uOTk4NzlkMTJiNGE1MTE4
NWQ0MzlmOWFjYTg3YTk2ZjEzYTkwNTVjNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdC5oCkBAIC0yMjUsNiArMjI1LDcgQEAgY2xhc3MgSlNHbG9i
YWxPYmplY3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAgICAgV3JpdGVC
YXJyaWVyPFN0cnVjdHVyZT4gbV9jYWxsYmFja0NvbnN0cnVjdG9yU3RydWN0dXJlOwogICAgIFdy
aXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fY2FsbGJhY2tGdW5jdGlvblN0cnVjdHVyZTsKICAgICBX
cml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX2NhbGxiYWNrT2JqZWN0U3RydWN0dXJlOworICAgIFdy
aXRlQmFycmllcjxTdHJ1Y3R1cmU+IG1fcHJvcGVydHlOYW1lSXRlcmF0b3JTdHJ1Y3R1cmU7CiAj
aWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKICAgICBXcml0ZUJhcnJpZXI8U3RydWN0dXJlPiBtX29i
amNDYWxsYmFja0Z1bmN0aW9uU3RydWN0dXJlOwogICAgIFdyaXRlQmFycmllcjxTdHJ1Y3R1cmU+
IG1fb2JqY1dyYXBwZXJPYmplY3RTdHJ1Y3R1cmU7CkBAIC00NTEsNiArNDUyLDcgQEAgY2xhc3Mg
SlNHbG9iYWxPYmplY3QgOiBwdWJsaWMgSlNTZWdtZW50ZWRWYXJpYWJsZU9iamVjdCB7CiAgICAg
U3RydWN0dXJlKiBjYWxsYmFja0NvbnN0cnVjdG9yU3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4g
bV9jYWxsYmFja0NvbnN0cnVjdG9yU3RydWN0dXJlLmdldCgpOyB9CiAgICAgU3RydWN0dXJlKiBj
YWxsYmFja0Z1bmN0aW9uU3RydWN0dXJlKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFja0Z1bmN0
aW9uU3RydWN0dXJlLmdldCgpOyB9CiAgICAgU3RydWN0dXJlKiBjYWxsYmFja09iamVjdFN0cnVj
dHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2FsbGJhY2tPYmplY3RTdHJ1Y3R1cmUuZ2V0KCk7IH0K
KyAgICBTdHJ1Y3R1cmUqIHByb3BlcnR5TmFtZUl0ZXJhdG9yU3RydWN0dXJlKCkgY29uc3QgeyBy
ZXR1cm4gbV9wcm9wZXJ0eU5hbWVJdGVyYXRvclN0cnVjdHVyZS5nZXQoKTsgfQogI2lmIEpTQ19P
QkpDX0FQSV9FTkFCTEVECiAgICAgU3RydWN0dXJlKiBvYmpjQ2FsbGJhY2tGdW5jdGlvblN0cnVj
dHVyZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JqY0NhbGxiYWNrRnVuY3Rpb25TdHJ1Y3R1cmUuZ2V0
KCk7IH0KICAgICBTdHJ1Y3R1cmUqIG9iamNXcmFwcGVyT2JqZWN0U3RydWN0dXJlKCkgY29uc3Qg
eyByZXR1cm4gbV9vYmpjV3JhcHBlck9iamVjdFN0cnVjdHVyZS5nZXQoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0eU5hbWVJdGVyYXRvci5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9y
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hOTc0OWE1MjRmMzBiZGU1NWUwYmUzNGIzOWJjOWM1Mzc0ODVmMDg5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvci5jcHAKQEAgLTAsMCArMSwxNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgQXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkpTUHJvcGVydHlOYW1lSXRlcmF0b3IuaCIKKworI2luY2x1ZGUgIklkZW50aWZpZXJJbmxp
bmVzLmgiCisjaW5jbHVkZSAiSXRlcmF0b3JPcGVyYXRpb25zLmgiCisjaW5jbHVkZSAiSlNDSlNW
YWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJKU0NlbGxJbmxpbmVzLmgiCisjaW5jbHVkZSAiSlNQ
cm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmgiCisjaW5jbHVkZSAiU2xvdFZpc2l0b3JJbmxpbmVzLmgi
CisjaW5jbHVkZSAiU3RydWN0dXJlSW5saW5lcy5oIgorCituYW1lc3BhY2UgSlNDIHsKKworc3Rh
dGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcHJvcGVydHlOYW1lSXRlcmF0b3JGdW5j
TmV4dChFeGVjU3RhdGUqKTsKKworY29uc3QgQ2xhc3NJbmZvIEpTUHJvcGVydHlOYW1lSXRlcmF0
b3I6OnNfaW5mbyA9IHsgIlByb3BlcnR5TmFtZSBJdGVyYXRvciIsICZCYXNlOjpzX2luZm8sIDAs
IENSRUFURV9NRVRIT0RfVEFCTEUoSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcikgfTsKKworSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvcjo6SlNQcm9wZXJ0eU5hbWVJdGVyYXRvcihWTSYgdm0sIFN0cnVjdHVy
ZSogc3RydWN0dXJlLCBKU09iamVjdCogb2JqZWN0LCBKU1Byb3BlcnR5TmFtZUVudW1lcmF0b3Iq
IGVudW1lcmF0b3IpCisgICAgOiBCYXNlKHZtLCBzdHJ1Y3R1cmUpCisgICAgLCBtX2l0ZXJhdGVk
T2JqZWN0KHZtLCB0aGlzLCBvYmplY3QpCisgICAgLCBtX3Byb3BlcnR5TmFtZUVudW1lcmF0b3Io
dm0sIHRoaXMsIGVudW1lcmF0b3IpCisgICAgLCBtX2VudW1lcmF0aW9uUGhhc2UoRW51bWVyYXRp
b25QaGFzZTo6SW5kZXhlZE5hbWVzKQorICAgICwgbV9jdXJzb3IoMCkKK3sKK30KKworSlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvciogSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6Y2xvbmUoRXhlY1N0YXRl
KiBleGVjKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpj
cmVhdGUoZXhlYywgZXhlYy0+Y2FsbGVlKCktPmdsb2JhbE9iamVjdCgpLT5wcm9wZXJ0eU5hbWVJ
dGVyYXRvclN0cnVjdHVyZSgpLCBtX2l0ZXJhdGVkT2JqZWN0LmdldCgpLCBtX3Byb3BlcnR5TmFt
ZUVudW1lcmF0b3IuZ2V0KCkpOworICAgIGl0ZXJhdG9yLT5tX2VudW1lcmF0aW9uUGhhc2UgPSBt
X2VudW1lcmF0aW9uUGhhc2U7CisgICAgaXRlcmF0b3ItPm1fY3Vyc29yID0gbV9jdXJzb3I7Cisg
ICAgcmV0dXJuIGl0ZXJhdG9yOworfQorCitKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBKU1Byb3Bl
cnR5TmFtZUl0ZXJhdG9yOjpjcmVhdGUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSwgSlNPYmplY3QqIGl0ZXJhdGVkT2JqZWN0KQoreworICAgIHJldHVybiBKU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yOjpjcmVhdGUoZXhlYywgc3RydWN0dXJlLCBpdGVyYXRlZE9iamVjdCwgcHJv
cGVydHlOYW1lRW51bWVyYXRvcihleGVjLCBpdGVyYXRlZE9iamVjdCkpOworfQorCitKU1Byb3Bl
cnR5TmFtZUl0ZXJhdG9yKiBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjpjcmVhdGUoRXhlY1N0YXRl
KiBleGVjLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNPYmplY3QqIGl0ZXJhdGVkT2JqZWN0LCBK
U1Byb3BlcnR5TmFtZUVudW1lcmF0b3IqIGVudW1lcmF0b3IpCit7CisgICAgVk0mIHZtID0gZXhl
Yy0+dm0oKTsKKyAgICBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBpbnN0YW5jZSA9IG5ldyAoTm90
TnVsbCwgYWxsb2NhdGVDZWxsPEpTUHJvcGVydHlOYW1lSXRlcmF0b3I+KHZtLmhlYXApKSBKU1By
b3BlcnR5TmFtZUl0ZXJhdG9yKHZtLCBzdHJ1Y3R1cmUsIGl0ZXJhdGVkT2JqZWN0LCBlbnVtZXJh
dG9yKTsKKyAgICBpbnN0YW5jZS0+ZmluaXNoQ3JlYXRpb24odm0sIHN0cnVjdHVyZS0+Z2xvYmFs
T2JqZWN0KCkpOworICAgIHJldHVybiBpbnN0YW5jZTsKK30KKwordm9pZCBKU1Byb3BlcnR5TmFt
ZUl0ZXJhdG9yOjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QpCit7CisgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOworICAgIEFTU0VSVChpbmhl
cml0cyhpbmZvKCkpKTsKKyAgICBKU0NfTkFUSVZFX0ZVTkNUSU9OKHZtLnByb3BlcnR5TmFtZXMt
Pm5leHQsIHByb3BlcnR5TmFtZUl0ZXJhdG9yRnVuY05leHQsIERvbnRFbnVtLCAwKTsKK30KKwor
dm9pZCBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjp2aXNpdENoaWxkcmVuKEpTQ2VsbCogY2VsbCwg
U2xvdFZpc2l0b3ImIHZpc2l0b3IpCit7CisgICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvciogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKj4oY2VsbCk7CisgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEJhc2U6OnZp
c2l0Q2hpbGRyZW4odGhpc09iamVjdCwgdmlzaXRvcik7CisgICAgdmlzaXRvci5hcHBlbmQoJnRo
aXNPYmplY3QtPm1faXRlcmF0ZWRPYmplY3QpOworICAgIHZpc2l0b3IuYXBwZW5kKCZ0aGlzT2Jq
ZWN0LT5tX3Byb3BlcnR5TmFtZUVudW1lcmF0b3IpOworfQorCitib29sIEpTUHJvcGVydHlOYW1l
SXRlcmF0b3I6Om5leHQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlJiBvdXRwdXQpCit7CisgICAg
aWYgKG1fZW51bWVyYXRpb25QaGFzZSA9PSBFbnVtZXJhdGlvblBoYXNlOjpJbmRleGVkTmFtZXMp
IHsKKyAgICAgICAgZm9yICg7IG1fY3Vyc29yIDwgbV9wcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLT5p
bmRleGVkTGVuZ3RoKCk7KSB7CisgICAgICAgICAgICB1aW50MzJfdCBpbmRleCA9IG1fY3Vyc29y
Kys7CisgICAgICAgICAgICBpZiAobV9pdGVyYXRlZE9iamVjdC0+aGFzUHJvcGVydHkoZXhlYywg
aW5kZXgpKSB7CisgICAgICAgICAgICAgICAgb3V0cHV0ID0ganNTdHJpbmcoZXhlYywgSWRlbnRp
Zmllcjo6ZnJvbShleGVjLCBpbmRleCkuc3RyaW5nKCkpOworICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1fY3Vyc29yID0gMDsK
KyAgICAgICAgbV9lbnVtZXJhdGlvblBoYXNlID0gRW51bWVyYXRpb25QaGFzZTo6U3RydWN0dXJl
TmFtZXM7CisgICAgfQorCisgICAgaWYgKG1fZW51bWVyYXRpb25QaGFzZSA9PSBFbnVtZXJhdGlv
blBoYXNlOjpTdHJ1Y3R1cmVOYW1lcykgeworICAgICAgICBmb3IgKDsgbV9jdXJzb3IgPCBtX3By
b3BlcnR5TmFtZUVudW1lcmF0b3ItPmVuZFN0cnVjdHVyZVByb3BlcnR5SW5kZXgoKTspIHsKKyAg
ICAgICAgICAgIHVpbnQzMl90IGluZGV4ID0gbV9jdXJzb3IrKzsKKyAgICAgICAgICAgIEpTU3Ry
aW5nKiBwcm9wZXJ0eU5hbWUgPSBtX3Byb3BlcnR5TmFtZUVudW1lcmF0b3ItPnByb3BlcnR5TmFt
ZUF0SW5kZXgoaW5kZXgpOworICAgICAgICAgICAgQVNTRVJUKHByb3BlcnR5TmFtZSk7CisgICAg
ICAgICAgICBpZiAobV9pdGVyYXRlZE9iamVjdC0+c3RydWN0dXJlKGV4ZWMtPnZtKCkpLT5pZCgp
ID09IG1fcHJvcGVydHlOYW1lRW51bWVyYXRvci0+Y2FjaGVkU3RydWN0dXJlSUQoKSkgeworICAg
ICAgICAgICAgICAgIG91dHB1dCA9IHByb3BlcnR5TmFtZTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKG1faXRlcmF0ZWRPYmpl
Y3QtPmhhc1Byb3BlcnR5KGV4ZWMsIHByb3BlcnR5TmFtZS0+dG9JZGVudGlmaWVyKGV4ZWMpKSkg
eworICAgICAgICAgICAgICAgIG91dHB1dCA9IHByb3BlcnR5TmFtZTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICBBU1NFUlQo
bV9jdXJzb3IgPj0gbV9wcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLT5lbmRTdHJ1Y3R1cmVQcm9wZXJ0
eUluZGV4KCkpOworICAgICAgICAvLyBVc2UgdGhlIHNhbWUgbV9jdXJzb3IgaW4gdGhlIEdlbmVy
aWNOYW1lcyBwaGFzZS4KKyAgICAgICAgbV9lbnVtZXJhdGlvblBoYXNlID0gRW51bWVyYXRpb25Q
aGFzZTo6R2VuZXJpY05hbWVzOworICAgIH0KKworICAgIGlmIChtX2VudW1lcmF0aW9uUGhhc2Ug
PT0gRW51bWVyYXRpb25QaGFzZTo6R2VuZXJpY05hbWVzKSB7CisgICAgICAgIGZvciAoOyBtX2N1
cnNvciA8IG1fcHJvcGVydHlOYW1lRW51bWVyYXRvci0+ZW5kR2VuZXJpY1Byb3BlcnR5SW5kZXgo
KTspIHsKKyAgICAgICAgICAgIHVpbnQzMl90IGluZGV4ID0gbV9jdXJzb3IrKzsKKyAgICAgICAg
ICAgIEpTU3RyaW5nKiBwcm9wZXJ0eU5hbWUgPSBtX3Byb3BlcnR5TmFtZUVudW1lcmF0b3ItPnBy
b3BlcnR5TmFtZUF0SW5kZXgoaW5kZXgpOworICAgICAgICAgICAgQVNTRVJUKHByb3BlcnR5TmFt
ZSk7CisgICAgICAgICAgICBpZiAobV9pdGVyYXRlZE9iamVjdC0+aGFzUHJvcGVydHkoZXhlYywg
cHJvcGVydHlOYW1lLT50b0lkZW50aWZpZXIoZXhlYykpKSB7CisgICAgICAgICAgICAgICAgb3V0
cHV0ID0gcHJvcGVydHlOYW1lOworICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgICAgIG1fZW51bWVyYXRpb25QaGFzZSA9IEVudW1lcmF0
aW9uUGhhc2U6OkRvbmU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCisvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gUHJvcGVydHlOYW1lSXRlcmF0b3IgRnVuY3Rpb25z
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1Rf
Q0FMTCBwcm9wZXJ0eU5hbWVJdGVyYXRvckZ1bmNOZXh0KEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAg
ICBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBpdGVyYXRvciA9IGpzRHluYW1pY0Nhc3Q8SlNQcm9w
ZXJ0eU5hbWVJdGVyYXRvcio+KGV4ZWMtPnRoaXNWYWx1ZSgpKTsKKyAgICBpZiAoIWl0ZXJhdG9y
KQorICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHRocm93VHlwZUVycm9yKGV4ZWMsIEFT
Q0lJTGl0ZXJhbCgiQ2Fubm90IGNhbGwgUHJvcGVydHlOYW1lSXRlcmF0b3IubmV4dCgpIG9uIGEg
bm9uLVByb3BlcnR5TmFtZUl0ZXJhdG9yIG9iamVjdCIpKSk7CisKKyAgICBKU1ZhbHVlIHJlc3Vs
dDsKKyAgICBpZiAoaXRlcmF0b3ItPm5leHQoZXhlYywgcmVzdWx0KSkKKyAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShjcmVhdGVJdGVyYXRvclJlc3VsdE9iamVjdChleGVjLCByZXN1bHQs
IGZhbHNlKSk7CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShjcmVhdGVJdGVyYXRvclJlc3Vs
dE9iamVjdChleGVjLCBqc1VuZGVmaW5lZCgpLCB0cnVlKSk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IEpTQwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0
eU5hbWVJdGVyYXRvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNQcm9wZXJ0
eU5hbWVJdGVyYXRvci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVkN2FlYjExYTY4YzdmNzhiM2NmZWNlMjc5YTgw
MmI3ZDQ4YzZlZjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNSBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEpTUHJvcGVydHlO
YW1lSXRlcmF0b3JfaAorI2RlZmluZSBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yX2gKKworI2luY2x1
ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yLmgiCisK
K25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yIDogcHVibGlj
IEpTTm9uRmluYWxPYmplY3QgeworcHVibGljOgorICAgIHR5cGVkZWYgSlNOb25GaW5hbE9iamVj
dCBCYXNlOworCisgICAgZW51bSBjbGFzcyBFbnVtZXJhdGlvblBoYXNlIDogdWludDMyX3Qgewor
ICAgICAgICBJbmRleGVkTmFtZXMsCisgICAgICAgIFN0cnVjdHVyZU5hbWVzLAorICAgICAgICBH
ZW5lcmljTmFtZXMsCisgICAgICAgIERvbmUKKyAgICB9OworCisgICAgREVDTEFSRV9FWFBPUlRf
SU5GTzsKKworICAgIHN0YXRpYyBTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShWTSYgdm0sIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIFN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlw
ZSwgVHlwZUluZm8oT2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOworICAgIH0K
KworICAgIHN0YXRpYyBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yKiBjcmVhdGUoRXhlY1N0YXRlKiwg
U3RydWN0dXJlKiwgSlNPYmplY3QqKTsKKworICAgIEpTUHJvcGVydHlOYW1lSXRlcmF0b3IqIGNs
b25lKEV4ZWNTdGF0ZSopOworICAgIGJvb2wgbmV4dChFeGVjU3RhdGUqLCBKU1ZhbHVlJik7CisK
KyAgICBzdGF0aWMgdm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIFNsb3RWaXNpdG9yJik7CisK
K3ByaXZhdGU6CisgICAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcihWTSYsIFN0cnVjdHVyZSosIEpT
T2JqZWN0KiwgSlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9yKik7CisKKyAgICB2b2lkIGZpbmlzaENy
ZWF0aW9uKFZNJiwgSlNHbG9iYWxPYmplY3QqKTsKKworICAgIHN0YXRpYyBKU1Byb3BlcnR5TmFt
ZUl0ZXJhdG9yKiBjcmVhdGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgSlNPYmplY3QqLCBKU1By
b3BlcnR5TmFtZUVudW1lcmF0b3IqKTsKKworICAgIFdyaXRlQmFycmllcjxKU09iamVjdD4gbV9p
dGVyYXRlZE9iamVjdDsKKyAgICBXcml0ZUJhcnJpZXI8SlNQcm9wZXJ0eU5hbWVFbnVtZXJhdG9y
PiBtX3Byb3BlcnR5TmFtZUVudW1lcmF0b3I7CisgICAgRW51bWVyYXRpb25QaGFzZSBtX2VudW1l
cmF0aW9uUGhhc2U7CisgICAgdWludDMyX3QgbV9jdXJzb3I7Cit9OworCit9CisKKyNlbmRpZiAv
LyBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1JlZmxlY3RPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvUmVmbGVjdE9iamVjdC5jcHAKaW5kZXggZTkzNTQ2MzU3OTYwZWZlYTY5YjkwOTVlYTdj
ZjVlMDlmNjNmMmRmOS4uNmNlMzM3YzFmODI3ZDI1MWE3NjQzZjIwMjE3Mzc2OGY5MWMzMzc0ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVmbGVjdE9iamVjdC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVmbGVjdE9iamVjdC5jcHAK
QEAgLTI3LDE4ICsyNywxNSBAQAogI2luY2x1ZGUgIlJlZmxlY3RPYmplY3QuaCIKIAogI2luY2x1
ZGUgIkpTQ0lubGluZXMuaCIKKyNpbmNsdWRlICJKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yLmgiCiAj
aW5jbHVkZSAiTG9va3VwLmgiCiAjaW5jbHVkZSAiT2JqZWN0Q29uc3RydWN0b3IuaCIKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKLXN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHJlZmxl
Y3RPYmplY3RPd25LZXlzKEV4ZWNTdGF0ZSopOwotCi19Ci0KLW5hbWVzcGFjZSBKU0MgewotCitz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0RW51bWVyYXRl
KEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgcmVmbGVj
dE9iamVjdElzRXh0ZW5zaWJsZShFeGVjU3RhdGUqKTsKK3N0YXRpYyBFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIHJlZmxlY3RPYmplY3RPd25LZXlzKEV4ZWNTdGF0ZSopOwogCiB9CiAKQEAg
LTU0LDYgKzUxLDcgQEAgY29uc3QgQ2xhc3NJbmZvIFJlZmxlY3RPYmplY3Q6OnNfaW5mbyA9IHsg
IlJlZmxlY3QiLCAmQmFzZTo6c19pbmZvLCAmcmVmbGVjdE9iamUKIEBiZWdpbiByZWZsZWN0T2Jq
ZWN0VGFibGUKICAgICBhcHBseSAgICAgICAgICAgcmVmbGVjdE9iamVjdEFwcGx5ICAgICAgICAg
IERvbnRFbnVtfEZ1bmN0aW9uIDMKICAgICBkZWxldGVQcm9wZXJ0eSAgcmVmbGVjdE9iamVjdERl
bGV0ZVByb3BlcnR5IERvbnRFbnVtfEZ1bmN0aW9uIDIKKyAgICBlbnVtZXJhdGUgICAgICAgcmVm
bGVjdE9iamVjdEVudW1lcmF0ZSAgICAgIERvbnRFbnVtfEZ1bmN0aW9uIDEKICAgICBpc0V4dGVu
c2libGUgICAgcmVmbGVjdE9iamVjdElzRXh0ZW5zaWJsZSAgIERvbnRFbnVtfEZ1bmN0aW9uIDEK
ICAgICBvd25LZXlzICAgICAgICAgcmVmbGVjdE9iamVjdE93bktleXMgICAgICAgIERvbnRFbnVt
fEZ1bmN0aW9uIDEKIEBlbmQKQEAgLTc3LDYgKzc1LDE0IEBAIGJvb2wgUmVmbGVjdE9iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJv
cGVyCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBGdW5jdGlvbnMgLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCByZWZsZWN0T2JqZWN0RW51bWVyYXRlKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBKU1ZhbHVl
IHRhcmdldCA9IGV4ZWMtPmFyZ3VtZW50KDApOworICAgIGlmICghdGFyZ2V0LmlzT2JqZWN0KCkp
CisgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUodGhyb3dUeXBlRXJyb3IoZXhlYywgQVND
SUlMaXRlcmFsKCJSZWZsZWN0LmVudW1lcmF0ZSByZXF1aXJlcyB0aGUgZmlyc3QgYXJndW1lbnQg
YmUgYW4gb2JqZWN0IikpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKEpTUHJvcGVydHlO
YW1lSXRlcmF0b3I6OmNyZWF0ZShleGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPnBy
b3BlcnR5TmFtZUl0ZXJhdG9yU3RydWN0dXJlKCksIGFzT2JqZWN0KHRhcmdldCkpKTsKK30KKwog
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWZsZWN0T2JqZWN0SXNFeHRlbnNpYmxlKEV4
ZWNTdGF0ZSogZXhlYykKIHsKICAgICBKU1ZhbHVlIHRhcmdldCA9IGV4ZWMtPmFyZ3VtZW50KDAp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZWZsZWN0
LWVudW1lcmF0ZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVmbGVj
dC1lbnVtZXJhdGUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGZmZTE2ODY5NjNiYjJiMTk0NjFhZGNjNTk4YjJj
Mzk1MGU4MDkxOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9zdHJlc3MvcmVmbGVjdC1lbnVtZXJhdGUuanMKQEAgLTAsMCArMSw1NCBAQAorZnVuY3Rpb24g
c2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkgeworICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVk
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Cit9CisK
K2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIG1lc3NhZ2UpIHsKKyAgICB2YXIgZXJyb3IgPSBu
dWxsOworICAgIHRyeSB7CisgICAgICAgIGZ1bmMoKTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAg
ICAgIGVycm9yID0gZTsKKyAgICB9CisgICAgaWYgKCFlcnJvcikKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCJub3QgdGhyb3duLiIpOworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBtZXNzYWdl
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCBlcnJvcjogIiArIFN0cmluZyhlcnJvcikp
OworfQorCitzaG91bGRCZShSZWZsZWN0LmVudW1lcmF0ZS5sZW5ndGgsIDEpOworCitzaG91bGRU
aHJvdygoKSA9PiB7CisgICAgUmVmbGVjdC5lbnVtZXJhdGUoImhlbGxvIik7Cit9LCBgVHlwZUVy
cm9yOiBSZWZsZWN0LmVudW1lcmF0ZSByZXF1aXJlcyB0aGUgZmlyc3QgYXJndW1lbnQgYmUgYW4g
b2JqZWN0YCk7CisKK3ZhciBpdGVyYXRvciA9IFJlZmxlY3QuZW51bWVyYXRlKHt9KTsKK3ZhciBp
dGVyYXRvclByb3RvdHlwZSA9IFtdW1N5bWJvbC5pdGVyYXRvcl0oKS5fX3Byb3RvX18uX19wcm90
b19fOworc2hvdWxkQmUoaXRlcmF0b3IuX19wcm90b19fID09PSBpdGVyYXRvclByb3RvdHlwZSwg
dHJ1ZSk7CitzaG91bGRCZShpdGVyYXRvci5oYXNPd25Qcm9wZXJ0eSgnbmV4dCcpLCB0cnVlKTsK
K3Nob3VsZEJlKGl0ZXJhdG9yLm5leHQubGVuZ3RoLCAwKTsKK3Nob3VsZEJlKGl0ZXJhdG9yW1N5
bWJvbC5pdGVyYXRvcl0oKSA9PT0gaXRlcmF0b3IsIHRydWUpOworCitmdW5jdGlvbiB0ZXN0SXRl
cmF0b3Iob2JqZWN0LCBleHBlY3RlZCkgeworICAgIHZhciBpbmRleCA9IDA7CisgICAgZm9yICh2
YXIgbmFtZSBvZiBSZWZsZWN0LmVudW1lcmF0ZShvYmplY3QpKQorICAgICAgICBzaG91bGRCZShu
YW1lID09PSBleHBlY3RlZFtpbmRleCsrXSwgdHJ1ZSk7CisgICAgc2hvdWxkQmUoaW5kZXgsIGV4
cGVjdGVkLmxlbmd0aCk7Cit9CisKK3Rlc3RJdGVyYXRvcih7IGhlbGxvOjQyLCAwOiAwIH0sIFsn
MCcsICdoZWxsbyddKTsKK3Rlc3RJdGVyYXRvcih7IDE6MSwgaGVsbG86NDIsIDA6IDAgfSwgWycw
JywgJzEnLCAnaGVsbG8nXSk7Cit0ZXN0SXRlcmF0b3IoeyAxOjEsIGhlbGxvOjQyLCAwOiAwLCB3
b3JsZDogJ29rJywgMTAwMDAwOjAgfSwgWycwJywgJzEnLCAnMTAwMDAwJywgJ2hlbGxvJywgJ3dv
cmxkJ10pOworCit0ZXN0SXRlcmF0b3IoeyAxOjEsIGhlbGxvOjQyLCAwOiAwLCBbU3ltYm9sLnVu
c2NvcGFibGVzXTogNDIsIHdvcmxkOiAnb2snLCAxMDAwMDA6MCB9LCBbJzAnLCAnMScsICcxMDAw
MDAnLCAnaGVsbG8nLCAnd29ybGQnXSk7CisKK3ZhciBvYmplY3QgPSB7IDE6MSwgaGVsbG86NDIs
IDA6IDAsIFtTeW1ib2wudW5zY29wYWJsZXNdOiA0Miwgd29ybGQ6ICdvaycsIDEwMDAwMDowIH07
CitPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqZWN0LCAnaGlkZGVuJywgeworICAgIHZhbHVlOiA0
MiwKKyAgICBlbnVtZXJhYmxlOiBmYWxzZQorfSk7Cit0ZXN0SXRlcmF0b3Iob2JqZWN0LCBbJzAn
LCAnMScsICcxMDAwMDAnLCAnaGVsbG8nLCAnd29ybGQnXSk7CisKK3Rlc3RJdGVyYXRvcih7IGhl
bGxvOjQyLCAwOiAwLCBfX3Byb3RvX186IHsgMTogMSwgd29ybGQ6IDQyIH0gfSwgWycwJywgJ2hl
bGxvJywgJzEnLCAnd29ybGQnXSk7Cit0ZXN0SXRlcmF0b3Ioe30sIFtdKTsKK3Rlc3RJdGVyYXRv
cihbXSwgW10pOwo=
</data>
<flag name="review"
          id="282797"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>