Калькулятор периода колебаний
Расчёт периода, частоты и циклической частоты для механических и электромагнитных колебаний, а также длины волны для звука.
—
Циклич. частота ω
рад/с
Как пользоваться калькулятором
1
Выберите тип колебаний из выпадающего списка: пружинный маятник, математический маятник, колебательный контур или звуковая волна.
2
Введите известные параметры, например, для пружинного маятника — массу 0.5 кг и жёсткость 200 Н/м.
3
Нажмите «Рассчитать». Результаты появятся справа (на мобильном — снизу). Период T, частота f и циклическая частота ω отобразятся мгновенно.
4
При необходимости измените данные и повторите расчёт, либо нажмите «Сбросить» для очистки всех полей и результатов.
Примеры расчёта
Пружинный маятник: масса 0.5 кг, жёсткость 200 Н/м
T = 2π√(m/k) = 2π√(0.5/200) ≈ 0.314 с, f = 1/T ≈ 3.18 Гц, ω = √(k/m) = 20 рад/с.
Математический маятник: длина 1 м, g = 9.81 м/с²
T = 2π√(L/g) ≈ 2.006 с, f ≈ 0.498 Гц, ω ≈ 3.13 рад/с.
Колебательный контур: L = 0.01 Гн, C = 1 мкФ
По формуле Томсона T = 2π√(LC) = 2π√(0.01 × 10⁻⁶) ≈ 0.000628 с, f ≈ 1592 Гц.
Звуковая волна: частота 725 Гц в воздухе, воде и стекле
Определите длину звуковой волны частотой 725 Гц в воздухе, в воде и в стекле: λ = v/f. Воздух (340 м/с) → 0.469 м, вода (1480 м/с) → 2.041 м, стекло (5500 м/с) → 7.586 м.
Формулы расчёта
T = 2π√(m/k) — период пружинного маятника.
T = 2π√(L/g) — период математического маятника.
T = 2π√(L·C) — формула Томсона для колебательного контура.
T = 1/f — связь периода и частоты. ω = 2πf — циклическая частота.
λ = v / f — длины волны формула через скорость звука v и частоту f.
Пошаговое объяснение
1. Определяется тип колебательной системы. Для механических маятников используются параметры массы и жёсткости (или длины и ускорения), для контура — индуктивность и ёмкость, для звука — частота и скорость среды.
2. Вычисляется период T по соответствующей формуле. Для пружинного и математического маятников, а также контура, формула содержит квадратный корень из отношения характеристик системы.
3. Частота f находится как обратная величина периода (f = 1/T). Циклическая частота ω = 2πf объединяет оба представления и используется в уравнениях гармонических колебаний.
4. В режиме звуковой волны дополнительно рассчитывается длина волны λ делением скорости звука в выбранной среде на частоту. Период звуковой волны равен 1/f.
Где применяется
- Расчёт колебаний маятников в часовых механизмах и метрологии.
- Проектирование колебательных контуров в радиотехнике: настройка частоты приёмников и передатчиков.
- Акустические расчёты: определение длины звуковой волны для колонок, ультразвуковых датчиков, музыкальных инструментов.
- Сейсмология: анализ периодов собственных колебаний зданий при землетрясениях.
- Вибродиагностика промышленного оборудования: контроль частот вращения и резонансов.
- Физическое образование: демонстрация связи между параметрами системы и периодом колебаний.
Важные нюансы
- Формулы для маятников справедливы при малых амплитудах (до ≈15°). При больших углах период начинает зависеть от амплитуды.
- Значение g принято 9.81 м/с², но оно варьируется от 9.78 до 9.83 в зависимости от широты и высоты над уровнем моря.
- Для колебательного контура формула Томсона точна для идеального контура без активного сопротивления. В реальных цепях период немного больше.
- Скорость звука в среде зависит от температуры, влажности и давления. В калькуляторе используются стандартные значения при 20°C.
- Результаты округляются до 3–4 знаков после запятой. Для сверхвысоких частот используйте экспоненциальную запись самостоятельно.
- Отрицательные и нулевые значения параметров невозможны физически — ввод таких данных вызовет ошибку.
Частые ошибки
- Путаница единиц измерения: масса в граммах вместо кг, длина в сантиметрах вместо метров. Всегда переводите в СИ.
- Забывают возвести в квадрат 2π или неправильно подставляют значения под корень. Калькулятор исключает эту ручную ошибку.
- При расчёте длины волны используют частоту в кГц без перевода в Гц. Вводите частоту строго в герцах.
- Ошибочно берут g = 10 м/с² для точных расчётов. Рекомендуем использовать 9.81, если не указано иное.
- Пропуск полей: все поля обязательны для выбранного режима. Незаполненное поле приводит к ошибке валидации.
- Использование запятой вместо точки в десятичных дробях. Используйте точку как разделитель (например, 0.5).
Ответы на частые вопросы
Что такое период колебаний? Период T — время одного полного цикла колебаний, измеряется в секундах.
Как связаны период и частота? Частота f = 1/T показывает количество колебаний в секунду (Гц).
Почему в маятнике период не зависит от массы? В математическом маятнике масса сокращается в уравнении движения, период зависит только от длины и g.
Что такое циклическая частота? ω = 2πf — угловая скорость в радианах за секунду, удобна для записи гармонических функций.
Можно ли рассчитать длину волны для механических колебаний? Да, если известна скорость распространения волны в среде. В калькуляторе это предусмотрено для звука.
Точна ли формула Томсона? Она даёт хорошее приближение для контуров с высокой добротностью; при большом сопротивлении требуется коррекция.
Источники и справочные данные
Расчёт основан на классических формулах механики и теории колебаний: закон Гука для пружинного маятника, уравнение математического маятника, формула Томсона для электромагнитных колебаний, а также стандартные значения скорости звука в средах (340 м/с воздух, 1480 м/с вода, 5500 м/с стекло при 20°C).
Период колебаний: полное руководство
Период колебаний — одна из фундаментальных характеристик любого повторяющегося процесса, от качания маятника до электромагнитных волн. Понимание периода и связанных с ним величин, таких как частота и длина волны, необходимо в физике, инженерии, музыке и даже медицине.
Что такое период и как его рассчитать
Период T показывает, за какое время система совершает одно полное колебание. Для механического пружинного маятника формула периода имеет вид T = 2π√(m/k), где m — масса груза, k — жёсткость пружины. Если взять массу 0.5 кг и пружину жёсткостью 200 Н/м, период составит приблизительно 0.314 секунды.
Для математического маятника — груза на невесомой нити — период определяется длиной нити L и ускорением свободного падения g. Формула периода T = 2π√(L/g) не включает массу, поэтому лёгкий и тяжёлый шарики на одинаковых нитях колеблются синхронно. При длине 1 м и g = 9.81 м/с² получаем T ≈ 2.006 с.
Колебательный контур и формула Томсона
В электрических цепях, содержащих катушку индуктивности L и конденсатор C, возникают электромагнитные колебания. Период таких колебаний описывается формулой Томсона: T = 2π√(L·C). Например, если L = 0.01 Гн, а C = 1 мкФ (10⁻⁶ Ф), период T ≈ 0.000628 с, что соответствует частоте около 1592 Гц. Эта частота лежит в звуковом диапазоне и используется в радиотехнике для настройки контуров.
Формула Томсона — краеугольный камень теории радиосвязи. Зная индуктивность и ёмкость, инженер может точно предсказать резонансную частоту контура. На практике в контур добавляют подстроечные конденсаторы для точной регулировки.
Формула частоты и связь с периодом
Частота f и период T взаимно обратны: f = 1/T. Если период измеряется в секундах, частота получается в герцах (Гц). Циклическая частота ω = 2πf удобна для математического описания колебаний через синусы и косинусы. Значение ω показывает, сколько радиан проходит фаза колебания за секунду.
Звук, скорость и длина волны
Скорость звука зависит от среды. В воздухе при 20°C она равна примерно 340 м/с, в воде — 1480 м/с, а в стекле достигает 5500 м/с. Длина волны λ вычисляется по формуле λ = v / f, где v — скорость звука в среде, f — частота. Определите длину звуковой волны частотой 725 Гц в воздухе, в воде и в стекле: для воздуха λ = 340/725 ≈ 0.469 м, для воды 1480/725 ≈ 2.041 м, для стекла 5500/725 ≈ 7.586 м. Период этой волны всюду одинаков: T = 1/725 ≈ 0.00138 с.
Зависимость длины волны от среды объясняет, почему один и тот же звук по-разному слышен под водой и в атмосфере. В практической акустике знание длины волны помогает проектировать колонки, микрофоны и ультразвуковые датчики.
Практическое применение расчётов периода
В строительстве и сейсмологии важно знать собственный период колебаний зданий и мостов, чтобы избежать резонанса с сейсмическими волнами. Маятниковые часы используют стабильность периода математического маятника для точного измерения времени. В радиотехнике колебательный контур выделяет нужную частоту из множества сигналов. Медицинский ультразвук опирается на точные значения длины волны для визуализации внутренних органов.
Ограничения и тонкости
Все приведённые формулы справедливы для идеальных условий. У реального пружинного маятника есть трение, у электрического контура — активное сопротивление, а у звуковой волны — затухание в среде. Для математического маятника период начинает расти при углах отклонения больше 15°. При инженерных расчётах вводят поправочные коэффициенты, но для быстрых оценок наш калькулятор даёт отличный результат.
Используйте стандартные единицы СИ: килограммы, метры, генри, фарады, герцы. Это гарантирует правильность вычислений и исключает путаницу с размерностями.
CiAgICAgICAgKGZ1bmN0aW9uKCkgewogICAgICAgICAgICBjb25zdCBtb2RlU2VsZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NhbGMtbW9kZScpOwogICAgICAgICAgICBjb25zdCBtb2RlRmllbGRzID0gewogICAgICAgICAgICAgICAgc3ByaW5nOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kZS1zcHJpbmcnKSwKICAgICAgICAgICAgICAgIG1hdGg6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RlLW1hdGgnKSwKICAgICAgICAgICAgICAgIGxjOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbW9kZS1sYycpLAogICAgICAgICAgICAgICAgc291bmQ6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtb2RlLXNvdW5kJykKICAgICAgICAgICAgfTsKICAgICAgICAgICAgY29uc3QgY2FsY0J0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjYWxjLWJ0bicpOwogICAgICAgICAgICBjb25zdCByZXNldEJ0biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldC1idG4nKTsKICAgICAgICAgICAgY29uc3QgZ2xvYmFsRXJyb3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ2xvYmFsLWVycm9yJyk7CgogICAgICAgICAgICBjb25zdCByZXN1bHRUID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdC1UJykucXVlcnlTZWxlY3RvcignLm5uLWdlbi1jYWwtcmVzdWx0LXZhbHVlJyk7CiAgICAgICAgICAgIGNvbnN0IHJlc3VsdEYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0LWYnKS5xdWVyeVNlbGVjdG9yKCcubm4tZ2VuLWNhbC1yZXN1bHQtdmFsdWUnKTsKICAgICAgICAgICAgY29uc3QgcmVzdWx0T21lZ2EgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0LW9tZWdhJykucXVlcnlTZWxlY3RvcignLm5uLWdlbi1jYWwtcmVzdWx0LXZhbHVlJyk7CiAgICAgICAgICAgIGNvbnN0IHJlc3VsdExhbWJkYUl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0LWxhbWJkYScpOwogICAgICAgICAgICBjb25zdCByZXN1bHRMYW1iZGEgPSByZXN1bHRMYW1iZGFJdGVtLnF1ZXJ5U2VsZWN0b3IoJy5ubi1nZW4tY2FsLXJlc3VsdC12YWx1ZScpOwoKICAgICAgICAgICAgZnVuY3Rpb24gc3dpdGNoTW9kZShtb2RlKSB7CiAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhtb2RlRmllbGRzKS5mb3JFYWNoKGtleSA9PiB7CiAgICAgICAgICAgICAgICAgICAgbW9kZUZpZWxkc1trZXldLmNsYXNzTGlzdC5yZW1vdmUoJ2FjdGl2ZScpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBpZiAobW9kZUZpZWxkc1ttb2RlXSkgewogICAgICAgICAgICAgICAgICAgIG1vZGVGaWVsZHNbbW9kZV0uY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAobW9kZSA9PT0gJ3NvdW5kJykgewogICAgICAgICAgICAgICAgICAgIHJlc3VsdExhbWJkYUl0ZW0uc3R5bGUuZGlzcGxheSA9ICcnOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICByZXN1bHRMYW1iZGFJdGVtLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjbGVhckVycm9ycygpOwogICAgICAgICAgICAgICAgZ2xvYmFsRXJyb3IudGV4dENvbnRlbnQgPSAnJzsKICAgICAgICAgICAgICAgIGdsb2JhbEVycm9yLmNsYXNzTGlzdC5yZW1vdmUoJ3Zpc2libGUnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gY2xlYXJFcnJvcnMoKSB7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubm4tZ2VuLWNhbC1lcnJvci1tc2cnKS5mb3JFYWNoKGVsID0+IHsKICAgICAgICAgICAgICAgICAgICBlbC50ZXh0Q29udGVudCA9ICcnOwogICAgICAgICAgICAgICAgICAgIGVsLmNsYXNzTGlzdC5yZW1vdmUoJ3Zpc2libGUnKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CgogICAgICAgICAgICBmdW5jdGlvbiBzaG93RmllbGRFcnJvcihpZCwgbWVzc2FnZSkgewogICAgICAgICAgICAgICAgY29uc3QgZXJyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOwogICAgICAgICAgICAgICAgaWYgKGVycikgewogICAgICAgICAgICAgICAgICAgIGVyci50ZXh0Q29udGVudCA9IG1lc3NhZ2U7CiAgICAgICAgICAgICAgICAgICAgZXJyLmNsYXNzTGlzdC5hZGQoJ3Zpc2libGUnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gc2hvd0dsb2JhbEVycm9yKG1lc3NhZ2UpIHsKICAgICAgICAgICAgICAgIGdsb2JhbEVycm9yLnRleHRDb250ZW50ID0gbWVzc2FnZTsKICAgICAgICAgICAgICAgIGdsb2JhbEVycm9yLmNsYXNzTGlzdC5hZGQoJ3Zpc2libGUnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gdmFsaWRhdGVQb3NpdGl2ZShzZWxlY3RvciwgZXJyb3JJZCwgbmFtZSkgewogICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWxlY3Rvcik7CiAgICAgICAgICAgICAgICBjb25zdCB2YWwgPSBpbnB1dC52YWx1ZS50cmltKCk7CiAgICAgICAgICAgICAgICBpZiAodmFsID09PSAnJykgewogICAgICAgICAgICAgICAgICAgIHNob3dGaWVsZEVycm9yKGVycm9ySWQsIG5hbWUgKyAnINC+0LHRj9C30LDRgtC10LvRjNC90L4g0LTQu9GPINC30LDQv9C+0LvQvdC10L3QuNGPJyk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY29uc3QgbnVtID0gcGFyc2VGbG9hdCh2YWwpOwogICAgICAgICAgICAgICAgaWYgKGlzTmFOKG51bSkpIHsKICAgICAgICAgICAgICAgICAgICBzaG93RmllbGRFcnJvcihlcnJvcklkLCBuYW1lICsgJyDQtNC+0LvQttC90L4g0LHRi9GC0Ywg0YfQuNGB0LvQvtC8Jyk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKG51bSA8PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgc2hvd0ZpZWxkRXJyb3IoZXJyb3JJZCwgbmFtZSArICcg0LTQvtC70LbQvdC+INCx0YvRgtGMINC/0L7Qu9C+0LbQuNGC0LXQu9GM0L3Ri9C8Jyk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCFpc0Zpbml0ZShudW0pKSB7CiAgICAgICAgICAgICAgICAgICAgc2hvd0ZpZWxkRXJyb3IoZXJyb3JJZCwgbmFtZSArICcg0YHQu9C40YjQutC+0Lwg0LLQtdC70LjQutC+Jyk7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIG51bTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gcmVzZXRSZXN1bHRzKCkgewogICAgICAgICAgICAgICAgcmVzdWx0VC50ZXh0Q29udGVudCA9ICfigJQnOwogICAgICAgICAgICAgICAgcmVzdWx0Ri50ZXh0Q29udGVudCA9ICfigJQnOwogICAgICAgICAgICAgICAgcmVzdWx0T21lZ2EudGV4dENvbnRlbnQgPSAn4oCUJzsKICAgICAgICAgICAgICAgIHJlc3VsdExhbWJkYS50ZXh0Q29udGVudCA9ICfigJQnOwogICAgICAgICAgICAgICAgZ2xvYmFsRXJyb3IudGV4dENvbnRlbnQgPSAnJzsKICAgICAgICAgICAgICAgIGdsb2JhbEVycm9yLmNsYXNzTGlzdC5yZW1vdmUoJ3Zpc2libGUnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZnVuY3Rpb24gY2FsY3VsYXRlKCkgewogICAgICAgICAgICAgICAgY2xlYXJFcnJvcnMoKTsKICAgICAgICAgICAgICAgIGdsb2JhbEVycm9yLnRleHRDb250ZW50ID0gJyc7CiAgICAgICAgICAgICAgICBnbG9iYWxFcnJvci5jbGFzc0xpc3QucmVtb3ZlKCd2aXNpYmxlJyk7CiAgICAgICAgICAgICAgICBjb25zdCBtb2RlID0gbW9kZVNlbGVjdC52YWx1ZTsKCiAgICAgICAgICAgICAgICBsZXQgVCwgZiwgb21lZ2EsIGxhbWJkYSA9IG51bGw7CiAgICAgICAgICAgICAgICBsZXQgdlNvdW5kID0gbnVsbDsKCiAgICAgICAgICAgICAgICBpZiAobW9kZSA9PT0gJ3NwcmluZycpIHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBtID0gdmFsaWRhdGVQb3NpdGl2ZSgnc3ByaW5nLW1hc3MnLCAnc3ByaW5nLW1hc3MtZXJyb3InLCAn0JzQsNGB0YHQsCcpOwogICAgICAgICAgICAgICAgICAgIGNvbnN0IGsgPSB2YWxpZGF0ZVBvc2l0aXZlKCdzcHJpbmctaycsICdzcHJpbmctay1lcnJvcicsICfQltGR0YHRgtC60L7RgdGC0YwnKTsKICAgICAgICAgICAgICAgICAgICBpZiAobSA9PT0gZmFsc2UgfHwgayA9PT0gZmFsc2UpIHJldHVybjsKICAgICAgICAgICAgICAgICAgICBpZiAoayA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICBzaG93RmllbGRFcnJvcignc3ByaW5nLWstZXJyb3InLCAn0JbRkdGB0YLQutC+0YHRgtGMINC90LUg0LzQvtC20LXRgiDQsdGL0YLRjCDQvdGD0LvQtdCy0L7QuScpOwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIFQgPSAyICogTWF0aC5QSSAqIE1hdGguc3FydChtIC8gayk7CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1vZGUgPT09ICdtYXRoJykgewogICAgICAgICAgICAgICAgICAgIGNvbnN0IEwgPSB2YWxpZGF0ZVBvc2l0aXZlKCdtYXRoLWxlbmd0aCcsICdtYXRoLWxlbmd0aC1lcnJvcicsICfQlNC70LjQvdCwINC90LjRgtC4Jyk7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgZyA9IHZhbGlkYXRlUG9zaXRpdmUoJ21hdGgtZycsICdtYXRoLWctZXJyb3InLCAn0KPRgdC60L7RgNC10L3QuNC1IGcnKTsKICAgICAgICAgICAgICAgICAgICBpZiAoTCA9PT0gZmFsc2UgfHwgZyA9PT0gZmFsc2UpIHJldHVybjsKICAgICAgICAgICAgICAgICAgICBpZiAoZyA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICBzaG93RmllbGRFcnJvcignbWF0aC1nLWVycm9yJywgJ2cg0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINC90YPQu9C10LLRi9C8Jyk7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgVCA9IDIgKiBNYXRoLlBJICogTWF0aC5zcXJ0KEwgLyBnKTsKICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobW9kZSA9PT0gJ2xjJykgewogICAgICAgICAgICAgICAgICAgIGNvbnN0IEwgPSB2YWxpZGF0ZVBvc2l0aXZlKCdsYy1pbmR1Y3RhbmNlJywgJ2xjLWluZHVjdGFuY2UtZXJyb3InLCAn0JjQvdC00YPQutGC0LjQstC90L7RgdGC0YwnKTsKICAgICAgICAgICAgICAgICAgICBjb25zdCBDID0gdmFsaWRhdGVQb3NpdGl2ZSgnbGMtY2FwYWNpdGFuY2UnLCAnbGMtY2FwYWNpdGFuY2UtZXJyb3InLCAn0IHQvNC60L7RgdGC0YwnKTsKICAgICAgICAgICAgICAgICAgICBpZiAoTCA9PT0gZmFsc2UgfHwgQyA9PT0gZmFsc2UpIHJldHVybjsKICAgICAgICAgICAgICAgICAgICBUID0gMiAqIE1hdGguUEkgKiBNYXRoLnNxcnQoTCAqIEMpOwogICAgICAgICAgICAgICAgfSBlbHNlIGlmIChtb2RlID09PSAnc291bmQnKSB7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgZnJlcSA9IHZhbGlkYXRlUG9zaXRpdmUoJ3NvdW5kLWZyZXEnLCAnc291bmQtZnJlcS1lcnJvcicsICfQp9Cw0YHRgtC+0YLQsCcpOwogICAgICAgICAgICAgICAgICAgIGlmIChmcmVxID09PSBmYWxzZSkgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgIHZTb3VuZCA9IHBhcnNlRmxvYXQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NvdW5kLW1lZGl1bScpLnZhbHVlKTsKICAgICAgICAgICAgICAgICAgICBUID0gMSAvIGZyZXE7CiAgICAgICAgICAgICAgICAgICAgbGFtYmRhID0gdlNvdW5kIC8gZnJlcTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoIWlzRmluaXRlKFQpIHx8IFQgPD0gMCkgewogICAgICAgICAgICAgICAgICAgIHNob3dHbG9iYWxFcnJvcign0J7RiNC40LHQutCwINCy0YvRh9C40YHQu9C10L3QuNGPOiDQv9GA0L7QstC10YDRjNGC0LUg0LLQstC10LTRkdC90L3Ri9C1INC00LDQvdC90YvQtScpOwogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGYgPSAxIC8gVDsKICAgICAgICAgICAgICAgIG9tZWdhID0gMiAqIE1hdGguUEkgKiBmOwoKICAgICAgICAgICAgICAgIHJlc3VsdFQudGV4dENvbnRlbnQgPSBULnRvRml4ZWQoNCk7CiAgICAgICAgICAgICAgICByZXN1bHRGLnRleHRDb250ZW50ID0gZi50b0ZpeGVkKDQpOwogICAgICAgICAgICAgICAgcmVzdWx0T21lZ2EudGV4dENvbnRlbnQgPSBvbWVnYS50b0ZpeGVkKDMpOwogICAgICAgICAgICAgICAgaWYgKG1vZGUgPT09ICdzb3VuZCcgJiYgbGFtYmRhICE9PSBudWxsKSB7CiAgICAgICAgICAgICAgICAgICAgcmVzdWx0TGFtYmRhLnRleHRDb250ZW50ID0gbGFtYmRhLnRvRml4ZWQoMyk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJlc3VsdExhbWJkYS50ZXh0Q29udGVudCA9ICfigJQnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICBmdW5jdGlvbiByZXNldEZvcm0oKSB7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc3ByaW5nLW1hc3MnKS52YWx1ZSA9ICcnOwogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NwcmluZy1rJykudmFsdWUgPSAnJzsKICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYXRoLWxlbmd0aCcpLnZhbHVlID0gJyc7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWF0aC1nJykudmFsdWUgPSAnOS44MSc7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGMtaW5kdWN0YW5jZScpLnZhbHVlID0gJyc7CiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGMtY2FwYWNpdGFuY2UnKS52YWx1ZSA9ICcnOwogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NvdW5kLWZyZXEnKS52YWx1ZSA9ICcnOwogICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3NvdW5kLW1lZGl1bScpLnZhbHVlID0gJzM0MCc7CiAgICAgICAgICAgICAgICBjbGVhckVycm9ycygpOwogICAgICAgICAgICAgICAgZ2xvYmFsRXJyb3IudGV4dENvbnRlbnQgPSAnJzsKICAgICAgICAgICAgICAgIGdsb2JhbEVycm9yLmNsYXNzTGlzdC5yZW1vdmUoJ3Zpc2libGUnKTsKICAgICAgICAgICAgICAgIHJlc2V0UmVzdWx0cygpOwogICAgICAgICAgICAgICAgc3dpdGNoTW9kZShtb2RlU2VsZWN0LnZhbHVlKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgbW9kZVNlbGVjdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgIHN3aXRjaE1vZGUodGhpcy52YWx1ZSk7CiAgICAgICAgICAgICAgICByZXNldFJlc3VsdHMoKTsKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICBjYWxjQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2FsY3VsYXRlKTsKICAgICAgICAgICAgcmVzZXRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCByZXNldEZvcm0pOwoKICAgICAgICAgICAgc3dpdGNoTW9kZSgnc3ByaW5nJyk7CiAgICAgICAgfSkoKTsKICAgIA==