diff --git a/src/components/Toolbar/angleLengthInfo.ts b/src/components/Toolbar/angleLengthInfo.ts index a1d52cdb2..9b19241c3 100644 --- a/src/components/Toolbar/angleLengthInfo.ts +++ b/src/components/Toolbar/angleLengthInfo.ts @@ -46,12 +46,5 @@ export function angleLengthInfo({ selectionRanges.graphSelections.length <= 1 && isAllTooltips && transforms.every(Boolean) - console.log( - 'enabled', - enabled, - selectionRanges.graphSelections.length, - isAllTooltips, - transforms.every(Boolean) - ) return { enabled, transforms } } diff --git a/src/lang/modifyAst.test.ts b/src/lang/modifyAst.test.ts index 7fb23708e..0d5e8205d 100644 --- a/src/lang/modifyAst.test.ts +++ b/src/lang/modifyAst.test.ts @@ -1030,19 +1030,25 @@ sketch003 = startSketchOn(XZ) describe('Testing splitPipedProfile', () => { it('should split the pipe expression correctly', () => { - const codeBefore = `part001 = startSketchOn(XZ) + const codeBefore = `// comment 1 + part001 = startSketchOn(XZ) |> startProfileAt([1, 2], %) + // comment 2 |> line([3, 4], %) |> line([5, 6], %) |> close(%) +// comment 3 extrude001 = extrude(5, part001) ` - const expectedCodeAfter = `sketch001 = startSketchOn(XZ) + const expectedCodeAfter = `// comment 1 +sketch001 = startSketchOn(XZ) part001 = startProfileAt([1, 2], sketch001) + // comment 2 |> line([3, 4], %) |> line([5, 6], %) |> close(%) +// comment 3 extrude001 = extrude(5, part001) ` diff --git a/src/lang/modifyAst.ts b/src/lang/modifyAst.ts index 7e0ecff52..799b7d9f8 100644 --- a/src/lang/modifyAst.ts +++ b/src/lang/modifyAst.ts @@ -3,10 +3,10 @@ import type { Models } from '@kittycad/lib' import type { BodyItem } from '@rust/kcl-lib/bindings/BodyItem' import type { Name } from '@rust/kcl-lib/bindings/Name' import type { Node } from '@rust/kcl-lib/bindings/Node' +import type { NonCodeMeta } from '@rust/kcl-lib/bindings/NonCodeMeta' import { createArrayExpression, - createCallExpression, createCallExpressionStdLib, createCallExpressionStdLibKw, createIdentifier, @@ -1642,7 +1642,7 @@ export function splitPipedProfile( } | Error { const _ast = structuredClone(ast) - const varDec = getNodeFromPath( + const varDec = getNodeFromPath>( _ast, pathToPipe, 'VariableDeclaration' @@ -1666,26 +1666,53 @@ export function splitPipedProfile( const newVarName = findUniqueName(_ast, 'sketch') const secondCallArgs = structuredClone(secondCall.arguments) secondCallArgs[1] = createLocalName(newVarName) - const firstCallOfNewPipe = createCallExpression( - 'startProfileAt', - secondCallArgs - ) - const newSketch = createVariableDeclaration( - newVarName, - varDec.node.declaration.init.body[0] - ) - const newProfile = createVariableDeclaration( - varName, - varDec.node.declaration.init.body.length <= 2 - ? firstCallOfNewPipe - : createPipeExpression([ - firstCallOfNewPipe, - ...varDec.node.declaration.init.body.slice(2), - ]) - ) + const startSketchOnBrokenIntoNewVarDec = structuredClone(varDec.node) + const profileBrokenIntoItsOwnVar = structuredClone(varDec.node) + if ( + startSketchOnBrokenIntoNewVarDec.declaration.init.type !== 'PipeExpression' + ) { + return new Error('clonedVarDec1 is not a PipeExpression') + } + varDec.node.declaration.init = + startSketchOnBrokenIntoNewVarDec.declaration.init.body[0] + varDec.node.declaration.id.name = newVarName + if (profileBrokenIntoItsOwnVar.declaration.init.type !== 'PipeExpression') { + return new Error('clonedVarDec2 is not a PipeExpression') + } + profileBrokenIntoItsOwnVar.declaration.init.body = + profileBrokenIntoItsOwnVar.declaration.init.body.slice(1) + if ( + !( + profileBrokenIntoItsOwnVar.declaration.init.body[0].type === + 'CallExpression' && + profileBrokenIntoItsOwnVar.declaration.init.body[0].callee.name.name === + 'startProfileAt' + ) + ) { + return new Error('problem breaking pipe, expect startProfileAt to be first') + } + profileBrokenIntoItsOwnVar.declaration.init.body[0].arguments[1] = + createLocalName(newVarName) + profileBrokenIntoItsOwnVar.declaration.id.name = varName + profileBrokenIntoItsOwnVar.preComments = [] // we'll duplicate the comments since the new variable will have it to + + // new pipe has one less from the start, so need to decrement comments for them to remain in the same place + if (profileBrokenIntoItsOwnVar.declaration.init?.nonCodeMeta?.nonCodeNodes) { + let decrementedNonCodeMeta: NonCodeMeta['nonCodeNodes'] = {} + decrementedNonCodeMeta = + Object.entries( + profileBrokenIntoItsOwnVar.declaration.init?.nonCodeMeta?.nonCodeNodes + ).reduce((acc, [key, value]) => { + acc[Number(key) - 1] = value + return acc + }, decrementedNonCodeMeta) || {} + profileBrokenIntoItsOwnVar.declaration.init.nonCodeMeta.nonCodeNodes = + decrementedNonCodeMeta + } + const index = getBodyIndex(pathToPipe) if (err(index)) return index - _ast.body.splice(index, 1, newSketch, newProfile) + _ast.body.splice(index + 1, 0, profileBrokenIntoItsOwnVar) const pathToPlane = structuredClone(pathToPipe) const pathToProfile = structuredClone(pathToPipe) pathToProfile[1][0] = index + 1 diff --git a/src/machines/modelingMachine.ts b/src/machines/modelingMachine.ts index 7f399c3e6..15e90f05b 100644 --- a/src/machines/modelingMachine.ts +++ b/src/machines/modelingMachine.ts @@ -2763,7 +2763,7 @@ export const modelingMachine = setup({ }, // end actors }).createMachine({ - /** @xstate-layout N4IgpgJg5mDOIC5QFkD2EwBsCWA7KAxAMICGuAxlgNoAMAuoqAA6qzYAu2qujIAHogC0ANhoBWAHQAOAMwB2KQEY5AFgCcGqWqkAaEAE9Ew0RLEqa64TIBMKmTUXCAvk71oMOfAQDKYdgAJYLDByTm5aBiQQFjYwniiBBEFFGjUVUxoZKTEZMSkLRTVrPUMEDQk5a1FctTFFFRVrWxc3dCw8Ql8AgFtUAFcgwPYSdjAI3hiOLnjQROTFRWtpdQc1Rbk5NWE5EsQZbYkVOqyaOXEz60UxFpB3dq8u-3JuUb52cajJuN45lK2JBz2bZqLIKay6AxGFSKCSOS7WOrGFRSLQ3O6eTp+fy+KDdMC4AIAeQAbmAAE6YEj6WAfZisKbcH5CBZ5CS1ORiDZiNRyYQqDa7BB1JaZYRiUSVay5MVotoY4j40Zkp4kPFkkj+biBYKhaa06L074JZnKKQSezrdQ1FTCCGlfI0CTCaw0JQaHKKKSyjwdCTYCCYMAEACiBPJgQA1n5yAALfVfaZMpIImFW4QpT22IpiQWVNQVKQKQsKPmLa6uW5y33+wMhsPK2BR9ixqiKSJ02KJ43J2wFqpSS48lFi4qQhDGGFiKcLPmc7Rrb33KB+gNB4NvMl9DDxw1d2ZCUSOzb1VQ0KyZVSCqVyGQScE0BEc21SI7OCvo6urggAJTAxNQmCkjunaMt2IgOLCnL3lUwhDnaiD1HybI3hy4hrFkb6tD6+ArrW3gAO5gGATDAQyMz8EI3JyAC2w5A0ZbWJUV6KPshwPnYLo2hYvKLhiuFBgAMqgABm7z0BMu6gfuSR5MIbKNHUYjWEUjg7GOma3q6Dg2jeRwvl675VjhNZBt4MZYJgpFGtJgjco6jFnuo9QDp6wiCsolwVBYNpaJs2yKLxn61gAYtgmCBmJ7YGiB5FzHZALiKsZyNE0OZji6VymGsWyOFOORyIFxlfkQMaqsJ5JWXuFFJNUFRnFYvLKEUtpXrYki1JoooetYhXLiZBB-oqEhMCQ6p4kqEjkGSYAjGM4mfJJsVCMepjKRyMjKCkdTwQgG22qYhaetC+QyFkvX8QNpIEsNo2qn45ISJAHCVVJ1WCDe+aVDe04vjY+yCjI-KSMi-IaDQDgjud-XriwZKRRJMVJu9NjSOKSiwTypw7fYDRZSkjRFK6ulQ1+yAkFGL1LUkN63id3KcravIIleIIwtkVhKPsenNIZ2F9V+AAiwSjNqga6uE80dmRSPZLejiYxofLKRYV5ipOyiNEcygXD1vNLhdAAqYBvII7CoIIRAAIIC5TSPpjCIL8pUKIDmYo6lCxYiOraajiCySmZDIJO1oSwnCUEARMJSuBzVFCavXM6bUQ+Z4yCC4JXGo7m1bUZ6ZFoXvXsHQYABLtHwttgfFohrNkjELIsV5e464PiJyLEpcXBAAApkqg3RMOwpvm098MLYjYHOtRCz0Q4mR5Ec7lrHJWjmFcp0+WoXeW0wTAzeqFCxwj0uT+IFSnRs6e+2KMhXpsZqA0Tdj2BtXcAEKoABM24NifQAEbsHVKESuNlKhyRtLUF8dhNjigBjXc0ZhHbmBvJzd+n9AxkH8AAVVwHqSW0UT6gORKjKQzoiiNBfIoAGztUZmByLURwBksL636h-L+mCACS9YgjAPwfHKm71uTIRYk0cGNpkQAxRNRcwtgUpSlfnrPiJkJAxn9GAbu0c4AEEtnDbAwkSChH8FAdUTAYz+BYEwPolJRgQBAW9UQkg+T5FUMlAcTF1KOXNIzJQRx9iLBUMXCQsAYyoHwhosgWidGcH0YY4xJBTH+DAAPTgkA7FxW0BUTkjQNiLG2A+dylwzSiHUNyJo2wbyYUrHzCQ3gmyxmIGQSgmBanRjjHwxaSZ6iLFhM6aEtoGjmAHO5ImbJMiOFgvyFEjhzotObDGAgQsIpgG1LiRUaTECWDvHkZSviyk2DgWyJQjFfrpkuPyGZdT5nPAwIkiAHB-AQD6GSDokZWnrIQFcOQk4sgpCUDkTkHJcybGkL7FijgFhJQua0mplyOGk3JssoIqyCT+FJLo8gJBLLtIntJK4yg7zyHRg0fIjR3I2Bbr9JQppnFQrmTC1pcLaxkyjCsvEKKQnPIAF4vExe8q44MnRWE5KCbYA5b7qUKeaew5xGJnCLLS2M9K5mMqDEQbgsBAEkDwP4Dl2BuUEkxQ87AGrGlH3HoQ6qzkW48mOdyLQp0dpSgfNINO7MtosW2AqmMSrYwquIOqzV2q0WcAxZgI1JrD58pKQlMEFhEoaHdogQpjp7DZHMI0Gw9qvU+pjH6tVuANXqm1ZbN+3h-AAA0+V1FTOQ2QsEcinHFaUcE6YKjQk9v5DQBVFG+lmYqvtubioBqLT-EtZaACaVaFh3h5GCxiWwvmJoQMpWoGQwaVDMLyBQ2aB15uHVqn+ZAoCBirbBQ4oIeSA0HCoK80J0gWGUhvB8YrKkfhwgOnNe6C2Bp-oGfA7A2lxw6d2K4VhDgugBVoKwTak1KUkFOeQ31fakLPDu2FQ7v0jvMeSPeuA7nkCsaNcNwxI3YotYkeoZhTBuypWKQssD0qVEnA+nI8huL1DQwyjDhaD06tQFynl4V9D+ExdgKAuAo0ojZB3MwfxGgsXchmgE+QXQX1yIWTjyruM-tReSENmLMDCdE+JqtZ9kQKGRPeaE+T1I5CWPIaEZgbCgoCj299lzP3aaw7AXA8T-BmwrVWtO5pPQbA2ClMwS91AAhSA+VKnotjlmYXxD9u6vO8Z835gLk6yPWUtfQ2EG0W1ewbmsK84h0inVTaBwGKJNO+vS9qsAABHPohq-1QAA1O-M4oeQg1gv2NSHsGp3kQlOC4pSmFVP1ql9DtZ808e1SNdU4VqC5aqhRhDymrikI0Jmr57k03mjSPIde7bGL1cHfN-d2rpq9FJE8G7BIaTrYTghfk6RjCqARBYJQNN3IoWkA4RiEo1iueS72jzaXay-kEMbEIfRRh8rWPZ8GV7RDgi2DtX28H-ngtlRtJL02UtQ7m0Ga5yzR4PKeS8xsbzXtU0+d8pQrp14ArSvacwhwUTmHztkT5l2v2LZ-vhDgZjfN4ggKizFfQzVSzy5t51IOQTL0BiOAGJ47ynCdixVIX3BdfljEe5ZZsALvJXT1hxzolKnUFEctktF6r7AwlvNzy4P2W3wlqgIur9XDDDXciNlB-B4GEqgAgEBuBgD9Lgf8UYJAwCHr7wTghQ+oHNw2jILEFBezTkUGDy6bByQatSq494idvvdx5z33u+MCYNQH41JHg9p4GmSPuZJhrWLD2SboCe-CCGTw31PuAw8Z42j0kE+Q-g4yG0m8EZoBwlO5NoHP2aa-3ODdgUNxHTUh9H+HyPMcY9x+j4nwQW-Q0j7HwzpMCIsiwiKJfOdWNmK+ydNyCUz+tjr695vvT2+hqgezeyyre5IHeXeIwPefe5+l+mK1+6et+3Y9+i+Eo86rqU4zExCaQ7oJ0dgiwv+teY6Fa++YeEeUeJ+qA8e5+JAf8sAggfACBGejQ0g8sXyDgHItQV4pCZo5CGwLoJYdQhB9yxB5apB4e4B-GkB7A0B-eQ8tB9BjBaezBt4yIKINudCVg3BUosIdg4M9GpwN4whAQxB464h5Bx+eAp+chggChgg+gTBSB0kCILB1mlQECDqXB6UfWd4sgQITQvs26buOaEgG+Jhpa-gZhYB7eUhUcUB-GMBA+dhDhyhTh1ULhmkA4og1Q88xgAMpwjoaaHBvkacr6RkVe0KYRIm+AgY5hR+0eVhVBZ+SRNRYAjhQGOK6RTmCC6YcaUoWwbk6UNot4XyyIaMDgWgVwxh1Rx6oBB+beEBcRMhCRNhR6gY7Rx8CusGuMnBeuPO18c+y6Smvk2YUGU44g6+u8hm-gHWAGj2mGB67AFhDRseTRoR3gBsggzwDxeAggtxgGmxG22xqYhY+wj6LkCgTcawywW60qGw+wlxUcwm-x9xwuTxkhneSxshlsHxXxT2fx+InWAJ5qWxy6bskEdmsENg5mS6Lh+YDQ-SwoTUtQ0xe8ZIuG+GhGyowBe+re9RlB1BA+bJHJ2+XJggPJh8GxJJQJRxWgMWzmDqxgPIgxzaN4SwVw2yTQRwiCrJOG+InJlI3JTevJ8xGJ0hsh5+wp+pophp4pxpkpqRHR5GSayI+YgIj6GEsEvIqsL4FJA4WpU46g2aAkeAJu6CBARu+AYZZuaRiQRwGSxSyIO2oMBeKQYG4M+UOOr43aEO7m0KIZMc-m6CEgXCHA2iEAUuJqcM5iqAeAY88uMpsmKaiwmO6g9+HOCEpwMIG0p0-YgZCwU2leIRBZ0ZmAJZuCTxpAh8WKTppJOy6pvIPBDM6mKpnZnoM6mQC6sJXywZoZRZAEEguACRmKxAmArAiKly7yrGt49g9U2gNuN6EqxCiw5wLEe2vIQcwRH6I5+5Y5oUuCwS5ifcwkYUQY-JjR8eEcfQTAXxOAioggbAGACFlyCFYAyK7AsAcg7yyIKMWwKwvkDQOQBS4Iq0acLEziD4ygu5hZpuf5eAxqZiTAwFoFCxsR3eKxUFMF5AcFBICFaiyFrSqF6FmFV5aOWyNoKQlwacdg7krkhwOUrpbGVQusuZFRdKpZTxfKGc3Owx2gqQL4nIslLBqQlwsWp0nyOZxOkO0KGlBArYs5MpYKt4aQl8lC32fIslGS5wG0lm4illQ5H6BsxuBI2Ahqo05ARZEZpUUZv52F1ubIDM4MTUhcim-wH56gmwaclwOQ2aQVUZIVYVZIEVZs45ZZ+anAuAsuiSfATeLyTFIkoFV5GE4lvisgq+O0oGMI-k0CCWp0SkuVwVnAhVxVqAh5x5mAp555rycyV55gckiWfIMCaOj5Hsqgkgtg6YUEaQiwUxX5HmeVMABVYa4VRZEg-5DFQFDVtY4FrxkFfg0FsF2A8FiFbRdOcyQlbKGFwg2FUGsIi5siYoi86kYo1EWQ5gF8eQU+A1+VQ1x1RVp151gF9VIFtYZpWJHF91XFPFQ8L1Al71SKn1sA31sZiASkLEhwuS42uQHIHVSI5ou2wOSkhSruqlIRfQeGqAQwo07AA6hIuAzxAp0eOJnx7NkeCFwwcMvNEmJNHyYqk+4i0I9cdQwy65s6TJ0ChYKlVleZdKv4oQaxo5UVxusVMtDQykCVjE0oucZW3hhQH+sgx0qEJ42aetJGsxv5oRf+FVUA2o3xUuzwZIMcZIBAiNZi00+trRTVJgsgqQK+WwOBGurod46gGaXspC8iLtIQbttRtFnt3uLy-GYmeAEZOA5AEY++gQlAMcTVZwLqpCyIc8xgjqA4R4NMT+klCwn5rNH6rtBtHtodkA-gvdrRAtEF0enFj1z1-Fb1sYH1ioL2Dlb2CANorI+e-IykTQ+wHZu0m5FNAylQmQdgVgmdEd7tudJAFZLyEA6ook-g4d2dYFFBY9QSA+D119JAokgg99BtTVVQqMaQykrkmY+RjgTohYpCYoTm6aJ9D9HtF9dy+ADyN9AQ39I9aN7FveL9Q8b9yDX9WdP9ptwIWuvi0I2gDQ3BCgAIWV+BdQ2S2aRAio4Yw9Z94ZkZMAJti9VMdg0JNNA5zkZgq5y6z6f1smklSkIM9DjDyozDOdxZYRLyAdQdId9FgFVdSod9+DkdMtZgSddgjQ2w7anIjqLho2CwU+V8-l5RIRDD9YQ9mjLDB58jiDhdUAxdlsFZTwUjGjp9tRLjeATVRQToZDf2XENg29EGPWUoL4sEto4KkjtjMjo5Z1Kj5kUuNj6jiTo9t149mNk9vFuNM9MYc9z21gcV0WqEawh94gtgV4t5NEX22pJSZR1SH66TTD9jsjB58DSDH9AQaj4YqDsxWT1hEcggODvTXxUjeDPjcuBCpJ9CqOs48mLobczErI3DhSYIWS8TGTHTST3T79t9-TyogzqNMRmJGDfeoz4zn9xz0zD9cVXyj+ogpCFw2wBeLohYbINgbd-iDQXd2taliq3F38gQ1iQYfKfI3sDijE4IAjHVqwFQvsK9eh2kljLTHm+aW+iDAWEug9xIMuj9lh2TEgJAGqC2P6AAcndBAAAGqEsZ4QS5Q2guFey8jb1FbtT5CJaezOQBJ7XQpYsAE4uc14tS4EuYCy6sUXPxGYNkvsAUsjrUuS70uSuzP8J37VoxZyoZziBaAAwuhuknSnA47kX8vd3V5e2ok6Z3aoAPbfFomwDDNvFi0Os-p4P3ZtFusjr1lzMyk-aOjEq855AniArqQ3iTjqAqZKT5DGDTHeu8ZD7+6GbOvx6uv4lJsGb6AZ6MQf6FAZwGPgiHEvlmhqHcM2CZw2DxtPa6bopZupvR7ps-G4AX4AGhqGbj6SCAxMZ-aQ02YexAha7uHmYQxNDVvNt156qCbXHGb803XWFNvC6D6F1+5Zu2E4AmYy0phmicgWAnbbC2iCNdKSDOx7aFA4V8jjvC61v6ZCYiYbtztP0kuLvutwFCbrtibS2cOasCpezoQg4r1HtauhufMgjCiDlWMe5WsJvaqZZMBFkVoNsSAvsjoIW+YwVmwME5vF7Xz+lbpHvbWjK2jA6yxrRXs6ZwcIfjpIcocHpofxLDz2Hj5LBKS2hpziguKCOqZyxnhOLrBgxa0BWWu14wc-wtZtZhr-E0fmyidw6tbwH-EZ74o8g2oPjpi+xnjZxNDfNRt9JjLg6AshFVGifmK3SrYTXzsusyf4nLYGZrbfvIF0QO7KDHCFCZWHZHAAiXCqBAhXAZr0PRXsMGzoIh7hx2Wm2PheQuG2BVB2bEWFEZiLBP7igV6QeYuBfLLBcAShdOv2WAlL0KTUQTaayxf7ISqUMs4LAb1PipcYuCsZf+BZdhp6K5fWAOfSSFdRduz6NxfqSnQryJfVcpcBfG1Nc5d2UyDtfVSdfFcxc3xLpvnpCVdJeMTDcCt0olSjchctd2UqBTdxmRezc9dlcexHBLDLdDcyjreKqbcxVjc7dUBiD7cbKHcPjdelcLd1AJcOArc1cAtCf1dbfZcPfCDPfL2vfRfHeff7QXfJc3wjd3fbdhdUByBg8KTOX85ThSiSXFvOilsvj9j2yyB1bXfeq3dBdI+5dSBo-36HKKQ2448A7dIgzVdrzNMzaYvYBFWdMTVsOjnYVkWZKbDL50JUJji5BngVDqdTK2iQ30Nc8gse1OM+1+P83uP+0K++PPKuNfv5dUw5C+n4HqcFGTIctowf57ZpB49HDy-c9JPK9D0X3YADDKMAVmLkCa-qvAbSR0L2SuiK2EwlaSLdIchHR6TeW2+K+50D1pOe9IcT3cVPX5PT0oUE3z0qBxVThS-IZWB6R5Hi+xuwhxbmCZlfL-dpeCue9wOX2IOHN9Nx+Wd3XYMwV19fGe+zXQgEoPg0wuwLBwLAqNq5CezbUQd1cbdV-n018+119PBx-oOytXOv0t+4Me928-WZR8gZqAw7VaHi8LzSDgiGNaQgjl9j83cNdNdBJRwcDe3TWxjmLYB7zx-X840oVMCP9tF6KCAxyQCpJbv9hsQeQlQdjgUEOJ2o8Y54dGBtVq4c9AeiPA8rABf639CmD-J-vP2WKYNEBOAV-oJXf57xU8wkb-kRAwC2IZaHkVQntHMzSgLABeDjqtCS4KAzg-yFmoZ1aYX9iynFO-mYh7y-l4+uTRPlPSQqFNimGFd5PYBBDmgGS9gJmlj23ost5IawOoFjjnjotYBG3dgQgMxpcD-APA2itK3NIY12AD1AQcnyEGp80KhNMQZJRBTgxGBNgKoCtVJqnRYQj4ItiOF2yR8c6MYaaMshYB1leBfPDhnryTBm1aYiwFED8zhaODl60lB3C7BfiXxBOFfcfnb38zeCiINZfwbnQd4gUyQGqTIQSHLJS5ch+QvwQSCvLghVCnoOtBtFqDphBQmsSQF2RQgE55Angk3OkN8G1kUU2Qr2rThCDcApcZQp4ur19qDCChvrDVt2FY7pBLgxgdMCUjGQNCX4f1BLHZnIrs8SclfVIQBh8ETDq+CDafsg1n47DOhEwvgc33FIr9PepsToYIGGFNVUg58P9k+CgRLpZ4bIZUvUHnAwCthKQqPmcOGFK8+hOLVRGSCGHdCniodE4QCL2EPDtGIOc9MYH6L4xaIDQ-5KMiyTcgPsVFUnhICIAT9ARkI-uik0Hqr9YRGQ4YRcOMHY0+KZgwSmn2exiBM+wMfDn8j0hZwxwrVcDOnSTh5A3u6+eGnoMCG0VsKK9A6O3FdC59cggoREHJDOBvkSsjgMJoKJGqOMQRPtKspHEhFFCua1ZeEWDyUgbAnQYTazPIACIND2QhyQlKdFqBq5VRwI-Oogx4HkjaixzEutvnLqwcq6XvTookHWHSBCwdGOwLIGZhjg-2lWCykVmQSqC-hiqHRGqLHLq8r6xw8KhcLGbL8Jm4VJqhPlhaXoD6H2bettHVgyIF4KCDkA6N6FOifa+pS2CPWhHZjtG1NAsDwTngG9BG-yJbrUKKy+wsclY4sqHReRpjG+OTIwVjST440U+DIiwfPSkDYUvk9JfSFKGUikJla4Y8yvTRi6lJ7BsY6ynSgTFpC4RxI4UQ11FGm1iUd4Z8K82rSFhZRdcBKmmVBDKRL2eIg8bsMpHHi5GGovUdqLrK6itREwpqp3xkHIJVuDgWUbyHSDZ5WMGZUPpWKJFZCvx1YnQfxhhFuipGHosuhXVgA+imqOQAEK+GaiFBFgtA8BqjAyplick8Eo8YhMcZT8emt9E6u+K6F-iRxWDDMVcKzFFVbhPg+4ZCIqFeVq0lGa8NoFlGaBH8sbTkGyxfDUSPxtEpMd+IAxc8IRf4hsUVV-pLArAxHKJpugLzpgUYOeAcvRgUiySWJPQpCVMFBHKTzhRAM8oMEKZ4T0g1ae8mtDzCCgrACIZTKQ2XFcwWBAPfcUKIQnmSDyg4xBsOKfYjN+BtIgpuYOEpqA4qaQAEOyxTDMsl09seasDg-LPjPUr4wKTROCl0U3el1FGkSxeKRSxxeTScfSPxozjnsKQR5ukCnzOJQxTUdyYAwqD1wMqEWL1P4CPI6CDEpkHUAEAwD6IrEkcTRO8mSCropw+kvCiOHqCqw5IVQb6HlHhAVJzoZAbAN0BGAvIAscRGOEh02nbTRgjHGJL6OdLL1SE0mVIMyVIZEV0oBwbcmWA2iOQNpuCY6btM5r7Sgw6A2QkdNminSBpWldaotQUD5wdk3pcXjyBNFm1CgbiXJG9K2k7SRW1VWqog0KaHT3pAMzDg5NNpXTKmkCDMOKBibuTnQBEv2C6ARDl5EZH0lGcbDRmajLk+g9GnKyxknScZl5LdhYASh-BjAU4UhI3DHAvh6SZtG0A4iyD9VgiO8JEi8mNiAItwpUwWo9A3AKzLYGqdwGILNC5EpQm6XSJyObRhMtc9dKSqI1+G+hpZhmWWSrIwDMzLmys+WRgDVnsANZMtB-NrNyBOxAY+spNGDXlLOYhUhjc6BbP0AF0w4EccxJoiQ4iRw4fgcJDHCdkuywezg77HlBjq-QFMtmJQKYB+SBxZIG6IOVcRDnOMw5WIb6bbIX4SBo5EcOOWAATnoAxB6QO9BxHrhxpoQWnbsimEvRAwLwBcmWYg3Mg4A+ASHAedgD4B1zSBaPM0I1F5C+wuYa0aIbYC+aH9Y6iGHCr3Mtn9zy45cjAX3hHljz1Z9cvGVL2UCwRRQBMS8OlAEbKZwGRbVQLIHXlFzNRhEYiPH2flMBx5Avc0JBI454U6E3s5dPjCL7Zgb4gIM2ThGDm0435282QrADfkfzzxBEvwn9D5megFp6Ub4cdh7JNBxku48BYXJeRnlRISHQhewHgWGjk4+ePkCrmxGyAAcWcueGoWdD9dCgD8ghSJHRLnMDBmDEhWQuCHdgwMH5OeGhCKybBDsvYbQNkWfF9VlIrC9GQPIs4RS3iwSCyLwulJL0qMXydOTQqD7A0B+kDT0LnOAGyLNR8i6BRxXkWqKGy6i+kiDWyhgIKkR7YAfJQ5C6RlIYC5cBAudFhQIoSHFGhFEsV+t1FkgN0DyHp6bQreS8VdMDnPaigsgMiqWfgq8WrYOFixO2X4r8ABKphPvcBLXEUh2jYIR0crJ3xcLAg0g+cPIMYqeClRug5UYOmxKNw1LyQmS73tVFYgwIfk2IuyOy1ajactSC+bMJ83NaGdPFPtBpbUrMWYMxlTSg+RPL4XSR5AhwbYAiDwKMCNArUMUH9RqDgxZeZSc6LZ3GgPQpoM0b2odNCCxFboByzvEctmjm4lgGgPCveS4hURDiFbYvLYCOhpBFhuC5cPsvuhXLpoyMwgL9JWIGIzYmJC5X8smgAqkcW7W8P5FkxTgQQOeLYBrlrpPwtIK9ZQKf31i-KJoo8DoKcrBU3QxokK0eHYlKCAwDJjMRQTInkBpREgwWRtLaAzjihVIuQPZRCrxV3ITlwKuVmcvBUkquVz0V2W6QqQDg-k6Yd5hyw4hS9CwNKh8HSsqW9x+4g8RjqPHj7-xugHAe4X3GSRw5uVYg87vbDLZmAWcxbXyG2isCFBQltQG3gkr7k+1lVeqzDuqt5VXNNV2q+qnqrJWuzbwMEqmezDBD-zCgzgqZA7VixVc-JVjEZf4EWT3RRYWdaYDR2FhgBfAYsOIM0r9FCBCi9aD0IDTlWY5VY06fmadkTK7VWaMauNSLCCDpqk1bq5DimrTWJruAmai6YIBzW1A81pqzYIWoelPM9Wpa7yOWuGWJKfa8SPeLdEPiHTd4+8U1K2tJKgMWyig4norUYh3ws5SscwAA01jYq+IMa8dbOqnX1qD1k6ygPOscpyQl1O2MGi2UOKH8YQ9QWwKkBK52BzoMMfjCcrYnGxYY7AYKLqtDA69zpC6-MJrUSzyBYmJDfIryEgh+I4QZCKUG+r4A-qCV9a79R+r-X9wANoZc3I6DMCgwW6smL7PkXsC6FNAOkdeD-mCLMoCVbE7aVGAw3dAsN1dWFc4vQh65PQG0MXs2mQx1QG6kNaSbut9DUavA9aujWAAY1MagN-rKCV6RUjihxAm1BeZ2pixFsWWcwgzkOTYQYIf4sAf+Jql1BeA2Jf8dBN4D01AJSFMysQfNRETbKe1XyT0ByxeamBD2SZBEOKEE04QtNoLXTQAnM0obOFLMvvMZoAimbfNoK89eotw1Yw1c-iBfNjDFCXqU6XsregzHOhebME7NSyYQCM3oIcE0wCLVTE8gxcSJHIRSHzI5YoInQuuZmiRLS3oJQWmWnlQFrtnBbMAeWltZZrIGL5AYXsMUPcrcUvKwZrBM4IhmVEIlgi6Wn+HWXJA8JP1ii+PK1q4RKhZtBWzpOqXUxnhGoBldQpIn7XIiQ2J8vRnVvYRTbuEiakTc1ormLaztoQVbd2HzDUkpQjQM8JUwgwAxl4rBK1ffmS7doKwR5DAPACiCV45lb0UFJPjOCKwCYKsMcMkFzbTgh+sgeoI3WLgg7E4nIAECf20ArMccO0LQEeD+QXgqg7IDTVY2USqIMANcwHVYoETwJUgtoluqkD1ayU7aBaw9kUE5hRrqkyiYJKEkp2o6hAuQJYAoA0Dg0Y6mwYNW918L8o1oWMSoF6n50fIFgRXPHWkBfD8E11MOrnBTLWi9F1CL4i1tCmhxgAFdcIB7eIwbpjEE66kWLGyDc3p1NgX0aYpm0bxB45iYeBXYa0bkdQPsW6bIK1HKBJcEthONxdMTfa75D44hD3b8lGxRsnUmQTTugvFBA5ZY9mx8O4qM5WtRCketRYVrMaFZuWRydKdwQfzvKukyI10EkLP7eoqiphbPdTrvwDkDoj8BTS5HCY2oEoGgERMSiNHTE+6aeKPZ5Fl7RLrcAyW9Bvwr1Vccgi1IZf5PjGFybihJO4qJ3YBR7QGekOiHkAdSOAm4dgUwOlV7KmrdS7Ja0gRkNLh6W8B+D3RXtRihtGEQ4Bec+AyDyYG6qCnkNRVHIK7JkjUqha6D6y+JBQ2gMIeSlN6pAQQ7+j2hpU-0gg5I2yCZK53+geJoNLaIvMTufHgHc6R5XvJigV2BlQaDQIcKLxzwFJ+QfYePQ4kcgz7khiqH8tHxSbFTQKn+36tsmXj+lwYYYj2IfzqirdsRmODzUC29SQGc9nSXKAWF7Egx1dxbERBTUDIWgZwcbPEQdUVChU4aI1Rg8+X+oMk6EimXfa8ypQchYZmwvcYqkUNHURMQo0aoIfr3dh1Aq6bBQ+C2Bnhp829deN2WBAOpbAxMBQ4NWUNmGRqY1LA5gBwPcg4V7EEMUOAzmrVcgH+VjBbsQyV61Bxh7w8NQRp0HkaDBoQ9YcVijI+s8mwoC1HDbdIGF0ERDHwbZoc0fxUtD3YXFENQt-mHoaIUAOc3cM8N1TEngbt1p7Nfyn+3orbu7Yb0pQYoVWOjq9hs8CeUlUoz3U6NVistYwvDI9kDrkgcDP3GiE0GLArilIGuFIMhEWoKxn13ykIok0dEzHVeUB30nFrm7sEuOa1BKB9maiDJ75eIw47Qbd6D1EmUBjZRDGyCqBUFSgDXNCXTobRNFeG85I8amPFl4GKY3pt4wfpQHWQn+amrL2OAUMU0r4UpDkhKQ7N2mMzLoxkY66iAYQFTFII-HEaHZ38svQIgsMP6j8EjZPLxk8Ysm39FGix3E9VDTpLTTsgRGJVxw2rUZnQTqA9giExPSMwT6o5CScZZP+jwY+YfsGxkIq1wl4lDVyPYcZKXohTdjbE88YYqD02mwpmZlAcqDc5RiwB1jrU08gWYVxETYnmqfpNdMPGM-Y5tCYNr6mlg5mNMgYvkzMRuZbHQlKrtET7GP0ILTBLAHBYm7sibEU0OIkRUAGXQzmrKlpBdCwR6G3AbFj7VxY0tpcarK-QOFoTZJY6xMjXLm3IqppuQjgI+uRywy2t7WT2DClfrPQMIN6iK8pB1QXF1QrAq+LaGwfLOJsV207UoFYecIvaHxDZz-JCWt1pVvhRWXbPyBJ1V6869yEzm+0My1n8w9Z7MCOY6o4wsoWgJ9SCG4gTHhO85mts7pnYPtlzD4zNO6Y7iKZMgCVU1YUDe49kuzQaNtlm3vafszzDCC8ySjQWndygDmU0Hkj5DOgnzOm9Dgh3LRZnzuWPPpPbC+TOHdzhWTNPcvsAbUQLgQMC9lkgu0J3lE4TaOE3niwhcoVQVyCjkMM614x0HGtuJ3ayL6YwH544BnG-OAxs43Ms5OwT6zC60LtnczlmYfV7ZsF6ndgwhD8LJ1ZAwvWLiZQR4U9ge4cT-dKi-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 */ + /** @xstate-layout N4IgpgJg5mDOIC5QFkD2EwBsCWA7KAxAMICGuAxlgNoAMAuoqAA6qzYAu2qujIAHogC0ANhoBWAHQAOAMwB2KQEY5AFgCcGqWqkAaEAE9Ew0RLEqa64TIBMKmTUXCAvk71oMOfAQDKYdgAJYLDByTm5aBiQQFjYwniiBBEFFGjUVUxoZKTEZMSkLRTVrPUMEDQk5a1FctTFFFRVrWxc3dCw8Ql8AgFtUAFcgwPYSdjAI3hiOLnjQROTFRWtpdQc1Rbk5NWE5EsQZbYkVOqyaOXEz60UxFpB3dq8u-3JuUb52cajJuN45lK2JBz2bZqLIKay6AxGFSKCSOS7WOrGFRSLQ3O6eTp+fy+KDdMC4AIAeQAbmAAE6YEj6WAfZisKbcH5CBZ5CS1ORiDZiNRyYQqDa7BB1JaZYRiUSVay5MVotoY4j40Zkp4kPFkkj+biBYKhaa06L074JZnKKQSezrdQ1FTCCGlfI0CTCaw0JQaHKKKSyjwdCTYCCYMAEACiBPJgQA1n5yAALfVfaZMpIImFW4QpT22IpiQWVNQVKQKQsKPmLa6uW5y33+wMhsPK2BR9ixqiKSJ02KJ43J2wFqpSS48lFi4qQhDGGFiKcLPmc7Rrb33KB+gNB4NvMl9DDxw1d2ZCUSOzb1VQ0KyZVSCqVyGQScE0BEc21SI7OCvo6urggAJTAxNQmCkjunaMt2ghyMo5qclcUjGGs8jCIKMiaE64o2BBGyXCoi4YiutbeAA7mAYBMMBDIzPwQjcnIALbDkDRltYlRXoo+yHA+dgujaFi8jhn61gAMqgABm7z0BMu6gfuSR5MIbKNHUYjWEUjg7GOma3q6Dg2jeRwvl675VvgeFBt4MZYJgZFGtJgjco6TFnuo9QDp6iHqZUMJnA0to8lsEF8cZNZBgAYtgmCBmJ7YGiBFFzHZALiKsXlNAiV4OJI3KFOmYpTvIAXLkFxAxqqwnklZe6UUk1QVGcVi8soRS2letiSLUmiih61j5SZBB-oqEhMCQ6p4kqEjkGSYAjGM4mfJJsVCMepjKRyMjKCkdR2nsjhmnkEEvp6mRZN1hV9QSA1DaqfjkhIkAcOVUmVeByEVExuQbZx+xIfykjIvyGg0A4I7HV+64sGSkUSTFSZPUs2S2o4GhnAoSEWOkmUWMpLqFjI2GGT6gVfsgJBRvd81JDet75DUnK2ryqVjspq3SGhSj7HpzR40uPUACLBKM2qBrq4QzR25HQ9kt4I2cGh8spFhXmKk7KI0RzKBcXWc7hhUACpgG8gjsKgghEAAgtzpPQ+mMIgvylQogOZijqUrFiI6PniCySmHcDtaEsJwlBAETCUrg01RQmD1zOmNEPmeyE2Eo3KCo4mRsq71RaK714+0GAAS7R8BbYHxaIazZExCyLFeruOgD4jQTjTQ5wQAAKZKoN0TDsAbRu3RDs1Q2Bzo0QsDEOJkeRHMnaxyVo5hXDIOM+c3JtMEwk3qhQYeQ2LQ-iBUi8bCCctijIV6bGaOOuqoi+ZIozcAEKoABk24NifQAEbsOqoRFzZlRyRtLUF8dhNjiiQqXKCVoGinCyKxR+z9AxkH8AAVVwHqEW0Vd7-2RMzWCmNGj7SQnbZmZgci1G2ggl+yCACS9Ygi-0wRHMm4FuRsggjYF0Fg+SbQQFkQs7FbCNCaIve+mt+JgAkDGf0YAW4hzgAQE24NsDCRIKEfwUB1RMBjP4FgTA+iUlGBAP+j1RCSB4acfkFgBzMXUo5c0tMlBHH2IsXGrR8YFVXBIWAMZUAETkWQBRSjOCqPUZokg2j-BgE7pwSAJi4raAqJyRoGxFjbAfMnS4ZpRDqG5E0bYN43zuK5t4JssZiBkEoJgUp0Y4xMLmkmeoixYTOmhLaBo5gBzJ2vmyO+cF+QokcN1GpzYYwEF5hFMA2pcSKniYgSwd48jKWcfkmwEC2RKCYi+FxWE5DDLKWM54GAokQA4P4CAfQyQdEjLUuZCArgQVMHA10C9OQclzJsaQahASOAWElfZtSJAjNjDQwmxMplBBmQSfwpJlHkBIJZepg9pJXEgteJQfJkQY2TjYWu2ylCmnyHs8RxlgUxiBQc0FtYiZRmmXiaFvirkAC8XgIruVcAGTorCclBNsAcZ91JZPNPYc4TEkYogBaMiltSqVBiINwWA38SB4H8Iy7ALKCQIvOdgRVlTt4D2wZVZytceRbO5FoRevCpQPmkMhOG61WLbElbGaVozZXEAVUqlVsLODwswNq3VW92W5ISmCCwiUNBO0QFkx09hsjmEaAnEEzryVkvdfK3Air1QqpNg-bw-gAAa7K6ipiKMifYtR7A3ivLBTy0IXbbEKDyFNrqQVfgzVm5Vb9c35oAJrFoWHeHkrF1h+Srgzd0GR-qVDMLyBQLa03ts9dmt+ZAoCBmLcIfMdhCw8kboUFQV5oTpAxiCK+4IpRFMrB41tqbKVLszV6t+gZ8DsDqeHBp3YrhWEOC6N5WgrACtKAiBEpgcgbBqK6UQV6PykoObe9Ny6u26PJOvXApzyAGKGgG4YQakWGsSPUMwYHCEzl2uAhmHkMgKUPjxeoC7721g7U+1VqBmWsvCvofwCLsBQFwMGlEbJWJHGhKkRorFk6JoBPkF0h9ciFgYzKh9nbvXkl9QizAXGeN8eLfvZEChkT3lE1G+5OQljyGhGYGw3yFiKbdcpljsBcARP8IbQtxbnqrWLBsYRZhp7qABCkB8TQNpbHLMU3CZKEMOZXYEZzTBXOoH8P2-D1kjXkNhKtcEYoHALDWGlYji843fpxhKkly4ouLqY0hlVYAACOfQtUvqgG+gd+ZxQ8l+lu-salnZ1TvPUHKFw8kGQi76SrjG5U1bfoNdU4VqCpYqoR3K0mYJbuPoWRQyd43mjSPIBe9amJ2bbdVx9sWJq9FJE8ab7AaSLcjogE86RjCqARNY5Qi9k43hovkdYEo1hiLG3BwFVWgy-kEHrEIfRRjsrWOZgGjdRDgi2Lw75GUciInWDeK4x2YzuqOVMvu5zLnXMbLc+7ZMHmTmeYnXIXJBQvkdMiRnmQUSKWJUDir8HQcerO8hgiHAdHObxBAGFCK+j6tFml5bNqmJbuQo4JeSkkInjvJY1J9gthOvK7e6LtZYxrqmYbACdzlLlHFOIZ0SlPtjk2WyOitV9hZC3S2k2BFlUBDVRq4Y-rTmBsoP4PAwlUAEAgNwSReB-xRgkDAbuXuOOCCD6gU3ORHSu1YgoV2yEihAejTYOSdVCVXHvOF69JT4Nu496x9jmrfc6twwHpPvUyTtzJANQxweyTdBj34QQ8fa+J9wMHlPTMEYnD+PYfkzVBMDlydybQmfXfu7OT67AfqcN6sD0PkPYfQ5+lwFHyRsfBCr79YP4fFOkwIiyLCIoR8R0umRgzQobtuQSnv1sJfVfT9ar9w3qZTe5Ire7eIwne3ex+P+mA5+yel+3Y1+ZosEpwTEII2gU4LEuCaQ7oVMdgiwX+ZyPahaW+weoe4e++h+Pe3cJAH8sAggfA0BKejQ0gUsGYHItQNatobItgmEpwsEdQeBAQBBBaRBIeQBbGIB7AYBFBggVBNBdBSeDBt4zO5cuQr4ueCAF6ksdgAMhYrsEG-B-gBBvawhJBe+keqA0ex+Mhgg+g9BsB0kCIjBomlQQClqbBE6qgd4sgQITQ3y86OuUWle+BeayWxhohbewcoBbG4BveVhNh8hdhlUDhmkA40GmQE8xgKMZwzM88Cge6n+-hFey+AQa6gYxhu+EeB+5hR+MR+AgYthH6yKiRVmUE6Y4aUoWuR6P6EEyI4ov2WgOOBRgKgRxRtRAB2+zewBEREhURUhJRYA9RO80u0aZg6QrBqQz4Kw2wR6UoXymwCIAGU44grua8mm-gzWb612fOeA7AJhFR5BJs3g2sggzwVxuAgg5x76ixS2yx0Ihw2MzoIILkT+wGmUywc6IqEGMGRkXOQxJxXGHxlxKmBIExYhUxkhDxTxLxSJ7x+ILWnxBqSx6hjssIuUVQx8+mJmDh26NoL4woDUtQ+h68ZIaGGGWGyof+m+Te5RZBVRUhTJLJa+bJggHJW8CxBJ3x6hyI+YgIjMzuW6vI58NgJJSyTQRwZgagjJqG+IrJlI7J9enJ4xYR4hkhx+-J2pgpupwp+pop8RDRBG0aUpgW1mlqcECpDM7SypA4qpU46gLaAkeARuiCBABu+AgZJuCRiQRwiSOSyIMEf0ahKQP6AM4GaOr4HOZekW8G-pociWAEEgdCHAiiEAouuq4MuiqA1xdyZgKQ5oiwyO6g1+OYdijyq0i8-YPpCwo2GZ42WZAZuZmA+Z6CNxpAW8iKdphJyySwygtotoNM8mbkzsDgZocsyEBS2w+2fpfZxuA5uAURCKxAmArAEKByVZRW5opwZ4qBUoh6gquCiw5wrEGgCEMgm5OZ25EgoU6CPiui7cwkYUQY3JZh0egcfQTAzxOAioggbAGAUFByUFYAUKt2cgdy5aSwWwKwWgqgzimS4IS0CuJwFwygr5YZA5n5OqOiTAv5-5KJ4RHeMxIFYF5AEFBIUFMisFtS8FiFsAyFEZiANct4DhrRlwyEdgycrkhwWwzkIIFwzoLaBZNx7K4IqYL4Vg2gqQtJvWj29QIoKkQWoibyclQ5BArY45EpI6t4aQR8+0r2fIYliS5wq0hmNo-ILa2shuBI2AWqQ05AiWwZxUoZ-ZKFVuacvIAMDUWckm-wvIOMvkyElwOQrl7lnAXlZIPlhsg5hZGanAuAEuUSfA9e1ylFIk-5p5sEiyDQOQsgC+vC36MIjaoCnoZ6SkiVoZHlKVaVqAEgu5Xe+5RAh5gwZOoyVZ5gckYWfIYCCON5zsqgkgtg6YnIyyiwAxnOuublrVyV-q3liWH5eA5FP5xVtYgFlRwFfgoF4F2AkF0F8xg1sYnF9Kt2wgKFAGsIvIs+NoZCycYoNEWQ5gh8eQgJLVMAbVm1qV21ZF35RVf5tYRpaJ9Fp1jFzF3cV17Foyd1iosAj1vFQowlhwaSU4N4nIeQn1fI5osENmIGWSGpgxUqfQ6GSWpZ7AZKhIuAtxPJ0eGJggtNYeUFww4MTN-GWNGkLSaQmK6wqK3Sno7CqKWE8ghYGsK1UWv4oQcx-ZflhugVWNDQykacr0HWrs+WE6hQqEsg0IOh2k6ZsGMJUqStuG66JFEgwxpOIQ3AouzwZIocZIBA4NOiE0ytoxp5JgsgqQ8+WwmBKurod46giars+Ci8LaNtKt75jt+AmoVyUAeAwZOA5AEYW+gQlAocp5WRsgsEWKiZTUDMA4R4FMd+KQlw8C1NLqCdox-ZO1X55kouTddtrNQFkiDF51l1bFN1MYaNBId2plD2CA71ZoOe-ImMl6TZpQ9gz0x6DQlQmQdgVg8dIQttpR75JAxZ1yEA6ook-gvtO9AFpBPd3iveZ1R9JAokggZ9cxp5VQzMaQykrkmYKMjgTohYsEOUdgCaW9ftdtLd+9pyKdd9J9T9oxNFxpcN3ct9x93cMDdtQVnyXE9EhQICNaCgAIcVOBdQKSLaRAio4Yndu9QZIZMAGt49ZMdgawSSBKTi8aC50aD4Zoyg1ZtdSkv0JDZDyoFD9tydUA127t5IXtu135+dSop929z9WNZgEdgDVQqgLIwJ0aDhA2eWWQx8zaDd5KpD9Y-gQjLdIjqdvGGdJsxZTwAjcjIDpRbGljAtdDSY5CSwW6+kys1Q9MwG4g7WUoKlKOvy-Dxjpj753tkA-gRjsjQj3dx1vd8N-dLFyNQ9I9t21gQVAWHIqQKQV8vDV4VatEL2apuSUJN6UWMT5D8jzde9NjUDAQMj4YqDh1l9CT19iDYFDTzxAjj9NTaDijcV55s44mXCaBz+rIDDWSYIySoTsT-TlDeZ4D5yyDtjxjLTQYMNdFXeHTnNXTyDPT9YfTDjkuWChJOkMIWUUGMl1aDMPSx81driDQL5BjY0SCb8sAhiQY7KfIbsZiTE4IZg5di5Rtmw3CVmYVLlrzGaq+KdbmwuUTxI4uF9ph7TJAiqzGK6AAcpdBAAAGrIsp4OAtJAsOG6Figq6gZqVhYuzORuLdnA5SowtqbXLwu4ti6YAS5wOw07PovsCYtdo4si4EucunPMJX4lqBZIxKXiBaBIQujSlUynBo6sQvj6FYksYXaoBXYasrq3bxPkHc26tdp9OXbzHGuVlY1vZM6-TJlOL07uRMzqkyZKT5DGDqvTbV7qocaaYGu8lGvTZ95OPe4ab6Ap5MSoSFBKXbCEKaX3JYx-HbLHxXDHweuvEwost+q+tHWGtGwWtvGQGaYj6SA4weRKAchaAZLqRAhq7OH6aAxNyvPDGIksb94+6nHaYs05v+t5uBttuhvSE4A6ZWsbSmBeR7bbAzmSZXAvRaAggHqyB8hptIkZtwqhvcZDtdttO5vPGBuFs2GdtEtp65PoR8hihsOmaDonhr0WrChdmW267Nv5txYuZuYFp+vR4BuvFQXxY9y0HhsF7fK2hNBzoXsHrWxni-aAvWYW3QmPtFEtuxZOavtJa9ofuSJfvYnIdgWGzWEj5LBKS2jITiiqBul+OLywhng8KjrfLy0MtW0upPuev1aNb+ofHocSCYdPoQ4NYIo4mvr4lS4Skpg0S+Rr1VAv5nifVNBsgxX7TVC2ZNsIfPuzYaZYAcdccrqCCqfzZjlfET3X7pCSUcgjqxXbZHAAiXA3xnhXCJokP+U0PayIKB4BzGWa2PgVAPiOyNCnwmZ1mOhKC5aYxPil4PuVMOdTJOcAQuewDGVtj6f0MefDYqxVBmaZJ4OBcLDBfiihdwfhfq1Rf+oqKxdUDWCuPdgKQ0TJe2CpdrLVtsSZeLB345f2cFfOfFfGUyDlfSSVeecOE1e+c4ppBMFBfNcyjQsRf+CFcxfGUqDdeVS9fVc+dpfqRHCwwZhNdMQtcTdtfRcddUBiDzeRlJdecpeDfqR1ABcbfZenytcBXTf7fCBHfzInf9fLd1fOy9EjdZdjcJU7f3fteudUByDPeT3X4bKKTW611xtwhmi-T9hWzF33t5fwZECTcPdA9SCg80YQ9XBQ8Pgw8QRLDw937zzlPl6ApEDYCpWLOYBq0BXbkoUK5JKbBz5kJbZji5BngVDpjaAYrZCojQvU9MXCNFHXJOPp0s3WOu3C+ONp14ClXpA4G88XkDIL17BfdihPki3ghHAkOy+i8e7XLfj73YADCSNt1PAG-DWuxq77SYyJQc+L124mcgJ5AOX680-22ROi5U9e8cd91MUXUpOD1wWQr3WwAqBBVTg8-fKwQ4yyQXsnByS122DiDyDDovMK2o8G9gMH2QOrPkAG8B8337P33dxF9e-DW-HWqvT8IEoQKfKwK5AuxpCeie8i958QOiMNNW-+9bORE7OBx7PCkHOV8i9PUzuYpSg4xLVWBISTzSC68shaRnp3eOeILeLBwcDZWiND26LYDrwB-b9I1wVMCH-zEqKCChyQBxJWv9jsQ8iVDEcFBxvmqmAzzFatLjfZ+U-o+b+wAT+u-G5KMgP5H8B+0xIfifxRq3Vz+68RPMJGv7EQMAxiQWs-0OCrQeEBNHJGoRI5LQmuCgM4Bjipq-8mW--PMgxRAGxh-AneVWt2xOrsAzqQfAejBTSbh90adyTXLeBxg2h7ASkBEEpHV6T1nQ8kNYHUBRzjxYOFTVHuQIHKUD9+tA7cty22bd5A+iNViqwLD4IUI+nA2ul8gBiEDOEtlMcDkEliPhwQvIV1i7iF5e9XMMYCaFMhYDXFVa1DEiihSkybIUQ6EQFlNXmQiV7c9sJekfDo5hcc+tgt9A4PLLOCk6YvFOn+TJCKoohyJaXjQOp6JCnBBIKsuCEUKehF2q0WoOmEFAqxJApwD7JUAgx5QbBnfCIcRCSEBAYhRvFOgwhdp1CiyJZZ2uhjqFZCSalwYwOmFyR3wihS9F6o1TMyqtyemZSnrnxqGOCKy0KOpt3xWbl8++1Q+wbUIyE3F6BiTTpqP3L7PEDeBsNYfMQ2GnlUgB8fWk+BAQmYx4bIHkP0PnC5dpBUw8IUcLqFmNYhojN9NT1FwbCLee1cfrvVeEnDFGcuDAcYHaIpAdIQg5xK1HOBRl+Q0IKQRTyZbTCgRcw+oZvx94rDARkQ34VsI6ZMD1BqTLQVxTEDR8fooHROHpDUBFDKqv6fBNHHd4IhXcoNJQa4NoYJckw3kDKNkAghQYcYuQQUIiDkhnBHy6eRXMyKbasjN+5jBmq0JSFyjgRoPJSBsCdA2BqyF4HwkUPZAbJZai8StDaBZEdU8y5jWgQCKmRNNPaQfbOrnVgD50xWn6aSGMOkCFgxQ+KdUUKLEy1k3kWWcwBsCNFmN8+PfVZt5RL47Dum3lU8kzABZ7o16CIoQRtCVjmB9i-IUEI8ORGMdpRJoj4VEnQwmxYG3tbjKlVPKcgCwsEX7On1ghCiVCtqQoFlm+Qo4AxETKRtIhTqhj8Rag4PkjVD4cV2Bo9KQChQgjbp9IUoZSLwSd58VREpNGrnkk4RIjJhUqJRGlTRHRCqGk3RnprQaDLlnwsEEzp6Df7lw04iZUEMpCXZSjlxuI9Ee8MaF79eaQcdEW0KGBDR7xlrZUbPyWgOEkCOTCcUKF5DpAM8pg5MiZybErj5hMonMWaNz6WjM6a+HOiqjtH4gHRjRRIBjk0ivhGohQRYLgL-rZEeQk8DYP5HPF2DLxq4k0UGKWEn0tqMw1oR2NL67CH63lQ4Q4O07oish9lEtERmvDaAhRKEbBmeEJo8F6WoQoYqyNAkYjsxN4uwd8NaGFjIxgzGTlYFtAPgsgs6NQumCVKZ5OyOhBSCBJIlgSJJUwOFtIjJA-CHxfVI8lQME5nMJSGONGHlnLhP9lIgoKwKBldDQgc8l6X0kROokbCW63ta5O2O3a8lOxLA66iSIj5qAgqw3U4COBLRihGgzkmcL0j+zWYXsuk9YVeObGW9Ia1FWiYwIRpdiNBYU3sdoPRopB0GRnfhDwRsANRnJH9F6N0U6whYU0-gXcjQLUSmQdQAQDAKogMRBx5EdyZILUDAzqT0KI4eoArDkiqM3oU4eEIUm6hkBsA3QEYKyySwRFQ4HHRactNGB-tQkSE+0pPTKprBcmmwNvpWgVhVd1yRPD0I5AWnoJtpq03RPImUGD9u8W0qaLtI6mKVZq41BQKzmWRkc9gPINUVrWwYVwqgd0paStLhZJY9YBVJoQck2n3SPpuHIek9VGp-A8gGYcUFugvbgiAQ5gYUF5xLyQyHpMMvKvDL36IyIBkhd6TtNRknkrWFgBKH8GMBTha0JmF8NSRVjGBKxzVHXKvGDj6Brkesb+FuBRZ3FeSoszcBgBNiKp3AnAs0OkSlCzpdINIhmOqLt6ywXY9adMbhEFmaYRZG4cWS9MgHd5pZ4suWewAVlY0b8yslQhBnUCFMXwTpVKSoRZDdQDZwslOhNH-CAQJZbNSRL7IAikgrZNs0HpBAtQqUY2dcfYkhF8gJQuemAlqIDno4O04S1yYOf7NNmSEs5oc+WegHZQ7Qvq2OAoHHy2BFCHw0pCwVUCsRYws+acr2eL39iBwnpgSDjiJADh+AAkocMOYXNtm3hXsU4PIHGhwIJksZTyQLovFkgzpPZGclOp3NbnrTNmLeVEioIkCLzu58iPuagNB44xcazzEDpCIKDScYQ6owoLpByaVCVqTclOuZBwB8AOO987AHwB3lPUee05b5GzGWi+DJSAiXXsHXkCqBZAc8oWdcmfmPyaZMxCBW-M1pmh6ovIL+bLE6zVwbQ0mP+hYOAUNyH2t8vfkRBIgB98FTAWBdj24F-iSO6FMhOrOAyQjKO2YU+ICD1m+hcFgQIhTnPopEKSFnIirienLRtl9gisJxOgXzDxxWITQRwNrhvnzzRGh5USBx1kXsAuF4pCeqWNSCeSUC3IctF9iUCBZrEsdFxCQMbnSKziIkG4lAp2YKKlFQnCel0XPBBZuQWWTYNtl7DaBoMp46ecpFAWGymh98unh2N8VWLrJKi1Yp6EIZpBsgDgT6k3xygHRp5z-Lxd7L36+L2FQ-AJQXN3ncKnR26L6msFNTrkMi7kHYuoA5C6RlITC4yCwqhoRQOOVSvwIEvFbdgY+boPCXjzWgi1p4w0hwIOF+pWABwhinBcYtqVmLV5tFV6RICGX1LHRlUcUBJU9CKRK0W6UJWlBr5AtTpv1AXgkuuQG5ugpUT2viO2W7LJlyEvYCKMrSJw0gdkSwc1Bk6qlwQWgEDG5M2Up0DlEjcxd3heVkgjlB0+QIcG2D7F16hAjQM1DFAvVIMkHfgRMN9CqcRo10caJNF36bTQgqJC6DCrbxwqpopuNCjLHUCsN-GAoTnr0KdC2BQlaQAYfOKhUoqroaKiaNDMIBvKJAaiQ2OEUpWjR0VMOK1reEbTVkpw0lbIBXM57KA8Up4fIO9Q+zdRoVVKm6KcgRX4jGVyK4aJKr7gmJF6nEHnruls7KT3klUZ6LAmA6JxsoBNcVSyuuh9wOgKSt6UiuZUKrRoSq22dKUKQDh9VqkQUZz1VWvVjwSja8OUuXAsK24HcLuH+z7gB9P43QDgNp3bgxIIc0qzgbDCtjM4RMgXGHphQqC8Cm0rBMhE8tEZ+rI1uHINfStgAhqw1RVSNbar3m3hAJIGOGGCGoWPYz0Loz0LPzCpNdM1-gCZFdAFjb1pgGnPmGAF8CCw4gXywkoIAC5bpcojgMwLumRwKxB07M-bDGWWpGKwFKdNtfzCCD9qu19KjwFdD7WdruAg6iUsOukCjqPQ8UydXK3dKPJZWc61GAuoGVLrRGESdeBdC3ibS14G8PVPuono-06yYg4utCBA7nwdFsscwO-RVjYK4OLCx9e+pfX0qoNz6ygJ+spwp8fCMEH6nWTjbL9YQKsMTDVzsDdRQYbGGVUFOjx6wwY7AYKBGtDCS99phJI2nLTCwIQnE9ETIinxyBWxnQAJKUPhr4BkazV9K0jYRoo0dwqNAZU3GnlXraA-0bSLYpzzSJYbNAFzchJCuMg0ozV+I5aVGCE3dARNBdDlRJWPCa50wsgBYFeDj41QsU-1XQiAp1yqavA9KjTWAC006aaNwnf8fKRUgW5xQtnUzTHy6WFgbQ4i9MN1CfjUIPmn8JVLqC8D4iP4iCbwOFp-iKL0lnAjGbijPB7EIIcyiBBHV6LUcBBm9HXCFveaBB4tjKvjSMvgY7MYtAEOLV-AS2Ia3Gx7BQEvFcR3LeE+wGZfUD2xph8aym5cIVtfj+BaahkwgNFsQRoJpg9WuAjCBq5YSOQikNmUIPkA351JD4RqlhOC2IIBtQ2hFfSqq2YBxte6pLYLQQIJ9+JGgIoOyGIT5AmCZwIBYrn2AbbQtW+JUAwiI2otyCe2uhC9u3qTaUUU5eTGlqM16RsgSETbMU32ILA-xOMR7UVuuLkhXtZWyYuvM+30IftR20HiIpq6NxLytdcQPHJ-oYoss7jEpS4ArC7kMA8AKIJbUyWPQbMwtaWOhTli-zkgEbacOPC3QVV-NOcGnVHFUVnpJNAMNHLwkrYFhUUKcMBAOBzhSIZEPcuADzoPBnDUg+oyuqkFlZiU6NexGckUFZj9K4OQUbxL4n8TyJKd1ilhLkCWC5E0grOKtECrsSgYlKWcHkDwUqApp5d9ySHQWAbG-RMITEQUIIHMAAh9a-QqUoQKEko8Qck2N3XCBEW8MsUPRMOupCCycF2Zw8U1OSsZaMcEO-bOvP7jGLB43dCrJXm1ARFzoQdDMM3LCFPFoRi8DJJTt-kza-5rSjebfAXpSDLlOt-KBHFJwmazxXQ4GLLoTX0KCFhCreo2qq3UppIZwNaG-MSqaTgjXQIQ8PYuIQ6GER9yismHXR2gm1kywHK4KZsqAJQNAYircSqP0Iq0k8rey4L-XTy9CHCDQI9FPwX0D62YqgY4kLLOK4kLi+bdgKPsAR5B6II8uBBeySJjsrAdgdUciE1LMlzSmGXUhvi3hr7TdV+BfczGvbbQhwv8-sDtAxjGpPQF84iv2Td0DIjOfIcuVhRyCChtAlMMRRsFLjztkeTwqVNmXtryUiDIIOSEsg53HBHU3SXkJ4Rcmjqie+RUgS6mYMt1uqy0zAG7p9LfUGgQ4dnpnkyT8g+waRMxI5DD2MHRDW5TES2P2pQ0wARB56kshnhekAYvjR7LrxqhbdNFyOcDZofJSsH19jScdZ7rEwvgfdMPMRbjR9IWgZw7rV5mtSBobUixHVQw3eVepCJ4pQg+oHYCPVFgjgexMwIDUVCeUQaHVDKj-qcMVdJ04iqudBl+zRGPQDiTYJai4LQ6AjSVVIyEe2oSGEU0hhxU6A4g7ohwEmR1uYlyilYLAQCxffYYkCBGUj7VMGroZymBg2D-wBsTNVEBZQaqRPXRYQk1U3gW0XNemneP5oF6s4nu35s8w9C-yn+pgPkMRxgSusGDGY8lOE0QREHWinBUtnPXa0KxSxrsV8I5CjYaHTjEgc4wZOAHNDOhbtD2tIdyy0QmgxYMccrgFU1k7hf0aWGJnT0MczjCzQ3sNosaS82DLs1rQNz5HAGZqCUBEY1E6TWaRDcJk5n5JbFRMhGbBkFYDF5Gm08DKuRhrHTWjxpV6wDc+l30PqrMNmbB1kG-jpyzljguDWNK+DySpJckczapkSe3KXHiWOTY6fk1sDbZvk1+tSgw0h2vGFxLqKpoI3hPXjETvx8kP8bKrXgX8Q4kas1DQVThnQ1qSdpKIJMSANTJjLUw0MRMS88A-xs4f2HkCoxMoNVIcLCEQKnjaSe6UU5qfFM6G26UTO02SayM9dTUfxborijW7AGapBYRoALvNRHRoWdjD4wOWWa99LR9jc+mwYP36ZEyB0cTCxGZlEdZa4SpoKcBbQi9kEnzKaFHugzsRTQzlHlZQZdD7G4qWkF0NYJtPMtlE5MhFqLiRaisC9KB7II7Gljmmk+6wTLEHT5WOAN6y7TVtEm1YWibsJuoJRvsvJHjMYPKgpDMdBbRUF860Mw6udizZ7NME5rdPuezBv4NG7uqKp1qyxk1+Qqc4ScvqrzPt92t5-MBQgPOPmaqk+D-vcpA2T5Fjdes5M+2vNaZN2-5o8QnFLPCZJMqcWoBOpfzX566Nppjum33YbteMFEBpfYT3MUJkLIqiaat3KAWZTQ6SM9j0beN4WV22HRLIWgnMDhSExKicGtGiMghHQrEJNE+Q4i9b4OP5z1qxbcy9oOLsMWadJsh1767muQWEOOok5k00kl55DCxyayf6YwiF8i0pUos4xPqzM3ZH8FI6C9cLynT1jp0DBSGoziRF5LfmPi9Co20RrwpHVkCs9Uuai9fpF0B7bmSLC3EVOaFUBgGbMCIsSkqUswZackaljvrT0lOXS4+YBxPl9EggTrNgQlYUKqZ7LPDqh4EySc6eItTKUJSBZKV9VHVcMF++8axEQMz48EErCJ4ASb1OQDBpDriIlY0EBBYEk+HIf8Q2OLqDh+zacyptMNDPkVwzBvf40zBcssglKtiZ3jMtybvUfGgGJq6yYL7LDzR-x1iJHQBgvZhMW6CBK-VkyYSeiCIxi2qcMayCJzDQI9ZhLhz2xXQ58QBCsBSinB9adht42j125yCgBpOA5GAIMMOXEgCrWNY9cWD2wfxViYVPxYC21Ujs-3DfhQPhqWSaBbGQg6DeWLAyeBqeh83KbHABbRBqKCQSkBhO64-eqwvSeJPstIGKuEoQ4JSNs7-VK5pYt7Kn0JkLBvr11206iJpvangB8Q9IeiPJPWxo5EsJAjWsnqYSkkB13LFsC41VCcRGU0iQOVlEdDTJ1xTk5TDqCa6iOFLIm3LDvDGBF2LBSRaNbCHU3Vb+k7M+RNzP82bbmR+m9GZtTr1Do+43okMPKC3K+BaETYBtZ8mZTCriJr4SZLqGun-tNMEzlsGQi0i2I2un0iiDOBnhA7Yk4k2GZl4vCabbBt24jkXiVXrh0cZYEByd3ihGgTYi49jeEGPJfo-KMcYrCKHlshMGxLgqkErufHScd4iO9Xacgjq1gRA4eIIO1F6ZVIbfGCNkA7vq2IJmN80WsyVBsGuzq-XSEtogiejlLJYOCCsS4JT2Ha9tkMalUMOyAAQp0suPxJesmCEY7EFM4gXyAaBd75jbUvmLtqFnOVpWV5IeAvaEd8wldPAzNUfC73-JbYw+73f82oROIl3V0A7GrGcW2+f9f+mXHSmzC1blx1+oCSJSyArO0t804oTLTxTeBdEJB28MdNfHu7Gwtg4wXdvdEswlwIUfKVuFY6IDJx3m0uOIlO3Bb1ySCbYMtHknViHkETILuOsmCvS5VYjtFX4REPfJSdfe8sKoliTDDGXQhK0nkw8geJTSr0mOMvSuhJHwdzu0ZOknkPq76eFPhPFcX7j79Y4UQGVXEcThZ8hE3C6JIFtZTyKAUkBy7YW5AdcaWyQVTnjUkHRI6fowcCiArveT07zjiGlRVGO93PH-66DHpDLDOSC7ToSTaxHVzggWpbUvaW7sEAgYuUmV4RJkBBDxzKYvncQIOEjTeqGVyM4AW5mXlu6BEzofYDLQNtSh7jElAhjLGSSiW6Zj0uGYqkBu1I3dnyVnrOcwfydnJBpl0FhL9Hc2W1FsjANk-AMbIY5Vjro9LevLtZ9gBKS8rtBbV5yQb7juYDAjvAa49o-9ObZXOUbhpn+brdkC2s3n9TAkizmZTNT6WlD0kv8mCEzldjza2Ys+FtRAsWc7E8gXlvyPXbL3AZ+QU06CMeMsC3qINxi2AEQqBcF42YOM3wgwxYjNJaOQIaKmTxbUKLFnpwEkgqyBadlWn7kMqlObT6+FNVLanxBZCJcjx1AitndOWJk19Yjp+SQjjoXaItqhlRLyQHgdVLXtHKaUVOOpTjS1yvrLaj5Ys7Yh0ReGXPWMkIJSjE8pjwoObdo51wSqF71d-3eUAYjv1QlWQdCCrnuuvVOQ6ljnUautWwqaVu-Z56mHcniZ3RvuglUqR6xiDkx8gSp7q5NXSqOgTrw4C66yQ7ozXrqjSbTG9earKnvqiNQGtzXSrg3c6b9DaDmV+cLUu2YRPnjnYOAW1K6iFF1IqhBWjnJNXfYZjEXyB3XwGIzaYA+xWhEoRxAWcYrg2bxKAiztBVfFXL8ILTNaVOA7D5VQuY6uV4yARqHNQBO39q93qDMrjGXZNuFbos5Tohutuotmyd-q4YhfIrH+QRSIMlM31BQr6jKks5Rh0DaC1tW0rfgGDdGvqyq0Eo2oX2A2pscs9FNrOVHd9bNtyCbbUG83eMFWi+QfBPNbx2c9yhv6C5S8jaWiX+tyCOHQkM7XXvN3rITAUcAX2ijH3EsZYHcrcnBNSdTgIAA */ id: 'Modeling', context: ({ input }) => ({