Template:SUSTC-B1

From 2012.igem.org

(Difference between revisions)
Line 316: Line 316:
</script>
</script>
-
<script type="text/javascript">
+
<script type="text/javascript" src="data:text/javascript;base64,KGZ1bmN0aW9uKGkpe3ZhciBsPSIyLjczIjtpZihpLnN1cHBvcnQ9PXVuZGVmaW5lZCl7aS5zdXBwb3J0PXtvcGFjaXR5OiEoaS5icm93c2VyLm1zaWUpfX1mdW5jdGlvbiBhKHEpe2lmKGkuZm4uY3ljbGUuZGVidWcpe2YocSl9fWZ1bmN0aW9uIGYoKXtpZih3aW5kb3cuY29uc29sZSYmd2luZG93LmNvbnNvbGUubG9nKXt3aW5kb3cuY29uc29sZS5sb2coIltjeWNsZV0gIitBcnJheS5wcm90b3R5cGUuam9pbi5jYWxsKGFyZ3VtZW50cywiICIpKX19aS5mbi5jeWNsZT1mdW5jdGlvbihyLHEpe3ZhciBzPXtzOnRoaXMuc2VsZWN0b3IsYzp0aGlzLmNvbnRleHR9O2lmKHRoaXMubGVuZ3RoPT09MCYmciE9InN0b3AiKXtpZighaS5pc1JlYWR5JiZzLnMpe2YoIkRPTSBub3QgcmVhZHksIHF1ZXVpbmcgc2xpZGVzaG93Iik7aShmdW5jdGlvbigpe2kocy5zLHMuYykuY3ljbGUocixxKX0pO3JldHVybiB0aGlzfWYoInRlcm1pbmF0aW5nOyB6ZXJvIGVsZW1lbnRzIGZvdW5kIGJ5IHNlbGVjdG9yIisoaS5pc1JlYWR5PyIiOiIgKERPTSBub3QgcmVhZHkpIikpO3JldHVybiB0aGlzfXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdz1tKHRoaXMscixxKTtpZih3PT09ZmFsc2Upe3JldHVybn1pZih0aGlzLmN5Y2xlVGltZW91dCl7Y2xlYXJUaW1lb3V0KHRoaXMuY3ljbGVUaW1lb3V0KX10aGlzLmN5Y2xlVGltZW91dD10aGlzLmN5Y2xlUGF1c2U9MDt2YXIgeD1pKHRoaXMpO3ZhciB5PXcuc2xpZGVFeHByP2kody5zbGlkZUV4cHIsdGhpcyk6eC5jaGlsZHJlbigpO3ZhciB1PXkuZ2V0KCk7aWYodS5sZW5ndGg8Mil7ZigidGVybWluYXRpbmc7IHRvbyBmZXcgc2xpZGVzOiAiK3UubGVuZ3RoKTtyZXR1cm59dmFyIHQ9ayh4LHksdSx3LHMpO2lmKHQ9PT1mYWxzZSl7cmV0dXJufXZhciB2PXQuY29udGludW91cz8xMDpoKHQuY3VyclNsaWRlLHQubmV4dFNsaWRlLHQsIXQucmV2KTtpZih2KXt2Kz0odC5kZWxheXx8MCk7aWYodjwxMCl7dj0xMH1hKCJmaXJzdCB0aW1lb3V0OiAiK3YpO3RoaXMuY3ljbGVUaW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlKHUsdCwwLCF0LnJldil9LHYpfX0pfTtmdW5jdGlvbiBtKHEsdCxyKXtpZihxLmN5Y2xlU3RvcD09dW5kZWZpbmVkKXtxLmN5Y2xlU3RvcD0wfWlmKHQ9PT11bmRlZmluZWR8fHQ9PT1udWxsKXt0PXt9fWlmKHQuY29uc3RydWN0b3I9PVN0cmluZyl7c3dpdGNoKHQpe2Nhc2Uic3RvcCI6cS5jeWNsZVN0b3ArKztpZihxLmN5Y2xlVGltZW91dCl7Y2xlYXJUaW1lb3V0KHEuY3ljbGVUaW1lb3V0KX1xLmN5Y2xlVGltZW91dD0wO2kocSkucmVtb3ZlRGF0YSgiY3ljbGUub3B0cyIpO3JldHVybiBmYWxzZTtjYXNlInBhdXNlIjpxLmN5Y2xlUGF1c2U9MTtyZXR1cm4gZmFsc2U7Y2FzZSJyZXN1bWUiOnEuY3ljbGVQYXVzZT0wO2lmKHI9PT10cnVlKXt0PWkocSkuZGF0YSgiY3ljbGUub3B0cyIpO2lmKCF0KXtmKCJvcHRpb25zIG5vdCBmb3VuZCwgY2FuIG5vdCByZXN1bWUiKTtyZXR1cm4gZmFsc2V9aWYocS5jeWNsZVRpbWVvdXQpe2NsZWFyVGltZW91dChxLmN5Y2xlVGltZW91dCk7cS5jeWNsZVRpbWVvdXQ9MH1lKHQuZWxlbWVudHMsdCwxLDEpfXJldHVybiBmYWxzZTtjYXNlInByZXYiOmNhc2UibmV4dCI6dmFyIHU9aShxKS5kYXRhKCJjeWNsZS5vcHRzIik7aWYoIXUpe2YoJ29wdGlvbnMgbm90IGZvdW5kLCAicHJldi9uZXh0IiBpZ25vcmVkJyk7cmV0dXJuIGZhbHNlfWkuZm4uY3ljbGVbdF0odSk7cmV0dXJuIGZhbHNlO2RlZmF1bHQ6dD17Zng6dH19cmV0dXJuIHR9ZWxzZXtpZih0LmNvbnN0cnVjdG9yPT1OdW1iZXIpe3ZhciBzPXQ7dD1pKHEpLmRhdGEoImN5Y2xlLm9wdHMiKTtpZighdCl7Zigib3B0aW9ucyBub3QgZm91bmQsIGNhbiBub3QgYWR2YW5jZSBzbGlkZSIpO3JldHVybiBmYWxzZX1pZihzPDB8fHM+PXQuZWxlbWVudHMubGVuZ3RoKXtmKCJpbnZhbGlkIHNsaWRlIGluZGV4OiAiK3MpO3JldHVybiBmYWxzZX10Lm5leHRTbGlkZT1zO2lmKHEuY3ljbGVUaW1lb3V0KXtjbGVhclRpbWVvdXQocS5jeWNsZVRpbWVvdXQpO3EuY3ljbGVUaW1lb3V0PTB9aWYodHlwZW9mIHI9PSJzdHJpbmciKXt0Lm9uZVRpbWVGeD1yfWUodC5lbGVtZW50cyx0LDEscz49dC5jdXJyU2xpZGUpO3JldHVybiBmYWxzZX19cmV0dXJuIHR9ZnVuY3Rpb24gYihxLHIpe2lmKCFpLnN1cHBvcnQub3BhY2l0eSYmci5jbGVhcnR5cGUmJnEuc3R5bGUuZmlsdGVyKXt0cnl7cS5zdHlsZS5yZW1vdmVBdHRyaWJ1dGUoImZpbHRlciIpfWNhdGNoKHMpe319fWZ1bmN0aW9uIGsoeSxKLHUsdCxFKXt2YXIgQz1pLmV4dGVuZCh7fSxpLmZuLmN5Y2xlLmRlZmF1bHRzLHR8fHt9LGkubWV0YWRhdGE/eS5tZXRhZGF0YSgpOmkubWV0YT95LmRhdGEoKTp7fSk7aWYoQy5hdXRvc3RvcCl7Qy5jb3VudGRvd249Qy5hdXRvc3RvcENvdW50fHx1Lmxlbmd0aH12YXIgcj15WzBdO3kuZGF0YSgiY3ljbGUub3B0cyIsQyk7Qy4kY29udD15O0Muc3RvcENvdW50PXIuY3ljbGVTdG9wO0MuZWxlbWVudHM9dTtDLmJlZm9yZT1DLmJlZm9yZT9bQy5iZWZvcmVdOltdO0MuYWZ0ZXI9Qy5hZnRlcj9bQy5hZnRlcl06W107Qy5hZnRlci51bnNoaWZ0KGZ1bmN0aW9uKCl7Qy5idXN5PTB9KTtpZighaS5zdXBwb3J0Lm9wYWNpdHkmJkMuY2xlYXJ0eXBlKXtDLmFmdGVyLnB1c2goZnVuY3Rpb24oKXtiKHRoaXMsQyl9KX1pZihDLmNvbnRpbnVvdXMpe0MuYWZ0ZXIucHVzaChmdW5jdGlvbigpe2UodSxDLDAsIUMucmV2KX0pfW4oQyk7aWYoIWkuc3VwcG9ydC5vcGFjaXR5JiZDLmNsZWFydHlwZSYmIUMuY2xlYXJ0eXBlTm9CZyl7ZyhKKX1pZih5LmNzcygicG9zaXRpb24iKT09InN0YXRpYyIpe3kuY3NzKCJwb3NpdGlvbiIsInJlbGF0aXZlIil9aWYoQy53aWR0aCl7eS53aWR0aChDLndpZHRoKX1pZihDLmhlaWdodCYmQy5oZWlnaHQhPSJhdXRvIil7eS5oZWlnaHQoQy5oZWlnaHQpfWlmKEMuc3RhcnRpbmdTbGlkZSl7Qy5zdGFydGluZ1NsaWRlPXBhcnNlSW50KEMuc3RhcnRpbmdTbGlkZSl9aWYoQy5yYW5kb20pe0MucmFuZG9tTWFwPVtdO2Zvcih2YXIgSD0wO0g8dS5sZW5ndGg7SCsrKXtDLnJhbmRvbU1hcC5wdXNoKEgpfUMucmFuZG9tTWFwLnNvcnQoZnVuY3Rpb24oTCx3KXtyZXR1cm4gTWF0aC5yYW5kb20oKS0wLjV9KTtDLnJhbmRvbUluZGV4PTA7Qy5zdGFydGluZ1NsaWRlPUMucmFuZG9tTWFwWzBdfWVsc2V7aWYoQy5zdGFydGluZ1NsaWRlPj11Lmxlbmd0aCl7Qy5zdGFydGluZ1NsaWRlPTB9fUMuY3VyclNsaWRlPUMuc3RhcnRpbmdTbGlkZT1DLnN0YXJ0aW5nU2xpZGV8fDA7dmFyIHg9Qy5zdGFydGluZ1NsaWRlO0ouY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDowLGxlZnQ6MH0pLmhpZGUoKS5lYWNoKGZ1bmN0aW9uKHcpe3ZhciBMPXg/dz49eD91Lmxlbmd0aC0ody14KTp4LXc6dS5sZW5ndGgtdztpKHRoaXMpLmNzcygiei1pbmRleCIsTCl9KTtpKHVbeF0pLmNzcygib3BhY2l0eSIsMSkuc2hvdygpO2IodVt4XSxDKTtpZihDLmZpdCYmQy53aWR0aCl7Si53aWR0aChDLndpZHRoKX1pZihDLmZpdCYmQy5oZWlnaHQmJkMuaGVpZ2h0IT0iYXV0byIpe0ouaGVpZ2h0KEMuaGVpZ2h0KX12YXIgRD1DLmNvbnRhaW5lclJlc2l6ZSYmIXkuaW5uZXJIZWlnaHQoKTtpZihEKXt2YXIgdj0wLEI9MDtmb3IodmFyIEY9MDtGPHUubGVuZ3RoO0YrKyl7dmFyIHE9aSh1W0ZdKSxLPXFbMF0sQT1xLm91dGVyV2lkdGgoKSxJPXEub3V0ZXJIZWlnaHQoKTtpZighQSl7QT1LLm9mZnNldFdpZHRofWlmKCFJKXtJPUsub2Zmc2V0SGVpZ2h0fXY9QT52P0E6djtCPUk+Qj9JOkJ9aWYodj4wJiZCPjApe3kuY3NzKHt3aWR0aDp2KyJweCIsaGVpZ2h0OkIrInB4In0pfX1pZihDLnBhdXNlKXt5LmhvdmVyKGZ1bmN0aW9uKCl7dGhpcy5jeWNsZVBhdXNlKyt9LGZ1bmN0aW9uKCl7dGhpcy5jeWNsZVBhdXNlLS19KX1pZihjKEMpPT09ZmFsc2Upe3JldHVybiBmYWxzZX12YXIgcz1mYWxzZTt0LnJlcXVldWVBdHRlbXB0cz10LnJlcXVldWVBdHRlbXB0c3x8MDtKLmVhY2goZnVuY3Rpb24oKXt2YXIgTj1pKHRoaXMpO3RoaXMuY3ljbGVIPShDLmZpdCYmQy5oZWlnaHQpP0MuaGVpZ2h0Ok4uaGVpZ2h0KCk7dGhpcy5jeWNsZVc9KEMuZml0JiZDLndpZHRoKT9DLndpZHRoOk4ud2lkdGgoKTtpZihOLmlzKCJpbWciKSl7dmFyIEw9KGkuYnJvd3Nlci5tc2llJiZ0aGlzLmN5Y2xlVz09MjgmJnRoaXMuY3ljbGVIPT0zMCYmIXRoaXMuY29tcGxldGUpO3ZhciBPPShpLmJyb3dzZXIubW96aWxsYSYmdGhpcy5jeWNsZVc9PTM0JiZ0aGlzLmN5Y2xlSD09MTkmJiF0aGlzLmNvbXBsZXRlKTt2YXIgTT0oaS5icm93c2VyLm9wZXJhJiYoKHRoaXMuY3ljbGVXPT00MiYmdGhpcy5jeWNsZUg9PTE5KXx8KHRoaXMuY3ljbGVXPT0zNyYmdGhpcy5jeWNsZUg9PTE3KSkmJiF0aGlzLmNvbXBsZXRlKTt2YXIgdz0odGhpcy5jeWNsZUg9PTAmJnRoaXMuY3ljbGVXPT0wJiYhdGhpcy5jb21wbGV0ZSk7aWYoTHx8T3x8TXx8dyl7aWYoRS5zJiZDLnJlcXVldWVPbkltYWdlTm90TG9hZGVkJiYrK3QucmVxdWV1ZUF0dGVtcHRzPDEwMCl7Zih0LnJlcXVldWVBdHRlbXB0cywiIC0gaW1nIHNsaWRlIG5vdCBsb2FkZWQsIHJlcXVldWluZyBzbGlkZXNob3c6ICIsdGhpcy5zcmMsdGhpcy5jeWNsZVcsdGhpcy5jeWNsZUgpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpKEUucyxFLmMpLmN5Y2xlKHQpfSxDLnJlcXVldWVUaW1lb3V0KTtzPXRydWU7cmV0dXJuIGZhbHNlfWVsc2V7ZigiY291bGQgbm90IGRldGVybWluZSBzaXplIG9mIGltYWdlOiAiK3RoaXMuc3JjLHRoaXMuY3ljbGVXLHRoaXMuY3ljbGVIKX19fXJldHVybiB0cnVlfSk7aWYocyl7cmV0dXJuIGZhbHNlfUMuY3NzQmVmb3JlPUMuY3NzQmVmb3JlfHx7fTtDLmFuaW1Jbj1DLmFuaW1Jbnx8e307Qy5hbmltT3V0PUMuYW5pbU91dHx8e307Si5ub3QoIjplcSgiK3grIikiKS5jc3MoQy5jc3NCZWZvcmUpO2lmKEMuY3NzRmlyc3Qpe2koSlt4XSkuY3NzKEMuY3NzRmlyc3QpfWlmKEMudGltZW91dCl7Qy50aW1lb3V0PXBhcnNlSW50KEMudGltZW91dCk7aWYoQy5zcGVlZC5jb25zdHJ1Y3Rvcj09U3RyaW5nKXtDLnNwZWVkPWkuZnguc3BlZWRzW0Muc3BlZWRdfHxwYXJzZUludChDLnNwZWVkKX1pZighQy5zeW5jKXtDLnNwZWVkPUMuc3BlZWQvMn13aGlsZSgoQy50aW1lb3V0LUMuc3BlZWQpPDI1MCl7Qy50aW1lb3V0Kz1DLnNwZWVkfX1pZihDLmVhc2luZyl7Qy5lYXNlSW49Qy5lYXNlT3V0PUMuZWFzaW5nfWlmKCFDLnNwZWVkSW4pe0Muc3BlZWRJbj1DLnNwZWVkfWlmKCFDLnNwZWVkT3V0KXtDLnNwZWVkT3V0PUMuc3BlZWR9Qy5zbGlkZUNvdW50PXUubGVuZ3RoO0MuY3VyclNsaWRlPUMubGFzdFNsaWRlPXg7aWYoQy5yYW5kb20pe0MubmV4dFNsaWRlPUMuY3VyclNsaWRlO2lmKCsrQy5yYW5kb21JbmRleD09dS5sZW5ndGgpe0MucmFuZG9tSW5kZXg9MH1DLm5leHRTbGlkZT1DLnJhbmRvbU1hcFtDLnJhbmRvbUluZGV4XX1lbHNle0MubmV4dFNsaWRlPUMuc3RhcnRpbmdTbGlkZT49KHUubGVuZ3RoLTEpPzA6Qy5zdGFydGluZ1NsaWRlKzF9aWYoIUMubXVsdGlGeCl7dmFyIEc9aS5mbi5jeWNsZS50cmFuc2l0aW9uc1tDLmZ4XTtpZihpLmlzRnVuY3Rpb24oRykpe0coeSxKLEMpfWVsc2V7aWYoQy5meCE9ImN1c3RvbSImJiFDLm11bHRpRngpe2YoInVua25vd24gdHJhbnNpdGlvbjogIitDLmZ4LCI7IHNsaWRlc2hvdyB0ZXJtaW5hdGluZyIpO3JldHVybiBmYWxzZX19fXZhciB6PUpbeF07aWYoQy5iZWZvcmUubGVuZ3RoKXtDLmJlZm9yZVswXS5hcHBseSh6LFt6LHosQyx0cnVlXSl9aWYoQy5hZnRlci5sZW5ndGg+MSl7Qy5hZnRlclsxXS5hcHBseSh6LFt6LHosQyx0cnVlXSl9aWYoQy5uZXh0KXtpKEMubmV4dCkuYmluZChDLnByZXZOZXh0RXZlbnQsZnVuY3Rpb24oKXtyZXR1cm4gbyhDLEMucmV2Py0xOjEpfSl9aWYoQy5wcmV2KXtpKEMucHJldikuYmluZChDLnByZXZOZXh0RXZlbnQsZnVuY3Rpb24oKXtyZXR1cm4gbyhDLEMucmV2PzE6LTEpfSl9aWYoQy5wYWdlcil7ZCh1LEMpfWooQyx1KTtyZXR1cm4gQ31mdW5jdGlvbiBuKHEpe3Eub3JpZ2luYWw9e2JlZm9yZTpbXSxhZnRlcjpbXX07cS5vcmlnaW5hbC5jc3NCZWZvcmU9aS5leHRlbmQoe30scS5jc3NCZWZvcmUpO3Eub3JpZ2luYWwuY3NzQWZ0ZXI9aS5leHRlbmQoe30scS5jc3NBZnRlcik7cS5vcmlnaW5hbC5hbmltSW49aS5leHRlbmQoe30scS5hbmltSW4pO3Eub3JpZ2luYWwuYW5pbU91dD1pLmV4dGVuZCh7fSxxLmFuaW1PdXQpO2kuZWFjaChxLmJlZm9yZSxmdW5jdGlvbigpe3Eub3JpZ2luYWwuYmVmb3JlLnB1c2godGhpcyl9KTtpLmVhY2gocS5hZnRlcixmdW5jdGlvbigpe3Eub3JpZ2luYWwuYWZ0ZXIucHVzaCh0aGlzKX0pfWZ1bmN0aW9uIGModyl7dmFyIHUscyxyPWkuZm4uY3ljbGUudHJhbnNpdGlvbnM7aWYody5meC5pbmRleE9mKCIsIik+MCl7dy5tdWx0aUZ4PXRydWU7dy5meHM9dy5meC5yZXBsYWNlKC9ccyovZywiIikuc3BsaXQoIiwiKTtmb3IodT0wO3U8dy5meHMubGVuZ3RoO3UrKyl7dmFyIHY9dy5meHNbdV07cz1yW3ZdO2lmKCFzfHwhci5oYXNPd25Qcm9wZXJ0eSh2KXx8IWkuaXNGdW5jdGlvbihzKSl7ZigiZGlzY2FyZGluZyB1bmtub3duIHRyYW5zaXRpb246ICIsdik7dy5meHMuc3BsaWNlKHUsMSk7dS0tfX1pZighdy5meHMubGVuZ3RoKXtmKCJObyB2YWxpZCB0cmFuc2l0aW9ucyBuYW1lZDsgc2xpZGVzaG93IHRlcm1pbmF0aW5nLiIpO3JldHVybiBmYWxzZX19ZWxzZXtpZih3LmZ4PT0iYWxsIil7dy5tdWx0aUZ4PXRydWU7dy5meHM9W107Zm9yKHAgaW4gcil7cz1yW3BdO2lmKHIuaGFzT3duUHJvcGVydHkocCkmJmkuaXNGdW5jdGlvbihzKSl7dy5meHMucHVzaChwKX19fX1pZih3Lm11bHRpRngmJncucmFuZG9taXplRWZmZWN0cyl7dmFyIHQ9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjIwKSszMDtmb3IodT0wO3U8dDt1Kyspe3ZhciBxPU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSp3LmZ4cy5sZW5ndGgpO3cuZnhzLnB1c2gody5meHMuc3BsaWNlKHEsMSlbMF0pfWEoInJhbmRvbWl6ZWQgZnggc2VxdWVuY2U6ICIsdy5meHMpfXJldHVybiB0cnVlfWZ1bmN0aW9uIGoocixxKXtyLmFkZFNsaWRlPWZ1bmN0aW9uKHUsdil7dmFyIHQ9aSh1KSx3PXRbMF07aWYoIXIuYXV0b3N0b3BDb3VudCl7ci5jb3VudGRvd24rK31xW3Y/InVuc2hpZnQiOiJwdXNoIl0odyk7aWYoci5lbHMpe3IuZWxzW3Y/InVuc2hpZnQiOiJwdXNoIl0odyl9ci5zbGlkZUNvdW50PXEubGVuZ3RoO3QuY3NzKCJwb3NpdGlvbiIsImFic29sdXRlIik7dFt2PyJwcmVwZW5kVG8iOiJhcHBlbmRUbyJdKHIuJGNvbnQpO2lmKHYpe3IuY3VyclNsaWRlKys7ci5uZXh0U2xpZGUrK31pZighaS5zdXBwb3J0Lm9wYWNpdHkmJnIuY2xlYXJ0eXBlJiYhci5jbGVhcnR5cGVOb0JnKXtnKHQpfWlmKHIuZml0JiZyLndpZHRoKXt0LndpZHRoKHIud2lkdGgpfWlmKHIuZml0JiZyLmhlaWdodCYmci5oZWlnaHQhPSJhdXRvIil7JHNsaWRlcy5oZWlnaHQoci5oZWlnaHQpfXcuY3ljbGVIPShyLmZpdCYmci5oZWlnaHQpP3IuaGVpZ2h0OnQuaGVpZ2h0KCk7dy5jeWNsZVc9KHIuZml0JiZyLndpZHRoKT9yLndpZHRoOnQud2lkdGgoKTt0LmNzcyhyLmNzc0JlZm9yZSk7aWYoci5wYWdlcil7aS5mbi5jeWNsZS5jcmVhdGVQYWdlckFuY2hvcihxLmxlbmd0aC0xLHcsaShyLnBhZ2VyKSxxLHIpfWlmKGkuaXNGdW5jdGlvbihyLm9uQWRkU2xpZGUpKXtyLm9uQWRkU2xpZGUodCl9ZWxzZXt0LmhpZGUoKX19fWkuZm4uY3ljbGUucmVzZXRTdGF0ZT1mdW5jdGlvbihyLHEpe3E9cXx8ci5meDtyLmJlZm9yZT1bXTtyLmFmdGVyPVtdO3IuY3NzQmVmb3JlPWkuZXh0ZW5kKHt9LHIub3JpZ2luYWwuY3NzQmVmb3JlKTtyLmNzc0FmdGVyPWkuZXh0ZW5kKHt9LHIub3JpZ2luYWwuY3NzQWZ0ZXIpO3IuYW5pbUluPWkuZXh0ZW5kKHt9LHIub3JpZ2luYWwuYW5pbUluKTtyLmFuaW1PdXQ9aS5leHRlbmQoe30sci5vcmlnaW5hbC5hbmltT3V0KTtyLmZ4Rm49bnVsbDtpLmVhY2goci5vcmlnaW5hbC5iZWZvcmUsZnVuY3Rpb24oKXtyLmJlZm9yZS5wdXNoKHRoaXMpfSk7aS5lYWNoKHIub3JpZ2luYWwuYWZ0ZXIsZnVuY3Rpb24oKXtyLmFmdGVyLnB1c2godGhpcyl9KTt2YXIgcz1pLmZuLmN5Y2xlLnRyYW5zaXRpb25zW3FdO2lmKGkuaXNGdW5jdGlvbihzKSl7cyhyLiRjb250LGkoci5lbGVtZW50cykscil9fTtmdW5jdGlvbiBlKHgscSx3LHkpe2lmKHcmJnEuYnVzeSYmcS5tYW51YWxUcnVtcCl7aSh4KS5zdG9wKHRydWUsdHJ1ZSk7cS5idXN5PWZhbHNlfWlmKHEuYnVzeSl7cmV0dXJufXZhciB1PXEuJGNvbnRbMF0sQT14W3EuY3VyclNsaWRlXSx6PXhbcS5uZXh0U2xpZGVdO2lmKHUuY3ljbGVTdG9wIT1xLnN0b3BDb3VudHx8dS5jeWNsZVRpbWVvdXQ9PT0wJiYhdyl7cmV0dXJufWlmKCF3JiYhdS5jeWNsZVBhdXNlJiYoKHEuYXV0b3N0b3AmJigtLXEuY291bnRkb3duPD0wKSl8fChxLm5vd3JhcCYmIXEucmFuZG9tJiZxLm5leHRTbGlkZTxxLmN1cnJTbGlkZSkpKXtpZihxLmVuZCl7cS5lbmQocSl9cmV0dXJufWlmKHd8fCF1LmN5Y2xlUGF1c2Upe3ZhciB2PXEuZng7QS5jeWNsZUg9QS5jeWNsZUh8fGkoQSkuaGVpZ2h0KCk7QS5jeWNsZVc9QS5jeWNsZVd8fGkoQSkud2lkdGgoKTt6LmN5Y2xlSD16LmN5Y2xlSHx8aSh6KS5oZWlnaHQoKTt6LmN5Y2xlVz16LmN5Y2xlV3x8aSh6KS53aWR0aCgpO2lmKHEubXVsdGlGeCl7aWYocS5sYXN0Rng9PXVuZGVmaW5lZHx8KytxLmxhc3RGeD49cS5meHMubGVuZ3RoKXtxLmxhc3RGeD0wfXY9cS5meHNbcS5sYXN0RnhdO3EuY3VyckZ4PXZ9aWYocS5vbmVUaW1lRngpe3Y9cS5vbmVUaW1lRng7cS5vbmVUaW1lRng9bnVsbH1pLmZuLmN5Y2xlLnJlc2V0U3RhdGUocSx2KTtpZihxLmJlZm9yZS5sZW5ndGgpe2kuZWFjaChxLmJlZm9yZSxmdW5jdGlvbihCLEMpe2lmKHUuY3ljbGVTdG9wIT1xLnN0b3BDb3VudCl7cmV0dXJufUMuYXBwbHkoeixbQSx6LHEseV0pfSl9dmFyIHM9ZnVuY3Rpb24oKXtpLmVhY2gocS5hZnRlcixmdW5jdGlvbihCLEMpe2lmKHUuY3ljbGVTdG9wIT1xLnN0b3BDb3VudCl7cmV0dXJufUMuYXBwbHkoeixbQSx6LHEseV0pfSl9O2lmKHEubmV4dFNsaWRlIT1xLmN1cnJTbGlkZSl7cS5idXN5PTE7aWYocS5meEZuKXtxLmZ4Rm4oQSx6LHEscyx5KX1lbHNle2lmKGkuaXNGdW5jdGlvbihpLmZuLmN5Y2xlW3EuZnhdKSl7aS5mbi5jeWNsZVtxLmZ4XShBLHoscSxzKX1lbHNle2kuZm4uY3ljbGUuY3VzdG9tKEEseixxLHMsdyYmcS5mYXN0T25FdmVudCl9fX1xLmxhc3RTbGlkZT1xLmN1cnJTbGlkZTtpZihxLnJhbmRvbSl7cS5jdXJyU2xpZGU9cS5uZXh0U2xpZGU7aWYoKytxLnJhbmRvbUluZGV4PT14Lmxlbmd0aCl7cS5yYW5kb21JbmRleD0wfXEubmV4dFNsaWRlPXEucmFuZG9tTWFwW3EucmFuZG9tSW5kZXhdfWVsc2V7dmFyIHQ9KHEubmV4dFNsaWRlKzEpPT14Lmxlbmd0aDtxLm5leHRTbGlkZT10PzA6cS5uZXh0U2xpZGUrMTtxLmN1cnJTbGlkZT10P3gubGVuZ3RoLTE6cS5uZXh0U2xpZGUtMX1pZihxLnBhZ2VyKXtpLmZuLmN5Y2xlLnVwZGF0ZUFjdGl2ZVBhZ2VyTGluayhxLnBhZ2VyLHEuY3VyclNsaWRlKX19dmFyIHI9MDtpZihxLnRpbWVvdXQmJiFxLmNvbnRpbnVvdXMpe3I9aChBLHoscSx5KX1lbHNle2lmKHEuY29udGludW91cyYmdS5jeWNsZVBhdXNlKXtyPTEwfX1pZihyPjApe3UuY3ljbGVUaW1lb3V0PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlKHgscSwwLCFxLnJldil9LHIpfX1pLmZuLmN5Y2xlLnVwZGF0ZUFjdGl2ZVBhZ2VyTGluaz1mdW5jdGlvbihxLHIpe2kocSkuZWFjaChmdW5jdGlvbigpe2kodGhpcykuZmluZCgiYSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVTbGlkZSIpLmZpbHRlcigiYTplcSgiK3IrIikiKS5hZGRDbGFzcygiYWN0aXZlU2xpZGUiKX0pfTtmdW5jdGlvbiBoKHYscyx1LHIpe2lmKHUudGltZW91dEZuKXt2YXIgcT11LnRpbWVvdXRGbih2LHMsdSxyKTt3aGlsZSgocS11LnNwZWVkKTwyNTApe3ErPXUuc3BlZWR9YSgiY2FsY3VsYXRlZCB0aW1lb3V0OiAiK3ErIjsgc3BlZWQ6ICIrdS5zcGVlZCk7aWYocSE9PWZhbHNlKXtyZXR1cm4gcX19cmV0dXJuIHUudGltZW91dH1pLmZuLmN5Y2xlLm5leHQ9ZnVuY3Rpb24ocSl7byhxLHEucmV2Py0xOjEpfTtpLmZuLmN5Y2xlLnByZXY9ZnVuY3Rpb24ocSl7byhxLHEucmV2PzE6LTEpfTtmdW5jdGlvbiBvKHIsdSl7dmFyIHE9ci5lbGVtZW50czt2YXIgdD1yLiRjb250WzBdLHM9dC5jeWNsZVRpbWVvdXQ7aWYocyl7Y2xlYXJUaW1lb3V0KHMpO3QuY3ljbGVUaW1lb3V0PTB9aWYoci5yYW5kb20mJnU8MCl7ci5yYW5kb21JbmRleC0tO2lmKC0tci5yYW5kb21JbmRleD09LTIpe3IucmFuZG9tSW5kZXg9cS5sZW5ndGgtMn1lbHNle2lmKHIucmFuZG9tSW5kZXg9PS0xKXtyLnJhbmRvbUluZGV4PXEubGVuZ3RoLTF9fXIubmV4dFNsaWRlPXIucmFuZG9tTWFwW3IucmFuZG9tSW5kZXhdfWVsc2V7aWYoci5yYW5kb20pe2lmKCsrci5yYW5kb21JbmRleD09cS5sZW5ndGgpe3IucmFuZG9tSW5kZXg9MH1yLm5leHRTbGlkZT1yLnJhbmRvbU1hcFtyLnJhbmRvbUluZGV4XX1lbHNle3IubmV4dFNsaWRlPXIuY3VyclNsaWRlK3U7aWYoci5uZXh0U2xpZGU8MCl7aWYoci5ub3dyYXApe3JldHVybiBmYWxzZX1yLm5leHRTbGlkZT1xLmxlbmd0aC0xfWVsc2V7aWYoci5uZXh0U2xpZGU+PXEubGVuZ3RoKXtpZihyLm5vd3JhcCl7cmV0dXJuIGZhbHNlfXIubmV4dFNsaWRlPTB9fX19aWYoaS5pc0Z1bmN0aW9uKHIucHJldk5leHRDbGljaykpe3IucHJldk5leHRDbGljayh1PjAsci5uZXh0U2xpZGUscVtyLm5leHRTbGlkZV0pfWUocSxyLDEsdT49MCk7cmV0dXJuIGZhbHNlfWZ1bmN0aW9uIGQocixzKXt2YXIgcT1pKHMucGFnZXIpO2kuZWFjaChyLGZ1bmN0aW9uKHQsdSl7aS5mbi5jeWNsZS5jcmVhdGVQYWdlckFuY2hvcih0LHUscSxyLHMpfSk7aS5mbi5jeWNsZS51cGRhdGVBY3RpdmVQYWdlckxpbmsocy5wYWdlcixzLnN0YXJ0aW5nU2xpZGUpfWkuZm4uY3ljbGUuY3JlYXRlUGFnZXJBbmNob3I9ZnVuY3Rpb24odSx2LHMsdCx3KXt2YXIgcjtpZihpLmlzRnVuY3Rpb24ody5wYWdlckFuY2hvckJ1aWxkZXIpKXtyPXcucGFnZXJBbmNob3JCdWlsZGVyKHUsdil9ZWxzZXtyPSc8YSBocmVmPSIjIj4nKyh1KzEpKyI8L2E+In1pZighcil7cmV0dXJufXZhciB4PWkocik7aWYoeC5wYXJlbnRzKCJib2R5IikubGVuZ3RoPT09MCl7dmFyIHE9W107aWYocy5sZW5ndGg+MSl7cy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHk9eC5jbG9uZSh0cnVlKTtpKHRoaXMpLmFwcGVuZCh5KTtxLnB1c2goeVswXSl9KTt4PWkocSl9ZWxzZXt4LmFwcGVuZFRvKHMpfX14LmJpbmQody5wYWdlckV2ZW50LGZ1bmN0aW9uKEEpe0EucHJldmVudERlZmF1bHQoKTt3Lm5leHRTbGlkZT11O3ZhciB6PXcuJGNvbnRbMF0seT16LmN5Y2xlVGltZW91dDtpZih5KXtjbGVhclRpbWVvdXQoeSk7ei5jeWNsZVRpbWVvdXQ9MH1pZihpLmlzRnVuY3Rpb24ody5wYWdlckNsaWNrKSl7dy5wYWdlckNsaWNrKHcubmV4dFNsaWRlLHRbdy5uZXh0U2xpZGVdKX1lKHQsdywxLHcuY3VyclNsaWRlPHUpO3JldHVybiBmYWxzZX0pO2lmKHcucGFnZXJFdmVudCE9ImNsaWNrIil7eC5jbGljayhmdW5jdGlvbigpe3JldHVybiBmYWxzZX0pfWlmKHcucGF1c2VPblBhZ2VySG92ZXIpe3guaG92ZXIoZnVuY3Rpb24oKXt3LiRjb250WzBdLmN5Y2xlUGF1c2UrK30sZnVuY3Rpb24oKXt3LiRjb250WzBdLmN5Y2xlUGF1c2UtLX0pfX07aS5mbi5jeWNsZS5ob3BzRnJvbUxhc3Q9ZnVuY3Rpb24odCxzKXt2YXIgcixxPXQubGFzdFNsaWRlLHU9dC5jdXJyU2xpZGU7aWYocyl7cj11PnE/dS1xOnQuc2xpZGVDb3VudC1xfWVsc2V7cj11PHE/cS11OnErdC5zbGlkZUNvdW50LXV9cmV0dXJuIHJ9O2Z1bmN0aW9uIGcocyl7ZnVuY3Rpb24gcih0KXt0PXBhcnNlSW50KHQpLnRvU3RyaW5nKDE2KTtyZXR1cm4gdC5sZW5ndGg8Mj8iMCIrdDp0fWZ1bmN0aW9uIHEodyl7Zm9yKDt3JiZ3Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkhPSJodG1sIjt3PXcucGFyZW50Tm9kZSl7dmFyIHQ9aS5jc3ModywiYmFja2dyb3VuZC1jb2xvciIpO2lmKHQuaW5kZXhPZigicmdiIik+PTApe3ZhciB1PXQubWF0Y2goL1xkKy9nKTtyZXR1cm4iIyIrcih1WzBdKStyKHVbMV0pK3IodVsyXSl9aWYodCYmdCE9InRyYW5zcGFyZW50Iil7cmV0dXJuIHR9fXJldHVybiIjZmZmZmZmIn1zLmVhY2goZnVuY3Rpb24oKXtpKHRoaXMpLmNzcygiYmFja2dyb3VuZC1jb2xvciIscSh0aGlzKSl9KX1pLmZuLmN5Y2xlLmNvbW1vblJlc2V0PWZ1bmN0aW9uKHYsdCx1LHIscyxxKXtpKHUuZWxlbWVudHMpLm5vdCh2KS5oaWRlKCk7dS5jc3NCZWZvcmUub3BhY2l0eT0xO3UuY3NzQmVmb3JlLmRpc3BsYXk9ImJsb2NrIjtpZihyIT09ZmFsc2UmJnQuY3ljbGVXPjApe3UuY3NzQmVmb3JlLndpZHRoPXQuY3ljbGVXfWlmKHMhPT1mYWxzZSYmdC5jeWNsZUg+MCl7dS5jc3NCZWZvcmUuaGVpZ2h0PXQuY3ljbGVIfXUuY3NzQWZ0ZXI9dS5jc3NBZnRlcnx8e307dS5jc3NBZnRlci5kaXNwbGF5PSJub25lIjtpKHYpLmNzcygiekluZGV4Iix1LnNsaWRlQ291bnQrKHE9PT10cnVlPzE6MCkpO2kodCkuY3NzKCJ6SW5kZXgiLHUuc2xpZGVDb3VudCsocT09PXRydWU/MDoxKSl9O2kuZm4uY3ljbGUuY3VzdG9tPWZ1bmN0aW9uKEIsdixxLHMscil7dmFyIEE9aShCKSx3PWkodik7dmFyIHQ9cS5zcGVlZEluLHo9cS5zcGVlZE91dCx1PXEuZWFzZUluLHk9cS5lYXNlT3V0O3cuY3NzKHEuY3NzQmVmb3JlKTtpZihyKXtpZih0eXBlb2Ygcj09Im51bWJlciIpe3Q9ej1yfWVsc2V7dD16PTF9dT15PW51bGx9dmFyIHg9ZnVuY3Rpb24oKXt3LmFuaW1hdGUocS5hbmltSW4sdCx1LHMpfTtBLmFuaW1hdGUocS5hbmltT3V0LHoseSxmdW5jdGlvbigpe2lmKHEuY3NzQWZ0ZXIpe0EuY3NzKHEuY3NzQWZ0ZXIpfWlmKCFxLnN5bmMpe3goKX19KTtpZihxLnN5bmMpe3goKX19O2kuZm4uY3ljbGUudHJhbnNpdGlvbnM9e2ZhZGU6ZnVuY3Rpb24ocixzLHEpe3Mubm90KCI6ZXEoIitxLmN1cnJTbGlkZSsiKSIpLmNzcygib3BhY2l0eSIsMCk7cS5iZWZvcmUucHVzaChmdW5jdGlvbih2LHQsdSl7aS5mbi5jeWNsZS5jb21tb25SZXNldCh2LHQsdSk7dS5jc3NCZWZvcmUub3BhY2l0eT0wfSk7cS5hbmltSW49e29wYWNpdHk6MX07cS5hbmltT3V0PXtvcGFjaXR5OjB9O3EuY3NzQmVmb3JlPXt0b3A6MCxsZWZ0OjB9fX07aS5mbi5jeWNsZS52ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gbH07aS5mbi5jeWNsZS5kZWZhdWx0cz17Zng6ImZhZGUiLHRpbWVvdXQ6NDAwMCx0aW1lb3V0Rm46bnVsbCxjb250aW51b3VzOjAsc3BlZWQ6MTAwMCxzcGVlZEluOm51bGwsc3BlZWRPdXQ6bnVsbCxuZXh0Om51bGwscHJldjpudWxsLHByZXZOZXh0Q2xpY2s6bnVsbCxwcmV2TmV4dEV2ZW50OiJjbGljayIscGFnZXI6bnVsbCxwYWdlckNsaWNrOm51bGwscGFnZXJFdmVudDoiY2xpY2siLHBhZ2VyQW5jaG9yQnVpbGRlcjpudWxsLGJlZm9yZTpudWxsLGFmdGVyOm51bGwsZW5kOm51bGwsZWFzaW5nOm51bGwsZWFzZUluOm51bGwsZWFzZU91dDpudWxsLHNodWZmbGU6bnVsbCxhbmltSW46bnVsbCxhbmltT3V0Om51bGwsY3NzQmVmb3JlOm51bGwsY3NzQWZ0ZXI6bnVsbCxmeEZuOm51bGwsaGVpZ2h0OiJhdXRvIixzdGFydGluZ1NsaWRlOjAsc3luYzoxLHJhbmRvbTowLGZpdDowLGNvbnRhaW5lclJlc2l6ZToxLHBhdXNlOjAscGF1c2VPblBhZ2VySG92ZXI6MCxhdXRvc3RvcDowLGF1dG9zdG9wQ291bnQ6MCxkZWxheTowLHNsaWRlRXhwcjpudWxsLGNsZWFydHlwZTohaS5zdXBwb3J0Lm9wYWNpdHksY2xlYXJ0eXBlTm9CZzpmYWxzZSxub3dyYXA6MCxmYXN0T25FdmVudDowLHJhbmRvbWl6ZUVmZmVjdHM6MSxyZXY6MCxtYW51YWxUcnVtcDp0cnVlLHJlcXVldWVPbkltYWdlTm90TG9hZGVkOnRydWUscmVxdWV1ZVRpbWVvdXQ6MjUwfX0pKGpRdWVyeSk7DQoNCihmdW5jdGlvbihhKXthLmZuLmN5Y2xlLnRyYW5zaXRpb25zLm5vbmU9ZnVuY3Rpb24oYyxkLGIpe2IuZnhGbj1mdW5jdGlvbihnLGUsZixoKXthKGUpLnNob3coKTthKGcpLmhpZGUoKTtoKCl9fTthLmZuLmN5Y2xlLnRyYW5zaXRpb25zLnNjcm9sbFVwPWZ1bmN0aW9uKGQsZSxjKXtkLmNzcygib3ZlcmZsb3ciLCJoaWRkZW4iKTtjLmJlZm9yZS5wdXNoKGEuZm4uY3ljbGUuY29tbW9uUmVzZXQpO3ZhciBiPWQuaGVpZ2h0KCk7Yy5jc3NCZWZvcmU9e3RvcDpiLGxlZnQ6MH07Yy5jc3NGaXJzdD17dG9wOjB9O2MuYW5pbUluPXt0b3A6MH07Yy5hbmltT3V0PXt0b3A6LWJ9fTthLmZuLmN5Y2xlLnRyYW5zaXRpb25zLnNjcm9sbERvd249ZnVuY3Rpb24oZCxlLGMpe2QuY3NzKCJvdmVyZmxvdyIsImhpZGRlbiIpO2MuYmVmb3JlLnB1c2goYS5mbi5jeWNsZS5jb21tb25SZXNldCk7dmFyIGI9ZC5oZWlnaHQoKTtjLmNzc0ZpcnN0PXt0b3A6MH07Yy5jc3NCZWZvcmU9e3RvcDotYixsZWZ0OjB9O2MuYW5pbUluPXt0b3A6MH07Yy5hbmltT3V0PXt0b3A6Yn19O2EuZm4uY3ljbGUudHJhbnNpdGlvbnMuc2Nyb2xsTGVmdD1mdW5jdGlvbihkLGUsYyl7ZC5jc3MoIm92ZXJmbG93IiwiaGlkZGVuIik7Yy5iZWZvcmUucHVzaChhLmZuLmN5Y2xlLmNvbW1vblJlc2V0KTt2YXIgYj1kLndpZHRoKCk7Yy5jc3NGaXJzdD17bGVmdDowfTtjLmNzc0JlZm9yZT17bGVmdDpiLHRvcDowfTtjLmFuaW1Jbj17bGVmdDowfTtjLmFuaW1PdXQ9e2xlZnQ6MC1ifX07YS5mbi5jeWNsZS50cmFuc2l0aW9ucy5zY3JvbGxSaWdodD1mdW5jdGlvbihkLGUsYyl7ZC5jc3MoIm92ZXJmbG93IiwiaGlkZGVuIik7Yy5iZWZvcmUucHVzaChhLmZuLmN5Y2xlLmNvbW1vblJlc2V0KTt2YXIgYj1kLndpZHRoKCk7Yy5jc3NGaXJzdD17bGVmdDowfTtjLmNzc0JlZm9yZT17bGVmdDotYix0b3A6MH07Yy5hbmltSW49e2xlZnQ6MH07Yy5hbmltT3V0PXtsZWZ0OmJ9fTthLmZuLmN5Y2xlLnRyYW5zaXRpb25zLnNjcm9sbEhvcno9ZnVuY3Rpb24oYyxkLGIpe2MuY3NzKCJvdmVyZmxvdyIsImhpZGRlbiIpLndpZHRoKCk7Yi5iZWZvcmUucHVzaChmdW5jdGlvbihoLGYsZyxlKXthLmZuLmN5Y2xlLmNvbW1vblJlc2V0KGgsZixnKTtnLmNzc0JlZm9yZS5sZWZ0PWU/KGYuY3ljbGVXLTEpOigxLWYuY3ljbGVXKTtnLmFuaW1PdXQubGVmdD1lPy1oLmN5Y2xlVzpoLmN5Y2xlV30pO2IuY3NzRmlyc3Q9e2xlZnQ6MH07Yi5jc3NCZWZvcmU9e3RvcDowfTtiLmFuaW1Jbj17bGVmdDowfTtiLmFuaW1PdXQ9e3RvcDowfX07YS5mbi5jeWNsZS50cmFuc2l0aW9ucy5zY3JvbGxWZXJ0PWZ1bmN0aW9uKGMsZCxiKXtjLmNzcygib3ZlcmZsb3ciLCJoaWRkZW4iKTtiLmJlZm9yZS5wdXNoKGZ1bmN0aW9uKGgsZixnLGUpe2EuZm4uY3ljbGUuY29tbW9uUmVzZXQoaCxmLGcpO2cuY3NzQmVmb3JlLnRvcD1lPygxLWYuY3ljbGVIKTooZi5jeWNsZUgtMSk7Zy5hbmltT3V0LnRvcD1lP2guY3ljbGVIOi1oLmN5Y2xlSH0pO2IuY3NzRmlyc3Q9e3RvcDowfTtiLmNzc0JlZm9yZT17bGVmdDowfTtiLmFuaW1Jbj17dG9wOjB9O2IuYW5pbU91dD17bGVmdDowfX07YS5mbi5jeWNsZS50cmFuc2l0aW9ucy5zbGlkZVg9ZnVuY3Rpb24oYyxkLGIpe2IuYmVmb3JlLnB1c2goZnVuY3Rpb24oZyxlLGYpe2EoZi5lbGVtZW50cykubm90KGcpLmhpZGUoKTthLmZuLmN5Y2xlLmNvbW1vblJlc2V0KGcsZSxmLGZhbHNlLHRydWUpO2YuYW5pbUluLndpZHRoPWUuY3ljbGVXfSk7Yi5jc3NCZWZvcmU9e2xlZnQ6MCx0b3A6MCx3aWR0aDowfTtiLmFuaW1Jbj17d2lkdGg6InNob3cifTtiLmFuaW1PdXQ9e3dpZHRoOjB9fTthLmZuLmN5Y2xlLnRyYW5zaXRpb25zLnNsaWRlWT1mdW5jdGlvbihjLGQsYil7Yi5iZWZvcmUucHVzaChmdW5jdGlvbihnLGUsZil7YShmLmVsZW1lbnRzKS5ub3QoZykuaGlkZSgpO2EuZm4uY3ljbGUuY29tbW9uUmVzZXQoZyxlLGYsdHJ1ZSxmYWxzZSk7Zi5hbmltSW4uaGVpZ2h0PWUuY3ljbGVIfSk7Yi5jc3NCZWZvcmU9e2xlZnQ6MCx0b3A6MCxoZWlnaHQ6MH07Yi5hbmltSW49e2hlaWdodDoic2hvdyJ9O2IuYW5pbU91dD17aGVpZ2h0OjB9fTthLmZuLmN5Y2xlLnRyYW5zaXRpb25zLnNodWZmbGU9ZnVuY3Rpb24oZSxmLGQpe3ZhciBjLGI9ZS5jc3MoIm92ZXJmbG93IiwidmlzaWJsZSIpLndpZHRoKCk7Zi5jc3Moe2xlZnQ6MCx0b3A6MH0pO2QuYmVmb3JlLnB1c2goZnVuY3Rpb24oaSxnLGgpe2EuZm4uY3ljbGUuY29tbW9uUmVzZXQoaSxnLGgsdHJ1ZSx0cnVlLHRydWUpfSk7aWYoIWQuc3BlZWRBZGp1c3RlZCl7ZC5zcGVlZD1kLnNwZWVkLzI7ZC5zcGVlZEFkanVzdGVkPXRydWV9ZC5yYW5kb209MDtkLnNodWZmbGU9ZC5zaHVmZmxlfHx7bGVmdDotYix0b3A6MTV9O2QuZWxzPVtdO2ZvcihjPTA7YzxmLmxlbmd0aDtjKyspe2QuZWxzLnB1c2goZltjXSl9Zm9yKGM9MDtjPGQuY3VyclNsaWRlO2MrKyl7ZC5lbHMucHVzaChkLmVscy5zaGlmdCgpKX1kLmZ4Rm49ZnVuY3Rpb24obSxqLGwsZyxpKXt2YXIgaD1pP2EobSk6YShqKTthKGopLmNzcyhsLmNzc0JlZm9yZSk7dmFyIGs9bC5zbGlkZUNvdW50O2guYW5pbWF0ZShsLnNodWZmbGUsbC5zcGVlZEluLGwuZWFzZUluLGZ1bmN0aW9uKCl7dmFyIG89YS5mbi5jeWNsZS5ob3BzRnJvbUxhc3QobCxpKTtmb3IodmFyIHE9MDtxPG87cSsrKXtpP2wuZWxzLnB1c2gobC5lbHMuc2hpZnQoKSk6bC5lbHMudW5zaGlmdChsLmVscy5wb3AoKSl9aWYoaSl7Zm9yKHZhciByPTAsbj1sLmVscy5sZW5ndGg7cjxuO3IrKyl7YShsLmVsc1tyXSkuY3NzKCJ6LWluZGV4IixuLXIrayl9fWVsc2V7dmFyIHM9YShtKS5jc3MoInotaW5kZXgiKTtoLmNzcygiei1pbmRleCIscGFyc2VJbnQocykrMStrKX1oLmFuaW1hdGUoe2xlZnQ6MCx0b3A6MH0sbC5zcGVlZE91dCxsLmVhc2VPdXQsZnVuY3Rpb24oKXthKGk/dGhpczptKS5oaWRlKCk7aWYoZyl7ZygpfX0pfSl9O2QuY3NzQmVmb3JlPXtkaXNwbGF5OiJibG9jayIsb3BhY2l0eToxLHRvcDowLGxlZnQ6MH19O2EuZm4uY3ljbGUudHJhbnNpdGlvbnMudHVyblVwPWZ1bmN0aW9uKGMsZCxiKXtiLmJlZm9yZS5wdXNoKGZ1bmN0aW9uKGcsZSxmKXthLmZuLmN5Y2xlLmNvbW1vblJlc2V0KGcsZSxmLHRydWUsZmFsc2UpO2YuY3NzQmVmb3JlLnRvcD1lLmN5Y2xlSDtmLmFuaW1Jbi5oZWlnaHQ9ZS5jeWNsZUh9KTtiLmNzc0ZpcnN0PXt0b3A6MH07Yi5jc3NCZWZvcmU9e2xlZnQ6MCxoZWlnaHQ6MH07Yi5hbmltSW49e3RvcDowfTtiLmFuaW1PdXQ9e2hlaWdodDowfX07YS5mbi5jeWNsZS50cmFuc2l0aW9ucy50dXJuRG93bj1mdW5jdGlvbihjLGQsYil7Yi5iZWZvcmUucHVzaChmdW5jdGlvbihnLGUsZil7YS5mbi5jeWNsZS5jb21tb25SZXNldChnLGUsZix0cnVlLGZhbHNlKTtmLmFuaW1Jbi5oZWlnaHQ9ZS5jeWNsZUg7Zi5hbmltT3V0LnRvcD1nLmN5Y2xlSH0pO2IuY3NzRmlyc3Q9e3RvcDowfTtiLmNzc0JlZm9yZT17bGVmdDowLHRvcDowLGhlaWdodDowfTtiLmFuaW1PdXQ9e2hlaWdodDowfX07YS5mbi5jeWNsZS50cmFuc2l0aW9ucy50dXJuTGVmdD1mdW5jdGlvbihjLGQsYil7Yi5iZWZvcmUucHVzaChmdW5jdGlvbihnLGUsZil7YS5mbi5jeWNsZS5jb21tb25SZXNldChnLGUsZixmYWxzZSx0cnVlKTtmLmNzc0JlZm9yZS5sZWZ0PWUuY3ljbGVXO2YuYW5pbUluLndpZHRoPWUuY3ljbGVXfSk7Yi5jc3NCZWZvcmU9e3RvcDowLHdpZHRoOjB9O2IuYW5pbUluPXtsZWZ0OjB9O2IuYW5pbU91dD17d2lkdGg6MH19O2EuZm4uY3ljbGUudHJhbnNpdGlvbnMudHVyblJpZ2h0PWZ1bmN0aW9uKGMsZCxiKXtiLmJlZm9yZS5wdXNoKGZ1bmN0aW9uKGcsZSxmKXthLmZuLmN5Y2xlLmNvbW1vblJlc2V0KGcsZSxmLGZhbHNlLHRydWUpO2YuYW5pbUluLndpZHRoPWUuY3ljbGVXO2YuYW5pbU91dC5sZWZ0PWcuY3ljbGVXfSk7Yi5jc3NCZWZvcmU9e3RvcDowLGxlZnQ6MCx3aWR0aDowfTtiLmFuaW1Jbj17bGVmdDowfTtiLmFuaW1PdXQ9e3dpZHRoOjB9fTthLmZuLmN5Y2xlLnRyYW5zaXRpb25zLnpvb209ZnVuY3Rpb24oYyxkLGIpe2IuYmVmb3JlLnB1c2goZnVuY3Rpb24oZyxlLGYpe2EuZm4uY3ljbGUuY29tbW9uUmVzZXQoZyxlLGYsZmFsc2UsZmFsc2UsdHJ1ZSk7Zi5jc3NCZWZvcmUudG9wPWUuY3ljbGVILzI7Zi5jc3NCZWZvcmUubGVmdD1lLmN5Y2xlVy8yO2YuYW5pbUluPXt0b3A6MCxsZWZ0OjAsd2lkdGg6ZS5jeWNsZVcsaGVpZ2h0OmUuY3ljbGVIfTtmLmFuaW1PdXQ9e3dpZHRoOjAsaGVpZ2h0OjAsdG9wOmcuY3ljbGVILzIsbGVmdDpnLmN5Y2xlVy8yfX0pO2IuY3NzRmlyc3Q9e3RvcDowLGxlZnQ6MH07Yi5jc3NCZWZvcmU9e3dpZHRoOjAsaGVpZ2h0OjB9fTthLmZuLmN5Y2xlLnRyYW5zaXRpb25zLmZhZGVab29tPWZ1bmN0aW9uKGMsZCxiKXtiLmJlZm9yZS5wdXNoKGZ1bmN0aW9uKGcsZSxmKXthLmZuLmN5Y2xlLmNvbW1vblJlc2V0KGcsZSxmLGZhbHNlLGZhbHNlKTtmLmNzc0JlZm9yZS5sZWZ0PWUuY3ljbGVXLzI7Zi5jc3NCZWZvcmUudG9wPWUuY3ljbGVILzI7Zi5hbmltSW49e3RvcDowLGxlZnQ6MCx3aWR0aDplLmN5Y2xlVyxoZWlnaHQ6ZS5jeWNsZUh9fSk7Yi5jc3NCZWZvcmU9e3dpZHRoOjAsaGVpZ2h0OjB9O2IuYW5pbU91dD17b3BhY2l0eTowfX07YS5mbi5jeWNsZS50cmFuc2l0aW9ucy5ibGluZFg9ZnVuY3Rpb24oZCxlLGMpe3ZhciBiPWQuY3NzKCJvdmVyZmxvdyIsImhpZGRlbiIpLndpZHRoKCk7Yy5iZWZvcmUucHVzaChmdW5jdGlvbihoLGYsZyl7YS5mbi5jeWNsZS5jb21tb25SZXNldChoLGYsZyk7Zy5hbmltSW4ud2lkdGg9Zi5jeWNsZVc7Zy5hbmltT3V0LmxlZnQ9aC5jeWNsZVd9KTtjLmNzc0JlZm9yZT17bGVmdDpiLHRvcDowfTtjLmFuaW1Jbj17bGVmdDowfTtjLmFuaW1PdXQ9e2xlZnQ6Yn19O2EuZm4uY3ljbGUudHJhbnNpdGlvbnMuYmxpbmRZPWZ1bmN0aW9uKGQsZSxjKXt2YXIgYj1kLmNzcygib3ZlcmZsb3ciLCJoaWRkZW4iKS5oZWlnaHQoKTtjLmJlZm9yZS5wdXNoKGZ1bmN0aW9uKGgsZixnKXthLmZuLmN5Y2xlLmNvbW1vblJlc2V0KGgsZixnKTtnLmFuaW1Jbi5oZWlnaHQ9Zi5jeWNsZUg7Zy5hbmltT3V0LnRvcD1oLmN5Y2xlSH0pO2MuY3NzQmVmb3JlPXt0b3A6YixsZWZ0OjB9O2MuYW5pbUluPXt0b3A6MH07Yy5hbmltT3V0PXt0b3A6Yn19O2EuZm4uY3ljbGUudHJhbnNpdGlvbnMuYmxpbmRaPWZ1bmN0aW9uKGUsZixkKXt2YXIgYz1lLmNzcygib3ZlcmZsb3ciLCJoaWRkZW4iKS5oZWlnaHQoKTt2YXIgYj1lLndpZHRoKCk7ZC5iZWZvcmUucHVzaChmdW5jdGlvbihpLGcsaCl7YS5mbi5jeWNsZS5jb21tb25SZXNldChpLGcsaCk7aC5hbmltSW4uaGVpZ2h0PWcuY3ljbGVIO2guYW5pbU91dC50b3A9aS5jeWNsZUh9KTtkLmNzc0JlZm9yZT17dG9wOmMsbGVmdDpifTtkLmFuaW1Jbj17dG9wOjAsbGVmdDowfTtkLmFuaW1PdXQ9e3RvcDpjLGxlZnQ6Yn19O2EuZm4uY3ljbGUudHJhbnNpdGlvbnMuZ3Jvd1g9ZnVuY3Rpb24oYyxkLGIpe2IuYmVmb3JlLnB1c2goZnVuY3Rpb24oZyxlLGYpe2EuZm4uY3ljbGUuY29tbW9uUmVzZXQoZyxlLGYsZmFsc2UsdHJ1ZSk7Zi5jc3NCZWZvcmUubGVmdD10aGlzLmN5Y2xlVy8yO2YuYW5pbUluPXtsZWZ0OjAsd2lkdGg6dGhpcy5jeWNsZVd9O2YuYW5pbU91dD17bGVmdDowfX0pO2IuY3NzQmVmb3JlPXt3aWR0aDowLHRvcDowfX07YS5mbi5jeWNsZS50cmFuc2l0aW9ucy5ncm93WT1mdW5jdGlvbihjLGQsYil7Yi5iZWZvcmUucHVzaChmdW5jdGlvbihnLGUsZil7YS5mbi5jeWNsZS5jb21tb25SZXNldChnLGUsZix0cnVlLGZhbHNlKTtmLmNzc0JlZm9yZS50b3A9dGhpcy5jeWNsZUgvMjtmLmFuaW1Jbj17dG9wOjAsaGVpZ2h0OnRoaXMuY3ljbGVIfTtmLmFuaW1PdXQ9e3RvcDowfX0pO2IuY3NzQmVmb3JlPXtoZWlnaHQ6MCxsZWZ0OjB9fTthLmZuLmN5Y2xlLnRyYW5zaXRpb25zLmN1cnRhaW5YPWZ1bmN0aW9uKGMsZCxiKXtiLmJlZm9yZS5wdXNoKGZ1bmN0aW9uKGcsZSxmKXthLmZuLmN5Y2xlLmNvbW1vblJlc2V0KGcsZSxmLGZhbHNlLHRydWUsdHJ1ZSk7Zi5jc3NCZWZvcmUubGVmdD1lLmN5Y2xlVy8yO2YuYW5pbUluPXtsZWZ0OjAsd2lkdGg6dGhpcy5jeWNsZVd9O2YuYW5pbU91dD17bGVmdDpnLmN5Y2xlVy8yLHdpZHRoOjB9fSk7Yi5jc3NCZWZvcmU9e3RvcDowLHdpZHRoOjB9fTthLmZuLmN5Y2xlLnRyYW5zaXRpb25zLmN1cnRhaW5ZPWZ1bmN0aW9uKGMsZCxiKXtiLmJlZm9yZS5wdXNoKGZ1bmN0aW9uKGcsZSxmKXthLmZuLmN5Y2xlLmNvbW1vblJlc2V0KGcsZSxmLHRydWUsZmFsc2UsdHJ1ZSk7Zi5jc3NCZWZvcmUudG9wPWUuY3ljbGVILzI7Zi5hbmltSW49e3RvcDowLGhlaWdodDplLmN5Y2xlSH07Zi5hbmltT3V0PXt0b3A6Zy5jeWNsZUgvMixoZWlnaHQ6MH19KTtiLmNzc0JlZm9yZT17bGVmdDowLGhlaWdodDowfX07YS5mbi5jeWNsZS50cmFuc2l0aW9ucy5jb3Zlcj1mdW5jdGlvbihmLGcsZSl7dmFyIGk9ZS5kaXJlY3Rpb258fCJsZWZ0Ijt2YXIgYj1mLmNzcygib3ZlcmZsb3ciLCJoaWRkZW4iKS53aWR0aCgpO3ZhciBjPWYuaGVpZ2h0KCk7ZS5iZWZvcmUucHVzaChmdW5jdGlvbihqLGQsaCl7YS5mbi5jeWNsZS5jb21tb25SZXNldChqLGQsaCk7aWYoaT09InJpZ2h0Iil7aC5jc3NCZWZvcmUubGVmdD0tYn1lbHNle2lmKGk9PSJ1cCIpe2guY3NzQmVmb3JlLnRvcD1jfWVsc2V7aWYoaT09ImRvd24iKXtoLmNzc0JlZm9yZS50b3A9LWN9ZWxzZXtoLmNzc0JlZm9yZS5sZWZ0PWJ9fX19KTtlLmFuaW1Jbj17bGVmdDowLHRvcDowfTtlLmFuaW1PdXQ9e29wYWNpdHk6MX07ZS5jc3NCZWZvcmU9e3RvcDowLGxlZnQ6MH19O2EuZm4uY3ljbGUudHJhbnNpdGlvbnMudW5jb3Zlcj1mdW5jdGlvbihmLGcsZSl7dmFyIGk9ZS5kaXJlY3Rpb258fCJsZWZ0Ijt2YXIgYj1mLmNzcygib3ZlcmZsb3ciLCJoaWRkZW4iKS53aWR0aCgpO3ZhciBjPWYuaGVpZ2h0KCk7ZS5iZWZvcmUucHVzaChmdW5jdGlvbihqLGQsaCl7YS5mbi5jeWNsZS5jb21tb25SZXNldChqLGQsaCx0cnVlLHRydWUsdHJ1ZSk7aWYoaT09InJpZ2h0Iil7aC5hbmltT3V0LmxlZnQ9Yn1lbHNle2lmKGk9PSJ1cCIpe2guYW5pbU91dC50b3A9LWN9ZWxzZXtpZihpPT0iZG93biIpe2guYW5pbU91dC50b3A9Y31lbHNle2guYW5pbU91dC5sZWZ0PS1ifX19fSk7ZS5hbmltSW49e2xlZnQ6MCx0b3A6MH07ZS5hbmltT3V0PXtvcGFjaXR5OjF9O2UuY3NzQmVmb3JlPXt0b3A6MCxsZWZ0OjB9fTthLmZuLmN5Y2xlLnRyYW5zaXRpb25zLnRvc3M9ZnVuY3Rpb24oZSxmLGQpe3ZhciBiPWUuY3NzKCJvdmVyZmxvdyIsInZpc2libGUiKS53aWR0aCgpO3ZhciBjPWUuaGVpZ2h0KCk7ZC5iZWZvcmUucHVzaChmdW5jdGlvbihpLGcsaCl7YS5mbi5jeWNsZS5jb21tb25SZXNldChpLGcsaCx0cnVlLHRydWUsdHJ1ZSk7aWYoIWguYW5pbU91dC5sZWZ0JiYhaC5hbmltT3V0LnRvcCl7aC5hbmltT3V0PXtsZWZ0OmIqMix0b3A6LWMvMixvcGFjaXR5OjB9fWVsc2V7aC5hbmltT3V0Lm9wYWNpdHk9MH19KTtkLmNzc0JlZm9yZT17bGVmdDowLHRvcDowfTtkLmFuaW1Jbj17bGVmdDowfX07YS5mbi5jeWNsZS50cmFuc2l0aW9ucy53aXBlPWZ1bmN0aW9uKHMsbSxlKXt2YXIgcT1zLmNzcygib3ZlcmZsb3ciLCJoaWRkZW4iKS53aWR0aCgpO3ZhciBqPXMuaGVpZ2h0KCk7ZS5jc3NCZWZvcmU9ZS5jc3NCZWZvcmV8fHt9O3ZhciBnO2lmKGUuY2xpcCl7aWYoL2wyci8udGVzdChlLmNsaXApKXtnPSJyZWN0KDBweCAwcHggIitqKyJweCAwcHgpIn1lbHNle2lmKC9yMmwvLnRlc3QoZS5jbGlwKSl7Zz0icmVjdCgwcHggIitxKyJweCAiK2orInB4ICIrcSsicHgpIn1lbHNle2lmKC90MmIvLnRlc3QoZS5jbGlwKSl7Zz0icmVjdCgwcHggIitxKyJweCAwcHggMHB4KSJ9ZWxzZXtpZigvYjJ0Ly50ZXN0KGUuY2xpcCkpe2c9InJlY3QoIitqKyJweCAiK3ErInB4ICIraisicHggMHB4KSJ9ZWxzZXtpZigvem9vbS8udGVzdChlLmNsaXApKXt2YXIgbz1wYXJzZUludChqLzIpO3ZhciBmPXBhcnNlSW50KHEvMik7Zz0icmVjdCgiK28rInB4ICIrZisicHggIitvKyJweCAiK2YrInB4KSJ9fX19fX1lLmNzc0JlZm9yZS5jbGlwPWUuY3NzQmVmb3JlLmNsaXB8fGd8fCJyZWN0KDBweCAwcHggMHB4IDBweCkiO3ZhciBrPWUuY3NzQmVmb3JlLmNsaXAubWF0Y2goLyhcZCspL2cpO3ZhciB1PXBhcnNlSW50KGtbMF0pLGM9cGFyc2VJbnQoa1sxXSksbj1wYXJzZUludChrWzJdKSxpPXBhcnNlSW50KGtbM10pO2UuYmVmb3JlLnB1c2goZnVuY3Rpb24odyxoLHQpe2lmKHc9PWgpe3JldHVybn12YXIgZD1hKHcpLGI9YShoKTthLmZuLmN5Y2xlLmNvbW1vblJlc2V0KHcsaCx0LHRydWUsdHJ1ZSxmYWxzZSk7dC5jc3NBZnRlci5kaXNwbGF5PSJibG9jayI7dmFyIHI9MSxsPXBhcnNlSW50KCh0LnNwZWVkSW4vMTMpKS0xOyhmdW5jdGlvbiB2KCl7dmFyIHk9dT91LXBhcnNlSW50KHIqKHUvbCkpOjA7dmFyIHo9aT9pLXBhcnNlSW50KHIqKGkvbCkpOjA7dmFyIEE9bjxqP24rcGFyc2VJbnQociooKGotbikvbHx8MSkpOmo7dmFyIHg9YzxxP2MrcGFyc2VJbnQociooKHEtYykvbHx8MSkpOnE7Yi5jc3Moe2NsaXA6InJlY3QoIit5KyJweCAiK3grInB4ICIrQSsicHggIit6KyJweCkifSk7KHIrKzw9bCk/c2V0VGltZW91dCh2LDEzKTpkLmNzcygiZGlzcGxheSIsIm5vbmUiKX0pKCl9KTtlLmNzc0JlZm9yZT17ZGlzcGxheToiYmxvY2siLG9wYWNpdHk6MSx0b3A6MCxsZWZ0OjB9O2UuYW5pbUluPXtsZWZ0OjB9O2UuYW5pbU91dD17bGVmdDowfX19KShqUXVlcnkpOw=="></script>
-
/*
+
-
* jQuery Cycle Plugin (with Transition Definitions)
+
-
*/
+
-
</script>
+
-
<script type="text/javascript">
+
-
  /* load png for javascript need canvas (HTML5)*/
