<?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>31793</bug_id>
          
          <creation_ts>2009-11-22 20:16:49 -0800</creation_ts>
          <short_desc>Move GOwnPtr* from wtf to wtf/gtk</short_desc>
          <delta_ts>2009-11-27 22:32:29 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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="Laszlo Gombos">laszlo.gombos</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>hamaji</cc>
    
    <cc>jmalonzo</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zecke</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>165783</commentid>
    <comment_count>0</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-11-22 20:16:49 -0800</bug_when>
    <thetext>Since there is already a wtf/gtk directory and GOwnPtr* is only used by WebKitGTK+ port, seems like a logical step to move GOwnPtr* from wtf to wtf/gtk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165784</commentid>
    <comment_count>1</comment_count>
      <attachid>43692</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-11-22 20:24:27 -0800</bug_when>
    <thetext>Created attachment 43692
proposed patch

This patch has an impact at least on the following ports: gtk, wx, chromium. I&apos;m happy to break out the patch into individual ports. 

I have not had a chance to test if this change does not break any of the ports mentioned above - particularly the gtk port. Even though the changes are trivial I think at very least WebKitGTK+ needs to be be built with the patch before review+/landing this change. If someone can help with that that would be great, otherwise I will try to find some time to do so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165785</commentid>
    <comment_count>2</comment_count>
      <attachid>43693</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-11-22 20:27:41 -0800</bug_when>
    <thetext>Created attachment 43693
fix indentation in JavaScriptCore/GNUmakefile.am</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>165790</commentid>
    <comment_count>3</comment_count>
      <attachid>43693</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-11-22 21:35:29 -0800</bug_when>
    <thetext>Comment on attachment 43693
fix indentation in JavaScriptCore/GNUmakefile.am

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166814</commentid>
    <comment_count>4</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-11-26 20:56:17 -0800</bug_when>
    <thetext>Landed as http://trac.webkit.org/changeset/51423.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166934</commentid>
    <comment_count>5</comment_count>
      <attachid>43966</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-11-27 12:21:25 -0800</bug_when>
    <thetext>Created attachment 43966
Sorry, this was a wrong patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166935</commentid>
    <comment_count>6</comment_count>
      <attachid>43967</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-11-27 12:23:24 -0800</bug_when>
    <thetext>Created attachment 43967
chromium build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166936</commentid>
    <comment_count>7</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-11-27 12:24:45 -0800</bug_when>
    <thetext>This change makes chromium build fail. We need to ignore GOwnPtr. This patch
ignores gtk directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>166977</commentid>
    <comment_count>8</comment_count>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2009-11-27 16:20:47 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; This change makes chromium build fail. We need to ignore GOwnPtr. This patch
&gt; ignores gtk directory.

Thanks. I do not have review+ bit, but as this is a build fix and related to my change I think it is best to commit it (as it looks good to me).

Committed as http://trac.webkit.org/changeset/51452.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>167003</commentid>
    <comment_count>9</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-11-27 22:32:29 -0800</bug_when>
    <thetext>Thanks for checking and landing my patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43692</attachid>
            <date>2009-11-22 20:24:27 -0800</date>
            <delta_ts>2009-11-22 20:27:41 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>31793.patch</filename>
            <type>text/plain</type>
            <size>20251</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDUxMzAy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDktMTEt
MjIgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgR093blB0ciogZnJv
bSB3dGYgdG8gd3RmL2d0aworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzE3OTMKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorCiAyMDA5LTExLTA5
ICBQcmlpdCBMYWVzICA8cGxhZXNAcGxhZXMub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9s
aXZlciBIdW50LgpJbmRleDogR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gR05VbWFrZWZp
bGUuYW0JKHJldmlzaW9uIDUxMzAxKQorKysgR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkK
QEAgLTE1Nyw2ICsxNTcsNyBAQCBqYXZhc2NyaXB0Y29yZV9jcHBmbGFncyArPSBcCiAJLUkkKHNy
Y2RpcikvSmF2YVNjcmlwdENvcmUvRm9yd2FyZGluZ0hlYWRlcnMgXAogCS1JJChzcmNkaXIpL0ph
dmFTY3JpcHRDb3JlL3BhcnNlciBcCiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwK
KwktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS93dGYvZ3RrIFwKIAktSSQodG9wX2J1aWxkZGly
KS9EZXJpdmVkU291cmNlcwogCiBub2Rpc3RfRVhUUkFfbGliSmF2YVNjcmlwdENvcmVfbGFfU09V
UkNFUyA9IFwKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBK
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDUxMzAyKQorKysgSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMTEtMjIg
IExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgR093blB0ciogZnJvbSB3
dGYgdG8gd3RmL2d0aworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzE3OTMKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEphdmFT
Y3JpcHRDb3JlLmd5cC9KYXZhU2NyaXB0Q29yZS5neXA6CisgICAgICAgICogSmF2YVNjcmlwdENv
cmUuZ3lwaToKKyAgICAgICAgKiB3c2NyaXB0OgorICAgICAgICAqIHd0Zi9HT3duUHRyLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiB3dGYvR093blB0ci5oOiBSZW1vdmVkLgorICAgICAgICAqIHd0
Zi9UaHJlYWRpbmcuaDoKKyAgICAgICAgKiB3dGYvZ3RrL0dPd25QdHIuY3BwOiBDb3BpZWQgZnJv
bSBKYXZhU2NyaXB0Q29yZS93dGYvR093blB0ci5jcHAuCisgICAgICAgICogd3RmL2d0ay9HT3du
UHRyLmg6IENvcGllZCBmcm9tIEphdmFTY3JpcHRDb3JlL3d0Zi9HT3duUHRyLmguCisgICAgICAg
ICogd3RmL3VuaWNvZGUvZ2xpYi9Vbmljb2RlR0xpYi5oOgorCiAyMDA5LTExLTIyICBMYXN6bG8g
R29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KIApJbmRleDogSmF2YVNjcmlwdENv
cmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvR05VbWFrZWZp
bGUuYW0JKHJldmlzaW9uIDUxMzAxKQorKysgSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0J
KHdvcmtpbmcgY29weSkKQEAgLTIzNiw4ICsyMzYsNiBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2Vz
ICs9IFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvRGVxdWUuaCBcCiAJSmF2YVNjcmlwdENvcmUvd3Rm
L0Rpc2FsbG93Q1R5cGUuaCBcCiAJSmF2YVNjcmlwdENvcmUvd3RmL0ZvcndhcmQuaCBcCi0JSmF2
YVNjcmlwdENvcmUvd3RmL0dPd25QdHIuY3BwIFwKLQlKYXZhU2NyaXB0Q29yZS93dGYvR093blB0
ci5oIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvR2V0UHRyLmggXAogCUphdmFTY3JpcHRDb3JlL3d0
Zi9IYXNoQ291bnRlZFNldC5oIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvSGFzaEZ1bmN0aW9ucy5o
IFwKQEAgLTI4OCw2ICsyODYsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlKYXZh
U2NyaXB0Q29yZS93dGYvVW51c2VkUGFyYW0uaCBcCiAJSmF2YVNjcmlwdENvcmUvd3RmL1ZlY3Rv
ci5oIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvVmVjdG9yVHJhaXRzLmggXAorICAgICAgICBKYXZh
U2NyaXB0Q29yZS93dGYvZ3RrL0dPd25QdHIuY3BwIFwKKyAgICAgICAgSmF2YVNjcmlwdENvcmUv
d3RmL2d0ay9HT3duUHRyLmggXAogCUphdmFTY3JpcHRDb3JlL3d0Zi9ndGsvTWFpblRocmVhZEd0
ay5jcHAgXAogCUphdmFTY3JpcHRDb3JlL3d0Zi9ndGsvVGhyZWFkaW5nR3RrLmNwcCBcCiAJSmF2
YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvQ29sbGF0b3IuaCBcCkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLmd5cGkJKHJldmlzaW9uIDUxMzAxKQorKysgSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMzcwLDggKzM3MCw4IEBACiAgICAgICAg
ICAgICAnd3RmL0Zhc3RNYWxsb2MuaCcsCiAgICAgICAgICAgICAnd3RmL0ZvcndhcmQuaCcsCiAg
ICAgICAgICAgICAnd3RmL0dldFB0ci5oJywKLSAgICAgICAgICAgICd3dGYvR093blB0ci5jcHAn
LAotICAgICAgICAgICAgJ3d0Zi9HT3duUHRyLmgnLAorICAgICAgICAgICAgJ3d0Zi9ndGsvR093
blB0ci5jcHAnLAorICAgICAgICAgICAgJ3d0Zi9ndGsvR093blB0ci5oJywKICAgICAgICAgICAg
ICd3dGYvZ3RrL01haW5UaHJlYWRHdGsuY3BwJywKICAgICAgICAgICAgICd3dGYvZ3RrL1RocmVh
ZGluZ0d0ay5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9IYXNoQ291bnRlZFNldC5oJywKSW5kZXg6
IEphdmFTY3JpcHRDb3JlL3dzY3JpcHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3Nj
cmlwdAkocmV2aXNpb24gNTEzMDEpCisrKyBKYXZhU2NyaXB0Q29yZS93c2NyaXB0CSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIGltcG9ydCBjb21tYW5kcwogCiBmcm9tIHNldHRpbmdz
IGltcG9ydCAqCiAKLWpzY29yZV9leGNsdWRlcyA9IFsnanNjLmNwcCcsICd1Y3B0YWJsZS5jcHAn
LCAnR093blB0ci5jcHAnXQoranNjb3JlX2V4Y2x1ZGVzID0gWydqc2MuY3BwJywgJ3VjcHRhYmxl
LmNwcCddCiBqc2NvcmVfZXhjbHVkZXMuZXh0ZW5kKGdldF9leGNsdWRlcyhqc2NvcmVfZGlyLCBb
JypDRi5jcHAnLCAnKlN5bWJpYW4uY3BwJ10pKQogCiBzb3VyY2VzID0gW10KSW5kZXg6IEphdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cC9KYXZhU2NyaXB0Q29yZS5neXAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwL0phdmFTY3JpcHRDb3JlLmd5
cAkocmV2aXNpb24gNTEzMDEpCisrKyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXAv
SmF2YVNjcmlwdENvcmUuZ3lwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsNyArMTE0LDcgQEAKICAg
ICAgICAgIyAuLi4gVGhlbiBpbmNsdWRlIHdoYXQgd2Ugd2FudC4KICAgICAgICAgWydpbmNsdWRl
JywgJy4uL3d0Zi8nXSwKICAgICAgICAgIyBHTGliL0dUSywgZXZlbiB0aG91Z2ggaXRzIG5hbWUg
ZG9lc24ndCByZWFsbHkgaW5kaWNhdGUuCi0gICAgICAgIFsnZXhjbHVkZScsICcvKEdPd25QdHJ8
Z2xpYi8uKilcXC4oY3BwfGgpJCddLAorICAgICAgICBbJ2V4Y2x1ZGUnLCAnLyhnbGliLy4qKVxc
LihjcHB8aCkkJ10sCiAgICAgICAgIFsnZXhjbHVkZScsICcoRGVmYXVsdHxHdGt8TWFjfE5vbmV8
UXR8V2lufFd4KVxcLihjcHB8bW0pJCddLAogICAgICAgICBbJ2V4Y2x1ZGUnLCAnd3RmL0N1cnJl
bnRUaW1lXFwuY3BwJCddLAogICAgICAgICBbJ2V4Y2x1ZGUnLCAnd3RmL1RDLipcXC4oY3BwfGgp
JCddLApJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL0dPd25QdHIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IEphdmFTY3JpcHRDb3JlL3d0Zi9HT3duUHRyLmNwcAkocmV2aXNpb24gNTEzMDEpCisrKyBKYXZh
U2NyaXB0Q29yZS93dGYvR093blB0ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNjcgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgotICoKLSAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
Ci0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
LSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIx
MTAtMTMwMSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkdPd25Q
dHIuaCIKLQotI2luY2x1ZGUgPGdsaWIuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRl
IDw+IHZvaWQgZnJlZU93bmVkR1B0cjxHRXJyb3I+KEdFcnJvciogcHRyKQotewotICAgIGlmIChw
dHIpCi0gICAgICAgIGdfZXJyb3JfZnJlZShwdHIpOwotfQotCi10ZW1wbGF0ZSA8PiB2b2lkIGZy
ZWVPd25lZEdQdHI8R0xpc3Q+KEdMaXN0KiBwdHIpCi17Ci0gICAgZ19saXN0X2ZyZWUocHRyKTsK
LX0KLQotdGVtcGxhdGUgPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdDb25kPihHQ29uZCogcHRyKQot
ewotICAgIGlmIChwdHIpCi0gICAgICAgIGdfY29uZF9mcmVlKHB0cik7Ci19Ci0KLXRlbXBsYXRl
IDw+IHZvaWQgZnJlZU93bmVkR1B0cjxHTXV0ZXg+KEdNdXRleCogcHRyKQotewotICAgIGlmIChw
dHIpCi0gICAgICAgIGdfbXV0ZXhfZnJlZShwdHIpOwotfQotCi10ZW1wbGF0ZSA8PiB2b2lkIGZy
ZWVPd25lZEdQdHI8R1BhdHRlcm5TcGVjPihHUGF0dGVyblNwZWMqIHB0cikKLXsKLSAgICBpZiAo
cHRyKQotICAgICAgICBnX3BhdHRlcm5fc3BlY19mcmVlKHB0cik7Ci19Ci0KLXRlbXBsYXRlIDw+
IHZvaWQgZnJlZU93bmVkR1B0cjxHRGlyPihHRGlyKiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAg
ICAgICAgZ19kaXJfY2xvc2UocHRyKTsKLX0KLQotdGVtcGxhdGUgPD4gdm9pZCBmcmVlT3duZWRH
UHRyPEdIYXNoVGFibGU+KEdIYXNoVGFibGUqIHB0cikKLXsKLSAgICBpZiAocHRyKQotICAgICAg
ICBnX2hhc2hfdGFibGVfdW5yZWYocHRyKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCkluZGV4
OiBKYXZhU2NyaXB0Q29yZS93dGYvR093blB0ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRD
b3JlL3d0Zi9HT3duUHRyLmgJKHJldmlzaW9uIDUxMzAxKQorKysgSmF2YVNjcmlwdENvcmUvd3Rm
L0dPd25QdHIuaAkod29ya2luZyBjb3B5KQpAQCAtMSwxNDYgKzAsMCBAQAotLyoKLSAqICBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICog
IENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgotICoKLSAqICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
LSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlv
bikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRl
ZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKLSAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KLSAqCi0gKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiAgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKLSAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2lmbmRl
ZiBHT3duUHRyX2gKLSNkZWZpbmUgR093blB0cl9oCi0KLSNpbmNsdWRlIDxhbGdvcml0aG0+Ci0j
aW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
LQotLy8gRm9yd2FyZCBkZWxjYXJhdGlvbnMgYXQgdGhpcyBwb2ludCBhdm9pZCB0aGUgbmVlZCB0
byBpbmNsdWRlIEdMaWIgaW5jbHVkZXMKLS8vIGluIFdURiBoZWFkZXJzLgotdHlwZWRlZiBzdHJ1
Y3QgX0dFcnJvciBHRXJyb3I7Ci10eXBlZGVmIHN0cnVjdCBfR0xpc3QgR0xpc3Q7Ci10eXBlZGVm
IHN0cnVjdCBfR0NvbmQgR0NvbmQ7Ci10eXBlZGVmIHN0cnVjdCBfR011dGV4IEdNdXRleDsKLXR5
cGVkZWYgc3RydWN0IF9HUGF0dGVyblNwZWMgR1BhdHRlcm5TcGVjOwotdHlwZWRlZiBzdHJ1Y3Qg
X0dEaXIgR0RpcjsKLXR5cGVkZWYgc3RydWN0IF9HSGFzaFRhYmxlIEdIYXNoVGFibGU7Ci1leHRl
cm4gIkMiIHZvaWQgZ19mcmVlKHZvaWQqKTsKLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRl
IDx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBmcmVlT3duZWRHUHRyKFQqIHB0cik7Ci10ZW1wbGF0
ZTw+IHZvaWQgZnJlZU93bmVkR1B0cjxHRXJyb3I+KEdFcnJvciopOwotdGVtcGxhdGU8PiB2b2lk
IGZyZWVPd25lZEdQdHI8R0xpc3Q+KEdMaXN0Kik7Ci10ZW1wbGF0ZTw+IHZvaWQgZnJlZU93bmVk
R1B0cjxHQ29uZD4oR0NvbmQqKTsKLXRlbXBsYXRlPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdNdXRl
eD4oR011dGV4Kik7Ci10ZW1wbGF0ZTw+IHZvaWQgZnJlZU93bmVkR1B0cjxHUGF0dGVyblNwZWM+
KEdQYXR0ZXJuU3BlYyopOwotdGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8R0Rpcj4oR0Rp
ciopOwotdGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8R0hhc2hUYWJsZT4oR0hhc2hUYWJs
ZSopOwotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgR093blB0ciA6IHB1YmxpYyBOb25j
b3B5YWJsZSB7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgR093blB0cihUKiBwdHIgPSAwKSA6IG1f
cHRyKHB0cikgeyB9Ci0gICAgfkdPd25QdHIoKSB7IGZyZWVPd25lZEdQdHIobV9wdHIpOyB9Ci0K
LSAgICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiBtX3B0cjsgfQotICAgIFQqIHJlbGVhc2UoKQot
ICAgIHsKLSAgICAgICAgVCogcHRyID0gbV9wdHI7Ci0gICAgICAgIG1fcHRyID0gMDsKLSAgICAg
ICAgcmV0dXJuIHB0cjsKLSAgICB9Ci0KLSAgICBUKiYgb3V0UHRyKCkKLSAgICB7Ci0gICAgICAg
IEFTU0VSVCghbV9wdHIpOwotICAgICAgICByZXR1cm4gbV9wdHI7Ci0gICAgfQotCi0gICAgdm9p
ZCBzZXQoVCogcHRyKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFwdHIgfHwgbV9wdHIgIT0gcHRy
KTsKLSAgICAgICAgZnJlZU93bmVkR1B0cihtX3B0cik7Ci0gICAgICAgIG1fcHRyID0gcHRyOwot
ICAgIH0KLQotICAgIHZvaWQgY2xlYXIoKQotICAgIHsKLSAgICAgICAgZnJlZU93bmVkR1B0ciht
X3B0cik7Ci0gICAgICAgIG1fcHRyID0gMDsKLSAgICB9Ci0KLSAgICBUJiBvcGVyYXRvciooKSBj
b25zdAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fcHRyKTsKLSAgICAgICAgcmV0dXJuICptX3B0
cjsKLSAgICB9Ci0KLSAgICBUKiBvcGVyYXRvci0+KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFT
U0VSVChtX3B0cik7Ci0gICAgICAgIHJldHVybiBtX3B0cjsKLSAgICB9Ci0KLSAgICBib29sIG9w
ZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX3B0cjsgfQotCi0gICAgLy8gVGhpcyBjb252ZXJz
aW9uIG9wZXJhdG9yIGFsbG93cyBpbXBsaWNpdCBjb252ZXJzaW9uIHRvIGJvb2wgYnV0IG5vdCB0
byBvdGhlciBpbnRlZ2VyIHR5cGVzLgotICAgIHR5cGVkZWYgVCogR093blB0cjo6KlVuc3BlY2lm
aWVkQm9vbFR5cGU7Ci0gICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcHRyID8gJkdPd25QdHI6Om1fcHRyIDogMDsgfQotCi0gICAgdm9pZCBzd2FwKEdP
d25QdHImIG8pIHsgc3RkOjpzd2FwKG1fcHRyLCBvLm1fcHRyKTsgfQotCi1wcml2YXRlOgotICAg
IFQqIG1fcHRyOwotfTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSB2b2lkIHN3YXAo
R093blB0cjxUPiYgYSwgR093blB0cjxUPiYgYikKLXsKLSAgICBhLnN3YXAoYik7Ci19Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNv
bnN0IEdPd25QdHI8VD4mIGEsIFUqIGIpCi17IAotICAgIHJldHVybiBhLmdldCgpID09IGI7IAot
fQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0
b3I9PShUKiBhLCBjb25zdCBHT3duUHRyPFU+JiBiKSAKLXsKLSAgICByZXR1cm4gYSA9PSBiLmdl
dCgpOyAKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29s
IG9wZXJhdG9yIT0oY29uc3QgR093blB0cjxUPiYgYSwgVSogYikKLXsKLSAgICByZXR1cm4gYS5n
ZXQoKSAhPSBiOyAKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGlu
ZSBib29sIG9wZXJhdG9yIT0oVCogYSwgY29uc3QgR093blB0cjxVPiYgYikKLXsgCi0gICAgcmV0
dXJuIGEgIT0gYi5nZXQoKTsgCi19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgdHlw
ZW5hbWUgR093blB0cjxUPjo6UHRyVHlwZSBnZXRQdHIoY29uc3QgR093blB0cjxUPiYgcCkKLXsK
LSAgICByZXR1cm4gcC5nZXQoKTsKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSB2
b2lkIGZyZWVPd25lZEdQdHIoVCogcHRyKQotewotICAgIGdfZnJlZShwdHIpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXVEYKLQotdXNpbmcgV1RGOjpHT3duUHRyOwotCi0jZW5kaWYgLy8gR093blB0
cl9oCkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZGluZy5oCShyZXZpc2lvbiA1MTMwMSkKKysrIEphdmFT
Y3JpcHRDb3JlL3d0Zi9UaHJlYWRpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBA
QAogI2lmIFVTRShQVEhSRUFEUykKICNpbmNsdWRlIDxwdGhyZWFkLmg+CiAjZWxpZiBQTEFURk9S
TShHVEspCi0jaW5jbHVkZSA8d3RmL0dPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ3RrL0dPd25Q
dHIuaD4KIHR5cGVkZWYgc3RydWN0IF9HTXV0ZXggR011dGV4OwogdHlwZWRlZiBzdHJ1Y3QgX0dD
b25kIEdDb25kOwogI2VuZGlmCkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvZ3RrL0dPd25QdHIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi9ndGsvR093blB0ci5jcHAJKHJl
dmlzaW9uIDUxMzAxKQkoZnJvbSBKYXZhU2NyaXB0Q29yZS93dGYvR093blB0ci5jcHA6NTEzMDEp
CisrKyBKYXZhU2NyaXB0Q29yZS93dGYvZ3RrL0dPd25QdHIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4K
KyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVs
LAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQor
ICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJv
c3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJHT3duUHRyLmgiCisKKyNpbmNsdWRlIDxnbGliLmg+CisKK25hbWVzcGFjZSBXVEYg
eworCit0ZW1wbGF0ZSA8PiB2b2lkIGZyZWVPd25lZEdQdHI8R0Vycm9yPihHRXJyb3IqIHB0cikK
K3sKKyAgICBpZiAocHRyKQorICAgICAgICBnX2Vycm9yX2ZyZWUocHRyKTsKK30KKwordGVtcGxh
dGUgPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdMaXN0PihHTGlzdCogcHRyKQoreworICAgIGdfbGlz
dF9mcmVlKHB0cik7Cit9CisKK3RlbXBsYXRlIDw+IHZvaWQgZnJlZU93bmVkR1B0cjxHQ29uZD4o
R0NvbmQqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBnX2NvbmRfZnJlZShwdHIpOwor
fQorCit0ZW1wbGF0ZSA8PiB2b2lkIGZyZWVPd25lZEdQdHI8R011dGV4PihHTXV0ZXgqIHB0cikK
K3sKKyAgICBpZiAocHRyKQorICAgICAgICBnX211dGV4X2ZyZWUocHRyKTsKK30KKwordGVtcGxh
dGUgPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdQYXR0ZXJuU3BlYz4oR1BhdHRlcm5TcGVjKiBwdHIp
Cit7CisgICAgaWYgKHB0cikKKyAgICAgICAgZ19wYXR0ZXJuX3NwZWNfZnJlZShwdHIpOworfQor
Cit0ZW1wbGF0ZSA8PiB2b2lkIGZyZWVPd25lZEdQdHI8R0Rpcj4oR0RpciogcHRyKQoreworICAg
IGlmIChwdHIpCisgICAgICAgIGdfZGlyX2Nsb3NlKHB0cik7Cit9CisKK3RlbXBsYXRlIDw+IHZv
aWQgZnJlZU93bmVkR1B0cjxHSGFzaFRhYmxlPihHSGFzaFRhYmxlKiBwdHIpCit7CisgICAgaWYg
KHB0cikKKyAgICAgICAgZ19oYXNoX3RhYmxlX3VucmVmKHB0cik7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdURgpJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL2d0ay9HT3duUHRyLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL2d0ay9HT3duUHRyLmgJKHJldmlzaW9uIDUxMzAxKQko
ZnJvbSBKYXZhU2NyaXB0Q29yZS93dGYvR093blB0ci5oOjUxMzAxKQorKysgSmF2YVNjcmlwdENv
cmUvd3RmL2d0ay9HT3duUHRyLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNDYgQEAKKy8q
CisgKiAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMg
ZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBt
b3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwor
ICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCisgKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKgorICov
CisKKyNpZm5kZWYgR093blB0cl9oCisjZGVmaW5lIEdPd25QdHJfaAorCisjaW5jbHVkZSA8YWxn
b3JpdGhtPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+CisKKy8vIEZvcndhcmQgZGVsY2FyYXRpb25zIGF0IHRoaXMgcG9pbnQgYXZvaWQg
dGhlIG5lZWQgdG8gaW5jbHVkZSBHTGliIGluY2x1ZGVzCisvLyBpbiBXVEYgaGVhZGVycy4KK3R5
cGVkZWYgc3RydWN0IF9HRXJyb3IgR0Vycm9yOwordHlwZWRlZiBzdHJ1Y3QgX0dMaXN0IEdMaXN0
OwordHlwZWRlZiBzdHJ1Y3QgX0dDb25kIEdDb25kOwordHlwZWRlZiBzdHJ1Y3QgX0dNdXRleCBH
TXV0ZXg7Cit0eXBlZGVmIHN0cnVjdCBfR1BhdHRlcm5TcGVjIEdQYXR0ZXJuU3BlYzsKK3R5cGVk
ZWYgc3RydWN0IF9HRGlyIEdEaXI7Cit0eXBlZGVmIHN0cnVjdCBfR0hhc2hUYWJsZSBHSGFzaFRh
YmxlOworZXh0ZXJuICJDIiB2b2lkIGdfZnJlZSh2b2lkKik7CisKK25hbWVzcGFjZSBXVEYgewor
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgZnJlZU93bmVkR1B0cihUKiBwdHIp
OwordGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8R0Vycm9yPihHRXJyb3IqKTsKK3RlbXBs
YXRlPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdMaXN0PihHTGlzdCopOwordGVtcGxhdGU8PiB2b2lk
IGZyZWVPd25lZEdQdHI8R0NvbmQ+KEdDb25kKik7Cit0ZW1wbGF0ZTw+IHZvaWQgZnJlZU93bmVk
R1B0cjxHTXV0ZXg+KEdNdXRleCopOwordGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8R1Bh
dHRlcm5TcGVjPihHUGF0dGVyblNwZWMqKTsKK3RlbXBsYXRlPD4gdm9pZCBmcmVlT3duZWRHUHRy
PEdEaXI+KEdEaXIqKTsKK3RlbXBsYXRlPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdIYXNoVGFibGU+
KEdIYXNoVGFibGUqKTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIEdPd25QdHIgOiBw
dWJsaWMgTm9uY29weWFibGUgeworcHVibGljOgorICAgIGV4cGxpY2l0IEdPd25QdHIoVCogcHRy
ID0gMCkgOiBtX3B0cihwdHIpIHsgfQorICAgIH5HT3duUHRyKCkgeyBmcmVlT3duZWRHUHRyKG1f
cHRyKTsgfQorCisgICAgVCogZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KKyAgICBUKiBy
ZWxlYXNlKCkKKyAgICB7CisgICAgICAgIFQqIHB0ciA9IG1fcHRyOworICAgICAgICBtX3B0ciA9
IDA7CisgICAgICAgIHJldHVybiBwdHI7CisgICAgfQorCisgICAgVComIG91dFB0cigpCisgICAg
eworICAgICAgICBBU1NFUlQoIW1fcHRyKTsKKyAgICAgICAgcmV0dXJuIG1fcHRyOworICAgIH0K
KworICAgIHZvaWQgc2V0KFQqIHB0cikKKyAgICB7CisgICAgICAgIEFTU0VSVCghcHRyIHx8IG1f
cHRyICE9IHB0cik7CisgICAgICAgIGZyZWVPd25lZEdQdHIobV9wdHIpOworICAgICAgICBtX3B0
ciA9IHB0cjsKKyAgICB9CisKKyAgICB2b2lkIGNsZWFyKCkKKyAgICB7CisgICAgICAgIGZyZWVP
d25lZEdQdHIobV9wdHIpOworICAgICAgICBtX3B0ciA9IDA7CisgICAgfQorCisgICAgVCYgb3Bl
cmF0b3IqKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3B0cik7CisgICAgICAgIHJl
dHVybiAqbV9wdHI7CisgICAgfQorCisgICAgVCogb3BlcmF0b3ItPigpIGNvbnN0CisgICAgewor
ICAgICAgICBBU1NFUlQobV9wdHIpOworICAgICAgICByZXR1cm4gbV9wdHI7CisgICAgfQorCisg
ICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhbV9wdHI7IH0KKworICAgIC8vIFRo
aXMgY29udmVyc2lvbiBvcGVyYXRvciBhbGxvd3MgaW1wbGljaXQgY29udmVyc2lvbiB0byBib29s
IGJ1dCBub3QgdG8gb3RoZXIgaW50ZWdlciB0eXBlcy4KKyAgICB0eXBlZGVmIFQqIEdPd25QdHI6
OipVbnNwZWNpZmllZEJvb2xUeXBlOworICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5cGUo
KSBjb25zdCB7IHJldHVybiBtX3B0ciA/ICZHT3duUHRyOjptX3B0ciA6IDA7IH0KKworICAgIHZv
aWQgc3dhcChHT3duUHRyJiBvKSB7IHN0ZDo6c3dhcChtX3B0ciwgby5tX3B0cik7IH0KKworcHJp
dmF0ZToKKyAgICBUKiBtX3B0cjsKK307CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUg
dm9pZCBzd2FwKEdPd25QdHI8VD4mIGEsIEdPd25QdHI8VD4mIGIpCit7CisgICAgYS5zd2FwKGIp
OworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBHT3duUHRyPFQ+JiBhLCBVKiBiKQoreyAKKyAgICByZXR1cm4gYS5nZXQo
KSA9PSBiOyAKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBi
b29sIG9wZXJhdG9yPT0oVCogYSwgY29uc3QgR093blB0cjxVPiYgYikgCit7CisgICAgcmV0dXJu
IGEgPT0gYi5nZXQoKTsgCit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBp
bmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEdPd25QdHI8VD4mIGEsIFUqIGIpCit7CisgICAg
cmV0dXJuIGEuZ2V0KCkgIT0gYjsgCit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFt
ZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KFQqIGEsIGNvbnN0IEdPd25QdHI8VT4mIGIpCit7
IAorICAgIHJldHVybiBhICE9IGIuZ2V0KCk7IAorfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4g
aW5saW5lIHR5cGVuYW1lIEdPd25QdHI8VD46OlB0clR5cGUgZ2V0UHRyKGNvbnN0IEdPd25QdHI8
VD4mIHApCit7CisgICAgcmV0dXJuIHAuZ2V0KCk7Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBU
PiBpbmxpbmUgdm9pZCBmcmVlT3duZWRHUHRyKFQqIHB0cikKK3sKKyAgICBnX2ZyZWUocHRyKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdURjo6R093blB0cjsKKworI2VuZGlm
IC8vIEdPd25QdHJfaApJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvZ2xpYi9Vbmlj
b2RlR0xpYi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2dsaWIv
VW5pY29kZUdMaWIuaAkocmV2aXNpb24gNTEzMDEpCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvdW5p
Y29kZS9nbGliL1VuaWNvZGVHTGliLmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDcgKzI2LDcgQEAK
ICNkZWZpbmUgVW5pY29kZUdMaWJfaAogCiAjaW5jbHVkZSAiVW5pY29kZU1hY3Jvc0Zyb21JQ1Uu
aCIKLSNpbmNsdWRlIDx3dGYvR093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9ndGsvR093blB0ci5o
PgogCiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1ZGUgPHBhbmdvL3BhbmdvLmg+CkluZGV4OiBX
ZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNp
b24gNTEzMDIpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE2IEBACisyMDA5LTExLTIyICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lh
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBN
b3ZlIEdPd25QdHIqIGZyb20gd3RmIHRvIHd0Zi9ndGsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNzkzCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGFz
IHRoZXJlIGlzIG5vIGZ1bmN0aW9uYWwgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHA6CisgICAgICAgICogcGxh
dGZvcm0vdGV4dC9UZXh0RW5jb2RpbmcuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvZ3Rr
L1RleHRDb2RlY0d0ay5jcHA6CisKIDIwMDktMTEtMjIgIE5pa29sYXMgWmltbWVybWFubiAgPG56
aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgTm90IHJldmlld2VkLiBCdWlsZCBmaXggZm9y
IFdNTCBlbmFibGVkIGJ1aWxkcy4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAkocmV2
aXNpb24gNTEzMDEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXll
clByaXZhdGVHU3RyZWFtZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00Niw3ICs0Niw3IEBACiAj
aW5jbHVkZSA8Z3N0L3ZpZGVvL3ZpZGVvLmg+CiAjaW5jbHVkZSA8bGltaXRzPgogI2luY2x1ZGUg
PG1hdGguaD4KLSNpbmNsdWRlIDx3dGYvR093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9ndGsvR093
blB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dEVuY29kaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvVGV4dEVuY29kaW5nLmNwcAkocmV2aXNpb24gNTEzMDEpCisrKyBXZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dEVuY29kaW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQAog
I2luY2x1ZGUgPFFTdHJpbmc+CiAjZWxpZiBVU0UoR0xJQl9VTklDT0RFKQogI2luY2x1ZGUgPGds
aWIuaD4KLSNpbmNsdWRlIDx3dGYvR093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9ndGsvR093blB0
ci5oPgogI2VuZGlmCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3RleHQvZ3RrL1RleHRDb2RlY0d0ay5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2d0ay9UZXh0Q29kZWNHdGsuY3Bw
CShyZXZpc2lvbiA1MTMwMSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9ndGsvVGV4dENvZGVj
R3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsNyBAQAogI2luY2x1ZGUgIlBsYXRm
b3JtU3RyaW5nLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9HT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL2d0ay9H
T3duUHRyLmg+CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogCiB1c2luZyBzdGQ6Om1pbjsKSW5kZXg6
IFdlYktpdC9ndGsvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9ndGsvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTMwMikKKysrIFdlYktpdC9ndGsvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMDktMTEtMjIgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5n
b21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vdmUgR093blB0ciogZnJvbSB3dGYgdG8gd3RmL2d0aworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE3OTMKKworICAgICAgICAqIHdl
YmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKwogMjAwOS0xMS0xOSAgUGF2ZWwgRmVsZG1hbiAgPHBm
ZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9u
aGEgU2lsdmEuCkluZGV4OiBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAkocmV2aXNpb24g
NTEzMDEpCisrKyBXZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNzMsNyArNzMsNyBAQAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRl
ICJTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlNjcm9sbGJhci5oIgotI2luY2x1ZGUgPHd0Zi9H
T3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL2d0ay9HT3duUHRyLmg+CiAKICNpbmNsdWRlIDxnZGsv
Z2Rra2V5c3ltcy5oPgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43693</attachid>
            <date>2009-11-22 20:27:41 -0800</date>
            <delta_ts>2009-11-27 12:21:20 -0800</delta_ts>
            <desc>fix indentation in JavaScriptCore/GNUmakefile.am</desc>
            <filename>31793.patch</filename>
            <type>text/plain</type>
            <size>20237</size>
            <attacher name="Laszlo Gombos">laszlo.gombos</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDUxMzAy
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMDktMTEt
MjIgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgR093blB0ciogZnJv
bSB3dGYgdG8gd3RmL2d0aworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzE3OTMKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorCiAyMDA5LTExLTA5
ICBQcmlpdCBMYWVzICA8cGxhZXNAcGxhZXMub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9s
aXZlciBIdW50LgpJbmRleDogR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gR05VbWFrZWZp
bGUuYW0JKHJldmlzaW9uIDUxMzAxKQorKysgR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkK
QEAgLTE1Nyw2ICsxNTcsNyBAQCBqYXZhc2NyaXB0Y29yZV9jcHBmbGFncyArPSBcCiAJLUkkKHNy
Y2RpcikvSmF2YVNjcmlwdENvcmUvRm9yd2FyZGluZ0hlYWRlcnMgXAogCS1JJChzcmNkaXIpL0ph
dmFTY3JpcHRDb3JlL3BhcnNlciBcCiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvd3RmIFwK
KwktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS93dGYvZ3RrIFwKIAktSSQodG9wX2J1aWxkZGly
KS9EZXJpdmVkU291cmNlcwogCiBub2Rpc3RfRVhUUkFfbGliSmF2YVNjcmlwdENvcmVfbGFfU09V
UkNFUyA9IFwKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBK
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDUxMzAyKQorKysgSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMTEtMjIg
IExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgR093blB0ciogZnJvbSB3
dGYgdG8gd3RmL2d0aworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzE3OTMKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEphdmFT
Y3JpcHRDb3JlLmd5cC9KYXZhU2NyaXB0Q29yZS5neXA6CisgICAgICAgICogSmF2YVNjcmlwdENv
cmUuZ3lwaToKKyAgICAgICAgKiB3c2NyaXB0OgorICAgICAgICAqIHd0Zi9HT3duUHRyLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiB3dGYvR093blB0ci5oOiBSZW1vdmVkLgorICAgICAgICAqIHd0
Zi9UaHJlYWRpbmcuaDoKKyAgICAgICAgKiB3dGYvZ3RrL0dPd25QdHIuY3BwOiBDb3BpZWQgZnJv
bSBKYXZhU2NyaXB0Q29yZS93dGYvR093blB0ci5jcHAuCisgICAgICAgICogd3RmL2d0ay9HT3du
UHRyLmg6IENvcGllZCBmcm9tIEphdmFTY3JpcHRDb3JlL3d0Zi9HT3duUHRyLmguCisgICAgICAg
ICogd3RmL3VuaWNvZGUvZ2xpYi9Vbmljb2RlR0xpYi5oOgorCiAyMDA5LTExLTIyICBMYXN6bG8g
R29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNvbT4KIApJbmRleDogSmF2YVNjcmlwdENv
cmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvR05VbWFrZWZp
bGUuYW0JKHJldmlzaW9uIDUxMzAxKQorKysgSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0J
KHdvcmtpbmcgY29weSkKQEAgLTIzNiw4ICsyMzYsNiBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2Vz
ICs9IFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvRGVxdWUuaCBcCiAJSmF2YVNjcmlwdENvcmUvd3Rm
L0Rpc2FsbG93Q1R5cGUuaCBcCiAJSmF2YVNjcmlwdENvcmUvd3RmL0ZvcndhcmQuaCBcCi0JSmF2
YVNjcmlwdENvcmUvd3RmL0dPd25QdHIuY3BwIFwKLQlKYXZhU2NyaXB0Q29yZS93dGYvR093blB0
ci5oIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvR2V0UHRyLmggXAogCUphdmFTY3JpcHRDb3JlL3d0
Zi9IYXNoQ291bnRlZFNldC5oIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvSGFzaEZ1bmN0aW9ucy5o
IFwKQEAgLTI4OCw2ICsyODYsOCBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlKYXZh
U2NyaXB0Q29yZS93dGYvVW51c2VkUGFyYW0uaCBcCiAJSmF2YVNjcmlwdENvcmUvd3RmL1ZlY3Rv
ci5oIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvVmVjdG9yVHJhaXRzLmggXAorCUphdmFTY3JpcHRD
b3JlL3d0Zi9ndGsvR093blB0ci5jcHAgXAorCUphdmFTY3JpcHRDb3JlL3d0Zi9ndGsvR093blB0
ci5oIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvZ3RrL01haW5UaHJlYWRHdGsuY3BwIFwKIAlKYXZh
U2NyaXB0Q29yZS93dGYvZ3RrL1RocmVhZGluZ0d0ay5jcHAgXAogCUphdmFTY3JpcHRDb3JlL3d0
Zi91bmljb2RlL0NvbGxhdG9yLmggXApJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBp
CShyZXZpc2lvbiA1MTMwMSkKKysrIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkJ
KHdvcmtpbmcgY29weSkKQEAgLTM3MCw4ICszNzAsOCBAQAogICAgICAgICAgICAgJ3d0Zi9GYXN0
TWFsbG9jLmgnLAogICAgICAgICAgICAgJ3d0Zi9Gb3J3YXJkLmgnLAogICAgICAgICAgICAgJ3d0
Zi9HZXRQdHIuaCcsCi0gICAgICAgICAgICAnd3RmL0dPd25QdHIuY3BwJywKLSAgICAgICAgICAg
ICd3dGYvR093blB0ci5oJywKKyAgICAgICAgICAgICd3dGYvZ3RrL0dPd25QdHIuY3BwJywKKyAg
ICAgICAgICAgICd3dGYvZ3RrL0dPd25QdHIuaCcsCiAgICAgICAgICAgICAnd3RmL2d0ay9NYWlu
VGhyZWFkR3RrLmNwcCcsCiAgICAgICAgICAgICAnd3RmL2d0ay9UaHJlYWRpbmdHdGsuY3BwJywK
ICAgICAgICAgICAgICd3dGYvSGFzaENvdW50ZWRTZXQuaCcsCkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS93c2NyaXB0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3dzY3JpcHQJKHJldmlzaW9u
IDUxMzAxKQorKysgSmF2YVNjcmlwdENvcmUvd3NjcmlwdAkod29ya2luZyBjb3B5KQpAQCAtMjks
NyArMjksNyBAQCBpbXBvcnQgY29tbWFuZHMKIAogZnJvbSBzZXR0aW5ncyBpbXBvcnQgKgogCi1q
c2NvcmVfZXhjbHVkZXMgPSBbJ2pzYy5jcHAnLCAndWNwdGFibGUuY3BwJywgJ0dPd25QdHIuY3Bw
J10KK2pzY29yZV9leGNsdWRlcyA9IFsnanNjLmNwcCcsICd1Y3B0YWJsZS5jcHAnXQoganNjb3Jl
X2V4Y2x1ZGVzLmV4dGVuZChnZXRfZXhjbHVkZXMoanNjb3JlX2RpciwgWycqQ0YuY3BwJywgJypT
eW1iaWFuLmNwcCddKSkKIAogc291cmNlcyA9IFtdCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5neXAvSmF2YVNjcmlwdENvcmUuZ3lwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cC9KYXZhU2NyaXB0Q29yZS5neXAJKHJldmlzaW9uIDUx
MzAxKQorKysgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwL0phdmFTY3JpcHRDb3Jl
Lmd5cAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDcgKzExNCw3IEBACiAgICAgICAgICMgLi4uIFRo
ZW4gaW5jbHVkZSB3aGF0IHdlIHdhbnQuCiAgICAgICAgIFsnaW5jbHVkZScsICcuLi93dGYvJ10s
CiAgICAgICAgICMgR0xpYi9HVEssIGV2ZW4gdGhvdWdoIGl0cyBuYW1lIGRvZXNuJ3QgcmVhbGx5
IGluZGljYXRlLgotICAgICAgICBbJ2V4Y2x1ZGUnLCAnLyhHT3duUHRyfGdsaWIvLiopXFwuKGNw
cHxoKSQnXSwKKyAgICAgICAgWydleGNsdWRlJywgJy8oZ2xpYi8uKilcXC4oY3BwfGgpJCddLAog
ICAgICAgICBbJ2V4Y2x1ZGUnLCAnKERlZmF1bHR8R3RrfE1hY3xOb25lfFF0fFdpbnxXeClcXC4o
Y3BwfG1tKSQnXSwKICAgICAgICAgWydleGNsdWRlJywgJ3d0Zi9DdXJyZW50VGltZVxcLmNwcCQn
XSwKICAgICAgICAgWydleGNsdWRlJywgJ3d0Zi9UQy4qXFwuKGNwcHxoKSQnXSwKSW5kZXg6IEph
dmFTY3JpcHRDb3JlL3d0Zi9HT3duUHRyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29y
ZS93dGYvR093blB0ci5jcHAJKHJldmlzaW9uIDUxMzAxKQorKysgSmF2YVNjcmlwdENvcmUvd3Rm
L0dPd25QdHIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDY3ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBp
dCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBM
aWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRo
ZXIKLSAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
LSAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoK
LSAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdl
bmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90
LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQot
ICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJHT3duUHRyLmgiCi0KLSNpbmNs
dWRlIDxnbGliLmg+Ci0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0ZSA8PiB2b2lkIGZyZWVP
d25lZEdQdHI8R0Vycm9yPihHRXJyb3IqIHB0cikKLXsKLSAgICBpZiAocHRyKQotICAgICAgICBn
X2Vycm9yX2ZyZWUocHRyKTsKLX0KLQotdGVtcGxhdGUgPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdM
aXN0PihHTGlzdCogcHRyKQotewotICAgIGdfbGlzdF9mcmVlKHB0cik7Ci19Ci0KLXRlbXBsYXRl
IDw+IHZvaWQgZnJlZU93bmVkR1B0cjxHQ29uZD4oR0NvbmQqIHB0cikKLXsKLSAgICBpZiAocHRy
KQotICAgICAgICBnX2NvbmRfZnJlZShwdHIpOwotfQotCi10ZW1wbGF0ZSA8PiB2b2lkIGZyZWVP
d25lZEdQdHI8R011dGV4PihHTXV0ZXgqIHB0cikKLXsKLSAgICBpZiAocHRyKQotICAgICAgICBn
X211dGV4X2ZyZWUocHRyKTsKLX0KLQotdGVtcGxhdGUgPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdQ
YXR0ZXJuU3BlYz4oR1BhdHRlcm5TcGVjKiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAg
Z19wYXR0ZXJuX3NwZWNfZnJlZShwdHIpOwotfQotCi10ZW1wbGF0ZSA8PiB2b2lkIGZyZWVPd25l
ZEdQdHI8R0Rpcj4oR0RpciogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAgIGdfZGlyX2Ns
b3NlKHB0cik7Ci19Ci0KLXRlbXBsYXRlIDw+IHZvaWQgZnJlZU93bmVkR1B0cjxHSGFzaFRhYmxl
PihHSGFzaFRhYmxlKiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZ19oYXNoX3RhYmxl
X3VucmVmKHB0cik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgpJbmRleDogSmF2YVNjcmlwdENv
cmUvd3RmL0dPd25QdHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvR093blB0
ci5oCShyZXZpc2lvbiA1MTMwMSkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9HT3duUHRyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsMTQ2ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA2
LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqICBDb3B5cmlnaHQgKEMp
IDIwMDggQ29sbGFib3JhIEx0ZC4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKLSAqICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxl
IENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiAgQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgR093blB0cl9oCi0j
ZGVmaW5lIEdPd25QdHJfaAotCi0jaW5jbHVkZSA8YWxnb3JpdGhtPgotI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0KLS8vIEZvcndhcmQg
ZGVsY2FyYXRpb25zIGF0IHRoaXMgcG9pbnQgYXZvaWQgdGhlIG5lZWQgdG8gaW5jbHVkZSBHTGli
IGluY2x1ZGVzCi0vLyBpbiBXVEYgaGVhZGVycy4KLXR5cGVkZWYgc3RydWN0IF9HRXJyb3IgR0Vy
cm9yOwotdHlwZWRlZiBzdHJ1Y3QgX0dMaXN0IEdMaXN0OwotdHlwZWRlZiBzdHJ1Y3QgX0dDb25k
IEdDb25kOwotdHlwZWRlZiBzdHJ1Y3QgX0dNdXRleCBHTXV0ZXg7Ci10eXBlZGVmIHN0cnVjdCBf
R1BhdHRlcm5TcGVjIEdQYXR0ZXJuU3BlYzsKLXR5cGVkZWYgc3RydWN0IF9HRGlyIEdEaXI7Ci10
eXBlZGVmIHN0cnVjdCBfR0hhc2hUYWJsZSBHSGFzaFRhYmxlOwotZXh0ZXJuICJDIiB2b2lkIGdf
ZnJlZSh2b2lkKik7Ci0KLW5hbWVzcGFjZSBXVEYgewotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4g
aW5saW5lIHZvaWQgZnJlZU93bmVkR1B0cihUKiBwdHIpOwotdGVtcGxhdGU8PiB2b2lkIGZyZWVP
d25lZEdQdHI8R0Vycm9yPihHRXJyb3IqKTsKLXRlbXBsYXRlPD4gdm9pZCBmcmVlT3duZWRHUHRy
PEdMaXN0PihHTGlzdCopOwotdGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8R0NvbmQ+KEdD
b25kKik7Ci10ZW1wbGF0ZTw+IHZvaWQgZnJlZU93bmVkR1B0cjxHTXV0ZXg+KEdNdXRleCopOwot
dGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8R1BhdHRlcm5TcGVjPihHUGF0dGVyblNwZWMq
KTsKLXRlbXBsYXRlPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdEaXI+KEdEaXIqKTsKLXRlbXBsYXRl
PD4gdm9pZCBmcmVlT3duZWRHUHRyPEdIYXNoVGFibGU+KEdIYXNoVGFibGUqKTsKLQotdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+IGNsYXNzIEdPd25QdHIgOiBwdWJsaWMgTm9uY29weWFibGUgewotcHVi
bGljOgotICAgIGV4cGxpY2l0IEdPd25QdHIoVCogcHRyID0gMCkgOiBtX3B0cihwdHIpIHsgfQot
ICAgIH5HT3duUHRyKCkgeyBmcmVlT3duZWRHUHRyKG1fcHRyKTsgfQotCi0gICAgVCogZ2V0KCkg
Y29uc3QgeyByZXR1cm4gbV9wdHI7IH0KLSAgICBUKiByZWxlYXNlKCkKLSAgICB7Ci0gICAgICAg
IFQqIHB0ciA9IG1fcHRyOwotICAgICAgICBtX3B0ciA9IDA7Ci0gICAgICAgIHJldHVybiBwdHI7
Ci0gICAgfQotCi0gICAgVComIG91dFB0cigpCi0gICAgewotICAgICAgICBBU1NFUlQoIW1fcHRy
KTsKLSAgICAgICAgcmV0dXJuIG1fcHRyOwotICAgIH0KLQotICAgIHZvaWQgc2V0KFQqIHB0cikK
LSAgICB7Ci0gICAgICAgIEFTU0VSVCghcHRyIHx8IG1fcHRyICE9IHB0cik7Ci0gICAgICAgIGZy
ZWVPd25lZEdQdHIobV9wdHIpOwotICAgICAgICBtX3B0ciA9IHB0cjsKLSAgICB9Ci0KLSAgICB2
b2lkIGNsZWFyKCkKLSAgICB7Ci0gICAgICAgIGZyZWVPd25lZEdQdHIobV9wdHIpOwotICAgICAg
ICBtX3B0ciA9IDA7Ci0gICAgfQotCi0gICAgVCYgb3BlcmF0b3IqKCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX3B0cik7Ci0gICAgICAgIHJldHVybiAqbV9wdHI7Ci0gICAgfQotCi0g
ICAgVCogb3BlcmF0b3ItPigpIGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV9wdHIpOwot
ICAgICAgICByZXR1cm4gbV9wdHI7Ci0gICAgfQotCi0gICAgYm9vbCBvcGVyYXRvciEoKSBjb25z
dCB7IHJldHVybiAhbV9wdHI7IH0KLQotICAgIC8vIFRoaXMgY29udmVyc2lvbiBvcGVyYXRvciBh
bGxvd3MgaW1wbGljaXQgY29udmVyc2lvbiB0byBib29sIGJ1dCBub3QgdG8gb3RoZXIgaW50ZWdl
ciB0eXBlcy4KLSAgICB0eXBlZGVmIFQqIEdPd25QdHI6OipVbnNwZWNpZmllZEJvb2xUeXBlOwot
ICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5cGUoKSBjb25zdCB7IHJldHVybiBtX3B0ciA/
ICZHT3duUHRyOjptX3B0ciA6IDA7IH0KLQotICAgIHZvaWQgc3dhcChHT3duUHRyJiBvKSB7IHN0
ZDo6c3dhcChtX3B0ciwgby5tX3B0cik7IH0KLQotcHJpdmF0ZToKLSAgICBUKiBtX3B0cjsKLX07
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBzd2FwKEdPd25QdHI8VD4mIGEs
IEdPd25QdHI8VD4mIGIpCi17Ci0gICAgYS5zd2FwKGIpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBHT3duUHRyPFQ+
JiBhLCBVKiBiKQoteyAKLSAgICByZXR1cm4gYS5nZXQoKSA9PSBiOyAKLX0KLQotdGVtcGxhdGUg
PHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yPT0oVCogYSwgY29u
c3QgR093blB0cjxVPiYgYikgCi17Ci0gICAgcmV0dXJuIGEgPT0gYi5nZXQoKTsgCi19Ci0KLXRl
bXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNv
bnN0IEdPd25QdHI8VD4mIGEsIFUqIGIpCi17Ci0gICAgcmV0dXJuIGEuZ2V0KCkgIT0gYjsgCi19
Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRv
ciE9KFQqIGEsIGNvbnN0IEdPd25QdHI8VT4mIGIpCi17IAotICAgIHJldHVybiBhICE9IGIuZ2V0
KCk7IAotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIHR5cGVuYW1lIEdPd25QdHI8
VD46OlB0clR5cGUgZ2V0UHRyKGNvbnN0IEdPd25QdHI8VD4mIHApCi17Ci0gICAgcmV0dXJuIHAu
Z2V0KCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBmcmVlT3duZWRH
UHRyKFQqIHB0cikKLXsKLSAgICBnX2ZyZWUocHRyKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV1RG
Ci0KLXVzaW5nIFdURjo6R093blB0cjsKLQotI2VuZGlmIC8vIEdPd25QdHJfaApJbmRleDogSmF2
YVNjcmlwdENvcmUvd3RmL1RocmVhZGluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3Jl
L3d0Zi9UaHJlYWRpbmcuaAkocmV2aXNpb24gNTEzMDEpCisrKyBKYXZhU2NyaXB0Q29yZS93dGYv
VGhyZWFkaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTg0LDcgKzg0LDcgQEAKICNpZiBVU0UoUFRI
UkVBRFMpCiAjaW5jbHVkZSA8cHRocmVhZC5oPgogI2VsaWYgUExBVEZPUk0oR1RLKQotI2luY2x1
ZGUgPHd0Zi9HT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL2d0ay9HT3duUHRyLmg+CiB0eXBlZGVm
IHN0cnVjdCBfR011dGV4IEdNdXRleDsKIHR5cGVkZWYgc3RydWN0IF9HQ29uZCBHQ29uZDsKICNl
bmRpZgpJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL2d0ay9HT3duUHRyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvZ3RrL0dPd25QdHIuY3BwCShyZXZpc2lvbiA1MTMwMSkJ
KGZyb20gSmF2YVNjcmlwdENvcmUvd3RmL0dPd25QdHIuY3BwOjUxMzAxKQorKysgSmF2YVNjcmlw
dENvcmUvd3RmL2d0ay9HT3duUHRyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiR093blB0
ci5oIgorCisjaW5jbHVkZSA8Z2xpYi5oPgorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGUg
PD4gdm9pZCBmcmVlT3duZWRHUHRyPEdFcnJvcj4oR0Vycm9yKiBwdHIpCit7CisgICAgaWYgKHB0
cikKKyAgICAgICAgZ19lcnJvcl9mcmVlKHB0cik7Cit9CisKK3RlbXBsYXRlIDw+IHZvaWQgZnJl
ZU93bmVkR1B0cjxHTGlzdD4oR0xpc3QqIHB0cikKK3sKKyAgICBnX2xpc3RfZnJlZShwdHIpOwor
fQorCit0ZW1wbGF0ZSA8PiB2b2lkIGZyZWVPd25lZEdQdHI8R0NvbmQ+KEdDb25kKiBwdHIpCit7
CisgICAgaWYgKHB0cikKKyAgICAgICAgZ19jb25kX2ZyZWUocHRyKTsKK30KKwordGVtcGxhdGUg
PD4gdm9pZCBmcmVlT3duZWRHUHRyPEdNdXRleD4oR011dGV4KiBwdHIpCit7CisgICAgaWYgKHB0
cikKKyAgICAgICAgZ19tdXRleF9mcmVlKHB0cik7Cit9CisKK3RlbXBsYXRlIDw+IHZvaWQgZnJl
ZU93bmVkR1B0cjxHUGF0dGVyblNwZWM+KEdQYXR0ZXJuU3BlYyogcHRyKQoreworICAgIGlmIChw
dHIpCisgICAgICAgIGdfcGF0dGVybl9zcGVjX2ZyZWUocHRyKTsKK30KKwordGVtcGxhdGUgPD4g
dm9pZCBmcmVlT3duZWRHUHRyPEdEaXI+KEdEaXIqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAg
ICAgICBnX2Rpcl9jbG9zZShwdHIpOworfQorCit0ZW1wbGF0ZSA8PiB2b2lkIGZyZWVPd25lZEdQ
dHI8R0hhc2hUYWJsZT4oR0hhc2hUYWJsZSogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAg
IGdfaGFzaF90YWJsZV91bnJlZihwdHIpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6
IEphdmFTY3JpcHRDb3JlL3d0Zi9ndGsvR093blB0ci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL3d0Zi9ndGsvR093blB0ci5oCShyZXZpc2lvbiA1MTMwMSkJKGZyb20gSmF2YVNjcmlw
dENvcmUvd3RmL0dPd25QdHIuaDo1MTMwMSkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9ndGsvR093
blB0ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTQ2IEBACisvKgorICogIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiAgQ29w
eXJpZ2h0IChDKSAyMDA4IENvbGxhYm9yYSBMdGQuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAorICogIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIEdP
d25QdHJfaAorI2RlZmluZSBHT3duUHRyX2gKKworI2luY2x1ZGUgPGFsZ29yaXRobT4KKyNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCisv
LyBGb3J3YXJkIGRlbGNhcmF0aW9ucyBhdCB0aGlzIHBvaW50IGF2b2lkIHRoZSBuZWVkIHRvIGlu
Y2x1ZGUgR0xpYiBpbmNsdWRlcworLy8gaW4gV1RGIGhlYWRlcnMuCit0eXBlZGVmIHN0cnVjdCBf
R0Vycm9yIEdFcnJvcjsKK3R5cGVkZWYgc3RydWN0IF9HTGlzdCBHTGlzdDsKK3R5cGVkZWYgc3Ry
dWN0IF9HQ29uZCBHQ29uZDsKK3R5cGVkZWYgc3RydWN0IF9HTXV0ZXggR011dGV4OwordHlwZWRl
ZiBzdHJ1Y3QgX0dQYXR0ZXJuU3BlYyBHUGF0dGVyblNwZWM7Cit0eXBlZGVmIHN0cnVjdCBfR0Rp
ciBHRGlyOwordHlwZWRlZiBzdHJ1Y3QgX0dIYXNoVGFibGUgR0hhc2hUYWJsZTsKK2V4dGVybiAi
QyIgdm9pZCBnX2ZyZWUodm9pZCopOworCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGUgPHR5
cGVuYW1lIFQ+IGlubGluZSB2b2lkIGZyZWVPd25lZEdQdHIoVCogcHRyKTsKK3RlbXBsYXRlPD4g
dm9pZCBmcmVlT3duZWRHUHRyPEdFcnJvcj4oR0Vycm9yKik7Cit0ZW1wbGF0ZTw+IHZvaWQgZnJl
ZU93bmVkR1B0cjxHTGlzdD4oR0xpc3QqKTsKK3RlbXBsYXRlPD4gdm9pZCBmcmVlT3duZWRHUHRy
PEdDb25kPihHQ29uZCopOwordGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8R011dGV4PihH
TXV0ZXgqKTsKK3RlbXBsYXRlPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdQYXR0ZXJuU3BlYz4oR1Bh
dHRlcm5TcGVjKik7Cit0ZW1wbGF0ZTw+IHZvaWQgZnJlZU93bmVkR1B0cjxHRGlyPihHRGlyKik7
Cit0ZW1wbGF0ZTw+IHZvaWQgZnJlZU93bmVkR1B0cjxHSGFzaFRhYmxlPihHSGFzaFRhYmxlKik7
CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBHT3duUHRyIDogcHVibGljIE5vbmNvcHlh
YmxlIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBHT3duUHRyKFQqIHB0ciA9IDApIDogbV9wdHIo
cHRyKSB7IH0KKyAgICB+R093blB0cigpIHsgZnJlZU93bmVkR1B0cihtX3B0cik7IH0KKworICAg
IFQqIGdldCgpIGNvbnN0IHsgcmV0dXJuIG1fcHRyOyB9CisgICAgVCogcmVsZWFzZSgpCisgICAg
eworICAgICAgICBUKiBwdHIgPSBtX3B0cjsKKyAgICAgICAgbV9wdHIgPSAwOworICAgICAgICBy
ZXR1cm4gcHRyOworICAgIH0KKworICAgIFQqJiBvdXRQdHIoKQorICAgIHsKKyAgICAgICAgQVNT
RVJUKCFtX3B0cik7CisgICAgICAgIHJldHVybiBtX3B0cjsKKyAgICB9CisKKyAgICB2b2lkIHNl
dChUKiBwdHIpCisgICAgeworICAgICAgICBBU1NFUlQoIXB0ciB8fCBtX3B0ciAhPSBwdHIpOwor
ICAgICAgICBmcmVlT3duZWRHUHRyKG1fcHRyKTsKKyAgICAgICAgbV9wdHIgPSBwdHI7CisgICAg
fQorCisgICAgdm9pZCBjbGVhcigpCisgICAgeworICAgICAgICBmcmVlT3duZWRHUHRyKG1fcHRy
KTsKKyAgICAgICAgbV9wdHIgPSAwOworICAgIH0KKworICAgIFQmIG9wZXJhdG9yKigpIGNvbnN0
CisgICAgeworICAgICAgICBBU1NFUlQobV9wdHIpOworICAgICAgICByZXR1cm4gKm1fcHRyOwor
ICAgIH0KKworICAgIFQqIG9wZXJhdG9yLT4oKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJU
KG1fcHRyKTsKKyAgICAgICAgcmV0dXJuIG1fcHRyOworICAgIH0KKworICAgIGJvb2wgb3BlcmF0
b3IhKCkgY29uc3QgeyByZXR1cm4gIW1fcHRyOyB9CisKKyAgICAvLyBUaGlzIGNvbnZlcnNpb24g
b3BlcmF0b3IgYWxsb3dzIGltcGxpY2l0IGNvbnZlcnNpb24gdG8gYm9vbCBidXQgbm90IHRvIG90
aGVyIGludGVnZXIgdHlwZXMuCisgICAgdHlwZWRlZiBUKiBHT3duUHRyOjoqVW5zcGVjaWZpZWRC
b29sVHlwZTsKKyAgICBvcGVyYXRvciBVbnNwZWNpZmllZEJvb2xUeXBlKCkgY29uc3QgeyByZXR1
cm4gbV9wdHIgPyAmR093blB0cjo6bV9wdHIgOiAwOyB9CisKKyAgICB2b2lkIHN3YXAoR093blB0
ciYgbykgeyBzdGQ6OnN3YXAobV9wdHIsIG8ubV9wdHIpOyB9CisKK3ByaXZhdGU6CisgICAgVCog
bV9wdHI7Cit9OworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgc3dhcChHT3du
UHRyPFQ+JiBhLCBHT3duUHRyPFQ+JiBiKQoreworICAgIGEuc3dhcChiKTsKK30KKwordGVtcGxh
dGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3Qg
R093blB0cjxUPiYgYSwgVSogYikKK3sgCisgICAgcmV0dXJuIGEuZ2V0KCkgPT0gYjsgCit9CisK
K3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09
KFQqIGEsIGNvbnN0IEdPd25QdHI8VT4mIGIpIAoreworICAgIHJldHVybiBhID09IGIuZ2V0KCk7
IAorfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgb3Bl
cmF0b3IhPShjb25zdCBHT3duUHRyPFQ+JiBhLCBVKiBiKQoreworICAgIHJldHVybiBhLmdldCgp
ICE9IGI7IAorfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJv
b2wgb3BlcmF0b3IhPShUKiBhLCBjb25zdCBHT3duUHRyPFU+JiBiKQoreyAKKyAgICByZXR1cm4g
YSAhPSBiLmdldCgpOyAKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSB0eXBlbmFt
ZSBHT3duUHRyPFQ+OjpQdHJUeXBlIGdldFB0cihjb25zdCBHT3duUHRyPFQ+JiBwKQoreworICAg
IHJldHVybiBwLmdldCgpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQg
ZnJlZU93bmVkR1B0cihUKiBwdHIpCit7CisgICAgZ19mcmVlKHB0cik7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdURgorCit1c2luZyBXVEY6OkdPd25QdHI7CisKKyNlbmRpZiAvLyBHT3duUHRyX2gK
SW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi91bmljb2RlL2dsaWIvVW5pY29kZUdMaWIuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9nbGliL1VuaWNvZGVHTGliLmgJ
KHJldmlzaW9uIDUxMzAxKQorKysgSmF2YVNjcmlwdENvcmUvd3RmL3VuaWNvZGUvZ2xpYi9Vbmlj
b2RlR0xpYi5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAjZGVmaW5lIFVuaWNv
ZGVHTGliX2gKIAogI2luY2x1ZGUgIlVuaWNvZGVNYWNyb3NGcm9tSUNVLmgiCi0jaW5jbHVkZSA8
d3RmL0dPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ3RrL0dPd25QdHIuaD4KIAogI2luY2x1ZGUg
PGdsaWIuaD4KICNpbmNsdWRlIDxwYW5nby9wYW5nby5oPgpJbmRleDogV2ViQ29yZS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDUxMzAyKQorKysg
V2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAwOS0x
MS0yMiAgTGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBHT3duUHRyKiBm
cm9tIHd0ZiB0byB3dGYvZ3RrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMTc5MworCisgICAgICAgIE5vIG5ldyB0ZXN0cyBhcyB0aGVyZSBpcyBubyBm
dW5jdGlvbmFsIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4
dEVuY29kaW5nLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L2d0ay9UZXh0Q29kZWNHdGsu
Y3BwOgorCiAyMDA5LTExLTIyICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0u
Y29tPgogCiAgICAgICAgIE5vdCByZXZpZXdlZC4gQnVpbGQgZml4IGZvciBXTUwgZW5hYmxlZCBi
dWlsZHMuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAJKHJldmlzaW9uIDUxMzAxKQor
KysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsNyArNDYsNyBAQAogI2luY2x1ZGUgPGdzdC92
aWRlby92aWRlby5oPgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxtYXRoLmg+Ci0jaW5j
bHVkZSA8d3RmL0dPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ3RrL0dPd25QdHIuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIHN0ZDsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNv
ZGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGlu
Zy5jcHAJKHJldmlzaW9uIDUxMzAxKQorKysgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNv
ZGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlIDxRU3Ry
aW5nPgogI2VsaWYgVVNFKEdMSUJfVU5JQ09ERSkKICNpbmNsdWRlIDxnbGliLmg+Ci0jaW5jbHVk
ZSA8d3RmL0dPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvZ3RrL0dPd25QdHIuaD4KICNlbmRpZgog
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2d0ay9UZXh0Q29kZWNHdGsuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vdGV4dC9ndGsvVGV4dENvZGVjR3RrLmNwcAkocmV2aXNpb24gNTEz
MDEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3RleHQvZ3RrL1RleHRDb2RlY0d0ay5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgog
I2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNp
bmNsdWRlIDx3dGYvR093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9ndGsvR093blB0ci5oPgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKIAogdXNpbmcgc3RkOjptaW47CkluZGV4OiBXZWJLaXQvZ3RrL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkocmV2aXNpb24gNTEz
MDIpCisrKyBXZWJLaXQvZ3RrL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEy
IEBACisyMDA5LTExLTIyICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEuZ29tYm9zQG5va2lhLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3Zl
IEdPd25QdHIqIGZyb20gd3RmIHRvIHd0Zi9ndGsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNzkzCisKKyAgICAgICAgKiB3ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHA6CisKIDIwMDktMTEtMTkgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgpJbmRl
eDogV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAJKHJldmlzaW9uIDUxMzAxKQorKysgV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDcg
KzczLDcgQEAKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2NyaXB0VmFsdWUu
aCIKICNpbmNsdWRlICJTY3JvbGxiYXIuaCIKLSNpbmNsdWRlIDx3dGYvR093blB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9ndGsvR093blB0ci5oPgogCiAjaW5jbHVkZSA8Z2RrL2dka2tleXN5bXMuaD4K
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43966</attachid>
            <date>2009-11-27 12:21:25 -0800</date>
            <delta_ts>2009-11-27 12:23:20 -0800</delta_ts>
            <desc>Sorry, this was a wrong patch</desc>
            <filename>bug-31793-20091128052123.patch</filename>
            <type>text/plain</type>
            <size>20002</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAyZGI5ZmUxLi44NjRhNTFl
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMDktMTEtMjYgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgorCisgICAgICAgIE1vdmUgR093blB0
ciogZnJvbSB3dGYgdG8gd3RmL2d0aworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzE3OTMKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBBZGQgSmF2
YVNjcmlwdENvcmUvd3RmL2d0ayB0byAKKyAgICAgICAgICB0aGUgaW5jbHVkZSBwYXRoLgorCiAy
MDA5LTExLTI0ICBEbWl0cnkgVGl0b3YgIDxkaW1pY2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9H
TlVtYWtlZmlsZS5hbQppbmRleCBhMDgwZjk1Li4yYzMyMDg2IDEwMDY0NAotLS0gYS9HTlVtYWtl
ZmlsZS5hbQorKysgYi9HTlVtYWtlZmlsZS5hbQpAQCAtMTU3LDYgKzE1Nyw3IEBAIGphdmFzY3Jp
cHRjb3JlX2NwcGZsYWdzICs9IFwKIAktSSQoc3JjZGlyKS9KYXZhU2NyaXB0Q29yZS9Gb3J3YXJk
aW5nSGVhZGVycyBcCiAJLUkkKHNyY2RpcikvSmF2YVNjcmlwdENvcmUvcGFyc2VyIFwKIAktSSQo
c3JjZGlyKS9KYXZhU2NyaXB0Q29yZS93dGYgXAorCS1JJChzcmNkaXIpL0phdmFTY3JpcHRDb3Jl
L3d0Zi9ndGsgXAogCS1JJCh0b3BfYnVpbGRkaXIpL0Rlcml2ZWRTb3VyY2VzCiAKIG5vZGlzdF9F
WFRSQV9saWJKYXZhU2NyaXB0Q29yZV9sYV9TT1VSQ0VTID0gXApkaWZmIC0tZ2l0IGEvSmF2YVNj
cmlwdENvcmUvQ2hhbmdlTG9nIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGQ1ZDUw
NmUuLjdjNzVhYTQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9K
YXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAwOS0xMS0yNiAgTGFz
emxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgT2xpdmVyIEh1bnQuCisKKyAgICAgICAgTW92ZSBHT3duUHRyKiBmcm9tIHd0ZiB0byB3
dGYvZ3RrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MTc5MworCisgICAgICAgICogR05VbWFrZWZpbGUuYW06IENoYW5nZSB0aGUgcGF0aCBmb3IgR093
blB0ci4qLgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLmd5cC9KYXZhU2NyaXB0Q29yZS5neXA6
IFJlbW92ZQorICAgICAgICAgIEdPd25QdHIuY3BwIGZyb20gdGhlIGV4Y2x1ZGUgbGlzdC4KKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS5neXBpOiBDaGFuZ2UgdGhlIHBhdGggZm9yIEdPd25QdHIu
Ki4KKyAgICAgICAgKiB3c2NyaXB0OiBSZW1vdmUgR093blB0ci5jcHAgZnJvbSB0aGUgZXhjbHVk
ZSBsaXN0LgorICAgICAgICAqIHd0Zi9HT3duUHRyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiB3
dGYvR093blB0ci5oOiBSZW1vdmVkLgorICAgICAgICAqIHd0Zi9UaHJlYWRpbmcuaDogQ2hhbmdl
IHRoZSBwYXRoIGZvciBHT3duUHRyLmguCisgICAgICAgICogd3RmL2d0ay9HT3duUHRyLmNwcDog
Q29waWVkIGZyb20gSmF2YVNjcmlwdENvcmUvd3RmL0dPd25QdHIuY3BwLgorICAgICAgICAqIHd0
Zi9ndGsvR093blB0ci5oOiBDb3BpZWQgZnJvbSBKYXZhU2NyaXB0Q29yZS93dGYvR093blB0ci5o
LgorICAgICAgICAqIHd0Zi91bmljb2RlL2dsaWIvVW5pY29kZUdMaWIuaDogQ2hhbmdlIHRoZSBw
YXRoIGZvciBHT3duUHRyLmguCisKIDIwMDktMTEtMjQgIERtaXRyeSBUaXRvdiAgPGRpbWljaEBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1n
aXQgYS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbSBiL0phdmFTY3JpcHRDb3JlL0dOVW1h
a2VmaWxlLmFtCmluZGV4IGRmOWYwOWMuLjIxMzJmNzcgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRD
b3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmFtCkBA
IC0yMzYsOCArMjM2LDYgQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJSmF2YVNjcmlw
dENvcmUvd3RmL0RlcXVlLmggXAogCUphdmFTY3JpcHRDb3JlL3d0Zi9EaXNhbGxvd0NUeXBlLmgg
XAogCUphdmFTY3JpcHRDb3JlL3d0Zi9Gb3J3YXJkLmggXAotCUphdmFTY3JpcHRDb3JlL3d0Zi9H
T3duUHRyLmNwcCBcCi0JSmF2YVNjcmlwdENvcmUvd3RmL0dPd25QdHIuaCBcCiAJSmF2YVNjcmlw
dENvcmUvd3RmL0dldFB0ci5oIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvSGFzaENvdW50ZWRTZXQu
aCBcCiAJSmF2YVNjcmlwdENvcmUvd3RmL0hhc2hGdW5jdGlvbnMuaCBcCkBAIC0yODgsNiArMjg2
LDggQEAgamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJSmF2YVNjcmlwdENvcmUvd3RmL1Vu
dXNlZFBhcmFtLmggXAogCUphdmFTY3JpcHRDb3JlL3d0Zi9WZWN0b3IuaCBcCiAJSmF2YVNjcmlw
dENvcmUvd3RmL1ZlY3RvclRyYWl0cy5oIFwKKwlKYXZhU2NyaXB0Q29yZS93dGYvZ3RrL0dPd25Q
dHIuY3BwIFwKKwlKYXZhU2NyaXB0Q29yZS93dGYvZ3RrL0dPd25QdHIuaCBcCiAJSmF2YVNjcmlw
dENvcmUvd3RmL2d0ay9NYWluVGhyZWFkR3RrLmNwcCBcCiAJSmF2YVNjcmlwdENvcmUvd3RmL2d0
ay9UaHJlYWRpbmdHdGsuY3BwIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9Db2xsYXRv
ci5oIFwKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cC9KYXZh
U2NyaXB0Q29yZS5neXAgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXAvSmF2YVNj
cmlwdENvcmUuZ3lwCmluZGV4IDgzYmVjNWUuLjg1ZmNlYmIgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cC9KYXZhU2NyaXB0Q29yZS5neXAKKysrIGIvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwL0phdmFTY3JpcHRDb3JlLmd5cApAQCAtMTE0LDcg
KzExNCw3IEBACiAgICAgICAgICMgLi4uIFRoZW4gaW5jbHVkZSB3aGF0IHdlIHdhbnQuCiAgICAg
ICAgIFsnaW5jbHVkZScsICcuLi93dGYvJ10sCiAgICAgICAgICMgR0xpYi9HVEssIGV2ZW4gdGhv
dWdoIGl0cyBuYW1lIGRvZXNuJ3QgcmVhbGx5IGluZGljYXRlLgotICAgICAgICBbJ2V4Y2x1ZGUn
LCAnLyhHT3duUHRyfGdsaWIvLiopXFwuKGNwcHxoKSQnXSwKKyAgICAgICAgWydleGNsdWRlJywg
Jy8oZ2xpYi8uKilcXC4oY3BwfGgpJCddLAogICAgICAgICBbJ2V4Y2x1ZGUnLCAnKERlZmF1bHR8
R3RrfE1hY3xOb25lfFF0fFdpbnxXeClcXC4oY3BwfG1tKSQnXSwKICAgICAgICAgWydleGNsdWRl
JywgJ3d0Zi9DdXJyZW50VGltZVxcLmNwcCQnXSwKICAgICAgICAgWydleGNsdWRlJywgJ3d0Zi9U
Qy4qXFwuKGNwcHxoKSQnXSwKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmd5cGkgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCmluZGV4IGMwYzM2
M2EuLjM4MDk3YzkgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5
cGkKKysrIGIvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQpAQCAtMzcwLDggKzM3
MCw4IEBACiAgICAgICAgICAgICAnd3RmL0Zhc3RNYWxsb2MuaCcsCiAgICAgICAgICAgICAnd3Rm
L0ZvcndhcmQuaCcsCiAgICAgICAgICAgICAnd3RmL0dldFB0ci5oJywKLSAgICAgICAgICAgICd3
dGYvR093blB0ci5jcHAnLAotICAgICAgICAgICAgJ3d0Zi9HT3duUHRyLmgnLAorICAgICAgICAg
ICAgJ3d0Zi9ndGsvR093blB0ci5jcHAnLAorICAgICAgICAgICAgJ3d0Zi9ndGsvR093blB0ci5o
JywKICAgICAgICAgICAgICd3dGYvZ3RrL01haW5UaHJlYWRHdGsuY3BwJywKICAgICAgICAgICAg
ICd3dGYvZ3RrL1RocmVhZGluZ0d0ay5jcHAnLAogICAgICAgICAgICAgJ3d0Zi9IYXNoQ291bnRl
ZFNldC5oJywKZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL3dzY3JpcHQgYi9KYXZhU2NyaXB0
Q29yZS93c2NyaXB0CmluZGV4IDdhNWJhMWIuLjM1Njk1MGYgMTAwNjQ0Ci0tLSBhL0phdmFTY3Jp
cHRDb3JlL3dzY3JpcHQKKysrIGIvSmF2YVNjcmlwdENvcmUvd3NjcmlwdApAQCAtMjksNyArMjks
NyBAQCBpbXBvcnQgY29tbWFuZHMKIAogZnJvbSBzZXR0aW5ncyBpbXBvcnQgKgogCi1qc2NvcmVf
ZXhjbHVkZXMgPSBbJ2pzYy5jcHAnLCAndWNwdGFibGUuY3BwJywgJ0dPd25QdHIuY3BwJ10KK2pz
Y29yZV9leGNsdWRlcyA9IFsnanNjLmNwcCcsICd1Y3B0YWJsZS5jcHAnXQoganNjb3JlX2V4Y2x1
ZGVzLmV4dGVuZChnZXRfZXhjbHVkZXMoanNjb3JlX2RpciwgWycqQ0YuY3BwJywgJypTeW1iaWFu
LmNwcCddKSkKIAogc291cmNlcyA9IFtdCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYv
R093blB0ci5jcHAgYi9KYXZhU2NyaXB0Q29yZS93dGYvR093blB0ci5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDg5OTk5NjIuLjAwMDAwMDAKLS0tIGEvSmF2YVNjcmlwdENvcmUv
d3RmL0dPd25QdHIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNjcgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotICog
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdB
UlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqICBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0g
KgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0gKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNB
Ci0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkdPd25QdHIuaCIKLQotI2lu
Y2x1ZGUgPGdsaWIuaD4KLQotbmFtZXNwYWNlIFdURiB7Ci0KLXRlbXBsYXRlIDw+IHZvaWQgZnJl
ZU93bmVkR1B0cjxHRXJyb3I+KEdFcnJvciogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAg
IGdfZXJyb3JfZnJlZShwdHIpOwotfQotCi10ZW1wbGF0ZSA8PiB2b2lkIGZyZWVPd25lZEdQdHI8
R0xpc3Q+KEdMaXN0KiBwdHIpCi17Ci0gICAgZ19saXN0X2ZyZWUocHRyKTsKLX0KLQotdGVtcGxh
dGUgPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdDb25kPihHQ29uZCogcHRyKQotewotICAgIGlmIChw
dHIpCi0gICAgICAgIGdfY29uZF9mcmVlKHB0cik7Ci19Ci0KLXRlbXBsYXRlIDw+IHZvaWQgZnJl
ZU93bmVkR1B0cjxHTXV0ZXg+KEdNdXRleCogcHRyKQotewotICAgIGlmIChwdHIpCi0gICAgICAg
IGdfbXV0ZXhfZnJlZShwdHIpOwotfQotCi10ZW1wbGF0ZSA8PiB2b2lkIGZyZWVPd25lZEdQdHI8
R1BhdHRlcm5TcGVjPihHUGF0dGVyblNwZWMqIHB0cikKLXsKLSAgICBpZiAocHRyKQotICAgICAg
ICBnX3BhdHRlcm5fc3BlY19mcmVlKHB0cik7Ci19Ci0KLXRlbXBsYXRlIDw+IHZvaWQgZnJlZU93
bmVkR1B0cjxHRGlyPihHRGlyKiBwdHIpCi17Ci0gICAgaWYgKHB0cikKLSAgICAgICAgZ19kaXJf
Y2xvc2UocHRyKTsKLX0KLQotdGVtcGxhdGUgPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdIYXNoVGFi
bGU+KEdIYXNoVGFibGUqIHB0cikKLXsKLSAgICBpZiAocHRyKQotICAgICAgICBnX2hhc2hfdGFi
bGVfdW5yZWYocHRyKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9KYXZh
U2NyaXB0Q29yZS93dGYvR093blB0ci5oIGIvSmF2YVNjcmlwdENvcmUvd3RmL0dPd25QdHIuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWQyYzMwZS4uMDAwMDAwMAotLS0gYS9KYXZh
U2NyaXB0Q29yZS93dGYvR093blB0ci5oCisrKyAvZGV2L251bGwKQEAgLTEsMTQ2ICswLDAgQEAK
LS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDggQ29sbGFib3JhIEx0ZC4KLSAqCi0gKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkg
aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqICBhbG9uZyB3aXRo
IHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0
bwotICogIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0
cmVldCwgRmlmdGggRmxvb3IsCi0gKiAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKgot
ICovCi0KLSNpZm5kZWYgR093blB0cl9oCi0jZGVmaW5lIEdPd25QdHJfaAotCi0jaW5jbHVkZSA8
YWxnb3JpdGhtPgotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+Ci0KLS8vIEZvcndhcmQgZGVsY2FyYXRpb25zIGF0IHRoaXMgcG9pbnQgYXZv
aWQgdGhlIG5lZWQgdG8gaW5jbHVkZSBHTGliIGluY2x1ZGVzCi0vLyBpbiBXVEYgaGVhZGVycy4K
LXR5cGVkZWYgc3RydWN0IF9HRXJyb3IgR0Vycm9yOwotdHlwZWRlZiBzdHJ1Y3QgX0dMaXN0IEdM
aXN0OwotdHlwZWRlZiBzdHJ1Y3QgX0dDb25kIEdDb25kOwotdHlwZWRlZiBzdHJ1Y3QgX0dNdXRl
eCBHTXV0ZXg7Ci10eXBlZGVmIHN0cnVjdCBfR1BhdHRlcm5TcGVjIEdQYXR0ZXJuU3BlYzsKLXR5
cGVkZWYgc3RydWN0IF9HRGlyIEdEaXI7Ci10eXBlZGVmIHN0cnVjdCBfR0hhc2hUYWJsZSBHSGFz
aFRhYmxlOwotZXh0ZXJuICJDIiB2b2lkIGdfZnJlZSh2b2lkKik7Ci0KLW5hbWVzcGFjZSBXVEYg
ewotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gaW5saW5lIHZvaWQgZnJlZU93bmVkR1B0cihUKiBw
dHIpOwotdGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8R0Vycm9yPihHRXJyb3IqKTsKLXRl
bXBsYXRlPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdMaXN0PihHTGlzdCopOwotdGVtcGxhdGU8PiB2
b2lkIGZyZWVPd25lZEdQdHI8R0NvbmQ+KEdDb25kKik7Ci10ZW1wbGF0ZTw+IHZvaWQgZnJlZU93
bmVkR1B0cjxHTXV0ZXg+KEdNdXRleCopOwotdGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8
R1BhdHRlcm5TcGVjPihHUGF0dGVyblNwZWMqKTsKLXRlbXBsYXRlPD4gdm9pZCBmcmVlT3duZWRH
UHRyPEdEaXI+KEdEaXIqKTsKLXRlbXBsYXRlPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdIYXNoVGFi
bGU+KEdIYXNoVGFibGUqKTsKLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIEdPd25QdHIg
OiBwdWJsaWMgTm9uY29weWFibGUgewotcHVibGljOgotICAgIGV4cGxpY2l0IEdPd25QdHIoVCog
cHRyID0gMCkgOiBtX3B0cihwdHIpIHsgfQotICAgIH5HT3duUHRyKCkgeyBmcmVlT3duZWRHUHRy
KG1fcHRyKTsgfQotCi0gICAgVCogZ2V0KCkgY29uc3QgeyByZXR1cm4gbV9wdHI7IH0KLSAgICBU
KiByZWxlYXNlKCkKLSAgICB7Ci0gICAgICAgIFQqIHB0ciA9IG1fcHRyOwotICAgICAgICBtX3B0
ciA9IDA7Ci0gICAgICAgIHJldHVybiBwdHI7Ci0gICAgfQotCi0gICAgVComIG91dFB0cigpCi0g
ICAgewotICAgICAgICBBU1NFUlQoIW1fcHRyKTsKLSAgICAgICAgcmV0dXJuIG1fcHRyOwotICAg
IH0KLQotICAgIHZvaWQgc2V0KFQqIHB0cikKLSAgICB7Ci0gICAgICAgIEFTU0VSVCghcHRyIHx8
IG1fcHRyICE9IHB0cik7Ci0gICAgICAgIGZyZWVPd25lZEdQdHIobV9wdHIpOwotICAgICAgICBt
X3B0ciA9IHB0cjsKLSAgICB9Ci0KLSAgICB2b2lkIGNsZWFyKCkKLSAgICB7Ci0gICAgICAgIGZy
ZWVPd25lZEdQdHIobV9wdHIpOwotICAgICAgICBtX3B0ciA9IDA7Ci0gICAgfQotCi0gICAgVCYg
b3BlcmF0b3IqKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3B0cik7Ci0gICAgICAg
IHJldHVybiAqbV9wdHI7Ci0gICAgfQotCi0gICAgVCogb3BlcmF0b3ItPigpIGNvbnN0Ci0gICAg
ewotICAgICAgICBBU1NFUlQobV9wdHIpOwotICAgICAgICByZXR1cm4gbV9wdHI7Ci0gICAgfQot
Ci0gICAgYm9vbCBvcGVyYXRvciEoKSBjb25zdCB7IHJldHVybiAhbV9wdHI7IH0KLQotICAgIC8v
IFRoaXMgY29udmVyc2lvbiBvcGVyYXRvciBhbGxvd3MgaW1wbGljaXQgY29udmVyc2lvbiB0byBi
b29sIGJ1dCBub3QgdG8gb3RoZXIgaW50ZWdlciB0eXBlcy4KLSAgICB0eXBlZGVmIFQqIEdPd25Q
dHI6OipVbnNwZWNpZmllZEJvb2xUeXBlOwotICAgIG9wZXJhdG9yIFVuc3BlY2lmaWVkQm9vbFR5
cGUoKSBjb25zdCB7IHJldHVybiBtX3B0ciA/ICZHT3duUHRyOjptX3B0ciA6IDA7IH0KLQotICAg
IHZvaWQgc3dhcChHT3duUHRyJiBvKSB7IHN0ZDo6c3dhcChtX3B0ciwgby5tX3B0cik7IH0KLQot
cHJpdmF0ZToKLSAgICBUKiBtX3B0cjsKLX07Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxp
bmUgdm9pZCBzd2FwKEdPd25QdHI8VD4mIGEsIEdPd25QdHI8VD4mIGIpCi17Ci0gICAgYS5zd2Fw
KGIpOwotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wg
b3BlcmF0b3I9PShjb25zdCBHT3duUHRyPFQ+JiBhLCBVKiBiKQoteyAKLSAgICByZXR1cm4gYS5n
ZXQoKSA9PSBiOyAKLX0KLQotdGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlubGlu
ZSBib29sIG9wZXJhdG9yPT0oVCogYSwgY29uc3QgR093blB0cjxVPiYgYikgCi17Ci0gICAgcmV0
dXJuIGEgPT0gYi5nZXQoKTsgCi19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBV
PiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEdPd25QdHI8VD4mIGEsIFUqIGIpCi17Ci0g
ICAgcmV0dXJuIGEuZ2V0KCkgIT0gYjsgCi19Ci0KLXRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBl
bmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KFQqIGEsIGNvbnN0IEdPd25QdHI8VT4mIGIp
Ci17IAotICAgIHJldHVybiBhICE9IGIuZ2V0KCk7IAotfQotCi10ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4gaW5saW5lIHR5cGVuYW1lIEdPd25QdHI8VD46OlB0clR5cGUgZ2V0UHRyKGNvbnN0IEdPd25Q
dHI8VD4mIHApCi17Ci0gICAgcmV0dXJuIHAuZ2V0KCk7Ci19Ci0KLXRlbXBsYXRlIDx0eXBlbmFt
ZSBUPiBpbmxpbmUgdm9pZCBmcmVlT3duZWRHUHRyKFQqIHB0cikKLXsKLSAgICBnX2ZyZWUocHRy
KTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV1RGCi0KLXVzaW5nIFdURjo6R093blB0cjsKLQotI2Vu
ZGlmIC8vIEdPd25QdHJfaApkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZGlu
Zy5oIGIvSmF2YVNjcmlwdENvcmUvd3RmL1RocmVhZGluZy5oCmluZGV4IGIyNGU3YzguLjJhMmU5
YzQgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL3d0Zi9UaHJlYWRpbmcuaAorKysgYi9KYXZh
U2NyaXB0Q29yZS93dGYvVGhyZWFkaW5nLmgKQEAgLTg2LDcgKzg2LDcgQEAKICNpZiBVU0UoUFRI
UkVBRFMpCiAjaW5jbHVkZSA8cHRocmVhZC5oPgogI2VsaWYgUExBVEZPUk0oR1RLKQotI2luY2x1
ZGUgPHd0Zi9HT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL2d0ay9HT3duUHRyLmg+CiB0eXBlZGVm
IHN0cnVjdCBfR011dGV4IEdNdXRleDsKIHR5cGVkZWYgc3RydWN0IF9HQ29uZCBHQ29uZDsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvSmF2YVNjcmlwdENvcmUvd3RmL2d0ay9HT3duUHRyLmNwcCBiL0ph
dmFTY3JpcHRDb3JlL3d0Zi9ndGsvR093blB0ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uODk5OTk2MgotLS0gL2Rldi9udWxsCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0
Zi9ndGsvR093blB0ci5jcHAKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOCBDb2xsYWJvcmEgTHRkLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRv
IHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdPd25QdHIuaCIKKworI2luY2x1ZGUgPGdsaWIu
aD4KKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlIDw+IHZvaWQgZnJlZU93bmVkR1B0cjxH
RXJyb3I+KEdFcnJvciogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdfZXJyb3JfZnJl
ZShwdHIpOworfQorCit0ZW1wbGF0ZSA8PiB2b2lkIGZyZWVPd25lZEdQdHI8R0xpc3Q+KEdMaXN0
KiBwdHIpCit7CisgICAgZ19saXN0X2ZyZWUocHRyKTsKK30KKwordGVtcGxhdGUgPD4gdm9pZCBm
cmVlT3duZWRHUHRyPEdDb25kPihHQ29uZCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAg
IGdfY29uZF9mcmVlKHB0cik7Cit9CisKK3RlbXBsYXRlIDw+IHZvaWQgZnJlZU93bmVkR1B0cjxH
TXV0ZXg+KEdNdXRleCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGdfbXV0ZXhfZnJl
ZShwdHIpOworfQorCit0ZW1wbGF0ZSA8PiB2b2lkIGZyZWVPd25lZEdQdHI8R1BhdHRlcm5TcGVj
PihHUGF0dGVyblNwZWMqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBnX3BhdHRlcm5f
c3BlY19mcmVlKHB0cik7Cit9CisKK3RlbXBsYXRlIDw+IHZvaWQgZnJlZU93bmVkR1B0cjxHRGly
PihHRGlyKiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAgICAgZ19kaXJfY2xvc2UocHRyKTsK
K30KKwordGVtcGxhdGUgPD4gdm9pZCBmcmVlT3duZWRHUHRyPEdIYXNoVGFibGU+KEdIYXNoVGFi
bGUqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBnX2hhc2hfdGFibGVfdW5yZWYocHRy
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93
dGYvZ3RrL0dPd25QdHIuaCBiL0phdmFTY3JpcHRDb3JlL3d0Zi9ndGsvR093blB0ci5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkMmMzMGUKLS0tIC9kZXYvbnVsbAorKysg
Yi9KYXZhU2NyaXB0Q29yZS93dGYvZ3RrL0dPd25QdHIuaApAQCAtMCwwICsxLDE0NiBAQAorLyoK
KyAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogIENvcHlyaWdodCAoQykgMjAwOCBDb2xsYWJvcmEgTHRkLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqCisgKi8K
KworI2lmbmRlZiBHT3duUHRyX2gKKyNkZWZpbmUgR093blB0cl9oCisKKyNpbmNsdWRlIDxhbGdv
cml0aG0+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KKworLy8gRm9yd2FyZCBkZWxjYXJhdGlvbnMgYXQgdGhpcyBwb2ludCBhdm9pZCB0
aGUgbmVlZCB0byBpbmNsdWRlIEdMaWIgaW5jbHVkZXMKKy8vIGluIFdURiBoZWFkZXJzLgordHlw
ZWRlZiBzdHJ1Y3QgX0dFcnJvciBHRXJyb3I7Cit0eXBlZGVmIHN0cnVjdCBfR0xpc3QgR0xpc3Q7
Cit0eXBlZGVmIHN0cnVjdCBfR0NvbmQgR0NvbmQ7Cit0eXBlZGVmIHN0cnVjdCBfR011dGV4IEdN
dXRleDsKK3R5cGVkZWYgc3RydWN0IF9HUGF0dGVyblNwZWMgR1BhdHRlcm5TcGVjOwordHlwZWRl
ZiBzdHJ1Y3QgX0dEaXIgR0RpcjsKK3R5cGVkZWYgc3RydWN0IF9HSGFzaFRhYmxlIEdIYXNoVGFi
bGU7CitleHRlcm4gIkMiIHZvaWQgZ19mcmVlKHZvaWQqKTsKKworbmFtZXNwYWNlIFdURiB7CisK
K3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBpbmxpbmUgdm9pZCBmcmVlT3duZWRHUHRyKFQqIHB0cik7
Cit0ZW1wbGF0ZTw+IHZvaWQgZnJlZU93bmVkR1B0cjxHRXJyb3I+KEdFcnJvciopOwordGVtcGxh
dGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8R0xpc3Q+KEdMaXN0Kik7Cit0ZW1wbGF0ZTw+IHZvaWQg
ZnJlZU93bmVkR1B0cjxHQ29uZD4oR0NvbmQqKTsKK3RlbXBsYXRlPD4gdm9pZCBmcmVlT3duZWRH
UHRyPEdNdXRleD4oR011dGV4Kik7Cit0ZW1wbGF0ZTw+IHZvaWQgZnJlZU93bmVkR1B0cjxHUGF0
dGVyblNwZWM+KEdQYXR0ZXJuU3BlYyopOwordGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8
R0Rpcj4oR0RpciopOwordGVtcGxhdGU8PiB2b2lkIGZyZWVPd25lZEdQdHI8R0hhc2hUYWJsZT4o
R0hhc2hUYWJsZSopOworCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgR093blB0ciA6IHB1
YmxpYyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgR093blB0cihUKiBwdHIg
PSAwKSA6IG1fcHRyKHB0cikgeyB9CisgICAgfkdPd25QdHIoKSB7IGZyZWVPd25lZEdQdHIobV9w
dHIpOyB9CisKKyAgICBUKiBnZXQoKSBjb25zdCB7IHJldHVybiBtX3B0cjsgfQorICAgIFQqIHJl
bGVhc2UoKQorICAgIHsKKyAgICAgICAgVCogcHRyID0gbV9wdHI7CisgICAgICAgIG1fcHRyID0g
MDsKKyAgICAgICAgcmV0dXJuIHB0cjsKKyAgICB9CisKKyAgICBUKiYgb3V0UHRyKCkKKyAgICB7
CisgICAgICAgIEFTU0VSVCghbV9wdHIpOworICAgICAgICByZXR1cm4gbV9wdHI7CisgICAgfQor
CisgICAgdm9pZCBzZXQoVCogcHRyKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFwdHIgfHwgbV9w
dHIgIT0gcHRyKTsKKyAgICAgICAgZnJlZU93bmVkR1B0cihtX3B0cik7CisgICAgICAgIG1fcHRy
ID0gcHRyOworICAgIH0KKworICAgIHZvaWQgY2xlYXIoKQorICAgIHsKKyAgICAgICAgZnJlZU93
bmVkR1B0cihtX3B0cik7CisgICAgICAgIG1fcHRyID0gMDsKKyAgICB9CisKKyAgICBUJiBvcGVy
YXRvciooKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fcHRyKTsKKyAgICAgICAgcmV0
dXJuICptX3B0cjsKKyAgICB9CisKKyAgICBUKiBvcGVyYXRvci0+KCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChtX3B0cik7CisgICAgICAgIHJldHVybiBtX3B0cjsKKyAgICB9CisKKyAg
ICBib29sIG9wZXJhdG9yISgpIGNvbnN0IHsgcmV0dXJuICFtX3B0cjsgfQorCisgICAgLy8gVGhp
cyBjb252ZXJzaW9uIG9wZXJhdG9yIGFsbG93cyBpbXBsaWNpdCBjb252ZXJzaW9uIHRvIGJvb2wg
YnV0IG5vdCB0byBvdGhlciBpbnRlZ2VyIHR5cGVzLgorICAgIHR5cGVkZWYgVCogR093blB0cjo6
KlVuc3BlY2lmaWVkQm9vbFR5cGU7CisgICAgb3BlcmF0b3IgVW5zcGVjaWZpZWRCb29sVHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fcHRyID8gJkdPd25QdHI6Om1fcHRyIDogMDsgfQorCisgICAgdm9p
ZCBzd2FwKEdPd25QdHImIG8pIHsgc3RkOjpzd2FwKG1fcHRyLCBvLm1fcHRyKTsgfQorCitwcml2
YXRlOgorICAgIFQqIG1fcHRyOworfTsKKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGlubGluZSB2
b2lkIHN3YXAoR093blB0cjxUPiYgYSwgR093blB0cjxUPiYgYikKK3sKKyAgICBhLnN3YXAoYik7
Cit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPiBpbmxpbmUgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IEdPd25QdHI8VD4mIGEsIFUqIGIpCit7IAorICAgIHJldHVybiBhLmdldCgp
ID09IGI7IAorfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJv
b2wgb3BlcmF0b3I9PShUKiBhLCBjb25zdCBHT3duUHRyPFU+JiBiKSAKK3sKKyAgICByZXR1cm4g
YSA9PSBiLmdldCgpOyAKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+IGlu
bGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgR093blB0cjxUPiYgYSwgVSogYikKK3sKKyAgICBy
ZXR1cm4gYS5nZXQoKSAhPSBiOyAKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1l
IFU+IGlubGluZSBib29sIG9wZXJhdG9yIT0oVCogYSwgY29uc3QgR093blB0cjxVPiYgYikKK3sg
CisgICAgcmV0dXJuIGEgIT0gYi5nZXQoKTsgCit9CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBUPiBp
bmxpbmUgdHlwZW5hbWUgR093blB0cjxUPjo6UHRyVHlwZSBnZXRQdHIoY29uc3QgR093blB0cjxU
PiYgcCkKK3sKKyAgICByZXR1cm4gcC5nZXQoKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+
IGlubGluZSB2b2lkIGZyZWVPd25lZEdQdHIoVCogcHRyKQoreworICAgIGdfZnJlZShwdHIpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpHT3duUHRyOworCisjZW5kaWYg
Ly8gR093blB0cl9oCmRpZmYgLS1naXQgYS9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9nbGli
L1VuaWNvZGVHTGliLmggYi9KYXZhU2NyaXB0Q29yZS93dGYvdW5pY29kZS9nbGliL1VuaWNvZGVH
TGliLmgKaW5kZXggYjVlNzBkNC4uZDcyZTcwNyAxMDA2NDQKLS0tIGEvSmF2YVNjcmlwdENvcmUv
d3RmL3VuaWNvZGUvZ2xpYi9Vbmljb2RlR0xpYi5oCisrKyBiL0phdmFTY3JpcHRDb3JlL3d0Zi91
bmljb2RlL2dsaWIvVW5pY29kZUdMaWIuaApAQCAtMjYsNyArMjYsNyBAQAogI2RlZmluZSBVbmlj
b2RlR0xpYl9oCiAKICNpbmNsdWRlICJVbmljb2RlTWFjcm9zRnJvbUlDVS5oIgotI2luY2x1ZGUg
PHd0Zi9HT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL2d0ay9HT3duUHRyLmg+CiAKICNpbmNsdWRl
IDxnbGliLmg+CiAjaW5jbHVkZSA8cGFuZ28vcGFuZ28uaD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
Q2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTgzMTcwYi4uYTZmMTQwMiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAwOS0xMS0yNiAgTGFzemxvIEdvbWJvcyAgPGxhc3psby4xLmdvbWJvc0Bu
b2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCisKKyAgICAgICAg
TW92ZSBHT3duUHRyKiBmcm9tIHd0ZiB0byB3dGYvZ3RrCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTc5MworCisgICAgICAgIE5vIG5ldyB0ZXN0cyBh
cyB0aGVyZSBpcyBubyBmdW5jdGlvbmFsIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOiBDaGFuZ2UgdGhlCisg
ICAgICAgICAgcGF0aCBmb3IgR093blB0ci5oLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4
dEVuY29kaW5nLmNwcDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9ndGsvVGV4dENv
ZGVjR3RrLmNwcDogRGl0dG8uCisKIDIwMDktMTEtMjYgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5
c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTm90IHJldmlld2VkLiBCdWlsZCBmaXg6IHJldmVy
dCByNTE0MjEuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
dGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBjMDI0MmExLi45MmRlMzky
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAKICNpbmNsdWRl
IDxnc3QvdmlkZW8vdmlkZW8uaD4KICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWF0aC5o
PgotI2luY2x1ZGUgPHd0Zi9HT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL2d0ay9HT3duUHRyLmg+
CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0RW5jb2RpbmcuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRFbmNvZGlu
Zy5jcHAKaW5kZXggMGMwN2IxMS4uZWM5YThiMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1RleHRFbmNvZGluZy5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRF
bmNvZGluZy5jcHAKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlIDxRU3RyaW5nPgogI2VsaWYg
VVNFKEdMSUJfVU5JQ09ERSkKICNpbmNsdWRlIDxnbGliLmg+Ci0jaW5jbHVkZSA8d3RmL0dPd25Q
dHIuaD4KKyNpbmNsdWRlIDx3dGYvZ3RrL0dPd25QdHIuaD4KICNlbmRpZgogI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL093blB0ci5oPgpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L2d0ay9UZXh0Q29kZWNHdGsuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L2d0ay9UZXh0Q29kZWNHdGsuY3BwCmluZGV4IGVlZjQyMWUuLjMxZGEzYjcgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9ndGsvVGV4dENvZGVjR3RrLmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvZ3RrL1RleHRDb2RlY0d0ay5jcHAKQEAgLTMzLDcgKzMzLDcgQEAK
ICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvR093blB0ci5oPgorI2lu
Y2x1ZGUgPHd0Zi9ndGsvR093blB0ci5oPgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKIAogdXNpbmcg
c3RkOjptaW47CmRpZmYgLS1naXQgYS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCmluZGV4IDBkYWQ5MGMuLjJmNmFkZmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCisrKyBiL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MDktMTEtMjYgIExhc3psbyBHb21ib3MgIDxsYXN6bG8uMS5nb21ib3NAbm9raWEuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgorCisgICAgICAgIE1vdmUgR093blB0ciog
ZnJvbSB3dGYgdG8gd3RmL2d0aworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzE3OTMKKworICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDog
Q2hhbmdlIHRoZSBwYXRoIGZvciBHT3duUHRyLmguCisKIDIwMDktMTEtMjQgIEpvYW5tYXJpZSBE
aWdncyAgPGpvYW5tYXJpZS5kaWdnc0BnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
WGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5j
cHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCBiODA0OGUzLi40
ZGE2NWFhIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAor
KysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtNzMsNyArNzMsNyBA
QAogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgogI2lu
Y2x1ZGUgIlNjcm9sbGJhci5oIgotI2luY2x1ZGUgPHd0Zi9HT3duUHRyLmg+CisjaW5jbHVkZSA8
d3RmL2d0ay9HT3duUHRyLmg+CiAKICNpbmNsdWRlIDxnZGsvZ2Rra2V5c3ltcy5oPgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43967</attachid>
            <date>2009-11-27 12:23:24 -0800</date>
            <delta_ts>2009-11-27 16:21:01 -0800</delta_ts>
            <desc>chromium build fix</desc>
            <filename>bug-31793-20091128052322.patch</filename>
            <type>text/plain</type>
            <size>1259</size>
            <attacher name="Shinichiro Hamaji">hamaji</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCA3Yzc1YWE0Li4zOGFiYjkzIDEwMDY0NAotLS0gYS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMDktMTEtMjcgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIEdP
