packages feed

circle-packing 0.1.0.2 → 0.1.0.3

raw patch · 8 files changed

+254/−8 lines, 8 filesdep ~base

Dependency ranges changed: base

Files

Optimisation/CirclePacking.hs view
@@ -165,7 +165,7 @@ >    position $ map (\(o,(x,y)) -> (p2 (x,y),o)) $ >    packCircles radiusApproximation objects -This generates the following SVG file (if your browser manges to display it):+This generates the following SVG file (if your browser manages to display it):  <<data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIgogICAgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgdmVyc2lvbj0iMS4xIiB3aWR0aD0iNDAwLjAiIGhlaWdodD0iNDEzLjU5NjkxMTI0MzE0NDYzIiBmb250LXNpemU9IjEiIHZpZXdCb3g9IjAgMCA0MDAgNDE0Ij48Zz48ZyBzdHJva2U9InJnYigwLDAsMCkiIHN0cm9rZS1vcGFjaXR5PSIxLjAiIGZpbGw9InJnYig3NSwwLDEzMCkiIGZpbGwtb3BhY2l0eT0iMS4wIiBzdHJva2Utd2lkdGg9IjEuMGUtMiIgZm9udC1zaXplPSIxLjBlbSI+PHBhdGggZD0iTSAyMTEuNjI0MTc2NzI4Njg5NCwyMTguNTc3MzM2MTI0NDM2NTggYyAwLjAsLTM3LjM0Mzg4ODM2NjA0Mjk3NSAtMzAuMjczMjAyOTU3NzQyODU3LC02Ny42MTcwOTEzMjM3ODU4NCAtNjcuNjE3MDkxMzIzNzg1ODMgLTY3LjYxNzA5MTMyMzc4NTg0YyAtMzcuMzQzODg4MzY2MDQyOTc1LC0yLjI4NjY1MzY2Nzc1OTUzMWUtMTUgLTY3LjYxNzA5MTMyMzc4NTg0LDMwLjI3MzIwMjk1Nzc0Mjg1MyAtNjcuNjE3MDkxMzIzNzg1ODQgNjcuNjE3MDkxMzIzNzg1ODFjIC00LjU3MzMwNzMzNTUxOTA2MmUtMTUsMzcuMzQzODg4MzY2MDQyOTc1IDMwLjI3MzIwMjk1Nzc0Mjg1LDY3LjYxNzA5MTMyMzc4NTg0IDY3LjYxNzA5MTMyMzc4NTgxIDY3LjYxNzA5MTMyMzc4NTg0YyAzNy4zNDM4ODgzNjYwNDI5NzUsNi44NTk5NjEwMDMyNzg1OTJlLTE1IDY3LjYxNzA5MTMyMzc4NTg0LC0zMC4yNzMyMDI5NTc3NDI4NDYgNjcuNjE3MDkxMzIzNzg1ODQgLTY3LjYxNzA5MTMyMzc4NThaIiAvPjwvZz48ZyBzdHJva2U9InJnYigwLDAsMCkiIHN0cm9rZS1vcGFjaXR5PSIxLjAiIGZpbGw9InJnYigxNzgsMzQsMzQpIiBmaWxsLW9wYWNpdHk9IjEuMCIgc3Ryb2tlLXdpZHRoPSIxLjBlLTIiIGZvbnQtc2l6ZT0iMS4wZW0iPjxwYXRoIGQ9Ik0gMzM4LjQ0MTU5NTA1NzYyNzQsMjE4LjU3NzMzNjEyNDQzNjU4IGMgMC4wLC0zNS4wMDk4OTUzNDMxNjUzIC0yOC4zODExMjc3NzI4ODM5MzIsLTYzLjM5MTAyMzExNjA0OTIzIC02My4zOTEwMjMxMTYwNDkyMiAtNjMuMzkxMDIzMTE2MDQ5MjNjIC0zNS4wMDk4OTUzNDMxNjUzLC0yLjE0MzczNzgxMzUyNDU2MDNlLTE1IC02My4zOTEwMjMxMTYwNDkyMywyOC4zODExMjc3NzI4ODM5MyAtNjMuMzkxMDIzMTE2MDQ5MjMgNjMuMzkxMDIzMTE2MDQ5MjFjIC00LjI4NzQ3NTYyNzA0OTEyMWUtMTUsMzUuMDA5ODk1MzQzMTY1MyAyOC4zODExMjc3NzI4ODM5MjUsNjMuMzkxMDIzMTE2MDQ5MjMgNjMuMzkxMDIzMTE2MDQ5MjA1IDYzLjM5MTAyMzExNjA0OTIzYyAzNS4wMDk4OTUzNDMxNjUzLDYuNDMxMjEzNDQwNTczNjgxZS0xNSA2My4zOTEwMjMxMTYwNDkyMywtMjguMzgxMTI3NzcyODgzOTIgNjMuMzkxMDIzMTE2MDQ5MjMgLTYzLjM5MTAyMzExNjA0OTJaIiAvPjwvZz48ZyBzdHJva2U9InJnYigwLDAsMCkiIHN0cm9rZS1vcGFjaXR5PSIxLjAiIGZpbGw9InJnYigyNTUsMjI4LDE5NikiIGZpbGwtb3BhY2l0eT0iMS4wIiBzdHJva2Utd2lkdGg9IjEuMGUtMiIgZm9udC1zaXplPSIxLjBlbSI+PHBhdGggZD0iTSAyNzIuNzE2NDUwNDQxOTQwNSwxMTIuNTMwNDQ0NTc5MDI2ODUgYyAwLjAsLTMyLjY3NTkwMjMyMDI4NzYwNSAtMjYuNDg5MDUyNTg4MDI1LC01OS4xNjQ5NTQ5MDgzMTI2MTYgLTU5LjE2NDk1NDkwODMxMjYgLTU5LjE2NDk1NDkwODMxMjYxNmMgLTMyLjY3NTkwMjMyMDI4NzYwNSwtMi4wMDA4MjE5NTkyODk1ODk0ZS0xNSAtNTkuMTY0OTU0OTA4MzEyNjE2LDI2LjQ4OTA1MjU4ODAyNDk5NyAtNTkuMTY0OTU0OTA4MzEyNjE2IDU5LjE2NDk1NDkwODMxMjU5NWMgLTQuMDAxNjQzOTE4NTc5MTc5ZS0xNSwzMi42NzU5MDIzMjAyODc2MDUgMjYuNDg5MDUyNTg4MDI0OTkzLDU5LjE2NDk1NDkwODMxMjYxNiA1OS4xNjQ5NTQ5MDgzMTI1OSA1OS4xNjQ5NTQ5MDgzMTI2MTZjIDMyLjY3NTkwMjMyMDI4NzYwNSw2LjAwMjQ2NTg3Nzg2ODc2OGUtMTUgNTkuMTY0OTU0OTA4MzEyNjE2LC0yNi40ODkwNTI1ODgwMjQ5OSA1OS4xNjQ5NTQ5MDgzMTI2MTYgLTU5LjE2NDk1NDkwODMxMjU4WiIgLz48L2c+PGcgc3Ryb2tlPSJyZ2IoMCwwLDApIiBzdHJva2Utb3BhY2l0eT0iMS4wIiBmaWxsPSJyZ2IoMCwyNTUsMjU1KSIgZmlsbC1vcGFjaXR5PSIxLjAiIHN0cm9rZS13aWR0aD0iMS4wZS0yIiBmb250LXNpemU9IjEuMGVtIj48cGF0aCBkPSJNIDI2OC4zNTQwMjA2NDU3MTYxNiwzMTkuNjI0ODYxNTkyOTU1NCBjIDAuMCwtMzAuMzQxOTA5Mjk3NDA5OTE2IC0yNC41OTY5Nzc0MDMxNjYwNywtNTQuOTM4ODg2NzAwNTc1OTkgLTU0LjkzODg4NjcwMDU3NTk4IC01NC45Mzg4ODY3MDA1NzU5OWMgLTMwLjM0MTkwOTI5NzQwOTkxNiwtMS44NTc5MDYxMDUwNTQ2MTg1ZS0xNSAtNTQuOTM4ODg2NzAwNTc1OTksMjQuNTk2OTc3NDAzMTY2MDY1IC01NC45Mzg4ODY3MDA1NzU5OSA1NC45Mzg4ODY3MDA1NzU5N2MgLTMuNzE1ODEyMjEwMTA5MjM3ZS0xNSwzMC4zNDE5MDkyOTc0MDk5MTYgMjQuNTk2OTc3NDAzMTY2MDYsNTQuOTM4ODg2NzAwNTc1OTkgNTQuOTM4ODg2NzAwNTc1OTcgNTQuOTM4ODg2NzAwNTc1OTljIDMwLjM0MTkwOTI5NzQwOTkxNiw1LjU3MzcxODMxNTE2Mzg1NTZlLTE1IDU0LjkzODg4NjcwMDU3NTk5LC0yNC41OTY5Nzc0MDMxNjYwNTggNTQuOTM4ODg2NzAwNTc1OTkgLTU0LjkzODg4NjcwMDU3NTk2NFoiIC8+PC9nPjxnIHN0cm9rZT0icmdiKDAsMCwwKSIgc3Ryb2tlLW9wYWNpdHk9IjEuMCIgZmlsbD0icmdiKDI1NSwwLDI1NSkiIGZpbGwtb3BhY2l0eT0iMS4wIiBzdHJva2Utd2lkdGg9IjEuMGUtMiIgZm9udC1zaXplPSIxLjBlbSI+PHBhdGggZD0iTSAxNTQuNDgzMDk0NTQ5MjU1OTUsMTA3LjI2NDU4Mzk2Mjg5Mjk3IGMgMC4wLC0yOC4wMDc5MTYyNzQ1MzIyMyAtMjIuNzA0OTAyMjE4MzA3MTQsLTUwLjcxMjgxODQ5MjgzOTM3NSAtNTAuNzEyODE4NDkyODM5MzYgLTUwLjcxMjgxODQ5MjgzOTM3NWMgLTI4LjAwNzkxNjI3NDUzMjIzLC0xLjcxNDk5MDI1MDgxOTY0NzhlLTE1IC01MC43MTI4MTg0OTI4MzkzNzUsMjIuNzA0OTAyMjE4MzA3MTM3IC01MC43MTI4MTg0OTI4MzkzNzUgNTAuNzEyODE4NDkyODM5MzZjIC0zLjQyOTk4MDUwMTYzOTI5NTZlLTE1LDI4LjAwNzkxNjI3NDUzMjIzIDIyLjcwNDkwMjIxODMwNzEzMyw1MC43MTI4MTg0OTI4MzkzNzUgNTAuNzEyODE4NDkyODM5MzU0IDUwLjcxMjgxODQ5MjgzOTM3NWMgMjguMDA3OTE2Mjc0NTMyMjMsNS4xNDQ5NzA3NTI0NTg5NDRlLTE1IDUwLjcxMjgxODQ5MjgzOTM3NSwtMjIuNzA0OTAyMjE4MzA3MTMgNTAuNzEyODE4NDkyODM5Mzc1IC01MC43MTI4MTg0OTI4MzkzNVoiIC8+PC9nPjxnIHN0cm9rZT0icmdiKDAsMCwwKSIgc3Ryb2tlLW9wYWNpdHk9IjEuMCIgZmlsbD0icmdiKDI1NSwyMjgsMTk2KSIgZmlsbC1vcGFjaXR5PSIxLjAiIHN0cm9rZS13aWR0aD0iMS4wZS0yIiBmb250LXNpemU9IjEuMGVtIj48cGF0aCBkPSJNIDM1OS4yMjgwNDg0ODcyOTYsMTQ1LjE0NTI2MjY2NTA1MDg0IGwgOS4xNDE0ODgyNjkwNDgwMTUsLTI4LjEzNDYwNzk1MDkyOTgxNiBsIC05LjE0MTQ4ODI2OTA0ODAzNCwtMjguMTM0NjA3OTUwOTI5ODE2IGwgLTIzLjkzMjcyNjk5NjEyNjE3OCwtMTcuMzg4MTQzOTczODI3NjQ2IGggLTI5LjU4MjQ3NzQ1NDE1NjMgbCAtMjMuOTMyNzI2OTk2MTI2MTg1LDE3LjM4ODE0Mzk3MzgyNzY2NyBsIC05LjE0MTQ4ODI2OTA0ODAxNSwyOC4xMzQ2MDc5NTA5Mjk4MTYgbCA5LjE0MTQ4ODI2OTA0ODAyNywyOC4xMzQ2MDc5NTA5Mjk4MTYgbCAyMy45MzI3MjY5OTYxMjYxOCwxNy4zODgxNDM5NzM4Mjc2NTYgaCAyOS41ODI0Nzc0NTQxNTYzIFoiIC8+PC9nPjxnIHN0cm9rZT0icmdiKDAsMCwwKSIgc3Ryb2tlLW9wYWNpdHk9IjEuMCIgZmlsbD0icmdiKDI1NSwyNTUsMCkiIGZpbGwtb3BhY2l0eT0iMS4wIiBzdHJva2Utd2lkdGg9IjEuMGUtMiIgZm9udC1zaXplPSIxLjBlbSI+PHBhdGggZD0iTSAxNTguODE0MjMzMjE1ODQ4NTYsMzI4LjIyNzMyOTM2NzU4MzYgYyAwLjAsLTI1LjY3MzkyMzI1MTY1NDU0MyAtMjAuODEyODI3MDMzNDQ4MjA4LC00Ni40ODY3NTAyODUxMDI3NiAtNDYuNDg2NzUwMjg1MTAyNzUgLTQ2LjQ4Njc1MDI4NTEwMjc2YyAtMjUuNjczOTIzMjUxNjU0NTQzLC0xLjU3MjA3NDM5NjU4NDY3NzFlLTE1IC00Ni40ODY3NTAyODUxMDI3NiwyMC44MTI4MjcwMzM0NDgyMDggLTQ2LjQ4Njc1MDI4NTEwMjc2IDQ2LjQ4Njc1MDI4NTEwMjc0NGMgLTMuMTQ0MTQ4NzkzMTY5MzU0MmUtMTUsMjUuNjczOTIzMjUxNjU0NTQzIDIwLjgxMjgyNzAzMzQ0ODIwNSw0Ni40ODY3NTAyODUxMDI3NiA0Ni40ODY3NTAyODUxMDI3NCA0Ni40ODY3NTAyODUxMDI3NmMgMjUuNjczOTIzMjUxNjU0NTQzLDQuNzE2MjIzMTg5NzU0MDMxZS0xNSA0Ni40ODY3NTAyODUxMDI3NiwtMjAuODEyODI3MDMzNDQ4MiA0Ni40ODY3NTAyODUxMDI3NiAtNDYuNDg2NzUwMjg1MTAyNzNaIiAvPjwvZz48ZyBzdHJva2U9InJnYigwLDAsMCkiIHN0cm9rZS1vcGFjaXR5PSIxLjAiIGZpbGw9InJnYigwLDAsMjU1KSIgZmlsbC1vcGFjaXR5PSIxLjAiIHN0cm9rZS13aWR0aD0iMS4wZS0yIiBmb250LXNpemU9IjEuMGVtIj48cGF0aCBkPSJNIDg0LjUyMTM2NDE1NDczMjI3LDE3Ny4wMTYzNTg2NTk0ODQzMyBjIDAuMCwtMjMuMzM5OTMwMjI4Nzc2ODU0IC0xOC45MjA3NTE4NDg1ODkyOCwtNDIuMjYwNjgyMDc3MzY2MTQgLTQyLjI2MDY4MjA3NzM2NjEzNCAtNDIuMjYwNjgyMDc3MzY2MTRjIC0yMy4zMzk5MzAyMjg3NzY4NTQsLTEuNDI5MTU4NTQyMzQ5NzA2NGUtMTUgLTQyLjI2MDY4MjA3NzM2NjE0LDE4LjkyMDc1MTg0ODU4OTI4IC00Mi4yNjA2ODIwNzczNjYxNCA0Mi4yNjA2ODIwNzczNjYxM2MgLTIuODU4MzE3MDg0Njk5NDEzZS0xNSwyMy4zMzk5MzAyMjg3NzY4NTQgMTguOTIwNzUxODQ4NTg5Mjc2LDQyLjI2MDY4MjA3NzM2NjE0IDQyLjI2MDY4MjA3NzM2NjEyIDQyLjI2MDY4MjA3NzM2NjE0YyAyMy4zMzk5MzAyMjg3NzY4NTQsNC4yODc0NzU2MjcwNDkxMTllLTE1IDQyLjI2MDY4MjA3NzM2NjE0LC0xOC45MjA3NTE4NDg1ODkyNzMgNDIuMjYwNjgyMDc3MzY2MTQgLTQyLjI2MDY4MjA3NzM2NjEyWiIgLz48L2c+PGcgc3Ryb2tlPSJyZ2IoMCwwLDApIiBzdHJva2Utb3BhY2l0eT0iMS4wIiBmaWxsPSJyZ2IoMCwyNTUsMjU1KSIgZmlsbC1vcGFjaXR5PSIxLjAiIHN0cm9rZS13aWR0aD0iMS4wZS0yIiBmb250LXNpemU9IjEuMGVtIj48cGF0aCBkPSJNIDgwLjk5MTIyMjMyMzIwMjQsMjkzLjIwNjgxMzM3OTg1MTMgbCA3LjgzNTU2MTM3MzQ2OTcyNjUsLTI0LjExNTM3ODI0MzY1NDEyOCBsIC03LjgzNTU2MTM3MzQ2OTc0MywtMjQuMTE1Mzc4MjQzNjU0MTI4IGwgLTIwLjUxMzc2NTk5NjY3OTU4LC0xNC45MDQxMjM0MDYxMzc5ODQgaCAtMjUuMzU2NDA5MjQ2NDE5Njg4IGwgLTIwLjUxMzc2NTk5NjY3OTU4OCwxNC45MDQxMjM0MDYxMzggbCAtNy44MzU1NjEzNzM0Njk3MjY1LDI0LjExNTM3ODI0MzY1NDEzIGwgNy44MzU1NjEzNzM0Njk3MzgsMjQuMTE1Mzc4MjQzNjU0MTMgbCAyMC41MTM3NjU5OTY2Nzk1ODQsMTQuOTA0MTIzNDA2MTM3OTkxIGggMjUuMzU2NDA5MjQ2NDE5Njg4IFoiIC8+PC9nPjxnIHN0cm9rZT0icmdiKDAsMCwwKSIgc3Ryb2tlLW9wYWNpdHk9IjEuMCIgZmlsbD0icmdiKDI1NSwwLDApIiBmaWxsLW9wYWNpdHk9IjEuMCIgc3Ryb2tlLXdpZHRoPSIxLjBlLTIiIGZvbnQtc2l6ZT0iMS4wZW0iPjxwYXRoIGQ9Ik0gMzQ0LjMzODA0MjkwOTQzNzk1LDMxNS4wOTY2MzI0NDcwODQ0NiBjIDAuMCwtMjEuMDA1OTM3MjA1ODk5MTczIC0xNy4wMjg2NzY2NjM3MzAzNTUsLTM4LjAzNDYxMzg2OTYyOTUzIC0zOC4wMzQ2MTM4Njk2Mjk1MjQgLTM4LjAzNDYxMzg2OTYyOTUzYyAtMjEuMDA1OTM3MjA1ODk5MTczLC0xLjI4NjI0MjY4ODExNDczNmUtMTUgLTM4LjAzNDYxMzg2OTYyOTUzLDE3LjAyODY3NjY2MzczMDM1IC0zOC4wMzQ2MTM4Njk2Mjk1MyAzOC4wMzQ2MTM4Njk2Mjk1MmMgLTIuNTcyNDg1Mzc2MjI5NDcyZS0xNSwyMS4wMDU5MzcyMDU4OTkxNzMgMTcuMDI4Njc2NjYzNzMwMzUsMzguMDM0NjEzODY5NjI5NTMgMzguMDM0NjEzODY5NjI5NTIgMzguMDM0NjEzODY5NjI5NTNjIDIxLjAwNTkzNzIwNTg5OTE3MywzLjg1ODcyODA2NDM0NDIwOGUtMTUgMzguMDM0NjEzODY5NjI5NTMsLTE3LjAyODY3NjY2MzczMDM0OCAzOC4wMzQ2MTM4Njk2Mjk1MyAtMzguMDM0NjEzODY5NjI5NTFaIiAvPjwvZz48ZyBzdHJva2U9InJnYigwLDAsMCkiIHN0cm9rZS1vcGFjaXR5PSIxLjAiIGZpbGw9InJnYigyNTUsMCwyNTUpIiBmaWxsLW9wYWNpdHk9IjEuMCIgc3Ryb2tlLXdpZHRoPSIxLjBlLTIiIGZvbnQtc2l6ZT0iMS4wZW0iPjxwYXRoIGQ9Ik0gMTgyLjgyNDUxNTUxMTc5NDE3LDU5Ljc2MzU2MzczNTI1MzY3IGwgNi41Mjk2MzQ0Nzc4OTE0MzksLTIwLjA5NjE0ODUzNjM3ODQ0IGwgLTYuNTI5NjM0NDc3ODkxNDUzLC0yMC4wOTYxNDg1MzYzNzg0NCBsIC0xNy4wOTQ4MDQ5OTcyMzI5ODgsLTEyLjQyMDEwMjgzODQ0ODMyIGggLTIxLjEzMDM0MTAzODY4MzA3NCBsIC0xNy4wOTQ4MDQ5OTcyMzI5OSwxMi40MjAxMDI4Mzg0NDgzMzUgbCAtNi41Mjk2MzQ0Nzc4OTE0MzksMjAuMDk2MTQ4NTM2Mzc4NDQzIGwgNi41Mjk2MzQ0Nzc4OTE0NDksMjAuMDk2MTQ4NTM2Mzc4NDQzIGwgMTcuMDk0ODA0OTk3MjMyOTg4LDEyLjQyMDEwMjgzODQ0ODMyOCBoIDIxLjEzMDM0MTAzODY4MzA3NCBaIiAvPjwvZz48ZyBzdHJva2U9InJnYigwLDAsMCkiIHN0cm9rZS1vcGFjaXR5PSIxLjAiIGZpbGw9InJnYig3NSwwLDEzMCkiIGZpbGwtb3BhY2l0eT0iMS4wIiBzdHJva2Utd2lkdGg9IjEuMGUtMiIgZm9udC1zaXplPSIxLjBlbSI+PHBhdGggZD0iTSA0MDAuMCwxODQuNzIxNzg3MjQyNDA1NzUgYyAwLjAsLTE4LjY3MTk0NDE4MzAyMTQ4NCAtMTUuMTM2NjAxNDc4ODcxNDI1LC0zMy44MDg1NDU2NjE4OTI5MTQgLTMzLjgwODU0NTY2MTg5MjkxIC0zMy44MDg1NDU2NjE4OTI5MTRjIC0xOC42NzE5NDQxODMwMjE0ODQsLTEuMTQzMzI2ODMzODc5NzY1MmUtMTUgLTMzLjgwODU0NTY2MTg5MjkxNCwxNS4xMzY2MDE0Nzg4NzE0MjMgLTMzLjgwODU0NTY2MTg5MjkxNCAzMy44MDg1NDU2NjE4OTI5YyAtMi4yODY2NTM2Njc3NTk1MzA0ZS0xNSwxOC42NzE5NDQxODMwMjE0ODQgMTUuMTM2NjAxNDc4ODcxNDIxLDMzLjgwODU0NTY2MTg5MjkxNCAzMy44MDg1NDU2NjE4OTI5IDMzLjgwODU0NTY2MTg5MjkxNGMgMTguNjcxOTQ0MTgzMDIxNDg0LDMuNDI5OTgwNTAxNjM5Mjk1MmUtMTUgMzMuODA4NTQ1NjYxODkyOTE0LC0xNS4xMzY2MDE0Nzg4NzE0MiAzMy44MDg1NDU2NjE4OTI5MTQgLTMzLjgwODU0NTY2MTg5Mjg5WiIgLz48L2c+PGcgc3Ryb2tlPSJyZ2IoMCwwLDApIiBzdHJva2Utb3BhY2l0eT0iMS4wIiBmaWxsPSJyZ2IoMTc4LDM0LDM0KSIgZmlsbC1vcGFjaXR5PSIxLjAiIHN0cm9rZS13aWR0aD0iMS4wZS0yIiBmb250LXNpemU9IjEuMGVtIj48cGF0aCBkPSJNIDMwOC4wMzQ1NDc0NzMzODk5LDUxLjk2NDE1MTYxOTQwNzYgYyAwLjAsLTE2LjMzNzk1MTE2MDE0MzggLTEzLjI0NDUyNjI5NDAxMjQ5NywtMjkuNTgyNDc3NDU0MTU2MyAtMjkuNTgyNDc3NDU0MTU2Mjk0IC0yOS41ODI0Nzc0NTQxNTYzYyAtMTYuMzM3OTUxMTYwMTQzOCwtMS4wMDA0MTA5Nzk2NDQ3OTQ1ZS0xNSAtMjkuNTgyNDc3NDU0MTU2MywxMy4yNDQ1MjYyOTQwMTI0OTcgLTI5LjU4MjQ3NzQ1NDE1NjMgMjkuNTgyNDc3NDU0MTU2MjljIC0yLjAwMDgyMTk1OTI4OTU4OWUtMTUsMTYuMzM3OTUxMTYwMTQzOCAxMy4yNDQ1MjYyOTQwMTI0OTUsMjkuNTgyNDc3NDU0MTU2MyAyOS41ODI0Nzc0NTQxNTYyODcgMjkuNTgyNDc3NDU0MTU2M2MgMTYuMzM3OTUxMTYwMTQzOCwzLjAwMTIzMjkzODkzNDM4MzNlLTE1IDI5LjU4MjQ3NzQ1NDE1NjMsLTEzLjI0NDUyNjI5NDAxMjQ5MyAyOS41ODI0Nzc0NTQxNTYzIC0yOS41ODI0Nzc0NTQxNTYyODNaIiAvPjwvZz48ZyBzdHJva2U9InJnYigwLDAsMCkiIHN0cm9rZS1vcGFjaXR5PSIxLjAiIGZpbGw9InJnYigxNzgsMzQsMzQpIiBmaWxsLW9wYWNpdHk9IjEuMCIgc3Ryb2tlLXdpZHRoPSIxLjBlLTIiIGZvbnQtc2l6ZT0iMS4wZW0iPjxwYXRoIGQ9Ik0gMzY5LjAwNDgxOTM3NzAxODMsMjkyLjk4NjYwMTU5ODc1OTY1IGwgMTQuNzkxMjM4NzI3MDc4MTU4LC0yNS42MTkxNzY5ODIxNzk3NiBsIC0xNC43OTEyMzg3MjcwNzgxNCwtMjUuNjE5MTc2OTgyMTc5NzY2IGwgLTI5LjU4MjQ3NzQ1NDE1NjI5NCwtOS44NTI5NDQyNzg1MTc2NzJlLTE1IGwgLTE0Ljc5MTIzODcyNzA3ODE2MywyNS42MTkxNzY5ODIxNzk3NTYgbCAxNC43OTEyMzg3MjcwNzgxMzEsMjUuNjE5MTc2OTgyMTc5NzczIFoiIC8+PC9nPjxnIHN0cm9rZT0icmdiKDAsMCwwKSIgc3Ryb2tlLW9wYWNpdHk9IjEuMCIgZmlsbD0icmdiKDI1NSwyNTUsMCkiIGZpbGwtb3BhY2l0eT0iMS4wIiBzdHJva2Utd2lkdGg9IjEuMGUtMiIgZm9udC1zaXplPSIxLjBlbSI+PHBhdGggZD0iTSAyMzcuMjk5OTIyNzM0NDU0MDQsNDIuMDg5OTE5OTI4OTY0MTY0IGwgNS4yMjM3MDc1ODIzMTMxNTIsLTE2LjA3NjkxODgyOTEwMjc1NSBsIC01LjIyMzcwNzU4MjMxMzE2MywtMTYuMDc2OTE4ODI5MTAyNzU1IGwgLTEzLjY3NTg0Mzk5Nzc4NjM4OSwtOS45MzYwODIyNzA3NTg2NTcgaCAtMTYuOTA0MjcyODMwOTQ2NDYgbCAtMTMuNjc1ODQzOTk3Nzg2Mzk0LDkuOTM2MDgyMjcwNzU4NjY4IGwgLTUuMjIzNzA3NTgyMzEzMTUyLDE2LjA3NjkxODgyOTEwMjc1NSBsIDUuMjIzNzA3NTgyMzEzMTYsMTYuMDc2OTE4ODI5MTAyNzU1IGwgMTMuNjc1ODQzOTk3Nzg2MzkzLDkuOTM2MDgyMjcwNzU4NjYyIGggMTYuOTA0MjcyODMwOTQ2NDYgWiIgLz48L2c+PGcgc3Ryb2tlPSJyZ2IoMCwwLDApIiBzdHJva2Utb3BhY2l0eT0iMS4wIiBmaWxsPSJyZ2IoMjU1LDIyOCwxOTYpIiBmaWxsLW9wYWNpdHk9IjEuMCIgc3Ryb2tlLXdpZHRoPSIxLjBlLTIiIGZvbnQtc2l6ZT0iMS4wZW0iPjxwYXRoIGQ9Ik0gMTg2LjcwMTkzODQyNjg0NzUsMzgwLjc3NjkwODQyOTI2NDk1IGMgMC4wLC0xNC4wMDM5NTgxMzcyNjYxMTYgLTExLjM1MjQ1MTEwOTE1MzU3LC0yNS4zNTY0MDkyNDY0MTk2ODggLTI1LjM1NjQwOTI0NjQxOTY4IC0yNS4zNTY0MDkyNDY0MTk2ODhjIC0xNC4wMDM5NTgxMzcyNjYxMTYsLTguNTc0OTUxMjU0MDk4MjM5ZS0xNiAtMjUuMzU2NDA5MjQ2NDE5Njg4LDExLjM1MjQ1MTEwOTE1MzU2OCAtMjUuMzU2NDA5MjQ2NDE5Njg4IDI1LjM1NjQwOTI0NjQxOTY4YyAtMS43MTQ5OTAyNTA4MTk2NDc4ZS0xNSwxNC4wMDM5NTgxMzcyNjYxMTYgMTEuMzUyNDUxMTA5MTUzNTY2LDI1LjM1NjQwOTI0NjQxOTY4OCAyNS4zNTY0MDkyNDY0MTk2NzcgMjUuMzU2NDA5MjQ2NDE5Njg4YyAxNC4wMDM5NTgxMzcyNjYxMTYsMi41NzI0ODUzNzYyMjk0NzJlLTE1IDI1LjM1NjQwOTI0NjQxOTY4OCwtMTEuMzUyNDUxMTA5MTUzNTY1IDI1LjM1NjQwOTI0NjQxOTY4OCAtMjUuMzU2NDA5MjQ2NDE5NjczWiIgLz48L2c+PGcgc3Ryb2tlPSJyZ2IoMCwwLDApIiBzdHJva2Utb3BhY2l0eT0iMS4wIiBmaWxsPSJyZ2IoMjU1LDIyOCwxOTYpIiBmaWxsLW9wYWNpdHk9IjEuMCIgc3Ryb2tlLXdpZHRoPSIxLjBlLTIiIGZvbnQtc2l6ZT0iMS4wZW0iPjxwYXRoIGQ9Ik0gMjg4LjIwOTYxMDg3MjA3NjEsMzkyLjQ4ODgyNzg0NDg1OTc3IGwgMTIuNjc4MjA0NjIzMjA5ODQ5LC0yMS45NTkyOTQ1NTYxNTQwOCBsIC0xMi42NzgyMDQ2MjMyMDk4MzUsLTIxLjk1OTI5NDU1NjE1NDA4NCBsIC0yNS4zNTY0MDkyNDY0MTk2OCwtOC40NDUzODA4MTAxNTgwMDZlLTE1IGwgLTEyLjY3ODIwNDYyMzIwOTg1NCwyMS45NTkyOTQ1NTYxNTQwNzcgbCAxMi42NzgyMDQ2MjMyMDk4MjYsMjEuOTU5Mjk0NTU2MTU0MDk1IFoiIC8+PC9nPjxnIHN0cm9rZT0icmdiKDAsMCwwKSIgc3Ryb2tlLW9wYWNpdHk9IjEuMCIgZmlsbD0icmdiKDAsMjU1LDI1NSkiIGZpbGwtb3BhY2l0eT0iMS4wIiBzdHJva2Utd2lkdGg9IjEuMGUtMiIgZm9udC1zaXplPSIxLjBlbSI+PHBhdGggZD0iTSA1My4zOTMzMjAwMDg2Mjg2MiwxMTQuNDAxMzYwNjIyMDc0MDEgYyAwLjAsLTExLjY2OTk2NTExNDM4ODQzIC05LjQ2MDM3NTkyNDI5NDY0MiwtMjEuMTMwMzQxMDM4NjgzMDc0IC0yMS4xMzAzNDEwMzg2ODMwNyAtMjEuMTMwMzQxMDM4NjgzMDc0YyAtMTEuNjY5OTY1MTE0Mzg4NDMsLTcuMTQ1NzkyNzExNzQ4NTMzZS0xNiAtMjEuMTMwMzQxMDM4NjgzMDc0LDkuNDYwMzc1OTI0Mjk0NjQgLTIxLjEzMDM0MTAzODY4MzA3NCAyMS4xMzAzNDEwMzg2ODMwNjdjIC0xLjQyOTE1ODU0MjM0OTcwNjZlLTE1LDExLjY2OTk2NTExNDM4ODQzIDkuNDYwMzc1OTI0Mjk0NjQsMjEuMTMwMzQxMDM4NjgzMDc0IDIxLjEzMDM0MTAzODY4MzA2MyAyMS4xMzAzNDEwMzg2ODMwNzRjIDExLjY2OTk2NTExNDM4ODQzLDIuMTQzNzM3ODEzNTI0NTZlLTE1IDIxLjEzMDM0MTAzODY4MzA3NCwtOS40NjAzNzU5MjQyOTQ2MzggMjEuMTMwMzQxMDM4NjgzMDc0IC0yMS4xMzAzNDEwMzg2ODMwNjNaIiAvPjwvZz48ZyBzdHJva2U9InJnYigwLDAsMCkiIHN0cm9rZS1vcGFjaXR5PSIxLjAiIGZpbGw9InJnYigwLDI1NSwyNTUpIiBmaWxsLW9wYWNpdHk9IjEuMCIgc3Ryb2tlLXdpZHRoPSIxLjBlLTIiIGZvbnQtc2l6ZT0iMS4wZW0iPjxwYXRoIGQ9Ik0gMjE2LjA3ODY0MDEyNTU3NDQ1LDQxMy41OTY5MTEyNDMxNDQ2MyBsIDEwLjU2NTE3MDUxOTM0MTU0MiwtMTguMjk5NDEyMTMwMTI4NCBsIC0xMC41NjUxNzA1MTkzNDE1MywtMTguMjk5NDEyMTMwMTI4NDA2IGwgLTIxLjEzMDM0MTAzODY4MzA3LC03LjAzNzgxNzM0MTc5ODMzOWUtMTUgbCAtMTAuNTY1MTcwNTE5MzQxNTQ2LDE4LjI5OTQxMjEzMDEyODQgbCAxMC41NjUxNzA1MTkzNDE1MjMsMTguMjk5NDEyMTMwMTI4NDEzIFoiIC8+PC9nPjxnIHN0cm9rZT0icmdiKDAsMCwwKSIgc3Ryb2tlLW9wYWNpdHk9IjEuMCIgZmlsbD0icmdiKDAsMCwyNTUpIiBmaWxsLW9wYWNpdHk9IjEuMCIgc3Ryb2tlLXdpZHRoPSIxLjBlLTIiIGZvbnQtc2l6ZT0iMS4wZW0iPjxwYXRoIGQ9Ik0gMTE3LjE3Mzg2NTU4OTUyMjU2LDQ4LjE1MzU2MDQwODQxODUyIGwgMy45MTc3ODA2ODY3MzQ4NjMyLC0xMi4wNTc2ODkxMjE4MjcwNjQgbCAtMy45MTc3ODA2ODY3MzQ4NzE3LC0xMi4wNTc2ODkxMjE4MjcwNjQgbCAtMTAuMjU2ODgyOTk4MzM5NzksLTcuNDUyMDYxNzAzMDY4OTkyIGggLTEyLjY3ODIwNDYyMzIwOTg0NCBsIC0xMC4yNTY4ODI5OTgzMzk3OTQsNy40NTIwNjE3MDMwNjkgbCAtMy45MTc3ODA2ODY3MzQ4NjMyLDEyLjA1NzY4OTEyMTgyNzA2NiBsIDMuOTE3NzgwNjg2NzM0ODY5LDEyLjA1NzY4OTEyMTgyNzA2NiBsIDEwLjI1Njg4Mjk5ODMzOTc5Miw3LjQ1MjA2MTcwMzA2ODk5NTUgaCAxMi42NzgyMDQ2MjMyMDk4NDQgWiIgLz48L2c+PGcgc3Ryb2tlPSJyZ2IoMCwwLDApIiBzdHJva2Utb3BhY2l0eT0iMS4wIiBmaWxsPSJyZ2IoMjU1LDAsMjU1KSIgZmlsbC1vcGFjaXR5PSIxLjAiIHN0cm9rZS13aWR0aD0iMS4wZS0yIiBmb250LXNpemU9IjEuMGVtIj48cGF0aCBkPSJNIDY1LjgzNTE3NDI1NTU2MDk5LDMyNy4wMTY3NTA5OTk0MTQxNyBjIDAuMCwtOS4zMzU5NzIwOTE1MTA3NDQgLTcuNTY4MzAwNzM5NDM1NzE0LC0xNi45MDQyNzI4MzA5NDY0NiAtMTYuOTA0MjcyODMwOTQ2NDU3IC0xNi45MDQyNzI4MzA5NDY0NmMgLTkuMzM1OTcyMDkxNTEwNzQ0LC01LjcxNjYzNDE2OTM5ODgyN2UtMTYgLTE2LjkwNDI3MjgzMDk0NjQ2LDcuNTY4MzAwNzM5NDM1NzEzIC0xNi45MDQyNzI4MzA5NDY0NiAxNi45MDQyNzI4MzA5NDY0NTRjIC0xLjE0MzMyNjgzMzg3OTc2NTRlLTE1LDkuMzM1OTcyMDkxNTEwNzQ0IDcuNTY4MzAwNzM5NDM1NzEyNSwxNi45MDQyNzI4MzA5NDY0NiAxNi45MDQyNzI4MzA5NDY0NTQgMTYuOTA0MjcyODMwOTQ2NDZjIDkuMzM1OTcyMDkxNTEwNzQ0LDEuNzE0OTkwMjUwODE5NjQ4ZS0xNSAxNi45MDQyNzI4MzA5NDY0NiwtNy41NjgzMDA3Mzk0MzU3MTIgMTYuOTA0MjcyODMwOTQ2NDYgLTE2LjkwNDI3MjgzMDk0NjQ1WiIgLz48L2c+PGcgc3Ryb2tlPSJyZ2IoMCwwLDApIiBzdHJva2Utb3BhY2l0eT0iMS4wIiBmaWxsPSJyZ2IoMjU1LDAsMjU1KSIgZmlsbC1vcGFjaXR5PSIxLjAiIHN0cm9rZS13aWR0aD0iMS4wZS0yIiBmb250LXNpemU9IjEuMGVtIj48cGF0aCBkPSJNIDUxLjMxNDc2MDQ5MjgyMzcxNiw5Mi41MDcxNjA3NDk4MDM2OSBsIDguNDUyMTM2NDE1NDczMjM0LC0xNC42Mzk1Mjk3MDQxMDI3MjIgbCAtOC40NTIxMzY0MTU0NzMyMjUsLTE0LjYzOTUyOTcwNDEwMjcyNiBsIC0xNi45MDQyNzI4MzA5NDY0NTcsLTUuNjMwMjUzODczNDM4NjcxZS0xNSBsIC04LjQ1MjEzNjQxNTQ3MzIzNywxNC42Mzk1Mjk3MDQxMDI3MiBsIDguNDUyMTM2NDE1NDczMjIsMTQuNjM5NTI5NzA0MTAyNzMxIFoiIC8+PC9nPjxnIHN0cm9rZT0icmdiKDAsMCwwKSIgc3Ryb2tlLW9wYWNpdHk9IjEuMCIgZmlsbD0icmdiKDI1NSwwLDApIiBmaWxsLW9wYWNpdHk9IjEuMCIgc3Ryb2tlLXdpZHRoPSIxLjBlLTIiIGZvbnQtc2l6ZT0iMS4wZW0iPjxwYXRoIGQ9Ik0gMjQ5Ljc1NjU1NTA1Mjc0ODE1LDM5MS40NjgyNDY4NjQ0MzYxNCBsIDIuNjExODUzNzkxMTU2NTc1MywtOC4wMzg0NTk0MTQ1NTEzNzYgbCAtMi42MTE4NTM3OTExNTY1ODEsLTguMDM4NDU5NDE0NTUxMzc2IGwgLTYuODM3OTIxOTk4ODkzMTk0LC00Ljk2ODA0MTEzNTM3OTMyOCBoIC04LjQ1MjEzNjQxNTQ3MzIyOSBsIC02LjgzNzkyMTk5ODg5MzE5NSw0Ljk2ODA0MTEzNTM3OTMzMyBsIC0yLjYxMTg1Mzc5MTE1NjU3NTMsOC4wMzg0NTk0MTQ1NTEzNzYgbCAyLjYxMTg1Mzc5MTE1NjU3OTMsOC4wMzg0NTk0MTQ1NTEzNzYgbCA2LjgzNzkyMTk5ODg5MzE5NDUsNC45NjgwNDExMzUzNzkzMyBoIDguNDUyMTM2NDE1NDczMjI5IFoiIC8+PC9nPjxnIHN0cm9rZT0icmdiKDAsMCwwKSIgc3Ryb2tlLW9wYWNpdHk9IjEuMCIgZmlsbD0icmdiKDI1NSwyNTUsMCkiIGZpbGwtb3BhY2l0eT0iMS4wIiBzdHJva2Utd2lkdGg9IjEuMGUtMiIgZm9udC1zaXplPSIxLjBlbSI+PHBhdGggZD0iTSA4NC40MTk5ODAzNDQ3NjQ3Miw1Mi41NDAxMTc2NTI1NzgwOSBjIDAuMCwtNy4wMDE5NzkwNjg2MzMwNTggLTUuNjc2MjI1NTU0NTc2Nzg1LC0xMi42NzgyMDQ2MjMyMDk4NDQgLTEyLjY3ODIwNDYyMzIwOTg0IC0xMi42NzgyMDQ2MjMyMDk4NDRjIC03LjAwMTk3OTA2ODYzMzA1OCwtNC4yODc0NzU2MjcwNDkxMTk2ZS0xNiAtMTIuNjc4MjA0NjIzMjA5ODQ0LDUuNjc2MjI1NTU0NTc2Nzg0IC0xMi42NzgyMDQ2MjMyMDk4NDQgMTIuNjc4MjA0NjIzMjA5ODRjIC04LjU3NDk1MTI1NDA5ODIzOWUtMTYsNy4wMDE5NzkwNjg2MzMwNTggNS42NzYyMjU1NTQ1NzY3ODMsMTIuNjc4MjA0NjIzMjA5ODQ0IDEyLjY3ODIwNDYyMzIwOTgzOCAxMi42NzgyMDQ2MjMyMDk4NDRjIDcuMDAxOTc5MDY4NjMzMDU4LDEuMjg2MjQyNjg4MTE0NzM2ZS0xNSAxMi42NzgyMDQ2MjMyMDk4NDQsLTUuNjc2MjI1NTU0NTc2NzgyIDEyLjY3ODIwNDYyMzIwOTg0NCAtMTIuNjc4MjA0NjIzMjA5ODM3WiIgLz48L2c+PGcgc3Ryb2tlPSJyZ2IoMCwwLDApIiBzdHJva2Utb3BhY2l0eT0iMS4wIiBmaWxsPSJyZ2IoMjU1LDI1NSwwKSIgZmlsbC1vcGFjaXR5PSIxLjAiIHN0cm9rZS13aWR0aD0iMS4wZS0yIiBmb250LXNpemU9IjEuMGVtIj48cGF0aCBkPSJNIDMyNi44MTkzMTQ3NTYyMTUzLDY3LjQ0NjY0ODA4MjM2NjM4IGwgNi4zMzkxMDIzMTE2MDQ5MjQ1LC0xMC45Nzk2NDcyNzgwNzcwNCBsIC02LjMzOTEwMjMxMTYwNDkxNywtMTAuOTc5NjQ3Mjc4MDc3MDQyIGwgLTEyLjY3ODIwNDYyMzIwOTg0LC00LjIyMjY5MDQwNTA3OTAwM2UtMTUgbCAtNi4zMzkxMDIzMTE2MDQ5MjcsMTAuOTc5NjQ3Mjc4MDc3MDM5IGwgNi4zMzkxMDIzMTE2MDQ5MTMsMTAuOTc5NjQ3Mjc4MDc3MDQ4IFoiIC8+PC9nPjxnIHN0cm9rZT0icmdiKDAsMCwwKSIgc3Ryb2tlLW9wYWNpdHk9IjEuMCIgZmlsbD0icmdiKDAsMCwyNTUpIiBmaWxsLW9wYWNpdHk9IjEuMCIgc3Ryb2tlLXdpZHRoPSIxLjBlLTIiIGZvbnQtc2l6ZT0iMS4wZW0iPjxwYXRoIGQ9Ik0gMjIwLjM2NzI5Mjg4NzI0ODgsMTg0LjI1MzE5ODM5MDg5MzA2IGMgMC4wLC00LjY2Nzk4NjA0NTc1NTM3MSAtMy43ODQxNTAzNjk3MTc4NTYyLC04LjQ1MjEzNjQxNTQ3MzIyOSAtOC40NTIxMzY0MTU0NzMyMjcgLTguNDUyMTM2NDE1NDczMjI5YyAtNC42Njc5ODYwNDU3NTUzNzEsLTIuODU4MzE3MDg0Njk5NDEzZS0xNiAtOC40NTIxMzY0MTU0NzMyMjksMy43ODQxNTAzNjk3MTc4NTYgLTguNDUyMTM2NDE1NDczMjI5IDguNDUyMTM2NDE1NDczMjI1YyAtNS43MTY2MzQxNjkzOTg4MjZlLTE2LDQuNjY3OTg2MDQ1NzU1MzcxIDMuNzg0MTUwMzY5NzE3ODU1Myw4LjQ1MjEzNjQxNTQ3MzIyOSA4LjQ1MjEzNjQxNTQ3MzIyNSA4LjQ1MjEzNjQxNTQ3MzIyOWMgNC42Njc5ODYwNDU3NTUzNzEsOC41NzQ5NTEyNTQwOTgyMzhlLTE2IDguNDUyMTM2NDE1NDczMjI5LC0zLjc4NDE1MDM2OTcxNzg1NSA4LjQ1MjEzNjQxNTQ3MzIyOSAtOC40NTIxMzY0MTU0NzMyMjNaIiAvPjwvZz48ZyBzdHJva2U9InJnYigwLDAsMCkiIHN0cm9rZS1vcGFjaXR5PSIxLjAiIGZpbGw9InJnYigwLDAsMjU1KSIgZmlsbC1vcGFjaXR5PSIxLjAiIHN0cm9rZS13aWR0aD0iMS4wZS0yIiBmb250LXNpemU9IjEuMGVtIj48cGF0aCBkPSJNIDIxNi4xNDExNTEwNjQzMjYyLDI2MC4yMTYzMjUxODEzMjI1IGwgNC4yMjYwNjgyMDc3MzY2MTYsLTcuMzE5NzY0ODUyMDUxMzU5IGwgLTQuMjI2MDY4MjA3NzM2NjEyLC03LjMxOTc2NDg1MjA1MTM2MSBsIC04LjQ1MjEzNjQxNTQ3MzIyNywtMi44MTUxMjY5MzY3MTkzMzVlLTE1IGwgLTQuMjI2MDY4MjA3NzM2NjE4LDcuMzE5NzY0ODUyMDUxMzU4NSBsIDQuMjI2MDY4MjA3NzM2NjA5LDcuMzE5NzY0ODUyMDUxMzY0IFoiIC8+PC9nPjxnIHN0cm9rZT0icmdiKDAsMCwwKSIgc3Ryb2tlLW9wYWNpdHk9IjEuMCIgZmlsbD0icmdiKDc1LDAsMTMwKSIgZmlsbC1vcGFjaXR5PSIxLjAiIHN0cm9rZS13aWR0aD0iMS4wZS0yIiBmb250LXNpemU9IjEuMGVtIj48cGF0aCBkPSJNIDE2MS42NTU3MDUxMDU1NDQxMSwxNDkuMTE1NTc5NjA4NzcxNTMgbCAxLjMwNTkyNjg5NTU3ODI4NzcsLTQuMDE5MjI5NzA3Mjc1Njg4IGwgLTEuMzA1OTI2ODk1NTc4MjkwNiwtNC4wMTkyMjk3MDcyNzU2ODggbCAtMy40MTg5NjA5OTk0NDY1OTcsLTIuNDg0MDIwNTY3Njg5NjY0IGggLTQuMjI2MDY4MjA3NzM2NjE0IGwgLTMuNDE4OTYwOTk5NDQ2NTk3NywyLjQ4NDAyMDU2NzY4OTY2NjUgbCAtMS4zMDU5MjY4OTU1NzgyODc3LDQuMDE5MjI5NzA3Mjc1Njg4IGwgMS4zMDU5MjY4OTU1NzgyODk3LDQuMDE5MjI5NzA3Mjc1Njg4IGwgMy40MTg5NjA5OTk0NDY1OTczLDIuNDg0MDIwNTY3Njg5NjY1IGggNC4yMjYwNjgyMDc3MzY2MTQgWiIgLz48L2c+PGcgc3Ryb2tlPSJyZ2IoMCwwLDApIiBzdHJva2Utb3BhY2l0eT0iMS4wIiBmaWxsPSJyZ2IoMjU1LDAsMCkiIGZpbGwtb3BhY2l0eT0iMS4wIiBzdHJva2Utd2lkdGg9IjEuMGUtMiIgZm9udC1zaXplPSIxLjBlbSI+PHBhdGggZD0iTSAyMDYuMzA1NzgyOTMzMzc5MDgsMTc2LjI0NzcxNDc5OTk3OTY2IGMgMC4wLC0yLjMzMzk5MzAyMjg3NzY4NTUgLTEuODkyMDc1MTg0ODU4OTI4MSwtNC4yMjYwNjgyMDc3MzY2MTQgLTQuMjI2MDY4MjA3NzM2NjEzIC00LjIyNjA2ODIwNzczNjYxNGMgLTIuMzMzOTkzMDIyODc3Njg1NSwtMS40MjkxNTg1NDIzNDk3MDY1ZS0xNiAtNC4yMjYwNjgyMDc3MzY2MTQsMS44OTIwNzUxODQ4NTg5MjggLTQuMjI2MDY4MjA3NzM2NjE0IDQuMjI2MDY4MjA3NzM2NjEyNWMgLTIuODU4MzE3MDg0Njk5NDEzZS0xNiwyLjMzMzk5MzAyMjg3NzY4NTUgMS44OTIwNzUxODQ4NTg5Mjc3LDQuMjI2MDY4MjA3NzM2NjE0IDQuMjI2MDY4MjA3NzM2NjEyNSA0LjIyNjA2ODIwNzczNjYxNGMgMi4zMzM5OTMwMjI4Nzc2ODU1LDQuMjg3NDc1NjI3MDQ5MTE5ZS0xNiA0LjIyNjA2ODIwNzczNjYxNCwtMS44OTIwNzUxODQ4NTg5Mjc1IDQuMjI2MDY4MjA3NzM2NjE0IC00LjIyNjA2ODIwNzczNjYxMloiIC8+PC9nPjxnIHN0cm9rZT0icmdiKDAsMCwwKSIgc3Ryb2tlLW9wYWNpdHk9IjEuMCIgZmlsbD0icmdiKDI1NSwwLDApIiBmaWxsLW9wYWNpdHk9IjEuMCIgc3Ryb2tlLXdpZHRoPSIxLjBlLTIiIGZvbnQtc2l6ZT0iMS4wZW0iPjxwYXRoIGQ9Ik0gMjI0LjEzNTczMzAwNjc4MjM1LDE4MC4yNTU5MDU4Mjg3OTI5OCBsIDIuMTEzMDM0MTAzODY4MzA4LC0zLjY1OTg4MjQyNjAyNTY3OTcgbCAtMi4xMTMwMzQxMDM4NjgzMDYsLTMuNjU5ODgyNDI2MDI1NjgwNiBsIC00LjIyNjA2ODIwNzczNjYxMywtMS40MDc1NjM0NjgzNTk2Njc2ZS0xNSBsIC0yLjExMzAzNDEwMzg2ODMwOSwzLjY1OTg4MjQyNjAyNTY3OTMgbCAyLjExMzAzNDEwMzg2ODMwNDUsMy42NTk4ODI0MjYwMjU2ODIgWiIgLz48L2c+PC9nPjwvc3ZnPg==>> -}
circle-packing.cabal view
@@ -1,5 +1,5 @@ name:                circle-packing-version:             0.1.0.2+version:             0.1.0.3 synopsis:            Simple heuristic for packing discs of varying radii in a circle description:         Given a number of circles with their radii, this packags                      tries to arrange them tightly, without overlap and forming a@@ -27,11 +27,16 @@                      fay/fay-demo.html                      fay/fay-demo.hs                      fay/fay-demo.js-+                     haste/Canvas.hs+                     haste/haste-demo.hs+                     haste/haste-demo.js+                     haste/haste-demo.html+                     haste/helpers.js  library-  exposed-modules:   Optimisation.CirclePacking -  build-depends:     base ==4.5.* || ==4.6.*+  exposed-modules:   Optimisation.CirclePacking+  build-depends:     base == 4.2.* || == 4.3.* || == 4.4.* ||+                          == 4.5.* || == 4.6.* || == 4.7.*   ghc-options:       -Wall  source-repository head
fay/fay-demo.html view
@@ -6,14 +6,14 @@   </head>   <body id="body" style="margin:0;padding:0">   <div align="center">-    <canvas width="800" height="500" id="can"></canvas>-    <input style="width: 800px" id="input" value="50 32 30 30 40 35 5 20 43 18 12"/>+    <canvas width="800" height="500" id="can"></canvas><br/>+    <input style="width: 800px" id="input" value="50 32 30 30 40 35 5 20 43 18 12"/><br/>     <p style="width: 800px; text-align:justify; font-family:sans; font-size:80%">          This is a small live demonstration of the Haskell library <a href="http://hackage.haskell.org/package/circle-packing"><tt>circle-packing</tt></a> by <a href="http://www.joachim-breitner.de/">Joachim Breitner</a>:<br/>      Given a number of circles with their radii, this packags tries to arrange them tightly, without overlap and forming a large circle.<br/> Finding the optimal solution is NP hard, so only heuristics are feasible. This particular implementation is neither very good nor very fast, compared to the state of the art in research. Nevertheless it is simple to use and gives visually acceptable results.<br/>-    This particular demonstration uses the <a href="http://fay-lang.org/">Fay compiler</a> to generate JavaScript code from <a href="../Optimisation/CirclePacking.hs">the original Haskell code</a> and some <a href="fay-demo.hs">code to address the HTML5 canvas</a>, so altough it runs in your browser, this <em>is</em> the Haskell code at work.+    This particular demonstration uses the <a href="http://fay-lang.org/">Fay compiler</a> to generate JavaScript code from <a href="../Optimisation/CirclePacking.hs">the original Haskell code</a> and some <a href="fay-demo.hs">code to address the HTML5 canvas</a>, so although it runs in your browser, this <em>is</em> the Haskell code at work. There is an analougous <a href="../haste/haste-demo.html">demo based the Haste compiler</a>.     </p>   </div>   </body>
+ haste/Canvas.hs view
@@ -0,0 +1,39 @@+{-# LANGUAGE ForeignFunctionInterface #-}++module Canvas(+  Context2D,+  getContext2d,+  beginPath,+  closePath,+  arc,+  fill,+  setFillColor,+  clear+)+ where++import Haste hiding (Event)+import Haste.Prim+import Haste.DOM++newtype Context2D = Context2D JSAny++foreign import ccall "jsGetContext2D"+    getContext2d :: Elem -> IO Context2D+foreign import ccall "jsBeginPath"+    beginPath :: Context2D -> IO ()+foreign import ccall "jsClosePath"+    closePath :: Context2D -> IO ()+foreign import ccall "jsFill"+    fill :: Context2D -> IO ()+foreign import ccall "jsArc"+    arc :: Context2D -> Double -> Double -> Double -> Double -> Double -> Bool -> IO ()++foreign import ccall+    jsSetFillColor :: Context2D -> JSString -> IO ()+setFillColor :: Context2D -> String -> IO ()+setFillColor ctx = jsSetFillColor ctx . toJSStr++foreign import ccall "jsClear"+    clear :: Context2D -> IO ()+
+ haste/haste-demo.hs view
@@ -0,0 +1,56 @@+{-# LANGUAGE EmptyDataDecls    #-}++module Main (main) where++import Control.Applicative+import Control.Monad+import Optimisation.CirclePacking++import Haste.DOM+import Haste++import Canvas++-- | Main entry point.+main :: IO ()+main = start++colors = ["Green","Silver", "Lime", "Gray", "Olive", "Yellow", "Maroon", "Navy", "Red", "Blue", "Purple", "Teal", "Fuchsia", "Aqua"]++start :: IO ()+start = do+  withElem "input" $ \i -> do+    setCallback i OnChange update+    --setCallback i OnInput update+    setCallback i OnKeyUp (const update)+    --setCallback i OnPaste update+  update++update :: IO ()+update = withElem "can" $ \canvas -> do+  w <- read <$> getProp canvas "width"+  h <- read <$> getProp canvas "height"+    +  context <- getContext2d canvas+  clear context++  withElem "input" $ \i -> do+  Just value <- getValue i+  let radii = map read (words value)++  let colored = zip radii (cycle colors)+  let packed = packCircles fst colored++  forM_ packed $ \res -> case res of+    ((r,c),(x,y)) -> do+        setFillColor context c+        fillCircle context (x + w/2) (y + h/2) r++fillCircle :: Context2D -> Double -> Double -> Double -> IO ()+fillCircle ctx x y r = do+  beginPath ctx+  arc ctx x y r 0.0 (2.0 * pi) True+  closePath ctx+  fill ctx++
+ haste/haste-demo.html view
@@ -0,0 +1,20 @@+<!doctype html>+<html>+  <head>+    <title>Demonstrating circle-packing</title>    +    <script src="haste-demo.js"></script>+  </head>+  <body id="body" style="margin:0;padding:0">+  <div align="center">+    <canvas width="800" height="500" id="can"></canvas><br/>+    <input style="width: 800px" id="input" value="50 32 30 30 40 35 5 20 43 18 12"/><br/>+    <p style="width: 800px; text-align:justify; font-family:sans; font-size:80%">+    +    This is a small live demonstration of the Haskell library <a href="http://hackage.haskell.org/package/circle-packing"><tt>circle-packing</tt></a> by <a href="http://www.joachim-breitner.de/">Joachim Breitner</a>:<br/> +    Given a number of circles with their radii, this packags tries to arrange them tightly, without overlap and forming a large circle.<br/>+Finding the optimal solution is NP hard, so only heuristics are feasible. This particular implementation is neither very good nor very fast, compared to the state of the art in research. Nevertheless it is simple to use and gives visually acceptable results.<br/>+    This particular demonstration uses the <a href="https://github.com/valderman/haste-compiler">Haste compiler</a> to generate JavaScript code from <a href="../Optimisation/CirclePacking.hs">the original Haskell code</a> and some <a href="haste-demo.hs">code to address the HTML5 canvas</a>, so although it runs in your browser, this <em>is</em> the Haskell code at work. There is an analougous <a href="../fay/fay-demo.html">demo based the Fay compiler</a>.+    </p>+  </div>+  </body>+</html>
+ haste/haste-demo.js view
@@ -0,0 +1,98 @@+function b(a){return new aa(a)}function aa(a){this.c=a}function e(a,c){function d(){var d=c.concat(Array.prototype.slice.call(arguments));return e(a,d)}a=a instanceof aa?g(a):a;if(!a.apply)return a;var f=a.arity?a.arity:a.length;if(c.length===f)return a.apply(null,c);if(c.length>f)return f=c.splice(0,f),e(a.apply(null,f),c);d.arity=f-c.length;return d}function g(a){return a instanceof aa?(a.c&&(a.x=a.c(),a.c=0),a.x):a}function ba(a){throw a;}var ca=new ArrayBuffer(8);new Uint32Array(ca);new Float32Array(ca);+new Float64Array(ca);function n(a){ba(p(a)[1])}function q(a){return u(a,[1])}function u(a,c,d){var f=d?d:0;return f>=a.length?g(c):[2,[1,a.charCodeAt(f)],b(function(){return u(a,c,f+1)})]}function v(a){return q(g(a)[1])}function p(a){var c="";for(a=g(a);2==a[0];a=g(a[2]))c+=String.fromCharCode(g(a[1])[1]);return[1,c]}isDoubleNaN=isNaN;if("undefined"==typeof da)var da=void 0;+function ea(a,c,d){"change"==c&&"text"==a.type.toLowerCase()&&fa(a,"keyup",function(a){10==a&&e(d,[[1,a.keyCode],0])});var f;switch(c){case "click":case "dblclick":case "mouseup":case "mousedown":f=function(a){e(d,[[1,a.button],0])};break;case "keypress":case "keyup":case "keydown":f=function(a){e(d,[[1,a.keyCode],0])};break;default:f=function(){e(d,[0])}}fa(a,c,f)}function fa(a,c,d){a.addEventListener?a.addEventListener(c,d,!1):a.attachEvent&&a.attachEvent("on"+c,d)}+function ga(a){return 9==a||10==a||13==a||32==a}function ha(a){return 65<=a&&90>=a||97<=a&&122>=a||229==a||228==a||246==a||197==a||196==a||214==a}function ka(a,c){return a[c].toString()}function la(a){return(a=document.getElementById(a))?[2,[1,a]]:[1]}function ma(a,c){this.a=[];this.b=c;for(var d=!0,f=a.length-1;0<=f;f--){var h=a[f]|0;d&&h==c||(this.a[f]=h,d=!1)}}var na={};function w(a){if(-128<=a&&128>a){var c=na[a];if(c)return c}c=new ma([a|0],0>a?-1:0);-128<=a&&128>a&&(na[a]=c);return c}+function y(a){if(isNaN(a)||!isFinite(a))return oa;if(0>a)return z(y(-a));for(var c=[],d=1,f=0;a>=d;f++)c[f]=a/d|0,d*=pa;return new ma(c,0)}+I_fromString=function(a,c){if(0==a.length)throw Error("number format error: empty string");var d=c||10;if(2>d||36<d)throw Error("radix out of range: "+d);if("-"==a.charAt(0))return z(I_fromString(a.substring(1),d));if(0<=a.indexOf("-"))throw Error('number format error: interior "-" character');for(var f=y(Math.pow(d,8)),h=oa,k=0;k<a.length;k+=8){var l=Math.min(8,a.length-k),m=parseInt(a.substring(k,k+l),d);8>l?(l=y(Math.pow(d,l)),h=A(B(h,l),y(m))):(B(h,f),h=A(add,y(m)))}return h};+var pa=4294967296,oa=w(0),qa=w(1),ra=w(16777216);function ta(a){return 0<a.a.length?a.a[0]:a.b}function D(a){if(-1==a.b)return-D(z(a));for(var c=0,d=1,f=0;f<a.a.length;f++)var h=E(a,f),c=c+(0<=h?h:pa+h)*d,d=d*pa;return c}function E(a,c){return 0>c?0:c<a.a.length?a.a[c]:a.b}function F(a){if(0!=a.b)return!1;for(var c=0;c<a.a.length;c++)if(0!=a.a[c])return!1;return!0}function G(a,c){var d=ua(a,c);return-1==d.b?-1:F(d)?0:1}function H(a,c){return G(a,w(c))}+function z(a){for(var c=a.a.length,d=[],f=0;f<c;f++)d[f]=~a.a[f];a=new ma(d,~a.b);return A(a,qa)}function A(a,c){for(var d=Math.max(a.a.length,c.a.length),f=[],h=0,k=0;k<=d;k++){var l=h+(E(a,k)&65535)+(E(c,k)&65535),m=(l>>>16)+(E(a,k)>>>16)+(E(c,k)>>>16),h=m>>>16,l=l&65535,m=m&65535;f[k]=m<<16|l}return new ma(f,f[f.length-1]&-2147483648?-1:0)}function ua(a,c){return A(a,z(c))}+function B(a,c){if(F(a)||F(c))return oa;if(-1==a.b)return-1==c.b?B(z(a),z(c)):z(B(z(a),c));if(-1==c.b)return z(B(a,z(c)));if(0>G(a,ra)&&0>G(c,ra))return y(D(a)*D(c));for(var d=a.a.length+c.a.length,f=[],h=0;h<2*d;h++)f[h]=0;for(h=0;h<a.a.length;h++)for(var k=0;k<c.a.length;k++){var l=E(a,h)>>>16,m=E(a,h)&65535,r=E(c,k)>>>16,s=E(c,k)&65535;f[2*h+2*k]+=m*s;va(f,2*h+2*k);f[2*h+2*k+1]+=l*s;va(f,2*h+2*k+1);f[2*h+2*k+1]+=m*r;va(f,2*h+2*k+1);f[2*h+2*k+2]+=l*r;va(f,2*h+2*k+2)}for(h=0;h<d;h++)f[h]=f[2*h+1]<<+16|f[2*h];for(h=d;h<2*d;h++)f[h]=0;return new ma(f,0)}function va(a,c){for(;(a[c]&65535)!=a[c];)a[c+1]+=a[c]>>>16,a[c]&=65535}+function I(a,c){if(F(c))throw Error("division by zero");if(F(a))return oa;if(-1==a.b)return-1==c.b?I(z(a),z(c)):z(I(z(a),c));if(-1==c.b)return z(I(a,z(c)));for(var d=oa,f=a;0<=G(f,c);){for(var h=Math.max(1,Math.floor(D(f)/D(c))),k=Math.ceil(Math.log(h)/Math.LN2),k=48>=k?1:Math.pow(2,k-48),l=y(h),m=B(l,c);-1==m.b||0<G(m,f);)h-=k,l=y(h),m=B(l,c);F(l)&&(l=qa);d=A(d,l);f=ua(f,m)}return d}function wa(a,c,d,f){a.arc(c,d,f,0,6.283185307179586,1)}function xa(a,c){a.fillStyle=c}+var ya=b(function(){return q("input")}),za=[1],Aa=b(function(){return n(b(function(){return q("Prelude.read: no parse")}))}),Ba=b(function(){return n(b(function(){return q("Prelude.read: ambiguous parse")}))});function J(a,c){var d=g(a);return 1==d[0]?g(c):[2,d[1],b(function(){return J(d[2],c)})]}var K=[1];+function Ca(){return g([1,18445595,52003073,[1,18445595,52003073,b(function(){return q("base")}),b(function(){return q("Control.Exception.Base")}),b(function(){return q("PatternMatchFail")})],K])}function Da(a,c,d){var f=b(function(){var h=e(a,[d]),k=e(c,[b(function(){var a=g(f);return 1==a[0]?g(b(function(){return n(b(function(){return q("Maybe.fromJust: Nothing")}))})):g(a[1])})]);return g(h[1][0]==k[1][0]&&h[1][1]==k[1][1])?0==g(h[2][0]==k[2][0]&&h[2][1]==k[2][1])?[1]:[2,d]:[1]});return g(f)}+function Ea(a,c,d){var f=g(c);return 1==f[0]?u("[]",d):[2,[1,91],b(function(){return e(a,[f[1],b(function(){function c(f){var l=g(f);return 1==l[0]?g([2,[1,93],d]):[2,[1,44],b(function(){return e(a,[l[1],b(function(){return c(l[2])})])})]}return c(f[2])})])})]}+function Fa(a){return[1,b(function(){return[1,Ca,[1,function(a,d,f){return J(g(d)[1],f)},function(a){return g(g(a)[1])},function(a,d){return Ea(function(a,c){return J(g(a)[1],c)},a,d)}],Fa,function(a){a=g(a);return Da(g(g(a[1])[1]),Ca,a[2])}]}),a]}function Ga(a,c){return ba(b(function(){return e(c,[a])}))}+function Ha(a,c){var d=g(c);if(1==d[0])return[1,K,K];var f=d[1];if(e(a,[f])){var h=b(function(){var c=Ha(a,d[2]);return[1,c[1],c[2]]});return[1,[2,f,b(function(){return g(g(h)[1])})],b(function(){return g(g(h)[2])})]}return[1,K,d]}+function L(a,c){for(;;){var d=function(d,h){var k=g(d);switch(k[0]){case 1:var l=g(h);if(1==l[0])return[1];a=e(k[1],[l[1]]);c=l[2];return null;case 2:return a=e(k[1],[h]),c=h,null;case 3:return[1];case 4:return[2,[1,k[1],h],b(function(){return L(k[2],h)})];default:return g(k[1])}}(a,c);if(null!=d)return d}}+function M(a,c){var d=b(function(){var d=g(c);if(4==d[0])return[4,d[1],b(function(){return M(a,d[2])})];var f=g(a);if(3==f[0])return g(d);var h=g(d);if(3==h[0])return g(f);var r=b(function(){var a=g(h);if(5==a[0])return[2,function(c){return[5,b(function(){return J(L(f,c),a[1])})]}];var c=g(f);if(2==c[0]){var d=c[1],k=g(a);return 1==k[0]?[2,function(a){return M(e(d,[a]),k)}]:[2,function(a){return M(e(d,[a]),b(function(){return e(k[1],[a])}))}]}var s=g(a);return 1==s[0]?g(b(function(){return function(a){return Ga([1,+b(function(){return function(a,c){function d(a,f){return J(a,b(function(){return u(": ",b(function(){return J(c,b(function(){return J(f,[2,[1,10],K])}))}))}))}var f=Ha(function(a){return 124==g(g(a)[1])?!1:!0},q(a)),h=f[1],f=g(f[2]);return 1==f[0]?d(h,K):124==g(g(f[1])[1])?d(h,[2,[1,32],f[2]]):d(h,K)}(a,b(function(){return q("Non-exhaustive patterns in")}))})],Fa)}("Text/ParserCombinators/ReadP.hs:(134,3)-(157,60)|function mplus")})):[2,function(a){return M(c,b(function(){return e(s[1],[a])}))}]}),+s=g(f);switch(s[0]){case 2:var x=g(h);return 5==x[0]?[2,function(a){return[5,b(function(){return J(L(e(s[1],[a]),a),x[1])})]}]:g(r);case 5:var C=s[1],t=g(h);switch(t[0]){case 1:return[2,function(a){return[5,b(function(){return J(C,b(function(){return L(t,a)}))})]}];case 2:return[2,function(a){return[5,b(function(){return J(C,b(function(){return L(e(t[1],[a]),a)}))})]}];default:return[5,b(function(){return J(C,t[1])})]}default:return g(r)}}),f=g(a);switch(f[0]){case 1:var h=g(c);return 1==h[0]?[1,+function(a){return M(e(f[1],[a]),b(function(){return e(h[1],[a])}))}]:g(d);case 4:return[4,f[1],b(function(){return M(f[2],c)})];default:return g(d)}}var Ia=[1,function(a,c){return g(a)[1]==g(c)[1]},function(a,c){return g(a)[1]!=g(c)[1]}];function Ka(a){return g(g(a)[1])}function La(a,c,d){for(;;){c=g(c);if(1==c[0])return 1==g(d)[0]?!0:!1;d=g(d);if(1!=d[0]&&e(Ka,[a,c[1],d[1]]))c=c[2],d=d[2];else return!1}}+function Ma(a,c){var d=g(a);switch(d[0]){case 1:return[1,function(a){return Ma(e(d[1],[a]),c)}];case 2:return[2,function(a){return Ma(e(d[1],[a]),c)}];case 3:return[3];case 4:return M(e(c,[d[1]]),b(function(){return Ma(d[2],c)}));default:var f=function(a){var d=g(a);if(1==d[0])return[1];a=g(d[1]);return J(L(e(c,[a[1]]),a[2]),b(function(){return f(d[2])}))},h=f(d[1]);return 1==h[0]?[3]:[5,h]}}var Na=[3];+function Oa(a,c){var d=g(a);return d?[1,function(){return g(b(function(){return Oa(d-1|0,c)}))}]:e(c,[za])}+function Pa(a,c,d){return[2,function(f){return e(function(a,d,f){for(;;){var m=function(m,s,x){var C=g(m);switch(C[0]){case 1:s=g(s);if(1==s[0])return g(c);a=e(C[1],[s[1]]);d=s[2];f=x+1|0;return null;case 2:return a=m=e(C[1],[s]),d=s,f=x,null;case 3:return g(c);case 4:return g(function(a){return Oa(x,function(){return g(b(function(){return Ma(C,a)}))})});default:return e(Ma,[C])}}(a,d,f);if(null!=m)return m}},[b(function(){return e(a,[function(a){return[4,a,Na]}])}),f,0,d])}]}+function Qa(a){return g(a)}+function N(a,c){function d(c,h){function k(a){return g(function(c){return[1,function(){return g(b(function(){return e(b(function(){return d(l[2],function(c){return e(h,[[2,a,c]])})}),[c])}))}]})}var l=g(c);if(1==l[0])return g(function(a){return e(a,[b(function(){return e(h,[K])})])});var m=g(l[1])[1];switch(g(g(a)[1])){case 8:return 48>m?g(function(a){return e(a,[b(function(){return e(h,[K])})])}):55<m?g(function(a){return e(a,[b(function(){return e(h,[K])})])}):k([1,m-48|0]);case 10:return 48>m?+g(function(a){return e(a,[b(function(){return e(h,[K])})])}):57<m?g(function(a){return e(a,[b(function(){return e(h,[K])})])}):k([1,m-48|0]);case 16:var r=b(function(){return 97>m?65>m?[1]:70<m?[1]:[2,[1,(m-65|0)+10|0]]:102<m?65>m?[1]:70<m?[1]:[2,[1,(m-65|0)+10|0]]:[2,[1,(m-97|0)+10|0]]});return 48>m||57<m?(r=g(r),1==r[0]?g(function(a){return e(a,[b(function(){return e(h,[K])})])}):k(r[1])):k([1,m-48|0]);default:return g(b(function(){return n(b(function(){return q("valDig: Bad base")}))}))}}return[2,+function(a){return e(d,[a,Qa,function(a){a=g(a);return 1==a[0]?[3]:e(c,[a])}])}]}var O=[1,10],Ra=[1,1],Sa=[1,2147483647];function Ta(a,c){for(;;){var d=g(a);if(1==d[0]){var d=d[1],f=g(c);if(1==f[0]){var f=f[1],h;h=d+f;h=[1,h&4294967295,2147483647<h];if(g(h[2]))a=[2,w(d)],c=[2,w(f)];else return[1,h[1]]}else a=[2,w(d)],c=f}else if(f=g(c),1==f[0])a=d,c=[2,w(f[1])];else return[2,A(d[1],f[1])]}}+function Ua(a){a=g(a);return 1==a[0]?(a=g(a[1]),-2147483648==a?g(b(function(){return Ta(Sa,Ra)})):[1,-a]):[2,z(a[1])]}var Q=[1,10],R=[1,0];function S(a,c){for(;;){var d=g(a);if(1==d[0]){var d=d[1],f=g(c);if(1==f[0])if(f=f[1],(d&65535)*(f&65535)+(d&65535)*(f&4294901760)+(d&4294901760)*(f&65535)|0)a=[2,w(d)],c=[2,w(f)];else return[1,(d&65535)*(f&65535)+(d&65535)*(f&4294901760)+(d&4294901760)*(f&65535)|0];else a=[2,w(d)],c=f}else if(f=g(c),1==f[0])a=d,c=[2,w(f[1])];else return[2,B(d[1],f[1])]}}+function T(a,c){for(var d=R;;){var f=g(c);if(1==f[0])return g(d);d=Ta(S(d,a),f[1]);c=f[2]}}var Va=[1];function Wa(a,c,d){for(;;){d=g(d);if(1==d[0])return!1;if(e(Ka,[a,c,d[1]]))return!0;d=d[2]}}var Xa=b(function(){return q("!@#$%&*+./<=>?\\^|:-~")}),U=[1,8],Ya=[1,16];function Za(a){a=g(a);return 1==a[0]?g(a[1]):ta(a[1])}+function $a(a){a=g(a);if(1==a[0])return g(function(){return[3]});var c=a[1],d=g(a[2]);return 1==d[0]?g(c):g(function(a){return M(e(c,[a]),b(function(){return e(b(function(){return $a(d)}),[a])}))})}function ab(){return[3]}+function V(a,c){function d(c,h){var k=g(c);if(1==k[0])return g(function(c){return e(c,[a])});var l=g(h);return 1==l[0]?g(ab):g(k[1])[1]!=g(l[1])[1]?g(function(){return[3]}):g(function(a){return[1,function(){return g(b(function(){return e(b(function(){return d(k[2],l[2])}),[a])}))}]})}return[2,function(f){return e(d,[a,f,c])}]}+var bb=[1,0],cb=[1,2],db=[1,3],eb=[1,4],fb=[1,5],gb=[1,6],hb=[1,7],ib=[1,8],jb=[1,9],kb=[1,10],lb=[1,11],mb=[1,12],nb=[1,13],ob=[1,15],pb=[1,16],qb=[1,17],rb=[1,18],vb=[1,19],wb=[1,20],xb=[1,21],yb=[1,22],zb=[1,23],Ab=[1,24],Bb=[1,25],Cb=[1,26],Db=[1,27],Eb=[1,28],Fb=[1,29],Gb=[1,30],Hb=[1,31],Ib=[1,1],Jb=[1,14],Kb=[1,92];function Lb(a){return[1,a]}+function Mb(a){return M([1,function(c){switch(g(g(c)[1])){case 34:return g(b(function(){return e(a,[[1,[1,34],!0]])}));case 39:return g(b(function(){return e(a,[[1,[1,39],!0]])}));case 92:return g(b(function(){return e(a,[[1,Kb,!0]])}));case 97:return g(b(function(){return e(a,[[1,hb,!0]])}));case 98:return g(b(function(){return e(a,[[1,ib,!0]])}));case 102:return g(b(function(){return e(a,[[1,mb,!0]])}));case 110:return g(b(function(){return e(a,[[1,kb,!0]])}));case 114:return g(b(function(){return e(a,+[[1,nb,!0]])}));case 116:return g(b(function(){return e(a,[[1,jb,!0]])}));case 118:return g(b(function(){return e(a,[[1,lb,!0]])}));default:return[3]}}],b(function(){return M(Pa(function(a){return[1,function(d){switch(g(g(d)[1])){case 79:return g(b(function(){return e(a,[U])}));case 88:return g(b(function(){return e(a,[Ya])}));case 111:return g(b(function(){return e(a,[U])}));case 120:return g(b(function(){return e(a,[Ya])}));default:return[3]}}]},function(a){return e(a,[O])},function(c){return N(c,+function(d){var f=T(b(function(){return Lb(g(c)[1])}),d);return!1==function(a,c){var d=g(a);if(1==d[0]){var d=d[1],f=g(c);return 1==f[0]?d<=f[1]:0<=H(f[1],d)}d=d[1];f=g(c);return 1==f[0]?0>=H(d,f[1]):0>=G(d,f[1])}(f,[1,1114111])?[3]:e(a,[[1,b(function(){var a=Za(f);return 1114111<a>>>0?function(a){return n(u("Prelude.chr: bad argument: ",b(function(){return function(a,c,d){return!1==0>c?J(v([1,c.toString()]),d):!1==6<a?J(v([1,c.toString()]),d):[2,[1,40],b(function(){return J(v([1,c.toString()]),[2,+[1,41],d])})]}(9,a,K)})))}(a):[1,a]}),!0]])})}),b(function(){return M([1,function(c){return 94==g(g(c)[1])?g([1,function(c){switch(g(g(c)[1])){case 64:return g(b(function(){return e(a,[[1,bb,!0]])}));case 65:return g(b(function(){return e(a,[[1,Ib,!0]])}));case 66:return g(b(function(){return e(a,[[1,cb,!0]])}));case 67:return g(b(function(){return e(a,[[1,db,!0]])}));case 68:return g(b(function(){return e(a,[[1,eb,!0]])}));case 69:return g(b(function(){return e(a,[[1,fb,!0]])}));case 70:return g(b(function(){return e(a,+[[1,gb,!0]])}));case 71:return g(b(function(){return e(a,[[1,hb,!0]])}));case 72:return g(b(function(){return e(a,[[1,ib,!0]])}));case 73:return g(b(function(){return e(a,[[1,jb,!0]])}));case 74:return g(b(function(){return e(a,[[1,kb,!0]])}));case 75:return g(b(function(){return e(a,[[1,lb,!0]])}));case 76:return g(b(function(){return e(a,[[1,mb,!0]])}));case 77:return g(b(function(){return e(a,[[1,nb,!0]])}));case 78:return g(b(function(){return e(a,[[1,Jb,!0]])}));case 79:return g(b(function(){return e(a,+[[1,ob,!0]])}));case 80:return g(b(function(){return e(a,[[1,pb,!0]])}));case 81:return g(b(function(){return e(a,[[1,qb,!0]])}));case 82:return g(b(function(){return e(a,[[1,rb,!0]])}));case 83:return g(b(function(){return e(a,[[1,vb,!0]])}));case 84:return g(b(function(){return e(a,[[1,wb,!0]])}));case 85:return g(b(function(){return e(a,[[1,xb,!0]])}));case 86:return g(b(function(){return e(a,[[1,yb,!0]])}));case 87:return g(b(function(){return e(a,[[1,zb,!0]])}));case 88:return g(b(function(){return e(a,+[[1,Ab,!0]])}));case 89:return g(b(function(){return e(a,[[1,Bb,!0]])}));case 90:return g(b(function(){return e(a,[[1,Cb,!0]])}));case 91:return g(b(function(){return e(a,[[1,Db,!0]])}));case 92:return g(b(function(){return e(a,[[1,Eb,!0]])}));case 93:return g(b(function(){return e(a,[[1,Fb,!0]])}));case 94:return g(b(function(){return e(a,[[1,Gb,!0]])}));case 95:return g(b(function(){return e(a,[[1,Hb,!0]])}));default:return[3]}}]):[3]}],b(function(){return e(b(function(){return $a([2,function(a){return Pa(function(a){return V(b(function(){return q("SOH")}),+function(){return g(b(function(){return e(a,[Ib])}))})},function(a){return V(b(function(){return q("SO")}),function(){return g(b(function(){return e(a,[Jb])}))})},a)},[2,function(a){return V(b(function(){return q("NUL")}),function(){return g(b(function(){return e(a,[bb])}))})},[2,function(a){return V(b(function(){return q("STX")}),function(){return g(b(function(){return e(a,[cb])}))})},[2,function(a){return V(b(function(){return q("ETX")}),function(){return g(b(function(){return e(a,[db])}))})},[2,+function(a){return V(b(function(){return q("EOT")}),function(){return g(b(function(){return e(a,[eb])}))})},[2,function(a){return V(b(function(){return q("ENQ")}),function(){return g(b(function(){return e(a,[fb])}))})},[2,function(a){return V(b(function(){return q("ACK")}),function(){return g(b(function(){return e(a,[gb])}))})},[2,function(a){return V(b(function(){return q("BEL")}),function(){return g(b(function(){return e(a,[hb])}))})},[2,function(a){return V(b(function(){return q("BS")}),function(){return g(b(function(){return e(a,+[ib])}))})},[2,function(a){return V(b(function(){return q("HT")}),function(){return g(b(function(){return e(a,[jb])}))})},[2,function(a){return V(b(function(){return q("LF")}),function(){return g(b(function(){return e(a,[kb])}))})},[2,function(a){return V(b(function(){return q("VT")}),function(){return g(b(function(){return e(a,[lb])}))})},[2,function(a){return V(b(function(){return q("FF")}),function(){return g(b(function(){return e(a,[mb])}))})},[2,function(a){return V(b(function(){return q("CR")}),+function(){return g(b(function(){return e(a,[nb])}))})},[2,function(a){return V(b(function(){return q("SI")}),function(){return g(b(function(){return e(a,[ob])}))})},[2,function(a){return V(b(function(){return q("DLE")}),function(){return g(b(function(){return e(a,[pb])}))})},[2,function(a){return V(b(function(){return q("DC1")}),function(){return g(b(function(){return e(a,[qb])}))})},[2,function(a){return V(b(function(){return q("DC2")}),function(){return g(b(function(){return e(a,[rb])}))})},[2,+function(a){return V(b(function(){return q("DC3")}),function(){return g(b(function(){return e(a,[vb])}))})},[2,function(a){return V(b(function(){return q("DC4")}),function(){return g(b(function(){return e(a,[wb])}))})},[2,function(a){return V(b(function(){return q("NAK")}),function(){return g(b(function(){return e(a,[xb])}))})},[2,function(a){return V(b(function(){return q("SYN")}),function(){return g(b(function(){return e(a,[yb])}))})},[2,function(a){return V(b(function(){return q("ETB")}),function(){return g(b(function(){return e(a,+[zb])}))})},[2,function(a){return V(b(function(){return q("CAN")}),function(){return g(b(function(){return e(a,[Ab])}))})},[2,function(a){return V(b(function(){return q("EM")}),function(){return g(b(function(){return e(a,[Bb])}))})},[2,function(a){return V(b(function(){return q("SUB")}),function(){return g(b(function(){return e(a,[Cb])}))})},[2,function(a){return V(b(function(){return q("ESC")}),function(){return g(b(function(){return e(a,[Db])}))})},[2,function(a){return V(b(function(){return q("FS")}),+function(){return g(b(function(){return e(a,[Eb])}))})},[2,function(a){return V(b(function(){return q("GS")}),function(){return g(b(function(){return e(a,[Fb])}))})},[2,function(a){return V(b(function(){return q("RS")}),function(){return g(b(function(){return e(a,[Gb])}))})},[2,function(a){return V(b(function(){return q("US")}),function(){return g(b(function(){return e(a,[Hb])}))})},[2,function(a){return V(b(function(){return q("SP")}),function(){return g(b(function(){return e(a,[[1,32]])}))})},[2,+function(a){return V(b(function(){return q("DEL")}),function(){return g(b(function(){return e(a,[[1,127]])}))})},K]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]])}),[function(c){return e(a,[[1,c,!0]])}])}))}))}))}function Nb(a){return e(a,[za])}+function W(a){a=g(a);if(1==a[0])return g(Nb);var c=a[2];a=g(g(a[1])[1]);switch(a){case 9:return g(function(a){return[1,function(){return g(b(function(){return e(b(function(){return W(c)}),[a])}))}]});case 10:return g(function(a){return[1,function(){return g(b(function(){return e(b(function(){return W(c)}),[a])}))}]});case 11:return g(function(a){return[1,function(){return g(b(function(){return e(b(function(){return W(c)}),[a])}))}]});case 12:return g(function(a){return[1,function(){return g(b(function(){return e(b(function(){return W(c)}),+[a])}))}]});case 13:return g(function(a){return[1,function(){return g(b(function(){return e(b(function(){return W(c)}),[a])}))}]});case 32:return g(function(a){return[1,function(){return g(b(function(){return e(b(function(){return W(c)}),[a])}))}]});case 160:return g(function(a){return[1,function(){return g(b(function(){return e(b(function(){return W(c)}),[a])}))}]});default:return g(ga(a))?g(function(a){return[1,function(){return g(b(function(){return e(b(function(){return W(c)}),[a])}))}]}):g(Nb)}}+function Ob(a){var c=b(function(){return Ob(a)}),d=[2,function(a){return e(W,[a,function(){return g([1,function(a){return 92==g(g(a)[1])?g(c):[3]}])}])}];return M([1,function(a){return 92==g(g(a)[1])?g([1,function(a){a=g(g(a)[1]);switch(a){case 9:return g(d);case 10:return g(d);case 11:return g(d);case 12:return g(d);case 13:return g(d);case 32:return g(d);case 38:return g(c);case 160:return g(d);default:return 0==g(ga(a))?[3]:g(d)}}]):[3]}],[1,function(c){c=g(c);return 92==g(c[1])?g(b(function(){return Mb(a)})):+e(a,[[1,c,!1]])}])}function Pb(a,c){return Ob(function(d){d=g(d);var f=g(d[1]);return 34==g(f[1])?g(d[2])?Pb(function(c){return e(a,[[2,f,c]])},c):g(b(function(){return e(c,[[2,b(function(){return e(a,[K])})]])})):Pb(function(c){return e(a,[[2,f,c]])},c)})}function Qb(a){return function(a){return 0==g(48<=a&&57>=a||ha(a))?Wa(Ia,[1,a],b(function(){return q("_'")})):!0}(g(a)[1])}function Rb(a){return e(a,[K])}+function Sb(a,c){function d(c){var h=g(c);if(1==h[0])return g(Rb);var k=h[1];return e(a,[k])?g(function(a){return[1,function(){return g(b(function(){return e(b(function(){return d(h[2])}),[function(c){return e(a,[[2,k,c]])}])}))}]}):g(Rb)}return[2,function(a){return e(d,[a,c])}]}+function Tb(a){return M([2,function(c){return 1==g(c)[0]?g(b(function(){return e(a,[[7]])})):[3]}],b(function(){return M([1,function(c){return 39==g(g(c)[1])?g([1,function(c){var f=g(c);switch(g(f[1])){case 39:return[3];case 92:return g(b(function(){return Mb(function(c){c=g(c);return function(c,d){var f=b(function(){return e(a,[[1,c]])});return g(d)?[1,function(a){return 39==g(g(a)[1])?g(f):[3]}]:39==g(g(c)[1])?[3]:[1,function(a){return 39==g(g(a)[1])?g(f):[3]}]}(c[1],c[2])})}));default:return[1,+function(c){return 39==g(g(c)[1])?g(b(function(){return e(a,[[1,f]])})):[3]}]}}]):[3]}],b(function(){return M([1,function(c){return 34==g(g(c)[1])?g(b(function(){return Pb(Qa,a)})):[3]}],b(function(){return M([1,function(c){return!1==Wa(Ia,c,b(function(){return q(",;()[]{}`")}))?[3]:e(a,[[3,[2,c,K]]])}],b(function(){return M([1,function(c){return Wa(Ia,c,Xa)?Sb(function(a){return Wa(Ia,a,Xa)},function(d){d=[2,c,d];return!1==Wa(b(function(){return function(a){return[1,function(c,d){return La(a,c,d)},+function(c,d){return!1==La(a,c,d)?!0:!1}]}(Ia)}),d,[2,b(function(){return q("..")}),[2,b(function(){return q("::")}),[2,[2,[1,61],K],[2,[2,Kb,K],[2,[2,[1,124],K],[2,b(function(){return q("<-")}),[2,b(function(){return q("->")}),[2,[2,[1,64],K],[2,[2,[1,126],K],[2,b(function(){return q("=>")}),K]]]]]]]]]])?e(a,[[5,d]]):e(a,[[3,d]])}):[3]}],b(function(){return M([1,function(c){var d=g(c);c=d[1];return g(ha(c))?Sb(Qb,function(c){return e(a,[[4,[2,d,c]]])}):95==g(c)?Sb(Qb,function(c){return e(a,[[4,[2,+d,c]]])}):[3]}],b(function(){return Pa(function(a){return[1,function(d){return 48==g(g(d)[1])?g([1,function(d){switch(g(g(d)[1])){case 79:return g(b(function(){return N(U,function(d){return e(a,[[6,[1,U,d]]])})}));case 88:return g(b(function(){return N(Ya,function(d){return e(a,[[6,[1,Ya,d]]])})}));case 111:return g(b(function(){return N(U,function(d){return e(a,[[6,[1,U,d]]])})}));case 120:return g(b(function(){return N(Ya,function(d){return e(a,[[6,[1,Ya,d]]])})}));default:return[3]}}]):[3]}]},+function(a){return N(O,function(d){return Pa(function(a){return[1,function(c){return 46==g(g(c)[1])?g(b(function(){return N(O,function(c){return e(a,[[2,c]])})})):[3]}]},function(a){return e(a,[Va])},function(f){return Pa(function(a){var c=b(function(){return M(M([1,function(c){return 45==g(g(c)[1])?N(O,function(c){return e(a,[[2,b(function(){return Ua(T(Q,c))})]])}):[3]}],[1,function(c){return 43==g(g(c)[1])?N(O,function(c){return e(a,[[2,b(function(){return T(Q,c)})]])}):[3]}]),b(function(){return N(O,+function(c){return e(a,[[2,b(function(){return T(Q,c)})]])})}))});return M([1,function(a){return 101==g(g(a)[1])?g(c):[3]}],[1,function(a){return 69==g(g(a)[1])?g(c):[3]}])},function(a){return e(a,[Va])},function(h){return e(a,[[6,[2,d,f,h]]])})})})},a)}))}))}))}))}))}))}function Ub(a){return[2,function(c){return e(W,[c,function(){return g(b(function(){return Tb(a)}))}])}]}var Vb=[1,0];function Wb(){return[3]}var Xb=b(function(){return[1,1/0]}),Yb=[1,0];+function X(a,c){var d=g(a);if(1==d[0]){var d=d[1],f=g(c);return 1==f[0]?d==f[1]:0==H(f[1],d)?!0:!1}d=d[1];f=g(c);return 1==f[0]?0==H(d,f[1])?!0:!1:0==G(d,f[1])?!0:!1}function Zb(a,c){var d=g(a);if(1==d[0]){var d=d[1],f=g(c);return 1==f[0]?d<f[1]:0<H(f[1],d)}d=d[1];f=g(c);return 1==f[0]?0>H(d,f[1]):0>G(d,f[1])}function $b(a){for(var c=0;;){a=g(a);if(1==a[0])return g(c);a=a[2];c=c+1|0}}var Y=[1,1];+function ac(){return g([1,4194982440,3110813675,[1,4194982440,3110813675,b(function(){return q("base")}),b(function(){return q("GHC.Exception")}),b(function(){return q("ArithException")})],K])}var bc=b(function(){return q("arithmetic underflow")}),cc=b(function(){return q("arithmetic overflow")}),dc=b(function(){return q("Ratio has zero denominator")}),ec=b(function(){return q("denormal")}),fc=b(function(){return q("divide by zero")}),gc=b(function(){return q("loss of precision")});+function hc(a){return J(bc,a)}function ic(a){return J(cc,a)}function jc(a){return J(dc,a)}function kc(a){return J(ec,a)}function lc(a){return J(fc,a)}function mc(a){return J(gc,a)}+function nc(a){return[1,b(function(){return[1,ac,[1,function(a,d){switch(g(d)[0]){case 1:return g(ic);case 2:return g(hc);case 3:return g(mc);case 4:return g(lc);case 5:return g(kc);default:return g(jc)}},function(a){switch(g(a)[0]){case 1:return g(cc);case 2:return g(bc);case 3:return g(gc);case 4:return g(fc);case 5:return g(ec);default:return g(dc)}},function(a,d){return Ea(function(a){switch(g(a)[0]){case 1:return g(ic);case 2:return g(hc);case 3:return g(mc);case 4:return g(lc);case 5:return g(kc);+default:return g(jc)}},a,d)}],nc,function(a){a=g(a);return Da(g(g(a[1])[1]),ac,a[2])}]}),a]}var oc=b(function(){return Ga([4],nc)}),Z=[1,0];function pc(a,c){for(;;){var d=g(a);if(1==d[0])if(d=g(d[1]),-2147483648==d)a=[2,w(-2147483648)];else{var f=g(c);if(1==f[0])return[1,d%f[1]];a=[2,w(d)];c=f}else return d=d[1],f=g(c),1==f[0]?(f=w(f[1]),d=ua(d,B(I(d,f),f)),d=[1,ta(d)]):d=[2,ua(d,B(I(d,f[1]),f[1]))],d}}+function qc(a){a=g(a);if(1==a[0]){var c=g(a[1]);return-2147483648==c?g(b(function(){return Ta(Sa,Ra)})):0>c?[1,-c]:g(a)}c=a[1];return 0<=H(c,0)?g(a):[2,z(c)]}function rc(a,c){for(;;){var d=g(a);if(1==d[0])if(d=g(d[1]),-2147483648==d)a=[2,w(-2147483648)];else{var f=g(c);if(1==f[0])return[1,(d-d%f[1])/f[1]];a=[2,w(d)];c=f}else return d=d[1],f=g(c),1==f[0]?[1,ta(I(d,w(f[1])))]:[2,I(d,f[1])]}}+function sc(a,c){if(X(c,Z))return g(b(function(){return Ga([6],nc)}));var d=function(a,c){for(;;){if(X(c,Z))return g(a);var d=c,l=!1==X(c,Z)?pc(a,c):g(oc);a=d;c=l}}(qc(a),qc(c));return X(d,Z)?g(oc):[1,rc(a,d),rc(c,d)]}var tc=[1,2];+function uc(a,c){for(;;){var d=g(a);if(1==d[0]){var d=d[1],f=g(c);if(1==f[0]){var f=f[1],h;h=d-f;h=[1,h&4294967295,-2147483648>h];if(g(h[2]))a=[2,w(d)],c=[2,w(f)];else return[1,h[1]]}else a=[2,w(d)],c=f}else if(f=g(c),1==f[0])a=d,c=[2,w(f[1])];else return[2,ua(d[1],f[1])]}}+function vc(a,c){return!1==Zb(c,Z)?!1==X(c,Z)?function(a,c){for(;;)if(X(pc(c,tc),Z)){var h=S(a,a),k=rc(c,tc);a=h;c=k}else{if(X(c,Y))h=g(a);else a:{for(var h=S(a,a),l=rc(uc(c,Y),tc),m=a;;){if(X(pc(l,tc),Z))k=S(h,h),l=rc(l,tc);else{if(X(l,Y)){h=S(h,m);break a}k=S(h,h);l=rc(uc(l,Y),tc);m=S(h,m)}h=k}h=void 0}return h}}(a,c):g(Y):g(b(function(){return n(b(function(){return q("Negative exponent")}))}))}var $=[1,1],wc=[1,0],xc=[1,-1];+function yc(a){a=g(a);if(1==a[0])return a=a[1],!1==0>a?0==g(a)?g(wc):g(Ra):g(xc);a=H(a[1],0);return!1==0<a?0==g(a)?g(wc):g(xc):g(Ra)}function zc(a,c,d){for(;;){d=g(d);if(1==d[0])return Zb(a,R)?(a=vc(Q,Ua(a)),sc(S(c,yc(a)),qc(a))):[1,S(c,vc(Q,a)),Y];a=uc(a,$);c=Ta(S(c,Q),Lb(g(d[1])[1]));d=d[2]}}+function Ac(a){var c=g(a);if(1==c[0])return sc(S(T(b(function(){return Lb(g(c[1])[1])}),c[2]),$),$);a=c[1];var d=c[3],f=g(c[2]);if(1==f[0]){d=g(d);if(1==d[0])return sc(S(T(Q,a),$),$);d=d[1];if(function(a,c){var d=g(a);if(1==d[0]){var d=d[1],f=g(c);return 1==f[0]?d>=f[1]:0>=H(f[1],d)}d=d[1];f=g(c);return 1==f[0]?0<=H(d,f[1]):0<=G(d,f[1])}(d,R))return sc(S(S(T(Q,a),vc(Q,d)),$),$);d=vc(Q,Ua(d));return sc(S(T(Q,a),yc(d)),qc(d))}f=f[1];d=g(d);return 1==d[0]?zc(R,T(Q,a),f):zc(d[1],T(Q,a),f)}+function Bc(a,c){for(;;){var d=g(c);if(1==d[0])return[1];if(e(a,[d[1]]))c=d[2];else return g(d)}}var Cc=[1,0],Dc=[2,[1,g(R),g(Y)]];function Ec(a,c){for(;;){var d=g(a);if(1==d[0])return 1==g(c)[0]?!0:!1;var f=g(c);if(1==f[0]||g(d[1])[1]!=g(f[1])[1])return!1;a=d[2];c=f[2]}}+var Fc=b(function(){return function(a,c,d){function f(c,d){return M(Ub(function(f){f=g(f);if(5==f[0]){var m=g(f[1]);return 1==m[0]?e(a,[f,c,d]):45==g(g(m[1])[1])?1==g(m[2])[0]?g([2,function(f){return e(W,[f,function(){return g(b(function(){return Tb(function(f){return e(a,[f,c,function(a){return e(d,[b(function(){return[1,-g(a)[1]]})])}])})}))}])}]):e(a,[f,c,d]):e(a,[f,c,d])}return e(a,[f,c,d])}),b(function(){return function(a,c){return Ub(function(d){d=g(d);return 3==d[0]?(d=g(d[1]),1==d[0]?[3]:+40==g(g(d[1])[1])?1==g(d[2])[0]?g(b(function(){return e(a,[Vb,function(a){return Ub(function(d){d=g(d);return 3==d[0]?(d=g(d[1]),1==d[0]?[3]:41==g(g(d[1])[1])?1==g(d[2])[0]?g(b(function(){return e(c,[a])})):[3]:[3]):[3]})}])})):[3]:[3]):[3]})}(f,d)}))}return f(c,d)}(function(a){a=g(a);switch(a[0]){case 4:return a=a[1],!1==Ec(a,b(function(){return q("Infinity")}))?!1==Ec(a,b(function(){return q("NaN")}))?g(Wb):g(function(a,c){return e(c,[b(function(){return[1,0/0]})])}):g(function(a,c){return e(c,+[Xb])});case 6:var c=function(a,c,h){function k(h){h=h+Za(m)|0;return h<=(g(c)[1]+3|0)?!1==h<(g(a)[1]-3|0)?[2,b(function(){var a=Ac(l);return[1,g(a[1]),g(a[2])]})]:g([2,[1,g(R),g(Y)]]):[1]}var l=g(h);if(1==l[0])return[2,b(function(){var a=Ac(l);return[1,g(a[1]),g(a[2])]})];h=g(l[3]);if(1==h[0])return[2,b(function(){var a=Ac(l);return[1,g(a[1]),g(a[2])]})];var m=h[1];if(function(a,c){var d=g(a);if(1==d[0]){var d=d[1],f=g(c);return 1==f[0]?d>f[1]:0>H(f[1],d)}d=d[1];f=g(c);return 1==f[0]?0<H(d,f[1]):+0<G(d,f[1])}(m,[1,2147483647])||Zb(m,[1,-2147483648]))return[1];h=Bc(function(a){return g(Cc)[1]==g(a)[1]},l[1]);if(1==h[0]){h=g(l[2]);if(1==h[0])return g(Dc);h=Ha(function(a){return g(Cc)[1]==g(a)[1]},h[1]);return 1==g(h[2])[0]?g(Dc):k(-$b(h[1]))}return k($b(h))}([1,-1021],[1,1024],a[1]);return 1==c[0]?g(function(a,c){return e(c,[Xb])}):g(function(a,f){return e(f,[b(function(){var a=g(c[1]);return function(a,c){return X(c,Yb)?!1==X(a,Yb)?!1==Zb(a,Yb)?g(b(function(){return[1,1/0]})):g(b(function(){return[1,+-1/0]})):g(b(function(){return[1,0/0]})):[1,function(a,c){for(;;){var d=g(a);if(1==d[0])a=[2,w(d[1])];else{var f=g(c);if(1==f[0])a=d,c=[2,w(f[1])];else return D(d[1])/D(f[1])}}}(a,c)]}(a[1],a[2])})])});default:return g(function(){return[3]})}},Vb,function(a){return[2,function(c){return e(W,[c,function(){return g([4,a,Na])}])}]})});+function Gc(a){for(;;){var c=function(c){c=g(c);if(1==c[0])return[1];var f=c[2];c=g(c[1]);if(1==g(c[2])[0])return[2,c[1],b(function(){return Gc(f)})];a=f;return null}(a);if(null!=c)return c}}function Hc(a){var c=g(a);return 1==c[0]?g(function(){return[1]}):g(function(a){var f=g(a);return 1==f[0]?[1]:[2,[1,b(function(){var a=Gc(L(Fc,c[1]));return 1==a[0]?g(Aa):1==g(a[2])[0]?g(a[1]):g(Ba)}),f[1]],b(function(){return e(b(function(){return Hc(c[2])}),[f[2]])})]})}+function Ic(a){return n(u("No element with ID ",b(function(){return J(a,b(function(){return q(" could be found!")}))})))}function Jc(a,c){return[1,g(a)[1]-g(c)[1]]}var Kc=[1,function(a,c){return[1,g(a)[1]+g(c)[1]]},function(a,c){return[1,g(a)[1]*g(c)[1]]},Jc,function(a){return[1,-g(a)[1]]},function(a){a=g(a);var c=a[1];return 0>c?[1,-c]:g(a)},function(a){a=g(a)[1];return!1==(0==a)?!1==0<a?g([1,-1]):g([1,1]):g([1,0])},function(a){a=g(a);return[1,1==a[0]?a[1]:D(a[1])]}];+function Lc(a,c){for(;;){var d=function(d,h){var k=g(h);if(1==k[0])return[1];var l=k[1],m=k[2];if(e(d,[l]))return[2,l,b(function(){return Lc(d,m)})];c=m;a=d;return null}(a,c);if(null!=d)return d}}var Mc=[1,0];function Nc(a){var c=g(a);if(1==c[0])return[1];var d=g(c[1]);return[2,b(function(){return[1,g(g(d[2])[2])[1]*Math.pow(g(g(d[1])[1])[1],2)]}),b(function(){return Nc(c[2])})]}+function Oc(a){var c=g(a);if(1==c[0])return[1];var d=g(c[1]);return[2,b(function(){return[1,g(g(d[2])[1])[1]*Math.pow(g(g(d[1])[1])[1],2)]}),b(function(){return Oc(c[2])})]}function Pc(a){var c=g(a);return 1==c[0]?[1]:[2,b(function(){return[1,Math.pow(g(g(g(c[1])[1])[1])[1],2)]}),b(function(){return Pc(c[2])})]}+function Qc(a,c){function d(c,d,f){for(;;){var k=function(k,l,m){var t=g(m);if(1==t[0])return[2,b(function(){return e(l,[[2,k,K]])}),r];m=t[1];var tb=t[2];switch(e(a,[k,m])[0]){case 1:return c=m,d=function(a){return e(l,[[2,k,a]])},f=tb,null;case 2:return c=m,d=function(a){return e(l,[[2,k,a]])},f=tb,null;default:return[2,b(function(){return e(l,[[2,k,K]])}),b(function(){return h(t)})]}}(c,d,f);if(null!=k)return k}}function f(c,d,f){for(;;){var k=function(k,m,l){var t=g(l);if(1==t[0])return[2,[2,+k,m],r];l=t[1];return 3==e(a,[k,l])[0]?(c=l,k=[2,k,m],f=t[2],d=k,null):[2,[2,k,m],b(function(){return h(t)})]}(c,d,f);if(null!=k)return k}}function h(c){var h=g(c);if(1==h[0])return g([2,K,K]);var k=h[1];c=g(h[2]);if(1==c[0])return[2,h,K];h=c[1];c=c[2];return 3==e(a,[k,h])[0]?f(h,[2,k,K],c):d(h,function(a){return[2,k,a]},c)}function k(a){for(;;){a=g(a);if(1==a[0])return g(b(function(){return k(l(K))}));if(1==g(a[2])[0])return g(a[1]);a=l(a)}}function l(a){var c=g(a);if(1==c[0])return[1];var d=g(c[2]);+return 1==d[0]?g(c):[2,b(function(){return m(c[1],d[1])}),b(function(){return l(d[2])})]}function m(c,d){var f=g(c);if(1==f[0])return g(d);var h=f[1],k=g(d);if(1==k[0])return g(f);var l=k[1];return 3==e(a,[h,l])[0]?[2,l,b(function(){return m(f,k[2])})]:[2,h,b(function(){return m(f[2],k)})]}var r=b(function(){return h(K)});return k(h(c))}+function Tc(a,c){return function(c,f){for(;;){var h=function(h,l){var m=g(h);if(1==m[0])return g(l);c=m[2];f=b(function(){return e(b(function(){return g(g(a)[1])}),[l,m[1]])});return null}(c,f);if(null!=h)return h}}(c,b(function(){return e(function(a){return g(g(a)[7])},[a,[1,0]])}))}+function Uc(a){a=g(a);if(1==a[0])return[1,K,K];var c=a[1];a=Uc(a[2]);var d=a[2],f=g(a[1]);if(1==f[0])return[1,[2,[1,c,[1,Mc,Mc]],K],d];var h=g(f[1]),k=g(h[2]);if(1==g(f[2])[0])return a=[1,c,[1,b(function(){return[1,g(k[1])[1]+g(g(c)[1])[1]+g(g(h[1])[1])[1]]}),k[2]]],[1,[2,a,f],[2,[1,a,h],d]];var l=b(function(){function a(d){for(;;){var f=function(f){f=g(f);if(1==f[0])return[1];var h=f[2];f=g(f[1]);var k=g(f[1]),l=g(g(k[1])[1])[1],k=g(k[2]),m=g(k[1])[1],t=g(k[2])[1];f=g(f[2]);var s=g(g(f[1])[1])[1];+f=g(f[2]);var x=g(f[1])[1],ja=g(f[2])[1];if(Math.sqrt(Math.pow(x-m,2)+Math.pow(ja-t,2))>1.00001*(l+s))return d=h,null;var ub=b(function(){return[1,l+g(g(c)[1])[1]]}),P=Math.sqrt(Math.pow(x-m,2)+Math.pow(ja-t,2)),Ja=b(function(){return[1,(Math.pow(P,2)+Math.pow(g(ub)[1],2)-Math.pow(s+g(g(c)[1])[1],2))/(2*P)]}),sa=b(function(){var a=Math.pow(g(ub)[1],2)-Math.pow(g(Ja)[1],2);return 0>a?[1,Math.sqrt(-a)]:[1,Math.sqrt(a)]}),Rc=b(function(){return[1,m+g(Ja)[1]*(x-m)/P]}),Sc=b(function(){return[1,t+g(Ja)[1]*+(ja-t)/P]});return[2,[1,b(function(){return[1,g(Rc)[1]+g(sa)[1]*(ja-t)/P]}),b(function(){return[1,g(Sc)[1]-g(sa)[1]*(x-m)/P]})],[2,[1,b(function(){return[1,g(Rc)[1]-g(sa)[1]*(ja-t)/P]}),b(function(){return[1,g(Sc)[1]+g(sa)[1]*(x-m)/P]})],b(function(){return a(h)})]]}(d);if(null!=f)return f}}var h=b(function(){return Tc(Kc,Pc(f))}),k=Lc(function(a){return function(a,c){for(;;){var d=g(c);if(1==d[0])return!0;if(e(a,[d[1]]))c=d[2];else return!1}}(function(d){var f=g(a);d=g(d);var h=g(d[2]);return Math.sqrt(Math.pow(g(h[1])[1]-+g(f[1])[1],2)+Math.pow(g(h[2])[1]-g(f[2])[1],2))>=0.99999*(g(g(c)[1])[1]+g(g(d[1])[1])[1])},f)},Qc(function(a,c){var d=g(a),k=g(b(function(){return[1,Tc(Kc,Oc(f))[1]/g(h)[1]]}))[1],m=g(b(function(){return[1,Tc(Kc,Nc(f))[1]/g(h)[1]]}))[1],l=g(c),l=Math.sqrt(Math.pow(k-g(l[1])[1],2)+Math.pow(m-g(l[2])[1],2)),d=Math.sqrt(Math.pow(k-g(d[1])[1],2)+Math.pow(m-g(d[2])[1],2));return!1==d<l?!1==(d==l)?[3]:[2]:[1]},a(d)));return 1==k[0]?g(b(function(){return n(b(function(){return q("packCircles: The end of the real plane has been reached?")}))})):+g(k[1])}),m=[1,c,l];return[1,[2,m,f],b(function(){function a(f){for(;;){var h=function(h){var k=g(h);if(1==k[0])return g(d);var x=k[2];h=g(l);var k=g(k[1]),ia=g(k[2]);return Math.sqrt(Math.pow(g(ia[1])[1]-g(h[1])[1],2)+Math.pow(g(ia[2])[1]-g(h[2])[1],2))>1.00001*(g(g(c)[1])[1]+g(g(k[1])[1])[1])?(f=x,null):[2,[1,m,k],b(function(){return a(x)})]}(f);if(null!=h)return h}}return a(f)})]}+function Vc(a,c){var d=g(c);return 1==d[0]?[1]:[2,b(function(){return e(a,[d[1]])}),b(function(){return Vc(a,d[2])})]}function Wc(a){var c=g(a);if(1==c[0])return[1];var d=g(c[1]);return[2,b(function(){return[1,g(g(d[2])[1])[1]*Math.pow(g(g(d[1])[1])[1],2)]}),b(function(){return Wc(c[2])})]}function Xc(a){var c=g(a);if(1==c[0])return[1];var d=g(c[1]);return[2,b(function(){return[1,g(g(d[2])[2])[1]*Math.pow(g(g(d[1])[1])[1],2)]}),b(function(){return Xc(c[2])})]}+function Yc(a){var c=g(a);return 1==c[0]?[1]:[2,b(function(){return[1,Math.pow(g(g(g(c[1])[1])[1])[1],2)]}),b(function(){return Yc(c[2])})]}function Zc(a,c){var d=g(c);if(1==d[0])return[1,K,K];var f=d[1];if(e(a,[f]))return[1,K,d];var h=b(function(){var c=Zc(a,d[2]);return[1,c[1],c[2]]});return[1,[2,f,b(function(){return g(g(h)[1])})],b(function(){return g(g(h)[2])})]}+function $c(a){return function(a){a=g(a);switch(a){case 9:return!0;case 10:return!0;case 11:return!0;case 12:return!0;case 13:return!0;case 32:return!0;case 160:return!0;default:return 0==g(ga(a))?!1:!0}}(g(a)[1])}function ad(a){var c=Bc($c,a);if(1==c[0])return[1];var d=b(function(){var a=Zc($c,c);return[1,a[1],a[2]]});return[2,b(function(){return g(g(d)[1])}),b(function(){return ad(g(d)[2])})]}+var bd=b(function(){return J([2,b(function(){return q("Green")}),[2,b(function(){return q("Silver")}),[2,b(function(){return q("Lime")}),[2,b(function(){return q("Gray")}),[2,b(function(){return q("Olive")}),[2,b(function(){return q("Yellow")}),[2,b(function(){return q("Maroon")}),[2,b(function(){return q("Navy")}),[2,b(function(){return q("Red")}),[2,b(function(){return q("Blue")}),[2,b(function(){return q("Purple")}),[2,b(function(){return q("Teal")}),[2,b(function(){return q("Fuchsia")}),[2,b(function(){return q("Aqua")}),+K]]]]]]]]]]]]]],bd)}),cd=b(function(){return q("can")});+function dd(a){var c=la(g(b(function(){return p(cd)}))[1]),c=g(c);return 1==c[0]?g(b(function(){return Ic(cd)})):function(a,c){return function(a,c){var d=ka(a,g(b(function(){return p(b(function(){return q("width")}))}))[1]),f=ka(a,g(b(function(){return p(b(function(){return q("height")}))}))[1]),r=a.getContext("2d");r.clearRect(0,0,r.canvas.width,r.canvas.height);var s=la(g(b(function(){return p(ya)}))[1]),s=g(s);if(1==s[0])return g(b(function(){return Ic(ya)}));s=ka(g(s[1])[1],g([1,"value"])[1]);+s=function(a,c){var d=Uc(Qc(function(a,c){var d=g(g(a)[1])[1],f=g(g(c)[1])[1];return!1==d<f?!1==(d==f)?[3]:[2]:[1]},Vc(function(c){return[1,b(function(){return e(a,[c])}),c]},c)))[1],f=b(function(){return Tc(Kc,Yc(d))});return Vc(function(a){var c=g(a),h=g(c[2]);return[1,b(function(){return g(g(c[1])[2])}),[1,b(function(){return Jc(h[1],b(function(){return[1,Tc(Kc,Wc(d))[1]/g(f)[1]]}))}),b(function(){return Jc(h[2],b(function(){return[1,Tc(Kc,Xc(d))[1]/g(f)[1]]}))})]]},d)}(function(a){return g(g(a)[1])},+e(Hc,[ad(v([1,s])),bd]));if(1==s[0])return za;var x=g(s[1]),C=g(x[1]),x=g(x[2]);xa(r,p(C[2])[1]);r.beginPath();var t=Gc(L(Fc,b(function(){return v([1,d])})));if(1==t[0])return g(Aa);if(1==g(t[2])[0]){var sb=g(t[1])[1]/2,t=Gc(L(Fc,b(function(){return v([1,f])})));if(1==t[0])return g(Aa);if(1==g(t[2])[0]){var ia=g(t[1])[1]/2;wa(r,g(x[1])[1]+sb,g(x[2])[1]+ia,g(C[1])[1]);r.closePath();r.fill();return function(a){for(;;){a=g(a);if(1==a[0])return za;var c=g(a[1]),d=g(c[1]),c=g(c[2]),f=p(d[2])[1];r.fillStyle=+f;r.beginPath();wa(r,g(c[1])[1]+sb,g(c[2])[1]+ia,g(d[1])[1]);r.closePath();r.fill();a=a[2]}}(s[2],c)}}return g(Ba)}(g(a)[1],c)}(c[1],a)}function ed(a){return function(a){var d=la(g(b(function(){return p(ya)}))[1]),d=g(d);if(1==d[0])return g(b(function(){return Ic(ya)}));d=g(d[1])[1];ea(d,g([1,"change"])[1],g([1,dd])[1]);ea(d,g([1,"keyup"])[1],g([1,function(a,c){return dd(c)}])[1]);return dd(a)}(a)}window.onload=function(){e(ed,[0])};
+ haste/helpers.js view
@@ -0,0 +1,28 @@+function jsGetContext2D(canvas, _) {+	return canvas.getContext("2d");+}++function jsBeginPath(context, _) {+	context.beginPath();+}++function jsClosePath(context, _) {+	context.closePath();+}++function jsFill(context, _) {+	context.fill();+}++function jsArc(context, x, y, r, minPhi, maxPhi, ccw, _) {+	context.arc(x,y,r,minPhi,maxPhi,ccw);+}++function jsSetFillColor(context, color, _) {+	context.fillStyle = color;+}++function jsClear(context, _) {+	context.clearRect(0.0, 0.0, context.canvas.width, context.canvas.height);+}+