Triangle Area Using Coordinates Calculator — Find Area from Vertex Points

Triangle Area Calculator (Using Coordinates)

Point A

Point B

Point C

Formula Used:

Area = ½ × |x₁(y₂ − y₃) + x₂(y₃ − y₁) + x₃(y₁ − y₂)|

In coordinate geometry, shapes are often defined using points on a graph instead of side lengths or angles. A triangle, for example, can be described by giving the coordinates of its three vertices.

While this method is very precise, calculating the area manually using coordinates can be confusing for many students and professionals.

A Triangle Area Using Coordinates Calculator makes this task simple. By entering the (x) and (y) values of the three points, the calculator automatically applies the correct mathematical formula and gives the area of the triangle instantly.

This tool is useful in mathematics, engineering, surveying, computer graphics, and GIS applications where shapes are defined by coordinates rather than measurements.

What Is a Triangle Area Using Coordinates Calculator?

A Triangle Area Using Coordinates Calculator is an online geometry tool that calculates the area of a triangle using the coordinates of its three vertices.

What Are Coordinates?

Coordinates represent the position of a point on a graph using two numbers:

  • (x) = horizontal position

  • (y) = vertical position

Each vertex of the triangle is written as ((x, y)).

Triangle area using coordinates calculator

What the Calculator Can Find

The calculator determines:

  • The area of the triangle

  • Whether the points form a valid triangle (not in a straight line)

  • The absolute area value (always positive)

It does not require side lengths, angles, or heights.

How the Calculator Works

The calculator uses a standard coordinate geometry method often called the shoelace formula or determinant formula.

Step 1: Enter the Coordinates

You enter three points:

  • Point A: ((x_1, y_1))

  • Point B: ((x_2, y_2))

  • Point C: ((x_3, y_3))

Step 2: Apply the Formula

The calculator substitutes the values into the formula.

Step 3: Take the Absolute Value

The result is made positive so the area is always non-negative.

Step 4: Display the Area

The final area is shown instantly.

Key Formulas Used in the Calculator

Triangle Area Using Coordinates (Shoelace Formula)

\text{Area} = \frac{1}{2} \left| x_1(y_2 - y_3) + x_2(y_3 - y_1) + x_3(y_1 - y_2) \right|

This formula works for any triangle whose points are not in a straight line.

Step-by-Step Examples

Example 1: Simple Coordinates

Let the triangle’s vertices be:

  • A = (2, 3)

  • B = (6, 3)

  • C = (4, 7)

Substitute into the formula:

\text{Area} = \frac{1}{2} | 2(3 - 7) + 6(7 - 3) + 4(3 - 3) | \text{Area} = \frac{1}{2} | -8 + 24 + 0 | \text{Area} = \frac{1}{2} \times 16 = 8

So, the triangle’s area is 8 square units.

Example 2: Irregular Triangle

Points:

  • A = (1, 2)

  • B = (5, 4)

  • C = (3, 8)

\text{Area} = \frac{1}{2} | 1(4 - 8) + 5(8 - 2) + 3(2 - 4) | \text{Area} = \frac{1}{2} | -4 + 30 - 6 | \text{Area} = \frac{1}{2} \times 20 = 10

The calculator performs these steps automatically.

Features of the Triangle Area Using Coordinates Calculator

Only Requires Coordinates

No need for side lengths, angles, or heights.

Works for Any Triangle Shape

Acute, obtuse, or scalene triangles are all supported.

Instant Results

The area is calculated in seconds.

Error Checking

If the points lie on a straight line, the calculator shows zero area.

Simple and Clean Interface

Easy for students and professionals to use.

Uses and Applications of the Calculator

Mathematics Education

Students use this tool to understand coordinate geometry and verify homework answers.

Engineering and Design

Engineers use coordinate-based area calculations in structural and mechanical design.

Surveying and GIS

Land plots and map regions are often defined by coordinates. This calculator helps find areas accurately.

Computer Graphics

Triangle areas are used in rendering, modeling, and mesh calculations.

Tips to Avoid Common Mistakes

One common mistake is entering the coordinates in the wrong order. Always make sure that each point has its correct (x) and (y) values.

Another frequent error is forgetting to use the absolute value. The raw formula can give negative results depending on point order, but area must always be positive.

Some users enter three points that lie on a straight line. In this case, the area will be zero because no triangle is formed.

Rounding values too early can reduce accuracy. Keep full numbers until the final result.

Finally, make sure all coordinates are in the same unit system. Mixing units can lead to incorrect interpretations.

