<?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>134508</bug_id>
          
          <creation_ts>2014-07-01 13:07:02 -0700</creation_ts>
          <short_desc>In needs FTL implementation</short_desc>
          <delta_ts>2014-07-02 16:47:57 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matthew Mirman">mmirman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mmirman</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1019738</commentid>
    <comment_count>0</comment_count>
    <who name="Matthew Mirman">mmirman</who>
    <bug_when>2014-07-01 13:07:02 -0700</bug_when>
    <thetext>patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1019781</commentid>
    <comment_count>1</comment_count>
      <attachid>234203</attachid>
    <who name="Matthew Mirman">mmirman</who>
    <bug_when>2014-07-01 15:10:51 -0700</bug_when>
    <thetext>Created attachment 234203
Added In to the FTL

For ftlopt branch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020080</commentid>
    <comment_count>2</comment_count>
      <attachid>234203</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-07-02 15:43:19 -0700</bug_when>
    <thetext>Comment on attachment 234203
Added In to the FTL

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

Add a test for the generic In case and change the sizeOfCheckIn.  Otherwise LGTM!

&gt; Source/JavaScriptCore/ftl/FTLInlineCacheSize.cpp:70
&gt; +#if CPU(ARM64)
&gt; +    return 44; // TODO: I DON&apos;T YET KNOW WHAT TO PUT HERE
&gt; +#else
&gt; +    return 32; // TODO: I DON&apos;T YET KNOW WHAT TO PUT HERE 
&gt; +#endif

In general, you should put the smallest value that doesn&apos;t result in a crash.  In this case it&apos;s just the size of a patchable jump, which on x86 is 5 and on ARM is 4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020092</commentid>
    <comment_count>3</comment_count>
      <attachid>234292</attachid>
    <who name="Matthew Mirman">mmirman</who>
    <bug_when>2014-07-02 16:11:36 -0700</bug_when>
    <thetext>Created attachment 234292
Added In to the FTL

Fixed size and added that test.  For ftlopt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020096</commentid>
    <comment_count>4</comment_count>
      <attachid>234292</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2014-07-02 16:18:06 -0700</bug_when>
    <thetext>Comment on attachment 234292
Added In to the FTL

Nice!  You should land it yourself.  Also, for patches that you intend to land yourself, don&apos;t set cq to ?.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020103</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-07-02 16:43:41 -0700</bug_when>
    <thetext>Please be sure to run the full set of regression tests on the ftlopt branch before landing this (if you haven&apos;t already).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020104</commentid>
    <comment_count>6</comment_count>
    <who name="Matthew Mirman">mmirman</who>
    <bug_when>2014-07-02 16:47:57 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/170736</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234203</attachid>
            <date>2014-07-01 15:10:51 -0700</date>
            <delta_ts>2014-07-02 16:11:36 -0700</delta_ts>
            <desc>Added In to the FTL</desc>
            <filename>0001-Added-In-for-cells-to-the-FTL.patch</filename>
            <type>text/plain</type>
            <size>17477</size>
            <attacher name="Matthew Mirman">mmirman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggYjU1Yzk3ZS4uMmJkZjI1ZCAxMDA2NDQKLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxNC0wNy0wMSAgTWF0dGhldyBNaXJtYW4gIDxtbWly