+
-
function png2js(pngurl){
+
-
  var source = pngurl;
+
-
  var img = document.createElement('img');
+
-
  img.onload = function(){
+
-
    var canvas = document.createElement('canvas');
+
-
    canvas.width = img.width;
+
-
    canvas.height = img.height;
+
-
 
+
-
    var context = canvas.getContext("2d");
+
-
    context.drawImage(img, 0, 0);
+
-
    var imageData = context.getImageData(0, 0, canvas.width, canvas.height),
+
-
      pixels = imageData.data;
+
-
 
+
-
    var script = document.createElement('script');
+
-
    var buffer = [];
+
-
    for (var i = 0, l = pixels.length; i < l; i++) {
+
-
      if (i % 4 == 3) continue; // alpha会影响png还原
+
-
      if (!pixels[i]) break;
+
-
      buffer.push(String.fromCharCode(pixels[i]));
+
-
    }
+
-
    script.src = 'data:text/javascript;charset=utf-8,' + encodeURIComponent(buffer.join(''));
+
-
    document.body.appendChild(script);
+
-
    script.onload = function(){
+
-
      alert(T.date.format(new Date, 'yyyy年M月d日'));
+
-
    }
+
-
    img = null;
+
-
  }
+
-
  img.src = source;
+
-
}
+
-
 
