Location: PHPKode > scripts > Free Mortgage Calculator With Charts > free-mortgage-calculator-with-charts/FreeMortgageCalculatorWithCharts.php
<?php

/*  Free Mortgage Calculator With Charts v1.21
    By johnedwardsproperties.com
	Free to use, please acknowledge me 
	
	If you have questions, suggestions, problems or anything else just send a message at
	http://www.johnedwardsproperties.com/MortgageCalculator.php and I will get back to you.
	I pride myself on responding to all inquiries.
    
    Place the files FreeMortgageCalculatorWithCharts.php, calculator.css, Area2D.swf, Pie3D.swf and 
	CalculatorTest.php in the same folder where you want the calculator
	
	Add <link href="calculator.css" type="text/css" rel="stylesheet"> in the head of your html
	after </title>
	
	Add <?php include("FreeMortgageCalculatorWithCharts.php"); ?> in your html body where you
	want the Calculator 
	
	CalculatorTest.php is included as an example. 
*/


/* --------------------------------------------------------------------- */
/* default values
/* --------------------------------------------------------------------- */
	$default_sale_price                  = "100000";
	$default_annual_interest_percent     = 6.5;
	$default_year_term                   = 30;
	$default_annual_property_tax_percent = 1.25;
	$default_annual_pmi_percent          = .5;
	
	// set the default currency symbol such as dollar sign "$", Pound sign "£",
	// Euro sign "€" or anything else
	$default_currency_symbol = '$'; 
/* --------------------------------------------------- */	

?>