bWFuQGFwcGxlLmNvbT4KKworICAgICAgICBBZGRlZCBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUg
ImluIiBjaGVjayB0byBGVEwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzQ1MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOiBlbmFibGVkIGNvbXBpbGF0aW9u
IGZvciAiaW4iCisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6IGRpdHRvCisgICAgICAg
ICogZnRsL0ZUTENvbXBpbGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmdlbmVyYXRlQ2hlY2tJ
bklDRmFzdFBhdGgpOiBhZGRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpmaXhGdW5jdGlvbkJhc2Vk
T25TdGFja01hcHMpOiBhZGRlZCBjYXNlIGZvciBDaGVja0luIGRlc2NyaXB0b3JzLgorICAgICAg
ICAqIGZ0bC9GVExJbmxpbmVDYWNoZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKEpTQzo6RlRMOjpD
aGVja0luR2VuZXJhdG9yOjpDaGVja0luR2VuZXJhdG9yKTogYWRkZWQuCisgICAgICAgIChKU0M6
OkZUTDo6Q2hlY2tJbkRlc2NyaXB0b3I6OkNoZWNrSW5EZXNjcmlwdG9yKTogYWRkZWQuCisgICAg
ICAgICogZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHA6IAorICAgICAgICAoSlNDOjpGVEw6OnNp
emVPZkNoZWNrSW4pOiBhZGRlZC4gQ3VycmVudGx5IGxhcmdlciB0aGFuIG5lY2Vzc2FyeS4KKyAg
ICAgICAgKiBmdGwvRlRMSW5saW5lQ2FjaGVTaXplLmg6IGRpdHRvCisgICAgICAgICogZnRsL0ZU
TEludHJpbnNpY1JlcG9zaXRvcnkuaDogQWRkZWQgZnVuY3Rpb24gdHlwZSBmb3Igb3BlcmF0aW9u
SW5HZW5lcmljCisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcDogCisgICAgICAg
IChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKTogYWRkZWQgY2FzZSBmb3Ig
SW4uCisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVJbik6IGFkZGVk
LgorICAgICAgICAqIGZ0bC9GVExTbG93UGF0aENhbGwuY3BwOiBBZGRlZCBhIGNhbGxPcGVyYXRp
b24gZm9yIG9wZXJhdGlvbkluCisgICAgICAgIChKU0M6OkZUTDo6Y2FsbE9wZXJhdGlvbik6IGRp
dHRvCisgICAgICAgICogZnRsL0ZUTFNsb3dQYXRoQ2FsbC5oOiBkaXR0bworICAgICAgICAqIGZ0
bC9GVExTdGF0ZS5oOiBBZGRlZCBhIHZlY3RvciB0byBob2xkIENoZWNrSW4gZGVzY3JpcHRvcnMu
CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDogbWFkZSBvcGVyYXRpb25JbnMgaW50ZXJu
YWwuCisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1jaGVja2luLmpzOiBBZGRlZC4KKwogMjAx
NC0wNi0zMCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAg
ICAgIE1lcmdlIHIxNjkxMjEgZnJvbSB0cnVuay4KZGlmZiAtLWdpdCBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDc3ZjU4M2RmLi4xMGI1ODFhIDEwMDY0NAotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTE2NSw2ICsxNjUsMTAgQEAg
aW5saW5lIENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIC8v
IGNhc2UgYmVjYXVzZSBpdCB3b3VsZCBwcmV2ZW50IHVzIGZyb20gY2F0Y2hpbmcgYnVncyB3aGVy
ZSB0aGUgRlRMIGJhY2tlbmQKICAgICAgICAgLy8gcGlwZWxpbmUgZmFpbGVkIHRvIG9wdGltaXpl
IG91dCBhbiBJZGVudGl0eS4KICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbjoKKyAgICAgICAg
aWYgKG5vZGUtPmNoaWxkMigpLnVzZUtpbmQoKSA9PSBDZWxsVXNlKQorICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIHJldHVybiBDYW5ub3RDb21waWxlOwogICAgIGNhc2UgUHV0QnlJZERpcmVj
dDoKICAgICBjYXNlIFB1dEJ5SWQ6CiAgICAgICAgIGlmIChub2RlLT5jaGlsZDEoKS51c2VLaW5k
KCkgPT0gQ2VsbFVzZSkKZGlmZiAtLWdpdCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENv
bXBpbGUuY3BwIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAKaW5kZXgg
YzFmNjhiNi4uNzE2MjAyMCAxMDA2NDQKLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
Q29tcGlsZS5jcHAKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAK
QEAgLTE2Niw2ICsxNjYsNjggQEAgdm9pZCBnZW5lcmF0ZUlDRmFzdFBhdGgoCiAgICAgfQogfQog
CitzdGF0aWMgdm9pZCBnZW5lcmF0ZUNoZWNrSW5JQ0Zhc3RQYXRoKAorICAgIFN0YXRlJiBzdGF0
ZSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIEdlbmVyYXRlZEZ1bmN0aW9uIGdlbmVyYXRlZEZ1bmN0
aW9uLAorICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwJiByZWNvcmRNYXAsIENoZWNrSW5EZXNjcmlw
dG9yJiBpYywgc2l6ZV90IHNpemVPZklDKQoreworICAgIFZNJiB2bSA9IHN0YXRlLmdyYXBoLm1f
dm07CisKKyAgICBTdGFja01hcHM6OlJlY29yZE1hcDo6aXRlcmF0b3IgaXRlciA9IHJlY29yZE1h
cC5maW5kKGljLnN0YWNrbWFwSUQoKSk7CisgICAgaWYgKGl0ZXIgPT0gcmVjb3JkTWFwLmVuZCgp
KSB7CisgICAgICAgIC8vIEl0IHdhcyBvcHRpbWl6ZWQgb3V0LgorICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIAorICAgIFZlY3RvcjxTdGFja01hcHM6OlJlY29yZD4mIHJlY29yZHMgPSBpdGVy
LT52YWx1ZTsKKyAgICAKKyAgICBSRUxFQVNFX0FTU0VSVChyZWNvcmRzLnNpemUoKSA9PSBpYy5t
X2dlbmVyYXRvcnMuc2l6ZSgpKTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IHJlY29yZHMuc2l6
ZSgpOyBpLS07KSB7CisgICAgICAgIFN0YWNrTWFwczo6UmVjb3JkJiByZWNvcmQgPSByZWNvcmRz
W2ldOworICAgICAgICBhdXRvIGdlbmVyYXRvciA9IGljLm1fZ2VuZXJhdG9yc1tpXTsKKworICAg
ICAgICBTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8gPSAqZ2VuZXJhdG9yLm1fc3R1YjsKKyAg
ICAgICAgYXV0byBjYWxsID0gZ2VuZXJhdG9yLm1fc2xvd0NhbGw7CisgICAgICAgIGF1dG8gc2xv
d1BhdGhCZWdpbiA9IGdlbmVyYXRvci5tX2JlZ2luTGFiZWw7CisKKyAgICAgICAgQ0NhbGxIZWxw
ZXJzIGZhc3RQYXRoSklUKCZ2bSwgY29kZUJsb2NrKTsKKyAgICAgICAgCisgICAgICAgIGF1dG8g
anVtcCA9IGZhc3RQYXRoSklULnBhdGNoYWJsZUp1bXAoKTsKKyAgICAgICAgYXV0byBkb25lID0g
ZmFzdFBhdGhKSVQubGFiZWwoKTsKKworICAgICAgICBjaGFyKiBzdGFydE9mSUMgPQorICAgICAg
ICAgICAgYml0d2lzZV9jYXN0PGNoYXIqPihnZW5lcmF0ZWRGdW5jdGlvbikgKyByZWNvcmQuaW5z
dHJ1Y3Rpb25PZmZzZXQ7CisgICAgICAgIAorICAgICAgICBMaW5rQnVmZmVyIGZhc3RQYXRoKHZt
LCAmZmFzdFBhdGhKSVQsIHN0YXJ0T2ZJQywgc2l6ZU9mSUMpOworICAgICAgICBMaW5rQnVmZmVy
JiBzbG93UGF0aCA9ICpzdGF0ZS5maW5hbGl6ZXItPnNpZGVDb2RlTGlua0J1ZmZlcjsKKyAgICAg
ICAgLy8gTm90ZTogd2UgY291bGQgaGFuZGxlIHRoZSAhaXNWYWxpZCgpIGNhc2UuIFdlIGp1c3Qg
ZG9uJ3QgYXBwZWFyIHRvIGhhdmUgYQorICAgICAgICAvLyByZWFzb24gdG8gZG8gc28sIHlldC4K
KyAgICAgICAgUkVMRUFTRV9BU1NFUlQoZmFzdFBhdGguaXNWYWxpZCgpKTsKKworICAgICAgICBN
YWNyb0Fzc2VtYmxlcjo6QXNzZW1ibGVyVHlwZV9UOjpmaWxsTm9wcygKKyAgICAgICAgICAgIHN0
YXJ0T2ZJQyArIGZhc3RQYXRoLnNpemUoKSwgc2l6ZU9mSUMgLSBmYXN0UGF0aC5zaXplKCkpOwor
ICAgICAgICAKKyAgICAgICAgc3RhdGUuZmluYWxpemVyLT5zaWRlQ29kZUxpbmtCdWZmZXItPmxp
bmsoCisgICAgICAgICAgICBpYy5tX3Nsb3dQYXRoRG9uZVtpXSwgQ29kZUxvY2F0aW9uTGFiZWwo
c3RhcnRPZklDICsgc2l6ZU9mSUMpKTsKKyAgICAgICAgCisgICAgICAgIENvZGVMb2NhdGlvbkxh
YmVsIHNsb3dQYXRoQmVnaW5Mb2MgPSBzbG93UGF0aC5sb2NhdGlvbk9mKHNsb3dQYXRoQmVnaW4p
OworICAgICAgICBmYXN0UGF0aC5saW5rKGp1bXAsIHNsb3dQYXRoQmVnaW5Mb2MpOworCisgICAg
ICAgIENvZGVMb2NhdGlvbkNhbGwgY2FsbFJldHVybkxvY2F0aW9uID0gZmFzdFBhdGgubG9jYXRp
b25PZihjYWxsKTsKKworICAgICAgICBzdHViSW5mby5wYXRjaC5kZWx0YUNhbGxUb0RvbmUgPSBN
YWNyb0Fzc2VtYmxlcjo6ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKAorICAgICAgICAgICAgY2Fs
bFJldHVybkxvY2F0aW9uLCBmYXN0UGF0aC5sb2NhdGlvbk9mKGRvbmUpKTsKKworICAgICAgICBz
dHViSW5mby5wYXRjaC5kZWx0YUNhbGxUb0p1bXAgPSBNYWNyb0Fzc2VtYmxlcjo6ZGlmZmVyZW5j
ZUJldHdlZW5Db2RlUHRyKAorICAgICAgICAgICAgY2FsbFJldHVybkxvY2F0aW9uLCBmYXN0UGF0
aC5sb2NhdGlvbk9mKGp1bXApKTsKKyAgICAgICAgc3R1YkluZm8uY2FsbFJldHVybkxvY2F0aW9u
ID0gY2FsbFJldHVybkxvY2F0aW9uOworICAgICAgICBzdHViSW5mby5wYXRjaC5kZWx0YUNhbGxU
b1Nsb3dDYXNlID0gTWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cigKKyAg
ICAgICAgICAgIGNhbGxSZXR1cm5Mb2NhdGlvbiwgc2xvd1BhdGhCZWdpbkxvYyk7CisgICAgICAg
IAorICAgIH0KK30KKworCiBzdGF0aWMgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVyc0Zvcihjb25z
dCBTdGFja01hcHM6OlJlY29yZCYgcmVjb3JkKQogewogICAgIGlmIChPcHRpb25zOjphc3N1bWVB
bGxSZWdzSW5GVExJQ0FyZUxpdmUoKSkKQEAgLTI5MCw3ICszNTIsNyBAQCBzdGF0aWMgdm9pZCBm
aXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgIHN0YXRlLmZpbmFsaXplci0+ZXhp
dFRodW5rc0xpbmtCdWZmZXIgPSBsaW5rQnVmZmVyLnJlbGVhc2UoKTsKICAgICB9CiAKLSAgICBp
ZiAoIXN0YXRlLmdldEJ5SWRzLmlzRW1wdHkoKSB8fCAhc3RhdGUucHV0QnlJZHMuaXNFbXB0eSgp
KSB7CisgICAgaWYgKCFzdGF0ZS5nZXRCeUlkcy5pc0VtcHR5KCkgfHwgIXN0YXRlLnB1dEJ5SWRz
LmlzRW1wdHkoKSB8fCAhc3RhdGUuY2hlY2tJbnMuaXNFbXB0eSgpKSB7CiAgICAgICAgIENDYWxs
SGVscGVycyBzbG93UGF0aEpJVCgmdm0sIGNvZGVCbG9jayk7CiAgICAgICAgIAogICAgICAgICBD
Q2FsbEhlbHBlcnM6Okp1bXBMaXN0IGV4Y2VwdGlvblRhcmdldDsKQEAgLTM2OSw2ICs0MzEsNDQg
QEAgc3RhdGljIHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgICAgICAgICAg
ICAgIHB1dEJ5SWQubV9nZW5lcmF0b3JzLmFwcGVuZChnZW4pOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CisKKworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGF0ZS5jaGVja0lucy5zaXpl
KCk7IGktLTspIHsKKyAgICAgICAgICAgIENoZWNrSW5EZXNjcmlwdG9yJiBjaGVja0luID0gc3Rh
dGUuY2hlY2tJbnNbaV07CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh2ZXJib3NlQ29t
cGlsYXRpb25FbmFibGVkKCkpCisgICAgICAgICAgICAgICAgZGF0YUxvZygiSGFuZGxpbmcgY2hl
Y2tJbiBzdGFja21hcCAjIiwgY2hlY2tJbi5zdGFja21hcElEKCksICJcbiIpOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBpdGVyID0gcmVjb3JkTWFwLmZpbmQoY2hlY2tJbi5zdGFja21hcElE
KCkpOworICAgICAgICAgICAgaWYgKGl0ZXIgPT0gcmVjb3JkTWFwLmVuZCgpKSB7CisgICAgICAg
ICAgICAgICAgLy8gSXQgd2FzIG9wdGltaXplZCBvdXQuCisgICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBpdGVyLT52YWx1ZS5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAg
IFN0YWNrTWFwczo6UmVjb3JkJiByZWNvcmQgPSBpdGVyLT52YWx1ZVtpXTsKKyAgICAgICAgICAg
ICAgICBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0gdXNlZFJlZ2lzdGVyc0ZvcihyZWNvcmQp
OworICAgICAgICAgICAgICAgIEdQUlJlZyByZXN1bHQgPSByZWNvcmQubG9jYXRpb25zWzBdLmRp
cmVjdEdQUigpOworICAgICAgICAgICAgICAgIEdQUlJlZyBvYmogPSByZWNvcmQubG9jYXRpb25z
WzFdLmRpcmVjdEdQUigpOworICAgICAgICAgICAgICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHVi
SW5mbyA9IGNvZGVCbG9jay0+YWRkU3R1YkluZm8oKTsgCisgICAgICAgICAgICAgICAgc3R1Yklu
Zm8tPmNvZGVPcmlnaW4gPSBjaGVja0luLmNvZGVPcmlnaW4oKTsKKyAgICAgICAgICAgICAgICBz
dHViSW5mby0+cGF0Y2guYmFzZUdQUiA9IHN0YXRpY19jYXN0PGludDhfdD4ob2JqKTsKKyAgICAg
ICAgICAgICAgICBzdHViSW5mby0+cGF0Y2gudmFsdWVHUFIgPSBzdGF0aWNfY2FzdDxpbnQ4X3Q+
KHJlc3VsdCk7CisgICAgICAgICAgICAgICAgc3R1YkluZm8tPnBhdGNoLnVzZWRSZWdpc3RlcnMg
PSB1c2VkUmVnaXN0ZXJzOworICAgICAgICAgICAgICAgIHN0dWJJbmZvLT5wYXRjaC5zcGlsbE1v
ZGUgPSBOZWVkVG9TcGlsbDsKKworICAgICAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJl
bCBiZWdpbiA9IHNsb3dQYXRoSklULmxhYmVsKCk7CisKKyAgICAgICAgICAgICAgICBNYWNyb0Fz
c2VtYmxlcjo6Q2FsbCBzbG93Q2FsbCA9IGNhbGxPcGVyYXRpb24oCisgICAgICAgICAgICAgICAg
ICAgIHN0YXRlLCB1c2VkUmVnaXN0ZXJzLCBzbG93UGF0aEpJVCwgY2hlY2tJbi5jb2RlT3JpZ2lu
KCksICZleGNlcHRpb25UYXJnZXQsCisgICAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbkluT3B0
aW1pemUsIHJlc3VsdCwgc3R1YkluZm8sIG9iaiwgY2hlY2tJbi5tX2lkKTsKKworICAgICAgICAg
ICAgICAgIGNoZWNrSW4ubV9zbG93UGF0aERvbmUuYXBwZW5kKHNsb3dQYXRoSklULmp1bXAoKSk7
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgY2hlY2tJbi5tX2dlbmVyYXRvcnMu
YXBwZW5kKENoZWNrSW5HZW5lcmF0b3Ioc3R1YkluZm8sIHNsb3dDYWxsLCBiZWdpbikpOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgCiAgICAgICAgIGV4Y2VwdGlvblRhcmdl
dC5saW5rKCZzbG93UGF0aEpJVCk7CiAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpKdW1wIGV4Y2Vw
dGlvbkp1bXAgPSBzbG93UGF0aEpJVC5qdW1wKCk7CkBAIC0zODgsNiArNDg4LDEyIEBAIHN0YXRp
YyB2b2lkIGZpeEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAgICAgICAgICBzdGF0
ZSwgY29kZUJsb2NrLCBnZW5lcmF0ZWRGdW5jdGlvbiwgcmVjb3JkTWFwLCBzdGF0ZS5wdXRCeUlk
c1tpXSwKICAgICAgICAgICAgICAgICBzaXplT2ZQdXRCeUlkKCkpOwogICAgICAgICB9CisKKyAg
ICAgICAgZm9yICh1bnNpZ25lZCBpID0gc3RhdGUuY2hlY2tJbnMuc2l6ZSgpOyBpLS07KSB7Cisg
ICAgICAgICAgICBnZW5lcmF0ZUNoZWNrSW5JQ0Zhc3RQYXRoKAorICAgICAgICAgICAgICAgIHN0
YXRlLCBjb2RlQmxvY2ssIGdlbmVyYXRlZEZ1bmN0aW9uLCByZWNvcmRNYXAsIHN0YXRlLmNoZWNr
SW5zW2ldLAorICAgICAgICAgICAgICAgIHNpemVPZkNoZWNrSW4oKSk7IAorICAgICAgICB9IAog
ICAgIH0KICAgICAKICAgICAvLyBIYW5kbGluZyBKUyBjYWxscyBpcyB3ZWlyZDogd2UgbmVlZCB0
byBlbnN1cmUgdGhhdCB3ZSBzb3J0IHRoZW0gYnkgdGhlIFBDIGluIExMVk0KZGlmZiAtLWdpdCBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlRGVzY3JpcHRvci5oIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9yLmgKaW5kZXggZGYw
ZDcxMS4uODJiNjIzOCAxMDA2NDQKLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5s
aW5lQ2FjaGVEZXNjcmlwdG9yLmgKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5s
aW5lQ2FjaGVEZXNjcmlwdG9yLmgKQEAgLTk0LDYgKzk0LDM1IEBAIHByaXZhdGU6CiAgICAgUHV0
S2luZCBtX3B1dEtpbmQ7CiB9OwogCitzdHJ1Y3QgQ2hlY2tJbkdlbmVyYXRvciB7CisgICAgU3Ry
dWN0dXJlU3R1YkluZm8qIG1fc3R1YjsKKyAgICBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBtX3Nsb3dD
YWxsOworICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBtX2JlZ2luTGFiZWw7CisKKyAgICBDaGVj
a0luR2VuZXJhdG9yKFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViLCBNYWNyb0Fzc2VtYmxlcjo6Q2Fs
bCBzbG93Q2FsbCwgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIGJlZ2luTGFiZWwpCisgICAgICAgIDog
bV9zdHViKHN0dWIpIAorICAgICAgICAsIG1fc2xvd0NhbGwoc2xvd0NhbGwpCisgICAgICAgICwg
bV9iZWdpbkxhYmVsKGJlZ2luTGFiZWwpCisgICAgeworICAgIH0KK307CisKK2NsYXNzIENoZWNr
SW5EZXNjcmlwdG9yIDogcHVibGljIElubGluZUNhY2hlRGVzY3JpcHRvciB7CitwdWJsaWM6Cisg
ICAgQ2hlY2tJbkRlc2NyaXB0b3IoKSB7IH0KKyAgICAKKyAgICBDaGVja0luRGVzY3JpcHRvcih1
bnNpZ25lZCBzdGFja21hcElELCBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIGNvbnN0IFN0cmluZ0lt
cGwqIGlkKQorICAgICAgICA6IElubGluZUNhY2hlRGVzY3JpcHRvcihzdGFja21hcElELCBjb2Rl
T3JpZ2luLCBudWxscHRyKQorICAgICAgICAsIG1faWQoaWQpCisgICAgeworICAgIH0KKworICAg
IAorICAgIGNvbnN0IFN0cmluZ0ltcGwqIG1faWQ7CisgICAgVmVjdG9yPENoZWNrSW5HZW5lcmF0
b3I+IG1fZ2VuZXJhdG9yczsKK307CisKKwogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCiAj
ZW5kaWYgLy8gRU5BQkxFKEZUTF9KSVQpCmRpZmYgLS1naXQgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuY3BwIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
SW5saW5lQ2FjaGVTaXplLmNwcAppbmRleCA2ZDQ0NDE0Li5iMTJmY2ZlIDEwMDY0NAotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNpemUuY3BwCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAKQEAgLTYxLDYgKzYxLDE2
IEBAIHNpemVfdCBzaXplT2ZQdXRCeUlkKCkKICNlbmRpZgogfQogCitzaXplX3Qgc2l6ZU9mQ2hl
Y2tJbigpCit7CisjaWYgQ1BVKEFSTTY0KQorICAgIHJldHVybiA0NDsgLy8gVE9ETzogSSBET04n
VCBZRVQgS05PVyBXSEFUIFRPIFBVVCBIRVJFCisjZWxzZQorICAgIHJldHVybiAzMjsgLy8gVE9E
TzogSSBET04nVCBZRVQgS05PVyBXSEFUIFRPIFBVVCBIRVJFIAorI2VuZGlmCit9CisKKwogc2l6
ZV90IHNpemVPZkNhbGwoKQogewogI2lmIENQVShBUk02NCkKZGlmZiAtLWdpdCBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5oIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmgKaW5kZXggN2M3YzE4OS4uZGI3NjQyNCAxMDA2NDQK
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmgKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmgKQEAgLTMzLDYgKzMz
LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogc2l6ZV90IHNpemVPZkdldEJ5
SWQoKTsKIHNpemVfdCBzaXplT2ZQdXRCeUlkKCk7CiBzaXplX3Qgc2l6ZU9mQ2FsbCgpOworc2l6
ZV90IHNpemVPZkNoZWNrSW4oKTsKIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6OkZUTAogCmRpZmYg
LS1naXQgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5Lmgg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgKaW5kZXgg
NzMwZWZiOS4uOGMyMDE5MyAxMDA2NDQKLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRM
SW50cmluc2ljUmVwb3NpdG9yeS5oCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElu
dHJpbnNpY1JlcG9zaXRvcnkuaApAQCAtNjMsNiArNjMsNyBAQCBuYW1lc3BhY2UgSlNDIHsgbmFt
ZXNwYWNlIEZUTCB7CiAgICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRSwgZnVuY3Rpb25UeXBlKGlu
dDY0LCBpbnRQdHIpKSBcCiAgICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRUEsIGZ1bmN0aW9uVHlw
ZShpbnQ2NCwgaW50UHRyLCBpbnRQdHIpKSBcCiAgICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRUFa
LCBmdW5jdGlvblR5cGUoaW50NjQsIGludFB0ciwgaW50UHRyLCBpbnQzMikpIFwKKyAgICBtYWNy
byhKX0pJVE9wZXJhdGlvbl9FQ0osIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyLCBpbnRQdHIs
IGludDY0KSkgXAogICAgIG1hY3JvKEpfSklUT3BlcmF0aW9uX0VEQSwgZnVuY3Rpb25UeXBlKGlu
dDY0LCBpbnRQdHIsIGRvdWJsZVR5cGUsIGludFB0cikpIFwKICAgICBtYWNybyhKX0pJVE9wZXJh
dGlvbl9FSiwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnRQdHIsIGludDY0KSkgXAogICAgIG1hY3Jv
KEpfSklUT3BlcmF0aW9uX0VKQSwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnRQdHIsIGludDY0LCBp
bnRQdHIpKSBcCmRpZmYgLS1naXQgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRG
R1RvTExWTS5jcHAgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5j
cHAKaW5kZXggMjQzOWZhMy4uY2MwNWFiMCAxMDA2NDQKLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTExvd2VyREZHVG9MTFZNLmNwcApAQCAtNDc4LDYgKzQ3OCw5IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICBjb21waWxlR2V0QnlJZCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgUHV0QnlJZERpcmVjdDoKKyAgICAgICAgY2FzZSBJbjoKKyAgICAgICAgICAgIGNvbXBpbGVJ
bigpOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUHV0QnlJZDoKICAgICAgICAg
ICAgIGNvbXBpbGVQdXRCeUlkKCk7CiAgICAgICAgICAgICBicmVhazsKQEAgLTM5MzAsNiArMzkz
MywzMyBAQCBwcml2YXRlOgogICAgICAgICBzZXRCb29sZWFuKG1fb3V0Lm5vdE51bGwocG9pbnRl
clJlc3VsdCkpOwogICAgIH0KICAgICAKKyAgICB2b2lkIGNvbXBpbGVJbigpCisgICAgeworICAg
ICAgICBFZGdlIGJhc2UgPSBtX25vZGUtPmNoaWxkMigpOworICAgICAgICBMVmFsdWUgY2VsbCA9
IGxvd0NlbGwoYmFzZSk7CisgICAgICAgIHNwZWN1bGF0ZU9iamVjdChiYXNlLCBjZWxsKTsKKyAg
ICAgICAgaWYgKEpTU3RyaW5nKiBzdHJpbmcgPSBtX25vZGUtPmNoaWxkMSgpLT5keW5hbWljQ2Fz
dENvbnN0YW50PEpTU3RyaW5nKj4oKSkgeworICAgICAgICAgICAgaWYgKHN0cmluZy0+dHJ5R2V0
VmFsdWVJbXBsKCkgJiYgc3RyaW5nLT50cnlHZXRWYWx1ZUltcGwoKS0+aXNBdG9taWMoKSkgewor
CisgICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nSW1wbCogc3RyID0gc3RyaW5nLT50cnlHZXRW
YWx1ZUltcGwoKTsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBzdGFja21hcElEID0gbV9zdGFj
a21hcElEcysrOworICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgTFZhbHVlIGNhbGwgPSBt
X291dC5jYWxsKAorICAgICAgICAgICAgICAgICAgICBtX291dC5wYXRjaHBvaW50SW50NjRJbnRy
aW5zaWMoKSwKKyAgICAgICAgICAgICAgICAgICAgbV9vdXQuY29uc3RJbnQ2NChzdGFja21hcElE
KSwgbV9vdXQuY29uc3RJbnQzMihzaXplT2ZDaGVja0luKCkpLAorICAgICAgICAgICAgICAgICAg
ICBjb25zdE51bGwobV9vdXQucmVmOCksIG1fb3V0LmNvbnN0SW50MzIoMSksIGNlbGwpOworCisg
ICAgICAgICAgICAgICAgc2V0SW5zdHJ1Y3Rpb25DYWxsaW5nQ29udmVudGlvbihjYWxsLCBMTFZN
QW55UmVnQ2FsbENvbnYpOworCisgICAgICAgICAgICAgICAgbV9mdGxTdGF0ZS5jaGVja0lucy5h
cHBlbmQoQ2hlY2tJbkRlc2NyaXB0b3Ioc3RhY2ttYXBJRCwgbV9ub2RlLT5vcmlnaW4uc2VtYW50
aWMsIHN0cikpOworICAgICAgICAgICAgICAgIHNldEpTVmFsdWUoY2FsbCk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAgICB9IAorCisgICAgICAgIHNldEpT
VmFsdWUodm1DYWxsKG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25HZW5lcmljSW4pLCBtX2NhbGxG
cmFtZSwgY2VsbCwgbG93SlNWYWx1ZShtX25vZGUtPmNoaWxkMSgpKSkpOworICAgIH0KKwogICAg
IHZvaWQgY29tcGlsZUNoZWNrSGFzSW5zdGFuY2UoKQogICAgIHsKICAgICAgICAgc3BlY3VsYXRl
KApkaWZmIC0tZ2l0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNw
cCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAKaW5kZXggZTQ4
Zjg2Mi4uMWZkOGM4MyAxMDA2NDQKLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xv
d1BhdGhDYWxsLmNwcAorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENh
bGwuY3BwCkBAIC0xNzYsNiArMTc2LDE5IEBAIHZvaWQgc3RvcmVDb2RlT3JpZ2luKFN0YXRlJiBz
dGF0ZSwgQ0NhbGxIZWxwZXJzJiBqaXQsIENvZGVPcmlnaW4gY29kZU9yaWdpbikKIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIGNhbGxPcGVyYXRpb24oCiAgICAgU3RhdGUmIHN0YXRlLCBjb25zdCBSZWdp
c3RlclNldCYgdXNlZFJlZ2lzdGVycywgQ0NhbGxIZWxwZXJzJiBqaXQsCiAgICAgQ29kZU9yaWdp
biBjb2RlT3JpZ2luLCBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QqIGV4Y2VwdGlvblRhcmdldCwK
KyAgICBKX0pJVE9wZXJhdGlvbl9FU3NpQ0kgb3BlcmF0aW9uLCBHUFJSZWcgcmVzdWx0LCBTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sCisgICAgR1BSUmVnIG9iamVjdCwgY29uc3QgU3RyaW5n
SW1wbCogdWlkKQoreworICAgIHN0b3JlQ29kZU9yaWdpbihzdGF0ZSwgaml0LCBjb2RlT3JpZ2lu
KTsKKyAgICBDYWxsQ29udGV4dCBjb250ZXh0KHN0YXRlLCB1c2VkUmVnaXN0ZXJzLCBqaXQsIDQs
IHJlc3VsdCk7CisgICAgaml0LnNldHVwQXJndW1lbnRzV2l0aEV4ZWNTdGF0ZSgKKyAgICAgICAg
Q0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHN0dWJJbmZvKSwgb2JqZWN0LCBDQ2FsbEhlbHBl
cnM6OlRydXN0ZWRJbW1QdHIodWlkKSk7CisgICAgcmV0dXJuIGNvbnRleHQubWFrZUNhbGwoYml0
d2lzZV9jYXN0PHZvaWQqPihvcGVyYXRpb24pLCBleGNlcHRpb25UYXJnZXQpOworfQorCitNYWNy
b0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKAorICAgIFN0YXRlJiBzdGF0ZSwgY29uc3Qg
UmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENDYWxsSGVscGVycyYgaml0LAorICAgIENvZGVP
cmlnaW4gY29kZU9yaWdpbiwgTWFjcm9Bc3NlbWJsZXI6Okp1bXBMaXN0KiBleGNlcHRpb25UYXJn
ZXQsCiAgICAgSl9KSVRPcGVyYXRpb25fRVNzaUpJIG9wZXJhdGlvbiwgR1BSUmVnIHJlc3VsdCwg
U3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLAogICAgIEdQUlJlZyBvYmplY3QsIFN0cmluZ0lt
cGwqIHVpZCkKIHsKZGlmZiAtLWdpdCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQ
YXRoQ2FsbC5oIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmgKaW5k
ZXggNjhlMDllNi4uNmU0ZDVmNiAxMDA2NDQKLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMU2xvd1BhdGhDYWxsLmgKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU2xvd1Bh
dGhDYWxsLmgKQEAgLTU5LDYgKzU5LDEwIEBAIHZvaWQgc3RvcmVDb2RlT3JpZ2luKFN0YXRlJiwg
Q0NhbGxIZWxwZXJzJiwgQ29kZU9yaWdpbik7CiAKIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNhbGxP
cGVyYXRpb24oCiAgICAgU3RhdGUmLCBjb25zdCBSZWdpc3RlclNldCYsIENDYWxsSGVscGVycyYs
IENvZGVPcmlnaW4sIENDYWxsSGVscGVyczo6SnVtcExpc3QqLAorICAgIEpfSklUT3BlcmF0aW9u
X0VTc2lDSSwgR1BSUmVnLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEdQUlJlZywKKyAgICBjb25zdCBT
dHJpbmdJbXBsKik7CitNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKAorICAgIFN0
YXRlJiwgY29uc3QgUmVnaXN0ZXJTZXQmLCBDQ2FsbEhlbHBlcnMmLCBDb2RlT3JpZ2luLCBDQ2Fs
bEhlbHBlcnM6Okp1bXBMaXN0KiwKICAgICBKX0pJVE9wZXJhdGlvbl9FU3NpSkksIEdQUlJlZyBy
ZXN1bHQsIFN0cnVjdHVyZVN0dWJJbmZvKiwgR1BSUmVnIG9iamVjdCwKICAgICBTdHJpbmdJbXBs
KiB1aWQpOwogTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbigKZGlmZiAtLWdpdCBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmggU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExTdGF0ZS5oCmluZGV4IDZlMWEwNmMuLmYyMWM5NTIgMTAwNjQ0Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmgKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMU3RhdGUuaApAQCAtNzMsNiArNzMsNyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgY2Fw
dHVyZWRTdGFja21hcElEOwogICAgIFNlZ21lbnRlZFZlY3RvcjxHZXRCeUlkRGVzY3JpcHRvcj4g
Z2V0QnlJZHM7CiAgICAgU2VnbWVudGVkVmVjdG9yPFB1dEJ5SWREZXNjcmlwdG9yPiBwdXRCeUlk
czsKKyAgICBTZWdtZW50ZWRWZWN0b3I8Q2hlY2tJbkRlc2NyaXB0b3I+IGNoZWNrSW5zOwogICAg
IFZlY3RvcjxKU0NhbGw+IGpzQ2FsbHM7CiAgICAgVmVjdG9yPENTdHJpbmc+IGNvZGVTZWN0aW9u
TmFtZXM7CiAgICAgVmVjdG9yPENTdHJpbmc+IGRhdGFTZWN0aW9uTmFtZXM7CmRpZmYgLS1naXQg
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmgKaW5kZXggMTE2YWMxMi4uMWFkNGJkMiAxMDA2NDQK
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMjAxLDkgKzIwMSw5IEBAIGlu
dDMyX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNrKEV4ZWNTdGF0
ZSopIFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
R2V0QnlJZChFeGVjU3RhdGUqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBT
dHJpbmdJbXBsKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBv
cGVyYXRpb25HZXRCeUlkQnVpbGRMaXN0KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJbmZvKiwg
RW5jb2RlZEpTVmFsdWUsIFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZShFeGVjU3RhdGUqLCBTdHJ1
Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBTdHJpbmdJbXBsKikgV1RGX0lOVEVSTkFM
OwotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Jbk9wdGltaXplKEV4ZWNT
dGF0ZSosIFN0cnVjdHVyZVN0dWJJbmZvKiwgSlNDZWxsKiwgU3RyaW5nSW1wbCopOwotRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25JbihFeGVjU3RhdGUqLCBTdHJ1Y3R1cmVT
dHViSW5mbyosIEpTQ2VsbCosIFN0cmluZ0ltcGwqKTsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVS
QVRJT04gb3BlcmF0aW9uR2VuZXJpY0luKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29kZWRKU1Zh
bHVlKTsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5PcHRpbWl6ZShF
eGVjU3RhdGUqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEpTQ2VsbCosIFN0cmluZ0ltcGwqKSBXVEZf
SU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluKEV4ZWNT
dGF0ZSosIFN0cnVjdHVyZVN0dWJJbmZvKiwgSlNDZWxsKiwgU3RyaW5nSW1wbCopIFdURl9JTlRF
Uk5BTDsKK0VuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2VuZXJpY0luKEV4
ZWNTdGF0ZSosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVk
SlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNhbGxHZXR0ZXIoRXhlY1N0YXRlKiwgSlND
ZWxsKiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
blB1dEJ5SWRTdHJpY3QoRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNW
YWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBTdHJpbmdJbXBs
KikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblB1dEJ5SWROb25T
dHJpY3QoRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNv
ZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRCYXNlLCBTdHJpbmdJbXBsKikgV1RGX0lO
VEVSTkFMOwpkaWZmIC0tZ2l0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRs
LWNoZWNraW4uanMgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtY2hlY2tp
bi5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44Y2JkZThiCi0tLSAvZGV2
L251bGwKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWNoZWNraW4u
anMKQEAgLTAsMCArMSwxNyBAQAorZnVuY3Rpb24gZm9vKHgpeworICAgIHZhciB0ID0gInMiIGlu
IHg7IAorICAgIHJldHVybiB0OworfQorCitub0lubGluZShmb28pOworCit2YXIgcjsKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDAwMDsgKytpKSB7CisgICAgdmFyIHogPSB7ICd5JyA6IGksICdz
JyA6IGkgKyAxIH07CisgICAgei5zID0gMTA7CisgICAgciA9IGZvbyh6KTsKK30KKworaWYgKCFy
KSB7CisgICAgcHJpbnQgKCJFcnJvcjogIiArIHIpOworfQo=
</data>
<flag name="review"
          id="258741"
          type_id="1"
          status="-"
          setter="fpizlo"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234292</attachid>
            <date>2014-07-02 16:11:36 -0700</date>
            <delta_ts>2014-07-02 16:18:05 -0700</delta_ts>
            <desc>Added In to the FTL</desc>
            <filename>0001-Added-In-for-cells-to-the-FTL.patch</filename>
            <type>text/plain</type>
            <size>17959</size>
            <attacher name="Matthew Mirman">mmirman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggYjU1Yzk3ZS4uNmUzZjdkZCAxMDA2NDQKLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxNC0wNy0wMSAgTWF0dGhldyBNaXJtYW4gIDxtbWly