d25QdHIqIGZyb20gd3RmIHRvIHd0Zi9ndGsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTMxNzkzCisKKyAgICAgICAgRXhjbHVkZSBndGsgZGlyZWN0b3J5
IGZyb20gY2hyb21pdW0gYnVpbGQuCisKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5neXAvSmF2
YVNjcmlwdENvcmUuZ3lwOgorCiAyMDA5LTExLTI2ICBMYXN6bG8gR29tYm9zICA8bGFzemxvLjEu
Z29tYm9zQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KZGlm
ZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cC9KYXZhU2NyaXB0Q29y
ZS5neXAgYi9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXAvSmF2YVNjcmlwdENvcmUu
Z3lwCmluZGV4IDg1ZmNlYmIuLjY0ZTIwYTIgMTAwNjQ0Ci0tLSBhL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmd5cC9KYXZhU2NyaXB0Q29yZS5neXAKKysrIGIvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUuZ3lwL0phdmFTY3JpcHRDb3JlLmd5cApAQCAtMTE0LDcgKzExNCw3IEBA
CiAgICAgICAgICMgLi4uIFRoZW4gaW5jbHVkZSB3aGF0IHdlIHdhbnQuCiAgICAgICAgIFsnaW5j
bHVkZScsICcuLi93dGYvJ10sCiAgICAgICAgICMgR0xpYi9HVEssIGV2ZW4gdGhvdWdoIGl0cyBu
YW1lIGRvZXNuJ3QgcmVhbGx5IGluZGljYXRlLgotICAgICAgICBbJ2V4Y2x1ZGUnLCAnLyhnbGli
Ly4qKVxcLihjcHB8aCkkJ10sCisgICAgICAgIFsnZXhjbHVkZScsICcvKGd0a3xnbGliKS8uKlxc
LihjcHB8aCkkJ10sCiAgICAgICAgIFsnZXhjbHVkZScsICcoRGVmYXVsdHxHdGt8TWFjfE5vbmV8
UXR8V2lufFd4KVxcLihjcHB8bW0pJCddLAogICAgICAgICBbJ2V4Y2x1ZGUnLCAnd3RmL0N1cnJl
bnRUaW1lXFwuY3BwJCddLAogICAgICAgICBbJ2V4Y2x1ZGUnLCAnd3RmL1RDLipcXC4oY3BwfGgp
JCddLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>