{"id":3874,"date":"2026-08-28T14:56:12","date_gmt":"2026-08-28T14:56:12","guid":{"rendered":"https:\/\/www.mathros.net.ua\/ru\/?page_id=3874"},"modified":"2026-08-29T13:45:06","modified_gmt":"2026-08-29T13:45:06","slug":"kalkulyator-integralov","status":"publish","type":"page","link":"https:\/\/www.mathros.net.ua\/ru\/kalkulyator-integralov","title":{"rendered":"<center>\u041a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0418\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u043e\u0432: \u041f\u043e\u0448\u0430\u0433\u043e\u0432\u043e\u0435 \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u041e\u043d\u043b\u0430\u0439\u043d<\/center>"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3874\" class=\"elementor elementor-3874\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9a1c9fd e-flex e-con-boxed e-con e-parent\" data-id=\"9a1c9fd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-50abc6d elementor-widget elementor-widget-html\" data-id=\"50abc6d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2\r\n  id=\"integral-calculator-title\"\r\n  class=\"integral-calculator-title\"\r\n>\r\n  \u041d\u0435 \u0432\u043f\u0435\u0432\u043d\u0435\u043d\u0456, \u0447\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0437\u043d\u0430\u0439\u0448\u043b\u0438 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b? \u0412\u0432\u0435\u0434\u0456\u0442\u044c \u0432\u0438\u0440\u0430\u0437 \u0443 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0456 \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u043d\u044c\u0442\u0435 \u043f\u043e\u043a\u0440\u043e\u043a\u043e\u0432\u0435 \u0440\u043e\u0437\u0432\u2019\u044f\u0437\u0430\u043d\u043d\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0440\u0430\u0437!\r\n<\/h2>\r\n\r\n<style>\r\n.integral-calculator-title {\r\n  width: min(860px, calc(100% - 32px));\r\n  max-width: 860px;\r\n\r\n  margin: 10px auto 16px;\r\n  padding: 0;\r\n\r\n  font-family:\r\n    system-ui,\r\n    -apple-system,\r\n    \"Segoe UI\",\r\n    Roboto,\r\n    \"Helvetica Neue\",\r\n    Arial,\r\n    \"Noto Sans\",\r\n    \"Liberation Sans\",\r\n    sans-serif;\r\n\r\n  font-size:\r\n    clamp(\r\n      1.15rem,\r\n      1rem + .8vw,\r\n      1.5rem\r\n    );\r\n\r\n  font-weight: 650;\r\n  line-height: 1.35;\r\n  letter-spacing: .002em;\r\n\r\n  color: #334155;\r\n\r\n  text-align: center;\r\n\r\n  text-wrap: balance;\r\n\r\n  hyphens: auto;\r\n\r\n  word-break: normal;\r\n  overflow-wrap: anywhere;\r\n}\r\n\r\n\r\n@media (prefers-color-scheme: dark) {\r\n\r\n  .integral-calculator-title {\r\n    color: #cbd5e1;\r\n  }\r\n\r\n}\r\n\r\n\r\n@media (max-width: 768px) {\r\n\r\n  .integral-calculator-title {\r\n    width: calc(100% - 32px);\r\n\r\n    margin:\r\n      8px auto 14px;\r\n  }\r\n\r\n}\r\n\r\n\r\n@media (max-width: 480px) {\r\n\r\n  .integral-calculator-title {\r\n    width: calc(100% - 24px);\r\n\r\n    font-size:\r\n      clamp(\r\n        1.05rem,\r\n        .95rem + 1.5vw,\r\n        1.25rem\r\n      );\r\n\r\n    line-height: 1.4;\r\n\r\n    margin:\r\n      6px auto 12px;\r\n  }\r\n\r\n}\r\n<\/style>\r\n\r\n\r\n<script>\r\n(function () {\r\n\r\n  'use strict';\r\n\r\n\r\n  const translations = {\r\n\r\n    uk:\r\n      '\u041d\u0435 \u0432\u043f\u0435\u0432\u043d\u0435\u043d\u0456, \u0447\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0437\u043d\u0430\u0439\u0448\u043b\u0438 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b? \u0412\u0432\u0435\u0434\u0456\u0442\u044c \u0432\u0438\u0440\u0430\u0437 \u0443 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0456 \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u043d\u044c\u0442\u0435 \u043f\u043e\u043a\u0440\u043e\u043a\u043e\u0432\u0435 \u0440\u043e\u0437\u0432\u2019\u044f\u0437\u0430\u043d\u043d\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0440\u0430\u0437!',\r\n\r\n    en:\r\n      'Not sure you found the integral correctly? Enter the expression into the calculator and view the step-by-step solution now!',\r\n\r\n    ru:\r\n      '\u041d\u0435 \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0448\u043b\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u043b? \u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0432 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u044f\u043c\u043e \u0441\u0435\u0439\u0447\u0430\u0441!'\r\n\r\n  };\r\n\r\n\r\n  function detectLanguage() {\r\n\r\n    const htmlLang =\r\n      String(\r\n        document.documentElement.lang || ''\r\n      )\r\n        .trim()\r\n        .toLowerCase();\r\n\r\n\r\n    if (\r\n      htmlLang === 'en' ||\r\n      htmlLang.startsWith('en-') ||\r\n      htmlLang.startsWith('en_')\r\n    ) {\r\n      return 'en';\r\n    }\r\n\r\n\r\n    if (\r\n      htmlLang === 'ru' ||\r\n      htmlLang.startsWith('ru-') ||\r\n      htmlLang.startsWith('ru_')\r\n    ) {\r\n      return 'ru';\r\n    }\r\n\r\n\r\n    if (\r\n      htmlLang === 'uk' ||\r\n      htmlLang === 'ua' ||\r\n      htmlLang.startsWith('uk-') ||\r\n      htmlLang.startsWith('uk_') ||\r\n      htmlLang.startsWith('ua-') ||\r\n      htmlLang.startsWith('ua_')\r\n    ) {\r\n      return 'uk';\r\n    }\r\n\r\n\r\n    return 'uk';\r\n\r\n  }\r\n\r\n\r\n  function setCalculatorTitle() {\r\n\r\n    const title =\r\n      document.getElementById(\r\n        'integral-calculator-title'\r\n      );\r\n\r\n\r\n    if (!title) {\r\n      return;\r\n    }\r\n\r\n\r\n    const language =\r\n      detectLanguage();\r\n\r\n\r\n    title.textContent =\r\n      translations[language] ||\r\n      translations.uk;\r\n\r\n  }\r\n\r\n\r\n  if (\r\n    document.readyState === 'loading'\r\n  ) {\r\n\r\n    document.addEventListener(\r\n      'DOMContentLoaded',\r\n      setCalculatorTitle\r\n    );\r\n\r\n  } else {\r\n\r\n    setCalculatorTitle();\r\n\r\n  }\r\n\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-04cb0b2 elementor-widget elementor-widget-html\" data-id=\"04cb0b2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!-- =========================================================\n     INDEFINITE INTEGRAL CALCULATOR UI \u2014 v4 MATH-FIRST \/ WHITE FORMULAS\n     Languages: uk \/ en \/ ru\n     AJAX action: calculate_indefinite_integral_function\n\n     Language detection priority:\n     1) window.ICalcProLang = 'uk' | 'en' | 'ru'\n     2) data-lang on #integral-calculator-app\n     3) <html lang=\"...\">\n     4) URL first segment (\/uk\/, \/en\/, \/ru\/)\n     5) fallback: uk\n========================================================= -->\n\n<!-- MathJax v2. \u0417\u0430\u0432\u0430\u043d\u0442\u0430\u0436\u0443\u0454\u043c\u043e \u043b\u0438\u0448\u0435 \u044f\u043a\u0449\u043e MathJax \u0449\u0435 \u043d\u0435\u043c\u0430\u0454 \u043d\u0430 \u0441\u0442\u043e\u0440\u0456\u043d\u0446\u0456 -->\n<script>\n(function () {\n    if (!window.MathJax && !document.getElementById('mathjax-v2-integral-loader')) {\n        const script = document.createElement('script');\n        script.id = 'mathjax-v2-integral-loader';\n        script.type = 'text\/javascript';\n        script.async = true;\n        script.src = 'https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/mathjax\/2.7.7\/MathJax.js?config=TeX-MML-AM_CHTML';\n        document.head.appendChild(script);\n    }\n})();\n<\/script>\n\n<div id=\"integral-calculator-app\" class=\"integral-app\" data-lang=\"auto\">\n\n    <!-- ================= Calculator ================= -->\n    <section class=\"integral-calculator\" aria-labelledby=\"integral-input-label\">\n\n        <div class=\"integral-field\">\n            <label id=\"integral-input-label\" for=\"integral-function-latex\" data-i18n=\"inputLabel\">\n                \u041f\u0456\u0434\u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0456\u044f\n            <\/label>\n\n            <textarea\n                id=\"integral-function-latex\"\n                rows=\"3\"\n                placeholder=\"\\frac{2x}{x^2+1}\"\n                spellcheck=\"false\"\n                autocomplete=\"off\"\n                data-i18n-aria=\"inputAria\"\n                aria-label=\"\u041f\u043e\u043b\u0435 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044f \u043f\u0456\u0434\u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u043e\u0457 \u0444\u0443\u043d\u043a\u0446\u0456\u0457 \u0443 \u0444\u043e\u0440\u043c\u0430\u0442\u0456 LaTeX\"\n            ><\/textarea>\n\n            <div class=\"integral-field__hint\" data-i18n=\"inputHint\">\n                \u0412\u0432\u043e\u0434\u044c\u0442\u0435 LaTeX \u0431\u0435\u0437 \u0441\u0438\u043c\u0432\u043e\u043b\u0443 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0430 \u0442\u0430 dx.\n            <\/div>\n        <\/div>\n\n        <div class=\"integral-utility-row\">\n            <div class=\"integral-example-control\">\n                <label for=\"integral-example-select\" data-i18n=\"exampleLabel\">\u0428\u0432\u0438\u0434\u043a\u0438\u0439 \u043f\u0440\u0438\u043a\u043b\u0430\u0434<\/label>\n\n                <select id=\"integral-example-select\">\n                    <option value=\"\" data-i18n=\"examplePlaceholder\">\u041e\u0431\u0435\u0440\u0456\u0442\u044c \u043f\u0440\u0438\u043a\u043b\u0430\u0434<\/option>\n                    <option value=\"3x^2+2x-5\">3x\u00b2 + 2x \u2212 5<\/option>\n                    <option value=\"2x\\cos(x^2)\">2x cos(x\u00b2)<\/option>\n                    <option value=\"\\frac{2x}{x^2+1}\">2x\/(x\u00b2 + 1)<\/option>\n                    <option value=\"\\frac{1}{x^2+1}\">1\/(x\u00b2 + 1)<\/option>\n                    <option value=\"\\frac{1}{\\sqrt{4-x^2}}\">1\/\u221a(4 \u2212 x\u00b2)<\/option>\n                    <option value=\"x^2e^x\">x\u00b2e^x<\/option>\n                    <option value=\"e^{2x}\\sin(3x)\">e^(2x) sin(3x)<\/option>\n                    <option value=\"\\sin^2(x)\\cos^2(x)\">sin\u00b2(x) cos\u00b2(x)<\/option>\n                    <option value=\"\\cos(5x)\\cos(3x)\">cos(5x) cos(3x)<\/option>\n                    <option value=\"\\frac{5x+1}{(x-1)(x+2)}\">(5x+1)\/((x\u22121)(x+2))<\/option>\n                    <option value=\"\\frac{1}{x^{\\frac{1}{2}}+x^{\\frac{1}{3}}}\">1\/(x^(1\/2)+x^(1\/3))<\/option>\n                    <option value=\"\\frac{1}{\\sqrt{x^{\\frac{1}{2}}+x^{\\frac{1}{3}}}}\">1\/\u221a(x^(1\/2)+x^(1\/3))<\/option>\n                    <option value=\"\\frac{1}{3+\\sin(x)+\\cos(x)}\">1\/(3+sin(x)+cos(x))<\/option>\n                    <option value=\"\\sqrt{9-x^2}\">\u221a(9 \u2212 x\u00b2)<\/option>\n                <\/select>\n            <\/div>\n\n            <button\n                id=\"integral-clear-button\"\n                type=\"button\"\n                class=\"integral-text-button\"\n                data-i18n=\"clearButton\"\n            >\n                \u041e\u0447\u0438\u0441\u0442\u0438\u0442\u0438\n            <\/button>\n        <\/div>\n\n        <!-- Preview \u0437\u0430\u0432\u0436\u0434\u0438 \u0443\u0432\u0456\u043c\u043a\u043d\u0435\u043d\u0438\u0439 -->\n        <section class=\"integral-preview\" aria-labelledby=\"integral-preview-title\">\n            <div id=\"integral-preview-title\" class=\"integral-section-label\" data-i18n=\"previewTitle\">\n                \u041f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0456\u0439 \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434\n            <\/div>\n\n            <div id=\"integral-preview-formula\" class=\"integral-preview__formula\" aria-live=\"polite\"><\/div>\n        <\/section>\n\n        <button id=\"integral-generate-button\" type=\"button\" class=\"integral-primary-button\">\n            <span data-i18n=\"calculateButton\">\u041e\u0431\u0447\u0438\u0441\u043b\u0438\u0442\u0438 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b<\/span>\n        <\/button>\n\n        <div class=\"integral-shortcut\">\n            <span data-i18n=\"shortcutLabel\">\u0428\u0432\u0438\u0434\u043a\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a:<\/span>\n            <kbd>Ctrl<\/kbd>\/<kbd>\u2318<\/kbd> + <kbd>Enter<\/kbd>\n        <\/div>\n\n        <details class=\"integral-help\">\n            <summary data-i18n=\"helpTitle\">\u041f\u0456\u0434\u043a\u0430\u0437\u043a\u0438 \u0449\u043e\u0434\u043e \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044f<\/summary>\n\n            <div class=\"integral-help__content\">\n                <p data-i18n=\"helpIntro\">\n                    \u0412\u0432\u043e\u0434\u044c\u0442\u0435 \u043b\u0438\u0448\u0435 \u043f\u0456\u0434\u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u0443 \u0444\u0443\u043d\u043a\u0446\u0456\u044e. \u0421\u0438\u043c\u0432\u043e\u043b \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0430, dx \u0456 \u0441\u0442\u0430\u043b\u0443 C \u0434\u043e\u0434\u0430\u0432\u0430\u0442\u0438 \u043d\u0435 \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e.\n                <\/p>\n\n                <div class=\"integral-help-grid\">\n                    <div class=\"integral-help-item\">\n                        <strong data-i18n=\"helpPowers\">\u0421\u0442\u0435\u043f\u0435\u043d\u0456 \u0442\u0430 \u043c\u043d\u043e\u0433\u043e\u0447\u043b\u0435\u043d\u0438<\/strong>\n                        <span>\\(3x^2+2x-5\\)<\/span>\n                        <span>\\((2x+1)^5\\)<\/span>\n                    <\/div>\n\n                    <div class=\"integral-help-item\">\n                        <strong data-i18n=\"helpSubstitution\">\u041f\u0456\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430<\/strong>\n                        <span>\\(2x\\cos(x^2)\\)<\/span>\n                        <span>\\(\\frac{2x}{x^2+1}\\)<\/span>\n                    <\/div>\n\n                    <div class=\"integral-help-item\">\n                        <strong data-i18n=\"helpParts\">\u0427\u0430\u0441\u0442\u0438\u043d\u0430\u043c\u0438<\/strong>\n                        <span>\\(x^2e^x\\)<\/span>\n                        <span>\\(x\\sin(x)\\)<\/span>\n                    <\/div>\n\n                    <div class=\"integral-help-item\">\n                        <strong data-i18n=\"helpTrig\">\u0422\u0440\u0438\u0433\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0456\u044f<\/strong>\n                        <span>\\(\\sin^2(x)\\cos^2(x)\\)<\/span>\n                        <span>\\(\\cos(5x)\\cos(3x)\\)<\/span>\n                    <\/div>\n\n                    <div class=\"integral-help-item\">\n                        <strong data-i18n=\"helpFractions\">\u0420\u0430\u0446\u0456\u043e\u043d\u0430\u043b\u044c\u043d\u0456 \u0434\u0440\u043e\u0431\u0438<\/strong>\n                        <span>\\(\\frac{5x+1}{(x-1)(x+2)}\\)<\/span>\n                    <\/div>\n\n                    <div class=\"integral-help-item\">\n                        <strong data-i18n=\"helpRadicals\">\u0420\u0430\u0434\u0438\u043a\u0430\u043b\u0438<\/strong>\n                        <span>\\(\\sqrt{9-x^2}\\)<\/span>\n                        <span>\\(\\frac{1}{x^{1\/2}+x^{1\/3}}\\)<\/span>\n                        <span>\\(\\frac{1}{\\sqrt{x^{1\/2}+x^{1\/3}}}\\)<\/span>\n                    <\/div>\n                <\/div>\n\n                <p class=\"integral-help-note\" data-i18n=\"helpNote\">\n                    \u0417\u043c\u0456\u043d\u043d\u0430 \u043f\u043e\u0432\u0438\u043d\u043d\u0430 \u0431\u0443\u0442\u0438 x. \u041c\u043d\u043e\u0436\u0435\u043d\u043d\u044f \u043c\u043e\u0436\u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u0443\u0432\u0430\u0442\u0438 \u044f\u043a 2\\cdot x \u0430\u0431\u043e \u0441\u043a\u043e\u0440\u043e\u0447\u0435\u043d\u043e: 2x, x(x+1).\n                <\/p>\n            <\/div>\n        <\/details>\n\n    <\/section>\n\n    <!-- ================= Error ================= -->\n    <div id=\"integral-error\" class=\"integral-error\" role=\"alert\" aria-live=\"polite\"><\/div>\n\n    <!-- ================= Loading ================= -->\n    <div id=\"integral-loading\" class=\"integral-loading\" hidden aria-live=\"polite\">\n        <div class=\"integral-loader-circle\" aria-hidden=\"true\"><\/div>\n        <div>\n            <strong data-i18n=\"loadingTitle\">\u0410\u043d\u0430\u043b\u0456\u0437\u0443\u0454\u043c\u043e \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b<\/strong>\n            <span data-i18n=\"loadingText\">\u0412\u0438\u0437\u043d\u0430\u0447\u0430\u0454\u043c\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432\u0438\u0440\u0430\u0437\u0443 \u0442\u0430 \u043c\u0435\u0442\u043e\u0434 \u0456\u043d\u0442\u0435\u0433\u0440\u0443\u0432\u0430\u043d\u043d\u044f.<\/span>\n        <\/div>\n    <\/div>\n\n    <!-- ================= Solution ================= -->\n    <section\n        id=\"integral-solution-container\"\n        class=\"integral-solution-container\"\n        hidden\n        aria-live=\"polite\"\n    ><\/section>\n\n<\/div>\n\n<style>\n\/* =========================================================\n   Scoped design tokens\n========================================================= *\/\n.integral-app {\n    --ii-bg: #ffffff;\n    --ii-soft: #f8fbfd;\n    --ii-soft-2: #eef5f8;\n    --ii-border: #dbe6ed;\n    --ii-border-strong: #bfd0da;\n    --ii-text: #0f1728;\n    --ii-muted: #607487;\n    --ii-accent: #0B638B;\n    --ii-accent-hover: #095676;\n    --ii-accent-soft: rgba(11, 99, 139, .10);\n    --ii-danger: #b9382f;\n    --ii-danger-soft: rgba(185, 56, 47, .10);\n    --ii-radius: 16px;\n    --ii-radius-small: 10px;\n    --ii-font: system-ui, -apple-system, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif;\n\n    width: min(100%, 860px);\n    margin: 20px auto;\n    color: var(--ii-text);\n    font-family: var(--ii-font);\n}\n\n.integral-app *,\n.integral-app *::before,\n.integral-app *::after {\n    box-sizing: border-box;\n}\n\n@media (prefers-color-scheme: dark) {\n    .integral-app {\n        --ii-bg: #15222d;\n        --ii-soft: #182833;\n        --ii-soft-2: #1c2d39;\n        --ii-border: #273947;\n        --ii-border-strong: #355062;\n        --ii-text: #e8f1f7;\n        --ii-muted: #9cb0c0;\n        --ii-accent: #58b6e4;\n        --ii-accent-hover: #45a7d9;\n        --ii-accent-soft: rgba(88, 182, 228, .14);\n        --ii-danger: #ff8b86;\n        --ii-danger-soft: rgba(255, 139, 134, .14);\n    }\n}\n\n\/* =========================================================\n   Calculator shell\n========================================================= *\/\n.integral-calculator {\n    padding: 22px;\n    border: 1px solid var(--ii-border);\n    border-radius: var(--ii-radius);\n    background: var(--ii-bg);\n}\n\n.integral-field label,\n.integral-example-control label {\n    display: block;\n    margin: 0 0 7px;\n    color: var(--ii-text);\n    font-size: .95rem;\n    font-weight: 760;\n}\n\n.integral-field textarea,\n.integral-example-control select {\n    width: 100%;\n    border: 1px solid var(--ii-border);\n    border-radius: 11px;\n    outline: none;\n    background: var(--ii-soft);\n    color: var(--ii-text);\n    transition: border-color .16s ease, background-color .16s ease;\n}\n\n.integral-field textarea {\n    min-height: 112px;\n    padding: 13px 14px;\n    resize: vertical;\n    font: 600 16px\/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, \"Liberation Mono\", monospace;\n}\n\n.integral-example-control select {\n    height: 43px;\n    padding: 0 11px;\n    font: 650 .9rem\/1 var(--ii-font);\n}\n\n.integral-field textarea:hover,\n.integral-example-control select:hover {\n    border-color: var(--ii-border-strong);\n}\n\n.integral-field textarea:focus-visible,\n.integral-example-control select:focus-visible,\n.integral-text-button:focus-visible,\n.integral-primary-button:focus-visible,\n.integral-solution-toolbar button:focus-visible,\n.integral-copy-button:focus-visible {\n    border-color: var(--ii-accent);\n    background: var(--ii-soft);\n}\n\n.integral-field textarea.integral-input-error {\n    border-color: var(--ii-danger);\n}\n\n.integral-field__hint {\n    margin-top: 7px;\n    color: var(--ii-muted);\n    font-size: .86rem;\n    line-height: 1.45;\n}\n\n.integral-utility-row {\n    display: grid;\n    grid-template-columns: minmax(0, 1fr) auto;\n    gap: 12px;\n    align-items: end;\n    margin-top: 15px;\n}\n\n.integral-example-control {\n    min-width: 0;\n}\n\n.integral-text-button {\n    height: 43px;\n    padding: 0 4px;\n    border: 1px solid transparent;\n    border-radius: 8px;\n    background: transparent;\n    color: var(--ii-accent);\n    font: 750 .88rem\/1 var(--ii-font);\n    cursor: pointer;\n}\n\n.integral-text-button:hover {\n    background: var(--ii-accent-soft);\n}\n\n\/* =========================================================\n   Preview\n========================================================= *\/\n.integral-preview {\n    margin-top: 17px;\n    padding-top: 15px;\n    border-top: 1px solid var(--ii-border);\n}\n\n.integral-section-label {\n    margin-bottom: 8px;\n    color: var(--ii-muted);\n    font-size: .78rem;\n    font-weight: 800;\n    letter-spacing: .035em;\n    text-transform: uppercase;\n}\n\n.integral-preview__formula {\n    min-height: 66px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    padding: 8px 10px;\n    overflow-x: auto;\n    overflow-y: hidden;\n    color: var(--ii-text);\n    white-space: nowrap;\n    -webkit-overflow-scrolling: touch;\n}\n\n\/* =========================================================\n   Main action\n========================================================= *\/\n.integral-primary-button {\n    width: 100%;\n    min-height: 48px;\n    margin-top: 13px;\n    padding: 0 18px;\n    border: 1px solid transparent;\n    border-radius: 11px;\n    background: var(--ii-accent);\n    color: #fff;\n    font: 800 .96rem\/1.2 var(--ii-font);\n    cursor: pointer;\n    transition: background-color .16s ease, border-color .16s ease;\n}\n\n.integral-primary-button:hover {\n    background: var(--ii-accent-hover);\n    border-color: var(--ii-accent-hover);\n}\n\n\n.integral-primary-button:disabled {\n    opacity: .6;\n    cursor: not-allowed;\n}\n\n.integral-shortcut {\n    margin-top: 8px;\n    text-align: center;\n    color: var(--ii-muted);\n    font-size: .76rem;\n}\n\n.integral-shortcut kbd {\n    display: inline-block;\n    padding: 2px 5px;\n    border: 1px solid var(--ii-border);\n    border-bottom-width: 2px;\n    border-radius: 5px;\n    background: var(--ii-soft);\n    color: var(--ii-text);\n    font: 650 .72rem\/1.2 var(--ii-font);\n}\n\n\/* =========================================================\n   Help\n========================================================= *\/\n.integral-help {\n    margin-top: 14px;\n    border-top: 1px solid var(--ii-border);\n    padding-top: 13px;\n}\n\n.integral-help > summary {\n    cursor: pointer;\n    list-style: none;\n    color: var(--ii-accent);\n    font-size: .87rem;\n    font-weight: 760;\n}\n\n.integral-help > summary::-webkit-details-marker {\n    display: none;\n}\n\n.integral-help > summary::after {\n    content: \" +\";\n}\n\n.integral-help[open] > summary::after {\n    content: \" \u2212\";\n}\n\n.integral-help__content {\n    margin-top: 13px;\n    color: var(--ii-text);\n}\n\n.integral-help__content > p {\n    margin: 0 0 12px;\n    line-height: 1.55;\n}\n\n.integral-help-grid {\n    display: grid;\n    grid-template-columns: repeat(3, minmax(0, 1fr));\n    gap: 8px;\n}\n\n.integral-help-item {\n    display: grid;\n    gap: 5px;\n    padding: 10px 11px;\n    border: 1px solid var(--ii-border);\n    border-radius: 9px;\n    background: var(--ii-soft);\n    font-size: .86rem;\n}\n\n.integral-help-item strong {\n    color: var(--ii-accent);\n    font-weight: 780;\n}\n\n.integral-help-note {\n    margin-top: 12px !important;\n    color: var(--ii-muted);\n    font-size: .86rem;\n}\n\n\/* =========================================================\n   Error \/ loading\n========================================================= *\/\n.integral-error {\n    display: none;\n    margin-top: 13px;\n    padding: 12px 14px;\n    border-left: 3px solid var(--ii-danger);\n    border-radius: 8px;\n    background: var(--ii-danger-soft);\n    color: var(--ii-danger);\n    font-size: .9rem;\n    font-weight: 650;\n    line-height: 1.5;\n}\n\n.integral-error.is-visible {\n    display: block;\n}\n\n.integral-loading {\n    display: flex;\n    align-items: center;\n    gap: 12px;\n    margin: 17px 0;\n    padding: 13px 2px;\n    color: var(--ii-text);\n}\n\n.integral-loading[hidden] {\n    display: none !important;\n}\n\n.integral-loading > div:last-child {\n    display: grid;\n    gap: 2px;\n}\n\n.integral-loading strong {\n    font-size: .92rem;\n}\n\n.integral-loading span {\n    color: var(--ii-muted);\n    font-size: .84rem;\n}\n\n.integral-loader-circle {\n    flex: 0 0 28px;\n    width: 28px;\n    height: 28px;\n    border: 3px solid var(--ii-border);\n    border-color: var(--ii-accent);\n    border-radius: 50%;\n}\n\n\n\/* =========================================================\n   Solution \u2014 mathematical document, not dashboard\n========================================================= *\/\n.integral-solution-container {\n    margin-top: 22px;\n    color: var(--ii-text);\n}\n\n.integral-solution-container[hidden] {\n    display: none !important;\n}\n\n.integral-answer-card {\n    padding: 18px 19px;\n    border: 1px solid var(--ii-border);\n    border-radius: 13px;\n    background: var(--ii-bg);\n}\n\n.integral-answer-card__top {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 12px;\n}\n\n.integral-answer-card__title {\n    margin: 0;\n    color: var(--ii-text);\n    font-size: 1.05rem;\n    font-weight: 820;\n}\n\n.integral-copy-button {\n    flex: 0 0 auto;\n    padding: 7px 9px;\n    border: 0;\n    border-radius: 8px;\n    background: transparent;\n    color: var(--ii-accent);\n    font: 720 .78rem\/1 var(--ii-font);\n    cursor: pointer;\n}\n\n.integral-copy-button:hover {\n    background: var(--ii-accent-soft);\n}\n\n.integral-answer-card__formula {\n    margin-top: 9px;\n    padding: 8px 0;\n    overflow-x: auto;\n    overflow-y: hidden;\n    white-space: nowrap;\n    -webkit-overflow-scrolling: touch;\n}\n\n.integral-answer-note {\n    margin-top: 7px;\n    color: var(--ii-muted);\n    font-size: .82rem;\n    line-height: 1.45;\n}\n\n.integral-solution-toolbar {\n    display: flex;\n    align-items: center;\n    justify-content: space-between;\n    gap: 12px;\n    margin: 26px 0 4px;\n    padding-bottom: 10px;\n    border-bottom: 1px solid var(--ii-border-strong);\n}\n\n.integral-solution-toolbar h2 {\n    margin: 0;\n    color: var(--ii-text);\n    font-size: 1.18rem;\n    font-weight: 840;\n}\n\n.integral-solution-toolbar__actions {\n    display: flex;\n    gap: 6px;\n}\n\n.integral-solution-toolbar button {\n    padding: 5px 7px;\n    border: 1px solid transparent;\n    border-radius: 7px;\n    background: transparent;\n    color: var(--ii-accent);\n    font: 700 .76rem\/1 var(--ii-font);\n    cursor: pointer;\n}\n\n.integral-solution-toolbar button:hover {\n    background: var(--ii-accent-soft);\n}\n\n.integral-steps {\n    display: grid;\n}\n\n.integral-step {\n    border-bottom: 1px solid var(--ii-border);\n}\n\n.integral-step:last-child {\n    border-bottom: 0;\n}\n\n.integral-step__summary {\n    display: grid;\n    grid-template-columns: auto minmax(0, 1fr) 22px;\n    gap: 5px;\n    align-items: center;\n    padding: 15px 2px;\n    cursor: pointer;\n    list-style: none;\n}\n\n.integral-step__summary::-webkit-details-marker {\n    display: none;\n}\n\n\/* \u041f\u0440\u043e\u0441\u0442\u0438\u0439 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u0438\u0439 \u043d\u043e\u043c\u0435\u0440 \u043a\u0440\u043e\u043a\u0443 \u0431\u0435\u0437 \u0431\u0435\u0439\u0434\u0436\u0430 \u0430\u0431\u043e \u043a\u043e\u043b\u0430. *\/\n.integral-step__number {\n    display: block;\n    width: auto;\n    height: auto;\n    color: var(--ii-text);\n    font-size: .96rem;\n    font-weight: 790;\n    line-height: 1.35;\n    font-variant-numeric: tabular-nums;\n    text-align: left;\n}\n\n.integral-step__title {\n    min-width: 0;\n    color: var(--ii-text);\n    font-size: .96rem;\n    font-weight: 790;\n    line-height: 1.35;\n}\n\n.integral-step__chevron {\n    position: relative;\n    width: 22px;\n    height: 22px;\n}\n\n.integral-step__chevron::before {\n    content: \"\";\n    position: absolute;\n    top: 6px;\n    left: 7px;\n    width: 7px;\n    height: 7px;\n    border-right: 1.5px solid var(--ii-muted);\n    border-bottom: 1.5px solid var(--ii-muted);\n    transform: rotate(45deg);\n}\n\n.integral-step[open] .integral-step__chevron::before {\n    top: 8px;\n    transform: rotate(225deg);\n}\n\n.integral-step__content {\n    padding: 0 0 18px;\n}\n\n.integral-step__formula {\n    max-width: 100%;\n    min-width: 0;\n    margin: 2px 0 4px;\n    padding: 12px 0;\n    border: 0;\n    border-radius: 0;\n    background: var(--ii-bg);\n    overflow-x: auto;\n    overflow-y: hidden;\n    white-space: nowrap;\n    -webkit-overflow-scrolling: touch;\n    scrollbar-width: thin;\n    scrollbar-color: var(--ii-border-strong) transparent;\n}\n\n.integral-step__formula::-webkit-scrollbar {\n    height: 6px;\n}\n\n.integral-step__formula::-webkit-scrollbar-thumb {\n    border-radius: 999px;\n    background: var(--ii-border-strong);\n}\n\n\/* MathJax spacing *\/\n.integral-preview__formula .MathJax_Display,\n.integral-answer-card__formula .MathJax_Display,\n.integral-step__formula .MathJax_Display {\n    margin: .28em 0 !important;\n}\n\n\/* Server-side error badge compatibility *\/\n.integral-solution-container .cramer-badge--error,\n.integral-solution-container p.cramer-badge.cramer-badge--error {\n    display: block !important;\n    width: 100%;\n    margin: 10px 0;\n    padding: 11px 13px;\n    border-left: 3px solid var(--ii-danger);\n    border-radius: 8px;\n    background: var(--ii-danger-soft);\n    color: var(--ii-danger);\n    font-weight: 700;\n    white-space: normal !important;\n    overflow-wrap: anywhere;\n}\n\n\/* =========================================================\n   Responsive\n========================================================= *\/\n@media (max-width: 900px) {\n    .integral-app {\n        width: calc(100% - 28px);\n    }\n}\n\n@media (max-width: 700px) {\n    .integral-calculator {\n        padding: 18px;\n    }\n\n    .integral-help-grid {\n        grid-template-columns: repeat(2, minmax(0, 1fr));\n    }\n}\n\n@media (max-width: 520px) {\n    .integral-app {\n        width: calc(100% - 20px);\n        margin: 12px auto;\n    }\n\n    .integral-calculator {\n        padding: 14px;\n        border-radius: 13px;\n    }\n\n    .integral-utility-row {\n        grid-template-columns: 1fr;\n        gap: 7px;\n    }\n\n    .integral-text-button {\n        justify-self: start;\n        padding-left: 0;\n    }\n\n    .integral-help-grid {\n        grid-template-columns: 1fr;\n    }\n\n    .integral-answer-card {\n        padding: 15px 13px;\n    }\n\n    .integral-answer-card__top,\n    .integral-solution-toolbar {\n        align-items: flex-start;\n        flex-direction: column;\n    }\n\n    .integral-copy-button {\n        width: 100%;\n    }\n\n    .integral-solution-toolbar__actions {\n        width: 100%;\n    }\n\n    .integral-solution-toolbar button {\n        flex: 1 1 0;\n    }\n\n    .integral-step__summary {\n        grid-template-columns: auto minmax(0, 1fr) 20px;\n        gap: 4px;\n        padding: 13px 0;\n    }\n\n    .integral-step__number {\n        width: auto;\n        height: auto;\n        font-size: .91rem;\n    }\n\n    .integral-step__title {\n        font-size: .91rem;\n    }\n\n    .integral-step__content {\n        padding: 0 0 15px;\n    }\n\n    .integral-step__formula {\n        margin: 1px 0 3px;\n        padding: 10px 0;\n        font-size: .94rem;\n    }\n}\n\n@media (prefers-reduced-motion: reduce) {\n    .integral-app *,\n    .integral-app *::before,\n    .integral-app *::after {\n        animation-duration: .01ms !important;\n        animation-iteration-count: 1 !important;\n        transition-duration: .01ms !important;\n        scroll-behavior: auto !important;\n    }\n}\n<\/style>\n\n<script>\n(function () {\n    'use strict';\n\n    \/* =====================================================\n       Configuration\n    ===================================================== *\/\n    const APP = document.getElementById('integral-calculator-app');\n    if (!APP) return;\n\n    const AJAX_URL = (typeof window !== 'undefined' && window.ajaxurl)\n        ? window.ajaxurl\n        : '\/wp-admin\/admin-ajax.php';\n\n    const AJAX_ACTION = 'calculate_indefinite_integral_function';\n\n    let activeController = null;\n    let lastResultLatex = '';\n\n    \/* =====================================================\n       i18n\n    ===================================================== *\/\n    const I18N = {\n        uk: {\n            inputLabel: '\u041f\u0456\u0434\u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0456\u044f',\n            inputAria: '\u041f\u043e\u043b\u0435 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044f \u043f\u0456\u0434\u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u043e\u0457 \u0444\u0443\u043d\u043a\u0446\u0456\u0457 \u0443 \u0444\u043e\u0440\u043c\u0430\u0442\u0456 LaTeX',\n            inputHint: '\u0412\u0432\u043e\u0434\u044c\u0442\u0435 LaTeX \u0431\u0435\u0437 \u0441\u0438\u043c\u0432\u043e\u043b\u0443 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0430 \u0442\u0430 dx.',\n            exampleLabel: '\u0428\u0432\u0438\u0434\u043a\u0438\u0439 \u043f\u0440\u0438\u043a\u043b\u0430\u0434',\n            examplePlaceholder: '\u041e\u0431\u0435\u0440\u0456\u0442\u044c \u043f\u0440\u0438\u043a\u043b\u0430\u0434',\n            clearButton: '\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u0438',\n            previewTitle: '\u041f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0456\u0439 \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434',\n            calculateButton: '\u041e\u0431\u0447\u0438\u0441\u043b\u0438\u0442\u0438 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b',\n            calculatingButton: '\u041e\u0431\u0447\u0438\u0441\u043b\u044e\u0454\u043c\u043e \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u2026',\n            shortcutLabel: '\u0428\u0432\u0438\u0434\u043a\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a:',\n            helpTitle: '\u041f\u0456\u0434\u043a\u0430\u0437\u043a\u0438 \u0449\u043e\u0434\u043e \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044f',\n            helpIntro: '\u0412\u0432\u043e\u0434\u044c\u0442\u0435 \u043b\u0438\u0448\u0435 \u043f\u0456\u0434\u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u0443 \u0444\u0443\u043d\u043a\u0446\u0456\u044e. \u0421\u0438\u043c\u0432\u043e\u043b \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0430, dx \u0456 \u0441\u0442\u0430\u043b\u0443 C \u0434\u043e\u0434\u0430\u0432\u0430\u0442\u0438 \u043d\u0435 \u043f\u043e\u0442\u0440\u0456\u0431\u043d\u043e.',\n            helpPowers: '\u0421\u0442\u0435\u043f\u0435\u043d\u0456 \u0442\u0430 \u043c\u043d\u043e\u0433\u043e\u0447\u043b\u0435\u043d\u0438',\n            helpSubstitution: '\u041f\u0456\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430',\n            helpParts: '\u0427\u0430\u0441\u0442\u0438\u043d\u0430\u043c\u0438',\n            helpTrig: '\u0422\u0440\u0438\u0433\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0456\u044f',\n            helpFractions: '\u0420\u0430\u0446\u0456\u043e\u043d\u0430\u043b\u044c\u043d\u0456 \u0434\u0440\u043e\u0431\u0438',\n            helpRadicals: '\u0420\u0430\u0434\u0438\u043a\u0430\u043b\u0438',\n            helpNote: '\u0417\u043c\u0456\u043d\u043d\u0430 \u043f\u043e\u0432\u0438\u043d\u043d\u0430 \u0431\u0443\u0442\u0438 \\(x\\). \u041c\u043d\u043e\u0436\u0435\u043d\u043d\u044f \u043c\u043e\u0436\u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u0443\u0432\u0430\u0442\u0438 \u044f\u043a \\(2\\cdot x\\) \u0430\u0431\u043e \u0441\u043a\u043e\u0440\u043e\u0447\u0435\u043d\u043e: \\(2x\\), \\(x(x+1)\\).',\n            loadingTitle: '\u0410\u043d\u0430\u043b\u0456\u0437\u0443\u0454\u043c\u043e \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b',\n            loadingText: '\u0412\u0438\u0437\u043d\u0430\u0447\u0430\u0454\u043c\u043e \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432\u0438\u0440\u0430\u0437\u0443 \u0442\u0430 \u043c\u0435\u0442\u043e\u0434 \u0456\u043d\u0442\u0435\u0433\u0440\u0443\u0432\u0430\u043d\u043d\u044f.',\n            answerTitle: '\u0412\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u044c',\n            copyLatex: '\u041a\u043e\u043f\u0456\u044e\u0432\u0430\u0442\u0438 LaTeX',\n            copied: '\u0421\u043a\u043e\u043f\u0456\u0439\u043e\u0432\u0430\u043d\u043e',\n            constantNote: 'C \u2014 \u0434\u043e\u0432\u0456\u043b\u044c\u043d\u0430 \u0441\u0442\u0430\u043b\u0430 \u0456\u043d\u0442\u0435\u0433\u0440\u0443\u0432\u0430\u043d\u043d\u044f.',\n            solutionTitle: '\u0420\u043e\u0437\u0432\u2019\u044f\u0437\u0430\u043d\u043d\u044f',\n            expandAll: '\u0420\u043e\u0437\u0433\u043e\u0440\u043d\u0443\u0442\u0438 \u0432\u0441\u0456',\n            collapseAll: '\u0417\u0433\u043e\u0440\u043d\u0443\u0442\u0438 \u0432\u0441\u0456',\n            step: '\u041a\u0440\u043e\u043a',\n            errorGeneric: '\u0421\u0442\u0430\u043b\u0430\u0441\u044f \u043f\u043e\u043c\u0438\u043b\u043a\u0430.',\n            errorServerResponse: '\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u043e\u0442\u0440\u0438\u043c\u0430\u0442\u0438 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u044c \u0441\u0435\u0440\u0432\u0435\u0440\u0430.',\n            errorCalculate: '\u041d\u0435 \u0432\u0434\u0430\u043b\u043e\u0441\u044f \u043e\u0431\u0447\u0438\u0441\u043b\u0438\u0442\u0438 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b.',\n            errorNoPayload: '\u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043e\u0431\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044f.',\n            errorNetwork: '\u041f\u043e\u043c\u0438\u043b\u043a\u0430 \u043c\u0435\u0440\u0435\u0436\u0456.',\n            errorEmpty: '\u0411\u0443\u0434\u044c \u043b\u0430\u0441\u043a\u0430, \u0432\u0432\u0435\u0434\u0456\u0442\u044c \u043f\u0456\u0434\u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u0443 \u0444\u0443\u043d\u043a\u0446\u0456\u044e \u0443 \u0444\u043e\u0440\u043c\u0430\u0442\u0456 LaTeX.'\n        },\n        en: {\n            inputLabel: 'Integrand',\n            inputAria: 'Input field for the integrand in LaTeX format',\n            inputHint: 'Enter LaTeX without the integral sign or dx.',\n            exampleLabel: 'Quick example',\n            examplePlaceholder: 'Choose an example',\n            clearButton: 'Clear',\n            previewTitle: 'Preview',\n            calculateButton: 'Calculate Integral',\n            calculatingButton: 'Calculating\u2026',\n            shortcutLabel: 'Shortcut:',\n            helpTitle: 'Input tips',\n            helpIntro: 'Enter only the integrand. Do not include the integral sign, dx, or the constant C.',\n            helpPowers: 'Powers and polynomials',\n            helpSubstitution: 'Substitution',\n            helpParts: 'Integration by parts',\n            helpTrig: 'Trigonometry',\n            helpFractions: 'Rational functions',\n            helpRadicals: 'Radicals',\n            helpNote: 'The variable must be \\(x\\). Multiplication may be written as \\(2\\cdot x\\) or in abbreviated form: \\(2x\\), \\(x(x+1)\\).',\n            loadingTitle: 'Analyzing the integral',\n            loadingText: 'Identifying the expression structure and integration method.',\n            answerTitle: 'Answer',\n            copyLatex: 'Copy LaTeX',\n            copied: 'Copied',\n            constantNote: 'C is an arbitrary constant of integration.',\n            solutionTitle: 'Solution',\n            expandAll: 'Expand all',\n            collapseAll: 'Collapse all',\n            step: 'Step',\n            errorGeneric: 'An error occurred.',\n            errorServerResponse: 'Could not get a response from the server.',\n            errorCalculate: 'Could not calculate the integral.',\n            errorNoPayload: 'The server did not return a calculation result.',\n            errorNetwork: 'Network error.',\n            errorEmpty: 'Please enter the integrand in LaTeX format.'\n        },\n        ru: {\n            inputLabel: '\u041f\u043e\u0434\u044b\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f',\n            inputAria: '\u041f\u043e\u043b\u0435 \u0432\u0432\u043e\u0434\u0430 \u043f\u043e\u0434\u044b\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 LaTeX',\n            inputHint: '\u0412\u0432\u043e\u0434\u0438\u0442\u0435 LaTeX \u0431\u0435\u0437 \u0437\u043d\u0430\u043a\u0430 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0430 \u0438 dx.',\n            exampleLabel: '\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440',\n            examplePlaceholder: '\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043f\u0440\u0438\u043c\u0435\u0440',\n            clearButton: '\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c',\n            previewTitle: '\u041f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440',\n            calculateButton: '\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u043b',\n            calculatingButton: '\u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u2026',\n            shortcutLabel: '\u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a:',\n            helpTitle: '\u041f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438 \u043f\u043e \u0432\u0432\u043e\u0434\u0443',\n            helpIntro: '\u0412\u0432\u043e\u0434\u0438\u0442\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0434\u044b\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e. \u0417\u043d\u0430\u043a \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0430, dx \u0438 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0443\u044e C \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e.',\n            helpPowers: '\u0421\u0442\u0435\u043f\u0435\u043d\u0438 \u0438 \u043c\u043d\u043e\u0433\u043e\u0447\u043b\u0435\u043d\u044b',\n            helpSubstitution: '\u041f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430',\n            helpParts: '\u041f\u043e \u0447\u0430\u0441\u0442\u044f\u043c',\n            helpTrig: '\u0422\u0440\u0438\u0433\u043e\u043d\u043e\u043c\u0435\u0442\u0440\u0438\u044f',\n            helpFractions: '\u0420\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u0440\u043e\u0431\u0438',\n            helpRadicals: '\u0420\u0430\u0434\u0438\u043a\u0430\u043b\u044b',\n            helpNote: '\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \\(x\\). \u0423\u043c\u043d\u043e\u0436\u0435\u043d\u0438\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043a\u0430\u043a \\(2\\cdot x\\) \u0438\u043b\u0438 \u0441\u043e\u043a\u0440\u0430\u0449\u0451\u043d\u043d\u043e: \\(2x\\), \\(x(x+1)\\).',\n            loadingTitle: '\u0410\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u043b',\n            loadingText: '\u041e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0438 \u043c\u0435\u0442\u043e\u0434 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.',\n            answerTitle: '\u041e\u0442\u0432\u0435\u0442',\n            copyLatex: '\u041a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c LaTeX',\n            copied: '\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043e',\n            constantNote: 'C \u2014 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.',\n            solutionTitle: '\u0420\u0435\u0448\u0435\u043d\u0438\u0435',\n            expandAll: '\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0441\u0435',\n            collapseAll: '\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0441\u0435',\n            step: '\u0428\u0430\u0433',\n            errorGeneric: '\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430.',\n            errorServerResponse: '\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442\u0432\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430.',\n            errorCalculate: '\u041d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u043b.',\n            errorNoPayload: '\u0421\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u0432\u0435\u0440\u043d\u0443\u043b \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f.',\n            errorNetwork: '\u041e\u0448\u0438\u0431\u043a\u0430 \u0441\u0435\u0442\u0438.',\n            errorEmpty: '\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u043e\u0434\u044b\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 LaTeX.'\n        }\n    };\n\n    function normalizeLanguage(value) {\n        const raw = String(value || '').trim().toLowerCase().replace('_', '-');\n        if (raw === 'ua' || raw.startsWith('uk')) return 'uk';\n        if (raw.startsWith('en')) return 'en';\n        if (raw.startsWith('ru')) return 'ru';\n        return '';\n    }\n\n    function detectLanguage() {\n        const fromWindow = normalizeLanguage(window.ICalcProLang);\n        if (fromWindow) return fromWindow;\n\n        const dataLang = normalizeLanguage(APP.getAttribute('data-lang'));\n        if (dataLang) return dataLang;\n\n        const htmlLang = normalizeLanguage(document.documentElement.getAttribute('lang'));\n        if (htmlLang) return htmlLang;\n\n        const firstPathSegment = String(window.location.pathname || '')\n            .split('\/')\n            .filter(Boolean)[0] || '';\n\n        const pathLang = normalizeLanguage(firstPathSegment);\n        return pathLang || 'uk';\n    }\n\n    const LANG = detectLanguage();\n    const T = I18N[LANG] || I18N.uk;\n\n    function applyTranslations() {\n        APP.querySelectorAll('[data-i18n]').forEach(function (element) {\n            const key = element.getAttribute('data-i18n');\n            if (key && Object.prototype.hasOwnProperty.call(T, key)) {\n                element.textContent = T[key];\n            }\n        });\n\n        APP.querySelectorAll('[data-i18n-aria]').forEach(function (element) {\n            const key = element.getAttribute('data-i18n-aria');\n            if (key && Object.prototype.hasOwnProperty.call(T, key)) {\n                element.setAttribute('aria-label', T[key]);\n            }\n        });\n    }\n\n    \/* =====================================================\n       Helpers\n    ===================================================== *\/\n    function byId(id) {\n        return document.getElementById(id);\n    }\n\n    function escapeHtml(value) {\n        return String(value ?? '').replace(\/[&<>\"']\/g, function (character) {\n            const map = {\n                '&': '&amp;',\n                '<': '&lt;',\n                '>': '&gt;',\n                '\"': '&quot;',\n                \"'\": '&#39;'\n            };\n            return map[character];\n        });\n    }\n\n    function normalizeText(value) {\n        return String(value || '')\n            .toLowerCase()\n            .replace(\/\\s+\/g, ' ')\n            .trim();\n    }\n\n    function getExpression() {\n        const input = byId('integral-function-latex');\n        return input ? String(input.value || '').trim() : '';\n    }\n\n    function setExpression(value) {\n        const input = byId('integral-function-latex');\n        if (!input) return;\n        input.value = value || '';\n        updatePreview();\n    }\n\n    \/* =====================================================\n       MathJax v2 + v3 compatibility\n    ===================================================== *\/\n    function renderMathJax(element, tries) {\n        tries = typeof tries === 'number' ? tries : 24;\n        if (!element) return;\n\n        if (window.MathJax && typeof window.MathJax.typesetPromise === 'function') {\n            window.MathJax.typesetPromise([element]).catch(function () {});\n            return;\n        }\n\n        if (window.MathJax && window.MathJax.Hub && window.MathJax.Hub.Queue) {\n            window.MathJax.Hub.Queue(['Typeset', window.MathJax.Hub, element]);\n            return;\n        }\n\n        if (tries > 0) {\n            setTimeout(function () {\n                renderMathJax(element, tries - 1);\n            }, 150);\n        }\n    }\n\n    \/* =====================================================\n       Error \/ loading\n    ===================================================== *\/\n    function showError(message) {\n        const element = byId('integral-error');\n        if (!element) return;\n        element.textContent = message || T.errorGeneric;\n        element.classList.add('is-visible');\n    }\n\n    function clearError() {\n        const element = byId('integral-error');\n        if (!element) return;\n        element.textContent = '';\n        element.classList.remove('is-visible');\n    }\n\n    function markInputError() {\n        const input = byId('integral-function-latex');\n        if (input) input.classList.add('integral-input-error');\n    }\n\n    function clearInputError() {\n        const input = byId('integral-function-latex');\n        if (input) input.classList.remove('integral-input-error');\n    }\n\n    function setLoading(value) {\n        const loader = byId('integral-loading');\n        const button = byId('integral-generate-button');\n\n        if (loader) loader.hidden = !value;\n\n        if (button) {\n            button.disabled = !!value;\n            button.textContent = value ? T.calculatingButton : T.calculateButton;\n        }\n    }\n\n    \/* =====================================================\n       Preview\n    ===================================================== *\/\n    function updatePreview() {\n        const formula = byId('integral-preview-formula');\n        if (!formula) return;\n\n        const expression = getExpression();\n        formula.textContent = expression\n            ? '\\\\[\\\\int \\\\left(' + expression + '\\\\right)\\\\,dx\\\\]'\n            : '\\\\[\\\\int f(x)\\\\,dx\\\\]';\n\n        renderMathJax(formula);\n    }\n\n    \/* =====================================================\n       Result helpers\n    ===================================================== *\/\n    function clearResult() {\n        const container = byId('integral-solution-container');\n        if (!container) return;\n        container.innerHTML = '';\n        container.hidden = true;\n        lastResultLatex = '';\n    }\n\n    function cleanResultLatex(value) {\n        return String(value || '')\n            .trim()\n            .replace(\/^\\\\\\[\/, '')\n            .replace(\/\\\\\\]$\/, '')\n            .replace(\/^\\$\\$\/, '')\n            .replace(\/\\$\\$$\/, '')\n            .trim();\n    }\n\n    function parseStepHtml(html, index) {\n        const holder = document.createElement('div');\n        holder.innerHTML = String(html || '');\n\n        const heading = holder.querySelector('h1, h2, h3, h4, .cramer-step__title');\n        let title = T.step + ' ' + (index + 1);\n\n        if (heading) {\n            const candidate = String(heading.textContent || '').trim();\n            if (candidate) title = candidate;\n        }\n\n        return { title: title };\n    }\n\n    \/* Input\/final steps are already represented by the UI and are omitted\n       from the walkthrough to avoid visual duplication. *\/\n    function isStructuralStepTitle(title) {\n        const value = normalizeText(title);\n\n        const structural = [\n            '\u0432\u0445\u0456\u0434\u043d\u0438\u0439 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b',\n            '\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u043b',\n            'input integral',\n            'given integral',\n            '\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u0438\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442',\n            '\u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442',\n            'final result'\n        ];\n\n        return structural.some(function (item) {\n            return value === item || value.includes(item);\n        });\n    }\n\n    \/* =====================================================\n       Render solution\n    ===================================================== *\/\n    function renderSolution(container, payload, expression) {\n        const formulas = Array.isArray(payload[1]) ? payload[1] : [];\n        const texts = Array.isArray(payload[2]) ? payload[2] : [];\n        const resultLatex = cleanResultLatex(payload[0] || '');\n\n        lastResultLatex = resultLatex;\n\n        const count = Math.max(formulas.length, texts.length);\n        const steps = [];\n\n        for (let index = 0; index < count; index++) {\n            const parsed = parseStepHtml(texts[index] || '', index);\n            const formula = formulas[index] || '';\n\n            if (isStructuralStepTitle(parsed.title)) continue;\n            if (!formula) continue;\n\n            steps.push({\n                title: parsed.title,\n                formula: formula\n            });\n        }\n\n        let html = '';\n\n        \/* Answer *\/\n        html +=\n            '<section class=\"integral-answer-card\">' +\n                '<div class=\"integral-answer-card__top\">' +\n                    '<h2 class=\"integral-answer-card__title\">' + escapeHtml(T.answerTitle) + '<\/h2>' +\n                    '<button type=\"button\" class=\"integral-copy-button\" data-integral-action=\"copy-result\">' +\n                        escapeHtml(T.copyLatex) +\n                    '<\/button>' +\n                '<\/div>' +\n                '<div class=\"integral-answer-card__formula\">' +\n                    '\\\\[' +\n                    '\\\\int \\\\left(' + escapeHtml(expression) + '\\\\right)\\\\,dx=' +\n                    escapeHtml(resultLatex) +\n                    '\\\\]' +\n                '<\/div>' +\n                '<div class=\"integral-answer-note\">' + escapeHtml(T.constantNote) + '<\/div>' +\n            '<\/section>';\n\n        \/* Solution toolbar *\/\n        if (steps.length > 0) {\n            html +=\n                '<div class=\"integral-solution-toolbar\">' +\n                    '<h2>' + escapeHtml(T.solutionTitle) + '<\/h2>' +\n                    '<div class=\"integral-solution-toolbar__actions\">' +\n                        '<button type=\"button\" data-integral-action=\"expand-all\">' + escapeHtml(T.expandAll) + '<\/button>' +\n                        '<button type=\"button\" data-integral-action=\"collapse-all\">' + escapeHtml(T.collapseAll) + '<\/button>' +\n                    '<\/div>' +\n                '<\/div>' +\n                '<div class=\"integral-steps\">';\n\n            steps.forEach(function (step, index) {\n                html +=\n                    '<details class=\"integral-step\" open>' +\n                        '<summary class=\"integral-step__summary\">' +\n                            '<span class=\"integral-step__number\">' + (index + 1) + '.<\/span>' +\n                            '<span class=\"integral-step__title\">' + escapeHtml(step.title) + '<\/span>' +\n                            '<span class=\"integral-step__chevron\" aria-hidden=\"true\"><\/span>' +\n                        '<\/summary>' +\n                        '<div class=\"integral-step__content\">' +\n                            '<div class=\"integral-step__formula\">' + step.formula + '<\/div>' +\n                        '<\/div>' +\n                    '<\/details>';\n            });\n\n            html += '<\/div>';\n        }\n\n        container.innerHTML = html;\n        container.hidden = false;\n        renderMathJax(container);\n    }\n\n    \/* =====================================================\n       Solution actions \u2014 one persistent delegated listener\n    ===================================================== *\/\n    function handleSolutionClick(event) {\n        const container = byId('integral-solution-container');\n        if (!container) return;\n\n        const button = event.target.closest('[data-integral-action]');\n        if (!button || !container.contains(button)) return;\n\n        const action = button.getAttribute('data-integral-action');\n\n        if (action === 'expand-all') {\n            container.querySelectorAll('.integral-step').forEach(function (step) {\n                step.open = true;\n            });\n            return;\n        }\n\n        if (action === 'collapse-all') {\n            container.querySelectorAll('.integral-step').forEach(function (step) {\n                step.open = false;\n            });\n            return;\n        }\n\n        if (action === 'copy-result') {\n            copyResult(button);\n        }\n    }\n\n    \/* =====================================================\n       Copy\n    ===================================================== *\/\n    function copyResult(button) {\n        if (!lastResultLatex) return;\n\n        if (navigator.clipboard && navigator.clipboard.writeText) {\n            navigator.clipboard.writeText(lastResultLatex)\n                .then(function () { showCopiedState(button); })\n                .catch(function () { fallbackCopy(lastResultLatex, button); });\n        } else {\n            fallbackCopy(lastResultLatex, button);\n        }\n    }\n\n    function fallbackCopy(text, button) {\n        const textarea = document.createElement('textarea');\n        textarea.value = text;\n        textarea.style.position = 'fixed';\n        textarea.style.opacity = '0';\n        document.body.appendChild(textarea);\n        textarea.select();\n\n        try {\n            document.execCommand('copy');\n            showCopiedState(button);\n        } catch (error) {\n            \/* no-op *\/\n        }\n\n        textarea.remove();\n    }\n\n    function showCopiedState(button) {\n        if (!button) return;\n        const previous = button.textContent;\n        button.textContent = T.copied;\n        setTimeout(function () {\n            button.textContent = previous;\n        }, 1500);\n    }\n\n    \/* =====================================================\n       AJAX\n    ===================================================== *\/\n    function sendExpressionToServer(expression) {\n        const resultContainer = byId('integral-solution-container');\n\n        clearResult();\n        clearError();\n        clearInputError();\n\n        if (activeController) {\n            try { activeController.abort(); } catch (error) {}\n        }\n\n        activeController = typeof AbortController !== 'undefined'\n            ? new AbortController()\n            : null;\n\n        setLoading(true);\n\n        const formData = new FormData();\n        formData.append('action', AJAX_ACTION);\n        formData.append('expression', expression);\n        formData.append('lang', LANG);\n\n        const fetchOptions = {\n            method: 'POST',\n            body: formData\n        };\n\n        if (activeController) fetchOptions.signal = activeController.signal;\n\n        fetch(AJAX_URL, fetchOptions)\n            .then(function (response) {\n                if (!response.ok) throw new Error(T.errorServerResponse);\n                return response.json();\n            })\n            .then(function (data) {\n                setLoading(false);\n\n                if (!data || data.success !== true) {\n                    markInputError();\n                    showError(data && data.error ? data.error : T.errorCalculate);\n                    return;\n                }\n\n                if (!data.solution) {\n                    showError(T.errorNoPayload);\n                    return;\n                }\n\n                if (!resultContainer) return;\n\n                renderSolution(resultContainer, data.solution, expression);\n\n                setTimeout(function () {\n                    resultContainer.scrollIntoView({ behavior: 'smooth', block: 'start' });\n                }, 80);\n            })\n            .catch(function (error) {\n                if (error && error.name === 'AbortError') return;\n\n                setLoading(false);\n                markInputError();\n                showError(error && error.message ? error.message : T.errorNetwork);\n            });\n    }\n\n    \/* =====================================================\n       Commands\n    ===================================================== *\/\n    function calculateIntegral() {\n        clearError();\n        clearInputError();\n\n        const expression = getExpression();\n        if (!expression) {\n            markInputError();\n            showError(T.errorEmpty);\n            return;\n        }\n\n        sendExpressionToServer(expression);\n    }\n\n    function clearIntegral() {\n        const input = byId('integral-function-latex');\n        const select = byId('integral-example-select');\n\n        if (input) input.value = '';\n        if (select) select.value = '';\n\n        clearError();\n        clearInputError();\n        clearResult();\n        updatePreview();\n\n        if (input) input.focus();\n    }\n\n    \/* =====================================================\n       Events\n    ===================================================== *\/\n    function bindEvents() {\n        const input = byId('integral-function-latex');\n        const select = byId('integral-example-select');\n        const calculateButton = byId('integral-generate-button');\n        const clearButton = byId('integral-clear-button');\n        const solutionContainer = byId('integral-solution-container');\n\n        if (input) {\n            input.addEventListener('input', function () {\n                clearError();\n                clearInputError();\n                clearResult();\n                updatePreview();\n            });\n\n            input.addEventListener('keydown', function (event) {\n                if ((event.ctrlKey || event.metaKey) && event.key === 'Enter') {\n                    event.preventDefault();\n                    calculateIntegral();\n                }\n            });\n        }\n\n        if (select) {\n            select.addEventListener('change', function () {\n                clearError();\n                clearInputError();\n                clearResult();\n\n                const value = String(select.value || '').trim();\n                if (value) setExpression(value);\n            });\n        }\n\n        if (calculateButton) calculateButton.addEventListener('click', calculateIntegral);\n        if (clearButton) clearButton.addEventListener('click', clearIntegral);\n        if (solutionContainer) solutionContainer.addEventListener('click', handleSolutionClick);\n    }\n\n    \/* =====================================================\n       Init\n    ===================================================== *\/\n    function init() {\n        applyTranslations();\n        bindEvents();\n        updatePreview();\n        renderMathJax(APP);\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', init);\n    } else {\n        init();\n    }\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-3d96553 elementor-widget elementor-widget-html\" data-id=\"3d96553\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<section id=\"integral-info-block\" class=\"integral-info-block\" data-lang=\"auto\">\r\n\r\n  <h2 id=\"integral-info-title\" class=\"h2-title2\">\u041a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0456\u0432: \u044f\u043a \u0446\u0435 \u043f\u0440\u0430\u0446\u044e\u0454?<\/h2>\r\n\r\n  <img loading=\"lazy\" id=\"integral-info-image\" class=\"integral-info-image aligncenter wp-image-10020256 size-full\" src=\"https:\/\/www.mathros.net.ua\/ru\/wp-content\/uploads\/2026\/08\/kalkuliator-integraliv-online1.jpg\" alt=\"\u041e\u043d\u043b\u0430\u0439\u043d \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0456\u0432 \u0437 \u043f\u043e\u043a\u0440\u043e\u043a\u043e\u0432\u0438\u043c \u0440\u043e\u0437\u0432\u2019\u044f\u0437\u0430\u043d\u043d\u044f\u043c\" width=\"150\" height=\"150\" loading=\"lazy\" decoding=\"async\" \/>\r\n\r\n  <p id=\"integral-info-text-1\" class=\"calculator-p\">\u041a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 <a title=\"\u041d\u0435\u0432\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\" href=\"https:\/\/www.mathros.net.ua\/neviznachenij-integral-formula-vlastivosti-ta-prikladi.html\">\u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0456\u0432<\/a> \u0434\u0430\u0454 \u0437\u043c\u043e\u0433\u0443 \u0448\u0432\u0438\u0434\u043a\u043e \u0440\u043e\u0437\u043f\u043e\u0447\u0430\u0442\u0438 \u043e\u0431\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044f: \u0432\u0432\u0435\u0434\u0456\u0442\u044c \u043f\u0456\u0434\u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u0443 \u0444\u0443\u043d\u043a\u0446\u0456\u044e \u0443 \u0441\u043f\u0435\u0446\u0456\u0430\u043b\u044c\u043d\u0435 \u043f\u043e\u043b\u0435, \u0456 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0456\u0434\u0433\u043e\u0442\u0443\u0454 \u0432\u0438\u0440\u0430\u0437 \u0434\u043e \u043e\u0431\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044f \u0442\u0430 \u043f\u043e\u043a\u0440\u043e\u043a\u043e\u0432\u043e\u0433\u043e \u0440\u043e\u0437\u0432\u2019\u044f\u0437\u0430\u043d\u043d\u044f. \u0412\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0430\u043c\u043e\u0441\u0442\u0456\u0439\u043d\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0456\u044e \u0443 \u0444\u043e\u0440\u043c\u0430\u0442\u0456 LaTeX \u0430\u0431\u043e \u0432\u0438\u0431\u0440\u0430\u0442\u0438 \u0433\u043e\u0442\u043e\u0432\u0438\u0439 \u043f\u0440\u0438\u043a\u043b\u0430\u0434 \u0437\u0456 \u0441\u043f\u0438\u0441\u043a\u0443, \u0449\u043e\u0431 \u043e\u0434\u0440\u0430\u0437\u0443 \u043f\u043e\u0431\u0430\u0447\u0438\u0442\u0438 \u0440\u043e\u0431\u043e\u0442\u0443 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0446\u0456.<\/p>\r\n\r\n  <p id=\"integral-info-text-2\" class=\"calculator-p\">\u041f\u0456\u0434 \u0447\u0430\u0441 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044f \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0444\u043e\u0440\u043c\u0443\u0454 \u043f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0456\u0439 \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0430, \u0442\u043e\u043c\u0443 \u0449\u0435 \u0434\u043e \u043f\u043e\u0447\u0430\u0442\u043a\u0443 \u043e\u0431\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044f \u043c\u043e\u0436\u043d\u0430 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0438\u0442\u0438, \u0447\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432\u0438\u0440\u0430\u0437. \u0417\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438 \u043f\u043e\u043b\u0435 \u043c\u043e\u0436\u043d\u0430 \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u0430\u0431\u043e \u0432\u0438\u0431\u0440\u0430\u0442\u0438 \u0456\u043d\u0448\u0438\u0439 \u0433\u043e\u0442\u043e\u0432\u0438\u0439 \u043f\u0440\u0438\u043a\u043b\u0430\u0434 \u0456 \u0432\u0456\u0434\u0440\u0430\u0437\u0443 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0434\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044f.<\/p>\r\n\r\n  <p id=\"integral-info-text-3\" class=\"calculator-p\">\u041f\u0456\u0441\u043b\u044f \u043d\u0430\u0442\u0438\u0441\u043a\u0430\u043d\u043d\u044f \u043a\u043d\u043e\u043f\u043a\u0438 <em>\u00ab\u041e\u0431\u0447\u0438\u0441\u043b\u0438\u0442\u0438 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u00bb<\/em> \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0430\u043d\u0430\u043b\u0456\u0437\u0443\u0454 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u0456\u0434\u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u043e\u0457 \u0444\u0443\u043d\u043a\u0446\u0456\u0457, \u043e\u0431\u0438\u0440\u0430\u0454 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u043d\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u0456\u043d\u0442\u0435\u0433\u0440\u0443\u0432\u0430\u043d\u043d\u044f \u0442\u0430 \u043f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u043e \u0432\u0438\u043a\u043e\u043d\u0443\u0454 \u043d\u0435\u043e\u0431\u0445\u0456\u0434\u043d\u0456 \u043f\u0435\u0440\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f. \u0423 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0456 \u0432\u0438 \u043e\u0442\u0440\u0438\u043c\u0443\u0454\u0442\u0435 \u043d\u0435 \u043b\u0438\u0448\u0435 \u0437\u0430\u0433\u0430\u043b\u044c\u043d\u0438\u0439 \u0432\u0438\u0433\u043b\u044f\u0434 <a title=\"\u041f\u0435\u0440\u0432\u0456\u0441\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0456\u0457\" href=\"https:\/\/uk.wikipedia.org\/wiki\/%D0%9F%D0%B5%D1%80%D0%B2%D1%96%D1%81%D0%BD%D0%B0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\u043f\u0435\u0440\u0432\u0456\u0441\u043d\u043e\u0457<\/a> \u0437 \u0434\u043e\u0432\u0456\u043b\u044c\u043d\u043e\u044e \u0441\u0442\u0430\u043b\u043e\u044e \\(C\\), \u0430 \u0439 \u043f\u043e\u043a\u0440\u043e\u043a\u043e\u0432\u0435 \u0440\u043e\u0437\u0432\u2019\u044f\u0437\u0430\u043d\u043d\u044f \u0437 \u0443\u0441\u0456\u043c\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u0438\u043c\u0438 \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c\u0438 \u0442\u0430 \u043f\u0456\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\u043c\u0438. \u0422\u0430\u043a\u0438\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u043e\u0441\u043e\u0431\u043b\u0438\u0432\u043e \u0437\u0440\u0443\u0447\u043d\u0438\u0439 \u0434\u043b\u044f \u043d\u0430\u0432\u0447\u0430\u043d\u043d\u044f, \u043e\u0441\u043a\u0456\u043b\u044c\u043a\u0438 \u0434\u0430\u0454 \u0437\u043c\u043e\u0433\u0443 \u043f\u0440\u043e\u0441\u0442\u0435\u0436\u0438\u0442\u0438 \u0432\u0435\u0441\u044c \u0445\u0456\u0434 \u043e\u0431\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044f \u0432\u0456\u0434 \u043f\u043e\u0447\u0430\u0442\u043a\u043e\u0432\u043e\u0433\u043e \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0430 \u0434\u043e \u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443.<\/p>\r\n\r\n<\/section>\r\n\r\n\r\n<style>\r\n\r\n\/* =========================================================\r\n   \u041e\u0441\u043d\u043e\u0432\u043d\u0438\u0439 \u0431\u043b\u043e\u043a\r\n========================================================= *\/\r\n\r\n.integral-info-block {\r\n  width: 100%;\r\n  max-width: 100%;\r\n  margin: 0;\r\n  padding: 0;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   \u0417\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a\r\n========================================================= *\/\r\n\r\n.h2-title2 {\r\n  width: min(860px, calc(100% - 32px));\r\n  max-width: 860px;\r\n  margin: 22px auto 12px;\r\n  padding: 0;\r\n\r\n  font-family:\r\n    system-ui,\r\n    -apple-system,\r\n    \"Segoe UI\",\r\n    Roboto,\r\n    \"Helvetica Neue\",\r\n    Arial,\r\n    \"Noto Sans\",\r\n    \"Liberation Sans\",\r\n    sans-serif;\r\n\r\n  font-weight: 650;\r\n\r\n  font-size:\r\n    clamp(\r\n      1.2rem,\r\n      1.05rem + .8vw,\r\n      1.55rem\r\n    );\r\n\r\n  line-height: 1.35;\r\n  letter-spacing: .002em;\r\n  color: #334155;\r\n  text-align: center;\r\n\r\n  text-wrap: balance;\r\n\r\n  -webkit-hyphens: none;\r\n  -ms-hyphens: none;\r\n  hyphens: none;\r\n\r\n  word-break: normal;\r\n  overflow-wrap: normal;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   \u0410\u0431\u0437\u0430\u0446\u0438\r\n========================================================= *\/\r\n\r\n.calculator-p {\r\n  width: min(800px, calc(100% - 32px));\r\n  max-width: 800px;\r\n  margin: 10px auto;\r\n  padding: 0;\r\n\r\n  font-family:\r\n    system-ui,\r\n    -apple-system,\r\n    \"Segoe UI\",\r\n    Roboto,\r\n    \"Helvetica Neue\",\r\n    Arial,\r\n    \"Noto Sans\",\r\n    \"Liberation Sans\",\r\n    sans-serif;\r\n\r\n  font-weight: 400;\r\n\r\n  font-size:\r\n    clamp(\r\n      .95rem,\r\n      .92rem + .2vw,\r\n      1rem\r\n    );\r\n\r\n  line-height: 1.7;\r\n  color: #475569;\r\n  text-align: left;\r\n\r\n  text-wrap: pretty;\r\n\r\n  -webkit-hyphens: none;\r\n  -ms-hyphens: none;\r\n  hyphens: none;\r\n\r\n  word-break: normal;\r\n  overflow-wrap: normal;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   \u0412\u0438\u0434\u0456\u043b\u0435\u043d\u043d\u044f \u043d\u0430\u0437\u0432 \u0435\u043b\u0435\u043c\u0435\u043d\u0442\u0456\u0432 \u0456\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0443\r\n========================================================= *\/\r\n\r\n.calculator-p em {\r\n  font-style: italic;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   \u041f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f\r\n========================================================= *\/\r\n\r\n.calculator-p a {\r\n  color: #0B638B;\r\n  text-decoration: underline;\r\n  text-underline-offset: 3px;\r\n  text-decoration-thickness: 1px;\r\n\r\n  -webkit-hyphens: none;\r\n  -ms-hyphens: none;\r\n  hyphens: none;\r\n\r\n  word-break: normal;\r\n  overflow-wrap: normal;\r\n}\r\n\r\n\r\n.calculator-p a:hover,\r\n.calculator-p a:focus-visible {\r\n  color: #095676;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   \u0417\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u043d\u044f\r\n========================================================= *\/\r\n\r\n.integral-info-image {\r\n  display: block;\r\n  width: 150px;\r\n  max-width: 100%;\r\n  height: auto;\r\n  margin: 16px auto;\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   \u0422\u0435\u043c\u043d\u0430 \u0442\u0435\u043c\u0430\r\n========================================================= *\/\r\n\r\n@media (prefers-color-scheme: dark) {\r\n\r\n  .h2-title2 {\r\n    color: #cbd5e1;\r\n  }\r\n\r\n  .calculator-p {\r\n    color: #9cb0c0;\r\n  }\r\n\r\n  .calculator-p a {\r\n    color: #58b6e4;\r\n  }\r\n\r\n  .calculator-p a:hover,\r\n  .calculator-p a:focus-visible {\r\n    color: #45a7d9;\r\n  }\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   \u041f\u043b\u0430\u043d\u0448\u0435\u0442\u0438\r\n========================================================= *\/\r\n\r\n@media (max-width: 768px) {\r\n\r\n  .h2-title2 {\r\n    margin: 18px auto 10px;\r\n  }\r\n\r\n  .calculator-p {\r\n    margin: 8px auto;\r\n  }\r\n\r\n}\r\n\r\n\r\n\/* =========================================================\r\n   \u0422\u0435\u043b\u0435\u0444\u043e\u043d\u0438\r\n========================================================= *\/\r\n\r\n@media (max-width: 480px) {\r\n\r\n  .h2-title2 {\r\n    width: calc(100% - 24px);\r\n    font-size: 1.15rem;\r\n    line-height: 1.4;\r\n  }\r\n\r\n  .calculator-p {\r\n    width: calc(100% - 24px);\r\n    font-size: .95rem;\r\n    line-height: 1.65;\r\n  }\r\n\r\n  .integral-info-image {\r\n    width: 140px;\r\n  }\r\n\r\n}\r\n\r\n<\/style>\r\n\r\n\r\n<script>\r\n\r\n(function () {\r\n\r\n  'use strict';\r\n\r\n\r\n  \/* =====================================================\r\n     \u041f\u0435\u0440\u0435\u043a\u043b\u0430\u0434\u0438\r\n  ===================================================== *\/\r\n\r\n  const translations = {\r\n\r\n    uk: {\r\n\r\n      title:\r\n        '\u041a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0456\u0432: \u044f\u043a \u0446\u0435 \u043f\u0440\u0430\u0446\u044e\u0454?',\r\n\r\n      imageAlt:\r\n        '\u041e\u043d\u043b\u0430\u0439\u043d \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0456\u0432 \u0437 \u043f\u043e\u043a\u0440\u043e\u043a\u043e\u0432\u0438\u043c \u0440\u043e\u0437\u0432\u2019\u044f\u0437\u0430\u043d\u043d\u044f\u043c',\r\n\r\n      text1:\r\n        '\u041a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 <a title=\"\u041d\u0435\u0432\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\" href=\"https:\/\/www.mathros.net.ua\/neviznachenij-integral-formula-vlastivosti-ta-prikladi.html\">\u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0456\u0432<\/a> \u0434\u0430\u0454 \u0437\u043c\u043e\u0433\u0443 \u0448\u0432\u0438\u0434\u043a\u043e \u0440\u043e\u0437\u043f\u043e\u0447\u0430\u0442\u0438 \u043e\u0431\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044f: \u0432\u0432\u0435\u0434\u0456\u0442\u044c \u043f\u0456\u0434\u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u0443 \u0444\u0443\u043d\u043a\u0446\u0456\u044e \u0443 \u0441\u043f\u0435\u0446\u0456\u0430\u043b\u044c\u043d\u0435 \u043f\u043e\u043b\u0435, \u0456 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u0456\u0434\u0433\u043e\u0442\u0443\u0454 \u0432\u0438\u0440\u0430\u0437 \u0434\u043e \u043e\u0431\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044f \u0442\u0430 \u043f\u043e\u043a\u0440\u043e\u043a\u043e\u0432\u043e\u0433\u043e \u0440\u043e\u0437\u0432\u2019\u044f\u0437\u0430\u043d\u043d\u044f. \u0412\u0438 \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0430\u043c\u043e\u0441\u0442\u0456\u0439\u043d\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0456\u044e \u0443 \u0444\u043e\u0440\u043c\u0430\u0442\u0456 LaTeX \u0430\u0431\u043e \u0432\u0438\u0431\u0440\u0430\u0442\u0438 \u0433\u043e\u0442\u043e\u0432\u0438\u0439 \u043f\u0440\u0438\u043a\u043b\u0430\u0434 \u0437\u0456 \u0441\u043f\u0438\u0441\u043a\u0443, \u0449\u043e\u0431 \u043e\u0434\u0440\u0430\u0437\u0443 \u043f\u043e\u0431\u0430\u0447\u0438\u0442\u0438 \u0440\u043e\u0431\u043e\u0442\u0443 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u0446\u0456.',\r\n\r\n      text2:\r\n        '\u041f\u0456\u0434 \u0447\u0430\u0441 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044f \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0444\u043e\u0440\u043c\u0443\u0454 \u043f\u043e\u043f\u0435\u0440\u0435\u0434\u043d\u0456\u0439 \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u0434 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0430, \u0442\u043e\u043c\u0443 \u0449\u0435 \u0434\u043e \u043f\u043e\u0447\u0430\u0442\u043a\u0443 \u043e\u0431\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044f \u043c\u043e\u0436\u043d\u0430 \u043f\u0435\u0440\u0435\u0432\u0456\u0440\u0438\u0442\u0438, \u0447\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432\u0438\u0440\u0430\u0437. \u0417\u0430 \u043f\u043e\u0442\u0440\u0435\u0431\u0438 \u043f\u043e\u043b\u0435 \u043c\u043e\u0436\u043d\u0430 \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u0430\u0431\u043e \u0432\u0438\u0431\u0440\u0430\u0442\u0438 \u0456\u043d\u0448\u0438\u0439 \u0433\u043e\u0442\u043e\u0432\u0438\u0439 \u043f\u0440\u0438\u043a\u043b\u0430\u0434 \u0456 \u0432\u0456\u0434\u0440\u0430\u0437\u0443 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u0434\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u043e\u0431\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044f.',\r\n\r\n      text3:\r\n        '\u041f\u0456\u0441\u043b\u044f \u043d\u0430\u0442\u0438\u0441\u043a\u0430\u043d\u043d\u044f \u043a\u043d\u043e\u043f\u043a\u0438 <em>\u00ab\u041e\u0431\u0447\u0438\u0441\u043b\u0438\u0442\u0438 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u00bb<\/em> \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0430\u043d\u0430\u043b\u0456\u0437\u0443\u0454 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u0456\u0434\u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u043e\u0457 \u0444\u0443\u043d\u043a\u0446\u0456\u0457, \u043e\u0431\u0438\u0440\u0430\u0454 \u0432\u0456\u0434\u043f\u043e\u0432\u0456\u0434\u043d\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u0456\u043d\u0442\u0435\u0433\u0440\u0443\u0432\u0430\u043d\u043d\u044f \u0442\u0430 \u043f\u043e\u0441\u043b\u0456\u0434\u043e\u0432\u043d\u043e \u0432\u0438\u043a\u043e\u043d\u0443\u0454 \u043d\u0435\u043e\u0431\u0445\u0456\u0434\u043d\u0456 \u043f\u0435\u0440\u0435\u0442\u0432\u043e\u0440\u0435\u043d\u043d\u044f. \u0423 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0456 \u0432\u0438 \u043e\u0442\u0440\u0438\u043c\u0443\u0454\u0442\u0435 \u043d\u0435 \u043b\u0438\u0448\u0435 \u0437\u0430\u0433\u0430\u043b\u044c\u043d\u0438\u0439 \u0432\u0438\u0433\u043b\u044f\u0434 <a title=\"\u041f\u0435\u0440\u0432\u0456\u0441\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0456\u0457\" href=\"https:\/\/uk.wikipedia.org\/wiki\/%D0%9F%D0%B5%D1%80%D0%B2%D1%96%D1%81%D0%BD%D0%B0\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\u043f\u0435\u0440\u0432\u0456\u0441\u043d\u043e\u0457<\/a> \u0437 \u0434\u043e\u0432\u0456\u043b\u044c\u043d\u043e\u044e \u0441\u0442\u0430\u043b\u043e\u044e \\\\(C\\\\), \u0430 \u0439 \u043f\u043e\u043a\u0440\u043e\u043a\u043e\u0432\u0435 \u0440\u043e\u0437\u0432\u2019\u044f\u0437\u0430\u043d\u043d\u044f \u0437 \u0443\u0441\u0456\u043c\u0430 \u043e\u0441\u043d\u043e\u0432\u043d\u0438\u043c\u0438 \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c\u0438 \u0442\u0430 \u043f\u0456\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\u043c\u0438. \u0422\u0430\u043a\u0438\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u043e\u0441\u043e\u0431\u043b\u0438\u0432\u043e \u0437\u0440\u0443\u0447\u043d\u0438\u0439 \u0434\u043b\u044f \u043d\u0430\u0432\u0447\u0430\u043d\u043d\u044f, \u043e\u0441\u043a\u0456\u043b\u044c\u043a\u0438 \u0434\u0430\u0454 \u0437\u043c\u043e\u0433\u0443 \u043f\u0440\u043e\u0441\u0442\u0435\u0436\u0438\u0442\u0438 \u0432\u0435\u0441\u044c \u0445\u0456\u0434 \u043e\u0431\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044f \u0432\u0456\u0434 \u043f\u043e\u0447\u0430\u0442\u043a\u043e\u0432\u043e\u0433\u043e \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0430 \u0434\u043e \u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0443.'\r\n\r\n    },\r\n\r\n\r\n    en: {\r\n\r\n      title:\r\n        'Integral Calculator: How Does It Work?',\r\n\r\n      imageAlt:\r\n        'Online integral calculator with a step-by-step solution',\r\n\r\n      text1:\r\n        'The <a title=\"Indefinite integral\" href=\"https:\/\/www.mathros.net.ua\/en\/indefinite-integral.html\">integral<\/a> calculator lets you start the calculation quickly: enter the integrand in the input field, and the system will prepare the expression for evaluation and a step-by-step solution. You can enter the function yourself in LaTeX format or choose a ready-made example from the list to see how the calculator works in practice.',\r\n\r\n      text2:\r\n        'As you type, the calculator generates a preview of the integral, so you can check whether the expression has been entered correctly before starting the calculation. If necessary, you can clear the field or choose another example and immediately start a new calculation.',\r\n\r\n      text3:\r\n        'After you click <em>\u201cCalculate Integral\u201d<\/em>, the calculator analyzes the structure of the integrand, selects an appropriate integration method, and performs the necessary transformations step by step. As a result, you receive not only the general <a title=\"What is an antiderivative\" href=\"https:\/\/en.wikipedia.org\/wiki\/Antiderivative\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">antiderivative<\/a> including the arbitrary constant \\\\(C\\\\), but also a step-by-step solution showing the main formulas and substitutions. This format is especially useful for learning because it lets you follow the entire calculation from the original integral to the final result.'\r\n\r\n    },\r\n\r\n\r\n    ru: {\r\n\r\n      title:\r\n        '\u041a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u043e\u0432: \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442?',\r\n\r\n      imageAlt:\r\n        '\u041e\u043d\u043b\u0430\u0439\u043d-\u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u043e\u0432 \u0441 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c',\r\n\r\n      text1:\r\n        '\u041a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 <a title=\"\u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u043b\" href=\"https:\/\/www.mathros.net.ua\/ru\/neopredelennyy-integral.html\">\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u043e\u0432<\/a> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044e: \u0432\u0432\u0435\u0434\u0438\u0442\u0435 \u043f\u043e\u0434\u044b\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435, \u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u0442 \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044e \u0438 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e\u043c\u0443 \u0440\u0435\u0448\u0435\u043d\u0438\u044e. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 LaTeX \u0438\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430, \u0447\u0442\u043e\u0431\u044b \u0441\u0440\u0430\u0437\u0443 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440\u0430 \u043d\u0430 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0435.',\r\n\r\n      text2:\r\n        '\u0412\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u0432\u043e\u0434\u0430 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0444\u043e\u0440\u043c\u0438\u0440\u0443\u0435\u0442 \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0430, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0449\u0451 \u0434\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043b\u0438 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u043e \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435. \u041f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0438\u043b\u0438 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0439 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0438 \u0441\u0440\u0430\u0437\u0443 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u043d\u043e\u0432\u043e\u043c\u0443 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044e.',\r\n\r\n      text3:\r\n        '\u041f\u043e\u0441\u043b\u0435 \u043d\u0430\u0436\u0430\u0442\u0438\u044f \u043a\u043d\u043e\u043f\u043a\u0438 <em>\u00ab\u0412\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u00bb<\/em> \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u043e\u0434\u044b\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438, \u0432\u044b\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u043c\u0435\u0442\u043e\u0434 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u0449\u0438\u0439 \u0432\u0438\u0434 <a title=\"\u041f\u0435\u0440\u0432\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u0438\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9F%D0%B5%D1%80%D0%B2%D0%BE%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BD%D0%B0%D1%8F\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\u043f\u0435\u0440\u0432\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u043e\u0439<\/a> \u0441 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \\\\(C\\\\), \u043d\u043e \u0438 \u043f\u043e\u0448\u0430\u0433\u043e\u0432\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c\u0438 \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u043c\u0438 \u0438 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\u043c\u0438. \u0422\u0430\u043a\u043e\u0439 \u0444\u043e\u0440\u043c\u0430\u0442 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0443\u0434\u043e\u0431\u0435\u043d \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0432\u0435\u0441\u044c \u0445\u043e\u0434 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043e\u0442 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u0430 \u0434\u043e \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430.'\r\n\r\n    }\r\n\r\n  };\r\n\r\n\r\n  \/* =====================================================\r\n     \u041d\u043e\u0440\u043c\u0430\u043b\u0456\u0437\u0430\u0446\u0456\u044f \u043c\u043e\u0432\u0438\r\n  ===================================================== *\/\r\n\r\n  function normalizeLanguage(value) {\r\n\r\n    const language =\r\n      String(value || '')\r\n        .trim()\r\n        .toLowerCase();\r\n\r\n\r\n    if (\r\n      language === 'en' ||\r\n      language.startsWith('en-') ||\r\n      language.startsWith('en_')\r\n    ) {\r\n      return 'en';\r\n    }\r\n\r\n\r\n    if (\r\n      language === 'ru' ||\r\n      language.startsWith('ru-') ||\r\n      language.startsWith('ru_')\r\n    ) {\r\n      return 'ru';\r\n    }\r\n\r\n\r\n    if (\r\n      language === 'uk' ||\r\n      language === 'ua' ||\r\n      language.startsWith('uk-') ||\r\n      language.startsWith('uk_') ||\r\n      language.startsWith('ua-') ||\r\n      language.startsWith('ua_')\r\n    ) {\r\n      return 'uk';\r\n    }\r\n\r\n\r\n    return '';\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     \u0412\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044f \u043c\u043e\u0432\u0438\r\n  ===================================================== *\/\r\n\r\n  function detectLanguage() {\r\n\r\n    if (\r\n      typeof window !== 'undefined' &&\r\n      window.ICalcProLang\r\n    ) {\r\n\r\n      const globalLanguage =\r\n        normalizeLanguage(\r\n          window.ICalcProLang\r\n        );\r\n\r\n\r\n      if (globalLanguage) {\r\n        return globalLanguage;\r\n      }\r\n\r\n    }\r\n\r\n\r\n    const block =\r\n      document.getElementById(\r\n        'integral-info-block'\r\n      );\r\n\r\n\r\n    if (block) {\r\n\r\n      const dataLanguage =\r\n        block.getAttribute(\r\n          'data-lang'\r\n        );\r\n\r\n\r\n      if (\r\n        dataLanguage &&\r\n        dataLanguage !== 'auto'\r\n      ) {\r\n\r\n        const blockLanguage =\r\n          normalizeLanguage(\r\n            dataLanguage\r\n          );\r\n\r\n\r\n        if (blockLanguage) {\r\n          return blockLanguage;\r\n        }\r\n\r\n      }\r\n\r\n    }\r\n\r\n\r\n    const htmlLanguage =\r\n      normalizeLanguage(\r\n        document.documentElement.lang\r\n      );\r\n\r\n\r\n    if (htmlLanguage) {\r\n      return htmlLanguage;\r\n    }\r\n\r\n\r\n    return 'uk';\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     MathJax\r\n  ===================================================== *\/\r\n\r\n  function renderMath(element, tries) {\r\n\r\n    tries =\r\n      typeof tries === 'number'\r\n        ? tries\r\n        : 15;\r\n\r\n\r\n    if (!element) {\r\n      return;\r\n    }\r\n\r\n\r\n    if (\r\n      window.MathJax &&\r\n      window.MathJax.Hub &&\r\n      window.MathJax.Hub.Queue\r\n    ) {\r\n\r\n      MathJax.Hub.Queue([\r\n        'Typeset',\r\n        MathJax.Hub,\r\n        element\r\n      ]);\r\n\r\n      return;\r\n    }\r\n\r\n\r\n    if (tries > 0) {\r\n\r\n      setTimeout(\r\n        function () {\r\n\r\n          renderMath(\r\n            element,\r\n            tries - 1\r\n          );\r\n\r\n        },\r\n        120\r\n      );\r\n\r\n    }\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     \u0417\u0430\u0441\u0442\u043e\u0441\u0443\u0432\u0430\u043d\u043d\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u0430\u0434\u0443\r\n  ===================================================== *\/\r\n\r\n  function applyTranslation() {\r\n\r\n    const language =\r\n      detectLanguage();\r\n\r\n\r\n    const dictionary =\r\n      translations[language] ||\r\n      translations.uk;\r\n\r\n\r\n    const title =\r\n      document.getElementById(\r\n        'integral-info-title'\r\n      );\r\n\r\n\r\n    const image =\r\n      document.getElementById(\r\n        'integral-info-image'\r\n      );\r\n\r\n\r\n    const text1 =\r\n      document.getElementById(\r\n        'integral-info-text-1'\r\n      );\r\n\r\n\r\n    const text2 =\r\n      document.getElementById(\r\n        'integral-info-text-2'\r\n      );\r\n\r\n\r\n    const text3 =\r\n      document.getElementById(\r\n        'integral-info-text-3'\r\n      );\r\n\r\n\r\n    if (title) {\r\n      title.textContent =\r\n        dictionary.title;\r\n    }\r\n\r\n\r\n    if (image) {\r\n      image.alt =\r\n        dictionary.imageAlt;\r\n    }\r\n\r\n\r\n    \/*\r\n     * \u041f\u0435\u0440\u0448\u0438\u0439 \u0430\u0431\u0437\u0430\u0446 \u043c\u0456\u0441\u0442\u0438\u0442\u044c \u043f\u043e\u0441\u0438\u043b\u0430\u043d\u043d\u044f,\r\n     * \u0442\u043e\u043c\u0443 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0454\u043c\u043e innerHTML.\r\n     *\/\r\n\r\n    if (text1) {\r\n      text1.innerHTML =\r\n        dictionary.text1;\r\n    }\r\n\r\n\r\n    \/*\r\n     * \u0414\u0440\u0443\u0433\u0438\u0439 \u0430\u0431\u0437\u0430\u0446 \u043d\u0435 \u043c\u0456\u0441\u0442\u0438\u0442\u044c HTML-\u0442\u0435\u0433\u0456\u0432.\r\n     *\/\r\n\r\n    if (text2) {\r\n      text2.textContent =\r\n        dictionary.text2;\r\n    }\r\n\r\n\r\n    \/*\r\n     * \u0422\u0440\u0435\u0442\u0456\u0439 \u0430\u0431\u0437\u0430\u0446 \u043c\u0456\u0441\u0442\u0438\u0442\u044c <em> \u0442\u0430 <a>,\r\n     * \u0442\u043e\u043c\u0443 \u0442\u0430\u043a\u043e\u0436 \u0432\u0438\u043a\u043e\u0440\u0438\u0441\u0442\u043e\u0432\u0443\u0454\u043c\u043e innerHTML.\r\n     *\/\r\n\r\n    if (text3) {\r\n      text3.innerHTML =\r\n        dictionary.text3;\r\n    }\r\n\r\n\r\n    const block =\r\n      document.getElementById(\r\n        'integral-info-block'\r\n      );\r\n\r\n\r\n    renderMath(\r\n      block\r\n    );\r\n\r\n  }\r\n\r\n\r\n  \/* =====================================================\r\n     Init\r\n  ===================================================== *\/\r\n\r\n  if (\r\n    document.readyState === 'loading'\r\n  ) {\r\n\r\n    document.addEventListener(\r\n      'DOMContentLoaded',\r\n      applyTranslation\r\n    );\r\n\r\n  } else {\r\n\r\n    applyTranslation();\r\n\r\n  }\r\n\r\n})();\r\n\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u041d\u0435 \u0432\u043f\u0435\u0432\u043d\u0435\u043d\u0456, \u0447\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0437\u043d\u0430\u0439\u0448\u043b\u0438 \u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b? \u0412\u0432\u0435\u0434\u0456\u0442\u044c \u0432\u0438\u0440\u0430\u0437 \u0443 \u043a\u0430\u043b\u044c\u043a\u0443\u043b\u044f\u0442\u043e\u0440 \u0456 \u043f\u0435\u0440\u0435\u0433\u043b\u044f\u043d\u044c\u0442\u0435 \u043f\u043e\u043a\u0440\u043e\u043a\u043e\u0432\u0435 \u0440\u043e\u0437\u0432\u2019\u044f\u0437\u0430\u043d\u043d\u044f \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u0440\u0430\u0437! \u041f\u0456\u0434\u0456\u043d\u0442\u0435\u0433\u0440\u0430\u043b\u044c\u043d\u0430 \u0444\u0443\u043d\u043a\u0446\u0456\u044f \u0412\u0432\u043e\u0434\u044c\u0442\u0435 LaTeX<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-centered.php","meta":{"footnotes":""},"class_list":["post-3874","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.mathros.net.ua\/ru\/wp-json\/wp\/v2\/pages\/3874"}],"collection":[{"href":"https:\/\/www.mathros.net.ua\/ru\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mathros.net.ua\/ru\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.mathros.net.ua\/ru\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mathros.net.ua\/ru\/wp-json\/wp\/v2\/comments?post=3874"}],"version-history":[{"count":10,"href":"https:\/\/www.mathros.net.ua\/ru\/wp-json\/wp\/v2\/pages\/3874\/revisions"}],"predecessor-version":[{"id":3924,"href":"https:\/\/www.mathros.net.ua\/ru\/wp-json\/wp\/v2\/pages\/3874\/revisions\/3924"}],"wp:attachment":[{"href":"https:\/\/www.mathros.net.ua\/ru\/wp-json\/wp\/v2\/media?parent=3874"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}