<?php $_F=__FILE__;$_X='Pz48P3BocA0KZjNuY3Q0Mm4gNW5jMmQ1RDF0MVVSTCgkc3RyRDF0MVVSTCwgJDFkZE4yQzFjaDVTdHIgPSBmMWxzNSkNCnsNCiAgICAvL0FkZCB0aDUgbjItYzFjaDUgc3RyNG5nIDRmIHI1cTM0cjVkDQogICAgNGYgKCQxZGROMkMxY2g1U3RyID09IHRyMzUpDQogICAgew0KICAgICAgICAvLyBXNSAxZGQgP0ZDQzNyclQ0bTU9eHh5eXp6DQogICAgICAgIC8vIElmIHRoNSBkMXQxVVJMIDFscjUxZHkgYzJudDE0bnMgMSA/LCB3NSAxZGQgJkZDQzNyclQ0bTU9eHh5eXp6DQogICAgICAgIC8vIFc1IHI1cGwxYzUgOiB3NHRoIF8sIDFzIEYzczQybkNoMXJ0cyBjMW5uMnQgaDFuZGw1IDogNG4gVVJMcw0KICAgICAgICA0ZiAoc3RycDJzKHN0ckQxdDFVUkwsICI/IikgPD4gMCkNCiAgICAgICAgICAgICRzdHJEMXQxVVJMIC49ICImRkNDM3JyVDRtNT0iIC4gRDF0NSgiSF80X3MiKTsNCiAgICAgICAgNWxzNQ0KICAgICAgICAgICAgJHN0ckQxdDFVUkwgLj0gIj9GQ0MzcnJUNG01PSIgLiBEMXQ1KCJIXzRfcyIpOw0KICAgIH0NCiAgICAvLyBVUkwgRW5jMmQ1IDR0DQogICAgcjV0M3JuIDNybDVuYzJkNSgkc3RyRDF0MVVSTCk7DQp9DQoNCg0KLy8gZDF0NVAxcnQgZjNuY3Q0Mm4gYzJudjVydHMgTXlTUUwgZDF0MWIxczUgYjFzNWQgMm4gcjVxMzVzdDVkIG0xc2sNCi8vIFAxcjFtOiAkbTFzayAtIHdoMXQgcDFydCAyZiB0aDUgZDF0NSB0MiByNXQzcm4gIm0nIGYyciBtMm50aCwiZCIgZjJyIGQxeSwgMW5kICJ5IiBmMnIgeTUxcg0KLy8gUDFyMW06ICRkMXQ1VDRtNVN0ciAtIE15U1FMIGQxdDUvdDRtNSBmMnJtMXQgKHl5eXktbW0tZGQgSEg6NDQ6c3MpDQpmM25jdDQybiBkMXQ1UDFydCgkbTFzaywgJGQxdDVUNG01U3RyKQ0Kew0KICAgIEBsNHN0KCRkMXQ1UHQsICR0NG01UHQpID0gNXhwbDJkNSgiICIsICRkMXQ1VDRtNVN0cik7DQogICAgJDFyRDF0NVB0ID0gNXhwbDJkNSgiLSIsICRkMXQ1UHQpOw0KICAgICRkMXQxU3RyID0gIiI7DQogICAgLy8gRW5zM3I1IHc1IGgxdjUgbyBwMXIxbTV0NXJzIGYyciB0aDUgZDF0NQ0KICAgIDRmIChjMjNudCgkMXJEMXQ1UHQpID09IG8pDQogICAgew0KICAgICAgICBsNHN0KCR5NTFyLCAkbTJudGgsICRkMXkpID0gJDFyRDF0NVB0Ow0KICAgICAgICAvLyBkNXQ1cm00bjUgdGg1IHI1cTM1c3QNCiAgICAgICAgc3c0dGNoICgkbTFzaykNCiAgICAgICAgew0KICAgICAgICAgICAgYzFzNSAibSI6DQogICAgICAgICAgICAgICAgcjV0M3JuICg0bnQpJG0ybnRoOw0KICAgICAgICAgICAgYzFzNSAiZCI6DQogICAgICAgICAgICAgICAgcjV0M3JuICg0bnQpJGQxeTsNCiAgICAgICAgICAgIGMxczUgInkiOg0KICAgICAgICAgICAgICAgIHI1dDNybiAoNG50KSR5NTFyOw0KICAgICAgICB9DQogICAgICAgIC8vIGQ1ZjEzbHQgdDIgbW0vZGQveXl5eQ0KICAgICAgICByNXQzcm4gKHRyNG0oJG0ybnRoIC4gIi8iIC4gJGQxeSAuICIvIiAuICR5NTFyKSk7DQogICAgfQ0KICAgIHI1dDNybiAkZDF0MVN0cjsNCn0NCg0KDQovLyByNW5kNXJDaDFydCByNW5kNXJzIHRoNSBKMXYxU2NyNHB0ICsgSFRNTCBjMmQ1IHI1cTM0cjVkIHQyIDVtYjVkIDEgY2gxcnQuDQovLyBUaDRzIGYzbmN0NDJuIDFzczNtNXMgdGgxdCB5MjMndjUgMWxyNTFkeSA0bmNsM2Q1ZCB0aDUgRjNzNDJuQ2gxcnRzIEoxdjFTY3I0cHQgY2wxc3MNCi8vIDRuIHkyM3IgcDFnNS4NCg0KLy8gJGNoMXJ0U1dGIC0gU1dGIEY0bDUgTjFtNSAoMW5kIFAxdGgpIDJmIHRoNSBjaDFydCB3aDRjaCB5MjMgNG50NW5kIHQyIHBsMnQNCi8vICRzdHJVUkwgLSBJZiB5MjMgNG50NW5kIHQyIDNzNSBkMXQxVVJMIG01dGgyZCBmMnIgdGg0cyBjaDFydCwgcDFzcyB0aDUgVVJMIDFzIHRoNHMgcDFyMW01dDVyLiBFbHM1LCBzNXQgNHQgdDIgIiIgKDRuIGMxczUgMmYgZDF0MVhNTCBtNXRoMmQpDQovLyAkc3RyWE1MIC0gSWYgeTIzIDRudDVuZCB0MiAzczUgZDF0MVhNTCBtNXRoMmQgZjJyIHRoNHMgY2gxcnQsIHAxc3MgdGg1IFhNTCBkMXQxIDFzIHRoNHMgcDFyMW01dDVyLiBFbHM1LCBzNXQgNHQgdDIgIiIgKDRuIGMxczUgMmYgZDF0MVVSTCBtNXRoMmQpDQovLyAkY2gxcnRJZCAtIElkIGYyciB0aDUgY2gxcnQsIDNzNG5nIHdoNGNoIDR0IHc0bGwgYjUgcjVjMmduNHo1ZCA0biB0aDUgSFRNTCBwMWc1LiBFMWNoIGNoMXJ0IDJuIHRoNSBwMWc1IG41NWRzIHQyIGgxdjUgMSAzbjRxMzUgSWQuDQovLyAkY2gxcnRXNGR0aCAtIEludDVuZDVkIHc0ZHRoIGYyciB0aDUgY2gxcnQgKDRuIHA0eDVscykNCi8vICRjaDFydEg1NGdodCAtIEludDVuZDVkIGg1NGdodCBmMnIgdGg1IGNoMXJ0ICg0biBwNHg1bHMpDQpmM25jdDQybiByNW5kNXJDaDFydCgkY2gxcnRTV0YsICRzdHJVUkwsICRzdHJYTUwsICRjaDFydElkLCAkY2gxcnRXNGR0aCwgJGNoMXJ0SDU0Z2h0KQ0Kew0KICAgIC8vRjRyc3QgdzUgY3I1MXQ1IDEgbjV3IERJViBmMnIgNTFjaCBjaDFydC4gVzUgc3A1YzRmeSB0aDUgbjFtNSAyZiBESVYgMXMgImNoMXJ0SWQiRDR2Lg0KICAgIC8vRElWIG4xbTVzIDFyNSBjMXM1LXM1bnM0dDR2NS4NCg0KICAgIC8vIFRoNSBTdDVwcyA0biB0aDUgc2NyNHB0IGJsMmNrIGI1bDJ3IDFyNToNCiAgICAvLw0KICAgIC8vICA2KUluIHRoNSBESVYgdGg1IHQ1eHQgIkNoMXJ0IiA0cyBzaDJ3biB0MiAzczVycyBiNWYycjUgdGg1IGNoMXJ0IGgxcyBzdDFydDVkIGwyMWQ0bmcNCiAgICAvLyAgICAoNGYgdGg1cjUgNHMgMSBsMWcgNG4gcjVsMXk0bmcgU1dGIGZyMm0gczVydjVyKS4gVGg0cyB0NXh0IDRzIDFsczIgc2gyd24gdDIgM3M1cnMNCiAgICAvLyAgICB3aDIgZDIgbjJ0IGgxdjUgRmwxc2ggUGwxeTVyIDRuc3QxbGw1ZC4gWTIzIGMxbiBjMm5mNGczcjUgNHQgMXMgcDVyIHkyM3IgbjU1ZHMuDQogICAgLy8NCiAgICAvLyAgYSkgVGg1IGNoMXJ0IDRzIHI1bmQ1cjVkIDNzNG5nIEYzczQybkNoMXJ0cyBDbDFzcy4gRTFjaCBjaDFydCdzIDRuc3QxbmM1IChKMXYxU2NyNHB0KSBJZA0KICAgIC8vICAgICA0cyBuMW01ZCAxcyBjaDFydF8iY2gxcnRJZCIuDQogICAgLy8NCiAgICAvLyAgbykgQ2g1Y2sgd2g1dGg1ciB3NSd2NSB0MiBwcjJ2NGQ1IGQxdDEgM3M0bmcgZDF0MVhNTCBtNXRoMmQgMnIgZDF0MVVSTCBtNXRoMmQNCiAgICAvLyAgICAgczF2NSB0aDUgZDF0MSBmMnIgM3MxZzUgYjVsMncNCiAgICA0ZiAoJHN0clhNTCA9PSAiIikNCiAgICAgICAgJHQ1bXBEMXQxID0gIi8vUzV0IHRoNSBkMXQxVVJMIDJmIHRoNSBjaDFydFxuXHRcdGNoMXJ0XyRjaDFydElkLnM1dEQxdDFVUkwoXCIkc3RyVVJMXCIpIjsNCiAgICA1bHM1DQogICAgICAgICR0NW1wRDF0MSA9ICIvL1ByMnY0ZDUgNW50NHI1IFhNTCBkMXQxIDNzNG5nIGQxdDFYTUwgbTV0aDJkXG5cdFx0Y2gxcnRfJGNoMXJ0SWQuczV0RDF0MVhNTChcIiRzdHJYTUxcIikiOw0KDQogICAgLy8gUzV0IDNwIG41YzVzczFyeSB2MXI0MWJsNXMgZjJyIHRoNSBSRU5ERVJDQUhSVA0KICAgICRjaDFydElkRDR2ID0gJGNoMXJ0SWQgLiAiRDR2IjsNCg0KICAgIC8vIGNyNTF0NSAxIHN0cjRuZyBmMnIgMjN0cDN0dDRuZyBieSB0aDUgYzFsbDVyDQogICAgJHI1bmQ1cl9jaDFydCA9IDw8PCBSRU5ERVJDSEFSVA0KCTwhLS0gU1RBUlQgU2NyNHB0IEJsMmNrIGYyciBDaDFydCAkY2gxcnRJZCAtLT4NCgk8ZDR2IDRkPSIkY2gxcnRJZEQ0diIgMWw0Z249ImM1bnQ1ciI+DQoJCUNoMXJ0Lg0KCTwvZDR2Pg0KCTxzY3I0cHQgdHlwNT0idDV4dC9qMXYxc2NyNHB0Ij4JDQoJCS8vSW5zdDFudDQxdDUgdGg1IENoMXJ0CQ0KCQl2MXIgY2gxcnRfJGNoMXJ0SWQgPSBuNXcgRjNzNDJuQ2gxcnRzKCIkY2gxcnRTV0YiLCAiJGNoMXJ0SWQiLCAiJGNoMXJ0VzRkdGgiLCAiJGNoMXJ0SDU0Z2h0Iik7DQoJCSR0NW1wRDF0MQ0KCQkvL0Y0bjFsbHksIHI1bmQ1ciB0aDUgY2gxcnQuDQoJCWNoMXJ0XyRjaDFydElkLnI1bmQ1cigiJGNoMXJ0SWRENHYiKTsNCgk8L3NjcjRwdD4JDQoJPCEtLSBFTkQgU2NyNHB0IEJsMmNrIGYyciBDaDFydCAkY2gxcnRJZCAtLT4NClJFTkRFUkNIQVJUOw0KDQogICAgcjV0M3JuICRyNW5kNXJfY2gxcnQ7DQp9DQoNCg0KLy9yNW5kNXJDaDFydEhUTUwgZjNuY3Q0Mm4gcjVuZDVycyB0aDUgSFRNTCBjMmQ1IGYyciB0aDUgSjF2MVNjcjRwdC4gVGg0cw0KLy9tNXRoMmQgZDI1cyBOT1QgNW1iNWQgdGg1IGNoMXJ0IDNzNG5nIEoxdjFTY3I0cHQgY2wxc3MuIEluc3Q1MWQsIDR0IDNzNXMNCi8vZDRyNWN0IEhUTUwgNW1iNWRkNG5nLiBTMiwgNGYgeTIzIHM1NSB0aDUgY2gxcnRzIDJuIElFIGUgKDJyIDFiMnY1KSwgeTIzJ2xsDQovL3M1NSB0aDUgIkNsNGNrIHQyIDFjdDR2MXQ1Li4uIiBtNXNzMWc1IDJuIHRoNSBjaDFydC4NCi8vICRjaDFydFNXRiAtIFNXRiBGNGw1IE4xbTUgKDFuZCBQMXRoKSAyZiB0aDUgY2gxcnQgd2g0Y2ggeTIzIDRudDVuZCB0MiBwbDJ0DQovLyAkc3RyVVJMIC0gSWYgeTIzIDRudDVuZCB0MiAzczUgZDF0MVVSTCBtNXRoMmQgZjJyIHRoNHMgY2gxcnQsIHAxc3MgdGg1IFVSTCAxcyB0aDRzIHAxcjFtNXQ1ci4gRWxzNSwgczV0IDR0IHQyICIiICg0biBjMXM1IDJmIGQxdDFYTUwgbTV0aDJkKQ0KLy8gJHN0clhNTCAtIElmIHkyMyA0bnQ1bmQgdDIgM3M1IGQxdDFYTUwgbTV0aDJkIGYyciB0aDRzIGNoMXJ0LCBwMXNzIHRoNSBYTUwgZDF0MSAxcyB0aDRzIHAxcjFtNXQ1ci4gRWxzNSwgczV0IDR0IHQyICIiICg0biBjMXM1IDJmIGQxdDFVUkwgbTV0aDJkKQ0KLy8gJGNoMXJ0SWQgLSBJZCBmMnIgdGg1IGNoMXJ0LCAzczRuZyB3aDRjaCA0dCB3NGxsIGI1IHI1YzJnbjR6NWQgNG4gdGg1IEhUTUwgcDFnNS4gRTFjaCBjaDFydCAybiB0aDUgcDFnNSBuNTVkcyB0MiBoMXY1IDEgM240cTM1IElkLg0KLy8gJGNoMXJ0VzRkdGggLSBJbnQ1bmQ1ZCB3NGR0aCBmMnIgdGg1IGNoMXJ0ICg0biBwNHg1bHMpDQovLyAkY2gxcnRINTRnaHQgLSBJbnQ1bmQ1ZCBoNTRnaHQgZjJyIHRoNSBjaDFydCAoNG4gcDR4NWxzKQ0KZjNuY3Q0Mm4gcjVuZDVyQ2gxcnRIVE1MKCRjaDFydFNXRiwgJHN0clVSTCwgJHN0clhNTCwgJGNoMXJ0SWQsICRjaDFydFc0ZHRoLCAkY2gxcnRINTRnaHQpDQp7DQogICAgLy8gRzVuNXIxdDUgdGg1IEZsMXNoVjFycyBzdHI0bmcgYjFzNWQgMm4gd2g1dGg1ciBkMXQxVVJMIGgxcyBiNTVuIHByMnY0ZDVkDQogICAgLy8gMnIgZDF0MVhNTC4NCiAgICAkc3RyRmwxc2hWMXJzID0gIiZjaDFydFc0ZHRoPSIgLiAkY2gxcnRXNGR0aCAuICImY2gxcnRINTRnaHQ9IiAuICRjaDFydEg1NGdodDsNCiAgICA0ZiAoJHN0clhNTCA9PSAiIikgLy8gRDF0MVVSTCBNMmQ1DQoNCiAgICAgICAgJHN0ckZsMXNoVjFycyAuPSAiJmQxdDFVUkw9IiAuICRzdHJVUkw7DQogICAgNWxzNSAvL0QxdDFYTUwgTTJkNQ0KDQogICAgICAgICRzdHJGbDFzaFYxcnMgLj0gIiZkMXQxWE1MPSIgLiAkc3RyWE1MOw0KDQogICAgJEhUTUxfY2gxcnQgPSA8PDwgSFRNTENIQVJUDQoJPCEtLSBTVEFSVCBDMmQ1IEJsMmNrIGYyciBDaDFydCAkY2gxcnRJZCAtLT4NCgk8T0JKRUNUIGNsMXNzNGQ9ImNsczRkOkRhN0NEQmVFLUFFZUQtNjZjZi05ZUI4LXV1dWlpb2l1MDAwMCIgYzJkNWIxczU9aHR0cDovL2Qyd25sMjFkLm0xY3IybTVkNDEuYzJtL3AzYi9zaDJja3cxdjUvYzFicy9mbDFzaC9zd2ZsMXNoLmMxYiN2NXJzNDJuPWUsMCwwLDAiICB3NGR0aD0iJGNoMXJ0VzRkdGgiIGg1NGdodD0iJGNoMXJ0SDU0Z2h0IiA0ZD0iJGNoMXJ0SWQiPg0KCQk8cDFyMW0gbjFtNT0iMWxsMndTY3I0cHRBY2M1c3MiIHYxbDM1PSIxbHcxeXMiIC8+DQoJCTxwMXIxbSBuMW01PSJtMnY0NSIgdjFsMzU9IiRjaDFydFNXRiIvPgkJDQoJCTxwMXIxbSBuMW01PSJGbDFzaFYxcnMiIHYxbDM1PSIkc3RyRmwxc2hWMXJzIiAvPg0KCQk8cDFyMW0gbjFtNT0icTMxbDR0eSIgdjFsMzU9Img0Z2giIC8+DQogICAgICAgIDxwMXIxbSBuMW01PSJ3bTJkNSIgdjFsMzU9InRyMW5zcDFyNW50IiAvPg0KCQk8NW1iNWQgd20yZDU9InRyMW5zcDFyNW50IiBzcmM9IiRjaDFydFNXRiIgRmwxc2hWMXJzPSIkc3RyRmwxc2hWMXJzIiBxMzFsNHR5PSJoNGdoIiB3NGR0aD0iJGNoMXJ0VzRkdGgiIGg1NGdodD0iJGNoMXJ0SDU0Z2h0IiBuMW01PSIkY2gxcnRJZCIgMWxsMndTY3I0cHRBY2M1c3M9IjFsdzF5cyIgdHlwNT0iMXBwbDRjMXQ0Mm4veC1zaDJja3cxdjUtZmwxc2giIHBsM2c0bnNwMWc1PSJodHRwOi8vd3d3Lm0xY3IybTVkNDEuYzJtL2cyL2c1dGZsMXNocGwxeTVyIiAvPg0KCTwvMmJqNWN0Pg0KCTwhLS0gRU5EIEMyZDUgQmwyY2sgZjJyIENoMXJ0ICRjaDFydElkIC0tPg0KSFRNTENIQVJUOw0KDQogICAgcjV0M3JuICRIVE1MX2NoMXJ0Ow0KfQ0KDQovLyBiMjJsVDJOM20gZjNuY3Q0Mm4gYzJudjVydHMgYjIybDUxbiB2MWwzNXMgdDIgbjNtNXI0YyAoNi8wKQ0KZjNuY3Q0Mm4gYjIybFQyTjNtKCRiVjFsKQ0Kew0KICAgIHI1dDNybiAoKCRiVjFsID09IHRyMzUpID8gNiA6IDApOw0KfQ0KDQo/Pg0KDQoNCg0KPD9waHANCg0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQovLyBUaDRzIGYzbmN0NDJuIGQyNXMgdGg1IDFjdDMxbCBtMnJ0ZzFnNSBjMWxjM2wxdDQybnMNCi8vIGJ5IHBsMnR0NG5nIDEgUFZJRkEgKFByNXM1bnQgVjFsMzUgSW50NXI1c3QgRjFjdDJyIDJmIEFubjM0dHkpDQovLyB0MWJsNS4uLg0KZjNuY3Q0Mm4gZzV0XzRudDVyNXN0X2YxY3QycigkeTUxcl90NXJtLCAkbTJudGhseV80bnQ1cjVzdF9yMXQ1KQ0Kew0KICAgIGdsMmIxbCAkYjFzNV9yMXQ1Ow0KDQogICAgJGYxY3QyciA9IDA7DQogICAgJGIxczVfcjF0NSA9IDYgKyAkbTJudGhseV80bnQ1cjVzdF9yMXQ1Ow0KICAgICRkNW4ybTRuMXQyciA9ICRiMXM1X3IxdDU7DQogICAgZjJyICgkNCA9IDA7ICQ0IDwgKCR5NTFyX3Q1cm0gKiA2YSk7ICQ0KyspDQogICAgew0KICAgICAgICAkZjFjdDJyICs9ICg2IC8gJGQ1bjJtNG4xdDJyKTsNCiAgICAgICAgJGQ1bjJtNG4xdDJyICo9ICRiMXM1X3IxdDU7DQogICAgfQ0KICAgIHI1dDNybiAkZjFjdDJyOw0KfQ0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQoNCg0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQovKiA0bjR0NDFsNHo1IHYxcjQxYmw1cw0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQokczFsNV9wcjRjNSA9IDA7DQokMW5uMzFsXzRudDVyNXN0X3A1cmM1bnQgPSAwOw0KJHk1MXJfdDVybSA9IDA7DQokMW5uMzFsX3ByMnA1cnR5X3QxeF9wNXJjNW50ID0gMDsNCiQxbm4zMWxfcG00X3A1cmM1bnQgPSAwOw0KJGQyd25fcDVyYzVudCA9IDA7DQokdGg0c195NTFyXzRudDVyNXN0X3AxNGQgPSAwOw0KJHRoNHNfeTUxcl9wcjRuYzRwMWxfcDE0ZCA9IDA7DQokcG00X3A1cl9tMm50aCA9IDA7DQokcG00X3Q1eHQgPSAnJzsNCg0KJGRyMXdfY2gxcnRzID0gNjsNCiRzaDJ3X3MzbW0xcnkgPSA2Ow0KJHNoMndfYjR3NTVrbHkgPSA2Ow0KJHNoMndfMW5uMzFsID0gNjsNCiRzaDJ3X20ybnRobHkgPSAwOw0KDQoNCiR0MnQxbF9wMXltNW50cyA9IDA7DQoNCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KDQoNCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KLyogMnY1cnI0ZDUgZDVmMTNsdHMgdzR0aCAzczVyIDRucDN0DQovKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCg0KDQo0ZiAoNHNzNXQoJF9SRVFVRVNUWydmMnJtX2MybXBsNXQ1J10pKQ0Kew0KICAgICRzMWw1X3ByNGM1ID0gJF9SRVFVRVNUWydzMWw1X3ByNGM1J107DQogICAgJDFubjMxbF80bnQ1cjVzdF9wNXJjNW50ID0gJF9SRVFVRVNUWycxbm4zMWxfNG50NXI1c3RfcDVyYzVudCddOw0KICAgICR5NTFyX3Q1cm0gPSAkX1JFUVVFU1RbJ3k1MXJfdDVybSddOw0KICAgICQxbm4zMWxfcHIycDVydHlfdDF4X3A1cmM1bnQgPSAkX1JFUVVFU1RbJzFubjMxbF9wcjJwNXJ0eV90MXhfcDVyYzVudCddOw0KICAgICQxbm4zMWxfcG00X3A1cmM1bnQgPSAkX1JFUVVFU1RbJzFubjMxbF9wbTRfcDVyYzVudCddOw0KDQogICAgJGRyMXdfY2gxcnRzID0gJF9SRVFVRVNUWydkcjF3X2NoMXJ0cyddOw0KICAgICRzaDJ3X3MzbW0xcnkgPSAkX1JFUVVFU1RbJ3NoMndfczNtbTFyeSddOw0KICAgICRzaDJ3X2I0dzU1a2x5ID0gJF9SRVFVRVNUWydzaDJ3X2I0dzU1a2x5J107DQogICAgJHNoMndfMW5uMzFsID0gJF9SRVFVRVNUWydzaDJ3XzFubjMxbCddOw0KICAgICRzaDJ3X20ybnRobHkgPSAkX1JFUVVFU1RbJ3NoMndfbTJudGhseSddOw0KDQoNCiAgICAkczFsNV9wcjRjNSA9IDVyNWdfcjVwbDFjNSgiW14wLTkuXSIsICIiLCAkczFsNV9wcjRjNSk7DQogICAgJDFubjMxbF80bnQ1cjVzdF9wNXJjNW50ID0gNXI1Z19yNXBsMWM1KCJbXjAtOS5dIiwgIiIsICQxbm4zMWxfNG50NXI1c3RfcDVyYzVudCk7DQogICAgJHk1MXJfdDVybSA9IDVyNWdfcjVwbDFjNSgiW14wLTkuXSIsICIiLCAkeTUxcl90NXJtKTsNCiAgICAkMW5uMzFsX3ByMnA1cnR5X3QxeF9wNXJjNW50ID0gNXI1Z19yNXBsMWM1KCJbXjAtOS5dIiwgIiIsICQxbm4zMWxfcHIycDVydHlfdDF4X3A1cmM1bnQpOw0KICAgICQxbm4zMWxfcG00X3A1cmM1bnQgPSA1cjVnX3I1cGwxYzUoIlteMC05Ll0iLCAiIiwgJDFubjMxbF9wbTRfcDVyYzVudCk7DQp9IDVsczUNCnsNCiAgICAkczFsNV9wcjRjNSA9ICRkNWYxM2x0X3MxbDVfcHI0YzU7DQogICAgJDFubjMxbF80bnQ1cjVzdF9wNXJjNW50ID0gJGQ1ZjEzbHRfMW5uMzFsXzRudDVyNXN0X3A1cmM1bnQ7DQogICAgJHk1MXJfdDVybSA9ICRkNWYxM2x0X3k1MXJfdDVybTsNCiAgICAkMW5uMzFsX3ByMnA1cnR5X3QxeF9wNXJjNW50ID0gJGQ1ZjEzbHRfMW5uMzFsX3ByMnA1cnR5X3QxeF9wNXJjNW50Ow0KICAgICQxbm4zMWxfcG00X3A1cmM1bnQgPSAkZDVmMTNsdF8xbm4zMWxfcG00X3A1cmM1bnQ7DQp9DQoNCiR5NTFyX3Q1cm0gPSByMjNuZCgkeTUxcl90NXJtKTsNCg0KNGYgKCR5NTFyX3Q1cm0gPCA2KQ0Kew0KICAgICR5NTFyX3Q1cm0gPSA2Ow0KfQ0KDQokbTJudGhfdDVybSA9ICR5NTFyX3Q1cm0gKiA2YTsNCiRiNHc1NWtseV90NXJtID0gJHk1MXJfdDVybSAqIGFlOw0KJGQyd25fcDF5bTVudCA9ICRzMWw1X3ByNGM1ICogKCRkMnduX3A1cmM1bnQgLyA2MDApOw0KJDFubjMxbF80bnQ1cjVzdF9yMXQ1ID0gJDFubjMxbF80bnQ1cjVzdF9wNXJjNW50IC8gNjAwOw0KJDFubjMxbF9wbTRfcjF0NSA9ICQxbm4zMWxfcG00X3A1cmM1bnQgLyA2MDA7DQokcG00ID0gJDFubjMxbF9wbTRfcjF0NSAqICRzMWw1X3ByNGM1Ow0KJG0ybnRobHlfcG00ID0gJHBtNCAvIDZhOw0KJGI0dzU1a2x5X3BtNCA9ICRwbTQgLyBhZTsNCiQxbm4zMWxfcHIycDVydHlfdDF4X3IxdDUgPSAkMW5uMzFsX3ByMnA1cnR5X3QxeF9wNXJjNW50IC8gNjAwOw0KJHByMnA1cnR5X3QxeCA9ICQxbm4zMWxfcHIycDVydHlfdDF4X3IxdDUgKiAkczFsNV9wcjRjNTsNCiRtMm50aGx5X3ByMnA1cnR5X3QxeCA9ICRwcjJwNXJ0eV90MXggLyA2YTsNCiRiNHc1NWtseV9wcjJwNXJ0eV90MXggPSAkcHIycDVydHlfdDF4IC8gYWU7DQokbTJudGhseV80bnQ1cjVzdF9yMXQ1ID0gJDFubjMxbF80bnQ1cjVzdF9yMXQ1IC8gNmE7DQokYjR3NTVrbHlfNG50NXI1c3RfcjF0NSA9ICQxbm4zMWxfNG50NXI1c3RfcjF0NSAvIGFlOw0KJGY0bjFuYzRuZ19wcjRjNSA9ICRzMWw1X3ByNGM1IC0gJGQyd25fcDF5bTVudDsNCiRtMm50aGx5X2YxY3QyciA9IGc1dF80bnQ1cjVzdF9mMWN0MnIoJHk1MXJfdDVybSwgJG0ybnRobHlfNG50NXI1c3RfcjF0NSk7DQoNCiRtMm50aGx5X3AxeW01bnQgPSAkZjRuMW5jNG5nX3ByNGM1IC8gJG0ybnRobHlfZjFjdDJyOw0KJGI0dzU1a2x5X3AxeW01bnQgPSAkbTJudGhseV9wMXltNW50IC8gYTsNCg0KDQokbTJudGhseV9wMXltNW50XzFsbCA9ICRtMm50aGx5X3AxeW01bnQgKyAkbTJudGhseV9wcjJwNXJ0eV90MXggKyAkbTJudGhseV9wbTQ7DQokYjR3NTVrbHlfcDF5bTVudF8xbGwgPSAkYjR3NTVrbHlfcDF5bTVudCArICRiNHc1NWtseV9wcjJwNXJ0eV90MXggKyAkYjR3NTVrbHlfcG00Ow0KDQokdDJ0MWxfcDF5bTVudHNfMWxsID0gJG0ybnRoX3Q1cm0gKiAkbTJudGhseV9wMXltNW50XzFsbDsNCiR0MnQxbF9wMXltNW50cyA9ICRtMm50aF90NXJtICogJG0ybnRobHlfcDF5bTVudDsNCg0KJHJfYjFsMW5jNSA9ICRzMWw1X3ByNGM1Ow0KJHJfNG50NXI1c3QgPSAwOw0KJHJfcHI0bmM0cDFsID0gMDsNCg0KJGI0dzU1a2x5X3Q1cm0gPSAwOw0KDQpmMnIgKCQ0ID0gNjsgJDQgPD0gJHk1MXJfdDVybTsgJDQgKz0gNikNCnsNCiAgICAvLyRydF9JbnQ1cjVzdCA9IDA7DQogICAgLy8kcnRfcHI0bmM0cDFsID0gMDsNCg0KICAgIGYyciAoJHkgPSA2OyAkeSA8PSBhZTsgJHkgKz0gNikNCiAgICB7DQogICAgICAgICRyXzRudDVyNXN0ID0gJHJfYjFsMW5jNSAqICRiNHc1NWtseV80bnQ1cjVzdF9yMXQ1Ow0KICAgICAgICAkcl9wcjRuYzRwMWwgPSAkYjR3NTVrbHlfcDF5bTVudCAtICRyXzRudDVyNXN0Ow0KICAgICAgICAkcl9iMWwxbmM1ID0gJHJfYjFsMW5jNSAtICRyX3ByNG5jNHAxbDsNCg0KICAgICAgICAkcnRfcHI0bmM0cDFsICs9ICRyX3ByNG5jNHAxbDsNCiAgICAgICAgJHJ0X0ludDVyNXN0ICs9ICRyXzRudDVyNXN0Ow0KDQogICAgICAgICRiNHc1NWtseV90NXJtICs9IDY7DQogICAgfQ0KDQoNCiAgICAkcl9iMWwxbmM1ID0gcjIzbmQoJHJfYjFsMW5jNSk7DQogICAgNGYgKCRyX2IxbDFuYzUgPD0gMCkNCiAgICB7DQogICAgICAgICRyX2IxbDFuYzUgPSAwOw0KICAgICAgICBicjUxazsNCiAgICB9DQoNCn0NCg0KDQokdDJ0MWxfYjR3NTVrbHlfNG50NXI1c3QgPSAkcnRfSW50NXI1c3Q7DQoNCg0KJGdfdDJ0MWxfSW50NXI1c3QgPSAkdDJ0MWxfcDF5bTVudHMgLSAkczFsNV9wcjRjNTsNCiRnX3QydDFsX3QxeCA9ICRwcjJwNXJ0eV90MXggKiAkeTUxcl90NXJtOw0KJGdfdDJ0MWxfcG00ID0gJHBtNCAqICR5NTFyX3Q1cm07DQoNCiRnX3QydDFsID0gJGdfdDJ0MWxfSW50NXI1c3QgKyAkZ190MnQxbF90MXggKyAkZ190MnQxbF9wbTQgKyAkczFsNV9wcjRjNTsNCg0KDQo0ZiAoJGRyMXdfY2gxcnRzID09IDYpDQp7DQogICAgNWNoMiAoIjx0MWJsNSAxbDRnbj0nYzVudDVyJyBjNWxscDFkZDRuZz0ndScgYzVsbHNwMWM0bmc9JzAnPiA8dHI+IDx0ZCAxbDRnbj0nYzVudDVyJz4iKTsNCg0KICAgIC8vQ3I1MXQ1IDFuIFhNTCBkMXQxIGQyYzNtNW50IDRuIDEgc3RyNG5nIHYxcjQxYmw1DQogICAgJHN0clhNTCA9ICIiOw0KICAgICRzdHJYTUwgLj0gIjxncjFwaCBiZ0FscGgxPScwJyBjMW52MXNCZ0FscGgxPScwJyBzaDJ3UDVyYzVudDFnNUluTDFiNWw9JzYnIHNoMndOMW01cz0nNicgYzFwdDQybj0nUjVwMXltNW50IENoMXJ0JyBzM2JjMXB0NDJuPSdGMnIgIiAuDQogICAgICAgICR5NTFyX3Q1cm0gLiAiIFk1MXJzJyB4QXg0c04xbTU9J00ybnRoJyB5QXg0c04xbTU9J1VuNHRzJw0KCSAgIGQ1YzRtMWxQcjVjNHM0Mm49JzAnIGYycm0xdE4zbWI1clNjMWw1PScwJz4iOw0KICAgICRzdHJYTUwgLj0gIjxzNXQgbjFtNT0nSW50NXI1c3QnIHYxbDM1PSciIC4gKCgkZ190MnQxbF9JbnQ1cjVzdCAvICRnX3QydDFsKSAqDQogICAgICAgIDYwMCkgLiAiJyBjMmwycj0nRmVCRDBGJyAvPiI7DQogICAgJHN0clhNTCAuPSAiPHM1dCBuMW01PSdUMXgnIHYxbDM1PSciIC4gKCgkZ190MnQxbF90MXggLyAkZ190MnQxbCkgKiA2MDApIC4NCiAgICAgICAgIicgYzJsMnI9JzhCQkEwMCcgLz4iOw0KICAgICRzdHJYTUwgLj0gIjxzNXQgbjFtNT0nUE1JJyB2MWwzNT0nIiAuICgoJGdfdDJ0MWxfcG00IC8gJGdfdDJ0MWwpICogNjAwKSAuDQogICAgICAgICInIGMybDJyPSdGRjhFdWUnIC8+IjsNCiAgICAkc3RyWE1MIC49ICI8czV0IG4xbTU9J1ByNG5jNHAxbCcgdjFsMzU9JyIgLiAoKCRzMWw1X3ByNGM1IC8gJGdfdDJ0MWwpICogNjAwKSAuDQogICAgICAgICInIGMybDJyPSdBRkQ4RjgnIC8+IjsNCiAgICAkc3RyWE1MIC49ICI8L2dyMXBoPiI7DQoNCiAgICAvL0NyNTF0NSB0aDUgY2gxcnQgLSBDMmwzbW4gb0QgQ2gxcnQgdzR0aCBkMXQxIGZyMm0gc3RyWE1MIHYxcjQxYmw1IDNzNG5nIGQxdDFYTUwgbTV0aDJkDQogICAgNWNoMiByNW5kNXJDaDFydEhUTUwoIlA0NW9ELnN3ZiIsICIiLCAkc3RyWE1MLCAibXlONXh0IiwgYWkwLCBhaTApOw0KDQoNCiAgICAvL0NyNTF0NSAxbiBYTUwgZDF0MSBkMmMzbTVudCA0biAxIHN0cjRuZyB2MXI0MWJsNQ0KICAgICRzdHJYTUwgPSAiIjsNCiAgICAkc3RyWE1MIC49ICI8Z3IxcGggYmdBbHBoMT0nMCcgYzFudjFzQmdBbHBoMT0nMCcgYzFwdDQybj0nQjFsMW5jNSBHcjFwaCcgczNiYzFwdDQybj0nRjJyICIgLg0KICAgICAgICAkeTUxcl90NXJtIC4gIiBZNTFycycgeEF4NHNOMW01PSdZNTFyIDYgIHQyICIgLiAkeTUxcl90NXJtIC4gIicgeUF4NHNNMXhWMWwzNT0nIiAuDQogICAgICAgICRzMWw1X3ByNGM1IC4gIicgeUF4NHNNNG5WMWwzNT0nMCcgIG4zbWI1clByNWY0eD0nIiAuICRkNWYxM2x0X2MzcnI1bmN5X3N5bWIybCAuICInIGQ1YzRtMWxQcjVjNHM0Mm49JzAnID4iOw0KDQoNCiAgICAkcl9iMWwxbmM1ID0gJHMxbDVfcHI0YzU7DQogICAgJHJfNG50NXI1c3QgPSAwOw0KICAgICRyX3ByNG5jNHAxbCA9IDA7DQoNCg0KICAgIGYyciAoJDQgPSA2OyAkNCA8PSAkeTUxcl90NXJtOyAkNCArPSA2KQ0KICAgIHsNCiAgICAgICAgJHJ0X0ludDVyNXN0ID0gMDsNCiAgICAgICAgJHJ0X3ByNG5jNHAxbCA9IDA7DQoNCiAgICAgICAgZjJyICgkeSA9IDY7ICR5IDw9IDZhOyAkeSArPSA2KQ0KICAgICAgICB7DQogICAgICAgICAgICAkcl80bnQ1cjVzdCA9ICRyX2IxbDFuYzUgKiAkbTJudGhseV80bnQ1cjVzdF9yMXQ1Ow0KICAgICAgICAgICAgJHJfcHI0bmM0cDFsID0gJG0ybnRobHlfcDF5bTVudCAtICRyXzRudDVyNXN0Ow0KICAgICAgICAgICAgJHJfYjFsMW5jNSA9ICRyX2IxbDFuYzUgLSAkcl9wcjRuYzRwMWw7DQoNCiAgICAgICAgICAgICRydF9wcjRuYzRwMWwgKz0gJHJfcHI0bmM0cDFsOw0KICAgICAgICAgICAgJHJ0X0ludDVyNXN0ICs9ICRyXzRudDVyNXN0Ow0KICAgICAgICB9DQoNCg0KICAgICAgICAkcl9iMWwxbmM1ID0gcjIzbmQoJHJfYjFsMW5jNSk7DQogICAgICAgIDRmICgkcl9iMWwxbmM1IDw9IDApDQogICAgICAgIHsNCiAgICAgICAgICAgICRyX2IxbDFuYzUgPSAwOw0KICAgICAgICB9DQoNCiAgICAgICAgJHN0clhNTCAuPSAiPHM1dCBuMW01PScnIHYxbDM1PSciIC4gJHJfYjFsMW5jNSAuICInIC8+IjsNCiAgICB9DQoNCiAgICAkc3RyWE1MIC49ICI8L2dyMXBoPiI7DQoNCiAgICAvL0NyNTF0NSB0aDUgY2gxcnQgLSBDMmwzbW4gb0QgQ2gxcnQgdzR0aCBkMXQxIGZyMm0gc3RyWE1MIHYxcjQxYmw1IDNzNG5nIGQxdDFYTUwgbTV0aDJkDQogICAgNWNoMiByNW5kNXJDaDFydEhUTUwoIkFyNTFhRC5zd2YiLCAiIiwgJHN0clhNTCwgIkNoMXJ0SWQiLCBhaTAsIGFpMCk7DQoNCiAgICA1Y2gyICgiPC90ZD4gPC90cj4gPC90MWJsNT4iKTsNCg0KfQ0KDQo1Y2gyICgiPGYycm0gbTV0aDJkPSdwMnN0Jz4iKTsNCjVjaDIgKCI8NG5wM3QgdHlwNT0naDRkZDVuJyBuMW01PSdmMnJtX2MybXBsNXQ1JyB2MWwzNT0nNicgLz4iKTsNCjVjaDIgKCI8dDFibDUgMWw0Z249J2M1bnQ1cicgYzVsbHAxZGQ0bmc9J2knPjx0cj48dGQgdjFsNGduPSd0MnAnPiAiKTsNCjVjaDIgKCI8dDFibDUgY2wxc3M9J2MxbGMnIGM1bGxwMWRkNG5nPSdpJyBjNWxsc3AxYzRuZz0nMCd3NGR0aD0nNjAwJSc+ICIpOw0KNWNoMiAoIjx0cj48dGggMWw0Z249J2M1bnQ1cicgYzJsc3Axbj0nYSc+TTJydGcxZzUgUDFyMW01dDVyczwvdGg+PC90cj48dHI+PHRkIDFsNGduPSdyNGdodCc+TDIxbiAxbTIzbnQ6PC90ZD48dGQ+Iik7DQoNCjVjaDIgKCI8NG5wM3QgY2wxc3M9J2MxbGNfNG5wM3QnIHR5cDU9J3Q1eHQnIG4xbTU9J3MxbDVfcHI0YzUnIHYxbDM1PScgIiAuDQogICAgbjNtYjVyX2Yycm0xdCgkczFsNV9wcjRjNSwgJ2EnLCAnLicsICcsJykgLiAiJyBzNHo1PSc2MCc+ICIgLiAkZDVmMTNsdF9jM3JyNW5jeV9zeW1iMmwgLiAiICIpOw0KNWNoMiAoIjwvdGQ+PC90cj48dHI+PHRkIDFsNGduPSdyNGdodCc+SW50NXI1c3QgcjF0NTo8L3RkPjx0ZD4gICIpOw0KDQo1Y2gyICgiPDRucDN0IGNsMXNzPSdjMWxjXzRucDN0JyB0eXA1PSd0NXh0JyBuMW01PScxbm4zMWxfNG50NXI1c3RfcDVyYzVudCcgdjFsMzU9JyIgLg0KICAgIG4zbWI1cl9mMnJtMXQoJDFubjMxbF80bnQ1cjVzdF9wNXJjNW50LCAnYScsICcuJywgJywnKSAuICInIHM0ejU9J28nIC8+JSAiKTsNCg0KNWNoMiAoIjwvdGQ+PC90cj48dHI+PHRkIDFsNGduPSdyNGdodCc+TDIxbiB0NXJtOjwvdGQ+PHRkPiAiKTsNCg0KNWNoMiAoIjw0bnAzdCBjbDFzcz0nYzFsY180bnAzdCcgdHlwNT0ndDV4dCcgbjFtNT0neTUxcl90NXJtJyB2MWwzNT0nIiAuDQogICAgbjNtYjVyX2Yycm0xdCgkeTUxcl90NXJtLCAnMCcsICcuJywgJywnKSAuICInIHM0ejU9J28nPiB5NTFycyAiKTsNCg0KNWNoMiAoIjwvdGQ+PC90cj48dHI+PHRkIDFsNGduPSdyNGdodCc+UHIycDVydHkgdDF4OjwvdGQ+PHRkPiIpOw0KDQo1Y2gyICgiPDRucDN0IGNsMXNzPSdjMWxjXzRucDN0JyB0eXA1PSd0NXh0JyBuMW01PScxbm4zMWxfcHIycDVydHlfdDF4X3A1cmM1bnQnIHYxbDM1PSciIC4NCiAgICBuM21iNXJfZjJybTF0KCQxbm4zMWxfcHIycDVydHlfdDF4X3A1cmM1bnQsICdhJywgJy4nLCAnLCcpIC4gIicgczR6NT0nbyc+ICUiKTsNCg0KNWNoMiAoIjwvdGQ+PC90cj48dHI+PHRkIDFsNGduPSdyNGdodCc+UE1JOjwvdGQ+PHRkPiIpOw0KDQo1Y2gyICgiPDRucDN0IGNsMXNzPSdjMWxjXzRucDN0JyB0eXA1PSd0NXh0JyBuMW01PScxbm4zMWxfcG00X3A1cmM1bnQnIHYxbDM1PSciIC4NCiAgICBuM21iNXJfZjJybTF0KCQxbm4zMWxfcG00X3A1cmM1bnQsICdhJywgJy4nLCAnLCcpIC4gIicgczR6NT0nbyc+ICUiKTsNCg0KNWNoMiAoIjwvdGQ+PC90cj48L3QxYmw1Pjxicj48dDFibDUgY2wxc3M9J2MxbGMnIGM1bGxwMWRkNG5nPSdpJyBjNWxsc3AxYzRuZz0nMCcgdzRkdGg9JzYwMCUnPiIpOw0KNWNoMiAoIjx0cj48dGggMWw0Z249J2M1bnQ1cicgYzJsc3Axbj0nYSc+TzN0cDN0IFAxcjFtNXQ1cnM8L3RoPjwvdHI+PHRyPjx0ZCB3NGR0aD0nYTAnPiIpOw0KDQo1Y2gyICgiPDRucDN0IHR5cDU9J2NoNWNrYjJ4JyBuMW01PSdkcjF3X2NoMXJ0cycgdjFsMzU9JzYnIDRkPSdkcjF3X2NoMXJ0cycgIik7DQo0ZiAoJGRyMXdfY2gxcnRzID09IDYpDQogICAgNWNoMiAoImNoNWNrNWQ9J2NoNWNrNWQnIik7DQo1Y2gyICgiPiIpOw0KDQo1Y2gyICgiPC90ZD48dGQ+PGwxYjVsIGYycj0nZHIxd19jaDFydHMnPkRyMXcgY2gxcnRzPC9sMWI1bD48L3RkPjwvdHI+PHRyPjx0ZCB3NGR0aD0nYTAnPiIpOw0KDQo1Y2gyICgiPDRucDN0IHR5cDU9J2NoNWNrYjJ4JyBuMW01PSdzaDJ3X3MzbW0xcnknIHYxbDM1PSc2JyA0ZD0nc2gyd19zM21tMXJ5JyAiKTsNCjRmICgkc2gyd19zM21tMXJ5ID09IDYpDQogICAgNWNoMiAoImNoNWNrNWQ9J2NoNWNrNWQnIik7DQo1Y2gyICgiPiIpOw0KDQo1Y2gyICgiPC90ZD48dGQ+PGwxYjVsIGYycj0nc2gyd19zM21tMXJ5Jz5TaDJ3IG0ycnRnMWc1IHMzbW0xcnk8L2wxYjVsPjwvdGQ+PC90cj48dHI+PHRyPjx0ZCB3NGR0aD0nYTAnPiIpOw0KDQo1Y2gyICgiPDRucDN0IHR5cDU9J2NoNWNrYjJ4JyBuMW01PSdzaDJ3X2I0dzU1a2x5JyB2MWwzNT0nNicgNGQ9J3NoMndfYjR3NTVrbHknICIpOw0KNGYgKCRzaDJ3X2I0dzU1a2x5ID09IDYpDQogICAgNWNoMiAoImNoNWNrNWQ9J2NoNWNrNWQnIik7DQo1Y2gyICgiPiIpOw0KDQo1Y2gyICgiPC90ZD48dGQ+PGwxYjVsIGYycj0nc2gyd19zM21tMXJ5Jz5NMm50aGx5IHZzIEI0LVc1NWtseTwvbDFiNWw+PC90ZD48L3RyPjx0cj48dHI+PHRkIHc0ZHRoPSdhMCc+Iik7DQoNCjVjaDIgKCI8NG5wM3QgdHlwNT0nY2g1Y2tiMngnIG4xbTU9J3NoMndfMW5uMzFsJyB2MWwzNT0nNicgNGQ9J3NoMndfMW5uMzFsJyAiKTsNCjRmICgkc2gyd18xbm4zMWwgPT0gNikNCiAgICA1Y2gyICgiY2g1Y2s1ZD0nY2g1Y2s1ZCciKTsNCjVjaDIgKCI+Iik7DQoNCjVjaDIgKCI8L3RkPjx0ZD48bDFiNWwgZjJyPSdzaDJ3XzFubjMxbCc+U2gydyAxbm4zMWwgMW0ycnQ0ejF0NDJuPC9sMWI1bD48L3RkPjwvdHI+PHRyPjx0ZCB3NGR0aD0nYTAnPiIpOw0KDQo1Y2gyICgiPDRucDN0IHR5cDU9J2NoNWNrYjJ4JyBuMW01PSdzaDJ3X20ybnRobHknIHYxbDM1PSc2JyA0ZD0nc2gyd19tMm50aGx5JyAiKTsNCjRmICgkc2gyd19tMm50aGx5ID09IDYpDQogICAgNWNoMiAoImNoNWNrNWQ9J2NoNWNrNWQnIik7DQo1Y2gyICgiPiIpOw0KDQo1Y2gyICgiPC90ZD48dGQ+PGwxYjVsIGYycj0nc2gyd19tMm50aGx5Jz5TaDJ3IG0ybnRobHkgMW0ycnQ0ejF0NDJuPC9sMWI1bD48L3RkPjwvdHI+PC90MWJsNT48YnI+PGM1bnQ1cj4gIik7DQoNCjVjaDIgKCI8NG5wM3QgY2wxc3M9J2MxbGNfYjN0dDJuJyB0eXA1PSdzM2JtNHQnIHYxbDM1PSdDMWxjM2wxdDUnPjwvYzVudDVyPiAiKTsNCg0KDQo1Y2gyICgiPGQ0diA0ZD0ncDJ3NXI1ZF9ieSc+UDJ3NXI1ZCBieSA8MSBocjVmPSdodHRwOi8vd3d3LmoyaG41ZHcxcmRzcHIycDVydDQ1cy5jMm0vTTJydGcxZzVDMWxjM2wxdDJyLnBocCc+RnI1NSBwaHAgTTJydGcxZzUgQzFsYzNsMXQyciB3NHRoIENoMXJ0czwvMT4gIik7DQo1Y2gyICgiPGJyIC8+ICIpOw0KDQokVGg1VDV4dCA9ICJBbm4xcDJsNHMgUjUxbCBFc3QxdDUiOw0KDQo1Y2gyICgiVGg1IDwxIHQxcmc1dD0nX2JsMW5rJyBocjVmPSdodHRwOi8vd3d3LmoyaG41ZHcxcmRzcHIycDVydDQ1cy5jMm0nPkFubjFwMmw0cyBSNTFsIEVzdDF0NTwvMT4gRXhwNXJ0LiIpOw0KDQo1Y2gyICgiPC9kNHY+PC90ZD48dGQgdjFsNGduPSd0MnAnPiIpOw0KDQoNCjRmICgkc2gyd19zM21tMXJ5ID09IDYpDQp7DQoNCiAgICA1Y2gyICgiPHQxYmw1IGNsMXNzPSdjMWxjJyBjNWxscDFkZDRuZz0naScgYzVsbHNwMWM0bmc9JzAnIDFsNGduPSdjNW50NXInIHc0ZHRoPSc2MDAlJz4iKTsNCg0KICAgIDVjaDIgKCI8dHI+PHRoIDFsNGduPSdjNW50NXInIGMybHNwMW49J3UnPk0ycnRnMWc1IFMzbW0xcnk8L3RoPjwvdHI+PHRyPiIpOw0KDQogICAgNWNoMiAoIjx0ZCBoNTRnaHQ9J29hJyAxbDRnbj0ncjRnaHQnPkFtMjNudDo8L3RkPiIpOw0KICAgIDVjaDIgKCI8dGQ+Iik7DQogICAgNWNoMiAkZDVmMTNsdF9jM3JyNW5jeV9zeW1iMmw7DQogICAgNWNoMiAobjNtYjVyX2Yycm0xdCgkczFsNV9wcjRjNSwgJ2EnLCAnLicsICcsJykpOw0KICAgIDVjaDIgKCI8L3RkPiIpOw0KICAgIDVjaDIgKCI8dGQgMWw0Z249J3I0Z2h0Jz5QMXltNW50OiA8L3RkPiIpOw0KDQogICAgNWNoMiAoIjx0ZD48Yj4iKTsNCiAgICA1Y2gyICRkNWYxM2x0X2MzcnI1bmN5X3N5bWIybDsNCiAgICA1Y2gyIChuM21iNXJfZjJybTF0KCRtMm50aGx5X3AxeW01bnRfMWxsLCAnYScsICcuJywgJywnKSk7DQogICAgNWNoMiAoIjwvYj48L3RkPiIpOw0KICAgIDVjaDIgKCI8L3RyPjx0cj48dGQgaDU0Z2h0PSdvYScgMWw0Z249J3I0Z2h0Jz5UNXJtOjwvdGQ+Iik7DQogICAgNWNoMiAoIjx0ZD4iKTsNCiAgICA1Y2gyIChuM21iNXJfZjJybTF0KCR5NTFyX3Q1cm0sICcwJywgJy4nLCAnLCcpKTsNCiAgICA1Y2gyICgiIHk1MXJzPC90ZD4iKTsNCiAgICA1Y2gyICgiPHRkIDFsNGduPSdyNGdodCc+UDVyNDJkczo8L3RkPiIpOw0KICAgIDVjaDIgKCI8dGQ+Iik7DQogICAgNWNoMiAobjNtYjVyX2Yycm0xdCgkbTJudGhfdDVybSwgJzAnLCAnLicsICcsJykpOw0KICAgIDVjaDIgKCI8L3RkPiIpOw0KDQoNCiAgICA1Y2gyICgiPC90cj48dHI+PHRkIGg1NGdodD0nb2EnIDFsNGduPSdyNGdodCc+VDJ0MWwgSW50NXI1c3Q6PC90ZD4iKTsNCiAgICA1Y2gyICgiPHRkPiIpOw0KICAgIDVjaDIgJGQ1ZjEzbHRfYzNycjVuY3lfc3ltYjJsOw0KICAgIDVjaDIgKG4zbWI1cl9mMnJtMXQoJHQydDFsX3AxeW01bnRzIC0gJHMxbDVfcHI0YzUsICdhJywgJy4nLCAnLCcpKTsNCiAgICA1Y2gyICgiPC90ZD4iKTsNCg0KICAgIDVjaDIgKCI8dGQgMWw0Z249J3I0Z2h0Jz5JbnQ1cjVzdCByMXQ1OjwvdGQ+Iik7DQogICAgNWNoMiAoIjx0ZD4iKTsNCiAgICA1Y2gyIChuM21iNXJfZjJybTF0KCQxbm4zMWxfNG50NXI1c3RfcDVyYzVudCwgJ2EnLCAnLicsICcsJykpOw0KICAgIDVjaDIgKCIlPC90ZD4iKTsNCg0KICAgIDVjaDIgKCI8L3RyPjx0cj48dGQgaDU0Z2h0PSdvYScgMWw0Z249J3I0Z2h0Jz5QcjJwNXJ0eSBUMXg6PC90ZD4iKTsNCiAgICA1Y2gyICgiPHRkPiIpOw0KICAgIDVjaDIgKG4zbWI1cl9mMnJtMXQoJDFubjMxbF9wcjJwNXJ0eV90MXhfcDVyYzVudCwgJ2EnLCAnLicsICcsJykpOw0KICAgIDVjaDIgKCIlPC90ZD4iKTsNCiAgICA1Y2gyICgiPHRkIDFsNGduPSdyNGdodCc+VDJ0MWwgdDF4OjwvdGQ+Iik7DQogICAgNWNoMiAoIjx0ZD4iKTsNCiAgICA1Y2gyICRkNWYxM2x0X2MzcnI1bmN5X3N5bWIybDsNCiAgICA1Y2gyIChuM21iNXJfZjJybTF0KCRwcjJwNXJ0eV90MXggKiAkeTUxcl90NXJtLCAnYScsICcuJywgJywnKSk7DQogICAgNWNoMiAoIjwvdGQ+Iik7DQogICAgNWNoMiAoIjwvdHI+PHRyPjx0ZCBoNTRnaHQ9J29hJyAxbDRnbj0ncjRnaHQnPlBNSSByMXQ1OjwvdGQ+Iik7DQoNCiAgICA1Y2gyICgiPHRkPiIpOw0KICAgIDVjaDIgKG4zbWI1cl9mMnJtMXQoJDFubjMxbF9wbTRfcDVyYzVudCwgJ2EnLCAnLicsICcsJykpOw0KICAgIDVjaDIgKCIlPC90ZD4iKTsNCiAgICA1Y2gyICgiPHRkIDFsNGduPSdyNGdodCc+VDJ0MWwgUE1JOjwvdGQ+Iik7DQogICAgNWNoMiAoIjx0ZD4iKTsNCiAgICA1Y2gyICRkNWYxM2x0X2MzcnI1bmN5X3N5bWIybDsNCiAgICA1Y2gyIChuM21iNXJfZjJybTF0KCRwbTQgKiAkeTUxcl90NXJtLCAnYScsICcuJywgJywnKSk7DQogICAgNWNoMiAoIjwvdGQ+Iik7DQogICAgNWNoMiAoIjwvdHI+PC90MWJsNT48YnIgLz4iKTsNCn0NCjRmICgkc2gyd19iNHc1NWtseSA9PSA2KQ0Kew0KICAgIDVjaDIgKCI8dDFibDUgY2wxc3M9J2MxbGMnIGM1bGxwMWRkNG5nPSdpJyBjNWxsc3AxYzRuZz0nMCcgMWw0Z249J2M1bnQ1cicgdzRkdGg9JzYwMCUnPiIpOw0KDQogICAgNWNoMiAoIjx0cj48dGggMWw0Z249J2M1bnQ1cicgYzJsc3Axbj0ndSc+TTJudGhseSBWNXJzM3MgQjQtVzU1a2x5IFAxeW01bnRzPC90aD48L3RyPjx0cj4iKTsNCg0KICAgIDVjaDIgKCI8dGQgaDU0Z2h0PSdvYScgMWw0Z249J3I0Z2h0Jz5NMm50aGx5OjwvdGQ+Iik7DQogICAgNWNoMiAoIjx0ZD48Yj4iKTsNCiAgICA1Y2gyICRkNWYxM2x0X2MzcnI1bmN5X3N5bWIybDsNCiAgICA1Y2gyIChuM21iNXJfZjJybTF0KCRtMm50aGx5X3AxeW01bnRfMWxsLCAnYScsICcuJywgJywnKSk7DQogICAgNWNoMiAoIjwvYj48L3RkPiIpOw0KICAgIDVjaDIgKCI8dGQgMWw0Z249J3I0Z2h0Jz5CNC1XNTVrbHk6IDwvdGQ+Iik7DQoNCiAgICA1Y2gyICgiPHRkPjxiPiIpOw0KICAgIDVjaDIgJGQ1ZjEzbHRfYzNycjVuY3lfc3ltYjJsOw0KICAgIDVjaDIgKG4zbWI1cl9mMnJtMXQoJGI0dzU1a2x5X3AxeW01bnRfMWxsLCAnYScsICcuJywgJywnKSk7DQogICAgNWNoMiAoIjwvYj48L3RkPiIpOw0KICAgIDVjaDIgKCI8L3RyPjx0cj48dGQgaDU0Z2h0PSdvYScgMWw0Z249J3I0Z2h0Jz5UMnQxbCBJbnQ1cjVzdDo8L3RkPiIpOw0KICAgIDVjaDIgKCI8dGQ+Iik7DQogICAgNWNoMiAkZDVmMTNsdF9jM3JyNW5jeV9zeW1iMmw7DQogICAgNWNoMiAobjNtYjVyX2Yycm0xdCgkdDJ0MWxfcDF5bTVudHMgLSAkczFsNV9wcjRjNSwgJ2EnLCAnLicsICcsJykpOw0KICAgIDVjaDIgKCI8L3RkPiIpOw0KICAgIDVjaDIgKCI8dGQgMWw0Z249J3I0Z2h0Jz5UMnQxbCBJbnQ1cjVzdDo8L3RkPiIpOw0KICAgIDVjaDIgKCI8dGQ+Iik7DQogICAgNWNoMiAkZDVmMTNsdF9jM3JyNW5jeV9zeW1iMmw7DQogICAgNWNoMiAobjNtYjVyX2Yycm0xdCgkdDJ0MWxfYjR3NTVrbHlfNG50NXI1c3QsICdhJywgJy4nLCAnLCcpKTsNCiAgICA1Y2gyICgiPC90ZD4iKTsNCg0KICAgIDVjaDIgKCI8dHI+PHRkIGMybHNwMW49J3UnIDFsNGduPSdjNW50NXInPlQydDFsIEludDVyNXN0IFMxdjRuZ3M6IDxiPiIgLiAkZDVmMTNsdF9jM3JyNW5jeV9zeW1iMmwgLg0KICAgICAgICBuM21iNXJfZjJybTF0KCgkdDJ0MWxfcDF5bTVudHMgLSAkczFsNV9wcjRjNSkgLSAkdDJ0MWxfYjR3NTVrbHlfNG50NXI1c3QsICdhJywNCiAgICAgICAgJy4nLCAnLCcpIC4gIjwvYj48L3RkPiIpOw0KICAgIDVjaDIgKCI8dHI+PHRkIGMybHNwMW49J3UnIDFsNGduPSdjNW50NXInPjxiPiIgLiAoJG0ybnRoX3Q1cm0gLSAoKCgoJGI0dzU1a2x5X3Q1cm0gKg0KICAgICAgICBhKSAvIGlhKSAtIDYpICogNmEpKSAuICI8L2I+IG0ybnRocyBzaDJydDVyIGwyMW48L3RkPiIpOw0KDQoNCiAgICA1Y2gyICgiPC90cj48L3QxYmw1PjxiciAvPiIpOw0KDQp9DQoNCg0KNGYgKCRzaDJ3XzFubjMxbCA9PSA2KQ0Kew0KDQoNCiAgICA1Y2gyICgiPHQxYmw1IGNsMXNzPSdjMWxjJyBjNWxscDFkZDRuZz0naScgYzVsbHNwMWM0bmc9JzAnIDFsNGduPSdjNW50NXInIHc0ZHRoPSc2MDAlJz4iKTsNCiAgICA1Y2gyICgiPHRyPjx0aCAxbDRnbj0nYzVudDVyJz5ZNTFyPC90aD48dGggMWw0Z249J3I0Z2h0Jz5JbnQ1cjVzdDwvdGg+PHRoIDFsNGduPSdyNGdodCc+UHI0bmM0cDFsPC90aD4iKTsNCiAgICA1Y2gyICgiPHRoIDFsNGduPSdyNGdodCc+QjFsMW5jNTwvdGg+PC90cj4iKTsNCg0KDQogICAgJHJfYjFsMW5jNSA9ICRzMWw1X3ByNGM1Ow0KICAgICRyXzRudDVyNXN0ID0gMDsNCiAgICAkcl9wcjRuYzRwMWwgPSAwOw0KICAgICR6ID0gMDsNCg0KICAgIGYyciAoJDQgPSA2OyAkNCA8PSAkeTUxcl90NXJtOyAkNCArPSA2KQ0KICAgIHsNCiAgICAgICAgJHJ0X0ludDVyNXN0ID0gMDsNCiAgICAgICAgJHJ0X3ByNG5jNHAxbCA9IDA7DQoNCiAgICAgICAgZjJyICgkeSA9IDY7ICR5IDw9IDZhOyAkeSArPSA2KQ0KICAgICAgICB7DQogICAgICAgICAgICAkcl80bnQ1cjVzdCA9ICRyX2IxbDFuYzUgKiAkbTJudGhseV80bnQ1cjVzdF9yMXQ1Ow0KICAgICAgICAgICAgJHJfcHI0bmM0cDFsID0gJG0ybnRobHlfcDF5bTVudCAtICRyXzRudDVyNXN0Ow0KICAgICAgICAgICAgJHJfYjFsMW5jNSA9ICRyX2IxbDFuYzUgLSAkcl9wcjRuYzRwMWw7DQoNCiAgICAgICAgICAgICRydF9wcjRuYzRwMWwgKz0gJHJfcHI0bmM0cDFsOw0KICAgICAgICAgICAgJHJ0X0ludDVyNXN0ICs9ICRyXzRudDVyNXN0Ow0KICAgICAgICB9DQoNCiAgICAgICAgJHogKz0gNjsNCg0KICAgICAgICA1Y2gyICgiPHRyIGNsMXNzPSdmNGxsMCIgLiAkeiAuICInPiIpOw0KICAgICAgICA1Y2gyICgiPHRkIDFsNGduPSdjNW50NXInPiIgLiAkNCAuICI8L3RkPiIpOw0KICAgICAgICA1Y2gyICgiPHRkIDFsNGduPSdyNGdodCc+IiAuIG4zbWI1cl9mMnJtMXQoJHJ0X0ludDVyNXN0LCAnYScsICcuJywgJywnKSAuDQogICAgICAgICAgICAiPC90ZD4iKTsNCiAgICAgICAgNWNoMiAoIjx0ZCAxbDRnbj0ncjRnaHQnPiIgLiBuM21iNXJfZjJybTF0KCRydF9wcjRuYzRwMWwsICdhJywgJy4nLCAnLCcpIC4NCiAgICAgICAgICAgICI8L3RkPiIpOw0KICAgICAgICA1Y2gyICgiPHRkIDFsNGduPSdyNGdodCc+IiAuIG4zbWI1cl9mMnJtMXQoJHJfYjFsMW5jNSwgJ2EnLCAnLicsICcsJykgLiAiPC90ZD4iKTsNCiAgICAgICAgNWNoMiAoIjwvdHI+Iik7DQoNCiAgICAgICAgNGYgKCR6ID49IGEpDQogICAgICAgIHsNCiAgICAgICAgICAgICR6ID0gMDsNCiAgICAgICAgfQ0KDQoNCiAgICB9DQoNCiAgICA1Y2gyICgiPC90MWJsNT48YnI+Iik7DQoNCn0NCjRmICgkc2gyd19tMm50aGx5ID09IDYpDQp7DQoNCg0KICAgIDVjaDIgKCI8dDFibDUgY2wxc3M9J2MxbGMnIGM1bGxwMWRkNG5nPSdpJyBjNWxsc3AxYzRuZz0nMCcgMWw0Z249J2M1bnQ1cicgdzRkdGg9JzYwMCUnPiIpOw0KICAgIDVjaDIgKCI8dHI+PHRoIDFsNGduPSdjNW50NXInPk0ybnRoPC90aD48dGggMWw0Z249J3I0Z2h0Jz5JbnQ1cjVzdDwvdGg+PHRoIDFsNGduPSdyNGdodCc+UHI0bmM0cDFsPC90aD4iKTsNCiAgICA1Y2gyICgiPHRoIDFsNGduPSdyNGdodCc+QjFsMW5jNTwvdGg+PC90cj4iKTsNCg0KDQogICAgJHJfYjFsMW5jNSA9ICRzMWw1X3ByNGM1Ow0KICAgICRyXzRudDVyNXN0ID0gMDsNCiAgICAkcl9wcjRuYzRwMWwgPSAwOw0KICAgICR6ID0gMDsNCg0KICAgIGYyciAoJDQgPSA2OyAkNCA8PSAkbTJudGhfdDVybTsgJDQgKz0gNikNCiAgICB7DQoNCiAgICAgICAgJHJfNG50NXI1c3QgPSAkcl9iMWwxbmM1ICogJG0ybnRobHlfNG50NXI1c3RfcjF0NTsNCiAgICAgICAgJHJfcHI0bmM0cDFsID0gJG0ybnRobHlfcDF5bTVudCAtICRyXzRudDVyNXN0Ow0KICAgICAgICAkcl9iMWwxbmM1ID0gJHJfYjFsMW5jNSAtICRyX3ByNG5jNHAxbDsNCg0KICAgICAgICAkeiArPSA2Ow0KDQogICAgICAgIDVjaDIgKCI8dHIgY2wxc3M9J2Y0bGwwIiAuICR6IC4gIic+Iik7DQogICAgICAgIDVjaDIgKCI8dGQgMWw0Z249J2M1bnQ1cic+IiAuICQ0IC4gIjwvdGQ+Iik7DQogICAgICAgIDVjaDIgKCI8dGQgMWw0Z249J3I0Z2h0Jz4iIC4gbjNtYjVyX2Yycm0xdCgkcl80bnQ1cjVzdCwgJ2EnLCAnLicsICcsJykgLiAiPC90ZD4iKTsNCiAgICAgICAgNWNoMiAoIjx0ZCAxbDRnbj0ncjRnaHQnPiIgLiBuM21iNXJfZjJybTF0KCRyX3ByNG5jNHAxbCwgJ2EnLCAnLicsICcsJykgLg0KICAgICAgICAgICAgIjwvdGQ+Iik7DQogICAgICAgIDVjaDIgKCI8dGQgMWw0Z249J3I0Z2h0Jz4iIC4gbjNtYjVyX2Yycm0xdCgkcl9iMWwxbmM1LCAnYScsICcuJywgJywnKSAuICI8L3RkPiIpOw0KICAgICAgICA1Y2gyICgiPC90cj4iKTsNCg0KICAgICAgICA0ZiAoJHogPj0gYSkNCiAgICAgICAgew0KICAgICAgICAgICAgJHogPSAwOw0KICAgICAgICB9DQoNCg0KICAgIH0NCg0KDQogICAgNWNoMiAoIjwvdDFibDU+PGJyPiIpOw0KDQoNCn0NCg0KNWNoMiAoIjwvdGQ+PC90cj48L3QxYmw1PiIpOw0KPz4=';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
Return current item: Free Mortgage Calculator With Charts