{"id":24597,"date":"2026-08-11T01:28:17","date_gmt":"2026-08-11T01:28:17","guid":{"rendered":"https:\/\/www.mechstream.com\/?p=24597"},"modified":"2026-08-11T01:54:22","modified_gmt":"2026-08-11T01:54:22","slug":"gear-noise-risk-assessment-calculator","status":"publish","type":"post","link":"https:\/\/www.mechstream.com\/fr\/gear-noise-risk-assessment-calculator\/","title":{"rendered":"Gear Noise Risk Assessment Calculator"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">The <strong>Gear Noise Risk Assessment Calculator<\/strong> is a practical engineering tool designed to evaluate the potential noise risk of gear transmission systems. By considering key parameters such as rotational speed, gear geometry, tooth contact conditions, transmission load, material properties, and operating conditions, users can identify factors that may contribute to excessive gear noise and vibration. The <strong>Gear Noise Risk Assessment Calculator<\/strong> helps engineers and designers compare gear configurations, evaluate operating performance, and optimize transmission systems for quieter and smoother operation. It is suitable for industrial gearboxes, automotive transmissions, machinery, robotics, and other power transmission applications. This calculator provides a convenient way to support preliminary gear noise analysis, reduce potential noise-related problems, and improve the reliability and overall performance of mechanical systems.<\/p>\n\n\n\n<!-- WordPress Custom HTML: paste ALL content below. Do NOT use index.html on WordPress. -->\n<!-- If Calculate still fails: WP Rocket > Exclude JavaScript > add \"gnc-js-b64\" and \"gnc-boot-script\" -->\n<link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.5.1\/css\/all.min.css\">\n<style>\n    \/* All styles scoped to #gear-noise-calc - safe for WordPress embed *\/\n    #gear-noise-calc {\n      --gnc-bg-primary: #ffffff;\n      --gnc-bg-card: #ffffff;\n      --gnc-bg-input: #f8fafc;\n      --gnc-border: #e2e8f0;\n      --gnc-border-focus: #3b82f6;\n      --gnc-text-primary: #1e293b;\n      --gnc-text-secondary: #64748b;\n      --gnc-text-muted: #94a3b8;\n      --gnc-accent: #2563eb;\n      --gnc-accent-hover: #1d4ed8;\n      --gnc-accent-light: #dbeafe;\n      --gnc-shadow-sm: 0 1px 2px rgba(15, 23, 42, 0.05);\n      --gnc-shadow-md: 0 4px 6px -1px rgba(15, 23, 42, 0.08), 0 2px 4px -2px rgba(15, 23, 42, 0.05);\n      --gnc-shadow-lg: 0 10px 15px -3px rgba(15, 23, 42, 0.08), 0 4px 6px -4px rgba(15, 23, 42, 0.05);\n      --gnc-radius: 10px;\n      --gnc-radius-lg: 14px;\n      --gnc-risk-low: #059669;\n      --gnc-risk-low-bg: #d1fae5;\n      --gnc-risk-mod: #d97706;\n      --gnc-risk-mod-bg: #fef3c7;\n      --gnc-risk-high: #dc2626;\n      --gnc-risk-high-bg: #fee2e2;\n      --gnc-transition: 0.2s ease;\n\n      display: block;\n      width: 100%;\n      font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;\n      font-size: 16px;\n      line-height: 1.6;\n      color: var(--gnc-text-primary);\n      background: var(--gnc-bg-primary);\n      -webkit-font-smoothing: antialiased;\n      isolation: isolate;\n    }\n\n    #gear-noise-calc *,\n    #gear-noise-calc *::before,\n    #gear-noise-calc *::after {\n      box-sizing: border-box;\n    }\n\n    #gear-noise-calc .gnc-container {\n      max-width: 1000px;\n      margin: 0 auto;\n      padding: 1.5rem 1rem 2rem;\n      display: flex;\n      flex-direction: column;\n      gap: 1.25rem;\n    }\n\n    #gear-noise-calc .gnc-card {\n      background: var(--gnc-bg-card);\n      border-radius: var(--gnc-radius-lg);\n      border: 1px solid var(--gnc-border);\n      box-shadow: var(--gnc-shadow-md);\n      overflow: hidden;\n    }\n\n    #gear-noise-calc .gnc-card-body { padding: 1.25rem; }\n\n    #gear-noise-calc .gnc-form-grid {\n      display: grid;\n      grid-template-columns: 1fr 1fr;\n      gap: 1rem;\n    }\n\n    #gear-noise-calc .gnc-form-group {\n      display: flex;\n      flex-direction: column;\n      gap: 0.35rem;\n    }\n\n    #gear-noise-calc .gnc-form-group.gnc-full-width { grid-column: 1 \/ -1; }\n\n    #gear-noise-calc .gnc-form-group label {\n      font-size: 0.8rem;\n      font-weight: 600;\n      color: var(--gnc-text-secondary);\n      display: flex;\n      align-items: center;\n      gap: 0.35rem;\n      margin: 0;\n      padding: 0;\n      cursor: default;\n    }\n\n    #gear-noise-calc .gnc-tooltip-wrap { position: relative; display: inline-flex; }\n\n    #gear-noise-calc .gnc-tooltip-icon {\n      color: var(--gnc-text-muted);\n      font-size: 0.7rem;\n      cursor: help;\n      width: 16px;\n      height: 16px;\n      border-radius: 50%;\n      border: 1px solid var(--gnc-border);\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      transition: var(--gnc-transition);\n    }\n\n    #gear-noise-calc .gnc-tooltip-icon:hover { color: var(--gnc-accent); border-color: var(--gnc-accent); }\n\n    #gear-noise-calc .gnc-tooltip-text {\n      display: none;\n      position: absolute;\n      bottom: calc(100% + 6px);\n      left: 50%;\n      transform: translateX(-50%);\n      background: #1e293b;\n      color: #f1f5f9;\n      font-size: 0.72rem;\n      font-weight: 400;\n      padding: 0.5rem 0.65rem;\n      border-radius: 6px;\n      width: 220px;\n      z-index: 100;\n      line-height: 1.45;\n      box-shadow: var(--gnc-shadow-lg);\n    }\n\n    #gear-noise-calc .gnc-tooltip-text::after {\n      content: '';\n      position: absolute;\n      top: 100%;\n      left: 50%;\n      transform: translateX(-50%);\n      border: 5px solid transparent;\n      border-top-color: #1e293b;\n    }\n\n    #gear-noise-calc .gnc-tooltip-wrap:hover .gnc-tooltip-text { display: block; }\n\n    #gear-noise-calc .gnc-input-row {\n      display: flex;\n      gap: 0.5rem;\n      align-items: center;\n    }\n\n    #gear-noise-calc input[type=\"number\"],\n    #gear-noise-calc select {\n      flex: 1;\n      padding: 0.55rem 0.75rem;\n      border: 1px solid var(--gnc-border);\n      border-radius: 8px;\n      font-family: inherit;\n      font-size: 0.875rem;\n      background: var(--gnc-bg-input);\n      color: var(--gnc-text-primary);\n      transition: var(--gnc-transition);\n      min-width: 0;\n      margin: 0;\n      height: auto;\n      line-height: normal;\n      box-shadow: none;\n      appearance: auto;\n    }\n\n    #gear-noise-calc input[type=\"number\"]:focus,\n    #gear-noise-calc select:focus {\n      outline: none;\n      border-color: var(--gnc-border-focus);\n      box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.12);\n      background: #fff;\n    }\n\n    #gear-noise-calc .gnc-unit-select { flex: 0 0 72px; }\n\n    #gear-noise-calc .gnc-unit-label {\n      padding: 0.55rem;\n      font-size: 0.8rem;\n      color: var(--gnc-text-muted);\n      flex: 0 0 72px;\n    }\n\n    #gear-noise-calc .gnc-input-readonly {\n      background: #eef2f7 !important;\n      cursor: default;\n    }\n\n    #gear-noise-calc .gnc-slider-group {\n      display: flex;\n      flex-direction: column;\n      gap: 0.4rem;\n    }\n\n    #gear-noise-calc .gnc-slider-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n    }\n\n    #gear-noise-calc .gnc-slider-value {\n      font-family: 'JetBrains Mono', monospace;\n      font-size: 0.8rem;\n      font-weight: 500;\n      color: var(--gnc-accent);\n      background: var(--gnc-accent-light);\n      padding: 0.15rem 0.5rem;\n      border-radius: 4px;\n    }\n\n    #gear-noise-calc input[type=\"range\"] {\n      -webkit-appearance: none;\n      appearance: none;\n      width: 100%;\n      height: 6px;\n      border-radius: 3px;\n      background: var(--gnc-border);\n      outline: none;\n      margin: 0;\n      padding: 0;\n      border: none;\n    }\n\n    #gear-noise-calc input[type=\"range\"]::-webkit-slider-thumb {\n      -webkit-appearance: none;\n      width: 18px;\n      height: 18px;\n      border-radius: 50%;\n      background: var(--gnc-accent);\n      cursor: pointer;\n      border: 2px solid #fff;\n      box-shadow: var(--gnc-shadow-sm);\n      transition: var(--gnc-transition);\n    }\n\n    #gear-noise-calc input[type=\"range\"]::-webkit-slider-thumb:hover {\n      transform: scale(1.1);\n      background: var(--gnc-accent-hover);\n    }\n\n    #gear-noise-calc input[type=\"range\"]::-moz-range-thumb {\n      width: 18px;\n      height: 18px;\n      border-radius: 50%;\n      background: var(--gnc-accent);\n      cursor: pointer;\n      border: 2px solid #fff;\n      box-shadow: var(--gnc-shadow-sm);\n    }\n\n    #gear-noise-calc .gnc-btn-row {\n      display: flex;\n      justify-content: center;\n      margin-top: 1.25rem;\n    }\n\n    #gear-noise-calc .gnc-btn {\n      padding: 1rem 1.5rem;\n      border-radius: 8px;\n      font-family: inherit;\n      font-size: 1.05rem;\n      font-weight: 600;\n      cursor: pointer;\n      border: none;\n      display: inline-flex;\n      align-items: center;\n      justify-content: center;\n      transition: var(--gnc-transition);\n      width: 33.33%;\n      min-width: 100px;\n      background: var(--gnc-accent);\n      color: #fff;\n      text-transform: none;\n      letter-spacing: normal;\n      line-height: normal;\n      box-shadow: none;\n      text-decoration: none;\n    }\n\n    #gear-noise-calc .gnc-btn:hover {\n      background: var(--gnc-accent-hover);\n      transform: translateY(-1px);\n      box-shadow: var(--gnc-shadow-md);\n      color: #fff;\n    }\n\n    #gear-noise-calc .gnc-results-card { display: none; }\n    #gear-noise-calc .gnc-results-card.gnc-visible { display: block; }\n\n    #gear-noise-calc .gnc-results-inner {\n      display: flex;\n      flex-direction: column;\n      gap: 1.25rem;\n    }\n\n    #gear-noise-calc .gnc-results-subtitle {\n      font-size: 0.85rem;\n      font-weight: 600;\n      color: var(--gnc-text-secondary);\n      padding-bottom: 0.5rem;\n      border-bottom: 1px solid var(--gnc-border);\n      margin-bottom: 0.25rem;\n    }\n\n    #gear-noise-calc .gnc-metric-cards {\n      display: grid;\n      grid-template-columns: repeat(2, 1fr);\n      gap: 0.85rem;\n    }\n\n    #gear-noise-calc .gnc-metric-card {\n      padding: 1rem 1.15rem;\n      border-radius: var(--gnc-radius);\n      border: 1px solid var(--gnc-border);\n      background: linear-gradient(135deg, #fafbfc 0%, #fff 100%);\n      transition: var(--gnc-transition);\n    }\n\n    #gear-noise-calc .gnc-metric-card:hover { box-shadow: var(--gnc-shadow-md); }\n\n    #gear-noise-calc .gnc-metric-card.gnc-primary {\n      grid-column: 1 \/ -1;\n      background: linear-gradient(135deg, #eff6ff 0%, #f0f9ff 100%);\n      border-color: #bfdbfe;\n    }\n\n    #gear-noise-calc .gnc-metric-label {\n      font-size: 0.72rem;\n      font-weight: 600;\n      text-transform: uppercase;\n      letter-spacing: 0.04em;\n      color: var(--gnc-text-muted);\n      margin-bottom: 0.35rem;\n    }\n\n    #gear-noise-calc .gnc-metric-value {\n      font-family: 'JetBrains Mono', monospace;\n      font-size: 1.65rem;\n      font-weight: 700;\n      color: var(--gnc-text-primary);\n      line-height: 1.2;\n    }\n\n    #gear-noise-calc .gnc-metric-card.gnc-primary .gnc-metric-value {\n      font-size: 2.25rem;\n      color: var(--gnc-accent);\n    }\n\n    #gear-noise-calc .gnc-metric-unit {\n      font-size: 0.85rem;\n      font-weight: 500;\n      color: var(--gnc-text-secondary);\n      margin-left: 0.25rem;\n    }\n\n    #gear-noise-calc .gnc-risk-badge-wrap {\n      display: flex;\n      align-items: center;\n      gap: 1rem;\n      padding: 1.15rem 1.25rem;\n      border-radius: var(--gnc-radius);\n      border: 2px solid;\n      transition: var(--gnc-transition);\n      margin-top: 1rem;\n    }\n\n    #gear-noise-calc .gnc-risk-badge-wrap.gnc-low { background: var(--gnc-risk-low-bg); border-color: var(--gnc-risk-low); }\n    #gear-noise-calc .gnc-risk-badge-wrap.gnc-moderate { background: var(--gnc-risk-mod-bg); border-color: var(--gnc-risk-mod); }\n    #gear-noise-calc .gnc-risk-badge-wrap.gnc-high { background: var(--gnc-risk-high-bg); border-color: var(--gnc-risk-high); }\n\n    #gear-noise-calc .gnc-risk-icon {\n      width: 48px;\n      height: 48px;\n      border-radius: 50%;\n      display: flex;\n      align-items: center;\n      justify-content: center;\n      font-size: 1.25rem;\n      flex-shrink: 0;\n    }\n\n    #gear-noise-calc .gnc-risk-badge-wrap.gnc-low .gnc-risk-icon { background: var(--gnc-risk-low); color: #fff; }\n    #gear-noise-calc .gnc-risk-badge-wrap.gnc-moderate .gnc-risk-icon { background: var(--gnc-risk-mod); color: #fff; }\n    #gear-noise-calc .gnc-risk-badge-wrap.gnc-high .gnc-risk-icon { background: var(--gnc-risk-high); color: #fff; }\n\n    #gear-noise-calc .gnc-risk-text h3 {\n      font-size: 1.1rem;\n      font-weight: 700;\n      margin: 0 0 0.15rem;\n      padding: 0;\n      line-height: 1.3;\n    }\n\n    #gear-noise-calc .gnc-risk-badge-wrap.gnc-low .gnc-risk-text h3 { color: var(--gnc-risk-low); }\n    #gear-noise-calc .gnc-risk-badge-wrap.gnc-moderate .gnc-risk-text h3 { color: var(--gnc-risk-mod); }\n    #gear-noise-calc .gnc-risk-badge-wrap.gnc-high .gnc-risk-text h3 { color: var(--gnc-risk-high); }\n\n    #gear-noise-calc .gnc-risk-text p {\n      font-size: 0.82rem;\n      color: var(--gnc-text-secondary);\n      margin: 0;\n      padding: 0;\n    }\n\n    #gear-noise-calc .gnc-gauge-container { margin-top: 0.5rem; padding: 0 0.25rem; }\n\n    #gear-noise-calc .gnc-gauge-bar {\n      height: 10px;\n      border-radius: 5px;\n      background: linear-gradient(to right, var(--gnc-risk-low) 0%, var(--gnc-risk-low) 35%, var(--gnc-risk-mod) 35%, var(--gnc-risk-mod) 65%, var(--gnc-risk-high) 65%, var(--gnc-risk-high) 100%);\n      position: relative;\n      margin-bottom: 0.35rem;\n    }\n\n    #gear-noise-calc .gnc-gauge-marker {\n      position: absolute;\n      top: -4px;\n      width: 4px;\n      height: 18px;\n      background: var(--gnc-text-primary);\n      border-radius: 2px;\n      transform: translateX(-50%);\n      transition: left 0.4s ease;\n      box-shadow: 0 0 4px rgba(0,0,0,0.3);\n    }\n\n    #gear-noise-calc .gnc-gauge-labels {\n      display: flex;\n      justify-content: space-between;\n      font-size: 0.68rem;\n      color: var(--gnc-text-muted);\n      font-weight: 500;\n    }\n\n    #gear-noise-calc .gnc-breakdown-list,\n    #gear-noise-calc .gnc-rec-list {\n      list-style: none;\n      margin: 0;\n      padding: 0;\n      display: flex;\n      flex-direction: column;\n      gap: 0.6rem;\n    }\n\n    #gear-noise-calc .gnc-rec-list { gap: 0.55rem; }\n\n    #gear-noise-calc .gnc-breakdown-item,\n    #gear-noise-calc .gnc-rec-item {\n      display: flex;\n      align-items: flex-start;\n      gap: 0.65rem;\n      padding: 0.65rem 0.75rem;\n      border-radius: 8px;\n      font-size: 0.82rem;\n      margin: 0;\n    }\n\n    #gear-noise-calc .gnc-breakdown-item {\n      background: var(--gnc-bg-input);\n      border-left: 3px solid;\n    }\n\n    #gear-noise-calc .gnc-breakdown-item.gnc-positive { border-color: var(--gnc-risk-high); }\n    #gear-noise-calc .gnc-breakdown-item.gnc-negative { border-color: var(--gnc-risk-low); }\n    #gear-noise-calc .gnc-breakdown-item.gnc-neutral { border-color: var(--gnc-text-muted); }\n\n    #gear-noise-calc .gnc-breakdown-item i { margin-top: 2px; flex-shrink: 0; }\n    #gear-noise-calc .gnc-breakdown-item.gnc-positive i { color: var(--gnc-risk-high); }\n    #gear-noise-calc .gnc-breakdown-item.gnc-negative i { color: var(--gnc-risk-low); }\n    #gear-noise-calc .gnc-breakdown-item.gnc-neutral i { color: var(--gnc-text-muted); }\n\n    #gear-noise-calc .gnc-factor-name { font-weight: 600; color: var(--gnc-text-primary); }\n    #gear-noise-calc .gnc-factor-detail { color: var(--gnc-text-secondary); font-size: 0.78rem; }\n\n    #gear-noise-calc .gnc-factor-delta {\n      margin-left: auto;\n      font-family: 'JetBrains Mono', monospace;\n      font-size: 0.75rem;\n      font-weight: 600;\n      white-space: nowrap;\n      flex-shrink: 0;\n    }\n\n    #gear-noise-calc .gnc-breakdown-item.gnc-positive .gnc-factor-delta { color: var(--gnc-risk-high); }\n    #gear-noise-calc .gnc-breakdown-item.gnc-negative .gnc-factor-delta { color: var(--gnc-risk-low); }\n\n    #gear-noise-calc .gnc-rec-item {\n      gap: 0.6rem;\n      padding: 0.6rem 0.75rem;\n      background: #fffbeb;\n      border: 1px solid #fde68a;\n      color: #92400e;\n    }\n\n    #gear-noise-calc .gnc-rec-item i { color: #d97706; margin-top: 2px; flex-shrink: 0; }\n\n    #gear-noise-calc .gnc-rec-item.gnc-none {\n      background: var(--gnc-risk-low-bg);\n      border-color: #a7f3d0;\n      color: #065f46;\n    }\n\n    #gear-noise-calc .gnc-rec-item.gnc-none i { color: var(--gnc-risk-low); }\n\n    @media (max-width: 600px) {\n      #gear-noise-calc .gnc-form-grid { grid-template-columns: 1fr; }\n    }\n\n    @media (max-width: 500px) {\n      #gear-noise-calc .gnc-metric-cards { grid-template-columns: 1fr; }\n    }\n  <\/style>\n<div id=\"gear-noise-calc\">\n  <div class=\"gnc-container\">\n\n    <div class=\"gnc-card\">\n      <div class=\"gnc-card-body\">\n        <div class=\"gnc-form-grid\">\n          <div class=\"gnc-form-group\">\n            <label>\n              Rotational Speed\n              <span class=\"gnc-tooltip-wrap\">\n                <span class=\"gnc-tooltip-icon\">?<\/span>\n                <span class=\"gnc-tooltip-text\">Pinion rotational speed in revolutions per minute. Higher speeds increase mesh frequency and pitch line velocity.<\/span>\n              <\/span>\n            <\/label>\n            <div class=\"gnc-input-row\">\n              <input type=\"number\" id=\"gnc-rpm\" value=\"1500\" min=\"1\" max=\"60000\" step=\"1\">\n              <span class=\"gnc-unit-label\">RPM<\/span>\n            <\/div>\n          <\/div>\n          <div class=\"gnc-form-group\">\n            <label>\n              Transmitted Power\n              <span class=\"gnc-tooltip-wrap\">\n                <span class=\"gnc-tooltip-icon\">?<\/span>\n                <span class=\"gnc-tooltip-text\">Mechanical power transmitted through the gear pair. Higher power generally increases radiated noise.<\/span>\n              <\/span>\n            <\/label>\n            <div class=\"gnc-input-row\">\n              <input type=\"number\" id=\"gnc-power\" value=\"75\" min=\"0.1\" max=\"10000\" step=\"0.1\">\n              <select id=\"gnc-powerUnit\" class=\"gnc-unit-select\">\n                <option value=\"kW\" selected>kW<\/option>\n                <option value=\"HP\">HP<\/option>\n              <\/select>\n            <\/div>\n          <\/div>\n          <div class=\"gnc-form-group\">\n            <label>\n              Operating Torque\n              <span class=\"gnc-tooltip-wrap\">\n                <span class=\"gnc-tooltip-icon\">?<\/span>\n                <span class=\"gnc-tooltip-text\">Torque at the pinion shaft. Auto-calculated from power and speed: T = 9550 \u00d7 P(kW) \/ N(RPM).<\/span>\n              <\/span>\n            <\/label>\n            <div class=\"gnc-input-row\">\n              <input type=\"number\" id=\"gnc-torque\" value=\"477\" min=\"0.1\" max=\"100000\" step=\"0.1\" readonly class=\"gnc-input-readonly\">\n              <span class=\"gnc-unit-label\">Nm<\/span>\n            <\/div>\n          <\/div>\n          <div class=\"gnc-form-group\">\n            <label>\n              Pinion Teeth (Z\u2081)\n              <span class=\"gnc-tooltip-wrap\">\n                <span class=\"gnc-tooltip-icon\">?<\/span>\n                <span class=\"gnc-tooltip-text\">Number of teeth on the driving (pinion) gear. Used for pitch diameter and mesh frequency calculation.<\/span>\n              <\/span>\n            <\/label>\n            <input type=\"number\" id=\"gnc-zPinion\" value=\"24\" min=\"6\" max=\"500\" step=\"1\">\n          <\/div>\n          <div class=\"gnc-form-group\">\n            <label>\n              Gear Teeth (Z\u2082)\n              <span class=\"gnc-tooltip-wrap\">\n                <span class=\"gnc-tooltip-icon\">?<\/span>\n                <span class=\"gnc-tooltip-text\">Number of teeth on the driven gear. Affects speed ratio but mesh frequency is determined by pinion.<\/span>\n              <\/span>\n            <\/label>\n            <input type=\"number\" id=\"gnc-zGear\" value=\"72\" min=\"6\" max=\"500\" step=\"1\">\n          <\/div>\n          <div class=\"gnc-form-group\">\n            <label>\n              Module\n              <span class=\"gnc-tooltip-wrap\">\n                <span class=\"gnc-tooltip-icon\">?<\/span>\n                <span class=\"gnc-tooltip-text\">Metric module in mm. Pitch diameter d = m \u00d7 Z. Larger modules increase pitch line velocity at given RPM.<\/span>\n              <\/span>\n            <\/label>\n            <div class=\"gnc-input-row\">\n              <input type=\"number\" id=\"gnc-module\" value=\"4\" min=\"0.5\" max=\"50\" step=\"0.1\">\n              <span class=\"gnc-unit-label\">mm<\/span>\n            <\/div>\n          <\/div>\n          <div class=\"gnc-form-group\">\n            <label>\n              Gear Type\n              <span class=\"gnc-tooltip-wrap\">\n                <span class=\"gnc-tooltip-icon\">?<\/span>\n                <span class=\"gnc-tooltip-text\">Helical and planetary gears generally produce less noise than spur gears due to gradual tooth engagement.<\/span>\n              <\/span>\n            <\/label>\n            <select id=\"gnc-gearType\">\n              <option value=\"spur\">Spur<\/option>\n              <option value=\"helical\" selected>Helical<\/option>\n              <option value=\"bevel\">Bevel<\/option>\n              <option value=\"planetary\">Planetary<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"gnc-form-group gnc-full-width gnc-slider-group\">\n            <div class=\"gnc-slider-header\">\n              <label style=\"margin:0;\">\n                Contact Ratio\n                <span class=\"gnc-tooltip-wrap\">\n                  <span class=\"gnc-tooltip-icon\">?<\/span>\n                  <span class=\"gnc-tooltip-text\">Total transverse contact ratio. Values above 1.4 ensure continuous meshing and reduce impact noise. Helical gears typically achieve 1.5\u20132.5.<\/span>\n                <\/span>\n              <\/label>\n              <span class=\"gnc-slider-value\" id=\"gnc-contactRatioVal\">1.65<\/span>\n            <\/div>\n            <input type=\"range\" id=\"gnc-contactRatio\" min=\"1.0\" max=\"2.5\" step=\"0.05\" value=\"1.65\">\n          <\/div>\n          <div class=\"gnc-form-group gnc-full-width gnc-slider-group\">\n            <div class=\"gnc-slider-header\">\n              <label style=\"margin:0;\">\n                ISO \/ AGMA Quality Class\n                <span class=\"gnc-tooltip-wrap\">\n                  <span class=\"gnc-tooltip-icon\">?<\/span>\n                  <span class=\"gnc-tooltip-text\">ISO 1328 grade (3 = highest precision, 12 = lowest). Lower grade numbers reduce transmission error and noise.<\/span>\n                <\/span>\n              <\/label>\n              <span class=\"gnc-slider-value\" id=\"gnc-qualityVal\">7<\/span>\n            <\/div>\n            <input type=\"range\" id=\"gnc-quality\" min=\"3\" max=\"12\" step=\"1\" value=\"7\">\n          <\/div>\n          <div class=\"gnc-form-group\">\n            <label>\n              Surface Roughness (Ra)\n              <span class=\"gnc-tooltip-wrap\">\n                <span class=\"gnc-tooltip-icon\">?<\/span>\n                <span class=\"gnc-tooltip-text\">Tooth flank surface roughness in micrometers. Smoother finishes reduce frictional and high-frequency noise.<\/span>\n              <\/span>\n            <\/label>\n            <div class=\"gnc-input-row\">\n              <input type=\"number\" id=\"gnc-roughness\" value=\"0.8\" min=\"0.1\" max=\"6.3\" step=\"0.1\">\n              <span class=\"gnc-unit-label\">\u00b5m<\/span>\n            <\/div>\n          <\/div>\n          <div class=\"gnc-form-group\">\n            <label>\n              Lubrication Type\n              <span class=\"gnc-tooltip-wrap\">\n                <span class=\"gnc-tooltip-icon\">?<\/span>\n                <span class=\"gnc-tooltip-text\">Oil jet lubrication provides best film thickness and damping. Grease lubrication may increase noise at high speeds.<\/span>\n              <\/span>\n            <\/label>\n            <select id=\"gnc-lubrication\">\n              <option value=\"splash\">Oil Splash<\/option>\n              <option value=\"jet\" selected>Oil Jet<\/option>\n              <option value=\"grease\">Grease<\/option>\n            <\/select>\n          <\/div>\n          <div class=\"gnc-form-group gnc-full-width\">\n            <label>\n              Gear Housing Type\n              <span class=\"gnc-tooltip-wrap\">\n                <span class=\"gnc-tooltip-icon\">?<\/span>\n                <span class=\"gnc-tooltip-text\">Housing material affects structural damping and acoustic radiation. Cast iron provides best attenuation; thin enclosures radiate more noise.<\/span>\n              <\/span>\n            <\/label>\n            <select id=\"gnc-housing\">\n              <option value=\"castIron\" selected>Cast Iron<\/option>\n              <option value=\"weldedSteel\">Welded Steel<\/option>\n              <option value=\"aluminum\">Aluminum<\/option>\n              <option value=\"thinWall\">Thin-walled Enclosure<\/option>\n            <\/select>\n          <\/div>\n        <\/div>\n        <div class=\"gnc-btn-row\">\n          <button type=\"button\" class=\"gnc-btn\" id=\"gnc-btnCalculate\" onclick=\"(function(){if(window.GearNoiseCalc){if(window.GearNoiseCalc.run){GearNoiseCalc.run();}return;}var t=document.getElementById('gnc-js-b64');if(!t){return;}var c=t.textContent.replace(\/\\s\/g,'');var s=document.createElement('script');s.type='text\/javascript';s.text=atob(c);document.body.appendChild(s);setTimeout(function(){if(window.GearNoiseCalc){if(window.GearNoiseCalc.run){GearNoiseCalc.run();}}},150);})()\">Calculate<\/button>\n        <\/div>\n      <\/div>\n    <\/div>\n\n    <div class=\"gnc-card gnc-results-card\" id=\"gnc-resultsCard\">\n      <div class=\"gnc-card-body gnc-results-inner\">\n        <div>\n          <div class=\"gnc-metric-cards\">\n            <div class=\"gnc-metric-card gnc-primary\">\n              <div class=\"gnc-metric-label\">Estimated Sound Pressure Level<\/div>\n              <div><span class=\"gnc-metric-value\" id=\"gnc-outSPL\">\u2014<\/span><span class=\"gnc-metric-unit\">dB(A) @ 1m<\/span><\/div>\n              <div class=\"gnc-gauge-container\">\n                <div class=\"gnc-gauge-bar\">\n                  <div class=\"gnc-gauge-marker\" id=\"gnc-gaugeMarker\" style=\"left:50%\"><\/div>\n                <\/div>\n                <div class=\"gnc-gauge-labels\">\n                  <span>60<\/span><span>75<\/span><span>85<\/span><span>100<\/span>\n                <\/div>\n              <\/div>\n            <\/div>\n            <div class=\"gnc-metric-card\">\n              <div class=\"gnc-metric-label\">Tooth Meshing Frequency<\/div>\n              <div><span class=\"gnc-metric-value\" id=\"gnc-outTMF\">\u2014<\/span><span class=\"gnc-metric-unit\">Hz<\/span><\/div>\n            <\/div>\n            <div class=\"gnc-metric-card\">\n              <div class=\"gnc-metric-label\">Pitch Line Velocity<\/div>\n              <div><span class=\"gnc-metric-value\" id=\"gnc-outPLV\">\u2014<\/span><span class=\"gnc-metric-unit\">m\/s<\/span><\/div>\n            <\/div>\n            <div class=\"gnc-metric-card\">\n              <div class=\"gnc-metric-label\">Gear Ratio (i)<\/div>\n              <div><span class=\"gnc-metric-value\" id=\"gnc-outRatio\">\u2014<\/span><span class=\"gnc-metric-unit\">:1<\/span><\/div>\n            <\/div>\n            <div class=\"gnc-metric-card\">\n              <div class=\"gnc-metric-label\">Vibration Index<\/div>\n              <div><span class=\"gnc-metric-value\" id=\"gnc-outVibIndex\">\u2014<\/span><span class=\"gnc-metric-unit\">\/ 100<\/span><\/div>\n            <\/div>\n          <\/div>\n          <div class=\"gnc-risk-badge-wrap gnc-moderate\" id=\"gnc-riskBadge\">\n            <div class=\"gnc-risk-icon\"><i class=\"fa-solid fa-triangle-exclamation\"><\/i><\/div>\n            <div class=\"gnc-risk-text\">\n              <h3 id=\"gnc-riskLevel\">Moderate Risk<\/h3>\n              <p id=\"gnc-riskDesc\">Calculating&#8230;<\/p>\n            <\/div>\n          <\/div>\n        <\/div>\n        <div>\n          <div class=\"gnc-results-subtitle\">Noise Factor Breakdown<\/div>\n          <ul class=\"gnc-breakdown-list\" id=\"gnc-breakdownList\">\n            <li class=\"gnc-breakdown-item gnc-neutral\"><i class=\"fa-solid fa-circle-info\"><\/i><span>Adjust parameters to see factor analysis.<\/span><\/li>\n          <\/ul>\n        <\/div>\n        <div>\n          <div class=\"gnc-results-subtitle\">Engineering Recommendations<\/div>\n          <ul class=\"gnc-rec-list\" id=\"gnc-recList\">\n            <li class=\"gnc-rec-item gnc-none\"><i class=\"fa-solid fa-check-circle\"><\/i><span>Adjust parameters to receive tailored recommendations.<\/span><\/li>\n          <\/ul>\n        <\/div>\n      <\/div>\n    <\/div>\n\n  <\/div>\n<\/div>\n<textarea id=\"gnc-js-b64\" aria-hidden=\"true\" style=\"display:none!important;width:0;height:0;border:0;padding:0;\">LyogR2VhciBOb2lzZSBSaXNrIEFzc2Vzc21lbnQgQ2FsY3VsYXRvciAtIFdvcmRQcmVzcy1zYWZlIGV4dGVybmFsIHNjcmlwdCAqLw0Kd2luZG93LkdlYXJOb2lzZUNhbGMgPSB7IHJ1bjogZnVuY3Rpb24gKCkgeyBpZiAodGhpcy5fY2FsYykgdGhpcy5fY2FsYygpOyB9IH07DQoNCihmdW5jdGlvbiAoKSB7DQogIGZ1bmN0aW9uIGVsKHRhZywgY2xzLCB0ZXh0KSB7DQogICAgdmFyIG5vZGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KHRhZyk7DQogICAgaWYgKGNscykgbm9kZS5jbGFzc05hbWUgPSBjbHM7DQogICAgaWYgKHRleHQgIT0gbnVsbCkgbm9kZS50ZXh0Q29udGVudCA9IHRleHQ7DQogICAgcmV0dXJuIG5vZGU7DQogIH0NCg0KICBmdW5jdGlvbiBlbEljb24oaWNvbkNscykgew0KICAgIHZhciBpID0gZWwoJ2knKTsNCiAgICBpLmNsYXNzTmFtZSA9ICdmYS1zb2xpZCAnICsgaWNvbkNsczsNCiAgICByZXR1cm4gaTsNCiAgfQ0KDQogIGZ1bmN0aW9uIGluaXRHZWFyTm9pc2VDYWxjKCkgew0KICAgIHZhciByb290ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dlYXItbm9pc2UtY2FsYycpOw0KICAgIGlmICghcm9vdCkgcmV0dXJuOw0KICAgIGlmIChyb290LmdldEF0dHJpYnV0ZSgnZGF0YS1nbmMtaW5pdCcpID09PSAnMScpIHJldHVybjsNCiAgICByb290LnNldEF0dHJpYnV0ZSgnZGF0YS1nbmMtaW5pdCcsICcxJyk7DQoNCiAgICBmdW5jdGlvbiAkKGlkKSB7IHJldHVybiByb290LnF1ZXJ5U2VsZWN0b3IoJyMnICsgaWQpOyB9DQoNCiAgICB2YXIgaW5wdXRzID0gew0KICAgICAgcnBtOiAkKCdnbmMtcnBtJyksDQogICAgICBwb3dlcjogJCgnZ25jLXBvd2VyJyksDQogICAgICBwb3dlclVuaXQ6ICQoJ2duYy1wb3dlclVuaXQnKSwNCiAgICAgIHRvcnF1ZTogJCgnZ25jLXRvcnF1ZScpLA0KICAgICAgelBpbmlvbjogJCgnZ25jLXpQaW5pb24nKSwNCiAgICAgIHpHZWFyOiAkKCdnbmMtekdlYXInKSwNCiAgICAgIG1vZHVsZTogJCgnZ25jLW1vZHVsZScpLA0KICAgICAgZ2VhclR5cGU6ICQoJ2duYy1nZWFyVHlwZScpLA0KICAgICAgY29udGFjdFJhdGlvOiAkKCdnbmMtY29udGFjdFJhdGlvJyksDQogICAgICBjb250YWN0UmF0aW9WYWw6ICQoJ2duYy1jb250YWN0UmF0aW9WYWwnKSwNCiAgICAgIHF1YWxpdHk6ICQoJ2duYy1xdWFsaXR5JyksDQogICAgICBxdWFsaXR5VmFsOiAkKCdnbmMtcXVhbGl0eVZhbCcpLA0KICAgICAgcm91Z2huZXNzOiAkKCdnbmMtcm91Z2huZXNzJyksDQogICAgICBsdWJyaWNhdGlvbjogJCgnZ25jLWx1YnJpY2F0aW9uJyksDQogICAgICBob3VzaW5nOiAkKCdnbmMtaG91c2luZycpDQogICAgfTsNCg0KICAgIHZhciBvdXRwdXRzID0gew0KICAgICAgc3BsOiAkKCdnbmMtb3V0U1BMJyksDQogICAgICB0bWY6ICQoJ2duYy1vdXRUTUYnKSwNCiAgICAgIHBsdjogJCgnZ25jLW91dFBMVicpLA0KICAgICAgcmF0aW86ICQoJ2duYy1vdXRSYXRpbycpLA0KICAgICAgdmliSW5kZXg6ICQoJ2duYy1vdXRWaWJJbmRleCcpLA0KICAgICAgZ2F1Z2VNYXJrZXI6ICQoJ2duYy1nYXVnZU1hcmtlcicpLA0KICAgICAgcmlza0JhZGdlOiAkKCdnbmMtcmlza0JhZGdlJyksDQogICAgICByaXNrTGV2ZWw6ICQoJ2duYy1yaXNrTGV2ZWwnKSwNCiAgICAgIHJpc2tEZXNjOiAkKCdnbmMtcmlza0Rlc2MnKSwNCiAgICAgIGJyZWFrZG93bkxpc3Q6ICQoJ2duYy1icmVha2Rvd25MaXN0JyksDQogICAgICByZWNMaXN0OiAkKCdnbmMtcmVjTGlzdCcpLA0KICAgICAgcmVzdWx0c0NhcmQ6ICQoJ2duYy1yZXN1bHRzQ2FyZCcpDQogICAgfTsNCg0KICAgIGZ1bmN0aW9uIHBvd2VyVG9LVyhwb3dlciwgdW5pdCkgew0KICAgICAgcmV0dXJuIHVuaXQgPT09ICdIUCcgPyBwb3dlciAqIDAuNzQ1NyA6IHBvd2VyOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGNhbGNUb3JxdWUocG93ZXJLVywgcnBtKSB7DQogICAgICBpZiAoMCA+PSBycG0pIHJldHVybiAwOw0KICAgICAgcmV0dXJuICg5NTUwICogcG93ZXJLVykgLyBycG07DQogICAgfQ0KDQogICAgZnVuY3Rpb24gcGl0Y2hEaWFtZXRlcihtb2R1bGUsIHopIHsNCiAgICAgIHJldHVybiBtb2R1bGUgKiB6Ow0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIHBpdGNoTGluZVZlbG9jaXR5KHJwbSwgbW9kdWxlLCB6UGluaW9uKSB7DQogICAgICB2YXIgZCA9IHBpdGNoRGlhbWV0ZXIobW9kdWxlLCB6UGluaW9uKTsNCiAgICAgIHJldHVybiAoTWF0aC5QSSAqIGQgKiBycG0pIC8gNjAwMDA7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gdG9vdGhNZXNoaW5nRnJlcXVlbmN5KHJwbSwgelBpbmlvbikgew0KICAgICAgcmV0dXJuIChycG0gKiB6UGluaW9uKSAvIDYwOw0KICAgIH0NCg0KICAgIHZhciBHRUFSX1RZUEUgPSB7DQogICAgICBzcHVyOiAgICAgIHsgb2Zmc2V0OiAwLCAgIGxhYmVsOiAnU3B1ciBHZWFyJyB9LA0KICAgICAgaGVsaWNhbDogICB7IG9mZnNldDogLTYsICBsYWJlbDogJ0hlbGljYWwgR2VhcicgfSwNCiAgICAgIGJldmVsOiAgICAgeyBvZmZzZXQ6IDMsICAgbGFiZWw6ICdCZXZlbCBHZWFyJyB9LA0KICAgICAgcGxhbmV0YXJ5OiB7IG9mZnNldDogLTQsICBsYWJlbDogJ1BsYW5ldGFyeSBHZWFyJyB9DQogICAgfTsNCg0KICAgIGZ1bmN0aW9uIHF1YWxpdHlPZmZzZXQoZ3JhZGUpIHsNCiAgICAgIHZhciBtYXAgPSB7IDM6IC04LCA0OiAtNiwgNTogLTUsIDY6IC0zLCA3OiAtMSwgODogMCwgOTogMiwgMTA6IDQsIDExOiA2LCAxMjogOCB9Ow0KICAgICAgcmV0dXJuIG1hcFtncmFkZV0gIT09IHVuZGVmaW5lZCA\/IG1hcFtncmFkZV0gOiAwOw0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIGNvbnRhY3RSYXRpb09mZnNldChjcikgew0KICAgICAgaWYgKDEuMiA+IGNyKSByZXR1cm4gNTsNCiAgICAgIGlmICgxLjQgPiBjcikgcmV0dXJuIDI7DQogICAgICBpZiAoMS42ID4gY3IpIHJldHVybiAwOw0KICAgICAgaWYgKDEuOSA+IGNyKSByZXR1cm4gLTI7DQogICAgICByZXR1cm4gLTQ7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gcm91Z2huZXNzT2Zmc2V0KHJhKSB7DQogICAgICBpZiAoMC40ID49IHJhKSByZXR1cm4gLTI7DQogICAgICBpZiAoMC44ID49IHJhKSByZXR1cm4gMDsNCiAgICAgIGlmICgxLjYgPj0gcmEpIHJldHVybiAyOw0KICAgICAgaWYgKDMuMiA+PSByYSkgcmV0dXJuIDQ7DQogICAgICByZXR1cm4gNjsNCiAgICB9DQoNCiAgICB2YXIgTFVCUklDQVRJT04gPSB7DQogICAgICBzcGxhc2g6IHsgb2Zmc2V0OiAwLCAgbGFiZWw6ICdPaWwgU3BsYXNoJyB9LA0KICAgICAgamV0OiAgICB7IG9mZnNldDogLTIsIGxhYmVsOiAnT2lsIEpldCcgfSwNCiAgICAgIGdyZWFzZTogeyBvZmZzZXQ6IDMsICBsYWJlbDogJ0dyZWFzZScgfQ0KICAgIH07DQoNCiAgICB2YXIgSE9VU0lORyA9IHsNCiAgICAgIGNhc3RJcm9uOiAgICB7IG9mZnNldDogLTQsIGxhYmVsOiAnQ2FzdCBJcm9uIEhvdXNpbmcnIH0sDQogICAgICB3ZWxkZWRTdGVlbDogeyBvZmZzZXQ6IC0xLCBsYWJlbDogJ1dlbGRlZCBTdGVlbCBIb3VzaW5nJyB9LA0KICAgICAgYWx1bWludW06ICAgIHsgb2Zmc2V0OiAxLCAgbGFiZWw6ICdBbHVtaW51bSBIb3VzaW5nJyB9LA0KICAgICAgdGhpbldhbGw6ICAgIHsgb2Zmc2V0OiA1LCAgbGFiZWw6ICdUaGluLXdhbGxlZCBFbmNsb3N1cmUnIH0NCiAgICB9Ow0KDQogICAgZnVuY3Rpb24gZmFjdG9yVHlwZShkZWx0YSkgew0KICAgICAgaWYgKGRlbHRhID4gMCkgcmV0dXJuICdnbmMtcG9zaXRpdmUnOw0KICAgICAgaWYgKDAgPiBkZWx0YSkgcmV0dXJuICdnbmMtbmVnYXRpdmUnOw0KICAgICAgcmV0dXJuICdnbmMtbmV1dHJhbCc7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gZXN0aW1hdGVTUEwocGFyYW1zKSB7DQogICAgICB2YXIgcG93ZXJLVyA9IHBhcmFtcy5wb3dlcktXLCBwbHYgPSBwYXJhbXMucGx2LCBnZWFyVHlwZSA9IHBhcmFtcy5nZWFyVHlwZTsNCiAgICAgIHZhciBxdWFsaXR5ID0gcGFyYW1zLnF1YWxpdHksIGNvbnRhY3RSYXRpbyA9IHBhcmFtcy5jb250YWN0UmF0aW87DQogICAgICB2YXIgcm91Z2huZXNzID0gcGFyYW1zLnJvdWdobmVzcywgbHVicmljYXRpb24gPSBwYXJhbXMubHVicmljYXRpb24sIGhvdXNpbmcgPSBwYXJhbXMuaG91c2luZzsNCg0KICAgICAgdmFyIHNwbCA9IDUyOw0KICAgICAgaWYgKHBvd2VyS1cgPiAwKSBzcGwgKz0gMTAgKiBNYXRoLmxvZzEwKHBvd2VyS1cpOw0KICAgICAgaWYgKHBsdiA+IDApIHNwbCArPSAxOCAqIE1hdGgubG9nMTAoTWF0aC5tYXgocGx2LCAwLjUpKTsNCg0KICAgICAgdmFyIGZhY3RvcnMgPSBbXTsNCiAgICAgIHZhciBndCA9IEdFQVJfVFlQRVtnZWFyVHlwZV07DQogICAgICBzcGwgKz0gZ3Qub2Zmc2V0Ow0KICAgICAgZmFjdG9ycy5wdXNoKHsNCiAgICAgICAgbmFtZTogZ3QubGFiZWwsDQogICAgICAgIGRldGFpbDogMCA+PSBndC5vZmZzZXQgPyAnR3JhZHVhbCBlbmdhZ2VtZW50IHJlZHVjZXMgaW1wYWN0IG5vaXNlJyA6ICdJbXBhY3QgZW5nYWdlbWVudCBpbmNyZWFzZXMgbm9pc2UnLA0KICAgICAgICBkZWx0YTogZ3Qub2Zmc2V0LA0KICAgICAgICB0eXBlOiBmYWN0b3JUeXBlKGd0Lm9mZnNldCkNCiAgICAgIH0pOw0KDQogICAgICB2YXIgcU9mZiA9IHF1YWxpdHlPZmZzZXQocXVhbGl0eSk7DQogICAgICBzcGwgKz0gcU9mZjsNCiAgICAgIGZhY3RvcnMucHVzaCh7DQogICAgICAgIG5hbWU6ICdJU08gR3JhZGUgJyArIHF1YWxpdHksDQogICAgICAgIGRldGFpbDogMCA+PSBxT2ZmID8gJ1ByZWNpc2lvbiBncmFkZSByZWR1Y2VzIHRyYW5zbWlzc2lvbiBlcnJvcicgOiAnTG93IHByZWNpc2lvbiBpbmNyZWFzZXMgdmlicmF0aW9uJywNCiAgICAgICAgZGVsdGE6IHFPZmYsDQogICAgICAgIHR5cGU6IGZhY3RvclR5cGUocU9mZikNCiAgICAgIH0pOw0KDQogICAgICB2YXIgY3JPZmYgPSBjb250YWN0UmF0aW9PZmZzZXQoY29udGFjdFJhdGlvKTsNCiAgICAgIHNwbCArPSBjck9mZjsNCiAgICAgIGZhY3RvcnMucHVzaCh7DQogICAgICAgIG5hbWU6ICdDb250YWN0IFJhdGlvICcgKyBjb250YWN0UmF0aW8udG9GaXhlZCgyKSwNCiAgICAgICAgZGV0YWlsOiAwID49IGNyT2ZmID8gJ0FkZXF1YXRlIG92ZXJsYXAgc21vb3RocyBtZXNoaW5nJyA6ICdJbnN1ZmZpY2llbnQgb3ZlcmxhcCBjYXVzZXMgaW1wYWN0IG5vaXNlJywNCiAgICAgICAgZGVsdGE6IGNyT2ZmLA0KICAgICAgICB0eXBlOiBmYWN0b3JUeXBlKGNyT2ZmKQ0KICAgICAgfSk7DQoNCiAgICAgIHZhciByT2ZmID0gcm91Z2huZXNzT2Zmc2V0KHJvdWdobmVzcyk7DQogICAgICBzcGwgKz0gck9mZjsNCiAgICAgIGZhY3RvcnMucHVzaCh7DQogICAgICAgIG5hbWU6ICdTdXJmYWNlIFJhICcgKyByb3VnaG5lc3MgKyAnIHVtJywNCiAgICAgICAgZGV0YWlsOiAwID49IHJPZmYgPyAnU21vb3RoIGZpbmlzaCByZWR1Y2VzIGZyaWN0aW9uIG5vaXNlJyA6ICdSb3VnaCBzdXJmYWNlIGluY3JlYXNlcyBoaWdoLWZyZXF1ZW5jeSBub2lzZScsDQogICAgICAgIGRlbHRhOiByT2ZmLA0KICAgICAgICB0eXBlOiBmYWN0b3JUeXBlKHJPZmYpDQogICAgICB9KTsNCg0KICAgICAgdmFyIGx1YiA9IExVQlJJQ0FUSU9OW2x1YnJpY2F0aW9uXTsNCiAgICAgIHNwbCArPSBsdWIub2Zmc2V0Ow0KICAgICAgZmFjdG9ycy5wdXNoKHsNCiAgICAgICAgbmFtZTogbHViLmxhYmVsLA0KICAgICAgICBkZXRhaWw6IDAgPj0gbHViLm9mZnNldCA\/ICdFZmZlY3RpdmUgbHVicmljYXRpb24gZmlsbSByZWR1Y2VzIGZyaWN0aW9uJyA6ICdJbmFkZXF1YXRlIGx1YnJpY2F0aW9uIGF0IHNwZWVkJywNCiAgICAgICAgZGVsdGE6IGx1Yi5vZmZzZXQsDQogICAgICAgIHR5cGU6IGZhY3RvclR5cGUobHViLm9mZnNldCkNCiAgICAgIH0pOw0KDQogICAgICB2YXIgaG91cyA9IEhPVVNJTkdbaG91c2luZ107DQogICAgICBzcGwgKz0gaG91cy5vZmZzZXQ7DQogICAgICBmYWN0b3JzLnB1c2goew0KICAgICAgICBuYW1lOiBob3VzLmxhYmVsLA0KICAgICAgICBkZXRhaWw6IDAgPj0gaG91cy5vZmZzZXQgPyAnU3RydWN0dXJhbCBkYW1waW5nIGF0dGVudWF0ZXMgcmFkaWF0aW9uJyA6ICdMb3cgbWFzcy9kYW1waW5nIHJhZGlhdGVzIG1vcmUgbm9pc2UnLA0KICAgICAgICBkZWx0YTogaG91cy5vZmZzZXQsDQogICAgICAgIHR5cGU6IGZhY3RvclR5cGUoaG91cy5vZmZzZXQpDQogICAgICB9KTsNCg0KICAgICAgaWYgKHBsdiA+IDE1KSB7DQogICAgICAgIGZhY3RvcnMucHVzaCh7DQogICAgICAgICAgbmFtZTogJ0hpZ2ggUGl0Y2ggTGluZSBWZWxvY2l0eScsDQogICAgICAgICAgZGV0YWlsOiAnViA9ICcgKyBwbHYudG9GaXhlZCgyKSArICcgbS9zIGV4Y2VlZHMgMTUgbS9zIHRocmVzaG9sZCcsDQogICAgICAgICAgZGVsdGE6IG51bGwsDQogICAgICAgICAgdHlwZTogJ2duYy1wb3NpdGl2ZScNCiAgICAgICAgfSk7DQogICAgICB9DQoNCiAgICAgIHJldHVybiB7IHNwbDogTWF0aC5yb3VuZChzcGwgKiAxMCkgLyAxMCwgZmFjdG9yczogZmFjdG9ycyB9Ow0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIHZpYnJhdGlvbkluZGV4KHNwbCwgcGx2LCBxdWFsaXR5KSB7DQogICAgICB2YXIgaWR4ID0gKHNwbCAtIDYwKSAqIDEuNSArIHBsdiAqIDEuMiArIChxdWFsaXR5IC0gNikgKiAzOw0KICAgICAgcmV0dXJuIE1hdGgubWluKDEwMCwgTWF0aC5tYXgoMCwgTWF0aC5yb3VuZChpZHgpKSk7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gcmlza0NhdGVnb3J5KHNwbCwgdmliSWR4KSB7DQogICAgICBpZiAoNzUgPiBzcGwpIHsNCiAgICAgICAgaWYgKDQwID4gdmliSWR4KSB7DQogICAgICAgIHJldHVybiB7DQogICAgICAgICAgbGV2ZWw6ICdMb3cnLA0KICAgICAgICAgIGNsczogJ2duYy1sb3cnLA0KICAgICAgICAgIGljb246ICdmYS1zaGllbGQtY2hlY2snLA0KICAgICAgICAgIGRlc2M6ICdOb2lzZSBsZXZlbHMgYXJlIHdpdGhpbiBhY2NlcHRhYmxlIGxpbWl0cyBmb3IgbW9zdCBpbmR1c3RyaWFsIGVudmlyb25tZW50cyAodW5kZXIgNzUgZEIoQSkpLicNCiAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgaWYgKDg1ID4gc3BsKSB7DQogICAgICAgIGlmICg3MCA+IHZpYklkeCkgew0KICAgICAgICByZXR1cm4gew0KICAgICAgICAgIGxldmVsOiAnTW9kZXJhdGUnLA0KICAgICAgICAgIGNsczogJ2duYy1tb2RlcmF0ZScsDQogICAgICAgICAgaWNvbjogJ2ZhLXRyaWFuZ2xlLWV4Y2xhbWF0aW9uJywNCiAgICAgICAgICBkZXNjOiAnTm9pc2UgbWF5IGV4Y2VlZCBjb21mb3J0IHRocmVzaG9sZHMuIENvbnNpZGVyIG1pdGlnYXRpb24gbWVhc3VyZXMgZm9yIG9wZXJhdG9yLXByb3hpbWF0ZSBpbnN0YWxsYXRpb25zLicNCiAgICAgICAgfTsNCiAgICAgICAgfQ0KICAgICAgfQ0KICAgICAgcmV0dXJuIHsNCiAgICAgICAgbGV2ZWw6ICdIaWdoJywNCiAgICAgICAgY2xzOiAnZ25jLWhpZ2gnLA0KICAgICAgICBpY29uOiAnZmEtY2lyY2xlLXJhZGlhdGlvbicsDQogICAgICAgIGRlc2M6ICdTaWduaWZpY2FudCBub2lzZSByaXNrIGRldGVjdGVkLiBFbmdpbmVlcmluZyBpbnRlcnZlbnRpb24gcmVjb21tZW5kZWQgYmVmb3JlIGRlcGxveW1lbnQuJw0KICAgICAgfTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBnZW5lcmF0ZVJlY29tbWVuZGF0aW9ucyhwYXJhbXMsIHJlc3VsdCkgew0KICAgICAgdmFyIHJlY3MgPSBbXTsNCiAgICAgIHZhciBnZWFyVHlwZSA9IHBhcmFtcy5nZWFyVHlwZSwgcXVhbGl0eSA9IHBhcmFtcy5xdWFsaXR5LCBjb250YWN0UmF0aW8gPSBwYXJhbXMuY29udGFjdFJhdGlvOw0KICAgICAgdmFyIHJvdWdobmVzcyA9IHBhcmFtcy5yb3VnaG5lc3MsIGx1YnJpY2F0aW9uID0gcGFyYW1zLmx1YnJpY2F0aW9uLCBob3VzaW5nID0gcGFyYW1zLmhvdXNpbmc7DQogICAgICB2YXIgcGx2ID0gcGFyYW1zLnBsdiwgcnBtID0gcGFyYW1zLnJwbSwgelBpbmlvbiA9IHBhcmFtcy56UGluaW9uOw0KICAgICAgdmFyIHNwbCA9IHJlc3VsdC5zcGwsIHZpYklkeCA9IHJlc3VsdC52aWJJZHg7DQoNCiAgICAgIGlmIChnZWFyVHlwZSA9PT0gJ3NwdXInKSB7DQogICAgICAgIGlmIChzcGwgPj0gNzUpIHsNCiAgICAgICAgcmVjcy5wdXNoKCdDb252ZXJ0IHRvIGhlbGljYWwgZ2VhciBkZXNpZ24gd2l0aCBoZWxpeCBhbmdsZSAxNSBkZWcgb3IgbW9yZSB0byByZWR1Y2UgaW1wYWN0IG5vaXNlIGJ5IGFib3V0IDYgZEIuJyk7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIGlmIChxdWFsaXR5ID49IDgpIHsNCiAgICAgICAgcmVjcy5wdXNoKCdVcGdyYWRlIElTTyBxdWFsaXR5IGNsYXNzIGZyb20gJyArIHF1YWxpdHkgKyAnIHRvICcgKyBNYXRoLm1heCgzLCBxdWFsaXR5IC0gMikgKyAnIHZpYSBwcmVjaXNpb24gZ3JpbmRpbmcvaG9uaW5nIHRvIHJlZHVjZSB0cmFuc21pc3Npb24gZXJyb3Igbm9pc2UuJyk7DQogICAgICB9DQogICAgICBpZiAoMS40ID4gY29udGFjdFJhdGlvKSB7DQogICAgICAgIHJlY3MucHVzaCgnSW5jcmVhc2UgY29udGFjdCByYXRpbyBhYm92ZSAxLjQgYnkgaW5jcmVhc2luZyBoZWxpeCBhbmdsZSwgcHJvZmlsZSBzaGlmdCwgb3IgdG9vdGggY291bnQgdG8gZW5zdXJlIGNvbnRpbnVvdXMgbWVzaGluZy4nKTsNCiAgICAgIH0NCiAgICAgIGlmIChwbHYgPiAxNSkgew0KICAgICAgICByZWNzLnB1c2goJ1BpdGNoIGxpbmUgdmVsb2NpdHkgKCcgKyBwbHYudG9GaXhlZCgxKSArICcgbS9zKSBpcyBoaWdoIC0gY29uc2lkZXIgcmVkdWNpbmcgc3BlZWQsIGluY3JlYXNpbmcgbW9kdWxlL3RlZXRoIGNvdW50LCBvciBhcHBseWluZyBhY291c3RpYyBlbmNsb3N1cmVzLicpOw0KICAgICAgfQ0KICAgICAgaWYgKHJvdWdobmVzcyA+IDEuNikgew0KICAgICAgICByZWNzLnB1c2goJ1JlZHVjZSB0b290aCBzdXJmYWNlIHJvdWdobmVzcyBmcm9tIFJhICcgKyByb3VnaG5lc3MgKyAnIHVtIHRvIDAuOCB1bSBvciBsZXNzIHRocm91Z2ggZmluaXNoIGdyaW5kaW5nIG9yIHN1cGVyZmluaXNoaW5nLicpOw0KICAgICAgfQ0KICAgICAgaWYgKGx1YnJpY2F0aW9uID09PSAnZ3JlYXNlJykgew0KICAgICAgICBpZiAocnBtID4gMTIwMCkgew0KICAgICAgICByZWNzLnB1c2goJ1N3aXRjaCBmcm9tIGdyZWFzZSB0byBvaWwgamV0IGx1YnJpY2F0aW9uIGZvciBpbXByb3ZlZCBmaWxtIGZvcm1hdGlvbiBhbmQgZGFtcGluZyBhdCBvcGVyYXRpbmcgc3BlZWQuJyk7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIGlmIChob3VzaW5nID09PSAndGhpbldhbGwnKSB7DQogICAgICAgIHJlY3MucHVzaCgnUmVwbGFjZSB0aGluLXdhbGxlZC9hbHVtaW51bSBob3VzaW5nIHdpdGggY2FzdCBpcm9uIG9yIGFkZCBpbnRlcm5hbCBkYW1waW5nIHBhbmVscyB0byByZWR1Y2UgcmFkaWF0ZWQgbm9pc2UuJyk7DQogICAgICB9DQogICAgICBpZiAoaG91c2luZyA9PT0gJ2FsdW1pbnVtJykgew0KICAgICAgICByZWNzLnB1c2goJ1JlcGxhY2UgdGhpbi13YWxsZWQvYWx1bWludW0gaG91c2luZyB3aXRoIGNhc3QgaXJvbiBvciBhZGQgaW50ZXJuYWwgZGFtcGluZyBwYW5lbHMgdG8gcmVkdWNlIHJhZGlhdGVkIG5vaXNlLicpOw0KICAgICAgfQ0KICAgICAgaWYgKGhvdXNpbmcgPT09ICd3ZWxkZWRTdGVlbCcpIHsNCiAgICAgICAgcmVjcy5wdXNoKCdBcHBseSBjb25zdHJhaW5lZC1sYXllciBkYW1waW5nIHRyZWF0bWVudCB0byB3ZWxkZWQgc3RlZWwgaG91c2luZyBwYW5lbHMgdG8gcmVkdWNlIHN0cnVjdHVyYWwgcmVzb25hbmNlIGFtcGxpZmljYXRpb24uJyk7DQogICAgICB9DQogICAgICBpZiAodmliSWR4ID4gNTApIHsNCiAgICAgICAgcmVjcy5wdXNoKCdDb25kdWN0IG1vZGFsIGFuYWx5c2lzIG9mIHRoZSBnZWFyLWJveCBhc3NlbWJseSB0byBpZGVudGlmeSBhbmQgZGV0dW5lIHN0cnVjdHVyYWwgcmVzb25hbmNlcyBuZWFyIHRoZSBtZXNoIGZyZXF1ZW5jeS4nKTsNCiAgICAgIH0NCiAgICAgIHZhciB0bWYgPSB0b290aE1lc2hpbmdGcmVxdWVuY3kocnBtLCB6UGluaW9uKTsNCiAgICAgIGlmICh0bWYgPiAwKSB7DQogICAgICAgIGlmICg1MDAgPiB0bWYpIHsNCiAgICAgICAgcmVjcy5wdXNoKCdNZXNoIGZyZXF1ZW5jeSAnICsgdG1mLnRvRml4ZWQoMCkgKyAnIEh6IGlzIGluIHRoZSBsb3ctZnJlcXVlbmN5IGF1ZGlibGUgcmFuZ2UgLSBjb25zaWRlciB2aWJyYXRpb24gaXNvbGF0aW9uIG1vdW50cyB0byBkZWNvdXBsZSBzdHJ1Y3R1cmUtYm9ybmUgcGF0aHMuJyk7DQogICAgICAgIH0NCiAgICAgIH0NCiAgICAgIGlmICgxNyA+IHpQaW5pb24pIHsNCiAgICAgICAgcmVjcy5wdXNoKCdQaW5pb24gdG9vdGggY291bnQgaXMgbG93IC0gdW5kZXJjdXQgYW5kIHVuZXZlbiBsb2FkIHNoYXJpbmcgbWF5IGluY3JlYXNlIG5vaXNlLiBDb25zaWRlciBwcm9maWxlIHNoaWZ0IG9yIGluY3JlYXNpbmcgcGluaW9uIHRlZXRoLicpOw0KICAgICAgfQ0KICAgICAgaWYgKHJlY3MubGVuZ3RoID09PSAwKSB7DQogICAgICAgIHJlY3MucHVzaCgnQ3VycmVudCBjb25maWd1cmF0aW9uIG1lZXRzIGFjY2VwdGFibGUgbm9pc2UgY3JpdGVyaWEuIE1haW50YWluIGx1YnJpY2F0aW9uIHNjaGVkdWxlIGFuZCBtb25pdG9yIHdlYXIgdG8gcHJlc2VydmUgYWNvdXN0aWMgcGVyZm9ybWFuY2UuJyk7DQogICAgICB9DQogICAgICByZXR1cm4gcmVjcy5zbGljZSgwLCA2KTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiByZWFkSW5wdXRzKCkgew0KICAgICAgdmFyIHBvd2VyS1cgPSBwb3dlclRvS1cocGFyc2VGbG9hdChpbnB1dHMucG93ZXIudmFsdWUpIHx8IDAsIGlucHV0cy5wb3dlclVuaXQudmFsdWUpOw0KICAgICAgdmFyIHJwbSA9IHBhcnNlRmxvYXQoaW5wdXRzLnJwbS52YWx1ZSkgfHwgMDsNCiAgICAgIHZhciB6UGluaW9uID0gcGFyc2VJbnQoaW5wdXRzLnpQaW5pb24udmFsdWUsIDEwKSB8fCAxOw0KICAgICAgdmFyIHpHZWFyID0gcGFyc2VJbnQoaW5wdXRzLnpHZWFyLnZhbHVlLCAxMCkgfHwgMTsNCiAgICAgIHZhciBtb2R1bGUgPSBwYXJzZUZsb2F0KGlucHV0cy5tb2R1bGUudmFsdWUpIHx8IDE7DQogICAgICB2YXIgY29udGFjdFJhdGlvID0gcGFyc2VGbG9hdChpbnB1dHMuY29udGFjdFJhdGlvLnZhbHVlKTsNCiAgICAgIHZhciBxdWFsaXR5ID0gcGFyc2VJbnQoaW5wdXRzLnF1YWxpdHkudmFsdWUsIDEwKTsNCiAgICAgIHZhciByb3VnaG5lc3MgPSBwYXJzZUZsb2F0KGlucHV0cy5yb3VnaG5lc3MudmFsdWUpIHx8IDAuODsNCg0KICAgICAgaW5wdXRzLnRvcnF1ZS52YWx1ZSA9IGNhbGNUb3JxdWUocG93ZXJLVywgcnBtKS50b0ZpeGVkKDEpOw0KICAgICAgaW5wdXRzLmNvbnRhY3RSYXRpb1ZhbC50ZXh0Q29udGVudCA9IGNvbnRhY3RSYXRpby50b0ZpeGVkKDIpOw0KICAgICAgaW5wdXRzLnF1YWxpdHlWYWwudGV4dENvbnRlbnQgPSBxdWFsaXR5Ow0KDQogICAgICByZXR1cm4gew0KICAgICAgICBycG06IHJwbSwgcG93ZXJLVzogcG93ZXJLVywgelBpbmlvbjogelBpbmlvbiwgekdlYXI6IHpHZWFyLCBtb2R1bGU6IG1vZHVsZSwNCiAgICAgICAgZ2VhclR5cGU6IGlucHV0cy5nZWFyVHlwZS52YWx1ZSwgY29udGFjdFJhdGlvOiBjb250YWN0UmF0aW8sIHF1YWxpdHk6IHF1YWxpdHksDQogICAgICAgIHJvdWdobmVzczogcm91Z2huZXNzLCBsdWJyaWNhdGlvbjogaW5wdXRzLmx1YnJpY2F0aW9uLnZhbHVlLCBob3VzaW5nOiBpbnB1dHMuaG91c2luZy52YWx1ZSwNCiAgICAgICAgcGx2OiBwaXRjaExpbmVWZWxvY2l0eShycG0sIG1vZHVsZSwgelBpbmlvbiksDQogICAgICAgIHRtZjogdG9vdGhNZXNoaW5nRnJlcXVlbmN5KHJwbSwgelBpbmlvbikNCiAgICAgIH07DQogICAgfQ0KDQogICAgZnVuY3Rpb24gcmVuZGVyQnJlYWtkb3duKGZhY3RvcnMpIHsNCiAgICAgIHZhciBzb3J0ZWQgPSBmYWN0b3JzLnNsaWNlKCkuc29ydChmdW5jdGlvbiAoYSwgYikgew0KICAgICAgICB2YXIgZGEgPSBhLmRlbHRhICE9IG51bGwgPyBhLmRlbHRhIDogOTk7DQogICAgICAgIHZhciBkYiA9IGIuZGVsdGEgIT0gbnVsbCA\/IGIuZGVsdGEgOiA5OTsNCiAgICAgICAgcmV0dXJuIGRiIC0gZGE7DQogICAgICB9KTsNCg0KICAgICAgb3V0cHV0cy5icmVha2Rvd25MaXN0LnRleHRDb250ZW50ID0gJyc7DQoNCiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc29ydGVkLmxlbmd0aDsgaSsrKSB7DQogICAgICAgIHZhciBmID0gc29ydGVkW2ldOw0KICAgICAgICB2YXIgZGVsdGFTdHIgPSAnLSc7DQogICAgICAgIGlmIChmLmRlbHRhICE9PSBudWxsKSB7DQogICAgICAgICAgaWYgKGYuZGVsdGEgPiAwKSBkZWx0YVN0ciA9ICcrJyArIGYuZGVsdGEgKyAnIGRCJzsNCiAgICAgICAgICBlbHNlIGlmIChmLmRlbHRhID09PSAwKSBkZWx0YVN0ciA9ICcrLy0wIGRCJzsNCiAgICAgICAgICBlbHNlIGRlbHRhU3RyID0gZi5kZWx0YSArICcgZEInOw0KICAgICAgICB9DQogICAgICAgIHZhciBpY29uID0gJ2ZhLW1pbnVzJzsNCiAgICAgICAgaWYgKGYudHlwZSA9PT0gJ2duYy1wb3NpdGl2ZScpIGljb24gPSAnZmEtYXJyb3ctdHJlbmQtdXAnOw0KICAgICAgICBpZiAoZi50eXBlID09PSAnZ25jLW5lZ2F0aXZlJykgaWNvbiA9ICdmYS1hcnJvdy10cmVuZC1kb3duJzsNCg0KICAgICAgICB2YXIgbGkgPSBlbCgnbGknLCAnZ25jLWJyZWFrZG93bi1pdGVtICcgKyBmLnR5cGUpOw0KICAgICAgICBsaS5hcHBlbmRDaGlsZChlbEljb24oaWNvbikpOw0KDQogICAgICAgIHZhciBib2R5ID0gZWwoJ2RpdicpOw0KICAgICAgICBib2R5LmFwcGVuZENoaWxkKGVsKCdkaXYnLCAnZ25jLWZhY3Rvci1uYW1lJywgZi5uYW1lKSk7DQogICAgICAgIGJvZHkuYXBwZW5kQ2hpbGQoZWwoJ2RpdicsICdnbmMtZmFjdG9yLWRldGFpbCcsIGYuZGV0YWlsKSk7DQogICAgICAgIGxpLmFwcGVuZENoaWxkKGJvZHkpOw0KICAgICAgICBsaS5hcHBlbmRDaGlsZChlbCgnc3BhbicsICdnbmMtZmFjdG9yLWRlbHRhJywgZGVsdGFTdHIpKTsNCiAgICAgICAgb3V0cHV0cy5icmVha2Rvd25MaXN0LmFwcGVuZENoaWxkKGxpKTsNCiAgICAgIH0NCiAgICB9DQoNCiAgICBmdW5jdGlvbiByZW5kZXJSZWNvbW1lbmRhdGlvbnMocmVjcykgew0KICAgICAgb3V0cHV0cy5yZWNMaXN0LnRleHRDb250ZW50ID0gJyc7DQogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJlY3MubGVuZ3RoOyBpKyspIHsNCiAgICAgICAgdmFyIHIgPSByZWNzW2ldOw0KICAgICAgICB2YXIgaXNOb25lID0gci5pbmRleE9mKCdtZWV0cyBhY2NlcHRhYmxlJykgIT09IC0xOw0KICAgICAgICB2YXIgbGkgPSBlbCgnbGknLCAnZ25jLXJlYy1pdGVtJyArIChpc05vbmUgPyAnIGduYy1ub25lJyA6ICcnKSk7DQogICAgICAgIGxpLmFwcGVuZENoaWxkKGVsSWNvbihpc05vbmUgPyAnZmEtY2hlY2stY2lyY2xlJyA6ICdmYS13cmVuY2gnKSk7DQogICAgICAgIGxpLmFwcGVuZENoaWxkKGVsKCdzcGFuJywgbnVsbCwgcikpOw0KICAgICAgICBvdXRwdXRzLnJlY0xpc3QuYXBwZW5kQ2hpbGQobGkpOw0KICAgICAgfQ0KICAgIH0NCg0KICAgIGZ1bmN0aW9uIHVwZGF0ZUF1eEZpZWxkcygpIHsNCiAgICAgIHZhciBwb3dlcktXID0gcG93ZXJUb0tXKHBhcnNlRmxvYXQoaW5wdXRzLnBvd2VyLnZhbHVlKSB8fCAwLCBpbnB1dHMucG93ZXJVbml0LnZhbHVlKTsNCiAgICAgIHZhciBycG0gPSBwYXJzZUZsb2F0KGlucHV0cy5ycG0udmFsdWUpIHx8IDA7DQogICAgICBpbnB1dHMudG9ycXVlLnZhbHVlID0gY2FsY1RvcnF1ZShwb3dlcktXLCBycG0pLnRvRml4ZWQoMSk7DQogICAgICBpbnB1dHMuY29udGFjdFJhdGlvVmFsLnRleHRDb250ZW50ID0gcGFyc2VGbG9hdChpbnB1dHMuY29udGFjdFJhdGlvLnZhbHVlKS50b0ZpeGVkKDIpOw0KICAgICAgaW5wdXRzLnF1YWxpdHlWYWwudGV4dENvbnRlbnQgPSBpbnB1dHMucXVhbGl0eS52YWx1ZTsNCiAgICB9DQoNCiAgICBmdW5jdGlvbiBzaG93UmVzdWx0cygpIHsNCiAgICAgIG91dHB1dHMucmVzdWx0c0NhcmQuY2xhc3NMaXN0LmFkZCgnZ25jLXZpc2libGUnKTsNCiAgICAgIG91dHB1dHMucmVzdWx0c0NhcmQuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7DQogICAgfQ0KDQogICAgZnVuY3Rpb24gY2FsY3VsYXRlKCkgew0KICAgICAgdmFyIHBhcmFtcyA9IHJlYWRJbnB1dHMoKTsNCiAgICAgIHZhciByZXN1bHQgPSBlc3RpbWF0ZVNQTChwYXJhbXMpOw0KICAgICAgdmFyIHNwbCA9IHJlc3VsdC5zcGwsIGZhY3RvcnMgPSByZXN1bHQuZmFjdG9yczsNCiAgICAgIHZhciB2aWJJZHggPSB2aWJyYXRpb25JbmRleChzcGwsIHBhcmFtcy5wbHYsIHBhcmFtcy5xdWFsaXR5KTsNCiAgICAgIHZhciByaXNrID0gcmlza0NhdGVnb3J5KHNwbCwgdmliSWR4KTsNCiAgICAgIHZhciByYXRpbyA9IChwYXJhbXMuekdlYXIgLyBwYXJhbXMuelBpbmlvbikudG9GaXhlZCgyKTsNCg0KICAgICAgb3V0cHV0cy5zcGwudGV4dENvbnRlbnQgPSBzcGwudG9GaXhlZCgxKTsNCiAgICAgIG91dHB1dHMudG1mLnRleHRDb250ZW50ID0gcGFyYW1zLnRtZi50b0ZpeGVkKDEpOw0KICAgICAgb3V0cHV0cy5wbHYudGV4dENvbnRlbnQgPSBwYXJhbXMucGx2LnRvRml4ZWQoMik7DQogICAgICBvdXRwdXRzLnJhdGlvLnRleHRDb250ZW50ID0gcmF0aW87DQogICAgICBvdXRwdXRzLnZpYkluZGV4LnRleHRDb250ZW50ID0gdmliSWR4Ow0KDQogICAgICB2YXIgZ2F1Z2VQY3QgPSBNYXRoLm1pbigxMDAsIE1hdGgubWF4KDAsICgoc3BsIC0gNjApIC8gNDApICogMTAwKSk7DQogICAgICBvdXRwdXRzLmdhdWdlTWFya2VyLnN0eWxlLmxlZnQgPSBnYXVnZVBjdCArICclJzsNCg0KICAgICAgb3V0cHV0cy5yaXNrQmFkZ2UuY2xhc3NOYW1lID0gJ2duYy1yaXNrLWJhZGdlLXdyYXAgJyArIHJpc2suY2xzOw0KICAgICAgdmFyIHJpc2tJY29uID0gb3V0cHV0cy5yaXNrQmFkZ2UucXVlcnlTZWxlY3RvcignLmduYy1yaXNrLWljb24gaScpOw0KICAgICAgaWYgKHJpc2tJY29uKSByaXNrSWNvbi5jbGFzc05hbWUgPSAnZmEtc29saWQgJyArIHJpc2suaWNvbjsNCiAgICAgIG91dHB1dHMucmlza0xldmVsLnRleHRDb250ZW50ID0gcmlzay5sZXZlbCArICcgUmlzayc7DQogICAgICBvdXRwdXRzLnJpc2tEZXNjLnRleHRDb250ZW50ID0gcmlzay5kZXNjOw0KDQogICAgICByZW5kZXJCcmVha2Rvd24oZmFjdG9ycyk7DQogICAgICByZW5kZXJSZWNvbW1lbmRhdGlvbnMoZ2VuZXJhdGVSZWNvbW1lbmRhdGlvbnMocGFyYW1zLCB7IHNwbDogc3BsLCB2aWJJZHg6IHZpYklkeCB9KSk7DQogICAgICBzaG93UmVzdWx0cygpOw0KICAgIH0NCg0KICAgIHdpbmRvdy5HZWFyTm9pc2VDYWxjLl9jYWxjID0gY2FsY3VsYXRlOw0KDQogICAgdmFyIGlucHV0RWxzID0gcm9vdC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCwgc2VsZWN0Jyk7DQogICAgZm9yICh2YXIgaiA9IDA7IGogPCBpbnB1dEVscy5sZW5ndGg7IGorKykgew0KICAgICAgaWYgKGlucHV0RWxzW2pdLnJlYWRPbmx5KSBjb250aW51ZTsNCiAgICAgIGlucHV0RWxzW2pdLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgdXBkYXRlQXV4RmllbGRzKTsNCiAgICAgIGlucHV0RWxzW2pdLmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHVwZGF0ZUF1eEZpZWxkcyk7DQogICAgfQ0KDQogICAgdmFyIGJ0biA9ICQoJ2duYy1idG5DYWxjdWxhdGUnKTsNCiAgICBpZiAoYnRuKSB7DQogICAgICBidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiAoZSkgew0KICAgICAgICBpZiAoZSkgew0KICAgICAgICAgIGlmIChlLnByZXZlbnREZWZhdWx0KSBlLnByZXZlbnREZWZhdWx0KCk7DQogICAgICAgIH0NCiAgICAgICAgY2FsY3VsYXRlKCk7DQogICAgICB9KTsNCiAgICB9DQoNCiAgICB1cGRhdGVBdXhGaWVsZHMoKTsNCiAgfQ0KDQogIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAnbG9hZGluZycpIHsNCiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgaW5pdEdlYXJOb2lzZUNhbGMpOw0KICB9IGVsc2Ugew0KICAgIGluaXRHZWFyTm9pc2VDYWxjKCk7DQogIH0NCn0pKCk7<\/textarea>\n<script id=\"gnc-boot-script\" type=\"text\/javascript\" data-no-minify=\"1\" data-no-defer=\"1\" data-cfasync=\"false\">\n(function(){\nvar el=document.getElementById(\"gnc-js-b64\");\nif(!el){return;}\nvar code=el.textContent;\nif(!code){return;}\ncode=code.replace(\/\\s\/g,\"\");\nvar s=document.createElement(\"script\");\ns.type=\"text\/javascript\";\ns.text=atob(code);\nif(document.body){document.body.appendChild(s);}\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>The Gear Noise Risk Assessment Calculator is a practical engineering tool designed to evaluate the potential noise risk of gear transmission systems. By considering key&#8230;<\/p>","protected":false},"author":2,"featured_media":24598,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"pmpro_default_level":"","_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[8520],"tags":[3560,8559,8560,8561],"class_list":["post-24597","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mechanical-basic-component-design","tag-gear-design","tag-gear-noise","tag-gear-vibration","tag-noise-assessment","pmpro-has-access"],"acf":[],"jetpack_featured_media_url":"https:\/\/www.mechstream.com\/wp-content\/uploads\/2026\/08\/Gear-Noise-Risk-Assessment-Calculator.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/posts\/24597","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/comments?post=24597"}],"version-history":[{"count":0,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/posts\/24597\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/media\/24598"}],"wp:attachment":[{"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/media?parent=24597"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/categories?post=24597"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mechstream.com\/fr\/wp-json\/wp\/v2\/tags?post=24597"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}