{"id":61247,"date":"2025-04-09T09:00:00","date_gmt":"2025-04-09T09:00:00","guid":{"rendered":"https:\/\/housfy.com\/blog\/?p=61247"},"modified":"2026-10-02T09:02:15","modified_gmt":"2026-10-02T09:02:15","slug":"desgravar-hipoteca-despues-de-2013-guia-completa","status":"publish","type":"post","link":"https:\/\/housfy.com\/blog\/desgravar-hipoteca-despues-de-2013-guia-completa\/","title":{"rendered":"\u00bfPuedes desgravar tu hipoteca despu\u00e9s de 2013? Gu\u00eda completa para 2026"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u00bfQuieres desgravar la suma de tus cuotas hipotecarias m\u00e1s gastos deducibles en la declaraci\u00f3n de la renta? Descubre por qu\u00e9 <strong>no puedes desgravar tu hipoteca despu\u00e9s de 2013 y las excepciones legales.<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Lo m\u00e1s importante del art\u00edculo:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Si adquiriste tu vivienda habitual antes del 1 de enero de 2013 (cuenta la fecha de la escritura de compraventa) y te aplicaste la deducci\u00f3n en alguna renta anterior, <strong>puedes seguir deduciendo el 15 % de lo que pagas.<\/strong><\/li>\n\n\n\n<li>Aunque la Ley 16\/2012 prohibi\u00f3 desgravar tu hipoteca despu\u00e9s de 2013, <strong>existen excepciones territoriales<\/strong> a tener en cuenta.<\/li>\n\n\n\n<li>El <strong>l\u00edmite deducible es de 9.040\u20ac anuales por titular<\/strong>, tanto en declaraci\u00f3n individual como conjunta; con 2 titulares, hasta 18.080\u20ac entre ambos.<\/li>\n\n\n\n<li>La deducci\u00f3n no se limita a la cuota mensual; <strong>tambi\u00e9n cuentan los seguros de vida y hogar vinculados al pr\u00e9stamo y los gastos de una subrogaci\u00f3n o novaci\u00f3n<\/strong>, el a\u00f1o en que los pagas.<\/li>\n\n\n\n<li>Si compraste despu\u00e9s del 1 de enero de 2013 y no cumples los requisitos para optar a beneficios fiscales, puedes <strong>mejorar tus condiciones con Housfy, ahorr\u00e1ndote hasta 30.000\u20ac en intereses.<\/strong><\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>En este art\u00edculo aprender\u00e1s:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u00bfPuedes desgravar tu hipoteca despu\u00e9s de 2013? Todo lo que debes saber<\/li>\n\n\n\n<li>\u00bfQu\u00e9 excepciones existen para poder desgravar tu hipoteca despu\u00e9s de 2013?<\/li>\n\n\n\n<li>\u00bfQu\u00e9 alternativas tienes si no puedes desgravar tu hipoteca despu\u00e9s de 2013?<\/li>\n\n\n\n<li>\u00bfQu\u00e9 requisitos debes cumplir para deducir tus gastos por vivienda habitual si compraste antes de 2013?<\/li>\n\n\n\n<li>\u00bfCu\u00e1nto te puedes ahorrar al desgravar tu hipoteca antes de 2013?<\/li>\n\n\n\n<li>\u00bfCu\u00e1les son los gastos deducibles que computan para el ahorro por inversi\u00f3n en vivienda habitual?<\/li>\n\n\n\n<li>\u00bfC\u00f3mo desgravar tu hipoteca si compraste antes de 2013 paso a paso?<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<!-- Comprobador: \u00bfpuedes desgravar tu hipoteca? Versi\u00f3n blindada para WordPress (pegar en un bloque HTML personalizado) -->\n<div data-hd-tool=\"\" style=\"display:block;max-width:720px;margin:32px auto;\"><p>Cargando la herramienta\u2026<\/p><\/div>\n<script>(function(){var s=\"KGZ1bmN0aW9uICgpIHsKICAvKiA9PT09PT0gQ0lGUkFTIEVESVRBQkxFUyAoUmVudGEgMjAyNSwgbm9ybWF0aXZhIHZpZ2VudGUgZW4gMjAyNikgPT09PT09ICovCiAgdmFyIENGRyA9IHsKICAgIHllYXI6IDIwMjYsIHJlbnRhOiAyMDI1LAogICAgZXN0QmFzZTogOTA0MCwgZXN0UGN0OiAxNSwKICAgIHB2UGN0OiAxOCwgcHZQY3RKOiAyMywgcHZDYXA6IDE1MzAsIHB2Q2FwSjogMTk1NSwgcHZBZ2VKOiAzNiwgcHZMaWZlOiAzNjAwMCwKICAgIG5hdkJhc2U6IDcwMDAsIG5hdkJhc2VIaTogOTAxNSwgbmF2UGN0OiAxNSwKICAgIGN0YVVybDogJ2h0dHBzOi8vaG91c2Z5LmNvbS9oaXBvdGVjYS9tZWpvcmFyLWhpcG90ZWNhJwogIH07CiAgdmFyIFBMQUNFUyA9IFsKICAgIFsnYW5kJywgJ0FuZGFsdWPDrWEnLCAnY29tdW4nXSwgWydhcmEnLCAnQXJhZ8OzbicsICdjb211biddLCBbJ2FzdCcsICdBc3R1cmlhcycsICdjb211biddLAogICAgWydjYW4nLCAnQ2FuYXJpYXMnLCAnY29tdW4nXSwgWydjbnQnLCAnQ2FudGFicmlhJywgJ2NvbXVuJ10sIFsnY2xtJywgJ0Nhc3RpbGxhLUxhIE1hbmNoYScsICdjb211biddLAogICAgWydjeWwnLCAnQ2FzdGlsbGEgeSBMZcOzbicsICdjb211biddLCBbJ2NhdCcsICdDYXRhbHXDsWEnLCAnY29tdW4nXSwgWydjZXUnLCAnQ2V1dGEnLCAnY29tdW4nXSwKICAgIFsnbWFkJywgJ0NvbXVuaWRhZCBkZSBNYWRyaWQnLCAnY29tdW4nXSwgWyd2YWwnLCAnQ29tdW5pdGF0IFZhbGVuY2lhbmEnLCAnY29tdW4nXSwgWydleHQnLCAnRXh0cmVtYWR1cmEnLCAnY29tdW4nXSwKICAgIFsnZ2FsJywgJ0dhbGljaWEnLCAnY29tdW4nXSwgWydiYWwnLCAnSWxsZXMgQmFsZWFycycsICdjb211biddLCBbJ3JpbycsICdMYSBSaW9qYScsICdjb211biddLAogICAgWydtZWwnLCAnTWVsaWxsYScsICdjb211biddLCBbJ211cicsICdSZWdpw7NuIGRlIE11cmNpYScsICdjb211biddLAogICAgWydhbGEnLCAnw4FsYXZhJywgJ3B2J10sIFsnYml6JywgJ0JpemthaWEnLCAncHYnXSwgWydnaXAnLCAnR2lwdXprb2EnLCAncHYnXSwgWyduYXYnLCAnTmF2YXJyYScsICduYXYnXQogIF07CiAgZnVuY3Rpb24gcGN0T2YocCwgYmFzZSkgeyByZXR1cm4gZnVuY3Rpb24gKFApIHsgcmV0dXJuIE1hdGgubWluKFAsIGJhc2UpICogcCAvIDEwMDsgfTsgfQogIC8qIERlZHVjY2lvbmVzIGF1dG9uw7NtaWNhcyBwb3IgY29tcHJhIGRlIHZpdmllbmRhIGhhYml0dWFsIChNYW51YWwgUmVudGEgMjAyNSwgQUVBVCkgKi8KICB2YXIgQVVUTyA9IHsKICAgIGFuZDogW3sgdDogJ1ZpdmllbmRhIHByb3RlZ2lkYSBvIG1lbm9yZXMgZGUgMzUgYcOxb3MnLCByOiAnNiAlIGRlIGxvIHF1ZSBwYWdhcywgc29icmUgdW4gbcOheGltbyBkZSA5LjA0MCDigqwgYWwgYcOxbycsIGVzdDogcGN0T2YoNiwgOTA0MCksIHJlcTogJ1RlbmVyIG1lbm9zIGRlIDM1IGHDsW9zIG8gcXVlIGxhIHZpdmllbmRhIHNlYSBwcm90ZWdpZGEuIFR1cyBiYXNlcyBpbXBvbmlibGVzIGdlbmVyYWwgeSBkZWwgYWhvcnJvIG5vIHB1ZWRlbiBzdXBlcmFyIDI1LjAwMCDigqwgZW4gaW5kaXZpZHVhbCBvIDMwLjAwMCDigqwgZW4gY29uanVudGEuJyB9XSwKICAgIGFyYTogW3sgdDogJ1ByaW1lcmEgdml2aWVuZGEgZW4gbsO6Y2xlb3MgcnVyYWxlcycsIHI6ICc1ICUgZGUgbG8gcXVlIHBhZ2FzLCBzb2JyZSB1biBtw6F4aW1vIGRlIDkuMDQwIOKCrCAoNyw1ICUgZW4gYXNlbnRhbWllbnRvcyBjb24gZmlzY2FsaWRhZCBkaWZlcmVuY2lhZGEpJywgZXN0OiBwY3RPZig1LCA5MDQwKSwgYWdlOiAzNiwgZnJvbTogMjAxMiwgcmVxOiAnTWVub3MgZGUgMzYgYcOxb3MsIHByaW1lcmEgdml2aWVuZGEgeSBlbiB1biBtdW5pY2lwaW8gYXJhZ29uw6lzIGRlIG1lbm9zIGRlIDMuMDAwIGhhYml0YW50ZXMgbyBlbiB1bmEgZW50aWRhZCBsb2NhbCBtZW5vciBvIHNpbmd1bGFyLiBCYXNlcyBpbXBvbmlibGVzIG1lbm9zIG3DrW5pbW9zIGRlIGhhc3RhIDIxLjAwMCDigqwgZW4gaW5kaXZpZHVhbCBvIDM1LjAwMCDigqwgZW4gY29uanVudGEuJyB9XSwKICAgIGFzdDogW3sgdDogJ1ZpdmllbmRhIHByb3RlZ2lkYScsIHI6ICcxMDAgJSBkZWwgZ2FzdG86IGhhc3RhIDUuMDAwIOKCrCBlbCBhw7FvIGRlIGNvbXByYSB5IDEuMDAwIOKCrCBsb3Mgc2lndWllbnRlcycsIGVzdDogZnVuY3Rpb24gKFApIHsgcmV0dXJuIE1hdGgubWluKFAsIDEwMDApOyB9LCBlc3ROb3RlOiAnYSBwYXJ0aXIgZGVsIHNlZ3VuZG8gYcOxbycsIHJlcTogJ0xhIHZpdmllbmRhIGRlYmUgdGVuZXIgbGEgY2FsaWZpY2FjacOzbiBkZSBwcm90ZWdpZGEuJyB9XSwKICAgIGNhbjogW3sgdDogJ0ludmVyc2nDs24gZW4gdml2aWVuZGEgaGFiaXR1YWwnLCByOiAnRGVsIDMsNSAlIGFsIDUsNSAlIGRlIGxvIHF1ZSBwYWdhcywgc29icmUgdW4gbcOheGltbyBkZSA2LjAwMCDigqwgYWwgYcOxbycsIGVzdDogZnVuY3Rpb24gKFAsIGEpIHsgcmV0dXJuIE1hdGgubWluKFAsIDYwMDApICogKGEgPCA0MCA\/IDUuNSA6IDUpIC8gMTAwOyB9LCBlc3ROb3RlOiAnY29uIGJhc2VzIGluZmVyaW9yZXMgYSAyNi4wMzUg4oKsJywgcmVxOiAnQmFzZXMgaW1wb25pYmxlcyBpbmZlcmlvcmVzIGEgNDYuNDU1IOKCrC4gQ29uIG1lbm9zIGRlIDI2LjAzNSDigqwgc2UgYXBsaWNhIGVsIDUgJSAoNSw1ICUgc2kgdGllbmVzIG1lbm9zIGRlIDQwIGHDsW9zKTsgcG9yIGVuY2ltYSwgZWwgMyw1ICUgKDQgJSkuJyB9XSwKICAgIGNsbTogWwogICAgICB7IHQ6ICdJbnRlcmVzZXMgZGUgbGEgcHJpbWVyYSB2aXZpZW5kYSBwYXJhIG1lbm9yZXMgZGUgNDAnLCByOiAnMTAwICUgZGUgbG9zIGludGVyZXNlcywgaGFzdGEgMTUwIOKCrCBvIDEwMCDigqwgc2Vnw7puIHR1IHJlbnRhJywgY2FwOiAxNTAsIGFnZTogNDAsIHJlcTogJ01lbm9zIGRlIDQwIGHDsW9zLCBwcmltZXJhIHZpdmllbmRhIHkgcHLDqXN0YW1vIGEgdGlwbyB2YXJpYWJsZS4gQmFzZXMgaW1wb25pYmxlcyBkZSBoYXN0YSAyNy4wMDAg4oKsIGVuIGluZGl2aWR1YWwgbyAzNi4wMDAg4oKsIGVuIGNvbmp1bnRhLicgfSwKICAgICAgeyB0OiAnQ29tcHJhIGVuIHpvbmFzIHJ1cmFsZXMgZGVzcG9ibGFkYXMnLCByOiAnMTUgJSBkZSBsbyBxdWUgcGFnYXMsIHNvYnJlIHVuIG3DoXhpbW8gZGUgMTIuMDAwIOKCrCBhbCBhw7FvJywgZXN0OiBwY3RPZigxNSwgMTIwMDApLCBmcm9tOiAyMDIxLCByZXE6ICdWaXZpZW5kYSBjb21wcmFkYSBkZXNkZSAyMDIxIGVuIHVuIG11bmljaXBpbyBkZSBtZW5vcyBkZSA1LjAwMCBoYWJpdGFudGVzIGRlbnRybyBkZSBsYXMgem9uYXMgZXNjYXNhbWVudGUgcG9ibGFkYXMuJyB9CiAgICBdLAogICAgY3lsOiBbeyB0OiAnSsOzdmVuZXMgZW4gZWwgbWVkaW8gcnVyYWwnLCByOiAnMTUgJSBkZSBsbyBxdWUgcGFnYXMsIHNvYnJlIHVuIG3DoXhpbW8gZGUgMTAuMDAwIOKCrCBhbCBhw7FvJywgZXN0OiBwY3RPZigxNSwgMTAwMDApLCBhZ2U6IDM2LCByZXE6ICdNZW5vcyBkZSAzNiBhw7FvcywgcHJpbWVyYSB2aXZpZW5kYSwgbnVldmEgbyByZWhhYmlsaXRhZGEsIHZhbG9yYWRhIGVuIG1lbm9zIGRlIDE1MC4wMDAg4oKsIHkgZW4gdW4gbXVuaWNpcGlvIGRlIGhhc3RhIDEwLjAwMCBoYWJpdGFudGVzICgzLjAwMCBzaSBlc3TDoSBhIG1lbm9zIGRlIDMwIGttIGRlIGxhIGNhcGl0YWwpLiBCYXNlcyBtZW5vcyBtw61uaW1vcyBkZSBoYXN0YSAxOC45MDAg4oKsIGVuIGluZGl2aWR1YWwgbyAzMS41MDAg4oKsIGVuIGNvbmp1bnRhLicgfV0sCiAgICBleHQ6IFsKICAgICAgeyB0OiAnUHJpbWVyYSB2aXZpZW5kYSBudWV2YSBwYXJhIG1lbm9yZXMgZGUgMzYnLCByOiAnMyAlICh2aXZpZW5kYSBwcm90ZWdpZGEpIG8gNSAlIChtdW5pY2lwaW9zIGRlIG1lbm9zIGRlIDMuMDAwIGhhYml0YW50ZXMpIGRlIGxvIHF1ZSBwYWdhcyBzaW4gaW50ZXJlc2VzLCBzb2JyZSB1biBtw6F4aW1vIGRlIDkuMDQwIOKCrCcsIGNhcDogNDUyLCBhZ2U6IDM2LCByZXE6ICdNZW5vcyBkZSAzNiBhw7FvcyB5IHByaW1lcmEgdml2aWVuZGEuIEJhc2VzIGltcG9uaWJsZXMgZGUgaGFzdGEgMTkuMDAwIOKCrCBlbiBpbmRpdmlkdWFsIG8gMjQuMDAwIOKCrCBlbiBjb25qdW50YSwgbyBkZSAyOC4wMDAg4oKsIHkgNDUuMDAwIOKCrCBlbiBtdW5pY2lwaW9zIGRlIG1lbm9zIGRlIDMuMDAwIGhhYml0YW50ZXMuJyB9LAogICAgICB7IHQ6ICdJbnRlcmVzZXMgZGUgbGEgaGlwb3RlY2EgcGFyYSBtZW5vcmVzIGRlIDM2JywgcjogJzI1ICUgZGUgbG9zIGludGVyZXNlcywgc29icmUgdW4gbcOheGltbyBkZSAxLjAwMCDigqwgYWwgYcOxbycsIGNhcDogMjUwLCBhZ2U6IDM2LCByZXE6ICdNZW5vcyBkZSAzNiBhw7FvcyB5IHByaW1lcmEgdml2aWVuZGEuIEJhc2VzIGltcG9uaWJsZXMgZGUgaGFzdGEgMjguMDAwIOKCrCBlbiBpbmRpdmlkdWFsIG8gNDUuMDAwIOKCrCBlbiBjb25qdW50YS4nIH0sCiAgICAgIHsgdDogJ0NvbXByYSBlbiB6b25hcyBydXJhbGVzJywgcjogJzEwICUgZGUgbG8gcXVlIHBhZ2FzLCBzb2JyZSB1biBtw6F4aW1vIGRlIDkuMDQwIOKCrCBhbCBhw7FvJywgZXN0OiBwY3RPZigxMCwgOTA0MCksIGZyb206IDIwMjIsIHJlcTogJ1ZpdmllbmRhIGNvbXByYWRhIGRlc2RlIDIwMjIgZW4gdW4gbXVuaWNpcGlvIG8gZW50aWRhZCBsb2NhbCBkZSBtZW5vcyBkZSAzLjAwMCBoYWJpdGFudGVzLiBObyBzZSBjb21iaW5hIGNvbiBsYXMgZG9zIGFudGVyaW9yZXMuJyB9CiAgICBdLAogICAgbWFkOiBbCiAgICAgIHsgdDogJ0ludGVyZXNlcyBkZSBsYSBoaXBvdGVjYSBwYXJhIG1lbm9yZXMgZGUgMzAnLCByOiAnMjUgJSBkZSBsb3MgaW50ZXJlc2VzLCBoYXN0YSAxLjAzMSDigqwgYWwgYcOxbycsIGNhcDogMTAzMSwgYWdlOiAzMCwgcmVxOiAnVGVuZXIgbWVub3MgZGUgMzAgYcOxb3MuIFNvbG8gY3VlbnRhbiBsb3MgaW50ZXJlc2VzIHBhZ2Fkb3MgaGFzdGEgZWwgbWVzIGFudGVyaW9yIGEgY3VtcGxpcmxvcy4nIH0sCiAgICAgIHsgdDogJ0NvbXByYSBlbiBtdW5pY2lwaW9zIGVuIHJpZXNnbyBkZSBkZXNwb2JsYWNpw7NuJywgcjogJzEwICUgZGVsIHByZWNpbyBkZSBjb21wcmEsIHJlcGFydGlkbyBlbiBkaWV6IGHDsW9zLCBoYXN0YSAxLjU0Niw1MCDigqwgYWwgYcOxbycsIGNhcDogMTU0Ni41LCBhZ2VCdXk6IDM1LCBmcm9tOiAyMDI0LCByZXE6ICdNZW5vcyBkZSAzNSBhw7FvcyBhbCBjb21wcmFyLCB2aXZpZW5kYSBjb21wcmFkYSBkZXNkZSAyMDI0IGVuIHVuIG11bmljaXBpbyBkZSBtZW5vcyBkZSAyLjUwMCBoYWJpdGFudGVzIHkgcmVzaWRpciBhbGzDrSBhbCBtZW5vcyBjdWF0cm8gYcOxb3MuIEJhc2VzIGltcG9uaWJsZXMgZGUgbGEgdW5pZGFkIGZhbWlsaWFyIGRlIGhhc3RhIDMwLjkzMCDigqwgcG9yIG1pZW1icm8uJyB9CiAgICBdLAogICAgbXVyOiBbeyB0OiAnSsOzdmVuZXMgZGUgaGFzdGEgNDAgYcOxb3MnLCByOiAnNSAlIGRlIGxvIHF1ZSBwYWdhcywgaGFzdGEgMzAwIOKCrCBhbCBhw7FvJywgZXN0OiBmdW5jdGlvbiAoUCkgeyByZXR1cm4gTWF0aC5taW4oUCAqIDAuMDUsIDMwMCk7IH0sIGFnZTogNDEsIHJlcTogJ1RlbmVyIDQwIGHDsW9zIG8gbWVub3MgeSBxdWUgbGEgdml2aWVuZGEgc2VhIGRlIG51ZXZhIGNvbnN0cnVjY2nDs24uIEJhc2VzIGltcG9uaWJsZXMgaW5mZXJpb3JlcyBhIDQwLjAwMCDigqwsIGNvbiB1bmEgYmFzZSBkZWwgYWhvcnJvIGRlIGhhc3RhIDEuODAwIOKCrC4nIH1dLAogICAgcmlvOiBbCiAgICAgIHsgdDogJ0rDs3ZlbmVzIG1lbm9yZXMgZGUgMzYnLCByOiAnMTUgJSBkZSBsbyBxdWUgcGFnYXMsIHNvYnJlIHVuIG3DoXhpbW8gZGUgOS4wMDAg4oKsIGFsIGHDsW8nLCBlc3Q6IHBjdE9mKDE1LCA5MDAwKSwgYWdlOiAzNiwgZnJvbTogMjAxMywgcmVxOiAnTWVub3MgZGUgMzYgYcOxb3MgeSB2aXZpZW5kYSBjb21wcmFkYSBkZXNkZSAyMDEzLiBCYXNlIGxpcXVpZGFibGUgZ2VuZXJhbCBkZSBoYXN0YSAxOC4wMzAg4oKsIGVuIGluZGl2aWR1YWwgbyAzMC4wNTAg4oKsIGVuIGNvbmp1bnRhLCB5IGRlbCBhaG9ycm8gZGUgaGFzdGEgMS44MDAg4oKsLicgfSwKICAgICAgeyB0OiAnQ29tcHJhIGVuIHBlcXVlw7FvcyBtdW5pY2lwaW9zJywgcjogJzUgJSBkZSBsbyBxdWUgcGFnYXMsIGhhc3RhIDQ1MiDigqwgYWwgYcOxbycsIGVzdDogcGN0T2YoNSwgOTA0MCksIGZyb206IDIwMTcsIHJlcTogJ1ZpdmllbmRhIGNvbXByYWRhIGRlc2RlIDIwMTcgZW4gdW5vIGRlIGxvcyBwZXF1ZcOxb3MgbXVuaWNpcGlvcyByaW9qYW5vcyBkZSBsYSBsaXN0YSBvZmljaWFsLicgfQogICAgXSwKICAgIGNhdDogW3sgdDogJ0NvbXByYSBlbiBtdW5pY2lwaW9zIHJ1cmFsZXMnLCByOiAnMTUgJSBkZSBsbyBxdWUgcGFnYXMgKDIwICUgZW4gbXVuaWNpcGlvcyBydXJhbGVzIGRlIGF0ZW5jacOzbiBlc3BlY2lhbCksIHNvYnJlIHVuIG3DoXhpbW8gZGUgNi4wMDAg4oKsIGFsIGHDsW8nLCBlc3Q6IHBjdE9mKDE1LCA2MDAwKSwgZnJvbTogMjAyNSwgcmVxOiAnVml2aWVuZGEgZW4gdW4gbXVuaWNpcGlvIHJ1cmFsIChoYXN0YSAyLjAwMCBoYWJpdGFudGVzIGVuIGNvbWFyY2FzIHJ1cmFsZXMpLCB0ZW5lciBhIGNhcmdvIGhpam9zIGRlIGhhc3RhIDE2IGHDsW9zIGVzY29sYXJpemFkb3MgZW4gZWwgbXVuaWNpcGlvIG8gc3UgY2VudHJvIGRlIHJlZmVyZW5jaWEgKG5vIHNlIGV4aWdlIGNvbiBtZW5vcmVzIGRlIDMgYcOxb3MpIHkgYmFzZXMgaW1wb25pYmxlcyBtZW5vcyBtw61uaW1vcyBkZSBoYXN0YSAzNi4wMDAg4oKsLiBFcyBudWV2YSAoTGV5IDgvMjAyNSk6IHNlIGFwbGljYSBlbCBhw7FvIGRlIGNvbXByYSB5IGxvcyAxNCBzaWd1aWVudGVzOyBjb25maXJtYSBjb24gdW4gZ2VzdG9yIGRlc2RlIHF1w6kgZGVjbGFyYWNpw7NuIHB1ZWRlcyBhcGxpY2FybGEuJyB9XSwKICAgIHZhbDogW3sgdDogJ1ByaW1lcmEgdml2aWVuZGEgcGFyYSBqw7N2ZW5lcyBkZSBoYXN0YSAzNSBhw7FvcycsIHI6ICc1ICUgZGUgbG8gcXVlIHBhZ2FzLCBzaW4gY29udGFyIGxvcyBpbnRlcmVzZXMnLCBhZ2U6IDM2LCByZXE6ICdUZW5lciAzNSBhw7FvcyBvIG1lbm9zIHkgcXVlIHNlYSB0dSBwcmltZXJhIHZpdmllbmRhIGhhYml0dWFsLiBCYXNlcyBsaXF1aWRhYmxlcyBkZSBoYXN0YSAzMC4wMDAg4oKsIGVuIGluZGl2aWR1YWwgbyA0Ny4wMDAg4oKsIGVuIGNvbmp1bnRhIChkZWR1Y2Npw7NuIGNvbXBsZXRhIHBvciBkZWJham8gZGUgMjcuMDAwIOKCrCB5IDQ0LjAwMCDigqwpLicgfV0KICB9OwogIHZhciBOT05FID0gewogICAgY2F0OiAnRnVlcmEgZGVsIHLDqWdpbWVuIHRyYW5zaXRvcmlvLCBDYXRhbHXDsWEgc29sbyB0aWVuZSB1bmEgZGVkdWNjacOzbiBwb3IgY29tcHJhciBlbiB1biBtdW5pY2lwaW8gcnVyYWwsIHBhcmEgY29tcHJhcyBkZXNkZSAyMDI1LicsCiAgICBnYWw6ICdFbiBHYWxpY2lhIHNvbG8gZXhpc3RlIHVuYSBkZWR1Y2Npw7NuIGxpZ2FkYSBhIGxvcyBwcm95ZWN0b3MgZGUgYWxkZWFzIG1vZGVsby4nCiAgfTsKICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovCiAgdmFyIEZPTlRfSUQgPSAncGNhLW1hbnJvcGUtZm9udCc7CiAgaWYgKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZChGT05UX0lEKSkgewogICAgdmFyIGxrID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpOwogICAgbGsuaWQgPSBGT05UX0lEOyBsay5yZWwgPSAnc3R5bGVzaGVldCc7CiAgICBsay5ocmVmID0gJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9TWFucm9wZTp3Z2h0QDQwMDs1MDA7NjAwOzcwMDs4MDAmZGlzcGxheT1zd2FwJzsKICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQobGspOwogIH0KICB2YXIgQ1NTID0gWwogICAgJzpob3N0e2FsbDppbml0aWFsO2Rpc3BsYXk6YmxvY2t9JywKICAgICcqLCo6OmJlZm9yZSwqOjphZnRlcntib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjA7cGFkZGluZzowfScsCiAgICAnLnd7Zm9udC1mYW1pbHk6Ik1hbnJvcGUiLHN5c3RlbS11aSwtYXBwbGUtc3lzdGVtLCJTZWdvZSBVSSIsUm9ib3RvLEFyaWFsLHNhbnMtc2VyaWY7Zm9udC1zaXplOjE3cHg7bGluZS1oZWlnaHQ6MS41O2NvbG9yOiMwMzAwN0E7YmFja2dyb3VuZDojRkZGRkZGO2JvcmRlcjoxcHggc29saWQgI0Q3RUFGOTtib3JkZXItcmFkaXVzOjI0cHg7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtZm9udC1zbW9vdGhpbmc6YW50aWFsaWFzZWQ7dGV4dC1hbGlnbjpsZWZ0fScsCiAgICAnLmhke2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEyNWRlZywjMDMwMDdBIDAlLCMwMzAwN0EgNDUlLCMxMUFFRkEgMTUwJSk7Y29sb3I6I0ZGRkZGRjtwYWRkaW5nOjI0cHggMjBweCAyMHB4fScsCiAgICAnLmtpY2t7Zm9udC1zaXplOjE0cHg7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOiNGRkZGRkY7b3BhY2l0eTouODV9JywKICAgICcudGl0bGV7Zm9udC1zaXplOjIzcHg7bGluZS1oZWlnaHQ6MS4yMjtmb250LXdlaWdodDo4MDA7bWFyZ2luLXRvcDo2cHg7Y29sb3I6I0ZGRkZGRjtsZXR0ZXItc3BhY2luZzotLjAxZW19JywKICAgICcuc3Vie2ZvbnQtc2l6ZToxNXB4O21hcmdpbi10b3A6OHB4O2NvbG9yOiNGRkZGRkY7b3BhY2l0eTouOX0nLAogICAgJy5wcm9ne2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEycHg7bWFyZ2luLXRvcDoxOHB4fScsCiAgICAnLmJhcntmbGV4OjE7aGVpZ2h0OjZweDtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsLjIyKTtib3JkZXItcmFkaXVzOjk5cHg7b3ZlcmZsb3c6aGlkZGVufScsCiAgICAnLmJhciBzcGFue2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjEwMCU7YmFja2dyb3VuZDojMTFBRUZBO2JvcmRlci1yYWRpdXM6OTlweDt0cmFuc2l0aW9uOndpZHRoIC4zNXMgZWFzZX0nLAogICAgJy5jb3VudHtmb250LXNpemU6MTNweDtmb250LXdlaWdodDo3MDA7Y29sb3I6I0ZGRkZGRjt3aGl0ZS1zcGFjZTpub3dyYXB9JywKICAgICcuYmR7cGFkZGluZzoyMnB4IDIwcHggMjRweH0nLAogICAgJy5hbmlte2FuaW1hdGlvbjpoZEluIC4yOHMgZWFzZX0nLAogICAgJ0BrZXlmcmFtZXMgaGRJbntmcm9te29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg4cHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06bm9uZX19JywKICAgICcucXtmb250LXNpemU6MjFweDtmb250LXdlaWdodDo4MDA7bGluZS1oZWlnaHQ6MS4yODtvdXRsaW5lOm5vbmV9JywKICAgICcuaGVscHtmb250LXNpemU6MTVweDttYXJnaW4tdG9wOjZweDtjb2xvcjojMDMwMDdBO29wYWNpdHk6Ljh9JywKICAgICcub3B0c3tkaXNwbGF5OmdyaWQ7Z2FwOjEwcHg7bWFyZ2luLXRvcDoxOHB4fScsCiAgICAnLm9wdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpsZWZ0O2JhY2tncm91bmQ6I0ZGRkZGRjtib3JkZXI6MnB4IHNvbGlkICNEN0VBRjk7Ym9yZGVyLXJhZGl1czoxNnB4O3BhZGRpbmc6MTRweCAxNnB4O21pbi1oZWlnaHQ6NjBweDtmb250OmluaGVyaXQ7Y29sb3I6IzAzMDA3QTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTVzLGJhY2tncm91bmQtY29sb3IgLjE1c30nLAogICAgJy5vcHQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOiMxMUFFRkE7YmFja2dyb3VuZDojRUZGN0ZEfScsCiAgICAnLm9wdFthcmlhLXByZXNzZWQ9InRydWUiXXtib3JkZXItY29sb3I6IzExQUVGQTtiYWNrZ3JvdW5kOiNFRkY3RkR9JywKICAgICcub3B0IGJ7ZGlzcGxheTpibG9jaztmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOjE3cHg7bGluZS1oZWlnaHQ6MS4zfScsCiAgICAnLm9wdCBzbWFsbHtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxNHB4O2xpbmUtaGVpZ2h0OjEuMzU7b3BhY2l0eTouNzU7bWFyZ2luLXRvcDozcHh9JywKICAgICcub3B0IHN2Z3ttYXJnaW4tbGVmdDphdXRvO2ZsZXg6bm9uZTt3aWR0aDoyMnB4O2hlaWdodDoyMnB4O2NvbG9yOiMxMUFFRkF9JywKICAgICcuc2Vne2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcjtnYXA6OHB4O21hcmdpbi10b3A6OHB4fScsCiAgICAnLnNlZyAub3B0e21pbi1oZWlnaHQ6NTJweDtwYWRkaW5nOjEwcHggMTRweDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyfScsCiAgICAnLnNlZyAub3B0IGJ7Zm9udC1zaXplOjE2cHh9JywKICAgICdidXR0b246Zm9jdXMtdmlzaWJsZSxpbnB1dDpmb2N1cy12aXNpYmxlLHNlbGVjdDpmb2N1cy12aXNpYmxlLGE6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjNweCBzb2xpZCAjMTFBRUZBO291dGxpbmUtb2Zmc2V0OjJweH0nLAogICAgJy5uYXZ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDttYXJnaW4tdG9wOjIycHg7ZmxleC13cmFwOndyYXB9JywKICAgICcuYmFja3tiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOjA7Zm9udDppbmhlcml0O2ZvbnQtc2l6ZToxNnB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMDMwMDdBO2Rpc3BsYXk6aW5saW5lLWZsZXg7Z2FwOjZweDthbGlnbi1pdGVtczpjZW50ZXI7cGFkZGluZzoxMHB4IDJweDttaW4taGVpZ2h0OjQ4cHg7Y3Vyc29yOnBvaW50ZXJ9JywKICAgICcuYmFjayBzdmd7d2lkdGg6MThweDtoZWlnaHQ6MThweH0nLAogICAgJy5idG57ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kOiMxMUFFRkE7Y29sb3I6IzAzMDA3QTtib3JkZXI6MnB4IHNvbGlkICMxMUFFRkE7Ym9yZGVyLXJhZGl1czo5OTlweDtwYWRkaW5nOjEzcHggMjRweDtmb250OmluaGVyaXQ7Zm9udC1zaXplOjE3cHg7Zm9udC13ZWlnaHQ6ODAwO21pbi1oZWlnaHQ6NTJweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjE1czttYXJnaW4tbGVmdDphdXRvO3RleHQtZGVjb3JhdGlvbjpub25lfScsCiAgICAnLmJ0bjpob3ZlcntiYWNrZ3JvdW5kOiMwRkEwRTh9JywKICAgICcuYnRuW2Rpc2FibGVkXXtvcGFjaXR5Oi40NTtjdXJzb3I6bm90LWFsbG93ZWR9JywKICAgICcuYnRuLm97YmFja2dyb3VuZDojRkZGRkZGO21hcmdpbi1sZWZ0OjB9JywKICAgICcuYnRuLm86aG92ZXJ7YmFja2dyb3VuZDojRUZGN0ZEfScsCiAgICAnLmZpZWxke21hcmdpbi10b3A6MThweH0nLAogICAgJy5maWVsZCBsYWJlbCwuZmllbGQgLmxibHtkaXNwbGF5OmJsb2NrO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6MTZweH0nLAogICAgJy5maWVsZCAuaGludHtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZToxNHB4O29wYWNpdHk6Ljc1O21hcmdpbi10b3A6MnB4fScsCiAgICAnLmlucHtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2JvcmRlcjoycHggc29saWQgI0Q3RUFGOTtib3JkZXItcmFkaXVzOjE2cHg7bWFyZ2luLXRvcDo4cHg7YmFja2dyb3VuZDojRkZGRkZGO3BhZGRpbmc6MCAxNnB4O21pbi1oZWlnaHQ6NThweH0nLAogICAgJy5pbnA6Zm9jdXMtd2l0aGlue2JvcmRlci1jb2xvcjojMTFBRUZBfScsCiAgICAnLmlucCBpbnB1dCwuaW5wIHNlbGVjdHtib3JkZXI6MDtvdXRsaW5lOjA7Zm9udDppbmhlcml0O2ZvbnQtc2l6ZToyMHB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojMDMwMDdBO3dpZHRoOjEwMCU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtwYWRkaW5nOjEycHggMDttaW4td2lkdGg6MH0nLAogICAgJy5pbnAgc2VsZWN0e2ZvbnQtc2l6ZToxOHB4Oy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2FwcGVhcmFuY2U6bm9uZTtwYWRkaW5nLXJpZ2h0OjI4cHg7Y3Vyc29yOnBvaW50ZXJ9JywKICAgICcuaW5wIC5jaGV2e3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjE2cHg7d2lkdGg6MjBweDtoZWlnaHQ6MjBweDtjb2xvcjojMTFBRUZBO3BvaW50ZXItZXZlbnRzOm5vbmV9JywKICAgICcuaW5wIGlucHV0OjpwbGFjZWhvbGRlcntjb2xvcjojMDMwMDdBO29wYWNpdHk6LjM1fScsCiAgICAnLmlucCBzcGFue2ZvbnQtd2VpZ2h0OjcwMDtvcGFjaXR5Oi43O3doaXRlLXNwYWNlOm5vd3JhcDttYXJnaW4tbGVmdDo4cHg7Zm9udC1zaXplOjE2cHh9JywKICAgICcudHdvLWZ7ZGlzcGxheTpncmlkO2dhcDowIDEycHh9JywKICAgICcuY2hpcHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjgwMDtib3JkZXItcmFkaXVzOjk5cHg7cGFkZGluZzo3cHggMTRweCA3cHggOHB4fScsCiAgICAnLmNoaXAgaXtkaXNwbGF5OmdyaWQ7cGxhY2UtaXRlbXM6Y2VudGVyO3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojRkZEODVBO2NvbG9yOiMwMzAwN0F9JywKICAgICcuY2hpcCBpIHN2Z3t3aWR0aDoxNXB4O2hlaWdodDoxNXB4fScsCiAgICAnLmNoaXAubDB7YmFja2dyb3VuZDojRDdFQUY5O2NvbG9yOiMwMzAwN0F9JywKICAgICcuY2hpcC5sMXtiYWNrZ3JvdW5kOiNGRkZGRkY7Y29sb3I6IzAzMDA3QTtib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCAjRkZEODVBfScsCiAgICAnLmNoaXAubDJ7YmFja2dyb3VuZDojMDMwMDdBO2NvbG9yOiNGRkZGRkZ9JywKICAgICcudmVyZGljdHtib3JkZXI6MnB4IHNvbGlkICNEN0VBRjk7Ym9yZGVyLXJhZGl1czoxOHB4O3BhZGRpbmc6MjBweCAxOHB4O21hcmdpbi1ib3R0b206MTJweH0nLAogICAgJy5yLXR7Zm9udC1zaXplOjIycHg7Zm9udC13ZWlnaHQ6ODAwO2xpbmUtaGVpZ2h0OjEuMjU7bWFyZ2luLXRvcDoxMnB4O291dGxpbmU6bm9uZX0nLAogICAgJy5yLXN7bWFyZ2luLXRvcDo4cHg7Zm9udC1zaXplOjE2cHh9JywKICAgICcuY2FyZHN7ZGlzcGxheTpncmlkO2dhcDoxMnB4fScsCiAgICAnLmNhcmR7YmFja2dyb3VuZDojRUZGN0ZEO2JvcmRlci1yYWRpdXM6MThweDtwYWRkaW5nOjE4cHh9JywKICAgICcubGFie2ZvbnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0OjcwMDtvcGFjaXR5Oi44fScsCiAgICAnLmJpZ3tmb250LXNpemU6MjhweDtmb250LXdlaWdodDo4MDA7bGluZS1oZWlnaHQ6MS4xNTttYXJnaW4tdG9wOjRweH0nLAogICAgJy5iaWcgc21hbGx7Zm9udC1zaXplOjE2cHg7Zm9udC13ZWlnaHQ6NzAwfScsCiAgICAnLm5vdGV7Zm9udC1zaXplOjE1cHg7bWFyZ2luLXRvcDo2cHh9JywKICAgICcuc2Vje21hcmdpbi10b3A6MjRweH0nLAogICAgJy5zZWMgaDR7Zm9udC1zaXplOjE4cHg7Zm9udC13ZWlnaHQ6ODAwfScsCiAgICAnLmRlZHtib3JkZXI6MnB4IHNvbGlkICNEN0VBRjk7Ym9yZGVyLXJhZGl1czoxNnB4O3BhZGRpbmc6MTZweDttYXJnaW4tdG9wOjEycHh9JywKICAgICcuZGVkIGJ7ZGlzcGxheTpibG9jaztmb250LXNpemU6MTdweDtmb250LXdlaWdodDo4MDA7bGluZS1oZWlnaHQ6MS4zfScsCiAgICAnLmRlZCAucnR7Zm9udC1zaXplOjE1cHg7bWFyZ2luLXRvcDo0cHh9JywKICAgICcuZGVkIC52YWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLXRvcDoxMHB4O2JhY2tncm91bmQ6I0VGRjdGRDtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzo2cHggMTBweDtmb250LXNpemU6MTVweDtmb250LXdlaWdodDo4MDB9JywKICAgICcuZGVkIC5ycXtmb250LXNpemU6MTRweDttYXJnaW4tdG9wOjEwcHg7b3BhY2l0eTouOH0nLAogICAgJy5saXtkaXNwbGF5OmZsZXg7Z2FwOjEycHg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDttYXJnaW4tdG9wOjE0cHg7Zm9udC1zaXplOjE2cHh9JywKICAgICcubGkgYntmb250LXdlaWdodDo3MDB9JywKICAgICcuaWN7ZmxleDpub25lO3dpZHRoOjM0cHg7aGVpZ2h0OjM0cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojRkZEODVBO2Rpc3BsYXk6Z3JpZDtwbGFjZS1pdGVtczpjZW50ZXI7Y29sb3I6IzAzMDA3QTttYXJnaW4tdG9wOi0ycHh9JywKICAgICcuaWMgc3Zne3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHh9JywKICAgICcuY3Rhe2JhY2tncm91bmQ6IzAzMDA3QTtjb2xvcjojRkZGRkZGO2JvcmRlci1yYWRpdXM6MThweDtwYWRkaW5nOjIwcHggMThweDttYXJnaW4tdG9wOjI0cHh9JywKICAgICcuY3RhIHAuaHtmb250LXNpemU6MjBweDtmb250LXdlaWdodDo4MDA7bGluZS1oZWlnaHQ6MS4yNX0nLAogICAgJy5jdGEgcC50e2ZvbnQtc2l6ZToxNXB4O21hcmdpbi10b3A6NnB4O29wYWNpdHk6Ljl9JywKICAgICcuY3RhIC5idG57bWFyZ2luOjE2cHggMCAwO3dpZHRoOjEwMCV9JywKICAgICcuZnR7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MS40NTtjb2xvcjojNkQ2RDZEO21hcmdpbjowIDIwcHg7cGFkZGluZzoxNHB4IDAgMjBweDtib3JkZXItdG9wOjFweCBzb2xpZCAjRDdFQUY5fScsCiAgICAnLmFjdHN7ZGlzcGxheTpmbGV4O2dhcDoxMHB4O2ZsZXgtd3JhcDp3cmFwO21hcmdpbi10b3A6MjJweDthbGlnbi1pdGVtczpjZW50ZXJ9JywKICAgICdAbWVkaWEgKG1pbi13aWR0aDo2NDBweCl7Lmhke3BhZGRpbmc6MzBweCAzMnB4IDI0cHh9LmJke3BhZGRpbmc6MjhweCAzMnB4IDMwcHh9LnRpdGxle2ZvbnQtc2l6ZToyOHB4fS5xe2ZvbnQtc2l6ZToyM3B4fS5vcHRzLnR3b3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyIDFmcn0udHdvLWZ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnJ9LnItdHtmb250LXNpemU6MjVweH0uY2FyZHMuYzN7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgzLDFmcil9LmJpZ3tmb250LXNpemU6MjZweH0uZnR7bWFyZ2luOjAgMzJweDtwYWRkaW5nOjE2cHggMCAyNHB4fS5jdGEgLmJ0bnt3aWR0aDphdXRvfX0nLAogICAgJ0BtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5hbmlte2FuaW1hdGlvbjpub25lfS5iYXIgc3Bhbiwub3B0LC5idG57dHJhbnNpdGlvbjpub25lfX0nCiAgXS5qb2luKCcnKTsKICB2YXIgU1YgPSAnIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiJzsKICB2YXIgSSA9IHsKICAgIGFycm93OiAnPHN2ZycgKyBTViArICcgc3Ryb2tlLXdpZHRoPSIyLjQiPjxwYXRoIGQ9Ik05IDZsNiA2LTYgNiIvPjwvc3ZnPicsCiAgICBiYWNrOiAnPHN2ZycgKyBTViArICcgc3Ryb2tlLXdpZHRoPSIyLjQiPjxwYXRoIGQ9Ik0xNSA2bC02IDYgNiA2Ii8+PC9zdmc+JywKICAgIGNoZXY6ICc8c3ZnIGNsYXNzPSJjaGV2IicgKyBTViArICcgc3Ryb2tlLXdpZHRoPSIyLjQiPjxwYXRoIGQ9Ik02IDlsNiA2IDYtNiIvPjwvc3ZnPicsCiAgICBjaGVjazogJzxzdmcnICsgU1YgKyAnIHN0cm9rZS13aWR0aD0iMi44Ij48cGF0aCBkPSJNNSAxMi41bDQuNSA0LjVMMTkgNy41Ii8+PC9zdmc+JywKICAgIGFsZXJ0OiAnPHN2ZycgKyBTViArICcgc3Ryb2tlLXdpZHRoPSIyLjYiPjxwYXRoIGQ9Ik0xMiA2LjV2NyIvPjxwYXRoIGQ9Ik0xMiAxNy41aC4wMSIvPjwvc3ZnPicsCiAgICBpbmZvOiAnPHN2ZycgKyBTViArICcgc3Ryb2tlLXdpZHRoPSIyLjQiPjxwYXRoIGQ9Ik0xMiAxMXY2Ii8+PHBhdGggZD0iTTEyIDdoLjAxIi8+PC9zdmc+JywKICAgIGV1cm86ICc8c3ZnJyArIFNWICsgJyBzdHJva2Utd2lkdGg9IjIuMiI+PHBhdGggZD0iTTE3IDcuNWE2IDYgMCAxIDAgMCA5Ii8+PHBhdGggZD0iTTUgMTAuNWg4TTUgMTMuNWg4Ii8+PC9zdmc+JywKICAgIGRvYzogJzxzdmcnICsgU1YgKyAnIHN0cm9rZS13aWR0aD0iMi4yIj48cGF0aCBkPSJNNyAzLjVoN2w0IDRWMjAuNUg3eiIvPjxwYXRoIGQ9Ik0xMCAxMmg1TTEwIDE2aDUiLz48L3N2Zz4nLAogICAgeDogJzxzdmcnICsgU1YgKyAnIHN0cm9rZS13aWR0aD0iMi42Ij48cGF0aCBkPSJNNyA3bDEwIDEwTTE3IDdMNyAxNyIvPjwvc3ZnPicKICB9OwogIHZhciBIQUIgPSBbWydzaScsICdTw60sIHZpdm8gZW4gZWxsYScsICcnXSwgWydubycsICdObycsICdFcyB1bmEgc2VndW5kYSByZXNpZGVuY2lhIG8gbGEgdGVuZ28gYWxxdWlsYWRhJ11dOwogIHZhciBQUkVWID0gWwogICAgWydzaScsICdTw60sIHlhIG1lIGxhIGFwbGljYWJhJywgJyddLAogICAgWydleGMnLCAnTm8sIHBvcnF1ZSBubyB0ZW7DrWEgcXVlIGRlY2xhcmFyJywgJ08gZGVjbGFyYWJhLCBwZXJvIG5vIHRlbsOtYSBjdW90YSBhIGxhIHF1ZSBhcGxpY2FybGEnXSwKICAgIFsnbm8nLCAnTm8sIGF1bnF1ZSBkZWNsYXJhYmEgeSBwYWdhYmEgaW1wdWVzdG9zJywgJyddLAogICAgWydub3NlJywgJ05vIGxvIHPDqScsICcnXQogIF07CiAgZnVuY3Rpb24gZXVyKG4pIHsKICAgIHZhciBwID0gTWF0aC5yb3VuZChuKS50b1N0cmluZygpLnJlcGxhY2UoL1xCKD89KFxkezN9KSsoPyFcZCkpL2csICcuJyk7CiAgICByZXR1cm4gcCArICdcdTAwYTDigqwnOwogIH0KICBmdW5jdGlvbiBudW0odikgewogICAgdiA9IFN0cmluZyh2IHx8ICcnKS5yZXBsYWNlKC9bXlxkLC5dL2csICcnKTsKICAgIGlmICh2LmluZGV4T2YoJywnKSA+IC0xKSB7IHYgPSB2LnJlcGxhY2UoL1wuL2csICcnKS5yZXBsYWNlKCcsJywgJy4nKTsgfQogICAgZWxzZSBpZiAoL15cZHsxLDN9KFwuXGR7M30pKyQvLnRlc3QodikpIHsgdiA9IHYucmVwbGFjZSgvXC4vZywgJycpOyB9CiAgICB2YXIgbiA9IHBhcnNlRmxvYXQodik7CiAgICByZXR1cm4gaXNOYU4obikgPyAwIDogbjsKICB9CiAgZnVuY3Rpb24gZXNjKHMpIHsgcmV0dXJuIFN0cmluZyhzKS5yZXBsYWNlKC9bJjw+Il0vZywgZnVuY3Rpb24gKGMpIHsgcmV0dXJuIHsgJyYnOiAnJmFtcDsnLCAnPCc6ICcmbHQ7JywgJz4nOiAnJmd0OycsICciJzogJyZxdW90OycgfVtjXTsgfSk7IH0KICBmdW5jdGlvbiBmaW5kUGxhY2UoaWQpIHsgZm9yICh2YXIgaSA9IDA7IGkgPCBQTEFDRVMubGVuZ3RoOyBpKyspIGlmIChQTEFDRVNbaV1bMF0gPT09IGlkKSByZXR1cm4geyBpZDogUExBQ0VTW2ldWzBdLCBuOiBQTEFDRVNbaV1bMV0sIHJlZzogUExBQ0VTW2ldWzJdIH07IHJldHVybiBudWxsOyB9CiAgZnVuY3Rpb24gZnJlc2goKSB7IHJldHVybiB7IGk6IDAsIGRvbmU6IGZhbHNlLCBoYWI6IG51bGwsIHBsYWNlOiAnJywgeXI6ICcnLCBhZ2U6ICcnLCBwcmV2OiBudWxsLCBwYWdvOiAnJywgdGl0OiAxIH07IH0KICBmdW5jdGlvbiBtb3VudChob3N0KSB7CiAgICBpZiAoaG9zdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaGQtcmVhZHknKSkgcmV0dXJuOwogICAgaG9zdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtaGQtcmVhZHknLCAnMScpOwogICAgdmFyIHJvb3QgPSBob3N0LmF0dGFjaFNoYWRvdyh7IG1vZGU6ICdvcGVuJyB9KTsKICAgIHJvb3QuaW5uZXJIVE1MID0gJzxzdHlsZT4nICsgQ1NTICsgJzwvc3R5bGU+PGRpdiBjbGFzcz0idyIgcm9sZT0icmVnaW9uIiBhcmlhLWxhYmVsPSJDb21wcm9iYWRvciBkZSBkZWR1Y2Npw7NuIHBvciBoaXBvdGVjYSI+PGRpdiBjbGFzcz0iaGQiPjxwIGNsYXNzPSJraWNrIj5Db21wcm9iYWRvciBlbiAxIG1pbnV0bzwvcD48cCBjbGFzcz0idGl0bGUiIHJvbGU9ImhlYWRpbmciIGFyaWEtbGV2ZWw9IjMiPsK\/UHVlZGVzIGRlc2dyYXZhciB0dSBoaXBvdGVjYT88L3A+PHAgY2xhc3M9InN1YiI+RGVzY3VicmUgc2kgdGUgY29ycmVzcG9uZGUgbGEgZGVkdWNjacOzbiBwb3Igdml2aWVuZGEgaGFiaXR1YWwgeSBjdcOhbnRvIHRlIGFob3JyYXLDrWFzIGVuIGxhIHJlbnRhLjwvcD48ZGl2IGNsYXNzPSJwcm9nIj48ZGl2IGNsYXNzPSJiYXIiPjxzcGFuPjwvc3Bhbj48L2Rpdj48c3BhbiBjbGFzcz0iY291bnQiPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJiZCIgYXJpYS1saXZlPSJwb2xpdGUiPjwvZGl2PjxwIGNsYXNzPSJmdCI+Q8OhbGN1bG8gb3JpZW50YXRpdm8gYmFzYWRvIGVuIGxhIG5vcm1hdGl2YSBmaXNjYWwgdmlnZW50ZSBlbiAnICsgQ0ZHLnllYXIgKyAnIChSZW50YSAnICsgQ0ZHLnJlbnRhICsgJykuIEVuIG5pbmfDum4gY2FzbyBzdXN0aXR1eWUgZWwgYXNlc29yYW1pZW50byBwcm9mZXNpb25hbC4gUGFyYSBzaXR1YWNpb25lcyBjb21wbGVqYXMsIGNvbnN1bHRhIGNvbiB1biBnZXN0b3IgZXNwZWNpYWxpemFkby48L3A+PC9kaXY+JzsKICAgIHZhciBiZCA9IHJvb3QucXVlcnlTZWxlY3RvcignLmJkJyksIGZpbGxCYXIgPSByb290LnF1ZXJ5U2VsZWN0b3IoJy5iYXIgc3BhbicpLCBjb3VudCA9IHJvb3QucXVlcnlTZWxlY3RvcignLmNvdW50Jyk7CiAgICB2YXIgUyA9IGZyZXNoKCksIHN0YXJ0ZWQgPSBmYWxzZTsKICAgIGZ1bmN0aW9uIHlyKCkgeyByZXR1cm4gTWF0aC5yb3VuZChudW0oUy55cikpOyB9CiAgICBmdW5jdGlvbiBhZ2UoKSB7IHJldHVybiBNYXRoLnJvdW5kKG51bShTLmFnZSkpOyB9CiAgICBmdW5jdGlvbiBwbGFjZSgpIHsgcmV0dXJuIGZpbmRQbGFjZShTLnBsYWNlKTsgfQogICAgZnVuY3Rpb24gc3RlcHMoKSB7CiAgICAgIHZhciBwID0gcGxhY2UoKSwgcyA9IFsnaGFiJywgJ3BsYWNlJywgJ2RhdGEnXTsKICAgICAgaWYgKHAgJiYgcC5yZWcgPT09ICdjb211bicgJiYgeXIoKSA+IDAgJiYgeXIoKSA8IDIwMTMpIHMucHVzaCgncHJldicpOwogICAgICBzLnB1c2goJ3BhZ28nKTsKICAgICAgcmV0dXJuIHM7CiAgICB9CiAgICBmdW5jdGlvbiBjdXIoKSB7IHJldHVybiBzdGVwcygpW1MuaV07IH0KICAgIGZ1bmN0aW9uIG9rKGspIHsKICAgICAgaWYgKGsgPT09ICdwbGFjZScpIHJldHVybiAhIXBsYWNlKCk7CiAgICAgIGlmIChrID09PSAnZGF0YScpIHJldHVybiB5cigpID49IDE5NTAgJiYgeXIoKSA8PSBDRkcueWVhciAmJiBhZ2UoKSA+PSAxOCAmJiBhZ2UoKSA8PSA5OTsKICAgICAgaWYgKGsgPT09ICdwYWdvJykgcmV0dXJuIG51bShTLnBhZ28pID4gMDsKICAgICAgcmV0dXJuIHRydWU7CiAgICB9CiAgICBmdW5jdGlvbiBwcm9ncmVzcygpIHsKICAgICAgdmFyIHN0ID0gc3RlcHMoKTsKICAgICAgaWYgKFMuZG9uZSkgeyBmaWxsQmFyLnN0eWxlLndpZHRoID0gJzEwMCUnOyBjb3VudC50ZXh0Q29udGVudCA9ICdUdSByZXN1bHRhZG8nOyByZXR1cm47IH0KICAgICAgZmlsbEJhci5zdHlsZS53aWR0aCA9IE1hdGgucm91bmQoKFMuaSAvIHN0Lmxlbmd0aCkgKiAxMDApICsgJyUnOwogICAgICBjb3VudC50ZXh0Q29udGVudCA9ICdQYXNvICcgKyAoUy5pICsgMSkgKyAnIGRlICcgKyBzdC5sZW5ndGg7CiAgICB9CiAgICBmdW5jdGlvbiBiYWNrQnRuKGxhYmVsKSB7IHJldHVybiAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJiYWNrIiBkYXRhLWFjdD0iYmFjayI+JyArIEkuYmFjayArIChsYWJlbCB8fCAnQXRyw6FzJykgKyAnPC9idXR0b24+JzsgfQogICAgZnVuY3Rpb24gbmF2KHJpZ2h0KSB7IHJldHVybiAnPGRpdiBjbGFzcz0ibmF2Ij4nICsgKFMuaSA+IDAgPyBiYWNrQnRuKCkgOiAnJykgKyByaWdodCArICc8L2Rpdj4nOyB9CiAgICBmdW5jdGlvbiBmaWVsZChmLCBsYWJlbCwgaGludCwgdW5pdCwgcGgsIG1vZGUpIHsKICAgICAgcmV0dXJuICc8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0iaGQtJyArIGYgKyAnIj4nICsgbGFiZWwgKyAnPC9sYWJlbD4nICsgKGhpbnQgPyAnPHNwYW4gY2xhc3M9ImhpbnQiPicgKyBoaW50ICsgJzwvc3Bhbj4nIDogJycpICsgJzxkaXYgY2xhc3M9ImlucCI+PGlucHV0IGlkPSJoZC0nICsgZiArICciIGRhdGEtZj0iJyArIGYgKyAnIiBpbnB1dG1vZGU9IicgKyAobW9kZSB8fCAnZGVjaW1hbCcpICsgJyIgYXV0b2NvbXBsZXRlPSJvZmYiIHBsYWNlaG9sZGVyPSInICsgcGggKyAnIiB2YWx1ZT0iJyArIGVzYyhTW2ZdKSArICciPjxzcGFuPicgKyB1bml0ICsgJzwvc3Bhbj48L2Rpdj48L2Rpdj4nOwogICAgfQogICAgZnVuY3Rpb24gbmV4dEJ0bihrLCBsYWJlbCkgeyByZXR1cm4gJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIiBkYXRhLWFjdD0ibmV4dCInICsgKG9rKGspID8gJycgOiAnIGRpc2FibGVkJykgKyAnPicgKyAobGFiZWwgfHwgJ0NvbnRpbnVhcicpICsgJzwvYnV0dG9uPic7IH0KICAgIGZ1bmN0aW9uIG9wdExpc3Qoa2V5LCBsaXN0LCB0d28pIHsKICAgICAgdmFyIGggPSAnPGRpdiBjbGFzcz0ib3B0cycgKyAodHdvID8gJyB0d28nIDogJycpICsgJyI+JzsKICAgICAgbGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChvKSB7CiAgICAgICAgaCArPSAnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJvcHQiIGRhdGEtaz0iJyArIGtleSArICciIGRhdGEtdj0iJyArIG9bMF0gKyAnIiBhcmlhLXByZXNzZWQ9IicgKyAoU1trZXldID09PSBvWzBdKSArICciPjxzcGFuPjxiPicgKyBvWzFdICsgJzwvYj4nICsgKG9bMl0gPyAnPHNtYWxsPicgKyBvWzJdICsgJzwvc21hbGw+JyA6ICcnKSArICc8L3NwYW4+JyArIEkuYXJyb3cgKyAnPC9idXR0b24+JzsKICAgICAgfSk7CiAgICAgIHJldHVybiBoICsgJzwvZGl2Pic7CiAgICB9CiAgICBmdW5jdGlvbiB2aWV3U3RlcChrKSB7CiAgICAgIHZhciBoID0gJyc7CiAgICAgIGlmIChrID09PSAnaGFiJykgewogICAgICAgIGggKz0gJzxwIGNsYXNzPSJxIiB0YWJpbmRleD0iLTEiPsK\/TGEgaGlwb3RlY2EgZXMgZGUgdHUgdml2aWVuZGEgaGFiaXR1YWw\/PC9wPjxwIGNsYXNzPSJoZWxwIj5MYSBkZWR1Y2Npw7NuIHNvbG8gZXhpc3RlIHBhcmEgbGEgdml2aWVuZGEgZW4gbGEgcXVlIHZpdmVzIGRlIGZvcm1hIHBlcm1hbmVudGUuPC9wPic7CiAgICAgICAgaCArPSBvcHRMaXN0KCdoYWInLCBIQUIsIHRydWUpICsgbmF2KCcnKTsKICAgICAgfQogICAgICBpZiAoayA9PT0gJ3BsYWNlJykgewogICAgICAgIGggKz0gJzxwIGNsYXNzPSJxIiB0YWJpbmRleD0iLTEiPsK\/RMOzbmRlIHByZXNlbnRhcyBsYSBkZWNsYXJhY2nDs24gZGUgbGEgcmVudGE\/PC9wPjxwIGNsYXNzPSJoZWxwIj5DYWRhIGNvbXVuaWRhZCB0aWVuZSBzdXMgcHJvcGlhcyBkZWR1Y2Npb25lcywgeSBlbCBQYcOtcyBWYXNjbyB5IE5hdmFycmEgdGllbmVuIHVuIHLDqWdpbWVuIGZvcmFsIHByb3Bpby48L3A+JzsKICAgICAgICBoICs9ICc8ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGZvcj0iaGQtcGxhY2UiPkNvbXVuaWRhZCBvIHRlcnJpdG9yaW88L2xhYmVsPjxkaXYgY2xhc3M9ImlucCI+PHNlbGVjdCBpZD0iaGQtcGxhY2UiIGRhdGEtZj0icGxhY2UiPjxvcHRpb24gdmFsdWU9IiI+RWxpZ2UgdW5hIG9wY2nDs248L29wdGlvbj48b3B0Z3JvdXAgbGFiZWw9IkNvbXVuaWRhZGVzIHkgY2l1ZGFkZXMgYXV0w7Nub21hcyI+JzsKICAgICAgICBQTEFDRVMuZm9yRWFjaChmdW5jdGlvbiAocCkgeyBpZiAocFsyXSA9PT0gJ2NvbXVuJykgaCArPSAnPG9wdGlvbiB2YWx1ZT0iJyArIHBbMF0gKyAnIicgKyAoUy5wbGFjZSA9PT0gcFswXSA\/ICcgc2VsZWN0ZWQnIDogJycpICsgJz4nICsgcFsxXSArICc8L29wdGlvbj4nOyB9KTsKICAgICAgICBoICs9ICc8L29wdGdyb3VwPjxvcHRncm91cCBsYWJlbD0iVGVycml0b3Jpb3MgZm9yYWxlcyI+JzsKICAgICAgICBQTEFDRVMuZm9yRWFjaChmdW5jdGlvbiAocCkgeyBpZiAocFsyXSAhPT0gJ2NvbXVuJykgaCArPSAnPG9wdGlvbiB2YWx1ZT0iJyArIHBbMF0gKyAnIicgKyAoUy5wbGFjZSA9PT0gcFswXSA\/ICcgc2VsZWN0ZWQnIDogJycpICsgJz4nICsgcFsxXSArICc8L29wdGlvbj4nOyB9KTsKICAgICAgICBoICs9ICc8L29wdGdyb3VwPjwvc2VsZWN0PicgKyBJLmNoZXYgKyAnPC9kaXY+PC9kaXY+JzsKICAgICAgICBoICs9IG5hdihuZXh0QnRuKGspKTsKICAgICAgfQogICAgICBpZiAoayA9PT0gJ2RhdGEnKSB7CiAgICAgICAgaCArPSAnPHAgY2xhc3M9InEiIHRhYmluZGV4PSItMSI+wr9DdcOhbmRvIGNvbXByYXN0ZSBsYSB2aXZpZW5kYSB5IHF1w6kgZWRhZCB0aWVuZXM\/PC9wPjxwIGNsYXNzPSJoZWxwIj5DdWVudGEgbGEgZmVjaGEgZGUgbGEgZXNjcml0dXJhIGRlIGNvbXByYXZlbnRhLCBubyBsYSBkZSBpbnNjcmlwY2nDs24gZW4gZWwgUmVnaXN0cm8uPC9wPic7CiAgICAgICAgaCArPSAnPGRpdiBjbGFzcz0idHdvLWYiPicgKyBmaWVsZCgneXInLCAnQcOxbyBkZSBjb21wcmEnLCAnJywgJycsICcyMDExJywgJ251bWVyaWMnKSArIGZpZWxkKCdhZ2UnLCAnVHUgZWRhZCcsICcnLCAnYcOxb3MnLCAnNDUnLCAnbnVtZXJpYycpICsgJzwvZGl2Pic7CiAgICAgICAgaCArPSBuYXYobmV4dEJ0bihrKSk7CiAgICAgIH0KICAgICAgaWYgKGsgPT09ICdwcmV2JykgewogICAgICAgIGggKz0gJzxwIGNsYXNzPSJxIiB0YWJpbmRleD0iLTEiPsK\/VGUgYXBsaWNhc3RlIGxhIGRlZHVjY2nDs24gZW4gYWxndW5hIHJlbnRhIGFudGVyaW9yIGEgMjAxMz88L3A+PHAgY2xhc3M9ImhlbHAiPkhhY2llbmRhIGxvIGV4aWdlIHBhcmEgc2VndWlyIGRlc2dyYXZhbmRvLCBzYWx2byBlbiBhbGd1bm9zIGNhc29zLjwvcD4nOwogICAgICAgIGggKz0gb3B0TGlzdCgncHJldicsIFBSRVYsIHRydWUpICsgbmF2KCcnKTsKICAgICAgfQogICAgICBpZiAoayA9PT0gJ3BhZ28nKSB7CiAgICAgICAgaCArPSAnPHAgY2xhc3M9InEiIHRhYmluZGV4PSItMSI+wr9DdcOhbnRvIHBhZ2FzIGRlIGhpcG90ZWNhIGFsIGHDsW8\/PC9wPjxwIGNsYXNzPSJoZWxwIj5TdW1hIGxhcyBjdW90YXMgZGUgdG9kbyBlbCBhw7FvLCBjb24gY2FwaXRhbCBlIGludGVyZXNlcywgeSBsb3Mgc2VndXJvcyBkZSB2aWRhIHkgaG9nYXIgdmluY3VsYWRvcyBhbCBwcsOpc3RhbW8uPC9wPic7CiAgICAgICAgaCArPSBmaWVsZCgncGFnbycsICdUb3RhbCBwYWdhZG8gYWwgYcOxbycsICdTaSBwYWfDoWlzIGVudHJlIGRvcywgaW5kaWNhIGVsIHRvdGFsIGRlIGFtYm9zLicsICfigqwvYcOxbycsICc3LjIwMCcpOwogICAgICAgIGggKz0gJzxkaXYgY2xhc3M9ImZpZWxkIj48c3BhbiBjbGFzcz0ibGJsIiBpZD0iaGQtdGl0LWwiPsK\/Q3XDoW50b3MgdGl0dWxhcmVzIHNvaXM\/PC9zcGFuPjxkaXYgY2xhc3M9InNlZyIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWxsZWRieT0iaGQtdGl0LWwiPic7CiAgICAgICAgW1sxLCAnU29sbyB5byddLCBbMiwgJ0RvcyB0aXR1bGFyZXMnXV0uZm9yRWFjaChmdW5jdGlvbiAobykgeyBoICs9ICc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im9wdCIgZGF0YS10PSInICsgb1swXSArICciIGFyaWEtcHJlc3NlZD0iJyArIChTLnRpdCA9PT0gb1swXSkgKyAnIj48Yj4nICsgb1sxXSArICc8L2I+PC9idXR0b24+JzsgfSk7CiAgICAgICAgaCArPSAnPC9kaXY+PC9kaXY+JyArIG5hdihuZXh0QnRuKGssICdWZXIgcmVzdWx0YWRvJykpOwogICAgICB9CiAgICAgIHJldHVybiBoOwogICAgfQogICAgZnVuY3Rpb24gYXV0b0xpc3QocCwgYSwgeSkgewogICAgICB2YXIgb3V0ID0gW107CiAgICAgIChBVVRPW3AuaWRdIHx8IFtdKS5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7CiAgICAgICAgaWYgKGQuYWdlICYmIGEgPj0gZC5hZ2UpIHJldHVybjsKICAgICAgICBpZiAoZC5hZ2VCdXkgJiYgYSAtIChDRkcueWVhciAtIHkpID49IGQuYWdlQnV5KSByZXR1cm47CiAgICAgICAgaWYgKGQuZnJvbSAmJiB5IDwgZC5mcm9tKSByZXR1cm47CiAgICAgICAgb3V0LnB1c2goZCk7CiAgICAgIH0pOwogICAgICByZXR1cm4gb3V0OwogICAgfQogICAgZnVuY3Rpb24gZXN0YXRhbChyLCBwZXIsIHRpdCwgcCkgewogICAgICB2YXIgYmFzZSA9IE1hdGgubWluKHBlciwgQ0ZHLmVzdEJhc2UpLCBkZWRQZXIgPSBiYXNlICogQ0ZHLmVzdFBjdCAvIDEwMDsKICAgICAgci50b3RhbCA9IGRlZFBlciAqIHRpdDsKICAgICAgci5jYXJkcyA9IFsKICAgICAgICBbJ0Fob3JybyBlc3RpbWFkbyBhbCBhw7FvJywgZXVyKHIudG90YWwpLCB0aXQgPT09IDIgPyAnRW50cmUgbG9zIGRvcyB0aXR1bGFyZXMgKCcgKyBldXIoZGVkUGVyKSArICcgY2FkYSB1bm8pLCBzaSBwYWfDoWlzIGEgcGFydGVzIGlndWFsZXMuJyA6ICdTb2JyZSAnICsgZXVyKGJhc2UpICsgJyBkZSBiYXNlIGRlZHVjaWJsZS4nXSwKICAgICAgICBbJ0NhZGEgdHJhbW8sIHBvciB0aXR1bGFyJywgZXVyKGJhc2UgKiAwLjA3NSksICdFbCAxNSAlIHNlIHJlcGFydGUgZW4gdW4gNyw1ICUgZXN0YXRhbCB5IHVuIDcsNSAlIGF1dG9uw7NtaWNvLicgKyAocC5pZCA9PT0gJ2NhdCcgPyAnIEVuIENhdGFsdcOxYSBlbCB0cmFtbyBhdXRvbsOzbWljbyBwdWVkZSBsbGVnYXIgYWwgOSAlIGVuIGFsZ3Vub3MgY2Fzb3MuJyA6ICcnKV0sCiAgICAgICAgWydEw7NuZGUgc2UgZGVjbGFyYScsICdBbmV4byBBLjEnLCAnRWwgcmVzdWx0YWRvIGFwYXJlY2UgZW4gbGFzIGNhc2lsbGFzIDA1NDcgKHRyYW1vIGVzdGF0YWwpIHkgMDU0OCAodHJhbW8gYXV0b27Ds21pY28pLiddCiAgICAgIF07CiAgICAgIGlmICh0aXQgPT09IDIpIHIubm90ZXMucHVzaCgnRWwgbMOtbWl0ZSBkZSAnICsgZXVyKENGRy5lc3RCYXNlKSArICcgc2UgYXBsaWNhIGEgY2FkYSB0aXR1bGFyIGNvbiBkZXJlY2hvIGEgbGEgZGVkdWNjacOzbiwgdGFudG8gZW4gZGVjbGFyYWNpw7NuIGluZGl2aWR1YWwgY29tbyBlbiBjb25qdW50YTogbm8gc2UgY29tcGFydGUgZW50cmUgbG9zIGRvcy4nKTsKICAgICAgaWYgKHBlciA+IENGRy5lc3RCYXNlKSByLm5vdGVzLnB1c2goJ1BhZ2FzIG3DoXMgZGUgJyArIGV1cihDRkcuZXN0QmFzZSkgKyAnIHBvciB0aXR1bGFyOiBsbyBxdWUgc3VwZXJhIGVzYSBjaWZyYSBubyBkZXNncmF2YS4nKTsKICAgICAgci5nYXN0b3MgPSB0cnVlOwogICAgfQogICAgZnVuY3Rpb24gY29tcHV0ZSgpIHsKICAgICAgdmFyIHAgPSBwbGFjZSgpLCBhID0gYWdlKCksIHkgPSB5cigpLCBQID0gbnVtKFMucGFnbyksIHRpdCA9IFMudGl0LCBwZXIgPSBQIC8gdGl0OwogICAgICB2YXIgciA9IHsgbHZsOiAyLCB0aXRsZTogJycsIHN1bTogJycsIGNhcmRzOiBbXSwgZGVkczogW10sIG5vdGVzOiBbXSwgZ2FzdG9zOiBmYWxzZSwgY3RhOiBmYWxzZSB9OwogICAgICBpZiAoUy5oYWIgPT09ICdubycpIHsKICAgICAgICByLnRpdGxlID0gJ05vIHB1ZWRlcyBkZXNncmF2YXIgZXN0YSBoaXBvdGVjYSc7CiAgICAgICAgci5zdW0gPSAnTGEgZGVkdWNjacOzbiBzb2xvIHNlIGFwbGljYSBhIGxhIHZpdmllbmRhIGhhYml0dWFsLiBMYXMgc2VndW5kYXMgcmVzaWRlbmNpYXMgeSBsYXMgdml2aWVuZGFzIGFscXVpbGFkYXMgcXVlZGFuIGZ1ZXJhLCB0YW1iacOpbiBlbiBlbCBQYcOtcyBWYXNjbyB5IE5hdmFycmEuJzsKICAgICAgICByLmN0YSA9IHRydWU7IHJldHVybiByOwogICAgICB9CiAgICAgIGlmIChwLnJlZyA9PT0gJ3B2JykgewogICAgICAgIHZhciBqID0gYSA8IENGRy5wdkFnZUosIHJhdGUgPSBqID8gQ0ZHLnB2UGN0SiA6IENGRy5wdlBjdCwgY2FwID0gaiA\/IENGRy5wdkNhcEogOiBDRkcucHZDYXA7CiAgICAgICAgdmFyIGRwID0gTWF0aC5taW4ocGVyICogcmF0ZSAvIDEwMCwgY2FwKTsKICAgICAgICByLmx2bCA9IDA7IHIudG90YWwgPSBkcCAqIHRpdDsKICAgICAgICByLnRpdGxlID0gJ1PDrSBwdWVkZXMgZGVzZ3JhdmFyIHR1IGhpcG90ZWNhJzsKICAgICAgICByLnN1bSA9ICdFbiAnICsgcC5uICsgJyBsYSBkZWR1Y2Npw7NuIHBvciB2aXZpZW5kYSBoYWJpdHVhbCBzaWd1ZSB2aWdlbnRlLCBzZWEgY3VhbCBzZWEgZWwgYcOxbyBkZSBjb21wcmE6IGVsICcgKyByYXRlICsgJyAlIGRlIGxvIHF1ZSBwYWdhcywgY29uIHVuIG3DoXhpbW8gZGUgJyArIGV1cihjYXApICsgJyBhbCBhw7FvIHBvciB0aXR1bGFyLic7CiAgICAgICAgci5jYXJkcyA9IFsKICAgICAgICAgIFsnQWhvcnJvIGVzdGltYWRvIGFsIGHDsW8nLCBldXIoci50b3RhbCksIHRpdCA9PT0gMiA\/ICdFbnRyZSBsb3MgZG9zIHRpdHVsYXJlcyAoJyArIGV1cihkcCkgKyAnIGNhZGEgdW5vKSwgc2kgcGFnw6FpcyBhIHBhcnRlcyBpZ3VhbGVzLicgOiAocGVyICogcmF0ZSAvIDEwMCA+IGNhcCA\/ICdBbGNhbnphcyBlbCBtw6F4aW1vIGFudWFsLicgOiAnU29icmUgJyArIGV1cihwZXIpICsgJyBwYWdhZG9zLicpXSwKICAgICAgICAgIFsnVHUgcG9yY2VudGFqZScsIHJhdGUgKyAnXHUwMGEwJScsIGogPyAnUG9yIHRlbmVyIG1lbm9zIGRlIDM2IGHDsW9zLiBFbCBhw7FvIGVuIHF1ZSBjb21wcmFzIG5vIHNlIGFwbGljYSBlbCBsw61taXRlIGFudWFsLicgOiAnRWwgMjMgJSBzZSByZXNlcnZhIGEgbWVub3JlcyBkZSAzNiBhw7FvcywgZmFtaWxpYXMgbnVtZXJvc2FzIHkgb3Ryb3MgY29sZWN0aXZvcyBwcm90ZWdpZG9zLiddLAogICAgICAgICAgWydMw61taXRlIGRlIHBvciB2aWRhJywgZXVyKENGRy5wdkxpZmUpLCAnRXMgbG8gbcOheGltbyBxdWUgY2FkYSB0aXR1bGFyIHB1ZWRlIGRlZHVjaXIgc3VtYW5kbyB0b2RvcyBsb3MgYcOxb3MuJ10KICAgICAgICBdOwogICAgICAgIHIubm90ZXMucHVzaCgnU2UgZGVjbGFyYSBhbnRlIHR1IEhhY2llbmRhIEZvcmFsLCBubyBhbnRlIGxhIEFnZW5jaWEgVHJpYnV0YXJpYS4nKTsKICAgICAgICBpZiAocC5pZCA9PT0gJ2FsYScgJiYgeSA+PSAyMDI2KSByLm5vdGVzLnB1c2goJ0VuIMOBbGF2YSwgcGFyYSBsYXMgY29tcHJhcyBkZXNkZSAyMDI2IGxhIGRlZHVjY2nDs24gZXhpZ2UgcXVlIHR1cyBiYXNlcyBsaXF1aWRhYmxlcyBnZW5lcmFsIHkgZGVsIGFob3JybyBubyBzdXBlcmVuIDY4LjAwMCDigqwuJyk7CiAgICAgICAgci5nYXN0b3MgPSB0cnVlOyByZXR1cm4gcjsKICAgICAgfQogICAgICBpZiAocC5yZWcgPT09ICduYXYnKSB7CiAgICAgICAgaWYgKHkgPj0gMjAxNikgewogICAgICAgICAgci50aXRsZSA9ICdObyBwdWVkZXMgZGVzZ3JhdmFyIHR1IGhpcG90ZWNhJzsKICAgICAgICAgIHIuc3VtID0gJ05hdmFycmEgc3VwcmltacOzIGxhIGRlZHVjY2nDs24gcG9yIHZpdmllbmRhIGhhYml0dWFsIHBhcmEgbGFzIGNvbXByYXMgcmVhbGl6YWRhcyBhIHBhcnRpciBkZWwgMSBkZSBlbmVybyBkZSAyMDE2Lic7CiAgICAgICAgICByLmN0YSA9IHRydWU7IHJldHVybiByOwogICAgICAgIH0KICAgICAgICB2YXIgbmIgPSBNYXRoLm1pbihwZXIsIENGRy5uYXZCYXNlKSwgbmQgPSBuYiAqIENGRy5uYXZQY3QgLyAxMDA7CiAgICAgICAgci50b3RhbCA9IG5kICogdGl0OwogICAgICAgIHIuY2FyZHMgPSBbCiAgICAgICAgICBbeSA8IDIwMTMgPyAnQWhvcnJvIGVzdGltYWRvIGFsIGHDsW8nIDogJ0Fob3JybyBzaSBjdW1wbGVzIGVsIGzDrW1pdGUgZGUgcmVudGEnLCBldXIoci50b3RhbCksIHRpdCA9PT0gMiA\/ICdFbnRyZSBsb3MgZG9zIHRpdHVsYXJlcyAoJyArIGV1cihuZCkgKyAnIGNhZGEgdW5vKS4nIDogJ1NvYnJlICcgKyBldXIobmIpICsgJyBkZSBiYXNlIGRlZHVjaWJsZS4nXSwKICAgICAgICAgIFsnQmFzZSBtw6F4aW1hIHBvciB0aXR1bGFyJywgZXVyKENGRy5uYXZCYXNlKSwgJ0FsIGHDsW8uIExvIHF1ZSBwYWd1ZXMgcG9yIGVuY2ltYSBubyBkZXNncmF2YS4nXSwKICAgICAgICAgIFsnRMOzbmRlIHNlIGRlY2xhcmEnLCAnSGFjaWVuZGEgRm9yYWwnLCAnRW4gdHUgZGVjbGFyYWNpw7NuIGRlIGxhIHJlbnRhIGRlIE5hdmFycmEuJ10KICAgICAgICBdOwogICAgICAgIHIuZ2FzdG9zID0gdHJ1ZTsKICAgICAgICBpZiAoeSA8IDIwMTMpIHsKICAgICAgICAgIHIubHZsID0gMDsgci50aXRsZSA9ICdTw60gcHVlZGVzIGRlc2dyYXZhciB0dSBoaXBvdGVjYSc7CiAgICAgICAgICByLnN1bSA9ICdDb21wcmFzdGUgYW50ZXMgZGUgMjAxMywgYXPDrSBxdWUgbWFudGllbmVzIGVsIHLDqWdpbWVuIHRyYW5zaXRvcmlvIGZvcmFsOiBlbCAxNSAlIGRlIGxvIHF1ZSBwYWdhcy4gTGEgYmFzZSBtw6F4aW1hIGVzIGRlICcgKyBldXIoQ0ZHLm5hdkJhc2UpICsgJyBvIGRlICcgKyBldXIoQ0ZHLm5hdkJhc2VIaSkgKyAnIGFsIGHDsW8gcG9yIHRpdHVsYXIsIHNlZ8O6biB0dSBuaXZlbCBkZSByZW50YTsgY2FsY3VsYW1vcyBjb24gbGEgbcOhcyBiYWphLic7CiAgICAgICAgICByLmNhcmRzWzFdID0gWydCYXNlIG3DoXhpbWEgcG9yIHRpdHVsYXInLCBldXIoQ0ZHLm5hdkJhc2UpICsgJyA8c21hbGw+byAnICsgZXVyKENGRy5uYXZCYXNlSGkpICsgJzwvc21hbGw+JywgJ1NpIHR1cyBiYXNlcyBzdXBlcmFuIDIwLjAwMCDigqwsIHNpZ3VlcyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIDIwMTIuIENvbXBydcOpYmFsbyBjb24gdHUgSGFjaWVuZGEgRm9yYWwuJ107CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHIubHZsID0gMTsgci50aXRsZSA9ICdEZXBlbmRlIGRlIHR1cyBpbmdyZXNvcyc7CiAgICAgICAgICByLnN1bSA9ICdQYXJhIGxhcyBjb21wcmFzIGVudHJlIDIwMTMgeSAyMDE1LCBOYXZhcnJhIG1hbnRpZW5lIGxhIGRlZHVjY2nDs24gZGVsIDE1ICUgc29sbyBzaSB0dSBzdW1hIGRlIGJhc2VzIGVzIGluZmVyaW9yIGEgMjQuMDAwIOKCrCBlbiBpbmRpdmlkdWFsICgyNy4wMDAg4oKsIGNvbiB1bm8gbyBkb3MgaGlqb3MgeSAzMC4wMDAg4oKsIGVuIGZhbWlsaWEgbnVtZXJvc2EpIG8gYSA0OC4wMDAg4oKsIGVuIGNvbmp1bnRhICg1NC4wMDAg4oKsIHkgNjAuMDAwIOKCrCkuIExvcyBsw61taXRlcyBzdWJlbiAzLjAwMCDigqwgY29uIGRpc2NhcGFjaWRhZCBlbnRyZSBlbCAzMyAlIHkgZWwgNjUgJSwgeSA3LjAwMCDigqwgc2kgZXMgc3VwZXJpb3IuJzsKICAgICAgICAgIHIubm90ZXMucHVzaCgnU2kgdGllbmVzIGR1ZGFzIHNvYnJlIHR1IHN1bWEgZGUgYmFzZXMsIGNvbXBydcOpYmFsbyBjb24gdHUgSGFjaWVuZGEgRm9yYWwuJyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiByOwogICAgICB9CiAgICAgIHZhciBpbnRybyA9ICcnOwogICAgICBpZiAoeSA8IDIwMTMpIHsKICAgICAgICBpZiAoUy5wcmV2ID09PSAnc2knIHx8IFMucHJldiA9PT0gJ2V4YycpIHsKICAgICAgICAgIHIubHZsID0gMDsgci50aXRsZSA9ICdTw60gcHVlZGVzIGRlc2dyYXZhciB0dSBoaXBvdGVjYSc7CiAgICAgICAgICByLnN1bSA9IFMucHJldiA9PT0gJ3NpJyA\/ICdDb21wcmFzdGUgYW50ZXMgZGUgMjAxMyB5IHlhIHRlIGFwbGljYWJhcyBsYSBkZWR1Y2Npw7NuLCBhc8OtIHF1ZSBzaWd1ZXMgZW4gZWwgcsOpZ2ltZW4gdHJhbnNpdG9yaW86IGVsIDE1ICUgZGUgbG8gcXVlIHBhZ2FzLCBjb24gdW4gbcOheGltbyBkZSAnICsgZXVyKENGRy5lc3RCYXNlKSArICcgYWwgYcOxbyBwb3IgdGl0dWxhci4nIDogJ0NvbXByYXN0ZSBhbnRlcyBkZSAyMDEzLiBBdW5xdWUgbm8gdGUgYXBsaWNhc3RlIGxhIGRlZHVjY2nDs24sIGVsIGNyaXRlcmlvIGZpamFkbyBwb3IgZWwgVEVBQyBlbiAyMDI0IHRlIHBlcm1pdGUgc2VndWlyIGhhY2nDqW5kb2xvIHNpIG5vIGVzdGFiYXMgb2JsaWdhZG8gYSBkZWNsYXJhciBvIG5vIHRlbsOtYXMgY3VvdGEgYSBsYSBxdWUgYXBsaWNhcmxhLic7CiAgICAgICAgICBlc3RhdGFsKHIsIHBlciwgdGl0LCBwKTsgcmV0dXJuIHI7CiAgICAgICAgfQogICAgICAgIGlmIChTLnByZXYgPT09ICdub3NlJykgewogICAgICAgICAgci5sdmwgPSAxOyByLnRpdGxlID0gJ0RlcGVuZGUgZGUgdHVzIGRlY2xhcmFjaW9uZXMgYW50ZXJpb3Jlcyc7CiAgICAgICAgICByLnN1bSA9ICdDb21wcmFzdGUgYW50ZXMgZGUgMjAxMy4gUHVlZGVzIHNlZ3VpciBkZXNncmF2YW5kbyBzaSB0ZSBhcGxpY2FzdGUgbGEgZGVkdWNjacOzbiBlbiBhbGd1bmEgcmVudGEgYW50ZXJpb3IsIG8gc2kgbm8gbG8gaGljaXN0ZSBwb3JxdWUgbm8gdGVuw61hcyBxdWUgZGVjbGFyYXIgbyBubyB0ZW7DrWFzIGN1b3RhLic7CiAgICAgICAgICBlc3RhdGFsKHIsIHBlciwgdGl0LCBwKTsKICAgICAgICAgIHIuY2FyZHNbMF1bMF0gPSAnQWhvcnJvIHNpIGN1bXBsZXMgZWwgcmVxdWlzaXRvJzsKICAgICAgICAgIHIubm90ZXMudW5zaGlmdCgnTG8gcHVlZGVzIGNvbXByb2JhciBlbiB0dXMgZGVjbGFyYWNpb25lcyBhbnRpZ3VhcyBvIGVuIHR1cyBkYXRvcyBmaXNjYWxlcyBkZSBsYSBzZWRlIGRlIGxhIEFnZW5jaWEgVHJpYnV0YXJpYS4nKTsKICAgICAgICAgIHJldHVybiByOwogICAgICAgIH0KICAgICAgICBpbnRybyA9ICdObyBwdWVkZXMgYXBsaWNhciBsYSBkZWR1Y2Npw7NuIGVzdGF0YWw6IEhhY2llbmRhIGV4aWdlIGhhYmVybGEgcHJhY3RpY2FkbyBhbnRlcyBkZSAyMDEzIHNpIHRlbsOtYXMgY3VvdGEgcGFyYSBoYWNlcmxvLiAnOwogICAgICB9IGVsc2UgewogICAgICAgIGludHJvID0gJ0xhIGRlZHVjY2nDs24gZXN0YXRhbCBzZSBzdXByaW1pw7MgcGFyYSBsYXMgY29tcHJhcyBkZXNkZSBlbCAxIGRlIGVuZXJvIGRlIDIwMTMuICc7CiAgICAgIH0KICAgICAgdmFyIGxpc3QgPSBhdXRvTGlzdChwLCBhLCB5KTsKICAgICAgaWYgKGxpc3QubGVuZ3RoKSB7CiAgICAgICAgci5sdmwgPSAxOyByLnRpdGxlID0gJ05vIGhheSBkZWR1Y2Npw7NuIGVzdGF0YWwsIHBlcm8gdHUgY29tdW5pZGFkIHRpZW5lIGFsdGVybmF0aXZhcyc7CiAgICAgICAgci5zdW0gPSBpbnRybyArICdFc3RhcyBkZWR1Y2Npb25lcyBkZSB0dSBjb211bmlkYWQgZW5jYWphbiBjb24gdHUgZWRhZCB5IHR1IGZlY2hhIGRlIGNvbXByYS4gQ29tcHJ1ZWJhIGVsIHJlc3RvIGRlIHJlcXVpc2l0b3MuJzsKICAgICAgICB2YXIgYmVzdCA9IDA7CiAgICAgICAgbGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7CiAgICAgICAgICB2YXIgdiA9IGQuZXN0ID8gZC5lc3QocGVyLCBhKSA6IChkLmNhcCB8fCAwKTsKICAgICAgICAgIGlmICh2ID4gYmVzdCkgYmVzdCA9IHY7CiAgICAgICAgICByLmRlZHMucHVzaChkKTsKICAgICAgICB9KTsKICAgICAgICBpZiAoYmVzdCA+IDApIHIuY2FyZHMgPSBbWydQb2Ryw61hcyBkZWR1Y2lyIGhhc3RhJywgZXVyKGJlc3QpICsgJyA8c21hbGw+L2HDsW88L3NtYWxsPicsICdQb3IgdGl0dWxhciwgY29uIGxhIGRlZHVjY2nDs24gbcOhcyBmYXZvcmFibGUgZGUgbGEgbGlzdGEgeSBzaSBjdW1wbGVzIHRvZG9zIHN1cyByZXF1aXNpdG9zLiddXTsKICAgICAgICByZXR1cm4gcjsKICAgICAgfQogICAgICByLnRpdGxlID0gJ05vIHB1ZWRlcyBkZXNncmF2YXIgdHUgaGlwb3RlY2EnOwogICAgICByLnN1bSA9IGludHJvICsgKE5PTkVbcC5pZF0gfHwgKChBVVRPW3AuaWRdIHx8IFtdKS5sZW5ndGggPyAnTGFzIGRlZHVjY2lvbmVzIGRlIHR1IGNvbXVuaWRhZCBwb3IgY29tcHJhIGRlIHZpdmllbmRhIG5vIGVuY2FqYW4gY29uIHR1IGVkYWQgbyB0dSBmZWNoYSBkZSBjb21wcmEuJyA6IHAubiArICcgbm8gdGllbmUgdW5hIGRlZHVjY2nDs24gZ2VuZXJhbCBwb3IgY29tcHJhIGRlIHZpdmllbmRhIGhhYml0dWFsLicpKTsKICAgICAgci5jdGEgPSB0cnVlOyByZXR1cm4gcjsKICAgIH0KICAgIGZ1bmN0aW9uIHZpZXdSZXN1bHQoKSB7CiAgICAgIHZhciByID0gY29tcHV0ZSgpLCBwZXIgPSBudW0oUy5wYWdvKSAvIFMudGl0LCBhID0gYWdlKCk7CiAgICAgIHZhciBjaGlwID0gW1snU8OtIHB1ZWRlcycsIEkuY2hlY2tdLCBbJ0RlcGVuZGUnLCBJLmFsZXJ0XSwgWydObyBwdWVkZXMnLCBJLnhdXVtyLmx2bF07CiAgICAgIHZhciBoID0gJzxkaXYgY2xhc3M9InZlcmRpY3QiPjxzcGFuIGNsYXNzPSJjaGlwIGwnICsgci5sdmwgKyAnIj48aT4nICsgY2hpcFsxXSArICc8L2k+JyArIGNoaXBbMF0gKyAnPC9zcGFuPjxwIGNsYXNzPSJyLXQiIHRhYmluZGV4PSItMSI+JyArIHIudGl0bGUgKyAnPC9wPjxwIGNsYXNzPSJyLXMiPicgKyByLnN1bSArICc8L3A+PC9kaXY+JzsKICAgICAgaWYgKHIuY2FyZHMubGVuZ3RoKSB7CiAgICAgICAgaCArPSAnPGRpdiBjbGFzcz0iY2FyZHMnICsgKHIuY2FyZHMubGVuZ3RoID09PSAzID8gJyBjMycgOiAnJykgKyAnIj4nOwogICAgICAgIHIuY2FyZHMuZm9yRWFjaChmdW5jdGlvbiAoYykgeyBoICs9ICc8ZGl2IGNsYXNzPSJjYXJkIj48cCBjbGFzcz0ibGFiIj4nICsgY1swXSArICc8L3A+PHAgY2xhc3M9ImJpZyI+JyArIGNbMV0gKyAnPC9wPjxwIGNsYXNzPSJub3RlIj4nICsgY1syXSArICc8L3A+PC9kaXY+JzsgfSk7CiAgICAgICAgaCArPSAnPC9kaXY+JzsKICAgICAgfQogICAgICBpZiAoci5kZWRzLmxlbmd0aCkgewogICAgICAgIGggKz0gJzxkaXYgY2xhc3M9InNlYyI+PGg0PkRlZHVjY2lvbmVzIHF1ZSBlbmNhamFuIGNvbnRpZ288L2g0Pic7CiAgICAgICAgci5kZWRzLmZvckVhY2goZnVuY3Rpb24gKGQpIHsKICAgICAgICAgIHZhciB2YWwgPSBkLmVzdCA\/ICdDb24gbG8gcXVlIHBhZ2FzOiB1bm9zICcgKyBldXIoZC5lc3QocGVyLCBhKSkgKyAnIGFsIGHDsW8nICsgKGQuZXN0Tm90ZSA\/ICcgKCcgKyBkLmVzdE5vdGUgKyAnKScgOiAnJykgOiAoZC5jYXAgPyAnTcOheGltbzogJyArIGV1cihkLmNhcCkgKyAnIGFsIGHDsW8nIDogJ1NlIGNhbGN1bGEgc29icmUgbG8gcXVlIGFtb3J0aXphcywgc2luIGludGVyZXNlcycpOwogICAgICAgICAgaCArPSAnPGRpdiBjbGFzcz0iZGVkIj48Yj4nICsgZC50ICsgJzwvYj48cCBjbGFzcz0icnQiPicgKyBkLnIgKyAnPC9wPjxzcGFuIGNsYXNzPSJ2YWwiPicgKyB2YWwgKyAnPC9zcGFuPjxwIGNsYXNzPSJycSI+JyArIGQucmVxICsgJzwvcD48L2Rpdj4nOwogICAgICAgIH0pOwogICAgICAgIGggKz0gJzxkaXYgY2xhc3M9ImxpIj48c3BhbiBjbGFzcz0iaWMiPicgKyBJLmRvYyArICc8L3NwYW4+PHA+U2UgZGVjbGFyYW4gZW4gZWwgYW5leG8gQiBkZSBsYSByZW50YSwgZWwgZGUgbGFzIGRlZHVjY2lvbmVzIGF1dG9uw7NtaWNhcy48L3A+PC9kaXY+PC9kaXY+JzsKICAgICAgfQogICAgICBpZiAoci5nYXN0b3MgfHwgci5ub3Rlcy5sZW5ndGgpIHsKICAgICAgICB2YXIgdCA9IFtdOwogICAgICAgIGlmIChyLmdhc3RvcykgewogICAgICAgICAgdC5wdXNoKFtJLmV1cm8sICc8Yj5RdcOpIGN1ZW50YTo8L2I+IGxhcyBjdW90YXMgKGNhcGl0YWwgZSBpbnRlcmVzZXMpLCBsb3Mgc2VndXJvcyBkZSB2aWRhIHkgaG9nYXIgdmluY3VsYWRvcyBhbCBwcsOpc3RhbW8geSBsb3MgZ2FzdG9zIGRlIG1lam9yYXIgdHUgaGlwb3RlY2EgZWwgYcOxbyBlbiBxdWUgbG9zIHBhZ2FzLiddKTsKICAgICAgICAgIHQucHVzaChbSS54LCAnPGI+UXXDqSBubyBjdWVudGE6PC9iPiBtdWVibGVzLCByZWZvcm1hcywgZWxlY3Ryb2RvbcOpc3RpY29zIG5pIGdhc3RvcyBkZSBjb211bmlkYWQuJ10pOwogICAgICAgIH0KICAgICAgICByLm5vdGVzLmZvckVhY2goZnVuY3Rpb24gKG4pIHsgdC5wdXNoKFtJLmluZm8sIG5dKTsgfSk7CiAgICAgICAgaCArPSAnPGRpdiBjbGFzcz0ic2VjIj48aDQ+UXXDqSBkZWJlcyB0ZW5lciBlbiBjdWVudGE8L2g0PicgKyB0Lm1hcChmdW5jdGlvbiAoeCkgeyByZXR1cm4gJzxkaXYgY2xhc3M9ImxpIj48c3BhbiBjbGFzcz0iaWMiPicgKyB4WzBdICsgJzwvc3Bhbj48cD4nICsgeFsxXSArICc8L3A+PC9kaXY+JzsgfSkuam9pbignJykgKyAnPC9kaXY+JzsKICAgICAgfQogICAgICBpZiAoci5jdGEpIHsKICAgICAgICBoICs9ICc8ZGl2IGNsYXNzPSJjdGEiPjxwIGNsYXNzPSJoIj5BaG9ycmEgcG9yIG90cmEgdsOtYTwvcD48cCBjbGFzcz0idCI+U2kgbm8gcHVlZGVzIGRlc2dyYXZhciwgbWVqb3JhciBsYXMgY29uZGljaW9uZXMgZGUgdHUgaGlwb3RlY2EgZXMgbGEgZm9ybWEgbcOhcyBkaXJlY3RhIGRlIHBhZ2FyIG1lbm9zIGNhZGEgbWVzLjwvcD48YSBjbGFzcz0iYnRuIiBocmVmPSInICsgQ0ZHLmN0YVVybCArICciIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj5NZWpvcmEgdHUgaGlwb3RlY2E8L2E+PC9kaXY+JzsKICAgICAgfQogICAgICBoICs9ICc8ZGl2IGNsYXNzPSJhY3RzIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBvIiBkYXRhLWFjdD0icmVzdGFydCI+SGFjZXIgb3RyYSBjb25zdWx0YTwvYnV0dG9uPicgKyBiYWNrQnRuKCdDYW1iaWFyIG1pcyBkYXRvcycpICsgJzwvZGl2Pic7CiAgICAgIHJldHVybiBoOwogICAgfQogICAgZnVuY3Rpb24gcmVuZGVyKCkgewogICAgICBiZC5pbm5lckhUTUwgPSAnPGRpdiBjbGFzcz0iYW5pbSI+JyArIChTLmRvbmUgPyB2aWV3UmVzdWx0KCkgOiB2aWV3U3RlcChjdXIoKSkpICsgJzwvZGl2Pic7CiAgICAgIHByb2dyZXNzKCk7CiAgICAgIGlmIChzdGFydGVkKSB7CiAgICAgICAgdmFyIGYgPSBiZC5xdWVyeVNlbGVjdG9yKCdbdGFiaW5kZXg9Ii0xIl0nKTsKICAgICAgICBpZiAoZikgeyB0cnkgeyBmLmZvY3VzKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTsgfSBjYXRjaCAoZSkgeyBmLmZvY3VzKCk7IH0gfQogICAgICAgIGlmIChob3N0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCA8IDApIGhvc3Quc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnc3RhcnQnIH0pOwogICAgICB9CiAgICB9CiAgICBmdW5jdGlvbiBuZXh0KCkgewogICAgICBpZiAoUy5pID49IHN0ZXBzKCkubGVuZ3RoIC0gMSkgUy5kb25lID0gdHJ1ZTsgZWxzZSBTLmkrKzsKICAgICAgcmVuZGVyKCk7CiAgICB9CiAgICByb290LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHsKICAgICAgdmFyIGIgPSBlLnRhcmdldC5jbG9zZXN0KCdidXR0b24nKTsKICAgICAgaWYgKCFiIHx8IGIuZGlzYWJsZWQpIHJldHVybjsKICAgICAgc3RhcnRlZCA9IHRydWU7CiAgICAgIGlmIChiLmhhc0F0dHJpYnV0ZSgnZGF0YS1rJykpIHsKICAgICAgICB2YXIgayA9IGIuZ2V0QXR0cmlidXRlKCdkYXRhLWsnKTsKICAgICAgICBTW2tdID0gYi5nZXRBdHRyaWJ1dGUoJ2RhdGEtdicpOwogICAgICAgIGlmIChrID09PSAnaGFiJyAmJiBTLmhhYiA9PT0gJ25vJykgeyBTLmRvbmUgPSB0cnVlOyByZW5kZXIoKTsgcmV0dXJuOyB9CiAgICAgICAgbmV4dCgpOyByZXR1cm47CiAgICAgIH0KICAgICAgaWYgKGIuaGFzQXR0cmlidXRlKCdkYXRhLXQnKSkgewogICAgICAgIFMudGl0ID0gK2IuZ2V0QXR0cmlidXRlKCdkYXRhLXQnKTsKICAgICAgICB2YXIgYnMgPSByb290LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLXRdJyk7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBicy5sZW5ndGg7IGkrKykgYnNbaV0uc2V0QXR0cmlidXRlKCdhcmlhLXByZXNzZWQnLCBTdHJpbmcoK2JzW2ldLmdldEF0dHJpYnV0ZSgnZGF0YS10JykgPT09IFMudGl0KSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICAgIHZhciBhY3QgPSBiLmdldEF0dHJpYnV0ZSgnZGF0YS1hY3QnKTsKICAgICAgaWYgKGFjdCA9PT0gJ25leHQnKSBuZXh0KCk7CiAgICAgIGlmIChhY3QgPT09ICdiYWNrJykgewogICAgICAgIGlmIChTLmRvbmUpIHsgUy5kb25lID0gZmFsc2U7IGlmIChTLmhhYiA9PT0gJ25vJykgUy5pID0gMDsgfQogICAgICAgIGVsc2UgaWYgKFMuaSA+IDApIFMuaS0tOwogICAgICAgIHJlbmRlcigpOwogICAgICB9CiAgICAgIGlmIChhY3QgPT09ICdyZXN0YXJ0JykgeyBTID0gZnJlc2goKTsgcmVuZGVyKCk7IH0KICAgIH0pOwogICAgZnVuY3Rpb24gb25GaWVsZChlKSB7CiAgICAgIHZhciBmID0gZS50YXJnZXQuZ2V0QXR0cmlidXRlICYmIGUudGFyZ2V0LmdldEF0dHJpYnV0ZSgnZGF0YS1mJyk7CiAgICAgIGlmICghZikgcmV0dXJuOwogICAgICBTW2ZdID0gZS50YXJnZXQudmFsdWU7CiAgICAgIGlmIChmID09PSAneXInICYmIFMucHJldiAmJiAhKHlyKCkgPiAwICYmIHlyKCkgPCAyMDEzKSkgUy5wcmV2ID0gbnVsbDsKICAgICAgdmFyIGIgPSByb290LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWFjdD0ibmV4dCJdJyk7CiAgICAgIGlmIChiKSBiLmRpc2FibGVkID0gIW9rKGN1cigpKTsKICAgIH0KICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBvbkZpZWxkKTsKICAgIHJvb3QuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgb25GaWVsZCk7CiAgICByb290LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbiAoZSkgewogICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgZS50YXJnZXQudGFnTmFtZSA9PT0gJ0lOUFVUJykgewogICAgICAgIHZhciBiID0gcm9vdC5xdWVyeVNlbGVjdG9yKCdbZGF0YS1hY3Q9Im5leHQiXScpOwogICAgICAgIGlmIChiICYmICFiLmRpc2FibGVkKSB7IHN0YXJ0ZWQgPSB0cnVlOyBuZXh0KCk7IH0KICAgICAgfQogICAgfSk7CiAgICByZW5kZXIoKTsKICB9CiAgZnVuY3Rpb24gaW5pdCgpIHsgdmFyIGhzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtaGQtdG9vbF0nKTsgZm9yICh2YXIgaSA9IDA7IGkgPCBocy5sZW5ndGg7IGkrKykgbW91bnQoaHNbaV0pOyB9CiAgaWYgKGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdsb2FkaW5nJykgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGluaXQpOyBlbHNlIGluaXQoKTsKfSkoKTsK\";var t=atob(s),u=new Uint8Array(t.length);for(var i=0;i<t.length;i++)u[i]=t.charCodeAt(i);(new Function(new TextDecoder(\"utf-8\").decode(u)))();})();<\/script>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfPuedes desgravar tu hipoteca despu\u00e9s de 2013? Todo lo que debes saber<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>A nivel estatal, no es posible desgravar la hipoteca si la vivienda se adquiri\u00f3 a partir del 1 de enero de 2013, aunque existen excepciones territoriales y casos espec\u00edficos.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La respuesta corta es que si compraste tu vivienda habitual despu\u00e9s del 1 de enero de 2013, <strong>no puedes desgravar tu hipoteca.<\/strong> Esto aplica a nivel estatal, pero hay excepciones que veremos m\u00e1s adelante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La entrada en vigor de la <a href=\"https:\/\/www.boe.es\/buscar\/doc.php?id=BOE-A-2012-15650\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Ley 16\/2012, de 27 de diciembre<\/strong><\/a>, elimin\u00f3 esta deducci\u00f3n para <strong>reducir el d\u00e9ficit p\u00fablico y reequilibrar el mercado inmobiliario<\/strong> despu\u00e9s de la burbuja que estall\u00f3 en 2008.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 excepciones existen para poder desgravar tu hipoteca despu\u00e9s de 2013?<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>Existen excepciones para que la deducci\u00f3n sea aplicable despu\u00e9s de 2013 en territorios forales, mediante beneficios auton\u00f3micos espec\u00edficos para j\u00f3venes, viviendas protegidas y residentes en zonas con riesgo de despoblaci\u00f3n.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Aunque la aprobaci\u00f3n de la Ley 16\/2012 cerr\u00f3 la puerta a desgravar tu hipoteca despu\u00e9s de 2013, nuestros expertos <strong>recomiendan tener en cuenta estas excepciones territoriales:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Territorio<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Fecha<\/strong><\/td><td><strong>Condiciones<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong>Pa\u00eds Vasco<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>No existe fecha de corte.<\/strong><\/td><td>18% de lo que pagas, con un m\u00e1ximo de 1.530\u20ac al a\u00f1o (23% y 1.955\u20ac para menores de 36 a\u00f1os) y un l\u00edmite total de 36.000\u20ac por titular.<\/td><\/tr><tr><td><strong>Navarra<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Compras anteriores a 2016. <\/strong><\/td><td>Si compraste antes de 2013, mantienes el r\u00e9gimen transitorio. Si compraste entre 2013 y 2015, solo puedes deducir si tu suma de bases es inferior a 24.000\u20ac en individual o 48.000\u20ac en conjunta (m\u00e1s con hijos, familia numerosa o discapacidad).<\/td><\/tr><tr><td><strong>Madrid<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>-<\/strong><\/td><td>Menores de 30 a\u00f1os: 25% de los intereses, hasta 1.031\u20ac al a\u00f1o. Menores de 35 que compren desde 2024 en municipios de menos de 2.500 habitantes: 10% del precio, repartido en 10 a\u00f1os.<\/td><\/tr><tr><td><strong>Andaluc\u00eda<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>-<\/strong><\/td><td>Menores de 35 a\u00f1os o vivienda protegida: 6% de lo pagado, sobre un m\u00e1ximo de 9.040\u20ac, con bases de hasta 25.000\u20ac (individual) o 30.000\u20ac (conjunta).<\/td><\/tr><tr><td><strong>Zonas rurales<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Seg\u00fan Comunidad Aut\u00f3noma<\/strong><\/td><td>Arag\u00f3n, Castilla-La Mancha, Castilla y Le\u00f3n, Extremadura, La Rioja, Madrid y Catalu\u00f1a (desde 2025), cada una con requisitos de municipio, edad o renta. Asturias solo tiene deducci\u00f3n para vivienda protegida.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em><strong>Consejo del experto: <\/strong>La normativa auton\u00f3mica en estos aspectos es extremadamente cambiante. Por eso, es fundamental que, antes de presentar el borrador de tu declaraci\u00f3n de la renta este a\u00f1o, <strong>verifiques los l\u00edmites de ingresos y los requisitos espec\u00edficos<\/strong> de cada Comunidad Aut\u00f3noma.<\/em><\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif,GIF89a%01%00%01%00%80%00%00%00%00%00%FF%FF%FF%21%F9%04%01%00%00%00%00%2C%00%00%00%00%01%00%01%00%00%02%01D%00%3B\" data-layzr=\"https:\/\/static0.housfy.com\/prod\/blog\/images\/2025\/04\/05111505\/Desgravar-tu-hipoteca-despues-de-2013-3.jpg\" alt=\"Desgravar tu hipoteca despu\u00e9s de 2013\" class=\"wp-image-65866\" title=\"- Housfy\"><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 alternativas tienes si no puedes desgravar tu hipoteca despu\u00e9s de 2013?<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>Si no puedes desgravar, las mejores alternativas para ahorrar son la amortizaci\u00f3n anticipada, la subrogaci\u00f3n para mejorar tus tipos de inter\u00e9s o el aprovechamiento de deducciones auton\u00f3micas espec\u00edficas.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfTu perfil no encaja para la deducci\u00f3n de la vivienda despu\u00e9s de 2013? <strong>Consulta estas opciones<\/strong> a continuaci\u00f3n que, seg\u00fan nuestros expertos, son las que m\u00e1s pueden beneficiarte:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Estrategia<\/strong><\/td><td><strong>Beneficio principal<\/strong><\/td><td><strong>Recomendaci\u00f3n clave<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong>Amortizaci\u00f3n anticipada<\/strong><\/td><td>Ahorro directo en intereses.<\/td><td>Reduce capital lo antes posible para minimizar el coste total del pr\u00e9stamo.<\/td><\/tr><tr><td><strong><a href=\"https:\/\/housfy.com\/blog\/como-se-realiza-una-subrogacion-de-hipoteca\/?utm_source=blog&amp;utm_content=%2Fblog\" target=\"_blank\" rel=\"noreferrer noopener\">Subrogaci\u00f3n hipotecaria<\/a><\/strong><\/td><td>Mejora de las condiciones.<\/td><td>Cambia de banco o renegocia para pasar a tipo fijo o reducir cuota\/pr\u00e9stamo.<\/td><\/tr><tr><td><strong>Deducciones auton\u00f3micas<\/strong><\/td><td>Incentivos espec\u00edficos.<\/td><td>Revisa las ayudas de tu comunidad para j\u00f3venes o zonas rurales antes de declarar.<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, todas estas opciones tienen <strong>ciertos riesgos y ciertas condiciones<\/strong> que hacen dif\u00edcil rentabilizar su aplicaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Consejo pr\u00e1ctico:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con la amortizaci\u00f3n necesitas capital, las deducciones auton\u00f3micas son procesos que requieren de condiciones espec\u00edficas y las subrogaciones hipotecarias son un procedimiento que los bancos suelen evitar. Por eso, en Housfy, <strong>nuestros br\u00f3keres hipotecarios trabajan con m\u00e1s de 20 bancos<\/strong> para <a href=\"https:\/\/housfy.com\/hipoteca\/mejorar-hipoteca\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>mejorar tu hipoteca y ahorrarte hasta 30.000\u20ac en intereses<\/strong><\/a>. Habitualmente, este proceso de mejora se basa en la <strong>cancelaci\u00f3n de la hipoteca antigua y la contrataci\u00f3n de una nueva.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><div\r\n\t\t\t\tid=\"hustle-embedded-id-48\"\r\n\t\t\t\tclass=\"hustle-ui hustle-inline hustle-palette--gray_slate hustle_module_id_48 module_id_48   hustle-size--custom\"\r\n\t\t\t\t\r\n\t\t\tdata-id=\"48\"\r\n\t\t\tdata-render-id=\"0\"\r\n\t\t\tdata-tracking=\"enabled\"\r\n\t\t\t\r\n\t\t\t\tdata-intro=\"no_animation\"\r\n\t\t\t\tdata-sub-type=\"shortcode\"\r\n\t\t\t\t\r\n\t\t\t\tstyle=\"opacity: 0;\"\r\n\t\t\t\taria-label=\"Housfy mejora tu hipoteca y te ayuda a ahorrar en tu cuota popup\"\r\n\t\t\t><div class=\"hustle-inline-content\"><div class=\"hustle-info hustle-info--compact\"><div class=\"hustle-main-wrapper\"><div class=\"hustle-layout\"><div class=\"hustle-content\"><div class=\"hustle-content-wrap\"><div class=\"hustle-group-title\"><h3 class=\"hustle-title\">Housfy mejora tu hipoteca y te ayuda a ahorrar en tu cuota<\/h3><h4 class=\"hustle-subtitle\">Negociamos con bancos para ofrecerte mejores condiciones<\/h4><\/div><div class=\"hustle-cta-container\"><a class=\"hustle-button hustle-button-cta \" href=\"https:\/\/housfy.com\/hipoteca\/mejorar-hipoteca?utm_source=traffic_CTABanner_Embed_blog&#038;utm_medium=CTABanner&#038;utm_campaign=CTABanner_Embed_mejorar_hipoteca_2_blog&#038;utm_term=mejorar_hipoteca_2_CTABanner_Embed_blog\" target=\"_self\" data-cta-type=\"cta\">INF\u00d3RMATE GRATIS<\/a><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfQu\u00e9 requisitos debes cumplir para deducir tus gastos por vivienda habitual si compraste antes de 2013?<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>Para desgravar tu hipoteca antes de 2013, es imprescindible haber firmado la escritura de tu vivienda habitual antes de esa fecha y haber aplicado la deducci\u00f3n en ejercicios anteriores.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Legalmente, <strong>si cumples con estas 3 condiciones, puedes seguir aplicando la deducci\u00f3n<\/strong> gracias al r\u00e9gimen transitorio (paso de una ley antigua a una nueva para situaciones que ya estaban en marcha).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Estos son los <strong>requisitos<\/strong>:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Haber <strong>adquirido la vivienda antes del 1 de enero de 2013 (fecha de la escritura de compraventa) <\/strong>o haber pagado antes de esa fecha cantidades para su construcci\u00f3n.<\/li>\n\n\n\n<li>Esta deducci\u00f3n solamente es <strong>aplicable para aquellos inmuebles que son vivienda habitual;<\/strong> quedan excluidas segundas residencias y viviendas en alquiler.<\/li>\n\n\n\n<li>Es necesario <strong>haber aplicado la deducci\u00f3n en alguna renta anterior a 2013. <\/strong>Desde 2024, el TEAC admite 2 excepciones; no haber estado obligado a declarar o no haber tenido cuota a la que aplicarla.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif,GIF89a%01%00%01%00%80%00%00%00%00%00%FF%FF%FF%21%F9%04%01%00%00%00%00%2C%00%00%00%00%01%00%01%00%00%02%01D%00%3B\" data-layzr=\"https:\/\/static0.housfy.com\/prod\/blog\/images\/2023\/08\/27133235\/Nota-simple-en-el-Registro-de-la-Propiedad-5.jpg\" alt=\"Desgravar tu hipoteca despu\u00e9s de 2013\" class=\"wp-image-67960\" title=\"- Housfy\"><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">\u00bfCu\u00e1nto te puedes ahorrar al desgravar tu hipoteca antes de 2013?<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>Puedes ahorrarte el 15% del total de tus cuotas mensuales, m\u00e1s servicios vinculados, tasaci\u00f3n y costes de apertura. El l\u00edmite son 9.040\u20ac al a\u00f1o por contribuyente, con un ahorro de 1.356\u20ac.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si cumples con todos los requisitos marcados previamente, <strong>vas a poder deducir el 15% sobre el total de tus cuotas<\/strong> hipotecarias de todo el a\u00f1o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El reparto de la deducci\u00f3n fiscal es del <strong>7,5% para el Estado y el 7,5% para la Comunidad Aut\u00f3noma<\/strong> en cuesti\u00f3n.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Si aplicamos el 15% sobre el m\u00e1ximo, nos da un <strong>ahorro de 1.356\u20ac al a\u00f1o.<\/strong><\/li>\n\n\n\n<li>Si sois <strong>2 titulares y present\u00e1is la declaraci\u00f3n de forma individual, el l\u00edmite se duplica.<\/strong> Podr\u00e9is deducir sobre una base de hasta 18.080\u20ac entre ambos, lo que supone un ahorro conjunto de 2.712\u20ac<\/li>\n\n\n\n<li>En declaraci\u00f3n conjunta, <strong>el l\u00edmite de 9.040\u20ac tambi\u00e9n se aplica a cada titular con derecho a la deducci\u00f3n<\/strong>, as\u00ed que no se pierde la mitad.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><strong>Consejo pr\u00e1ctico:<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si antes de acabar el a\u00f1o sabes que no vas a llegar a los 9.040\u20ac de gasto y quieres exprimir al m\u00e1ximo tus beneficios fiscales, nuestros expertos recomiendan <strong><a href=\"https:\/\/housfy.com\/blog\/tabla-amortizacion-hipoteca\/?utm_source=blog&amp;utm_content=%2Fblog\" target=\"_blank\" rel=\"noreferrer noopener\">realizar una amortizaci\u00f3n anticipada<\/a><\/strong> (pagar m\u00e1s dinero de golpe y reducir cuota o plazos del pr\u00e9stamo hipotecario del banco) <strong>para asegurar la m\u00e1xima devoluci\u00f3n fiscal posible.<\/strong><\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif,GIF89a%01%00%01%00%80%00%00%00%00%00%FF%FF%FF%21%F9%04%01%00%00%00%00%2C%00%00%00%00%01%00%01%00%00%02%01D%00%3B\" data-layzr=\"https:\/\/static0.housfy.com\/prod\/blog\/images\/2025\/04\/05111558\/Desgravar-tu-hipoteca-despues-de-2013-1.jpg\" alt=\"Desgravar tu hipoteca despu\u00e9s de 2013\" class=\"wp-image-65869\" title=\"- Housfy\"><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">\u00bfCu\u00e1les son los gastos deducibles que computan para el ahorro por inversi\u00f3n en vivienda habitual?<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>Los gastos deducibles son las cuotas con intereses, los seguros obligatorios vinculados y los gastos derivados de mejorar tu hipoteca o cambiar de banco mediante subrogaci\u00f3n o novaci\u00f3n.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La base m\u00e1xima deducible de 9.040\u20ac anuales por persona <strong>no solamente incluye las cuotas mensuales; <\/strong>tiene en cuenta otros aspectos como los que ver\u00e1s a continuaci\u00f3n:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th><strong>Gastos deducibles<\/strong><\/th><th><strong>Gastos no deducibles<\/strong><\/th><\/tr><\/thead><tbody><tr><td>La <strong>cuota mensual<\/strong> del pr\u00e9stamo hipotecario, con capital e intereses.<\/td><td><strong>Reformas<\/strong> o mejoras de la vivienda.<\/td><\/tr><tr><td><strong>Seguros vinculados<\/strong> (vida, hogar, pagos) solamente si son obligatorios para el pr\u00e9stamo.<\/td><td><strong>Muebles<\/strong> del inmueble.<\/td><\/tr><tr><td><strong>Gastos de mejorar tu hipoteca<\/strong>, ya sea cambiando las condiciones o de banco.<\/td><td>Gastos de la <strong>comunidad de vecinos<\/strong>.<\/td><\/tr><tr><td><strong>Impuestos de la compra (IVA o ITP)<\/strong>, notar\u00eda y registro, en el a\u00f1o en que se pagaron.<\/td><td><strong>Electrodom\u00e9sticos<\/strong> de la vivienda.<\/td><\/tr><tr><td><strong>Gastos de apertura<\/strong> (lo que pagas al banco por estudiar tu perfil y conceder el pr\u00e9stamo), en el a\u00f1o en que se pagaron.<\/td><td><strong>Plazas de garaje o trasteros<\/strong> comprados por separado de la vivienda.<\/td><\/tr><tr><td><strong>Gastos de tasaci\u00f3n<\/strong> (valoraci\u00f3n oficial de la vivienda por una entidad homologada por el Banco de Espa\u00f1a), en el a\u00f1o en que se pagaron.<\/td><td>-<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><em><strong>Nota importante: <\/strong>La subrogaci\u00f3n o el cambio de banco no te hace perder la deducci\u00f3n. <strong>Aunque mejores tus condiciones o cambies de entidad, Hacienda permite seguir desgravando<\/strong> siempre que cumplas con los requisitos establecidos previamente. Para confirmar los requisitos seg\u00fan tu caso, consulta los <a href=\"https:\/\/sede.agenciatributaria.gob.es\/Sede\/manuales-practicos.html\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>manuales de renta de la Agencia Tributaria.<\/strong><\/a><\/em><\/li>\n<\/ul>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" src=\"data:image\/gif,GIF89a%01%00%01%00%80%00%00%00%00%00%FF%FF%FF%21%F9%04%01%00%00%00%00%2C%00%00%00%00%01%00%01%00%00%02%01D%00%3B\" data-layzr=\"https:\/\/static0.housfy.com\/prod\/blog\/images\/2025\/04\/05111952\/Desgravar-tu-hipoteca-despues-de-2013-4.jpg\" alt=\"Desgravar tu hipoteca despu\u00e9s de 2013\" class=\"wp-image-65872\" title=\"- Housfy\"><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">\u00bfC\u00f3mo desgravar tu hipoteca si compraste antes de 2013 paso a paso?<\/h2>\n\n\n\n<p class=\"has-text-align-center wp-block-paragraph\"><em>Accede al portal de la Agencia Tributaria y anota las cantidades abonadas en las casillas 547 y 548 del apartado de deducci\u00f3n por inversi\u00f3n en vivienda habitual.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para <strong>aplicar la deducci\u00f3n por vivienda habitual en la declaraci\u00f3n de la renta<\/strong>, nuestros especialistas te recomiendan que sigas este paso a paso espec\u00edfico:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Re\u00fane la documentaci\u00f3n necesaria <strong>(contrato de compraventa, escritura de la hipoteca y los respectivos justificantes de todos los pagos<\/strong> que vayas a desgravar durante el a\u00f1o).<\/li>\n\n\n\n<li>Entra en el <a href=\"https:\/\/sede.agenciatributaria.gob.es\/Sede\/presentacion-declaraciones-calendario-contribuyente.html\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>portal de la Agencia Tributaria<\/strong><\/a> e identif\u00edcate con tu <strong>certificado digital, el DNI o el sistema Cl@ve.<\/strong><\/li>\n\n\n\n<li>Navega hasta el <a href=\"https:\/\/sede.agenciatributaria.gob.es\/Sede\/ayuda\/manuales-videos-folletos\/manuales-practicos\/irpf-2025\/c16-deducciones-generales-cuota.html\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>apartado de deducciones<\/strong><\/a> y selecciona <strong>\"Deducci\u00f3n por inversi\u00f3n en vivienda habitual\".<\/strong><\/li>\n\n\n\n<li><strong>Introduce las cantidades pagadas en el anexo A.1<\/strong>; Renta Web calcula la deducci\u00f3n y la lleva a las casillas 0547 (7,5% estatal) y 0548 (7,5% auton\u00f3mico).<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Si te han quedado dudas acerca de cualquier tr\u00e1mite, procedimiento o concepto, <strong><a href=\"https:\/\/housfy.com\/hipoteca\/broker-hipotecario\" target=\"_blank\" rel=\"noreferrer noopener\">habla con nuestros br\u00f3keres hipotecarios en Housfy<\/a><\/strong> y deja que <strong>nosotros negociemos las mejores condiciones por ti.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><div\r\n\t\t\t\tid=\"hustle-embedded-id-79\"\r\n\t\t\t\tclass=\"hustle-ui hustle-inline hustle-palette--gray_slate hustle_module_id_79 module_id_79   hustle-size--custom\"\r\n\t\t\t\t\r\n\t\t\tdata-id=\"79\"\r\n\t\t\tdata-render-id=\"0\"\r\n\t\t\tdata-tracking=\"enabled\"\r\n\t\t\t\r\n\t\t\t\tdata-intro=\"no_animation\"\r\n\t\t\t\tdata-sub-type=\"shortcode\"\r\n\t\t\t\t\r\n\t\t\t\tstyle=\"opacity: 0;\"\r\n\t\t\t\taria-label=\"Consulta con br\u00f3keres hipotecarios expertos popup\"\r\n\t\t\t><div class=\"hustle-inline-content\"><div class=\"hustle-info hustle-info--compact\"><div class=\"hustle-main-wrapper\"><div class=\"hustle-layout\"><div class=\"hustle-content\"><div class=\"hustle-content-wrap\"><div class=\"hustle-group-title\"><h3 class=\"hustle-title\">Consulta con br\u00f3keres hipotecarios expertos<\/h3><h4 class=\"hustle-subtitle\">Conoce cada detalle de tu futura hipoteca y resuelve todas tus dudas<\/h4><\/div><div class=\"hustle-cta-container\"><a class=\"hustle-button hustle-button-cta \" href=\"https:\/\/housfy.com\/hipoteca\/broker-hipotecario?utm_source=traffic_CTABanner_Embed_blog&#038;utm_medium=CTABanner&#038;utm_campaign=CTABanner_Embed_broker_hipotecario_blog&#038;utm_term=broker_hipotecario_CTABanner_Embed_blog\" target=\"_blank\" data-cta-type=\"cta\">INF\u00d3RMATE GRATIS<\/a><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Preguntas frecuentes (FAQ's)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfSe puede desgravar una segunda vivienda?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">No. La deducci\u00f3n por inversi\u00f3n en vivienda habitual <strong>solo aplica a la residencia principal<\/strong>, tanto en el r\u00e9gimen anterior a 2013 como en las excepciones vigentes. Una segunda vivienda, aunque tenga hipoteca, queda fuera.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u00bfQu\u00e9 pasa si me divorcio y me quedo con la casa?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Si adquiriste la vivienda antes de 2013 y cumpl\u00edas los requisitos, <strong>puedes seguir aplicando la deducci\u00f3n<\/strong> sobre las cantidades que pagues t\u00fa, en <strong>proporci\u00f3n a tu titularidad real tras el divorcio.<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si como consecuencia del divorcio pasas a ser el \u00fanico titular y a pagar <strong>el 100% de la hipoteca, puedes deducirte el 100% de lo pagado<\/strong>, siempre dentro del l\u00edmite de 9.040\u20ac anuales. Conviene documentar bien el acuerdo y la escritura de modificaci\u00f3n de titularidad para que Hacienda no tenga dudas.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfQuieres desgravar la suma de tus cuotas hipotecarias m\u00e1s gastos deducibles en la declaraci\u00f3n de la renta? Descubre por qu\u00e9 no puedes desgravar tu hipoteca despu\u00e9s de 2013 y las excepciones legales. Lo m\u00e1s importante del art\u00edculo: En este art\u00edculo aprender\u00e1s: Cargando la herramienta\u2026 \u00bfPuedes desgravar tu hipoteca despu\u00e9s de 2013? Todo lo que debes saber A nivel estatal, no es posible desgravar la hipoteca si la vivienda se adquiri\u00f3 a partir del 1 de enero de 2013, aunque existen excepciones territoriales y casos espec\u00edficos. La respuesta corta es que si compraste tu vivienda habitual despu\u00e9s del 1 de enero <\/p>\n","protected":false},"author":60,"featured_media":65865,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[134],"tags":[],"class_list":["post-61247","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vender-piso","has_thumb"],"img_url":"https:\/\/static0.housfy.com\/prod\/blog\/images\/2025\/04\/05111424\/Desgravar-tu-hipoteca-despues-de-2013.jpg","_links":{"self":[{"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/posts\/61247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/users\/60"}],"replies":[{"embeddable":true,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/comments?post=61247"}],"version-history":[{"count":71,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/posts\/61247\/revisions"}],"predecessor-version":[{"id":71617,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/posts\/61247\/revisions\/71617"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/media\/65865"}],"wp:attachment":[{"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/media?parent=61247"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/categories?post=61247"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/housfy.com\/blog\/wp-json\/wp\/v2\/tags?post=61247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}