<?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>33870</bug_id>
          
          <creation_ts>2010-01-19 14:34:43 -0800</creation_ts>
          <short_desc>Style in WebCore/bridge/JNIUtility needs fixing</short_desc>
          <delta_ts>2010-01-20 02:00:47 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>33843</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Steve Block">steveblock</reporter>
          <assigned_to name="Steve Block">steveblock</assigned_to>
          <cc>android-webkit-unforking</cc>
    
    <cc>steveblock</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>182463</commentid>
    <comment_count>0</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-01-19 14:34:43 -0800</bug_when>
    <thetext>Style in WebCore/bridge/JNIUtility needs fixing.

See Bug 33843, which this bug blocks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182482</commentid>
    <comment_count>1</comment_count>
      <attachid>46955</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-01-19 15:31:11 -0800</bug_when>
    <thetext>Created attachment 46955
Patch 1 for Bug 33870</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182567</commentid>
    <comment_count>2</comment_count>
      <attachid>46955</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-01-19 18:22:10 -0800</bug_when>
    <thetext>Comment on attachment 46955
Patch 1 for Bug 33870


&gt; Index: WebCore/bridge/jni/JNIUtility.cpp
&gt; +} // end of namespace Bindings

Care to fix this while you&apos;re at it? s/end of namespace/namespace

&gt;  } // end of namespace JSC

Care to fix this while you&apos;re at it? s/end of namespace/namespace</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182670</commentid>
    <comment_count>3</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2010-01-20 02:00:47 -0800</bug_when>
    <thetext>&gt; Care to fix this while you&apos;re at it? s/end of namespace/namespace
Done

Landed manually as http://trac.webkit.org/changeset/53533

Closing bug as resolved</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46955</attachid>
            <date>2010-01-19 15:31:11 -0800</date>
            <delta_ts>2010-01-19 18:22:10 -0800</delta_ts>
            <desc>Patch 1 for Bug 33870</desc>
            <filename>jniUtilityStyle.txt</filename>
            <type>text/plain</type>
            <size>19579</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MzUwMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMTAtMDEtMTkgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEZpeGVzIHN0eWxlIGluIFdlYkNvcmUvYnJpZGdlL0pOSVV0aWxpdHkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMzODcwCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBzdHlsZSBmaXhlcyBvbmx5LgorCisgICAgICAgICogYnJpZGdlL2puaS9KTklVdGls
