diff --git a/.flake8 b/.flake8 new file mode 100644 index 0000000..07634b8 --- /dev/null +++ b/.flake8 @@ -0,0 +1,5 @@ +[flake8] +extend-ignore = + # See https://github.com/PyCQA/pycodestyle/issues/373 + E203, + diff --git a/.github/workflows/pythonpackage.yml b/.github/workflows/pythonpackage.yml new file mode 100644 index 0000000..e14fb5b --- /dev/null +++ b/.github/workflows/pythonpackage.yml @@ -0,0 +1,34 @@ +name: Python package + +on: [push] + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + max-parallel: 4 + matrix: + python-version: [3.6, 3.7] + + steps: + - uses: actions/checkout@v1 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v1 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + - name: Lint with flake8 + run: | + pip install flake8 + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest + run: | + pip install pytest + pytest diff --git a/.github/workflows/pythonpublish.yml b/.github/workflows/pythonpublish.yml new file mode 100644 index 0000000..21f2f01 --- /dev/null +++ b/.github/workflows/pythonpublish.yml @@ -0,0 +1,26 @@ +name: Upload Python Package + +on: + release: + types: [created] + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + - name: Set up Python + uses: actions/setup-python@v1 + with: + python-version: '3.x' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install setuptools wheel twine + - name: Build and publish + env: + TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} + TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} + run: | + python setup.py sdist bdist_wheel + twine upload dist/* diff --git a/examples/aperture/000_test_aperture.py b/examples/aperture/000_test_aperture.py index 077aba7..a2dd9f6 100644 --- a/examples/aperture/000_test_aperture.py +++ b/examples/aperture/000_test_aperture.py @@ -1,23 +1,26 @@ import numpy as np +from numpy.random import uniform +import matplotlib.pyplot as plt + import pysixtrack p = pysixtrack.Particles() -rect_aperture = pysixtrack.elements.LimitRect( min_x=-1e-2, max_x=2e-2, - min_y=-0.5e-2, max_y=2.5e-2) +rect_aperture = pysixtrack.elements.LimitRect( + min_x=-1e-2, max_x=2e-2, min_y=-0.5e-2, max_y=2.5e-2 +) -ellip_aperture = pysixtrack.elements.LimitEllipse(a=1.5e-2, b=.3e-2) +ellip_aperture = pysixtrack.elements.LimitEllipse(a=1.5e-2, b=0.3e-2) # Test scalar -assert(rect_aperture.track(p) is None) -assert(ellip_aperture.track(p) is None) +assert rect_aperture.track(p) is None +assert ellip_aperture.track(p) is None -p.x= 100. -assert(rect_aperture.track(p)==0) -assert(ellip_aperture.track(p)==0) +p.x = 100.0 +assert rect_aperture.track(p) == 0 +assert ellip_aperture.track(p) == 0 # Test vector -from numpy.random import uniform N_part = 10000 @@ -29,14 +32,10 @@ rect_aperture.track(p) ellip_aperture.track(p) -import matplotlib.pyplot as plt - -plt.close('all') +plt.close("all") fig1 = plt.figure(1) ax = fig1.add_subplot(111) -ax.plot(p.x, p.y, '.b') -ax.plot(p.lost_particles[0].x, p.lost_particles[0].y, 'r.') -ax.plot(p.lost_particles[1].x, p.lost_particles[1].y, 'g.') - -plt.show() +ax.plot(p.x, p.y, ".b") +ax.plot(p.lost_particles[0].x, p.lost_particles[0].y, "r.") +ax.plot(p.lost_particles[1].x, p.lost_particles[1].y, "g.") diff --git a/examples/bbsimple/testbb6d.py b/examples/bbsimple/testbb6d.py index 702c89f..54a54fe 100644 --- a/examples/bbsimple/testbb6d.py +++ b/examples/bbsimple/testbb6d.py @@ -17,7 +17,7 @@ line, other_data = pysixtrack.Line.from_sixinput(sixinput) # Info on sixtrack->pyblep conversion -iconv = other_data["iconv"] +iconv = line.other_data["iconv"] ######################################################## # Search closed orbit # @@ -125,10 +125,15 @@ def compare(prun, pbench, pbench_prev): vbench = getattr(pbench, att) vbench_prev = getattr(pbench_prev, att) diff = vrun - vbench - diffrel = abs(1.0 - abs(vrun - vbench_prev) / abs(vbench - vbench_prev)) + diffrel = abs( + 1.0 - abs(vrun - vbench_prev) / abs(vbench - vbench_prev) + ) out.append(abs(diff)) out_rel.append(diffrel) - print(f"{att:<5} {vrun:22.13e} {vbench:22.13e} {diff:22.13g} {diffrel:22.13g}") + print( + f"{att:<5} {vrun:22.13e} {vbench:22.13e}" + "{diff:22.13g} {diffrel:22.13g}" + ) if diffrel > 1e-5 or np.isnan(diffrel): if np.abs(diff) > 9e-10: print("Too large discrepancy!") diff --git a/examples/beambeam/testbb6d.py b/examples/beambeam/testbb6d.py index f0da3cb..e0ed726 100644 --- a/examples/beambeam/testbb6d.py +++ b/examples/beambeam/testbb6d.py @@ -14,10 +14,10 @@ p0c_eV = sixinput.initialconditions[-3] * 1e6 # Build pysixtrack line from sixtrack input -line, other_data = pysixtrack.Line.from_sixinput(sixinput) +line = pysixtrack.Line.from_sixinput(sixinput) # Info on sixtrack->pyblep conversion -iconv = other_data["iconv"] +iconv = line.other_data["iconv"] ######################################################## # Search closed orbit # @@ -125,10 +125,15 @@ def compare(prun, pbench, pbench_prev): vbench = getattr(pbench, att) vbench_prev = getattr(pbench_prev, att) diff = vrun - vbench - diffrel = abs(1.0 - abs(vrun - vbench_prev) / abs(vbench - vbench_prev)) + diffrel = abs( + 1.0 - abs(vrun - vbench_prev) / abs(vbench - vbench_prev) + ) out.append(abs(diff)) out_rel.append(diffrel) - print(f"{att:<5} {vrun:22.13e} {vbench:22.13e} {diff:22.13g} {diffrel:22.13g}") + print( + f"{att:<5} {vrun:22.13e} {vbench:22.13e}" + "{diff:22.13g} {diffrel:22.13g}" + ) if diffrel > 1e-8 or np.isnan(diffrel): if np.abs(diff) > 1e-11: print("Too large discrepancy!") diff --git a/examples/fodo/benchmark.py b/examples/fodo/benchmark.py index 776c6fa..a6f2da8 100644 --- a/examples/fodo/benchmark.py +++ b/examples/fodo/benchmark.py @@ -2,8 +2,8 @@ import pysixtrack six = sixtracktools.SixInput(".") -line, other = pysixtrack.Line.from_sixinput(six) -iconv = other["iconv"] +line = pysixtrack.Line.from_sixinput(six) +iconv = line.other_data["iconv"] sixdump = sixtracktools.SixDump101("res/dump.dat")[1::2] diff --git a/examples/lhc/benchmark.py b/examples/lhc/benchmark.py index 011495f..4d5402f 100644 --- a/examples/lhc/benchmark.py +++ b/examples/lhc/benchmark.py @@ -2,8 +2,8 @@ import pysixtrack six = sixtracktools.SixInput(".") -line, other = pysixtrack.Line.from_sixinput(six) -iconv = other["iconv"] +line = pysixtrack.Line.from_sixinput(six) +iconv = line.other_info["iconv"] sixdump = sixtracktools.SixDump101("res/dump3.dat")[1::2] diff --git a/examples/load_from_mad/000_from_madx_disabled_bb.py b/examples/load_from_mad/000_from_madx_disabled_bb.py index e585143..07ec883 100644 --- a/examples/load_from_mad/000_from_madx_disabled_bb.py +++ b/examples/load_from_mad/000_from_madx_disabled_bb.py @@ -8,6 +8,6 @@ mad.call("mad/lhcwbb.seq") -line, other = pysixtrack.Line.from_madx_sequence(mad.sequence.lhcb1) +line = pysixtrack.Line.from_madx_sequence(mad.sequence.lhcb1) print(line) diff --git a/examples/load_from_mad/001_line_with_bb_from_madx.py b/examples/load_from_mad/001_line_with_bb_from_madx.py index 54cdb74..c3e4a2c 100644 --- a/examples/load_from_mad/001_line_with_bb_from_madx.py +++ b/examples/load_from_mad/001_line_with_bb_from_madx.py @@ -5,7 +5,6 @@ from cpymad.madx import Madx import pysixtrack -from pysixtrack.be_beamfields.tools import norm, find_alpha_and_phi from pysixtrack.be_beamfields.tools import get_bb_names_madpoints_sigmas from pysixtrack.be_beamfields.tools import shift_strong_beam_based_on_close_ip from pysixtrack.be_beamfields.tools import setup_beam_beam_in_line @@ -64,7 +63,8 @@ # Check number of slices assert ( - len([nn for nn in bb_names_b1 if nn.startswith("bb_ho.l1")]) == (n_slices - 1) / 2 + len([nn for nn in bb_names_b1 if nn.startswith("bb_ho.l1")]) + == (n_slices - 1) / 2 ) # Correct for small shifts between surveys of the two beams @@ -85,7 +85,9 @@ mad_ft.use("lhcb1") # without this the sequence does not work properly # Build pysixtrack line -line_for_tracking, _ = pysixtrack.Line.from_madx_sequence(mad_ft.sequence["lhcb1"]) +line_for_tracking = pysixtrack.Line.from_madx_sequence( + mad_ft.sequence["lhcb1"] +) # Setup 4D and 6D beam beam lenses setup_beam_beam_in_line( @@ -101,18 +103,23 @@ ) # A check -assert np.abs(line_for_tracking.get_length() - mad.sequence.lhcb1.beam.circ) < 1e-6 +assert ( + np.abs(line_for_tracking.get_length() - mad.sequence.lhcb1.beam.circ) + < 1e-6 +) # There is a problem in the mask # (the RF frequancy is wrong in the machine for tracking # I patch it here -> to be fixed properly!!!! -line_temp, _ = pysixtrack.Line.from_madx_sequence(mad.sequence.lhcb1) +line_temp = pysixtrack.Line.from_madx_sequence(mad.sequence.lhcb1) dct_correct_cavities = dict( zip(*line_temp.get_elements_of_type(pysixtrack.elements.Cavity)[::-1]) ) for ii, nn in enumerate(line_for_tracking.element_names): if nn in dct_correct_cavities.keys(): - line_for_tracking.elements[ii].frequency = dct_correct_cavities[nn].frequency + line_for_tracking.elements[ii].frequency = dct_correct_cavities[ + nn + ].frequency # Save line with open("line_from_mad.pkl", "wb") as fid: diff --git a/examples/load_from_mad/002_compare_against_sixinput.py b/examples/load_from_mad/002_compare_against_sixinput.py index ce051a0..6de6d0a 100644 --- a/examples/load_from_mad/002_compare_against_sixinput.py +++ b/examples/load_from_mad/002_compare_against_sixinput.py @@ -47,7 +47,9 @@ def norm(x): # Check if the relative error is small try: - diff_rel = norm(np.array(dmad[kk]) - np.array(dsix[kk])) / norm(dmad[kk]) + diff_rel = norm(np.array(dmad[kk]) - np.array(dsix[kk])) / norm( + dmad[kk] + ) except ZeroDivisionError: diff_rel = 100.0 if diff_rel < 3e-5: diff --git a/examples/load_from_sixtrack_input/000_basics.py b/examples/load_from_sixtrack_input/000_basics.py index 60d2a1b..3944f0a 100644 --- a/examples/load_from_sixtrack_input/000_basics.py +++ b/examples/load_from_sixtrack_input/000_basics.py @@ -1,15 +1,16 @@ -# Read sixtrack input using sixtracktools import sixtracktools +import pysixtrack +import pysixtracklib + +# Read sixtrack input using sixtracktools sixinput = sixtracktools.SixInput("sixtrack_input") # Build a pysixtrack line from pyblep line -import pysixtrack -ps_line, other = pysixtrack.Line.from_sixinput(sixinput) +ps_line = pysixtrack.Line.from_sixinput(sixinput) # Build a pysixtracklib line from pyblep line -import pysixtracklib pslib_line = pysixtracklib.Elements() pslib_line.append_line(ps_line) diff --git a/examples/petra4/h7ba_n8.seq b/examples/petra4/h7ba_n8.seq new file mode 100644 index 0000000..bea07c3 --- /dev/null +++ b/examples/petra4/h7ba_n8.seq @@ -0,0 +1,5190 @@ +qfsu_k1 = 0.290522269418; +none = 0; +qd2su_k1 = -0.01040666; +qfsum3_k1 = -0.0722555227144; +qdsum3_k1 = 0.0894805488166; +qdsum4_k1 = -1.09715550642; +qfsum4_k1 = 1.16661741034; +qfsum5_k1 = 1.0539390576; +qdsum5_k1 = -1.29007997432; +qfsum6_k1 = 0.693857606579; +qdsum6_k1 = -0.535655219958; +qf1_l := 0.295*s; +s := lencell/26.3743022344; +lencell = 26.2; +qf1_k1 = 2.78252781138; +sh_len := 2*0.05*s; +sh1a_k2 = 0; +qd2_l := 0.212*s; +qd2_k1 = -3.20906924472; +l1_dl1a := l_dl1a/5*(a1_dl1a/2)/sin(a1_dl1a/2); +l_dl1a := dl_len; +dl_len := 1.788*s; +a1_dl1a := a_dl1a/5*1.893958011080163; +a_dl1a := dla_angle; +dla_angle := 0.0317123852*a+3*dalpha/4; +a := (45.0/8)/11.25; +dalpha = 0; +e1_1_dl1a := a_dl1a/2; +e2_1_dl1a := a1_dl1a-e1_1_dl1a; +l2_dl1a := l_dl1a/5*(a2_dl1a/2)/sin(a2_dl1a/2); +a2_dl1a := a_dl1a/5*1.111553097557607; +e1_2_dl1a := -e2_1_dl1a; +e2_2_dl1a := a2_dl1a-e1_2_dl1a; +l3_dl1a := l_dl1a/5*(a3_dl1a/2)/sin(a3_dl1a/2); +a3_dl1a := a_dl1a/5*0.843519017295489; +e1_3_dl1a := -e2_2_dl1a; +e2_3_dl1a := a3_dl1a-e1_3_dl1a; +l4_dl1a := l_dl1a/5*(a4_dl1a/2)/sin(a4_dl1a/2); +a4_dl1a := a_dl1a/5*0.662201845353468; +e1_4_dl1a := -e2_3_dl1a; +e2_4_dl1a := a4_dl1a-e1_4_dl1a; +l5_dl1a := l_dl1a/5*(a5_dl1a/2)/sin(a5_dl1a/2); +a5_dl1a := a_dl1a/5*0.488768028713274; +e1_5_dl1a := -e2_4_dl1a; +e2_5_dl1a := a5_dl1a-e1_5_dl1a; +qd3_l := 0.162*s; +qd3_k1 = -2.26707887812; +sd_len := 2*0.083*s; +sd1a_k2 = -428.658222881; +qf4a_l := 0.212*s; +qf4a_k1 = 2.62239881372; +sf_len := 2*0.1*s; +sf2a_k2 = 378.389574098; +qf4b_l := 0.212*s; +qf4b_k1 := qf4a_k1; +of_len := 0.09*s; +of1b_k3 = -85229.9334292; +sd1b_k2 := sd1a_k2*0.8605; +qd5_l := 0.212*s; +qd5_k1 = -2.96935811622; +l1_dl2b := l_dl2b/5*(a1_dl2b/2)/sin(a1_dl2b/2); +l_dl2b := dl_len; +a1_dl2b := a_dl2b/5*0.526988882220950; +a_dl2b := dlb_angle; +dlb_angle := 0.0294123852*a+3*dalpha/4; +e1_1_dl2b := a_dl2b/2; +e2_1_dl2b := a1_dl2b-e1_1_dl2b; +l2_dl2b := l_dl2b/5*(a2_dl2b/2)/sin(a2_dl2b/2); +a2_dl2b := a_dl2b/5*0.713984937202577; +e1_2_dl2b := -e2_1_dl2b; +e2_2_dl2b := a2_dl2b-e1_2_dl2b; +l3_dl2b := l_dl2b/5*(a3_dl2b/2)/sin(a3_dl2b/2); +a3_dl2b := a_dl2b/5*0.909480812865187; +e1_3_dl2b := -e2_2_dl2b; +e2_3_dl2b := a3_dl2b-e1_3_dl2b; +l4_dl2b := l_dl2b/5*(a4_dl2b/2)/sin(a4_dl2b/2); +a4_dl2b := a_dl2b/5*1.198474716018611; +e1_4_dl2b := -e2_3_dl2b; +e2_4_dl2b := a4_dl2b-e1_4_dl2b; +l5_dl2b := l_dl2b/5*(a5_dl2b/2)/sin(a5_dl2b/2); +a5_dl2b := a_dl2b/5*1.651070651692675; +e1_5_dl2b := -e2_4_dl2b; +e2_5_dl2b := a5_dl2b-e1_5_dl2b; +qf6_l := 0.388*s; +qf6_k1 = 4.61809569425; +dq1_len := 1.0280365223*s; +dq1_angle := 0.0292*a-dalpha; +dq1_k1 = -1.9180958919; +qf8_l := 0.484*s; +qf8_k1 = 4.39190668466; +sh2b_k2 = 0; +dq2c_len := 0.4000010270*s; +dq2c_angle := 0.00785*a-dalpha/2; +dq2c_k1 = -1.36782495776; +l1_dl2d := l_dl2d/5*(a1_dl2d/2)/sin(a1_dl2d/2); +l_dl2d := dl_len; +a1_dl2d := a_dl2d/5*1.651070651692675; +a_dl2d := dlb_angle; +e1_1_dl2d := a_dl2d/2; +e2_1_dl2d := a1_dl2d-e1_1_dl2d; +l2_dl2d := l_dl2d/5*(a2_dl2d/2)/sin(a2_dl2d/2); +a2_dl2d := a_dl2d/5*1.198474716018611; +e1_2_dl2d := -e2_1_dl2d; +e2_2_dl2d := a2_dl2d-e1_2_dl2d; +l3_dl2d := l_dl2d/5*(a3_dl2d/2)/sin(a3_dl2d/2); +a3_dl2d := a_dl2d/5*0.909480812865187; +e1_3_dl2d := -e2_2_dl2d; +e2_3_dl2d := a3_dl2d-e1_3_dl2d; +l4_dl2d := l_dl2d/5*(a4_dl2d/2)/sin(a4_dl2d/2); +a4_dl2d := a_dl2d/5*0.713984937202577; +e1_4_dl2d := -e2_3_dl2d; +e2_4_dl2d := a4_dl2d-e1_4_dl2d; +l5_dl2d := l_dl2d/5*(a5_dl2d/2)/sin(a5_dl2d/2); +a5_dl2d := a_dl2d/5*0.526988882220950; +e1_5_dl2d := -e2_4_dl2d; +e2_5_dl2d := a5_dl2d-e1_5_dl2d; +sd1d_k2 := sd1b_k2; +of1d_k3 := of1b_k3; +sf2e_k2 := sf2a_k2; +sd1e_k2 := sd1a_k2; +l1_dl1e := l_dl1e/5*(a1_dl1e/2)/sin(a1_dl1e/2); +l_dl1e := dl_len; +a1_dl1e := a_dl1e/5*0.488768028713274; +a_dl1e := dla_angle; +e1_1_dl1e := a_dl1e/2; +e2_1_dl1e := a1_dl1e-e1_1_dl1e; +l2_dl1e := l_dl1e/5*(a2_dl1e/2)/sin(a2_dl1e/2); +a2_dl1e := a_dl1e/5*0.662201845353468; +e1_2_dl1e := -e2_1_dl1e; +e2_2_dl1e := a2_dl1e-e1_2_dl1e; +l3_dl1e := l_dl1e/5*(a3_dl1e/2)/sin(a3_dl1e/2); +a3_dl1e := a_dl1e/5*0.843519017295489; +e1_3_dl1e := -e2_2_dl1e; +e2_3_dl1e := a3_dl1e-e1_3_dl1e; +l4_dl1e := l_dl1e/5*(a4_dl1e/2)/sin(a4_dl1e/2); +a4_dl1e := a_dl1e/5*1.111553097557607; +e1_4_dl1e := -e2_3_dl1e; +e2_4_dl1e := a4_dl1e-e1_4_dl1e; +l5_dl1e := l_dl1e/5*(a5_dl1e/2)/sin(a5_dl1e/2); +a5_dl1e := a_dl1e/5*1.893958011080163; +e1_5_dl1e := -e2_4_dl1e; +e2_5_dl1e := a5_dl1e-e1_5_dl1e; +sh3e_k2 = 0; +qflm1_k1 = 0.204922762186; +qdlm1_k1 = -0.715007289624; +qflm2_k1 = 0.600612743209; +qdl_k1 = -0.429841067708; +qfl_k1 = 0.445896809801; +vrf = 6000000; +qfsm1_k1 = 0.371128587384; +qdsm1_k1 = -0.589782987511; +qfsm2_k1 = 0.473190228389; +qd1s_k1 = -0.385176897816; +qfs_k1 = 0.260913375118; +qds_k1 = -0.363745968266; +qflum1_k1 = 0.599795059541; +qdlum1_k1 = -0.7535021; +qflum2_k1 = 0.688281090852; +qdlu_k1 = -0.425211001601; +qflu_k1 = 0.381548408331; +qflum3_k1 = 0.502256142096; +qdlum3_k1 = -0.121148742017; +qdlum4_k1 = -1.06782268358; +qflum4_k1 = 1.13490086182; +qflum5_k1 = 1.05393905796; +qdlum5_k1 = -1.29007997448; +qflum6_k1 = 0.693857606175; +qdlum6_k1 = -0.535655219338; +qfsum1_k1 = 0.662161319735; +qdsum1_k1 = -0.635005384447; +qfsum2_k1 = 0.603862878783; +qdsu_k1 = -0.330491771246; +qfsu: quadrupole,l:= 0.5,k1:=qfsu_k1 ; +qfsuh: qfsu,l:= 0.25; +qd2su: quadrupole,l:= 0.5,k1:=qd2su_k1 ; +qd2suh: qd2su,l:= 0.25; +bpm: monitor,l:= 0; +vcor: vkicker,l:= 0,kick:= 0; +qfsum3: quadrupole,l:= 0.5,k1:=qfsum3_k1 ; +qdsum3: quadrupole,l:= 0.5,k1:=qdsum3_k1 ; +qdsum4: quadrupole,l:= 0.5,k1:=qdsum4_k1 ; +hcor: hkicker,l:= 0,kick:= 0; +qfsum4: quadrupole,l:= 0.5,k1:=qfsum4_k1 ; +mid: marker; +qfsum5: quadrupole,l:= 0.5,k1:=qfsum5_k1 ; +qdsum5: quadrupole,l:= 0.5,k1:=qdsum5_k1 ; +qfsum6: quadrupole,l:= 0.5,k1:=qfsum6_k1 ; +qdsum6: quadrupole,l:= 0.5,k1:=qdsum6_k1 ; +arc_sw_w: marker; +idmarker: marker; +bpm_01: monitor; +qf1: quadrupole,l:=qf1_l ,k1:=qf1_k1 ; +sh1a: sextupole,l:=sh_len ,k2:=sh1a_k2 ; +qd2: quadrupole,l:=qd2_l ,k1:=qd2_k1 ; +dlmarker: marker; +dl1a_1: sbend,l:=l1_dl1a ,angle:=a1_dl1a ,k1:= 0,e1:=e1_1_dl1a ,e2:=e2_1_dl1a ; +dl1a_2: sbend,l:=l2_dl1a ,angle:=a2_dl1a ,k1:= 0,e1:=e1_2_dl1a ,e2:=e2_2_dl1a ; +dl1a_3: sbend,l:=l3_dl1a ,angle:=a3_dl1a ,k1:= 0,e1:=e1_3_dl1a ,e2:=e2_3_dl1a ; +dl1a_4: sbend,l:=l4_dl1a ,angle:=a4_dl1a ,k1:= 0,e1:=e1_4_dl1a ,e2:=e2_4_dl1a ; +dl1a_5: sbend,l:=l5_dl1a ,angle:=a5_dl1a ,k1:= 0,e1:=e1_5_dl1a ,e2:=e2_5_dl1a ; +qd3: quadrupole,l:=qd3_l ,k1:=qd3_k1 ; +sd1a: sextupole,l:=sd_len ,k2:=sd1a_k2 ; +bpm_02: monitor; +qf4a: quadrupole,l:=qf4a_l ,k1:=qf4a_k1 ; +dispbumpcenter: marker; +sf2ah: sextupole,l:=sf_len / 2 ,k2:=sf2a_k2 ; +sf2amarker: marker; +qf4b: quadrupole,l:=qf4b_l ,k1:=qf4b_k1 ; +of1b: octupole,l:=of_len ,k3:=of1b_k3 ; +bpm_03: monitor; +sd1b: sextupole,l:=sd_len ,k2:=sd1b_k2 ; +qd5: quadrupole,l:=qd5_l ,k1:=qd5_k1 ; +dl2b_1: sbend,l:=l1_dl2b ,angle:=a1_dl2b ,k1:= 0,e1:=e1_1_dl2b ,e2:=e2_1_dl2b ; +dl2b_2: sbend,l:=l2_dl2b ,angle:=a2_dl2b ,k1:= 0,e1:=e1_2_dl2b ,e2:=e2_2_dl2b ; +dl2b_3: sbend,l:=l3_dl2b ,angle:=a3_dl2b ,k1:= 0,e1:=e1_3_dl2b ,e2:=e2_3_dl2b ; +dl2b_4: sbend,l:=l4_dl2b ,angle:=a4_dl2b ,k1:= 0,e1:=e1_4_dl2b ,e2:=e2_4_dl2b ; +dl2b_5: sbend,l:=l5_dl2b ,angle:=a5_dl2b ,k1:= 0,e1:=e1_5_dl2b ,e2:=e2_5_dl2b ; +bpm_04: monitor; +qf6: quadrupole,l:=qf6_l ,k1:=qf6_k1 ; +dq1: sbend,l:=dq1_len ,angle:=dq1_angle ,k1:=dq1_k1 ,e1:=dq1_angle / 2 ,e2:=dq1_angle / 2 ; +qf8: quadrupole,l:=qf8_l ,k1:=qf8_k1 ; +sh2b: sextupole,l:=sh_len ,k2:=sh2b_k2 ; +bpm_05: monitor; +dq2c_1: sbend,l:=dq2c_len ,angle:=dq2c_angle ,k1:=dq2c_k1 ,e1:=dq2c_angle ,e2:= 0; +cellcenter: marker; +dq2c_2: sbend,l:=dq2c_len ,angle:=dq2c_angle ,k1:=dq2c_k1 ,e1:= 0,e2:=dq2c_angle ; +bpm_06: monitor; +bpm_07: monitor; +dl2d_1: sbend,l:=l1_dl2d ,angle:=a1_dl2d ,k1:= 0,e1:=e1_1_dl2d ,e2:=e2_1_dl2d ; +dl2d_2: sbend,l:=l2_dl2d ,angle:=a2_dl2d ,k1:= 0,e1:=e1_2_dl2d ,e2:=e2_2_dl2d ; +dl2d_3: sbend,l:=l3_dl2d ,angle:=a3_dl2d ,k1:= 0,e1:=e1_3_dl2d ,e2:=e2_3_dl2d ; +dl2d_4: sbend,l:=l4_dl2d ,angle:=a4_dl2d ,k1:= 0,e1:=e1_4_dl2d ,e2:=e2_4_dl2d ; +dl2d_5: sbend,l:=l5_dl2d ,angle:=a5_dl2d ,k1:= 0,e1:=e1_5_dl2d ,e2:=e2_5_dl2d ; +sd1d: sextupole,l:=sd_len ,k2:=sd1d_k2 ; +bpm_08: monitor; +of1d: octupole,l:=of_len ,k3:=of1d_k3 ; +sf2eh: sextupole,l:=sf_len / 2 ,k2:=sf2e_k2 ; +sf2emarker: marker; +bpm_09: monitor; +sd1e: sextupole,l:=sd_len ,k2:=sd1e_k2 ; +dl1e_1: sbend,l:=l1_dl1e ,angle:=a1_dl1e ,k1:= 0,e1:=e1_1_dl1e ,e2:=e2_1_dl1e ; +dl1e_2: sbend,l:=l2_dl1e ,angle:=a2_dl1e ,k1:= 0,e1:=e1_2_dl1e ,e2:=e2_2_dl1e ; +dl1e_3: sbend,l:=l3_dl1e ,angle:=a3_dl1e ,k1:= 0,e1:=e1_3_dl1e ,e2:=e2_3_dl1e ; +dl1e_4: sbend,l:=l4_dl1e ,angle:=a4_dl1e ,k1:= 0,e1:=e1_4_dl1e ,e2:=e2_4_dl1e ; +dl1e_5: sbend,l:=l5_dl1e ,angle:=a5_dl1e ,k1:= 0,e1:=e1_5_dl1e ,e2:=e2_5_dl1e ; +sh3e: sextupole,l:=sh_len ,k2:=sh3e_k2 ; +bpm_10: monitor; +pdc0: sbend,l:= 0.05,angle:= -0.002,e1:= -0.001,e2:= -0.001; +pdc1: sbend,l:= 0.05,angle:= 0.002,e1:= 0.002,e2:= 0; +pdc2: sbend,l:= 0.05,angle:= 0.002,e1:= 0,e2:= 0.002; +lss_w: marker; +qflm1: quadrupole,l:= 0.5,k1:=qflm1_k1 ; +qdlm1: quadrupole,l:= 0.5,k1:=qdlm1_k1 ; +qflm2: quadrupole,l:= 0.5,k1:=qflm2_k1 ; +qdl: quadrupole,l:= 0.5,k1:=qdl_k1 ; +qdlh: qdl,l:= 0.25; +qfl: quadrupole,l:= 0.5,k1:=qfl_k1 ; +qflh: qfl,l:= 0.25; +cav: rfcavity,l:= 0,volt:=vrf / 2 * 1e-6 ,lag:= 0.5,freq:= 500; +arc_w_nw: marker; +sss_nw: marker; +qfsm1: quadrupole,l:= 0.5,k1:=qfsm1_k1 ; +qdsm1: quadrupole,l:= 0.5,k1:=qdsm1_k1 ; +qfsm2: quadrupole,l:= 0.5,k1:=qfsm2_k1 ; +qd1s: quadrupole,l:= 0.5,k1:=qd1s_k1 ; +qfs: quadrupole,l:= 0.5,k1:=qfs_k1 ; +qds: quadrupole,l:= 0.5,k1:=qds_k1 ; +qdsh: qds,l:= 0.25; +arc_nw_n: marker; +lss_n: marker; +qflum1: quadrupole,l:= 0.5,k1:=qflum1_k1 ; +qdlum1: quadrupole,l:= 0.5,k1:=qdlum1_k1 ; +qflum2: quadrupole,l:= 0.5,k1:=qflum2_k1 ; +qdlu: quadrupole,l:= 0.5,k1:=qdlu_k1 ; +qdluh: qdlu,l:= 0.25; +qflu: quadrupole,l:= 0.5,k1:=qflu_k1 ; +qfluh: qflu,l:= 0.25; +qflum3: quadrupole,l:= 0.5,k1:=qflum3_k1 ; +qdlum3: quadrupole,l:= 0.5,k1:=qdlum3_k1 ; +qdlum4: quadrupole,l:= 0.5,k1:=qdlum4_k1 ; +qflum4: quadrupole,l:= 0.5,k1:=qflum4_k1 ; +qflum5: quadrupole,l:= 0.5,k1:=qflum5_k1 ; +qdlum5: quadrupole,l:= 0.5,k1:=qdlum5_k1 ; +qflum6: quadrupole,l:= 0.5,k1:=qflum6_k1 ; +qdlum6: quadrupole,l:= 0.5,k1:=qdlum6_k1 ; +arc_n_ne: marker; +sss_ne: marker; +qfsum1: quadrupole,l:= 0.5,k1:=qfsum1_k1 ; +qdsum1: quadrupole,l:= 0.5,k1:=qdsum1_k1 ; +qfsum2: quadrupole,l:= 0.5,k1:=qfsum2_k1 ; +qdsu: quadrupole,l:= 0.5,k1:=qdsu_k1 ; +qdsuh: qdsu,l:= 0.25; +arc_ne_e: marker; +lss_e: marker; +arc_e_se: marker; +sss_se: marker; +injection: marker; +arc_se_s: marker; +lss_s: marker; +m2: marker; +arc_s_sw: marker; +sss_sw: marker; +ring: sequence, l = 2301.59936093; +qfsuh, at = 0.125; +qd2suh, at = 7.075; +qd2suh, at = 7.325; +bpm, at = 7.45; +vcor, at = 7.45; +qfsum3, at = 9.697; +qdsum3, at = 11.93; +qdsum4, at = 14.709; +hcor, at = 15.23; +bpm, at = 15.23; +qfsum4, at = 15.48; +mid, at = 21.4; +qfsum5, at = 27.32; +qdsum5, at = 28.091; +vcor, at = 28.341; +bpm, at = 28.341; +hcor, at = 31.59; +qfsum6, at = 31.84; +qdsum6, at = 33.352; +arc_sw_w, at = 35.6; +idmarker, at = 35.6; +bpm_01, at = 38.2338774532; +qf1, at = 38.4310656083; +sh1a, at = 38.7365334053; +qd2, at = 39.1199824122; +dlmarker, at = 39.2719712673; +dl1a_1, at = 39.4495898826; +dl1a_2, at = 39.8048269381; +dl1a_3, at = 40.1600637796; +dl1a_4, at = 40.5153005617; +dl1a_5, at = 40.8705373087; +qd3, at = 41.1753097496; +sd1a, at = 41.4127302487; +bpm_02, at = 42.0364343316; +qf4a, at = 42.1973637075; +dispbumpcenter, at = 42.3771675165; +sf2ah, at = 42.426837077; +sf2amarker, at = 42.4765066374; +sf2ah, at = 42.5261761979; +qf4b, at = 42.7556495674; +of1b, at = 42.9652551138; +bpm_03, at = 43.065587626; +sd1b, at = 43.5402830241; +qd5, at = 43.8025383034; +dl2b_1, at = 44.1321455246; +dl2b_2, at = 44.4873822716; +dl2b_3, at = 44.8426190537; +dl2b_4, at = 45.1978558952; +dl2b_5, at = 45.5530928583; +bpm_04, at = 45.8240901548; +qf6, at = 46.0724379572; +dq1, at = 46.865182283; +qf8, at = 47.7056093868; +sh2b, at = 48.1605825608; +bpm_05, at = 48.247007596; +dq2c_1, at = 48.5013162558; +cellcenter, at = 48.6999950078; +dq2c_2, at = 48.8986737599; +bpm_06, at = 49.1529824196; +sh2b, at = 49.2394074549; +qf8, at = 49.6943806289; +dq1, at = 50.5348077327; +qf6, at = 51.3275520585; +bpm_07, at = 51.5758998609; +dl2d_1, at = 51.8468971574; +dl2d_2, at = 52.2021341205; +dl2d_3, at = 52.5573709619; +dl2d_4, at = 52.9126077441; +dl2d_5, at = 53.2678444911; +qd5, at = 53.5974517122; +sd1d, at = 53.8597069916; +bpm_08, at = 54.3344023897; +of1d, at = 54.4347349019; +qf4b, at = 54.6443404471; +dispbumpcenter, at = 54.8241442561; +sf2eh, at = 54.8738138166; +sf2emarker, at = 54.923483377; +sf2eh, at = 54.9731529375; +qf4a, at = 55.2026263069; +bpm_09, at = 55.3635556829; +sd1e, at = 55.9872597658; +qd3, at = 56.2246802649; +dl1e_1, at = 56.5294527058; +dl1e_2, at = 56.8846894528; +dl1e_3, at = 57.2399262349; +dl1e_4, at = 57.5951630764; +dl1e_5, at = 57.9504001319; +dlmarker, at = 58.1280187472; +qd2, at = 58.2800076022; +sh3e, at = 58.6634566092; +qf1, at = 58.9689244061; +bpm_10, at = 59.1661125612; +pdc0, at = 59.2911125612; +pdc1, at = 61.7749900145; +idmarker, at = 61.7999900145; +pdc2, at = 61.8249900145; +pdc0, at = 64.3088674677; +bpm_01, at = 64.4338674677; +qf1, at = 64.6310556228; +sh1a, at = 64.9365234198; +qd2, at = 65.3199724267; +dlmarker, at = 65.4719612818; +dl1a_1, at = 65.649579897; +dl1a_2, at = 66.0048169526; +dl1a_3, at = 66.360053794; +dl1a_4, at = 66.7152905762; +dl1a_5, at = 67.0705273232; +qd3, at = 67.3752997641; +sd1a, at = 67.6127202632; +bpm_02, at = 68.2364243461; +qf4a, at = 68.397353722; +dispbumpcenter, at = 68.577157531; +sf2ah, at = 68.6268270914; +sf2amarker, at = 68.6764966519; +sf2ah, at = 68.7261662124; +qf4b, at = 68.9556395818; +of1b, at = 69.1652451283; +bpm_03, at = 69.2655776404; +sd1b, at = 69.7402730386; +qd5, at = 70.0025283179; +dl2b_1, at = 70.3321355391; +dl2b_2, at = 70.687372286; +dl2b_3, at = 71.0426090682; +dl2b_4, at = 71.3978459097; +dl2b_5, at = 71.7530828727; +bpm_04, at = 72.0240801693; +qf6, at = 72.2724279717; +dq1, at = 73.0651722974; +qf8, at = 73.9055994013; +sh2b, at = 74.3605725753; +bpm_05, at = 74.4469976105; +dq2c_1, at = 74.7013062703; +cellcenter, at = 74.8999850223; +dq2c_2, at = 75.0986637743; +bpm_06, at = 75.3529724341; +sh2b, at = 75.4393974694; +qf8, at = 75.8943706434; +dq1, at = 76.7347977472; +qf6, at = 77.527542073; +bpm_07, at = 77.7758898754; +dl2d_1, at = 78.0468871719; +dl2d_2, at = 78.4021241349; +dl2d_3, at = 78.7573609764; +dl2d_4, at = 79.1125977586; +dl2d_5, at = 79.4678345056; +qd5, at = 79.7974417267; +sd1d, at = 80.059697006; +bpm_08, at = 80.5343924042; +of1d, at = 80.6347249164; +qf4b, at = 80.8443304616; +dispbumpcenter, at = 81.0241342705; +sf2eh, at = 81.073803831; +sf2emarker, at = 81.1234733915; +sf2eh, at = 81.173142952; +qf4a, at = 81.4026163214; +bpm_09, at = 81.5635456974; +sd1e, at = 82.1872497803; +qd3, at = 82.4246702794; +dl1e_1, at = 82.7294427203; +dl1e_2, at = 83.0846794672; +dl1e_3, at = 83.4399162494; +dl1e_4, at = 83.7951530909; +dl1e_5, at = 84.1503901464; +dlmarker, at = 84.3280087616; +qd2, at = 84.4799976167; +sh3e, at = 84.8634466236; +qf1, at = 85.1689144206; +bpm_10, at = 85.3661025757; +idmarker, at = 87.799980029; +bpm_01, at = 90.2338574822; +qf1, at = 90.4310456373; +sh1a, at = 90.7365134343; +qd2, at = 91.1199624412; +dlmarker, at = 91.2719512963; +dl1a_1, at = 91.4495699115; +dl1a_2, at = 91.804806967; +dl1a_3, at = 92.1600438085; +dl1a_4, at = 92.5152805907; +dl1a_5, at = 92.8705173377; +qd3, at = 93.1752897786; +sd1a, at = 93.4127102777; +bpm_02, at = 94.0364143605; +qf4a, at = 94.1973437365; +dispbumpcenter, at = 94.3771475454; +sf2ah, at = 94.4268171059; +sf2amarker, at = 94.4764866664; +sf2ah, at = 94.5261562269; +qf4b, at = 94.7556295963; +of1b, at = 94.9652351427; +bpm_03, at = 95.0655676549; +sd1b, at = 95.5402630531; +qd5, at = 95.8025183324; +dl2b_1, at = 96.1321255535; +dl2b_2, at = 96.4873623005; +dl2b_3, at = 96.8425990827; +dl2b_4, at = 97.1978359242; +dl2b_5, at = 97.5530728872; +bpm_04, at = 97.8240701837; +qf6, at = 98.0724179862; +dq1, at = 98.8651623119; +qf8, at = 99.7055894157; +sh2b, at = 100.16056259; +bpm_05, at = 100.246987625; +dq2c_1, at = 100.501296285; +cellcenter, at = 100.699975037; +dq2c_2, at = 100.898653789; +bpm_06, at = 101.152962449; +sh2b, at = 101.239387484; +qf8, at = 101.694360658; +dq1, at = 102.534787762; +qf6, at = 103.327532087; +bpm_07, at = 103.57587989; +dl2d_1, at = 103.846877186; +dl2d_2, at = 104.202114149; +dl2d_3, at = 104.557350991; +dl2d_4, at = 104.912587773; +dl2d_5, at = 105.26782452; +qd5, at = 105.597431741; +sd1d, at = 105.859687021; +bpm_08, at = 106.334382419; +of1d, at = 106.434714931; +qf4b, at = 106.644320476; +dispbumpcenter, at = 106.824124285; +sf2eh, at = 106.873793846; +sf2emarker, at = 106.923463406; +sf2eh, at = 106.973132966; +qf4a, at = 107.202606336; +bpm_09, at = 107.363535712; +sd1e, at = 107.987239795; +qd3, at = 108.224660294; +dl1e_1, at = 108.529432735; +dl1e_2, at = 108.884669482; +dl1e_3, at = 109.239906264; +dl1e_4, at = 109.595143105; +dl1e_5, at = 109.950380161; +dlmarker, at = 110.127998776; +qd2, at = 110.279987631; +sh3e, at = 110.663436638; +qf1, at = 110.968904435; +bpm_10, at = 111.16609259; +idmarker, at = 113.599970043; +bpm_01, at = 116.033847497; +qf1, at = 116.231035652; +sh1a, at = 116.536503449; +qd2, at = 116.919952456; +dlmarker, at = 117.071941311; +dl1a_1, at = 117.249559926; +dl1a_2, at = 117.604796982; +dl1a_3, at = 117.960033823; +dl1a_4, at = 118.315270605; +dl1a_5, at = 118.670507352; +qd3, at = 118.975279793; +sd1a, at = 119.212700292; +bpm_02, at = 119.836404375; +qf4a, at = 119.997333751; +dispbumpcenter, at = 120.17713756; +sf2ah, at = 120.22680712; +sf2amarker, at = 120.276476681; +sf2ah, at = 120.326146241; +qf4b, at = 120.555619611; +of1b, at = 120.765225157; +bpm_03, at = 120.865557669; +sd1b, at = 121.340253068; +qd5, at = 121.602508347; +dl2b_1, at = 121.932115568; +dl2b_2, at = 122.287352315; +dl2b_3, at = 122.642589097; +dl2b_4, at = 122.997825939; +dl2b_5, at = 123.353062902; +bpm_04, at = 123.624060198; +qf6, at = 123.872408001; +dq1, at = 124.665152326; +qf8, at = 125.50557943; +sh2b, at = 125.960552604; +bpm_05, at = 126.046977639; +dq2c_1, at = 126.301286299; +cellcenter, at = 126.499965051; +dq2c_2, at = 126.698643803; +bpm_06, at = 126.952952463; +sh2b, at = 127.039377498; +qf8, at = 127.494350672; +dq1, at = 128.334777776; +qf6, at = 129.127522102; +bpm_07, at = 129.375869904; +dl2d_1, at = 129.646867201; +dl2d_2, at = 130.002104164; +dl2d_3, at = 130.357341005; +dl2d_4, at = 130.712577788; +dl2d_5, at = 131.067814535; +qd5, at = 131.397421756; +sd1d, at = 131.659677035; +bpm_08, at = 132.134372433; +of1d, at = 132.234704945; +qf4b, at = 132.444310491; +dispbumpcenter, at = 132.6241143; +sf2eh, at = 132.67378386; +sf2emarker, at = 132.72345342; +sf2eh, at = 132.773122981; +qf4a, at = 133.00259635; +bpm_09, at = 133.163525726; +sd1e, at = 133.787229809; +qd3, at = 134.024650308; +dl1e_1, at = 134.329422749; +dl1e_2, at = 134.684659496; +dl1e_3, at = 135.039896278; +dl1e_4, at = 135.39513312; +dl1e_5, at = 135.750370175; +dlmarker, at = 135.927988791; +qd2, at = 136.079977646; +sh3e, at = 136.463426653; +qf1, at = 136.76889445; +bpm_10, at = 136.966082605; +idmarker, at = 139.399960058; +bpm_01, at = 141.833837511; +qf1, at = 142.031025666; +sh1a, at = 142.336493463; +qd2, at = 142.71994247; +dlmarker, at = 142.871931325; +dl1a_1, at = 143.04954994; +dl1a_2, at = 143.404786996; +dl1a_3, at = 143.760023837; +dl1a_4, at = 144.11526062; +dl1a_5, at = 144.470497367; +qd3, at = 144.775269808; +sd1a, at = 145.012690307; +bpm_02, at = 145.636394389; +qf4a, at = 145.797323765; +dispbumpcenter, at = 145.977127574; +sf2ah, at = 146.026797135; +sf2amarker, at = 146.076466695; +sf2ah, at = 146.126136256; +qf4b, at = 146.355609625; +of1b, at = 146.565215172; +bpm_03, at = 146.665547684; +sd1b, at = 147.140243082; +qd5, at = 147.402498361; +dl2b_1, at = 147.732105582; +dl2b_2, at = 148.087342329; +dl2b_3, at = 148.442579112; +dl2b_4, at = 148.797815953; +dl2b_5, at = 149.153052916; +bpm_04, at = 149.424050213; +qf6, at = 149.672398015; +dq1, at = 150.465142341; +qf8, at = 151.305569445; +sh2b, at = 151.760542619; +bpm_05, at = 151.846967654; +dq2c_1, at = 152.101276314; +cellcenter, at = 152.299955066; +dq2c_2, at = 152.498633818; +bpm_06, at = 152.752942478; +sh2b, at = 152.839367513; +qf8, at = 153.294340687; +dq1, at = 154.134767791; +qf6, at = 154.927512116; +bpm_07, at = 155.175859919; +dl2d_1, at = 155.446857215; +dl2d_2, at = 155.802094178; +dl2d_3, at = 156.15733102; +dl2d_4, at = 156.512567802; +dl2d_5, at = 156.867804549; +qd5, at = 157.19741177; +sd1d, at = 157.459667049; +bpm_08, at = 157.934362448; +of1d, at = 158.03469496; +qf4b, at = 158.244300505; +dispbumpcenter, at = 158.424104314; +sf2eh, at = 158.473773874; +sf2emarker, at = 158.523443435; +sf2eh, at = 158.573112995; +qf4a, at = 158.802586365; +bpm_09, at = 158.963515741; +sd1e, at = 159.587219824; +qd3, at = 159.824640323; +dl1e_1, at = 160.129412764; +dl1e_2, at = 160.484649511; +dl1e_3, at = 160.839886293; +dl1e_4, at = 161.195123134; +dl1e_5, at = 161.55036019; +dlmarker, at = 161.727978805; +qd2, at = 161.87996766; +sh3e, at = 162.263416667; +qf1, at = 162.568884464; +bpm_10, at = 162.766072619; +idmarker, at = 165.199950072; +bpm_01, at = 167.633827526; +qf1, at = 167.831015681; +sh1a, at = 168.136483478; +qd2, at = 168.519932485; +dlmarker, at = 168.67192134; +dl1a_1, at = 168.849539955; +dl1a_2, at = 169.20477701; +dl1a_3, at = 169.560013852; +dl1a_4, at = 169.915250634; +dl1a_5, at = 170.270487381; +qd3, at = 170.575259822; +sd1a, at = 170.812680321; +bpm_02, at = 171.436384404; +qf4a, at = 171.59731378; +dispbumpcenter, at = 171.777117589; +sf2ah, at = 171.826787149; +sf2amarker, at = 171.87645671; +sf2ah, at = 171.92612627; +qf4b, at = 172.15559964; +of1b, at = 172.365205186; +bpm_03, at = 172.465537698; +sd1b, at = 172.940233096; +qd5, at = 173.202488376; +dl2b_1, at = 173.532095597; +dl2b_2, at = 173.887332344; +dl2b_3, at = 174.242569126; +dl2b_4, at = 174.597805968; +dl2b_5, at = 174.953042931; +bpm_04, at = 175.224040227; +qf6, at = 175.47238803; +dq1, at = 176.265132355; +qf8, at = 177.105559459; +sh2b, at = 177.560532633; +bpm_05, at = 177.646957668; +dq2c_1, at = 177.901266328; +cellcenter, at = 178.09994508; +dq2c_2, at = 178.298623832; +bpm_06, at = 178.552932492; +sh2b, at = 178.639357527; +qf8, at = 179.094330701; +dq1, at = 179.934757805; +qf6, at = 180.727502131; +bpm_07, at = 180.975849933; +dl2d_1, at = 181.24684723; +dl2d_2, at = 181.602084193; +dl2d_3, at = 181.957321034; +dl2d_4, at = 182.312557816; +dl2d_5, at = 182.667794563; +qd5, at = 182.997401785; +sd1d, at = 183.259657064; +bpm_08, at = 183.734352462; +of1d, at = 183.834684974; +qf4b, at = 184.04429052; +dispbumpcenter, at = 184.224094328; +sf2eh, at = 184.273763889; +sf2emarker, at = 184.323433449; +sf2eh, at = 184.37310301; +qf4a, at = 184.602576379; +bpm_09, at = 184.763505755; +sd1e, at = 185.387209838; +qd3, at = 185.624630337; +dl1e_1, at = 185.929402778; +dl1e_2, at = 186.284639525; +dl1e_3, at = 186.639876307; +dl1e_4, at = 186.995113149; +dl1e_5, at = 187.350350204; +dlmarker, at = 187.52796882; +qd2, at = 187.679957675; +sh3e, at = 188.063406682; +qf1, at = 188.368874479; +bpm_10, at = 188.566062634; +idmarker, at = 190.999940087; +bpm_01, at = 193.43381754; +qf1, at = 193.631005695; +sh1a, at = 193.936473492; +qd2, at = 194.319922499; +dlmarker, at = 194.471911354; +dl1a_1, at = 194.649529969; +dl1a_2, at = 195.004767025; +dl1a_3, at = 195.360003866; +dl1a_4, at = 195.715240649; +dl1a_5, at = 196.070477396; +qd3, at = 196.375249836; +sd1a, at = 196.612670336; +bpm_02, at = 197.236374418; +qf4a, at = 197.397303794; +dispbumpcenter, at = 197.577107603; +sf2ah, at = 197.626777164; +sf2amarker, at = 197.676446724; +sf2ah, at = 197.726116285; +qf4b, at = 197.955589654; +of1b, at = 198.165195201; +bpm_03, at = 198.265527713; +sd1b, at = 198.740223111; +qd5, at = 199.00247839; +dl2b_1, at = 199.332085611; +dl2b_2, at = 199.687322358; +dl2b_3, at = 200.042559141; +dl2b_4, at = 200.397795982; +dl2b_5, at = 200.753032945; +bpm_04, at = 201.024030242; +qf6, at = 201.272378044; +dq1, at = 202.06512237; +qf8, at = 202.905549474; +sh2b, at = 203.360522648; +bpm_05, at = 203.446947683; +dq2c_1, at = 203.701256343; +cellcenter, at = 203.899935095; +dq2c_2, at = 204.098613847; +bpm_06, at = 204.352922507; +sh2b, at = 204.439347542; +qf8, at = 204.894320716; +dq1, at = 205.73474782; +qf6, at = 206.527492145; +bpm_07, at = 206.775839948; +dl2d_1, at = 207.046837244; +dl2d_2, at = 207.402074207; +dl2d_3, at = 207.757311049; +dl2d_4, at = 208.112547831; +dl2d_5, at = 208.467784578; +qd5, at = 208.797391799; +sd1d, at = 209.059647078; +bpm_08, at = 209.534342477; +of1d, at = 209.634674989; +qf4b, at = 209.844280534; +dispbumpcenter, at = 210.024084343; +sf2eh, at = 210.073753903; +sf2emarker, at = 210.123423464; +sf2eh, at = 210.173093024; +qf4a, at = 210.402566394; +bpm_09, at = 210.56349577; +sd1e, at = 211.187199853; +qd3, at = 211.424620352; +dl1e_1, at = 211.729392793; +dl1e_2, at = 212.08462954; +dl1e_3, at = 212.439866322; +dl1e_4, at = 212.795103163; +dl1e_5, at = 213.150340219; +dlmarker, at = 213.327958834; +qd2, at = 213.479947689; +sh3e, at = 213.863396696; +qf1, at = 214.168864493; +bpm_10, at = 214.366052648; +idmarker, at = 216.799930101; +bpm_01, at = 219.233807555; +qf1, at = 219.43099571; +sh1a, at = 219.736463507; +qd2, at = 220.119912514; +dlmarker, at = 220.271901369; +dl1a_1, at = 220.449519984; +dl1a_2, at = 220.804757039; +dl1a_3, at = 221.159993881; +dl1a_4, at = 221.515230663; +dl1a_5, at = 221.87046741; +qd3, at = 222.175239851; +sd1a, at = 222.41266035; +bpm_02, at = 223.036364433; +qf4a, at = 223.197293809; +dispbumpcenter, at = 223.377097618; +sf2ah, at = 223.426767178; +sf2amarker, at = 223.476436739; +sf2ah, at = 223.526106299; +qf4b, at = 223.755579669; +of1b, at = 223.965185215; +bpm_03, at = 224.065517727; +sd1b, at = 224.540213125; +qd5, at = 224.802468405; +dl2b_1, at = 225.132075626; +dl2b_2, at = 225.487312373; +dl2b_3, at = 225.842549155; +dl2b_4, at = 226.197785997; +dl2b_5, at = 226.55302296; +bpm_04, at = 226.824020256; +qf6, at = 227.072368059; +dq1, at = 227.865112384; +qf8, at = 228.705539488; +sh2b, at = 229.160512662; +bpm_05, at = 229.246937697; +dq2c_1, at = 229.501246357; +cellcenter, at = 229.699925109; +dq2c_2, at = 229.898603861; +bpm_06, at = 230.152912521; +sh2b, at = 230.239337556; +qf8, at = 230.69431073; +dq1, at = 231.534737834; +qf6, at = 232.32748216; +bpm_07, at = 232.575829962; +dl2d_1, at = 232.846827259; +dl2d_2, at = 233.202064222; +dl2d_3, at = 233.557301063; +dl2d_4, at = 233.912537845; +dl2d_5, at = 234.267774592; +qd5, at = 234.597381814; +sd1d, at = 234.859637093; +bpm_08, at = 235.334332491; +of1d, at = 235.434665003; +qf4b, at = 235.644270548; +dispbumpcenter, at = 235.824074357; +sf2eh, at = 235.873743918; +sf2emarker, at = 235.923413478; +sf2eh, at = 235.973083039; +qf4a, at = 236.202556408; +bpm_09, at = 236.363485784; +sd1e, at = 236.987189867; +qd3, at = 237.224610366; +dl1e_1, at = 237.529382807; +dl1e_2, at = 237.884619554; +dl1e_3, at = 238.239856336; +dl1e_4, at = 238.595093178; +dl1e_5, at = 238.950330233; +dlmarker, at = 239.127948849; +qd2, at = 239.279937704; +sh3e, at = 239.663386711; +qf1, at = 239.968854507; +bpm_10, at = 240.166042663; +idmarker, at = 242.799920116; +lss_w, at = 242.799920116; +qflm1, at = 243.138873589; +qdlm1, at = 246.771632663; +qflm2, at = 249.883898456; +qdlh, at = 256.674920116; +qdlh, at = 256.924920116; +qflh, at = 263.874920116; +qflh, at = 264.124920116; +qdlh, at = 271.074920116; +qdlh, at = 271.324920116; +qflh, at = 278.274920116; +qflh, at = 278.524920116; +qdlh, at = 285.474920116; +cav, at = 285.599920116; +qdlh, at = 285.724920116; +qflh, at = 292.674920116; +qflh, at = 292.924920116; +qdlh, at = 299.874920116; +cav, at = 299.999920116; +qdlh, at = 300.124920116; +qflh, at = 307.074920116; +qflh, at = 307.324920116; +qdlh, at = 314.274920116; +qdlh, at = 314.524920116; +qflh, at = 321.474920116; +qflh, at = 321.724920116; +qdlh, at = 328.674920116; +qdlh, at = 328.924920116; +qflm2, at = 335.715941776; +qdlm1, at = 338.828207569; +qflm1, at = 342.460966643; +arc_w_nw, at = 342.799920116; +idmarker, at = 342.799920116; +bpm_01, at = 345.433797569; +qf1, at = 345.630985724; +sh1a, at = 345.936453521; +qd2, at = 346.319902528; +dlmarker, at = 346.471891383; +dl1a_1, at = 346.649509998; +dl1a_2, at = 347.004747054; +dl1a_3, at = 347.359983895; +dl1a_4, at = 347.715220678; +dl1a_5, at = 348.070457425; +qd3, at = 348.375229865; +sd1a, at = 348.612650365; +bpm_02, at = 349.236354447; +qf4a, at = 349.397283823; +dispbumpcenter, at = 349.577087632; +sf2ah, at = 349.626757193; +sf2amarker, at = 349.676426753; +sf2ah, at = 349.726096314; +qf4b, at = 349.955569683; +of1b, at = 350.16517523; +bpm_03, at = 350.265507742; +sd1b, at = 350.74020314; +qd5, at = 351.002458419; +dl2b_1, at = 351.33206564; +dl2b_2, at = 351.687302387; +dl2b_3, at = 352.04253917; +dl2b_4, at = 352.397776011; +dl2b_5, at = 352.753012974; +bpm_04, at = 353.024010271; +qf6, at = 353.272358073; +dq1, at = 354.065102399; +qf8, at = 354.905529503; +sh2b, at = 355.360502677; +bpm_05, at = 355.446927712; +dq2c_1, at = 355.701236372; +cellcenter, at = 355.899915124; +dq2c_2, at = 356.098593876; +bpm_06, at = 356.352902535; +sh2b, at = 356.439327571; +qf8, at = 356.894300745; +dq1, at = 357.734727849; +qf6, at = 358.527472174; +bpm_07, at = 358.775819977; +dl2d_1, at = 359.046817273; +dl2d_2, at = 359.402054236; +dl2d_3, at = 359.757291078; +dl2d_4, at = 360.11252786; +dl2d_5, at = 360.467764607; +qd5, at = 360.797371828; +sd1d, at = 361.059627107; +bpm_08, at = 361.534322506; +of1d, at = 361.634655018; +qf4b, at = 361.844260563; +dispbumpcenter, at = 362.024064372; +sf2eh, at = 362.073733932; +sf2emarker, at = 362.123403493; +sf2eh, at = 362.173073053; +qf4a, at = 362.402546423; +bpm_09, at = 362.563475799; +sd1e, at = 363.187179882; +qd3, at = 363.424600381; +dl1e_1, at = 363.729372822; +dl1e_2, at = 364.084609569; +dl1e_3, at = 364.439846351; +dl1e_4, at = 364.795083192; +dl1e_5, at = 365.150320248; +dlmarker, at = 365.327938863; +qd2, at = 365.479927718; +sh3e, at = 365.863376725; +qf1, at = 366.168844522; +bpm_10, at = 366.366032677; +idmarker, at = 368.99991013; +bpm_01, at = 371.633787584; +qf1, at = 371.830975739; +sh1a, at = 372.136443536; +qd2, at = 372.519892543; +dlmarker, at = 372.671881398; +dl1a_1, at = 372.849500013; +dl1a_2, at = 373.204737068; +dl1a_3, at = 373.55997391; +dl1a_4, at = 373.915210692; +dl1a_5, at = 374.270447439; +qd3, at = 374.57521988; +sd1a, at = 374.812640379; +bpm_02, at = 375.436344462; +qf4a, at = 375.597273838; +dispbumpcenter, at = 375.777077647; +sf2ah, at = 375.826747207; +sf2amarker, at = 375.876416768; +sf2ah, at = 375.926086328; +qf4b, at = 376.155559698; +of1b, at = 376.365165244; +bpm_03, at = 376.465497756; +sd1b, at = 376.940193154; +qd5, at = 377.202448434; +dl2b_1, at = 377.532055655; +dl2b_2, at = 377.887292402; +dl2b_3, at = 378.242529184; +dl2b_4, at = 378.597766026; +dl2b_5, at = 378.953002989; +bpm_04, at = 379.224000285; +qf6, at = 379.472348087; +dq1, at = 380.265092413; +qf8, at = 381.105519517; +sh2b, at = 381.560492691; +bpm_05, at = 381.646917726; +dq2c_1, at = 381.901226386; +cellcenter, at = 382.099905138; +dq2c_2, at = 382.29858389; +bpm_06, at = 382.55289255; +sh2b, at = 382.639317585; +qf8, at = 383.094290759; +dq1, at = 383.934717863; +qf6, at = 384.727462189; +bpm_07, at = 384.975809991; +dl2d_1, at = 385.246807288; +dl2d_2, at = 385.602044251; +dl2d_3, at = 385.957281092; +dl2d_4, at = 386.312517874; +dl2d_5, at = 386.667754621; +qd5, at = 386.997361843; +sd1d, at = 387.259617122; +bpm_08, at = 387.73431252; +of1d, at = 387.834645032; +qf4b, at = 388.044250577; +dispbumpcenter, at = 388.224054386; +sf2eh, at = 388.273723947; +sf2emarker, at = 388.323393507; +sf2eh, at = 388.373063068; +qf4a, at = 388.602536437; +bpm_09, at = 388.763465813; +sd1e, at = 389.387169896; +qd3, at = 389.624590395; +dl1e_1, at = 389.929362836; +dl1e_2, at = 390.284599583; +dl1e_3, at = 390.639836365; +dl1e_4, at = 390.995073207; +dl1e_5, at = 391.350310262; +dlmarker, at = 391.527928877; +qd2, at = 391.679917733; +sh3e, at = 392.063366739; +qf1, at = 392.368834536; +bpm_10, at = 392.566022692; +idmarker, at = 395.199900145; +bpm_01, at = 397.833777598; +qf1, at = 398.030965753; +sh1a, at = 398.33643355; +qd2, at = 398.719882557; +dlmarker, at = 398.871871412; +dl1a_1, at = 399.049490027; +dl1a_2, at = 399.404727083; +dl1a_3, at = 399.759963924; +dl1a_4, at = 400.115200706; +dl1a_5, at = 400.470437453; +qd3, at = 400.775209894; +sd1a, at = 401.012630393; +bpm_02, at = 401.636334476; +qf4a, at = 401.797263852; +dispbumpcenter, at = 401.977067661; +sf2ah, at = 402.026737222; +sf2amarker, at = 402.076406782; +sf2ah, at = 402.126076343; +qf4b, at = 402.355549712; +of1b, at = 402.565155259; +bpm_03, at = 402.665487771; +sd1b, at = 403.140183169; +qd5, at = 403.402438448; +dl2b_1, at = 403.732045669; +dl2b_2, at = 404.087282416; +dl2b_3, at = 404.442519199; +dl2b_4, at = 404.79775604; +dl2b_5, at = 405.152993003; +bpm_04, at = 405.4239903; +qf6, at = 405.672338102; +dq1, at = 406.465082428; +qf8, at = 407.305509532; +sh2b, at = 407.760482706; +bpm_05, at = 407.846907741; +dq2c_1, at = 408.101216401; +cellcenter, at = 408.299895153; +dq2c_2, at = 408.498573905; +bpm_06, at = 408.752882564; +sh2b, at = 408.8393076; +qf8, at = 409.294280774; +dq1, at = 410.134707877; +qf6, at = 410.927452203; +bpm_07, at = 411.175800006; +dl2d_1, at = 411.446797302; +dl2d_2, at = 411.802034265; +dl2d_3, at = 412.157271107; +dl2d_4, at = 412.512507889; +dl2d_5, at = 412.867744636; +qd5, at = 413.197351857; +sd1d, at = 413.459607136; +bpm_08, at = 413.934302534; +of1d, at = 414.034635047; +qf4b, at = 414.244240592; +dispbumpcenter, at = 414.424044401; +sf2eh, at = 414.473713961; +sf2emarker, at = 414.523383522; +sf2eh, at = 414.573053082; +qf4a, at = 414.802526452; +bpm_09, at = 414.963455828; +sd1e, at = 415.587159911; +qd3, at = 415.82458041; +dl1e_1, at = 416.129352851; +dl1e_2, at = 416.484589598; +dl1e_3, at = 416.83982638; +dl1e_4, at = 417.195063221; +dl1e_5, at = 417.550300277; +dlmarker, at = 417.727918892; +qd2, at = 417.879907747; +sh3e, at = 418.263356754; +qf1, at = 418.568824551; +bpm_10, at = 418.766012706; +idmarker, at = 421.399890159; +bpm_01, at = 424.033767612; +qf1, at = 424.230955768; +sh1a, at = 424.536423565; +qd2, at = 424.919872571; +dlmarker, at = 425.071861427; +dl1a_1, at = 425.249480042; +dl1a_2, at = 425.604717097; +dl1a_3, at = 425.959953939; +dl1a_4, at = 426.315190721; +dl1a_5, at = 426.670427468; +qd3, at = 426.975199909; +sd1a, at = 427.212620408; +bpm_02, at = 427.836324491; +qf4a, at = 427.997253867; +dispbumpcenter, at = 428.177057676; +sf2ah, at = 428.226727236; +sf2amarker, at = 428.276396797; +sf2ah, at = 428.326066357; +qf4b, at = 428.555539727; +of1b, at = 428.765145273; +bpm_03, at = 428.865477785; +sd1b, at = 429.340173183; +qd5, at = 429.602428463; +dl2b_1, at = 429.932035684; +dl2b_2, at = 430.287272431; +dl2b_3, at = 430.642509213; +dl2b_4, at = 430.997746054; +dl2b_5, at = 431.352983018; +bpm_04, at = 431.623980314; +qf6, at = 431.872328116; +dq1, at = 432.665072442; +qf8, at = 433.505499546; +sh2b, at = 433.96047272; +bpm_05, at = 434.046897755; +dq2c_1, at = 434.301206415; +cellcenter, at = 434.499885167; +dq2c_2, at = 434.698563919; +bpm_06, at = 434.952872579; +sh2b, at = 435.039297614; +qf8, at = 435.494270788; +dq1, at = 436.334697892; +qf6, at = 437.127442218; +bpm_07, at = 437.37579002; +dl2d_1, at = 437.646787317; +dl2d_2, at = 438.00202428; +dl2d_3, at = 438.357261121; +dl2d_4, at = 438.712497903; +dl2d_5, at = 439.06773465; +qd5, at = 439.397341871; +sd1d, at = 439.659597151; +bpm_08, at = 440.134292549; +of1d, at = 440.234625061; +qf4b, at = 440.444230606; +dispbumpcenter, at = 440.624034415; +sf2eh, at = 440.673703976; +sf2emarker, at = 440.723373536; +sf2eh, at = 440.773043097; +qf4a, at = 441.002516466; +bpm_09, at = 441.163445842; +sd1e, at = 441.787149925; +qd3, at = 442.024570424; +dl1e_1, at = 442.329342865; +dl1e_2, at = 442.684579612; +dl1e_3, at = 443.039816394; +dl1e_4, at = 443.395053236; +dl1e_5, at = 443.750290291; +dlmarker, at = 443.927908906; +qd2, at = 444.079897762; +sh3e, at = 444.463346768; +qf1, at = 444.768814565; +bpm_10, at = 444.966002721; +idmarker, at = 447.599880174; +bpm_01, at = 450.233757627; +qf1, at = 450.430945782; +sh1a, at = 450.736413579; +qd2, at = 451.119862586; +dlmarker, at = 451.271851441; +dl1a_1, at = 451.449470056; +dl1a_2, at = 451.804707112; +dl1a_3, at = 452.159943953; +dl1a_4, at = 452.515180735; +dl1a_5, at = 452.870417482; +qd3, at = 453.175189923; +sd1a, at = 453.412610422; +bpm_02, at = 454.036314505; +qf4a, at = 454.197243881; +dispbumpcenter, at = 454.37704769; +sf2ah, at = 454.426717251; +sf2amarker, at = 454.476386811; +sf2ah, at = 454.526056372; +qf4b, at = 454.755529741; +of1b, at = 454.965135288; +bpm_03, at = 455.0654678; +sd1b, at = 455.540163198; +qd5, at = 455.802418477; +dl2b_1, at = 456.132025698; +dl2b_2, at = 456.487262445; +dl2b_3, at = 456.842499227; +dl2b_4, at = 457.197736069; +dl2b_5, at = 457.552973032; +bpm_04, at = 457.823970329; +qf6, at = 458.072318131; +dq1, at = 458.865062457; +qf8, at = 459.705489561; +sh2b, at = 460.160462735; +bpm_05, at = 460.24688777; +dq2c_1, at = 460.50119643; +cellcenter, at = 460.699875182; +dq2c_2, at = 460.898553934; +bpm_06, at = 461.152862593; +sh2b, at = 461.239287629; +qf8, at = 461.694260803; +dq1, at = 462.534687906; +qf6, at = 463.327432232; +bpm_07, at = 463.575780035; +dl2d_1, at = 463.846777331; +dl2d_2, at = 464.202014294; +dl2d_3, at = 464.557251136; +dl2d_4, at = 464.912487918; +dl2d_5, at = 465.267724665; +qd5, at = 465.597331886; +sd1d, at = 465.859587165; +bpm_08, at = 466.334282563; +of1d, at = 466.434615076; +qf4b, at = 466.644220621; +dispbumpcenter, at = 466.82402443; +sf2eh, at = 466.87369399; +sf2emarker, at = 466.923363551; +sf2eh, at = 466.973033111; +qf4a, at = 467.202506481; +bpm_09, at = 467.363435857; +sd1e, at = 467.98713994; +qd3, at = 468.224560439; +dl1e_1, at = 468.52933288; +dl1e_2, at = 468.884569626; +dl1e_3, at = 469.239806409; +dl1e_4, at = 469.59504325; +dl1e_5, at = 469.950280306; +dlmarker, at = 470.127898921; +qd2, at = 470.279887776; +sh3e, at = 470.663336783; +qf1, at = 470.96880458; +bpm_10, at = 471.165992735; +idmarker, at = 473.799870188; +bpm_01, at = 476.433747641; +qf1, at = 476.630935797; +sh1a, at = 476.936403594; +qd2, at = 477.3198526; +dlmarker, at = 477.471841456; +dl1a_1, at = 477.649460071; +dl1a_2, at = 478.004697126; +dl1a_3, at = 478.359933968; +dl1a_4, at = 478.71517075; +dl1a_5, at = 479.070407497; +qd3, at = 479.375179938; +sd1a, at = 479.612600437; +bpm_02, at = 480.23630452; +qf4a, at = 480.397233896; +dispbumpcenter, at = 480.577037705; +sf2ah, at = 480.626707265; +sf2amarker, at = 480.676376826; +sf2ah, at = 480.726046386; +qf4b, at = 480.955519756; +of1b, at = 481.165125302; +bpm_03, at = 481.265457814; +sd1b, at = 481.740153212; +qd5, at = 482.002408492; +dl2b_1, at = 482.332015713; +dl2b_2, at = 482.68725246; +dl2b_3, at = 483.042489242; +dl2b_4, at = 483.397726083; +dl2b_5, at = 483.752963046; +bpm_04, at = 484.023960343; +qf6, at = 484.272308145; +dq1, at = 485.065052471; +qf8, at = 485.905479575; +sh2b, at = 486.360452749; +bpm_05, at = 486.446877784; +dq2c_1, at = 486.701186444; +cellcenter, at = 486.899865196; +dq2c_2, at = 487.098543948; +bpm_06, at = 487.352852608; +sh2b, at = 487.439277643; +qf8, at = 487.894250817; +dq1, at = 488.734677921; +qf6, at = 489.527422247; +bpm_07, at = 489.775770049; +dl2d_1, at = 490.046767346; +dl2d_2, at = 490.402004309; +dl2d_3, at = 490.75724115; +dl2d_4, at = 491.112477932; +dl2d_5, at = 491.467714679; +qd5, at = 491.7973219; +sd1d, at = 492.05957718; +bpm_08, at = 492.534272578; +of1d, at = 492.63460509; +qf4b, at = 492.844210635; +dispbumpcenter, at = 493.024014444; +sf2eh, at = 493.073684005; +sf2emarker, at = 493.123353565; +sf2eh, at = 493.173023126; +qf4a, at = 493.402496495; +bpm_09, at = 493.563425871; +sd1e, at = 494.187129954; +qd3, at = 494.424550453; +dl1e_1, at = 494.729322894; +dl1e_2, at = 495.084559641; +dl1e_3, at = 495.439796423; +dl1e_4, at = 495.795033265; +dl1e_5, at = 496.15027032; +dlmarker, at = 496.327888935; +qd2, at = 496.47987779; +sh3e, at = 496.863326797; +qf1, at = 497.168794594; +bpm_10, at = 497.365982749; +idmarker, at = 499.999860203; +bpm_01, at = 502.633737656; +qf1, at = 502.830925811; +sh1a, at = 503.136393608; +qd2, at = 503.519842615; +dlmarker, at = 503.67183147; +dl1a_1, at = 503.849450085; +dl1a_2, at = 504.204687141; +dl1a_3, at = 504.559923982; +dl1a_4, at = 504.915160764; +dl1a_5, at = 505.270397511; +qd3, at = 505.575169952; +sd1a, at = 505.812590451; +bpm_02, at = 506.436294534; +qf4a, at = 506.59722391; +dispbumpcenter, at = 506.777027719; +sf2ah, at = 506.82669728; +sf2amarker, at = 506.87636684; +sf2ah, at = 506.926036401; +qf4b, at = 507.15550977; +of1b, at = 507.365115316; +bpm_03, at = 507.465447829; +sd1b, at = 507.940143227; +qd5, at = 508.202398506; +dl2b_1, at = 508.532005727; +dl2b_2, at = 508.887242474; +dl2b_3, at = 509.242479256; +dl2b_4, at = 509.597716098; +dl2b_5, at = 509.952953061; +bpm_04, at = 510.223950357; +qf6, at = 510.47229816; +dq1, at = 511.265042486; +qf8, at = 512.105469589; +sh2b, at = 512.560442763; +bpm_05, at = 512.646867799; +dq2c_1, at = 512.901176458; +cellcenter, at = 513.099855211; +dq2c_2, at = 513.298533963; +bpm_06, at = 513.552842622; +sh2b, at = 513.639267658; +qf8, at = 514.094240832; +dq1, at = 514.934667935; +qf6, at = 515.727412261; +bpm_07, at = 515.975760064; +dl2d_1, at = 516.24675736; +dl2d_2, at = 516.601994323; +dl2d_3, at = 516.957231165; +dl2d_4, at = 517.312467947; +dl2d_5, at = 517.667704694; +qd5, at = 517.997311915; +sd1d, at = 518.259567194; +bpm_08, at = 518.734262592; +of1d, at = 518.834595105; +qf4b, at = 519.04420065; +dispbumpcenter, at = 519.224004459; +sf2eh, at = 519.273674019; +sf2emarker, at = 519.32334358; +sf2eh, at = 519.37301314; +qf4a, at = 519.60248651; +bpm_09, at = 519.763415886; +sd1e, at = 520.387119968; +qd3, at = 520.624540468; +dl1e_1, at = 520.929312908; +dl1e_2, at = 521.284549655; +dl1e_3, at = 521.639786438; +dl1e_4, at = 521.995023279; +dl1e_5, at = 522.350260335; +dlmarker, at = 522.52787895; +qd2, at = 522.679867805; +sh3e, at = 523.063316812; +qf1, at = 523.368784609; +bpm_10, at = 523.565972764; +idmarker, at = 526.199850217; +bpm_01, at = 528.83372767; +qf1, at = 529.030915826; +sh1a, at = 529.336383622; +qd2, at = 529.719832629; +dlmarker, at = 529.871821484; +dl1a_1, at = 530.0494401; +dl1a_2, at = 530.404677155; +dl1a_3, at = 530.759913997; +dl1a_4, at = 531.115150779; +dl1a_5, at = 531.470387526; +qd3, at = 531.775159967; +sd1a, at = 532.012580466; +bpm_02, at = 532.636284549; +qf4a, at = 532.797213925; +dispbumpcenter, at = 532.977017734; +sf2ah, at = 533.026687294; +sf2amarker, at = 533.076356855; +sf2ah, at = 533.126026415; +qf4b, at = 533.355499785; +of1b, at = 533.565105331; +bpm_03, at = 533.665437843; +sd1b, at = 534.140133241; +qd5, at = 534.402388521; +dl2b_1, at = 534.731995742; +dl2b_2, at = 535.087232489; +dl2b_3, at = 535.442469271; +dl2b_4, at = 535.797706112; +dl2b_5, at = 536.152943075; +bpm_04, at = 536.423940372; +qf6, at = 536.672288174; +dq1, at = 537.4650325; +qf8, at = 538.305459604; +sh2b, at = 538.760432778; +bpm_05, at = 538.846857813; +dq2c_1, at = 539.101166473; +cellcenter, at = 539.299845225; +dq2c_2, at = 539.498523977; +bpm_06, at = 539.752832637; +sh2b, at = 539.839257672; +qf8, at = 540.294230846; +dq1, at = 541.13465795; +qf6, at = 541.927402276; +bpm_07, at = 542.175750078; +dl2d_1, at = 542.446747375; +dl2d_2, at = 542.801984338; +dl2d_3, at = 543.157221179; +dl2d_4, at = 543.512457961; +dl2d_5, at = 543.867694708; +qd5, at = 544.197301929; +sd1d, at = 544.459557209; +bpm_08, at = 544.934252607; +of1d, at = 545.034585119; +qf4b, at = 545.244190664; +dispbumpcenter, at = 545.423994473; +sf2eh, at = 545.473664034; +sf2emarker, at = 545.523333594; +sf2eh, at = 545.573003155; +qf4a, at = 545.802476524; +bpm_09, at = 545.9634059; +sd1e, at = 546.587109983; +qd3, at = 546.824530482; +dl1e_1, at = 547.129302923; +dl1e_2, at = 547.48453967; +dl1e_3, at = 547.839776452; +dl1e_4, at = 548.195013294; +dl1e_5, at = 548.550250349; +dlmarker, at = 548.727868964; +qd2, at = 548.879857819; +sh3e, at = 549.263306826; +qf1, at = 549.568774623; +bpm_10, at = 549.765962778; +idmarker, at = 552.399840232; +sss_nw, at = 552.399840232; +qfsm1, at = 553.966135905; +qdsm1, at = 557.477376815; +qfsm2, at = 562.483548272; +qd1s, at = 566.399840232; +qfs, at = 573.599840232; +qdsh, at = 580.674840232; +qdsh, at = 580.924840232; +qfs, at = 587.999840232; +qd1s, at = 595.199840232; +qfsm2, at = 599.116132192; +qdsm1, at = 604.122303649; +qfsm1, at = 607.633544559; +arc_nw_n, at = 609.199840232; +idmarker, at = 609.199840232; +bpm_01, at = 611.833717685; +qf1, at = 612.03090584; +sh1a, at = 612.336373637; +qd2, at = 612.719822644; +dlmarker, at = 612.871811499; +dl1a_1, at = 613.049430114; +dl1a_2, at = 613.40466717; +dl1a_3, at = 613.759904011; +dl1a_4, at = 614.115140793; +dl1a_5, at = 614.47037754; +qd3, at = 614.775149981; +sd1a, at = 615.01257048; +bpm_02, at = 615.636274563; +qf4a, at = 615.797203939; +dispbumpcenter, at = 615.977007748; +sf2ah, at = 616.026677309; +sf2amarker, at = 616.076346869; +sf2ah, at = 616.12601643; +qf4b, at = 616.355489799; +of1b, at = 616.565095345; +bpm_03, at = 616.665427858; +sd1b, at = 617.140123256; +qd5, at = 617.402378535; +dl2b_1, at = 617.731985756; +dl2b_2, at = 618.087222503; +dl2b_3, at = 618.442459285; +dl2b_4, at = 618.797696127; +dl2b_5, at = 619.15293309; +bpm_04, at = 619.423930386; +qf6, at = 619.672278189; +dq1, at = 620.465022515; +qf8, at = 621.305449618; +sh2b, at = 621.760422792; +bpm_05, at = 621.846847828; +dq2c_1, at = 622.101156487; +cellcenter, at = 622.299835239; +dq2c_2, at = 622.498513992; +bpm_06, at = 622.752822651; +sh2b, at = 622.839247687; +qf8, at = 623.294220861; +dq1, at = 624.134647964; +qf6, at = 624.92739229; +bpm_07, at = 625.175740093; +dl2d_1, at = 625.446737389; +dl2d_2, at = 625.801974352; +dl2d_3, at = 626.157211194; +dl2d_4, at = 626.512447976; +dl2d_5, at = 626.867684723; +qd5, at = 627.197291944; +sd1d, at = 627.459547223; +bpm_08, at = 627.934242621; +of1d, at = 628.034575134; +qf4b, at = 628.244180679; +dispbumpcenter, at = 628.423984488; +sf2eh, at = 628.473654048; +sf2emarker, at = 628.523323609; +sf2eh, at = 628.572993169; +qf4a, at = 628.802466539; +bpm_09, at = 628.963395915; +sd1e, at = 629.587099997; +qd3, at = 629.824520497; +dl1e_1, at = 630.129292937; +dl1e_2, at = 630.484529684; +dl1e_3, at = 630.839766467; +dl1e_4, at = 631.195003308; +dl1e_5, at = 631.550240364; +dlmarker, at = 631.727858979; +qd2, at = 631.879847834; +sh3e, at = 632.263296841; +qf1, at = 632.568764638; +bpm_10, at = 632.765952793; +idmarker, at = 635.399830246; +bpm_01, at = 638.033707699; +qf1, at = 638.230895854; +sh1a, at = 638.536363651; +qd2, at = 638.919812658; +dlmarker, at = 639.071801513; +dl1a_1, at = 639.249420129; +dl1a_2, at = 639.604657184; +dl1a_3, at = 639.959894026; +dl1a_4, at = 640.315130808; +dl1a_5, at = 640.670367555; +qd3, at = 640.975139996; +sd1a, at = 641.212560495; +bpm_02, at = 641.836264578; +qf4a, at = 641.997193954; +dispbumpcenter, at = 642.176997763; +sf2ah, at = 642.226667323; +sf2amarker, at = 642.276336884; +sf2ah, at = 642.326006444; +qf4b, at = 642.555479813; +of1b, at = 642.76508536; +bpm_03, at = 642.865417872; +sd1b, at = 643.34011327; +qd5, at = 643.60236855; +dl2b_1, at = 643.931975771; +dl2b_2, at = 644.287212518; +dl2b_3, at = 644.6424493; +dl2b_4, at = 644.997686141; +dl2b_5, at = 645.352923104; +bpm_04, at = 645.623920401; +qf6, at = 645.872268203; +dq1, at = 646.665012529; +qf8, at = 647.505439633; +sh2b, at = 647.960412807; +bpm_05, at = 648.046837842; +dq2c_1, at = 648.301146502; +cellcenter, at = 648.499825254; +dq2c_2, at = 648.698504006; +bpm_06, at = 648.952812666; +sh2b, at = 649.039237701; +qf8, at = 649.494210875; +dq1, at = 650.334637979; +qf6, at = 651.127382305; +bpm_07, at = 651.375730107; +dl2d_1, at = 651.646727404; +dl2d_2, at = 652.001964367; +dl2d_3, at = 652.357201208; +dl2d_4, at = 652.71243799; +dl2d_5, at = 653.067674737; +qd5, at = 653.397281958; +sd1d, at = 653.659537238; +bpm_08, at = 654.134232636; +of1d, at = 654.234565148; +qf4b, at = 654.444170693; +dispbumpcenter, at = 654.623974502; +sf2eh, at = 654.673644063; +sf2emarker, at = 654.723313623; +sf2eh, at = 654.772983184; +qf4a, at = 655.002456553; +bpm_09, at = 655.163385929; +sd1e, at = 655.787090012; +qd3, at = 656.024510511; +dl1e_1, at = 656.329282952; +dl1e_2, at = 656.684519699; +dl1e_3, at = 657.039756481; +dl1e_4, at = 657.394993323; +dl1e_5, at = 657.750230378; +dlmarker, at = 657.927848993; +qd2, at = 658.079837848; +sh3e, at = 658.463286855; +qf1, at = 658.768754652; +bpm_10, at = 658.965942807; +idmarker, at = 661.599820261; +bpm_01, at = 664.233697714; +qf1, at = 664.430885869; +sh1a, at = 664.736353666; +qd2, at = 665.119802673; +dlmarker, at = 665.271791528; +dl1a_1, at = 665.449410143; +dl1a_2, at = 665.804647199; +dl1a_3, at = 666.15988404; +dl1a_4, at = 666.515120822; +dl1a_5, at = 666.870357569; +qd3, at = 667.17513001; +sd1a, at = 667.412550509; +bpm_02, at = 668.036254592; +qf4a, at = 668.197183968; +dispbumpcenter, at = 668.376987777; +sf2ah, at = 668.426657338; +sf2amarker, at = 668.476326898; +sf2ah, at = 668.525996459; +qf4b, at = 668.755469828; +of1b, at = 668.965075374; +bpm_03, at = 669.065407887; +sd1b, at = 669.540103285; +qd5, at = 669.802358564; +dl2b_1, at = 670.131965785; +dl2b_2, at = 670.487202532; +dl2b_3, at = 670.842439314; +dl2b_4, at = 671.197676156; +dl2b_5, at = 671.552913119; +bpm_04, at = 671.823910415; +qf6, at = 672.072258218; +dq1, at = 672.865002544; +qf8, at = 673.705429647; +sh2b, at = 674.160402821; +bpm_05, at = 674.246827857; +dq2c_1, at = 674.501136516; +cellcenter, at = 674.699815268; +dq2c_2, at = 674.89849402; +bpm_06, at = 675.15280268; +sh2b, at = 675.239227715; +qf8, at = 675.694200889; +dq1, at = 676.534627993; +qf6, at = 677.327372319; +bpm_07, at = 677.575720121; +dl2d_1, at = 677.846717418; +dl2d_2, at = 678.201954381; +dl2d_3, at = 678.557191223; +dl2d_4, at = 678.912428005; +dl2d_5, at = 679.267664752; +qd5, at = 679.597271973; +sd1d, at = 679.859527252; +bpm_08, at = 680.33422265; +of1d, at = 680.434555162; +qf4b, at = 680.644160708; +dispbumpcenter, at = 680.823964517; +sf2eh, at = 680.873634077; +sf2emarker, at = 680.923303638; +sf2eh, at = 680.972973198; +qf4a, at = 681.202446568; +bpm_09, at = 681.363375944; +sd1e, at = 681.987080026; +qd3, at = 682.224500525; +dl1e_1, at = 682.529272966; +dl1e_2, at = 682.884509713; +dl1e_3, at = 683.239746496; +dl1e_4, at = 683.594983337; +dl1e_5, at = 683.950220393; +dlmarker, at = 684.127839008; +qd2, at = 684.279827863; +sh3e, at = 684.66327687; +qf1, at = 684.968744667; +bpm_10, at = 685.165932822; +idmarker, at = 687.799810275; +bpm_01, at = 690.433687728; +qf1, at = 690.630875883; +sh1a, at = 690.93634368; +qd2, at = 691.319792687; +dlmarker, at = 691.471781542; +dl1a_1, at = 691.649400158; +dl1a_2, at = 692.004637213; +dl1a_3, at = 692.359874055; +dl1a_4, at = 692.715110837; +dl1a_5, at = 693.070347584; +qd3, at = 693.375120025; +sd1a, at = 693.612540524; +bpm_02, at = 694.236244607; +qf4a, at = 694.397173983; +dispbumpcenter, at = 694.576977792; +sf2ah, at = 694.626647352; +sf2amarker, at = 694.676316913; +sf2ah, at = 694.725986473; +qf4b, at = 694.955459842; +of1b, at = 695.165065389; +bpm_03, at = 695.265397901; +sd1b, at = 695.740093299; +qd5, at = 696.002348579; +dl2b_1, at = 696.3319558; +dl2b_2, at = 696.687192547; +dl2b_3, at = 697.042429329; +dl2b_4, at = 697.39766617; +dl2b_5, at = 697.752903133; +bpm_04, at = 698.02390043; +qf6, at = 698.272248232; +dq1, at = 699.064992558; +qf8, at = 699.905419662; +sh2b, at = 700.360392836; +bpm_05, at = 700.446817871; +dq2c_1, at = 700.701126531; +cellcenter, at = 700.899805283; +dq2c_2, at = 701.098484035; +bpm_06, at = 701.352792695; +sh2b, at = 701.43921773; +qf8, at = 701.894190904; +dq1, at = 702.734618008; +qf6, at = 703.527362334; +bpm_07, at = 703.775710136; +dl2d_1, at = 704.046707432; +dl2d_2, at = 704.401944396; +dl2d_3, at = 704.757181237; +dl2d_4, at = 705.112418019; +dl2d_5, at = 705.467654766; +qd5, at = 705.797261987; +sd1d, at = 706.059517267; +bpm_08, at = 706.534212665; +of1d, at = 706.634545177; +qf4b, at = 706.844150722; +dispbumpcenter, at = 707.023954531; +sf2eh, at = 707.073624092; +sf2emarker, at = 707.123293652; +sf2eh, at = 707.172963213; +qf4a, at = 707.402436582; +bpm_09, at = 707.563365958; +sd1e, at = 708.187070041; +qd3, at = 708.42449054; +dl1e_1, at = 708.729262981; +dl1e_2, at = 709.084499728; +dl1e_3, at = 709.43973651; +dl1e_4, at = 709.794973351; +dl1e_5, at = 710.150210407; +dlmarker, at = 710.327829022; +qd2, at = 710.479817877; +sh3e, at = 710.863266884; +qf1, at = 711.168734681; +bpm_10, at = 711.365922836; +idmarker, at = 713.99980029; +bpm_01, at = 716.633677743; +qf1, at = 716.830865898; +sh1a, at = 717.136333695; +qd2, at = 717.519782702; +dlmarker, at = 717.671771557; +dl1a_1, at = 717.849390172; +dl1a_2, at = 718.204627228; +dl1a_3, at = 718.559864069; +dl1a_4, at = 718.915100851; +dl1a_5, at = 719.270337598; +qd3, at = 719.575110039; +sd1a, at = 719.812530538; +bpm_02, at = 720.436234621; +qf4a, at = 720.597163997; +dispbumpcenter, at = 720.776967806; +sf2ah, at = 720.826637367; +sf2amarker, at = 720.876306927; +sf2ah, at = 720.925976487; +qf4b, at = 721.155449857; +of1b, at = 721.365055403; +bpm_03, at = 721.465387916; +sd1b, at = 721.940083314; +qd5, at = 722.202338593; +dl2b_1, at = 722.531945814; +dl2b_2, at = 722.887182561; +dl2b_3, at = 723.242419343; +dl2b_4, at = 723.597656185; +dl2b_5, at = 723.952893148; +bpm_04, at = 724.223890444; +qf6, at = 724.472238247; +dq1, at = 725.264982573; +qf8, at = 726.105409676; +sh2b, at = 726.56038285; +bpm_05, at = 726.646807886; +dq2c_1, at = 726.901116545; +cellcenter, at = 727.099795297; +dq2c_2, at = 727.298474049; +bpm_06, at = 727.552782709; +sh2b, at = 727.639207744; +qf8, at = 728.094180918; +dq1, at = 728.934608022; +qf6, at = 729.727352348; +bpm_07, at = 729.97570015; +dl2d_1, at = 730.246697447; +dl2d_2, at = 730.60193441; +dl2d_3, at = 730.957171251; +dl2d_4, at = 731.312408034; +dl2d_5, at = 731.667644781; +qd5, at = 731.997252002; +sd1d, at = 732.259507281; +bpm_08, at = 732.734202679; +of1d, at = 732.834535191; +qf4b, at = 733.044140737; +dispbumpcenter, at = 733.223944546; +sf2eh, at = 733.273614106; +sf2emarker, at = 733.323283667; +sf2eh, at = 733.372953227; +qf4a, at = 733.602426596; +bpm_09, at = 733.763355972; +sd1e, at = 734.387060055; +qd3, at = 734.624480554; +dl1e_1, at = 734.929252995; +dl1e_2, at = 735.284489742; +dl1e_3, at = 735.639726524; +dl1e_4, at = 735.994963366; +dl1e_5, at = 736.350200421; +dlmarker, at = 736.527819037; +qd2, at = 736.679807892; +sh3e, at = 737.063256899; +qf1, at = 737.368724696; +bpm_10, at = 737.565912851; +idmarker, at = 740.199790304; +bpm_01, at = 742.833667757; +qf1, at = 743.030855912; +sh1a, at = 743.336323709; +qd2, at = 743.719772716; +dlmarker, at = 743.871761571; +dl1a_1, at = 744.049380187; +dl1a_2, at = 744.404617242; +dl1a_3, at = 744.759854084; +dl1a_4, at = 745.115090866; +dl1a_5, at = 745.470327613; +qd3, at = 745.775100054; +sd1a, at = 746.012520553; +bpm_02, at = 746.636224636; +qf4a, at = 746.797154012; +dispbumpcenter, at = 746.976957821; +sf2ah, at = 747.026627381; +sf2amarker, at = 747.076296941; +sf2ah, at = 747.125966502; +qf4b, at = 747.355439871; +of1b, at = 747.565045418; +bpm_03, at = 747.66537793; +sd1b, at = 748.140073328; +qd5, at = 748.402328607; +dl2b_1, at = 748.731935829; +dl2b_2, at = 749.087172576; +dl2b_3, at = 749.442409358; +dl2b_4, at = 749.797646199; +dl2b_5, at = 750.152883162; +bpm_04, at = 750.423880459; +qf6, at = 750.672228261; +dq1, at = 751.464972587; +qf8, at = 752.305399691; +sh2b, at = 752.760372865; +bpm_05, at = 752.8467979; +dq2c_1, at = 753.10110656; +cellcenter, at = 753.299785312; +dq2c_2, at = 753.498464064; +bpm_06, at = 753.752772724; +sh2b, at = 753.839197759; +qf8, at = 754.294170933; +dq1, at = 755.134598037; +qf6, at = 755.927342363; +bpm_07, at = 756.175690165; +dl2d_1, at = 756.446687461; +dl2d_2, at = 756.801924424; +dl2d_3, at = 757.157161266; +dl2d_4, at = 757.512398048; +dl2d_5, at = 757.867634795; +qd5, at = 758.197242016; +sd1d, at = 758.459497296; +bpm_08, at = 758.934192694; +of1d, at = 759.034525206; +qf4b, at = 759.244130751; +dispbumpcenter, at = 759.42393456; +sf2eh, at = 759.473604121; +sf2emarker, at = 759.523273681; +sf2eh, at = 759.572943242; +qf4a, at = 759.802416611; +bpm_09, at = 759.963345987; +sd1e, at = 760.58705007; +qd3, at = 760.824470569; +dl1e_1, at = 761.12924301; +dl1e_2, at = 761.484479757; +dl1e_3, at = 761.839716539; +dl1e_4, at = 762.19495338; +dl1e_5, at = 762.550190436; +dlmarker, at = 762.727809051; +qd2, at = 762.879797906; +sh3e, at = 763.263246913; +qf1, at = 763.56871471; +bpm_10, at = 763.765902865; +idmarker, at = 766.399780319; +bpm_01, at = 769.033657772; +qf1, at = 769.230845927; +sh1a, at = 769.536313724; +qd2, at = 769.919762731; +dlmarker, at = 770.071751586; +dl1a_1, at = 770.249370201; +dl1a_2, at = 770.604607257; +dl1a_3, at = 770.959844098; +dl1a_4, at = 771.31508088; +dl1a_5, at = 771.670317627; +qd3, at = 771.975090068; +sd1a, at = 772.212510567; +bpm_02, at = 772.83621465; +qf4a, at = 772.997144026; +dispbumpcenter, at = 773.176947835; +sf2ah, at = 773.226617395; +sf2amarker, at = 773.276286956; +sf2ah, at = 773.325956516; +qf4b, at = 773.555429886; +of1b, at = 773.765035432; +bpm_03, at = 773.865367944; +sd1b, at = 774.340063343; +qd5, at = 774.602318622; +dl2b_1, at = 774.931925843; +dl2b_2, at = 775.28716259; +dl2b_3, at = 775.642399372; +dl2b_4, at = 775.997636214; +dl2b_5, at = 776.352873177; +bpm_04, at = 776.623870473; +qf6, at = 776.872218276; +dq1, at = 777.664962601; +qf8, at = 778.505389705; +sh2b, at = 778.960362879; +bpm_05, at = 779.046787915; +dq2c_1, at = 779.301096574; +cellcenter, at = 779.499775326; +dq2c_2, at = 779.698454078; +bpm_06, at = 779.952762738; +sh2b, at = 780.039187773; +qf8, at = 780.494160947; +dq1, at = 781.334588051; +qf6, at = 782.127332377; +bpm_07, at = 782.375680179; +dl2d_1, at = 782.646677476; +dl2d_2, at = 783.001914439; +dl2d_3, at = 783.35715128; +dl2d_4, at = 783.712388063; +dl2d_5, at = 784.06762481; +qd5, at = 784.397232031; +sd1d, at = 784.65948731; +bpm_08, at = 785.134182708; +of1d, at = 785.23451522; +qf4b, at = 785.444120766; +dispbumpcenter, at = 785.623924575; +sf2eh, at = 785.673594135; +sf2emarker, at = 785.723263696; +sf2eh, at = 785.772933256; +qf4a, at = 786.002406625; +bpm_09, at = 786.163336001; +sd1e, at = 786.787040084; +qd3, at = 787.024460583; +dl1e_1, at = 787.329233024; +dl1e_2, at = 787.684469771; +dl1e_3, at = 788.039706553; +dl1e_4, at = 788.394943395; +dl1e_5, at = 788.75018045; +dlmarker, at = 788.927799066; +qd2, at = 789.079787921; +sh3e, at = 789.463236928; +qf1, at = 789.768704725; +bpm_10, at = 789.96589288; +idmarker, at = 792.599770333; +bpm_01, at = 795.233647786; +qf1, at = 795.430835941; +sh1a, at = 795.736303738; +qd2, at = 796.119752745; +dlmarker, at = 796.2717416; +dl1a_1, at = 796.449360216; +dl1a_2, at = 796.804597271; +dl1a_3, at = 797.159834113; +dl1a_4, at = 797.515070895; +dl1a_5, at = 797.870307642; +qd3, at = 798.175080083; +sd1a, at = 798.412500582; +bpm_02, at = 799.036204665; +qf4a, at = 799.197134041; +dispbumpcenter, at = 799.376937849; +sf2ah, at = 799.42660741; +sf2amarker, at = 799.47627697; +sf2ah, at = 799.525946531; +qf4b, at = 799.7554199; +of1b, at = 799.965025447; +bpm_03, at = 800.065357959; +sd1b, at = 800.540053357; +qd5, at = 800.802308636; +dl2b_1, at = 801.131915858; +dl2b_2, at = 801.487152605; +dl2b_3, at = 801.842389387; +dl2b_4, at = 802.197626228; +dl2b_5, at = 802.552863191; +bpm_04, at = 802.823860488; +qf6, at = 803.07220829; +dq1, at = 803.864952616; +qf8, at = 804.70537972; +sh2b, at = 805.160352894; +bpm_05, at = 805.246777929; +dq2c_1, at = 805.501086589; +cellcenter, at = 805.699765341; +dq2c_2, at = 805.898444093; +bpm_06, at = 806.152752753; +sh2b, at = 806.239177788; +qf8, at = 806.694150962; +dq1, at = 807.534578066; +qf6, at = 808.327322391; +bpm_07, at = 808.575670194; +dl2d_1, at = 808.84666749; +dl2d_2, at = 809.201904453; +dl2d_3, at = 809.557141295; +dl2d_4, at = 809.912378077; +dl2d_5, at = 810.267614824; +qd5, at = 810.597222045; +sd1d, at = 810.859477325; +bpm_08, at = 811.334172723; +of1d, at = 811.434505235; +qf4b, at = 811.64411078; +dispbumpcenter, at = 811.823914589; +sf2eh, at = 811.87358415; +sf2emarker, at = 811.92325371; +sf2eh, at = 811.972923271; +qf4a, at = 812.20239664; +bpm_09, at = 812.363326016; +sd1e, at = 812.987030099; +qd3, at = 813.224450598; +dl1e_1, at = 813.529223039; +dl1e_2, at = 813.884459786; +dl1e_3, at = 814.239696568; +dl1e_4, at = 814.594933409; +dl1e_5, at = 814.950170465; +dlmarker, at = 815.12778908; +qd2, at = 815.279777935; +sh3e, at = 815.663226942; +qf1, at = 815.968694739; +bpm_10, at = 816.165882894; +idmarker, at = 818.799760347; +lss_n, at = 818.799760347; +hcor, at = 818.887760347; +qflum1, at = 819.137760347; +bpm, at = 822.487760347; +vcor, at = 822.487760347; +qdlum1, at = 822.737760347; +qflum2, at = 825.926760347; +qdluh, at = 832.674760347; +qdluh, at = 832.924760347; +bpm, at = 833.049760347; +vcor, at = 833.049760347; +hcor, at = 839.749760347; +qfluh, at = 839.874760347; +qfluh, at = 840.124760347; +qdluh, at = 847.074760347; +qdluh, at = 847.324760347; +bpm, at = 847.449760347; +vcor, at = 847.449760347; +hcor, at = 854.149760347; +qfluh, at = 854.274760347; +qfluh, at = 854.524760347; +qdluh, at = 861.474760347; +qdluh, at = 861.724760347; +bpm, at = 861.849760347; +vcor, at = 861.849760347; +hcor, at = 868.549760347; +qfluh, at = 868.674760347; +qfluh, at = 868.924760347; +qdluh, at = 875.874760347; +qdluh, at = 876.124760347; +bpm, at = 876.249760347; +vcor, at = 876.249760347; +hcor, at = 882.949760347; +qfluh, at = 883.074760347; +qfluh, at = 883.324760347; +qdluh, at = 890.274760347; +qdluh, at = 890.524760347; +bpm, at = 890.649760347; +vcor, at = 890.649760347; +qflum3, at = 892.896760347; +qdlum3, at = 895.129760347; +qdlum4, at = 897.908760347; +hcor, at = 898.429760347; +bpm, at = 898.429760347; +qflum4, at = 898.679760347; +mid, at = 904.599760347; +qflum5, at = 910.519760347; +qdlum5, at = 911.290760347; +vcor, at = 911.540760347; +bpm, at = 911.540760347; +hcor, at = 914.789760347; +qflum6, at = 915.039760347; +qdlum6, at = 916.551760347; +arc_n_ne, at = 918.799760347; +idmarker, at = 918.799760347; +bpm_01, at = 921.433637801; +qf1, at = 921.630825956; +sh1a, at = 921.936293753; +qd2, at = 922.31974276; +dlmarker, at = 922.471731615; +dl1a_1, at = 922.64935023; +dl1a_2, at = 923.004587286; +dl1a_3, at = 923.359824127; +dl1a_4, at = 923.715060909; +dl1a_5, at = 924.070297656; +qd3, at = 924.375070097; +sd1a, at = 924.612490596; +bpm_02, at = 925.236194679; +qf4a, at = 925.397124055; +dispbumpcenter, at = 925.576927864; +sf2ah, at = 925.626597424; +sf2amarker, at = 925.676266985; +sf2ah, at = 925.725936545; +qf4b, at = 925.955409915; +of1b, at = 926.165015461; +bpm_03, at = 926.265347973; +sd1b, at = 926.740043372; +qd5, at = 927.002298651; +dl2b_1, at = 927.331905872; +dl2b_2, at = 927.687142619; +dl2b_3, at = 928.042379401; +dl2b_4, at = 928.397616243; +dl2b_5, at = 928.752853206; +bpm_04, at = 929.023850502; +qf6, at = 929.272198305; +dq1, at = 930.06494263; +qf8, at = 930.905369734; +sh2b, at = 931.360342908; +bpm_05, at = 931.446767943; +dq2c_1, at = 931.701076603; +cellcenter, at = 931.899755355; +dq2c_2, at = 932.098434107; +bpm_06, at = 932.352742767; +sh2b, at = 932.439167802; +qf8, at = 932.894140976; +dq1, at = 933.73456808; +qf6, at = 934.527312406; +bpm_07, at = 934.775660208; +dl2d_1, at = 935.046657505; +dl2d_2, at = 935.401894468; +dl2d_3, at = 935.757131309; +dl2d_4, at = 936.112368092; +dl2d_5, at = 936.467604839; +qd5, at = 936.79721206; +sd1d, at = 937.059467339; +bpm_08, at = 937.534162737; +of1d, at = 937.634495249; +qf4b, at = 937.844100795; +dispbumpcenter, at = 938.023904604; +sf2eh, at = 938.073574164; +sf2emarker, at = 938.123243724; +sf2eh, at = 938.172913285; +qf4a, at = 938.402386654; +bpm_09, at = 938.56331603; +sd1e, at = 939.187020113; +qd3, at = 939.424440612; +dl1e_1, at = 939.729213053; +dl1e_2, at = 940.0844498; +dl1e_3, at = 940.439686582; +dl1e_4, at = 940.794923424; +dl1e_5, at = 941.150160479; +dlmarker, at = 941.327779095; +qd2, at = 941.47976795; +sh3e, at = 941.863216957; +qf1, at = 942.168684754; +bpm_10, at = 942.365872909; +idmarker, at = 944.999750362; +bpm_01, at = 947.633627815; +qf1, at = 947.83081597; +sh1a, at = 948.136283767; +qd2, at = 948.519732774; +dlmarker, at = 948.671721629; +dl1a_1, at = 948.849340245; +dl1a_2, at = 949.2045773; +dl1a_3, at = 949.559814141; +dl1a_4, at = 949.915050924; +dl1a_5, at = 950.270287671; +qd3, at = 950.575060112; +sd1a, at = 950.812480611; +bpm_02, at = 951.436184694; +qf4a, at = 951.597114069; +dispbumpcenter, at = 951.776917878; +sf2ah, at = 951.826587439; +sf2amarker, at = 951.876256999; +sf2ah, at = 951.92592656; +qf4b, at = 952.155399929; +of1b, at = 952.365005476; +bpm_03, at = 952.465337988; +sd1b, at = 952.940033386; +qd5, at = 953.202288665; +dl2b_1, at = 953.531895887; +dl2b_2, at = 953.887132634; +dl2b_3, at = 954.242369416; +dl2b_4, at = 954.597606257; +dl2b_5, at = 954.95284322; +bpm_04, at = 955.223840517; +qf6, at = 955.472188319; +dq1, at = 956.264932645; +qf8, at = 957.105359749; +sh2b, at = 957.560332923; +bpm_05, at = 957.646757958; +dq2c_1, at = 957.901066618; +cellcenter, at = 958.09974537; +dq2c_2, at = 958.298424122; +bpm_06, at = 958.552732782; +sh2b, at = 958.639157817; +qf8, at = 959.094130991; +dq1, at = 959.934558095; +qf6, at = 960.72730242; +bpm_07, at = 960.975650223; +dl2d_1, at = 961.246647519; +dl2d_2, at = 961.601884482; +dl2d_3, at = 961.957121324; +dl2d_4, at = 962.312358106; +dl2d_5, at = 962.667594853; +qd5, at = 962.997202074; +sd1d, at = 963.259457354; +bpm_08, at = 963.734152752; +of1d, at = 963.834485264; +qf4b, at = 964.044090809; +dispbumpcenter, at = 964.223894618; +sf2eh, at = 964.273564178; +sf2emarker, at = 964.323233739; +sf2eh, at = 964.372903299; +qf4a, at = 964.602376669; +bpm_09, at = 964.763306045; +sd1e, at = 965.387010128; +qd3, at = 965.624430627; +dl1e_1, at = 965.929203068; +dl1e_2, at = 966.284439815; +dl1e_3, at = 966.639676597; +dl1e_4, at = 966.994913438; +dl1e_5, at = 967.350150494; +dlmarker, at = 967.527769109; +qd2, at = 967.679757964; +sh3e, at = 968.063206971; +qf1, at = 968.368674768; +bpm_10, at = 968.565862923; +idmarker, at = 971.199740376; +bpm_01, at = 973.83361783; +qf1, at = 974.030805985; +sh1a, at = 974.336273782; +qd2, at = 974.719722789; +dlmarker, at = 974.871711644; +dl1a_1, at = 975.049330259; +dl1a_2, at = 975.404567314; +dl1a_3, at = 975.759804156; +dl1a_4, at = 976.115040938; +dl1a_5, at = 976.470277685; +qd3, at = 976.775050126; +sd1a, at = 977.012470625; +bpm_02, at = 977.636174708; +qf4a, at = 977.797104084; +dispbumpcenter, at = 977.976907893; +sf2ah, at = 978.026577453; +sf2amarker, at = 978.076247014; +sf2ah, at = 978.125916574; +qf4b, at = 978.355389944; +of1b, at = 978.56499549; +bpm_03, at = 978.665328002; +sd1b, at = 979.140023401; +qd5, at = 979.40227868; +dl2b_1, at = 979.731885901; +dl2b_2, at = 980.087122648; +dl2b_3, at = 980.44235943; +dl2b_4, at = 980.797596272; +dl2b_5, at = 981.152833235; +bpm_04, at = 981.423830531; +qf6, at = 981.672178334; +dq1, at = 982.464922659; +qf8, at = 983.305349763; +sh2b, at = 983.760322937; +bpm_05, at = 983.846747972; +dq2c_1, at = 984.101056632; +cellcenter, at = 984.299735384; +dq2c_2, at = 984.498414136; +bpm_06, at = 984.752722796; +sh2b, at = 984.839147831; +qf8, at = 985.294121005; +dq1, at = 986.134548109; +qf6, at = 986.927292435; +bpm_07, at = 987.175640237; +dl2d_1, at = 987.446637534; +dl2d_2, at = 987.801874497; +dl2d_3, at = 988.157111338; +dl2d_4, at = 988.512348121; +dl2d_5, at = 988.867584868; +qd5, at = 989.197192089; +sd1d, at = 989.459447368; +bpm_08, at = 989.934142766; +of1d, at = 990.034475278; +qf4b, at = 990.244080824; +dispbumpcenter, at = 990.423884632; +sf2eh, at = 990.473554193; +sf2emarker, at = 990.523223753; +sf2eh, at = 990.572893314; +qf4a, at = 990.802366683; +bpm_09, at = 990.963296059; +sd1e, at = 991.587000142; +qd3, at = 991.824420641; +dl1e_1, at = 992.129193082; +dl1e_2, at = 992.484429829; +dl1e_3, at = 992.839666611; +dl1e_4, at = 993.194903453; +dl1e_5, at = 993.550140508; +dlmarker, at = 993.727759124; +qd2, at = 993.879747979; +sh3e, at = 994.263196986; +qf1, at = 994.568664783; +bpm_10, at = 994.765852938; +idmarker, at = 997.399730391; +bpm_01, at = 1000.03360784; +qf1, at = 1000.230796; +sh1a, at = 1000.5362638; +qd2, at = 1000.9197128; +dlmarker, at = 1001.07170166; +dl1a_1, at = 1001.24932027; +dl1a_2, at = 1001.60455733; +dl1a_3, at = 1001.95979417; +dl1a_4, at = 1002.31503095; +dl1a_5, at = 1002.6702677; +qd3, at = 1002.97504014; +sd1a, at = 1003.21246064; +bpm_02, at = 1003.83616472; +qf4a, at = 1003.9970941; +dispbumpcenter, at = 1004.17689791; +sf2ah, at = 1004.22656747; +sf2amarker, at = 1004.27623703; +sf2ah, at = 1004.32590659; +qf4b, at = 1004.55537996; +of1b, at = 1004.7649855; +bpm_03, at = 1004.86531802; +sd1b, at = 1005.34001341; +qd5, at = 1005.60226869; +dl2b_1, at = 1005.93187592; +dl2b_2, at = 1006.28711266; +dl2b_3, at = 1006.64234944; +dl2b_4, at = 1006.99758629; +dl2b_5, at = 1007.35282325; +bpm_04, at = 1007.62382055; +qf6, at = 1007.87216835; +dq1, at = 1008.66491267; +qf8, at = 1009.50533978; +sh2b, at = 1009.96031295; +bpm_05, at = 1010.04673799; +dq2c_1, at = 1010.30104665; +cellcenter, at = 1010.4997254; +dq2c_2, at = 1010.69840415; +bpm_06, at = 1010.95271281; +sh2b, at = 1011.03913785; +qf8, at = 1011.49411102; +dq1, at = 1012.33453812; +qf6, at = 1013.12728245; +bpm_07, at = 1013.37563025; +dl2d_1, at = 1013.64662755; +dl2d_2, at = 1014.00186451; +dl2d_3, at = 1014.35710135; +dl2d_4, at = 1014.71233813; +dl2d_5, at = 1015.06757488; +qd5, at = 1015.3971821; +sd1d, at = 1015.65943738; +bpm_08, at = 1016.13413278; +of1d, at = 1016.23446529; +qf4b, at = 1016.44407084; +dispbumpcenter, at = 1016.62387465; +sf2eh, at = 1016.67354421; +sf2emarker, at = 1016.72321377; +sf2eh, at = 1016.77288333; +qf4a, at = 1017.0023567; +bpm_09, at = 1017.16328607; +sd1e, at = 1017.78699016; +qd3, at = 1018.02441066; +dl1e_1, at = 1018.3291831; +dl1e_2, at = 1018.68441984; +dl1e_3, at = 1019.03965663; +dl1e_4, at = 1019.39489347; +dl1e_5, at = 1019.75013052; +dlmarker, at = 1019.92774914; +qd2, at = 1020.07973799; +sh3e, at = 1020.463187; +qf1, at = 1020.7686548; +bpm_10, at = 1020.96584295; +idmarker, at = 1023.59972041; +bpm_01, at = 1026.23359786; +qf1, at = 1026.43078601; +sh1a, at = 1026.73625381; +qd2, at = 1027.11970282; +dlmarker, at = 1027.27169167; +dl1a_1, at = 1027.44931029; +dl1a_2, at = 1027.80454734; +dl1a_3, at = 1028.15978418; +dl1a_4, at = 1028.51502097; +dl1a_5, at = 1028.87025771; +qd3, at = 1029.17503015; +sd1a, at = 1029.41245065; +bpm_02, at = 1030.03615474; +qf4a, at = 1030.19708411; +dispbumpcenter, at = 1030.37688792; +sf2ah, at = 1030.42655748; +sf2amarker, at = 1030.47622704; +sf2ah, at = 1030.5258966; +qf4b, at = 1030.75536997; +of1b, at = 1030.96497552; +bpm_03, at = 1031.06530803; +sd1b, at = 1031.54000343; +qd5, at = 1031.80225871; +dl2b_1, at = 1032.13186593; +dl2b_2, at = 1032.48710268; +dl2b_3, at = 1032.84233946; +dl2b_4, at = 1033.1975763; +dl2b_5, at = 1033.55281326; +bpm_04, at = 1033.82381056; +qf6, at = 1034.07215836; +dq1, at = 1034.86490269; +qf8, at = 1035.70532979; +sh2b, at = 1036.16030297; +bpm_05, at = 1036.246728; +dq2c_1, at = 1036.50103666; +cellcenter, at = 1036.69971541; +dq2c_2, at = 1036.89839417; +bpm_06, at = 1037.15270283; +sh2b, at = 1037.23912786; +qf8, at = 1037.69410103; +dq1, at = 1038.53452814; +qf6, at = 1039.32727246; +bpm_07, at = 1039.57562027; +dl2d_1, at = 1039.84661756; +dl2d_2, at = 1040.20185453; +dl2d_3, at = 1040.55709137; +dl2d_4, at = 1040.91232815; +dl2d_5, at = 1041.2675649; +qd5, at = 1041.59717212; +sd1d, at = 1041.8594274; +bpm_08, at = 1042.3341228; +of1d, at = 1042.43445531; +qf4b, at = 1042.64406085; +dispbumpcenter, at = 1042.82386466; +sf2eh, at = 1042.87353422; +sf2emarker, at = 1042.92320378; +sf2eh, at = 1042.97287334; +qf4a, at = 1043.20234671; +bpm_09, at = 1043.36327609; +sd1e, at = 1043.98698017; +qd3, at = 1044.22440067; +dl1e_1, at = 1044.52917311; +dl1e_2, at = 1044.88440986; +dl1e_3, at = 1045.23964664; +dl1e_4, at = 1045.59488348; +dl1e_5, at = 1045.95012054; +dlmarker, at = 1046.12773915; +qd2, at = 1046.27972801; +sh3e, at = 1046.66317701; +qf1, at = 1046.96864481; +bpm_10, at = 1047.16583297; +idmarker, at = 1049.79971042; +bpm_01, at = 1052.43358787; +qf1, at = 1052.63077603; +sh1a, at = 1052.93624383; +qd2, at = 1053.31969283; +dlmarker, at = 1053.47168169; +dl1a_1, at = 1053.6493003; +dl1a_2, at = 1054.00453736; +dl1a_3, at = 1054.3597742; +dl1a_4, at = 1054.71501098; +dl1a_5, at = 1055.07024773; +qd3, at = 1055.37502017; +sd1a, at = 1055.61244067; +bpm_02, at = 1056.23614475; +qf4a, at = 1056.39707413; +dispbumpcenter, at = 1056.57687794; +sf2ah, at = 1056.6265475; +sf2amarker, at = 1056.67621706; +sf2ah, at = 1056.72588662; +qf4b, at = 1056.95535999; +of1b, at = 1057.16496553; +bpm_03, at = 1057.26529805; +sd1b, at = 1057.73999344; +qd5, at = 1058.00224872; +dl2b_1, at = 1058.33185594; +dl2b_2, at = 1058.68709269; +dl2b_3, at = 1059.04232947; +dl2b_4, at = 1059.39756632; +dl2b_5, at = 1059.75280328; +bpm_04, at = 1060.02380057; +qf6, at = 1060.27214838; +dq1, at = 1061.0648927; +qf8, at = 1061.90531981; +sh2b, at = 1062.36029298; +bpm_05, at = 1062.44671802; +dq2c_1, at = 1062.70102668; +cellcenter, at = 1062.89970543; +dq2c_2, at = 1063.09838418; +bpm_06, at = 1063.35269284; +sh2b, at = 1063.43911787; +qf8, at = 1063.89409105; +dq1, at = 1064.73451815; +qf6, at = 1065.52726248; +bpm_07, at = 1065.77561028; +dl2d_1, at = 1066.04660758; +dl2d_2, at = 1066.40184454; +dl2d_3, at = 1066.75708138; +dl2d_4, at = 1067.11231816; +dl2d_5, at = 1067.46755491; +qd5, at = 1067.79716213; +sd1d, at = 1068.05941741; +bpm_08, at = 1068.53411281; +of1d, at = 1068.63444532; +qf4b, at = 1068.84405087; +dispbumpcenter, at = 1069.02385468; +sf2eh, at = 1069.07352424; +sf2emarker, at = 1069.1231938; +sf2eh, at = 1069.17286336; +qf4a, at = 1069.40233673; +bpm_09, at = 1069.5632661; +sd1e, at = 1070.18697019; +qd3, at = 1070.42439068; +dl1e_1, at = 1070.72916313; +dl1e_2, at = 1071.08439987; +dl1e_3, at = 1071.43963665; +dl1e_4, at = 1071.7948735; +dl1e_5, at = 1072.15011055; +dlmarker, at = 1072.32772917; +qd2, at = 1072.47971802; +sh3e, at = 1072.86316703; +qf1, at = 1073.16863483; +bpm_10, at = 1073.36582298; +idmarker, at = 1075.99970043; +bpm_01, at = 1078.63357789; +qf1, at = 1078.83076604; +sh1a, at = 1079.13623384; +qd2, at = 1079.51968285; +dlmarker, at = 1079.6716717; +dl1a_1, at = 1079.84929032; +dl1a_2, at = 1080.20452737; +dl1a_3, at = 1080.55976421; +dl1a_4, at = 1080.915001; +dl1a_5, at = 1081.27023774; +qd3, at = 1081.57501018; +sd1a, at = 1081.81243068; +bpm_02, at = 1082.43613477; +qf4a, at = 1082.59706414; +dispbumpcenter, at = 1082.77686795; +sf2ah, at = 1082.82653751; +sf2amarker, at = 1082.87620707; +sf2ah, at = 1082.92587663; +qf4b, at = 1083.15535; +of1b, at = 1083.36495555; +bpm_03, at = 1083.46528806; +sd1b, at = 1083.93998346; +qd5, at = 1084.20223874; +dl2b_1, at = 1084.53184596; +dl2b_2, at = 1084.88708271; +dl2b_3, at = 1085.24231949; +dl2b_4, at = 1085.59755633; +dl2b_5, at = 1085.95279329; +bpm_04, at = 1086.22379059; +qf6, at = 1086.47213839; +dq1, at = 1087.26488272; +qf8, at = 1088.10530982; +sh2b, at = 1088.560283; +bpm_05, at = 1088.64670803; +dq2c_1, at = 1088.90101669; +cellcenter, at = 1089.09969544; +dq2c_2, at = 1089.29837419; +bpm_06, at = 1089.55268285; +sh2b, at = 1089.63910789; +qf8, at = 1090.09408106; +dq1, at = 1090.93450817; +qf6, at = 1091.72725249; +bpm_07, at = 1091.9756003; +dl2d_1, at = 1092.24659759; +dl2d_2, at = 1092.60183455; +dl2d_3, at = 1092.9570714; +dl2d_4, at = 1093.31230818; +dl2d_5, at = 1093.66754493; +qd5, at = 1093.99715215; +sd1d, at = 1094.25940743; +bpm_08, at = 1094.73410282; +of1d, at = 1094.83443534; +qf4b, at = 1095.04404088; +dispbumpcenter, at = 1095.22384469; +sf2eh, at = 1095.27351425; +sf2emarker, at = 1095.32318381; +sf2eh, at = 1095.37285337; +qf4a, at = 1095.60232674; +bpm_09, at = 1095.76325612; +sd1e, at = 1096.3869602; +qd3, at = 1096.6243807; +dl1e_1, at = 1096.92915314; +dl1e_2, at = 1097.28438989; +dl1e_3, at = 1097.63962667; +dl1e_4, at = 1097.99486351; +dl1e_5, at = 1098.35010057; +dlmarker, at = 1098.52771918; +qd2, at = 1098.67970804; +sh3e, at = 1099.06315704; +qf1, at = 1099.36862484; +bpm_10, at = 1099.565813; +idmarker, at = 1102.19969045; +bpm_01, at = 1104.8335679; +qf1, at = 1105.03075606; +sh1a, at = 1105.33622385; +qd2, at = 1105.71967286; +dlmarker, at = 1105.87166172; +dl1a_1, at = 1106.04928033; +dl1a_2, at = 1106.40451739; +dl1a_3, at = 1106.75975423; +dl1a_4, at = 1107.11499101; +dl1a_5, at = 1107.47022776; +qd3, at = 1107.7750002; +sd1a, at = 1108.0124207; +bpm_02, at = 1108.63612478; +qf4a, at = 1108.79705416; +dispbumpcenter, at = 1108.97685797; +sf2ah, at = 1109.02652753; +sf2amarker, at = 1109.07619709; +sf2ah, at = 1109.12586665; +qf4b, at = 1109.35534002; +of1b, at = 1109.56494556; +bpm_03, at = 1109.66527807; +sd1b, at = 1110.13997347; +qd5, at = 1110.40222875; +dl2b_1, at = 1110.73183597; +dl2b_2, at = 1111.08707272; +dl2b_3, at = 1111.4423095; +dl2b_4, at = 1111.79754634; +dl2b_5, at = 1112.15278331; +bpm_04, at = 1112.4237806; +qf6, at = 1112.67212841; +dq1, at = 1113.46487273; +qf8, at = 1114.30529984; +sh2b, at = 1114.76027301; +bpm_05, at = 1114.84669804; +dq2c_1, at = 1115.1010067; +cellcenter, at = 1115.29968546; +dq2c_2, at = 1115.49836421; +bpm_06, at = 1115.75267287; +sh2b, at = 1115.8390979; +qf8, at = 1116.29407108; +dq1, at = 1117.13449818; +qf6, at = 1117.92724251; +bpm_07, at = 1118.17559031; +dl2d_1, at = 1118.44658761; +dl2d_2, at = 1118.80182457; +dl2d_3, at = 1119.15706141; +dl2d_4, at = 1119.51229819; +dl2d_5, at = 1119.86753494; +qd5, at = 1120.19714216; +sd1d, at = 1120.45939744; +bpm_08, at = 1120.93409284; +of1d, at = 1121.03442535; +qf4b, at = 1121.2440309; +dispbumpcenter, at = 1121.4238347; +sf2eh, at = 1121.47350427; +sf2emarker, at = 1121.52317383; +sf2eh, at = 1121.57284339; +qf4a, at = 1121.80231676; +bpm_09, at = 1121.96324613; +sd1e, at = 1122.58695021; +qd3, at = 1122.82437071; +dl1e_1, at = 1123.12914315; +dl1e_2, at = 1123.4843799; +dl1e_3, at = 1123.83961668; +dl1e_4, at = 1124.19485353; +dl1e_5, at = 1124.55009058; +dlmarker, at = 1124.7277092; +qd2, at = 1124.87969805; +sh3e, at = 1125.26314706; +qf1, at = 1125.56861485; +bpm_10, at = 1125.76580301; +idmarker, at = 1128.39968046; +sss_ne, at = 1128.39968046; +hcor, at = 1128.48768046; +qfsum1, at = 1128.73768046; +bpm, at = 1132.08768046; +vcor, at = 1132.08768046; +qdsum1, at = 1132.33768046; +qfsum2, at = 1135.52668046; +qdsuh, at = 1142.27468046; +qdsuh, at = 1142.52468046; +bpm, at = 1142.64968046; +vcor, at = 1142.64968046; +hcor, at = 1149.34968046; +qfsuh, at = 1149.47468046; +qfsuh, at = 1149.72468046; +qd2suh, at = 1156.67468046; +qd2suh, at = 1156.92468046; +bpm, at = 1157.04968046; +vcor, at = 1157.04968046; +qfsum3, at = 1159.29668046; +qdsum3, at = 1161.52968046; +qdsum4, at = 1164.30868046; +hcor, at = 1164.82968046; +bpm, at = 1164.82968046; +qfsum4, at = 1165.07968046; +mid, at = 1170.99968046; +qfsum5, at = 1176.91968046; +qdsum5, at = 1177.69068046; +vcor, at = 1177.94068046; +bpm, at = 1177.94068046; +hcor, at = 1181.18968046; +qfsum6, at = 1181.43968046; +qdsum6, at = 1182.95168046; +arc_ne_e, at = 1185.19968046; +idmarker, at = 1185.19968046; +bpm_01, at = 1187.83355792; +qf1, at = 1188.03074607; +sh1a, at = 1188.33621387; +qd2, at = 1188.71966288; +dlmarker, at = 1188.87165173; +dl1a_1, at = 1189.04927035; +dl1a_2, at = 1189.4045074; +dl1a_3, at = 1189.75974424; +dl1a_4, at = 1190.11498102; +dl1a_5, at = 1190.47021777; +qd3, at = 1190.77499021; +sd1a, at = 1191.01241071; +bpm_02, at = 1191.63611479; +qf4a, at = 1191.79704417; +dispbumpcenter, at = 1191.97684798; +sf2ah, at = 1192.02651754; +sf2amarker, at = 1192.0761871; +sf2ah, at = 1192.12585666; +qf4b, at = 1192.35533003; +of1b, at = 1192.56493558; +bpm_03, at = 1192.66526809; +sd1b, at = 1193.13996349; +qd5, at = 1193.40221877; +dl2b_1, at = 1193.73182599; +dl2b_2, at = 1194.08706273; +dl2b_3, at = 1194.44229952; +dl2b_4, at = 1194.79753636; +dl2b_5, at = 1195.15277332; +bpm_04, at = 1195.42377062; +qf6, at = 1195.67211842; +dq1, at = 1196.46486275; +qf8, at = 1197.30528985; +sh2b, at = 1197.76026302; +bpm_05, at = 1197.84668806; +dq2c_1, at = 1198.10099672; +cellcenter, at = 1198.29967547; +dq2c_2, at = 1198.49835422; +bpm_06, at = 1198.75266288; +sh2b, at = 1198.83908792; +qf8, at = 1199.29406109; +dq1, at = 1200.1344882; +qf6, at = 1200.92723252; +bpm_07, at = 1201.17558032; +dl2d_1, at = 1201.44657762; +dl2d_2, at = 1201.80181458; +dl2d_3, at = 1202.15705143; +dl2d_4, at = 1202.51228821; +dl2d_5, at = 1202.86752495; +qd5, at = 1203.19713218; +sd1d, at = 1203.45938745; +bpm_08, at = 1203.93408285; +of1d, at = 1204.03441537; +qf4b, at = 1204.24402091; +dispbumpcenter, at = 1204.42382472; +sf2eh, at = 1204.47349428; +sf2emarker, at = 1204.52316384; +sf2eh, at = 1204.5728334; +qf4a, at = 1204.80230677; +bpm_09, at = 1204.96323615; +sd1e, at = 1205.58694023; +qd3, at = 1205.82436073; +dl1e_1, at = 1206.12913317; +dl1e_2, at = 1206.48436992; +dl1e_3, at = 1206.8396067; +dl1e_4, at = 1207.19484354; +dl1e_5, at = 1207.5500806; +dlmarker, at = 1207.72769921; +qd2, at = 1207.87968807; +sh3e, at = 1208.26313707; +qf1, at = 1208.56860487; +bpm_10, at = 1208.76579302; +idmarker, at = 1211.39967048; +bpm_01, at = 1214.03354793; +qf1, at = 1214.23073609; +sh1a, at = 1214.53620388; +qd2, at = 1214.91965289; +dlmarker, at = 1215.07164175; +dl1a_1, at = 1215.24926036; +dl1a_2, at = 1215.60449742; +dl1a_3, at = 1215.95973426; +dl1a_4, at = 1216.31497104; +dl1a_5, at = 1216.67020779; +qd3, at = 1216.97498023; +sd1a, at = 1217.21240073; +bpm_02, at = 1217.83610481; +qf4a, at = 1217.99703419; +dispbumpcenter, at = 1218.17683799; +sf2ah, at = 1218.22650755; +sf2amarker, at = 1218.27617712; +sf2ah, at = 1218.32584668; +qf4b, at = 1218.55532005; +of1b, at = 1218.76492559; +bpm_03, at = 1218.8652581; +sd1b, at = 1219.3399535; +qd5, at = 1219.60220878; +dl2b_1, at = 1219.931816; +dl2b_2, at = 1220.28705275; +dl2b_3, at = 1220.64228953; +dl2b_4, at = 1220.99752637; +dl2b_5, at = 1221.35276334; +bpm_04, at = 1221.62376063; +qf6, at = 1221.87210843; +dq1, at = 1222.66485276; +qf8, at = 1223.50527986; +sh2b, at = 1223.96025304; +bpm_05, at = 1224.04667807; +dq2c_1, at = 1224.30098673; +cellcenter, at = 1224.49966549; +dq2c_2, at = 1224.69834424; +bpm_06, at = 1224.9526529; +sh2b, at = 1225.03907793; +qf8, at = 1225.49405111; +dq1, at = 1226.33447821; +qf6, at = 1227.12722254; +bpm_07, at = 1227.37557034; +dl2d_1, at = 1227.64656764; +dl2d_2, at = 1228.0018046; +dl2d_3, at = 1228.35704144; +dl2d_4, at = 1228.71227822; +dl2d_5, at = 1229.06751497; +qd5, at = 1229.39712219; +sd1d, at = 1229.65937747; +bpm_08, at = 1230.13407287; +of1d, at = 1230.23440538; +qf4b, at = 1230.44401092; +dispbumpcenter, at = 1230.62381473; +sf2eh, at = 1230.67348429; +sf2emarker, at = 1230.72315385; +sf2eh, at = 1230.77282342; +qf4a, at = 1231.00229678; +bpm_09, at = 1231.16322616; +sd1e, at = 1231.78693024; +qd3, at = 1232.02435074; +dl1e_1, at = 1232.32912318; +dl1e_2, at = 1232.68435993; +dl1e_3, at = 1233.03959671; +dl1e_4, at = 1233.39483355; +dl1e_5, at = 1233.75007061; +dlmarker, at = 1233.92768922; +qd2, at = 1234.07967808; +sh3e, at = 1234.46312709; +qf1, at = 1234.76859488; +bpm_10, at = 1234.96578304; +idmarker, at = 1237.59966049; +bpm_01, at = 1240.23353795; +qf1, at = 1240.4307261; +sh1a, at = 1240.7361939; +qd2, at = 1241.1196429; +dlmarker, at = 1241.27163176; +dl1a_1, at = 1241.44925037; +dl1a_2, at = 1241.80448743; +dl1a_3, at = 1242.15972427; +dl1a_4, at = 1242.51496105; +dl1a_5, at = 1242.8701978; +qd3, at = 1243.17497024; +sd1a, at = 1243.41239074; +bpm_02, at = 1244.03609482; +qf4a, at = 1244.1970242; +dispbumpcenter, at = 1244.37682801; +sf2ah, at = 1244.42649757; +sf2amarker, at = 1244.47616713; +sf2ah, at = 1244.52583669; +qf4b, at = 1244.75531006; +of1b, at = 1244.96491561; +bpm_03, at = 1245.06524812; +sd1b, at = 1245.53994352; +qd5, at = 1245.8021988; +dl2b_1, at = 1246.13180602; +dl2b_2, at = 1246.48704276; +dl2b_3, at = 1246.84227955; +dl2b_4, at = 1247.19751639; +dl2b_5, at = 1247.55275335; +bpm_04, at = 1247.82375065; +qf6, at = 1248.07209845; +dq1, at = 1248.86484278; +qf8, at = 1249.70526988; +sh2b, at = 1250.16024305; +bpm_05, at = 1250.24666809; +dq2c_1, at = 1250.50097675; +cellcenter, at = 1250.6996555; +dq2c_2, at = 1250.89833425; +bpm_06, at = 1251.15264291; +sh2b, at = 1251.23906795; +qf8, at = 1251.69404112; +dq1, at = 1252.53446822; +qf6, at = 1253.32721255; +bpm_07, at = 1253.57556035; +dl2d_1, at = 1253.84655765; +dl2d_2, at = 1254.20179461; +dl2d_3, at = 1254.55703145; +dl2d_4, at = 1254.91226824; +dl2d_5, at = 1255.26750498; +qd5, at = 1255.5971122; +sd1d, at = 1255.85936748; +bpm_08, at = 1256.33406288; +of1d, at = 1256.43439539; +qf4b, at = 1256.64400094; +dispbumpcenter, at = 1256.82380475; +sf2eh, at = 1256.87347431; +sf2emarker, at = 1256.92314387; +sf2eh, at = 1256.97281343; +qf4a, at = 1257.2022868; +bpm_09, at = 1257.36321618; +sd1e, at = 1257.98692026; +qd3, at = 1258.22434076; +dl1e_1, at = 1258.5291132; +dl1e_2, at = 1258.88434994; +dl1e_3, at = 1259.23958673; +dl1e_4, at = 1259.59482357; +dl1e_5, at = 1259.95006062; +dlmarker, at = 1260.12767924; +qd2, at = 1260.27966809; +sh3e, at = 1260.6631171; +qf1, at = 1260.9685849; +bpm_10, at = 1261.16577305; +idmarker, at = 1263.79965051; +bpm_01, at = 1266.43352796; +qf1, at = 1266.63071612; +sh1a, at = 1266.93618391; +qd2, at = 1267.31963292; +dlmarker, at = 1267.47162177; +dl1a_1, at = 1267.64924039; +dl1a_2, at = 1268.00447744; +dl1a_3, at = 1268.35971429; +dl1a_4, at = 1268.71495107; +dl1a_5, at = 1269.07018782; +qd3, at = 1269.37496026; +sd1a, at = 1269.61238076; +bpm_02, at = 1270.23608484; +qf4a, at = 1270.39701421; +dispbumpcenter, at = 1270.57681802; +sf2ah, at = 1270.62648758; +sf2amarker, at = 1270.67615714; +sf2ah, at = 1270.7258267; +qf4b, at = 1270.95530007; +of1b, at = 1271.16490562; +bpm_03, at = 1271.26523813; +sd1b, at = 1271.73993353; +qd5, at = 1272.00218881; +dl2b_1, at = 1272.33179603; +dl2b_2, at = 1272.68703278; +dl2b_3, at = 1273.04226956; +dl2b_4, at = 1273.3975064; +dl2b_5, at = 1273.75274336; +bpm_04, at = 1274.02374066; +qf6, at = 1274.27208846; +dq1, at = 1275.06483279; +qf8, at = 1275.90525989; +sh2b, at = 1276.36023307; +bpm_05, at = 1276.4466581; +dq2c_1, at = 1276.70096676; +cellcenter, at = 1276.89964551; +dq2c_2, at = 1277.09832427; +bpm_06, at = 1277.35263293; +sh2b, at = 1277.43905796; +qf8, at = 1277.89403114; +dq1, at = 1278.73445824; +qf6, at = 1279.52720257; +bpm_07, at = 1279.77555037; +dl2d_1, at = 1280.04654766; +dl2d_2, at = 1280.40178463; +dl2d_3, at = 1280.75702147; +dl2d_4, at = 1281.11225825; +dl2d_5, at = 1281.467495; +qd5, at = 1281.79710222; +sd1d, at = 1282.0593575; +bpm_08, at = 1282.5340529; +of1d, at = 1282.63438541; +qf4b, at = 1282.84399095; +dispbumpcenter, at = 1283.02379476; +sf2eh, at = 1283.07346432; +sf2emarker, at = 1283.12313388; +sf2eh, at = 1283.17280344; +qf4a, at = 1283.40227681; +bpm_09, at = 1283.56320619; +sd1e, at = 1284.18691027; +qd3, at = 1284.42433077; +dl1e_1, at = 1284.72910321; +dl1e_2, at = 1285.08433996; +dl1e_3, at = 1285.43957674; +dl1e_4, at = 1285.79481358; +dl1e_5, at = 1286.15005064; +dlmarker, at = 1286.32766925; +qd2, at = 1286.47965811; +sh3e, at = 1286.86310712; +qf1, at = 1287.16857491; +bpm_10, at = 1287.36576307; +idmarker, at = 1289.99964052; +bpm_01, at = 1292.63351797; +qf1, at = 1292.83070613; +sh1a, at = 1293.13617393; +qd2, at = 1293.51962293; +dlmarker, at = 1293.67161179; +dl1a_1, at = 1293.8492304; +dl1a_2, at = 1294.20446746; +dl1a_3, at = 1294.5597043; +dl1a_4, at = 1294.91494108; +dl1a_5, at = 1295.27017783; +qd3, at = 1295.57495027; +sd1a, at = 1295.81237077; +bpm_02, at = 1296.43607485; +qf4a, at = 1296.59700423; +dispbumpcenter, at = 1296.77680804; +sf2ah, at = 1296.8264776; +sf2amarker, at = 1296.87614716; +sf2ah, at = 1296.92581672; +qf4b, at = 1297.15529009; +of1b, at = 1297.36489563; +bpm_03, at = 1297.46522815; +sd1b, at = 1297.93992355; +qd5, at = 1298.20217882; +dl2b_1, at = 1298.53178605; +dl2b_2, at = 1298.88702279; +dl2b_3, at = 1299.24225957; +dl2b_4, at = 1299.59749642; +dl2b_5, at = 1299.95273338; +bpm_04, at = 1300.22373068; +qf6, at = 1300.47207848; +dq1, at = 1301.2648228; +qf8, at = 1302.10524991; +sh2b, at = 1302.56022308; +bpm_05, at = 1302.64664812; +dq2c_1, at = 1302.90095678; +cellcenter, at = 1303.09963553; +dq2c_2, at = 1303.29831428; +bpm_06, at = 1303.55262294; +sh2b, at = 1303.63904798; +qf8, at = 1304.09402115; +dq1, at = 1304.93444825; +qf6, at = 1305.72719258; +bpm_07, at = 1305.97554038; +dl2d_1, at = 1306.24653768; +dl2d_2, at = 1306.60177464; +dl2d_3, at = 1306.95701148; +dl2d_4, at = 1307.31224827; +dl2d_5, at = 1307.66748501; +qd5, at = 1307.99709223; +sd1d, at = 1308.25934751; +bpm_08, at = 1308.73404291; +of1d, at = 1308.83437542; +qf4b, at = 1309.04398097; +dispbumpcenter, at = 1309.22378478; +sf2eh, at = 1309.27345434; +sf2emarker, at = 1309.3231239; +sf2eh, at = 1309.37279346; +qf4a, at = 1309.60226683; +bpm_09, at = 1309.7631962; +sd1e, at = 1310.38690029; +qd3, at = 1310.62432079; +dl1e_1, at = 1310.92909323; +dl1e_2, at = 1311.28432997; +dl1e_3, at = 1311.63956676; +dl1e_4, at = 1311.9948036; +dl1e_5, at = 1312.35004065; +dlmarker, at = 1312.52765927; +qd2, at = 1312.67964812; +sh3e, at = 1313.06309713; +qf1, at = 1313.36856493; +bpm_10, at = 1313.56575308; +idmarker, at = 1316.19963054; +bpm_01, at = 1318.83350799; +qf1, at = 1319.03069614; +sh1a, at = 1319.33616394; +qd2, at = 1319.71961295; +dlmarker, at = 1319.8716018; +dl1a_1, at = 1320.04922042; +dl1a_2, at = 1320.40445747; +dl1a_3, at = 1320.75969432; +dl1a_4, at = 1321.1149311; +dl1a_5, at = 1321.47016784; +qd3, at = 1321.77494029; +sd1a, at = 1322.01236078; +bpm_02, at = 1322.63606487; +qf4a, at = 1322.79699424; +dispbumpcenter, at = 1322.97679805; +sf2ah, at = 1323.02646761; +sf2amarker, at = 1323.07613717; +sf2ah, at = 1323.12580673; +qf4b, at = 1323.3552801; +of1b, at = 1323.56488565; +bpm_03, at = 1323.66521816; +sd1b, at = 1324.13991356; +qd5, at = 1324.40216884; +dl2b_1, at = 1324.73177606; +dl2b_2, at = 1325.08701281; +dl2b_3, at = 1325.44224959; +dl2b_4, at = 1325.79748643; +dl2b_5, at = 1326.15272339; +bpm_04, at = 1326.42372069; +qf6, at = 1326.67206849; +dq1, at = 1327.46481282; +qf8, at = 1328.30523992; +sh2b, at = 1328.7602131; +bpm_05, at = 1328.84663813; +dq2c_1, at = 1329.10094679; +cellcenter, at = 1329.29962554; +dq2c_2, at = 1329.4983043; +bpm_06, at = 1329.75261296; +sh2b, at = 1329.83903799; +qf8, at = 1330.29401116; +dq1, at = 1331.13443827; +qf6, at = 1331.92718259; +bpm_07, at = 1332.1755304; +dl2d_1, at = 1332.44652769; +dl2d_2, at = 1332.80176466; +dl2d_3, at = 1333.1570015; +dl2d_4, at = 1333.51223828; +dl2d_5, at = 1333.86747503; +qd5, at = 1334.19708225; +sd1d, at = 1334.45933753; +bpm_08, at = 1334.93403293; +of1d, at = 1335.03436544; +qf4b, at = 1335.24397098; +dispbumpcenter, at = 1335.42377479; +sf2eh, at = 1335.47344435; +sf2emarker, at = 1335.52311391; +sf2eh, at = 1335.57278347; +qf4a, at = 1335.80225684; +bpm_09, at = 1335.96318622; +sd1e, at = 1336.5868903; +qd3, at = 1336.8243108; +dl1e_1, at = 1337.12908324; +dl1e_2, at = 1337.48431999; +dl1e_3, at = 1337.83955677; +dl1e_4, at = 1338.19479361; +dl1e_5, at = 1338.55003067; +dlmarker, at = 1338.72764928; +qd2, at = 1338.87963814; +sh3e, at = 1339.26308714; +qf1, at = 1339.56855494; +bpm_10, at = 1339.7657431; +idmarker, at = 1342.39962055; +bpm_01, at = 1345.033498; +qf1, at = 1345.23068616; +sh1a, at = 1345.53615396; +qd2, at = 1345.91960296; +dlmarker, at = 1346.07159182; +dl1a_1, at = 1346.24921043; +dl1a_2, at = 1346.60444749; +dl1a_3, at = 1346.95968433; +dl1a_4, at = 1347.31492111; +dl1a_5, at = 1347.67015786; +qd3, at = 1347.9749303; +sd1a, at = 1348.2123508; +bpm_02, at = 1348.83605488; +qf4a, at = 1348.99698426; +dispbumpcenter, at = 1349.17678807; +sf2ah, at = 1349.22645763; +sf2amarker, at = 1349.27612719; +sf2ah, at = 1349.32579675; +qf4b, at = 1349.55527012; +of1b, at = 1349.76487566; +bpm_03, at = 1349.86520818; +sd1b, at = 1350.33990357; +qd5, at = 1350.60215885; +dl2b_1, at = 1350.93176607; +dl2b_2, at = 1351.28700282; +dl2b_3, at = 1351.6422396; +dl2b_4, at = 1351.99747645; +dl2b_5, at = 1352.35271341; +bpm_04, at = 1352.6237107; +qf6, at = 1352.87205851; +dq1, at = 1353.66480283; +qf8, at = 1354.50522994; +sh2b, at = 1354.96020311; +bpm_05, at = 1355.04662815; +dq2c_1, at = 1355.30093681; +cellcenter, at = 1355.49961556; +dq2c_2, at = 1355.69829431; +bpm_06, at = 1355.95260297; +sh2b, at = 1356.039028; +qf8, at = 1356.49400118; +dq1, at = 1357.33442828; +qf6, at = 1358.12717261; +bpm_07, at = 1358.37552041; +dl2d_1, at = 1358.64651771; +dl2d_2, at = 1359.00175467; +dl2d_3, at = 1359.35699151; +dl2d_4, at = 1359.71222829; +dl2d_5, at = 1360.06746504; +qd5, at = 1360.39707226; +sd1d, at = 1360.65932754; +bpm_08, at = 1361.13402294; +of1d, at = 1361.23435545; +qf4b, at = 1361.443961; +dispbumpcenter, at = 1361.62376481; +sf2eh, at = 1361.67343437; +sf2emarker, at = 1361.72310393; +sf2eh, at = 1361.77277349; +qf4a, at = 1362.00224686; +bpm_09, at = 1362.16317623; +sd1e, at = 1362.78688032; +qd3, at = 1363.02430081; +dl1e_1, at = 1363.32907326; +dl1e_2, at = 1363.68431; +dl1e_3, at = 1364.03954679; +dl1e_4, at = 1364.39478363; +dl1e_5, at = 1364.75002068; +dlmarker, at = 1364.9276393; +qd2, at = 1365.07962815; +sh3e, at = 1365.46307716; +qf1, at = 1365.76854496; +bpm_10, at = 1365.96573311; +idmarker, at = 1368.59961056; +bpm_01, at = 1371.23348802; +qf1, at = 1371.43067617; +sh1a, at = 1371.73614397; +qd2, at = 1372.11959298; +dlmarker, at = 1372.27158183; +dl1a_1, at = 1372.44920045; +dl1a_2, at = 1372.8044375; +dl1a_3, at = 1373.15967434; +dl1a_4, at = 1373.51491113; +dl1a_5, at = 1373.87014787; +qd3, at = 1374.17492031; +sd1a, at = 1374.41234081; +bpm_02, at = 1375.0360449; +qf4a, at = 1375.19697427; +dispbumpcenter, at = 1375.37677808; +sf2ah, at = 1375.42644764; +sf2amarker, at = 1375.4761172; +sf2ah, at = 1375.52578676; +qf4b, at = 1375.75526013; +of1b, at = 1375.96486568; +bpm_03, at = 1376.06519819; +sd1b, at = 1376.53989359; +qd5, at = 1376.80214887; +dl2b_1, at = 1377.13175609; +dl2b_2, at = 1377.48699284; +dl2b_3, at = 1377.84222962; +dl2b_4, at = 1378.19746646; +dl2b_5, at = 1378.55270342; +bpm_04, at = 1378.82370072; +qf6, at = 1379.07204852; +dq1, at = 1379.86479285; +qf8, at = 1380.70521995; +sh2b, at = 1381.16019313; +bpm_05, at = 1381.24661816; +dq2c_1, at = 1381.50092682; +cellcenter, at = 1381.69960557; +dq2c_2, at = 1381.89828432; +bpm_06, at = 1382.15259298; +sh2b, at = 1382.23901802; +qf8, at = 1382.69399119; +dq1, at = 1383.5344183; +qf6, at = 1384.32716262; +bpm_07, at = 1384.57551043; +dl2d_1, at = 1384.84650772; +dl2d_2, at = 1385.20174469; +dl2d_3, at = 1385.55698153; +dl2d_4, at = 1385.91221831; +dl2d_5, at = 1386.26745506; +qd5, at = 1386.59706228; +sd1d, at = 1386.85931756; +bpm_08, at = 1387.33401295; +of1d, at = 1387.43434547; +qf4b, at = 1387.64395101; +dispbumpcenter, at = 1387.82375482; +sf2eh, at = 1387.87342438; +sf2emarker, at = 1387.92309394; +sf2eh, at = 1387.9727635; +qf4a, at = 1388.20223687; +bpm_09, at = 1388.36316625; +sd1e, at = 1388.98687033; +qd3, at = 1389.22429083; +dl1e_1, at = 1389.52906327; +dl1e_2, at = 1389.88430002; +dl1e_3, at = 1390.2395368; +dl1e_4, at = 1390.59477364; +dl1e_5, at = 1390.9500107; +dlmarker, at = 1391.12762931; +qd2, at = 1391.27961817; +sh3e, at = 1391.66306717; +qf1, at = 1391.96853497; +bpm_10, at = 1392.16572313; +idmarker, at = 1394.79960058; +lss_e, at = 1394.79960058; +hcor, at = 1394.88760058; +qflum1, at = 1395.13760058; +bpm, at = 1398.48760058; +vcor, at = 1398.48760058; +qdlum1, at = 1398.73760058; +qflum2, at = 1401.92660058; +qdluh, at = 1408.67460058; +qdluh, at = 1408.92460058; +bpm, at = 1409.04960058; +vcor, at = 1409.04960058; +hcor, at = 1415.74960058; +qfluh, at = 1415.87460058; +qfluh, at = 1416.12460058; +qdluh, at = 1423.07460058; +qdluh, at = 1423.32460058; +bpm, at = 1423.44960058; +vcor, at = 1423.44960058; +hcor, at = 1430.14960058; +qfluh, at = 1430.27460058; +qfluh, at = 1430.52460058; +qdluh, at = 1437.47460058; +qdluh, at = 1437.72460058; +bpm, at = 1437.84960058; +vcor, at = 1437.84960058; +hcor, at = 1444.54960058; +qfluh, at = 1444.67460058; +qfluh, at = 1444.92460058; +qdluh, at = 1451.87460058; +qdluh, at = 1452.12460058; +bpm, at = 1452.24960058; +vcor, at = 1452.24960058; +hcor, at = 1458.94960058; +qfluh, at = 1459.07460058; +qfluh, at = 1459.32460058; +qdluh, at = 1466.27460058; +qdluh, at = 1466.52460058; +bpm, at = 1466.64960058; +vcor, at = 1466.64960058; +qflum3, at = 1468.89660058; +qdlum3, at = 1471.12960058; +qdlum4, at = 1473.90860058; +hcor, at = 1474.42960058; +bpm, at = 1474.42960058; +qflum4, at = 1474.67960058; +mid, at = 1480.59960058; +qflum5, at = 1486.51960058; +qdlum5, at = 1487.29060058; +vcor, at = 1487.54060058; +bpm, at = 1487.54060058; +hcor, at = 1490.78960058; +qflum6, at = 1491.03960058; +qdlum6, at = 1492.55160058; +arc_e_se, at = 1494.79960058; +idmarker, at = 1494.79960058; +bpm_01, at = 1497.43347803; +qf1, at = 1497.63066619; +sh1a, at = 1497.93613398; +qd2, at = 1498.31958299; +dlmarker, at = 1498.47157185; +dl1a_1, at = 1498.64919046; +dl1a_2, at = 1499.00442752; +dl1a_3, at = 1499.35966436; +dl1a_4, at = 1499.71490114; +dl1a_5, at = 1500.07013789; +qd3, at = 1500.37491033; +sd1a, at = 1500.61233083; +bpm_02, at = 1501.23603491; +qf4a, at = 1501.39696429; +dispbumpcenter, at = 1501.5767681; +sf2ah, at = 1501.62643766; +sf2amarker, at = 1501.67610722; +sf2ah, at = 1501.72577678; +qf4b, at = 1501.95525015; +of1b, at = 1502.16485569; +bpm_03, at = 1502.26518821; +sd1b, at = 1502.7398836; +qd5, at = 1503.00213888; +dl2b_1, at = 1503.3317461; +dl2b_2, at = 1503.68698285; +dl2b_3, at = 1504.04221963; +dl2b_4, at = 1504.39745647; +dl2b_5, at = 1504.75269344; +bpm_04, at = 1505.02369073; +qf6, at = 1505.27203854; +dq1, at = 1506.06478286; +qf8, at = 1506.90520997; +sh2b, at = 1507.36018314; +bpm_05, at = 1507.44660818; +dq2c_1, at = 1507.70091683; +cellcenter, at = 1507.89959559; +dq2c_2, at = 1508.09827434; +bpm_06, at = 1508.352583; +sh2b, at = 1508.43900803; +qf8, at = 1508.89398121; +dq1, at = 1509.73440831; +qf6, at = 1510.52715264; +bpm_07, at = 1510.77550044; +dl2d_1, at = 1511.04649774; +dl2d_2, at = 1511.4017347; +dl2d_3, at = 1511.75697154; +dl2d_4, at = 1512.11220832; +dl2d_5, at = 1512.46744507; +qd5, at = 1512.79705229; +sd1d, at = 1513.05930757; +bpm_08, at = 1513.53400297; +of1d, at = 1513.63433548; +qf4b, at = 1513.84394103; +dispbumpcenter, at = 1514.02374484; +sf2eh, at = 1514.0734144; +sf2emarker, at = 1514.12308396; +sf2eh, at = 1514.17275352; +qf4a, at = 1514.40222689; +bpm_09, at = 1514.56315626; +sd1e, at = 1515.18686034; +qd3, at = 1515.42428084; +dl1e_1, at = 1515.72905328; +dl1e_2, at = 1516.08429003; +dl1e_3, at = 1516.43952681; +dl1e_4, at = 1516.79476366; +dl1e_5, at = 1517.15000071; +dlmarker, at = 1517.32761933; +qd2, at = 1517.47960818; +sh3e, at = 1517.86305719; +qf1, at = 1518.16852499; +bpm_10, at = 1518.36571314; +idmarker, at = 1520.99959059; +bpm_01, at = 1523.63346805; +qf1, at = 1523.8306562; +sh1a, at = 1524.136124; +qd2, at = 1524.51957301; +dlmarker, at = 1524.67156186; +dl1a_1, at = 1524.84918048; +dl1a_2, at = 1525.20441753; +dl1a_3, at = 1525.55965437; +dl1a_4, at = 1525.91489116; +dl1a_5, at = 1526.2701279; +qd3, at = 1526.57490034; +sd1a, at = 1526.81232084; +bpm_02, at = 1527.43602493; +qf4a, at = 1527.5969543; +dispbumpcenter, at = 1527.77675811; +sf2ah, at = 1527.82642767; +sf2amarker, at = 1527.87609723; +sf2ah, at = 1527.92576679; +qf4b, at = 1528.15524016; +of1b, at = 1528.36484571; +bpm_03, at = 1528.46517822; +sd1b, at = 1528.93987362; +qd5, at = 1529.2021289; +dl2b_1, at = 1529.53173612; +dl2b_2, at = 1529.88697287; +dl2b_3, at = 1530.24220965; +dl2b_4, at = 1530.59744649; +dl2b_5, at = 1530.95268345; +bpm_04, at = 1531.22368075; +qf6, at = 1531.47202855; +dq1, at = 1532.26477288; +qf8, at = 1533.10519998; +sh2b, at = 1533.56017315; +bpm_05, at = 1533.64659819; +dq2c_1, at = 1533.90090685; +cellcenter, at = 1534.0995856; +dq2c_2, at = 1534.29826435; +bpm_06, at = 1534.55257301; +sh2b, at = 1534.63899805; +qf8, at = 1535.09397122; +dq1, at = 1535.93439833; +qf6, at = 1536.72714265; +bpm_07, at = 1536.97549045; +dl2d_1, at = 1537.24648775; +dl2d_2, at = 1537.60172471; +dl2d_3, at = 1537.95696156; +dl2d_4, at = 1538.31219834; +dl2d_5, at = 1538.66743508; +qd5, at = 1538.99704231; +sd1d, at = 1539.25929759; +bpm_08, at = 1539.73399298; +of1d, at = 1539.8343255; +qf4b, at = 1540.04393104; +dispbumpcenter, at = 1540.22373485; +sf2eh, at = 1540.27340441; +sf2emarker, at = 1540.32307397; +sf2eh, at = 1540.37274353; +qf4a, at = 1540.6022169; +bpm_09, at = 1540.76314628; +sd1e, at = 1541.38685036; +qd3, at = 1541.62427086; +dl1e_1, at = 1541.9290433; +dl1e_2, at = 1542.28428005; +dl1e_3, at = 1542.63951683; +dl1e_4, at = 1542.99475367; +dl1e_5, at = 1543.34999073; +dlmarker, at = 1543.52760934; +qd2, at = 1543.6795982; +sh3e, at = 1544.0630472; +qf1, at = 1544.368515; +bpm_10, at = 1544.56570315; +idmarker, at = 1547.19958061; +bpm_01, at = 1549.83345806; +qf1, at = 1550.03064622; +sh1a, at = 1550.33611401; +qd2, at = 1550.71956302; +dlmarker, at = 1550.87155188; +dl1a_1, at = 1551.04917049; +dl1a_2, at = 1551.40440755; +dl1a_3, at = 1551.75964439; +dl1a_4, at = 1552.11488117; +dl1a_5, at = 1552.47011792; +qd3, at = 1552.77489036; +sd1a, at = 1553.01231086; +bpm_02, at = 1553.63601494; +qf4a, at = 1553.79694432; +dispbumpcenter, at = 1553.97674812; +sf2ah, at = 1554.02641768; +sf2amarker, at = 1554.07608725; +sf2ah, at = 1554.12575681; +qf4b, at = 1554.35523018; +of1b, at = 1554.56483572; +bpm_03, at = 1554.66516823; +sd1b, at = 1555.13986363; +qd5, at = 1555.40211891; +dl2b_1, at = 1555.73172613; +dl2b_2, at = 1556.08696288; +dl2b_3, at = 1556.44219966; +dl2b_4, at = 1556.7974365; +dl2b_5, at = 1557.15267347; +bpm_04, at = 1557.42367076; +qf6, at = 1557.67201857; +dq1, at = 1558.46476289; +qf8, at = 1559.30518999; +sh2b, at = 1559.76016317; +bpm_05, at = 1559.8465882; +dq2c_1, at = 1560.10089686; +cellcenter, at = 1560.29957562; +dq2c_2, at = 1560.49825437; +bpm_06, at = 1560.75256303; +sh2b, at = 1560.83898806; +qf8, at = 1561.29396124; +dq1, at = 1562.13438834; +qf6, at = 1562.92713267; +bpm_07, at = 1563.17548047; +dl2d_1, at = 1563.44647777; +dl2d_2, at = 1563.80171473; +dl2d_3, at = 1564.15695157; +dl2d_4, at = 1564.51218835; +dl2d_5, at = 1564.8674251; +qd5, at = 1565.19703232; +sd1d, at = 1565.4592876; +bpm_08, at = 1565.933983; +of1d, at = 1566.03431551; +qf4b, at = 1566.24392106; +dispbumpcenter, at = 1566.42372486; +sf2eh, at = 1566.47339442; +sf2emarker, at = 1566.52306399; +sf2eh, at = 1566.57273355; +qf4a, at = 1566.80220691; +bpm_09, at = 1566.96313629; +sd1e, at = 1567.58684037; +qd3, at = 1567.82426087; +dl1e_1, at = 1568.12903331; +dl1e_2, at = 1568.48427006; +dl1e_3, at = 1568.83950684; +dl1e_4, at = 1569.19474368; +dl1e_5, at = 1569.54998074; +dlmarker, at = 1569.72759936; +qd2, at = 1569.87958821; +sh3e, at = 1570.26303722; +qf1, at = 1570.56850501; +bpm_10, at = 1570.76569317; +idmarker, at = 1573.39957062; +bpm_01, at = 1576.03344808; +qf1, at = 1576.23063623; +sh1a, at = 1576.53610403; +qd2, at = 1576.91955303; +dlmarker, at = 1577.07154189; +dl1a_1, at = 1577.24916051; +dl1a_2, at = 1577.60439756; +dl1a_3, at = 1577.9596344; +dl1a_4, at = 1578.31487118; +dl1a_5, at = 1578.67010793; +qd3, at = 1578.97488037; +sd1a, at = 1579.21230087; +bpm_02, at = 1579.83600495; +qf4a, at = 1579.99693433; +dispbumpcenter, at = 1580.17673814; +sf2ah, at = 1580.2264077; +sf2amarker, at = 1580.27607726; +sf2ah, at = 1580.32574682; +qf4b, at = 1580.55522019; +of1b, at = 1580.76482574; +bpm_03, at = 1580.86515825; +sd1b, at = 1581.33985365; +qd5, at = 1581.60210893; +dl2b_1, at = 1581.93171615; +dl2b_2, at = 1582.28695289; +dl2b_3, at = 1582.64218968; +dl2b_4, at = 1582.99742652; +dl2b_5, at = 1583.35266348; +bpm_04, at = 1583.62366078; +qf6, at = 1583.87200858; +dq1, at = 1584.66475291; +qf8, at = 1585.50518001; +sh2b, at = 1585.96015318; +bpm_05, at = 1586.04657822; +dq2c_1, at = 1586.30088688; +cellcenter, at = 1586.49956563; +dq2c_2, at = 1586.69824438; +bpm_06, at = 1586.95255304; +sh2b, at = 1587.03897808; +qf8, at = 1587.49395125; +dq1, at = 1588.33437836; +qf6, at = 1589.12712268; +bpm_07, at = 1589.37547048; +dl2d_1, at = 1589.64646778; +dl2d_2, at = 1590.00170474; +dl2d_3, at = 1590.35694158; +dl2d_4, at = 1590.71217837; +dl2d_5, at = 1591.06741511; +qd5, at = 1591.39702233; +sd1d, at = 1591.65927761; +bpm_08, at = 1592.13397301; +of1d, at = 1592.23430552; +qf4b, at = 1592.44391107; +dispbumpcenter, at = 1592.62371488; +sf2eh, at = 1592.67338444; +sf2emarker, at = 1592.723054; +sf2eh, at = 1592.77272356; +qf4a, at = 1593.00219693; +bpm_09, at = 1593.16312631; +sd1e, at = 1593.78683039; +qd3, at = 1594.02425089; +dl1e_1, at = 1594.32902333; +dl1e_2, at = 1594.68426008; +dl1e_3, at = 1595.03949686; +dl1e_4, at = 1595.3947337; +dl1e_5, at = 1595.74997075; +dlmarker, at = 1595.92758937; +qd2, at = 1596.07957822; +sh3e, at = 1596.46302723; +qf1, at = 1596.76849503; +bpm_10, at = 1596.96568318; +idmarker, at = 1599.59956064; +bpm_01, at = 1602.23343809; +qf1, at = 1602.43062625; +sh1a, at = 1602.73609404; +qd2, at = 1603.11954305; +dlmarker, at = 1603.2715319; +dl1a_1, at = 1603.44915052; +dl1a_2, at = 1603.80438758; +dl1a_3, at = 1604.15962442; +dl1a_4, at = 1604.5148612; +dl1a_5, at = 1604.87009795; +qd3, at = 1605.17487039; +sd1a, at = 1605.41229089; +bpm_02, at = 1606.03599497; +qf4a, at = 1606.19692434; +dispbumpcenter, at = 1606.37672815; +sf2ah, at = 1606.42639771; +sf2amarker, at = 1606.47606727; +sf2ah, at = 1606.52573683; +qf4b, at = 1606.7552102; +of1b, at = 1606.96481575; +bpm_03, at = 1607.06514826; +sd1b, at = 1607.53984366; +qd5, at = 1607.80209894; +dl2b_1, at = 1608.13170616; +dl2b_2, at = 1608.48694291; +dl2b_3, at = 1608.84217969; +dl2b_4, at = 1609.19741653; +dl2b_5, at = 1609.5526535; +bpm_04, at = 1609.82365079; +qf6, at = 1610.07199859; +dq1, at = 1610.86474292; +qf8, at = 1611.70517002; +sh2b, at = 1612.1601432; +bpm_05, at = 1612.24656823; +dq2c_1, at = 1612.50087689; +cellcenter, at = 1612.69955564; +dq2c_2, at = 1612.8982344; +bpm_06, at = 1613.15254306; +sh2b, at = 1613.23896809; +qf8, at = 1613.69394127; +dq1, at = 1614.53436837; +qf6, at = 1615.3271127; +bpm_07, at = 1615.5754605; +dl2d_1, at = 1615.84645779; +dl2d_2, at = 1616.20169476; +dl2d_3, at = 1616.5569316; +dl2d_4, at = 1616.91216838; +dl2d_5, at = 1617.26740513; +qd5, at = 1617.59701235; +sd1d, at = 1617.85926763; +bpm_08, at = 1618.33396303; +of1d, at = 1618.43429554; +qf4b, at = 1618.64390108; +dispbumpcenter, at = 1618.82370489; +sf2eh, at = 1618.87337445; +sf2emarker, at = 1618.92304401; +sf2eh, at = 1618.97271357; +qf4a, at = 1619.20218694; +bpm_09, at = 1619.36311632; +sd1e, at = 1619.9868204; +qd3, at = 1620.2242409; +dl1e_1, at = 1620.52901334; +dl1e_2, at = 1620.88425009; +dl1e_3, at = 1621.23948687; +dl1e_4, at = 1621.59472371; +dl1e_5, at = 1621.94996077; +dlmarker, at = 1622.12757938; +qd2, at = 1622.27956824; +sh3e, at = 1622.66301725; +qf1, at = 1622.96848504; +bpm_10, at = 1623.1656732; +idmarker, at = 1625.79955065; +bpm_01, at = 1628.4334281; +qf1, at = 1628.63061626; +sh1a, at = 1628.93608406; +qd2, at = 1629.31953306; +dlmarker, at = 1629.47152192; +dl1a_1, at = 1629.64914053; +dl1a_2, at = 1630.00437759; +dl1a_3, at = 1630.35961443; +dl1a_4, at = 1630.71485121; +dl1a_5, at = 1631.07008796; +qd3, at = 1631.3748604; +sd1a, at = 1631.6122809; +bpm_02, at = 1632.23598498; +qf4a, at = 1632.39691436; +dispbumpcenter, at = 1632.57671817; +sf2ah, at = 1632.62638773; +sf2amarker, at = 1632.67605729; +sf2ah, at = 1632.72572685; +qf4b, at = 1632.95520022; +of1b, at = 1633.16480577; +bpm_03, at = 1633.26513828; +sd1b, at = 1633.73983368; +qd5, at = 1634.00208895; +dl2b_1, at = 1634.33169618; +dl2b_2, at = 1634.68693292; +dl2b_3, at = 1635.04216971; +dl2b_4, at = 1635.39740655; +dl2b_5, at = 1635.75264351; +bpm_04, at = 1636.02364081; +qf6, at = 1636.27198861; +dq1, at = 1637.06473293; +qf8, at = 1637.90516004; +sh2b, at = 1638.36013321; +bpm_05, at = 1638.44655825; +dq2c_1, at = 1638.70086691; +cellcenter, at = 1638.89954566; +dq2c_2, at = 1639.09822441; +bpm_06, at = 1639.35253307; +sh2b, at = 1639.43895811; +qf8, at = 1639.89393128; +dq1, at = 1640.73435838; +qf6, at = 1641.52710271; +bpm_07, at = 1641.77545051; +dl2d_1, at = 1642.04644781; +dl2d_2, at = 1642.40168477; +dl2d_3, at = 1642.75692161; +dl2d_4, at = 1643.1121584; +dl2d_5, at = 1643.46739514; +qd5, at = 1643.79700236; +sd1d, at = 1644.05925764; +bpm_08, at = 1644.53395304; +of1d, at = 1644.63428555; +qf4b, at = 1644.8438911; +dispbumpcenter, at = 1645.02369491; +sf2eh, at = 1645.07336447; +sf2emarker, at = 1645.12303403; +sf2eh, at = 1645.17270359; +qf4a, at = 1645.40217696; +bpm_09, at = 1645.56310633; +sd1e, at = 1646.18681042; +qd3, at = 1646.42423092; +dl1e_1, at = 1646.72900336; +dl1e_2, at = 1647.0842401; +dl1e_3, at = 1647.43947689; +dl1e_4, at = 1647.79471373; +dl1e_5, at = 1648.14995078; +dlmarker, at = 1648.3275694; +qd2, at = 1648.47955825; +sh3e, at = 1648.86300726; +qf1, at = 1649.16847506; +bpm_10, at = 1649.36566321; +idmarker, at = 1651.99954067; +bpm_01, at = 1654.63341812; +qf1, at = 1654.83060627; +sh1a, at = 1655.13607407; +qd2, at = 1655.51952308; +dlmarker, at = 1655.67151193; +dl1a_1, at = 1655.84913055; +dl1a_2, at = 1656.2043676; +dl1a_3, at = 1656.55960445; +dl1a_4, at = 1656.91484123; +dl1a_5, at = 1657.27007797; +qd3, at = 1657.57485042; +sd1a, at = 1657.81227091; +bpm_02, at = 1658.435975; +qf4a, at = 1658.59690437; +dispbumpcenter, at = 1658.77670818; +sf2ah, at = 1658.82637774; +sf2amarker, at = 1658.8760473; +sf2ah, at = 1658.92571686; +qf4b, at = 1659.15519023; +of1b, at = 1659.36479578; +bpm_03, at = 1659.46512829; +sd1b, at = 1659.93982369; +qd5, at = 1660.20207897; +dl2b_1, at = 1660.53168619; +dl2b_2, at = 1660.88692294; +dl2b_3, at = 1661.24215972; +dl2b_4, at = 1661.59739656; +dl2b_5, at = 1661.95263352; +bpm_04, at = 1662.22363082; +qf6, at = 1662.47197862; +dq1, at = 1663.26472295; +qf8, at = 1664.10515005; +sh2b, at = 1664.56012323; +bpm_05, at = 1664.64654826; +dq2c_1, at = 1664.90085692; +cellcenter, at = 1665.09953567; +dq2c_2, at = 1665.29821443; +bpm_06, at = 1665.55252309; +sh2b, at = 1665.63894812; +qf8, at = 1666.09392129; +dq1, at = 1666.9343484; +qf6, at = 1667.72709272; +bpm_07, at = 1667.97544053; +dl2d_1, at = 1668.24643782; +dl2d_2, at = 1668.60167479; +dl2d_3, at = 1668.95691163; +dl2d_4, at = 1669.31214841; +dl2d_5, at = 1669.66738516; +qd5, at = 1669.99699238; +sd1d, at = 1670.25924766; +bpm_08, at = 1670.73394306; +of1d, at = 1670.83427557; +qf4b, at = 1671.04388111; +dispbumpcenter, at = 1671.22368492; +sf2eh, at = 1671.27335448; +sf2emarker, at = 1671.32302404; +sf2eh, at = 1671.3726936; +qf4a, at = 1671.60216697; +bpm_09, at = 1671.76309635; +sd1e, at = 1672.38680043; +qd3, at = 1672.62422093; +dl1e_1, at = 1672.92899337; +dl1e_2, at = 1673.28423012; +dl1e_3, at = 1673.6394669; +dl1e_4, at = 1673.99470374; +dl1e_5, at = 1674.3499408; +dlmarker, at = 1674.52755941; +qd2, at = 1674.67954827; +sh3e, at = 1675.06299728; +qf1, at = 1675.36846507; +bpm_10, at = 1675.56565323; +idmarker, at = 1678.19953068; +bpm_01, at = 1680.83340813; +qf1, at = 1681.03059629; +sh1a, at = 1681.33606409; +qd2, at = 1681.71951309; +dlmarker, at = 1681.87150195; +dl1a_1, at = 1682.04912056; +dl1a_2, at = 1682.40435762; +dl1a_3, at = 1682.75959446; +dl1a_4, at = 1683.11483124; +dl1a_5, at = 1683.47006799; +qd3, at = 1683.77484043; +sd1a, at = 1684.01226093; +bpm_02, at = 1684.63596501; +qf4a, at = 1684.79689439; +dispbumpcenter, at = 1684.9766982; +sf2ah, at = 1685.02636776; +sf2amarker, at = 1685.07603732; +sf2ah, at = 1685.12570688; +qf4b, at = 1685.35518025; +of1b, at = 1685.56478579; +bpm_03, at = 1685.66511831; +sd1b, at = 1686.1398137; +qd5, at = 1686.40206898; +dl2b_1, at = 1686.7316762; +dl2b_2, at = 1687.08691295; +dl2b_3, at = 1687.44214973; +dl2b_4, at = 1687.79738658; +dl2b_5, at = 1688.15262354; +bpm_04, at = 1688.42362084; +qf6, at = 1688.67196864; +dq1, at = 1689.46471296; +qf8, at = 1690.30514007; +sh2b, at = 1690.76011324; +bpm_05, at = 1690.84653828; +dq2c_1, at = 1691.10084694; +cellcenter, at = 1691.29952569; +dq2c_2, at = 1691.49820444; +bpm_06, at = 1691.7525131; +sh2b, at = 1691.83893814; +qf8, at = 1692.29391131; +dq1, at = 1693.13433841; +qf6, at = 1693.92708274; +bpm_07, at = 1694.17543054; +dl2d_1, at = 1694.44642784; +dl2d_2, at = 1694.8016648; +dl2d_3, at = 1695.15690164; +dl2d_4, at = 1695.51213842; +dl2d_5, at = 1695.86737517; +qd5, at = 1696.19698239; +sd1d, at = 1696.45923767; +bpm_08, at = 1696.93393307; +of1d, at = 1697.03426558; +qf4b, at = 1697.24387113; +dispbumpcenter, at = 1697.42367494; +sf2eh, at = 1697.4733445; +sf2emarker, at = 1697.52301406; +sf2eh, at = 1697.57268362; +qf4a, at = 1697.80215699; +bpm_09, at = 1697.96308636; +sd1e, at = 1698.58679045; +qd3, at = 1698.82421095; +dl1e_1, at = 1699.12898339; +dl1e_2, at = 1699.48422013; +dl1e_3, at = 1699.83945692; +dl1e_4, at = 1700.19469376; +dl1e_5, at = 1700.54993081; +dlmarker, at = 1700.72754943; +qd2, at = 1700.87953828; +sh3e, at = 1701.26298729; +qf1, at = 1701.56845509; +bpm_10, at = 1701.76564324; +idmarker, at = 1704.39952069; +sss_se, at = 1704.39952069; +qfsm1, at = 1705.96581637; +qdsm1, at = 1709.47705728; +qfsm2, at = 1714.48322873; +qd1s, at = 1718.39952069; +qfs, at = 1725.59952069; +qdsh, at = 1732.67452069; +qdsh, at = 1732.92452069; +qfs, at = 1739.99952069; +qd1s, at = 1747.19952069; +injection, at = 1750.86581265; +qfsm2, at = 1751.11581265; +qdsm1, at = 1756.12198411; +qfsm1, at = 1759.63322502; +arc_se_s, at = 1761.19952069; +idmarker, at = 1761.19952069; +bpm_01, at = 1763.83339815; +qf1, at = 1764.0305863; +sh1a, at = 1764.3360541; +qd2, at = 1764.71950311; +dlmarker, at = 1764.87149196; +dl1a_1, at = 1765.04911058; +dl1a_2, at = 1765.40434763; +dl1a_3, at = 1765.75958447; +dl1a_4, at = 1766.11482126; +dl1a_5, at = 1766.470058; +qd3, at = 1766.77483044; +sd1a, at = 1767.01225094; +bpm_02, at = 1767.63595503; +qf4a, at = 1767.7968844; +dispbumpcenter, at = 1767.97668821; +sf2ah, at = 1768.02635777; +sf2amarker, at = 1768.07602733; +sf2ah, at = 1768.12569689; +qf4b, at = 1768.35517026; +of1b, at = 1768.56477581; +bpm_03, at = 1768.66510832; +sd1b, at = 1769.13980372; +qd5, at = 1769.402059; +dl2b_1, at = 1769.73166622; +dl2b_2, at = 1770.08690297; +dl2b_3, at = 1770.44213975; +dl2b_4, at = 1770.79737659; +dl2b_5, at = 1771.15261355; +bpm_04, at = 1771.42361085; +qf6, at = 1771.67195865; +dq1, at = 1772.46470298; +qf8, at = 1773.30513008; +sh2b, at = 1773.76010326; +bpm_05, at = 1773.84652829; +dq2c_1, at = 1774.10083695; +cellcenter, at = 1774.2995157; +dq2c_2, at = 1774.49819445; +bpm_06, at = 1774.75250311; +sh2b, at = 1774.83892815; +qf8, at = 1775.29390132; +dq1, at = 1776.13432843; +qf6, at = 1776.92707275; +bpm_07, at = 1777.17542056; +dl2d_1, at = 1777.44641785; +dl2d_2, at = 1777.80165482; +dl2d_3, at = 1778.15689166; +dl2d_4, at = 1778.51212844; +dl2d_5, at = 1778.86736519; +qd5, at = 1779.19697241; +sd1d, at = 1779.45922769; +bpm_08, at = 1779.93392308; +of1d, at = 1780.0342556; +qf4b, at = 1780.24386114; +dispbumpcenter, at = 1780.42366495; +sf2eh, at = 1780.47333451; +sf2emarker, at = 1780.52300407; +sf2eh, at = 1780.57267363; +qf4a, at = 1780.802147; +bpm_09, at = 1780.96307638; +sd1e, at = 1781.58678046; +qd3, at = 1781.82420096; +dl1e_1, at = 1782.1289734; +dl1e_2, at = 1782.48421015; +dl1e_3, at = 1782.83944693; +dl1e_4, at = 1783.19468377; +dl1e_5, at = 1783.54992083; +dlmarker, at = 1783.72753944; +qd2, at = 1783.8795283; +sh3e, at = 1784.2629773; +qf1, at = 1784.5684451; +bpm_10, at = 1784.76563326; +idmarker, at = 1787.39951071; +bpm_01, at = 1790.03338816; +qf1, at = 1790.23057632; +sh1a, at = 1790.53604411; +qd2, at = 1790.91949312; +dlmarker, at = 1791.07148198; +dl1a_1, at = 1791.24910059; +dl1a_2, at = 1791.60433765; +dl1a_3, at = 1791.95957449; +dl1a_4, at = 1792.31481127; +dl1a_5, at = 1792.67004802; +qd3, at = 1792.97482046; +sd1a, at = 1793.21224096; +bpm_02, at = 1793.83594504; +qf4a, at = 1793.99687442; +dispbumpcenter, at = 1794.17667823; +sf2ah, at = 1794.22634779; +sf2amarker, at = 1794.27601735; +sf2ah, at = 1794.32568691; +qf4b, at = 1794.55516028; +of1b, at = 1794.76476582; +bpm_03, at = 1794.86509834; +sd1b, at = 1795.33979373; +qd5, at = 1795.60204901; +dl2b_1, at = 1795.93165623; +dl2b_2, at = 1796.28689298; +dl2b_3, at = 1796.64212976; +dl2b_4, at = 1796.9973666; +dl2b_5, at = 1797.35260357; +bpm_04, at = 1797.62360086; +qf6, at = 1797.87194867; +dq1, at = 1798.66469299; +qf8, at = 1799.5051201; +sh2b, at = 1799.96009327; +bpm_05, at = 1800.04651831; +dq2c_1, at = 1800.30082697; +cellcenter, at = 1800.49950572; +dq2c_2, at = 1800.69818447; +bpm_06, at = 1800.95249313; +sh2b, at = 1801.03891816; +qf8, at = 1801.49389134; +dq1, at = 1802.33431844; +qf6, at = 1803.12706277; +bpm_07, at = 1803.37541057; +dl2d_1, at = 1803.64640787; +dl2d_2, at = 1804.00164483; +dl2d_3, at = 1804.35688167; +dl2d_4, at = 1804.71211845; +dl2d_5, at = 1805.0673552; +qd5, at = 1805.39696242; +sd1d, at = 1805.6592177; +bpm_08, at = 1806.1339131; +of1d, at = 1806.23424561; +qf4b, at = 1806.44385116; +dispbumpcenter, at = 1806.62365497; +sf2eh, at = 1806.67332453; +sf2emarker, at = 1806.72299409; +sf2eh, at = 1806.77266365; +qf4a, at = 1807.00213702; +bpm_09, at = 1807.16306639; +sd1e, at = 1807.78677048; +qd3, at = 1808.02419097; +dl1e_1, at = 1808.32896342; +dl1e_2, at = 1808.68420016; +dl1e_3, at = 1809.03943694; +dl1e_4, at = 1809.39467379; +dl1e_5, at = 1809.74991084; +dlmarker, at = 1809.92752946; +qd2, at = 1810.07951831; +sh3e, at = 1810.46296732; +qf1, at = 1810.76843512; +bpm_10, at = 1810.96562327; +idmarker, at = 1813.59950072; +bpm_01, at = 1816.23337818; +qf1, at = 1816.43056633; +sh1a, at = 1816.73603413; +qd2, at = 1817.11948314; +dlmarker, at = 1817.27147199; +dl1a_1, at = 1817.44909061; +dl1a_2, at = 1817.80432766; +dl1a_3, at = 1818.1595645; +dl1a_4, at = 1818.51480129; +dl1a_5, at = 1818.87003803; +qd3, at = 1819.17481047; +sd1a, at = 1819.41223097; +bpm_02, at = 1820.03593506; +qf4a, at = 1820.19686443; +dispbumpcenter, at = 1820.37666824; +sf2ah, at = 1820.4263378; +sf2amarker, at = 1820.47600736; +sf2ah, at = 1820.52567692; +qf4b, at = 1820.75515029; +of1b, at = 1820.96475584; +bpm_03, at = 1821.06508835; +sd1b, at = 1821.53978375; +qd5, at = 1821.80203903; +dl2b_1, at = 1822.13164625; +dl2b_2, at = 1822.486883; +dl2b_3, at = 1822.84211978; +dl2b_4, at = 1823.19735662; +dl2b_5, at = 1823.55259358; +bpm_04, at = 1823.82359088; +qf6, at = 1824.07193868; +dq1, at = 1824.86468301; +qf8, at = 1825.70511011; +sh2b, at = 1826.16008328; +bpm_05, at = 1826.24650832; +dq2c_1, at = 1826.50081698; +cellcenter, at = 1826.69949573; +dq2c_2, at = 1826.89817448; +bpm_06, at = 1827.15248314; +sh2b, at = 1827.23890818; +qf8, at = 1827.69388135; +dq1, at = 1828.53430846; +qf6, at = 1829.32705278; +bpm_07, at = 1829.57540058; +dl2d_1, at = 1829.84639788; +dl2d_2, at = 1830.20163484; +dl2d_3, at = 1830.55687169; +dl2d_4, at = 1830.91210847; +dl2d_5, at = 1831.26734521; +qd5, at = 1831.59695244; +sd1d, at = 1831.85920772; +bpm_08, at = 1832.33390311; +of1d, at = 1832.43423563; +qf4b, at = 1832.64384117; +dispbumpcenter, at = 1832.82364498; +sf2eh, at = 1832.87331454; +sf2emarker, at = 1832.9229841; +sf2eh, at = 1832.97265366; +qf4a, at = 1833.20212703; +bpm_09, at = 1833.36305641; +sd1e, at = 1833.98676049; +qd3, at = 1834.22418099; +dl1e_1, at = 1834.52895343; +dl1e_2, at = 1834.88419018; +dl1e_3, at = 1835.23942696; +dl1e_4, at = 1835.5946638; +dl1e_5, at = 1835.94990086; +dlmarker, at = 1836.12751947; +qd2, at = 1836.27950833; +sh3e, at = 1836.66295733; +qf1, at = 1836.96842513; +bpm_10, at = 1837.16561329; +idmarker, at = 1839.79949074; +bpm_01, at = 1842.43336819; +qf1, at = 1842.63055635; +sh1a, at = 1842.93602414; +qd2, at = 1843.31947315; +dlmarker, at = 1843.47146201; +dl1a_1, at = 1843.64908062; +dl1a_2, at = 1844.00431768; +dl1a_3, at = 1844.35955452; +dl1a_4, at = 1844.7147913; +dl1a_5, at = 1845.07002805; +qd3, at = 1845.37480049; +sd1a, at = 1845.61222099; +bpm_02, at = 1846.23592507; +qf4a, at = 1846.39685445; +dispbumpcenter, at = 1846.57665825; +sf2ah, at = 1846.62632782; +sf2amarker, at = 1846.67599738; +sf2ah, at = 1846.72566694; +qf4b, at = 1846.95514031; +of1b, at = 1847.16474585; +bpm_03, at = 1847.26507836; +sd1b, at = 1847.73977376; +qd5, at = 1848.00202904; +dl2b_1, at = 1848.33163626; +dl2b_2, at = 1848.68687301; +dl2b_3, at = 1849.04210979; +dl2b_4, at = 1849.39734663; +dl2b_5, at = 1849.7525836; +bpm_04, at = 1850.02358089; +qf6, at = 1850.2719287; +dq1, at = 1851.06467302; +qf8, at = 1851.90510013; +sh2b, at = 1852.3600733; +bpm_05, at = 1852.44649833; +dq2c_1, at = 1852.70080699; +cellcenter, at = 1852.89948575; +dq2c_2, at = 1853.0981645; +bpm_06, at = 1853.35247316; +sh2b, at = 1853.43889819; +qf8, at = 1853.89387137; +dq1, at = 1854.73429847; +qf6, at = 1855.5270428; +bpm_07, at = 1855.7753906; +dl2d_1, at = 1856.0463879; +dl2d_2, at = 1856.40162486; +dl2d_3, at = 1856.7568617; +dl2d_4, at = 1857.11209848; +dl2d_5, at = 1857.46733523; +qd5, at = 1857.79694245; +sd1d, at = 1858.05919773; +bpm_08, at = 1858.53389313; +of1d, at = 1858.63422564; +qf4b, at = 1858.84383119; +dispbumpcenter, at = 1859.02363499; +sf2eh, at = 1859.07330455; +sf2emarker, at = 1859.12297412; +sf2eh, at = 1859.17264368; +qf4a, at = 1859.40211705; +bpm_09, at = 1859.56304642; +sd1e, at = 1860.1867505; +qd3, at = 1860.424171; +dl1e_1, at = 1860.72894344; +dl1e_2, at = 1861.08418019; +dl1e_3, at = 1861.43941697; +dl1e_4, at = 1861.79465381; +dl1e_5, at = 1862.14989087; +dlmarker, at = 1862.32750949; +qd2, at = 1862.47949834; +sh3e, at = 1862.86294735; +qf1, at = 1863.16841514; +bpm_10, at = 1863.3656033; +idmarker, at = 1865.99948075; +bpm_01, at = 1868.63335821; +qf1, at = 1868.83054636; +sh1a, at = 1869.13601416; +qd2, at = 1869.51946316; +dlmarker, at = 1869.67145202; +dl1a_1, at = 1869.84907064; +dl1a_2, at = 1870.20430769; +dl1a_3, at = 1870.55954453; +dl1a_4, at = 1870.91478131; +dl1a_5, at = 1871.27001806; +qd3, at = 1871.5747905; +sd1a, at = 1871.812211; +bpm_02, at = 1872.43591508; +qf4a, at = 1872.59684446; +dispbumpcenter, at = 1872.77664827; +sf2ah, at = 1872.82631783; +sf2amarker, at = 1872.87598739; +sf2ah, at = 1872.92565695; +qf4b, at = 1873.15513032; +of1b, at = 1873.36473587; +bpm_03, at = 1873.46506838; +sd1b, at = 1873.93976378; +qd5, at = 1874.20201906; +dl2b_1, at = 1874.53162628; +dl2b_2, at = 1874.88686302; +dl2b_3, at = 1875.24209981; +dl2b_4, at = 1875.59733665; +dl2b_5, at = 1875.95257361; +bpm_04, at = 1876.22357091; +qf6, at = 1876.47191871; +dq1, at = 1877.26466304; +qf8, at = 1878.10509014; +sh2b, at = 1878.56006331; +bpm_05, at = 1878.64648835; +dq2c_1, at = 1878.90079701; +cellcenter, at = 1879.09947576; +dq2c_2, at = 1879.29815451; +bpm_06, at = 1879.55246317; +sh2b, at = 1879.63888821; +qf8, at = 1880.09386138; +dq1, at = 1880.93428849; +qf6, at = 1881.72703281; +bpm_07, at = 1881.97538061; +dl2d_1, at = 1882.24637791; +dl2d_2, at = 1882.60161487; +dl2d_3, at = 1882.95685171; +dl2d_4, at = 1883.3120885; +dl2d_5, at = 1883.66732524; +qd5, at = 1883.99693246; +sd1d, at = 1884.25918774; +bpm_08, at = 1884.73388314; +of1d, at = 1884.83421565; +qf4b, at = 1885.0438212; +dispbumpcenter, at = 1885.22362501; +sf2eh, at = 1885.27329457; +sf2emarker, at = 1885.32296413; +sf2eh, at = 1885.37263369; +qf4a, at = 1885.60210706; +bpm_09, at = 1885.76303644; +sd1e, at = 1886.38674052; +qd3, at = 1886.62416102; +dl1e_1, at = 1886.92893346; +dl1e_2, at = 1887.28417021; +dl1e_3, at = 1887.63940699; +dl1e_4, at = 1887.99464383; +dl1e_5, at = 1888.34988088; +dlmarker, at = 1888.5274995; +qd2, at = 1888.67948835; +sh3e, at = 1889.06293736; +qf1, at = 1889.36840516; +bpm_10, at = 1889.56559331; +idmarker, at = 1892.19947077; +bpm_01, at = 1894.83334822; +qf1, at = 1895.03053638; +sh1a, at = 1895.33600417; +qd2, at = 1895.71945318; +dlmarker, at = 1895.87144203; +dl1a_1, at = 1896.04906065; +dl1a_2, at = 1896.40429771; +dl1a_3, at = 1896.75953455; +dl1a_4, at = 1897.11477133; +dl1a_5, at = 1897.47000808; +qd3, at = 1897.77478052; +sd1a, at = 1898.01220102; +bpm_02, at = 1898.6359051; +qf4a, at = 1898.79683447; +dispbumpcenter, at = 1898.97663828; +sf2ah, at = 1899.02630784; +sf2amarker, at = 1899.0759774; +sf2ah, at = 1899.12564697; +qf4b, at = 1899.35512033; +of1b, at = 1899.56472588; +bpm_03, at = 1899.66505839; +sd1b, at = 1900.13975379; +qd5, at = 1900.40200907; +dl2b_1, at = 1900.73161629; +dl2b_2, at = 1901.08685304; +dl2b_3, at = 1901.44208982; +dl2b_4, at = 1901.79732666; +dl2b_5, at = 1902.15256363; +bpm_04, at = 1902.42356092; +qf6, at = 1902.67190872; +dq1, at = 1903.46465305; +qf8, at = 1904.30508015; +sh2b, at = 1904.76005333; +bpm_05, at = 1904.84647836; +dq2c_1, at = 1905.10078702; +cellcenter, at = 1905.29946578; +dq2c_2, at = 1905.49814453; +bpm_06, at = 1905.75245319; +sh2b, at = 1905.83887822; +qf8, at = 1906.2938514; +dq1, at = 1907.1342785; +qf6, at = 1907.92702283; +bpm_07, at = 1908.17537063; +dl2d_1, at = 1908.44636792; +dl2d_2, at = 1908.80160489; +dl2d_3, at = 1909.15684173; +dl2d_4, at = 1909.51207851; +dl2d_5, at = 1909.86731526; +qd5, at = 1910.19692248; +sd1d, at = 1910.45917776; +bpm_08, at = 1910.93387316; +of1d, at = 1911.03420567; +qf4b, at = 1911.24381121; +dispbumpcenter, at = 1911.42361502; +sf2eh, at = 1911.47328458; +sf2emarker, at = 1911.52295414; +sf2eh, at = 1911.5726237; +qf4a, at = 1911.80209707; +bpm_09, at = 1911.96302645; +sd1e, at = 1912.58673053; +qd3, at = 1912.82415103; +dl1e_1, at = 1913.12892347; +dl1e_2, at = 1913.48416022; +dl1e_3, at = 1913.839397; +dl1e_4, at = 1914.19463384; +dl1e_5, at = 1914.5498709; +dlmarker, at = 1914.72748951; +qd2, at = 1914.87947837; +sh3e, at = 1915.26292738; +qf1, at = 1915.56839517; +bpm_10, at = 1915.76558333; +idmarker, at = 1918.39946078; +bpm_01, at = 1921.03333823; +qf1, at = 1921.23052639; +sh1a, at = 1921.53599419; +qd2, at = 1921.91944319; +dlmarker, at = 1922.07143205; +dl1a_1, at = 1922.24905066; +dl1a_2, at = 1922.60428772; +dl1a_3, at = 1922.95952456; +dl1a_4, at = 1923.31476134; +dl1a_5, at = 1923.66999809; +qd3, at = 1923.97477053; +sd1a, at = 1924.21219103; +bpm_02, at = 1924.83589511; +qf4a, at = 1924.99682449; +dispbumpcenter, at = 1925.1766283; +sf2ah, at = 1925.22629786; +sf2amarker, at = 1925.27596742; +sf2ah, at = 1925.32563698; +qf4b, at = 1925.55511035; +of1b, at = 1925.7647159; +bpm_03, at = 1925.86504841; +sd1b, at = 1926.33974381; +qd5, at = 1926.60199909; +dl2b_1, at = 1926.93160631; +dl2b_2, at = 1927.28684305; +dl2b_3, at = 1927.64207984; +dl2b_4, at = 1927.99731668; +dl2b_5, at = 1928.35255364; +bpm_04, at = 1928.62355094; +qf6, at = 1928.87189874; +dq1, at = 1929.66464306; +qf8, at = 1930.50507017; +sh2b, at = 1930.96004334; +bpm_05, at = 1931.04646838; +dq2c_1, at = 1931.30077704; +cellcenter, at = 1931.49945579; +dq2c_2, at = 1931.69813454; +bpm_06, at = 1931.9524432; +sh2b, at = 1932.03886824; +qf8, at = 1932.49384141; +dq1, at = 1933.33426851; +qf6, at = 1934.12701284; +bpm_07, at = 1934.37536064; +dl2d_1, at = 1934.64635794; +dl2d_2, at = 1935.0015949; +dl2d_3, at = 1935.35683174; +dl2d_4, at = 1935.71206853; +dl2d_5, at = 1936.06730527; +qd5, at = 1936.39691249; +sd1d, at = 1936.65916777; +bpm_08, at = 1937.13386317; +of1d, at = 1937.23419568; +qf4b, at = 1937.44380123; +dispbumpcenter, at = 1937.62360504; +sf2eh, at = 1937.6732746; +sf2emarker, at = 1937.72294416; +sf2eh, at = 1937.77261372; +qf4a, at = 1938.00208709; +bpm_09, at = 1938.16301646; +sd1e, at = 1938.78672055; +qd3, at = 1939.02414105; +dl1e_1, at = 1939.32891349; +dl1e_2, at = 1939.68415023; +dl1e_3, at = 1940.03938702; +dl1e_4, at = 1940.39462386; +dl1e_5, at = 1940.74986091; +dlmarker, at = 1940.92747953; +qd2, at = 1941.07946838; +sh3e, at = 1941.46291739; +qf1, at = 1941.76838519; +bpm_10, at = 1941.96557334; +idmarker, at = 1944.5994508; +bpm_01, at = 1947.23332825; +qf1, at = 1947.4305164; +sh1a, at = 1947.7359842; +qd2, at = 1948.11943321; +dlmarker, at = 1948.27142206; +dl1a_1, at = 1948.44904068; +dl1a_2, at = 1948.80427773; +dl1a_3, at = 1949.15951458; +dl1a_4, at = 1949.51475136; +dl1a_5, at = 1949.8699881; +qd3, at = 1950.17476055; +sd1a, at = 1950.41218104; +bpm_02, at = 1951.03588513; +qf4a, at = 1951.1968145; +dispbumpcenter, at = 1951.37661831; +sf2ah, at = 1951.42628787; +sf2amarker, at = 1951.47595743; +sf2ah, at = 1951.52562699; +qf4b, at = 1951.75510036; +of1b, at = 1951.96470591; +bpm_03, at = 1952.06503842; +sd1b, at = 1952.53973382; +qd5, at = 1952.8019891; +dl2b_1, at = 1953.13159632; +dl2b_2, at = 1953.48683307; +dl2b_3, at = 1953.84206985; +dl2b_4, at = 1954.19730669; +dl2b_5, at = 1954.55254365; +bpm_04, at = 1954.82354095; +qf6, at = 1955.07188875; +dq1, at = 1955.86463308; +qf8, at = 1956.70506018; +sh2b, at = 1957.16003336; +bpm_05, at = 1957.24645839; +dq2c_1, at = 1957.50076705; +cellcenter, at = 1957.6994458; +dq2c_2, at = 1957.89812456; +bpm_06, at = 1958.15243322; +sh2b, at = 1958.23885825; +qf8, at = 1958.69383143; +dq1, at = 1959.53425853; +qf6, at = 1960.32700285; +bpm_07, at = 1960.57535066; +dl2d_1, at = 1960.84634795; +dl2d_2, at = 1961.20158492; +dl2d_3, at = 1961.55682176; +dl2d_4, at = 1961.91205854; +dl2d_5, at = 1962.26729529; +qd5, at = 1962.59690251; +sd1d, at = 1962.85915779; +bpm_08, at = 1963.33385319; +of1d, at = 1963.4341857; +qf4b, at = 1963.64379124; +dispbumpcenter, at = 1963.82359505; +sf2eh, at = 1963.87326461; +sf2emarker, at = 1963.92293417; +sf2eh, at = 1963.97260373; +qf4a, at = 1964.2020771; +bpm_09, at = 1964.36300648; +sd1e, at = 1964.98671056; +qd3, at = 1965.22413106; +dl1e_1, at = 1965.5289035; +dl1e_2, at = 1965.88414025; +dl1e_3, at = 1966.23937703; +dl1e_4, at = 1966.59461387; +dl1e_5, at = 1966.94985093; +dlmarker, at = 1967.12746954; +qd2, at = 1967.2794584; +sh3e, at = 1967.66290741; +qf1, at = 1967.9683752; +bpm_10, at = 1968.16556336; +idmarker, at = 1970.79944081; +lss_s, at = 1970.79944081; +qflm1, at = 1971.13839428; +qdlm1, at = 1974.77115336; +qflm2, at = 1977.88341915; +qdlh, at = 1984.67444081; +qdlh, at = 1984.92444081; +qflh, at = 1991.87444081; +qflh, at = 1992.12444081; +qdlh, at = 1999.07444081; +qdlh, at = 1999.32444081; +qflh, at = 2006.27444081; +qflh, at = 2006.52444081; +qdlh, at = 2013.47444081; +qdlh, at = 2013.72444081; +qflh, at = 2020.67444081; +m2, at = 2020.79944081; +qflh, at = 2020.92444081; +qdlh, at = 2027.87444081; +qdlh, at = 2028.12444081; +qflh, at = 2035.07444081; +qflh, at = 2035.32444081; +qdlh, at = 2042.27444081; +qdlh, at = 2042.52444081; +qflh, at = 2049.47444081; +qflh, at = 2049.72444081; +qdlh, at = 2056.67444081; +qdlh, at = 2056.92444081; +qflm2, at = 2063.71546247; +qdlm1, at = 2066.82772826; +qflm1, at = 2070.46048734; +arc_s_sw, at = 2070.79944081; +idmarker, at = 2070.79944081; +bpm_01, at = 2073.43331826; +qf1, at = 2073.63050642; +sh1a, at = 2073.93597422; +qd2, at = 2074.31942322; +dlmarker, at = 2074.47141208; +dl1a_1, at = 2074.64903069; +dl1a_2, at = 2075.00426775; +dl1a_3, at = 2075.35950459; +dl1a_4, at = 2075.71474137; +dl1a_5, at = 2076.06997812; +qd3, at = 2076.37475056; +sd1a, at = 2076.61217106; +bpm_02, at = 2077.23587514; +qf4a, at = 2077.39680452; +dispbumpcenter, at = 2077.57660833; +sf2ah, at = 2077.62627789; +sf2amarker, at = 2077.67594745; +sf2ah, at = 2077.72561701; +qf4b, at = 2077.95509038; +of1b, at = 2078.16469592; +bpm_03, at = 2078.26502844; +sd1b, at = 2078.73972383; +qd5, at = 2079.00197911; +dl2b_1, at = 2079.33158634; +dl2b_2, at = 2079.68682308; +dl2b_3, at = 2080.04205986; +dl2b_4, at = 2080.39729671; +dl2b_5, at = 2080.75253367; +bpm_04, at = 2081.02353097; +qf6, at = 2081.27187877; +dq1, at = 2082.06462309; +qf8, at = 2082.9050502; +sh2b, at = 2083.36002337; +bpm_05, at = 2083.44644841; +dq2c_1, at = 2083.70075707; +cellcenter, at = 2083.89943582; +dq2c_2, at = 2084.09811457; +bpm_06, at = 2084.35242323; +sh2b, at = 2084.43884827; +qf8, at = 2084.89382144; +dq1, at = 2085.73424854; +qf6, at = 2086.52699287; +bpm_07, at = 2086.77534067; +dl2d_1, at = 2087.04633797; +dl2d_2, at = 2087.40157493; +dl2d_3, at = 2087.75681177; +dl2d_4, at = 2088.11204855; +dl2d_5, at = 2088.4672853; +qd5, at = 2088.79689252; +sd1d, at = 2089.0591478; +bpm_08, at = 2089.5338432; +of1d, at = 2089.63417571; +qf4b, at = 2089.84378126; +dispbumpcenter, at = 2090.02358507; +sf2eh, at = 2090.07325463; +sf2emarker, at = 2090.12292419; +sf2eh, at = 2090.17259375; +qf4a, at = 2090.40206712; +bpm_09, at = 2090.56299649; +sd1e, at = 2091.18670058; +qd3, at = 2091.42412108; +dl1e_1, at = 2091.72889352; +dl1e_2, at = 2092.08413026; +dl1e_3, at = 2092.43936705; +dl1e_4, at = 2092.79460389; +dl1e_5, at = 2093.14984094; +dlmarker, at = 2093.32745956; +qd2, at = 2093.47944841; +sh3e, at = 2093.86289742; +qf1, at = 2094.16836522; +bpm_10, at = 2094.36555337; +idmarker, at = 2096.99943083; +bpm_01, at = 2099.63330828; +qf1, at = 2099.83049643; +sh1a, at = 2100.13596423; +qd2, at = 2100.51941324; +dlmarker, at = 2100.67140209; +dl1a_1, at = 2100.84902071; +dl1a_2, at = 2101.20425776; +dl1a_3, at = 2101.5594946; +dl1a_4, at = 2101.91473139; +dl1a_5, at = 2102.26996813; +qd3, at = 2102.57474057; +sd1a, at = 2102.81216107; +bpm_02, at = 2103.43586516; +qf4a, at = 2103.59679453; +dispbumpcenter, at = 2103.77659834; +sf2ah, at = 2103.8262679; +sf2amarker, at = 2103.87593746; +sf2ah, at = 2103.92560702; +qf4b, at = 2104.15508039; +of1b, at = 2104.36468594; +bpm_03, at = 2104.46501845; +sd1b, at = 2104.93971385; +qd5, at = 2105.20196913; +dl2b_1, at = 2105.53157635; +dl2b_2, at = 2105.8868131; +dl2b_3, at = 2106.24204988; +dl2b_4, at = 2106.59728672; +dl2b_5, at = 2106.95252368; +bpm_04, at = 2107.22352098; +qf6, at = 2107.47186878; +dq1, at = 2108.26461311; +qf8, at = 2109.10504021; +sh2b, at = 2109.56001339; +bpm_05, at = 2109.64643842; +dq2c_1, at = 2109.90074708; +cellcenter, at = 2110.09942583; +dq2c_2, at = 2110.29810458; +bpm_06, at = 2110.55241324; +sh2b, at = 2110.63883828; +qf8, at = 2111.09381145; +dq1, at = 2111.93423856; +qf6, at = 2112.72698288; +bpm_07, at = 2112.97533069; +dl2d_1, at = 2113.24632798; +dl2d_2, at = 2113.60156495; +dl2d_3, at = 2113.95680179; +dl2d_4, at = 2114.31203857; +dl2d_5, at = 2114.66727532; +qd5, at = 2114.99688254; +sd1d, at = 2115.25913782; +bpm_08, at = 2115.73383321; +of1d, at = 2115.83416573; +qf4b, at = 2116.04377127; +dispbumpcenter, at = 2116.22357508; +sf2eh, at = 2116.27324464; +sf2emarker, at = 2116.3229142; +sf2eh, at = 2116.37258376; +qf4a, at = 2116.60205713; +bpm_09, at = 2116.76298651; +sd1e, at = 2117.38669059; +qd3, at = 2117.62411109; +dl1e_1, at = 2117.92888353; +dl1e_2, at = 2118.28412028; +dl1e_3, at = 2118.63935706; +dl1e_4, at = 2118.9945939; +dl1e_5, at = 2119.34983096; +dlmarker, at = 2119.52744957; +qd2, at = 2119.67943843; +sh3e, at = 2120.06288743; +qf1, at = 2120.36835523; +bpm_10, at = 2120.56554339; +idmarker, at = 2123.19942084; +bpm_01, at = 2125.83329829; +qf1, at = 2126.03048645; +sh1a, at = 2126.33595424; +qd2, at = 2126.71940325; +dlmarker, at = 2126.87139211; +dl1a_1, at = 2127.04901072; +dl1a_2, at = 2127.40424778; +dl1a_3, at = 2127.75948462; +dl1a_4, at = 2128.1147214; +dl1a_5, at = 2128.46995815; +qd3, at = 2128.77473059; +sd1a, at = 2129.01215109; +bpm_02, at = 2129.63585517; +qf4a, at = 2129.79678455; +dispbumpcenter, at = 2129.97658836; +sf2ah, at = 2130.02625792; +sf2amarker, at = 2130.07592748; +sf2ah, at = 2130.12559704; +qf4b, at = 2130.35507041; +of1b, at = 2130.56467595; +bpm_03, at = 2130.66500847; +sd1b, at = 2131.13970386; +qd5, at = 2131.40195914; +dl2b_1, at = 2131.73156636; +dl2b_2, at = 2132.08680311; +dl2b_3, at = 2132.44203989; +dl2b_4, at = 2132.79727673; +dl2b_5, at = 2133.1525137; +bpm_04, at = 2133.42351099; +qf6, at = 2133.6718588; +dq1, at = 2134.46460312; +qf8, at = 2135.30503023; +sh2b, at = 2135.7600034; +bpm_05, at = 2135.84642844; +dq2c_1, at = 2136.1007371; +cellcenter, at = 2136.29941585; +dq2c_2, at = 2136.4980946; +bpm_06, at = 2136.75240326; +sh2b, at = 2136.83882829; +qf8, at = 2137.29380147; +dq1, at = 2138.13422857; +qf6, at = 2138.9269729; +bpm_07, at = 2139.1753207; +dl2d_1, at = 2139.446318; +dl2d_2, at = 2139.80155496; +dl2d_3, at = 2140.1567918; +dl2d_4, at = 2140.51202858; +dl2d_5, at = 2140.86726533; +qd5, at = 2141.19687255; +sd1d, at = 2141.45912783; +bpm_08, at = 2141.93382323; +of1d, at = 2142.03415574; +qf4b, at = 2142.24376129; +dispbumpcenter, at = 2142.4235651; +sf2eh, at = 2142.47323466; +sf2emarker, at = 2142.52290422; +sf2eh, at = 2142.57257378; +qf4a, at = 2142.80204715; +bpm_09, at = 2142.96297652; +sd1e, at = 2143.58668061; +qd3, at = 2143.8241011; +dl1e_1, at = 2144.12887355; +dl1e_2, at = 2144.48411029; +dl1e_3, at = 2144.83934707; +dl1e_4, at = 2145.19458392; +dl1e_5, at = 2145.54982097; +dlmarker, at = 2145.72743959; +qd2, at = 2145.87942844; +sh3e, at = 2146.26287745; +qf1, at = 2146.56834525; +bpm_10, at = 2146.7655334; +idmarker, at = 2149.39941085; +bpm_01, at = 2152.03328831; +qf1, at = 2152.23047646; +sh1a, at = 2152.53594426; +qd2, at = 2152.91939327; +dlmarker, at = 2153.07138212; +dl1a_1, at = 2153.24900074; +dl1a_2, at = 2153.60423779; +dl1a_3, at = 2153.95947463; +dl1a_4, at = 2154.31471142; +dl1a_5, at = 2154.66994816; +qd3, at = 2154.9747206; +sd1a, at = 2155.2121411; +bpm_02, at = 2155.83584519; +qf4a, at = 2155.99677456; +dispbumpcenter, at = 2156.17657837; +sf2ah, at = 2156.22624793; +sf2amarker, at = 2156.27591749; +sf2ah, at = 2156.32558705; +qf4b, at = 2156.55506042; +of1b, at = 2156.76466597; +bpm_03, at = 2156.86499848; +sd1b, at = 2157.33969388; +qd5, at = 2157.60194916; +dl2b_1, at = 2157.93155638; +dl2b_2, at = 2158.28679313; +dl2b_3, at = 2158.64202991; +dl2b_4, at = 2158.99726675; +dl2b_5, at = 2159.35250371; +bpm_04, at = 2159.62350101; +qf6, at = 2159.87184881; +dq1, at = 2160.66459314; +qf8, at = 2161.50502024; +sh2b, at = 2161.95999341; +bpm_05, at = 2162.04641845; +dq2c_1, at = 2162.30072711; +cellcenter, at = 2162.49940586; +dq2c_2, at = 2162.69808461; +bpm_06, at = 2162.95239327; +sh2b, at = 2163.03881831; +qf8, at = 2163.49379148; +dq1, at = 2164.33421859; +qf6, at = 2165.12696291; +bpm_07, at = 2165.37531071; +dl2d_1, at = 2165.64630801; +dl2d_2, at = 2166.00154497; +dl2d_3, at = 2166.35678182; +dl2d_4, at = 2166.7120186; +dl2d_5, at = 2167.06725535; +qd5, at = 2167.39686257; +sd1d, at = 2167.65911785; +bpm_08, at = 2168.13381324; +of1d, at = 2168.23414576; +qf4b, at = 2168.4437513; +dispbumpcenter, at = 2168.62355511; +sf2eh, at = 2168.67322467; +sf2emarker, at = 2168.72289423; +sf2eh, at = 2168.77256379; +qf4a, at = 2169.00203716; +bpm_09, at = 2169.16296654; +sd1e, at = 2169.78667062; +qd3, at = 2170.02409112; +dl1e_1, at = 2170.32886356; +dl1e_2, at = 2170.68410031; +dl1e_3, at = 2171.03933709; +dl1e_4, at = 2171.39457393; +dl1e_5, at = 2171.74981099; +dlmarker, at = 2171.9274296; +qd2, at = 2172.07941846; +sh3e, at = 2172.46286746; +qf1, at = 2172.76833526; +bpm_10, at = 2172.96552342; +idmarker, at = 2175.59940087; +bpm_01, at = 2178.23327832; +qf1, at = 2178.43046648; +sh1a, at = 2178.73593427; +qd2, at = 2179.11938328; +dlmarker, at = 2179.27137214; +dl1a_1, at = 2179.44899075; +dl1a_2, at = 2179.80422781; +dl1a_3, at = 2180.15946465; +dl1a_4, at = 2180.51470143; +dl1a_5, at = 2180.86993818; +qd3, at = 2181.17471062; +sd1a, at = 2181.41213112; +bpm_02, at = 2182.0358352; +qf4a, at = 2182.19676458; +dispbumpcenter, at = 2182.37656839; +sf2ah, at = 2182.42623795; +sf2amarker, at = 2182.47590751; +sf2ah, at = 2182.52557707; +qf4b, at = 2182.75505044; +of1b, at = 2182.96465598; +bpm_03, at = 2183.06498849; +sd1b, at = 2183.53968389; +qd5, at = 2183.80193917; +dl2b_1, at = 2184.13154639; +dl2b_2, at = 2184.48678314; +dl2b_3, at = 2184.84201992; +dl2b_4, at = 2185.19725676; +dl2b_5, at = 2185.55249373; +bpm_04, at = 2185.82349102; +qf6, at = 2186.07183883; +dq1, at = 2186.86458315; +qf8, at = 2187.70501026; +sh2b, at = 2188.15998343; +bpm_05, at = 2188.24640846; +dq2c_1, at = 2188.50071712; +cellcenter, at = 2188.69939588; +dq2c_2, at = 2188.89807463; +bpm_06, at = 2189.15238329; +sh2b, at = 2189.23880832; +qf8, at = 2189.6937815; +dq1, at = 2190.5342086; +qf6, at = 2191.32695293; +bpm_07, at = 2191.57530073; +dl2d_1, at = 2191.84629803; +dl2d_2, at = 2192.20153499; +dl2d_3, at = 2192.55677183; +dl2d_4, at = 2192.91200861; +dl2d_5, at = 2193.26724536; +qd5, at = 2193.59685258; +sd1d, at = 2193.85910786; +bpm_08, at = 2194.33380326; +of1d, at = 2194.43413577; +qf4b, at = 2194.64374132; +dispbumpcenter, at = 2194.82354512; +sf2eh, at = 2194.87321469; +sf2emarker, at = 2194.92288425; +sf2eh, at = 2194.97255381; +qf4a, at = 2195.20202718; +bpm_09, at = 2195.36295655; +sd1e, at = 2195.98666063; +qd3, at = 2196.22408113; +dl1e_1, at = 2196.52885357; +dl1e_2, at = 2196.88409032; +dl1e_3, at = 2197.2393271; +dl1e_4, at = 2197.59456394; +dl1e_5, at = 2197.949801; +dlmarker, at = 2198.12741962; +qd2, at = 2198.27940847; +sh3e, at = 2198.66285748; +qf1, at = 2198.96832527; +bpm_10, at = 2199.16551343; +idmarker, at = 2201.79939088; +bpm_01, at = 2204.43326834; +qf1, at = 2204.63045649; +sh1a, at = 2204.93592429; +qd2, at = 2205.3193733; +dlmarker, at = 2205.47136215; +dl1a_1, at = 2205.64898077; +dl1a_2, at = 2206.00421782; +dl1a_3, at = 2206.35945466; +dl1a_4, at = 2206.71469144; +dl1a_5, at = 2207.06992819; +qd3, at = 2207.37470063; +sd1a, at = 2207.61212113; +bpm_02, at = 2208.23582521; +qf4a, at = 2208.39675459; +dispbumpcenter, at = 2208.5765584; +sf2ah, at = 2208.62622796; +sf2amarker, at = 2208.67589752; +sf2ah, at = 2208.72556708; +qf4b, at = 2208.95504045; +of1b, at = 2209.164646; +bpm_03, at = 2209.26497851; +sd1b, at = 2209.73967391; +qd5, at = 2210.00192919; +dl2b_1, at = 2210.33153641; +dl2b_2, at = 2210.68677315; +dl2b_3, at = 2211.04200994; +dl2b_4, at = 2211.39724678; +dl2b_5, at = 2211.75248374; +bpm_04, at = 2212.02348104; +qf6, at = 2212.27182884; +dq1, at = 2213.06457317; +qf8, at = 2213.90500027; +sh2b, at = 2214.35997344; +bpm_05, at = 2214.44639848; +dq2c_1, at = 2214.70070714; +cellcenter, at = 2214.89938589; +dq2c_2, at = 2215.09806464; +bpm_06, at = 2215.3523733; +sh2b, at = 2215.43879834; +qf8, at = 2215.89377151; +dq1, at = 2216.73419862; +qf6, at = 2217.52694294; +bpm_07, at = 2217.77529074; +dl2d_1, at = 2218.04628804; +dl2d_2, at = 2218.401525; +dl2d_3, at = 2218.75676185; +dl2d_4, at = 2219.11199863; +dl2d_5, at = 2219.46723537; +qd5, at = 2219.7968426; +sd1d, at = 2220.05909787; +bpm_08, at = 2220.53379327; +of1d, at = 2220.63412578; +qf4b, at = 2220.84373133; +dispbumpcenter, at = 2221.02353514; +sf2eh, at = 2221.0732047; +sf2emarker, at = 2221.12287426; +sf2eh, at = 2221.17254382; +qf4a, at = 2221.40201719; +bpm_09, at = 2221.56294657; +sd1e, at = 2222.18665065; +qd3, at = 2222.42407115; +dl1e_1, at = 2222.72884359; +dl1e_2, at = 2223.08408034; +dl1e_3, at = 2223.43931712; +dl1e_4, at = 2223.79455396; +dl1e_5, at = 2224.14979101; +dlmarker, at = 2224.32740963; +qd2, at = 2224.47939849; +sh3e, at = 2224.86284749; +qf1, at = 2225.16831529; +bpm_10, at = 2225.36550344; +idmarker, at = 2227.9993809; +bpm_01, at = 2230.63325835; +qf1, at = 2230.83044651; +sh1a, at = 2231.1359143; +qd2, at = 2231.51936331; +dlmarker, at = 2231.67135216; +dl1a_1, at = 2231.84897078; +dl1a_2, at = 2232.20420784; +dl1a_3, at = 2232.55944468; +dl1a_4, at = 2232.91468146; +dl1a_5, at = 2233.26991821; +qd3, at = 2233.57469065; +sd1a, at = 2233.81211115; +bpm_02, at = 2234.43581523; +qf4a, at = 2234.59674461; +dispbumpcenter, at = 2234.77654841; +sf2ah, at = 2234.82621797; +sf2amarker, at = 2234.87588753; +sf2ah, at = 2234.9255571; +qf4b, at = 2235.15503046; +of1b, at = 2235.36463601; +bpm_03, at = 2235.46496852; +sd1b, at = 2235.93966392; +qd5, at = 2236.2019192; +dl2b_1, at = 2236.53152642; +dl2b_2, at = 2236.88676317; +dl2b_3, at = 2237.24199995; +dl2b_4, at = 2237.59723679; +dl2b_5, at = 2237.95247376; +bpm_04, at = 2238.22347105; +qf6, at = 2238.47181885; +dq1, at = 2239.26456318; +qf8, at = 2240.10499028; +sh2b, at = 2240.55996346; +bpm_05, at = 2240.64638849; +dq2c_1, at = 2240.90069715; +cellcenter, at = 2241.09937591; +dq2c_2, at = 2241.29805466; +bpm_06, at = 2241.55236332; +sh2b, at = 2241.63878835; +qf8, at = 2242.09376153; +dq1, at = 2242.93418863; +qf6, at = 2243.72693296; +bpm_07, at = 2243.97528076; +dl2d_1, at = 2244.24627805; +dl2d_2, at = 2244.60151502; +dl2d_3, at = 2244.95675186; +dl2d_4, at = 2245.31198864; +dl2d_5, at = 2245.66722539; +qd5, at = 2245.99683261; +sd1d, at = 2246.25908789; +bpm_08, at = 2246.73378329; +of1d, at = 2246.8341158; +qf4b, at = 2247.04372134; +dispbumpcenter, at = 2247.22352515; +sf2eh, at = 2247.27319471; +sf2emarker, at = 2247.32286427; +sf2eh, at = 2247.37253384; +qf4a, at = 2247.6020072; +bpm_09, at = 2247.76293658; +sd1e, at = 2248.38664066; +qd3, at = 2248.62406116; +dl1e_1, at = 2248.9288336; +dl1e_2, at = 2249.28407035; +dl1e_3, at = 2249.63930713; +dl1e_4, at = 2249.99454397; +dl1e_5, at = 2250.34978103; +dlmarker, at = 2250.52739964; +qd2, at = 2250.6793885; +sh3e, at = 2251.06283751; +qf1, at = 2251.3683053; +bpm_10, at = 2251.56549346; +idmarker, at = 2254.19937091; +bpm_01, at = 2256.83324837; +qf1, at = 2257.03043652; +sh1a, at = 2257.33590432; +qd2, at = 2257.71935332; +dlmarker, at = 2257.87134218; +dl1a_1, at = 2258.04896079; +dl1a_2, at = 2258.40419785; +dl1a_3, at = 2258.75943469; +dl1a_4, at = 2259.11467147; +dl1a_5, at = 2259.46990822; +qd3, at = 2259.77468066; +sd1a, at = 2260.01210116; +bpm_02, at = 2260.63580524; +qf4a, at = 2260.79673462; +dispbumpcenter, at = 2260.97653843; +sf2ah, at = 2261.02620799; +sf2amarker, at = 2261.07587755; +sf2ah, at = 2261.12554711; +qf4b, at = 2261.35502048; +of1b, at = 2261.56462603; +bpm_03, at = 2261.66495854; +sd1b, at = 2262.13965394; +qd5, at = 2262.40190922; +dl2b_1, at = 2262.73151644; +dl2b_2, at = 2263.08675318; +dl2b_3, at = 2263.44198997; +dl2b_4, at = 2263.79722681; +dl2b_5, at = 2264.15246377; +bpm_04, at = 2264.42346107; +qf6, at = 2264.67180887; +dq1, at = 2265.46455319; +qf8, at = 2266.3049803; +sh2b, at = 2266.75995347; +bpm_05, at = 2266.84637851; +dq2c_1, at = 2267.10068717; +cellcenter, at = 2267.29936592; +dq2c_2, at = 2267.49804467; +bpm_06, at = 2267.75235333; +sh2b, at = 2267.83877837; +qf8, at = 2268.29375154; +dq1, at = 2269.13417864; +qf6, at = 2269.92692297; +bpm_07, at = 2270.17527077; +dl2d_1, at = 2270.44626807; +dl2d_2, at = 2270.80150503; +dl2d_3, at = 2271.15674187; +dl2d_4, at = 2271.51197866; +dl2d_5, at = 2271.8672154; +qd5, at = 2272.19682262; +sd1d, at = 2272.4590779; +bpm_08, at = 2272.9337733; +of1d, at = 2273.03410581; +qf4b, at = 2273.24371136; +dispbumpcenter, at = 2273.42351517; +sf2eh, at = 2273.47318473; +sf2emarker, at = 2273.52285429; +sf2eh, at = 2273.57252385; +qf4a, at = 2273.80199722; +bpm_09, at = 2273.96292659; +sd1e, at = 2274.58663068; +qd3, at = 2274.82405118; +dl1e_1, at = 2275.12882362; +dl1e_2, at = 2275.48406036; +dl1e_3, at = 2275.83929715; +dl1e_4, at = 2276.19453399; +dl1e_5, at = 2276.54977104; +dlmarker, at = 2276.72738966; +qd2, at = 2276.87937851; +sh3e, at = 2277.26282752; +qf1, at = 2277.56829532; +bpm_10, at = 2277.76548347; +idmarker, at = 2280.39936093; +sss_sw, at = 2280.39936093; +hcor, at = 2280.48736093; +qfsum1, at = 2280.73736093; +bpm, at = 2284.08736093; +vcor, at = 2284.08736093; +qdsum1, at = 2284.33736093; +qfsum2, at = 2287.52636093; +qdsuh, at = 2294.27436093; +qdsuh, at = 2294.52436093; +bpm, at = 2294.64936093; +vcor, at = 2294.64936093; +hcor, at = 2301.34936093; +qfsuh, at = 2301.47436093; +endsequence; diff --git a/examples/petra4/track_p1.py b/examples/petra4/track_p1.py new file mode 100644 index 0000000..6f96cf5 --- /dev/null +++ b/examples/petra4/track_p1.py @@ -0,0 +1,65 @@ +from cpymad.madx import Madx + +import pysixtrack + + +class Madout: + def __init__(self): + self.out = [] + + def write(self, ll): + self.out.append(ll) + + def __repr__(self): + return "".join(ll.decode() for ll in self.out) + + +madout = Madout() +mad = Madx(stdout=madout) + +mad.call("h7ba_n8.seq") +mad.beam(energy=6, sequence="ring", particle="electron", radiate=False) +mad.use("ring") +mad.twiss() +print(mad.table.summ.q1, mad.table.summ.q2) + +nslices = 4 +mad.select(flag="makethin", clear=True) +mad.select(flag="makethin", class_="sbend", slice=nslices) +mad.select(flag="makethin", class_="quadrupole", slice=nslices) +mad.makethin(sequence="ring") +mad.use(sequence="ring") +print(mad.table.summ.q1, mad.table.summ.q2) +twiss = mad.twiss() +print(mad.table.summ.q1, mad.table.summ.q2) + + +twissout = pysixtrack.Particles.from_madx_twiss( + mad.twiss(betx=1, bety=1, x=0.001) +) + +line = pysixtrack.Line.from_madx_sequence(mad.sequence.ring) +part = pysixtrack.Particles() +part.x = 0.001 +pysixout = pysixtrack.Particles.from_list( + line.track_elem_by_elem(part, start=False, end=True) +) + + +def mkd(name, t1, t2, ii, jj): + v1 = getattr(t1, name)[ii] + v2 = getattr(t2, name)[jj] + print(f"{name:4} {v2:20} {v2:20} {v2-v1:20}") + return v2 - v1 + + +for ii in range(len(twissout.s)): + sm = twissout.s[ii] + sp = pysixout.s[ii] + print( + f"{ii:3} {twiss.name[ii]:20}" + "{line.element_names[ii]:20} {line.elements[ii]}" + ) + res = mkd("s", twissout, pysixout, ii, ii) + if abs(res) > 1e-6: + break diff --git a/examples/rf_multipole/test_rf_multipole.madx b/examples/rf_multipole/rf_multipole.madx similarity index 82% rename from examples/rf_multipole/test_rf_multipole.madx rename to examples/rf_multipole/rf_multipole.madx index 0cd2a59..bb1172b 100644 --- a/examples/rf_multipole/test_rf_multipole.madx +++ b/examples/rf_multipole/rf_multipole.madx @@ -14,26 +14,23 @@ my_rfmultipole : RFMULTIPOLE, VOLT=0, FREQ=freq, lag=lag, TILT=0, KNL={kick}, PN my_crabcavity : CRABCAVITY, L=0.0, VOLT=volt, LAG=lag, FREQ=freq, rv1=0, rv2=0, rv3=1000, rv4=0, rph1=0, rph2=0, lagf=lag; sequ_rfmultipole: sequence,l=0.1; - my_rfmultipole, at=0.1; + my_rfmultipole, at=0.1; endsequence; sequ_crabcavity: sequence,l=0.1; - my_crabcavity, at=0.1; + my_crabcavity, at=0.1; endsequence; use, sequence = sequ_rfmultipole; - - TRACK, deltap= 0.0, onepass, dump; START, x=0.1, px=0.00, y=0.05, py=0.0, t=0.5, pt=0; RUN, track_harmon=1e-16; - -!TRACK, deltap= 0.0, onepass, dump; -!START, x=0.1, px=0.00, y=0.05, py=0.0, t=0, pt=0; +use, sequence = sequ_rfmultipole; +RUN, track_harmon=1e-16; use, sequence = sequ_crabcavity; RUN, track_harmon=1e-16; diff --git a/examples/rf_multipole/rf_multipole.py b/examples/rf_multipole/rf_multipole.py new file mode 100644 index 0000000..cd8d80f --- /dev/null +++ b/examples/rf_multipole/rf_multipole.py @@ -0,0 +1,40 @@ +import numpy as np + +from cpymad.madx import Madx +import pysixtrack + +# run MADX tests +mad = Madx() +mad.call("rf_multipole.madx") + +# create pysixtrack rfmultipole +mad_sequence = mad.sequence["sequ_rfmultipole"] +rf_mulitpole_mad = mad_sequence.elements[1] +freq = rf_mulitpole_mad.freq * 1e6 # MAD units are MHz +knl = rf_mulitpole_mad.knl +pn = np.array(rf_mulitpole_mad.pnl) * 360 # MAD units are 2pi +lag = rf_mulitpole_mad.lag * 360 # MAD units are 2pi + +rf_multipole = pysixtrack.elements.RFMultipole( + voltage=0, frequency=freq, lag=lag, knl=knl, ksl=[0], pn=pn, ps=[0] +) + + +# track pysixtrack +mad_part = pysixtrack.Particles.from_madx_track(mad) +p1 = mad_part.copy(0) +p2 = mad_part.copy(1) +p3 = p1.copy() +rf_multipole.track(p3) + +# compare +p2.compare(p3) + +# test conversion +line = pysixtrack.Line.from_madx_sequence(mad_sequence) +tw = mad.twiss(betx=1, bety=1, x=0.1, t=0.5) +p_mad = pysixtrack.Particles.from_madx_twiss(tw) +p_six = mad_part.copy(0) +p_out = pysixtrack.Particles.from_list( + line.track_elem_by_elem(p_six, start=False) +) diff --git a/examples/rf_multipole/rf_multipole2.py b/examples/rf_multipole/rf_multipole2.py new file mode 100644 index 0000000..9febfb0 --- /dev/null +++ b/examples/rf_multipole/rf_multipole2.py @@ -0,0 +1,10 @@ +import pysixtrack + + +rfmult = {"freq": 100, "knl": [0.1]} +out = pysixtrack.mad_benchmark("rfmultipole", rfmult, x=1, t=0.1) +mad, line, p_mad, p_six = out + +mult = {"knl": [0.1]} +out = pysixtrack.mad_benchmark("multipole", mult, x=0, pt=0.1) +mad, line, p_mad, p_six = out diff --git a/examples/rf_multipole/test_rf_multipole.py b/examples/rf_multipole/test_rf_multipole.py deleted file mode 100644 index 7f4734c..0000000 --- a/examples/rf_multipole/test_rf_multipole.py +++ /dev/null @@ -1,37 +0,0 @@ -import numpy as np - -from cpymad.madx import Madx -import pysixtrack -from pysixtrack.particles import Particles - -# run MADX tests -mad = Madx() -mad.call('test_rf_multipole.madx') -tracksumm_madx = mad.table.tracksumm - -# same test in pysixtrack -mad_sequence = mad.sequence['sequ_rfmultipole'] -rf_mulitpole_mad = mad_sequence.elements[1] -freq = rf_mulitpole_mad.freq * 1e6 # MAD units are MHz -knl = rf_mulitpole_mad.knl -pnl = np.array(rf_mulitpole_mad.pnl) * 360 # MAD units are 2pi -lag = rf_mulitpole_mad.lag * 360 # MAD units are 2pi - -my_rf_multipole = pysixtrack.elements.RFMultipole(voltage=0, frequency=freq, lag=lag, knl=knl, ksl=[0], pn=pnl, ps=[0]) - -p0c = mad_sequence.beam.pc * 1e9 -x = tracksumm_madx.x[0] -px = tracksumm_madx.px[0] -y = tracksumm_madx.y[0] -py = tracksumm_madx.py[0] -t = tracksumm_madx.t[0] -pt = tracksumm_madx.pt[0] - -part = Particles(p0c=p0c, x=x, px=px, y=y, py=py, tau=t, pt=pt) -# print(part) - -my_rf_multipole.track(part) -print(part) - -# part(p0c=p0c, x=x, px=px, y=y, py=py, zeta=?, delta=?) -'' \ No newline at end of file diff --git a/examples/spacecharge/000_prepare_spacecharge_lattice.py b/examples/spacecharge/000_prepare_spacecharge_lattice.py index 0d3c20d..da3f47d 100644 --- a/examples/spacecharge/000_prepare_spacecharge_lattice.py +++ b/examples/spacecharge/000_prepare_spacecharge_lattice.py @@ -7,7 +7,6 @@ from cpymad.madx import Madx import pysixtrack -from pysixtrack.particles import Particles import pysixtrack.be_beamfields.tools as bt # sc_mode = 'Coasting' @@ -40,8 +39,10 @@ mad.use(seq_name) # Determine space charge locations -temp_line, other = pysixtrack.Line.from_madx_sequence(mad.sequence.sps) -sc_locations, sc_lengths = bt.determine_sc_locations(temp_line, n_SCkicks, length_fuzzy) +temp_line = pysixtrack.Line.from_madx_sequence(mad.sequence.sps) +sc_locations, sc_lengths = bt.determine_sc_locations( + temp_line, n_SCkicks, length_fuzzy +) # Install spacecharge place holders sc_names = ["sc%d" % number for number in range(len(sc_locations))] @@ -51,7 +52,7 @@ twtable = mad.twiss() # Generate line with spacecharge -line, other = pysixtrack.Line.from_madx_sequence(mad.sequence.sps) +line = pysixtrack.Line.from_madx_sequence(mad.sequence.sps) # Get sc info from optics mad_sc_names, sc_points, sc_twdata = bt.get_spacecharge_names_madpoints_twdata( @@ -69,7 +70,9 @@ ) else: raise ValueError("mode not understood") -bt.check_spacecharge_consistency(sc_elements, sc_names, sc_lengths, mad_sc_names) +bt.check_spacecharge_consistency( + sc_elements, sc_names, sc_lengths, mad_sc_names +) # Setup spacecharge in the line if sc_mode == "Bunched": @@ -133,8 +136,6 @@ "" -import matplotlib.patches as patches - if 0: plt.close("all") diff --git a/examples/spacecharge/001_generate_particle_coordinates.py b/examples/spacecharge/001_generate_particle_coordinates.py index 589be61..e3d0431 100644 --- a/examples/spacecharge/001_generate_particle_coordinates.py +++ b/examples/spacecharge/001_generate_particle_coordinates.py @@ -2,7 +2,6 @@ import pysixtrack import numpy as np -import example_helpers as hp import footprint @@ -21,46 +20,6 @@ part = partCO.copy() # pysixtrack.Particles(**partCO) part._m = pysixtrack.Particles()._m # to be sorted out later -""" -# get beta functions from tracking -n_turns_beta = 150 - -# Track a particle to get betas -part.x += 1e-5 -part.y += 1e-5 - -x_tbt, px_tbt, y_tbt, py_tbt, sigma_tbt, delta_tbt = hp.track_particle_pysixtrack( - line, part=part, Dx_wrt_CO_m=0., Dpx_wrt_CO_rad=0., - Dy_wrt_CO_m=0., Dpy_wrt_CO_rad=0., - Dsigma_wrt_CO_m=0., Ddelta_wrt_CO=0., n_turns=n_turns_beta, verbose=True) - - -beta_x, x_max, px_cut = hp.betafun_from_ellip(x_tbt, px_tbt) -beta_y, y_max, py_cut = hp.betafun_from_ellip(y_tbt, py_tbt) - -import matplotlib.pyplot as plt -plt.close('all') -fig1 = plt.figure(1) -spx = fig1.add_subplot(2, 1, 1) -spy = fig1.add_subplot(2, 1, 2, sharex=spx) - -spx.plot(x_tbt) -spy.plot(y_tbt) - -fig2 = plt.figure(2) -spex = fig2.add_subplot(2, 1, 1) -spey = fig2.add_subplot(2, 1, 2) - -spex.plot(x_tbt, px_tbt, '.') -spey.plot(y_tbt, py_tbt, '.') - -spex.plot(0, px_cut, 'xr') -spey.plot(0, py_cut, 'xr') - -plt.show() - -""" - # get beta functions from twiss table with open("twiss_at_start.pkl", "rb") as fid: twiss_at_start = pickle.load(fid) diff --git a/examples/spacecharge/002_track_and_footprint.py b/examples/spacecharge/002_track_and_footprint.py index 6594b01..f36e1d5 100644 --- a/examples/spacecharge/002_track_and_footprint.py +++ b/examples/spacecharge/002_track_and_footprint.py @@ -1,15 +1,13 @@ -import sys +import pickle +import time -sys.path.append("../../../NAFFlib/") +import numpy as np +import matplotlib.pyplot as plt -import pickle import pysixtrack -import numpy as np import NAFFlib import example_helpers as hp import footprint -import matplotlib.pyplot as plt -import time track_with = "PySixtrack" # track_with = 'Sixtracklib' @@ -38,7 +36,14 @@ if track_with == "PySixtrack": - x_tbt, px_tbt, y_tbt, py_tbt, sigma_tbt, delta_tbt = hp.track_particle_pysixtrack( + ( + x_tbt, + px_tbt, + y_tbt, + py_tbt, + sigma_tbt, + delta_tbt, + ) = hp.track_particle_pysixtrack( line, part=part, Dx_wrt_CO_m=0.0, @@ -54,7 +59,14 @@ info = track_with elif track_with == "Sixtracklib": - x_tbt, px_tbt, y_tbt, py_tbt, sigma_tbt, delta_tbt = hp.track_particle_sixtracklib( + ( + x_tbt, + px_tbt, + y_tbt, + py_tbt, + sigma_tbt, + delta_tbt, + ) = hp.track_particle_sixtracklib( line=line, partCO=part, Dx_wrt_CO_m=0.0, diff --git a/examples/spacecharge/example_helpers.py b/examples/spacecharge/example_helpers.py index fba05c2..b748af7 100644 --- a/examples/spacecharge/example_helpers.py +++ b/examples/spacecharge/example_helpers.py @@ -55,7 +55,14 @@ def track_particle_sixtrack( n_turns, ): - Dx_wrt_CO_m, Dpx_wrt_CO_rad, Dy_wrt_CO_m, Dpy_wrt_CO_rad, Dsigma_wrt_CO_m, Ddelta_wrt_CO = vectorize_all_coords( + ( + Dx_wrt_CO_m, + Dpx_wrt_CO_rad, + Dy_wrt_CO_m, + Dpy_wrt_CO_rad, + Dsigma_wrt_CO_m, + Ddelta_wrt_CO, + ) = vectorize_all_coords( Dx_wrt_CO_m, Dpx_wrt_CO_rad, Dy_wrt_CO_m, @@ -99,6 +106,8 @@ def track_particle_sixtrack( lines_f13 = [] + prev_part = None + for i_part in range(n_part): temp_part = pysixtrack.Particles(**partCO) temp_part.x += Dx_wrt_CO_m[i_part] @@ -190,7 +199,14 @@ def track_particle_pysixtrack( verbose=False, ): - Dx_wrt_CO_m, Dpx_wrt_CO_rad, Dy_wrt_CO_m, Dpy_wrt_CO_rad, Dsigma_wrt_CO_m, Ddelta_wrt_CO = vectorize_all_coords( + ( + Dx_wrt_CO_m, + Dpx_wrt_CO_rad, + Dy_wrt_CO_m, + Dpy_wrt_CO_rad, + Dsigma_wrt_CO_m, + Ddelta_wrt_CO, + ) = vectorize_all_coords( Dx_wrt_CO_m, Dpx_wrt_CO_rad, Dy_wrt_CO_m, @@ -249,7 +265,14 @@ def track_particle_sixtracklib( device=None, ): - Dx_wrt_CO_m, Dpx_wrt_CO_rad, Dy_wrt_CO_m, Dpy_wrt_CO_rad, Dsigma_wrt_CO_m, Ddelta_wrt_CO = vectorize_all_coords( + ( + Dx_wrt_CO_m, + Dpx_wrt_CO_rad, + Dy_wrt_CO_m, + Dpy_wrt_CO_rad, + Dsigma_wrt_CO_m, + Ddelta_wrt_CO, + ) = vectorize_all_coords( Dx_wrt_CO_m, Dpx_wrt_CO_rad, Dy_wrt_CO_m, @@ -305,7 +328,8 @@ def track_particle_sixtracklib( sigma_tbt = res.particles[0].sigma.reshape(n_turns, n_part) delta_tbt = res.particles[0].delta.reshape(n_turns, n_part) - # For now data are saved at the end of the turn by STlib and at the beginning by the others + # For now data are saved at the end of the turn by STlib + # and at the beginning by the others # x_tbt[1:, :] = x_tbt[:-1, :] # px_tbt[1:, :] = px_tbt[:-1, :] # y_tbt[1:, :] = y_tbt[:-1, :] diff --git a/examples/spacecharge/footprint.py b/examples/spacecharge/footprint.py index 3239ad1..075f069 100644 --- a/examples/spacecharge/footprint.py +++ b/examples/spacecharge/footprint.py @@ -27,7 +27,9 @@ def initial_xy_cartesian(x_min, x_max, x_N, y_min, y_max, y_N): ) -def draw_footprint(A, axis_object=None, figure_object=None, axis=0, linewidth=4): +def draw_footprint( + A, axis_object=None, figure_object=None, axis=0, linewidth=4 +): """ Input A should be a 3-D numpy array with shape (Nx,Ny,2) representing a 2-D array of (x,y) points. This function diff --git a/examples/sps/000test.py b/examples/sps/000test.py index 96db031..60b479d 100644 --- a/examples/sps/000test.py +++ b/examples/sps/000test.py @@ -3,7 +3,7 @@ import numpy as np -from pysixtrack import Drift, DriftExact, Multipole, Align, Cavity, Block, Particles +from pysixtrack import Particles def savedata(out, fname): diff --git a/examples/sps/001test.py b/examples/sps/001test.py index 39c20c8..0be4926 100644 --- a/examples/sps/001test.py +++ b/examples/sps/001test.py @@ -2,7 +2,7 @@ import gzip import math -from pysixtrack import Drift, DriftExact, Multipole, Align, Cavity, Block, Particles +from pysixtrack import Particles def savedata(out, fname): diff --git a/examples/sps/benchmark.py b/examples/sps/benchmark.py index 6f82519..d48c6d4 100644 --- a/examples/sps/benchmark.py +++ b/examples/sps/benchmark.py @@ -1,4 +1,10 @@ +import pickle +import time + +import numpy as np + from pyoptics import madlang, optics +import pysixtrack # see sps/madx/a001_track_thin.madx mad = madlang.open("madx/SPS_Q20_thin.seq") @@ -6,19 +12,14 @@ mad.acta_31637.lag = 0.5 out, rest = mad.sps.expand_struct() -import pysixtrack out, rest = mad.sps.expand_struct(pysixtrack.convert) elems = list(zip(*out))[1] sps = pysixtrack.Block(elems) -import pickle pickle.dump(sps, open("sps.pickle", "w")) -import numpy as np - -import time npart = 10 @@ -48,7 +49,10 @@ def trackn(n): for iel, el in enumerate(sps.elems[:n]): print(iel, el) el.track(p) - print("%12.9f %12.9f %12.9f %12.9f %12.9f" % (p.s, p.x, p.px, p.tau, p.pt)) + print( + "%12.9f %12.9f %12.9f %12.9f %12.9f" + % (p.s, p.x, p.px, p.tau, p.pt) + ) if abs(p.x) > 1: break print((out[n - 1][0])) diff --git a/examples/sps/benchmark_madx.py b/examples/sps/benchmark_madx.py index 3846b77..237c0a3 100644 --- a/examples/sps/benchmark_madx.py +++ b/examples/sps/benchmark_madx.py @@ -1,12 +1,11 @@ from pyoptics import madlang, optics +import pysixtrack # see sps/madx/a001_track_thin.madx mad = madlang.open("madx/SPS_Q20_thin.seq") mad.acta_31637.volt = 4.5 mad.acta_31637.lag = 0.5 -import pysixtrack - elems, rest, iconv = mad.sps.expand_struct(pysixtrack.element_types) pbench = optics.open("madx/track.obs0001.p0001") diff --git a/linter.sh b/linter.sh index c2b6816..39b1b72 100755 --- a/linter.sh +++ b/linter.sh @@ -1,3 +1,3 @@ -find -name '*.py' -exec black '{}' ';' -find -name '*.py' -exec flake8 --ignore=E501,E241,W503 '{}' ';' - +find -name '*.py' -exec black -l 79 '{}' ';' +flake8 --ignore=E501,E241,W503 +pytest --cov=pysixtrack --cov-report html diff --git a/pysixtrack/__init__.py b/pysixtrack/__init__.py index b4d74fe..995e6c1 100644 --- a/pysixtrack/__init__.py +++ b/pysixtrack/__init__.py @@ -1,4 +1,4 @@ -__version__ = "0.0.1" +__version__ = "0.0.4" from . import base_classes from . import elements @@ -8,19 +8,14 @@ from .particles import Particles from .be_beamfields import BB6Ddata -from .loader_mad import MadPoint +from .loader_mad import MadPoint, mad_benchmark -elements.Line = Line - -element_list = [ - elements.Drift, - elements.DriftExact, - elements.Multipole, - elements.Cavity, - elements.XYShift, - elements.SRotation, - elements.RFMultipole, - elements.BeamMonitor, - elements.DipoleEdge, - elements.Line, +__all__ = [ + "base_classes", + "elements", + "Line", + "Particles", + "BB6Ddata", + "MadPoint", + "mad_benchmark", ] diff --git a/pysixtrack/base_classes.py b/pysixtrack/base_classes.py index f49e160..bafb85e 100644 --- a/pysixtrack/base_classes.py +++ b/pysixtrack/base_classes.py @@ -1,11 +1,21 @@ from dataclasses import dataclass, field +from typing import List, Dict + +_function = type(lambda: None) def _pro_default(default): type_default = type(default) - if type_default in [list, dict]: - default = field(default_factory=type_default) - return type_default, default + if type_default is _function: + mut = default() + if type(mut) is list: + return List, field(default_factory=default) + elif type(mut) is dict: + return Dict, field(default_factory=default) + elif type_default in [list, dict]: + raise ValueError(f"Mutable default {default} not allowed") + else: + return type_default, default class _MetaElement(type): @@ -30,7 +40,8 @@ def __new__(cls, clsname, bases, dct): for name, unit, desc, default in description ] fields += [ - f"{name:10} [{unit+']:':5} {desc} " for name, unit, desc, default in extra + f"{name:10} [{unit+']:':5} {desc} " + for name, unit, desc, default in extra ] doc += fields dct["__doc__"] = "\n".join(doc) diff --git a/pysixtrack/be_beamfields/BB6D.py b/pysixtrack/be_beamfields/BB6D.py index 32a5025..c766a5d 100644 --- a/pysixtrack/be_beamfields/BB6D.py +++ b/pysixtrack/be_beamfields/BB6D.py @@ -37,9 +37,16 @@ def BB6D_track(x, px, y, py, sigma, delta, q0, p0, bb6ddata, mathlib): # Boost coordinates of the weak beam x_star, px_star, y_star, py_star, sigma_star, delta_star = boost.boost( - x_subCO, px_subCO, y_subCO, py_subCO, sigma_subCO, delta_subCO, parboost + x_subCO, + px_subCO, + y_subCO, + py_subCO, + sigma_subCO, + delta_subCO, + parboost, ) - # ~ x_star, px_star, y_star, py_star, sigma_star, delta_star = (x, px, y, py, sigma, delta) + # ~ x_star, px_star, y_star, py_star, sigma_star, delta_star = + # (x, px, y, py, sigma, delta) for i_slice in range(N_slices): sigma_slice_star = sigma_slices_star[i_slice] x_slice_star = x_slices_star[i_slice] @@ -52,11 +59,22 @@ def BB6D_track(x, px, y, py, sigma, delta, q0, p0, bb6ddata, mathlib): S = 0.5 * (sigma_star - sigma_slice_star) # Get strong beam shape at the CP - Sig_11_hat_star, Sig_33_hat_star, costheta, sintheta, dS_Sig_11_hat_star, dS_Sig_33_hat_star, dS_costheta, dS_sintheta, extra_data = psm.propagate_Sigma_matrix( + ( + Sig_11_hat_star, + Sig_33_hat_star, + costheta, + sintheta, + dS_Sig_11_hat_star, + dS_Sig_33_hat_star, + dS_costheta, + dS_sintheta, + extra_data, + ) = psm.propagate_Sigma_matrix( Sigmas_0_star, S, threshold_singular=threshold_singular ) - # Evaluate transverse coordinates of the weake baem w.r.t. the strong beam centroid + # Evaluate transverse coordinates of the weake baem w.r.t. + # the strong beam centroid x_bar_star = x_star + px_star * S - x_slice_star y_bar_star = y_star + py_star * S - y_slice_star @@ -66,11 +84,15 @@ def BB6D_track(x, px, y, py, sigma, delta, q0, p0, bb6ddata, mathlib): # Compute derivatives of the transformation dS_x_bar_hat_star = x_bar_star * dS_costheta + y_bar_star * dS_sintheta - dS_y_bar_hat_star = -x_bar_star * dS_sintheta + y_bar_star * dS_costheta + dS_y_bar_hat_star = ( + -x_bar_star * dS_sintheta + y_bar_star * dS_costheta + ) # Compute normalized field - # Ex, Ey, Gx, Gy = tef.get_Ex_Ey_Gx_Gy_gauss(x=x_bar_hat_star, y=y_bar_hat_star, - # sigma_x=np.sqrt(Sig_11_hat_star), sigma_y=np.sqrt(Sig_33_hat_star), + # Ex, Ey, Gx, Gy = tef.get_Ex_Ey_Gx_Gy_gauss( + # x=x_bar_hat_star, y=y_bar_hat_star, + # sigma_x=np.sqrt(Sig_11_hat_star), + # sigma_y=np.sqrt(Sig_33_hat_star), # min_sigma_diff = min_sigma_diff) Ex, Ey, Gx, Gy = gf.get_Ex_Ey_Gx_Gy_gauss( diff --git a/pysixtrack/be_beamfields/BB6Ddata.py b/pysixtrack/be_beamfields/BB6Ddata.py index f9ae0cd..0dfcdfe 100644 --- a/pysixtrack/be_beamfields/BB6Ddata.py +++ b/pysixtrack/be_beamfields/BB6Ddata.py @@ -147,7 +147,9 @@ def tobuffer(self): buffer_list.append(self.parboost.tobuffer()) buffer_list.append(self.Sigmas_0_star.tobuffer()) buffer_list.append(np.array([self.min_sigma_diff], dtype=np.float64)) - buffer_list.append(np.array([self.threshold_singular], dtype=np.float64)) + buffer_list.append( + np.array([self.threshold_singular], dtype=np.float64) + ) buffer_list.append(int_to_float64arr(self.N_slices)) buffer_list.append(np.array([self.delta_x], dtype=np.float64)) @@ -164,7 +166,9 @@ def tobuffer(self): buffer_list.append(np.array([self.Dpy_sub], dtype=np.float64)) buffer_list.append(np.array([self.Dsigma_sub], dtype=np.float64)) buffer_list.append(np.array([self.Ddelta_sub], dtype=np.float64)) - buffer_list.append(int_to_float64arr({True: 1, False: 0}[self.enabled])) + buffer_list.append( + int_to_float64arr({True: 1, False: 0}[self.enabled]) + ) buffer_list.append(int_to_float64arr(3)) # offset to N_part_per_slice # offset to x_slices_star @@ -247,9 +251,17 @@ def BB6D_init( z_slices = np.take(z_slices, ind_sorted) N_part_per_slice = np.take(N_part_per_slice, ind_sorted) - # By boosting the strong z and all zeros, I get the transverse coordinates of the strong beam in the ref system of the weak + # By boosting the strong z and all zeros, I get the transverse coordinates + # of the strong beam in the ref system of the weak boost_vect = np.vectorize(boost.boost, excluded="parboost") - x_slices_star, px_slices_star, y_slices_star, py_slices_star, sigma_slices_star, delta_slices_star = boost_vect( + ( + x_slices_star, + px_slices_star, + y_slices_star, + py_slices_star, + sigma_slices_star, + delta_slices_star, + ) = boost_vect( x=0 * z_slices, px=0 * z_slices, y=0 * z_slices, diff --git a/pysixtrack/be_beamfields/beambeam.py b/pysixtrack/be_beamfields/beambeam.py index 2eb47e5..f7caeaa 100644 --- a/pysixtrack/be_beamfields/beambeam.py +++ b/pysixtrack/be_beamfields/beambeam.py @@ -11,7 +11,12 @@ class BeamBeam4D(Element): """Interaction with a transverse-Gaussian strong beam (4D modelling).""" _description = [ - ("charge", "e", "Charge of the interacting distribution (strong beam)", 0), + ( + "charge", + "e", + "Charge of the interacting distribution (strong beam)", + 0, + ), ("sigma_x", "m", "Horizontal size of the strong beam (r.m.s.)", 0), ("sigma_y", "m", "Vertical size of the strong beam (r.m.s.)", 0), ("beta_r", "", "Relativistic beta of the stron beam", 0), @@ -86,17 +91,34 @@ class BeamBeam6D(Element): ( "phi", "rad", - "Crossing angle (>0 weak beam increases x in the direction motion)", + "Crossing angle (>0 weak beam increases" + "x in the direction motion)", 0, ), ("alpha", "rad", "Crossing plane tilt angle (>0 x tends to y)", 0), - ("x_bb_co", "m", "H. position of the strong beam w.r.t. the closed orbit", 0), - ("y_bb_co", "m", "V. position of the strong beam w.r.t. the closed orbit", 0), - ("charge_slices", "qe", "Charge of the interacting slices (strong beam)", ()), + ( + "x_bb_co", + "m", + "H. position of the strong beam w.r.t. the closed orbit", + 0, + ), + ( + "y_bb_co", + "m", + "V. position of the strong beam w.r.t. the closed orbit", + 0, + ), + ( + "charge_slices", + "qe", + "Charge of the interacting slices (strong beam)", + (), + ), ( "zeta_slices", "m", - "Longitudinal position of the interacting slices (>0 head of the strong).", + "Longitudinal position of the interacting" + "slices (>0 head of the strong).", (), ), ( @@ -105,25 +127,60 @@ class BeamBeam6D(Element): "Sigma_11 element of the sigma matrix of the strong beam", 0, ), - ("sigma_12", "m", "Sigma_12 element of the sigma matrix of the strong beam", 0), + ( + "sigma_12", + "m", + "Sigma_12 element of the sigma matrix of the strong beam", + 0, + ), ( "sigma_13", "m^2", "Sigma_13 element of the sigma matrix of the strong beam", 0, ), - ("sigma_14", "m", "Sigma_14 element of the sigma matrix of the strong beam", 0), - ("sigma_22", "", "Sigma_22 element of the sigma matrix of the strong beam", 0), - ("sigma_23", "m", "Sigma_23 element of the sigma matrix of the strong beam", 0), - ("sigma_24", "", "Sigma_24 element of the sigma matrix of the strong beam", 0), + ( + "sigma_14", + "m", + "Sigma_14 element of the sigma matrix of the strong beam", + 0, + ), + ( + "sigma_22", + "", + "Sigma_22 element of the sigma matrix of the strong beam", + 0, + ), + ( + "sigma_23", + "m", + "Sigma_23 element of the sigma matrix of the strong beam", + 0, + ), + ( + "sigma_24", + "", + "Sigma_24 element of the sigma matrix of the strong beam", + 0, + ), ( "sigma_33", "m^2", "Sigma_33 element of the sigma matrix of the strong beam", 0, ), - ("sigma_34", "m", "Sigma_34 element of the sigma matrix of the strong beam", 0), - ("sigma_44", "", "Sigma_44 element of the sigma matrix of the strong beam", 0), + ( + "sigma_34", + "m", + "Sigma_34 element of the sigma matrix of the strong beam", + 0, + ), + ( + "sigma_44", + "", + "Sigma_44 element of the sigma matrix of the strong beam", + 0, + ), ("x_co", "m", "x coordinate the closed orbit (weak beam).", 0), ("px_co", "", "px coordinate the closed orbit (weak beam).", 0), ("y_co", "m", "y coordinate the closed orbit (weaek beam).", 0), @@ -134,12 +191,27 @@ class BeamBeam6D(Element): ("d_px", "", "Quantity subtracted from px after the interaction.", 0), ("d_y", "m", "Quantity subtracted from y after the interaction.", 0), ("d_py", "", "Quantity subtracted from py after the interaction.", 0), - ("d_zeta", "m", "Quantity subtracted from sigma after the interaction.", 0), - ("d_delta", "", "Quantity subtracted from delta after the interaction.", 0), + ( + "d_zeta", + "m", + "Quantity subtracted from sigma after the interaction.", + 0, + ), + ( + "d_delta", + "", + "Quantity subtracted from delta after the interaction.", + 0, + ), ] _extra = [ ("min_sigma_diff", "m", "Threshold to detect round beam", 1e-28), - ("threshold_singular", "", "Threshold to detect small denominator", 1e-28), + ( + "threshold_singular", + "", + "Threshold to detect small denominator", + 1e-28, + ), ("enabled", "", "Switch for closed orbit search", True), ] @@ -179,7 +251,14 @@ def track(self, p): self.d_delta, self.enabled, ) - x_ret, px_ret, y_ret, py_ret, zeta_ret, delta_ret = BB6D.BB6D_track( + ( + x_ret, + px_ret, + y_ret, + py_ret, + zeta_ret, + delta_ret, + ) = BB6D.BB6D_track( p.x, p.px, p.y, diff --git a/pysixtrack/be_beamfields/boost.py b/pysixtrack/be_beamfields/boost.py index d689ae8..f7d452e 100644 --- a/pysixtrack/be_beamfields/boost.py +++ b/pysixtrack/be_beamfields/boost.py @@ -11,13 +11,21 @@ def boost(x, px, y, py, sigma, delta, parboost): salpha = parboost.salpha calpha = parboost.calpha - h = delta + 1.0 - np.sqrt((1.0 + delta) * (1.0 + delta) - px * px - py * py) + h = ( + delta + + 1.0 + - np.sqrt((1.0 + delta) * (1.0 + delta) - px * px - py * py) + ) px_st = px / cphi - h * calpha * tphi / cphi py_st = py / cphi - h * salpha * tphi / cphi - delta_st = delta - px * calpha * tphi - py * salpha * tphi + h * tphi * tphi + delta_st = ( + delta - px * calpha * tphi - py * salpha * tphi + h * tphi * tphi + ) - pz_st = np.sqrt((1.0 + delta_st) * (1.0 + delta_st) - px_st * px_st - py_st * py_st) + pz_st = np.sqrt( + (1.0 + delta_st) * (1.0 + delta_st) - px_st * px_st - py_st * py_st + ) hx_st = px_st / pz_st hy_st = py_st / pz_st hsigma_st = 1.0 - (delta_st + 1) / pz_st @@ -49,26 +57,43 @@ def inv_boost(x_st, px_st, y_st, py_st, sigma_st, delta_st, parboost): salpha = parboost.salpha calpha = parboost.calpha - pz_st = np.sqrt((1.0 + delta_st) * (1.0 + delta_st) - px_st * px_st - py_st * py_st) + pz_st = np.sqrt( + (1.0 + delta_st) * (1.0 + delta_st) - px_st * px_st - py_st * py_st + ) hx_st = px_st / pz_st hy_st = py_st / pz_st hsigma_st = 1.0 - (delta_st + 1) / pz_st - Det_L = 1.0 / cphi + (hx_st * calpha + hy_st * salpha - hsigma_st * sphi) * tphi + Det_L = ( + 1.0 / cphi + + (hx_st * calpha + hy_st * salpha - hsigma_st * sphi) * tphi + ) - Linv_11 = (1.0 / cphi + salpha * tphi * (hy_st - hsigma_st * salpha * sphi)) / Det_L + Linv_11 = ( + 1.0 / cphi + salpha * tphi * (hy_st - hsigma_st * salpha * sphi) + ) / Det_L Linv_12 = (salpha * tphi * (hsigma_st * calpha * sphi - hx_st)) / Det_L Linv_13 = ( -tphi - * (calpha - hx_st * salpha * salpha * sphi + hy_st * calpha * salpha * sphi) + * ( + calpha + - hx_st * salpha * salpha * sphi + + hy_st * calpha * salpha * sphi + ) / Det_L ) Linv_21 = (calpha * tphi * (-hy_st + hsigma_st * salpha * sphi)) / Det_L - Linv_22 = (1.0 / cphi + calpha * tphi * (hx_st - hsigma_st * calpha * sphi)) / Det_L + Linv_22 = ( + 1.0 / cphi + calpha * tphi * (hx_st - hsigma_st * calpha * sphi) + ) / Det_L Linv_23 = ( -tphi - * (salpha - hy_st * calpha * calpha * sphi + hx_st * calpha * salpha * sphi) + * ( + salpha + - hy_st * calpha * calpha * sphi + + hx_st * calpha * salpha * sphi + ) / Det_L ) @@ -85,6 +110,11 @@ def inv_boost(x_st, px_st, y_st, py_st, sigma_st, delta_st, parboost): px_i = px_st * cphi + h * calpha * tphi py_i = py_st * cphi + h * salpha * tphi - delta_i = delta_st + px_i * calpha * tphi + py_i * salpha * tphi - h * tphi * tphi + delta_i = ( + delta_st + + px_i * calpha * tphi + + py_i * salpha * tphi + - h * tphi * tphi + ) return x_i, px_i, y_i, py_i, sigma_i, delta_i diff --git a/pysixtrack/be_beamfields/gaussian_fields.py b/pysixtrack/be_beamfields/gaussian_fields.py index c81b8e5..765e306 100644 --- a/pysixtrack/be_beamfields/gaussian_fields.py +++ b/pysixtrack/be_beamfields/gaussian_fields.py @@ -11,7 +11,9 @@ def _get_transv_field_gauss_round(sigma, Delta_x, Delta_y, x, y, mathlib): if r2 < 1e-20: temp = sqrt(r2) / (2.0 * pi * epsilon_0 * sigma) # linearised else: - temp = (1 - exp(-0.5 * r2 / (sigma * sigma))) / (2.0 * pi * epsilon_0 * r2) + temp = (1 - exp(-0.5 * r2 / (sigma * sigma))) / ( + 2.0 * pi * epsilon_0 * r2 + ) Ex = temp * (x - Delta_x) Ey = temp * (y - Delta_y) @@ -24,7 +26,9 @@ def _get_transv_field_gauss_round(sigma, Delta_x, Delta_y, x, y, mathlib): ) -def _get_transv_field_gauss_ellip(sigmax, sigmay, Delta_x, Delta_y, x, y, mathlib): +def _get_transv_field_gauss_ellip( + sigmax, sigmay, Delta_x, Delta_y, x, y, mathlib +): abs = mathlib.abs exp = mathlib.exp @@ -34,7 +38,8 @@ def _get_transv_field_gauss_ellip(sigmax, sigmay, Delta_x, Delta_y, x, y, mathli sqrt_pi = sqrt(pi) # I always go to the first quadrant and then apply the signs a posteriori - # numerically more stable (see http://inspirehep.net/record/316705/files/slac-pub-5582.pdf) + # numerically more stable + # (see http://inspirehep.net/record/316705/files/slac-pub-5582.pdf) abx = abs(x - Delta_x) aby = abs(y - Delta_y) @@ -54,7 +59,8 @@ def _get_transv_field_gauss_ellip(sigmax, sigmay, Delta_x, Delta_y, x, y, mathli w_etaBE_re, w_etaBE_im = wfun(etaBE_re / S, etaBE_im / S) expBE = exp( - -abx * abx / (2 * sigmax * sigmax) - aby * aby / (2 * sigmay * sigmay) + -abx * abx / (2 * sigmax * sigmax) + - aby * aby / (2 * sigmay * sigmay) ) Ex = factBE * (w_zetaBE_im - w_etaBE_im * expBE) @@ -75,7 +81,8 @@ def _get_transv_field_gauss_ellip(sigmax, sigmay, Delta_x, Delta_y, x, y, mathli w_etaBE_re, w_etaBE_im = wfun(etaBE_re / S, etaBE_im / S) expBE = exp( - -aby * aby / (2 * sigmay * sigmay) - abx * abx / (2 * sigmax * sigmax) + -aby * aby / (2 * sigmay * sigmay) + - abx * abx / (2 * sigmax * sigmax) ) Ey = factBE * (w_zetaBE_im - w_etaBE_im * expBE) @@ -97,7 +104,9 @@ def _get_transv_field_gauss_ellip(sigmax, sigmay, Delta_x, Delta_y, x, y, mathli ) -def _get_Ex_Ey_Gx_Gy_gauss(x, y, sigma_x, sigma_y, min_sigma_diff, skip_Gs, mathlib): +def _get_Ex_Ey_Gx_Gy_gauss( + x, y, sigma_x, sigma_y, min_sigma_diff, skip_Gs, mathlib +): abs = mathlib.abs pi = mathlib.pi @@ -109,7 +118,9 @@ def _get_Ex_Ey_Gx_Gy_gauss(x, y, sigma_x, sigma_y, min_sigma_diff, skip_Gs, math Delta_x = 0.0 Delta_y = 0.0 - Ex, Ey = get_transv_field_gauss_round(sigma, Delta_x, Delta_y, x, y, mathlib) + Ex, Ey = get_transv_field_gauss_round( + sigma, Delta_x, Delta_y, x, y, mathlib + ) if not skip_Gs: Gx = ( @@ -191,4 +202,6 @@ def _get_Ex_Ey_Gx_Gy_gauss(x, y, sigma_x, sigma_y, min_sigma_diff, skip_Gs, math return Ex, Ey, Gx, Gy -get_Ex_Ey_Gx_Gy_gauss = np.vectorize(_get_Ex_Ey_Gx_Gy_gauss, excluded=["mathlib"]) +get_Ex_Ey_Gx_Gy_gauss = np.vectorize( + _get_Ex_Ey_Gx_Gy_gauss, excluded=["mathlib"] +) diff --git a/pysixtrack/be_beamfields/propagate_sigma_matrix.py b/pysixtrack/be_beamfields/propagate_sigma_matrix.py index 508a64f..efbe1a2 100644 --- a/pysixtrack/be_beamfields/propagate_sigma_matrix.py +++ b/pysixtrack/be_beamfields/propagate_sigma_matrix.py @@ -82,7 +82,18 @@ def _propagate_Sigma_matrix( # ~ Sig_33 = Sig_33_0 + 2.*Sig_34_0*S+Sig_44_0*S*S # ~ Sig_13 = Sig_13_0 + (Sig_14_0+Sig_23_0)*S+Sig_24_0*S*S - Sig_11, Sig_12, Sig_13, Sig_14, Sig_22, Sig_23, Sig_24, Sig_33, Sig_34, Sig_44 = propagate_full_Sigma_matrix_in_drift( + ( + Sig_11, + Sig_12, + Sig_13, + Sig_14, + Sig_22, + Sig_23, + Sig_24, + Sig_33, + Sig_34, + Sig_44, + ) = propagate_full_Sigma_matrix_in_drift( Sig_11_0, Sig_12_0, Sig_13_0, @@ -117,7 +128,8 @@ def _propagate_Sigma_matrix( sqrt_a2_c2 = np.sqrt(a * a + c * c) if sqrt_a2_c2 * sqrt_a2_c2 * sqrt_a2_c2 < threshold_singular: - # equivalent to: if np.abs(c) threshold_singular: cos2theta = np.abs(b) / np.sqrt(b * b + 4 * d * d) @@ -144,7 +156,9 @@ def _propagate_Sigma_matrix( dS_cos2theta = mysign(a) * ( 0.5 * b / sqrt_a2_c2 - - a * (a * b + 2 * c * d) / (2 * sqrt_a2_c2 * sqrt_a2_c2 * sqrt_a2_c2) + - a + * (a * b + 2 * c * d) + / (2 * sqrt_a2_c2 * sqrt_a2_c2 * sqrt_a2_c2) ) dS_costheta = 1 / (4 * costheta) * dS_cos2theta @@ -173,7 +187,9 @@ def _propagate_Sigma_matrix( Sig_11_hat = 0.5 * (W + signR * sqrtT) Sig_33_hat = 0.5 * (W - signR * sqrtT) - dS_cos2theta = signR * (dS_R / sqrtT - R / (2 * sqrtT * sqrtT * sqrtT) * dS_T) + dS_cos2theta = signR * ( + dS_R / sqrtT - R / (2 * sqrtT * sqrtT * sqrtT) * dS_T + ) dS_costheta = 1 / (4 * costheta) * dS_cos2theta if np.abs(sintheta) < threshold_singular and handle_singularities: @@ -216,12 +232,16 @@ def _propagate_Sigma_matrix( propagate_Sigma_matrix = np.vectorize(_propagate_Sigma_matrix) # def propagate_Sigma_matrix(Sigmas_at_0, -# S, threshold_singular=1e-16, handle_singularities=True): +# S, +# threshold_singular=1e-16, +# handle_singularities=True): # # Sig_11_hat, Sig_33_hat, costheta, sintheta,\ # dS_Sig_11_hat, dS_Sig_33_hat, dS_costheta, dS_sintheta,\ # extra_data_list = np.vectorize(_propagate_Sigma_matrix, -# excluded=['Sigmas_at_0', 'threshold_singular', 'handle_singularities'])( +# excluded=['Sigmas_at_0', +# 'threshold_singular', +# 'handle_singularities'])( # Sigmas_at_0, S, threshold_singular, handle_singularities) # # extra_data = {} @@ -250,7 +270,8 @@ def propagate_full_Sigma_matrix_in_drift( S, ): - # Can be found in matrix form in A. Wolsky, "Beam dynamics in high energy particle accelerators" + # Can be found in matrix form in A. Wolsky, + # "Beam dynamics in high energy particle accelerators" Sig_11 = Sig_11_0 + 2.0 * Sig_12_0 * S + Sig_22_0 * S * S Sig_33 = Sig_33_0 + 2.0 * Sig_34_0 * S + Sig_44_0 * S * S diff --git a/pysixtrack/be_beamfields/slicing.py b/pysixtrack/be_beamfields/slicing.py index e2b64c8..b968436 100644 --- a/pysixtrack/be_beamfields/slicing.py +++ b/pysixtrack/be_beamfields/slicing.py @@ -30,7 +30,8 @@ def constant_charge_slicing_gaussian(N_part_tot, sigmaz, N_slices): ) * float(N_slices) ) - # the multiplication times n slices comes from the fact that we have to divide by the slice charge, i.e. 1./N + # the multiplication times n slices comes from the fact that + # we have to divide by the slice charge, i.e. 1./N z_centroids.append(this_centroid) last_centroid = ( diff --git a/pysixtrack/be_beamfields/spacecharge.py b/pysixtrack/be_beamfields/spacecharge.py index a42a88b..ce1806c 100644 --- a/pysixtrack/be_beamfields/spacecharge.py +++ b/pysixtrack/be_beamfields/spacecharge.py @@ -1,6 +1,3 @@ -from scipy.constants import e as qe -from scipy.constants import c as clight - from pysixtrack.base_classes import Element from .gaussian_fields import get_Ex_Ey_Gx_Gy_gauss @@ -27,7 +24,7 @@ def track(self, p): sigma_x = self.sigma_x sigma_y = self.sigma_y - charge = p.qratio * p.q0 * qe + charge = p.qratio * p.q0 * p.echarge x = p.x - self.x_co px = p.px y = p.y - self.y_co @@ -36,10 +33,16 @@ def track(self, p): chi = p.chi beta = p.beta0 / p.rvv - p0c = p.p0c * qe + p0c = p.p0c * p.echarge Ex, Ey = get_Ex_Ey_Gx_Gy_gauss( - x, y, sigma_x, sigma_y, min_sigma_diff=1e-10, skip_Gs=True, mathlib=p._m + x, + y, + sigma_x, + sigma_y, + min_sigma_diff=1e-10, + skip_Gs=True, + mathlib=p._m, ) fact_kick = ( @@ -49,7 +52,7 @@ def track(self, p): * charge * (1 - beta * beta) / p0c - * self.length + * length ) px += fact_kick * Ex @@ -84,7 +87,7 @@ def track(self, p): sigma_x = self.sigma_x sigma_y = self.sigma_y - charge = p.qratio * p.q0 * qe + charge = p.qratio * p.q0 * p.echarge x = p.x - self.x_co px = p.px y = p.y - self.y_co @@ -94,18 +97,30 @@ def track(self, p): chi = p.chi beta = p.beta0 / p.rvv - p0c = p.p0c * qe + p0c = p.p0c * p.echarge Ex, Ey = get_Ex_Ey_Gx_Gy_gauss( - x, y, sigma_x, sigma_y, min_sigma_diff=1e-10, skip_Gs=True, mathlib=p._m + x, + y, + sigma_x, + sigma_y, + min_sigma_diff=1e-10, + skip_Gs=True, + mathlib=p._m, ) - fact_kick = chi * charge * charge * (1 - beta * beta) / p0c * length + fact_kick = ( + chi * charge * charge * (1 - beta * beta) / p0c * length + ) fact_kick *= ( self.number_of_particles / (bunchlength_rms * sqrt(2 * pi)) - * exp(-0.5 * (sigma / bunchlength_rms) * (sigma / bunchlength_rms)) + * exp( + -0.5 + * (sigma / bunchlength_rms) + * (sigma / bunchlength_rms) + ) ) px += fact_kick * Ex diff --git a/pysixtrack/be_beamfields/tools.py b/pysixtrack/be_beamfields/tools.py index 12032ff..1fde524 100644 --- a/pysixtrack/be_beamfields/tools.py +++ b/pysixtrack/be_beamfields/tools.py @@ -21,22 +21,26 @@ def get_points_twissdata_for_elements( if use_survey: mad.survey() - seq = mad.sequence[seq_name] - bb_xyz_points = [] bb_twissdata = { kk: [] - for kk in _sigma_names + _beta_names + "dispersion_x dispersion_y x y".split() + for kk in _sigma_names + + _beta_names + + "dispersion_x dispersion_y x y".split() } for eename in ele_names: bb_xyz_points.append( - MadPoint(eename + ":1", mad, use_twiss=use_twiss, use_survey=use_survey) + MadPoint( + eename + ":1", mad, use_twiss=use_twiss, use_survey=use_survey + ) ) i_twiss = np.where(mad.table.twiss.name == (eename + ":1"))[0][0] for sn in _sigma_names: - bb_twissdata[sn].append(getattr(mad.table.twiss, "sig%d" % sn)[i_twiss]) + bb_twissdata[sn].append( + getattr(mad.table.twiss, "sig%d" % sn)[i_twiss] + ) for kk in ["betx", "bety"]: bb_twissdata[kk].append(mad.table.twiss[kk][i_twiss]) @@ -81,7 +85,11 @@ def get_points_twissdata_for_element_type( ) points, twissdata = get_points_twissdata_for_elements( - element_names, mad, seq_name, use_survey=use_survey, use_twiss=use_twiss + element_names, + mad, + seq_name, + use_survey=use_survey, + use_twiss=use_twiss, ) return elements, element_names, points, twissdata @@ -107,8 +115,15 @@ def find_alpha_and_phi(dpx, dpy): return alpha, phi -def get_bb_names_madpoints_sigmas(mad, seq_name, use_survey=True, use_twiss=True): - _, element_names, points, twissdata = get_points_twissdata_for_element_type( +def get_bb_names_madpoints_sigmas( + mad, seq_name, use_survey=True, use_twiss=True +): + ( + _, + element_names, + points, + twissdata, + ) = get_points_twissdata_for_element_type( mad, seq_name, ele_type="beambeam", @@ -203,11 +218,13 @@ def setup_beam_beam_in_line( ): sep_x, sep_y = find_bb_separations( - points_weak=bb_points_weak, points_strong=bb_points_strong, names=bb_names + points_weak=bb_points_weak, + points_strong=bb_points_strong, + names=bb_names, ) i_bb = 0 - assert bb_coupling == False # Not implemented + assert bb_coupling is False # Not implemented for ee, eename in zip(line.elements, line.element_names): if isinstance(ee, pysixtrack.elements.BeamBeam4D): assert eename == bb_names[i_bb] @@ -269,7 +286,9 @@ def determine_sc_locations(line, n_SCkicks, length_fuzzy): sc_locations.append(s_closest) else: sc_locations.append(s) - sc_lengths = np.diff(sc_locations).tolist() + [s_elements[-1] - sc_locations[-1]] + sc_lengths = np.diff(sc_locations).tolist() + [ + s_elements[-1] - sc_locations[-1] + ] return sc_locations, sc_lengths @@ -371,7 +390,9 @@ def setup_spacecharge_coasting_in_line( ss.enabled = True -def check_spacecharge_consistency(sc_elements, sc_names, sc_lengths, mad_sc_names): +def check_spacecharge_consistency( + sc_elements, sc_names, sc_lengths, mad_sc_names +): assert len(sc_elements) == len(mad_sc_names) assert len(sc_lengths) == len(mad_sc_names) for ii, (ss, nn) in enumerate(zip(sc_elements, sc_names)): diff --git a/pysixtrack/elements.py b/pysixtrack/elements.py index 61ffd80..a131bfc 100644 --- a/pysixtrack/elements.py +++ b/pysixtrack/elements.py @@ -78,12 +78,23 @@ class Multipole(Element): """ Multipole """ _description = [ - ("knl", "m^-n", "Normalized integrated strength of normal components", (0,)), - ("ksl", "m^-n", "Normalized integrated strength of skew components", ()), + ( + "knl", + "m^-n", + "Normalized integrated strength of normal components", + lambda: [0], + ), + ( + "ksl", + "m^-n", + "Normalized integrated strength of skew components", + lambda: [0], + ), ( "hxl", "rad", - "Rotation angle of the reference trajectory in the horizzontal plane", + "Rotation angle of the reference trajectory" + "in the horizzontal plane", 0, ), ( @@ -139,14 +150,22 @@ def track(self, p): class RFMultipole(Element): + """ + H= -l sum Re[ (kn[n](zeta) + i ks[n](zeta) ) (x+iy)**(n+1)/ n ] + + kn[n](z) = k_n cos(2pi w tau + pn/180*pi) + ks[n](z) = k_n cos(2pi w tau + pn/180*pi) + + """ + _description = [ ("voltage", "volt", "Voltage", 0), ("frequency", "hertz", "Frequency", 0), ("lag", "degree", "Delay in the cavity sin(lag - w tau)", 0), - ("knl", "", "...", (0,)), - ("ksl", "", "...", []), - ("pn", "", "...", (0,)), - ("ps", "", "...", []), + ("knl", "", "...", lambda: [0]), + ("ksl", "", "...", lambda: [0]), + ("pn", "", "...", lambda: [0]), + ("ps", "", "...", lambda: [0]), ] @property @@ -162,30 +181,24 @@ def track(self, p): tau = p.zeta / p.rvv / p.beta0 ktau = k * tau deg2rad = pi / 180 - knl = np.array(self.knl) - ksl = np.array(self.ksl) - pn = np.array(self.pn) - ps = np.array(self.ps) knl = _arrayofsize(self.knl, order + 1) ksl = _arrayofsize(self.ksl, order + 1) - pn = _arrayofsize(self.pn, order + 1) * deg2rad - ktau - ps = _arrayofsize(self.ps, order + 1) * deg2rad - ktau + pn = _arrayofsize(self.pn, order + 1) * deg2rad + ps = _arrayofsize(self.ps, order + 1) * deg2rad x = p.x y = p.y - fnr = knl[0] - fni = 0 - fsr = ksl[0] - fsi = 0 dpx = 0 dpy = 0 dptr = 0 zre = 1 zim = 0 for ii in range(order + 1): - cn = cos(pn[ii]) - sn = sin(pn[ii]) - cs = cos(ps[ii]) - ss = sin(ps[ii]) + pn_ii = pn[ii] - ktau + ps_ii = ps[ii] - ktau + cn = cos(pn_ii) + sn = sin(pn_ii) + cs = cos(ps_ii) + ss = sin(ps_ii) # transverse kick order i! dpx += cn * knl[ii] * zre - cs * ksl[ii] * zim dpy += cs * ksl[ii] * zre + cn * knl[ii] * zim @@ -194,8 +207,8 @@ def track(self, p): zim = (zim * y + zre * x) / (ii + 1) zre = zret fnr = knl[ii] * zre - fni = knl[ii] * zim - fsr = ksl[ii] * zre + # fni = knl[ii] * zim + # fsr = ksl[ii] * zre fsi = ksl[ii] * zim # energy kick order i+1 dptr += sn * fnr - ss * fsi @@ -203,8 +216,8 @@ def track(self, p): chi = p.chi p.px += -chi * dpx p.py += chi * dpy - phase = self.lag * deg2rad - ktau - p.add_to_energy(chi * (self.voltage * sin(phase) + dptr)) + dv0 = self.voltage * sin(self.lag * deg2rad - ktau) + p.add_to_energy(chi * (dv0 - p.p0c * k * dptr)) class Cavity(Element): @@ -222,7 +235,25 @@ def track(self, p): k = 2 * pi * self.frequency / p.clight tau = p.zeta / p.rvv / p.beta0 phase = self.lag * pi / 180 - k * tau - p.add_to_energy(p.chi * self.voltage * sin(phase)) + p.add_to_energy(p.qratio * p.q0 * self.voltage * sin(phase)) + + +class SawtoothCavity(Element): + """Radio-frequency cavity""" + + _description = [ + ("voltage", "V", "Integrated energy change", 0), + ("frequency", "Hz", "Equivalent Frequency of the cavity", 0), + ("lag", "degree", "Delay in the cavity `lag - w tau`", 0), + ] + + def track(self, p): + pi = p._m.pi + k = 2 * pi * self.frequency / p.clight + tau = p.zeta / p.rvv / p.beta0 + phase = self.lag * pi / 180 - k * tau + phase = (phase + pi) % (2 * pi) - pi + p.add_to_energy(p.qratio * p.q0 * self.voltage * phase) class XYShift(Element): @@ -267,8 +298,8 @@ class LimitRect(Element): def track(self, particle): - x=particle.x - y=particle.y + x = particle.x + y = particle.y if not hasattr(particle.state, "__iter__"): particle.state = int( @@ -287,9 +318,10 @@ def track(self, particle): & (y <= self.max_y) ) particle.remove_lost_particles() - if len(particle.state == 0): + if len(particle.state) == 0: return -1 + class LimitEllipse(Element): _description = [ ("a", "m^2", "Horizontal semiaxis", 1.0), @@ -298,20 +330,22 @@ class LimitEllipse(Element): def track(self, particle): - x=particle.x - y=particle.y + x = particle.x + y = particle.y if not hasattr(particle.state, "__iter__"): particle.state = int( - x*x/(self.a*self.a) + y*y/(self.b*self.b) <= 1.) + x * x / (self.a * self.a) + y * y / (self.b * self.b) <= 1.0 + ) if particle.state != 1: - return particle.state + return "Particle lost" else: particle.state = np.int_( - x*x/(self.a*self.a) + y*y/(self.b*self.b) <= 1.) + x * x / (self.a * self.a) + y * y / (self.b * self.b) <= 1.0 + ) particle.remove_lost_particles() - if len(particle.state == 0): - return -1 + if len(particle.state) == 0: + return "All particle lost" class BeamMonitor(Element): @@ -323,7 +357,7 @@ class BeamMonitor(Element): ("min_particle_id", "", "", 0), ("is_rolling", "", "", False), ("is_turn_ordered", "", "", True), - ("data", "", "...", []), + ("data", "", "...", lambda: []), ] def offset(self, particle): @@ -373,6 +407,28 @@ def track(self, p): cos = p._m.cos corr = 2 * self.h * self.hgap * self.fint r21 = self.h * tan(self.e1) - r43 = -self.h * tan(self.e1 - corr / cos(self.e1) * (1 + sin(self.e1) ** 2)) + r43 = -self.h * tan( + self.e1 - corr / cos(self.e1) * (1 + sin(self.e1) ** 2) + ) p.px += r21 * p.x p.py += r43 * p.y + + +__all__ = [ + "BeamBeam4D", + "BeamBeam6D", + "BeamMonitor", + "Cavity", + "DipoleEdge", + "Drift", + "DriftExact", + "Element", + "LimitEllipse", + "LimitRect", + "Multipole", + "RFMultipole", + "SRotation", + "SpaceChargeBunched", + "SpaceChargeCoasting", + "XYShift", +] diff --git a/pysixtrack/line.py b/pysixtrack/line.py index ea90aaf..97a7cf8 100644 --- a/pysixtrack/line.py +++ b/pysixtrack/line.py @@ -5,7 +5,7 @@ from .particles import Particles from .loader_sixtrack import _expand_struct -from .loader_mad import _from_madx_sequence +from .loader_mad import iter_from_madx_sequence class Line(Element): @@ -62,19 +62,30 @@ def track(self, p): break return ret - def track_elem_by_elem(self, p): + def track_elem_by_elem(self, p, start=True, end=False): out = [] - for el in self.elements: + if start: out.append(p.copy()) + for el in self.elements: ret = el.track(p) if ret is not None: break + out.append(p.copy()) + if end: + out.append(p.copy()) return out + def insert_element(self, idx, element, name): + self.elements.insert(idx, element) + self.element_names.insert(idx, name) + # assert len(self.elements) == len(self.element_names) + return self + def append_element(self, element, name): self.elements.append(element) self.element_names.append(name) - assert len(self.elements) == len(self.element_names) + # assert len(self.elements) == len(self.element_names) + return self def get_length(self): thick_element_types = (elements.Drift, elements.DriftExact) @@ -191,7 +202,9 @@ def _one_turn_map(coord): pcl.delta = coord[5] self.track(pcl) - coord_out = np.array([pcl.x, pcl.px, pcl.y, pcl.py, pcl.sigma, pcl.delta]) + coord_out = np.array( + [pcl.x, pcl.px, pcl.y, pcl.py, pcl.sigma, pcl.delta] + ) return coord_out @@ -204,7 +217,9 @@ def _CO_error(coord): else: import scipy.optimize as so - res = so.minimize(_CO_error, np.array(guess), tol=1e-20, method=method) + res = so.minimize( + _CO_error, np.array(guess), tol=1e-20, method=method + ) pcl = Particles(p0c=p0c) @@ -297,15 +312,154 @@ def from_sixinput(cls, sixinput, classes=elements): other_info["rest"] = rest other_info["iconv"] = iconv - return line, other_info + line.other_info = other_info + + return line @classmethod def from_madx_sequence( - cls, sequence, classes=elements, ignored_madtypes=[], exact_drift=False + cls, + sequence, + classes=elements, + ignored_madtypes=[], + exact_drift=False, + drift_threshold=1e-6, + install_apertures=False, ): line = cls(elements=[], element_names=[]) - return _from_madx_sequence( - line, sequence, classes, ignored_madtypes, exact_drift - ) + for el_name, el in iter_from_madx_sequence( + sequence, + classes=classes, + ignored_madtypes=ignored_madtypes, + exact_drift=exact_drift, + drift_threshold=drift_threshold, + install_apertures=install_apertures, + ): + line.append_element(el, el_name) + + return line + + # error handling (alignment, multipole orders, ...): + + def add_offset_error_to(self, element, dx=0, dy=0): + # will raise error if element not present: + idx_el = self.elements.index(element) + el_name = self.element_names[idx_el] + if not dx and not dy: + return + xyshift = elements.XYShift(dx=dx, dy=dy) + inv_xyshift = elements.XYShift(dx=-dx, dy=-dy) + self.insert_element(idx_el, xyshift, el_name + "_offset_in") + self.insert_element(idx_el + 2, inv_xyshift, el_name + "_offset_out") + + def add_tilt_error_to(self, element, angle): + # will raise error if element not present: + idx_el = self.elements.index(element) + el_name = self.element_names[idx_el] + if not angle: + return + srot = elements.SRotation(angle=angle) + inv_srot = elements.SRotation(angle=-angle) + self.insert_element(idx_el, srot, el_name + "_tilt_in") + self.insert_element(idx_el + 2, inv_srot, el_name + "_tilt_out") + + def add_multipole_error_to(self, element, knl=[], ksl=[]): + # will raise error if element not present: + assert element in self.elements + # normal components + knl = np.trim_zeros(knl, trim="b") + if len(element.knl) < len(knl): + element.knl += [0] * (len(knl) - len(element.knl)) + for i, component in enumerate(knl): + element.knl[i] += component + # skew components + ksl = np.trim_zeros(ksl, trim="b") + if len(element.ksl) < len(ksl): + element.ksl += [0] * (len(ksl) - len(element.ksl)) + for i, component in enumerate(ksl): + element.ksl[i] += component + + def apply_madx_errors(self, error_table): + """Applies MAD-X error_table (with multipole errors, + dx and dy offset errors and dpsi tilt errors) + to existing elements in this Line instance. + + Return error_table names which were not found in the + elements of this Line instance (and thus not treated). + + Example via cpymad: + madx = cpymad.madx.Madx() + + # (...set up lattice and errors in cpymad...) + + seq = madx.sequence.some_lattice + # store already applied errors: + madx.command.esave(file='lattice_errors.err') + madx.command.readtable( + file='lattice_errors.err', table="errors") + errors = madx.table.errors + + pysixtrack_line = Line.from_madx_sequence(seq) + pysixtrack_line.apply_madx_errors(errors) + """ + max_multipole_err = 0 + # check for errors in table which cannot be treated yet: + for error_type in error_table.keys(): + if error_type == "name": + continue + if any(error_table[error_type]): + if error_type in ["dx", "dy", "dpsi"]: + # available alignment error + continue + elif error_type[:1] == "k" and error_type[-1:] == "l": + # available multipole error + order = int("".join(c for c in error_type if c.isdigit())) + max_multipole_err = max(max_multipole_err, order) + else: + print( + f'Warning: MAD-X error type "{error_type}"' + " not implemented yet." + ) + + elements_not_found = [] + for i_line, element_name in enumerate(error_table["name"]): + if element_name not in self.element_names: + elements_not_found.append(element_name) + continue + element = self.elements[self.element_names.index(element_name)] + + # add offset + try: + dx = error_table["dx"][i_line] + except KeyError: + dx = 0 + try: + dy = error_table["dy"][i_line] + except KeyError: + dy = 0 + self.add_offset_error_to(element, dx, dy) + + # add tilt + try: + dpsi = error_table["dpsi"][i_line] + self.add_tilt_error_to(element, angle=dpsi * 180 / np.pi) + except KeyError: + pass + + # add multipole error + knl = [ + error_table[f"k{o}l"][i_line] + for o in range(max_multipole_err + 1) + ] + ksl = [ + error_table[f"k{o}sl"][i_line] + for o in range(max_multipole_err + 1) + ] + self.add_multipole_error_to(element, knl, ksl) + + return elements_not_found + + +elements.Line = Line diff --git a/pysixtrack/loader_mad.py b/pysixtrack/loader_mad.py index e94f7d3..e4c9748 100644 --- a/pysixtrack/loader_mad.py +++ b/pysixtrack/loader_mad.py @@ -3,12 +3,17 @@ from . import elements as pysixtrack_elements -def _from_madx_sequence( - line, sequence, classes=pysixtrack_elements, ignored_madtypes=[], exact_drift=False +def iter_from_madx_sequence( + sequence, + classes=pysixtrack_elements, + ignored_madtypes=[], + exact_drift=False, + drift_threshold=1e-6, + install_apertures=False, ): if exact_drift: - myDrift = classes.ExactDrift + myDrift = classes.DriftExact else: myDrift = classes.Drift seq = sequence @@ -20,9 +25,8 @@ def _from_madx_sequence( i_drift = 0 for ee, pp in zip(elements, ele_pos): - if pp > old_pp: - line.elements.append(myDrift(length=(pp - old_pp))) - line.element_names.append("drift_%d" % i_drift) + if pp > old_pp + drift_threshold: + yield "drift_%d" % i_drift, myDrift(length=(pp - old_pp)) old_pp = pp i_drift += 1 @@ -71,11 +75,33 @@ def _from_madx_sequence( knl=[-ee.kick], ksl=[], length=ee.lrad, hxl=0, hyl=0 ) elif mad_etype == "dipedge": - newele = classes.DipoleEdge(h=ee.h, e1=ee.e1, hgap=ee.hgap, fint=ee.fint) + newele = classes.DipoleEdge( + h=ee.h, e1=ee.e1, hgap=ee.hgap, fint=ee.fint + ) elif mad_etype == "rfcavity": newele = classes.Cavity( - voltage=ee.volt * 1e6, frequency=ee.freq * 1e6, lag=ee.lag * 360 + voltage=ee.volt * 1e6, + frequency=ee.freq * 1e6, + lag=ee.lag * 360, + ) + + elif mad_etype == "rfmultipole": + newele = classes.RFMultipole( + voltage=ee.volt * 1e6, + frequency=ee.freq * 1e6, + lag=ee.lag * 360, + knl=ee.knl[:], + ksl=ee.ksl[:], + pn=[v * 360 for v in ee.pnl], + ps=[v * 360 for v in ee.psl], + ) + + elif mad_etype == "crabcavity": + newele = classes.RFMultipole( + frequency=ee.freq * 1e6, + knl=[ee.volt / sequence.beam.pc], + pn=[ee.lag * 360 - 90], ) elif mad_etype == "beambeam": @@ -146,18 +172,29 @@ def _from_madx_sequence( else: newele = myDrift(length=ee.l) else: - raise ValueError("Not recognized") + raise ValueError(f'MAD element "{mad_etype}" not recognized') - line.elements.append(newele) - line.element_names.append(eename) + yield eename, newele - if hasattr(seq, "length") and seq.length > old_pp: - line.elements.append(myDrift(length=(seq.length - old_pp))) - line.element_names.append("drift_%d" % i_drift) + if install_apertures & (min(ee.aperture) > 0): + if ee.apertype == "rectangle": + newaperture = pysixtrack_elements.LimitRect( + min_x=-ee.aperture[0], + max_x=ee.aperture[0], + min_y=-ee.aperture[1], + max_y=ee.aperture[1], + ) + elif ee.apertype == "ellipse": + newaperture = pysixtrack_elements.LimitEllipse( + a=ee.aperture[0], b=ee.aperture[1] + ) + else: + raise ValueError("Aperture type not recognized") - other_info = {} + yield eename + "_aperture", newaperture - return line, other_info + if hasattr(seq, "length") and seq.length > old_pp: + yield "drift_%d" % i_drift, myDrift(length=(seq.length - old_pp)) class MadPoint(object): @@ -225,10 +262,18 @@ def __init__(self, name, mad, use_twiss=True, use_survey=True): ] ) phim = np.array( - [[1, 0, 0], [0, np.cos(phi), np.sin(phi)], [0, -np.sin(phi), np.cos(phi)]] + [ + [1, 0, 0], + [0, np.cos(phi), np.sin(phi)], + [0, -np.sin(phi), np.cos(phi)], + ] ) psim = np.array( - [[np.cos(psi), -np.sin(psi), 0], [np.sin(psi), np.cos(psi), 0], [0, 0, 1]] + [ + [np.cos(psi), -np.sin(psi), 0], + [np.sin(psi), np.cos(psi), 0], + [0, 0, 1], + ] ) wm = np.dot(thetam, np.dot(phim, psim)) self.ex = np.dot(wm, np.array([1, 0, 0])) @@ -249,3 +294,27 @@ def dist(self, other): def distxy(self, other): dd = self.p - other.p return np.dot(dd, self.ex), np.dot(dd, self.ey) + + +def mad_benchmark(mtype, attrs, pc=0.2, x=0, px=0, y=0, py=0, t=0, pt=0): + import pysixtrack + from cpymad.madx import Madx + + mad = Madx(stdout=False) + madtype = mad.command[mtype] + mad.beam(particle="proton", pc=pc) + madtype.clone("mm", **attrs) + mad.input("bench: line=(mm)") + mad.use(sequence="bench") + mad.track(onepass=True, dump=False) + mad.start(x=x, px=px, y=y, py=py, t=t, pt=pt) + mad.run() + mad.endtrack() + p_mad = pysixtrack.Particles.from_madx_track(mad) + p_six = p_mad.copy(0) + line = pysixtrack.Line.from_madx_sequence( + mad.sequence.bench, exact_drift=True + ) + line.track(p_six) + p_mad.copy(1).compare(p_six, rel_tol=0) + return mad, line, p_mad, p_six diff --git a/pysixtrack/loader_sixtrack.py b/pysixtrack/loader_sixtrack.py index 0e58fe5..d652c3f 100644 --- a/pysixtrack/loader_sixtrack.py +++ b/pysixtrack/loader_sixtrack.py @@ -39,15 +39,19 @@ def _expand_struct(sixinput, convert=elements): exclude = False # add special elenents if "CAV" in sixinput.iter_struct(): - sixinput.single["CAV"] = [12 * sixinput.ition, sixinput.u0, sixinput.harm, 0] + sixinput.single["CAV"] = [ + 12 * sixinput.ition, + sixinput.u0, + sixinput.harm, + 0, + ] for nnn in sixinput.iter_struct(): exclude = False ccc = count.setdefault(nnn, 0) if len(sixinput.single[nnn]) == 7: - etype, d1, d2, d3, d4, d5, d6 = sixinput.single[nnn] + etype, d1, d2, d3, _, _, _ = sixinput.single[nnn] else: etype, d1, d2, d3, = sixinput.single[nnn] - d4, d5, d6 = None, None, None elem = None if nnn in sixinput.align: dx, dy, tilt = sixinput.align[nnn][ccc] @@ -82,18 +86,18 @@ def _expand_struct(sixinput, convert=elements): knl, ksl = sixinput.get_knl(nnn, ccc) hxl = 0 hyl = 0 - l = 0 + length = 0 # beaware of the case of thick bend # see beambeam example where mbw has the length if d3 == -1: hxl = -d1 - l = d2 + length = d2 knl[0] = hxl elif d3 == -2: hyl = -d1 # strange sign!!! - l = d2 + length = d2 ksl[0] = hyl - elem = Multipole(knl=knl, ksl=ksl, hxl=hxl, hyl=hyl, length=l) + elem = Multipole(knl=knl, ksl=ksl, hxl=hxl, hyl=hyl, length=length) elif etype == 12: # e0=sixinput.initialconditions[-1] # p0c=np.sqrt(e0**2-sixinput.pma**2) diff --git a/pysixtrack/particles.py b/pysixtrack/particles.py index d2ef319..2664131 100644 --- a/pysixtrack/particles.py +++ b/pysixtrack/particles.py @@ -7,6 +7,41 @@ def count_not_none(*lst): class Particles(object): + """ + Coordinates: + + **fields** + + **properties + + s [m] Reference accumulated pathlength + x [m] Horizontal offset + px [1] Px / (m/m0 * p0c) = beta_x gamma /(beta0 gamma0) + y [m Vertical offset] + py [1] Py / (m/m0 * p0c) + delta [1] Pc / (m/m0 * p0c) - 1 + ptau [1] Energy / (m/m0 * p0c) - 1 + psigma [1] ptau/beta0 + rvv [1] beta/beta0 + rpp [1] 1/(1+delta) = (m/m0 * p0c) / Pc + zeta [m] beta (s/beta0 - ct ) + tau [m] + sigma [m] s - beta0 ct = rvv * zeta + mass0 [eV] + q0 [e] reference carge + p0c [eV] reference momentum + energy0 [eV] refernece energy + gamma0 [1] reference relativistic gamma + beta0 [1] reference relativistix beta + chi [1] q/ q0 * m0/m = qratio / mratio + mratio [1] mass/mass0 + qratio [1] q / q0 + partid int + turn int + state int + elemid int + """ + clight = 299792458 pi = 3.141592653589793238 echarge = 1.602176565e-19 @@ -51,11 +86,14 @@ def _f4(self, mass0, gamma0): beta0 = sqrt(1 - 1 / gamma0 ** 2) return self._g2(mass0, beta0, gamma0) - def copy(self): + def copy(self, index=None): p = Particles() for k, v in list(self.__dict__.items()): if type(v) in [np.ndarray, dict]: - v = v.copy() + if index is None: + v = v.copy() + else: + v = v[index] p.__dict__[k] = v return p @@ -186,7 +224,7 @@ def __init__( qratio=None, partid=None, turn=None, - state=None, + state=None, # ==1 particle lost elemid=None, mathlib=MathlibDefault, **args, @@ -207,11 +245,37 @@ def __init__( self.__init__zeta(zeta, tau, sigma) self.__init__chi(chi, mratio, qratio) self._update_coordinates = True + length = self._check_array_length() + if partid is None: + if length is not None: + partid = np.arange(length) self.partid = partid + + if turn is None: + if length is not None: + turn = np.zeros(length) self.turn = turn + + if state is None: + if length is not None: + state = np.zeros(length) self.state = state + self.lost_particles = [] + def _check_array_length(self): + names = ["x", "px", "y", "py", "zeta", "_mass0", "q0", "p0c"] + length = None + for nn in names: + xx = getattr(self, nn) + if hasattr(xx, "__iter__"): + if length is None: + length = len(xx) + else: + if length != len(xx): + raise ValueError(f"invalid length len({nn})={len(xx)}") + return length + Px = property(lambda p: p.px * p.p0c * p.mratio) Py = property(lambda p: p.py * p.p0c * p.mratio) energy = property(lambda p: (p.ptau * p.p0c + p.energy0) * p.mratio) @@ -386,9 +450,21 @@ def __repr__(self): return out _dict_vars = ( - "s x px y py delta zeta".split() - + "mass0 q0 p0c chi mratio".split() - + "partid turn state".split() + "s", + "x", + "px", + "y", + "py", + "delta", + "zeta", + "mass0", + "q0", + "p0c", + "chi", + "mratio", + "partid", + "turn", + "state", ) def remove_lost_particles(self, keep_memory=True): @@ -398,10 +474,14 @@ def remove_lost_particles(self, keep_memory=True): if np.any(~mask_valid): if keep_memory: - to_trash = self.copy() # Not exactly efficient (but robust) + to_trash = ( + self.copy() + ) # Not exactly efficient (but robust) for ff in self._dict_vars: if hasattr(getattr(self, ff), "__iter__"): - setattr(to_trash, ff, getattr(self, ff)[~mask_valid]) + setattr( + to_trash, ff, getattr(self, ff)[~mask_valid] + ) self.lost_particles.append(to_trash) for ff in self._dict_vars: @@ -416,17 +496,72 @@ def from_dict(cls, dct): return cls(**dct) def compare(self, particle, rel_tol=1e-6, abs_tol=1e-15): - res=True + res = True for kk in self._dict_vars: - v1=getattr(self,kk) - v2=getattr(particle,kk) + v1 = getattr(self, kk) + v2 = getattr(particle, kk) if v1 is not None and v2 is not None: - diff=v1-v2 - if abs(diff)>abs_tol: - print(kk,v1,v2,diff) - res=False - if abs(v1)>0 and abs(diff)/v1>rel_tol: - print(kk,v1,v2,abs(diff)/v1) - res=False + diff = v1 - v2 + if hasattr(diff, "__iter__"): + for nn in range(len(diff)): + vv1 = v1[nn] if hasattr(v1, "__iter__") else v1 + vv2 = v2[nn] if hasattr(v2, "__iter__") else v2 + if abs(diff[nn]) > abs_tol: + print(f"{kk}[{nn}] {vv1} {vv2} diff:{diff[nn]}") + res = False + if abs(vv1) > 0 and abs(diff[nn]) / vv1 > rel_tol: + print( + f"{kk}[{nn}] {vv1} {vv2} rdiff:{diff[nn]/vv1}" + ) + res = False + else: + if abs(diff) > abs_tol: + print(f"{kk} {v1} {v2} diff:{diff}") + res = False + if abs(v1) > 0 and abs(diff) / v1 > rel_tol: + print(f"{kk} {v1} {v2} rdiff:{diff/v1}") + res = False return res + @classmethod + def from_madx_twiss(cls, twiss): + out = cls( + p0c=twiss.summary.pc * 1e6, + mass0=twiss.summary.mass * 1e6, + q0=twiss.summary.charge, + s=twiss.s[:], + x=twiss.x[:], + px=twiss.px[:], + y=twiss.py[:], + py=twiss.py[:], + tau=twiss.t[:], + ptau=twiss.pt[:], + ) + return out + + @classmethod + def from_madx_track(cls, mad): + tracksumm = mad.table.tracksumm + mad_beam = mad.sequence().beam + out = cls( + p0c=mad_beam.pc * 1e6, + mass0=mad_beam.mass * 1e6, + q0=mad_beam.charge, + s=tracksumm.s[:], + x=tracksumm.x[:], + px=tracksumm.px[:], + y=tracksumm.py[:], + py=tracksumm.py[:], + tau=tracksumm.t[:], + ptau=tracksumm.pt[:], + ) + return out + + @classmethod + def from_list(cls, lst): + ll = len(lst) + dct = {nn: np.zeros(ll) for nn in cls._dict_vars} + for ii, pp in enumerate(lst): + for nn in cls._dict_vars: + dct[nn][ii] = getattr(pp, nn, 0) + return cls(**dct) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..a8e8446 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,3 @@ +numpy +scipy +dataclasses diff --git a/setup.py b/setup.py index e51f54c..6afdd51 100644 --- a/setup.py +++ b/setup.py @@ -1,13 +1,21 @@ import setuptools +import sys + +requirements = {"install": ["numpy"]} + +if sys.version_info < (3, 7): + requirements["install"].append("dataclasses") + +version = open("pysixtrack/__init__.py").readline().split('"')[1] setuptools.setup( name="pysixtrack", - version="0.0.1", + version=version, description="6D Tracking Code", author="Riccardo De Maria", author_email="riccardo.de.maria@cern.ch", url="https://github.com/rdemaria/pysixtrack", - packages=["pysixtrack"], + packages=["pysixtrack", "pysixtrack.be_beamfields"], package_dir={"pysixtrack": "pysixtrack"}, - install_requires=["numpy"], + install_requires=requirements["install"], ) diff --git a/tests/test_elements.py b/tests/test_elements.py index 37ef8c9..2f4dadd 100644 --- a/tests/test_elements.py +++ b/tests/test_elements.py @@ -1,12 +1,32 @@ from pysixtrack import elements -el = elements.Drift() -el = elements.DriftExact() -el = elements.Multipole() -assert el.order == 0 -el = elements.XYShift() -el = elements.SRotation() -el = elements.Cavity() -el = elements.Line() -el = elements.DipoleEdge() +def test_other(): + el = elements.XYShift() + el = elements.SRotation() + el = elements.Cavity() + el = elements.Line() + el = elements.DipoleEdge() + print(el) + + +def test_drift(): + el = elements.Drift(length=4) + assert el.length == 4 + el = elements.DriftExact(length=4) + assert el.length == 4 + + +def test_multipole(): + el = elements.Multipole() + assert el.order == 0 + assert el.knl[el.order] == 0 + assert el.ksl[el.order] == 0 + el = elements.Multipole(knl=[1]) + assert el.knl == [1] + assert el.ksl == [0] + assert el.order == 0 + el = elements.Multipole(knl=[1, 2, 3]) + assert el.order == 2 + el = elements.Multipole(ksl=[1, 2, 3]) + assert el.order == 2 diff --git a/tests/test_losses.py b/tests/test_losses.py index 01f8a55..38dd61e 100644 --- a/tests/test_losses.py +++ b/tests/test_losses.py @@ -1,17 +1,19 @@ import numpy as np from pysixtrack.particles import Particles -p = Particles() -p.x = np.arange(10, dtype=np.float64) -# I cut away all the odd coordinates (to check that I can skip) -p.state = np.int_(np.mod(np.int_(p.x), 2) == 0) -p.remove_lost_particles() +def test_particle_loss(): + p = Particles() + p.x = np.arange(10, dtype=np.float64) -# I cut away internal particles -p.state = np.int_(p.x > 5) -p.remove_lost_particles() + # I cut away all the odd coordinates (to check that I can skip) + p.state = np.int_(np.mod(np.int_(p.x), 2) == 0) + p.remove_lost_particles() -assert np.all(p.x == np.array([6.0, 8.0])) -assert np.all(p.lost_particles[0].x == np.array([1, 3, 5, 7, 9])) -assert np.all(p.lost_particles[1].x == np.array([0, 2.0, 4.0])) + # I cut away internal particles + p.state = np.int_(p.x > 5) + p.remove_lost_particles() + + assert np.all(p.x == np.array([6.0, 8.0])) + assert np.all(p.lost_particles[0].x == np.array([1, 3, 5, 7, 9])) + assert np.all(p.lost_particles[1].x == np.array([0, 2.0, 4.0])) diff --git a/tests/test_multipole.py b/tests/test_multipole.py deleted file mode 100644 index c5eadab..0000000 --- a/tests/test_multipole.py +++ /dev/null @@ -1,15 +0,0 @@ -import pysixtrack - -p1=pysixtrack.Particles() - -p1.x=1 ;p1.y=1 -p2=p1.copy() - -el1=pysixtrack.elements.RFMultipole(knl=[.5,2,.2],ksl=[.5,3,.1]) -el2=pysixtrack.elements.Multipole(knl=el1.knl,ksl=el1.ksl) - -el1.track(p1) -el2.track(p2) - -assert p1.compare(p2,abs_tol=1e-15) - diff --git a/tests/test_particles.py b/tests/test_particles.py index 2ca8cad..0146f5e 100644 --- a/tests/test_particles.py +++ b/tests/test_particles.py @@ -1,4 +1,25 @@ from pysixtrack import Particles -p = Particles() +def test_particle_init(): + p = Particles() + print(p) + + +def test_particle_reference(): + p = Particles() + p.beta0 = 0.91 + err = abs(p.p0c ** 2 + p.mass0 ** 2 - p.energy0 ** 2) / p.mass0 ** 2 + assert err == 0 + p.beta0 = 0.9101 + err = abs(p.p0c ** 2 + p.mass0 ** 2 - p.energy0 ** 2) / p.mass0 ** 2 + assert err < 1.17e-15 + p.gamma0 = 1.99 + err = abs(p.p0c ** 2 + p.mass0 ** 2 - p.energy0 ** 2) / p.mass0 ** 2 + assert err == 0 + p.energy0 = 2 * p.mass0 + err = abs(p.p0c ** 2 + p.mass0 ** 2 - p.energy0 ** 2) / p.mass0 ** 2 + assert err == 0 + p.p0c = 0.1 * p.mass0 + err = abs(p.p0c ** 2 + p.mass0 ** 2 - p.energy0 ** 2) / p.mass0 ** 2 + assert err == 0 diff --git a/tests/test_track.py b/tests/test_track.py index accf380..c00ffce 100644 --- a/tests/test_track.py +++ b/tests/test_track.py @@ -1,5 +1,37 @@ -import pysixtrack as pyst +import pysixtrack -for el in pyst.element_list: - p = pyst.Particles() - el().track(p) +element_list = [ + pysixtrack.elements.Drift, + pysixtrack.elements.DriftExact, + pysixtrack.elements.Multipole, + pysixtrack.elements.Cavity, + pysixtrack.elements.XYShift, + pysixtrack.elements.SRotation, + pysixtrack.elements.RFMultipole, + pysixtrack.elements.BeamMonitor, + pysixtrack.elements.DipoleEdge, + pysixtrack.elements.Line, + pysixtrack.elements.LimitRect, + pysixtrack.elements.LimitEllipse, +] + + +def test_track_all(): + for el in element_list: + p = pysixtrack.Particles() + el().track(p) + + +def test_track_rfmultipole(): + p1 = pysixtrack.Particles() + p1.x = 1 + p1.y = 1 + p2 = p1.copy() + + el1 = pysixtrack.elements.RFMultipole(knl=[0.5, 2, 0.2], ksl=[0.5, 3, 0.1]) + el2 = pysixtrack.elements.Multipole(knl=el1.knl, ksl=el1.ksl) + + el1.track(p1) + el2.track(p2) + + assert p1.compare(p2, abs_tol=1e-15)