<?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>87420</bug_id>
          
          <creation_ts>2012-05-24 13:30:26 -0700</creation_ts>
          <short_desc>Move cacheFlush from ExecutableAllocator to Assembler classes</short_desc>
          <delta_ts>2012-05-24 14:14:22 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>633124</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-05-24 13:30:26 -0700</bug_when>
    <thetext>Makes more sense there, &amp; remove a pile of #ifdefs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633127</commentid>
    <comment_count>1</comment_count>
      <attachid>143882</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-05-24 13:31:59 -0700</bug_when>
    <thetext>Created attachment 143882
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633132</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-24 13:34:16 -0700</bug_when>
    <thetext>Attachment 143882 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/JavaScriptCore/assembler/X86Assembler.h:1820:  Missing space inside { }.  [whitespace/braces] [5]
Source/JavaScriptCore/assembler/ARMAssembler.h:868:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/JavaScriptCore/assembler/ARMAssembler.h:876:  Extra space before ( in function call  [whitespace/parens] [4]
Source/JavaScriptCore/assembler/ARMv7Assembler.h:2078:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 4 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633178</commentid>
    <comment_count>3</comment_count>
      <attachid>143889</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-05-24 13:51:56 -0700</bug_when>
    <thetext>Created attachment 143889
Style fixes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>633208</commentid>
    <comment_count>4</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-05-24 14:14:22 -0700</bug_when>
    <thetext>Fixed in r118413</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143882</attachid>
            <date>2012-05-24 13:31:59 -0700</date>
            <delta_ts>2012-05-24 13:51:56 -0700</delta_ts>
            <desc>Fix</desc>
            <filename>87420.patch</filename>
            <type>text/plain</type>
            <size>18192</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE4NDA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBA
CisyMDEyLTA1LTI0ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
KworICAgICAgICBNb3ZlIGNhY2hlRmx1c2ggZnJvbSBFeGVjdXRhYmxlQWxsb2NhdG9yIHRvIEFz
c2VtYmxlciBjbGFzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NzQyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1ha2VzIG1vcmUgc2Vuc2UgdGhlcmUsICYgcmVtb3ZlIGEgcGlsZSBvZiAjaWZkZWZz
LgorCisgICAgICAgICogYXNzZW1ibGVyL0FSTUFzc2VtYmxlci5jcHA6CisgICAgICAgIChKU0Mp
OgorICAgICAgICAoSlNDOjpBUk1Bc3NlbWJsZXI6OmNhY2hlRmx1c2gpOgorICAgICAgICAqIGFz
c2VtYmxlci9BUk1Bc3NlbWJsZXIuaDoKKyAgICAgICAgKEFSTUFzc2VtYmxlcik6CisgICAgICAg
IChKU0M6OkFSTUFzc2VtYmxlcjo6Y2FjaGVGbHVzaCk6CisgICAgICAgICogYXNzZW1ibGVyL0FS
TXY3QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjpyZWxpbmtKdW1w
KToKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OmNhY2hlRmx1c2gpOgorICAgICAgICAo
QVJNdjdBc3NlbWJsZXIpOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6c2V0SW50MzIp
OgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6c2V0VUludDdGb3JMb2FkKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpB
YnN0cmFjdE1hY3JvQXNzZW1ibGVyOjpjYWNoZUZsdXNoKToKKyAgICAgICAgKiBhc3NlbWJsZXIv
TGlua0J1ZmZlci5oOgorICAgICAgICAoSlNDOjpMaW5rQnVmZmVyOjpwZXJmb3JtRmluYWxpemF0
aW9uKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oOgorICAgICAgICAoSlND
OjpNSVBTQXNzZW1ibGVyOjpyZWxpbmtKdW1wKToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxl
cjo6cmVsaW5rQ2FsbCk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OnJlcGF0Y2hJbnQz
Mik6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OmNhY2hlRmx1c2gpOgorICAgICAgICAo
TUlQU0Fzc2VtYmxlcik6CisgICAgICAgICogYXNzZW1ibGVyL1NINEFzc2VtYmxlci5oOgorICAg
ICAgICAoSlNDOjpTSDRBc3NlbWJsZXI6OnJlcGF0Y2hDb21wYWN0KToKKyAgICAgICAgKEpTQzo6
U0g0QXNzZW1ibGVyOjpjYWNoZUZsdXNoKToKKyAgICAgICAgKFNINEFzc2VtYmxlcik6CisgICAg
ICAgICogYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oOgorICAgICAgICAoWDg2QXNzZW1ibGVyKToK
KyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpjYWNoZUZsdXNoKToKKyAgICAgICAgKiBkZmcv
REZHR1BSSW5mby5oOgorICAgICAgICAoR1BSSW5mbyk6CisgICAgICAgICogaml0L0V4ZWN1dGFi
bGVBbGxvY2F0b3IuY3BwOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJs
ZUFsbG9jYXRvci5oOgorICAgICAgICAoRXhlY3V0YWJsZUFsbG9jYXRvcik6CisKIDIwMTItMDUt
MjQgIEpvaG4gTWVsbG9yICA8am9obm1lQGNocm9taXVtLm9yZz4KIAogICAgICAgICBGb250IEJv
b3N0aW5nOiBBZGQgY29tcGlsZSBmbGFnIGFuZCBydW50aW1lIHNldHRpbmcKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTUFzc2VtYmxlci5jcHAJKHJldmlz
aW9uIDExODQwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNQXNzZW1i
bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzc1LDYgKzM3NSwyMyBAQCBQYXNzUmVmUHRyPEV4
ZWN1dGFibGVNZW1vcnlIYW5kbGU+IEFSTUFzCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorI2lm
IE9TKExJTlVYKSAmJiBDT01QSUxFUihSVkNUKQorCitfX2FzbSB2b2lkIEFSTUFzc2VtYmxlcjo6
Y2FjaGVGbHVzaCh2b2lkKiBjb2RlLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICBBUk0KKyAgICBwdXNo
IHtyN30KKyAgICBhZGQgcjEsIHIxLCByMAorICAgIG1vdiByNywgIzB4ZjAwMDAKKyAgICBhZGQg
cjcsIHI3LCAjMHgyCisgICAgbW92IHIyLCAjMHgwCisgICAgc3ZjICMweDAKKyAgICBwb3Age3I3
fQorICAgIGJ4IGxyCit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlm
IC8vIEVOQUJMRShBU1NFTUJMRVIpICYmIENQVShBUk1fVFJBRElUSU9OQUwpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTUFzc2VtYmxlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmgJKHJldmlzaW9u
IDExODQwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNQXNzZW1ibGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTg2NCw2ICs4NjQsNDIgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgICAgICByZXR1cm4gQUwgfCBCIHwgKG9mZnNldCAmIEJSQU5DSF9NQVNLKTsKICAgICAg
ICAgfQogCisjaWYgT1MoTElOVVgpICYmIENPTVBJTEVSKFJWQ1QpCisgICAgICAgIHN0YXRpYyBf
X2FzbSB2b2lkIGNhY2hlRmx1c2godm9pZCogY29kZSwgc2l6ZV90IHNpemUpOworI2Vsc2UKKyAg
ICAgICAgc3RhdGljIHZvaWQgY2FjaGVGbHVzaCh2b2lkKiBjb2RlLCBzaXplX3Qgc2l6ZSkKKyAg
ICAgICAgeworI2lmIE9TKExJTlVYKSAmJiBDT01QSUxFUihHQ0MpCisgICAgICAgICAgICB1aW50
cHRyX3QgY3VycmVudFBhZ2UgPSByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZSkgJiB+
KHBhZ2VTaXplKCkgLSAxKTsKKyAgICAgICAgICAgIHVpbnRwdHJfdCBsYXN0UGFnZSA9IChyZWlu
dGVycHJldF9jYXN0PHVpbnRwdHJfdD4oY29kZSkgKyBzaXplKSAmIH4ocGFnZVNpemUoKSAtIDEp
OworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAgIGFzbSB2b2xhdGlsZSAoCisgICAg
ICAgICAgICAgICAgICAgICJwdXNoICAgIHtyN31cbiIKKyAgICAgICAgICAgICAgICAgICAgIm1v
diAgICAgcjAsICUwXG4iCisgICAgICAgICAgICAgICAgICAgICJtb3YgICAgIHIxLCAlMVxuIgor
ICAgICAgICAgICAgICAgICAgICAibW92ICAgICByNywgIzB4ZjAwMDBcbiIKKyAgICAgICAgICAg
ICAgICAgICAgImFkZCAgICAgcjcsIHI3LCAjMHgyXG4iCisgICAgICAgICAgICAgICAgICAgICJt
b3YgICAgIHIyLCAjMHgwXG4iCisgICAgICAgICAgICAgICAgICAgICJzdmMgICAgIDB4MFxuIgor
ICAgICAgICAgICAgICAgICAgICAicG9wICAgICB7cjd9XG4iCisgICAgICAgICAgICAgICAgICAg
IDoKKyAgICAgICAgICAgICAgICAgICAgOiAiciIgKGN1cnJlbnRQYWdlKSwgInIiIChjdXJyZW50
UGFnZSArIHBhZ2VTaXplKCkpCisgICAgICAgICAgICAgICAgICAgIDogInIwIiwgInIxIiwgInIy
Iik7CisgICAgICAgICAgICAgICAgY3VycmVudFBhZ2UgKz0gcGFnZVNpemUoKTsKKyAgICAgICAg
ICAgIH0gd2hpbGUgKGxhc3RQYWdlID49IGN1cnJlbnRQYWdlKTsKKyNlbGlmIE9TKFdJTkNFKQor
ICAgICAgICAgICAgQ2FjaGVSYW5nZUZsdXNoKGNvZGUsIHNpemUsIENBQ0hFX1NZTkNfQUxMKTsK
KyNlbGlmIE9TKFFOWCkgJiYgRU5BQkxFKEFTU0VNQkxFUl9XWF9FWENMVVNJVkUpCisgICAgICAg
ICAgICBVTlVTRURfUEFSQU0oY29kZSk7CisgICAgICAgICAgICBVTlVTRURfUEFSQU0oc2l6ZSk7
CisjZWxpZiBPUyhRTlgpCisgICAgICAgICAgICBtc3luYyhjb2RlLCBzaXplLCBNU19JTlZBTElE
QVRFX0lDQUNIRSk7CisjZWxzZQorI2Vycm9yICJUaGUgY2FjaGVGbHVzaCBzdXBwb3J0IGlzIG1p
c3Npbmcgb24gdGhpcyBwbGF0Zm9ybS4iCisjZW5kaWYKKyAgICAgICAgfQorI2VuZGlmCisKICAg
ICBwcml2YXRlOgogICAgICAgICBBUk1Xb3JkIFJNKGludCByZWcpCiAgICAgICAgIHsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgJ
KHJldmlzaW9uIDExODQwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJN
djdBc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjAyNiw3ICsyMDI2LDcgQEAgcHVibGlj
OgogCiAgICAgICAgIGxpbmtKdW1wQWJzb2x1dGUocmVpbnRlcnByZXRfY2FzdDx1aW50MTZfdCo+
KGZyb20pLCB0byk7CiAKLSAgICAgICAgRXhlY3V0YWJsZUFsbG9jYXRvcjo6Y2FjaGVGbHVzaChy
ZWludGVycHJldF9jYXN0PHVpbnQxNl90Kj4oZnJvbSkgLSA1LCA1ICogc2l6ZW9mKHVpbnQxNl90
KSk7CisgICAgICAgIGNhY2hlRmx1c2gocmVpbnRlcnByZXRfY2FzdDx1aW50MTZfdCo+KGZyb20p
IC0gNSwgNSAqIHNpemVvZih1aW50MTZfdCkpOwogICAgIH0KICAgICAKICAgICBzdGF0aWMgdm9p
ZCByZWxpbmtDYWxsKHZvaWQqIGZyb20sIHZvaWQqIHRvKQpAQCAtMjA3MCw2ICsyMDcwLDM3IEBA
IHB1YmxpYzoKIAogICAgIHVuc2lnbmVkIGRlYnVnT2Zmc2V0KCkgeyByZXR1cm4gbV9mb3JtYXR0
ZXIuZGVidWdPZmZzZXQoKTsgfQogCisgICAgc3RhdGljIHZvaWQgY2FjaGVGbHVzaCh2b2lkKiBj
b2RlLCBzaXplX3Qgc2l6ZSkKKyAgICB7CisjaWYgT1MoSU9TKQorICAgICAgICBzeXNfY2FjaGVf
Y29udHJvbChrQ2FjaGVGdW5jdGlvblByZXBhcmVGb3JFeGVjdXRpb24sIGNvZGUsIHNpemUpOwor
I2VsaWYgT1MoTElOVVgpCisgICAgICAgIGFzbSB2b2xhdGlsZSAoCisgICAgICAgICAgICAicHVz
aCAgICB7cjd9XG4iCisgICAgICAgICAgICAibW92ICAgICByMCwgJTBcbiIKKyAgICAgICAgICAg
ICJtb3YgICAgIHIxLCAlMVxuIgorICAgICAgICAgICAgIm1vdncgICAgcjcsICMweDJcbiIKKyAg
ICAgICAgICAgICJtb3Z0ICAgIHI3LCAjMHhmXG4iCisgICAgICAgICAgICAibW92cyAgICByMiwg
IzB4MFxuIgorICAgICAgICAgICAgInN2YyAgICAgMHgwXG4iCisgICAgICAgICAgICAicG9wICAg
ICB7cjd9XG4iCisgICAgICAgICAgICA6CisgICAgICAgICAgICA6ICJyIiAoY29kZSksICJyIiAo
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29kZSkgKyBzaXplKQorICAgICAgICAgICAgOiAicjAi
LCAicjEiLCAicjIiKTsKKyNlbGlmIE9TKFdJTkNFKQorICAgICAgICBDYWNoZVJhbmdlRmx1c2go
Y29kZSwgc2l6ZSwgQ0FDSEVfU1lOQ19BTEwpOworI2VsaWYgT1MoUU5YKQorI2lmICFFTkFCTEUo
QVNTRU1CTEVSX1dYX0VYQ0xVU0lWRSkKKyAgICAgICAgbXN5bmMoY29kZSwgc2l6ZSwgTVNfSU5W
QUxJREFURV9JQ0FDSEUpOworI2Vsc2UKKyAgICAgICAgVU5VU0VEX1BBUkFNKGNvZGUpOworICAg
ICAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CisjZW5kaWYKKyNlbHNlCisjZXJyb3IgIlRoZSBjYWNo
ZUZsdXNoIHN1cHBvcnQgaXMgbWlzc2luZyBvbiB0aGlzIHBsYXRmb3JtLiIKKyNlbmRpZgorICAg
IH0KKwogcHJpdmF0ZToKICAgICAvLyBWRlAgb3BlcmF0aW9ucyBjb21tb25seSB0YWtlIG9uZSBv
ciBtb3JlIDUtYml0IG9wZXJhbmRzLCB0eXBpY2FsbHkgcmVwcmVzZW50aW5nIGEKICAgICAvLyBm
bG9hdGluZyBwb2ludCByZWdpc3RlciBudW1iZXIuICBUaGlzIHdpbGwgY29tbW9ubHkgYmUgZW5j
b2RlZCBpbiB0aGUgaW5zdHJ1Y3Rpb24KQEAgLTIxNDksNyArMjE4MCw3IEBAIHByaXZhdGU6CiAg
ICAgICAgIGxvY2F0aW9uWy0yXSA9IHR3b1dvcmRPcDVpNkltbTRSZWc0RW5jb2RlZEltbUZpcnN0
KE9QX01PVlQsIGhpMTYpOwogICAgICAgICBsb2NhdGlvblstMV0gPSB0d29Xb3JkT3A1aTZJbW00
UmVnNEVuY29kZWRJbW1TZWNvbmQoKGxvY2F0aW9uWy0xXSA+PiA4KSAmIDB4ZiwgaGkxNik7CiAK
LSAgICAgICAgRXhlY3V0YWJsZUFsbG9jYXRvcjo6Y2FjaGVGbHVzaChsb2NhdGlvbiAtIDQsIDQg
KiBzaXplb2YodWludDE2X3QpKTsKKyAgICAgICAgY2FjaGVGbHVzaChsb2NhdGlvbiAtIDQsIDQg
KiBzaXplb2YodWludDE2X3QpKTsKICAgICB9CiAgICAgCiAgICAgc3RhdGljIGludDMyX3QgcmVh
ZEludDMyKHZvaWQqIGNvZGUpCkBAIC0yMTc3LDcgKzIyMDgsNyBAQCBwcml2YXRlOgogICAgICAg
ICB1aW50MTZfdCogbG9jYXRpb24gPSByZWludGVycHJldF9jYXN0PHVpbnQxNl90Kj4oY29kZSk7
CiAgICAgICAgIGxvY2F0aW9uWzBdICY9IH4oKHN0YXRpY19jYXN0PHVpbnQxNl90PigweDdmKSA+
PiAyKSA8PCA2KTsKICAgICAgICAgbG9jYXRpb25bMF0gfD0gKGltbS5nZXRVSW50NygpID4+IDIp
IDw8IDY7Ci0gICAgICAgIEV4ZWN1dGFibGVBbGxvY2F0b3I6OmNhY2hlRmx1c2gobG9jYXRpb24s
IHNpemVvZih1aW50MTZfdCkpOworICAgICAgICBjYWNoZUZsdXNoKGxvY2F0aW9uLCBzaXplb2Yo
dWludDE2X3QpKTsKICAgICB9CiAKICAgICBzdGF0aWMgdm9pZCBzZXRQb2ludGVyKHZvaWQqIGNv
ZGUsIHZvaWQqIHZhbHVlKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9B
YnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgJKHJldmlzaW9uIDExODQwOSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC01NzgsNiArNTc4LDEwIEBAIHB1YmxpYzoKIAogICAgIHVu
c2lnbmVkIGRlYnVnT2Zmc2V0KCkgeyByZXR1cm4gbV9hc3NlbWJsZXIuZGVidWdPZmZzZXQoKTsg
fQogCisgICAgQUxXQVlTX0lOTElORSBzdGF0aWMgdm9pZCBjYWNoZUZsdXNoKHZvaWQqIGNvZGUs
IHNpemVfdCBzaXplKQorICAgIHsKKyAgICAgICAgQXNzZW1ibGVyVHlwZTo6Y2FjaGVGbHVzaChj
b2RlLCBzaXplKTsKKyAgICB9CiBwcm90ZWN0ZWQ6CiAgICAgQWJzdHJhY3RNYWNyb0Fzc2VtYmxl
cigpCiAgICAgICAgIDogbV9yYW5kb21Tb3VyY2UoY3J5cHRvZ3JhcGhpY2FsbHlSYW5kb21OdW1i
ZXIoKSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZl
ci5oCShyZXZpc2lvbiAxMTg0MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L0xpbmtCdWZmZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzI5LDcgKzMyOSw3IEBAIHByaXZhdGU6
CiAjZWxzZQogICAgICAgICBFeGVjdXRhYmxlQWxsb2NhdG9yOjptYWtlRXhlY3V0YWJsZShjb2Rl
KCksIG1fc2l6ZSk7CiAjZW5kaWYKLSAgICAgICAgRXhlY3V0YWJsZUFsbG9jYXRvcjo6Y2FjaGVG
bHVzaChjb2RlKCksIG1fc2l6ZSk7CisgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpjYWNoZUZsdXNo
KGNvZGUoKSwgbV9zaXplKTsKICAgICB9CiAKICNpZiBEVU1QX0xJTktfU1RBVElTVElDUwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NSVBTQXNzZW1ibGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NSVBTQXNzZW1ibGVyLmgJ
KHJldmlzaW9uIDExODQwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTUlQ
U0Fzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03MTgsNyArNzE4LDcgQEAgcHVibGljOgog
ICAgICAgICBpbnNuID0gaW5zbiAtIDY7CiAgICAgICAgIGludCBmbHVzaFNpemUgPSBsaW5rV2l0
aE9mZnNldChpbnNuLCB0byk7CiAKLSAgICAgICAgRXhlY3V0YWJsZUFsbG9jYXRvcjo6Y2FjaGVG
bHVzaChpbnNuLCBmbHVzaFNpemUpOworICAgICAgICBjYWNoZUZsdXNoKGluc24sIGZsdXNoU2l6
ZSk7CiAgICAgfQogCiAgICAgc3RhdGljIHZvaWQgcmVsaW5rQ2FsbCh2b2lkKiBmcm9tLCB2b2lk
KiB0bykKQEAgLTczMCw3ICs3MzAsNyBAQCBwdWJsaWM6CiAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgIHN0YXJ0ID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDxpbnRw
dHJfdD4oZnJvbSkgLSA0ICogc2l6ZW9mKE1JUFNXb3JkKSk7CiAKLSAgICAgICAgRXhlY3V0YWJs
ZUFsbG9jYXRvcjo6Y2FjaGVGbHVzaChzdGFydCwgc2l6ZSk7CisgICAgICAgIGNhY2hlRmx1c2go
c3RhcnQsIHNpemUpOwogICAgIH0KIAogICAgIHN0YXRpYyB2b2lkIHJlcGF0Y2hJbnQzMih2b2lk
KiBmcm9tLCBpbnQzMl90IHRvKQpAQCAtNzQyLDcgKzc0Miw3IEBAIHB1YmxpYzoKICAgICAgICAg
QVNTRVJUKCgqaW5zbiAmIDB4ZmMwMDAwMDApID09IDB4MzQwMDAwMDApOyAvLyBvcmkKICAgICAg
ICAgKmluc24gPSAoKmluc24gJiAweGZmZmYwMDAwKSB8ICh0byAmIDB4ZmZmZik7CiAgICAgICAg
IGluc24tLTsKLSAgICAgICAgRXhlY3V0YWJsZUFsbG9jYXRvcjo6Y2FjaGVGbHVzaChpbnNuLCAy
ICogc2l6ZW9mKE1JUFNXb3JkKSk7CisgICAgICAgIGNhY2hlRmx1c2goaW5zbiwgMiAqIHNpemVv
ZihNSVBTV29yZCkpOwogICAgIH0KIAogICAgIHN0YXRpYyBpbnQzMl90IHJlYWRJbnQzMih2b2lk
KiBmcm9tKQpAQCAtNzgzLDYgKzc4MywzMiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiByZWlu
dGVycHJldF9jYXN0PHZvaWQqPihyZXN1bHQpOwogICAgIH0KIAorICAgIHN0YXRpYyB2b2lkIGNh
Y2hlRmx1c2godm9pZCogY29kZSwgc2l6ZV90IHNpemUpCisgICAgeworI2lmIEdDQ19WRVJTSU9O
X0FUX0xFQVNUKDQsIDMsIDApCisjaWYgV1RGX01JUFNfSVNBX1JFVigyKSAmJiAhR0NDX1ZFUlNJ
T05fQVRfTEVBU1QoNCwgNCwgMykKKyAgICAgICAgaW50IGxpbmVTaXplOworICAgICAgICBhc20o
InJkaHdyICUwLCAkMSIgOiAiPXIiIChsaW5lU2l6ZSkpOworICAgICAgICAvLworICAgICAgICAv
LyBNb2RpZnkgInN0YXJ0IiBhbmQgImVuZCIgdG8gYXZvaWQgR0NDIDQuMy4wLTQuNC4yIGJ1ZyBp
bgorICAgICAgICAvLyBtaXBzX2V4cGFuZF9zeW5jaV9sb29wIHRoYXQgbWF5IGV4ZWN1dGUgc3lu
Y2kgb25lIG1vcmUgdGltZS4KKyAgICAgICAgLy8gInN0YXJ0IiBwb2ludHMgdG8gdGhlIGZpc3J0
IGJ5dGUgb2YgdGhlIGNhY2hlIGxpbmUuCisgICAgICAgIC8vICJlbmQiIHBvaW50cyB0byB0aGUg
bGFzdCBieXRlIG9mIHRoZSBsaW5lIGJlZm9yZSB0aGUgbGFzdCBjYWNoZSBsaW5lLgorICAgICAg
ICAvLyBCZWNhdXNlIHNpemUgaXMgYWx3YXlzIGEgbXVsdGlwbGUgb2YgNCwgdGhpcyBpcyBzYWZl
IHRvIHNldAorICAgICAgICAvLyAiZW5kIiB0byB0aGUgbGFzdCBieXRlLgorICAgICAgICAvLwor
ICAgICAgICBpbnRwdHJfdCBzdGFydCA9IHJlaW50ZXJwcmV0X2Nhc3Q8aW50cHRyX3Q+KGNvZGUp
ICYgKC1saW5lU2l6ZSk7CisgICAgICAgIGludHB0cl90IGVuZCA9ICgocmVpbnRlcnByZXRfY2Fz
dDxpbnRwdHJfdD4oY29kZSkgKyBzaXplIC0gMSkgJiAoLWxpbmVTaXplKSkgLSAxOworICAgICAg
ICBfX2J1aWx0aW5fX19jbGVhcl9jYWNoZShyZWludGVycHJldF9jYXN0PGNoYXIqPihzdGFydCks
IHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGVuZCkpOworI2Vsc2UKKyAgICAgICAgaW50cHRyX3Qg
ZW5kID0gcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oY29kZSkgKyBzaXplOworICAgICAgICBf
X2J1aWx0aW5fX19jbGVhcl9jYWNoZShyZWludGVycHJldF9jYXN0PGNoYXIqPihjb2RlKSwgcmVp
bnRlcnByZXRfY2FzdDxjaGFyKj4oZW5kKSk7CisjZW5kaWYKKyNlbHNlCisgICAgICAgIF9mbHVz
aF9jYWNoZShyZWludGVycHJldF9jYXN0PGNoYXIqPihjb2RlKSwgc2l6ZSwgQkNBQ0hFKTsKKyNl
bmRpZgorICAgIH0KKwogcHJpdmF0ZToKICAgICAvKiBVcGRhdGUgZWFjaCBqdW1wIGluIHRoZSBi
dWZmZXIgb2YgbmV3QmFzZS4gICovCiAgICAgdm9pZCByZWxvY2F0ZUp1bXBzKHZvaWQqIG9sZEJh
c2UsIHZvaWQqIG5ld0Jhc2UpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L1NINEFzc2VtYmxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvU0g0QXNzZW1ibGVyLmgJKHJldmlzaW9uIDExODQwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvU0g0QXNzZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0MDEs
NyArMTQwMSw3IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKHZhbHVlID49IDApOwogICAgICAg
ICBBU1NFUlQodmFsdWUgPD0gNjApOwogICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDx1aW50MTZf
dCo+KHdoZXJlKSA9ICgoKnJlaW50ZXJwcmV0X2Nhc3Q8dWludDE2X3QqPih3aGVyZSkgJiAweGZm
ZjApIHwgKHZhbHVlID4+IDIpKTsKLSAgICAgICAgRXhlY3V0YWJsZUFsbG9jYXRvcjo6Y2FjaGVG
bHVzaChyZWludGVycHJldF9jYXN0PHVpbnQxNl90Kj4od2hlcmUpLCBzaXplb2YodWludDE2X3Qp
KTsKKyAgICAgICAgY2FjaGVGbHVzaChyZWludGVycHJldF9jYXN0PHVpbnQxNl90Kj4od2hlcmUp
LCBzaXplb2YodWludDE2X3QpKTsKICAgICB9CiAKICAgICBzdGF0aWMgdm9pZCByZWxpbmtDYWxs
KHZvaWQqIGZyb20sIHZvaWQqIHRvKQpAQCAtMTU0Niw2ICsxNTQ2LDE3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIG1fYnVmZmVyLmV4ZWN1dGFibGVDb3B5KGdsb2JhbERhdGEsIG93bmVyVUlE
LCBlZmZvcnQpOwogICAgIH0KIAorICAgIHN0YXRpYyB2b2lkIGNhY2hlRmx1c2godm9pZCogY29k
ZSwgc2l6ZV90IHNpemUpCisgICAgeworI2lmICFPUyhMSU5VWCkKKyNlcnJvciAiVGhlIGNhY2hl
Rmx1c2ggc3VwcG9ydCBpcyBtaXNzaW5nIG9uIHRoaXMgcGxhdGZvcm0uIgorI2VsaWYgZGVmaW5l
ZCBDQUNIRUZMVVNIX0RfTDIKKyAgICAgICAgc3lzY2FsbChfX05SX2NhY2hlZmx1c2gsIHJlaW50
ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+KGNvZGUpLCBzaXplLCBDQUNIRUZMVVNIX0RfV0IgfCBDQUNI
RUZMVVNIX0kgfCBDQUNIRUZMVVNIX0RfTDIpOworI2Vsc2UKKyAgICAgICAgc3lzY2FsbChfX05S
X2NhY2hlZmx1c2gsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+KGNvZGUpLCBzaXplLCBDQUNI
RUZMVVNIX0RfV0IgfCBDQUNIRUZMVVNIX0kpOworI2VuZGlmCisgICAgfQorCiAgICAgdm9pZCBw
cmVmaXgodWludDE2X3QgcHJlKQogICAgIHsKICAgICAgICAgbV9idWZmZXIucHV0Qnl0ZShwcmUp
OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9YODZBc3NlbWJsZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxl
ci5oCShyZXZpc2lvbiAxMTg0MDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVy
L1g4NkFzc2VtYmxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODE2LDYgKzE4MTYsOSBAQCBwdWJs
aWM6CiAgICAgICAgIG1fZm9ybWF0dGVyLm9uZUJ5dGVPcChPUF9OT1ApOwogICAgIH0KIAorICAg
IC8vIFRoaXMgaXMgYSBuby1vcCBvbiB4ODYKKyAgICBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lk
IGNhY2hlRmx1c2godm9pZCosIHNpemVfdCkge30KKwogcHJpdmF0ZToKIAogICAgIHN0YXRpYyB2
b2lkIHNldFBvaW50ZXIodm9pZCogd2hlcmUsIHZvaWQqIHZhbHVlKQpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdHUFJJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdHUFJJbmZvLmgJKHJldmlzaW9uIDExODQwOSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHR1BSSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC00MTQsOCAr
NDE0LDggQEAgcHVibGljOgogICAgIC8vIGJldHdlZW4gdGhlIGFyZ3VtZW50cyBiZWluZyBzZXQg
dXAsIGFuZCB0aGUgY2FsbCBiZWluZyBtYWRlLiBUaGF0IHNhaWQsCiAgICAgLy8gYW55IGNoYW5n
ZSBpbnRyb2R1Y2luZyBhIHByb2JsZW0gaGVyZSBpcyBsaWtlbHkgdG8gYmUgaW1tZWRpYXRlbHkg
YXBwYXJlbnQhCiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBBUk1SZWdp
c3RlcnM6OnIzOyAvLyBGSVhNRSEKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjAg
PSBYODZSZWdpc3RlcnM6OnI0OyAvLyByZWdUMwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9u
QXJnR1BSMSA9IFg4NlJlZ2lzdGVyczo6cjg7IC8vIHJlZ1Q0CisgICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyBub25BcmdHUFIwID0gQVJNUmVnaXN0ZXJzOjpyNDsgLy8gcmVnVDMKKyAgICBzdGF0aWMg
Y29uc3QgR1BSUmVnIG5vbkFyZ0dQUjEgPSBBUk1SZWdpc3RlcnM6OnI4OyAvLyByZWdUNAogICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIgPSBBUk1SZWdpc3RlcnM6OnIwOyAv
LyByZWdUMAogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIyID0gQVJNUmVn
aXN0ZXJzOjpyMTsgLy8gcmVnVDEKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vblByZXNlcnZl
ZE5vblJldHVybkdQUiA9IEFSTVJlZ2lzdGVyczo6cjI7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAJKHJldmlzaW9uIDExODQw
OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI2MSwyMyArMjYxLDYgQEAgdm9pZCBFeGVjdXRhYmxlQWxsb2Nh
dG9yOjpyZXByb3RlY3RSZWdpbwogCiAjZW5kaWYKIAotI2lmIENQVShBUk1fVFJBRElUSU9OQUwp
ICYmIE9TKExJTlVYKSAmJiBDT01QSUxFUihSVkNUKQotCi1fX2FzbSB2b2lkIEV4ZWN1dGFibGVB
bGxvY2F0b3I6OmNhY2hlRmx1c2godm9pZCogY29kZSwgc2l6ZV90IHNpemUpCi17Ci0gICAgQVJN
Ci0gICAgcHVzaCB7cjd9Ci0gICAgYWRkIHIxLCByMSwgcjAKLSAgICBtb3YgcjcsICMweGYwMDAw
Ci0gICAgYWRkIHI3LCByNywgIzB4MgotICAgIG1vdiByMiwgIzB4MAotICAgIHN2YyAjMHgwCi0g
ICAgcG9wIHtyN30KLSAgICBieCBscgotfQotCi0jZW5kaWYKLQogfQogCiAjZW5kaWYgLy8gSEFW
RShBU1NFTUJMRVIpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVB
bGxvY2F0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1
dGFibGVBbGxvY2F0b3IuaAkocmV2aXNpb24gMTE4NDA5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2ppdC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzOSwxMDgg
KzEzOSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBtYWtlRXhlY3V0YWJsZSh2b2lkKiwg
c2l6ZV90KSB7fQogI2VuZGlmCiAKLSNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQotICAgIHN0
YXRpYyB2b2lkIGNhY2hlRmx1c2godm9pZCosIHNpemVfdCkKLSAgICB7Ci0gICAgfQotI2VsaWYg
Q1BVKE1JUFMpCi0gICAgc3RhdGljIHZvaWQgY2FjaGVGbHVzaCh2b2lkKiBjb2RlLCBzaXplX3Qg
c2l6ZSkKLSAgICB7Ci0jaWYgR0NDX1ZFUlNJT05fQVRfTEVBU1QoNCwgMywgMCkKLSNpZiBXVEZf
TUlQU19JU0FfUkVWKDIpICYmICFHQ0NfVkVSU0lPTl9BVF9MRUFTVCg0LCA0LCAzKQotICAgICAg
ICBpbnQgbGluZVNpemU7Ci0gICAgICAgIGFzbSgicmRod3IgJTAsICQxIiA6ICI9ciIgKGxpbmVT
aXplKSk7Ci0gICAgICAgIC8vCi0gICAgICAgIC8vIE1vZGlmeSAic3RhcnQiIGFuZCAiZW5kIiB0
byBhdm9pZCBHQ0MgNC4zLjAtNC40LjIgYnVnIGluCi0gICAgICAgIC8vIG1pcHNfZXhwYW5kX3N5
bmNpX2xvb3AgdGhhdCBtYXkgZXhlY3V0ZSBzeW5jaSBvbmUgbW9yZSB0aW1lLgotICAgICAgICAv
LyAic3RhcnQiIHBvaW50cyB0byB0aGUgZmlzcnQgYnl0ZSBvZiB0aGUgY2FjaGUgbGluZS4KLSAg
ICAgICAgLy8gImVuZCIgcG9pbnRzIHRvIHRoZSBsYXN0IGJ5dGUgb2YgdGhlIGxpbmUgYmVmb3Jl
IHRoZSBsYXN0IGNhY2hlIGxpbmUuCi0gICAgICAgIC8vIEJlY2F1c2Ugc2l6ZSBpcyBhbHdheXMg
YSBtdWx0aXBsZSBvZiA0LCB0aGlzIGlzIHNhZmUgdG8gc2V0Ci0gICAgICAgIC8vICJlbmQiIHRv
IHRoZSBsYXN0IGJ5dGUuCi0gICAgICAgIC8vCi0gICAgICAgIGludHB0cl90IHN0YXJ0ID0gcmVp
bnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oY29kZSkgJiAoLWxpbmVTaXplKTsKLSAgICAgICAgaW50
cHRyX3QgZW5kID0gKChyZWludGVycHJldF9jYXN0PGludHB0cl90Pihjb2RlKSArIHNpemUgLSAx
KSAmICgtbGluZVNpemUpKSAtIDE7Ci0gICAgICAgIF9fYnVpbHRpbl9fX2NsZWFyX2NhY2hlKHJl
aW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHN0YXJ0KSwgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oZW5k
KSk7Ci0jZWxzZQotICAgICAgICBpbnRwdHJfdCBlbmQgPSByZWludGVycHJldF9jYXN0PGludHB0
cl90Pihjb2RlKSArIHNpemU7Ci0gICAgICAgIF9fYnVpbHRpbl9fX2NsZWFyX2NhY2hlKHJlaW50
ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvZGUpLCByZWludGVycHJldF9jYXN0PGNoYXIqPihlbmQpKTsK
LSNlbmRpZgotI2Vsc2UKLSAgICAgICAgX2ZsdXNoX2NhY2hlKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hh
cio+KGNvZGUpLCBzaXplLCBCQ0FDSEUpOwotI2VuZGlmCi0gICAgfQotI2VsaWYgQ1BVKEFSTV9U
SFVNQjIpICYmIE9TKElPUykKLSAgICBzdGF0aWMgdm9pZCBjYWNoZUZsdXNoKHZvaWQqIGNvZGUs
IHNpemVfdCBzaXplKQotICAgIHsKLSAgICAgICAgc3lzX2NhY2hlX2NvbnRyb2woa0NhY2hlRnVu
Y3Rpb25QcmVwYXJlRm9yRXhlY3V0aW9uLCBjb2RlLCBzaXplKTsKLSAgICB9Ci0jZWxpZiBDUFUo
QVJNX1RIVU1CMikgJiYgT1MoTElOVVgpCi0gICAgc3RhdGljIHZvaWQgY2FjaGVGbHVzaCh2b2lk
KiBjb2RlLCBzaXplX3Qgc2l6ZSkKLSAgICB7Ci0gICAgICAgIGFzbSB2b2xhdGlsZSAoCi0gICAg
ICAgICAgICAicHVzaCAgICB7cjd9XG4iCi0gICAgICAgICAgICAibW92ICAgICByMCwgJTBcbiIK
LSAgICAgICAgICAgICJtb3YgICAgIHIxLCAlMVxuIgotICAgICAgICAgICAgIm1vdncgICAgcjcs
ICMweDJcbiIKLSAgICAgICAgICAgICJtb3Z0ICAgIHI3LCAjMHhmXG4iCi0gICAgICAgICAgICAi
bW92cyAgICByMiwgIzB4MFxuIgotICAgICAgICAgICAgInN2YyAgICAgMHgwXG4iCi0gICAgICAg
ICAgICAicG9wICAgICB7cjd9XG4iCi0gICAgICAgICAgICA6Ci0gICAgICAgICAgICA6ICJyIiAo
Y29kZSksICJyIiAocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29kZSkgKyBzaXplKQotICAgICAg
ICAgICAgOiAicjAiLCAicjEiLCAicjIiKTsKLSAgICB9Ci0jZWxpZiBDUFUoQVJNX1RSQURJVElP
TkFMKSAmJiBPUyhMSU5VWCkgJiYgQ09NUElMRVIoUlZDVCkKLSAgICBzdGF0aWMgX19hc20gdm9p
ZCBjYWNoZUZsdXNoKHZvaWQqIGNvZGUsIHNpemVfdCBzaXplKTsKLSNlbGlmIENQVShBUk1fVFJB
RElUSU9OQUwpICYmIE9TKExJTlVYKSAmJiBDT01QSUxFUihHQ0MpCi0gICAgc3RhdGljIHZvaWQg
Y2FjaGVGbHVzaCh2b2lkKiBjb2RlLCBzaXplX3Qgc2l6ZSkKLSAgICB7Ci0gICAgICAgIHVpbnRw
dHJfdCBjdXJyZW50UGFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlKSAmIH4o
cGFnZVNpemUoKSAtIDEpOwotICAgICAgICB1aW50cHRyX3QgbGFzdFBhZ2UgPSAocmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGUpICsgc2l6ZSkgJiB+KHBhZ2VTaXplKCkgLSAxKTsKLQot
ICAgICAgICBkbyB7Ci0gICAgICAgICAgICBhc20gdm9sYXRpbGUgKAotICAgICAgICAgICAgICAg
ICJwdXNoICAgIHtyN31cbiIKLSAgICAgICAgICAgICAgICAibW92ICAgICByMCwgJTBcbiIKLSAg
ICAgICAgICAgICAgICAibW92ICAgICByMSwgJTFcbiIKLSAgICAgICAgICAgICAgICAibW92ICAg
ICByNywgIzB4ZjAwMDBcbiIKLSAgICAgICAgICAgICAgICAiYWRkICAgICByNywgcjcsICMweDJc
biIKLSAgICAgICAgICAgICAgICAibW92ICAgICByMiwgIzB4MFxuIgotICAgICAgICAgICAgICAg
ICJzdmMgICAgIDB4MFxuIgotICAgICAgICAgICAgICAgICJwb3AgICAgIHtyN31cbiIKLSAgICAg
ICAgICAgICAgICA6Ci0gICAgICAgICAgICAgICAgOiAiciIgKGN1cnJlbnRQYWdlKSwgInIiIChj
dXJyZW50UGFnZSArIHBhZ2VTaXplKCkpCi0gICAgICAgICAgICAgICAgOiAicjAiLCAicjEiLCAi
cjIiKTsKLSAgICAgICAgICAgIGN1cnJlbnRQYWdlICs9IHBhZ2VTaXplKCk7Ci0gICAgICAgIH0g
d2hpbGUgKGxhc3RQYWdlID49IGN1cnJlbnRQYWdlKTsKLSAgICB9Ci0jZWxpZiBPUyhXSU5DRSkK
LSAgICBzdGF0aWMgdm9pZCBjYWNoZUZsdXNoKHZvaWQqIGNvZGUsIHNpemVfdCBzaXplKQotICAg
IHsKLSAgICAgICAgQ2FjaGVSYW5nZUZsdXNoKGNvZGUsIHNpemUsIENBQ0hFX1NZTkNfQUxMKTsK
LSAgICB9Ci0jZWxpZiBDUFUoU0g0KSAmJiBPUyhMSU5VWCkKLSAgICBzdGF0aWMgdm9pZCBjYWNo
ZUZsdXNoKHZvaWQqIGNvZGUsIHNpemVfdCBzaXplKQotICAgIHsKLSNpZmRlZiBDQUNIRUZMVVNI
X0RfTDIKLSAgICAgICAgc3lzY2FsbChfX05SX2NhY2hlZmx1c2gsIHJlaW50ZXJwcmV0X2Nhc3Q8
dW5zaWduZWQ+KGNvZGUpLCBzaXplLCBDQUNIRUZMVVNIX0RfV0IgfCBDQUNIRUZMVVNIX0kgfCBD
QUNIRUZMVVNIX0RfTDIpOwotI2Vsc2UKLSAgICAgICAgc3lzY2FsbChfX05SX2NhY2hlZmx1c2gs
IHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+KGNvZGUpLCBzaXplLCBDQUNIRUZMVVNIX0RfV0Ig
fCBDQUNIRUZMVVNIX0kpOwotI2VuZGlmCi0gICAgfQotI2VsaWYgT1MoUU5YKQotICAgIHN0YXRp
YyB2b2lkIGNhY2hlRmx1c2godm9pZCogY29kZSwgc2l6ZV90IHNpemUpCi0gICAgewotI2lmICFF
TkFCTEUoQVNTRU1CTEVSX1dYX0VYQ0xVU0lWRSkKLSAgICAgICAgbXN5bmMoY29kZSwgc2l6ZSwg
TVNfSU5WQUxJREFURV9JQ0FDSEUpOwotI2Vsc2UKLSAgICAgICAgVU5VU0VEX1BBUkFNKGNvZGUp
OwotICAgICAgICBVTlVTRURfUEFSQU0oc2l6ZSk7Ci0jZW5kaWYKLSAgICB9Ci0jZWxzZQotICAg
ICNlcnJvciAiVGhlIGNhY2hlRmx1c2ggc3VwcG9ydCBpcyBtaXNzaW5nIG9uIHRoaXMgcGxhdGZv
cm0uIgotI2VuZGlmCiAgICAgc3RhdGljIHNpemVfdCBjb21taXR0ZWRCeXRlQ291bnQoKTsKIAog
cHJpdmF0ZToK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143889</attachid>
            <date>2012-05-24 13:51:56 -0700</date>
            <delta_ts>2012-05-24 13:54:11 -0700</delta_ts>
            <desc>Style fixes</desc>
            <filename>87420.2.patch</filename>
            <type>text/plain</type>
            <size>18186</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTE4NDA5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBA
CisyMDEyLTA1LTI0ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
KworICAgICAgICBNb3ZlIGNhY2hlRmx1c2ggZnJvbSBFeGVjdXRhYmxlQWxsb2NhdG9yIHRvIEFz
c2VtYmxlciBjbGFzc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NzQyMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1ha2VzIG1vcmUgc2Vuc2UgdGhlcmUsICYgcmVtb3ZlIGEgcGlsZSBvZiAjaWZkZWZz
LgorCisgICAgICAgICogYXNzZW1ibGVyL0FSTUFzc2VtYmxlci5jcHA6CisgICAgICAgIChKU0Mp
OgorICAgICAgICAoSlNDOjpBUk1Bc3NlbWJsZXI6OmNhY2hlRmx1c2gpOgorICAgICAgICAqIGFz
c2VtYmxlci9BUk1Bc3NlbWJsZXIuaDoKKyAgICAgICAgKEFSTUFzc2VtYmxlcik6CisgICAgICAg
IChKU0M6OkFSTUFzc2VtYmxlcjo6Y2FjaGVGbHVzaCk6CisgICAgICAgICogYXNzZW1ibGVyL0FS
TXY3QXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6OkFSTXY3QXNzZW1ibGVyOjpyZWxpbmtKdW1w
KToKKyAgICAgICAgKEpTQzo6QVJNdjdBc3NlbWJsZXI6OmNhY2hlRmx1c2gpOgorICAgICAgICAo
QVJNdjdBc3NlbWJsZXIpOgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6c2V0SW50MzIp
OgorICAgICAgICAoSlNDOjpBUk12N0Fzc2VtYmxlcjo6c2V0VUludDdGb3JMb2FkKToKKyAgICAg
ICAgKiBhc3NlbWJsZXIvQWJzdHJhY3RNYWNyb0Fzc2VtYmxlci5oOgorICAgICAgICAoSlNDOjpB
YnN0cmFjdE1hY3JvQXNzZW1ibGVyOjpjYWNoZUZsdXNoKToKKyAgICAgICAgKiBhc3NlbWJsZXIv
TGlua0J1ZmZlci5oOgorICAgICAgICAoSlNDOjpMaW5rQnVmZmVyOjpwZXJmb3JtRmluYWxpemF0
aW9uKToKKyAgICAgICAgKiBhc3NlbWJsZXIvTUlQU0Fzc2VtYmxlci5oOgorICAgICAgICAoSlND
OjpNSVBTQXNzZW1ibGVyOjpyZWxpbmtKdW1wKToKKyAgICAgICAgKEpTQzo6TUlQU0Fzc2VtYmxl
cjo6cmVsaW5rQ2FsbCk6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OnJlcGF0Y2hJbnQz
Mik6CisgICAgICAgIChKU0M6Ok1JUFNBc3NlbWJsZXI6OmNhY2hlRmx1c2gpOgorICAgICAgICAo
TUlQU0Fzc2VtYmxlcik6CisgICAgICAgICogYXNzZW1ibGVyL1NINEFzc2VtYmxlci5oOgorICAg
ICAgICAoSlNDOjpTSDRBc3NlbWJsZXI6OnJlcGF0Y2hDb21wYWN0KToKKyAgICAgICAgKEpTQzo6
U0g0QXNzZW1ibGVyOjpjYWNoZUZsdXNoKToKKyAgICAgICAgKFNINEFzc2VtYmxlcik6CisgICAg
ICAgICogYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oOgorICAgICAgICAoWDg2QXNzZW1ibGVyKToK
KyAgICAgICAgKEpTQzo6WDg2QXNzZW1ibGVyOjpjYWNoZUZsdXNoKToKKyAgICAgICAgKiBkZmcv
REZHR1BSSW5mby5oOgorICAgICAgICAoR1BSSW5mbyk6CisgICAgICAgICogaml0L0V4ZWN1dGFi
bGVBbGxvY2F0b3IuY3BwOgorICAgICAgICAoSlNDKToKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJs
ZUFsbG9jYXRvci5oOgorICAgICAgICAoRXhlY3V0YWJsZUFsbG9jYXRvcik6CisKIDIwMTItMDUt
MjQgIEpvaG4gTWVsbG9yICA8am9obm1lQGNocm9taXVtLm9yZz4KIAogICAgICAgICBGb250IEJv
b3N0aW5nOiBBZGQgY29tcGlsZSBmbGFnIGFuZCBydW50aW1lIHNldHRpbmcKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTUFzc2VtYmxlci5jcHAJKHJldmlz
aW9uIDExODQwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNQXNzZW1i
bGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzc1LDYgKzM3NSwyMyBAQCBQYXNzUmVmUHRyPEV4
ZWN1dGFibGVNZW1vcnlIYW5kbGU+IEFSTUFzCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorI2lm
IE9TKExJTlVYKSAmJiBDT01QSUxFUihSVkNUKQorCitfX2FzbSB2b2lkIEFSTUFzc2VtYmxlcjo6
Y2FjaGVGbHVzaCh2b2lkKiBjb2RlLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICBBUk0KKyAgICBwdXNo
IHtyN30KKyAgICBhZGQgcjEsIHIxLCByMAorICAgIG1vdiByNywgIzB4ZjAwMDAKKyAgICBhZGQg
cjcsIHI3LCAjMHgyCisgICAgbW92IHIyLCAjMHgwCisgICAgc3ZjICMweDAKKyAgICBwb3Age3I3
fQorICAgIGJ4IGxyCit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBKU0MKIAogI2VuZGlm
IC8vIEVOQUJMRShBU1NFTUJMRVIpICYmIENQVShBUk1fVFJBRElUSU9OQUwpCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTUFzc2VtYmxlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNQXNzZW1ibGVyLmgJKHJldmlzaW9u
IDExODQwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNQXNzZW1ibGVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTg2NCw2ICs4NjQsNDIgQEAgbmFtZXNwYWNlIEpTQyB7CiAg
ICAgICAgICAgICByZXR1cm4gQUwgfCBCIHwgKG9mZnNldCAmIEJSQU5DSF9NQVNLKTsKICAgICAg
ICAgfQogCisjaWYgT1MoTElOVVgpICYmIENPTVBJTEVSKFJWQ1QpCisgICAgICAgIHN0YXRpYyBf
X2FzbSB2b2lkIGNhY2hlRmx1c2godm9pZCogY29kZSwgc2l6ZV90KTsKKyNlbHNlCisgICAgICAg
IHN0YXRpYyB2b2lkIGNhY2hlRmx1c2godm9pZCogY29kZSwgc2l6ZV90IHNpemUpCisgICAgICAg
IHsKKyNpZiBPUyhMSU5VWCkgJiYgQ09NUElMRVIoR0NDKQorICAgICAgICAgICAgdWludHB0cl90
IGN1cnJlbnRQYWdlID0gcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGUpICYgfihwYWdl
U2l6ZSgpIC0gMSk7CisgICAgICAgICAgICB1aW50cHRyX3QgbGFzdFBhZ2UgPSAocmVpbnRlcnBy
ZXRfY2FzdDx1aW50cHRyX3Q+KGNvZGUpICsgc2l6ZSkgJiB+KHBhZ2VTaXplKCkgLSAxKTsKKyAg
ICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBhc20gdm9sYXRpbGUoCisgICAgICAgICAg
ICAgICAgICAgICJwdXNoICAgIHtyN31cbiIKKyAgICAgICAgICAgICAgICAgICAgIm1vdiAgICAg
cjAsICUwXG4iCisgICAgICAgICAgICAgICAgICAgICJtb3YgICAgIHIxLCAlMVxuIgorICAgICAg
ICAgICAgICAgICAgICAibW92ICAgICByNywgIzB4ZjAwMDBcbiIKKyAgICAgICAgICAgICAgICAg
ICAgImFkZCAgICAgcjcsIHI3LCAjMHgyXG4iCisgICAgICAgICAgICAgICAgICAgICJtb3YgICAg
IHIyLCAjMHgwXG4iCisgICAgICAgICAgICAgICAgICAgICJzdmMgICAgIDB4MFxuIgorICAgICAg
ICAgICAgICAgICAgICAicG9wICAgICB7cjd9XG4iCisgICAgICAgICAgICAgICAgICAgIDoKKyAg
ICAgICAgICAgICAgICAgICAgOiAiciIgKGN1cnJlbnRQYWdlKSwgInIiIChjdXJyZW50UGFnZSAr
IHBhZ2VTaXplKCkpCisgICAgICAgICAgICAgICAgICAgIDogInIwIiwgInIxIiwgInIyIik7Cisg
ICAgICAgICAgICAgICAgY3VycmVudFBhZ2UgKz0gcGFnZVNpemUoKTsKKyAgICAgICAgICAgIH0g
d2hpbGUgKGxhc3RQYWdlID49IGN1cnJlbnRQYWdlKTsKKyNlbGlmIE9TKFdJTkNFKQorICAgICAg
ICAgICAgQ2FjaGVSYW5nZUZsdXNoKGNvZGUsIHNpemUsIENBQ0hFX1NZTkNfQUxMKTsKKyNlbGlm
IE9TKFFOWCkgJiYgRU5BQkxFKEFTU0VNQkxFUl9XWF9FWENMVVNJVkUpCisgICAgICAgICAgICBV
TlVTRURfUEFSQU0oY29kZSk7CisgICAgICAgICAgICBVTlVTRURfUEFSQU0oc2l6ZSk7CisjZWxp
ZiBPUyhRTlgpCisgICAgICAgICAgICBtc3luYyhjb2RlLCBzaXplLCBNU19JTlZBTElEQVRFX0lD
QUNIRSk7CisjZWxzZQorI2Vycm9yICJUaGUgY2FjaGVGbHVzaCBzdXBwb3J0IGlzIG1pc3Npbmcg
b24gdGhpcyBwbGF0Zm9ybS4iCisjZW5kaWYKKyAgICAgICAgfQorI2VuZGlmCisKICAgICBwcml2
YXRlOgogICAgICAgICBBUk1Xb3JkIFJNKGludCByZWcpCiAgICAgICAgIHsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3NlbWJsZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FSTXY3QXNzZW1ibGVyLmgJKHJldmlz
aW9uIDExODQwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvQVJNdjdBc3Nl
bWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjAyNiw3ICsyMDI2LDcgQEAgcHVibGljOgogCiAg
ICAgICAgIGxpbmtKdW1wQWJzb2x1dGUocmVpbnRlcnByZXRfY2FzdDx1aW50MTZfdCo+KGZyb20p
LCB0byk7CiAKLSAgICAgICAgRXhlY3V0YWJsZUFsbG9jYXRvcjo6Y2FjaGVGbHVzaChyZWludGVy
cHJldF9jYXN0PHVpbnQxNl90Kj4oZnJvbSkgLSA1LCA1ICogc2l6ZW9mKHVpbnQxNl90KSk7Cisg
ICAgICAgIGNhY2hlRmx1c2gocmVpbnRlcnByZXRfY2FzdDx1aW50MTZfdCo+KGZyb20pIC0gNSwg
NSAqIHNpemVvZih1aW50MTZfdCkpOwogICAgIH0KICAgICAKICAgICBzdGF0aWMgdm9pZCByZWxp
bmtDYWxsKHZvaWQqIGZyb20sIHZvaWQqIHRvKQpAQCAtMjA3MCw2ICsyMDcwLDM3IEBAIHB1Ymxp
YzoKIAogICAgIHVuc2lnbmVkIGRlYnVnT2Zmc2V0KCkgeyByZXR1cm4gbV9mb3JtYXR0ZXIuZGVi
dWdPZmZzZXQoKTsgfQogCisgICAgc3RhdGljIHZvaWQgY2FjaGVGbHVzaCh2b2lkKiBjb2RlLCBz
aXplX3Qgc2l6ZSkKKyAgICB7CisjaWYgT1MoSU9TKQorICAgICAgICBzeXNfY2FjaGVfY29udHJv
bChrQ2FjaGVGdW5jdGlvblByZXBhcmVGb3JFeGVjdXRpb24sIGNvZGUsIHNpemUpOworI2VsaWYg
T1MoTElOVVgpCisgICAgICAgIGFzbSB2b2xhdGlsZSgKKyAgICAgICAgICAgICJwdXNoICAgIHty
N31cbiIKKyAgICAgICAgICAgICJtb3YgICAgIHIwLCAlMFxuIgorICAgICAgICAgICAgIm1vdiAg
ICAgcjEsICUxXG4iCisgICAgICAgICAgICAibW92dyAgICByNywgIzB4MlxuIgorICAgICAgICAg
ICAgIm1vdnQgICAgcjcsICMweGZcbiIKKyAgICAgICAgICAgICJtb3ZzICAgIHIyLCAjMHgwXG4i
CisgICAgICAgICAgICAic3ZjICAgICAweDBcbiIKKyAgICAgICAgICAgICJwb3AgICAgIHtyN31c
biIKKyAgICAgICAgICAgIDoKKyAgICAgICAgICAgIDogInIiIChjb2RlKSwgInIiIChyZWludGVy
cHJldF9jYXN0PGNoYXIqPihjb2RlKSArIHNpemUpCisgICAgICAgICAgICA6ICJyMCIsICJyMSIs
ICJyMiIpOworI2VsaWYgT1MoV0lOQ0UpCisgICAgICAgIENhY2hlUmFuZ2VGbHVzaChjb2RlLCBz
aXplLCBDQUNIRV9TWU5DX0FMTCk7CisjZWxpZiBPUyhRTlgpCisjaWYgIUVOQUJMRShBU1NFTUJM
RVJfV1hfRVhDTFVTSVZFKQorICAgICAgICBtc3luYyhjb2RlLCBzaXplLCBNU19JTlZBTElEQVRF
X0lDQUNIRSk7CisjZWxzZQorICAgICAgICBVTlVTRURfUEFSQU0oY29kZSk7CisgICAgICAgIFVO
VVNFRF9QQVJBTShzaXplKTsKKyNlbmRpZgorI2Vsc2UKKyNlcnJvciAiVGhlIGNhY2hlRmx1c2gg
c3VwcG9ydCBpcyBtaXNzaW5nIG9uIHRoaXMgcGxhdGZvcm0uIgorI2VuZGlmCisgICAgfQorCiBw
cml2YXRlOgogICAgIC8vIFZGUCBvcGVyYXRpb25zIGNvbW1vbmx5IHRha2Ugb25lIG9yIG1vcmUg
NS1iaXQgb3BlcmFuZHMsIHR5cGljYWxseSByZXByZXNlbnRpbmcgYQogICAgIC8vIGZsb2F0aW5n
IHBvaW50IHJlZ2lzdGVyIG51bWJlci4gIFRoaXMgd2lsbCBjb21tb25seSBiZSBlbmNvZGVkIGlu
IHRoZSBpbnN0cnVjdGlvbgpAQCAtMjE0OSw3ICsyMTgwLDcgQEAgcHJpdmF0ZToKICAgICAgICAg
bG9jYXRpb25bLTJdID0gdHdvV29yZE9wNWk2SW1tNFJlZzRFbmNvZGVkSW1tRmlyc3QoT1BfTU9W
VCwgaGkxNik7CiAgICAgICAgIGxvY2F0aW9uWy0xXSA9IHR3b1dvcmRPcDVpNkltbTRSZWc0RW5j
b2RlZEltbVNlY29uZCgobG9jYXRpb25bLTFdID4+IDgpICYgMHhmLCBoaTE2KTsKIAotICAgICAg
ICBFeGVjdXRhYmxlQWxsb2NhdG9yOjpjYWNoZUZsdXNoKGxvY2F0aW9uIC0gNCwgNCAqIHNpemVv
Zih1aW50MTZfdCkpOworICAgICAgICBjYWNoZUZsdXNoKGxvY2F0aW9uIC0gNCwgNCAqIHNpemVv
Zih1aW50MTZfdCkpOwogICAgIH0KICAgICAKICAgICBzdGF0aWMgaW50MzJfdCByZWFkSW50MzIo
dm9pZCogY29kZSkKQEAgLTIxNzcsNyArMjIwOCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHVpbnQx
Nl90KiBsb2NhdGlvbiA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDE2X3QqPihjb2RlKTsKICAgICAg
ICAgbG9jYXRpb25bMF0gJj0gfigoc3RhdGljX2Nhc3Q8dWludDE2X3Q+KDB4N2YpID4+IDIpIDw8
IDYpOwogICAgICAgICBsb2NhdGlvblswXSB8PSAoaW1tLmdldFVJbnQ3KCkgPj4gMikgPDwgNjsK
LSAgICAgICAgRXhlY3V0YWJsZUFsbG9jYXRvcjo6Y2FjaGVGbHVzaChsb2NhdGlvbiwgc2l6ZW9m
KHVpbnQxNl90KSk7CisgICAgICAgIGNhY2hlRmx1c2gobG9jYXRpb24sIHNpemVvZih1aW50MTZf
dCkpOwogICAgIH0KIAogICAgIHN0YXRpYyB2b2lkIHNldFBvaW50ZXIodm9pZCogY29kZSwgdm9p
ZCogdmFsdWUpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0
TWFjcm9Bc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNz
ZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAkocmV2aXNpb24gMTE4NDA5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgJKHdv
cmtpbmcgY29weSkKQEAgLTU3OCw2ICs1NzgsMTAgQEAgcHVibGljOgogCiAgICAgdW5zaWduZWQg
ZGVidWdPZmZzZXQoKSB7IHJldHVybiBtX2Fzc2VtYmxlci5kZWJ1Z09mZnNldCgpOyB9CiAKKyAg
ICBBTFdBWVNfSU5MSU5FIHN0YXRpYyB2b2lkIGNhY2hlRmx1c2godm9pZCogY29kZSwgc2l6ZV90
IHNpemUpCisgICAgeworICAgICAgICBBc3NlbWJsZXJUeXBlOjpjYWNoZUZsdXNoKGNvZGUsIHNp
emUpOworICAgIH0KIHByb3RlY3RlZDoKICAgICBBYnN0cmFjdE1hY3JvQXNzZW1ibGVyKCkKICAg
ICAgICAgOiBtX3JhbmRvbVNvdXJjZShjcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlcigpKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVmZmVyLmgJKHJl
dmlzaW9uIDExODQwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1
ZmZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMjksNyArMzI5LDcgQEAgcHJpdmF0ZToKICNlbHNl
CiAgICAgICAgIEV4ZWN1dGFibGVBbGxvY2F0b3I6Om1ha2VFeGVjdXRhYmxlKGNvZGUoKSwgbV9z
aXplKTsKICNlbmRpZgotICAgICAgICBFeGVjdXRhYmxlQWxsb2NhdG9yOjpjYWNoZUZsdXNoKGNv
ZGUoKSwgbV9zaXplKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OmNhY2hlRmx1c2goY29kZSgp
LCBtX3NpemUpOwogICAgIH0KIAogI2lmIERVTVBfTElOS19TVEFUSVNUSUNTCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01JUFNBc3NlbWJsZXIuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01JUFNBc3NlbWJsZXIuaAkocmV2aXNp
b24gMTE4NDA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NSVBTQXNzZW1i
bGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTcxOCw3ICs3MTgsNyBAQCBwdWJsaWM6CiAgICAgICAg
IGluc24gPSBpbnNuIC0gNjsKICAgICAgICAgaW50IGZsdXNoU2l6ZSA9IGxpbmtXaXRoT2Zmc2V0
KGluc24sIHRvKTsKIAotICAgICAgICBFeGVjdXRhYmxlQWxsb2NhdG9yOjpjYWNoZUZsdXNoKGlu
c24sIGZsdXNoU2l6ZSk7CisgICAgICAgIGNhY2hlRmx1c2goaW5zbiwgZmx1c2hTaXplKTsKICAg
ICB9CiAKICAgICBzdGF0aWMgdm9pZCByZWxpbmtDYWxsKHZvaWQqIGZyb20sIHZvaWQqIHRvKQpA
QCAtNzMwLDcgKzczMCw3IEBAIHB1YmxpYzoKICAgICAgICAgZWxzZQogICAgICAgICAgICAgc3Rh
cnQgPSByZWludGVycHJldF9jYXN0PHZvaWQqPihyZWludGVycHJldF9jYXN0PGludHB0cl90Pihm
cm9tKSAtIDQgKiBzaXplb2YoTUlQU1dvcmQpKTsKIAotICAgICAgICBFeGVjdXRhYmxlQWxsb2Nh
dG9yOjpjYWNoZUZsdXNoKHN0YXJ0LCBzaXplKTsKKyAgICAgICAgY2FjaGVGbHVzaChzdGFydCwg
c2l6ZSk7CiAgICAgfQogCiAgICAgc3RhdGljIHZvaWQgcmVwYXRjaEludDMyKHZvaWQqIGZyb20s
IGludDMyX3QgdG8pCkBAIC03NDIsNyArNzQyLDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQo
KCppbnNuICYgMHhmYzAwMDAwMCkgPT0gMHgzNDAwMDAwMCk7IC8vIG9yaQogICAgICAgICAqaW5z
biA9ICgqaW5zbiAmIDB4ZmZmZjAwMDApIHwgKHRvICYgMHhmZmZmKTsKICAgICAgICAgaW5zbi0t
OwotICAgICAgICBFeGVjdXRhYmxlQWxsb2NhdG9yOjpjYWNoZUZsdXNoKGluc24sIDIgKiBzaXpl
b2YoTUlQU1dvcmQpKTsKKyAgICAgICAgY2FjaGVGbHVzaChpbnNuLCAyICogc2l6ZW9mKE1JUFNX
b3JkKSk7CiAgICAgfQogCiAgICAgc3RhdGljIGludDMyX3QgcmVhZEludDMyKHZvaWQqIGZyb20p
CkBAIC03ODMsNiArNzgzLDMyIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCo+KHJlc3VsdCk7CiAgICAgfQogCisgICAgc3RhdGljIHZvaWQgY2FjaGVGbHVz
aCh2b2lkKiBjb2RlLCBzaXplX3Qgc2l6ZSkKKyAgICB7CisjaWYgR0NDX1ZFUlNJT05fQVRfTEVB
U1QoNCwgMywgMCkKKyNpZiBXVEZfTUlQU19JU0FfUkVWKDIpICYmICFHQ0NfVkVSU0lPTl9BVF9M
RUFTVCg0LCA0LCAzKQorICAgICAgICBpbnQgbGluZVNpemU7CisgICAgICAgIGFzbSgicmRod3Ig
JTAsICQxIiA6ICI9ciIgKGxpbmVTaXplKSk7CisgICAgICAgIC8vCisgICAgICAgIC8vIE1vZGlm
eSAic3RhcnQiIGFuZCAiZW5kIiB0byBhdm9pZCBHQ0MgNC4zLjAtNC40LjIgYnVnIGluCisgICAg
ICAgIC8vIG1pcHNfZXhwYW5kX3N5bmNpX2xvb3AgdGhhdCBtYXkgZXhlY3V0ZSBzeW5jaSBvbmUg
bW9yZSB0aW1lLgorICAgICAgICAvLyAic3RhcnQiIHBvaW50cyB0byB0aGUgZmlzcnQgYnl0ZSBv
ZiB0aGUgY2FjaGUgbGluZS4KKyAgICAgICAgLy8gImVuZCIgcG9pbnRzIHRvIHRoZSBsYXN0IGJ5
dGUgb2YgdGhlIGxpbmUgYmVmb3JlIHRoZSBsYXN0IGNhY2hlIGxpbmUuCisgICAgICAgIC8vIEJl
Y2F1c2Ugc2l6ZSBpcyBhbHdheXMgYSBtdWx0aXBsZSBvZiA0LCB0aGlzIGlzIHNhZmUgdG8gc2V0
CisgICAgICAgIC8vICJlbmQiIHRvIHRoZSBsYXN0IGJ5dGUuCisgICAgICAgIC8vCisgICAgICAg
IGludHB0cl90IHN0YXJ0ID0gcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oY29kZSkgJiAoLWxp
bmVTaXplKTsKKyAgICAgICAgaW50cHRyX3QgZW5kID0gKChyZWludGVycHJldF9jYXN0PGludHB0
cl90Pihjb2RlKSArIHNpemUgLSAxKSAmICgtbGluZVNpemUpKSAtIDE7CisgICAgICAgIF9fYnVp
bHRpbl9fX2NsZWFyX2NhY2hlKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHN0YXJ0KSwgcmVpbnRl
cnByZXRfY2FzdDxjaGFyKj4oZW5kKSk7CisjZWxzZQorICAgICAgICBpbnRwdHJfdCBlbmQgPSBy
ZWludGVycHJldF9jYXN0PGludHB0cl90Pihjb2RlKSArIHNpemU7CisgICAgICAgIF9fYnVpbHRp
bl9fX2NsZWFyX2NhY2hlKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvZGUpLCByZWludGVycHJl
dF9jYXN0PGNoYXIqPihlbmQpKTsKKyNlbmRpZgorI2Vsc2UKKyAgICAgICAgX2ZsdXNoX2NhY2hl
KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNvZGUpLCBzaXplLCBCQ0FDSEUpOworI2VuZGlmCisg
ICAgfQorCiBwcml2YXRlOgogICAgIC8qIFVwZGF0ZSBlYWNoIGp1bXAgaW4gdGhlIGJ1ZmZlciBv
ZiBuZXdCYXNlLiAgKi8KICAgICB2b2lkIHJlbG9jYXRlSnVtcHModm9pZCogb2xkQmFzZSwgdm9p
ZCogbmV3QmFzZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvU0g0QXNz
ZW1ibGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9T
SDRBc3NlbWJsZXIuaAkocmV2aXNpb24gMTE4NDA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Fzc2VtYmxlci9TSDRBc3NlbWJsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTQwMSw3ICsxNDAx
LDcgQEAgcHVibGljOgogICAgICAgICBBU1NFUlQodmFsdWUgPj0gMCk7CiAgICAgICAgIEFTU0VS
VCh2YWx1ZSA8PSA2MCk7CiAgICAgICAgICpyZWludGVycHJldF9jYXN0PHVpbnQxNl90Kj4od2hl
cmUpID0gKCgqcmVpbnRlcnByZXRfY2FzdDx1aW50MTZfdCo+KHdoZXJlKSAmIDB4ZmZmMCkgfCAo
dmFsdWUgPj4gMikpOwotICAgICAgICBFeGVjdXRhYmxlQWxsb2NhdG9yOjpjYWNoZUZsdXNoKHJl
aW50ZXJwcmV0X2Nhc3Q8dWludDE2X3QqPih3aGVyZSksIHNpemVvZih1aW50MTZfdCkpOworICAg
ICAgICBjYWNoZUZsdXNoKHJlaW50ZXJwcmV0X2Nhc3Q8dWludDE2X3QqPih3aGVyZSksIHNpemVv
Zih1aW50MTZfdCkpOwogICAgIH0KIAogICAgIHN0YXRpYyB2b2lkIHJlbGlua0NhbGwodm9pZCog
ZnJvbSwgdm9pZCogdG8pCkBAIC0xNTQ2LDYgKzE1NDYsMTcgQEAgcHVibGljOgogICAgICAgICBy
ZXR1cm4gbV9idWZmZXIuZXhlY3V0YWJsZUNvcHkoZ2xvYmFsRGF0YSwgb3duZXJVSUQsIGVmZm9y
dCk7CiAgICAgfQogCisgICAgc3RhdGljIHZvaWQgY2FjaGVGbHVzaCh2b2lkKiBjb2RlLCBzaXpl
X3Qgc2l6ZSkKKyAgICB7CisjaWYgIU9TKExJTlVYKQorI2Vycm9yICJUaGUgY2FjaGVGbHVzaCBz
dXBwb3J0IGlzIG1pc3Npbmcgb24gdGhpcyBwbGF0Zm9ybS4iCisjZWxpZiBkZWZpbmVkIENBQ0hF
RkxVU0hfRF9MMgorICAgICAgICBzeXNjYWxsKF9fTlJfY2FjaGVmbHVzaCwgcmVpbnRlcnByZXRf
Y2FzdDx1bnNpZ25lZD4oY29kZSksIHNpemUsIENBQ0hFRkxVU0hfRF9XQiB8IENBQ0hFRkxVU0hf
SSB8IENBQ0hFRkxVU0hfRF9MMik7CisjZWxzZQorICAgICAgICBzeXNjYWxsKF9fTlJfY2FjaGVm
bHVzaCwgcmVpbnRlcnByZXRfY2FzdDx1bnNpZ25lZD4oY29kZSksIHNpemUsIENBQ0hFRkxVU0hf
RF9XQiB8IENBQ0hFRkxVU0hfSSk7CisjZW5kaWYKKyAgICB9CisKICAgICB2b2lkIHByZWZpeCh1
aW50MTZfdCBwcmUpCiAgICAgewogICAgICAgICBtX2J1ZmZlci5wdXRCeXRlKHByZSk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL1g4NkFzc2VtYmxlci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNzZW1ibGVyLmgJKHJl
dmlzaW9uIDExODQwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvWDg2QXNz
ZW1ibGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4MTYsNiArMTgxNiw5IEBAIHB1YmxpYzoKICAg
ICAgICAgbV9mb3JtYXR0ZXIub25lQnl0ZU9wKE9QX05PUCk7CiAgICAgfQogCisgICAgLy8gVGhp
cyBpcyBhIG5vLW9wIG9uIHg4NgorICAgIEFMV0FZU19JTkxJTkUgc3RhdGljIHZvaWQgY2FjaGVG
bHVzaCh2b2lkKiwgc2l6ZV90KSB7IH0KKwogcHJpdmF0ZToKIAogICAgIHN0YXRpYyB2b2lkIHNl
dFBvaW50ZXIodm9pZCogd2hlcmUsIHZvaWQqIHZhbHVlKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdHUFJJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdHUFJJbmZvLmgJKHJldmlzaW9uIDExODQwOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHR1BSSW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC00MTQsOCArNDE0LDgg
QEAgcHVibGljOgogICAgIC8vIGJldHdlZW4gdGhlIGFyZ3VtZW50cyBiZWluZyBzZXQgdXAsIGFu
ZCB0aGUgY2FsbCBiZWluZyBtYWRlLiBUaGF0IHNhaWQsCiAgICAgLy8gYW55IGNoYW5nZSBpbnRy
b2R1Y2luZyBhIHByb2JsZW0gaGVyZSBpcyBsaWtlbHkgdG8gYmUgaW1tZWRpYXRlbHkgYXBwYXJl
bnQhCiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBhcmd1bWVudEdQUjMgPSBBUk1SZWdpc3RlcnM6
OnIzOyAvLyBGSVhNRSEKLSAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vbkFyZ0dQUjAgPSBYODZS
ZWdpc3RlcnM6OnI0OyAvLyByZWdUMwotICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgbm9uQXJnR1BS
MSA9IFg4NlJlZ2lzdGVyczo6cjg7IC8vIHJlZ1Q0CisgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBu
b25BcmdHUFIwID0gQVJNUmVnaXN0ZXJzOjpyNDsgLy8gcmVnVDMKKyAgICBzdGF0aWMgY29uc3Qg
R1BSUmVnIG5vbkFyZ0dQUjEgPSBBUk1SZWdpc3RlcnM6OnI4OyAvLyByZWdUNAogICAgIHN0YXRp
YyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIgPSBBUk1SZWdpc3RlcnM6OnIwOyAvLyByZWdU
MAogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgcmV0dXJuVmFsdWVHUFIyID0gQVJNUmVnaXN0ZXJz
OjpyMTsgLy8gcmVnVDEKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vblByZXNlcnZlZE5vblJl
dHVybkdQUiA9IEFSTVJlZ2lzdGVyczo6cjI7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0V4ZWN1dGFibGVBbGxvY2F0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAJKHJldmlzaW9uIDExODQwOSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRvci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI2MSwyMyArMjYxLDYgQEAgdm9pZCBFeGVjdXRhYmxlQWxsb2NhdG9yOjpy
ZXByb3RlY3RSZWdpbwogCiAjZW5kaWYKIAotI2lmIENQVShBUk1fVFJBRElUSU9OQUwpICYmIE9T
KExJTlVYKSAmJiBDT01QSUxFUihSVkNUKQotCi1fX2FzbSB2b2lkIEV4ZWN1dGFibGVBbGxvY2F0
b3I6OmNhY2hlRmx1c2godm9pZCogY29kZSwgc2l6ZV90IHNpemUpCi17Ci0gICAgQVJNCi0gICAg
cHVzaCB7cjd9Ci0gICAgYWRkIHIxLCByMSwgcjAKLSAgICBtb3YgcjcsICMweGYwMDAwCi0gICAg
YWRkIHI3LCByNywgIzB4MgotICAgIG1vdiByMiwgIzB4MAotICAgIHN2YyAjMHgwCi0gICAgcG9w
IHtyN30KLSAgICBieCBscgotfQotCi0jZW5kaWYKLQogfQogCiAjZW5kaWYgLy8gSEFWRShBU1NF
TUJMRVIpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1dGFibGVB
bGxvY2F0b3IuaAkocmV2aXNpb24gMTE4NDA5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9FeGVjdXRhYmxlQWxsb2NhdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzOSwxMDggKzEzOSw2
IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBtYWtlRXhlY3V0YWJsZSh2b2lkKiwgc2l6ZV90
KSB7fQogI2VuZGlmCiAKLSNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQotICAgIHN0YXRpYyB2
b2lkIGNhY2hlRmx1c2godm9pZCosIHNpemVfdCkKLSAgICB7Ci0gICAgfQotI2VsaWYgQ1BVKE1J
UFMpCi0gICAgc3RhdGljIHZvaWQgY2FjaGVGbHVzaCh2b2lkKiBjb2RlLCBzaXplX3Qgc2l6ZSkK
LSAgICB7Ci0jaWYgR0NDX1ZFUlNJT05fQVRfTEVBU1QoNCwgMywgMCkKLSNpZiBXVEZfTUlQU19J
U0FfUkVWKDIpICYmICFHQ0NfVkVSU0lPTl9BVF9MRUFTVCg0LCA0LCAzKQotICAgICAgICBpbnQg
bGluZVNpemU7Ci0gICAgICAgIGFzbSgicmRod3IgJTAsICQxIiA6ICI9ciIgKGxpbmVTaXplKSk7
Ci0gICAgICAgIC8vCi0gICAgICAgIC8vIE1vZGlmeSAic3RhcnQiIGFuZCAiZW5kIiB0byBhdm9p
ZCBHQ0MgNC4zLjAtNC40LjIgYnVnIGluCi0gICAgICAgIC8vIG1pcHNfZXhwYW5kX3N5bmNpX2xv
b3AgdGhhdCBtYXkgZXhlY3V0ZSBzeW5jaSBvbmUgbW9yZSB0aW1lLgotICAgICAgICAvLyAic3Rh
cnQiIHBvaW50cyB0byB0aGUgZmlzcnQgYnl0ZSBvZiB0aGUgY2FjaGUgbGluZS4KLSAgICAgICAg
Ly8gImVuZCIgcG9pbnRzIHRvIHRoZSBsYXN0IGJ5dGUgb2YgdGhlIGxpbmUgYmVmb3JlIHRoZSBs
YXN0IGNhY2hlIGxpbmUuCi0gICAgICAgIC8vIEJlY2F1c2Ugc2l6ZSBpcyBhbHdheXMgYSBtdWx0
aXBsZSBvZiA0LCB0aGlzIGlzIHNhZmUgdG8gc2V0Ci0gICAgICAgIC8vICJlbmQiIHRvIHRoZSBs
YXN0IGJ5dGUuCi0gICAgICAgIC8vCi0gICAgICAgIGludHB0cl90IHN0YXJ0ID0gcmVpbnRlcnBy
ZXRfY2FzdDxpbnRwdHJfdD4oY29kZSkgJiAoLWxpbmVTaXplKTsKLSAgICAgICAgaW50cHRyX3Qg
ZW5kID0gKChyZWludGVycHJldF9jYXN0PGludHB0cl90Pihjb2RlKSArIHNpemUgLSAxKSAmICgt
bGluZVNpemUpKSAtIDE7Ci0gICAgICAgIF9fYnVpbHRpbl9fX2NsZWFyX2NhY2hlKHJlaW50ZXJw
cmV0X2Nhc3Q8Y2hhcio+KHN0YXJ0KSwgcmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oZW5kKSk7Ci0j
ZWxzZQotICAgICAgICBpbnRwdHJfdCBlbmQgPSByZWludGVycHJldF9jYXN0PGludHB0cl90Pihj
b2RlKSArIHNpemU7Ci0gICAgICAgIF9fYnVpbHRpbl9fX2NsZWFyX2NhY2hlKHJlaW50ZXJwcmV0
X2Nhc3Q8Y2hhcio+KGNvZGUpLCByZWludGVycHJldF9jYXN0PGNoYXIqPihlbmQpKTsKLSNlbmRp
ZgotI2Vsc2UKLSAgICAgICAgX2ZsdXNoX2NhY2hlKHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KGNv
ZGUpLCBzaXplLCBCQ0FDSEUpOwotI2VuZGlmCi0gICAgfQotI2VsaWYgQ1BVKEFSTV9USFVNQjIp
ICYmIE9TKElPUykKLSAgICBzdGF0aWMgdm9pZCBjYWNoZUZsdXNoKHZvaWQqIGNvZGUsIHNpemVf
dCBzaXplKQotICAgIHsKLSAgICAgICAgc3lzX2NhY2hlX2NvbnRyb2woa0NhY2hlRnVuY3Rpb25Q
cmVwYXJlRm9yRXhlY3V0aW9uLCBjb2RlLCBzaXplKTsKLSAgICB9Ci0jZWxpZiBDUFUoQVJNX1RI
VU1CMikgJiYgT1MoTElOVVgpCi0gICAgc3RhdGljIHZvaWQgY2FjaGVGbHVzaCh2b2lkKiBjb2Rl
LCBzaXplX3Qgc2l6ZSkKLSAgICB7Ci0gICAgICAgIGFzbSB2b2xhdGlsZSAoCi0gICAgICAgICAg
ICAicHVzaCAgICB7cjd9XG4iCi0gICAgICAgICAgICAibW92ICAgICByMCwgJTBcbiIKLSAgICAg
ICAgICAgICJtb3YgICAgIHIxLCAlMVxuIgotICAgICAgICAgICAgIm1vdncgICAgcjcsICMweDJc
biIKLSAgICAgICAgICAgICJtb3Z0ICAgIHI3LCAjMHhmXG4iCi0gICAgICAgICAgICAibW92cyAg
ICByMiwgIzB4MFxuIgotICAgICAgICAgICAgInN2YyAgICAgMHgwXG4iCi0gICAgICAgICAgICAi
cG9wICAgICB7cjd9XG4iCi0gICAgICAgICAgICA6Ci0gICAgICAgICAgICA6ICJyIiAoY29kZSks
ICJyIiAocmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oY29kZSkgKyBzaXplKQotICAgICAgICAgICAg
OiAicjAiLCAicjEiLCAicjIiKTsKLSAgICB9Ci0jZWxpZiBDUFUoQVJNX1RSQURJVElPTkFMKSAm
JiBPUyhMSU5VWCkgJiYgQ09NUElMRVIoUlZDVCkKLSAgICBzdGF0aWMgX19hc20gdm9pZCBjYWNo
ZUZsdXNoKHZvaWQqIGNvZGUsIHNpemVfdCBzaXplKTsKLSNlbGlmIENQVShBUk1fVFJBRElUSU9O
QUwpICYmIE9TKExJTlVYKSAmJiBDT01QSUxFUihHQ0MpCi0gICAgc3RhdGljIHZvaWQgY2FjaGVG
bHVzaCh2b2lkKiBjb2RlLCBzaXplX3Qgc2l6ZSkKLSAgICB7Ci0gICAgICAgIHVpbnRwdHJfdCBj
dXJyZW50UGFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihjb2RlKSAmIH4ocGFnZVNp
emUoKSAtIDEpOwotICAgICAgICB1aW50cHRyX3QgbGFzdFBhZ2UgPSAocmVpbnRlcnByZXRfY2Fz
dDx1aW50cHRyX3Q+KGNvZGUpICsgc2l6ZSkgJiB+KHBhZ2VTaXplKCkgLSAxKTsKLQotICAgICAg
ICBkbyB7Ci0gICAgICAgICAgICBhc20gdm9sYXRpbGUgKAotICAgICAgICAgICAgICAgICJwdXNo
ICAgIHtyN31cbiIKLSAgICAgICAgICAgICAgICAibW92ICAgICByMCwgJTBcbiIKLSAgICAgICAg
ICAgICAgICAibW92ICAgICByMSwgJTFcbiIKLSAgICAgICAgICAgICAgICAibW92ICAgICByNywg
IzB4ZjAwMDBcbiIKLSAgICAgICAgICAgICAgICAiYWRkICAgICByNywgcjcsICMweDJcbiIKLSAg
ICAgICAgICAgICAgICAibW92ICAgICByMiwgIzB4MFxuIgotICAgICAgICAgICAgICAgICJzdmMg
ICAgIDB4MFxuIgotICAgICAgICAgICAgICAgICJwb3AgICAgIHtyN31cbiIKLSAgICAgICAgICAg
ICAgICA6Ci0gICAgICAgICAgICAgICAgOiAiciIgKGN1cnJlbnRQYWdlKSwgInIiIChjdXJyZW50
UGFnZSArIHBhZ2VTaXplKCkpCi0gICAgICAgICAgICAgICAgOiAicjAiLCAicjEiLCAicjIiKTsK
LSAgICAgICAgICAgIGN1cnJlbnRQYWdlICs9IHBhZ2VTaXplKCk7Ci0gICAgICAgIH0gd2hpbGUg
KGxhc3RQYWdlID49IGN1cnJlbnRQYWdlKTsKLSAgICB9Ci0jZWxpZiBPUyhXSU5DRSkKLSAgICBz
dGF0aWMgdm9pZCBjYWNoZUZsdXNoKHZvaWQqIGNvZGUsIHNpemVfdCBzaXplKQotICAgIHsKLSAg
ICAgICAgQ2FjaGVSYW5nZUZsdXNoKGNvZGUsIHNpemUsIENBQ0hFX1NZTkNfQUxMKTsKLSAgICB9
Ci0jZWxpZiBDUFUoU0g0KSAmJiBPUyhMSU5VWCkKLSAgICBzdGF0aWMgdm9pZCBjYWNoZUZsdXNo
KHZvaWQqIGNvZGUsIHNpemVfdCBzaXplKQotICAgIHsKLSNpZmRlZiBDQUNIRUZMVVNIX0RfTDIK
LSAgICAgICAgc3lzY2FsbChfX05SX2NhY2hlZmx1c2gsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5zaWdu
ZWQ+KGNvZGUpLCBzaXplLCBDQUNIRUZMVVNIX0RfV0IgfCBDQUNIRUZMVVNIX0kgfCBDQUNIRUZM
VVNIX0RfTDIpOwotI2Vsc2UKLSAgICAgICAgc3lzY2FsbChfX05SX2NhY2hlZmx1c2gsIHJlaW50
ZXJwcmV0X2Nhc3Q8dW5zaWduZWQ+KGNvZGUpLCBzaXplLCBDQUNIRUZMVVNIX0RfV0IgfCBDQUNI
RUZMVVNIX0kpOwotI2VuZGlmCi0gICAgfQotI2VsaWYgT1MoUU5YKQotICAgIHN0YXRpYyB2b2lk
IGNhY2hlRmx1c2godm9pZCogY29kZSwgc2l6ZV90IHNpemUpCi0gICAgewotI2lmICFFTkFCTEUo
QVNTRU1CTEVSX1dYX0VYQ0xVU0lWRSkKLSAgICAgICAgbXN5bmMoY29kZSwgc2l6ZSwgTVNfSU5W
QUxJREFURV9JQ0FDSEUpOwotI2Vsc2UKLSAgICAgICAgVU5VU0VEX1BBUkFNKGNvZGUpOwotICAg
ICAgICBVTlVTRURfUEFSQU0oc2l6ZSk7Ci0jZW5kaWYKLSAgICB9Ci0jZWxzZQotICAgICNlcnJv
ciAiVGhlIGNhY2hlRmx1c2ggc3VwcG9ydCBpcyBtaXNzaW5nIG9uIHRoaXMgcGxhdGZvcm0uIgot
I2VuZGlmCiAgICAgc3RhdGljIHNpemVfdCBjb21taXR0ZWRCeXRlQ291bnQoKTsKIAogcHJpdmF0
ZToK
</data>
<flag name="review"
          id="150573"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>