+
-
/* jCarousel */
+
-
png2js("/wiki/images/8/85/Jquery-cycle-all-min-js.png");
+
-
 
+
-
</script>
+
<script type="text/javascript">
<script type="text/javascript">
// gallery.js
// gallery.js

Revision as of 02:13, 21 October 2012

Title

Romantic Getaway

Nunc tortor ante, accumsan vel malesuada vulputate, tempus quis dolor. In ut purus nulla. Etiam tincidunt pharetra metus eget ultricies. Integer mi ante, laoreet cursus.

Read More

Family Getaway

Nunc tortor ante, accumsan vel malesuada vulputate, tempus quis dolor. In ut purus nulla. Etiam tincidunt pharetra metus eget ultricies. Integer mi ante, laoreet cursus.

Read More

Suite Getaway

Nunc tortor ante, accumsan vel malesuada vulputate, tempus quis dolor. In ut purus nulla. Etiam tincidunt pharetra metus eget ultricies. Integer mi ante, laoreet cursus.

Read More

Welcome

Mauris malesuada ultrices consectetur. Suspendisse varius ante quis mauris gravida auctor. Nam cursus felis non ipsum feugiat ullamcorper. Nunc ac aliquet eros.

Nam eget justo velit. Vestibulum dignissim vestibulum volutpat. Morbi quam odio, facilisis ut scelerisque id, pretium blandit diam. Suspendisse quam magna, sollicitudin vitae volutpat et, porttitor ut sem. Mauris nec dolor erat. Vestibulum condimentum libero ac elit rutrum pharetra. Nunc aliquet nisi et erat vulputate pellentesque.

Nullam vel lacus et velit placerat convallis vitae in lorem. Fusce massa risus, viverra ut dapibus ut, tempus sit amet metus. Duis in elit nisi. In hac habitasse platea dictumst.

1

Design Ideas

Pellentesque enim lacus, viverra eu egestas vel, imperdiet non felis. Aliquam erat volutpat. Nullam facilisis aliquet eleifend.

2

Problem Areas

Pellentesque enim lacus, viverra eu egestas vel, imperdiet non felis. Aliquam erat volutpat. Nullam facilisis aliquet eleifend.

3

Green Garden

Pellentesque enim lacus, viverra eu egestas vel, imperdiet non felis. Aliquam erat volutpat. Nullam facilisis aliquet eleifend.

4

Planting Areas

Pellentesque enim lacus, viverra eu egestas vel, imperdiet non felis. Aliquam erat volutpat. Nullam facilisis aliquet eleifend.