Frequently Asked Questions (FAQs)

What is the shoelace formula?

It is a method for finding the area of a polygon using its coordinates.

Does point order matter?

Only the sign changes. The calculator uses absolute value to ensure a positive area.

Can this work for 3D points?

This calculator is for 2D coordinates only.

Is this method accurate?

Yes, it is a standard mathematical formula.

What units does the area use?

Square units based on the coordinate units.

Final Words

The Triangle Area Using Coordinates Calculator is a fast and reliable tool for finding triangle areas from vertex points. It removes the need for complex manual calculations and ensures accurate results every time.

Whether you are studying geometry, working with maps, or designing structures, this calculator helps you compute triangle areas with confidence and ease.

Similar Posts

  • SSS Triangle Calculator – Solve Angles & Area from Three Sides

    SSS Triangle Calculator Solve a triangle given its three sides (SSS) — computes all angles, area, perimeter, semi-perimeter. Side a Side b Side c Select Unit unitscmminft Calculate In triangle geometry, the SSS method stands for Side–Side–Side. This means you already know the lengths of all three sides of a triangle. Even though the sides…

  • SSA Triangle Calculator — Solve Side-Side-Angle & Ambiguous Cases

    SSA Triangle Calculator (Ambiguous Case) Solve for the unknown parts of a triangle given Side a, Side b, and the angle A opposite side a (SSA / ambiguous case). Side a Side b Angle A (degrees) Select unit unitscmminft Calculate const results = []; // For each possible B (primary and possible ambiguous) [B1, B2].forEach((B,…

  • Missing Side of Triangle Calculator – Find Side Length Instantly

    // Base64 Content var b64 = “PCFET0NUWVBFIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KCjxoZWFkPgogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjAiPgogICAgPHRpdGxlPk1pc3NpbmcgU2lkZSBvZiBUcmlhbmdsZSBDYWxjdWxhdG9yPC90aXRsZT4KPC9oZWFkPgoKPGJvZHk+CgogICAgPCEtLSBNaXNzaW5nIFNpZGUgb2YgVHJpYW5nbGUgQ2FsY3VsYXRvciBTdGFydCAtLT4KICAgIDxkaXYgaWQ9Im1zdGMtY29udGFpbmVyIiBjbGFzcz0ibXN0Yy13cmFwcGVyIj4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIC5tc3RjLXdyYXBwZXIgewogICAgICAgICAgICAgICAgZm9udC1mYW1pbHk6ICdTZWdvZSBVSScsIFJvYm90bywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsKICAgICAgICAgICAgICAgIG1heC13aWR0aDogODAwcHg7CiAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bzsKICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICNmZmY7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAzMHB4OwogICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMTJweDsKICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgNHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjA4KTsKICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgICAgICBjb2xvcjogIzMzMzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLm1zdGMtd3JhcHBlciAqIHsKICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IGluaGVyaXQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC5tc3RjLWhlYWRlciB7CiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OwogICAgICAgICAgICB9CgogICAgICAgICAgICAubXN0Yy1oZWFkZXIgaDIgewogICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgNXB4IDA7CiAgICAgICAgICAgICAgICBjb2xvcjogIzhlNDRhZDsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMjZweDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLm1zdGMtc3VidGl0bGUgewogICAgICAgICAgICAgICAgY29sb3I6ICM5YjU5YjY7CiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7CiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZjRlY2Y3OwogICAgICAgICAgICAgICAgcGFkZGluZzogNHB4IDEycHg7CiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxNXB4OwogICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgICAgICAgICB9CgogICAgICAgICAgICAubXN0Yy1ncmlkIHsKICAgICAgICAgICAgICAgIGRpc3BsYXk6IGdyaWQ7CiAgICAgICAgICAgICAgICBncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDFmciAxZnI7CiAgICAgICAgICAgICAgICBnYXA6IDQwcHg7CiAgICAgICAgICAgICAgICBhbGlnbi1pdGVtczogc3RhcnQ7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiA3MDBweCkgewogICAgICAgICAgICAgICAgLm1zdGMtZ3JpZCB7CiAgICAgICAgICAgICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiAxZnI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC5tc3RjLWNvbnRyb2xzIHsKICAgICAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7CiAgICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICAgICAgZ2FwOiAyMHB4OwogICAgICAgICAgICB9CgogICAgICAgICAgICAubXN0Yy1sYWJlbCB7CiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNjAwOwogICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4OwogICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7CiAgICAgICAgICAgICAgICBjb2xvcjogIzQ0NDsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTRweDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLm1zdGMtc2VsZWN0LAogICAgICAgICAgICAubXN0Yy1pbnB1dCB7CiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICAgICAgICBib3JkZXI6IDJweCBzb2xpZCAjZWNmMGYxOwogICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4OwogICAgICAgICAgICAgICAgZm9udC1zaXplOiAxNnB4OwogICAgICAgICAgICB9CgogICAgICAgICAgICAubXN0Yy1idG4gewogICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzliNTliNjsKICAgICAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTsKICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEycHg7CiAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTsKICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDsKICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogICAgICAgICAgICB9CgogICAgICAgICAgICAubXN0Yy1idG46aG92ZXIgewogICAgICAgICAgICAgICAgYmFja2dyb3VuZDogIzhlNDRhZDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLm1zdGMtcmVzdWx0cyB7CiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmJmNmZkOwogICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2ViZGVmMDsKICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDsKICAgICAgICAgICAgICAgIHBhZGRpbmc6IDE1cHg7CiAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAyMHB4OwogICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLm1zdGMtdml6LWJveCB7CiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZmZmOwogICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwZjBmMDsKICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHg7CiAgICAgICAgICAgICAgICBwYWRkaW5nOiAyMHB4OwogICAgICAgICAgICAgICAgZGlzcGxheTogZmxleDsKICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyOwogICAgICAgICAgICB9CgogICAgICAgICAgICAubXN0Yy12aXotYm94IHN2ZyB7CiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87CiAgICAgICAgICAgICAgICBtYXgtaGVpZ2h0OiAyNTBweDsKICAgICAgICAgICAgfQogICAgICAgIDwvc3R5bGU+CgogICAgICAgIDxkaXYgY2xhc3M9Im1zdGMtaGVhZGVyIj4KICAgICAgICAgICAgPGgyPk1pc3NpbmcgU2lkZSBvZiBUcmlhbmdsZSBDYWxjdWxhdG9yPC9oMj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXN0Yy1zdWJ0aXRsZSI+TGF3IG9mIFNpbmVzICYgQ29zaW5lcyBTb2x2ZXI8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPGRpdiBjbGFzcz0ibXN0Yy1ncmlkIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXN0Yy1jb250cm9scyI+CiAgICAgICAgICAgICAgICA8ZGl2PgogICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0ibXN0Yy1sYWJlbCI+S25vd24gVmFsdWVzOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0ibXN0Yy1tb2RlIiBjbGFzcz0ibXN0Yy1zZWxlY3QiIG9uY2hhbmdlPSJtc3RjUmVzZXQoKSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InNhcyI+MiBTaWRlcyAmIEluY2x1ZGVkIEFuZ2xlIChTQVMpPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9ImFhcyI+MiBBbmdsZXMgJiBTaWRlIChBQVMvQVNBKTwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJyaWdodCI+UmlnaHQgVHJpYW5nbGUgKDIgU2lkZXMpPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJpbnAtYm94Ij4KICAgICAgICAgICAgICAgICAgICA8IS0tIER5bmFtaWMgLS0+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPSJtc3RjLWJ0biIgb25jbGljaz0ibXN0Y0NhbGMoKSI+RmluZCBNaXNzaW5nIFNpZGU8L2J1dHRvbj4KCiAgICAgICAgICAgICAgICA8ZGl2IGlkPSJtc3RjLXJlcyIgY2xhc3M9Im1zdGMtcmVzdWx0cyI+CiAgICAgICAgICAgICAgICAgICAgPHA+PGI+TWlzc2luZyBTaWRlICh4KTogPC9iPiA8c3BhbiBpZD0icmVzLXZhbCIgc3R5bGU9ImNvbG9yOiM4ZTQ0YWQ7IGZvbnQtc2l6ZToxOHB4OyI+LTwvc3Bhbj48L3A+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ibXN0Yy1zdGVwcyIKICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9ImZvbnQtc2l6ZToxM3B4OyBjb2xvcjojNTU1OyBib3JkZXItdG9wOjFweCBzb2xpZCAjZWVlOyBwYWRkaW5nLXRvcDoxMHB4OyI+PC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJtc3RjLXZpei1ib3giPgogICAgICAgICAgICAgICAgPHN2ZyBpZD0ibXN0Yy1zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIj4KICAgICAgICAgICAgICAgICAgICA8dGV4dCB4PSI1MCIgeT0iNTAiIHRleHQtYW5jaG9yPSJtaWRkbGUiIGZpbGw9IiNjY2MiPlZpc3VhbGl6YXRpb248L3RleHQ+CiAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgogICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgIGZ1bmN0aW9uIG1zdGNSZXNldCgpIHsKICAgICAgICAgICAgICAgIGNvbnN0IG1vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbXN0Yy1tb2RlJykudmFsdWU7CiAgICAgICAgICAgICAgICBjb25zdCBib3ggPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW5wLWJveCcpOwogICAgICAgICAgICAgICAgaWYgKG1vZGUgPT09ICdzYXMnKSB7CiAgICAgICAgICAgICAgICAgICAgYm94LmlubmVySFRNTCA9IGA8bGFiZWwgY2xhc3M9Im1zdGMtbGFiZWwiPlNpZGUgYTwvbGFiZWw+PGlucHV0IHR5cGU9Im51bWJlciIgaWQ9InYxIiBjbGFzcz0ibXN0Yy1pbnB1dCIgcGxhY2Vob2xkZXI9ImUuZy4gNSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJtc3RjLWxhYmVsIiBzdHlsZT0ibWFyZ2luLXRvcDoxMHB4Ij5TaWRlIGI8L2xhYmVsPjxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJ2MiIgY2xhc3M9Im1zdGMtaW5wdXQiIHBsYWNlaG9sZGVyPSJlLmcuIDciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0ibXN0Yy1sYWJlbCIgc3R5bGU9Im1hcmdpbi10b3A6MTBweCI+SW5jbHVkZWQgQW5nbGUgKGRlZyk8L2xhYmVsPjxpbnB1dCB0eXBlPSJudW1iZXIiIGlkPSJ2MyIgY2xhc3M9Im1zdGMtaW5wdXQiIHBsYWNlaG9sZGVyPSJlLmcuIDQ1Ij5gOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtb2RlID09PSAnYWFzJykgewogICAgICAgICAgICAgICAgICAgIGJveC5pbm5lckhUTUwgPSBgPGxhYmVsIGNsYXNzPSJtc3RjLWxhYmVsIj5BbmdsZSBBIChkZWcpPC9sYWJlbD48aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0idjEiIGNsYXNzPSJtc3RjLWlucHV0IiBwbGFjZWhvbGRlcj0iZS5nLiA2MCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJtc3RjLWxhYmVsIiBzdHlsZT0ibWFyZ2luLXRvcDoxMHB4Ij5BbmdsZSBCIChkZWcpPC9sYWJlbD48aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0idjIiIGNsYXNzPSJtc3RjLWlucHV0IiBwbGFjZWhvbGRlcj0iZS5nLiA2MCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPSJtc3RjLWxhYmVsIiBzdHlsZT0ibWFyZ2luLXRvcDoxMHB4Ij5TaWRlIGEgKG9wcCB0byBBKTwvbGFiZWw+PGlucHV0IHR5cGU9Im51bWJlciIgaWQ9InYzIiBjbGFzcz0ibXN0Yy1pbnB1dCIgcGxhY2Vob2xkZXI9ImUuZy4gNSI+YDsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgYm94LmlubmVySFRNTCA9IGA8bGFiZWwgY2xhc3M9Im1zdGMtbGFiZWwiPkxlZyBhPC9sYWJlbD48aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0idjEiIGNsYXNzPSJtc3RjLWlucHV0IiBwbGFjZWhvbGRlcj0iZS5nLiAzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9Im1zdGMtbGFiZWwiIHN0eWxlPSJtYXJnaW4tdG9wOjEwcHgiPkxlZyBiPC9sYWJlbD48aW5wdXQgdHlwZT0ibnVtYmVyIiBpZD0idjIiIGNsYXNzPSJtc3RjLWlucHV0IiBwbGFjZWhvbGRlcj0iZS5nLiA0Ij5gOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21zdGMtcmVzJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gbXN0Y0NhbGMoKSB7CiAgICAgICAgICAgICAgICBjb25zdCBtb2RlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21zdGMtbW9kZScpLnZhbHVlOwogICAgICAgICAgICAgICAgbGV0IHJlcyA9IDA7IGxldCBzdGVwcyA9ICIiOwogICAgICAgICAgICAgICAgbGV0IHB0cyA9IFtdOwoKICAgICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgdjEgPSBwYXJzZUZsb2F0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2MScpLnZhbHVlKTsKICAgICAgICAgICAgICAgICAgICBjb25zdCB2MiA9IHBhcnNlRmxvYXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3YyJykudmFsdWUpOwogICAgICAgICAgICAgICAgICAgIGNvbnN0IHYzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3YzJykgPyBwYXJzZUZsb2F0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2MycpLnZhbHVlKSA6IDA7CgogICAgICAgICAgICAgICAgICAgIGlmICghdjEgfHwgIXYyKSByZXR1cm47CgogICAgICAgICAgICAgICAgICAgIGlmIChtb2RlID09PSAnc2FzJykgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBMYXcgb2YgQ29zaW5lczogYyA9IHNxcnQoYV4yK2JeMiAtIDJhYiBjb3MoQykpCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdjMpIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmFkID0gdjMgKiBNYXRoLlBJIC8gMTgwOwogICAgICAgICAgICAgICAgICAgICAgICByZXMgPSBNYXRoLnNxcnQodjEgKiB2MSArIHYyICogdjIgLSAyICogdjEgKiB2MiAqIE1hdGguY29zKHJhZCkpOwogICAgICAgICAgICAgICAgICAgICAgICBzdGVwcyA9IGBVc2luZyBMYXcgb2YgQ29zaW5lczo8YnI+eMKyID0gYcKyICsgYsKyIC0gMmFiIGNvcyjOuCk8YnI+eCA9ICR7cmVzLnRvRml4ZWQoNCl9YDsKICAgICAgICAgICAgICAgICAgICAgICAgcHRzID0gW3sgeDogMCwgeTogMCB9LCB7IHg6IHYxLCB5OiAwIH0sIHsgeDogdjIgKiBNYXRoLmNvcyhyYWQpLCB5OiB2MiAqIE1hdGguc2luKHJhZCkgfV07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKG1vZGUgPT09ICdhYXMnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIEFuZ2xlIEE9djEsIEFuZ2xlIEI9djIsIFNpZGUgYT12My4gRmluZCBTaWRlIGI/IFR5cGljYWxseSB1c2VycyB3YW50IG1pc3Npbmcgc2lkZXMuCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGIgLyBzaW5CID0gYSAvIHNpbkEgPT4gYiA9IGEgKiBzaW5CIC8gc2luQQogICAgICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHRvb2wgYXNzdW1lcyBmaW5kaW5nIFNpZGUgYiAob3Bwb3NpdGUgQW5nbGUgQikuCiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdjMpIHJldHVybjsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYxICsgdjIgPj0gMTgwKSB7IGFsZXJ0KCJTdW0gb2YgYW5nbGVzIG11c3QgYmUgPCAxODAiKTsgcmV0dXJuOyB9CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhZEEgPSB2MSAqIE1hdGguUEkgLyAxODA7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhZEIgPSB2MiAqIE1hdGguUEkgLyAxODA7CiAgICAgICAgICAgICAgICAgICAgICAgIHJlcyA9IHYzICogTWF0aC5zaW4ocmFkQikgLyBNYXRoLnNpbihyYWRBKTsKICAgICAgICAgICAgICAgICAgICAgICAgc3RlcHMgPSBgVXNpbmcgTGF3IG9mIFNpbmVzOjxicj5iIC8gc2luKEIpID0gYSAvIHNpbihBKTxicj5iID0gYSDDlyBzaW4oQikgLyBzaW4oQSk8YnI+YiA9ICR7cmVzLnRvRml4ZWQoNCl9YDsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gQUFTIERyYXcgKGFwcHJveCkKICAgICAgICAgICAgICAgICAgICAgICAgLy8gQSBhdCBPcmlnaW4gY3JlYXRlcyBhbmdsZS4KICAgICAgICAgICAgICAgICAgICAgICAgLy8gTmVlZCBjb29yZGluYXRlcy4gQiBpcyBhdCAoYywgMCkuIEMgaXMgKHgseSkuCiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgc2lkZSBjLi4uIGMgLyBzaW5DID0gYSAvIHNpbkEuIEMgPSAxODAtQS1CLgogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByYWRDID0gKDE4MCAtIHYxIC0gdjIpICogTWF0aC5QSSAvIDE4MDsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYyA9IHYzICogTWF0aC5zaW4ocmFkQykgLyBNYXRoLnNpbihyYWRBKTsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYSA9IHYzOwogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBiID0gcmVzOwogICAgICAgICAgICAgICAgICAgICAgICAvLyBBPSgwLDApLCBCPShjLDApLiBDPwogICAgICAgICAgICAgICAgICAgICAgICAvLyBDIHggPSBiIGNvc0EsIHkgPSBiIHNpbkEKICAgICAgICAgICAgICAgICAgICAgICAgcHRzID0gW3sgeDogMCwgeTogMCB9LCB7IHg6IGMsIHk6IDAgfSwgeyB4OiBiICogTWF0aC5jb3MocmFkQSksIHk6IGIgKiBNYXRoLnNpbihyYWRBKSB9XTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFB5dGhhZzogYyA9IHNxcnQoYV4yK2JeMikKICAgICAgICAgICAgICAgICAgICAgICAgcmVzID0gTWF0aC5zcXJ0KHYxICogdjEgKyB2MiAqIHYyKTsKICAgICAgICAgICAgICAgICAgICAgICAgc3RlcHMgPSBgeCA9IOKImihhwrIgKyBiwrIpID0gJHtyZXMudG9GaXhlZCg0KX1gOwogICAgICAgICAgICAgICAgICAgICAgICBwdHMgPSBbeyB4OiAwLCB5OiAwIH0sIHsgeDogdjEsIHk6IDAgfSwgeyB4OiAwLCB5OiB2MiB9XTsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXMtdmFsJykuaW5uZXJUZXh0ID0gcmVzLnRvRml4ZWQoNCk7CiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21zdGMtc3RlcHMnKS5pbm5lckhUTUwgPSBzdGVwczsKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbXN0Yy1yZXMnKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsKICAgICAgICAgICAgICAgICAgICBtc3RjRHJhdyhwdHMpOwoKICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBmdW5jdGlvbiBtc3RjRHJhdyhwdHMpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHN2ZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtc3RjLXN2ZycpOwogICAgICAgICAgICAgICAgY29uc3QgeHMgPSBwdHMubWFwKHAgPT4gcC54KSwgeXMgPSBwdHMubWFwKHAgPT4gcC55KTsKICAgICAgICAgICAgICAgIGNvbnN0IG14ID0gTWF0aC5taW4oLi4ueHMpLCBNeCA9IE1hdGgubWF4KC4uLnhzKSwgbXkgPSBNYXRoLm1pbiguLi55cyksIE15ID0gTWF0aC5tYXgoLi4ueXMpOwogICAgICAgICAgICAgICAgY29uc3QgdyA9IE14IC0gbXgsIGggPSBNeSAtIG15OwogICAgICAgICAgICAgICAgY29uc3QgcGFkID0gTWF0aC5tYXgodywgaCkgKiAwLjI7CiAgICAgICAgICAgICAgICBjb25zdCBkID0gYE0gJHtwdHNbMF0ueH0gJHtwdHNbMF0ueX0gTCAke3B0c1sxXS54fSAke3B0c1sxXS55fSBMICR7cHRzWzJdLnh9ICR7cHRzWzJdLnl9IFpgOwoKICAgICAgICAgICAgICAgIC8vIEZsaXAgWSBpbXBsaWNpdGx5IG9yIGFzc3VtZSBjb29yZHMKICAgICAgICAgICAgICAgIHN2Zy5pbm5lckhUTUwgPSBgPHBhdGggZD0iJHtkfSIgZmlsbD0iI2Y0ZWNmNyIgc3Ryb2tlPSIjOGU0NGFkIiBzdHJva2Utd2lkdGg9IiR7TWF0aC5tYXgodywgaCkgLyA0MH0iIC8+YDsKICAgICAgICAgICAgICAgIHN2Zy5zZXRBdHRyaWJ1dGUoJ3ZpZXdCb3gnLCBgJHtteCAtIHBhZH0gJHtteSAtIHBhZH0gJHt3ICsgMiAqIHBhZH0gJHtoICsgMiAqIHBhZH1gKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbXN0Y1Jlc2V0KCk7CiAgICAgICAgPC9zY3JpcHQ+CiAgICA8L2Rpdj4KICAgIDwhLS0gTWlzc2luZyBTaWRlIG9mIFRyaWFuZ2xlIENhbGN1bGF0b3IgRW5kIC0tPgoKPC9ib2R5PgoKPC9odG1sPg==”; var htmlContent = “”; try { htmlContent = atob(b64); } catch (e) { console.error(“Base64 decode failed”, e); wrapper.innerHTML = ” Error loading calculator. “; return; } // Create Iframe var iframe = document.createElement(‘iframe’); iframe.style.width = “100%”; iframe.style.border = “none”; iframe.style.overflow = “hidden”; iframe.scrolling = “no”; iframe.style.minHeight = “400px”;…