<?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>105421</bug_id>
          
          <creation_ts>2012-12-19 05:24:09 -0800</creation_ts>
          <short_desc>[GTK] Move ImageDiff to the Tools directory root</short_desc>
          <delta_ts>2012-12-31 05:55:56 -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>WebKitGTK</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>
          
          <blocked>105303</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Thiago Marcos P. Santos">tmpsantos</reporter>
          <assigned_to name="Carlos Garcia Campos">cgarcia</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>794562</commentid>
    <comment_count>0</comment_count>
    <who name="Thiago Marcos P. Santos">tmpsantos</who>
    <bug_when>2012-12-19 05:24:09 -0800</bug_when>
    <thetext>More details on the Meta bug blocked by this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798330</commentid>
    <comment_count>1</comment_count>
      <attachid>180970</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-31 05:09:03 -0800</bug_when>
    <thetext>Created attachment 180970
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798338</commentid>
    <comment_count>2</comment_count>
      <attachid>180970</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-31 05:55:52 -0800</bug_when>
    <thetext>Comment on attachment 180970
Patch

Clearing flags on attachment: 180970

Committed r138595: &lt;http://trac.webkit.org/changeset/138595&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798339</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-31 05:55:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>180970</attachid>
            <date>2012-12-31 05:09:03 -0800</date>
            <delta_ts>2012-12-31 05:55:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>tools-image-diff.diff</filename>
            <type>text/plain</type>
            <size>23267</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA5YWUwZGZlLi5hMTA0MGZm
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTItMTItMzEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtHVEtdIE1vdmUgSW1hZ2VEaWZmIHRvIHRoZSBUb29scyBkaXJlY3Rvcnkgcm9v
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1NDIx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbTogUmVtb3ZlIHRoZSBvbGQgSW1hZ2VEaWZmIG1ha2VmaWxlIGluY2x1ZGUuCisK
IDIwMTItMTItMzAgIEtvbmRhcGFsbHkgS2FseWFuICA8a2FseWFuLmtvbmRhcGFsbHlAaW50ZWwu
Y29tPgogCiAgICAgICAgIFtFRkxdIFtXZWJHTF0gUmVuYW1lIEVHTENvbmZpZ0hlbHBlciBhcyBF
R0xDb25maWdTZWxlY3Rvci4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCBhY2VjZTE2Li43YjY5YWNiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTItMzEgIENh
cmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtd
IE1vdmUgSW1hZ2VEaWZmIHRvIHRoZSBUb29scyBkaXJlY3Rvcnkgcm9vdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA1NDIxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsv
R05VbWFrZWZpbGUuSW1hZ2VEaWZmLmFtOiBSZW1vdmVkLgorICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOgorICAgICAgICAqIEltYWdlRGlmZi9ndGsvSW1hZ2VEaWZmLmNwcDogUmVuYW1lZCBmcm9t
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9JbWFnZURpZmYuY3BwLgorCiAyMDEyLTEyLTMwICBN
aWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIG15c2VsZiB0byB3
YXRjaGxpc3RzIGZvciBDU1AgYW5kIGNvbnNvbGUgbG9ncy4KZGlmZiAtLWdpdCBhL0dOVW1ha2Vm
aWxlLmFtIGIvR05VbWFrZWZpbGUuYW0KaW5kZXggZjUxZDM5Zi4uMTg2MjE4OSAxMDA2NDQKLS0t
IGEvR05VbWFrZWZpbGUuYW0KKysrIGIvR05VbWFrZWZpbGUuYW0KQEAgLTI5NSw3ICsyOTUsNiBA
QCBpbmNsdWRlIFNvdXJjZS9XZWJLaXQvZ3RrL0dOVW1ha2VmaWxlLmFtCiBpbmNsdWRlIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2dvYmplY3QvR05VbWFrZWZpbGUuYW0KIGluY2x1ZGUgVG9vbHMv
R05VbWFrZWZpbGUuYW0KIGluY2x1ZGUgU291cmNlL1dlYktpdC9ndGsvcG8vR05VbWFrZWZpbGUu
YW0KLWluY2x1ZGUgVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0dOVW1ha2VmaWxlLkltYWdlRGlm
Zi5hbQogCiBpbmNsdWRlIFNvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFtCiBpbmNsdWRlIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL0dOVW1ha2VmaWxlLmFtCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvR05VbWFrZWZpbGUuSW1hZ2VEaWZmLmFt
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0dOVW1ha2VmaWxlLkltYWdlRGlmZi5hbQpkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTdjM2FlZi4uMDAwMDAwMAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvR05VbWFrZWZpbGUuSW1hZ2VEaWZmLmFtCisrKyAvZGV2L251bGwK
QEAgLTEsMjggKzAsMCBAQAotbm9pbnN0X1BST0dSQU1TICs9IFwKLQlQcm9ncmFtcy9JbWFnZURp
ZmYKLQotUHJvZ3JhbXNfSW1hZ2VEaWZmX0NQUEZMQUdTID0gJChnbG9iYWxfY3BwZmxhZ3MpCi0K
LVByb2dyYW1zX0ltYWdlRGlmZl9TT1VSQ0VTID0gXAotICAgVG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL0ltYWdlRGlmZi5jcHAKLQotUHJvZ3JhbXNfSW1hZ2VEaWZmX0NYWEZMQUdTID0gXAotICAg
JChnbG9iYWxfY3h4ZmxhZ3MpIFwKLSAgICQoZ2xvYmFsX2NwcGZsYWdzKSBcCi0gICAkKFByb2dy
YW1zX0ltYWdlRGlmZl9DRkxBR1MpCi0KLVByb2dyYW1zX0ltYWdlRGlmZl9DRkxBR1MgPSBcCi0g
ICAtZm5vLXN0cmljdC1hbGlhc2luZyBcCi0gICAkKGdsb2JhbF9jZmxhZ3MpIFwKLSAgICQoR0xP
QkFMREVQU19DRkxBR1MpIFwKLSAgICQoR1RLX0NGTEFHUykKLQotUHJvZ3JhbXNfSW1hZ2VEaWZm
X0xEQUREID0gXAotICAgJChHVEtfTElCUykKLQotUHJvZ3JhbXNfSW1hZ2VEaWZmX0xERkxBR1Mg
PSBcCi0gICAtbm8tZmFzdC1pbnN0YWxsIFwKLSAgIC1uby1pbnN0YWxsCi0KLUNMRUFORklMRVMg
Kz0gXAotCVByb2dyYW1zL0ltYWdlRGlmZgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL0ltYWdlRGlmZi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvSW1hZ2VEaWZm
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjZmNjgwYS4uMDAwMDAwMAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvSW1hZ2VEaWZmLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDI0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA5IFphbiBEb2JlcnNlayA8
emFuZG9iZXJzZWtAZ21haWwuY29tPgotICogQ29weXJpZ2h0IChDKSAyMDEwIElnYWxpYSBTLkwu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21w
dXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
LSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBB
TkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQK
LSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2luY2x1ZGUgPGFsZ29yaXRobT4KLSNpbmNsdWRlIDxjbWF0aD4KLSNpbmNsdWRlIDxjc3RkaW8+
Ci0jaW5jbHVkZSA8Y3N0cmluZz4KLSNpbmNsdWRlIDxnZGsvZ2RrLmg+Ci0KLXVzaW5nIG5hbWVz
cGFjZSBzdGQ7Ci0KLXN0YXRpYyBkb3VibGUgdG9sZXJhbmNlID0gMDsKLXN0YXRpYyBHT3B0aW9u
RW50cnkgY29tbWFuZExpbmVPcHRpb25FbnRyaWVzW10gPSAKLXsKLSAgICB7ICJ0b2xlcmFuY2Ui
LCAwLCAwLCBHX09QVElPTl9BUkdfRE9VQkxFLCAmdG9sZXJhbmNlLCAiUGVyY2VudGFnZSBkaWZm
ZXJlbmNlIGJldHdlZW4gaW1hZ2VzIGJlZm9yZSBjb25zaWRlcmluZyB0aGVtIGRpZmZlcmVudCIs
ICJUIiB9LAotICAgIHsgMCwgMCwgMCwgR19PUFRJT05fQVJHX05PTkUsIDAsIDAsIDAgfSwKLX07
Ci0KLUdka1BpeGJ1ZiogcmVhZFBpeGJ1ZkZyb21TdGRpbihsb25nIGltYWdlU2l6ZSkKLXsKLSAg
ICB1bnNpZ25lZCBjaGFyIGltYWdlQnVmZmVyWzIwNDhdOwotICAgIEdka1BpeGJ1ZkxvYWRlciog
bG9hZGVyID0gZ2RrX3BpeGJ1Zl9sb2FkZXJfbmV3X3dpdGhfdHlwZSgicG5nIiwgMCk7Ci0gICAg
R0Vycm9yKiBlcnJvciA9IDA7Ci0KLSAgICB3aGlsZSAoaW1hZ2VTaXplID4gMCkgewotICAgICAg
ICBzaXplX3QgYnl0ZXNUb1JlYWQgPSBtaW48aW50PihpbWFnZVNpemUsIDIwNDgpOwotICAgICAg
ICBzaXplX3QgYnl0ZXNSZWFkID0gZnJlYWQoaW1hZ2VCdWZmZXIsIDEsIGJ5dGVzVG9SZWFkLCBz
dGRpbik7Ci0KLSAgICAgICAgaWYgKCFnZGtfcGl4YnVmX2xvYWRlcl93cml0ZShsb2FkZXIsIHJl
aW50ZXJwcmV0X2Nhc3Q8Y29uc3QgZ3VjaGFyKj4oaW1hZ2VCdWZmZXIpLCBieXRlc1JlYWQsICZl
cnJvcikpIHsKLSAgICAgICAgICAgIGdfZXJyb3JfZnJlZShlcnJvcik7Ci0gICAgICAgICAgICBn
ZGtfcGl4YnVmX2xvYWRlcl9jbG9zZShsb2FkZXIsIDApOwotICAgICAgICAgICAgZ19vYmplY3Rf
dW5yZWYobG9hZGVyKTsKLSAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICB9Ci0KLSAgICAg
ICAgaW1hZ2VTaXplIC09IHN0YXRpY19jYXN0PGludD4oYnl0ZXNSZWFkKTsKLSAgICB9Ci0KLSAg
ICBnZGtfcGl4YnVmX2xvYWRlcl9jbG9zZShsb2FkZXIsIDApOwotICAgIEdka1BpeGJ1ZiogZGVj
b2RlZEltYWdlID0gZ2RrX3BpeGJ1Zl9sb2FkZXJfZ2V0X3BpeGJ1Zihsb2FkZXIpOwotICAgIGdf
b2JqZWN0X3JlZihkZWNvZGVkSW1hZ2UpOwotICAgIHJldHVybiBkZWNvZGVkSW1hZ2U7Ci19Ci0K
LUdka1BpeGJ1ZiogZGlmZmVyZW5jZUltYWdlRnJvbURpZmZlcmVuY2VCdWZmZXIodW5zaWduZWQg
Y2hhciogYnVmZmVyLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpCi17Ci0gICAgR2RrUGl4YnVmKiBp
bWFnZSA9IGdka19waXhidWZfbmV3KEdES19DT0xPUlNQQUNFX1JHQiwgRkFMU0UsIDgsIHdpZHRo
LCBoZWlnaHQpOwotICAgIGlmICghaW1hZ2UpCi0gICAgICAgIHJldHVybiBpbWFnZTsKLQotICAg
IGludCByb3dTdHJpZGUgPSBnZGtfcGl4YnVmX2dldF9yb3dzdHJpZGUoaW1hZ2UpOwotICAgIHVu
c2lnbmVkIGNoYXIqIGRpZmZQaXhlbHMgPSBnZGtfcGl4YnVmX2dldF9waXhlbHMoaW1hZ2UpOwot
ICAgIGZvciAoaW50IHggPSAwOyB4IDwgd2lkdGg7IHgrKykgewotICAgICAgICBmb3IgKGludCB5
ID0gMDsgeSA8IGhlaWdodDsgeSsrKSB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBjaGFyKiBkaWZm
UGl4ZWwgPSBkaWZmUGl4ZWxzICsgKHkgKiByb3dTdHJpZGUpICsgKHggKiAzKTsKLSAgICAgICAg
ICAgIGRpZmZQaXhlbFswXSA9IGRpZmZQaXhlbFsxXSA9IGRpZmZQaXhlbFsyXSA9ICpidWZmZXIr
KzsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHJldHVybiBpbWFnZTsKLX0KLQotZmxvYXQgY2Fs
Y3VsYXRlRGlmZmVyZW5jZShHZGtQaXhidWYqIGJhc2VsaW5lSW1hZ2UsIEdka1BpeGJ1ZiogYWN0
dWFsSW1hZ2UsIEdka1BpeGJ1ZioqIGRpZmZlcmVuY2VJbWFnZSkKLXsKLSAgICBpbnQgd2lkdGgg
PSBnZGtfcGl4YnVmX2dldF93aWR0aChhY3R1YWxJbWFnZSk7Ci0gICAgaW50IGhlaWdodCA9IGdk
a19waXhidWZfZ2V0X2hlaWdodChhY3R1YWxJbWFnZSk7Ci0gICAgaW50IG51bWJlck9mQ2hhbm5l
bHMgPSBnZGtfcGl4YnVmX2dldF9uX2NoYW5uZWxzKGFjdHVhbEltYWdlKTsKLSAgICBpZiAoKHdp
ZHRoICE9IGdka19waXhidWZfZ2V0X3dpZHRoKGJhc2VsaW5lSW1hZ2UpKQotICAgICAgICB8fCAo
aGVpZ2h0ICE9IGdka19waXhidWZfZ2V0X2hlaWdodChiYXNlbGluZUltYWdlKSkKLSAgICAgICAg
fHwgKG51bWJlck9mQ2hhbm5lbHMgIT0gZ2RrX3BpeGJ1Zl9nZXRfbl9jaGFubmVscyhiYXNlbGlu
ZUltYWdlKSkKLSAgICAgICAgfHwgKGdka19waXhidWZfZ2V0X2hhc19hbHBoYShhY3R1YWxJbWFn
ZSkgIT0gZ2RrX3BpeGJ1Zl9nZXRfaGFzX2FscGhhKGJhc2VsaW5lSW1hZ2UpKSkgewotICAgICAg
ICBmcHJpbnRmKHN0ZGVyciwgIkVycm9yLCB0ZXN0IGFuZCByZWZlcmVuY2UgaW1hZ2UgaGF2ZSBk
aWZmZXJlbnQgcHJvcGVydGllcy5cbiIpOwotICAgICAgICByZXR1cm4gMTAwOyAvLyBDb21wbGV0
ZWx5IGRpZmZlcmVudC4KLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBjaGFyKiBkaWZmQnVmZmVyID0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQgY2hhcio+KG1hbGxvYyh3aWR0aCAqIGhlaWdodCkpOwotICAg
IGZsb2F0IGNvdW50ID0gMDsKLSAgICBmbG9hdCBzdW0gPSAwOwotICAgIGZsb2F0IG1heERpc3Rh
bmNlID0gMDsKLSAgICBpbnQgYWN0dWFsUm93U3RyaWRlID0gZ2RrX3BpeGJ1Zl9nZXRfcm93c3Ry
aWRlKGFjdHVhbEltYWdlKTsKLSAgICBpbnQgYmFzZVJvd1N0cmlkZSA9IGdka19waXhidWZfZ2V0
X3Jvd3N0cmlkZShiYXNlbGluZUltYWdlKTsKLSAgICB1bnNpZ25lZCBjaGFyKiBhY3R1YWxQaXhl
bHMgPSBnZGtfcGl4YnVmX2dldF9waXhlbHMoYWN0dWFsSW1hZ2UpOwotICAgIHVuc2lnbmVkIGNo
YXIqIGJhc2VQaXhlbHMgPSBnZGtfcGl4YnVmX2dldF9waXhlbHMoYmFzZWxpbmVJbWFnZSk7Ci0g
ICAgdW5zaWduZWQgY2hhciogY3VycmVudERpZmZQaXhlbCA9IGRpZmZCdWZmZXI7Ci0gICAgZm9y
IChpbnQgeCA9IDA7IHggPCB3aWR0aDsgeCsrKSB7Ci0gICAgICAgIGZvciAoaW50IHkgPSAwOyB5
IDwgaGVpZ2h0OyB5KyspIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIqIGFjdHVhbFBpeGVs
ID0gYWN0dWFsUGl4ZWxzICsgKHkgKiBhY3R1YWxSb3dTdHJpZGUpICsgKHggKiBudW1iZXJPZkNo
YW5uZWxzKTsKLSAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIqIGJhc2VQaXhlbCA9IGJhc2VQaXhl
bHMgKyAoeSAqIGJhc2VSb3dTdHJpZGUpICsgKHggKiBudW1iZXJPZkNoYW5uZWxzKTsKLQotICAg
ICAgICAgICAgZmxvYXQgcmVkID0gKGFjdHVhbFBpeGVsWzBdIC0gYmFzZVBpeGVsWzBdKSAvIG1h
eDxmbG9hdD4oMjU1IC0gYmFzZVBpeGVsWzBdLCBiYXNlUGl4ZWxbMF0pOwotICAgICAgICAgICAg
ZmxvYXQgZ3JlZW4gPSAoYWN0dWFsUGl4ZWxbMV0gLSBiYXNlUGl4ZWxbMV0pIC8gbWF4PGZsb2F0
PigyNTUgLSBiYXNlUGl4ZWxbMV0sIGJhc2VQaXhlbFsxXSk7Ci0gICAgICAgICAgICBmbG9hdCBi
bHVlID0gKGFjdHVhbFBpeGVsWzJdIC0gYmFzZVBpeGVsWzJdKSAvIG1heDxmbG9hdD4oMjU1IC0g
YmFzZVBpeGVsWzJdLCBiYXNlUGl4ZWxbMl0pOwotICAgICAgICAgICAgZmxvYXQgYWxwaGEgPSAo
YWN0dWFsUGl4ZWxbM10gLSBiYXNlUGl4ZWxbM10pIC8gbWF4PGZsb2F0PigyNTUgLSBiYXNlUGl4
ZWxbM10sIGJhc2VQaXhlbFszXSk7Ci0gICAgICAgICAgICBmbG9hdCBkaXN0YW5jZSA9IHNxcnRm
KHJlZCAqIHJlZCArIGdyZWVuICogZ3JlZW4gKyBibHVlICogYmx1ZSArIGFscGhhICogYWxwaGEp
IC8gMi4wZjsKLQotICAgICAgICAgICAgKmN1cnJlbnREaWZmUGl4ZWwrKyA9ICh1bnNpZ25lZCBj
aGFyKShkaXN0YW5jZSAqIDI1NS4wZik7Ci0KLSAgICAgICAgICAgIGlmIChkaXN0YW5jZSA+PSAx
LjBmIC8gMjU1LjBmKSB7Ci0gICAgICAgICAgICAgICAgY291bnQgKz0gMS4wZjsKLSAgICAgICAg
ICAgICAgICBzdW0gKz0gZGlzdGFuY2U7Ci0gICAgICAgICAgICAgICAgbWF4RGlzdGFuY2UgPSBt
YXg8ZmxvYXQ+KG1heERpc3RhbmNlLCBkaXN0YW5jZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICB9Ci0KLSAgICAvLyBDb21wdXRlIHRoZSBkaWZmZXJlbmNlIGFzIGEgcGVyY2VudGFn
ZSBjb21iaW5pbmcgYm90aCB0aGUgbnVtYmVyIG9mCi0gICAgLy8gZGlmZmVyZW50IHBpeGVscyBh
bmQgdGhlaXIgZGlmZmVyZW5jZSBhbW91bnQgaS5lLiB0aGUgYXZlcmFnZSBkaXN0YW5jZQotICAg
IC8vIG92ZXIgdGhlIGVudGlyZSBpbWFnZQotICAgIGZsb2F0IGRpZmZlcmVuY2UgPSAwOwotICAg
IGlmIChjb3VudCA+IDAuMGYpCi0gICAgICAgIGRpZmZlcmVuY2UgPSAxMDAuMGYgKiBzdW0gLyAo
aGVpZ2h0ICogd2lkdGgpOwotICAgIGlmIChkaWZmZXJlbmNlIDw9IHRvbGVyYW5jZSkKLSAgICAg
ICAgZGlmZmVyZW5jZSA9IDA7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGRpZmZlcmVuY2UgPSByb3Vu
ZGYoZGlmZmVyZW5jZSAqIDEwMC4wZikgLyAxMDAuMGY7Ci0gICAgICAgIGRpZmZlcmVuY2UgPSBt
YXgoZGlmZmVyZW5jZSwgMC4wMWYpOyAvLyByb3VuZCB0byAyIGRlY2ltYWwgcGxhY2VzCi0gICAg
ICAgICpkaWZmZXJlbmNlSW1hZ2UgPSBkaWZmZXJlbmNlSW1hZ2VGcm9tRGlmZmVyZW5jZUJ1ZmZl
cihkaWZmQnVmZmVyLCB3aWR0aCwgaGVpZ2h0KTsKLSAgICB9Ci0KLSAgICBmcmVlKGRpZmZCdWZm
ZXIpOwotICAgIHJldHVybiBkaWZmZXJlbmNlOwotfQotCi12b2lkIHByaW50SW1hZ2UoR2RrUGl4
YnVmKiBpbWFnZSkKLXsKLSAgICBjaGFyKiBidWZmZXI7Ci0gICAgZ3NpemUgYnVmZmVyU2l6ZTsK
LSAgICBHRXJyb3IqIGVycm9yID0gMDsKLSAgICBpZiAoIWdka19waXhidWZfc2F2ZV90b19idWZm
ZXIoaW1hZ2UsICZidWZmZXIsICZidWZmZXJTaXplLCAicG5nIiwgJmVycm9yLCBOVUxMKSkgewot
ICAgICAgICBnX2Vycm9yX2ZyZWUoZXJyb3IpOwotICAgICAgICByZXR1cm47IC8vIERvbid0IGJh
aWwgb3V0LCBhcyB3ZSBjYW4gc3RpbGwgdXNlIHRoZSBwZXJjZW50YWdlIG91dHB1dC4KLSAgICB9
Ci0KLSAgICBwcmludGYoIkNvbnRlbnQtTGVuZ3RoOiAlIkdfR1NJWkVfRk9STUFUIlxuIiwgYnVm
ZmVyU2l6ZSk7Ci0gICAgZndyaXRlKGJ1ZmZlciwgMSwgYnVmZmVyU2l6ZSwgc3Rkb3V0KTsKLX0K
LQotdm9pZCBwcmludEltYWdlRGlmZmVyZW5jZXMoR2RrUGl4YnVmKiBiYXNlbGluZUltYWdlLCBH
ZGtQaXhidWYqIGFjdHVhbEltYWdlKQotewotICAgIEdka1BpeGJ1ZiogZGlmZmVyZW5jZUltYWdl
ID0gMDsKLSAgICBmbG9hdCBkaWZmZXJlbmNlID0gY2FsY3VsYXRlRGlmZmVyZW5jZShiYXNlbGlu
ZUltYWdlLCBhY3R1YWxJbWFnZSwgJmRpZmZlcmVuY2VJbWFnZSk7Ci0gICAgaWYgKGRpZmZlcmVu
Y2UgPiAwLjBmKSB7Ci0gICAgICAgIGlmIChkaWZmZXJlbmNlSW1hZ2UpIHsKLSAgICAgICAgICAg
IHByaW50SW1hZ2UoZGlmZmVyZW5jZUltYWdlKTsKLSAgICAgICAgICAgIGdfb2JqZWN0X3VucmVm
KGRpZmZlcmVuY2VJbWFnZSk7Ci0gICAgICAgIH0KLSAgICAgICAgcHJpbnRmKCJkaWZmOiAlMDEu
MmYlJSBmYWlsZWRcbiIsIGRpZmZlcmVuY2UpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHByaW50
ZigiZGlmZjogJTAxLjJmJSUgcGFzc2VkXG4iLCBkaWZmZXJlbmNlKTsKLSAgICB9Ci19Ci0KLWlu
dCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCi17Ci0jaWYgIUdMSUJfQ0hFQ0tfVkVSU0lP
TigyLCAzNSwgMCkKLSAgICBnX3R5cGVfaW5pdCgpOwotI2VuZGlmCi0KLSAgICBHRXJyb3IqIGVy
cm9yID0gMDsKLSAgICBHT3B0aW9uQ29udGV4dCogY29udGV4dCA9IGdfb3B0aW9uX2NvbnRleHRf
bmV3KCItIGNvbXBhcmUgdHdvIGltYWdlIGZpbGVzLCBwcmludGluZyB0aGVpciBwZXJjZW50YWdl
IGRpZmZlcmVuY2UgYW5kIHRoZSBkaWZmZXJlbmNlIGltYWdlIHRvIHN0ZG91dCIpOwotICAgIGdf
b3B0aW9uX2NvbnRleHRfYWRkX21haW5fZW50cmllcyhjb250ZXh0LCBjb21tYW5kTGluZU9wdGlv
bkVudHJpZXMsIDApOwotICAgIGlmICghZ19vcHRpb25fY29udGV4dF9wYXJzZShjb250ZXh0LCAm
YXJnYywgJmFyZ3YsICZlcnJvcikpIHsKLSAgICAgICAgcHJpbnRmKCJPcHRpb24gcGFyc2luZyBm
YWlsZWQ6ICVzXG4iLCBlcnJvci0+bWVzc2FnZSk7Ci0gICAgICAgIGdfZXJyb3JfZnJlZShlcnJv
cik7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIEdka1BpeGJ1ZiogYWN0dWFsSW1h
Z2UgPSAwOwotICAgIEdka1BpeGJ1ZiogYmFzZWxpbmVJbWFnZSA9IDA7Ci0gICAgY2hhciBidWZm
ZXJbMjA0OF07Ci0gICAgd2hpbGUgKGZnZXRzKGJ1ZmZlciwgc2l6ZW9mKGJ1ZmZlciksIHN0ZGlu
KSkgewotICAgICAgICAvLyBDb252ZXJ0IHRoZSBmaXJzdCBuZXdsaW5lIGludG8gYSBOVUwgY2hh
cmFjdGVyIHNvIHRoYXQgc3RydG9rIGRvZXNuJ3QgcHJvZHVjZSBpdC4KLSAgICAgICAgY2hhciog
bmV3TGluZUNoYXJhY3RlciA9IHN0cmNocihidWZmZXIsICdcbicpOwotICAgICAgICBpZiAobmV3
TGluZUNoYXJhY3RlcikKLSAgICAgICAgICAgICpuZXdMaW5lQ2hhcmFjdGVyID0gJ1wwJzsKLQot
ICAgICAgICBpZiAoIXN0cm5jbXAoIkNvbnRlbnQtTGVuZ3RoOiAiLCBidWZmZXIsIDE2KSkgewot
ICAgICAgICAgICAgZ2NoYXIqKiB0b2tlbnMgPSBnX3N0cnNwbGl0KGJ1ZmZlciwgIiAiLCAwKTsK
LSAgICAgICAgICAgIGlmICghdG9rZW5zWzFdKSB7Ci0gICAgICAgICAgICAgICAgZ19zdHJmcmVl
dih0b2tlbnMpOwotICAgICAgICAgICAgICAgIHByaW50ZigiRXJyb3IsIGltYWdlIHNpemUgbXVz
dCBiZSBzcGVjaWZpZWQuLlxuIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAg
ICAgICB9Ci0KLSAgICAgICAgICAgIGxvbmcgaW1hZ2VTaXplID0gc3RydG9sKHRva2Vuc1sxXSwg
MCwgMTApOwotICAgICAgICAgICAgZ19zdHJmcmVldih0b2tlbnMpOwotICAgICAgICAgICAgaWYg
KGltYWdlU2l6ZSA+IDAgJiYgIWFjdHVhbEltYWdlKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCEo
YWN0dWFsSW1hZ2UgPSByZWFkUGl4YnVmRnJvbVN0ZGluKGltYWdlU2l6ZSkpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIHByaW50ZigiRXJyb3IsIGNvdWxkIG5vdCByZWFkIGFjdHVhbCBpbWFnZS5c
biIpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB9IGVsc2UgaWYgKGltYWdlU2l6ZSA+IDAgJiYgIWJhc2VsaW5lSW1hZ2UpIHsK
LSAgICAgICAgICAgICAgICBpZiAoIShiYXNlbGluZUltYWdlID0gcmVhZFBpeGJ1ZkZyb21TdGRp
bihpbWFnZVNpemUpKSkgewotICAgICAgICAgICAgICAgICAgICBwcmludGYoIkVycm9yLCBjb3Vs
ZCBub3QgcmVhZCBiYXNlbGluZSBpbWFnZS5cbiIpOwotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gMTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgIHByaW50ZigiRXJyb3IsIGltYWdlIHNpemUgbXVzdCBiZSBzcGVjaWZpZWQuLlxuIik7
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIDE7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQot
ICAgICAgICBpZiAoYWN0dWFsSW1hZ2UgJiYgYmFzZWxpbmVJbWFnZSkgewotICAgICAgICAgICAg
cHJpbnRJbWFnZURpZmZlcmVuY2VzKGJhc2VsaW5lSW1hZ2UsIGFjdHVhbEltYWdlKTsKLSAgICAg
ICAgICAgIGdfb2JqZWN0X3VucmVmKGFjdHVhbEltYWdlKTsKLSAgICAgICAgICAgIGdfb2JqZWN0
X3VucmVmKGJhc2VsaW5lSW1hZ2UpOwotICAgICAgICAgICAgYWN0dWFsSW1hZ2UgPSAwOwotICAg
ICAgICAgICAgYmFzZWxpbmVJbWFnZSA9IDA7Ci0gICAgICAgIH0KLQotICAgICAgICBmZmx1c2go
c3Rkb3V0KTsKLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL0dO
VW1ha2VmaWxlLmFtIGIvVG9vbHMvR05VbWFrZWZpbGUuYW0KaW5kZXggMWRmZTQyZi4uMDJkYzZl
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvR05VbWFrZWZpbGUuYW0KKysrIGIvVG9vbHMvR05VbWFrZWZp
bGUuYW0KQEAgLTEsNiArMSw3IEBACiBub2luc3RfUFJPR1JBTVMgKz0gXAogCVByb2dyYW1zL0R1
bXBSZW5kZXJUcmVlIFwKLQlQcm9ncmFtcy9HdGtMYXVuY2hlcgorCVByb2dyYW1zL0d0a0xhdW5j
aGVyIFwKKwlQcm9ncmFtcy9JbWFnZURpZmYKIAogIyBHdGtMYXVuY2hlcgogUHJvZ3JhbXNfR3Rr
TGF1bmNoZXJfQ1BQRkxBR1MgPSBcCkBAIC0xODUsMTAgKzE4NiwzNSBAQCBQcm9ncmFtc19EdW1w
UmVuZGVyVHJlZV9MREZMQUdTID0gXAogCS1uby1mYXN0LWluc3RhbGwgXAogCS1uby1pbnN0YWxs
CiAKKyMgSW1hZ2VEaWZmCitQcm9ncmFtc19JbWFnZURpZmZfQ1BQRkxBR1MgPSAkKGdsb2JhbF9j
cHBmbGFncykKKworUHJvZ3JhbXNfSW1hZ2VEaWZmX1NPVVJDRVMgPSBcCisgICBUb29scy9JbWFn
ZURpZmYvZ3RrL0ltYWdlRGlmZi5jcHAKKworUHJvZ3JhbXNfSW1hZ2VEaWZmX0NYWEZMQUdTID0g
XAorICAgJChnbG9iYWxfY3h4ZmxhZ3MpIFwKKyAgICQoZ2xvYmFsX2NwcGZsYWdzKSBcCisgICAk
KFByb2dyYW1zX0ltYWdlRGlmZl9DRkxBR1MpCisKK1Byb2dyYW1zX0ltYWdlRGlmZl9DRkxBR1Mg
PSBcCisgICAtZm5vLXN0cmljdC1hbGlhc2luZyBcCisgICAkKGdsb2JhbF9jZmxhZ3MpIFwKKyAg
ICQoR0xPQkFMREVQU19DRkxBR1MpIFwKKyAgICQoR1RLX0NGTEFHUykKKworUHJvZ3JhbXNfSW1h
Z2VEaWZmX0xEQUREID0gXAorICAgJChHVEtfTElCUykKKworUHJvZ3JhbXNfSW1hZ2VEaWZmX0xE
RkxBR1MgPSBcCisgICAtbm8tZmFzdC1pbnN0YWxsIFwKKyAgIC1uby1pbnN0YWxsCisKICMgY2xl
YW4gdGFyZ2V0CiBDTEVBTkZJTEVTICs9IFwKIAlQcm9ncmFtcy9EdW1wUmVuZGVyVHJlZSBcCi0J
UHJvZ3JhbXMvR3RrTGF1bmNoZXIKKwlQcm9ncmFtcy9HdGtMYXVuY2hlciBcCisJUHJvZ3JhbXMv
SW1hZ2VEaWZmCiAKIGlmIFRBUkdFVF9YMTEKIApkaWZmIC0tZ2l0IGEvVG9vbHMvSW1hZ2VEaWZm
L2d0ay9JbWFnZURpZmYuY3BwIGIvVG9vbHMvSW1hZ2VEaWZmL2d0ay9JbWFnZURpZmYuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdiYWEyNWUKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9JbWFnZURpZmYvZ3RrL0ltYWdlRGlmZi5jcHAKQEAgLTAsMCArMSwyNDAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgWmFuIERvYmVyc2VrIDx6YW5kb2JlcnNla0BnbWFp
bC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBw
bGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVU
T1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSA8YWxnb3Jp
dGhtPgorI2luY2x1ZGUgPGNtYXRoPgorI2luY2x1ZGUgPGNzdGRpbz4KKyNpbmNsdWRlIDxjc3Ry
aW5nPgorI2luY2x1ZGUgPGdkay9nZGsuaD4KKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworc3Rh
dGljIGRvdWJsZSB0b2xlcmFuY2UgPSAwOworc3RhdGljIEdPcHRpb25FbnRyeSBjb21tYW5kTGlu
ZU9wdGlvbkVudHJpZXNbXSA9IAoreworICAgIHsgInRvbGVyYW5jZSIsIDAsIDAsIEdfT1BUSU9O
X0FSR19ET1VCTEUsICZ0b2xlcmFuY2UsICJQZXJjZW50YWdlIGRpZmZlcmVuY2UgYmV0d2VlbiBp
bWFnZXMgYmVmb3JlIGNvbnNpZGVyaW5nIHRoZW0gZGlmZmVyZW50IiwgIlQiIH0sCisgICAgeyAw
LCAwLCAwLCBHX09QVElPTl9BUkdfTk9ORSwgMCwgMCwgMCB9LAorfTsKKworR2RrUGl4YnVmKiBy
ZWFkUGl4YnVmRnJvbVN0ZGluKGxvbmcgaW1hZ2VTaXplKQoreworICAgIHVuc2lnbmVkIGNoYXIg
aW1hZ2VCdWZmZXJbMjA0OF07CisgICAgR2RrUGl4YnVmTG9hZGVyKiBsb2FkZXIgPSBnZGtfcGl4
YnVmX2xvYWRlcl9uZXdfd2l0aF90eXBlKCJwbmciLCAwKTsKKyAgICBHRXJyb3IqIGVycm9yID0g
MDsKKworICAgIHdoaWxlIChpbWFnZVNpemUgPiAwKSB7CisgICAgICAgIHNpemVfdCBieXRlc1Rv
UmVhZCA9IG1pbjxpbnQ+KGltYWdlU2l6ZSwgMjA0OCk7CisgICAgICAgIHNpemVfdCBieXRlc1Jl
YWQgPSBmcmVhZChpbWFnZUJ1ZmZlciwgMSwgYnl0ZXNUb1JlYWQsIHN0ZGluKTsKKworICAgICAg
ICBpZiAoIWdka19waXhidWZfbG9hZGVyX3dyaXRlKGxvYWRlciwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBndWNoYXIqPihpbWFnZUJ1ZmZlciksIGJ5dGVzUmVhZCwgJmVycm9yKSkgeworICAgICAg
ICAgICAgZ19lcnJvcl9mcmVlKGVycm9yKTsKKyAgICAgICAgICAgIGdka19waXhidWZfbG9hZGVy
X2Nsb3NlKGxvYWRlciwgMCk7CisgICAgICAgICAgICBnX29iamVjdF91bnJlZihsb2FkZXIpOwor
ICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIH0KKworICAgICAgICBpbWFnZVNpemUgLT0g
c3RhdGljX2Nhc3Q8aW50PihieXRlc1JlYWQpOworICAgIH0KKworICAgIGdka19waXhidWZfbG9h
ZGVyX2Nsb3NlKGxvYWRlciwgMCk7CisgICAgR2RrUGl4YnVmKiBkZWNvZGVkSW1hZ2UgPSBnZGtf
cGl4YnVmX2xvYWRlcl9nZXRfcGl4YnVmKGxvYWRlcik7CisgICAgZ19vYmplY3RfcmVmKGRlY29k
ZWRJbWFnZSk7CisgICAgcmV0dXJuIGRlY29kZWRJbWFnZTsKK30KKworR2RrUGl4YnVmKiBkaWZm
ZXJlbmNlSW1hZ2VGcm9tRGlmZmVyZW5jZUJ1ZmZlcih1bnNpZ25lZCBjaGFyKiBidWZmZXIsIGlu
dCB3aWR0aCwgaW50IGhlaWdodCkKK3sKKyAgICBHZGtQaXhidWYqIGltYWdlID0gZ2RrX3BpeGJ1
Zl9uZXcoR0RLX0NPTE9SU1BBQ0VfUkdCLCBGQUxTRSwgOCwgd2lkdGgsIGhlaWdodCk7CisgICAg
aWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIGltYWdlOworCisgICAgaW50IHJvd1N0cmlkZSA9
IGdka19waXhidWZfZ2V0X3Jvd3N0cmlkZShpbWFnZSk7CisgICAgdW5zaWduZWQgY2hhciogZGlm
ZlBpeGVscyA9IGdka19waXhidWZfZ2V0X3BpeGVscyhpbWFnZSk7CisgICAgZm9yIChpbnQgeCA9
IDA7IHggPCB3aWR0aDsgeCsrKSB7CisgICAgICAgIGZvciAoaW50IHkgPSAwOyB5IDwgaGVpZ2h0
OyB5KyspIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIqIGRpZmZQaXhlbCA9IGRpZmZQaXhl
bHMgKyAoeSAqIHJvd1N0cmlkZSkgKyAoeCAqIDMpOworICAgICAgICAgICAgZGlmZlBpeGVsWzBd
ID0gZGlmZlBpeGVsWzFdID0gZGlmZlBpeGVsWzJdID0gKmJ1ZmZlcisrOworICAgICAgICB9Cisg
ICAgfQorCisgICAgcmV0dXJuIGltYWdlOworfQorCitmbG9hdCBjYWxjdWxhdGVEaWZmZXJlbmNl
KEdka1BpeGJ1ZiogYmFzZWxpbmVJbWFnZSwgR2RrUGl4YnVmKiBhY3R1YWxJbWFnZSwgR2RrUGl4
YnVmKiogZGlmZmVyZW5jZUltYWdlKQoreworICAgIGludCB3aWR0aCA9IGdka19waXhidWZfZ2V0
X3dpZHRoKGFjdHVhbEltYWdlKTsKKyAgICBpbnQgaGVpZ2h0ID0gZ2RrX3BpeGJ1Zl9nZXRfaGVp
Z2h0KGFjdHVhbEltYWdlKTsKKyAgICBpbnQgbnVtYmVyT2ZDaGFubmVscyA9IGdka19waXhidWZf
Z2V0X25fY2hhbm5lbHMoYWN0dWFsSW1hZ2UpOworICAgIGlmICgod2lkdGggIT0gZ2RrX3BpeGJ1
Zl9nZXRfd2lkdGgoYmFzZWxpbmVJbWFnZSkpCisgICAgICAgIHx8IChoZWlnaHQgIT0gZ2RrX3Bp
eGJ1Zl9nZXRfaGVpZ2h0KGJhc2VsaW5lSW1hZ2UpKQorICAgICAgICB8fCAobnVtYmVyT2ZDaGFu
bmVscyAhPSBnZGtfcGl4YnVmX2dldF9uX2NoYW5uZWxzKGJhc2VsaW5lSW1hZ2UpKQorICAgICAg
ICB8fCAoZ2RrX3BpeGJ1Zl9nZXRfaGFzX2FscGhhKGFjdHVhbEltYWdlKSAhPSBnZGtfcGl4YnVm
X2dldF9oYXNfYWxwaGEoYmFzZWxpbmVJbWFnZSkpKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJy
LCAiRXJyb3IsIHRlc3QgYW5kIHJlZmVyZW5jZSBpbWFnZSBoYXZlIGRpZmZlcmVudCBwcm9wZXJ0
aWVzLlxuIik7CisgICAgICAgIHJldHVybiAxMDA7IC8vIENvbXBsZXRlbHkgZGlmZmVyZW50Lgor
ICAgIH0KKworICAgIHVuc2lnbmVkIGNoYXIqIGRpZmZCdWZmZXIgPSBzdGF0aWNfY2FzdDx1bnNp
Z25lZCBjaGFyKj4obWFsbG9jKHdpZHRoICogaGVpZ2h0KSk7CisgICAgZmxvYXQgY291bnQgPSAw
OworICAgIGZsb2F0IHN1bSA9IDA7CisgICAgZmxvYXQgbWF4RGlzdGFuY2UgPSAwOworICAgIGlu
dCBhY3R1YWxSb3dTdHJpZGUgPSBnZGtfcGl4YnVmX2dldF9yb3dzdHJpZGUoYWN0dWFsSW1hZ2Up
OworICAgIGludCBiYXNlUm93U3RyaWRlID0gZ2RrX3BpeGJ1Zl9nZXRfcm93c3RyaWRlKGJhc2Vs
aW5lSW1hZ2UpOworICAgIHVuc2lnbmVkIGNoYXIqIGFjdHVhbFBpeGVscyA9IGdka19waXhidWZf
Z2V0X3BpeGVscyhhY3R1YWxJbWFnZSk7CisgICAgdW5zaWduZWQgY2hhciogYmFzZVBpeGVscyA9
IGdka19waXhidWZfZ2V0X3BpeGVscyhiYXNlbGluZUltYWdlKTsKKyAgICB1bnNpZ25lZCBjaGFy
KiBjdXJyZW50RGlmZlBpeGVsID0gZGlmZkJ1ZmZlcjsKKyAgICBmb3IgKGludCB4ID0gMDsgeCA8
IHdpZHRoOyB4KyspIHsKKyAgICAgICAgZm9yIChpbnQgeSA9IDA7IHkgPCBoZWlnaHQ7IHkrKykg
eworICAgICAgICAgICAgdW5zaWduZWQgY2hhciogYWN0dWFsUGl4ZWwgPSBhY3R1YWxQaXhlbHMg
KyAoeSAqIGFjdHVhbFJvd1N0cmlkZSkgKyAoeCAqIG51bWJlck9mQ2hhbm5lbHMpOworICAgICAg
ICAgICAgdW5zaWduZWQgY2hhciogYmFzZVBpeGVsID0gYmFzZVBpeGVscyArICh5ICogYmFzZVJv
d1N0cmlkZSkgKyAoeCAqIG51bWJlck9mQ2hhbm5lbHMpOworCisgICAgICAgICAgICBmbG9hdCBy
ZWQgPSAoYWN0dWFsUGl4ZWxbMF0gLSBiYXNlUGl4ZWxbMF0pIC8gbWF4PGZsb2F0PigyNTUgLSBi
YXNlUGl4ZWxbMF0sIGJhc2VQaXhlbFswXSk7CisgICAgICAgICAgICBmbG9hdCBncmVlbiA9IChh
Y3R1YWxQaXhlbFsxXSAtIGJhc2VQaXhlbFsxXSkgLyBtYXg8ZmxvYXQ+KDI1NSAtIGJhc2VQaXhl
bFsxXSwgYmFzZVBpeGVsWzFdKTsKKyAgICAgICAgICAgIGZsb2F0IGJsdWUgPSAoYWN0dWFsUGl4
ZWxbMl0gLSBiYXNlUGl4ZWxbMl0pIC8gbWF4PGZsb2F0PigyNTUgLSBiYXNlUGl4ZWxbMl0sIGJh
c2VQaXhlbFsyXSk7CisgICAgICAgICAgICBmbG9hdCBhbHBoYSA9IChhY3R1YWxQaXhlbFszXSAt
IGJhc2VQaXhlbFszXSkgLyBtYXg8ZmxvYXQ+KDI1NSAtIGJhc2VQaXhlbFszXSwgYmFzZVBpeGVs
WzNdKTsKKyAgICAgICAgICAgIGZsb2F0IGRpc3RhbmNlID0gc3FydGYocmVkICogcmVkICsgZ3Jl
ZW4gKiBncmVlbiArIGJsdWUgKiBibHVlICsgYWxwaGEgKiBhbHBoYSkgLyAyLjBmOworCisgICAg
ICAgICAgICAqY3VycmVudERpZmZQaXhlbCsrID0gKHVuc2lnbmVkIGNoYXIpKGRpc3RhbmNlICog
MjU1LjBmKTsKKworICAgICAgICAgICAgaWYgKGRpc3RhbmNlID49IDEuMGYgLyAyNTUuMGYpIHsK
KyAgICAgICAgICAgICAgICBjb3VudCArPSAxLjBmOworICAgICAgICAgICAgICAgIHN1bSArPSBk
aXN0YW5jZTsKKyAgICAgICAgICAgICAgICBtYXhEaXN0YW5jZSA9IG1heDxmbG9hdD4obWF4RGlz
dGFuY2UsIGRpc3RhbmNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAg
IC8vIENvbXB1dGUgdGhlIGRpZmZlcmVuY2UgYXMgYSBwZXJjZW50YWdlIGNvbWJpbmluZyBib3Ro
IHRoZSBudW1iZXIgb2YKKyAgICAvLyBkaWZmZXJlbnQgcGl4ZWxzIGFuZCB0aGVpciBkaWZmZXJl
bmNlIGFtb3VudCBpLmUuIHRoZSBhdmVyYWdlIGRpc3RhbmNlCisgICAgLy8gb3ZlciB0aGUgZW50
aXJlIGltYWdlCisgICAgZmxvYXQgZGlmZmVyZW5jZSA9IDA7CisgICAgaWYgKGNvdW50ID4gMC4w
ZikKKyAgICAgICAgZGlmZmVyZW5jZSA9IDEwMC4wZiAqIHN1bSAvIChoZWlnaHQgKiB3aWR0aCk7
CisgICAgaWYgKGRpZmZlcmVuY2UgPD0gdG9sZXJhbmNlKQorICAgICAgICBkaWZmZXJlbmNlID0g
MDsKKyAgICBlbHNlIHsKKyAgICAgICAgZGlmZmVyZW5jZSA9IHJvdW5kZihkaWZmZXJlbmNlICog
MTAwLjBmKSAvIDEwMC4wZjsKKyAgICAgICAgZGlmZmVyZW5jZSA9IG1heChkaWZmZXJlbmNlLCAw
LjAxZik7IC8vIHJvdW5kIHRvIDIgZGVjaW1hbCBwbGFjZXMKKyAgICAgICAgKmRpZmZlcmVuY2VJ
bWFnZSA9IGRpZmZlcmVuY2VJbWFnZUZyb21EaWZmZXJlbmNlQnVmZmVyKGRpZmZCdWZmZXIsIHdp
ZHRoLCBoZWlnaHQpOworICAgIH0KKworICAgIGZyZWUoZGlmZkJ1ZmZlcik7CisgICAgcmV0dXJu
IGRpZmZlcmVuY2U7Cit9CisKK3ZvaWQgcHJpbnRJbWFnZShHZGtQaXhidWYqIGltYWdlKQorewor
ICAgIGNoYXIqIGJ1ZmZlcjsKKyAgICBnc2l6ZSBidWZmZXJTaXplOworICAgIEdFcnJvciogZXJy
b3IgPSAwOworICAgIGlmICghZ2RrX3BpeGJ1Zl9zYXZlX3RvX2J1ZmZlcihpbWFnZSwgJmJ1ZmZl
ciwgJmJ1ZmZlclNpemUsICJwbmciLCAmZXJyb3IsIE5VTEwpKSB7CisgICAgICAgIGdfZXJyb3Jf
ZnJlZShlcnJvcik7CisgICAgICAgIHJldHVybjsgLy8gRG9uJ3QgYmFpbCBvdXQsIGFzIHdlIGNh
biBzdGlsbCB1c2UgdGhlIHBlcmNlbnRhZ2Ugb3V0cHV0LgorICAgIH0KKworICAgIHByaW50Zigi
Q29udGVudC1MZW5ndGg6ICUiR19HU0laRV9GT1JNQVQiXG4iLCBidWZmZXJTaXplKTsKKyAgICBm
d3JpdGUoYnVmZmVyLCAxLCBidWZmZXJTaXplLCBzdGRvdXQpOworfQorCit2b2lkIHByaW50SW1h
Z2VEaWZmZXJlbmNlcyhHZGtQaXhidWYqIGJhc2VsaW5lSW1hZ2UsIEdka1BpeGJ1ZiogYWN0dWFs
SW1hZ2UpCit7CisgICAgR2RrUGl4YnVmKiBkaWZmZXJlbmNlSW1hZ2UgPSAwOworICAgIGZsb2F0
IGRpZmZlcmVuY2UgPSBjYWxjdWxhdGVEaWZmZXJlbmNlKGJhc2VsaW5lSW1hZ2UsIGFjdHVhbElt
YWdlLCAmZGlmZmVyZW5jZUltYWdlKTsKKyAgICBpZiAoZGlmZmVyZW5jZSA+IDAuMGYpIHsKKyAg
ICAgICAgaWYgKGRpZmZlcmVuY2VJbWFnZSkgeworICAgICAgICAgICAgcHJpbnRJbWFnZShkaWZm
ZXJlbmNlSW1hZ2UpOworICAgICAgICAgICAgZ19vYmplY3RfdW5yZWYoZGlmZmVyZW5jZUltYWdl
KTsKKyAgICAgICAgfQorICAgICAgICBwcmludGYoImRpZmY6ICUwMS4yZiUlIGZhaWxlZFxuIiwg
ZGlmZmVyZW5jZSk7CisgICAgfSBlbHNlCisgICAgICAgIHByaW50ZigiZGlmZjogJTAxLjJmJSUg
cGFzc2VkXG4iLCBkaWZmZXJlbmNlKTsKK30KKworaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFy
Z3ZbXSkKK3sKKyNpZiAhR0xJQl9DSEVDS19WRVJTSU9OKDIsIDM1LCAwKQorICAgIGdfdHlwZV9p
bml0KCk7CisjZW5kaWYKKworICAgIEdFcnJvciogZXJyb3IgPSAwOworICAgIEdPcHRpb25Db250
ZXh0KiBjb250ZXh0ID0gZ19vcHRpb25fY29udGV4dF9uZXcoIi0gY29tcGFyZSB0d28gaW1hZ2Ug
ZmlsZXMsIHByaW50aW5nIHRoZWlyIHBlcmNlbnRhZ2UgZGlmZmVyZW5jZSBhbmQgdGhlIGRpZmZl
cmVuY2UgaW1hZ2UgdG8gc3Rkb3V0Iik7CisgICAgZ19vcHRpb25fY29udGV4dF9hZGRfbWFpbl9l
bnRyaWVzKGNvbnRleHQsIGNvbW1hbmRMaW5lT3B0aW9uRW50cmllcywgMCk7CisgICAgaWYgKCFn
X29wdGlvbl9jb250ZXh0X3BhcnNlKGNvbnRleHQsICZhcmdjLCAmYXJndiwgJmVycm9yKSkgewor
ICAgICAgICBwcmludGYoIk9wdGlvbiBwYXJzaW5nIGZhaWxlZDogJXNcbiIsIGVycm9yLT5tZXNz
YWdlKTsKKyAgICAgICAgZ19lcnJvcl9mcmVlKGVycm9yKTsKKyAgICAgICAgcmV0dXJuIDE7Cisg
ICAgfQorCisgICAgR2RrUGl4YnVmKiBhY3R1YWxJbWFnZSA9IDA7CisgICAgR2RrUGl4YnVmKiBi
YXNlbGluZUltYWdlID0gMDsKKyAgICBjaGFyIGJ1ZmZlclsyMDQ4XTsKKyAgICB3aGlsZSAoZmdl
dHMoYnVmZmVyLCBzaXplb2YoYnVmZmVyKSwgc3RkaW4pKSB7CisgICAgICAgIC8vIENvbnZlcnQg
dGhlIGZpcnN0IG5ld2xpbmUgaW50byBhIE5VTCBjaGFyYWN0ZXIgc28gdGhhdCBzdHJ0b2sgZG9l
c24ndCBwcm9kdWNlIGl0LgorICAgICAgICBjaGFyKiBuZXdMaW5lQ2hhcmFjdGVyID0gc3RyY2hy
KGJ1ZmZlciwgJ1xuJyk7CisgICAgICAgIGlmIChuZXdMaW5lQ2hhcmFjdGVyKQorICAgICAgICAg
ICAgKm5ld0xpbmVDaGFyYWN0ZXIgPSAnXDAnOworCisgICAgICAgIGlmICghc3RybmNtcCgiQ29u
dGVudC1MZW5ndGg6ICIsIGJ1ZmZlciwgMTYpKSB7CisgICAgICAgICAgICBnY2hhcioqIHRva2Vu
cyA9IGdfc3Ryc3BsaXQoYnVmZmVyLCAiICIsIDApOworICAgICAgICAgICAgaWYgKCF0b2tlbnNb
MV0pIHsKKyAgICAgICAgICAgICAgICBnX3N0cmZyZWV2KHRva2Vucyk7CisgICAgICAgICAgICAg
ICAgcHJpbnRmKCJFcnJvciwgaW1hZ2Ugc2l6ZSBtdXN0IGJlIHNwZWNpZmllZC4uXG4iKTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9u
ZyBpbWFnZVNpemUgPSBzdHJ0b2wodG9rZW5zWzFdLCAwLCAxMCk7CisgICAgICAgICAgICBnX3N0
cmZyZWV2KHRva2Vucyk7CisgICAgICAgICAgICBpZiAoaW1hZ2VTaXplID4gMCAmJiAhYWN0dWFs
SW1hZ2UpIHsKKyAgICAgICAgICAgICAgICBpZiAoIShhY3R1YWxJbWFnZSA9IHJlYWRQaXhidWZG
cm9tU3RkaW4oaW1hZ2VTaXplKSkpIHsKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJFcnJv
ciwgY291bGQgbm90IHJlYWQgYWN0dWFsIGltYWdlLlxuIik7CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiAxOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0gZWxzZSBpZiAoaW1h
Z2VTaXplID4gMCAmJiAhYmFzZWxpbmVJbWFnZSkgeworICAgICAgICAgICAgICAgIGlmICghKGJh
c2VsaW5lSW1hZ2UgPSByZWFkUGl4YnVmRnJvbVN0ZGluKGltYWdlU2l6ZSkpKSB7CisgICAgICAg
ICAgICAgICAgICAgIHByaW50ZigiRXJyb3IsIGNvdWxkIG5vdCByZWFkIGJhc2VsaW5lIGltYWdl
LlxuIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgcHJpbnRmKCJFcnJvciwgaW1h
Z2Ugc2l6ZSBtdXN0IGJlIHNwZWNpZmllZC4uXG4iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
MTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIGlmIChhY3R1YWxJbWFnZSAm
JiBiYXNlbGluZUltYWdlKSB7CisgICAgICAgICAgICBwcmludEltYWdlRGlmZmVyZW5jZXMoYmFz
ZWxpbmVJbWFnZSwgYWN0dWFsSW1hZ2UpOworICAgICAgICAgICAgZ19vYmplY3RfdW5yZWYoYWN0
dWFsSW1hZ2UpOworICAgICAgICAgICAgZ19vYmplY3RfdW5yZWYoYmFzZWxpbmVJbWFnZSk7Cisg
ICAgICAgICAgICBhY3R1YWxJbWFnZSA9IDA7CisgICAgICAgICAgICBiYXNlbGluZUltYWdlID0g
MDsKKyAgICAgICAgfQorCisgICAgICAgIGZmbHVzaChzdGRvdXQpOworICAgIH0KKworICAgIHJl
dHVybiAwOworfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>