aXR5LmNwcDoKKyAgICAgICAgKiBicmlkZ2Uvam5pL0pOSVV0aWxpdHkuaDoKKwogMjAxMC0wMS0x
OSAgSm9obiBTdWxsaXZhbiAgPHN1bGxpdmFuQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzM4NTQKSW5kZXg6IFdlYkNvcmUvYnJp
ZGdlL2puaS9KTklVdGlsaXR5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JyaWRnZS9qbmkv
Sk5JVXRpbGl0eS5jcHAJKHJldmlzaW9uIDUzNDk3KQorKysgV2ViQ29yZS9icmlkZ2Uvam5pL0pO
SVV0aWxpdHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwMyBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNywgMjAwOCwgMjAwOSwgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTIwLDcgKzIwLDcgQEAKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI2luY2x1
ZGUgImNvbmZpZy5oIgpAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogbmFtZXNw
YWNlIEJpbmRpbmdzIHsKIAotc3RhdGljIGppbnQgS0pTX0dldENyZWF0ZWRKYXZhVk1zKEphdmFW
TSoqIHZtQnVmLCBqc2l6ZSBidWZMZW4sIGpzaXplKiBuVk1zKQorc3RhdGljIGppbnQgS0pTR2V0
Q3JlYXRlZEphdmFWTXMoSmF2YVZNKiogdm1CdWYsIGpzaXplIGJ1ZkxlbiwganNpemUqIG5WTXMp
CiB7CiAgICAgc3RhdGljIHZvaWQqIGphdmFWTUZyYW1ld29yayA9IDA7CiAgICAgaWYgKCFqYXZh
Vk1GcmFtZXdvcmspCkBAIC00Miw0MyArNDIsNDMgQEAgc3RhdGljIGppbnQgS0pTX0dldENyZWF0
ZWRKYXZhVk1zKEphdmFWTQogICAgIGlmICghamF2YVZNRnJhbWV3b3JrKQogICAgICAgICByZXR1
cm4gSk5JX0VSUjsKIAotICAgIHN0YXRpYyBqaW50KCpmdW5jdGlvblBvaW50ZXIpKEphdmFWTSoq
LCBqc2l6ZSwganNpemUgKikgPSAwOworICAgIHR5cGVkZWYgamludCgqRnVuY3Rpb25Qb2ludGVy
VHlwZSkoSmF2YVZNKiosIGpzaXplLCBqc2l6ZSopOworICAgIHN0YXRpYyBGdW5jdGlvblBvaW50
ZXJUeXBlIGZ1bmN0aW9uUG9pbnRlciA9IDA7CiAgICAgaWYgKCFmdW5jdGlvblBvaW50ZXIpCi0g
ICAgICAgIGZ1bmN0aW9uUG9pbnRlciA9IChqaW50KCopKEphdmFWTSoqLCBqc2l6ZSwganNpemUg
KikpZGxzeW0oamF2YVZNRnJhbWV3b3JrLCAiSk5JX0dldENyZWF0ZWRKYXZhVk1zIik7CisgICAg
ICAgIGZ1bmN0aW9uUG9pbnRlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8RnVuY3Rpb25Qb2ludGVyVHlw
ZT4oZGxzeW0oamF2YVZNRnJhbWV3b3JrLCAiSk5JX0dldENyZWF0ZWRKYXZhVk1zIikpOwogICAg
IGlmICghZnVuY3Rpb25Qb2ludGVyKQogICAgICAgICByZXR1cm4gSk5JX0VSUjsKICAgICByZXR1
cm4gZnVuY3Rpb25Qb2ludGVyKHZtQnVmLCBidWZMZW4sIG5WTXMpOwogfQogCi1zdGF0aWMgSmF2
YVZNICpqdm0gPSAwOworc3RhdGljIEphdmFWTSoganZtID0gMDsKIAogLy8gUHJvdmlkZSB0aGUg
YWJpbGl0eSBmb3IgYW4gb3V0c2lkZSBjb21wb25lbnQgdG8gc3BlY2lmeSB0aGUgSmF2YVZNIHRv
IHVzZQotLy8gSWYgdGhlIGp2bSB2YWx1ZSBpcyBzZXQsIHRoZSBnZXRKYXZhVk0gZnVuY3Rpb24g
YmVsb3cgd2lsbCBqdXN0IHJldHVybi4gCisvLyBJZiB0aGUganZtIHZhbHVlIGlzIHNldCwgdGhl
IGdldEphdmFWTSBmdW5jdGlvbiBiZWxvdyB3aWxsIGp1c3QgcmV0dXJuLgogLy8gSW4gZ2V0Sk5J
RW52KCksIGlmIEF0dGFjaEN1cnJlbnRUaHJlYWQgaXMgY2FsbGVkIHRvIGEgVk0gdGhhdCBpcyBh
bHJlYWR5CiAvLyBhdHRhY2hlZCwgdGhlIHJlc3VsdCBpcyBhIG5vLW9wLgotdm9pZCBzZXRKYXZh
Vk0oSmF2YVZNICpqYXZhVk0pCit2b2lkIHNldEphdmFWTShKYXZhVk0qIGphdmFWTSkKIHsKICAg
ICBqdm0gPSBqYXZhVk07CiB9CiAKLUphdmFWTSAqZ2V0SmF2YVZNKCkKK0phdmFWTSogZ2V0SmF2
YVZNKCkKIHsKICAgICBpZiAoanZtKQogICAgICAgICByZXR1cm4ganZtOwogCi0gICAgSmF2YVZN
ICpqdm1BcnJheVsxXTsKKyAgICBKYXZhVk0qIGp2bUFycmF5WzFdOwogICAgIGpzaXplIGJ1Zkxl
biA9IDE7CiAgICAganNpemUgbkpWTXMgPSAwOwogICAgIGppbnQgam5pRXJyb3IgPSAwOwogCiAg
ICAgLy8gQXNzdW1lcyBKVk0gaXMgYWxyZWFkeSBydW5uaW5nIC4uLiwgb25lIHBlciBwcm9jZXNz
Ci0gICAgam5pRXJyb3IgPSBLSlNfR2V0Q3JlYXRlZEphdmFWTXMoanZtQXJyYXksIGJ1Zkxlbiwg
Jm5KVk1zKTsKLSAgICBpZiAoIGpuaUVycm9yID09IEpOSV9PSyAmJiBuSlZNcyA+IDAgKSB7Cisg
ICAgam5pRXJyb3IgPSBLSlNHZXRDcmVhdGVkSmF2YVZNcyhqdm1BcnJheSwgYnVmTGVuLCAmbkpW
TXMpOworICAgIGlmIChqbmlFcnJvciA9PSBKTklfT0sgJiYgbkpWTXMgPiAwKQogICAgICAgICBq
dm0gPSBqdm1BcnJheVswXTsKLSAgICB9Ci0gICAgZWxzZSAKLSAgICAgICAgZnByaW50ZihzdGRl
cnIsICIlczogSk5JX0dldENyZWF0ZWRKYXZhVk1zIGZhaWxlZCwgcmV0dXJuZWQgJWxkXG4iLCBf
X1BSRVRUWV9GVU5DVElPTl9fLCAobG9uZylqbmlFcnJvcik7Ci0gICAgICAgIAorICAgIGVsc2UK
KyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczogSk5JX0dldENyZWF0ZWRKYXZhVk1zIGZhaWxl
ZCwgcmV0dXJuZWQgJWxkXG4iLCBfX1BSRVRUWV9GVU5DVElPTl9fLCBzdGF0aWNfY2FzdDxsb25n
PihqbmlFcnJvcikpOworCiAgICAgcmV0dXJuIGp2bTsKIH0KIApAQCAtOTAsMjkgKzkwLDI3IEBA
IEpOSUVudiogZ2V0Sk5JRW52KCkKICAgICB9IHU7CiAgICAgamludCBqbmlFcnJvciA9IDA7CiAK
LSAgICBqbmlFcnJvciA9IChnZXRKYXZhVk0oKSktPkF0dGFjaEN1cnJlbnRUaHJlYWQoJnUuZHVt
bXksIE5VTEwpOworICAgIGpuaUVycm9yID0gZ2V0SmF2YVZNKCktPkF0dGFjaEN1cnJlbnRUaHJl
YWQoJnUuZHVtbXksIDApOwogICAgIGlmIChqbmlFcnJvciA9PSBKTklfT0spCiAgICAgICAgIHJl
dHVybiB1LmVudjsKLSAgICBlbHNlCi0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6IEF0dGFj
aEN1cnJlbnRUaHJlYWQgZmFpbGVkLCByZXR1cm5lZCAlbGRcbiIsIF9fUFJFVFRZX0ZVTkNUSU9O
X18sIChsb25nKWpuaUVycm9yKTsKLSAgICByZXR1cm4gTlVMTDsKKyAgICBmcHJpbnRmKHN0ZGVy
ciwgIiVzOiBBdHRhY2hDdXJyZW50VGhyZWFkIGZhaWxlZCwgcmV0dXJuZWQgJWxkXG4iLCBfX1BS
RVRUWV9GVU5DVElPTl9fLCBzdGF0aWNfY2FzdDxsb25nPihqbmlFcnJvcikpOworICAgIHJldHVy
biAwOwogfQogCi1qbWV0aG9kSUQgZ2V0TWV0aG9kSUQgKGpvYmplY3Qgb2JqLCBjb25zdCBjaGFy
ICpuYW1lLCBjb25zdCBjaGFyICpzaWcpCitqbWV0aG9kSUQgZ2V0TWV0aG9kSUQoam9iamVjdCBv
YmosIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHNpZykKIHsKLSAgICBKTklFbnYgKmVu
diA9IGdldEpOSUVudigpOworICAgIEpOSUVudiogZW52ID0gZ2V0Sk5JRW52KCk7CiAgICAgam1l
dGhvZElEIG1pZCA9IDA7Ci0gICAgICAgIAotICAgIGlmICggZW52ICE9IE5VTEwpIHsKLSAgICBq
Y2xhc3MgY2xzID0gZW52LT5HZXRPYmplY3RDbGFzcyhvYmopOwotICAgIGlmICggY2xzICE9IE5V
TEwgKSB7CisKKyAgICBpZiAoZW52KSB7CisgICAgICAgIGpjbGFzcyBjbHMgPSBlbnYtPkdldE9i
amVjdENsYXNzKG9iaik7CisgICAgICAgIGlmIChjbHMpIHsKICAgICAgICAgICAgIG1pZCA9IGVu
di0+R2V0TWV0aG9kSUQoY2xzLCBuYW1lLCBzaWcpOwogICAgICAgICAgICAgaWYgKCFtaWQpIHsK
ICAgICAgICAgICAgICAgICBlbnYtPkV4Y2VwdGlvbkNsZWFyKCk7CiAgICAgICAgICAgICAgICAg
bWlkID0gZW52LT5HZXRTdGF0aWNNZXRob2RJRChjbHMsIG5hbWUsIHNpZyk7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFtaWQpIHsKKyAgICAgICAgICAgICAgICBpZiAoIW1pZCkKICAgICAgICAgICAg
ICAgICAgICAgZW52LT5FeGNlcHRpb25DbGVhcigpOwotICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBlbnYtPkRlbGV0ZUxvY2FsUmVmKGNscyk7CkBA
IC0xMjAsMTE4ICsxMTgsMTE4IEBAIGptZXRob2RJRCBnZXRNZXRob2RJRCAoam9iamVjdCBvYmos
IGNvbnMKICAgICByZXR1cm4gbWlkOwogfQogCi1jb25zdCBjaGFyICpnZXRDaGFyYWN0ZXJzRnJv
bUpTdHJpbmcgKGpzdHJpbmcgYUpTdHJpbmcpCitjb25zdCBjaGFyKiBnZXRDaGFyYWN0ZXJzRnJv
bUpTdHJpbmcoanN0cmluZyBhSlN0cmluZykKIHsKLSAgICByZXR1cm4gZ2V0Q2hhcmFjdGVyc0Zy
b21KU3RyaW5nSW5FbnYgKGdldEpOSUVudigpLCBhSlN0cmluZyk7CisgICAgcmV0dXJuIGdldENo
YXJhY3RlcnNGcm9tSlN0cmluZ0luRW52KGdldEpOSUVudigpLCBhSlN0cmluZyk7CiB9CiAKLXZv
aWQgcmVsZWFzZUNoYXJhY3RlcnNGb3JKU3RyaW5nIChqc3RyaW5nIGFKU3RyaW5nLCBjb25zdCBj
aGFyICpzKQordm9pZCByZWxlYXNlQ2hhcmFjdGVyc0ZvckpTdHJpbmcoanN0cmluZyBhSlN0cmlu
ZywgY29uc3QgY2hhciogcykKIHsKLSAgICByZWxlYXNlQ2hhcmFjdGVyc0ZvckpTdHJpbmdJbkVu
diAoZ2V0Sk5JRW52KCksIGFKU3RyaW5nLCBzKTsKKyAgICByZWxlYXNlQ2hhcmFjdGVyc0ZvckpT
dHJpbmdJbkVudihnZXRKTklFbnYoKSwgYUpTdHJpbmcsIHMpOwogfQogCi1jb25zdCBjaGFyICpn
ZXRDaGFyYWN0ZXJzRnJvbUpTdHJpbmdJbkVudiAoSk5JRW52ICplbnYsIGpzdHJpbmcgYUpTdHJp
bmcpCitjb25zdCBjaGFyKiBnZXRDaGFyYWN0ZXJzRnJvbUpTdHJpbmdJbkVudihKTklFbnYqIGVu
diwganN0cmluZyBhSlN0cmluZykKIHsKICAgICBqYm9vbGVhbiBpc0NvcHk7Ci0gICAgY29uc3Qg
Y2hhciAqcyA9IGVudi0+R2V0U3RyaW5nVVRGQ2hhcnMoKGpzdHJpbmcpYUpTdHJpbmcsICZpc0Nv
cHkpOworICAgIGNvbnN0IGNoYXIqIHMgPSBlbnYtPkdldFN0cmluZ1VURkNoYXJzKGFKU3RyaW5n
LCAmaXNDb3B5KTsKICAgICBpZiAoIXMpIHsKICAgICAgICAgZW52LT5FeGNlcHRpb25EZXNjcmli
ZSgpOwogICAgICAgICBlbnYtPkV4Y2VwdGlvbkNsZWFyKCk7Ci0gICAgICAgICAgICAgICAgZnBy
aW50ZiAoc3RkZXJyLCAiXG4iKTsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOwogICAg
IH0KICAgICByZXR1cm4gczsKIH0KIAotdm9pZCByZWxlYXNlQ2hhcmFjdGVyc0ZvckpTdHJpbmdJ
bkVudiAoSk5JRW52ICplbnYsIGpzdHJpbmcgYUpTdHJpbmcsIGNvbnN0IGNoYXIgKnMpCit2b2lk
IHJlbGVhc2VDaGFyYWN0ZXJzRm9ySlN0cmluZ0luRW52KEpOSUVudiogZW52LCBqc3RyaW5nIGFK
U3RyaW5nLCBjb25zdCBjaGFyKiBzKQogewotICAgIGVudi0+UmVsZWFzZVN0cmluZ1VURkNoYXJz
IChhSlN0cmluZywgcyk7CisgICAgZW52LT5SZWxlYXNlU3RyaW5nVVRGQ2hhcnMoYUpTdHJpbmcs
IHMpOwogfQogCi1jb25zdCBqY2hhciAqZ2V0VUNoYXJhY3RlcnNGcm9tSlN0cmluZ0luRW52IChK
TklFbnYgKmVudiwganN0cmluZyBhSlN0cmluZykKK2NvbnN0IGpjaGFyKiBnZXRVQ2hhcmFjdGVy
c0Zyb21KU3RyaW5nSW5FbnYoSk5JRW52KiBlbnYsIGpzdHJpbmcgYUpTdHJpbmcpCiB7CiAgICAg
amJvb2xlYW4gaXNDb3B5OwotICAgIGNvbnN0IGpjaGFyICpzID0gZW52LT5HZXRTdHJpbmdDaGFy
cygoanN0cmluZylhSlN0cmluZywgJmlzQ29weSk7CisgICAgY29uc3QgamNoYXIqIHMgPSBlbnYt
PkdldFN0cmluZ0NoYXJzKGFKU3RyaW5nLCAmaXNDb3B5KTsKICAgICBpZiAoIXMpIHsKICAgICAg
ICAgZW52LT5FeGNlcHRpb25EZXNjcmliZSgpOwogICAgICAgICBlbnYtPkV4Y2VwdGlvbkNsZWFy
KCk7Ci0gICAgICAgICAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiXG4iKTsKKyAgICAgICAgZnBy
aW50ZihzdGRlcnIsICJcbiIpOwogICAgIH0KICAgICByZXR1cm4gczsKIH0KIAotdm9pZCByZWxl
YXNlVUNoYXJhY3RlcnNGb3JKU3RyaW5nSW5FbnYgKEpOSUVudiAqZW52LCBqc3RyaW5nIGFKU3Ry
aW5nLCBjb25zdCBqY2hhciAqcykKK3ZvaWQgcmVsZWFzZVVDaGFyYWN0ZXJzRm9ySlN0cmluZ0lu
RW52KEpOSUVudiogZW52LCBqc3RyaW5nIGFKU3RyaW5nLCBjb25zdCBqY2hhciogcykKIHsKLSAg
ICBlbnYtPlJlbGVhc2VTdHJpbmdDaGFycyAoYUpTdHJpbmcsIHMpOworICAgIGVudi0+UmVsZWFz
ZVN0cmluZ0NoYXJzKGFKU3RyaW5nLCBzKTsKIH0KIAotSk5JVHlwZSBKTklUeXBlRnJvbUNsYXNz
TmFtZShjb25zdCBjaGFyICpuYW1lKQorSk5JVHlwZSBKTklUeXBlRnJvbUNsYXNzTmFtZShjb25z
dCBjaGFyKiBuYW1lKQogewogICAgIEpOSVR5cGUgdHlwZTsKLSAgICAKLSAgICBpZiAoc3RyY21w
KCJieXRlIixuYW1lKSA9PSAwKQorCisgICAgaWYgKCFzdHJjbXAoImJ5dGUiLCBuYW1lKSkKICAg
ICAgICAgdHlwZSA9IGJ5dGVfdHlwZTsKLSAgICBlbHNlIGlmIChzdHJjbXAoInNob3J0IixuYW1l
KSA9PSAwKQorICAgIGVsc2UgaWYgKCFzdHJjbXAoInNob3J0IiwgbmFtZSkpCiAgICAgICAgIHR5
cGUgPSBzaG9ydF90eXBlOwotICAgIGVsc2UgaWYgKHN0cmNtcCgiaW50IixuYW1lKSA9PSAwKQor
ICAgIGVsc2UgaWYgKCFzdHJjbXAoImludCIsIG5hbWUpKQogICAgICAgICB0eXBlID0gaW50X3R5
cGU7Ci0gICAgZWxzZSBpZiAoc3RyY21wKCJsb25nIixuYW1lKSA9PSAwKQorICAgIGVsc2UgaWYg
KCFzdHJjbXAoImxvbmciLCBuYW1lKSkKICAgICAgICAgdHlwZSA9IGxvbmdfdHlwZTsKLSAgICBl
bHNlIGlmIChzdHJjbXAoImZsb2F0IixuYW1lKSA9PSAwKQorICAgIGVsc2UgaWYgKCFzdHJjbXAo
ImZsb2F0IiwgbmFtZSkpCiAgICAgICAgIHR5cGUgPSBmbG9hdF90eXBlOwotICAgIGVsc2UgaWYg
KHN0cmNtcCgiZG91YmxlIixuYW1lKSA9PSAwKQorICAgIGVsc2UgaWYgKCFzdHJjbXAoImRvdWJs
ZSIsIG5hbWUpKQogICAgICAgICB0eXBlID0gZG91YmxlX3R5cGU7Ci0gICAgZWxzZSBpZiAoc3Ry
Y21wKCJjaGFyIixuYW1lKSA9PSAwKQorICAgIGVsc2UgaWYgKCFzdHJjbXAoImNoYXIiLCBuYW1l
KSkKICAgICAgICAgdHlwZSA9IGNoYXJfdHlwZTsKLSAgICBlbHNlIGlmIChzdHJjbXAoImJvb2xl
YW4iLG5hbWUpID09IDApCisgICAgZWxzZSBpZiAoIXN0cmNtcCgiYm9vbGVhbiIsIG5hbWUpKQog
ICAgICAgICB0eXBlID0gYm9vbGVhbl90eXBlOwotICAgIGVsc2UgaWYgKHN0cmNtcCgidm9pZCIs
bmFtZSkgPT0gMCkKKyAgICBlbHNlIGlmICghc3RyY21wKCJ2b2lkIiwgbmFtZSkpCiAgICAgICAg
IHR5cGUgPSB2b2lkX3R5cGU7Ci0gICAgZWxzZSBpZiAoJ1snID09IG5hbWVbMF0pIAorICAgIGVs
c2UgaWYgKCdbJyA9PSBuYW1lWzBdKQogICAgICAgICB0eXBlID0gYXJyYXlfdHlwZTsKICAgICBl
bHNlCiAgICAgICAgIHR5cGUgPSBvYmplY3RfdHlwZTsKLSAgICAgICAgCisKICAgICByZXR1cm4g
dHlwZTsKIH0KIAotY29uc3QgY2hhciAqc2lnbmF0dXJlRnJvbVByaW1pdGl2ZVR5cGUoSk5JVHlw
ZSB0eXBlKQorY29uc3QgY2hhciogc2lnbmF0dXJlRnJvbVByaW1pdGl2ZVR5cGUoSk5JVHlwZSB0
eXBlKQogewotICAgIHN3aXRjaCAodHlwZSl7Ci0gICAgICAgIGNhc2Ugdm9pZF90eXBlOiAKLSAg
ICAgICAgICAgIHJldHVybiAiViI7Ci0gICAgICAgIAotICAgICAgICBjYXNlIGFycmF5X3R5cGU6
Ci0gICAgICAgICAgICByZXR1cm4gIlsiOwotICAgICAgICAKLSAgICAgICAgY2FzZSBvYmplY3Rf
dHlwZToKLSAgICAgICAgICAgIHJldHVybiAiTCI7Ci0gICAgICAgIAotICAgICAgICBjYXNlIGJv
b2xlYW5fdHlwZToKLSAgICAgICAgICAgIHJldHVybiAiWiI7Ci0gICAgICAgIAotICAgICAgICBj
YXNlIGJ5dGVfdHlwZToKLSAgICAgICAgICAgIHJldHVybiAiQiI7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgY2FzZSBjaGFyX3R5cGU6Ci0gICAgICAgICAgICByZXR1cm4gIkMiOwotICAgICAgICAK
LSAgICAgICAgY2FzZSBzaG9ydF90eXBlOgotICAgICAgICAgICAgcmV0dXJuICJTIjsKLSAgICAg
ICAgCi0gICAgICAgIGNhc2UgaW50X3R5cGU6Ci0gICAgICAgICAgICByZXR1cm4gIkkiOwotICAg
ICAgICAKLSAgICAgICAgY2FzZSBsb25nX3R5cGU6Ci0gICAgICAgICAgICByZXR1cm4gIkoiOwot
ICAgICAgICAKLSAgICAgICAgY2FzZSBmbG9hdF90eXBlOgotICAgICAgICAgICAgcmV0dXJuICJG
IjsKLSAgICAgICAgCi0gICAgICAgIGNhc2UgZG91YmxlX3R5cGU6Ci0gICAgICAgICAgICByZXR1
cm4gIkQiOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2Ugdm9pZF90eXBlOgorICAgICAg
ICByZXR1cm4gIlYiOworCisgICAgY2FzZSBhcnJheV90eXBlOgorICAgICAgICByZXR1cm4gIlsi
OworCisgICAgY2FzZSBvYmplY3RfdHlwZToKKyAgICAgICAgcmV0dXJuICJMIjsKKworICAgIGNh
c2UgYm9vbGVhbl90eXBlOgorICAgICAgICByZXR1cm4gIloiOworCisgICAgY2FzZSBieXRlX3R5
cGU6CisgICAgICAgIHJldHVybiAiQiI7CisKKyAgICBjYXNlIGNoYXJfdHlwZToKKyAgICAgICAg
cmV0dXJuICJDIjsKKworICAgIGNhc2Ugc2hvcnRfdHlwZToKKyAgICAgICAgcmV0dXJuICJTIjsK
KworICAgIGNhc2UgaW50X3R5cGU6CisgICAgICAgIHJldHVybiAiSSI7CiAKLSAgICAgICAgY2Fz
ZSBpbnZhbGlkX3R5cGU6Ci0gICAgICAgIGRlZmF1bHQ6CisgICAgY2FzZSBsb25nX3R5cGU6Cisg
ICAgICAgIHJldHVybiAiSiI7CisKKyAgICBjYXNlIGZsb2F0X3R5cGU6CisgICAgICAgIHJldHVy
biAiRiI7CisKKyAgICBjYXNlIGRvdWJsZV90eXBlOgorICAgICAgICByZXR1cm4gIkQiOworCisg
ICAgY2FzZSBpbnZhbGlkX3R5cGU6CisgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAg
fQogICAgIHJldHVybiAiIjsKQEAgLTIzOSw1OCArMjM3LDU4IEBAIGNvbnN0IGNoYXIgKnNpZ25h
dHVyZUZyb21QcmltaXRpdmVUeXBlKEoKIAogSk5JVHlwZSBKTklUeXBlRnJvbVByaW1pdGl2ZVR5
cGUoY2hhciB0eXBlKQogewotICAgIHN3aXRjaCAodHlwZSl7Ci0gICAgICAgIGNhc2UgJ1YnOiAK
LSAgICAgICAgICAgIHJldHVybiB2b2lkX3R5cGU7Ci0gICAgICAgIAotICAgICAgICBjYXNlICdM
JzoKLSAgICAgICAgICAgIHJldHVybiBvYmplY3RfdHlwZTsKLSAgICAgICAgICAgIAotICAgICAg
ICBjYXNlICdbJzoKLSAgICAgICAgICAgIHJldHVybiBhcnJheV90eXBlOwotICAgICAgICAKLSAg
ICAgICAgY2FzZSAnWic6Ci0gICAgICAgICAgICByZXR1cm4gYm9vbGVhbl90eXBlOwotICAgICAg
ICAKLSAgICAgICAgY2FzZSAnQic6Ci0gICAgICAgICAgICByZXR1cm4gYnl0ZV90eXBlOwotICAg
ICAgICAgICAgCi0gICAgICAgIGNhc2UgJ0MnOgotICAgICAgICAgICAgcmV0dXJuIGNoYXJfdHlw
ZTsKLSAgICAgICAgCi0gICAgICAgIGNhc2UgJ1MnOgotICAgICAgICAgICAgcmV0dXJuIHNob3J0
X3R5cGU7Ci0gICAgICAgIAotICAgICAgICBjYXNlICdJJzoKLSAgICAgICAgICAgIHJldHVybiBp
bnRfdHlwZTsKLSAgICAgICAgCi0gICAgICAgIGNhc2UgJ0onOgotICAgICAgICAgICAgcmV0dXJu
IGxvbmdfdHlwZTsKLSAgICAgICAgCi0gICAgICAgIGNhc2UgJ0YnOgotICAgICAgICAgICAgcmV0
dXJuIGZsb2F0X3R5cGU7Ci0gICAgICAgIAotICAgICAgICBjYXNlICdEJzoKLSAgICAgICAgICAg
IHJldHVybiBkb3VibGVfdHlwZTsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlICdWJzoK
KyAgICAgICAgcmV0dXJuIHZvaWRfdHlwZTsKKworICAgIGNhc2UgJ0wnOgorICAgICAgICByZXR1
cm4gb2JqZWN0X3R5cGU7CisKKyAgICBjYXNlICdbJzoKKyAgICAgICAgcmV0dXJuIGFycmF5X3R5
cGU7CisKKyAgICBjYXNlICdaJzoKKyAgICAgICAgcmV0dXJuIGJvb2xlYW5fdHlwZTsKKworICAg
IGNhc2UgJ0InOgorICAgICAgICByZXR1cm4gYnl0ZV90eXBlOworCisgICAgY2FzZSAnQyc6Cisg
ICAgICAgIHJldHVybiBjaGFyX3R5cGU7CiAKLSAgICAgICAgZGVmYXVsdDoKKyAgICBjYXNlICdT
JzoKKyAgICAgICAgcmV0dXJuIHNob3J0X3R5cGU7CisKKyAgICBjYXNlICdJJzoKKyAgICAgICAg
cmV0dXJuIGludF90eXBlOworCisgICAgY2FzZSAnSic6CisgICAgICAgIHJldHVybiBsb25nX3R5
cGU7CisKKyAgICBjYXNlICdGJzoKKyAgICAgICAgcmV0dXJuIGZsb2F0X3R5cGU7CisKKyAgICBj
YXNlICdEJzoKKyAgICAgICAgcmV0dXJuIGRvdWJsZV90eXBlOworCisgICAgZGVmYXVsdDoKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiBpbnZhbGlkX3R5cGU7CiB9CiAKLWp2YWx1
ZSBnZXRKTklGaWVsZCggam9iamVjdCBvYmosIEpOSVR5cGUgdHlwZSwgY29uc3QgY2hhciAqbmFt
ZSwgY29uc3QgY2hhciAqc2lnbmF0dXJlKQoranZhbHVlIGdldEpOSUZpZWxkKGpvYmplY3Qgb2Jq
LCBKTklUeXBlIHR5cGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHNpZ25hdHVyZSkK
IHsKLSAgICBKYXZhVk0gKmp2bSA9IGdldEphdmFWTSgpOwotICAgIEpOSUVudiAqZW52ID0gZ2V0
Sk5JRW52KCk7CisgICAgSmF2YVZNKiBqdm0gPSBnZXRKYXZhVk0oKTsKKyAgICBKTklFbnYqIGVu
diA9IGdldEpOSUVudigpOwogICAgIGp2YWx1ZSByZXN1bHQ7CiAKLSAgICBiemVybyAoJnJlc3Vs
dCwgc2l6ZW9mKGp2YWx1ZSkpOwotICAgIGlmICggb2JqICE9IE5VTEwgJiYganZtICE9IE5VTEwg
JiYgZW52ICE9IE5VTEwpIHsKKyAgICBiemVybygmcmVzdWx0LCBzaXplb2YoanZhbHVlKSk7Cisg
ICAgaWYgKG9iaiAmJiBqdm0gJiYgZW52KSB7CiAgICAgICAgIGpjbGFzcyBjbHMgPSBlbnYtPkdl
dE9iamVjdENsYXNzKG9iaik7Ci0gICAgICAgIGlmICggY2xzICE9IE5VTEwgKSB7CisgICAgICAg
IGlmIChjbHMpIHsKICAgICAgICAgICAgIGpmaWVsZElEIGZpZWxkID0gZW52LT5HZXRGaWVsZElE
KGNscywgbmFtZSwgc2lnbmF0dXJlKTsKLSAgICAgICAgICAgIGlmICggZmllbGQgIT0gTlVMTCAp
IHsKKyAgICAgICAgICAgIGlmIChmaWVsZCkgewogICAgICAgICAgICAgICAgIHN3aXRjaCAodHlw
ZSkgewogICAgICAgICAgICAgICAgIGNhc2UgYXJyYXlfdHlwZToKICAgICAgICAgICAgICAgICBj
YXNlIG9iamVjdF90eXBlOgpAQCAtMzIxLDI4ICszMTksMjQgQEAganZhbHVlIGdldEpOSUZpZWxk
KCBqb2JqZWN0IG9iaiwgSk5JVHlwZQogICAgICAgICAgICAgICAgICAgICByZXN1bHQuZCA9IGVu
di0+ZnVuY3Rpb25zLT5HZXREb3VibGVGaWVsZChlbnYsIG9iaiwgZmllbGQpOwogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAg
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzOiBpbnZhbGlkIGZpZWxkIHR5cGUgKCVkKVxuIiwg
X19QUkVUVFlfRlVOQ1RJT05fXywgKGludCl0eXBlKTsKKyAgICAgICAgICAgICAgICAgICAgZnBy
aW50ZihzdGRlcnIsICIlczogaW52YWxpZCBmaWVsZCB0eXBlICglZClcbiIsIF9fUFJFVFRZX0ZV
TkNUSU9OX18sIHN0YXRpY19jYXN0PGludD4odHlwZSkpOwogICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHsKKyAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczogQ291bGQgbm90
IGZpbmQgZmllbGQ6ICVzXG4iLCBfX1BSRVRUWV9GVU5DVElPTl9fLCBuYW1lKTsKICAgICAgICAg
ICAgICAgICBlbnYtPkV4Y2VwdGlvbkRlc2NyaWJlKCk7CiAgICAgICAgICAgICAgICAgZW52LT5F
eGNlcHRpb25DbGVhcigpOwotICAgICAgICAgICAgICAgIGZwcmludGYgKHN0ZGVyciwgIlxuIik7
CisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOwogICAgICAgICAgICAgfQog
CiAgICAgICAgICAgICBlbnYtPkRlbGV0ZUxvY2FsUmVmKGNscyk7Ci0gICAgICAgIH0KLSAgICAg
ICAgZWxzZSB7CisgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIl
czogQ291bGQgbm90IGZpbmQgY2xhc3MgZm9yIG9iamVjdFxuIiwgX19QUkVUVFlfRlVOQ1RJT05f
Xyk7Ci0gICAgICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi19ICAvLyBl
bmQgb2YgbmFtZXNwYWNlIEJpbmRpbmdzCit9IC8vIGVuZCBvZiBuYW1lc3BhY2UgQmluZGluZ3MK
IAogfSAvLyBlbmQgb2YgbmFtZXNwYWNlIEpTQwogCkluZGV4OiBXZWJDb3JlL2JyaWRnZS9qbmkv
Sk5JVXRpbGl0eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL2puaS9KTklVdGlsaXR5
LmgJKHJldmlzaW9uIDUzNDk3KQorKysgV2ViQ29yZS9icmlkZ2Uvam5pL0pOSVV0aWxpdHkuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMg
QXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDgsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMCw3ICsy
MCw3IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNpZm5kZWYgSk5JVXRpbGl0eV9oCkBAIC01
NiwyNiArNTYsMjYgQEAgbmFtZXNwYWNlIEJpbmRpbmdzIHsKIAogY2xhc3MgSmF2YVBhcmFtZXRl
cjsKIAotY29uc3QgY2hhciAqZ2V0Q2hhcmFjdGVyc0Zyb21KU3RyaW5nKGpzdHJpbmcgYUpTdHJp
bmcpOwotdm9pZCByZWxlYXNlQ2hhcmFjdGVyc0ZvckpTdHJpbmcoanN0cmluZyBhSlN0cmluZywg
Y29uc3QgY2hhciAqcyk7Citjb25zdCBjaGFyKiBnZXRDaGFyYWN0ZXJzRnJvbUpTdHJpbmcoanN0
cmluZyk7Cit2b2lkIHJlbGVhc2VDaGFyYWN0ZXJzRm9ySlN0cmluZyhqc3RyaW5nLCBjb25zdCBj
aGFyKik7CiAKLWNvbnN0IGNoYXIgKmdldENoYXJhY3RlcnNGcm9tSlN0cmluZ0luRW52KEpOSUVu
diAqZW52LCBqc3RyaW5nIGFKU3RyaW5nKTsKLXZvaWQgcmVsZWFzZUNoYXJhY3RlcnNGb3JKU3Ry
aW5nSW5FbnYoSk5JRW52ICplbnYsIGpzdHJpbmcgYUpTdHJpbmcsIGNvbnN0IGNoYXIgKnMpOwot
Y29uc3QgamNoYXIgKmdldFVDaGFyYWN0ZXJzRnJvbUpTdHJpbmdJbkVudihKTklFbnYgKmVudiwg
anN0cmluZyBhSlN0cmluZyk7Ci12b2lkIHJlbGVhc2VVQ2hhcmFjdGVyc0ZvckpTdHJpbmdJbkVu
dihKTklFbnYgKmVudiwganN0cmluZyBhSlN0cmluZywgY29uc3QgamNoYXIgKnMpOworY29uc3Qg
Y2hhciogZ2V0Q2hhcmFjdGVyc0Zyb21KU3RyaW5nSW5FbnYoSk5JRW52KiwganN0cmluZyk7Cit2
b2lkIHJlbGVhc2VDaGFyYWN0ZXJzRm9ySlN0cmluZ0luRW52KEpOSUVudiosIGpzdHJpbmcsIGNv
bnN0IGNoYXIqKTsKK2NvbnN0IGpjaGFyKiBnZXRVQ2hhcmFjdGVyc0Zyb21KU3RyaW5nSW5FbnYo
Sk5JRW52KiwganN0cmluZyk7Cit2b2lkIHJlbGVhc2VVQ2hhcmFjdGVyc0ZvckpTdHJpbmdJbkVu
dihKTklFbnYqLCBqc3RyaW5nLCBjb25zdCBqY2hhciopOwogCi1KTklUeXBlIEpOSVR5cGVGcm9t
Q2xhc3NOYW1lKGNvbnN0IGNoYXIgKm5hbWUpOworSk5JVHlwZSBKTklUeXBlRnJvbUNsYXNzTmFt
ZShjb25zdCBjaGFyKiBuYW1lKTsKIEpOSVR5cGUgSk5JVHlwZUZyb21QcmltaXRpdmVUeXBlKGNo
YXIgdHlwZSk7Ci1jb25zdCBjaGFyICpzaWduYXR1cmVGcm9tUHJpbWl0aXZlVHlwZShKTklUeXBl
IHR5cGUpOworY29uc3QgY2hhciogc2lnbmF0dXJlRnJvbVByaW1pdGl2ZVR5cGUoSk5JVHlwZSk7
CiAKLWp2YWx1ZSBnZXRKTklGaWVsZChqb2JqZWN0IG9iaiwgSk5JVHlwZSB0eXBlLCBjb25zdCBj
aGFyICpuYW1lLCBjb25zdCBjaGFyICpzaWduYXR1cmUpOworanZhbHVlIGdldEpOSUZpZWxkKGpv
YmplY3QsIEpOSVR5cGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHNpZ25hdHVyZSk7
CiAKLWptZXRob2RJRCBnZXRNZXRob2RJRChqb2JqZWN0IG9iaiwgY29uc3QgY2hhciAqbmFtZSwg
Y29uc3QgY2hhciAqc2lnKTsKK2ptZXRob2RJRCBnZXRNZXRob2RJRChqb2JqZWN0LCBjb25zdCBj
aGFyKiBuYW1lLCBjb25zdCBjaGFyKiBzaWcpOwogSk5JRW52KiBnZXRKTklFbnYoKTsKIEphdmFW
TSogZ2V0SmF2YVZNKCk7CiB2b2lkIHNldEphdmFWTShKYXZhVk0qKTsKLSAgICAKLSAgICAKKwor
CiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IEpOSUNhbGxlcjsKIAogdGVtcGxhdGU8PiBz
dHJ1Y3QgSk5JQ2FsbGVyPHZvaWQ+IHsKQEAgLTk3LDcgKzk3LDcgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgSk5JQ2FsbGVyPGpvYmplY3Q+IHsKICAgICBzdGF0aWMgam9iamVjdCBjYWxsVihqb2JqZWN0
IG9iaiwgam1ldGhvZElEIG1pZCwgdmFfbGlzdCBhcmdzKQogICAgIHsKICAgICAgICAgcmV0dXJu
IGdldEpOSUVudigpLT5DYWxsT2JqZWN0TWV0aG9kVihvYmosIG1pZCwgYXJncyk7Ci0gICAgfSAg
ICAKKyAgICB9CiB9OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBKTklDYWxsZXI8amJvb2xlYW4+IHsK
QEAgLTExMyw3ICsxMTMsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBKTklDYWxsZXI8amJvb2xlYW4+
IHsKICAgICB7CiAgICAgICAgIHJldHVybiBnZXRKTklFbnYoKS0+Q2FsbFN0YXRpY0Jvb2xlYW5N
ZXRob2QoY2xzLCBtaWQsIGFyZ3MpOwogICAgIH0KLSAgICAKIH07CiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IEpOSUNhbGxlcjxqYnl0ZT4gewpAQCAtMTM1LDcgKzEzNCw3IEBAIHRlbXBsYXRlPD4gc3Ry
dWN0IEpOSUNhbGxlcjxqY2hhcj4gewogICAgIHN0YXRpYyBqY2hhciBjYWxsVihqb2JqZWN0IG9i
aiwgam1ldGhvZElEIG1pZCwgdmFfbGlzdCBhcmdzKQogICAgIHsKICAgICAgICAgcmV0dXJuIGdl
dEpOSUVudigpLT5DYWxsQ2hhck1ldGhvZFYob2JqLCBtaWQsIGFyZ3MpOwotICAgIH0gICAgCisg
ICAgfQogfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgSk5JQ2FsbGVyPGpzaG9ydD4gewpAQCAtMTk3
LDM2ICsxOTYsMzAgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gVCBjYWxsSk5JTWV0aG9kSURBKAog
ewogICAgIHJldHVybiBKTklDYWxsZXI8VD46OmNhbGxBKG9iaiwgbWlkLCBhcmdzKTsKIH0KLSAg
ICAKKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLXN0YXRpYyBUIGNhbGxKTklNZXRob2RWKGpvYmpl
Y3Qgb2JqLCBjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICpzaWcsIHZhX2xpc3QgYXJncykK
K3N0YXRpYyBUIGNhbGxKTklNZXRob2RWKGpvYmplY3Qgb2JqLCBjb25zdCBjaGFyKiBuYW1lLCBj
b25zdCBjaGFyKiBzaWcsIHZhX2xpc3QgYXJncykKIHsKLSAgICBKYXZhVk0gKmp2bSA9IGdldEph
dmFWTSgpOwotICAgIEpOSUVudiAqZW52ID0gZ2V0Sk5JRW52KCk7Ci0gICAgCi0gICAgaWYgKCBv
YmogIT0gTlVMTCAmJiBqdm0gIT0gTlVMTCAmJiBlbnYgIT0gTlVMTCkgeworICAgIEphdmFWTSog
anZtID0gZ2V0SmF2YVZNKCk7CisgICAgSk5JRW52KiBlbnYgPSBnZXRKTklFbnYoKTsKKworICAg
IGlmIChvYmogJiYganZtICYmIGVudikgewogICAgICAgICBqY2xhc3MgY2xzID0gZW52LT5HZXRP
YmplY3RDbGFzcyhvYmopOwotICAgICAgICBpZiAoIGNscyAhPSBOVUxMICkgeworICAgICAgICBp
ZiAoY2xzKSB7CiAgICAgICAgICAgICBqbWV0aG9kSUQgbWlkID0gZW52LT5HZXRNZXRob2RJRChj
bHMsIG5hbWUsIHNpZyk7Ci0gICAgICAgICAgICBpZiAoIG1pZCAhPSBOVUxMICkKLSAgICAgICAg
ICAgIHsKKyAgICAgICAgICAgIGlmIChtaWQpIHsKICAgICAgICAgICAgICAgICAvLyBBdm9pZHMg
cmVmZXJlbmNlcyB0byBjbHMgd2l0aG91dCBwb3BwaW5nIHRoZSBsb2NhbCBmcmFtZS4KICAgICAg
ICAgICAgICAgICBlbnYtPkRlbGV0ZUxvY2FsUmVmKGNscyk7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIEpOSUNhbGxlcjxUPjo6Y2FsbFYob2JqLCBtaWQsIGFyZ3MpOwogICAgICAgICAgICAgfQot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiJXM6IENvdWxkIG5vdCBmaW5kIG1ldGhvZDogJXMgZm9yICVwXG4iLCBfX1BSRVRU
WV9GVU5DVElPTl9fLCBuYW1lLCBvYmopOwotICAgICAgICAgICAgICAgIGVudi0+RXhjZXB0aW9u
RGVzY3JpYmUoKTsKLSAgICAgICAgICAgICAgICBlbnYtPkV4Y2VwdGlvbkNsZWFyKCk7Ci0gICAg
ICAgICAgICAgICAgZnByaW50ZiAoc3RkZXJyLCAiXG4iKTsKLSAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXM6IENvdWxkIG5vdCBmaW5kIG1ldGhvZDogJXMgZm9y
ICVwXG4iLCBfX1BSRVRUWV9GVU5DVElPTl9fLCBuYW1lLCBvYmopOworICAgICAgICAgICAgZW52
LT5FeGNlcHRpb25EZXNjcmliZSgpOworICAgICAgICAgICAgZW52LT5FeGNlcHRpb25DbGVhcigp
OworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOwogCiAgICAgICAgICAgICBlbnYt
PkRlbGV0ZUxvY2FsUmVmKGNscyk7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZSB7CisgICAgICAg
IH0gZWxzZQogICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIlczogQ291bGQgbm90IGZpbmQg
Y2xhc3MgZm9yICVwXG4iLCBfX1BSRVRUWV9GVU5DVElPTl9fLCBvYmopOwotICAgICAgICB9CiAg
ICAgfQogCiAgICAgcmV0dXJuIDA7CkBAIC0yMzcsNDIgKzIzMCw0MiBAQCBUIGNhbGxKTklNZXRo
b2Qoam9iamVjdCBvYmosIGNvbnN0IGNoYXIqCiB7CiAgICAgdmFfbGlzdCBhcmdzOwogICAgIHZh
X3N0YXJ0KGFyZ3MsIG1ldGhvZFNpZ25hdHVyZSk7Ci0gICAgCi0gICAgVCByZXN1bHQ9IGNhbGxK
TklNZXRob2RWPFQ+KG9iaiwgbWV0aG9kTmFtZSwgbWV0aG9kU2lnbmF0dXJlLCBhcmdzKTsKLSAg
ICAKKworICAgIFQgcmVzdWx0ID0gY2FsbEpOSU1ldGhvZFY8VD4ob2JqLCBtZXRob2ROYW1lLCBt
ZXRob2RTaWduYXR1cmUsIGFyZ3MpOworCiAgICAgdmFfZW5kKGFyZ3MpOwotICAgIAorCiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KLSAgICAKKwogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIFQgY2FsbEpO
SVN0YXRpY01ldGhvZChqY2xhc3MgY2xzLCBjb25zdCBjaGFyKiBtZXRob2ROYW1lLCBjb25zdCBj
aGFyKiBtZXRob2RTaWduYXR1cmUsIC4uLikKIHsKLSAgICBKYXZhVk0gKmp2bSA9IGdldEphdmFW
TSgpOwotICAgIEpOSUVudiAqZW52ID0gZ2V0Sk5JRW52KCk7CisgICAgSmF2YVZNKiBqdm0gPSBn
ZXRKYXZhVk0oKTsKKyAgICBKTklFbnYqIGVudiA9IGdldEpOSUVudigpOwogICAgIHZhX2xpc3Qg
YXJnczsKLSAgICAKKwogICAgIHZhX3N0YXJ0KGFyZ3MsIG1ldGhvZFNpZ25hdHVyZSk7Ci0gICAg
CisKICAgICBUIHJlc3VsdCA9IDA7Ci0gICAgCi0gICAgaWYgKGNscyAhPSBOVUxMICYmIGp2bSAh
PSBOVUxMICYmIGVudiAhPSBOVUxMKSB7CisKKyAgICBpZiAoY2xzICYmIGp2bSAmJiBlbnYpIHsK
ICAgICAgICAgam1ldGhvZElEIG1pZCA9IGVudi0+R2V0U3RhdGljTWV0aG9kSUQoY2xzLCBtZXRo
b2ROYW1lLCBtZXRob2RTaWduYXR1cmUpOwotICAgICAgICBpZiAobWlkICE9IE5VTEwpIAorICAg
ICAgICBpZiAobWlkKQogICAgICAgICAgICAgcmVzdWx0ID0gSk5JQ2FsbGVyPFQ+OjpjYWxsU3Rh
dGljVihjbHMsIG1pZCwgYXJncyk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgZnByaW50
ZihzdGRlcnIsICIlczogQ291bGQgbm90IGZpbmQgbWV0aG9kOiAlcyBmb3IgJXBcbiIsIF9fUFJF
VFRZX0ZVTkNUSU9OX18sIG1ldGhvZE5hbWUsIGNscyk7CiAgICAgICAgICAgICBlbnYtPkV4Y2Vw
dGlvbkRlc2NyaWJlKCk7CiAgICAgICAgICAgICBlbnYtPkV4Y2VwdGlvbkNsZWFyKCk7Ci0gICAg
ICAgICAgICBmcHJpbnRmIChzdGRlcnIsICJcbiIpOworICAgICAgICAgICAgZnByaW50ZihzdGRl
cnIsICJcbiIpOwogICAgICAgICB9CiAgICAgfQotICAgIAorCiAgICAgdmFfZW5kKGFyZ3MpOwot
ICAgIAorCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KLSAgICAKKwogfSAvLyBuYW1lc3BhY2UgQmlu
ZGluZ3MKIAogfSAvLyBuYW1lc3BhY2UgSlNDCg==
</data>
<flag name="review"
          id="29301"
          type_id="1"
          status="+"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>