bWFuQGFwcGxlLmNvbT4KKworICAgICAgICBBZGRlZCBhbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUg
ImluIiBjaGVjayB0byBGVEwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzQ1MDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGZ0bC9GVExDYXBhYmlsaXRpZXMuY3BwOiBlbmFibGVkIGNvbXBpbGF0aW9u
IGZvciAiaW4iCisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6IGRpdHRvCisgICAgICAg
ICogZnRsL0ZUTENvbXBpbGUuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmdlbmVyYXRlQ2hlY2tJ
bklDRmFzdFBhdGgpOiBhZGRlZC4KKyAgICAgICAgKEpTQzo6RlRMOjpmaXhGdW5jdGlvbkJhc2Vk
T25TdGFja01hcHMpOiBhZGRlZCBjYXNlIGZvciBDaGVja0luIGRlc2NyaXB0b3JzLgorICAgICAg
ICAqIGZ0bC9GVExJbmxpbmVDYWNoZURlc2NyaXB0b3IuaDoKKyAgICAgICAgKEpTQzo6RlRMOjpD
aGVja0luR2VuZXJhdG9yOjpDaGVja0luR2VuZXJhdG9yKTogYWRkZWQuCisgICAgICAgIChKU0M6
OkZUTDo6Q2hlY2tJbkRlc2NyaXB0b3I6OkNoZWNrSW5EZXNjcmlwdG9yKTogYWRkZWQuCisgICAg
ICAgICogZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHA6IAorICAgICAgICAoSlNDOjpGVEw6OnNp
emVPZkNoZWNrSW4pOiBhZGRlZC4gQ3VycmVudGx5IGxhcmdlciB0aGFuIG5lY2Vzc2FyeS4KKyAg
ICAgICAgKiBmdGwvRlRMSW5saW5lQ2FjaGVTaXplLmg6IGRpdHRvCisgICAgICAgICogZnRsL0ZU
TEludHJpbnNpY1JlcG9zaXRvcnkuaDogQWRkZWQgZnVuY3Rpb24gdHlwZSBmb3Igb3BlcmF0aW9u
SW5HZW5lcmljCisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcDogCisgICAgICAg
IChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVOb2RlKTogYWRkZWQgY2FzZSBmb3Ig
SW4uCisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmNvbXBpbGVJbik6IGFkZGVk
LgorICAgICAgICAqIGZ0bC9GVExTbG93UGF0aENhbGwuY3BwOiBBZGRlZCBhIGNhbGxPcGVyYXRp
b24gZm9yIG9wZXJhdGlvbkluCisgICAgICAgIChKU0M6OkZUTDo6Y2FsbE9wZXJhdGlvbik6IGRp
dHRvCisgICAgICAgICogZnRsL0ZUTFNsb3dQYXRoQ2FsbC5oOiBkaXR0bworICAgICAgICAqIGZ0
bC9GVExTdGF0ZS5oOiBBZGRlZCBhIHZlY3RvciB0byBob2xkIENoZWNrSW4gZGVzY3JpcHRvcnMu
CisgICAgICAgICogaml0L0pJVE9wZXJhdGlvbnMuaDogbWFkZSBvcGVyYXRpb25JbnMgaW50ZXJu
YWwuCisgICAgICAgICogdGVzdHMvc3RyZXNzL2Z0bC1jaGVja2luLmpzOiBBZGRlZC4KKyAgICAg
ICAgKiB0ZXN0cy9zdHJlc3MvZnRsLWNoZWNraW4tdmFyaWFibGUuanM6IEFkZGVkLgorCiAyMDE0
LTA2LTMwICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CiAKICAgICAg
ICAgTWVyZ2UgcjE2OTEyMSBmcm9tIHRydW5rLgpkaWZmIC0tZ2l0IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TENhcGFiaWxpdGllcy5jcHAKaW5kZXggNzdmNTgzZGYuLjEwYjU4MWEgMTAwNjQ0Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTY1LDYgKzE2NSwxMCBAQCBp
bmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgLy8g
Y2FzZSBiZWNhdXNlIGl0IHdvdWxkIHByZXZlbnQgdXMgZnJvbSBjYXRjaGluZyBidWdzIHdoZXJl
IHRoZSBGVEwgYmFja2VuZAogICAgICAgICAvLyBwaXBlbGluZSBmYWlsZWQgdG8gb3B0aW1pemUg
b3V0IGFuIElkZW50aXR5LgogICAgICAgICBicmVhazsKKyAgICBjYXNlIEluOgorICAgICAgICBp
ZiAobm9kZS0+Y2hpbGQyKCkudXNlS2luZCgpID09IENlbGxVc2UpCisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgcmV0dXJuIENhbm5vdENvbXBpbGU7CiAgICAgY2FzZSBQdXRCeUlkRGlyZWN0
OgogICAgIGNhc2UgUHV0QnlJZDoKICAgICAgICAgaWYgKG5vZGUtPmNoaWxkMSgpLnVzZUtpbmQo
KSA9PSBDZWxsVXNlKQpkaWZmIC0tZ2l0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ29t
cGlsZS5jcHAgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcAppbmRleCBj
MWY2OGI2Li43MTYyMDIwIDEwMDY0NAotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExD
b21waWxlLmNwcAorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDb21waWxlLmNwcApA
QCAtMTY2LDYgKzE2Niw2OCBAQCB2b2lkIGdlbmVyYXRlSUNGYXN0UGF0aCgKICAgICB9CiB9CiAK
K3N0YXRpYyB2b2lkIGdlbmVyYXRlQ2hlY2tJbklDRmFzdFBhdGgoCisgICAgU3RhdGUmIHN0YXRl
LCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgR2VuZXJhdGVkRnVuY3Rpb24gZ2VuZXJhdGVkRnVuY3Rp
b24sCisgICAgU3RhY2tNYXBzOjpSZWNvcmRNYXAmIHJlY29yZE1hcCwgQ2hlY2tJbkRlc2NyaXB0
b3ImIGljLCBzaXplX3Qgc2l6ZU9mSUMpCit7CisgICAgVk0mIHZtID0gc3RhdGUuZ3JhcGgubV92
bTsKKworICAgIFN0YWNrTWFwczo6UmVjb3JkTWFwOjppdGVyYXRvciBpdGVyID0gcmVjb3JkTWFw
LmZpbmQoaWMuc3RhY2ttYXBJRCgpKTsKKyAgICBpZiAoaXRlciA9PSByZWNvcmRNYXAuZW5kKCkp
IHsKKyAgICAgICAgLy8gSXQgd2FzIG9wdGltaXplZCBvdXQuCisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgCisgICAgVmVjdG9yPFN0YWNrTWFwczo6UmVjb3JkPiYgcmVjb3JkcyA9IGl0ZXIt
PnZhbHVlOworICAgIAorICAgIFJFTEVBU0VfQVNTRVJUKHJlY29yZHMuc2l6ZSgpID09IGljLm1f
Z2VuZXJhdG9ycy5zaXplKCkpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gcmVjb3Jkcy5zaXpl
KCk7IGktLTspIHsKKyAgICAgICAgU3RhY2tNYXBzOjpSZWNvcmQmIHJlY29yZCA9IHJlY29yZHNb
aV07CisgICAgICAgIGF1dG8gZ2VuZXJhdG9yID0gaWMubV9nZW5lcmF0b3JzW2ldOworCisgICAg
ICAgIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbyA9ICpnZW5lcmF0b3IubV9zdHViOworICAg
ICAgICBhdXRvIGNhbGwgPSBnZW5lcmF0b3IubV9zbG93Q2FsbDsKKyAgICAgICAgYXV0byBzbG93
UGF0aEJlZ2luID0gZ2VuZXJhdG9yLm1fYmVnaW5MYWJlbDsKKworICAgICAgICBDQ2FsbEhlbHBl
cnMgZmFzdFBhdGhKSVQoJnZtLCBjb2RlQmxvY2spOworICAgICAgICAKKyAgICAgICAgYXV0byBq
dW1wID0gZmFzdFBhdGhKSVQucGF0Y2hhYmxlSnVtcCgpOworICAgICAgICBhdXRvIGRvbmUgPSBm
YXN0UGF0aEpJVC5sYWJlbCgpOworCisgICAgICAgIGNoYXIqIHN0YXJ0T2ZJQyA9CisgICAgICAg
ICAgICBiaXR3aXNlX2Nhc3Q8Y2hhcio+KGdlbmVyYXRlZEZ1bmN0aW9uKSArIHJlY29yZC5pbnN0
cnVjdGlvbk9mZnNldDsKKyAgICAgICAgCisgICAgICAgIExpbmtCdWZmZXIgZmFzdFBhdGgodm0s
ICZmYXN0UGF0aEpJVCwgc3RhcnRPZklDLCBzaXplT2ZJQyk7CisgICAgICAgIExpbmtCdWZmZXIm
IHNsb3dQYXRoID0gKnN0YXRlLmZpbmFsaXplci0+c2lkZUNvZGVMaW5rQnVmZmVyOworICAgICAg
ICAvLyBOb3RlOiB3ZSBjb3VsZCBoYW5kbGUgdGhlICFpc1ZhbGlkKCkgY2FzZS4gV2UganVzdCBk
b24ndCBhcHBlYXIgdG8gaGF2ZSBhCisgICAgICAgIC8vIHJlYXNvbiB0byBkbyBzbywgeWV0Lgor
ICAgICAgICBSRUxFQVNFX0FTU0VSVChmYXN0UGF0aC5pc1ZhbGlkKCkpOworCisgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpBc3NlbWJsZXJUeXBlX1Q6OmZpbGxOb3BzKAorICAgICAgICAgICAgc3Rh
cnRPZklDICsgZmFzdFBhdGguc2l6ZSgpLCBzaXplT2ZJQyAtIGZhc3RQYXRoLnNpemUoKSk7Cisg
ICAgICAgIAorICAgICAgICBzdGF0ZS5maW5hbGl6ZXItPnNpZGVDb2RlTGlua0J1ZmZlci0+bGlu
aygKKyAgICAgICAgICAgIGljLm1fc2xvd1BhdGhEb25lW2ldLCBDb2RlTG9jYXRpb25MYWJlbChz
dGFydE9mSUMgKyBzaXplT2ZJQykpOworICAgICAgICAKKyAgICAgICAgQ29kZUxvY2F0aW9uTGFi
ZWwgc2xvd1BhdGhCZWdpbkxvYyA9IHNsb3dQYXRoLmxvY2F0aW9uT2Yoc2xvd1BhdGhCZWdpbik7
CisgICAgICAgIGZhc3RQYXRoLmxpbmsoanVtcCwgc2xvd1BhdGhCZWdpbkxvYyk7CisKKyAgICAg
ICAgQ29kZUxvY2F0aW9uQ2FsbCBjYWxsUmV0dXJuTG9jYXRpb24gPSBmYXN0UGF0aC5sb2NhdGlv
bk9mKGNhbGwpOworCisgICAgICAgIHN0dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvRG9uZSA9IE1h
Y3JvQXNzZW1ibGVyOjpkaWZmZXJlbmNlQmV0d2VlbkNvZGVQdHIoCisgICAgICAgICAgICBjYWxs
UmV0dXJuTG9jYXRpb24sIGZhc3RQYXRoLmxvY2F0aW9uT2YoZG9uZSkpOworCisgICAgICAgIHN0
dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRvSnVtcCA9IE1hY3JvQXNzZW1ibGVyOjpkaWZmZXJlbmNl
QmV0d2VlbkNvZGVQdHIoCisgICAgICAgICAgICBjYWxsUmV0dXJuTG9jYXRpb24sIGZhc3RQYXRo
LmxvY2F0aW9uT2YoanVtcCkpOworICAgICAgICBzdHViSW5mby5jYWxsUmV0dXJuTG9jYXRpb24g
PSBjYWxsUmV0dXJuTG9jYXRpb247CisgICAgICAgIHN0dWJJbmZvLnBhdGNoLmRlbHRhQ2FsbFRv
U2xvd0Nhc2UgPSBNYWNyb0Fzc2VtYmxlcjo6ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKAorICAg
ICAgICAgICAgY2FsbFJldHVybkxvY2F0aW9uLCBzbG93UGF0aEJlZ2luTG9jKTsKKyAgICAgICAg
CisgICAgfQorfQorCisKIHN0YXRpYyBSZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzRm9yKGNvbnN0
IFN0YWNrTWFwczo6UmVjb3JkJiByZWNvcmQpCiB7CiAgICAgaWYgKE9wdGlvbnM6OmFzc3VtZUFs
bFJlZ3NJbkZUTElDQXJlTGl2ZSgpKQpAQCAtMjkwLDcgKzM1Miw3IEBAIHN0YXRpYyB2b2lkIGZp
eEZ1bmN0aW9uQmFzZWRPblN0YWNrTWFwcygKICAgICAgICAgc3RhdGUuZmluYWxpemVyLT5leGl0
VGh1bmtzTGlua0J1ZmZlciA9IGxpbmtCdWZmZXIucmVsZWFzZSgpOwogICAgIH0KIAotICAgIGlm
ICghc3RhdGUuZ2V0QnlJZHMuaXNFbXB0eSgpIHx8ICFzdGF0ZS5wdXRCeUlkcy5pc0VtcHR5KCkp
IHsKKyAgICBpZiAoIXN0YXRlLmdldEJ5SWRzLmlzRW1wdHkoKSB8fCAhc3RhdGUucHV0QnlJZHMu
aXNFbXB0eSgpIHx8ICFzdGF0ZS5jaGVja0lucy5pc0VtcHR5KCkpIHsKICAgICAgICAgQ0NhbGxI
ZWxwZXJzIHNsb3dQYXRoSklUKCZ2bSwgY29kZUJsb2NrKTsKICAgICAgICAgCiAgICAgICAgIEND
YWxsSGVscGVyczo6SnVtcExpc3QgZXhjZXB0aW9uVGFyZ2V0OwpAQCAtMzY5LDYgKzQzMSw0NCBA
QCBzdGF0aWMgdm9pZCBmaXhGdW5jdGlvbkJhc2VkT25TdGFja01hcHMoCiAgICAgICAgICAgICAg
ICAgcHV0QnlJZC5tX2dlbmVyYXRvcnMuYXBwZW5kKGdlbik7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KKworCisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IHN0YXRlLmNoZWNrSW5zLnNpemUo
KTsgaS0tOykgeworICAgICAgICAgICAgQ2hlY2tJbkRlc2NyaXB0b3ImIGNoZWNrSW4gPSBzdGF0
ZS5jaGVja0luc1tpXTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHZlcmJvc2VDb21w
aWxhdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgICAgICAgICBkYXRhTG9nKCJIYW5kbGluZyBjaGVj
a0luIHN0YWNrbWFwICMiLCBjaGVja0luLnN0YWNrbWFwSUQoKSwgIlxuIik7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGl0ZXIgPSByZWNvcmRNYXAuZmluZChjaGVja0luLnN0YWNrbWFwSUQo
KSk7CisgICAgICAgICAgICBpZiAoaXRlciA9PSByZWNvcmRNYXAuZW5kKCkpIHsKKyAgICAgICAg
ICAgICAgICAvLyBJdCB3YXMgb3B0aW1pemVkIG91dC4KKyAgICAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGl0ZXItPnZhbHVlLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICAgICAg
U3RhY2tNYXBzOjpSZWNvcmQmIHJlY29yZCA9IGl0ZXItPnZhbHVlW2ldOworICAgICAgICAgICAg
ICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSB1c2VkUmVnaXN0ZXJzRm9yKHJlY29yZCk7
CisgICAgICAgICAgICAgICAgR1BSUmVnIHJlc3VsdCA9IHJlY29yZC5sb2NhdGlvbnNbMF0uZGly
ZWN0R1BSKCk7CisgICAgICAgICAgICAgICAgR1BSUmVnIG9iaiA9IHJlY29yZC5sb2NhdGlvbnNb
MV0uZGlyZWN0R1BSKCk7CisgICAgICAgICAgICAgICAgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJ
bmZvID0gY29kZUJsb2NrLT5hZGRTdHViSW5mbygpOyAKKyAgICAgICAgICAgICAgICBzdHViSW5m
by0+Y29kZU9yaWdpbiA9IGNoZWNrSW4uY29kZU9yaWdpbigpOworICAgICAgICAgICAgICAgIHN0
dWJJbmZvLT5wYXRjaC5iYXNlR1BSID0gc3RhdGljX2Nhc3Q8aW50OF90PihvYmopOworICAgICAg
ICAgICAgICAgIHN0dWJJbmZvLT5wYXRjaC52YWx1ZUdQUiA9IHN0YXRpY19jYXN0PGludDhfdD4o
cmVzdWx0KTsKKyAgICAgICAgICAgICAgICBzdHViSW5mby0+cGF0Y2gudXNlZFJlZ2lzdGVycyA9
IHVzZWRSZWdpc3RlcnM7CisgICAgICAgICAgICAgICAgc3R1YkluZm8tPnBhdGNoLnNwaWxsTW9k
ZSA9IE5lZWRUb1NwaWxsOworCisgICAgICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVs
IGJlZ2luID0gc2xvd1BhdGhKSVQubGFiZWwoKTsKKworICAgICAgICAgICAgICAgIE1hY3JvQXNz
ZW1ibGVyOjpDYWxsIHNsb3dDYWxsID0gY2FsbE9wZXJhdGlvbigKKyAgICAgICAgICAgICAgICAg
ICAgc3RhdGUsIHVzZWRSZWdpc3RlcnMsIHNsb3dQYXRoSklULCBjaGVja0luLmNvZGVPcmlnaW4o
KSwgJmV4Y2VwdGlvblRhcmdldCwKKyAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uSW5PcHRp
bWl6ZSwgcmVzdWx0LCBzdHViSW5mbywgb2JqLCBjaGVja0luLm1faWQpOworCisgICAgICAgICAg
ICAgICAgY2hlY2tJbi5tX3Nsb3dQYXRoRG9uZS5hcHBlbmQoc2xvd1BhdGhKSVQuanVtcCgpKTsK
KyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBjaGVja0luLm1fZ2VuZXJhdG9ycy5h
cHBlbmQoQ2hlY2tJbkdlbmVyYXRvcihzdHViSW5mbywgc2xvd0NhbGwsIGJlZ2luKSk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKwogICAgICAgICAKICAgICAgICAgZXhjZXB0aW9uVGFyZ2V0
LmxpbmsoJnNsb3dQYXRoSklUKTsKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6Okp1bXAgZXhjZXB0
aW9uSnVtcCA9IHNsb3dQYXRoSklULmp1bXAoKTsKQEAgLTM4OCw2ICs0ODgsMTIgQEAgc3RhdGlj
IHZvaWQgZml4RnVuY3Rpb25CYXNlZE9uU3RhY2tNYXBzKAogICAgICAgICAgICAgICAgIHN0YXRl
LCBjb2RlQmxvY2ssIGdlbmVyYXRlZEZ1bmN0aW9uLCByZWNvcmRNYXAsIHN0YXRlLnB1dEJ5SWRz
W2ldLAogICAgICAgICAgICAgICAgIHNpemVPZlB1dEJ5SWQoKSk7CiAgICAgICAgIH0KKworICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSBzdGF0ZS5jaGVja0lucy5zaXplKCk7IGktLTspIHsKKyAg
ICAgICAgICAgIGdlbmVyYXRlQ2hlY2tJbklDRmFzdFBhdGgoCisgICAgICAgICAgICAgICAgc3Rh
dGUsIGNvZGVCbG9jaywgZ2VuZXJhdGVkRnVuY3Rpb24sIHJlY29yZE1hcCwgc3RhdGUuY2hlY2tJ
bnNbaV0sCisgICAgICAgICAgICAgICAgc2l6ZU9mQ2hlY2tJbigpKTsgCisgICAgICAgIH0gCiAg
ICAgfQogICAgIAogICAgIC8vIEhhbmRsaW5nIEpTIGNhbGxzIGlzIHdlaXJkOiB3ZSBuZWVkIHRv
IGVuc3VyZSB0aGF0IHdlIHNvcnQgdGhlbSBieSB0aGUgUEMgaW4gTExWTQpkaWZmIC0tZ2l0IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVEZXNjcmlwdG9yLmggU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZURlc2NyaXB0b3IuaAppbmRleCBkZjBk
NzExLi44MmI2MjM4IDEwMDY0NAotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxp
bmVDYWNoZURlc2NyaXB0b3IuaAorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxp
bmVDYWNoZURlc2NyaXB0b3IuaApAQCAtOTQsNiArOTQsMzUgQEAgcHJpdmF0ZToKICAgICBQdXRL
aW5kIG1fcHV0S2luZDsKIH07CiAKK3N0cnVjdCBDaGVja0luR2VuZXJhdG9yIHsKKyAgICBTdHJ1
Y3R1cmVTdHViSW5mbyogbV9zdHViOworICAgIE1hY3JvQXNzZW1ibGVyOjpDYWxsIG1fc2xvd0Nh
bGw7CisgICAgTWFjcm9Bc3NlbWJsZXI6OkxhYmVsIG1fYmVnaW5MYWJlbDsKKworICAgIENoZWNr
SW5HZW5lcmF0b3IoU3RydWN0dXJlU3R1YkluZm8qIHN0dWIsIE1hY3JvQXNzZW1ibGVyOjpDYWxs
IHNsb3dDYWxsLCBNYWNyb0Fzc2VtYmxlcjo6TGFiZWwgYmVnaW5MYWJlbCkKKyAgICAgICAgOiBt
X3N0dWIoc3R1YikgCisgICAgICAgICwgbV9zbG93Q2FsbChzbG93Q2FsbCkKKyAgICAgICAgLCBt
X2JlZ2luTGFiZWwoYmVnaW5MYWJlbCkKKyAgICB7CisgICAgfQorfTsKKworY2xhc3MgQ2hlY2tJ
bkRlc2NyaXB0b3IgOiBwdWJsaWMgSW5saW5lQ2FjaGVEZXNjcmlwdG9yIHsKK3B1YmxpYzoKKyAg
ICBDaGVja0luRGVzY3JpcHRvcigpIHsgfQorICAgIAorICAgIENoZWNrSW5EZXNjcmlwdG9yKHVu
c2lnbmVkIHN0YWNrbWFwSUQsIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgY29uc3QgU3RyaW5nSW1w
bCogaWQpCisgICAgICAgIDogSW5saW5lQ2FjaGVEZXNjcmlwdG9yKHN0YWNrbWFwSUQsIGNvZGVP
cmlnaW4sIG51bGxwdHIpCisgICAgICAgICwgbV9pZChpZCkKKyAgICB7CisgICAgfQorCisgICAg
CisgICAgY29uc3QgU3RyaW5nSW1wbCogbV9pZDsKKyAgICBWZWN0b3I8Q2hlY2tJbkdlbmVyYXRv
cj4gbV9nZW5lcmF0b3JzOworfTsKKworCiB9IH0gLy8gbmFtZXNwYWNlIEpTQzo6RlRMCiAKICNl
bmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKZGlmZiAtLWdpdCBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJ
bmxpbmVDYWNoZVNpemUuY3BwCmluZGV4IDZkNDQ0MTQuLmY5Y2ZjZTQgMTAwNjQ0Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5jcHAKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMSW5saW5lQ2FjaGVTaXplLmNwcApAQCAtNjEsNiArNjEsMTYg
QEAgc2l6ZV90IHNpemVPZlB1dEJ5SWQoKQogI2VuZGlmCiB9CiAKK3NpemVfdCBzaXplT2ZDaGVj
a0luKCkKK3sKKyNpZiBDUFUoQVJNNjQpCisgICAgcmV0dXJuIDQ7CisjZWxzZQorICAgIHJldHVy
biA1OyAKKyNlbmRpZgorfQorCisKIHNpemVfdCBzaXplT2ZDYWxsKCkKIHsKICNpZiBDUFUoQVJN
NjQpCmRpZmYgLS1naXQgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbmxpbmVDYWNoZVNp
emUuaCBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGluZUNhY2hlU2l6ZS5oCmluZGV4
IDdjN2MxODkuLmRiNzY0MjQgMTAwNjQ0Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TElubGluZUNhY2hlU2l6ZS5oCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTElubGlu
ZUNhY2hlU2l6ZS5oCkBAIC0zMyw2ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
RlRMIHsKIHNpemVfdCBzaXplT2ZHZXRCeUlkKCk7CiBzaXplX3Qgc2l6ZU9mUHV0QnlJZCgpOwog
c2l6ZV90IHNpemVPZkNhbGwoKTsKK3NpemVfdCBzaXplT2ZDaGVja0luKCk7CiAKIH0gfSAvLyBu
YW1lc3BhY2UgSlNDOjpGVEwKIApkaWZmIC0tZ2l0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMSW50cmluc2ljUmVwb3NpdG9yeS5oIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMSW50
cmluc2ljUmVwb3NpdG9yeS5oCmluZGV4IDczMGVmYjkuLjhjMjAxOTMgMTAwNjQ0Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEludHJpbnNpY1JlcG9zaXRvcnkuaAorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Z0bC9GVExJbnRyaW5zaWNSZXBvc2l0b3J5LmgKQEAgLTYzLDYgKzYz
LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBGVEwgewogICAgIG1hY3JvKEpfSklUT3Bl
cmF0aW9uX0UsIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyKSkgXAogICAgIG1hY3JvKEpfSklU
T3BlcmF0aW9uX0VBLCBmdW5jdGlvblR5cGUoaW50NjQsIGludFB0ciwgaW50UHRyKSkgXAogICAg
IG1hY3JvKEpfSklUT3BlcmF0aW9uX0VBWiwgZnVuY3Rpb25UeXBlKGludDY0LCBpbnRQdHIsIGlu
dFB0ciwgaW50MzIpKSBcCisgICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRUNKLCBmdW5jdGlvblR5
cGUoaW50NjQsIGludFB0ciwgaW50UHRyLCBpbnQ2NCkpIFwKICAgICBtYWNybyhKX0pJVE9wZXJh
dGlvbl9FREEsIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50UHRyLCBkb3VibGVUeXBlLCBpbnRQdHIp
KSBcCiAgICAgbWFjcm8oSl9KSVRPcGVyYXRpb25fRUosIGZ1bmN0aW9uVHlwZShpbnQ2NCwgaW50
UHRyLCBpbnQ2NCkpIFwKICAgICBtYWNybyhKX0pJVE9wZXJhdGlvbl9FSkEsIGZ1bmN0aW9uVHlw
ZShpbnQ2NCwgaW50UHRyLCBpbnQ2NCwgaW50UHRyKSkgXApkaWZmIC0tZ2l0IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCmluZGV4IDI0MzlmYTMuLmNjMDVhYjAgMTAwNjQ0
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKQEAgLTQ3OCw2
ICs0NzgsOSBAQCBwcml2YXRlOgogICAgICAgICAgICAgY29tcGlsZUdldEJ5SWQoKTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFB1dEJ5SWREaXJlY3Q6CisgICAgICAgIGNhc2Ug
SW46CisgICAgICAgICAgICBjb21waWxlSW4oKTsKKyAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIFB1dEJ5SWQ6CiAgICAgICAgICAgICBjb21waWxlUHV0QnlJZCgpOwogICAgICAgICAg
ICAgYnJlYWs7CkBAIC0zOTMwLDYgKzM5MzMsMzMgQEAgcHJpdmF0ZToKICAgICAgICAgc2V0Qm9v
bGVhbihtX291dC5ub3ROdWxsKHBvaW50ZXJSZXN1bHQpKTsKICAgICB9CiAgICAgCisgICAgdm9p
ZCBjb21waWxlSW4oKQorICAgIHsKKyAgICAgICAgRWRnZSBiYXNlID0gbV9ub2RlLT5jaGlsZDIo
KTsKKyAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxsKGJhc2UpOworICAgICAgICBzcGVjdWxh
dGVPYmplY3QoYmFzZSwgY2VsbCk7CisgICAgICAgIGlmIChKU1N0cmluZyogc3RyaW5nID0gbV9u
b2RlLT5jaGlsZDEoKS0+ZHluYW1pY0Nhc3RDb25zdGFudDxKU1N0cmluZyo+KCkpIHsKKyAgICAg
ICAgICAgIGlmIChzdHJpbmctPnRyeUdldFZhbHVlSW1wbCgpICYmIHN0cmluZy0+dHJ5R2V0VmFs
dWVJbXBsKCktPmlzQXRvbWljKCkpIHsKKworICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZ0lt
cGwqIHN0ciA9IHN0cmluZy0+dHJ5R2V0VmFsdWVJbXBsKCk7CisgICAgICAgICAgICAgICAgdW5z
aWduZWQgc3RhY2ttYXBJRCA9IG1fc3RhY2ttYXBJRHMrKzsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgICAgIExWYWx1ZSBjYWxsID0gbV9vdXQuY2FsbCgKKyAgICAgICAgICAgICAgICAgICAg
bV9vdXQucGF0Y2hwb2ludEludDY0SW50cmluc2ljKCksCisgICAgICAgICAgICAgICAgICAgIG1f
b3V0LmNvbnN0SW50NjQoc3RhY2ttYXBJRCksIG1fb3V0LmNvbnN0SW50MzIoc2l6ZU9mQ2hlY2tJ
bigpKSwKKyAgICAgICAgICAgICAgICAgICAgY29uc3ROdWxsKG1fb3V0LnJlZjgpLCBtX291dC5j
b25zdEludDMyKDEpLCBjZWxsKTsKKworICAgICAgICAgICAgICAgIHNldEluc3RydWN0aW9uQ2Fs
bGluZ0NvbnZlbnRpb24oY2FsbCwgTExWTUFueVJlZ0NhbGxDb252KTsKKworICAgICAgICAgICAg
ICAgIG1fZnRsU3RhdGUuY2hlY2tJbnMuYXBwZW5kKENoZWNrSW5EZXNjcmlwdG9yKHN0YWNrbWFw
SUQsIG1fbm9kZS0+b3JpZ2luLnNlbWFudGljLCBzdHIpKTsKKyAgICAgICAgICAgICAgICBzZXRK
U1ZhbHVlKGNhbGwpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfSAKKworICAgICAgICBzZXRKU1ZhbHVlKHZtQ2FsbChtX291dC5vcGVyYXRpb24ob3Bl
cmF0aW9uR2VuZXJpY0luKSwgbV9jYWxsRnJhbWUsIGNlbGwsIGxvd0pTVmFsdWUobV9ub2RlLT5j
aGlsZDEoKSkpKTsKKyAgICB9CisKICAgICB2b2lkIGNvbXBpbGVDaGVja0hhc0luc3RhbmNlKCkK
ICAgICB7CiAgICAgICAgIHNwZWN1bGF0ZSgKZGlmZiAtLWdpdCBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExT
bG93UGF0aENhbGwuY3BwCmluZGV4IGU0OGY4NjIuLjFmZDhjODMgMTAwNjQ0Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5jcHAKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMU2xvd1BhdGhDYWxsLmNwcApAQCAtMTc2LDYgKzE3NiwxOSBAQCB2b2lk
IHN0b3JlQ29kZU9yaWdpbihTdGF0ZSYgc3RhdGUsIENDYWxsSGVscGVycyYgaml0LCBDb2RlT3Jp
Z2luIGNvZGVPcmlnaW4pCiBNYWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKAogICAg
IFN0YXRlJiBzdGF0ZSwgY29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIENDYWxsSGVs
cGVycyYgaml0LAogICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiwgTWFjcm9Bc3NlbWJsZXI6Okp1
bXBMaXN0KiBleGNlcHRpb25UYXJnZXQsCisgICAgSl9KSVRPcGVyYXRpb25fRVNzaUNJIG9wZXJh
dGlvbiwgR1BSUmVnIHJlc3VsdCwgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLAorICAgIEdQ
UlJlZyBvYmplY3QsIGNvbnN0IFN0cmluZ0ltcGwqIHVpZCkKK3sKKyAgICBzdG9yZUNvZGVPcmln
aW4oc3RhdGUsIGppdCwgY29kZU9yaWdpbik7CisgICAgQ2FsbENvbnRleHQgY29udGV4dChzdGF0
ZSwgdXNlZFJlZ2lzdGVycywgaml0LCA0LCByZXN1bHQpOworICAgIGppdC5zZXR1cEFyZ3VtZW50
c1dpdGhFeGVjU3RhdGUoCisgICAgICAgIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cihzdHVi
SW5mbyksIG9iamVjdCwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHVpZCkpOworICAgIHJl
dHVybiBjb250ZXh0Lm1ha2VDYWxsKGJpdHdpc2VfY2FzdDx2b2lkKj4ob3BlcmF0aW9uKSwgZXhj
ZXB0aW9uVGFyZ2V0KTsKK30KKworTWFjcm9Bc3NlbWJsZXI6OkNhbGwgY2FsbE9wZXJhdGlvbigK
KyAgICBTdGF0ZSYgc3RhdGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBDQ2Fs
bEhlbHBlcnMmIGppdCwKKyAgICBDb2RlT3JpZ2luIGNvZGVPcmlnaW4sIE1hY3JvQXNzZW1ibGVy
OjpKdW1wTGlzdCogZXhjZXB0aW9uVGFyZ2V0LAogICAgIEpfSklUT3BlcmF0aW9uX0VTc2lKSSBv
cGVyYXRpb24sIEdQUlJlZyByZXN1bHQsIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbywKICAg
ICBHUFJSZWcgb2JqZWN0LCBTdHJpbmdJbXBsKiB1aWQpCiB7CmRpZmYgLS1naXQgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExTbG93UGF0aENhbGwuaCBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTFNsb3dQYXRoQ2FsbC5oCmluZGV4IDY4ZTA5ZTYuLjZlNGQ1ZjYgMTAwNjQ0Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5oCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZnRsL0ZUTFNsb3dQYXRoQ2FsbC5oCkBAIC01OSw2ICs1OSwxMCBAQCB2b2lk
IHN0b3JlQ29kZU9yaWdpbihTdGF0ZSYsIENDYWxsSGVscGVycyYsIENvZGVPcmlnaW4pOwogCiBN
YWNyb0Fzc2VtYmxlcjo6Q2FsbCBjYWxsT3BlcmF0aW9uKAogICAgIFN0YXRlJiwgY29uc3QgUmVn
aXN0ZXJTZXQmLCBDQ2FsbEhlbHBlcnMmLCBDb2RlT3JpZ2luLCBDQ2FsbEhlbHBlcnM6Okp1bXBM
aXN0KiwKKyAgICBKX0pJVE9wZXJhdGlvbl9FU3NpQ0ksIEdQUlJlZywgU3RydWN0dXJlU3R1Yklu
Zm8qLCBHUFJSZWcsCisgICAgY29uc3QgU3RyaW5nSW1wbCopOworTWFjcm9Bc3NlbWJsZXI6OkNh
bGwgY2FsbE9wZXJhdGlvbigKKyAgICBTdGF0ZSYsIGNvbnN0IFJlZ2lzdGVyU2V0JiwgQ0NhbGxI
ZWxwZXJzJiwgQ29kZU9yaWdpbiwgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCosCiAgICAgSl9KSVRP
cGVyYXRpb25fRVNzaUpJLCBHUFJSZWcgcmVzdWx0LCBTdHJ1Y3R1cmVTdHViSW5mbyosIEdQUlJl
ZyBvYmplY3QsCiAgICAgU3RyaW5nSW1wbCogdWlkKTsKIE1hY3JvQXNzZW1ibGVyOjpDYWxsIGNh
bGxPcGVyYXRpb24oCmRpZmYgLS1naXQgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0
ZS5oIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3RhdGUuaAppbmRleCA2ZTFhMDZjLi5m
MjFjOTUyIDEwMDY0NAotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExTdGF0ZS5oCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTFN0YXRlLmgKQEAgLTczLDYgKzczLDcgQEAg
cHVibGljOgogICAgIHVuc2lnbmVkIGNhcHR1cmVkU3RhY2ttYXBJRDsKICAgICBTZWdtZW50ZWRW
ZWN0b3I8R2V0QnlJZERlc2NyaXB0b3I+IGdldEJ5SWRzOwogICAgIFNlZ21lbnRlZFZlY3RvcjxQ
dXRCeUlkRGVzY3JpcHRvcj4gcHV0QnlJZHM7CisgICAgU2VnbWVudGVkVmVjdG9yPENoZWNrSW5E
ZXNjcmlwdG9yPiBjaGVja0luczsKICAgICBWZWN0b3I8SlNDYWxsPiBqc0NhbGxzOwogICAgIFZl
Y3RvcjxDU3RyaW5nPiBjb2RlU2VjdGlvbk5hbWVzOwogICAgIFZlY3RvcjxDU3RyaW5nPiBkYXRh
U2VjdGlvbk5hbWVzOwpkaWZmIC0tZ2l0IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bl
cmF0aW9ucy5oIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5oCmluZGV4
IDExNmFjMTIuLjFhZDRiZDIgMTAwNjQ0Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuaAorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGVyYXRpb25z
LmgKQEAgLTIwMSw5ICsyMDEsOSBAQCBpbnQzMl90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uQ29u
c3RydWN0QXJpdHlDaGVjayhFeGVjU3RhdGUqKSBXVEZfSU5URVJOQUw7CiBFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWQoRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1
YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgU3RyaW5nSW1wbCopIFdURl9JTlRFUk5BTDsKIEVuY29k
ZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uR2V0QnlJZEJ1aWxkTGlzdChFeGVjU3Rh
dGUqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBTdHJpbmdJbXBsKikgV1RG
X0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlk
T3B0aW1pemUoRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwg
U3RyaW5nSW1wbCopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uSW5PcHRpbWl6ZShFeGVjU3RhdGUqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEpTQ2Vs
bCosIFN0cmluZ0ltcGwqKTsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
SW4oRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1YkluZm8qLCBKU0NlbGwqLCBTdHJpbmdJbXBsKik7
Ci1FbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdlbmVyaWNJbihFeGVjU3Rh
dGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSk7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkluT3B0aW1pemUoRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1YkluZm8qLCBK
U0NlbGwqLCBTdHJpbmdJbXBsKikgV1RGX0lOVEVSTkFMOworRW5jb2RlZEpTVmFsdWUgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25JbihFeGVjU3RhdGUqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEpTQ2Vs
bCosIFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7CitFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbkdlbmVyaWNJbihFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1
ZSkgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25D
YWxsR2V0dGVyKEV4ZWNTdGF0ZSosIEpTQ2VsbCosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKIHZv
aWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25QdXRCeUlkU3RyaWN0KEV4ZWNTdGF0ZSosIFN0cnVj
dHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1
ZSBlbmNvZGVkQmFzZSwgU3RyaW5nSW1wbCopIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09QRVJB
VElPTiBvcGVyYXRpb25QdXRCeUlkTm9uU3RyaWN0KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJ
bmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgU3RyaW5nSW1wbCopIFdURl9JTlRFUk5BTDsKZGlmZiAtLWdpdCBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1jaGVja2luLXZhcmlhYmxlLmpzIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZnRsLWNoZWNraW4tdmFyaWFibGUuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc1ZjZiNAotLS0gL2Rldi9udWxsCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Z0bC1jaGVja2luLXZhcmlhYmxlLmpzCkBA
IC0wLDAgKzEsMTcgQEAKK2Z1bmN0aW9uIGZvbyhsLHgpeworICAgIHZhciB0ID0gbCBpbiB4OyAK
KyAgICByZXR1cm4gdDsKK30KKworbm9JbmxpbmUoZm9vKTsKKwordmFyIHI7Citmb3IgKHZhciBp
ID0gMDsgaSA8IDEwMDAwMDA7ICsraSkgeworICAgIHZhciB6ID0geyAneScgOiBpLCAncycgOiBp
ICsgMSB9OworICAgIHoucyA9IDEwOworICAgIHIgPSBmb28oInMiLHopOworfQorCitpZiAoIXIp
IHsKKyAgICBwcmludCAoIkVycm9yOiAiICsgcik7Cit9CmRpZmYgLS1naXQgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9mdGwtY2hlY2tpbi5qcyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvdGVzdHMvc3RyZXNzL2Z0bC1jaGVja2luLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjhjYmRlOGIKLS0tIC9kZXYvbnVsbAorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9mdGwtY2hlY2tpbi5qcwpAQCAtMCwwICsxLDE3IEBACitmdW5jdGlvbiBm
b28oeCl7CisgICAgdmFyIHQgPSAicyIgaW4geDsgCisgICAgcmV0dXJuIHQ7Cit9CisKK25vSW5s
aW5lKGZvbyk7CisKK3ZhciByOworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDAwOyArK2kpIHsK
KyAgICB2YXIgeiA9IHsgJ3knIDogaSwgJ3MnIDogaSArIDEgfTsKKyAgICB6LnMgPSAxMDsKKyAg
ICByID0gZm9vKHopOworfQorCitpZiAoIXIpIHsKKyAgICBwcmludCAoIkVycm9yOiAiICsgcik7
Cit9Cg==
</data>
<flag name="review"
          id="258832"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>