From 601103105f469573a453f6334a45db9f7c6cd2f9 Mon Sep 17 00:00:00 2001 From: JGonzalez Date: Fri, 24 Feb 2023 21:46:01 +0100 Subject: [PATCH 01/20] First attempt at Coulomb collisions First attemp for Coulomb collisions based on the moments distribtuions. Still the method is not done and far from being complete but input options and basic math are implemented. --- src/fpakc.f90 | 4 +- src/makefile | 2 +- src/modules/common/moduleRefParam.f90 | 2 +- src/modules/init/moduleInput.f90 | 38 +++++- src/modules/makefile | 7 +- src/modules/mesh/moduleMesh.f90 | 173 ++++++++++++++++++++++++-- src/modules/moduleCoulomb.f90 | 91 ++++++++++++++ src/modules/solver/moduleSolver.f90 | 4 +- 8 files changed, 295 insertions(+), 26 deletions(-) create mode 100644 src/modules/moduleCoulomb.f90 diff --git a/src/fpakc.f90 b/src/fpakc.f90 index 3a8a033..e85f5f6 100644 --- a/src/fpakc.f90 +++ b/src/fpakc.f90 @@ -74,7 +74,7 @@ PROGRAM fpakc tColl = omp_get_wtime() !$OMP END SINGLE - IF (doMCC) THEN + IF (doMCCollisions) THEN CALL meshForMCC%doCollisions(t) END IF @@ -86,7 +86,7 @@ PROGRAM fpakc tCoul = omp_get_wTime() !$OMP END SINGLE - IF (ASSOCIATED(mesh%doCoulomb)) THEN + IF (doCoulombScattering) THEN CALL mesh%doCoulomb() END IF diff --git a/src/makefile b/src/makefile index c9c747d..247c7d2 100644 --- a/src/makefile +++ b/src/makefile @@ -4,7 +4,7 @@ OBJECTS = $(OBJDIR)/moduleMesh.o $(OBJDIR)/moduleMeshBoundary.o $(OBJDIR)/module $(OBJDIR)/moduleBoundary.o $(OBJDIR)/moduleCaseParam.o $(OBJDIR)/moduleRefParam.o \ $(OBJDIR)/moduleCollisions.o $(OBJDIR)/moduleTable.o $(OBJDIR)/moduleParallel.o \ $(OBJDIR)/moduleEM.o $(OBJDIR)/moduleRandom.o $(OBJDIR)/moduleMath.o \ - $(OBJDIR)/moduleProbe.o $(OBJDIR)/moduleAverage.o \ + $(OBJDIR)/moduleProbe.o $(OBJDIR)/moduleAverage.o $(OBJDIR)/moduleCoulomb.o \ $(OBJDIR)/moduleMeshInoutCommon.o \ $(OBJDIR)/moduleMeshInputVTU.o $(OBJDIR)/moduleMeshOutputVTU.o \ $(OBJDIR)/moduleMeshInputGmsh2.o $(OBJDIR)/moduleMeshOutputGmsh2.o \ diff --git a/src/modules/common/moduleRefParam.f90 b/src/modules/common/moduleRefParam.f90 index 051190b..e8819ce 100644 --- a/src/modules/common/moduleRefParam.f90 +++ b/src/modules/common/moduleRefParam.f90 @@ -3,7 +3,7 @@ MODULE moduleRefParam !Parameters that define the problem (inputs) REAL(8):: n_ref, m_ref, T_ref, r_ref, debye_ref, sigmaVrel_ref !Reference parameters for non-dimensional problem - REAL(8):: L_ref, v_ref, ti_ref, Vol_ref, EF_ref, Volt_ref, B_ref + REAL(8):: L_ref, v_ref, ti_ref, Vol_ref, EF_ref, Volt_ref, B_ref, e_ref END MODULE moduleRefParam diff --git a/src/modules/init/moduleInput.f90 b/src/modules/init/moduleInput.f90 index e68a732..7af67db 100644 --- a/src/modules/init/moduleInput.f90 +++ b/src/modules/init/moduleInput.f90 @@ -144,6 +144,7 @@ MODULE moduleInput EF_ref = qe*n_ref*L_ref/eps_0 !reference electric field Volt_ref = EF_ref*L_ref !reference voltage B_ref = m_ref / (ti_ref * qe) !reference magnetic field + e_ref = qe/(m_ref*v_ref**2) !reference charge !If a reference cross section is given, it is used CALL config%get(object // '.sigmaVrel', sigmavRel_ref, found) @@ -412,7 +413,7 @@ MODULE moduleInput CALL partInitial%add(partNew) !Assign particle to list in volume - IF (doMCC) THEN + IF (listInCells) THEN cell => meshforMCC%cells(partNew%cellColl)%obj CALL OMP_SET_LOCK(cell%lock) CALL cell%listPart_in(sp)%add(partNew) @@ -613,6 +614,7 @@ MODULE moduleInput USE moduleSpecies USE moduleList USE moduleCollisions + USE moduleCoulomb USE moduleErrors USE moduleMesh USE moduleCaseParam @@ -640,10 +642,11 @@ MODULE moduleInput !Firstly, check if the object 'interactions' exists CALL config%info('interactions', found) IF (found) THEN - !Checks if MC collisions have been defined + !Check if MC collisions have been defined CALL config%info('interactions.collisions', found) IF (found) THEN - !Reads collision time step + doMCCollisions = .TRUE. + !Read collision time step CALL config%info('interactions.timeStep', found) IF (found) THEN CALL config%get('interactions.timeStep', tauColl, found) @@ -752,8 +755,35 @@ MODULE moduleInput END IF + !Check if Coulomb scattering is defined + CALL config%info('interactions.Coulomb', found) + IF (found) THEN + + CALL config%info('interactions.Coulomb', found, n_children = nPairs) + IF (nPairs > 0) THEN + nCoulombPairs = nPairs + doCoulombScattering = .TRUE. + ALLOCATE(coulombMatrix(1:nPairs)) + DO i = 1, nPairs + WRITE(iString, '(I2)') i + object = 'interactions.Coulomb(' // TRIM(iString) // ')' + CALL config%get(object // '.species_i', species_i, found) + pt_i = speciesName2Index(species_i) + CALL config%get(object // '.species_j', species_j, found) + pt_j = speciesName2Index(species_j) + + CALL coulombMatrix(i)%init(pt_i, pt_j) + + END DO + + END IF + + END IF + END IF + listInCells = doMCCollisions .OR. doCoulombScattering + END SUBROUTINE readInteractions !Reads boundary conditions for the mesh @@ -906,8 +936,6 @@ MODULE moduleInput END IF - doMCC = ASSOCIATED(meshForMCC) - !Get the dimension of the geometry CALL config%get(object // '.dimension', mesh%dimen, found) IF (.NOT. found) THEN diff --git a/src/modules/makefile b/src/modules/makefile index 743144f..508bb56 100644 --- a/src/modules/makefile +++ b/src/modules/makefile @@ -1,6 +1,6 @@ OBJS = common.o output.o mesh.o solver.o init.o \ moduleBoundary.o moduleCollisions.o moduleInject.o \ - moduleList.o moduleProbe.o \ + moduleList.o moduleProbe.o moduleCoulomb.o \ moduleSpecies.o all: $(OBJS) @@ -11,7 +11,7 @@ common.o: output.o: moduleSpecies.o common.o $(MAKE) -C output all -mesh.o: moduleCollisions.o moduleBoundary.o output.o common.o +mesh.o: moduleCollisions.o moduleCoulomb.o moduleBoundary.o output.o common.o $(MAKE) -C mesh all solver.o: moduleSpecies.o moduleProbe.o common.o output.o mesh.o @@ -26,6 +26,9 @@ moduleBoundary.o: common.o moduleBoundary.f90 moduleCollisions.o: moduleList.o moduleSpecies.o common.o moduleCollisions.f90 $(FC) $(FCFLAGS) -c $(subst .o,.f90,$@) -o $(OBJDIR)/$@ +moduleCoulomb.o: moduleSpecies.o common.o moduleCoulomb.f90 + $(FC) $(FCFLAGS) -c $(subst .o,.f90,$@) -o $(OBJDIR)/$@ + moduleList.o: common.o moduleSpecies.o moduleList.f90 $(FC) $(FCFLAGS) -c $(subst .o,.f90,$@) -o $(OBJDIR)/$@ diff --git a/src/modules/mesh/moduleMesh.f90 b/src/modules/mesh/moduleMesh.f90 index 9a3c4ef..6607fd0 100644 --- a/src/modules/mesh/moduleMesh.f90 +++ b/src/modules/mesh/moduleMesh.f90 @@ -300,7 +300,7 @@ MODULE moduleMesh END FUNCTION inside_interface - PURE FUNCTION phy2log_interface(self,r) RESULT(Xi) + PURE FUNCTION phy2log_interface(self,r) RESULT(Xi) IMPORT:: meshCell CLASS(meshCell), INTENT(in):: self REAL(8), INTENT(in):: r(1:3) @@ -387,17 +387,17 @@ MODULE moduleMesh !Array of boundary elements TYPE(meshEdgeCont), ALLOCATABLE:: edges(:) !Global stiffness matrix - REAL(8), ALLOCATABLE, DIMENSION(:,:):: K + REAL(8), ALLOCATABLE, DIMENSION(:,:):: K !Permutation matrix for P L U factorization INTEGER, ALLOCATABLE, DIMENSION(:,:):: IPIV !PROCEDURES SPECIFIC OF FILE TYPE PROCEDURE(printOutput_interface), POINTER, PASS:: printOutput => NULL() PROCEDURE(printEM_interface), POINTER, PASS:: printEM => NULL() - PROCEDURE(doCoulomb_interface), POINTER, PASS:: doCoulomb => NULL() PROCEDURE(printAverage_interface), POINTER, PASS:: printAverage => NULL() CONTAINS !GENERIC PROCEDURES PROCEDURE, PASS:: constructGlobalK + PROCEDURE, PASS:: doCoulomb END TYPE meshParticles @@ -424,7 +424,7 @@ MODULE moduleMesh CLASS(meshParticles), INTENT(inout):: self END SUBROUTINE doCoulomb_interface - + !Prints average values SUBROUTINE printAverage_interface(self) IMPORT meshParticles @@ -481,7 +481,11 @@ MODULE moduleMesh !Logical to indicate if an specific mesh for MC Collisions is used LOGICAL:: doubleMesh !Logical to indicate if MCC collisions are performed - LOGICAL:: doMCC + LOGICAL:: doMCCollisions = .FALSE. + !Logical to indicate if Coulomb scattering is performed + LOGICAL:: doCoulombScattering = .FALSE. + !Logica to indicate if particles have to be listed in list inside the cells + LOGICAL:: listInCells = .FALSE. !Complete path for the two meshes CHARACTER(:), ALLOCATABLE:: pathMeshColl, pathMeshParticle @@ -511,7 +515,7 @@ MODULE moduleMesh END DO END DO - + DEALLOCATE(n, localK) END DO @@ -616,7 +620,7 @@ MODULE moduleMesh tensorS = outerProduct(part%v, part%v) sp = part%species%n - + DO i = 1, nNodes node => mesh%nodes(cellNodes(i))%obj CALL OMP_SET_LOCK(node%lock) @@ -650,7 +654,7 @@ MODULE moduleMesh part%Xi = Xi part%n_in = .TRUE. !Assign particle to listPart_in - IF (doMCC) THEN + IF (listInCells) THEN CALL OMP_SET_LOCK(self%lock) sp = part%species%n CALL self%listPart_in(sp)%add(part) @@ -673,7 +677,7 @@ MODULE moduleMesh CALL neighbourElement%fBoundary(part%species%n)%apply(neighbourElement,part) !If particle is still inside the domain, call findCell - IF (part%n_in) THEN + IF (part%n_in) THEN IF(PRESENT(oldCell)) THEN CALL self%findCell(part, oldCell) @@ -719,13 +723,13 @@ MODULE moduleMesh INTEGER:: sp found = .FALSE. - + cell => meshColl%cells(part%cellColl)%obj DO WHILE(.NOT. found) Xi = cell%phy2log(part%r) IF (cell%inside(Xi)) THEN part%cellColl = cell%n - IF (doMCC) THEN + IF (listInCells) THEN CALL OMP_SET_LOCK(cell%lock) sp = part%species%n CALL cell%listPart_in(sp)%add(part) @@ -923,7 +927,7 @@ MODULE moduleMesh END DO END IF - + !Deallocate arrays for next collision DEALLOCATE(sigmaVrel, probabilityColl) @@ -946,9 +950,152 @@ MODULE moduleMesh END SUBROUTINE doCollisions SUBROUTINE doCoulomb(self) + USE moduleCoulomb + USE moduleRandom + USE moduleOutput + USE moduleList + USE moduleMath + USE moduleRefParam + USE moduleConstParam IMPLICIT NONE - CLASS(meshParticles), INTENT(inout):: self + CLASS(meshParticles), INTENT(in), TARGET:: self + CLASS(meshCell), POINTER:: cell + INTEGER:: e + INTEGER:: k + INTEGER:: i, j + INTEGER:: n + TYPE(lNode), POINTER:: partTemp + REAL(8):: W(3), dW(2) !Relative velocity between particle and species and its increment + INTEGER(8), ALLOCATABLE:: cellNodes(:) + CLASS(meshNode), POINTER:: node + TYPE(outputFormat):: output + REAL(8), ALLOCATABLE:: densityNodes(:), velocityNodes(:,:), temperatureNodes(:) !values in node + REAL(8):: density, velocity(1:3), temperature!values at particle position + REAL(8), DIMENSION(1:3):: e1, e2, e3 + REAL(8):: delta_par, delta_par_square, delta_per, delta_per_square + REAL(8):: l, lW, AW + REAL(8):: rnd + + + DO e = 1, self%numCells + cell => self%cells(e)%obj + cellNodes = cell%getNodes(cell%nNodes) + + ALLOCATE(densityNodes(1:cell%nNodes), & + velocityNodes(1:cell%nNodes, 1:3), & + temperatureNodes(1:cell%nNodes)) + + DO k=1, nCoulombPairs + i = coulombMatrix(k)%sp_i%n + j = coulombMatrix(k)%sp_j%n + + !Do scattering of particles from species_i due to species j + !Compute background properties of species_j + DO n = 1, cell%nNodes + node => self%nodes(cellNodes(n))%obj + CALL calculateOutput(node%output(j), output, node%v, coulombMatrix(k)%sp_j) + densityNodes(n) = output%density/n_ref + velocityNodes(n,1:3) = output%velocity(1:3)/v_ref + temperatureNodes(n) = output%temperature/T_ref + + END DO + + !Loop over particles of species_i + partTemp => cell%listPart_in(i)%head + DO WHILE(ASSOCIATED(partTemp)) + density = cell%gatherF(partTemp%part%Xi, cell%nNodes, densityNodes) + velocity = cell%gatherF(partTemp%part%Xi, cell%nNodes, velocityNodes) + temperature = cell%gatherF(partTemp%part%Xi, cell%nNodes, temperatureNodes) + l = coulombMatrix(k)%l_j/SQRT(temperature) + + W = partTemp%part%v - velocity + lW = l * NORM2(W) + AW = coulombMatrix(k)%A_ij/NORM2(W) + !Axis of the relative velocity + !First one is parallel to the relative velocity + e1 = normalize(W) + !Second one is perpendicular to it + e2(1) = -e1(2) + e2(2) = e1(1) + e2(3) = 0.D0 + e2 = normalize(e2) + !Third one is perpendicular to the other two + e3 = crossProduct(e2, e1) + e3 = normalize(e3) + + delta_par = -coulombMatrix(k)%A_ij*coulombMatrix(k)%one_plus_massRatio_ij*density*l**2*G(lW) + + delta_par_square = AW*density*G(lW) + + delta_per_square = AW*density*H(lW) + + dW(1) = delta_par*tauMin + randomMaxwellian()*SQRT(delta_par_square*tauMin) + dW(2) = DABS(randomMaxwellian()*SQRT(delta_per_square*tauMin)) + + rnd = random() + partTemp%part%v = partTemp%part%v + dW(1)*e1 + dW(2)*(COS(PI2*rnd)*e2 + & + SIN(PI2*rnd)*e3) + + partTemp => partTemp%next + + END DO + + IF (i /= j) THEN + !Do scattering of particles from species_j due to species i + DO n = 1, cell%nNodes + node => self%nodes(cellNodes(n))%obj + CALL calculateOutput(node%output(i), output, node%v, coulombMatrix(k)%sp_i) + densityNodes(n) = output%density/n_ref + velocityNodes(n,1:3) = output%velocity(1:3)/v_ref + temperatureNodes(n) = output%temperature/T_ref + + END DO + + partTemp => cell%listPart_in(j)%head + DO WHILE(ASSOCIATED(partTemp)) + density = cell%gatherF(partTemp%part%Xi, cell%nNodes, densityNodes) + velocity = cell%gatherF(partTemp%part%Xi, cell%nNodes, velocityNodes) + temperature = cell%gatherF(partTemp%part%Xi, cell%nNodes, temperatureNodes) + l = coulombMatrix(k)%l_i/SQRT(temperature) + + W = partTemp%part%v - velocity + lW = l * NORM2(W) + AW = coulombMatrix(k)%A_ji/NORM2(W) + !Axis of the relative velocity + !First one is parallel to the relative velocity + e1 = normalize(W) + !Second one is perpendicular to it + e2(1) = -e1(2) + e2(2) = e1(1) + e2(3) = 0.D0 + e2 = normalize(e2) + !Third one is perpendicular to the other two + e3 = crossProduct(e2, e1) + e3 = normalize(e3) + + delta_par = -coulombMatrix(k)%A_ji*coulombMatrix(k)%one_plus_massRatio_ji*density*l**2*G(lW) + + delta_par_square = AW*density*G(lW) + + delta_per_square = AW*density*H(lW) + + dW(1) = delta_par*tauMin + randomMaxwellian()*SQRT(delta_par_square*tauMin) + dW(2) = DABS(randomMaxwellian()*SQRT(delta_per_square*tauMin)) + + rnd = random() + partTemp%part%v = partTemp%part%v + dW(1)*e1 + dW(2)*(COS(PI2*rnd)*e2 + & + SIN(PI2*rnd)*e3) + + partTemp => partTemp%next + + END DO + + END IF + + END DO + + END DO END SUBROUTINE doCoulomb diff --git a/src/modules/moduleCoulomb.f90 b/src/modules/moduleCoulomb.f90 new file mode 100644 index 0000000..734b898 --- /dev/null +++ b/src/modules/moduleCoulomb.f90 @@ -0,0 +1,91 @@ +MODULE moduleCoulomb + USE moduleSpecies + IMPLICIT NONE + + INTEGER:: nCoulombPairs = 0 + + !Type for Coulomb iteraction matrix + TYPE:: interactionsCoulomb + CLASS(speciesGeneric), POINTER:: sp_i + CLASS(speciesGeneric), POINTER:: sp_j + REAL(8):: one_plus_massRatio_ij, one_plus_massRatio_ji + REAL(8):: lnCoulomb !This can be done a function in the future + REAL(8):: A_ij, A_ji + REAL(8):: l_j, l_i + CONTAINS + PROCEDURE, PASS:: init => initInteractionCoulomb + + END TYPE interactionsCoulomb + + !Coulomb collision 'matrix' + TYPE(interactionsCoulomb), ALLOCATABLE:: coulombMatrix(:) + + CONTAINS + PURE REAL(8) FUNCTION G(x) + USE moduleConstParam + IMPLICIT NONE + + REAL(8), INTENT(in):: x + + G = 0.D0 + IF (x /= 0.D0) THEN + G = (ERF(x) - x*2.D0/SQRT(PI)*EXP(-x**2))/(2.D0*x**2) + + END IF + + END FUNCTION G + + PURE REAL(8) FUNCTION H(x) + IMPLICIT NONE + + REAL(8), INTENT(in):: x + + H = ERF(x) - G(x) + + END FUNCTION H + + SUBROUTINE initInteractionCoulomb(self, i, j) + USE moduleSpecies + USE moduleErrors + USE moduleConstParam + USE moduleRefParam + IMPLICIT NONE + + CLASS(interactionsCoulomb), INTENT(out):: self + INTEGER, INTENT(in):: i, j + REAL(8):: Z_i, Z_j + + self%sp_i => species(i)%obj + self%sp_j => species(j)%obj + + self%one_plus_massRatio_ij = 1.D0 + (self%sp_i%weight*self%sp_i%m)/(self%sp_j%weight*self%sp_j%m) + self%one_plus_massRatio_ji = 1.D0 + (self%sp_j%weight*self%sp_j%m)/(self%sp_i%weight*self%sp_i%m) + + SELECT TYPE(sp => self%sp_i) + TYPE IS (speciesCharged) + Z_i = sp%q + + CLASS DEFAULT + CALL criticalError('Species ' // sp%name // ' for Coulomb scattering has no charge', 'initInteractionCoulomb') + + END SELECT + + SELECT TYPE(sp => self%sp_j) + TYPE IS (speciesCharged) + Z_j = sp%q + + CLASS DEFAULT + CALL criticalError('Species ' // sp%name // ' for Coulomb scattering has no charge', 'initInteractionCoulomb') + + END SELECT + + self%lnCoulomb = 12.0 + self%A_ij = 8.D0*PI*Z_i**2*Z_j**2*e_ref**4*self%lnCoulomb / self%sp_i%m + self%A_ji = 8.D0*PI*Z_j**2*Z_i**2*e_ref**4*self%lnCoulomb / self%sp_j%m + + self%l_j = SQRT(self%sp_j%m / 2.D0) !Missing temperature because it's cell dependent + self%l_i = SQRT(self%sp_i%m / 2.D0) !Missing temperature because it's cell dependent + + END SUBROUTINE initInteractionCoulomb + +END MODULE moduleCoulomb diff --git a/src/modules/solver/moduleSolver.f90 b/src/modules/solver/moduleSolver.f90 index 69d4055..12f9e9a 100644 --- a/src/modules/solver/moduleSolver.f90 +++ b/src/modules/solver/moduleSolver.f90 @@ -322,7 +322,7 @@ MODULE moduleSolver !$OMP SECTION !Erase the list of particles inside the cell if particles have been pushed - IF (doMCC) THEN + IF (listInCells) THEN DO s = 1, nSpecies DO e = 1, mesh%numCells IF (solver%pusher(s)%pushSpecies) THEN @@ -456,7 +456,7 @@ MODULE moduleSolver CALL partWScheme%unsetLock() !Add particle to cell list sp = part%species%n - IF (doMCC) THEN + IF (listInCells) THEN CALL OMP_SET_lock(cell%lock) CALL cell%listPart_in(sp)%add(newPart) CALL OMP_UNSET_lock(cell%lock) From 6113ac3305799e734b6032b671a696ffc9fe63ab Mon Sep 17 00:00:00 2001 From: JGonzalez Date: Mon, 6 Mar 2023 16:16:17 +0100 Subject: [PATCH 02/20] Correction with conservation Now the method is much better in conserving total energy. However, still there is an issue with collisions between species of dispaprate mass. --- src/modules/mesh/moduleMesh.f90 | 91 ++++++++++++++++++--------------- src/modules/moduleCoulomb.f90 | 15 +++--- 2 files changed, 59 insertions(+), 47 deletions(-) diff --git a/src/modules/mesh/moduleMesh.f90 b/src/modules/mesh/moduleMesh.f90 index 6607fd0..478fd83 100644 --- a/src/modules/mesh/moduleMesh.f90 +++ b/src/modules/mesh/moduleMesh.f90 @@ -966,7 +966,6 @@ MODULE moduleMesh INTEGER:: i, j INTEGER:: n TYPE(lNode), POINTER:: partTemp - REAL(8):: W(3), dW(2) !Relative velocity between particle and species and its increment INTEGER(8), ALLOCATABLE:: cellNodes(:) CLASS(meshNode), POINTER:: node TYPE(outputFormat):: output @@ -974,7 +973,8 @@ MODULE moduleMesh REAL(8):: density, velocity(1:3), temperature!values at particle position REAL(8), DIMENSION(1:3):: e1, e2, e3 REAL(8):: delta_par, delta_par_square, delta_per, delta_per_square - REAL(8):: l, lW, AW + REAL(8):: W(3), dW(2), normW !Relative velocity between particle and species and its increment + REAL(8):: l2, l, lW, AW REAL(8):: rnd @@ -1007,12 +1007,25 @@ MODULE moduleMesh density = cell%gatherF(partTemp%part%Xi, cell%nNodes, densityNodes) velocity = cell%gatherF(partTemp%part%Xi, cell%nNodes, velocityNodes) temperature = cell%gatherF(partTemp%part%Xi, cell%nNodes, temperatureNodes) - l = coulombMatrix(k)%l_j/SQRT(temperature) + + l2 = coulombMatrix(k)%l2_j/temperature + l = SQRT(l2) W = partTemp%part%v - velocity - lW = l * NORM2(W) - AW = coulombMatrix(k)%A_ij/NORM2(W) - !Axis of the relative velocity + normW = NORM2(W) + lW = l * normW + AW = coulombMatrix(k)%A_i/normW + + delta_par = -coulombMatrix(k)%A_i*coulombMatrix(k)%one_plus_massRatio_ij*density*l2*G(lW) + + delta_par_square = AW*density*G(lW) + + delta_per_square = AW*density*H(lW) + + dW(1) = delta_par*tauMin + randomMaxwellian()*SQRT(delta_par_square*tauMin) + dW(2) = ABS(randomMaxwellian()*SQRT(delta_per_square*tauMin)) + + !System of reference for the velocity change !First one is parallel to the relative velocity e1 = normalize(W) !Second one is perpendicular to it @@ -1024,18 +1037,12 @@ MODULE moduleMesh e3 = crossProduct(e2, e1) e3 = normalize(e3) - delta_par = -coulombMatrix(k)%A_ij*coulombMatrix(k)%one_plus_massRatio_ij*density*l**2*G(lW) + !Random number for direction + rnd = PI2*random() - delta_par_square = AW*density*G(lW) - - delta_per_square = AW*density*H(lW) - - dW(1) = delta_par*tauMin + randomMaxwellian()*SQRT(delta_par_square*tauMin) - dW(2) = DABS(randomMaxwellian()*SQRT(delta_per_square*tauMin)) - - rnd = random() - partTemp%part%v = partTemp%part%v + dW(1)*e1 + dW(2)*(COS(PI2*rnd)*e2 + & - SIN(PI2*rnd)*e3) + !Change particle velocity + partTemp%part%v = partTemp%part%v + dW(1)*e1 + dW(2)*(COS(rnd)*e2 + & + SIN(rnd)*e3) partTemp => partTemp%next @@ -1049,20 +1056,33 @@ MODULE moduleMesh densityNodes(n) = output%density/n_ref velocityNodes(n,1:3) = output%velocity(1:3)/v_ref temperatureNodes(n) = output%temperature/T_ref - + END DO - + partTemp => cell%listPart_in(j)%head DO WHILE(ASSOCIATED(partTemp)) density = cell%gatherF(partTemp%part%Xi, cell%nNodes, densityNodes) velocity = cell%gatherF(partTemp%part%Xi, cell%nNodes, velocityNodes) temperature = cell%gatherF(partTemp%part%Xi, cell%nNodes, temperatureNodes) - l = coulombMatrix(k)%l_i/SQRT(temperature) - + + l2 = coulombMatrix(k)%l2_i/temperature + l = SQRT(l2) + W = partTemp%part%v - velocity - lW = l * NORM2(W) - AW = coulombMatrix(k)%A_ji/NORM2(W) - !Axis of the relative velocity + normW = NORM2(W) + lW = l * normW + AW = coulombMatrix(k)%A_j/normW + + delta_par = -coulombMatrix(k)%A_j*coulombMatrix(k)%one_plus_massRatio_ji*density*l2*G(lW) + + delta_par_square = AW*density*G(lW) + + delta_per_square = AW*density*H(lW) + + dW(1) = delta_par*tauMin + randomMaxwellian()*SQRT(delta_par_square*tauMin) + dW(2) = ABS(randomMaxwellian()*SQRT(delta_per_square*tauMin)) + + !System of reference for the velocity change !First one is parallel to the relative velocity e1 = normalize(W) !Second one is perpendicular to it @@ -1073,24 +1093,15 @@ MODULE moduleMesh !Third one is perpendicular to the other two e3 = crossProduct(e2, e1) e3 = normalize(e3) - - delta_par = -coulombMatrix(k)%A_ji*coulombMatrix(k)%one_plus_massRatio_ji*density*l**2*G(lW) - - delta_par_square = AW*density*G(lW) - - delta_per_square = AW*density*H(lW) - - dW(1) = delta_par*tauMin + randomMaxwellian()*SQRT(delta_par_square*tauMin) - dW(2) = DABS(randomMaxwellian()*SQRT(delta_per_square*tauMin)) - - rnd = random() - partTemp%part%v = partTemp%part%v + dW(1)*e1 + dW(2)*(COS(PI2*rnd)*e2 + & - SIN(PI2*rnd)*e3) - + + rnd = PI2*random() + partTemp%part%v = partTemp%part%v + dW(1)*e1 + dW(2)*(COS(rnd)*e2 + & + SIN(rnd)*e3) + partTemp => partTemp%next - + END DO - + END IF END DO diff --git a/src/modules/moduleCoulomb.f90 b/src/modules/moduleCoulomb.f90 index 734b898..775caad 100644 --- a/src/modules/moduleCoulomb.f90 +++ b/src/modules/moduleCoulomb.f90 @@ -10,8 +10,8 @@ MODULE moduleCoulomb CLASS(speciesGeneric), POINTER:: sp_j REAL(8):: one_plus_massRatio_ij, one_plus_massRatio_ji REAL(8):: lnCoulomb !This can be done a function in the future - REAL(8):: A_ij, A_ji - REAL(8):: l_j, l_i + REAL(8):: A_i, A_j + REAL(8):: l2_j, l2_i CONTAINS PROCEDURE, PASS:: init => initInteractionCoulomb @@ -79,12 +79,13 @@ MODULE moduleCoulomb END SELECT - self%lnCoulomb = 12.0 - self%A_ij = 8.D0*PI*Z_i**2*Z_j**2*e_ref**4*self%lnCoulomb / self%sp_i%m - self%A_ji = 8.D0*PI*Z_j**2*Z_i**2*e_ref**4*self%lnCoulomb / self%sp_j%m + self%lnCoulomb = 12.0 !Make this function dependent - self%l_j = SQRT(self%sp_j%m / 2.D0) !Missing temperature because it's cell dependent - self%l_i = SQRT(self%sp_i%m / 2.D0) !Missing temperature because it's cell dependent + self%A_i = 8.D0*PI*Z_i**2*Z_j**2*self%lnCoulomb / self%sp_i%m**2 + self%A_j = 8.D0*PI*Z_j**2*Z_i**2*self%lnCoulomb / self%sp_j%m**2 + + self%l2_j = self%sp_j%m / 2.D0 !Missing temperature because it's cell dependent + self%l2_i = self%sp_i%m / 2.D0 !Missing temperature because it's cell dependent END SUBROUTINE initInteractionCoulomb From f8af7a8dae9106b22d29caed88388e8f58d6ff7d Mon Sep 17 00:00:00 2001 From: JGonzalez Date: Tue, 7 Mar 2023 10:10:54 +0100 Subject: [PATCH 03/20] No progress in fixing Coulomb collisions with mass ratio I am starting to think that the only fix is to reduce the time step, but that is too harsh. --- src/modules/mesh/moduleMesh.f90 | 34 ++++++++++++++++++++------------- src/modules/moduleCoulomb.f90 | 2 +- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/modules/mesh/moduleMesh.f90 b/src/modules/mesh/moduleMesh.f90 index 478fd83..c80eec3 100644 --- a/src/modules/mesh/moduleMesh.f90 +++ b/src/modules/mesh/moduleMesh.f90 @@ -978,6 +978,7 @@ MODULE moduleMesh REAL(8):: rnd + !$OMP SINGLE DO e = 1, self%numCells cell => self%cells(e)%obj cellNodes = cell%getNodes(cell%nNodes) @@ -1016,6 +1017,7 @@ MODULE moduleMesh lW = l * normW AW = coulombMatrix(k)%A_i/normW + delta_par = -coulombMatrix(k)%A_i*coulombMatrix(k)%one_plus_massRatio_ij*density*l2*G(lW) delta_par_square = AW*density*G(lW) @@ -1050,38 +1052,40 @@ MODULE moduleMesh IF (i /= j) THEN !Do scattering of particles from species_j due to species i + !Compute background properties of species_i DO n = 1, cell%nNodes node => self%nodes(cellNodes(n))%obj CALL calculateOutput(node%output(i), output, node%v, coulombMatrix(k)%sp_i) densityNodes(n) = output%density/n_ref velocityNodes(n,1:3) = output%velocity(1:3)/v_ref temperatureNodes(n) = output%temperature/T_ref - + END DO - + + !Loop over particles of species_j partTemp => cell%listPart_in(j)%head DO WHILE(ASSOCIATED(partTemp)) density = cell%gatherF(partTemp%part%Xi, cell%nNodes, densityNodes) velocity = cell%gatherF(partTemp%part%Xi, cell%nNodes, velocityNodes) temperature = cell%gatherF(partTemp%part%Xi, cell%nNodes, temperatureNodes) - + l2 = coulombMatrix(k)%l2_i/temperature l = SQRT(l2) - + W = partTemp%part%v - velocity normW = NORM2(W) lW = l * normW AW = coulombMatrix(k)%A_j/normW - + delta_par = -coulombMatrix(k)%A_j*coulombMatrix(k)%one_plus_massRatio_ji*density*l2*G(lW) - + delta_par_square = AW*density*G(lW) - + delta_per_square = AW*density*H(lW) - + dW(1) = delta_par*tauMin + randomMaxwellian()*SQRT(delta_par_square*tauMin) dW(2) = ABS(randomMaxwellian()*SQRT(delta_per_square*tauMin)) - + !System of reference for the velocity change !First one is parallel to the relative velocity e1 = normalize(W) @@ -1093,20 +1097,24 @@ MODULE moduleMesh !Third one is perpendicular to the other two e3 = crossProduct(e2, e1) e3 = normalize(e3) - + + !Random number for direction rnd = PI2*random() + + !Change particle velocity partTemp%part%v = partTemp%part%v + dW(1)*e1 + dW(2)*(COS(rnd)*e2 + & SIN(rnd)*e3) - + partTemp => partTemp%next - + END DO - + END IF END DO END DO + !$OMP END SINGLE END SUBROUTINE doCoulomb diff --git a/src/modules/moduleCoulomb.f90 b/src/modules/moduleCoulomb.f90 index 775caad..85f4f49 100644 --- a/src/modules/moduleCoulomb.f90 +++ b/src/modules/moduleCoulomb.f90 @@ -79,7 +79,7 @@ MODULE moduleCoulomb END SELECT - self%lnCoulomb = 12.0 !Make this function dependent + self%lnCoulomb = 10.0 !Make this function dependent self%A_i = 8.D0*PI*Z_i**2*Z_j**2*self%lnCoulomb / self%sp_i%m**2 self%A_j = 8.D0*PI*Z_j**2*Z_i**2*self%lnCoulomb / self%sp_j%m**2 From fe94615a275abd17ff23cc62c2eb4ecd4cfbaa32 Mon Sep 17 00:00:00 2001 From: JGonzalez Date: Wed, 8 Mar 2023 16:37:45 +0100 Subject: [PATCH 04/20] First conservative implementation of Coulomb I am doing a trick in which I ensure that energy is conserved for Coulomb collisions. This was not happening and what an issue for different mass ratios. Still, this can cause an issue on getting the right relaxation rates, still necessary to check it. --- src/modules/common/moduleRefParam.f90 | 2 +- src/modules/init/moduleInput.f90 | 1 - src/modules/mesh/moduleMesh.f90 | 29 ++++++++++++++++++--------- src/modules/moduleCoulomb.f90 | 7 +++++-- 4 files changed, 26 insertions(+), 13 deletions(-) diff --git a/src/modules/common/moduleRefParam.f90 b/src/modules/common/moduleRefParam.f90 index e8819ce..051190b 100644 --- a/src/modules/common/moduleRefParam.f90 +++ b/src/modules/common/moduleRefParam.f90 @@ -3,7 +3,7 @@ MODULE moduleRefParam !Parameters that define the problem (inputs) REAL(8):: n_ref, m_ref, T_ref, r_ref, debye_ref, sigmaVrel_ref !Reference parameters for non-dimensional problem - REAL(8):: L_ref, v_ref, ti_ref, Vol_ref, EF_ref, Volt_ref, B_ref, e_ref + REAL(8):: L_ref, v_ref, ti_ref, Vol_ref, EF_ref, Volt_ref, B_ref END MODULE moduleRefParam diff --git a/src/modules/init/moduleInput.f90 b/src/modules/init/moduleInput.f90 index 7af67db..c8beb0f 100644 --- a/src/modules/init/moduleInput.f90 +++ b/src/modules/init/moduleInput.f90 @@ -144,7 +144,6 @@ MODULE moduleInput EF_ref = qe*n_ref*L_ref/eps_0 !reference electric field Volt_ref = EF_ref*L_ref !reference voltage B_ref = m_ref / (ti_ref * qe) !reference magnetic field - e_ref = qe/(m_ref*v_ref**2) !reference charge !If a reference cross section is given, it is used CALL config%get(object // '.sigmaVrel', sigmavRel_ref, found) diff --git a/src/modules/mesh/moduleMesh.f90 b/src/modules/mesh/moduleMesh.f90 index c80eec3..a62cfb2 100644 --- a/src/modules/mesh/moduleMesh.f90 +++ b/src/modules/mesh/moduleMesh.f90 @@ -975,10 +975,11 @@ MODULE moduleMesh REAL(8):: delta_par, delta_par_square, delta_per, delta_per_square REAL(8):: W(3), dW(2), normW !Relative velocity between particle and species and its increment REAL(8):: l2, l, lW, AW + REAL(8):: deltaV(1:3), totalDeltaV_ij, normDeltaV REAL(8):: rnd - !$OMP SINGLE + !$OMP DO SCHEDULE(DYNAMIC) PRIVATE(partTemp) DO e = 1, self%numCells cell => self%cells(e)%obj cellNodes = cell%getNodes(cell%nNodes) @@ -1003,6 +1004,7 @@ MODULE moduleMesh END DO !Loop over particles of species_i + totalDeltaV_ij = 0.D0 partTemp => cell%listPart_in(i)%head DO WHILE(ASSOCIATED(partTemp)) density = cell%gatherF(partTemp%part%Xi, cell%nNodes, densityNodes) @@ -1036,16 +1038,18 @@ MODULE moduleMesh e2(3) = 0.D0 e2 = normalize(e2) !Third one is perpendicular to the other two - e3 = crossProduct(e2, e1) + e3 = crossProduct(e1, e2) e3 = normalize(e3) !Random number for direction rnd = PI2*random() - !Change particle velocity - partTemp%part%v = partTemp%part%v + dW(1)*e1 + dW(2)*(COS(rnd)*e2 + & - SIN(rnd)*e3) + deltaV = dW(1)*e1 + dW(2)*(COS(rnd)*e2 + SIN(rnd)*e3) + totalDeltaV_ij = totalDeltaV_ij + NORM2(deltaV) + !Change particle velocity + partTemp%part%v = partTemp%part%v + deltaV + partTemp => partTemp%next END DO @@ -1062,6 +1066,8 @@ MODULE moduleMesh END DO + !Divide total momentum exchanged among all the particles of species j + normDeltaV = totalDeltaV_ij / REAL(cell%listPart_in(j)%amount) * (self%sp_i%weight*self%sp_i%m)/(self%sp_j%weight*self%sp_j%m) !Loop over particles of species_j partTemp => cell%listPart_in(j)%head DO WHILE(ASSOCIATED(partTemp)) @@ -1086,6 +1092,10 @@ MODULE moduleMesh dW(1) = delta_par*tauMin + randomMaxwellian()*SQRT(delta_par_square*tauMin) dW(2) = ABS(randomMaxwellian()*SQRT(delta_per_square*tauMin)) + !Normalize with average exchange per particle + !TODO: This is a dirty trick, it should not be neccessary but I don't lnow why it is. + dW = normDeltaV*dW/NORM2(dW) + !System of reference for the velocity change !First one is parallel to the relative velocity e1 = normalize(W) @@ -1095,15 +1105,16 @@ MODULE moduleMesh e2(3) = 0.D0 e2 = normalize(e2) !Third one is perpendicular to the other two - e3 = crossProduct(e2, e1) + e3 = crossProduct(e1, e2) e3 = normalize(e3) !Random number for direction rnd = PI2*random() + deltaV = dW(1)*e1 + dW(2)*(COS(rnd)*e2 + SIN(rnd)*e3) + !Change particle velocity - partTemp%part%v = partTemp%part%v + dW(1)*e1 + dW(2)*(COS(rnd)*e2 + & - SIN(rnd)*e3) + partTemp%part%v = partTemp%part%v + deltaV partTemp => partTemp%next @@ -1114,7 +1125,7 @@ MODULE moduleMesh END DO END DO - !$OMP END SINGLE + !$OMP END DO END SUBROUTINE doCoulomb diff --git a/src/modules/moduleCoulomb.f90 b/src/modules/moduleCoulomb.f90 index 85f4f49..ab931e0 100644 --- a/src/modules/moduleCoulomb.f90 +++ b/src/modules/moduleCoulomb.f90 @@ -54,6 +54,7 @@ MODULE moduleCoulomb CLASS(interactionsCoulomb), INTENT(out):: self INTEGER, INTENT(in):: i, j REAL(8):: Z_i, Z_j + REAL(8):: scaleFactor self%sp_i => species(i)%obj self%sp_j => species(j)%obj @@ -81,8 +82,10 @@ MODULE moduleCoulomb self%lnCoulomb = 10.0 !Make this function dependent - self%A_i = 8.D0*PI*Z_i**2*Z_j**2*self%lnCoulomb / self%sp_i%m**2 - self%A_j = 8.D0*PI*Z_j**2*Z_i**2*self%lnCoulomb / self%sp_j%m**2 + scaleFactor = (n_ref * qe**4) / (eps_0**2 * m_ref**2 * v_ref**3) * ti_ref + + self%A_i = 2.D0*Z_i**2*Z_j**2*self%lnCoulomb / self%sp_i%m**2 * scaleFactor + self%A_j = 2.D0*Z_j**2*Z_i**2*self%lnCoulomb / self%sp_j%m**2 * scaleFactor self%l2_j = self%sp_j%m / 2.D0 !Missing temperature because it's cell dependent self%l2_i = self%sp_i%m / 2.D0 !Missing temperature because it's cell dependent From a70788b95d66d69f017c6b1d3e34e4e5b1e442fd Mon Sep 17 00:00:00 2001 From: Jorge Gonzalez Date: Wed, 8 Mar 2023 19:42:15 +0100 Subject: [PATCH 05/20] Fix an issue with compilation Copy paste error. Now the code compiles. --- src/modules/mesh/moduleMesh.f90 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/modules/mesh/moduleMesh.f90 b/src/modules/mesh/moduleMesh.f90 index a62cfb2..7c3c4c3 100644 --- a/src/modules/mesh/moduleMesh.f90 +++ b/src/modules/mesh/moduleMesh.f90 @@ -1067,7 +1067,9 @@ MODULE moduleMesh END DO !Divide total momentum exchanged among all the particles of species j - normDeltaV = totalDeltaV_ij / REAL(cell%listPart_in(j)%amount) * (self%sp_i%weight*self%sp_i%m)/(self%sp_j%weight*self%sp_j%m) + normDeltaV = totalDeltaV_ij / REAL(cell%listPart_in(j)%amount) * & + (coulombMatrix(k)%sp_i%weight*coulombMatrix(k)%sp_i%m) / & + (coulombMatrix(k)%sp_j%weight*coulombMatrix(k)%sp_j%m) !Loop over particles of species_j partTemp => cell%listPart_in(j)%head DO WHILE(ASSOCIATED(partTemp)) @@ -1124,6 +1126,8 @@ MODULE moduleMesh END DO + DEALLOCATE(densityNodes, velocityNodes, temperatureNodes) + END DO !$OMP END DO From f4448d9e7ad0c6c7a3d24d67f124b9181a601cdd Mon Sep 17 00:00:00 2001 From: JGonzalez Date: Sun, 12 Mar 2023 17:02:12 +0100 Subject: [PATCH 06/20] Fixed segmentation fault in Coulomb collisions When the relative velocity between a charged particle and the background for Coulomb collisions (W in the code) was low, there was a segmentation fault. This is fixed now as if the norm of the relative velocity (normW) in the code is too low, no collision is applied. --- src/modules/mesh/moduleMesh.f90 | 16 ++++++++++++++++ src/modules/solver/moduleSolver.f90 | 1 - 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/modules/mesh/moduleMesh.f90 b/src/modules/mesh/moduleMesh.f90 index 7c3c4c3..c23990a 100644 --- a/src/modules/mesh/moduleMesh.f90 +++ b/src/modules/mesh/moduleMesh.f90 @@ -1016,6 +1016,14 @@ MODULE moduleMesh W = partTemp%part%v - velocity normW = NORM2(W) + IF (normW > 1.D-10) THEN + !If relative velocity is too low, skip collision and move to next particle + partTemp => partTemp%next + + CYCLE + + END IF + lW = l * normW AW = coulombMatrix(k)%A_i/normW @@ -1082,6 +1090,14 @@ MODULE moduleMesh W = partTemp%part%v - velocity normW = NORM2(W) + IF (normW > 1.D-10) THEN + !If relative velocity is too low, skip collision and move to next particle + partTemp => partTemp%next + + CYCLE + + END IF + lW = l * normW AW = coulombMatrix(k)%A_j/normW diff --git a/src/modules/solver/moduleSolver.f90 b/src/modules/solver/moduleSolver.f90 index 12f9e9a..e539fed 100644 --- a/src/modules/solver/moduleSolver.f90 +++ b/src/modules/solver/moduleSolver.f90 @@ -70,7 +70,6 @@ MODULE moduleSolver CHARACTER(:), ALLOCATABLE:: pusherType REAL(8):: tau, tauSp - !TODO: Reorganize if Cart pushers are combined SELECT CASE(mesh%dimen) CASE(0) self%pushParticle => push0D From ed6c2c46e4c6e9ca5efe13c750b9bc24eb95ef1e Mon Sep 17 00:00:00 2001 From: JGonzalez Date: Wed, 29 Mar 2023 10:08:11 +0200 Subject: [PATCH 07/20] I'm a fucking idiot The limit I set to avoid divisions by zero was wront and collisions were being skipped. It is corrected now. --- src/modules/init/moduleInput.f90 | 2 +- src/modules/mesh/moduleMesh.f90 | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/modules/init/moduleInput.f90 b/src/modules/init/moduleInput.f90 index c8beb0f..6ac8318 100644 --- a/src/modules/init/moduleInput.f90 +++ b/src/modules/init/moduleInput.f90 @@ -155,7 +155,7 @@ MODULE moduleInput sigmaVrel_ref = PI*(r_ref+r_ref)**2*v_ref !reference cross section times velocity ELSE - sigmaVrel_ref = 0.D0 !Assume no collisions + sigmaVrel_ref = L_ref**2 * v_ref END IF diff --git a/src/modules/mesh/moduleMesh.f90 b/src/modules/mesh/moduleMesh.f90 index c23990a..03dd356 100644 --- a/src/modules/mesh/moduleMesh.f90 +++ b/src/modules/mesh/moduleMesh.f90 @@ -1016,7 +1016,7 @@ MODULE moduleMesh W = partTemp%part%v - velocity normW = NORM2(W) - IF (normW > 1.D-10) THEN + IF (normW < 1.D-12) THEN !If relative velocity is too low, skip collision and move to next particle partTemp => partTemp%next @@ -1055,6 +1055,7 @@ MODULE moduleMesh deltaV = dW(1)*e1 + dW(2)*(COS(rnd)*e2 + SIN(rnd)*e3) totalDeltaV_ij = totalDeltaV_ij + NORM2(deltaV) + !Change particle velocity partTemp%part%v = partTemp%part%v + deltaV @@ -1078,6 +1079,7 @@ MODULE moduleMesh normDeltaV = totalDeltaV_ij / REAL(cell%listPart_in(j)%amount) * & (coulombMatrix(k)%sp_i%weight*coulombMatrix(k)%sp_i%m) / & (coulombMatrix(k)%sp_j%weight*coulombMatrix(k)%sp_j%m) + !Loop over particles of species_j partTemp => cell%listPart_in(j)%head DO WHILE(ASSOCIATED(partTemp)) @@ -1090,7 +1092,7 @@ MODULE moduleMesh W = partTemp%part%v - velocity normW = NORM2(W) - IF (normW > 1.D-10) THEN + IF (normW < 1.D-12) THEN !If relative velocity is too low, skip collision and move to next particle partTemp => partTemp%next @@ -1111,7 +1113,7 @@ MODULE moduleMesh dW(2) = ABS(randomMaxwellian()*SQRT(delta_per_square*tauMin)) !Normalize with average exchange per particle - !TODO: This is a dirty trick, it should not be neccessary but I don't lnow why it is. + !TODO: This is a dirty trick to ensure conservation between species dW = normDeltaV*dW/NORM2(dW) !System of reference for the velocity change From 94a4864e6a71d92f0dd08e6ecd83ec48a8ae76c2 Mon Sep 17 00:00:00 2001 From: JGonzalez Date: Mon, 22 May 2023 15:14:33 +0200 Subject: [PATCH 08/20] Issue with injection of particles I was having a lot of issues trying to get quasi-neutrality with the injection of electrons and ions. Main issue was a definition of the direction of injection. This should be fixed now (tested in 1D). Added a definition for Half-Maxwellian velocity distribution. WARNING: I'm still not happy at all about the definition of the direction of injection and the velocity definition to be in that direction so I might change it at some point (for example take into account the sign of each direction in the thermal part of the velocity) --- src/modules/init/moduleInput.f90 | 12 +++---- src/modules/moduleInject.f90 | 57 ++++++++++++++++++++++++-------- 2 files changed, 49 insertions(+), 20 deletions(-) diff --git a/src/modules/init/moduleInput.f90 b/src/modules/init/moduleInput.f90 index 6ac8318..9891806 100644 --- a/src/modules/init/moduleInput.f90 +++ b/src/modules/init/moduleInput.f90 @@ -1222,7 +1222,6 @@ MODULE moduleInput CHARACTER(:), ALLOCATABLE:: name REAL(8):: v REAL(8), ALLOCATABLE:: T(:), normal(:) - LOGICAL:: fixDirection REAL(8):: flow CHARACTER(:), ALLOCATABLE:: units INTEGER:: physicalSurface @@ -1243,10 +1242,7 @@ MODULE moduleInput CALL config%get(object // '.v', v, found) CALL config%get(object // '.T', T, found) CALL config%get(object // '.n', normal, found) - IF (found) THEN - fixDirection = .TRUE. - ELSE - fixDirection = .FALSE. + IF (.NOT. found) THEN ALLOCATE(normal(1:3)) normal = 0.D0 END IF @@ -1254,7 +1250,7 @@ MODULE moduleInput CALL config%get(object // '.units', units, found) CALL config%get(object // '.physicalSurface', physicalSurface, found) - CALL inject(i)%init(i, v, normal, fixDirection, T, flow, units, sp, physicalSurface) + CALL inject(i)%init(i, v, normal, T, flow, units, sp, physicalSurface) CALL readVelDistr(config, inject(i), object) @@ -1333,6 +1329,10 @@ MODULE moduleInput T = inj%T(i) CALL initVelDistMaxwellian(inj%v(i)%obj, t, m) + CASE ("Half-Maxwellian") + T = inj%T(i) + CALL initVelDistHalfMaxwellian(inj%v(i)%obj, t, m) + CASE ("Delta") v = inj%vMod*inj%n(i) CALL initVelDistDelta(inj%v(i)%obj) diff --git a/src/modules/moduleInject.f90 b/src/modules/moduleInject.f90 index e49fb04..e551f0f 100644 --- a/src/modules/moduleInject.f90 +++ b/src/modules/moduleInject.f90 @@ -35,6 +35,13 @@ MODULE moduleInject END TYPE velDistMaxwellian + TYPE, EXTENDS(velDistGeneric):: velDistHalfMaxwellian + REAL(8):: vTh !Thermal Velocity + CONTAINS + PROCEDURE, PASS:: randomVel => randomVelHalfMaxwellian + + END TYPE velDistHalfMaxwellian + !Dirac's delta distribution function TYPE, EXTENDS(velDistGeneric):: velDistDelta CONTAINS @@ -68,7 +75,7 @@ MODULE moduleInject CONTAINS !Initialize an injection of particles - SUBROUTINE initInject(self, i, v, n, fixDirection, T, flow, units, sp, physicalSurface) + SUBROUTINE initInject(self, i, v, n, T, flow, units, sp, physicalSurface) USE moduleMesh USE moduleRefParam USE moduleConstParam @@ -80,7 +87,6 @@ MODULE moduleInject CLASS(injectGeneric), INTENT(inout):: self INTEGER, INTENT(in):: i REAL(8), INTENT(in):: v, n(1:3), T(1:3) - LOGICAL, INTENT(in):: fixDirection INTEGER, INTENT(in):: sp, physicalSurface REAL(8):: tauInject REAL(8), INTENT(in):: flow @@ -91,12 +97,7 @@ MODULE moduleInject self%id = i self%vMod = v / v_ref - IF (.NOT. fixDirection) THEN - self%n = n / NORM2(n) - ELSE - self%n = 0.D0 - END IF - self%fixDirection = fixDirection + self%n = n / NORM2(n) self%T = T / T_ref self%species => species(sp)%obj tauInject = tau(self%species%n) @@ -212,6 +213,16 @@ MODULE moduleInject END SUBROUTINE initVelDistMaxwellian + SUBROUTINE initVelDistHalfMaxwellian(velDist, T, m) + IMPLICIT NONE + + CLASS(velDistGeneric), ALLOCATABLE, INTENT(out):: velDist + REAL(8), INTENT(in):: T, m + + velDist = velDistHalfMaxwellian(vTh = DSQRT(T/m)) + + END SUBROUTINE initVelDistHalfMaxwellian + SUBROUTINE initVelDistDelta(velDist) IMPLICIT NONE @@ -234,6 +245,22 @@ MODULE moduleInject END FUNCTION randomVelMaxwellian + !Random velocity from Half Maxwellian distribution + FUNCTION randomVelHalfMaxwellian(self) RESULT (v) + USE moduleRandom + IMPLICIT NONE + + CLASS(velDistHalfMaxwellian), INTENT(in):: self + REAL(8):: v + v = 0.D0 + + DO WHILE (v <= 0.D0) + v = self%vTh*randomMaxwellian() + + END DO + + END FUNCTION randomVelHalfMaxwellian + !Random velocity from Dirac's delta distribution PURE FUNCTION randomVelDelta(self) RESULT(v) IMPLICIT NONE @@ -305,18 +332,20 @@ MODULE moduleInject !Assign particle type partInj(n)%species => self%species - IF (self%fixDirection) THEN - direction = self%n + direction = self%n - ELSE - direction = randomEdge%normal - - END IF + partInj(n)%v = 0.D0 partInj(n)%v = self%vMod*direction + (/ self%v(1)%obj%randomVel(), & self%v(2)%obj%randomVel(), & self%v(3)%obj%randomVel() /) + !If velocity is not in the right direction, invert it + IF (DOT_PRODUCT(direction, partInj(n)%v) < 0.D0) THEN + partInj(n)%v = - partInj(n)%v + + END IF + !Obtain natural coordinates of particle in cell partInj(n)%Xi = mesh%cells(partInj(n)%cell)%obj%phy2log(partInj(n)%r) !Push new particle with the minimum time step From 2505cbecf20dc559a0babc62d56e89505f9e3db6 Mon Sep 17 00:00:00 2001 From: JGonzalez Date: Mon, 22 May 2023 15:20:11 +0200 Subject: [PATCH 09/20] Half-Maxwellian distribution added to the user manual The option to have half-Maxwellian distributions in the injection of particles has been added to the user manual. --- doc/user-manual/fpakc_UserManual.pdf | Bin 181687 -> 181729 bytes doc/user-manual/fpakc_UserManual.tex | 2 ++ 2 files changed, 2 insertions(+) diff --git a/doc/user-manual/fpakc_UserManual.pdf b/doc/user-manual/fpakc_UserManual.pdf index da9471c2e3131c41080d8a832dc6ef1febb6fe46..0f549be45ee07a4401640d307fa3c5bdcc6e3cde 100644 GIT binary patch delta 77977 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
    64u`(wNq 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�KJqF(NxTxGmN( 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�r%@{4a?{Y&N3b!x4H@1{c8#x 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 GxbQ!v_Smlg diff --git a/doc/user-manual/fpakc_UserManual.tex b/doc/user-manual/fpakc_UserManual.tex index a55c7dd..df29f33 100644 --- a/doc/user-manual/fpakc_UserManual.tex +++ b/doc/user-manual/fpakc_UserManual.tex @@ -619,6 +619,8 @@ make Type of distribution function used to obtain injected particle velocity: \begin{itemize} \item \textbf{Maxwellian}: Maxwellian distribution of temperature \textbf{T} and mean \textbf{v} times the value of \textbf{n} in the specified direction. + \item \textbf{Half-Maxwellian}: Half-Maxwellian distribution of temperature \textbf{T} and mean \textbf{v} times the value of \textbf{n} in the specified direction. + Only takes into account the positive part of the half-Maxwellian. \item \textbf{Delta}: Dirac's delta distribution function. All particles are injected with velocity \textbf{v} times the value of \textbf{n} in the specified direction. \end{itemize} \item \textbf{T}: Real. From 8d35123508d032ed63c9c53f737e0b77155fb175 Mon Sep 17 00:00:00 2001 From: Jorge Gonzalez Date: Tue, 4 Jul 2023 17:01:02 +0200 Subject: [PATCH 10/20] First Coulomb implementation that works After fixing all possible divisions by zero I was able to find in the Coulomb collision I think that this is a first working implementation of a Coulomb operator based on moments. Still to test a few things, modify the manual but I would say that I'm satisfiyed right now. This operator won't be used that often but maybe improving efficiency is still needed. In the future a binary operator is required to be able to study cases out of Maxwellian equilibrium. --- src/modules/mesh/2DCyl/moduleMesh2DCyl.f90 | 2 +- src/modules/mesh/moduleMesh.f90 | 73 +++++++++++++++------- src/modules/moduleInject.f90 | 2 +- 3 files changed, 51 insertions(+), 26 deletions(-) diff --git a/src/modules/mesh/2DCyl/moduleMesh2DCyl.f90 b/src/modules/mesh/2DCyl/moduleMesh2DCyl.f90 index a2ffb7a..d4baedd 100644 --- a/src/modules/mesh/2DCyl/moduleMesh2DCyl.f90 +++ b/src/modules/mesh/2DCyl/moduleMesh2DCyl.f90 @@ -163,7 +163,7 @@ MODULE moduleMesh2DCyl r2 = self%n2%getCoordinates() self%z = (/r1(1), r2(1)/) self%r = (/r1(2), r2(2)/) - self%weight = SUM(self%r)*5.D-1 + self%weight = r2(2)**2 - r1(2)**2 !Normal vector self%normal = (/ -(self%r(2)-self%r(1)), & self%z(2)-self%z(1) , & diff --git a/src/modules/mesh/moduleMesh.f90 b/src/modules/mesh/moduleMesh.f90 index 03dd356..c5f301a 100644 --- a/src/modules/mesh/moduleMesh.f90 +++ b/src/modules/mesh/moduleMesh.f90 @@ -977,6 +977,7 @@ MODULE moduleMesh REAL(8):: l2, l, lW, AW REAL(8):: deltaV(1:3), totalDeltaV_ij, normDeltaV REAL(8):: rnd + REAL(8):: eps = 1.D-10 !$OMP DO SCHEDULE(DYNAMIC) PRIVATE(partTemp) @@ -1011,13 +1012,22 @@ MODULE moduleMesh velocity = cell%gatherF(partTemp%part%Xi, cell%nNodes, velocityNodes) temperature = cell%gatherF(partTemp%part%Xi, cell%nNodes, temperatureNodes) - l2 = coulombMatrix(k)%l2_j/temperature - l = SQRT(l2) + !If cell temperature is too low, skip particle to avoid division by zero + IF (temperature>eps) THEN + l2 = coulombMatrix(k)%l2_j/temperature + l = SQRT(l2) + + ELSE + partTemp => partTemp%next + + CYCLE + + END IF W = partTemp%part%v - velocity normW = NORM2(W) - IF (normW < 1.D-12) THEN - !If relative velocity is too low, skip collision and move to next particle + !If relative velocity is too low, skip collision to avoid division by zero and move to next particle + IF (normW < eps) THEN partTemp => partTemp%next CYCLE @@ -1027,7 +1037,6 @@ MODULE moduleMesh lW = l * normW AW = coulombMatrix(k)%A_i/normW - delta_par = -coulombMatrix(k)%A_i*coulombMatrix(k)%one_plus_massRatio_ij*density*l2*G(lW) delta_par_square = AW*density*G(lW) @@ -1063,8 +1072,8 @@ MODULE moduleMesh END DO + !Do scattering of particles from species_j due to species i IF (i /= j) THEN - !Do scattering of particles from species_j due to species i !Compute background properties of species_i DO n = 1, cell%nNodes node => self%nodes(cellNodes(n))%obj @@ -1072,10 +1081,11 @@ MODULE moduleMesh densityNodes(n) = output%density/n_ref velocityNodes(n,1:3) = output%velocity(1:3)/v_ref temperatureNodes(n) = output%temperature/T_ref - + END DO !Divide total momentum exchanged among all the particles of species j + !TODO: This is a dirty trick to ensure conservation between species normDeltaV = totalDeltaV_ij / REAL(cell%listPart_in(j)%amount) * & (coulombMatrix(k)%sp_i%weight*coulombMatrix(k)%sp_i%m) / & (coulombMatrix(k)%sp_j%weight*coulombMatrix(k)%sp_j%m) @@ -1087,26 +1097,35 @@ MODULE moduleMesh velocity = cell%gatherF(partTemp%part%Xi, cell%nNodes, velocityNodes) temperature = cell%gatherF(partTemp%part%Xi, cell%nNodes, temperatureNodes) - l2 = coulombMatrix(k)%l2_i/temperature - l = SQRT(l2) - - W = partTemp%part%v - velocity - normW = NORM2(W) - IF (normW < 1.D-12) THEN - !If relative velocity is too low, skip collision and move to next particle + !If cell temperature is too low, skip particle to avoid division by zero + IF (temperature>eps) THEN + l2 = coulombMatrix(k)%l2_i/temperature + l = SQRT(l2) + + ELSE partTemp => partTemp%next CYCLE END IF - + + W = partTemp%part%v - velocity + normW = NORM2(W) + !If relative velocity is too low, skip collision and move to next particle + IF (normW < eps) THEN + partTemp => partTemp%next + + CYCLE + + END IF + lW = l * normW AW = coulombMatrix(k)%A_j/normW - + delta_par = -coulombMatrix(k)%A_j*coulombMatrix(k)%one_plus_massRatio_ji*density*l2*G(lW) - + delta_par_square = AW*density*G(lW) - + delta_per_square = AW*density*H(lW) dW(1) = delta_par*tauMin + randomMaxwellian()*SQRT(delta_par_square*tauMin) @@ -1114,7 +1133,13 @@ MODULE moduleMesh !Normalize with average exchange per particle !TODO: This is a dirty trick to ensure conservation between species - dW = normDeltaV*dW/NORM2(dW) + IF (NORM2(dW) > eps) THEN + dW = normDeltaV*dW/NORM2(dW) + + ELSE + dW = 0.D0 + + END IF !System of reference for the velocity change !First one is parallel to the relative velocity @@ -1127,24 +1152,24 @@ MODULE moduleMesh !Third one is perpendicular to the other two e3 = crossProduct(e1, e2) e3 = normalize(e3) - + !Random number for direction rnd = PI2*random() - + deltaV = dW(1)*e1 + dW(2)*(COS(rnd)*e2 + SIN(rnd)*e3) !Change particle velocity partTemp%part%v = partTemp%part%v + deltaV - + partTemp => partTemp%next - + END DO END IF END DO - DEALLOCATE(densityNodes, velocityNodes, temperatureNodes) + DEALLOCATE(densityNodes, velocityNodes, temperatureNodes, cellNodes) END DO !$OMP END DO diff --git a/src/modules/moduleInject.f90 b/src/modules/moduleInject.f90 index e551f0f..4e57083 100644 --- a/src/modules/moduleInject.f90 +++ b/src/modules/moduleInject.f90 @@ -97,7 +97,7 @@ MODULE moduleInject self%id = i self%vMod = v / v_ref - self%n = n / NORM2(n) + self%n = n / NORM2(n) self%T = T / T_ref self%species => species(sp)%obj tauInject = tau(self%species%n) From a26dc04051ec370127be3218473dc45ea1918657 Mon Sep 17 00:00:00 2001 From: Jorge Gonzalez Date: Fri, 7 Jul 2023 16:36:31 +0200 Subject: [PATCH 11/20] I hate Coulomb and his Scattering I found no way to ensure conservation in the linear Coulomb operator. Thus, now two collisions have to be declared if sp_i /= sp_j: collision ij and collision ji. This does not conserve energy so please use under your own risk, like everything else. Still, I think something is wrong with this implementation and I'm really tired. --- src/modules/mesh/moduleMesh.f90 | 101 +------------------------------- src/modules/moduleCoulomb.f90 | 9 +-- 2 files changed, 5 insertions(+), 105 deletions(-) diff --git a/src/modules/mesh/moduleMesh.f90 b/src/modules/mesh/moduleMesh.f90 index c5f301a..b8d7501 100644 --- a/src/modules/mesh/moduleMesh.f90 +++ b/src/modules/mesh/moduleMesh.f90 @@ -975,7 +975,7 @@ MODULE moduleMesh REAL(8):: delta_par, delta_par_square, delta_per, delta_per_square REAL(8):: W(3), dW(2), normW !Relative velocity between particle and species and its increment REAL(8):: l2, l, lW, AW - REAL(8):: deltaV(1:3), totalDeltaV_ij, normDeltaV + REAL(8):: deltaV(1:3) REAL(8):: rnd REAL(8):: eps = 1.D-10 @@ -1005,7 +1005,6 @@ MODULE moduleMesh END DO !Loop over particles of species_i - totalDeltaV_ij = 0.D0 partTemp => cell%listPart_in(i)%head DO WHILE(ASSOCIATED(partTemp)) density = cell%gatherF(partTemp%part%Xi, cell%nNodes, densityNodes) @@ -1026,6 +1025,7 @@ MODULE moduleMesh W = partTemp%part%v - velocity normW = NORM2(W) + !If relative velocity is too low, skip collision to avoid division by zero and move to next particle IF (normW < eps) THEN partTemp => partTemp%next @@ -1063,8 +1063,6 @@ MODULE moduleMesh deltaV = dW(1)*e1 + dW(2)*(COS(rnd)*e2 + SIN(rnd)*e3) - totalDeltaV_ij = totalDeltaV_ij + NORM2(deltaV) - !Change particle velocity partTemp%part%v = partTemp%part%v + deltaV @@ -1072,101 +1070,6 @@ MODULE moduleMesh END DO - !Do scattering of particles from species_j due to species i - IF (i /= j) THEN - !Compute background properties of species_i - DO n = 1, cell%nNodes - node => self%nodes(cellNodes(n))%obj - CALL calculateOutput(node%output(i), output, node%v, coulombMatrix(k)%sp_i) - densityNodes(n) = output%density/n_ref - velocityNodes(n,1:3) = output%velocity(1:3)/v_ref - temperatureNodes(n) = output%temperature/T_ref - - END DO - - !Divide total momentum exchanged among all the particles of species j - !TODO: This is a dirty trick to ensure conservation between species - normDeltaV = totalDeltaV_ij / REAL(cell%listPart_in(j)%amount) * & - (coulombMatrix(k)%sp_i%weight*coulombMatrix(k)%sp_i%m) / & - (coulombMatrix(k)%sp_j%weight*coulombMatrix(k)%sp_j%m) - - !Loop over particles of species_j - partTemp => cell%listPart_in(j)%head - DO WHILE(ASSOCIATED(partTemp)) - density = cell%gatherF(partTemp%part%Xi, cell%nNodes, densityNodes) - velocity = cell%gatherF(partTemp%part%Xi, cell%nNodes, velocityNodes) - temperature = cell%gatherF(partTemp%part%Xi, cell%nNodes, temperatureNodes) - - !If cell temperature is too low, skip particle to avoid division by zero - IF (temperature>eps) THEN - l2 = coulombMatrix(k)%l2_i/temperature - l = SQRT(l2) - - ELSE - partTemp => partTemp%next - - CYCLE - - END IF - - W = partTemp%part%v - velocity - normW = NORM2(W) - !If relative velocity is too low, skip collision and move to next particle - IF (normW < eps) THEN - partTemp => partTemp%next - - CYCLE - - END IF - - lW = l * normW - AW = coulombMatrix(k)%A_j/normW - - delta_par = -coulombMatrix(k)%A_j*coulombMatrix(k)%one_plus_massRatio_ji*density*l2*G(lW) - - delta_par_square = AW*density*G(lW) - - delta_per_square = AW*density*H(lW) - - dW(1) = delta_par*tauMin + randomMaxwellian()*SQRT(delta_par_square*tauMin) - dW(2) = ABS(randomMaxwellian()*SQRT(delta_per_square*tauMin)) - - !Normalize with average exchange per particle - !TODO: This is a dirty trick to ensure conservation between species - IF (NORM2(dW) > eps) THEN - dW = normDeltaV*dW/NORM2(dW) - - ELSE - dW = 0.D0 - - END IF - - !System of reference for the velocity change - !First one is parallel to the relative velocity - e1 = normalize(W) - !Second one is perpendicular to it - e2(1) = -e1(2) - e2(2) = e1(1) - e2(3) = 0.D0 - e2 = normalize(e2) - !Third one is perpendicular to the other two - e3 = crossProduct(e1, e2) - e3 = normalize(e3) - - !Random number for direction - rnd = PI2*random() - - deltaV = dW(1)*e1 + dW(2)*(COS(rnd)*e2 + SIN(rnd)*e3) - - !Change particle velocity - partTemp%part%v = partTemp%part%v + deltaV - - partTemp => partTemp%next - - END DO - - END IF - END DO DEALLOCATE(densityNodes, velocityNodes, temperatureNodes, cellNodes) diff --git a/src/modules/moduleCoulomb.f90 b/src/modules/moduleCoulomb.f90 index ab931e0..683e626 100644 --- a/src/modules/moduleCoulomb.f90 +++ b/src/modules/moduleCoulomb.f90 @@ -8,10 +8,10 @@ MODULE moduleCoulomb TYPE:: interactionsCoulomb CLASS(speciesGeneric), POINTER:: sp_i CLASS(speciesGeneric), POINTER:: sp_j - REAL(8):: one_plus_massRatio_ij, one_plus_massRatio_ji + REAL(8):: one_plus_massRatio_ij REAL(8):: lnCoulomb !This can be done a function in the future - REAL(8):: A_i, A_j - REAL(8):: l2_j, l2_i + REAL(8):: A_i + REAL(8):: l2_j CONTAINS PROCEDURE, PASS:: init => initInteractionCoulomb @@ -60,7 +60,6 @@ MODULE moduleCoulomb self%sp_j => species(j)%obj self%one_plus_massRatio_ij = 1.D0 + (self%sp_i%weight*self%sp_i%m)/(self%sp_j%weight*self%sp_j%m) - self%one_plus_massRatio_ji = 1.D0 + (self%sp_j%weight*self%sp_j%m)/(self%sp_i%weight*self%sp_i%m) SELECT TYPE(sp => self%sp_i) TYPE IS (speciesCharged) @@ -85,10 +84,8 @@ MODULE moduleCoulomb scaleFactor = (n_ref * qe**4) / (eps_0**2 * m_ref**2 * v_ref**3) * ti_ref self%A_i = 2.D0*Z_i**2*Z_j**2*self%lnCoulomb / self%sp_i%m**2 * scaleFactor - self%A_j = 2.D0*Z_j**2*Z_i**2*self%lnCoulomb / self%sp_j%m**2 * scaleFactor self%l2_j = self%sp_j%m / 2.D0 !Missing temperature because it's cell dependent - self%l2_i = self%sp_i%m / 2.D0 !Missing temperature because it's cell dependent END SUBROUTINE initInteractionCoulomb From d75af4bda72d79f2903dd632fc15d850f09be8ef Mon Sep 17 00:00:00 2001 From: JGonzalez Date: Tue, 11 Jul 2023 07:51:49 +0200 Subject: [PATCH 12/20] Trying to implement Lemos Coulomb Scatering I was having tones of issues with the previous implementation. I think the problem was the velocity vector and how it was returning to the normal reference frame. I hope this new implementation works better. --- src/modules/mesh/moduleMesh.f90 | 49 ++++++++++++++------------------- 1 file changed, 20 insertions(+), 29 deletions(-) diff --git a/src/modules/mesh/moduleMesh.f90 b/src/modules/mesh/moduleMesh.f90 index b8d7501..4495355 100644 --- a/src/modules/mesh/moduleMesh.f90 +++ b/src/modules/mesh/moduleMesh.f90 @@ -973,9 +973,12 @@ MODULE moduleMesh REAL(8):: density, velocity(1:3), temperature!values at particle position REAL(8), DIMENSION(1:3):: e1, e2, e3 REAL(8):: delta_par, delta_par_square, delta_per, delta_per_square - REAL(8):: W(3), dW(2), normW !Relative velocity between particle and species and its increment - REAL(8):: l2, l, lW, AW - REAL(8):: deltaV(1:3) + REAL(8):: normW + REAL(8):: l2, l, lW, AW, AW2, AW3 + REAL(8):: deltaW, deltaThe, deltaPhi + REAL(8):: cosDeltaPhi, sinDeltaPhi + REAL(8):: cosDeltaThe, sinDeltaThe + REAL(8):: deltaV(1:3) !Relative particle velocity increment REAL(8):: rnd REAL(8):: eps = 1.D-10 @@ -1023,8 +1026,7 @@ MODULE moduleMesh END IF - W = partTemp%part%v - velocity - normW = NORM2(W) + normW = NORM2(partTemp%part%v - velocity) !If relative velocity is too low, skip collision to avoid division by zero and move to next particle IF (normW < eps) THEN @@ -1035,33 +1037,22 @@ MODULE moduleMesh END IF lW = l * normW - AW = coulombMatrix(k)%A_i/normW + AW = coulombMatrix(k)%A_i/normW + AW2 = coulombMatrix(k)%A_i/normW**2 / 2.D0 + AW3 = coulombMatrix(k)%A_i/normW**3 / 2.D0 - delta_par = -coulombMatrix(k)%A_i*coulombMatrix(k)%one_plus_massRatio_ij*density*l2*G(lW) + deltaW = (-coulombMatrix(k)%A_i*coulombMatrix(k)%one_plus_massRatio_ij*l2*G(lW) - AW2*G(lW) + AW2*ERF(lw)) * tauMin + & + SQRT(AW * G(lW) * tauMin) * ABS(randomMaxwellian()) + deltaThe = SQRT(2.D0 * AW3 * H(lW) * tauMin)*ABS(randomMaxwellian()) + deltaPhi = PI2 * random() - delta_par_square = AW*density*G(lW) + cosDeltaThe = COS(deltaThe) + sinDeltaThe = SIN(deltaThe) + cosDeltaPhi = COS(deltaPhi) + sinDeltaPhi = SIN(deltaPhi) - delta_per_square = AW*density*H(lW) - - dW(1) = delta_par*tauMin + randomMaxwellian()*SQRT(delta_par_square*tauMin) - dW(2) = ABS(randomMaxwellian()*SQRT(delta_per_square*tauMin)) - - !System of reference for the velocity change - !First one is parallel to the relative velocity - e1 = normalize(W) - !Second one is perpendicular to it - e2(1) = -e1(2) - e2(2) = e1(1) - e2(3) = 0.D0 - e2 = normalize(e2) - !Third one is perpendicular to the other two - e3 = crossProduct(e1, e2) - e3 = normalize(e3) - - !Random number for direction - rnd = PI2*random() - - deltaV = dW(1)*e1 + dW(2)*(COS(rnd)*e2 + SIN(rnd)*e3) + !Rotate velocity frame assuming theta = phi = 0 + deltaV = (normW + deltaW) * (/ sinDeltaThe * cosDeltaPhi, sinDeltaThe * sinDeltaPhi, cosDeltaPhi /) !Change particle velocity partTemp%part%v = partTemp%part%v + deltaV From c45ffa5380b31f95631ff8030c513acf0c7d2c0f Mon Sep 17 00:00:00 2001 From: Jorge Gonzalez Date: Tue, 11 Jul 2023 09:58:50 +0200 Subject: [PATCH 13/20] Dear various gods, finally... I had to go back to sherlock2008montecarlo to properly understand the change in frame of reference and how to translate that into the code. The language there is clear and understandable for a dumb person like me. Now I have a Coulomb linear operator that at least works. However, still not fully 100% conservative, need to fix this with a correction for intra-species collisions. I skip gym today because I was unable to focus on other things than this. --- src/modules/mesh/moduleMesh.f90 | 65 +++++++++++++++++++-------------- src/modules/moduleCoulomb.f90 | 2 +- 2 files changed, 39 insertions(+), 28 deletions(-) diff --git a/src/modules/mesh/moduleMesh.f90 b/src/modules/mesh/moduleMesh.f90 index 4495355..a0ba9aa 100644 --- a/src/modules/mesh/moduleMesh.f90 +++ b/src/modules/mesh/moduleMesh.f90 @@ -971,15 +971,16 @@ MODULE moduleMesh TYPE(outputFormat):: output REAL(8), ALLOCATABLE:: densityNodes(:), velocityNodes(:,:), temperatureNodes(:) !values in node REAL(8):: density, velocity(1:3), temperature!values at particle position - REAL(8), DIMENSION(1:3):: e1, e2, e3 - REAL(8):: delta_par, delta_par_square, delta_per, delta_per_square - REAL(8):: normW - REAL(8):: l2, l, lW, AW, AW2, AW3 - REAL(8):: deltaW, deltaThe, deltaPhi - REAL(8):: cosDeltaPhi, sinDeltaPhi - REAL(8):: cosDeltaThe, sinDeltaThe - REAL(8):: deltaV(1:3) !Relative particle velocity increment - REAL(8):: rnd + REAL(8):: C(1:3), W(1:3) !relative velocity and velocity in the relative frame of reference + REAL(8):: l, lW, l2 + REAL(8):: normC, normW + REAL(8):: theta, phi !angles between w and c + REAL(8):: cosThe, sinThe + REAL(8):: cosPhi, sinPhi + REAL(8):: rotation(1:3,1:3) !Rotation matrix to go back to laboratory frame + REAL(8):: A, AW + REAL(8):: deltaW_par, deltaW_par_square, deltaW_per_square !Increments of W + REAL(8):: theta_per !Random angle for perpendicular direction REAL(8):: eps = 1.D-10 @@ -1026,36 +1027,46 @@ MODULE moduleMesh END IF - normW = NORM2(partTemp%part%v - velocity) + C = partTemp%part%v - velocity + normC = NORM2(C) !If relative velocity is too low, skip collision to avoid division by zero and move to next particle - IF (normW < eps) THEN + IF (normC < eps) THEN partTemp => partTemp%next CYCLE END IF + + + theta = ACOS(C(3) / normC) + cosThe = COS(theta) + sinThe = SIN(theta) + phi = SIGN(1.D0, C(1)) * ACOS(C(1) / SQRT(C(1)**2 + C(2)**2)) + cosPhi = COS(phi) + sinPhi = SIN(phi) + + rotation(1, 1:3) = (/ cosThe*cosPhi, -sinPhi, sinThe*cosPhi /) + rotation(2, 1:3) = (/ cosThe*sinPhi, cosPhi, sinThe*sinPhi /) + rotation(3, 1:3) = (/-sinThe, 0.D0, cosThe /) - lW = l * normW - AW = coulombMatrix(k)%A_i/normW - AW2 = coulombMatrix(k)%A_i/normW**2 / 2.D0 - AW3 = coulombMatrix(k)%A_i/normW**3 / 2.D0 + !W at start is = (0, 0, normC), so normW = normC + lW = l * normC + A = coulombMatrix(k)%A_i*density + AW = A / normC - deltaW = (-coulombMatrix(k)%A_i*coulombMatrix(k)%one_plus_massRatio_ij*l2*G(lW) - AW2*G(lW) + AW2*ERF(lw)) * tauMin + & - SQRT(AW * G(lW) * tauMin) * ABS(randomMaxwellian()) - deltaThe = SQRT(2.D0 * AW3 * H(lW) * tauMin)*ABS(randomMaxwellian()) - deltaPhi = PI2 * random() + deltaW_par = - A * coulombMatrix(k)%one_plus_massRatio_ij * l2 * G(lW) * tauMin + deltaW_par_square = SQRT(AW * G(lW) * tauMin)*randomMaxwellian() + deltaW_per_square = SQRT(AW * H(lW) * tauMin)*randomMaxwellian() - cosDeltaThe = COS(deltaThe) - sinDeltaThe = SIN(deltaThe) - cosDeltaPhi = COS(deltaPhi) - sinDeltaPhi = SIN(deltaPhi) - - !Rotate velocity frame assuming theta = phi = 0 - deltaV = (normW + deltaW) * (/ sinDeltaThe * cosDeltaPhi, sinDeltaThe * sinDeltaPhi, cosDeltaPhi /) + theta_per = PI2*random() + !Change W + W(1) = deltaW_per_square * COS(theta_per) + W(2) = deltaW_per_square * SIN(theta_per) + W(3) = normC + deltaW_par + deltaW_par_square !Change particle velocity - partTemp%part%v = partTemp%part%v + deltaV + partTemp%part%v = velocity + MATMUL(rotation, W) partTemp => partTemp%next diff --git a/src/modules/moduleCoulomb.f90 b/src/modules/moduleCoulomb.f90 index 683e626..7bd3f72 100644 --- a/src/modules/moduleCoulomb.f90 +++ b/src/modules/moduleCoulomb.f90 @@ -83,7 +83,7 @@ MODULE moduleCoulomb scaleFactor = (n_ref * qe**4) / (eps_0**2 * m_ref**2 * v_ref**3) * ti_ref - self%A_i = 2.D0*Z_i**2*Z_j**2*self%lnCoulomb / self%sp_i%m**2 * scaleFactor + self%A_i = Z_i**2*Z_j**2*self%lnCoulomb / (2.D0 * PI**2 * self%sp_i%m**2) * scaleFactor self%l2_j = self%sp_j%m / 2.D0 !Missing temperature because it's cell dependent From 63fc2842be64cc2cd9becf480170bdfabcfd8026 Mon Sep 17 00:00:00 2001 From: Jorge Gonzalez Date: Tue, 11 Jul 2023 11:22:19 +0200 Subject: [PATCH 14/20] Small changes Just some small changes to the code to improve its quality. Nothing regarding conservation was done yet. --- src/modules/mesh/moduleMesh.f90 | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/modules/mesh/moduleMesh.f90 b/src/modules/mesh/moduleMesh.f90 index a0ba9aa..0f1260e 100644 --- a/src/modules/mesh/moduleMesh.f90 +++ b/src/modules/mesh/moduleMesh.f90 @@ -971,9 +971,10 @@ MODULE moduleMesh TYPE(outputFormat):: output REAL(8), ALLOCATABLE:: densityNodes(:), velocityNodes(:,:), temperatureNodes(:) !values in node REAL(8):: density, velocity(1:3), temperature!values at particle position - REAL(8):: C(1:3), W(1:3) !relative velocity and velocity in the relative frame of reference + REAL(8):: C(1:3), C_per, W(1:3) !relative velocity and velocity in the relative frame of reference REAL(8):: l, lW, l2 - REAL(8):: normC, normW + REAL(8):: GlW, HlW + REAL(8):: normC REAL(8):: theta, phi !angles between w and c REAL(8):: cosThe, sinThe REAL(8):: cosPhi, sinPhi @@ -1038,11 +1039,17 @@ MODULE moduleMesh END IF - theta = ACOS(C(3) / normC) cosThe = COS(theta) sinThe = SIN(theta) - phi = SIGN(1.D0, C(1)) * ACOS(C(1) / SQRT(C(1)**2 + C(2)**2)) + C_per = SQRT(C(1)**2 + C(2)**2) + IF (C_per > eps) THEN + phi = SIGN(1.D0, C(1)) * ACOS(C(1) / C_per) + + ELSE + phi = 0.D0 + + END IF cosPhi = COS(phi) sinPhi = SIN(phi) @@ -1052,14 +1059,18 @@ MODULE moduleMesh !W at start is = (0, 0, normC), so normW = normC lW = l * normC + GlW = G(lW) + HlW = H(lW) A = coulombMatrix(k)%A_i*density AW = A / normC - deltaW_par = - A * coulombMatrix(k)%one_plus_massRatio_ij * l2 * G(lW) * tauMin - deltaW_par_square = SQRT(AW * G(lW) * tauMin)*randomMaxwellian() - deltaW_per_square = SQRT(AW * H(lW) * tauMin)*randomMaxwellian() + !Calculate changes in W due to collision process + deltaW_par = - A * coulombMatrix(k)%one_plus_massRatio_ij * l2 * GlW * tauMin + deltaW_par_square = SQRT(AW * GlW * tauMin)*randomMaxwellian() + deltaW_per_square = SQRT(AW * HlW * tauMin)*randomMaxwellian() theta_per = PI2*random() + !Change W W(1) = deltaW_per_square * COS(theta_per) W(2) = deltaW_per_square * SIN(theta_per) From f63e34e2664e97a7a64bd397546b2eca711a3375 Mon Sep 17 00:00:00 2001 From: Jorge Gonzalez Date: Tue, 11 Jul 2023 18:55:20 +0200 Subject: [PATCH 15/20] Not fully conservative but works The code is still not fully conservative in intra-species collisions (small error) but at least now is working. I have to test species with different weight. I have to implement a fully conservation for intra-species. --- src/modules/mesh/moduleMesh.f90 | 6 ++++-- src/modules/moduleCoulomb.f90 | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/modules/mesh/moduleMesh.f90 b/src/modules/mesh/moduleMesh.f90 index 0f1260e..3dea7c0 100644 --- a/src/modules/mesh/moduleMesh.f90 +++ b/src/modules/mesh/moduleMesh.f90 @@ -1055,7 +1055,7 @@ MODULE moduleMesh rotation(1, 1:3) = (/ cosThe*cosPhi, -sinPhi, sinThe*cosPhi /) rotation(2, 1:3) = (/ cosThe*sinPhi, cosPhi, sinThe*sinPhi /) - rotation(3, 1:3) = (/-sinThe, 0.D0, cosThe /) + rotation(3, 1:3) = (/-sinThe, 0.D0, cosThe /) !W at start is = (0, 0, normC), so normW = normC lW = l * normC @@ -1069,6 +1069,7 @@ MODULE moduleMesh deltaW_par_square = SQRT(AW * GlW * tauMin)*randomMaxwellian() deltaW_per_square = SQRT(AW * HlW * tauMin)*randomMaxwellian() + !Random angle to distribute perpendicular change in velocity theta_per = PI2*random() !Change W @@ -1076,9 +1077,10 @@ MODULE moduleMesh W(2) = deltaW_per_square * SIN(theta_per) W(3) = normC + deltaW_par + deltaW_par_square - !Change particle velocity + !Update particle velocity and return to laboratory frame partTemp%part%v = velocity + MATMUL(rotation, W) + !Move to the next particle in the list partTemp => partTemp%next END DO diff --git a/src/modules/moduleCoulomb.f90 b/src/modules/moduleCoulomb.f90 index 7bd3f72..fe2a2f6 100644 --- a/src/modules/moduleCoulomb.f90 +++ b/src/modules/moduleCoulomb.f90 @@ -59,8 +59,10 @@ MODULE moduleCoulomb self%sp_i => species(i)%obj self%sp_j => species(j)%obj - self%one_plus_massRatio_ij = 1.D0 + (self%sp_i%weight*self%sp_i%m)/(self%sp_j%weight*self%sp_j%m) + self%one_plus_massRatio_ij = 1.D0 + self%sp_i%m/self%sp_j%m + Z_i = 0.D0 + Z_j = 0.D0 SELECT TYPE(sp => self%sp_i) TYPE IS (speciesCharged) Z_i = sp%q From a891360b7a5a37ce0c0a6fc5bba88a6e06bc5d19 Mon Sep 17 00:00:00 2001 From: Jorge Gonzalez Date: Wed, 12 Jul 2023 11:38:12 +0200 Subject: [PATCH 16/20] Still unsure, but things fixed There was an issue with the calculation of theta and phi for the rotation from W to C. This was causing some velocities not being correct. Now the angles are properly computed. Still unsure about the e-i collisions as they seem to be quite small. Probably a numerical issue with the mass ratios still exists. --- src/modules/mesh/moduleMesh.f90 | 31 +++++++++++++------------------ src/modules/moduleCoulomb.f90 | 4 ++-- 2 files changed, 15 insertions(+), 20 deletions(-) diff --git a/src/modules/mesh/moduleMesh.f90 b/src/modules/mesh/moduleMesh.f90 index 3dea7c0..234ae3c 100644 --- a/src/modules/mesh/moduleMesh.f90 +++ b/src/modules/mesh/moduleMesh.f90 @@ -982,7 +982,7 @@ MODULE moduleMesh REAL(8):: A, AW REAL(8):: deltaW_par, deltaW_par_square, deltaW_per_square !Increments of W REAL(8):: theta_per !Random angle for perpendicular direction - REAL(8):: eps = 1.D-10 + REAL(8):: eps = 1.D-12 !$OMP DO SCHEDULE(DYNAMIC) PRIVATE(partTemp) @@ -1039,24 +1039,19 @@ MODULE moduleMesh END IF - theta = ACOS(C(3) / normC) - cosThe = COS(theta) - sinThe = SIN(theta) - C_per = SQRT(C(1)**2 + C(2)**2) - IF (C_per > eps) THEN - phi = SIGN(1.D0, C(1)) * ACOS(C(1) / C_per) + !C_3 = z; C_1, C2 = x, y (per) + C_per = NORM2(C(1:2)) + cosPhi = C(1) / C_per + sinPhi = C(2) / C_per + cosThe = C(3) / normC + sinThe = C_per / normC - ELSE - phi = 0.D0 + !Rotation matrix to go from W to C + rotation = RESHAPE((/ cosThe*cosPhi, cosThe*sinPhi, -sinThe, & !First column + -sinPhi, cosPhi, 0.D0, & !Second column + sinThe*cosPhi, sinThe*sinPhi, cosThe /), & !Third column + (/ 3, 3 /)) - END IF - cosPhi = COS(phi) - sinPhi = SIN(phi) - - rotation(1, 1:3) = (/ cosThe*cosPhi, -sinPhi, sinThe*cosPhi /) - rotation(2, 1:3) = (/ cosThe*sinPhi, cosPhi, sinThe*sinPhi /) - rotation(3, 1:3) = (/-sinThe, 0.D0, cosThe /) - !W at start is = (0, 0, normC), so normW = normC lW = l * normC GlW = G(lW) @@ -1078,7 +1073,7 @@ MODULE moduleMesh W(3) = normC + deltaW_par + deltaW_par_square !Update particle velocity and return to laboratory frame - partTemp%part%v = velocity + MATMUL(rotation, W) + partTemp%part%v = MATMUL(rotation, W) + velocity !Move to the next particle in the list partTemp => partTemp%next diff --git a/src/modules/moduleCoulomb.f90 b/src/modules/moduleCoulomb.f90 index fe2a2f6..653eaa4 100644 --- a/src/modules/moduleCoulomb.f90 +++ b/src/modules/moduleCoulomb.f90 @@ -83,9 +83,9 @@ MODULE moduleCoulomb self%lnCoulomb = 10.0 !Make this function dependent - scaleFactor = (n_ref * qe**4) / (eps_0**2 * m_ref**2 * v_ref**3) * ti_ref + scaleFactor = (n_ref * qe**4 * ti_ref) / (eps_0**2 * m_ref**2 * v_ref**3) - self%A_i = Z_i**2*Z_j**2*self%lnCoulomb / (2.D0 * PI**2 * self%sp_i%m**2) * scaleFactor + self%A_i = Z_i**2*Z_j**2*self%lnCoulomb / (2.D0 * PI**2 * self%sp_i%m**2) * scaleFactor !Missing density because it's cell dependent self%l2_j = self%sp_j%m / 2.D0 !Missing temperature because it's cell dependent From 28b2bf206a803909d04ce4b4d70f718c2ebe751f Mon Sep 17 00:00:00 2001 From: Jorge Gonzalez Date: Wed, 12 Jul 2023 14:21:29 +0200 Subject: [PATCH 17/20] Added the possibility to have sub-steps Now per each Coulomb collision process there is the possibility to do sub-steps. This helps in improving accuracy without reducing the time step of the problem. --- src/modules/init/moduleInput.f90 | 8 +++- src/modules/mesh/moduleMesh.f90 | 82 ++++++++++++++++---------------- src/modules/moduleCoulomb.f90 | 8 +++- 3 files changed, 55 insertions(+), 43 deletions(-) diff --git a/src/modules/init/moduleInput.f90 b/src/modules/init/moduleInput.f90 index 9891806..e3927e3 100644 --- a/src/modules/init/moduleInput.f90 +++ b/src/modules/init/moduleInput.f90 @@ -637,6 +637,7 @@ MODULE moduleInput CHARACTER(:), ALLOCATABLE:: electron INTEGER:: e CLASS(meshCell), POINTER:: cell + INTEGER:: subSteps !Firstly, check if the object 'interactions' exists CALL config%info('interactions', found) @@ -770,8 +771,13 @@ MODULE moduleInput pt_i = speciesName2Index(species_i) CALL config%get(object // '.species_j', species_j, found) pt_j = speciesName2Index(species_j) + CALL config%get(object // '.subSteps', subSteps, found) + IF (.NOT. found) THEN + subSteps = 1 - CALL coulombMatrix(i)%init(pt_i, pt_j) + END IF + + CALL coulombMatrix(i)%init(pt_i, pt_j, subSteps) END DO diff --git a/src/modules/mesh/moduleMesh.f90 b/src/modules/mesh/moduleMesh.f90 index 234ae3c..81f53c3 100644 --- a/src/modules/mesh/moduleMesh.f90 +++ b/src/modules/mesh/moduleMesh.f90 @@ -961,10 +961,12 @@ MODULE moduleMesh CLASS(meshParticles), INTENT(in), TARGET:: self CLASS(meshCell), POINTER:: cell + TYPE(interactionsCoulomb):: pair INTEGER:: e INTEGER:: k INTEGER:: i, j INTEGER:: n + INTEGER:: t TYPE(lNode), POINTER:: partTemp INTEGER(8), ALLOCATABLE:: cellNodes(:) CLASS(meshNode), POINTER:: node @@ -995,14 +997,15 @@ MODULE moduleMesh temperatureNodes(1:cell%nNodes)) DO k=1, nCoulombPairs - i = coulombMatrix(k)%sp_i%n - j = coulombMatrix(k)%sp_j%n + pair = coulombMatrix(k) + i = pair%sp_i%n + j = pair%sp_j%n !Do scattering of particles from species_i due to species j !Compute background properties of species_j DO n = 1, cell%nNodes node => self%nodes(cellNodes(n))%obj - CALL calculateOutput(node%output(j), output, node%v, coulombMatrix(k)%sp_j) + CALL calculateOutput(node%output(j), output, node%v, pair%sp_j) densityNodes(n) = output%density/n_ref velocityNodes(n,1:3) = output%velocity(1:3)/v_ref temperatureNodes(n) = output%temperature/T_ref @@ -1018,7 +1021,7 @@ MODULE moduleMesh !If cell temperature is too low, skip particle to avoid division by zero IF (temperature>eps) THEN - l2 = coulombMatrix(k)%l2_j/temperature + l2 = pair%l2_j/temperature l = SQRT(l2) ELSE @@ -1028,52 +1031,49 @@ MODULE moduleMesh END IF - C = partTemp%part%v - velocity - normC = NORM2(C) + A = pair%A_i*density - !If relative velocity is too low, skip collision to avoid division by zero and move to next particle - IF (normC < eps) THEN - partTemp => partTemp%next + !Do the required substeps + DO t = 1, pair%nSubSteps + C = partTemp%part%v - velocity + normC = NORM2(C) - CYCLE + !C_3 = z; C_1, C2 = x, y (per) + C_per = NORM2(C(1:2)) + cosPhi = C(1) / C_per + sinPhi = C(2) / C_per + cosThe = C(3) / normC + sinThe = C_per / normC - END IF + !Rotation matrix to go from W to C + rotation = RESHAPE((/ cosThe*cosPhi, cosThe*sinPhi, -sinThe, & !First column + -sinPhi, cosPhi, 0.D0, & !Second column + sinThe*cosPhi, sinThe*sinPhi, cosThe /), & !Third column + (/ 3, 3 /)) - !C_3 = z; C_1, C2 = x, y (per) - C_per = NORM2(C(1:2)) - cosPhi = C(1) / C_per - sinPhi = C(2) / C_per - cosThe = C(3) / normC - sinThe = C_per / normC + !W at start is = (0, 0, normC), so normW = normC + lW = l * normC + GlW = G(lW) + HlW = H(lW) + AW = A / normC - !Rotation matrix to go from W to C - rotation = RESHAPE((/ cosThe*cosPhi, cosThe*sinPhi, -sinThe, & !First column - -sinPhi, cosPhi, 0.D0, & !Second column - sinThe*cosPhi, sinThe*sinPhi, cosThe /), & !Third column - (/ 3, 3 /)) + !Calculate changes in W due to collision process + deltaW_par = - A * pair%one_plus_massRatio_ij * l2 * GlW * pair%tauSub + deltaW_par_square = SQRT(AW * GlW * pair%tauSub)*randomMaxwellian() + deltaW_per_square = SQRT(AW * HlW * pair%tauSub)*randomMaxwellian() - !W at start is = (0, 0, normC), so normW = normC - lW = l * normC - GlW = G(lW) - HlW = H(lW) - A = coulombMatrix(k)%A_i*density - AW = A / normC + !Random angle to distribute perpendicular change in velocity + theta_per = PI2*random() - !Calculate changes in W due to collision process - deltaW_par = - A * coulombMatrix(k)%one_plus_massRatio_ij * l2 * GlW * tauMin - deltaW_par_square = SQRT(AW * GlW * tauMin)*randomMaxwellian() - deltaW_per_square = SQRT(AW * HlW * tauMin)*randomMaxwellian() + !Change W + W(1) = deltaW_per_square * COS(theta_per) + W(2) = deltaW_per_square * SIN(theta_per) + W(3) = normC + deltaW_par + deltaW_par_square - !Random angle to distribute perpendicular change in velocity - theta_per = PI2*random() + !Update particle velocity and return to laboratory frame + partTemp%part%v = MATMUL(rotation, W) + velocity - !Change W - W(1) = deltaW_per_square * COS(theta_per) - W(2) = deltaW_per_square * SIN(theta_per) - W(3) = normC + deltaW_par + deltaW_par_square - - !Update particle velocity and return to laboratory frame - partTemp%part%v = MATMUL(rotation, W) + velocity + END DO !Move to the next particle in the list partTemp => partTemp%next diff --git a/src/modules/moduleCoulomb.f90 b/src/modules/moduleCoulomb.f90 index 653eaa4..40e85c2 100644 --- a/src/modules/moduleCoulomb.f90 +++ b/src/modules/moduleCoulomb.f90 @@ -12,6 +12,8 @@ MODULE moduleCoulomb REAL(8):: lnCoulomb !This can be done a function in the future REAL(8):: A_i REAL(8):: l2_j + REAL(8):: tauSub + INTEGER:: nSubSteps CONTAINS PROCEDURE, PASS:: init => initInteractionCoulomb @@ -44,7 +46,7 @@ MODULE moduleCoulomb END FUNCTION H - SUBROUTINE initInteractionCoulomb(self, i, j) + SUBROUTINE initInteractionCoulomb(self, i, j, subSteps) USE moduleSpecies USE moduleErrors USE moduleConstParam @@ -52,10 +54,14 @@ MODULE moduleCoulomb IMPLICIT NONE CLASS(interactionsCoulomb), INTENT(out):: self + INTEGER, INTENT(in):: subSteps INTEGER, INTENT(in):: i, j REAL(8):: Z_i, Z_j REAL(8):: scaleFactor + self%nSubSteps = subSteps + self%tauSub = tauMin / REAL(self%nSubSteps) + self%sp_i => species(i)%obj self%sp_j => species(j)%obj From c3a6f77ffc36f2ca5249b3a2c1290f10d30c409c Mon Sep 17 00:00:00 2001 From: Jorge Gonzalez Date: Wed, 12 Jul 2023 15:17:26 +0200 Subject: [PATCH 18/20] Combining ij - ji collisions In an attempt to make the operator fully conservarive I have combined ij and ji collisions (when i/=j). Now the matter is to find a way that makes this conserve momentum and energy for intraspecies. --- src/modules/mesh/moduleMesh.f90 | 94 +++++++++++++++++++++++++++++++++ src/modules/moduleCoulomb.f90 | 4 ++ 2 files changed, 98 insertions(+) diff --git a/src/modules/mesh/moduleMesh.f90 b/src/modules/mesh/moduleMesh.f90 index 81f53c3..3a65809 100644 --- a/src/modules/mesh/moduleMesh.f90 +++ b/src/modules/mesh/moduleMesh.f90 @@ -967,6 +967,7 @@ MODULE moduleMesh INTEGER:: i, j INTEGER:: n INTEGER:: t + INTEGER:: p TYPE(lNode), POINTER:: partTemp INTEGER(8), ALLOCATABLE:: cellNodes(:) CLASS(meshNode), POINTER:: node @@ -985,6 +986,8 @@ MODULE moduleMesh REAL(8):: deltaW_par, deltaW_par_square, deltaW_per_square !Increments of W REAL(8):: theta_per !Random angle for perpendicular direction REAL(8):: eps = 1.D-12 + REAL(8):: preV(1:3), totalP_ij(1:3), totalP_ji(1:3) + REAL(8), ALLOCATABLE:: deltaV_ji(:,:) !$OMP DO SCHEDULE(DYNAMIC) PRIVATE(partTemp) @@ -1012,6 +1015,7 @@ MODULE moduleMesh END DO + totalP_ij = 0.D0 !Loop over particles of species_i partTemp => cell%listPart_in(i)%head DO WHILE(ASSOCIATED(partTemp)) @@ -1071,7 +1075,9 @@ MODULE moduleMesh W(3) = normC + deltaW_par + deltaW_par_square !Update particle velocity and return to laboratory frame + preV = partTemp%part%v partTemp%part%v = MATMUL(rotation, W) + velocity + totalP_ij = totalP_ij + pair%sp_i%m*(partTemp%part%v - preV) END DO @@ -1080,6 +1086,94 @@ MODULE moduleMesh END DO + !Do corresponding collisions + IF (i /= j) THEN + !Do scattering of particles from species_j due to species i + !Compute background properties of species_i + DO n = 1, cell%nNodes + node => self%nodes(cellNodes(n))%obj + CALL calculateOutput(node%output(i), output, node%v, pair%sp_i) + densityNodes(n) = output%density/n_ref + velocityNodes(n,1:3) = output%velocity(1:3)/v_ref + temperatureNodes(n) = output%temperature/T_ref + + END DO + + totalP_ji = 0.D0 + ALLOCATE(deltaV_ji(1:cell%listPart_in(j)%amount,1:3)) + !Loop over particles of species_j + partTemp => cell%listPart_in(j)%head + p = 1 + DO WHILE(ASSOCIATED(partTemp)) + density = cell%gatherF(partTemp%part%Xi, cell%nNodes, densityNodes) + velocity = cell%gatherF(partTemp%part%Xi, cell%nNodes, velocityNodes) + temperature = cell%gatherF(partTemp%part%Xi, cell%nNodes, temperatureNodes) + + !If cell temperature is too low, skip particle to avoid division by zero + IF (temperature>eps) THEN + l2 = pair%l2_i/temperature + l = SQRT(l2) + + ELSE + partTemp => partTemp%next + + CYCLE + + END IF + A = pair%A_j*density + + !Do the required substeps + DO t = 1, pair%nSubSteps + C = partTemp%part%v - velocity + normC = NORM2(C) + + !C_3 = z; C_1, C2 = x, y (per) + C_per = NORM2(C(1:2)) + cosPhi = C(1) / C_per + sinPhi = C(2) / C_per + cosThe = C(3) / normC + sinThe = C_per / normC + + !Rotation matrix to go from W to C + rotation = RESHAPE((/ cosThe*cosPhi, cosThe*sinPhi, -sinThe, & !First column + -sinPhi, cosPhi, 0.D0, & !Second column + sinThe*cosPhi, sinThe*sinPhi, cosThe /), & !Third column + (/ 3, 3 /)) + + !W at start is = (0, 0, normC), so normW = normC + lW = l * normC + GlW = G(lW) + HlW = H(lW) + AW = A / normC + + !Calculate changes in W due to collision process + deltaW_par = - A * pair%one_plus_massRatio_ij * l2 * GlW * pair%tauSub + deltaW_par_square = SQRT(AW * GlW * pair%tauSub)*randomMaxwellian() + deltaW_per_square = SQRT(AW * HlW * pair%tauSub)*randomMaxwellian() + + !Random angle to distribute perpendicular change in velocity + theta_per = PI2*random() + + !Change W + W(1) = deltaW_per_square * COS(theta_per) + W(2) = deltaW_per_square * SIN(theta_per) + W(3) = normC + deltaW_par + deltaW_par_square + + preV = partTemp%part%v + partTemp%part%v = MATMUL(rotation, W) + velocity + totalP_ji = totalP_ji + pair%sp_j%m*(partTemp%part%v - preV) + + END DO + + !Move to the next particle in the list + partTemp => partTemp%next + + END DO + + END IF + + print *, k, NORM2(totalP_ij), NORM2(totalP_ji) + END DO DEALLOCATE(densityNodes, velocityNodes, temperatureNodes, cellNodes) diff --git a/src/modules/moduleCoulomb.f90 b/src/modules/moduleCoulomb.f90 index 40e85c2..5faa277 100644 --- a/src/modules/moduleCoulomb.f90 +++ b/src/modules/moduleCoulomb.f90 @@ -11,7 +11,9 @@ MODULE moduleCoulomb REAL(8):: one_plus_massRatio_ij REAL(8):: lnCoulomb !This can be done a function in the future REAL(8):: A_i + REAL(8):: A_j REAL(8):: l2_j + REAL(8):: l2_i REAL(8):: tauSub INTEGER:: nSubSteps CONTAINS @@ -92,8 +94,10 @@ MODULE moduleCoulomb scaleFactor = (n_ref * qe**4 * ti_ref) / (eps_0**2 * m_ref**2 * v_ref**3) self%A_i = Z_i**2*Z_j**2*self%lnCoulomb / (2.D0 * PI**2 * self%sp_i%m**2) * scaleFactor !Missing density because it's cell dependent + self%A_j = Z_j**2*Z_i**2*self%lnCoulomb / (2.D0 * PI**2 * self%sp_j%m**2) * scaleFactor !Missing density because it's cell dependent self%l2_j = self%sp_j%m / 2.D0 !Missing temperature because it's cell dependent + self%l2_i = self%sp_i%m / 2.D0 !Missing temperature because it's cell dependent END SUBROUTINE initInteractionCoulomb From e05c0d4635c3b2ae362334381de37569317cbfee Mon Sep 17 00:00:00 2001 From: Jorge Gonzalez Date: Sun, 16 Jul 2023 14:28:07 +0200 Subject: [PATCH 19/20] Coulomb Scattering fully conservative Coulomb scattering is now fully conservative thanks to the method in lemos2009small. The trick was to conserve the momentum and energy of ALL particles involved in the scattering in each cell. The substeps in Coulomb collisions have been removed as they are no longer necessary. Still some issues with e-i, but I don't know right now. --- src/modules/init/moduleInput.f90 | 8 +- src/modules/mesh/moduleMesh.f90 | 274 +++++++++++++++++++------------ src/modules/moduleCoulomb.f90 | 8 +- 3 files changed, 175 insertions(+), 115 deletions(-) diff --git a/src/modules/init/moduleInput.f90 b/src/modules/init/moduleInput.f90 index e3927e3..9891806 100644 --- a/src/modules/init/moduleInput.f90 +++ b/src/modules/init/moduleInput.f90 @@ -637,7 +637,6 @@ MODULE moduleInput CHARACTER(:), ALLOCATABLE:: electron INTEGER:: e CLASS(meshCell), POINTER:: cell - INTEGER:: subSteps !Firstly, check if the object 'interactions' exists CALL config%info('interactions', found) @@ -771,13 +770,8 @@ MODULE moduleInput pt_i = speciesName2Index(species_i) CALL config%get(object // '.species_j', species_j, found) pt_j = speciesName2Index(species_j) - CALL config%get(object // '.subSteps', subSteps, found) - IF (.NOT. found) THEN - subSteps = 1 - END IF - - CALL coulombMatrix(i)%init(pt_i, pt_j, subSteps) + CALL coulombMatrix(i)%init(pt_i, pt_j) END DO diff --git a/src/modules/mesh/moduleMesh.f90 b/src/modules/mesh/moduleMesh.f90 index 3a65809..7e30326 100644 --- a/src/modules/mesh/moduleMesh.f90 +++ b/src/modules/mesh/moduleMesh.f90 @@ -966,7 +966,6 @@ MODULE moduleMesh INTEGER:: k INTEGER:: i, j INTEGER:: n - INTEGER:: t INTEGER:: p TYPE(lNode), POINTER:: partTemp INTEGER(8), ALLOCATABLE:: cellNodes(:) @@ -978,7 +977,6 @@ MODULE moduleMesh REAL(8):: l, lW, l2 REAL(8):: GlW, HlW REAL(8):: normC - REAL(8):: theta, phi !angles between w and c REAL(8):: cosThe, sinThe REAL(8):: cosPhi, sinPhi REAL(8):: rotation(1:3,1:3) !Rotation matrix to go back to laboratory frame @@ -986,8 +984,13 @@ MODULE moduleMesh REAL(8):: deltaW_par, deltaW_par_square, deltaW_per_square !Increments of W REAL(8):: theta_per !Random angle for perpendicular direction REAL(8):: eps = 1.D-12 - REAL(8):: preV(1:3), totalP_ij(1:3), totalP_ji(1:3) - REAL(8), ALLOCATABLE:: deltaV_ji(:,:) + REAL(8), ALLOCATABLE, DIMENSION(:,:):: deltaV_ij, p_ij + REAL(8), ALLOCATABLE, DIMENSION(:):: mass_ij + REAL(8):: massSum_ij + REAL(8), ALLOCATABLE, DIMENSION(:,:):: deltaV_ji, p_ji + REAL(8), ALLOCATABLE, DIMENSION(:):: mass_ji + REAL(8):: massSum_ji + REAL(8):: alpha_num, alpha_den, alpha, beta(1:3) !$OMP DO SCHEDULE(DYNAMIC) PRIVATE(partTemp) @@ -1015,9 +1018,12 @@ MODULE moduleMesh END DO - totalP_ij = 0.D0 + ALLOCATE(deltaV_ij(1:cell%listPart_in(i)%amount, 1:3)) + ALLOCATE(p_ij(1:cell%listPart_in(i)%amount, 1:3)) + ALLOCATE(mass_ij(1:cell%listPart_in(i)%amount)) !Loop over particles of species_i partTemp => cell%listPart_in(i)%head + p = 1 DO WHILE(ASSOCIATED(partTemp)) density = cell%gatherF(partTemp%part%Xi, cell%nNodes, densityNodes) velocity = cell%gatherF(partTemp%part%Xi, cell%nNodes, velocityNodes) @@ -1037,8 +1043,89 @@ MODULE moduleMesh A = pair%A_i*density - !Do the required substeps - DO t = 1, pair%nSubSteps + C = partTemp%part%v - velocity + normC = NORM2(C) + + !C_3 = z; C_1, C2 = x, y (per) + C_per = NORM2(C(1:2)) + cosPhi = C(1) / C_per + sinPhi = C(2) / C_per + cosThe = C(3) / normC + sinThe = C_per / normC + + !Rotation matrix to go from W to C + rotation = RESHAPE((/ cosThe*cosPhi, cosThe*sinPhi, -sinThe, & !First column + -sinPhi, cosPhi, 0.D0, & !Second column + sinThe*cosPhi, sinThe*sinPhi, cosThe /), & !Third column + (/ 3, 3 /)) + + !W at start is = (0, 0, normC), so normW = normC + lW = l * normC + GlW = G(lW) + HlW = H(lW) + AW = A / normC + + !Calculate changes in W due to collision process + deltaW_par = - A * pair%one_plus_massRatio_ij * l2 * GlW * tauMin + deltaW_par_square = SQRT(AW * GlW * tauMin)*randomMaxwellian() + deltaW_per_square = SQRT(AW * HlW * tauMin)*randomMaxwellian() + + !Random angle to distribute perpendicular change in velocity + theta_per = PI2*random() + + !Change W + W(1) = deltaW_per_square * COS(theta_per) + W(2) = deltaW_per_square * SIN(theta_per) + W(3) = normC + deltaW_par + deltaW_par_square + + !Compute changes in velocity for each particle + deltaV_ij(p,1:3) = MATMUL(rotation, W) + velocity - partTemp%part%v + mass_ij(p) = pair%sp_i%m*partTemp%part%weight + p_ij(p,1:3) = mass_ij(p)*partTemp%part%v + + !Move to the next particle in the list + partTemp => partTemp%next + p = p + 1 + + END DO + + !Do corresponding collisions + IF (i /= j) THEN + !Do scattering of particles from species_j due to species i + !Compute background properties of species_i + DO n = 1, cell%nNodes + node => self%nodes(cellNodes(n))%obj + CALL calculateOutput(node%output(i), output, node%v, pair%sp_i) + densityNodes(n) = output%density/n_ref + velocityNodes(n,1:3) = output%velocity(1:3)/v_ref + temperatureNodes(n) = output%temperature/T_ref + + END DO + + ALLOCATE(deltaV_ji(1:cell%listPart_in(j)%amount, 1:3)) + ALLOCATE(p_ji(1:cell%listPart_in(j)%amount, 1:3)) + ALLOCATE(mass_ji(1:cell%listPart_in(j)%amount)) + !Loop over particles of species_j + partTemp => cell%listPart_in(j)%head + p = 1 + DO WHILE(ASSOCIATED(partTemp)) + density = cell%gatherF(partTemp%part%Xi, cell%nNodes, densityNodes) + velocity = cell%gatherF(partTemp%part%Xi, cell%nNodes, velocityNodes) + temperature = cell%gatherF(partTemp%part%Xi, cell%nNodes, temperatureNodes) + + !If cell temperature is too low, skip particle to avoid division by zero + IF (temperature>eps) THEN + l2 = pair%l2_i/temperature + l = SQRT(l2) + + ELSE + partTemp => partTemp%next + + CYCLE + + END IF + A = pair%A_j*density + C = partTemp%part%v - velocity normC = NORM2(C) @@ -1062,9 +1149,9 @@ MODULE moduleMesh AW = A / normC !Calculate changes in W due to collision process - deltaW_par = - A * pair%one_plus_massRatio_ij * l2 * GlW * pair%tauSub - deltaW_par_square = SQRT(AW * GlW * pair%tauSub)*randomMaxwellian() - deltaW_per_square = SQRT(AW * HlW * pair%tauSub)*randomMaxwellian() + deltaW_par = - A * pair%one_plus_massRatio_ij * l2 * GlW * tauMin + deltaW_par_square = SQRT(AW * GlW * tauMin)*randomMaxwellian() + deltaW_per_square = SQRT(AW * HlW * tauMin)*randomMaxwellian() !Random angle to distribute perpendicular change in velocity theta_per = PI2*random() @@ -1074,105 +1161,90 @@ MODULE moduleMesh W(2) = deltaW_per_square * SIN(theta_per) W(3) = normC + deltaW_par + deltaW_par_square - !Update particle velocity and return to laboratory frame - preV = partTemp%part%v - partTemp%part%v = MATMUL(rotation, W) + velocity - totalP_ij = totalP_ij + pair%sp_i%m*(partTemp%part%v - preV) + !Compute changes in velocity for each particle + deltaV_ji(p,1:3) = MATMUL(rotation, W) + velocity - partTemp%part%v + mass_ji(p) = pair%sp_j%m*partTemp%part%weight + p_ji(p,1:3) = mass_ji(p)*partTemp%part%v - END DO - - !Move to the next particle in the list - partTemp => partTemp%next - - END DO - - !Do corresponding collisions - IF (i /= j) THEN - !Do scattering of particles from species_j due to species i - !Compute background properties of species_i - DO n = 1, cell%nNodes - node => self%nodes(cellNodes(n))%obj - CALL calculateOutput(node%output(i), output, node%v, pair%sp_i) - densityNodes(n) = output%density/n_ref - velocityNodes(n,1:3) = output%velocity(1:3)/v_ref - temperatureNodes(n) = output%temperature/T_ref - - END DO - - totalP_ji = 0.D0 - ALLOCATE(deltaV_ji(1:cell%listPart_in(j)%amount,1:3)) - !Loop over particles of species_j - partTemp => cell%listPart_in(j)%head - p = 1 - DO WHILE(ASSOCIATED(partTemp)) - density = cell%gatherF(partTemp%part%Xi, cell%nNodes, densityNodes) - velocity = cell%gatherF(partTemp%part%Xi, cell%nNodes, velocityNodes) - temperature = cell%gatherF(partTemp%part%Xi, cell%nNodes, temperatureNodes) - - !If cell temperature is too low, skip particle to avoid division by zero - IF (temperature>eps) THEN - l2 = pair%l2_i/temperature - l = SQRT(l2) - - ELSE - partTemp => partTemp%next - - CYCLE - - END IF - A = pair%A_j*density - - !Do the required substeps - DO t = 1, pair%nSubSteps - C = partTemp%part%v - velocity - normC = NORM2(C) - - !C_3 = z; C_1, C2 = x, y (per) - C_per = NORM2(C(1:2)) - cosPhi = C(1) / C_per - sinPhi = C(2) / C_per - cosThe = C(3) / normC - sinThe = C_per / normC - - !Rotation matrix to go from W to C - rotation = RESHAPE((/ cosThe*cosPhi, cosThe*sinPhi, -sinThe, & !First column - -sinPhi, cosPhi, 0.D0, & !Second column - sinThe*cosPhi, sinThe*sinPhi, cosThe /), & !Third column - (/ 3, 3 /)) - - !W at start is = (0, 0, normC), so normW = normC - lW = l * normC - GlW = G(lW) - HlW = H(lW) - AW = A / normC - - !Calculate changes in W due to collision process - deltaW_par = - A * pair%one_plus_massRatio_ij * l2 * GlW * pair%tauSub - deltaW_par_square = SQRT(AW * GlW * pair%tauSub)*randomMaxwellian() - deltaW_per_square = SQRT(AW * HlW * pair%tauSub)*randomMaxwellian() - - !Random angle to distribute perpendicular change in velocity - theta_per = PI2*random() - - !Change W - W(1) = deltaW_per_square * COS(theta_per) - W(2) = deltaW_per_square * SIN(theta_per) - W(3) = normC + deltaW_par + deltaW_par_square - - preV = partTemp%part%v - partTemp%part%v = MATMUL(rotation, W) + velocity - totalP_ji = totalP_ji + pair%sp_j%m*(partTemp%part%v - preV) - - END DO - !Move to the next particle in the list partTemp => partTemp%next + p = p + 1 END DO END IF - print *, k, NORM2(totalP_ij), NORM2(totalP_ji) + !Calculate correction + !Total mass + massSum_ij = SUM(mass_ij) + massSum_ji = 0.D0 + + !Beta + beta = 0.D0 + DO p = 1, cell%listPart_in(i)%amount + beta = beta + mass_ij(p) * deltaV_ij(p,1:3) + + END DO + + IF (i /= j) THEN + massSum_ji = SUM(mass_ji) + DO p = 1, cell%listPart_in(j)%amount + beta = beta + mass_ji(p) * deltaV_ji(p,1:3) + + END DO + + END IF + + beta = beta / (massSum_ij + massSum_ji) + + !Alpha + alpha_num = 0.D0 + alpha_den = 0.D0 + DO p =1, cell%listPart_in(i)%amount + alpha_num = alpha_num + DOT_PRODUCT(p_ij(p,1:3), deltav_ij(p,1:3) - beta(1:3)) + alpha_den = alpha_den + mass_ij(p) * NORM2(deltav_ij(p,1:3) - beta(1:3))**2 + + END DO + + IF (i /= j) THEN + DO p = 1, cell%listPart_in(j)%amount + alpha_num = alpha_num + DOT_PRODUCT(p_ji(p,1:3), deltav_ji(p,1:3) - beta(1:3)) + alpha_den = alpha_den + mass_ji(p) * NORM2(deltav_ji(p,1:3) - beta(1:3))**2 + + END DO + + END IF + + alpha = -2.D0*alpha_num / alpha_den + + !Apply correction to particles velocity + partTemp => cell%listPart_in(i)%head + p = 1 + DO WHILE(ASSOCIATED(partTemp)) + partTemp%part%v = partTemp%part%v + alpha * (deltaV_ij(p,1:3) - beta(1:3)) + partTemp => partTemp%next + p = p + 1 + + END DO + + IF (i /= j) THEN + partTemp => cell%listPart_in(j)%head + p = 1 + DO WHILE(ASSOCIATED(partTemp)) + partTemp%part%v = partTemp%part%v + alpha * (deltaV_ji(p,1:3) - beta(1:3)) + partTemp => partTemp%next + p = p + 1 + + END DO + + END IF + + DEALLOCATE(deltaV_ij, p_ij, mass_ij) + + IF (i /= j) THEN + DEALLOCATE(deltaV_ji, p_ji, mass_ji) + + END IF END DO diff --git a/src/modules/moduleCoulomb.f90 b/src/modules/moduleCoulomb.f90 index 5faa277..166b6b2 100644 --- a/src/modules/moduleCoulomb.f90 +++ b/src/modules/moduleCoulomb.f90 @@ -14,8 +14,6 @@ MODULE moduleCoulomb REAL(8):: A_j REAL(8):: l2_j REAL(8):: l2_i - REAL(8):: tauSub - INTEGER:: nSubSteps CONTAINS PROCEDURE, PASS:: init => initInteractionCoulomb @@ -48,7 +46,7 @@ MODULE moduleCoulomb END FUNCTION H - SUBROUTINE initInteractionCoulomb(self, i, j, subSteps) + SUBROUTINE initInteractionCoulomb(self, i, j) USE moduleSpecies USE moduleErrors USE moduleConstParam @@ -56,14 +54,10 @@ MODULE moduleCoulomb IMPLICIT NONE CLASS(interactionsCoulomb), INTENT(out):: self - INTEGER, INTENT(in):: subSteps INTEGER, INTENT(in):: i, j REAL(8):: Z_i, Z_j REAL(8):: scaleFactor - self%nSubSteps = subSteps - self%tauSub = tauMin / REAL(self%nSubSteps) - self%sp_i => species(i)%obj self%sp_j => species(j)%obj From 2e4b3c3d207ad1d6f03d2284989da08772769069 Mon Sep 17 00:00:00 2001 From: JGonzalez Date: Sun, 16 Jul 2023 14:44:38 +0200 Subject: [PATCH 20/20] Update of user-manual The user manual has been updated with a simple explanation on how to use Coulomb Scattering. --- doc/user-manual/bibliography.bib | 23 +++++++++++++++++++++++ doc/user-manual/fpakc_UserManual.pdf | Bin 181729 -> 185259 bytes doc/user-manual/fpakc_UserManual.tex | 21 +++++++++++++++++++-- 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/doc/user-manual/bibliography.bib b/doc/user-manual/bibliography.bib index 878b7ee..9dc17fc 100644 --- a/doc/user-manual/bibliography.bib +++ b/doc/user-manual/bibliography.bib @@ -62,4 +62,27 @@ publisher = {Taylor \& Francis}, } +@Article{sherlock2008monte, + author = {Sherlock, Mark}, + journal = {Journal of Computational Physics}, + title = {A Monte-Carlo method for Coulomb collisions in hybrid plasma models}, + year = {2008}, + number = {4}, + pages = {2286--2292}, + volume = {227}, + groups = {Particle-in-cell}, + publisher = {Elsevier}, +} + +@article{lemons2009small, + title={Small-angle Coulomb collision model for particle-in-cell simulations}, + author={Lemons, Don S and Winske, Dan and Daughton, William and Albright, Brian}, + journal={Journal of Computational Physics}, + volume={228}, + number={5}, + pages={1391--1403}, + year={2009}, + publisher={Elsevier} +} + @Comment{jabref-meta: databaseType:bibtex;} diff --git a/doc/user-manual/fpakc_UserManual.pdf b/doc/user-manual/fpakc_UserManual.pdf index 0f549be45ee07a4401640d307fa3c5bdcc6e3cde..c099b01f29ab35ef115ef44b47a742d9d5fd0be6 100644 GIT binary patch delta 102741 zcmZshQ*drw*QR6Jwr$(CZQI&;VkbMcxntY5Z96+Q`~AB6`}^SSs&%kx)~r#h*1

  1. |T8{dk?NyJ3tXkr7y$HypV?qKO=Ma0gPq|{9Y7}k=t#gjzpnXOGflpFKt z=%_SY6=K5jbJ8FVj}KNR18=HagK2U0|J74*y`D2#1Ky)05mQ=vQ7O4v`Bl&w=0p3l z@$kI%>nuCg%!F`^g&?{6FR6dt&HL_0*~~NI9&yUW=Hc_&kKf|gqb=31h!GvxujyZ! z#O0p-nen&d0CQB+Ysa{4!ojZ(&)=llOuT|yae$q!YybB19glIRe#M{m!*BTH?jY_+ zxd8sa9OoKAk2n{WjQ4mv>@yy>8PKdkr7G%j6&l5uaU|H`dYACCoJe6Rv^BIBQdT1@5!ST?gt^=La| zQl)-bfYXtZJx3xyK(vd16(p@2>o0uSgeb`oNYK>kW75-sDHJ)*k2hCwbNfXq%=F)3Y_XPUak3LW}bEWKCcK(>{n zidfLvylQ!Cwqx0oRb(JEpTw5R7My@q_(Rlzy}h{DpEyzNDX1=}DpOPEx;O3Mm*%Mq z|9hdf!kI>m#df4fBD0Pva%mm z07iio|LLoRSJ(L`RPxO%4@DQ^$H!Ulcy_vY%oQ{5yZPAfVe;r{hV1p5lKWBNUt8nUrA{^ws3qzOI{?W z`S*WEG0O|_z z-#dbbq*Cbs^~e;8PSa*`?8+ivokAuxxN)yhC`I$avys4#;%EjKJG;8`P2*M}TFm+m z>BbQnv-TNg#>jxhvz1^j&h>A@*4pegn+=y_s%EBIPBH* zN0PH9*c#*19bn-&&4f%(DTSjZfT;ETIDfSOT~mh;t!Cl_xHugb8#A%d-*IQ1_9!N0x#XBy5R9P!tqFdUl1ZPR|Odb{oTa%kEe-{YUXB*X?fI zOSiiTVi>!33^jv%2dC#r2c3$)$(KmwNt0y{6x8fBlP(Pn`|J$eoJ(I{03~W=M--k@ zgyzUe1)AZ!ZSfzlRsG>(c!!>#PVtRHigkxSUx&+=HpK=Q4p(o{mlbq5?Uv^f_4*p4 z_-IP?-d=(z4KcrPc4B$mh66V5Z@DfAa*ioFAGF$J3H)*EQH@v`2YX4T6F?C?;}t@N zO}sE9l5-IUvz#dzj+umg05gM&5sl4l?(l?+)_gI%dS8BpB%GFQ2fkNi;I^G@L4#!h zV7mn@&b!~R3|$y#;W7l@$jLF-c|%aeL4&`Xytq_vjBpMT?QslZdACYjLM&P9%al_+ zTW;@r=W+8?%UhOb!#g9jdc*LBrMBD}hpR2ZVQ4~1yvay$4DIHX~)o`iz#@BXEOrA}T+C1N#?2 zd@54~a|bh5Hy3kbdzgRT{sVb-uK!DWW;PCv|1NU;ck%zV01j@VB;{_>BuGdS5LeJ7 zT1XbY0Tc|df7SbE-~Z_z+${gC#>w%ohQgVo*i8=jt1s(H+KSxMcu(q;&5a~{7;Adf zfZ9oOM_Tc^H(^Zr*CD;+=$Bc}M6aSLfl%;}QUeqV3HNcZWq39L&}WZ?U;(1+jM4ZY zVDQKB26J05t|ElS(c*!#f(c<`lK3+FOJV>0Vwcy>DN zFHAZBZKU%gEtM4;5TxvE7qWysA`)EE*K5AM_jm?!$6M(zCl^A%OJ zmPF{1>S61u;!$B|tLuUE5><_k6V~<~dv;L3bqW@^)OyusiZMvjVh$Jtgdr;7I7KsH zeX?=ED1*bzq5}X6b@zzg*hRLvUb3G^jhZIMdfKi5KWMwB$4Z(d7=jMMp!R_HSv^qM z4yQVN!}Gg$&+_xF`*tVPTwmJUDb)M{BF{y`cCkw_uUAH~+ZH^e8B9-2ERh*!%25kY zbsy5VXA)_rQl(G*TeP2ezvRR?OtEKumpttYa|qbe(zrQ9xJ|%k;gO* zk>qZFHp236n|tDccWiMQiZo5Z8z~K>gL1i&L)A@(t)+Y!D&!a^t{;1xj*Iui}5!=(HZfz1Ux)Vg6#)7U=*@iqMI>&Wk;wLTt-aL z;aR$NaoePkxR~0Jif}M4Y7SBndZl~NsSHY%#%XXr>kMQngp1KQ9LZ!MZb^rE`%svS z_ny~}c_S*Dx5--L&t>xxJ`VT;!d#bJ%Tc8Uv!C3gB)qsadFIBnAuFwFfwLW84&jTk zU3SNn@T8)9)uqkW`QeYbbz=KwW@@QMV3V`5Z0d=8dd=OARIF-QXJK-jx6|~CJyvmF z-nY84A(?m+#f2p*S%AnG(02E@Lsl;7&9EW#Hu_DQ)%C%4uzK7c#44L^+=Inl3KTAS zY<0&2%xLx+IXE+C@3~vR$(bquRrbzszMF)qhaT8R-eYB60zK%u)p0-{`%zA{MSL`e z0JHFF>aTe|T<7%jz*>fJ{woPHR5T=vYc5`x-dX_AP&Umm|GQmP>OQyr`kP-F`tqy z!5zaY;`JsQ*jOpw+8>4_xr8{>BIg-&i#eV^Z*3}fq7}jIFBVlGf?k*JCQN@aTE(t2 z8C1kfn6TnC!FrTq>*EPvzZ40_O2qu~`99x;d?0QRD%#4kGlmJZMns4qfP9RcXcxYo z`-AO8n2Mqbm(+75f}V3DL^fO()}M}EN53|jcXDtqk_zPXZ={O1N8ZiK%lzq4dawZ>;*!rkwNqmHZX-SlCS@>N51g#7;T**(M{E%mSohb53+h5Q3@?ApfL;84!Bdkh>Q2$6e6y zI5G9oo^WuKZ#8I)L+BShgw3TuJpk7X#E8cddkxqoO7Kkj_4|<&2a08?N&eUxejqpi zq&WBprvZN~s*F*FWY1aQx1y_E%9Sllv`yysJL8hpr%vUMK|<6EC(Oi4*l1c1#$9X` zXxu;1K+01|GsEx4l}?vZ)S{GRlP{>kWzEIjx%izQXYj~0IhZ4!5|0|fa)lAcMw*Lk zEF9SmMJupMenE-N$20DhJcpVjnAh5%vEAs{X8__QFqe{F*8TMx!wV`GDPWmt(;rYY zl$dVez#AEt@S{R<3iu+u@qPHiI#kmXF4So~iP2)UgTBLkmixC)WKNhJYcPqf(AF?1 zPFPCo6c_l4RrbdBYL|1Q!{61sX43^Zjm!G@#_B13VD4FjzdM~aVXLRKEF09jL`>Wa z!2pxvRH>}a*_5Jnb8t#G?thqr!iLClp0E!NWI}R)z6aLVIt0K0`Ycx;ub3Bi%I=qRY8vG&IS7s|CJZub z%Kd+@RMwp4W*n?e=f8W=Koxv4s1BzNc3rd-BSvQR(;$EmN@{wXZWfSd%SO#D)HxDoREgjR!PQ43NN{ zL?v>zMphGnK&+j7zmC)t$aNwmHQ!%q;m};`USvA$^@D3asjZovRToqfukNV=HMMOH z%*+KlO{;xd8Re1Rk=Yil^GFQA^Z?ZVChdp0Dl`g1h z3_ex4k={z<;jU<$YX<$oUgU^h-@H@pwqT&9^60kKSolx5GNA6jwGn=BpF~EoaPH*k z>?@@LtF7ctjNkc}<8~Hnd6jh_SC{xEe0>J(cUZgBOP57Oxg4X#0V>r505q22hp@qa z7y^D#V!U+~-Ys2MCg1TzT{xnU!G&)7<5L+1=iXw&Afp9*R?0D_tRF48rI{6AaP8`) z%EQ(Asb2UKJxZ!U{al)q8R-N(pdbvkXFB+ThNw4QQUVCuUwwV?jNLhu)yhb&9$Gz)oGP>d@a4SP?yO>}+YC?H*Z=7=^Te@1GR7ZisKtT=xj? zj2~FBW6-RGB8*mV_;YUCCH)CXo@*~prYLxm_PauI0^l$P2n_=%lYmjM3HTG~D^p5F z!_>HL@lpUBkJ@jB0d*id4@Eq{NIsJ(P!>1S`WI?Ml=)wEuY}`*lQil7%8#7?wGS-p zZ0!F{kjyOqj*!eO|2so&Ysov}aw7fp1`HFlQ;E4+aFLyAQ92YA5<1i7hf{?2DX0`Q zsM9)UeSaW$YIbhP&|HW?g!Bc7-#v8icV!e@+gKKOyw(16b(C+^vM=>&dZIrX>IrJ) zF;+C@6;=+*^zB^^XTiL`Az!8!ruaCke%bi3nr02v1KM9TR)GMeF36Fs#OEEu%?kbt zQ`xaIB|s;mT}tu4m;~9(knwyPsVMZ=8jZ9$d6>Rk58Zwd_4(Zo7j{(f1Z1^BVv}fJR$A{Emr1ktJ%J7(@0GdeGsF z5QgkpH^bOzk(3CY!-giWO$oXCQ`(Fe`@gruNRz3%`@J7aaS4buiAPjyrm^K#`qFXRcdSYj3@)n+F31lAU!3Tj; z&f%bS$@8>6l@i%Fukd2WdF|#qTrM5-HWMTkifD1Ns(k{e8`>Rwm&eMtV-nG&PC~I$ z-JQS#&}%eB>u-(zbY}7lo~f7M%m<68k&-#;Pc-o4X<9zqT)t#|tS+xJva4Cn-uFJ7 zDn6QiH+>g&q_3tSHnEzh;i2lL>0GRrttFg_EhK0<_c6THXpRTN6aP8vwrV*d-1CBr zAEB136rcxG5Ua;?JT*Mf^EbVaru`zwij0WG0f%i(F7So}R;^>Wg29pm?(7Enwt`iY5K8744QO0586-TFn7cVYuo;y6BB?x`_7?R~Pqr?zA>MIb6 z1)1gkp77;}ncW-+%PDJ#x}O*bev@GBj?Oj3W=&n~E*-*j`Oe%mn0Mo*>2&zjK~PDKh>uu2Ydwc4{J{KFw)V&VJ2=JBg~H&k)M{NvTPAUsA1~Z--}s`pH1Bq;oaM43z+&@V4>mf02Wk<-h1) zW@6>~A9S#>qW$am$;`&~AEB8fh+zhN-B^r)01U{1n4I~#Fs4LD(CBlFisW09)nk}U zS85Bda~bemi^at%PGUMeUNtt7qubQ~^8ScmUEI07FP`@r7dB(#oJ`Q`4adkHeM`)$ zbM-N2QBcuF6e&z~L?D9G5Vh>(8B=${LccBxbf$_^JW*)nwAY*nvU3gu!L~SrL+nI+ z@BnCpZ@(l4yD_{OukAWw+RZYR8M%{Jr6=fPtJD$dHlJ@ar;g$ zyKv9VYY-;er>6JYF(cJCpzqomv$yLX_ztRGa|(;=Klo^RG-4Msz(hRA<*DB(*>|Cw z#Ia5BRE}zJ${qCCT^_lhG7NpwD~8tZ`!SXQZC9UTNvNms*2bIM@I?yk?3h{0zyQ!9 zyi@>){>-pnu!+h_-6RtGRd~K^yC`PymzG;I)l$V7#S4LWp;*FW#KGNrf#DwZ-BUGx z!asq@k!425#(ZN)B0g_d)}w9j?Hx~WeeuV_W5EBDq+slBJjII~DkhM;t%kTAaWal2 z31|}~ICIV-TkqPp@S%;IRY+@`>F-vnG>D!eBOGVk#tunLD z;g$8%6E3WJL<<_(dB+3bg2nxC^?MCU^VRB2;8rVrCE)!*h9xPP-!crBK!9M1QgZO! z2#mgwlxh{i6{r9ZTfI?VEciD0^1L~w0EB^#p7KIll(0)7g9p2q{7ezHI_nnBQh|Y3 z12gBCwtc)bv4t>Y3uDldhRy`^r$h(vzoZiBV|M7!4T{Qu!$w*tb}UY|tX;e|aI4}7 zG!*e_mp0@ykE`Uk^5p<3WWX1Zyqdb)$gY;Cxc8RsD(C^L<%sFfGEnj{5Eqi$s-#WtauL+^LosJI$bAm}(b~_(W6yaB=nEH9ViarIfZ!FCfG)Cn zSu8m+U-|Yq^XkqydPPAOd5Rs&cSt2xRFsm23(`20UQNVOH5Hu)NR?s)-|{2bUg6>; z4nB{7c~BCOf2qvts&Ucx*ZtM3C4iag$B8%gpuK_ZdD55< z@-0}&fEBifBJBPK2_aB!1B)mC!MA$ByzN8j=3DE=U;oBm{XfsnO6O+XwrRJo`b|%b z=W1~1nC3&k`Tg{V&l>@twc_vdi`ODF!&wsH#Pp`mL#e@cX_J^i2QA~*)-1bT4?QFQ zT*gsaPc0{4*Uc4%F(JY3xTFJgS|iWMZq2Gvc%h$_Qx|@Nnm9l;e}eZfov=%j5Zey9 zu_dmeq~NIt5?+3-!@-f_@+%6z?U$cz8yM=)7eS@X5t5>@k5nyM*^`nDD!KhqFZ-8b+)h<_Y_(>5e}U{&if0t3ON@e5qL>s*{Cr;+$Kyyj1V}0E*Zw!hLaW~lFq#z z+kjRuJZ?NR@#F{7n^lSSlp@|8D=)FYY!S{y5KjVUAG6fcsfYY!vWOdwu*foF{hG8I8vLCZ??eB}Miz1tg$9AV+hh) z>)~_nx0O249I(~1He9h=K5q<R6ZAZ}ccYB$bTiYJT`++69VT;xD6f1Vq|^Xy?OnHoMlxrhz@`;N_=CP#-osaiR# z^AF!aC>v>LJO+JKHH7~F9kJm4QH42>(}GD?kcdvqtj8+QzDG1jf;J~Z&{P`;z5G2u zDUc#^Qw0pxpBd_pT4fFsk{V`2z+xMWbJqf`L~h!VM_I}E*Ke)1z1rZseeUnGfE$l) zR~lla(yEaFn5E37>eB=C^<+*_RQXJDTz=)`wUn~3&Z-iC@DHW((p26t1j*+qNLAQ+_E3w-P4HXy=#pLgoMEU}HO6SJShQMFi6=&I*erhGL?N7?X@9vle0W#rR)L&Q3& zp6tPfLZJRd_l>TwG{ie$shKhWEhFk0C`0figj->1*9)DbmQGpECC*Zezg_z3Jz7ao zmGD`>85Q;GiOLPog+cd=xM7Ogb>_TUhDnDUO^e35sEbJ$OSZU__i#R2WdB=?Qqse7h%o*GD z8_DdV9>TEUY<6N{YPoo$pgf}=YYJ)+gnH>*M*KM%$r$5P-W?R6>e3M^(BB8UyMz*qbL!!qMyvyx-9b2tz0cMa2!;h0W;g*q}m*vLVitHbiDcP!WV`1g9X zg{3H#h2;=&6a&&5?tK@}vD>43q%S<@Mxi%;as!vgO5FQ1sU?ppWx=KS_&v)5w?-%I z#SW3HAZ<={n+d2A^egNFWhQ;idyhX+Vtu=WB3&WeCt4Z+OtqLXa^(|(;lm_lp}T(U zFTzSV__E}|$i1+YoShYU@09LwtXgF7@i~QZX9T|~wq|vE){*+(V}|O4lGt=A!iynn zf%&X+o0vmS<}6ZCh8|tM)04Si&$uF54t;E59VSk1e+#UfS>CCJcCrnjAQ+O#CmF-g zmL{DN6W}KSk9ZzYBza=^cAifi9_Xkjc!ju$2|{r|#Vm}IlzK8if~nykdPi(@2eR;* zbYOQNvMV_e!zUXurgxvJ}iRI>4& zt0-7U@NkNP?Qo!aIgg~vb%t81es|Og9ksnAXOUOVrIDv@_-BI@HTOIQYOD`1j4P}c zX1_XDJ4bOIz{&Q_i~SO3wy_o!rvN*-iSo?@K#@u~S!(Dg^Q?)c-8vOU)A!vV9lWCqJuB@@R9IILoL0iCp6&)3w)}Rm_ED|BEzlFA#=lGRW8=~W8UXRwG71v zfUAL6qABiwgDG>w7X<&)mIQGSfKKd;k^omLD6kZ`Vu?+a-w0AOR*AxP* zVSu}euWn;+8+Q-7x(KyNmTea~Rg?X#RxngKv>Y-RD@rS{yr8AR8P~cSH#3?1rt0RN zH>8>?=j&Ov;oLzRr$gXOBPFB5M!m&N_mU&FgmZwjisn9sU-LZlx zkD|~K*IS(1&M%_Ci6=#MB*6!V4-3xVa(R18h-A8x8ciSD0G>Vr9YG{50ZK@@$Cp4s z*f7e?m6NWD<%jNcSb)NX;cgu-Pq43?Zfq;y8L(rwn!gc&PP3>8wEBgGYx#-{@MQw> zvm+cq(L;@3<`6uer?)S||5|8~j=kQ$ltN{p51*VnXqsG(ld{p_Vp+I$IB;(A0mv;tl6BP<7bnEH7-F zy{gYAU<^!=p#7NJUK(V#6uo7%q#%bK8&?`bOF$}jIq<6F!<}&2ltq^Xn4qN55)hLB z!iWlDkzs7I6DL6BA^6?ZOM3Ceq*k7aBHA*zKxS;RcaVrC-$4=@FsQ1z&Vlpe*ZNSd zp5(UE#@aSU+c0Lj#||6lX~iCGq#)8_LeOF4A!pbE6l`QzupCt;l0_u87C%aUlcW@2 z!k#JS2Yf%t&?({H=|m<6;GYw#hhjx@hcXpC$)y`R6xI!h_fWZ(yksT~Q|Ym;$Z74b z(pC)>rD$W1N~Gb+stL zzR4?4qz@qUC*5zS?9Is$iAq++rW{kyKuJ|y#qS-s{Zr#*ES5GwS*l9_aY02zHM+8F zMo1_NIaGyrBZ=V&z^P41Dj(oI^R&G61hsSV25UA`BeFRt#d-VmcLnL0-E*a*zhHS4 zD4y~u6|5@33%GP6e2QqP(ZpM5Db4u;h=XbTu8=H$c8~y*+wyxrry0egqaVT zyU9}WImJ$(Ofez|R`Sugv7TJE8c7?LK*8-u@ON#GIZBcOWTO=!Drz~x`|W%fW^(zy zMbddwQ8xI)x;6)`1F4e*84<`dAZ59t_fxCZznm`;G)O?E9 z{ESaF-IwC-DKx#ql1$1WR3mx8bmPfc$;_TBBy4(z^~aN??Tgv8f6BNS)0THSHBoP< z&wQ#P31uNX3Q|Uw2?8S{q>%`3LGCR{m!`7{kntL6!F@dYaYsZw z?w2VhoQ_^nvax>jg}uiEFD0B1WxQ>U)8D+83>WY``;y4(eP<`fV71Sd3Z zf50Y(g>JHbyyeme9Dc(h(E#>8Vu8(n&;eN?a>7xQ(}C@>|JH79Bf=tw=|U8?R0+dO zi*Izh^bS5Ln+c*eX0bCSIz&a7_IrK@MJAH5{EIyG&>!JSHhG#4bpL^JQ+tm^Wj}*9mOTHZ>$j zFL6e~i%P*mkd#FNOekMq>fqYjauDQ%K3J_}%|f^fyDheVh5)4qK=WwVF7$IANmMe& zo2V>f$##=|$D`@^4yN&AKi&TN!c7~PwxOeBB&`QDK}1epw(2o{c=8qmD$ESQ%OG4d z;$3vz`BIWDCScGAuuhc|#aNfWvRXy7Vt6S_yocD`VU&C5=B@10mfsstQ5&yy-e1`I z{Sp3!o@4Zrm7|k`lCKpBB*7y?fB%T_0&@{&0__Vt9oNK=B{2`It*aUM;DL(jMD%juqiFq(p!FeF{6LYf!K!#^sfi=k(qnt0{6@i%O(8{b&QZlVjaRX z`CZe4YJhC?S4;;v-p@Pk<{iEH_mm$IAZb`#Lh?X+&$h6KQ%?1{gul|rkb$M2p)G<; zR@PFdhh#tTNPqbw#O^D#SBhm1icH zlyvBCI;&3*WW#$lnkb_)CS!=;Ff`9%t~0`jHDl8>r!~%F;th}+Vf3&}|FlOqbgD`K z_PTmeiTC{oTtJ!Lyh&`US{dKoi~q9F3Sp%`-oD&iziD|3nQ)^i%kU z>QB`63bZ}w8nMK4Nw3%u@V8HG-^EUV4^SlomfM0oPDAlZD|x5X#K7qX(2tnG?j32T z6CMc;&>UPqXzp%i3g*fIhm$!$s^il=M@&U=p@_uMcbYzvF;4Lr@_RIjrxiMloE_d3 z9ym5=yW$;jqZ+Y+`n@A2go?!UH!hw~wLzr@Dwq@@*e^BWtlFSL?#_z9++{@o&OdWq zJ%#EaOwe*ygnh#?{{+`@%dkzI+Q8nGSay_m>*)8EfxUr@);?YN3yra}>y=<1hQ z#5Xv!d9BZQ(5Hd;E*)c!HflXWeFr7SXaZIm(N;RLn?V!`k@n{$7FFu5gXIfe^$3%6gM2<#<)|U&H?iDrppTi+Z@QV z7XV!+eDJ_(S;nmO5D~i0PL|H>>wkZkcKSsw+Eyd@;({5Z(2zjoxrCP;&x`DGS^Xl9 z9E%1)$QVu&_oQB!Bz9c`IQ%25IR7CfyVxwk!a2Kd5+&J%E02#LcDvf=P?NA2A6P$h zJ&863b=)z=>pxMsPka(5MN**F)b>5=z^O8aV?o~gap5X7N?#X?-(H#lXwpakWnLeibm5gVH@9i z1E(7i#Y5&Ev*m)ez=y-d8IH)nsuhNZBA0j!$6GGQ0E_K|QzJUbr-b{C2x&lKoT^Kg z+$Xq*n3d&WUqTeA;)OHQKvWUpN1V4YiE4dM3o)t+jKGunB?CHM6*8)PAM+PDh^unZ z9x6rx6}1F15N);;5JsLpvqxL#3Th9MA-(f=$m9CdsP6#BXlAItYQ29b(wP)Fe)w%z z$)?aG9hsOc|A#3SGq4l__T zpju5WkBR=KUQ3kJcCMI@XK)g^H~0{ZLePJdUyBfkjyM>8LT z&0_U+bf`cySyK9F=k#{gbES4p%g__}P*SL}a~7upz`=}HSpbSG`hj zX+@u7fUZ(ki@9GDof`90V4-y=WnF~R5LzDfe0e;HrOEQ8?Lcu-gJuOa)?NJU6!8}! zVcps3_dR%fQ~am1M^8;0&^kX7GQ?lz6|37DfQ0PdIj*UbAyhNUp=>k5^n~ssIoH%c zWoeB>Fe4|p#*t;kAnBI(xLxcUhEU3tRxMU*t|Tu7fbivC0dz?GOt%(TR1SP=oY`lpZX@mEl|>#fQy zfYD`@x~?PLwT!ES4rg+%=DU|5y%6OBJl5Y&A>a?C+{o(~GRP42-NmFaFVX^=oFgz& z)5NLIheq`m=H)|lY2)?*#%c=i}wJhIQtQ@o|4cv zl*i8uAxxOrOcyz+qu#LjCet;k1+Af?JH;9h*6=Ual3PBEJ<*m9Jq5hkxuzzEkfz6C z|1<~baN}i%Ev7rZ5)-L{eY+1s$^A3Na)Jw+rRMX3$lbCTY-$egZNTp{tkTq)DoD&S;YchjWdYmF&S$1W5{!%jY9qrgt=Ud4u?V~8gOjN{26;J^MnPP zs}Oew`=V&62}{-hu6w z%5?x^WEa17mz|8nx<%`_PFm(6%%*{3h;@n}yXv|8Kjc%NZ{8RKl&b9rj8L0Ev1 zz>#O5k)#|DC)8#{;85Hfjzj@Z3T@ZRypDTOmAWaE2M93d1F`hBIxBPZU@lbLNGkKqwCcoxR{wj4XZ6{>MebYMAF1QdW>b znwQcGnT2V@BoD<;Dc0kVyHgbkOzdEOn}_SNkNh$ zCtoe@DQ?sUP!$4AA?u(bQh~4gd95ZM(Nvg2a{f~Nb`b!)ex!RyDqIw{#3?GuB=<2N z5Hfw!Ugia*8a;c`vYhD0R?jag!Y7Kb z2YoJkX635-#-~FV_Nw2{iFRZ$TITa6cXs$$rEbFvDDWnX6^VdyJ2$b}?NtM;uN}wd6;pX=yh?Ws@Kgo3L1(q|g$*gC~oN)$Hq8AXC{i3;O~s(OShIl)hbm zG4@2~J_wtrI34DO%c-*voYoFjM^c<4Qy~M&qWUQ03htWl{5}D0z8f5gcQa9ZUrU;n zm`d9RlsA-qybxO!iB>x> zr1Vd@@o9R!%zRy_Qiicf-UIR?PguC0clTGDjb7U`ADj;# z-Wwgx9eI*Q?$6n}Mk-welID^25(3Uovu0MYRGQeh8oqBHu7lIyFDwDZLZ%d#Z}ES{ zIlXojJI*M`7(hfK)_!L@c6h@k8|wrq76q1DRKguZ>06IM9-Eg{ z9aKe%Ix0@1Uz$D@9MGsO9VUIm+(7nA!5)rIL73KYTBe>7u9$47@66f&w4hVFYls4u zX`DPM=`}%EJ1x#Mm^|2}DCJY$VdK_eIFi0*tCGq1+GMAY?xq%Bb-aiTBpdV9Jfg*+ z@wL|OHH``;5B9Qs#H!m(f2Nycd9f79PwHelD2l_$em8qtVgR3VqQ}Tf8yObO7docm z$w_&ra4zUy6(7nMX_@cQ$E6et~etAn0*T}$<9K&I8(Z} zSOf%K6)8#6wvmLZ@zaO4*ibNeZTc|`eb7)VNsxE!4RFqux{)C6Y9{36j=?YycjY>RLf58iw0`FJi?XIbAM0^!pbl z+ewZd{s4OnLXDyyw+F`CnD|^lvK)h|@KXna{^{Or!`f(FO~>Kuyl0yPlN6s9+s`H* zOpl-X-j?Wk3-(T2kIS2jU!NjG+G0iTU+ke>dn5!VV6pUK@6MA zw~UonY>HIjr5Nce;aSUs6b&>hy8*<$?5IZ38>4JY32t%lStAV-X@Csc z^ux(_<~VS-_4=C!U-N+9w-9@91s<&law6&5y!nlYE5|8|;^`*snC+SecFWg-u&NE5 zc*ac7zK1#cjof{1baf(7oq5g(IM{Tmm}9R!3pH~RK+d%#I$&__y4P}SPF%H3DFlDK zCc~m;X(vY%vmkxplf(%?dUQjk3IX5s3{2gNJh;+m!{N%LJ!<29oWzP793j5ijuC|T zRCo#wBdT_SB;AM6yF`^4;S8iX z{yXC66G2l{^&gWvZQ?YxuTZ1EMTPse*<1o68+>+um3Zn{j|9bJU`4Y!{BeOfFp*NHd{w@o|K_LF|5+Q(DDI#%!vcwR6&S1ZaXunKqz3ztxbM=AF6yEl4IR zd$uSQ=Ql^X+4g_~N6ADYd|!57A87*eNfE&XYX&Upm6sXcM)}Y8(a*kgB|hqR>y<6I z2E}|q6;2A23s;2##4iAnYmHMxBa(viwR_Yc;n0dTOje(Tj)+rE;{U!l|tN8o`IKBWq0hYV~Ul4a~Nj858 z#y+}E!E0ql1#kGs4tkq|y6`(SYZP&No=8(*vRd zJP1h$zx9Tv&N9G9*3Sk)_ya`gENG#*5{v~W4q}m@$4%=839_Q`GcZYz`mOxu{{ntM zfxiuIk~J3CWavR1m;tVW#NF17_39jlZ%9ynck|>APh!mf;msXE0<9GUGFKKtTje8C zAj$-q!S4e>XzhVQ&FFuM{-s2PiHmlyoe&Q(ry-I8iSoKe4%r)Ce{~xSC>O`79uVnf z;XQie76pw_t_Q7BX zTqd{LMr`zj{u zNn?Ry&9up#^a^|ce{Yyu4;Jhkn!qEhY5_;QfsEcVha9&HIn9zzq z&*Qjp4IESge%Ux!zv7}(J{}r3k$?brN20d92U-JejFF}xe~(j`JRfYSwh-k~t@b4Fo+tESRUfXg8C zxSOY&Wq|laMRYJBg?a~l1Z^7gk#ffNce<%R8r|{y9=+E$CA_}P0A$;^9 zMzz*!E`HoAJ~H!nU?^Cgu}Q&Zl*_n!7b5(u)WX2ipV(D$;WJQ%e#uCQ{IzV*; z@y{bMe3qYC^=-_Mv5#zKLv8RX>D+E01nIneMDG>oPEMqd#R~vc6XVei<3P2n zH9;JjGJ6k&IQ}1E`(J?ATKwk!7Q`lo{1-F&CJ4@bOpCF_Aua{3j+E+And{jZ<(QFv zj5KP{_QN*a&_;EWC+>I;dqNf1;)REI=R;T;C~7VCC50I2#B2j&Z$3A>c-980~1vGY{itZH7sSiR}q6g`S@7Q1nA zSkb^(&Xh%m?GeRnfMh?8nkQdPK8hron9jSinm53kt9&dqPl#)bFJpGILEbM@^OXN| ze`yc0bkY{s$5!*&FUmeh%afTbkpZiWVpMGO87&XUvQdNd)J1BL$!o6xxo=ne_Jr-S zdkaA#Ko!@}CXACuC@aGjYb!pV!}DS&31w5qVJ>ilTuTIvLE_@I4wFz0ldG}`<&u$n z9Pe3UAX(H~@#{AwQQNnv(3qC2-MT_Ke}ON%y2jEjeX34Q*E+eckRq@|*tl2)w+6?n z;3z)?T3Iz$U&F1=ir^8U!^#URP9$o0hb1QU`(qije7c~XF4YzSJMhqo)y^R*BnkJQ z7O=&yb3K=pJPc$)&oG+?^GOw5jnC3n31yIMhzbn=3%oooN^3EG;m8A-qJFqAf7rwa zXk{A0OpDb@rQzK%2c}#L%f?%u!myyI(Nj6MvT>!*CxnQA*(EYUj_QV~0W5aX64`zd zVK>u;)k5qL+ywQQD^*@IhxjS_p#0V@g+Tl$xI#aNs2b0Oe_Ce+4@=?aUIae1zMfAfeea@Rt)AKNl`%vsIhdeZQF_ zQieN=Z)pVOYTcA+Q@~0q@`cCA@S!|(G%DPjs`c1Neef}LKRTQrCnYqmfE$+8y~8^l z`At*Y2ptH~L=&4bR2eV{o1}(2e|;%g4MAWlz-ydT9v*Y$qEHVKp`Iw{e|!o(m8Zxw z;UV&rKcj~XN*CchR^MKy7IDWAbJrYs>}-!(ZA|k@3pzfl=%#cVMaAKeE28ijyloLQKq;t`S{b^5y z`&eF&>wvgRhqLw7JPKd|f9)~P%}x;gDscE(3j!N0w@hsh4=|R}=*5c0y=O$-78ta4 z^L>)Jz%mNMIHavtjN7jH5=I*BT*>ETu`%zWlU82?_+={9OBsU0xuDhP0;U3Ca+r!F z?a;$a9IqBhMB||cY4;5C@CZUT{T3`Ez+w|WVLLZW4q8O?hKZ2poLLj_l(@kplExV!6=7%F>})p#xOMQITcGpgbRt(6~J|B zy+_^B9$^lg2|)&Eh35?v*+~G7J|3#=W3xKsINXQ1$xB4|F_nwhYTO` zAd|=J?Ca3+zVrcHsjb#1z7!G1u_&a&LeS54as)tUf5nK~6I^WfJmtByXbAc2PHhlo zlHXeNSlGt%z%5xM8B;9DB;_JL#Be!Y5Cd!BqPGRAN`$$gP$CwzKcF@e=jFlxTy2A{ z!>g7{5kgLw%Ziae(_+|^kE<0zA7Sried5A(TRezw66=Zj5TZttov1dc&8*_0eK=P$ zaS6*}f94Q4lI4qs(;J3C74a^6ZBuN74vZ_HJ0s)aj0#{IxoLnsnYskw^W?xxYjk7I zLC$+!;|2uo<=vqZZ=$C99zkZXB8_S&w5i4EgPpNCJ5%`HAb&A+0m1&P?mbtF4Mn!( zJGh}9zKKcnIIV%{43--hB{WP;Xi)i}S1bBLe~2Jrm(2%!+iF&9jw$(w__da_hbga7 zvlY0<9`!y3#sRAoo3uwArW_Lht5*?~!DWKQN8c#kCd$DA0%nNdmItPR@1NDHFY##; z^05Sh@VflEcR(ZIR&<2p#Z~%Q8ig`Hr_v}4(_oPSx+fZQeRCa5PpxuW1y7E|wA)&0 zf9yhu(Hz;*cGK^w#`D~n#=di$*ZEVt$dINOlxs7;B;|O%2GgF*^71n0<1u?*QcqnY z?SLd)m-3bhreT?zv#p8?P5;eC!`EJ9RGhs3sp&e7IvD)q5;vpo0LsO?2HqN_h-a0W zg@}iYWtB4a)6NG(p&;s9Rkkn!K}<%lf3dP_cOs66e5?7WjD^plRc8Y7q@am_6jHe0 zGPoWSgO1A?Kb4?F7ulj1(E+_!d8G6x{3UTXHbf@_ZTR+N#+8k)!}F1h*N&xxx(WD? z!@Ozrrz(rxMw_sPd5Vt;z3lm3qP!YA?|#Tbok_qj*&p7?V{N=aPQ$crL|Eyu7WL5I18zqHcxm=Cv$YTm2a?IhF za_`1TS{Ot`Exdc1GL70bX_L({e*v2qoO}gG4m-(wsNk&B%Ehy!Q@ zshQC^a8DXNIO%vguur04mu670_DH2u4>0Ni)}Ay}4GNNC2pPMj=N%PDg4H*6>QM|c zODU(O=47+9WHu|E0At!ygpTZw7nL0gl_O$Q8o}u_2M3B}Vif2&hc&dee?PaJgR0uJ zJ#GT`k>!k15LYuu;>QhJ399KmENygSM0hld(7NyW^dxT8lrzP$QEi(H$-ILqotX1H zCT_c9s_q=Ar)0q}_1<@Z^#Nw{{9GNU%){(FsGN2f*Z&<4<&+q`E1%)^1KMnjZF_oB z#amVkHN6-{4CN|Q;V!N4;=jJ%FHe8(`U5qxJWd`Ag0Dg8?6NCMPEM${x} z|BQ(-P_H6=tOj|5!Uc@O^UHBVgQ4RMULbp+G)gx5PkXqge}h5A019SBt5CnKpWY|m zU#jMC(I03`=e=V0vdPsGM+=^po)@41E;(}atGx$~2J6X#AUqTU;u@*_KrKYSm2xhY z4)N2*;uNRg0tDe^#i0unuLs5ZUAxJqHKKJl`yy+cLVIjun0f1zzW7{RaDIZZyF#z1eCesADx=yt@nJ&)MO#m|H(zV(3LArxIh74x?;)U#LVHh@v6@4z5UZ{yEFR3dV0SCt!bU{)v6<0Mk|$c}Trk518%hMgqF&v@oz^UvSz z@yS5kJB!A$*p27MPp0Gm9h!W2HL@S^4|pTbdfUuFaAc?uwpE%{OS~R>V13aE*aJLT zIgtSce}~VT^?{|6%UMC3Yxb4M1BW5&W2qhnji zdp>^T9{31v!#n~WwWvA#*Ts(*s|7dFjSLPMcOqw`%(Mlamy~X1f(`s@rsuy*g>ten zRY%6hED784F(tm_sGf|9R|e;~OzaU3{WMh+h1tD_UxqH{S)2F8#D5y(S$pm7EC7~mak>|&T?G2=*is?(#$V-noh(<>J5s}nm5(-bfrN@ zm+h$t<@I0GNsU3Jv{qOQk7!TL;L^6_@;1;?;G-=@lYtcA4I4-Gl>+R!g&TeydtqEf zYTKmrtRZQnHfFsNc|Ga;Y@&Q?A7>Cee=koZRxedl{#4@u)gGB?ScaKb$}96s*Du4H zYth<)9V<1hvD*~L^}Vkni$Vo*rfXuwa}6sLF~Dd}m8Ffvfr-|zQSNnPWa3(8N7QuF z>Py_l5gSsl6zef0ENAX#AZWCW>#}N5Tg%H(lL`^UpX`i)wHQ&J4sU95+NcgKf0w}# zPH^Y5zWPNbP+wB@QtRlJGP-*^tgHqulW=S;wZWfzaZ^`SW5tcojosX6bGrIEHQGvj zN)k3_h~>xhX9P?5Z?>H5Nx;*EMPzxc0v)CKVAGa6-upu_&Xq>B9-r0$?r!pGOm1dB z*r35a!wuap$k3iQ?MJt1y`tvEf7aR$)PY0@dW8GaC3h#ZVx_epZ}PTRHrukKZhdQ* zrJe88%-TpL{pwTj=M&Q@Q?~L}qQ~pEJKFZm z6YIJ{biTmIUO5NUwcE>BSS1Me2df@-zu#k}iP7Xo;JpHv6*B;6#%Wi<`lFdcLob#U zOr{2xK%otc2i1xgkw1rP!I_l~poE7dri735P7eVWfdT=u0PLAtHobT&L|ZC-q?sP- z#~=3?PX^yy1XyJTC?>*r+(ur((-u@j`qG-B7 z+d4fu?J{N4yf(Y0m=R_Wk0N_t4sy6t9#I>)2xVJOGAh&tLpbB7ba6~Rn#0QRi<6Sk zc8f!IfCZXhh(>UQ4>^1VJ&|-4x^mc+GhP}$1dB`=5LcHnkN!87f96mF*#YeP*O|%s zlhh*J8wjhxt%%2@uRLZS;5FuRV5DU)iRLFRu-KoWed(L2ql4FVxB?sNSpm`^C9E;~ z-qqS#Y)8BoSU5O-J)M72e`{gmg7H&P=4I7wG)yPCIf{D~*mj9UDG6w6T5o-T%Y}H98;R4q{97e#)KrWiZT8*Av#x6$FgED`E(XJtLv> zvzd5N|xRkuz4R z@%s*OJVdcEe{xJd>s(Hp4bn$DXk-<-jm!lwu;dV4`>;ka0v z*Mg5wq(jnWx>fhNh4Vy5U*?iK?0l=1s6FZK&Uu_ze^7JXd6(2-I4Yrk zrgF6kz?c=2jv(gC^@RC%zIR{Z5%lx}Uw?S=KNZ%f1Z8eyb98cLVQmU!Ze(v_Y6>wp zG$1e_Z(?c+H!v|c3T19&Z(?c+F*!IOFd%PYY6?6&FHB`_XLM*FF*!LPFd$MdMrmwx zWpW@dlU=cLMJyx%wYcuW)(-W7Xv@4TrDFQN?jO4>$a7-C%FdzvC zepxc@E9&@UV=Yg692vC z?9P{m$CMU&SkJ$DFc%v_Hs@bFJjP3iVF~BYAC^nDIn(c|^^1o`XTv2sbN*i#E8F1X z`R~!{F43j)FCS96q_EiY&mP>xn#Fn=e+`$AR_?xBV$RWp^Z&%(E-c=if3BMU>EY2_ zoL^{If11}hb4h6&42!kxFCR1gO4|*F{`&X&-fzG7M*>h{|7lPPw`r<2sOBT2o z6Xad9M*Z@mr>W`fM@x{5iVXUt=tLN%{P~FY6onozBVRcvg#f-=K89-L8G<*V1!Mw6X;VVU0U~hB5MG zq4j*;5-(v@QgQvugYk?3_ zf7rKewKSAXD`DF(D!*#i6o=Nb+8DhW03c0t(gfYF`UF4rKO1z7>@hB@2OMqobQE!1 zEYQg2aIqC>6ol09kAxE!8%@yYqd+W(5b2?=KN9+=v9RqJaj55aL^o@W$zf4$k!f~) zZ$LvwL~SjR?dmQe69Fr9ki9vZE65}8f4m?-UiDbtJ+-=T`>=m*=L^t03Tz%tp+8`t zCoHuo?Xi^6_`6OL9a3NSSJkZl@nFrxEObul_pf??f&i`QLOe*ZNcCzT|HqC#H$~KH zE#G3@#2J@ZrnMug-55a#KT}hzCGbs{>arCcuUXS0`^bRu-2x!oMrt!nNq;;U@ zLi#kq`KJfsWo}*V0K?l=2+A3PbYsJ91zDr|b;E`klNB(pU-owuarbwx?=`0>Q~0vU zNR$282T+{oO$W{HWSE51yM2ilf8N()+1R5o*iMrDX`#9i2m~P-%L5ZhYA?=bB|PRt z(UCyWm%{0R)E-?TjEJ#M=1tkRrofPga}p4R5C^)US2IcR#V9;^uQAdQEfTcrpviuCR+=6 zSr5lzDMO1eP0TzsDAorGQ*DZie}z4HIxJV2f{j`R%_Y9#@@jR8Cd*E|Ne3cBk<^rE z)x6k2B<3B5$!@P_>`D=JCr=SS0<z|BcAoB!ZM0Nxk^pgFv0QipD)@q-_mU zMygo67_jrg;gTl$xw4^9U@9i7+G$r3GX&1GEGsx)ANOrpjpxBwuZ#B62^qUdbkzAJ zl;@_3n*ofXZ$>iFa>bdi=L1Xyl`J6<&pr<#OU{A*yf)}X4F$m@e=cta2hH#k?%rk z-1kq>-`xDWZ8S`~UK0KJlcMaaUKuSXl8(A+62vMzjJ-kbzJTfEjK8d2OWSX-L|E)u zPxV3e)JolhVV8the;i44nnHMLh0JC>{o;$tQGlapK#Ks4&JbCaqzf4_uM2d-M$c7t zXH_t!5`9ZgZXtcen=V=jOmtQ@e!6f}vVBKQ>L3l#<401{kuY+GHbpWB!f5?O=ZC`R z9mfR{D==)-OPpBt+7BYutGDX`eGL;3ZIH!8oI(vS7th!Kf8E!pM%ydCBPsx81L@>u zEn+QXrxA8Egq&YVrOIb5Ni>}ZV>!UeTSvRz|2i0xj`-2qrRj$|Hb7f&tyRVvbf>~s zecUrvmv>tQQ}SNX+8`dQ+XEO@5axM;vgvjt?d`JH;Jbc`1(-0tAgy*(3HN66Gi9DI z-p-VQ(X$m8e}bF6e=wvi5W!a4e~?4X&mrVS=-qU`rzFsUuK8?au4Gmu$aK2BgJJZ2 zC=~7_a#L=U&oDtE<7+)c{0Uxma_I1N3Z0aSH1#HYIhAXw^?Iw$70X^H$PzOUms+Ey zJz*-xL=1y5rI%0#8EiyEN9v$Zk-e;gRX0@&8J1?Ff6?CB9PvPxQUsxJzk3kt$Tn^K zA>Gd+xR@ZKwpL%~p)r$8U-x2v>#HfWf-QHS;0qCfvBdj=MsnF_2!rxpvC$ovKRe#T zFMOq6Xy|g?yMQ)Ad&CC||NNk6-P72&xHXete=$pR>M@<0&+lNmWrTUYRL7@4x;;J- zeN%5He~^h-EarXM&Sdo>ZS2?*W{EEW3jLdAb);T@kPiaH=mT*Ob7asprF9p~+C>+J zSehb>!fVyE-9%7qyRUX*6teCEeE~o=Hb1EgG=0RGV=V-+oJ=RCAfwQyYfr_9jq7O8 ze^$fNUzR4^2Uv&_La6-AXkIxM7Q=1VwAH;js)(c7hG{*KT1tY@ifKrjTRca`37*9` zv^Ze1EK3a3Z=qjOqD{qpvn9qrZyUqL9bA@1*x7q|*AS8r&RSY6f{(Y}>%AK6-2+?& zPP{;HuqVQ@&$(By0`@ie2;_AnT;c*0e;}fSzoz}Ua$tg{Ur7tZ2@;uFk{{=5pY%H( z6Dam=pME9)Nym4bDDY3OzWA@dKK~4-X$hrt9OqhaGi&m?RVpB%bGyzhwmAt_9cS~# zv5r$R2*$8K0g*`P*x10*2&;dtNVt=r4&mrn9z^=;n5$OF)qgG$A}&WVW@GCzf8CD3 zATWJn57hi=BvOgnyOdJZ*bnsD7H#zdWg+u` zFwv&1Jv0Z4OYXIj1KCeWlmh|wGHf)8COm}EKLnas3;tR;+oGzYZvX8Vy z5u5SFWU?pL^4`PSJbss#ej(F{8qL&vyp}X#iFbiQ~nXZ~o%Le&(5_O7e4ke;WHzn!U2;%Z`FK6HOKaOvjq)e>crNq?}9I%YEDA%ZrjaW|cs+(VwO@ zF8!dN%_sNvrBeLHECki79ve%W79Q1s$T8WbJ6;4F*J&dXjiBf_rx36bZ zqS)bQJ!Er4^1KJ9D+QE#G5Bzi^|Fd)=$D1pJ+OFUGR*5sA=!kd^fc9CSYF|iXjHuDdtHO-dR+&=5UP0V>-9EV?yHP#r!Ne`xL4IuwscNaWD$l3c z+}~*iTccV(NjNtj7btBqXf~1hmKpzyI{l-9ih&MhA;GO3$FcXZ8mTQv#Ur$pJuQ{~ zL($Aul|NR~#C#rnR=?~;2>&Wue_mWXP?f&hN`}M0@kY##K8d{{CJTMq5L>$;_DifV z_{A7)G!;uLOW{*7uZsPYr5dg@ep`n>uz)0Or{<|ta%+{U8kv>o>NKdxNzt1segCXf z`}wH+9P^B_-?g|MVqt4yPtyD81bzIu0W~D)LaEDXjKOW=ELuT?keRA0e+P0O9Whd&-jf5$+%D*|6s$paR z4?*o+Tyh@Ds7ahYsuHh?7v_Mr>oo{@aNEmB!MZY%FI5HbV<&B0?J`$DuJhp5oWu2@ zl%hCK0VVaz1mZ4k|NNnHgk_D_!>yktd%bLZrs-&8{a2;fs z$ooO6slR(J`_3U;CC+NOdT8nTU3!#EW6yS#Q|7dJP#FU9vl|`zNN}S%TBTsKM zh=VPK+pk3{8#2qP#a!ETBT3J2ESz7(g z6M>9ckyYbQD%V--f2~IuSX{9NYTau7Tkc=eDy`qxQ=Fc@ek|%MH{~S$^a4Q$vC%v= z9F`!yWH@4S&r2&H97|Consz@5zfI5hn@&76qsZG`qU&A2{AUG?4>TzCaIJtHfD zHMr%)s^8(Nh@+QnXYjVEb0!NwiUj%Iru87`%5`sRxOmArf1NoTx$%g|l;YN^ z6L22lsT?X_TEz}d*M@e`{_Ohh{tk^aA+hIaHo(&==5PU-_=-B_e>-zOT*q6(f=RT+ zaL19&y1RSEe_crkF$S7&8C-Llf;BEHcN42^o2>KIei6%^Ea2kE{C0*B*Xl=GH(rRZ zw&z=JOkp3>a;FpyzuP}q9n#5r9Xq>|xf>_eDbRAHPs8&fEr7<8A#!SiY+9w)| zKLe@B!Zyl^zt&VHKJewT^a~+I_Q9^UA>?!S4!2FBf9^pFSwp&bFBP~T-Ty1CtU%$# zwXz~N&3GqDFJ^AF_bJ+@9@ua|KsUuCbur7d=v2{Fb6J^@9NVVa3!`9}s^!BB>?Ta^ z&h0~0k?ZB~Nc7$T;1Ue+c{OV@48?{44?v0cC+H^CvYA#{OfGR`w)=y=#1Z_1R{Z3> z3J2H$uRBe@WKtZj)4@A3nh8jYEgG`J~mdtoXYJf8m^`F;UTnOd5}_k9d#Z ze=|7DorD>5%IDj4TA2Kd&DuF+``IU4WZ2V9*l`D6q0m)Gv;t1>~RSnep=jz?vPK6;$Ts4kblvJsB z1V85i2-T{yjRa3zdI3L9gK<6|Y4imvOO7xsyL>EAs)y-LvC&v-SmOO|xCY~hf5^%m zE~HHSr2I@OJ;)r;z|#RjVK+}EXm0nVGAc_5MY14g_k%ojHF&vWv}f^f+8h1;GptTj zpjqAG=2C8+-zr2``l4i?N9*R+_E=Pl^j0&giySYD8FLDhSJ^vUkl;U9&Xnx9Y3+ai-qkd8BkEW|nx#@k!fPf0eb)ow*J4M^|S3@cipXCDqJ7d38-Qr=#DL(%$9t z!8e@*HuN1YYrDedz8QPyD0->}X2btWuTrD?{Zz7Txtmtov@d>}5>|@Ar&ko->h(6p z&wIU4k`|9QIDA0(87ZFe-ewar~O4T zicoGU2WMlbND0L5wg@Qz+r```w?)iD^ld`zP^#+0!E{6B#HPr9f2*Qw`{^iqxlVDG zg*m@_Z1$!mFjcp;xod^1nszm2yPF;V0*2FY2d4KgP*9@`r&;P#%XpGRqgl>V?m17N z_w*%I3DT=addZ0VWjVH3f6G)e+`Gs{nB%&?p&(F zn{^Z3Sue76%RzeXP?BmF;<3)3znbYK2Z8DFB3|n<6u^0^Wl4r|7khX|$jGX3H_xU5 zc4Ip59s1!}AHk|4sLxjIcxkm8?1~t16#SIy=jR_fm>cy6*X?~))@#$AxOJL#A@1lo zgXB4QUq5m+uXCE?f7W%#&64j$u_k28m*So>@GIX-ac;LfB}c|AavSK_!V}luuBa>1 zcdw%!9_(vymXVHutC){D3Zqr{7zMC8p%`2t91~o%D-@9C?f_-YZx~o4&Krh=#XpwM zEl43YpOY?D{p4>D6#^9?H$`f628(#wrOS7k_1MoRxuvR1fBJA+p}LD%rr7wrOcGx4 zy1x={D}bKCqW>O>M_gSTl>Hxfgf#krKJ_je8w1Ts%9y((ufGEcdbqTb`cJ;rhH-D4 zN6GrZWl$2zbWpR3DZ78QmN{6H7}7v)R4lmkDMnho*J5|MNAWsC^rrb`8}ni!9V&lQ z@gje^!>(M*f1K<9^n_1Q_JX2E=-0$XW-2XA$=vJk`u#xDksVhAw735ReKauJrvG$%xMf0zX^>^!10%ixgy#GCd;t(w?& z#$02-ip;2sKMu*)EljVa8WZC^!bQvAYu>6PJFQVWKN|-E--*zv-^m{^4^KBT&DQbn zh5mT^>fcV^foEOP8cYC55Qj9zFG$rQ-c7h~P65R1PVg8fLp=2BSKqwCXJQRmsXx8) zr+=mqfBxYay*>xG!{=ObaAl^5Oq$&Kz^6>&`f|%M|sII+QiE7s?vj0GnOB ze|c3k8#>m%)-8U%W1KWbCgy(1nJAj~S)Ny9Tw;u6!5Acuad!$9mC5LD&%EqJ%w4@f za^0mqLVe~L@V-3LzybFm*8XIA1|bZYp+56Ic@6E2vc@*Tu!lE7pM95no_~G2oQNia zbf~rMvOSkI5+?`{A9W7~s(VzMBw1^Te+j7v1T$WIu>k@1Kx`i@9-(y`t ze?eB*2hckxB-!^U4EL{WkDy6N{|pxb$>In$jh)q&fQ$7`hEy?<%O~huhF&l+Fap(Q znm9tU({ETa3{W1+4Cqi=azeoWR0jyg4^z}<^pHjLH_95@2;(kTmh5)+jVNFLe~EVd zIVqn$(|@FV5(1G(z^|l`2K-tWdu_OZv?B>%V&S+dp6sD_ts&=?tW0@lL1hkEB{WT1 z1%gY4GSFIXtp#ROS{%2~Jc(M6@mt=J7Dx7RT3atf--$$)OvrkJ+5!7^)}*I1mYLM7 zX;q6VEALHjXWKz^#z_S|a#9FDf6TjAXiB~5)|-NA!u>ja+N3*@@`Ot$;KNuAX=ykd zBHl+wX90LwL#i*C9x!WCNGzvK!1YPg1gEuu+$DSi91N0Z@CZ|bA?$s&+yzywo{zyT z#7%Ig8c$q$#BjmgxMXtK#ffZ(RHq)Kj4z~)ga4z7fg}xCqI3f788?9Df0%2Z6}ES* zZ{S*llfgwT7JG@j7lTA?Syq67cp`<8K)A|AptHy!pLnOHKcfdJ6W*vdJT7y_^MbYE zxJV;0E2AymCw&LDKS6|lw@gjM8N-?}A--xw+|yRwv$j~?RyiZGC~1mFkXX>iG5@qE zH0C7;4O>ud8N-XNRy69me`wbi&8u)~TLG2t>J5P$%~2qi5JEgz*Y=f=QUb_1#~UH! zO@K7hRCx?Mnh1Apu)IW^WfHtI_#}np{;VE63d*!82+MFy8skVRcXAm*m4zE{IUh9; zj{rI|0?s(c6i*Z+z&Z)}5Jz7bJVYQge>1@~#`UzLLGZW< zVS-vC?(R4-L&;35G(XF}#2k^=EH5CMQ8vZDFI5XdNCYj^(`SKHvUq0wx;+Nkm{4PF z@l18}9ApaQ>hV$1VH2ZX;A|%Y=lve}g>pcB24HT5hUkwV(pD z_%uA?lBw3fQ}Uun_47g+d`2tNLqQae?XK%ZxB`M5CtO$}xY?eG1Pg$q1-iVm!sZFZ z3@o)&$j|U|15@DFSGdx7fu5f;kf80lJTof7x2)cvLxx#_XFF;h!$oW zxbc@qKzGYGe}&Qm>m-barNuD06d7sR5s?IJ@L*yJzUtw`UUzCmz{Ugk`EHvCx@dUkbN!a;cB5s+qO3(u9a$n!#qnrZx0S}f>* z8HJp8Io%|{UsiwV>@)%C)qSC2rWAu*D4re}tE95fKOqCteIKEftF(F@@jy zJFNvi7<`@&_J)CYgQSgl+qUtTP6=8S81QM-2dtM^0=Om=9EjQHy z?pGGg+nBYqUXHX|Vx|e1?qEkKiXxg%A&AB5R^|Z-yoH&mL1}puP~eU=gWGae0Ahuj zX}C;1(<6c=Y!v&2B|%E~NDfWm;aMU$(P?5xe|l!wk(e&%i71C2kgk?b{K!CESUc*^ z7K&)?z%2o{E6Q+KpHQCR4`k5nt6C4cz7jE7XhXaKbRg0d5M+jaedaCWRrSWo3=z*k zfW*{~5sNM8Rz~oY%d&BQli@``Ri$&_#icd1DM|}*`;g^eSY{_O_aKRJE{mWt1F=oX ze_EtWSr(O{pPhKot2{d|y8@Kuv4DZ(ZT%f!lkwr8H@J=#hlG0s3fOSvP~uIK7I0#G z3j$|j^)sLDn^(P|9-U!L21m=jXm8lrky2#zEK@jY0EgkTW)_(e|IKV2XjP17BwiC_ z81H;RqZNb%k0d_}@kK#9K1P6>a2qBGe`79gnx|*nyupXmNsMjnk>>CvKGef8hoNCX zhHKz+%`3AUI<|FXw`p&Ai(dS75|FcBxff}sw29I{z4C%_K~l`$%$k|wsfIQ3VXkZG zv5H2j8c<&4br;KuWNVl#gm#pTP_Gv}qQzy$0=Bl?dP`=d5DhR!9i#IijHR|@e*_)# z&*AsX+Fc<7RvC@T0Spo!ZKJVs93A+-hF9NP)eG7d7&6(vNsi24RLnhVc`RXwzjJcEeuye8 z-a8>(2VrZ7fhdYs6bVDh51U}fe;M-3K9iH*9kWxA4cIQmF!c@A7A<@k$*5-}MMwu} zpmi8#sEHYg_51?Q2#+$+L|kMBvC9w;4-s!fmT;CU=s?PWjm`Ru9zk@V_J$Xmfu3F9 zXR+6uFemizPTpWHWl*zNrWC2+SVOgJr3kkuEgoM_;Dh3;AgLkZBfTdce-V)KRVsPb zTCq)UWtFrlK#pEqnZe+5h>4#e_^>UWfggES;yb9nN5KPMxf`7&luIxCiU9{MV13zB zWc0Jalm*u3b}+S}o_$1ZES)SQdYOQI8O`-1&bcysq`|*ePSHM6O#e&wPAH?$mDx!a&UO2%dv5bwmbM zVB%XVDR~Lwt#uo0O(WqGV0rVZHe}c%!aYh4TptyUAU?-?LpkCCfBf7Jhy@TDU>N`h zVe4h_QDalUPZ55mTv`$gK`RUh z#NLjUkRnGud+`%817Yld1yj&C0x5G{l;(LXm$z(?B{METBd!ncTM^B2ewqDqEJMZn zR~uL$S_0(BiLZhse>3|zN&`z~9#=ACMKrUdQw=LSt2mEW8oZdxszKOW?_ve{YQtnD z5X~adVIWv9qS>;_W&=AdZ~c|p@K$6hXgtG*$TA{(W-F!P)*AXKK>)LFa1sw_JvPr? zJhN&c`95SOA4%vMiuup&|eG0rGQTU$(3mhl}YfA1y@S(xXo_u03sq9Ae$ zJEOuX`xiCl;r3Hj;N?6M$i$S5n8qQe7v=(2&!7~f8`ive9X>RHbF9{Pc zvmojqe-3593W0le5lbpqei;<^MUA)>ZK zC#rwjg!6sdf3nT~hJe8dSEz7;_%6FHkaVK@H9&je8`~phB1f()ag4gNcfAD~$I3ff zc+?cc0)T#y1yUmPu@k~$oN$&G%8A2L;N!tnF!hl)X4S8T1#$0fSR>Hm8;*JO1(a>H z1(s)ZIHe^dF{0`SLHw&7>P(3v6 z%AgMd2;N0K967}8fqm0_SCu=yYu>Z~FI+WIkPrxmtXOZ(vxh>rNF)L%RNYGpdl%F@ zHnZPM_c8+MDBOg5akh%$)$pWYF4bZsu`qS#f0k$ecYo*YWM9~8#Ersqvb-U-4_R|B z4Y%H)_7T~w52jk&Go>La-x>?HN*mn50(H{TXUfn3ch9B+r!2O$yxngAhT+2gau9c6 zmcB6I(sENRQgp#B99;=k2$cAmu#5&Ec8|0=LY7N zJRlN&Lt){VpBZ$lTj1LvsG%rVyajN}Isu|s?UDCPs5!jAmIMY6i!O6mJXG<9ESg{# zm&EGK!oLHn{|x_#$L`=PEuExmmtsM;A)^>CbxMSMQ(2>|3HAxXr9lElcxLS`e=KYv z)@KF-hkyGU1#Ynzwzz$f7qzs5u|l*#{Ov%sWSwJoCg9ejW7}rO9ox2T+cuuqwv&!+ z+qP}nPG|a^nKSd@{D%8pd+k-bsxHwbUboR!bHO$CS}kdAu5smo`39AKe~o1G9W}GQ zc}#wB1}CN+2_@Xr;Cr3tU!axU2Kt`;>Y1jH-g`9t8oJ3~Xn~;GssXn-bPfSsEuzse zXd_D2(k}VJqhm!Zh-v^LV{2eCFE-&!0TavYj=tY`x)Do(g0g2I``IWH&+SpyD@tJA z_E66qW)kyzOv`xUW(c8}**$ znR_NAt||q*-;>o|pdiBjHU9pgSgw7&74$A_X!kec(6EW- zV2;Qwz0LCZ;HsZq?SXkJS+%9v^6>HaHO+J+D%Z8cPc_O%Ydr`F8b5k@qhc3yw$0pQ z>{?3Qr1I%^M0Rz7f!5w?)9lVy-9sOUtL89eI6>jh*Wm`h!#VPLI)3g5Wmvk>{S>ke$|jw#?Ks@IZVXF!i|c{^9<#)If0K&$%6$&pKD53XoyAn0E9{v)QZd0aie#p`$5)AWRY=kN8-zy)robgPxfCw&(q{T?IG7$)0^t4hx0576dmdV4$=JkFneDp13H$3B56YrLd9?aTxPP8N^4M4>&nkqvdareM& zF5z~yUy4w1Xg~b(Z{sEnc5)=a&?+}6E2Zsl+EbCxzx3Vqj`V4c(?Or!cLg2)?sbeK z6B(@wCnp54`zI0_Z`9Ac(ZbA!WctgZpO04$s3bo*58AZjM&?P8{n`3jJdPy)-XEA4 z7`?A9<+d~UGj!t%O~CG9C7p<|jP7qf7)Mx)xcf|BWVB0a8Of;Z{&AdUQ`n6OgAJs$NLNC}|%Ug1N}mx7_G{4+_6gQBzr#g8+<_AflTF z0a&%I{1zm%U?RFZ(ZVVW^+(6nPTm^LyVP+y5LPV4DT+f+asX#}GUjZmcXF)E=;7Dn zSu%t>PBR;o9pbJnf_@ho{ai1S4wG>(9!?-If*?fJoFH#6PE5E0L&RGh|DTV?$?YAf z@D=a-Q-lx>Lf*y>uG+&=X%_whbrqD`h60=}$1`+c`@NgXT++tdZbU;Z7CygVWxp-K zPzGuy(*aQ6X@FSV0TtH_jf&M6(cMn|r(D{zr+latA_AyKmLvZCnd3ScYr*K@red9M zDJl+fl1e`m`3HhJl_bN2cw#8$KYURY$&Mn9At%t&z?b(tFEGc8H!D;?*sYFLlI#DQ?5P*dJxox@D5Sv!U7ADB;`b0Dx!EHCKX9e11+__3(a84+Bi$ znZ8`dTk-aB-3JTTBKK$z!_pcOpMbnV8N%cTS1@$kTEdKIG#SlbBUS4%zpfhlyJ2iJ znKk$VUh*izkq+zXB)(`?9?ZT)BLFni<0zr)vz3}R-|p)yp_zk4Ea!`Ki=t0AH1dSWi&mZn`U9y%5Ls0WRmn4LW&?u;H)m595BcDu10}}`| zXm0rnWH_^+3nRnEP^RD)6p>m66?;>9S*Wa?BTpt`6R%0{&h-3SjL-Sp+^?I?@(CYJ z;8rzru}6@b&r=P~L~ouc^hFACVv5jVCRDzlPQd0t5hq~m z6%2j+OR5xLfC)+3BXaA{&jZQ)A4^kK(2O+cyXJ+dMw4>YC54SWBkck5SB3}7l`;TDgjy(yo)VPy%mO}HY}Ky>0y)K3ZI=wmgp1IJBjHEpW&~My zI>5{I5i4r*15pIYvs)WM>;TP9G#(kkvJ#+QlJihyN~fJ ztJjEGS67;W9igkAy5_qo&ew#IYVT-s#vks>O8cOpJ8Td-XsltdxuW`fmm}UUVgV!q z%2v3*r#dxe-v-W^Z$0F6((@nT)ySa4vi^!ezxP=Nrf6p5v7PL+*+fq~x+A;Kw<8o8 z;$Lyy=&8Sn3sr}xNn;Qz@k1wopDW@l7|F??OZH=A1o_%!PDh?+Ru~g32dCZvV-is& zEZ`a*GlBhD<{o<)8Y4f_itYPrwyX$%{;*d!@3PwrIr}NcJ&R&@}UNIRJ*OxR1vU zW#i+Mx(f|EHgMaROi>U{BKm`Wz`w5;B5t59C?_n7UM4$ z6(X(_*c)`ndU5DuR;sy%m;tIV--{>nKpt9Yh1o$VRJ{&t$1uJlD0{Of$ik}JK6d14 z66|-_E#34JsLFfTJzdz8oin9bKPNQ&HrTJ*Qm^E%VBnrI0+aC_xcx>0ZaEqXd<<*l z5WrPa%uZ8tZC)xjB|S~_F-oN`%Ppfdliu5t4-<+P+`5t3$4)O6ivZ=)mcM5UKG z5%FTTF=WdlcxKM$^qA)j_Fd4rp6@X<=== z@WrS$Q$J^T<%zfMf>-qu#N>Of_`WVRCBAEu{oIW)wJQ}QiVx#EpYD5d&7WT~uc5G> zj;DI&+m~7873S$0$eIu*F;Hj~ndh>j-xFv9(U1;&g8SMw_dES5RqD)n)UilPYh3+% zU$fOjByDyK4_^YB_%_;Yq}Sud=vs56Hli(Yc1HvI1F*w1E|f3cpJjx&X!62`|@g2scZ zl4crTZpOCg8LhNMTyIIx;HZvo!!#88_}__c=2j5v*m&^T!~Hr--s3c6sQ>x=hcu5gm#vU)BuKP7o;3}y@dY13=WCiooQI0R^nX_|CT7n6 zzo0Rt%mbr>F#R8+9-E zei!j)L|j8i#jtHah0gN&;V#syVV!G|IV0JUtcfqLJ|6TNFHuR4FB15@Xux18UTzWE+Jz}|RfqMVXS#x3jh>0F&l^Iggx4%JsICp$Tya)M<5OMrJc#Ob z`gnJU0Xt-P@{z?n2&-2hFDKzGY+WY?d3i~`Odf|Vwr7#_Z!OZuLq7GNr=!Tp&&g>H zm_g*)d}lO0#;4^Ju#8FzJ6!dIo12+!lFth&xusQ;)%IKNttjYP zbPY@<(Z-Y^&XzdVbR|IO6-<{bR7B`V7gK@8CVxP&l34eqrPw6Qop%o~!_Kw8PA_=< z6J3WRCKoCUk+sAzK-iiz5l;r-!mDZJ>K|b|uPr(*Qwg+sQTGL>kGx5Crn&TLV1*co z%6UA;#Z~^!DDjww^QN{^3NM{+83GI+@xKPAHM^L zzB&Fy3$NGzdu6#g)pq?C-1{Z>+j{lrYEN+eRAoq0DOODiJPvW6Umyv9HntqApLJFV z*@0|#cb=MZ(bW%p#)xye?o>Lfw*;Y{6#;a=wkIpSZ*9_d4B0td;qS9^>l2y`M!Vpz*XRT8i8vndAwnaW~Ks zvKZdJ(cwVn?n<~HGja+@Pf39Iis3;t1^8);^WDVU8pSw_-B79j;>Mnoqwt?JE0q;2)emXB_4e<)s(&aLofr%d ziY1J(Gr#d4&=+796CSvu<+sEPh1~w;GhaAD+aY1wvkrlW0(wI<;bO&+KtX;J0UcO| zqN#vz61+dJzcrwjQ}-~&?1Vc218jr9-a_n@1hJzE%+Y|Yg6#0ITtOhiOs;i9%-~7e zftus~*@!nwF7{k%aQ9CJD1 zm+*+DXHhZ6B{Z=4gde3jXQwcUr($G;R!r_~G>l(66YlG0Tv)y;KkD5G$_+!-DfZ@2-%oF~|4fC91hEEzW;R%5_;6l|o ze?_EJ3wdAE48feaSOGl zfSt&pCdeDhGi!^c4hT)wE63uw-YP$(dwi1~4vN1?zg0in2Xs?1ITVbx|74!J8A&x( zClU6u-iZ0xQ1I(7Xd{lKa}xEzWHak1DLYW9H!A*uAUuTgKmSFF?cpu2v1`Mcls-%{ zt2odRANx_~WJ2h?57!}^lD-k$_xTzz5b5(wK#9DxKR7}@2B<0`+o2$vIMjJ7l$+&j z@K+P(pKPgo{j`ZqNRXdteybuKH9t5W*_|HJlC?_pO|jBUJR_BoWL9(h_%@Q2dO*DY zGKui0E~yN53TI4>_pGcNC z$0>PbXoCS09LHl@AJqbRU_kYZYN0GRMJjs({md(Xgen8BlZMEJmVEaLC5X@$Z?-_# zoHUV&5B!;QmdXyesh*L@D2Jy=9eD4|AVazBJ1hkrGT<%lvZQsqOmv-JNuFgjL5m|{ z&bpF=RomFY&+aKEnrB4~fZh`0Ok22l?~)OfCGlHSW>*ZzN|;T&$LXw^E36P9~fZ5>7tX>CXz2lo{Z#Rhqr|n7&ZfY4?5LuhW=?7GMwua_BHD6qG&RzC*t{uoS26+dK%vsXX_k z#fQ6kmPg`G3>NbbZ-o#eaHsyQKkONoY2qZp2K#5AbiK`_e}**POLE z`lnYL>TcFn=FUg|P=gi;>Hz=NukAUrFYhpA)L%JxC|Si3v7#*60R?rHp*iDQ>p*#* z=4Dct?GpMoBR@s-3?^t38e>O$nmd|ha_7ba>MIPgY*E$&pS2gB6yKdfaOw4hsl-FeyyX#nD9+F+H7I7kvpS?w zYmvM-Zefwi{4AU~+0FIPZpt!=S=`Ggs;7}9jeR#mAW#xu1_d9JVd+;HbckMz#; zQo;W&>U5`_O8yonC67BP8=;J@4pD*x%^U_Czcg&c5)D1zJGlTs0k|4m$Fsd2vjZ}U z#O%AHH3y_~?J~kIkW7-o?s5t{VPoZ38x`I5`TSWnDmDb^>y#J%LNgZaxh^TI#F$l; zqfVeCO8IINE2fZrAzE$<1lQ#vWmdIS?|Y5YmghvFNe2U@ zx2$>7NBlIskjn)3Q@KOain*aHq06x=qQgyMH zD$R{N*mXS@SrfPS2}}h?7UDJ(@Bdff4}d{O8!G^}%92(ZApc?O-)jZ5crg?Bu1a=}=AeA2zL^ z#%F79+99Jh+;a3KfkK$W$;)@>e5_G?+Vp;bE#ik@pwM9g^yxCXTF;#h=~)-(Pum)H zwk-R^tGpgGi_6Q@Hk}v+lu-%P8b=Ee`;-wX-om8?ijXcPI)|89)0+V5Q+(w`Gi{aS zjydI~1E=Y!AuC?Lpk3{bRDk3&tyuw;y`S3R1SM&hzDI`}YPjbhn3JViZTz(QOI1dv zAOVFnI39Nj;>^;2;?rfj4rY~eyr>9%T>x&6i*FgyV_1>Q^AFeF;gsQvMKCEX>wtK@ zq7IpwhV#p=Ls?~f|Dpl%1N?z;Tq5opC%m>yeJ2<9{Da6MY@`G5MzJ|(ReuVi`d@qx zdY6#|8ml1Ce+7O&i-`_diMcXp;8Vtv>pkK%0@-&RbK6&+!4%=;lGB&;`HS;*L~t+$ zEbEBqHHj(C{@z3Whkp@I;C;#xWgmpzPy5_3CFBVr7YK2hSmpre3ZCL0GtD);C3a3C$pu@*^pILmVHM|ZHFVQS39$-|Mr$5 zV9cq4(U+*xZhHU_SWh)$d+eYFcZlSWbLHD!%Cy)W*ZSDOdQ6&b>r0oF=y~;v#y!mV z+pNumH%IqQPPw_cv)t!@_B7=i;2wAdZB{M(yFCNG7C?TVL}GZW%d{K&KflK&mKPT3 z3rUi}g7E|#^y)F6KmqY1=er|)Np2<6GUgo{e;IbXU%UaDWJ10E7*~&8HjRE1HK>Hh zy^lFTKeSv-`kB?UKa^<4J;WJGuiUYxxvUf`iBE;avU0t@RUldb1VIMh%O(MHNBl(i z?Ti~JQk9JJO6VE_W`8D}jUP=LxjSSsL7oqlfakXkl**SsRKcBLrF<-bp(p(90DXm2 zdAd!e(A5B$3J)Ds#aLnO5AJy(5KrZjOZyi}2$=)@1yH2mX3!Q1^>f4z$?rL;@vH;2 za);ZJyvht%(t;v}N)Z2Ik42*)eFEDwn7zV;)zcA%7uWFl$^K>I4{#IjB=Ub9 zXqcG(bBSU3*EjPY9t0E1e{)HhSd!$s$&!NdbU>h;lJ@f`ffJHo@{fVf8t?KOK!F#N z3XA?Zcat89&Hx#K4viU7bwQJ>0Gn=`J_76hcRB5ja1nVVO*on9&Xw%gp1)|p8p5o9 z4ebTX>wyy!MX5=?5OBCs^-d6~C4pjyjX`df5};P|2?FN)HB{bbQXDQWh^(^mHZ@WKbeZ}d=-lLFY8CYpCM9kSpwV2; zsm)6ERp+JDR)48q%f!bm;*+5 zvQz0>Q~{Ym^M6VMmQy~`8djFW=jZO_a)Ds`#ISR`)lv5@ltxixwbmOiotveM{&5`) zXQgCDwukQ*f>6aY2I;Q^O_kEjN_HyYSnheB@5@hk(p;hoOfHDfsC1f?eJVRkrgmPQ zByeofS7)wcs*}-}bqFVMao3`)MIhR6YZxJ;v|c}k`M*48B@vVD z@CC;$bo~yUlkgjd2_FuLMamd5s}Y)R{OGOucD~?&g3%!V`x~8q57?Xn^QC0Moneb%h4`^RE^SD-PQm%S0AYx=gEt&j$TV^EdOC9Ktz7k zMPGVtjVx~R97tZc*Kk>ocDH}94u6NvW{V#`IY?ULLLcF-@}=W5qxq?)8H~OkO@x6% zI6F1C)o<}*mk#c#KF#g@zyUl9KGDdr=P6frr{5{qLPcYQzT0-&&MSW#lz7@2^DD81 z(WBII2WLpq>SD5h+Cyi4LDY)|Aa!PB6CG$ERv1YSkG<8mDsJ$H3~0@hsSh68pkAO+!gYhM;S z?QpaOzdGzNY~D@qA2ULAsQd*h-miSxt;$s;sGi{G++YlagHGEscx6nlBSp8rWiL<< z8*REo{0#&1JZG#0qKRFG+d<6$vDi)LVGW@rm5==RA9#8LgppN(J2UtPeg-2te3Z77 zh8=53FD@FG8Q$%wkw9*lXdfSXbvYWQK zWaR>gu4GE81t^NxrfNX3k=H;lcU11a*1(;A5Gox$pUtukVl-qWz`Tv5$7=iU9MEBn z?V{rs!wslXRA~H@%Yp)=!jd&*3s7o+Ewpw=30e-Y1b*KyE(u1i8np>iI7>K)9e2b% zCTqbcaazhv%QCg9-=K+v_qgt?gDz*Oj%+pC$iH(Tc7ivPCBE&H6%HakY$luOI`+TGb0 z7x#YZ*|Oy}G#XSdhW0n7vMcu7R+hCl&mG+$9eI_EP@M2)bPVtb&20m8a^1NMYgP|J1`U%HJOFGIsqrS` z^ihhkB+!s@gyo6=wNAH{&C4Iva@)%Am&f_Q#V2x<=nX?3mu;rRJbv@cK|m@G-Ut1a4_B88Q- z$nFl#y97|B-iU_JFDI!k1;htQ1G9cNEZ0tDwiBK`-4z>UbR8K(gKe&rw-VM*Hphx9 z{J@97vvw&Tj+bSg#oF${~VpJsI7KIv2=o+EI)D zZxTTcW|F#!h!4>d^lzG{>R%oUlkC$tzT<0X9$ySH0{YT3{5FIP7qo_JfeWz=9Q}?4 z(`&#B08V1NBYf#FgZjt(zV4XWbN=GzGMTub*-IEcZ=>KFF}?dSR`ZdlCe*si}J zd{i$G3^XBRq9el^FuwXxxrp#r$UhK%I|S`K8mngnX6T)X8nNntS(`g~{KZ1O9Eu~Ul^7K|SpM9TZ*sToggdg>#*Hp$QunXsXV zfT}{z@rBPj|8zlgwi43r@M5eL6`OySgNL@?Y(?!Ls9n^!qH9?ToZ37Mmv$tcjLIdo=YOABdu%KPj4GMuh+}4gpVkTl=7F}bXc%nt-UGl6u zuVgGRekeju@Lx3{D=mkY~FC8`0oKi5 z=494WUMxABx6i-+LVD=G6Gq`RoC6j^XCbybSrJ=fIJgNP%sOk>|jb10I!q2vL}>SHhNWd8f>xX z7Bl<>LxI+7I^;jbpgn%CLBrwz2Mn47gsXc{8APFZsTxEXiBt~iHo+q-s$!M|V#F(T zED4cciN^}fHHHyqP_a-2y-tIHty_%zY0x7}?%O)~6*$^-%b^s9I$AG21f!O$kJvQEFRPwtL9HuVliQU2@-PDUu*(dSQD>|)Dvf7A1VU>7Ba~3l*YO-# z#zI?|b4dujVjCXMA?M7^JY=3DJpgdB8?x6USo^o92(%;@4W7N=Yv8EEB>K#cD#FdM zrZTpr$jv#MP?(|%;f!CQ0jrpch&!+INP85OP^hm}bX?}E(D(i*BalP{(ydgmq)S#8 z7SxqcB7QScQ1V$gfL`qBCyzl0)=38%&}@405ouw8@$Gd=Le*27dlx4ZKjm_Hc!equ zVO7~ey&_4G>vk@eFG3L{jnV`AXU&?X9iE`gT$93`3`CrB&?(4Kz-YsWD)Vb%bilh@ zS)~w$eRe5x(A~_ z2@piZx9zbl!ZQdJacdi&BV?g-E{ac|Ms@`9BBIAE73+uV&;yy#PY|`ioM`PBb=A5x z!NRpK6F7b4Nii`Ppq*-99_wPJ<2gVoAU-0W6qH0fGs;y&j5Ny9Jxo5Dyqs|!+c>7W zi{22yo$V{7o#JAQ{W<{twaH)FOAN=W7I>0H>KTGYp?_y;O5=v-AVz(z=&j9NRhk_9 zP)|)3-Wpo^-USg|6bNi0=6L7wc7#9d`EJLBIKHRnPzC`SFlxo2ESTY7@hqjNTrc0~ zphHvj$3bV$ta=vQ9~ezrJCmuVZ>3Tp)dI8ZpF)xdr1z6dn7giO_c}LzlLIoc?_@MHh5ART@$aYq93I`xjFmJZ`rlA!ksUm?r5o z_3Ff5OiW|?_x9$?Cj*Z#S!_x|@-T$Xn^V`CaVDqSG<**0i<)5wkeohY(I^NE>x+Ul zmz6?o3Pxv<*{le`CbxSbe6A?RzNnTppCBGeb3(e&?9W{Ace>ACGi+K z6!r2=SPoume3TENIn_$EyFOM+iREI+s<9(pT#8|+IYM8(HzBas(5hzPUof@|;vBSr zt3#ONmtO^<_fi8Ip%s5=UJnXuNY))0qoF2K*>N7U`>+FAd~PD#4$_gn>i#2W4J&Os^h+#&iP(HB^m=R`d>PX=B9{tYsR&Hb@OMu5vskEg< zFC>aKOa>ub7NvD-mJB)r!;T%htVw@mGdW+bbJJuj5gWw2+t3)ll~|-*Q8wFW+mmEE z#uC58y5ul}P(+Q$iOWiqL2DAyYozL{)mk(iRR%5g`sd6tzmHHZ-+Q>nv+LmrQkE$I zlybT^oa>sJwKk1cl_8w_jsMzc$bO+?kYQ@0J**5vu3N2(T0KoZ<1E5aOUxdb5$1H9 zKc8&>7^UL)L;56nmP}>9g6;fUW65}c0#@WiHni#iFi=KRY%=>3k%%SscIr~di;*dU z;DW%MUa(lClTYzY&|!n)s{dL)9unjQ0KpD^{d%w$h?K@@lL{Ec9(ZDrVsWW*_=2s_8C7LvTw~zW2d*E|eNI4Zou##Q}*u}n5 z1ozJuR_AAN?ZPckLRj{ixz@#jZD%j<1gj$8HB1zl= z=^h+k!>TqLF*jl8D|2f~M}c;F2c1FkA8?S5M|UO|rAkqjgdX%BXT#bBr*MNfg&rYJ z$pA?;WFq-!4q1YPisDAFNl9Y`xQ$QS6}D2bpTG*K?fh5b9ENA84XiHS}8rpuV{tc@6RP zOzwH+p=5)?M&p;AHmNQP(bh~tF}4h%&(pK8PD}lpF*Gm}CM}>{nlpG+0$Ywv|<_>I3-w88= z!f-QL+$wtM0^@eWpXzx60A;h}dnG`u_9HOuaNSBt&rYA;d$;i!rf7{MKCCKH4^csy zSK9}+qjcH3LpvWGFQK6?M{qma$be|^t^#aC%4-~q^@$-)CAFIL)9})Eq4-c|*VK53VGEyj?u=+! zA!-10aYrqxI!$^hUko|Peb`Frj`jFgn|C)oBylXQXp4R+J^Z9}YBeUj7B9?IMZA@5 z*~$Xl&0Y5RTV?eet9WY*q~O>!R-MAevc@qsxJfbIvc1m(m~vhOcGoA7q6lSIakWD- zN^+_P&hF;o#6)ZY*a^(>&7qxllFY3>Kv@m0t2dIzf>Q~YIcy_}BTThCECe)c#|Od8 z3Q3;J7({TFEarl7mPo<}pI--ga(|k5c0Pkzuv(7qVOq-IdH%gKSY+xwZVg9WBVVW8 zekwyAT9*SrL)(U5|7rkgY8^aMw~w|$E{6n^Ea*BZff&Rz#VH7GtyCpR=nB~xcgfg; zN8Grii3fl0E{S6d+D$bqSbp(K_pUOz1yQS^>Zx796q9lc`srZ5U5#X8rXij*jm~~y z!gBG{bn=eyQ883Tpgt)N!#Gm`j}&+v{)!kCsS@@r4X)z@g6L4Z4+F(6@tz;^*TR_i-^E;Up3Zm{8mm z6;tZa(nBB!lHQw4jP2bqN|Q8t6_AdR{c&(ykx;!YAEbyg+Af(+g)m3feMW|(h9Jt9 zJi`${fB!0QWRMRqq>4W8A*%1bC^Y9-Vb+$B$56BJ1}R!l4~KhziMdj6zstevatlrLY{Q5!bo zM3u2Q8kC#ue+(z@a1)#@W*7H0M@PFVgTya-v8$wBe{1L*Y@EG{o~(WT1l9!?Ly;>s z+nrep3+%;h|GjM)c=BkoHT|SHcwKR{X6MAs$he6m`kld8zV8`*_^)Zq_m4hmM(YHC za{f(Q$vclvbU*P^H;(mLr`Sis!6hDm*Jyg+X);ut-R2fU^`bAffj_+k7%yjQdDZUT zU;fK0O7(q1*k{^)91K(Xx%@nwN57D!2Jm72VX?mDI+kxdSm$(D>>7%*8+-Cqdy&jg zpzHLT@d0()LXLFZoy7*X_+aIE9<~M)rGN39MX?}$66j!Bm&WzT7{i+~{AndaFO3T8b{PK^VUkF?Vc+!udlu&YajdJ#S6mD zr%59|Bzx>m1RS_p(_OJVa6_yiodc-8vWh z0M^$BbWd>;tlxL7Z{giX@1c94B21P#Oo{RKM`H|DwDKLZ=jUryHNZcPDSl`1t1EwT zQ%VEPP+dDBCWcA&v6o#Ne~SU8`7bix01rshJCLuC^g`70UeESnjUQIlEs zU~Cb?&fKmwX!(zucM~?6Th{99>Rp{uPzoPyGkiaFqhC9A7||c-UOz6|)ercW(r%0Z zzfU-GyJ}>&??o|$5dawOXq0}%3$2C+t>gXFhxL^pG&FOl;n1CD} z{O;VRKCI+{C5$IEab@xw7dBgu^oQ8jgUF>&!h>g~9zbFoM zoQv8Vj{&qPx3VE#RebvS*srP?xbV=Mi`LEx9Mz$S@(o|@Jm0I8lw}fzZ5%a9+070h zd$MW&Kj@ak5CI-r>w2QL#Ipwo*u2qdN=Piv!GLXnpSr7j;>4$9hT%)e|0cq7{ns?<}0rQ!u2pcWSZFq z)Sq*5^RQJ;&&_a8@R7^vs4$MmX=V!=!>fgf^@k{Z z8{3Z8|D=`4f7hj?nE=H_0mqSci!0W^lhy7Wul27X=zVoUM@0Ects|T;l&lJ53jpqA zN&@}`3<%PBKQKTzh*GvL%Vjua_3pYmY^7%QQRIK-!%3MqkK*`;;&G<=w& z@0iMkVR1{vWvH$vf6wcNyPln?RfsA&l5(KuMl0tiF)0g+BvL>dDs4ox%Q{s3td}B& zBE6dLEgJu+269p{n=un2D-^h;>=T$x4RpX|!HhM#C!`O|R7iH0{C6q@DWqi zd$*p-LOy?Y;yQ7z#w&Pa3xKqvM1`CoO|~4cia{)*rzJ0vCpM0J7;f`e*UzxZNhmA# z!#V@ig8^cWsSsa6kvo_h_`ZaEFT2|lNDJH^XBFJb9YYRYg!@7x0{D|?umeOJ@YQ$V z`8L%+NMxEY*Yo{7ea-K~oMBz=Yo8YHK{#nQtO9n${pJZC@BQujWHq8e{m$DQvpIg= zj?A#6h`#Kdz?!l5U9gn_3{yhvQQ_AsCKqnOt<3#>+@@5U_HJiBiI~Z_i1wtw3LAjsj7f3hxS(Zf0D{1|t{Tm%=vq;%c;c z@B+Jh-Y{wtoV&@pRPpi4Iz>Yv<;|r@7z^B!*}|2`BCgQgcA|jNsljEeBA@uqYmS(L zB9Uq>jZ;z>i=g1qzMx<-A9*Ymtv?Ze@Xe^8E|ut27snr)3P5LBub|f$%nEWP>f#0G zVfW?dT1*d%Z}*5-xN_r7F~=Oz7}Kv7cJXfKX`!prbq5>q``}%2FgU`f`&5_lCO0ue z{yf#8U$*xf-zB$nLE+U;Mh?B7DeIcp{+mnNXW!PC1O6(WR5RzNzf~NVAfVClEkUHg zJ-8{Cc`L`a6Hp7rmV{5OBT#}kGYbwL?{{`r!9dZFC8raOrz0@Au8G@sBE|`0WahLW zM!`J*WzwKmc?nc<5|LhZwXaEVUGN+U*Wy9g;;aQ&MFWcO%PDg9kZ{SX%6pwhGc^>H zHYXx*aQc3P7@#PZDa`v6pD9zlrNm6m;L&cNuX{B{1*D6b0~swrI8Kl;Xa=?6)d2sl zFBq`~Ym&i^qH+!&flZqV{0M~olHYQw`<$Te~$qMj0s_RFv(pzyCZTX%ezOniRZ zwN(4ogi%Yd2~8+u{B*{QAPK;JkY&kMFN!HU5Z-o!- zOfv|pk0=Q#lUf*;8Il0yHWjBrs(5{K`oW??17d~H3aCGoutEHj%+$v)Q0rwIeh1r{ zn&LQ=r_}f85=Bdn?%`(t{SIDy2f@)Bl`8NJI3;3qJv=5+R=x&5NDbq<;zb6=SUV~k zVt{7&YA4$#8D)(Ofq}5%#vzua29|ZgQDia4X#C|G`6!H`sdeE{aa15D7;Q%*eg4!$ z2QciXji0$m#3Lrucl5T-F&|^71f8*Pf`;Y5E|)IK(J9s7f_O<}ck=X=iBGVG=x*G2 z;|^>APi#I00&k)=?QnCfXw-(*uJb1Q@}@m*mR?^hHNUvtofOj85UA;55l5`gqGw zZbB0(sRJbiQs_FaZ5mIZ35j#NJoxH^QM$mOu*-4jRZ1Lrr{Shcu&7K)2GYv+k+}Xc z@aRvdH~9_zr}DZ>A`~E}G+GC+x$)YBq&Q@6Q4~V-i3{!&2;VEb0 zqv?}hcgJmP%!nvjkDRb|3I*{Z1Z*ZYjSUGK+!$*j zJ!TzzX!q_><>MebC$1La#Q9s!PWy3?$P`1(rXBg^D3O^i?Q^(pL@ zq8A@pQ9EgTh(Z`7)##f;30{t3Qx_%tl*j4WpiLxnrEkeu2dRSq7rY3i#t&M2F89oz z)g_K7+uDkl4W+URY5SDq&*h$#w7@NsZWcev+3pE=nvR76YL?fkf3K{sHL1bLX$qV~ ze1OU($(s9$NB7bZoKbr}CIdBsRi=HeL`40&DL`l0=<>Xa#`V%nB$wyU2;Ip0q^()- zxq^1pSm)vOG6NVT3cQP_uN`2?cTSe5J(gXNK*d=Yr(_L+ANXkZ8HvW58%RVpk|rKs z{8sVwhe;moujBvST0+<>U=5EqTUWm(C_F~c)6TuHfF7Kzl+roipAROZRsB!S_c)OW zqID=Jg{?0}SE)U-0I>?+oC%)WB_K3({0I$iA-z40K?s=lapSm$QCK>HFI_)EDsBQ_ zFlv8FCbRL&6g2TXwC1r~s8JlG%OO+Q=rjMWGnwCe6@uxAKgn=6#@8O8n~l8?%yQ z6Wi0}_X>EX)kCftv+9(Q^YPUBNVVeQ_KOo9n%4O{Q3iI{q!E30Qc-SaS~+R?qbuS! zoC?q#(GDo*;R8tLXjo+ZotP!UhP#izJ5gS1pzng;mm}0)2393e3GTSjB8&hr?9t%RksR*$onN27XPF?QxxRXNKNdY`>oKQIl+#-oBY4E2bnn{wBo#`PM zcDPbSwlCcz5_OZ+*76{Maz2|g=NRzc3YTt*8@KKn8z^(sxC_#svo}k};KBKP98W9+ zHp$k_Txv8pYE(@F||#0H&ZUOs49k0IxRL4|`)kaI@RxBdF+r3Kg2yde~CxM@0G?>Vlu^` zxT;e?FVj7GVgvGr? z-wiQ=F?xiL-uQ`1)Dg5d86DK>AnRet^ok4-jGx5NLSZI%Y@&pH8@9`#k9%B9E{&-I zwMoJvm=8~v-cL#QbE{8#^&yun1>ho+!0!2)gV(RWIW-x_s^-eTV;2bM%cJCNLv;dR z<|l6JZbqneE<}}IB+xXrFlP>42l8&lyB-YQOb~M)xLsbP>JwEbkQcXCRlXEzQmv%4 zkqv4akwhQB2GA7mcIU4w8xb0LI=Mn`NLTbC?&-5b|7m;nT+w207ill1hIs9 zj@8JUqC&{gGsC&u>rPidGs?L*Q&_^sL^`?F>N1g%py#USn1=4dhmmffs4=ZNYI?GI z6(1=S!`@G!xPZdQ9{tEVem4&%7nT>wo=#N!~TkcraI zvZjoPC}7!W*7(y|#I%!S0G}irn#5j#aL-e&nFyUvfc1Qkjv!1oROVNh3kTdff52|A z+SEgO6;`$<)pxb$YHIFa-zGi?{i%lC1O#;ol^O__iG2s(HH={IN`K}CyE(CFXmetx z83aGfjv*X?ouChS1+ko1ra}|L1GJPJWj@kUvP}iqae_Jq3VxFbfV?fU=-CYd4vr5+ zdjg_ZeAKd44w_5wbOoNb`=E>xcb4a^)uV@9CH$pc8#`m3xW=6hDhq%5*_=FEHnnc# z=hbeyK!DS_j^G;aHIYa)?WUSU{W*f3CBCla%6SF*SDWD2GhHCxhTM}aTihndC0AtB zHdg0R93hAvn*^l*knwKzEt8;)?5?@d?j#SiUvH(-P9E5~pAFQORS*5@jM~8dNIe5C ze_=&GD;x7 z4l>J*bGZ7U12lPu-$Uo=1}a_{fEs3ry0ukr^#=boO>Vtd z34FJ_l;6#o@rHyCKaCTMjf+(Uzo~939{-)kyr$1bT2W>*JD#Vq8*^NM49WeA;da9? z!>&mqSZ~W3lU}JSHJK`BNSaR*&h#h9Qy#nEmGQ z;*fm`@%WM&V8s`6Y8R&$HQ>FZ6$#_g%NwTEW%!*g4f1t^YhB1@5$}|9S$Sl%33{wH zY8mT~o}>XGt;&{dfVMb|r{|&RR_i-5#0AS8JvcFKQuap98N~;U_KS_(NBUdB1?MQR zmeRYwdz+acRXaDJn@iy#btj;p9`kuWE*lRF`4n><0O2K?@rcDra=bl7VD%@Nw%RN4Cf`9|%@Hp8fR9qbKCl;>Dbw)+w$;7yTfXn4;n60t}1WgA{U6xTHUIHlO zZ-&&Ty2C&NB^%}q8?~p7p^N_pw|GM@0lkYM$BySRg~<00KI1#QRDR=TRf>DaZehSa zlELl(K((HI(q|J!s*nB^2ZhPpwBAQ2O4NbP>P7c-u$vr!S_0HwZux-mN?lC zJ^LMtfkDRnQjAZXzEngVPg1*}9sOM#Fh$t~Xegng%$V)F-6~o?W*@d}OJ;D){)b2e z&A~{JUf~-78Its;;cuR@wFSru#iwGl*qz87qPV6q+M0#r=reaO*5~*}_}1wBs&_*} zQP5cVB}?V8UMF*;YP`iRQ+i>5!eA`J*kqtC$&dmpPO04b)_%dr0m2x_;UbJF?UKm_ z*r}@AgW}MZMoTsO`C}+R%x#LKjRi`Ttu4XCwB|XnYyRc@4pK5klVAsheMq99^Wm2? z!dvSPW52PC?pWOI+lg<}T{VHSqL!(THvjOI+%w2XXpivy8Xa^qm%r@VE{%_{R(8xY zb*be=K^7a-Mvm<*&ho%l_Uo)clk$2IV7h&!ojVG&f`RWuuNyaXTe7ZG;L<(VhnWhpJ9u&UmVRLf&#-B=OHQkqx$B3#3@zzD zyf<#>%ga2A?!Q_8+=)5RazzuL-$LAOq^Ju(^B&Avlvz5Ei9m+0R`QREKRB-1i}R^)iYmS9Jvqe=W{xP^9MFV%1H-|>@&D@gT>pE0&-LHyd*xLdVDyyURc8Qfw}`1xZiu*n{?MeEK~}0q^R=lr zot_l8q%FFDhjxCCS|cr`TEO-`NGZ~w_By8c^EqjPKOpJFnx)Q+q&XJz@S}mDp`)R$q{%WkYQ8l4K^{tTy(Hy*dO}E*3-m_ucu0CLp{1 zP8?v+KM?-MU2p@FDNmUd?`%n--0==hJ}~JyCH9VYnkt0(ZdaE4=*n32mWSV1m19;X zn#&)$27Xs3VrgoFn|9}^7x0PEZk`84(ZDO!?ciu(ydMc0XQTrUmPV78mVa=M7-PXI}f#=m6mNHHz)W&p^LR#=5j^h#(ydXi{rV{1W4Hd}Z_*UEXhcBlqw zjYBASdnu#1QFzqKXa++tCrgZqo7IUli(2_=;x#@Xc~pMu`LDz6^P1I5Xu0SWhz#&7 zGp05mLF}+k0q>K8Gj83`qVX2xCf3JhVeH1AclWOGT>5yb3&~i}p3r@4vPSCsdhELy zl0wkyyswOljcftWZ%9VTr7M-b#UcWV+vA23{Fgb%oR@LWy20oqhi zp3>m9du8q)1!f4#mXC+`&N8%#5F5z7kJf@>o1#d?5a^k5_$@eObtqW{8!ET4=mFRza=Jj^IGJvf5CxvK6K{3=4!yGZ#= zDmxp~2O={?#eF;m^S+lk7gOA7oQ;!u&rf`MR@mCGCGB|=FJ~p<5Q?`>c%-og-2{cr z22ZGL87TVs43(2X7HYq({9`ca49fD9BsWjVKPy3CMg%3j0VOsak_Vt*V%0UH{>o-f z)P=ww&ivE$K#}*DJp!G3J@?LpNIqGbk_Cqk7qEykup9k&Gt_G7p4;ZEV)XZBlk3tQ zs3ZXrd=0|U*%OF|v|DaFZ~s27>jT@kuLhqBV$pVT=a$!mf7aCqg)}I)K)pvKkH}?F zS4$5TlfbRj|8Mm1A=8w~rCk#`T> z^J{>y1avQYq;}8DE9iHNELlTcp(q?GlC{af>XWR=q}X$^iflj5Fb`L#HwAL0b2! zLVWkmR*%$<-iw8;MDr;Sbey;mj%Jre2R#s_?`uAeGpG~n^Pb|%6h#2hl)H$dJ^!eK z7hcwRaZe&Vh&c{|our+JOJ)fuZ7YyM`<)A?119&!aOph3c!ONwy!fat= zA?I7Jd%);~pkGo*>0kwegGdJ(;<~BfexC=DV>YESWl6CDsT0Hj(%ny7o}v?GFMwf04O3AK4G`GHORNr#l!u*Zy|!n^VwvNBcW>{@=3%$0(rBF=P(kq<6!J2wl%WEX>lt>U*K2FV8C4Ce476-enkvG#e7R_T%n zg>H$yo^bWzWoxGaF$BRD^VltGeBn4G8}`Am&v~sOzrD0_LKZy9&KjY}(I}l1lgaHS z2D+c_;M_RCGFhg|!SoL{MpfOEz35hF1C2TTDvNj3tgID_Fsk-OFT;TO;|&&=(eIhZ zn3Xv13nHgjMuq_zf3uRcQm>ioF%Kphqo7!7}~-(JX7WHY?D zs`sgT(BPT14=Pibp*}3}PCV<%_$tP(2oV^M%xUQ?K=7d!kFy`5KYXiVr;$j(s)MS- z2yhQ6aAAyIq$y{{CTNatW_OSr72{zPKCNl={LNW_5>3W2 z+v5`qOCPem%OP;NX`58I#jP^|8S}FEsow3)6@1zu9*CQ4;2vQ=!<%ds{BL&yYhUtU z7B|w_58@qz;E=EDmpqDrJ1rt1XbyCrLl`*QKEU2~HF(&ag!6*%uwUTm*S$1>UhaEl z4n${w(=Kl$2YwC09yIdyj%opdyl2&ke`Q_aWd}4btR;X|mlR}si^2&BbTpa=@IfmbqaBCd> z%odq(=QQtHy^EGkkqZcrTDf8z$SlU>YS|bDEdIbL8$^EdbP93>wb{nQgOD5^92Wu8TZ8n$OOiqW zDgD}VB2$0{SuFvigo7T<;8uJ>Ff9aEd_ux0=j%EwL7Xl`5l}?XVy!w~A-&IR5?~1h zm3ZVAB@%l?P-|{fkL+-3Y>RRdsoAA`{8X|n&!L@j_o?!Y#0eDhoZJjU&B`|YBhAQV zr?5fTF1zj3$eFxYJn`iP<~E&pQ9=cP%I<-LVe6QT|9%T!0%Qy}4|nD53+H@HPb&<4 z+wSVJ0ffRbOIz&c29W~Ox15lG$Z>-e8X>P6|NP4#;>9|w6!W_JMJt8$92`a`x)((} z=cX7Bbp+@){OFu_%7wyQqGW*#?hyAwCMh#R2-|SbB#OJ>`EZ(Sh!b%!*+#Ukrio672o}rX`0B`iXH@zOVyte9_Cn`?2~`OwvoH(ogbA3-*^c_M zNR3>Af>nD^i`(FzmEu(X9X_y6jhieppDaD|Ks32n)_S?NTiS2b$6EUfiYeaE{a&l8 zfS`_&Q{#PSdL=IH@d@#r$xIjEJBT88V$D~Q_*M~KLD+}}iN%$kv>(3Li8eN%Ns(Wc ztAd%*;)dE?$N<-EUHeSTbb-0?6wvS}iLvaX7TGjo zUMdf8(t+pKmaAOvn34T9(ILFOUmmA*{3OE!yF*!{rN(TTqxQ-4E{y&~fdh{Z^Htgimi5r!ml4Vl6y2lj{)?F6LV6cW)to-7@M z^kZ{)nAZm3Lv4qpBck0@zv?G~)w5fnc%T!+^Y-%cGq7>N#pDU6cNR1UR@ZQsDq1)w z_K086=E>I`7&#CWS-%~STj62kY;lO%Wtz@%P1S>T$34$-3f^u`o4ui1)(IA6nv;R2 z1n14!#iw>*e?W~-_;=OXrV+@hYuEp|bqfX>{Pv&s_OY(B$y#he{yx3nH=GOvk_{pj z6ZxeIB8iX*G4r(r2bg9d1n*-Eet3q-dNfnYj2Td5dZ&W<$zKaV(Iq6AWYxsjn1x`PuH{ArFK(Lkby&sNSyyA!}jL>0!Az7iD_bWT{Lv`_6*F$N{A^ zcFx!y?++SamnEXN!_^05Z#}&}ogGp`7k+Bu-h_GJ*Ze|CLHBU@I8ZN|myjJ*?YSR( zw}#058z_^!mcLnm1sm?qnq;-hmn&K|FaKh{K1|gNFCq-VUlc+GsZPo3BkqI)L2*bC zmx8O=+JO?>pw@w|Fru@ApCAELGm0QUbTWBAfnUJ8FFfRrleuIjznJdL-wEFa_v36= zv{WyiE59?)@n9AHpac&H-kvrg&RmwA>RMRz#1rA> z#si{@3NObTvv+npb*8>6 zE8(;ba3$u@o6cyVo1wp_BHUhaHOuC#AC4|}VJkv{1{*+6`Fxq{m&RQFDpwa<$_aO~ zdu9pUK1u;PC9#FT3SF&7-z%PD-{afKv9(SMtuS7q{RR>aa>t2V*YUX0rdrpb3N4Ac z`>5kcYMknmxw;k5x$_t4-&b1CLUfZKMkh!>;3l6g{fP+-3p{+6CY&csNB&YGue$8U zb@+DI>}fzwV|j*yr`!J7rX!cPs05~MYx{H}1gl4_R*MGOFQc?wm{|taS~A|DzgXTQ zAXVt>HM`&~AQGI59x`smwED#)1_gF^{!lw9B2=O6$`fI`-}&R`A{&eQB%oZ;X3h_Q zPvwMx%vo#o2EeRam9 zjf)_+&L<5WmCg)ge)^U;U?)PO?S&x#9XF9F`@t(YQ|~|hCAFSbSLrFTjxK^ndt0lS zBM6sr(vOYB#fL`YI+U8SZ)shO^dDh^2ZOutnx}0(*Vam0GOR z4?N3mchQZokRQzzB@cD<3e~a99xA9}I2sEx+f$bsF;aL!V8IuIO6EVCG^V7pUBxO> zryqOgn<<^3-tprLz7nq+zWQ|bi#n7czqXzNWD;IAAQT^I$_jid3wUWk$m#C2}tWzirF`co@=>ELH)!OwS+QPLo+0 zcK(rrfi&kO#hkkAI2VJ``?jq!i>hC|yg!G#Z@0gxYiLq)41^2~ylxv0>Vl=6FDu5} zE%y$G(?TR4(Z}|Rq;HJiemk_A{Ec@d0PuR`dem;yl``V~9>M@yQy3a{O3Q0r4C}&f zDB8P~v1Q_huQ^T&>>8kuB0sURLGcLkE%1Fs_COo6s^FYY&F#V{Qa|svayU#LncDfX zxOn@U&8P&}1PDV{ z3Z9Y3rrvd*RhZkSSZYimpituR(%U1+L5eshgPLC2yv>gVJ{v4VhrB)|E{BL!F5S|6 zEzC0pE|1x~zA1^z&O=E)i#o6yhZ@&MQsZYWcSjPpaEf?v(879Aw@+tNiV!cCqF9YyyQnwdpcOQFm@N4j}QIiqGmabq0d; zplg@)*-9~|dx#<32{z9x2DBO4o9At>}a-`z=>D@`zVmL`JU3^5XhH zC;_d7^La^)wsL3}^*5q~5mz%iqR6_1OPu_$nshVAc;Pv zUj`03mqqRToB2vnY^HoKcF9a0t3G&wZ2t>3Lmx+LW02k|6kRSnZW$cLz?N~rHbgPR zT>=Rd-sa#H1jl(e0Zb|BUmsg^7))q^S>XjolaT4g(WRlM4uelCmsD5Y&S^AAuEFlP z-u1WDQ!4h0lH@yTJV4yYc8TFPxJ^2}@e($A@7XIIUy)Cbe>Gq79%Fn=$zUZ=Dbfh@ z)%)|v{Z_|tyPgA?R2D?lEB4qx76AkvP>PqO;`~(5us|q2#MU);TZCBpU)N^-MnhtX zkbWSdMREwdU{HrQ?h(7j;f&`t5}fqlsHWrm(3~=-7Vyv4UcePs6R7i9vDAL};33P* z7>Otk1-%|SN|KLP67rJrzH>&u&r0$D0fsC_@tAGQEP4{&MN#Ai&A<+F4fy3D0G8n5 z(xeRvYi|W2lD^VcNq&6`N-b8GnW^n(;lU+7pj%T8NwokC72_w;MCOj7v8pPngqflX z*S@7GdB3VjA3#EEv1%cFp67{cKLD}Z54vjJ(XgiY&oH{5q0k_GId1Dq@|A~;_%2(7 zg^iAV88Ty4)S*|CHSlXS?g!K2h(7Xn=pUzbvxW$_n27x%7Zk+ekzni;@yMF00UI(% za~&KLY;)E9^#l%gs38cmEyT3_D4FWz8Wc@f28Tr6UyVnBaYYs6MAjY?W$*6(j z7Pa*#%1x)k-{x5A_ofqUckPHUV}x%rsckpqV5klV#7N-Wrw5H9BX|R1`|q871fpoV z^Xd`aVZb=DWE&WV7q`S3B@r&@&ZvH8ldlgXuL&>~0_INWsUw{6owm^RniHlen<{um zQMiCNRV@!IP)O+#mtFk-t=4n+Bk_z@KHCt$?G9@N+gUD?NfKYD)mu?-_!=-uV~ zZgn`0^tQ$Ubrl(iEuB-kfCA`@%v;pU1kahtOrd7@7ba^9Mb;Tr_6lRtY~&RRL;cPE z%>H^Y)Cmj%pKRa54n4 z0qqHWz_}U`{ay)MiQg*M34|D_U1qw2;weA+)!W|o?{)x%)KIz;FVtHT=4QjV$;I7t z2rnQ_k0tr`hhqcvpIeb?d|ePBBx;9T93YB(xW4;9E^;(WjupBP*iDB*M*WYnlJJI` zBM0Zpj4kq(puw(j0{w-(kh}x1aop)E(pKKV0to_H4PAp9Ov&Uxier4GwuYwcI#VD( z&6Bdo$%R)aSMGf1x9O#GxFiNj=*J(W){W^7Z)#?-k{~|a$I0l0mBI;9@aMQ1I9Y56R66^4;RCE1Bl=qgUBC5FhlzL`M6M>eqGyOE(v>=>U` zl;M_j5~f>_U|(X5@QI+9Nk*0K1sLs9>=lQGWx%OFQnt;!Q#s@ECJXCt@|x!G%`xHg zKH)BiQsL4tHHUB|f#Z!xA{SY-tdkT0W57?$L&R9D;Jd9}~HleV?@k5BxyJr}>J3dj!rN8jot`QgKs{=I zP?EV(DAf|2l@cZx4K^B4D&w$;Xc%NK^!wp9B_4+7)4;*#-=!NyL{xg03t8_3&(@r@ z)Q=QQ#KuxU)X38&8E9U(0r=QYfLPPI%RCm^7jfBQM%M9$5;_`WNW$ydgM>6Trooep$c5oAn2c(mEC(Y>oUZDlTBOjr5ZtO}Eu{A6tq zt1{IYd&I5C;Sfu1;|Oby7}2T3w$5_7tUiJtFKudfQ8lcXVLIt*0dH@0>jKEp@-+vj z3JFne3sm-wBgOQck%gl|di<@t6y8= zSlQ(Ywty8JoLl6wc07}632b@vLpX)$Pvnz77I-kF{U8^hL9Fp(nIYi~ibH#Z<^#b8 zk3|pd3)#-dB*u`K0GMVbzXdoTmmkXSn=p;=;6MBj$+I(U4v5d;P)jesgeEt2Q+T{` z3Ql?yvC;zy?F%&~M%4en96Mm66Nlx~Dm=)Q%WZNd_3HkrQ!P?8p%bJmc*=}1W~5x> zSrItVC1G)mvY8kI&XzVZm{x&zQ>F?(ftQFVrhj(Ilt+<>0XXLH#+r+mtDT3JCCfmU zFFnqu7ZTr1qkl{dH68`A_Ygrndd7Rpc=Dtwg4;3p15dCp^Zem@=j3$>L+UBo4~iwKqDndn&Jh;&)}q z##DWZ>|R%%0){DD$AxY7XM%T`4PtU!8!vEqaYfbX$%uKv6*luR!1acZO$LQ^eTzxe zT2$1V6kS4y8Lt#PL+YaOhZ5V$+gG73b%TDE{EdKq{?_~NXHK-1xe5*81;B2Fv<9-8|M-Ipn(Wu`Mo zJ8+IWJGO1+8IIBF^^ldK`onDW7z}tP)a$sK3M2$BcH5ioR!X+OXzZ!-JT}?&7}7{* z+M@xAv!eDlb;SE9t8T;Go_|oOcn+kw)dTEmjx`-Ny4oJyIxj8ipV|P#_ruqxOoD%= zYUnO`7nP6r*m!QnMt__@UPx|jK{+fCzI1ss9sX~2>%mqmyC z8_UW&`{x698>sf8n#?N%z*Fduw!3X>fG@E*I@p~`RaygEEu3*<1te+rw4l*P;%g%j z5UE5H!DxBS#4OpjMBFjh<5Hb4DKW4^^0T92kCpl1HTt{{Cf!*_QIS%!wMwsWENhje z7TRYCDK(5ou)9dp&yyz~Y}j76oFkE_?Pw_a7uj}Bd~4I{h0n;eB;3j^L+fT{K=pTh z2_p|T29vj=BMn+rfag7(&7T(JI@WqSJ(EzsO|CFqLN;>N=zD>Ns}~x=#6_kKsNTiz z@Gu2(c+4YEVNFp&Cboy#3H6^-I)AOJdxQl>#^X8!NZdhQT3or1D+Dr#x--*)#sH4S z#C1-Ntv_TmDPlp4Ijrz}7+B`KfN!gVS9`s#kuiZvxnqiim3kw%e-ISUq6c-Ne|dTV zf^Mf?%Q@6?tWFd-!U9d0sSNNX@bEl7!aj~7v*s|-;2$93t5>%`7)oe}3Q#pep*X3~ zI=oam^U~x3HQBsQ1085S1p3jW&)_8_`EU%|$^(Y=jI<-CQZBbO^d;joKum>uQ(@NJ zpLD#cE&>Ty+u`8;!H#~~rN1P62n7m#|)^t;JxWAFvX9uNp?l#P6j z7DGn!QLZ-OE~E=73!E{%Zg7y_AF^)RaLNc-^rC-SHp2^Dcg~$CfN-)6_6W_~2cB=i zADbALkRdQ-!i?c-=<6K*_y@AAN4Eot2}>=fiCrakJWCVTWXI#g$k5x19rX8VB?gae z5bvj7ObqOFHNdMYNzH^ygr=)9({gn}r3eb*Dl>Vhm9ES}Hz@89MpdPgvO4;uS5EM2 z3dn^kHz^ezQX9ftfY7!$!ZkH0leWP&)iq%$a%K2?y5#t%7y93oq|m07~qkF}ulcfe~lxkge}} zrf2zH?L~{8T>6&wg+Bk``rrn_pt(H+(gzNdHZ?ayd8XofICZj{M(RhQgc`ysiZhs07_8+ZJ zSh4t(w5Wxg0Fm=ML8eyIqup7!uIw+GeVZzoxGIwvQ=Y%V zK0U^VgZ17w<;MznW`7+U264>)Wap{#-A|GwP(Xo21gshmBu6*)a%W$Li9~#=Frqch zlphwGKsQ^~`5Ac?UGI!XxUdpMpdOpT)|-x|K;gd>A9??}x#Ov2_oTe1r{;l9>K=8y z0_`Rr1sc%e?hEkxRmOQy)j@S6=Ag164K)~uDL((NHVdb{fu^67aW7M1EcZ> zhd5|x3?NAuZKoCXfZzF-w&EbRIa>>PwzNZ|m2h;l0gC(wI62_kC2MC;kyV4bF%QbNlz7w_kvP-#?&3j2RREpZtyM|EN;fnf`~%j+^~IU3T0Y|CPpNzyJf=0sqeM z1O|3t%J~D=7Jf-5_wWv3L9sX;%7okDC)WY(_{U#UN2m8*X3%y+yZqw^vVa}d)U0~~ zwgVdkSOypnNZyFyEEsopr^W7VsbAKvnGA*78l60x?>xZR?h!_N?eHv0IAK_Ly82f7)_SoixCXtEm&1@SdH;8J5S zTq6^epcYjo8mlFGe7=FPzHO9l>fonSDRyrINy93$_cNRcCVkek-!BR zItf0ye=B`iCOb}oY>ww2VMr6Z>RopaCw$QkV8#O^lw?cKGRT%{WXmONE9|C0{S3=Y zsBZ%*XpJc-MYJZMvU?_INzXl0WA03BDVRYGEQ}Xqkd3>BwuGIc%&RigrK|U@7e(2u z&RJL}^%a2C2K@-BjI8Z>GyPzIx032gHG7YgGxWZ2M&~2{p{M94i_n4@(2D@!=wTCq zaR>0ANn5MqQd$7~S+B)_r$81UWXa%cbQ{3sWZiU3vNiV+icZg42_s634eTzDvvK!Z5Fh{t za9e!(&bu~WKltkuhfJ!CoFMQXNxx$|3|$C@Puv1ki(20l{a*5|f!)AV(%t@{(o?oj zYlRI#1&|OEX%sPx5$LqtwE-TAxdxABDTk`~p*~O@WTn$>0jDn5RnxrAx~0}fLHnq@ z3O9|L7?0=k)|ora2g!5egrFn23O``Q3$ABv%H9#n&pg4dF)zM34XOLjIZ z=E<|`2}U}Gt$z)5G(KeLqt=m#y^szI2iu`=N;4h5t?EVGn#5>mG|sH zA^Z=K(;nrXfEC!gP$FKTI=Fc{BC2?yh<~WK=Dj((x2I&Lpzu{JIvP!)F);6nO@E`u zkJQ#x(59fy%9PQ5eX{q?f+iqvV|^lPG)7_0NtlCX^g`dm%|bf$%@mJKPKL?`g_zhAJ~9mc}<&(^eU}@QH@=) zoL5R5^<`ZH!g3w%Oo2Gd#R;Wj&Clsv!z~BlaXci}gie(RZ2H4{M;2x;et{)lrz;Yt zH^o^7>2DocPM*s$y}*Q&F8NmwIt;1Z7uecpqm%$!?ay#&9T(tz9`P`zPNQtavCuaK zocb*?Y^lvL9JZT_eBxNr^$o@lm%8res_2O*(xmCJJSgw0XOu)HX21nC&TyMsTAFr2 z!ene>jDH4nd-+yy_cZYtE_xnYL`3`61<#HHmq6@=6Wm;^d5#%Os6xui3WGonB#{_O z<&inJr2O2d*9J+BL3DIk2XvLFM(9zCvsc^_#%k|$ z{?To6tChml%<4>6GO?#T85benbX+xO{nV?cy@H0%bq7{~G^#xQP<~uTWv2Et5wDxc z5004Luw+N@rWZx8Oibo#HAL>D(x!9>26yb5poy#t^$Reowmn-uuX)ygfhNsO%tXWf zJ(cc<+&$yD-6qNP5l=El6bciKo-$MN*?;y56$sU3wMbu}blQ5s0g=Jfqy6)ajldN$ z+46Vef};wIp$(Jmk8V>1=wzuAsQ}z5^{KeAcq?m)x&uG0^)V|lqH+Q3gDmR#E3MVLs0-8Tp#(gY%vy-UftYZON==_NIZz-_&vpQP(#B! z%R@i#r2Grk0;u1Y5X6~)c7T#9v!UssM+e~LX(;}l8tL8;x8JJdqy?;pYICtr2M>hi zHbhGp@dxQDL(wi(~st;oQct0 z<;uK`spOTZD?K3{6l0$z+8Hjys2{)&!rrLGNM$x66_Qz3G%5CN0BIDG4Po>P-sbe~ zEdts`;>6wJu|nK?LWbjtSpD-!__DI`Mmf1n#xt?<1HJ}n`1fI3GuZD^vfM8r8o??^ z_(-?H5FAgktBEMgapyQ8f@Crj_!grPX`-0VuSPOreC@z4tPF$Auz{;RxSST5edZmzDvox3`vjtc{1n{@au#KU}Ube(6WY9J3 zw6jd1<1w_~Wc-6k-+HxJiluCX6^gtQ@VfF*=HUgyl}Ad$O7jW>wwam_4wAGcjcYY_ z4l}qp0=Uj9a6@Y`um+oXxHTX}T-MT@sVUV@%yK1G+D({lsav2Y<|PhZC%oTQ#c^6N zZvN4~%^*s3&I7*@(1w)Gt8t9lhf^pl-z6g>2IEFwY7S%GRNH%8yQ5N&(nw-a6o(Z~ zi4x7JwvUZ$9{s|VeC~{Gg^Tl}kDH`z4v|_#eXy36`@8ljP|2fxHWpCl_~TA{$~}n> z9dOst@L^6;t#7)J)418M1rw&c5&W+v^$A>x+Cnm5)VCX}R-NL5q(b-|Sn5GIG8&i3 zjLA{XFO85b2{+WhW=rR1YQ2y+ssSadhTOq`;YU+V+2uCam0X}O5-RR_Ay(XHWI>`K zZ9$oe28*QsTDDl3Isq7if}3%<_B_5o`R&?Q#Zu|mBcqH1e?wn&WOX&z4C}XCsAO#G z+Jb$m<{{gbz$WIO#U375}@S_)s{hhurBmJ=qbi=)=(Lp>E5jUz%k@R#{Gck{%(vHt2R1rw0YliFm`21pLE>|oTq2yFM7xH^MSJ8!4 z0=M;$sRm3M2SEld2C1n>C69jAJyR3bxi6arC(1th)5K~g%TSrzH9U&Z2^J!!bISf1 zYJhiV{3jzW@b}ovj*lGmUf7fe8lUm~+WzpA)r7MCjKj_GurUmDzx?h<+}KZ73D{|}Cbl#zJ^mZfA)zRkJ1cd6% za{%zgZqCPZ7Q!bpXp7B49L@Rb4=o%*32MVq>M9aWXg1zn*?0-srr2vAj7gFVyBQ!{>idm`TPYS za$|upqj(xKyLl_;G?=o!*NYL&HDjrGvdSpW#H$ZjGp4AF{xuqe4^(-5@B9@g)C+P+ z2U(%yyRb*Gqmp%nk6Iqc!`SQm8j)Whk(;@ zX`!-V;d^qdV^ZU)(92{;#Eisd^;L&#^(FLLyzDmPjFW-h`8WFkZu+ObtzgrKVFJgc z{iEKe`rOv*(@_|TsE98~YwYGr8*+s{u#>1k`YPvPPS}WnO)g?#?e4lGP5EXnMq2B5|R-TLTD-dUiVU|-k;y+`x}37 z&v~8a^}L?_Jg?`Rd+r>6g+q4qN#eHXD6C@u#g@Ifidngl+HCC%Tn<}&#&#^_IxXi{ z?H7vs_#pbb7II8zTzF72U2KY~S2QB|vfxKWN;Pg}ztci8`{XXTHTti$qP3d^d_EoC z<3J~9XnERt->Tnz{VQ?;mwViXa9LrLarSeKSDo#;_88!$_nd5|ST+`8eRJ;^F=?Qf zS#{>w{vo5qnj!u(Q)0R)PKNL3`m7f$nf-{go%;`%L>fPh|6p13=%8EOs*^HySbdwM z+HA$W5&n)_AKH38Fp4I}jo124i)MRyAq_KxZqzl!8a(af$I*b_+59v+g*?}lohiXL zKXt>#VLq>Y^~8B1ol~w=O59BrjRK-Hw)avxgk7!5@uFNm9S#>;_6zx}%IVsFOu9>tuB`{}_A$jav z(vw=Pmo$-Ya{T4JXtv#^x})0V*{AjSVhy_HuCWEn`a&vQy0?{y<-Zu)zJ&A z?Ek_XWV`YzbJvikn}rs&^qDAJ8r2~2xlpH2MlhDCKg$g=sO>7_yc%BNATyN#Mt zN$$GiU=>rhVz>dJ);^r8L7_(K3#KgD4pY{j_cS_@KmFqq*Gmd#mAm9m&zGw&PZEvH zl{L6(6VFtvFtjDSY5L~n{*7w!TKtj2O-`%aLqj806oq`W&R^^?uOtoYK@5 zH=~_SviaN+_Kj-n(>L>s9=A%Z-n!-cnz(YIs`qH9GJ4=<%iR=y`?X4a$H=`@RJR`N z{aiKY;-06ikv4n+1*?Q{sA@#CCqRZ*%M5R zM5s|o`HLLBd0#3r=(bpVeRybu*TuCW@Xd**eZnVGB~sJ)X)*f`=+%lG4{r2Qo5vBK zeUNt;I-rVwzAAH<-6~I&(o$)Wi_5>Pthm`Cjc&16U86OCAqr&Xeu_bkC((V;#S(G3xZUE$zL%5QyB@$G9fqoU|Z7kXijOmMDJz-nYfj z3*zE3UpjK`etvUy@rTUnSJ%%^;rlh;a*2`R^|jxuJeSR<%r0a2PaUS-#zDy*7jv=D z)#^|Je_nvN%9?pGPy2(WGsWhg+mlarrg#v)P9*GYwS#AB7=6cePp*17n$4Z)mA6Yt zpJhH1xov;Q?mKjYb6Qm0PMjeP3-izEYj002a_2Q|=bGRQc7FR&@RS(FM~cG`=d1aO z2=9H{dgI$?!Ng_sld>KrjlJc2PE*`{LbrJQ1!OW?i1d@ymQXLUp;jGJa=-L#WZQHU z&ovpEQv$BM*Tyo=oE1$Ue$cpt-{#K0U4Y&62UC*}QPNi$H=8ZlY;)#reTS?3 zD~vV%PFs56;sHDHBat8Oe(V_zZ{v)FQVtVOo@Hybq2tt8JG$FvQTF@W$DYYwi(;2$ zkM!EC!5)kndJbO_53%cxm}DE8+VnBG50_cVk1Iu-)8Xyv6TpfXw7yO8??V-_aP03l zF}$6kx4S9Gk+zt>Bx!ceDGTA*!bJ|{F`@D zzu&0{y>r%0Wk-kYr2Dp^_?wY?KW0le*^gZgCYlfuMe*Gi8NCY*Fwd$Vs_|wWpb#ol zjnF!Cp{twg{IPGZc9lHhv+TYj_&|;-?wIt$xQnIHZ43nZv9rk>W8cj8_0Vq5X`?P} zE}M|ZXz^DRZ$0oWaM#JQyUXo{CBW#zG1zu zq6Z64eL(qkH;Kf^CZvnnYhb*$>sZg1tmrtxw2*FG9yxJw zi_WgV?X2`7Y~Lu??9*r8y?^vBZ`krq8OQzz`np%{?T$NPx~Pq5X!tDjwzS8}L1^7M4<*VH|oJ6@!g z#D7{coU3tKJs_51WL>^hxmtC(hMw0V>=orzOZyY0tKQXuH;Ib#*_e=IiS2ER8LKC6 z2kqLP{&M#A*VLvgRr^nizTHbpa}`9og9CG_&ulfOTrVDT%`Ovq8Xj>vLox4LcA|A1 zlQMrn%>~{xcW$>S`qP51zYon9QYlX_D)B%3Sat02Iq)!4?0413t>HX|Q_`vyQLU&? zyrDXXdtU7?EIn9@E30&674rB;9nB4|1O;BLo-&Nori9E^IwqM{rtXWaALM)+HEb@~x#T^3H|OPE{_3_s!`tUg z#^n|sM0=m_biHGlW9a!IaoEh^uA)wkMx4xPl=32rqPB2RHNHArj?FiO#W#TPx#IYj zi&u52gl{Spn(StpK};(vf!CFo#AXqrj)f?tjL;CT={gTTPM}+5Z8t<@%+Auj3{c3O zg$A0LhbV^=^D0V8*vnVF*cR@+h$(8iY4vQ9g`2Juq2fGuKp?gx!m0Ui_}pjA0XC=O zUYW<=yQwTJXp8$O8cobL6d@)qr^Ig*~bifarLc|%+V+8Ls|1wO3m9$415eI;>TK21QX^W{H>Qe<5C4yJdcE?U)mDN zm^T}Af4N`l*h_4$ph%{suTG^ljaS2R^4x;2@d~Bb$hMM_)eMnCag+8z;UYF`!}FO( zdv`qh-j(>)`D6&6{h+2s6w5xuheD#zvF^rmFOgD#2L(&pKJxF8q7ZR8+<)!x_DYr> z)p(@gMVaSFw~MdpWQP>rzznzCN(^KB@!b;@f?Uo6`$m_%)79UG`p4O2q7#lPd)HiR zo8gdJK?`d1R@A*6B-nOUgx=pQz;)Cbu{C z%8M0Gk>Kqsg4`>akF6zJc?H)VCWthbHc#(GU1S(WQ0?-yag^_7zu}wfd3iybZnfl586)I&i*yIQL0*R3W&AF zY4Eb&w3m&}Ol@O89K{0#o7c=|ix$&|_!~u1W^R8SPvO$DFR!w@n;-D?m2*5TE?drqx=IHcx%joygABp|BQsxv`{?u2PAck7+S=quy9 zmygp5iuj=NKJLO$9>}!f?(zuyzQp>CSen5^q4?x7DnP&RgtlQ}W+DG+(`!2QRj$Hu zHi+gUCvHH=1)p~uIC06vBS?xFfjT^(f2xJ9_G6{2JMZyzE~x{7I$&` z^I~+6Yr{zl>Ok#X`VZ{f!}PwIH=> zmcGSPvDN-UBi2K*GgE(DRePUPz;(N2QDy6JQ;lF7VQQ8lz8;0t{h4f0l-J`m7}W8L zRdFqRrX%}abzC7Bv3zhpVR-6$bbfBrrK5r6(s9CI9=(0urIFt{@>drZGex_G zY#HV0q>wfbm0uly?4ll`M_9YBto#0ju_lJ^o$w&%M|&&_mcjqY^!9?%M{Ly!`s|@f z#t+^h6FSwuYR&ZpL#UFutBeGG~YDJ^;JEHGbFit&(obW4aWVVGrhC1W9p zIOvx+-LM7GD*t>bt$`kH(LS z?{Ix%apSn8OxwmDJk>K_U2O};?(GYdT@A$2q8H!uj(B-heC+j2bj|uqEJj4n{!qMi z^5kjhQ^m#bGe3DlL;S(mMdco!{m<7>RmXX>hA2yQE*t6D`x<{N3~bBBb|q?i%f0@- zkm|^+vG15nii&JouXExD*T-H=dfNw+*1Vzj$NSu-P^Z6_nxGZb*UAf`csThBjp{3| z68%i32svH+iw_*?^0H)jId)Dy&b0cL5*ayqGgfLqo3BmS$m$E;sJ`P9pUgBhc+&0W zixV=P2Gt{XS!O~!9&ITWF400J$w7J{vk|t|x55e)E1qAtpM3C`lF}9~uA^9Px!2R< zFWkH`-r`CcAg*b;9GW|5Q>sTNV^U(ES|1|eGScM3fK9V8$0Lm|sCROT*>*!FUp`It z88e5tG`H(sOBAn97k_mpTCwE`;|q5Q)rwiZf?H(|a?Ti~oJ#*xSZIB-URd2#SMQ^A z^7N_!A6?V&xR~PeIhE&ly8Du*QWUwZp7?7y$?TSCi<@MhKT_$4MH~q>s2Hr+CpA4m zL9AyKXv2LBb3L?}3sq)E)XpE}D|Qdc)wVKulRRDQ$Bi~-Ij+LY}T z*A`!Wqw?4^b;oeU-3!ew+{Jn!(RFn_$1@(m6&C{eA4$k@RV0}n8WDZZvR=naKia8oFS|PyM?Nb}ZtLZBu2*%@ z*>|t0*rH4;Q&p@fYgb(GDkJ1kjPMsjUujk%UUbzuRrPILyz6ZnB;bdo7&3Y!Z)46nXg^=Avny({-GZIA{T^TI3WEBx zRVerD)u{26rcYrRTfrkY)(_|h>$JayqT;GUq|w|EH>7uhpGMKMFzk{a6kL_4CVezkeVCgChMv1TUP=1DQgh zFbyx1N7NQA4c81Zpb58}V0N=lNPT8+Ol5h3J4LTGtmptToEGwVK4^VtTX<5E?-q+H zO)Ato-t%5xXH-u;R}fG#2`?|{v5Y>(*13@3`Hrg;=TP{-s6sSt-%|n4a!n6LblJ4c z^$VH{5xg1GD<8{FcN)LP$gs<0w(g!hY;h&vg49#uyc}|{S$p{Gg5H6vNT$ly>2)`( zUCM?_E*P(bzr7m}suV1ml#DE&8-02Rvn|VQu0NfETP8Is5V~6EthcM` zazbK{sdCv<#X}Qd=>#lCd3DM6j?XCtsjBQ~XD{N*_-!`O?EvxAvrWVg3=IL>53Kc{ zz4xATm8e(QYpHGBUoT#{$N5HRp<>a&FF7%^_x0ZDk4L4(wz`a@N6df9O-*o)5S$rJ zc*pO{*(%5A8}lhC=)6;`qQMJQ1v=YK+aUL$n-6Md=a7C%uw@p?+w<<>AlLxETO@EF%` zMKdxt?zh_e^{dE~ymeJ`_D2d%meE-)q0ifxM!t6LD!6Ez`_Ndcw-go@d9$lOePJsz z-CXMU+`9#1A`On!d|A11 zVjs#TIBxcx^>l?L&&9!G)P_yG@|j`dUP09+^$SX$srLFKzql|lAi#E7KuVxe@QSytx9uCWKgx8Dlr4L0Xm z)1_Uk`?B(CWvP6}kKu>qJI?kH>F#?4ah?XQ>Gtu>^yJ{6;DKkpIc~xsJ5kV#WJ%GZ znYE`+0@DffC3AE&_dfA`tkBgh|qaJ+7s=|vW1=1s|C?GGv0w^8xc zxrg}dZuf*vMCH(356xMQtGx0-tH8z4IiZ77e6^7he;{i2{WtqUBI6}{%yu^y2DLzx zt`S481A2;2k0j7|p!!UX3q6avSQbzNb;nToQ#|5~=^!qpHT3MQRfyfqA=7r?Lq6fn zsp9B!PAR@lQ(O%ntc5g>D!G1CImc?K%+}J<$Y*O$>3F9fFZcYatN5EOYzJI$H>{Xz z)dF@8m8_gncMar*hBOISe7*AfnP4Y&PceFhh!UorNb5wT{-k=2+jbXs}R zl`k%KC}+arv%gx!t*sxw7L>I;lQJ~eRfyx$@tPM%-0jXsM9eHpDPrVXN7ydyS3Gz@ zsohDbZ?}izMA@-P`8q9b`JIe4qc6R?@*DfvWlTh0aqsMwF6k+L->BBnJQ3w{wlb!A zX%cpE>~nQ2z3fV)y_RCZ#pzkK~@v4V+W}3cl3JZ8PRdYjteSC}O_1Cj`*ki#nM4yG-ETd`Hr5WVuWwe9# z7$WSSe5(tiW;mQ9Z`sMi%xcvW38SqM>qbjkJUc5kJ`%QC&ap-QCKrE(j_~g5 z51Db%dQZ>o5I8~ka<7_hO8Xs(Nm)tmdCi#n?z6I@9}s3YruCL^+Ho*U3N(_ArsV{9L^*#7~<3TCZMQcS+`I&6$IA&kGC%fAknmq?8q%wCIk> z?`cdZ4J62OHE*xK8I;V@zh&xM{OHy_z4yFa z{8#!V6>j;!y&NM2j( znrc12%aWQuqT&CemnfxOqU}?o>h+SFlDVVkCT^v#QN%)7>GaHdLr(K(_36%AdkJ47 zWN&FhyL^w!n3qD;-x|mxzn3_2YTpO1fzaReY7} zvjlHt&v5b&w&x-E<~h%#mF&M0HD*E(GKqddbCEB5Yo1P=s@gq)XyKEe%si95n^-=) zipGy%ojW6n%#}E<@ZfCr?kmTCxFjuO<#oN{x@oCO^)CFI#)63vje}af0vOADT;4Xv;1ZnvnEGumcH;Y+3EM|>^Pa~~Z2#ak zCcq|q*_vTmzW9^>b`fro?opaZKP$G8%n0lA#eK~hRZYbKM8``lgH7i&TK(5@oO)H9 zRId$`*;+vXg_m=Ba%sEkYG|9BJ)5BUbXNPsW z&uy7;FWFmZ^wwy$tXz3UzW9bxp6;agY043H|MWp$p4X>^Pdm8U&RQD=Z&k@aGxV)aA2S+zx}GY$0F9}^5-7U;%E zzwvR%sUED>%`(z&{vk!=(}>r7yK^wAM~J0P@x0K))#lcQJ#J4LZnCR&;2(N-<{qf) zei%FPh+^_ zUMg<&p^@OtPl-z8ENAg3-_=`-t)72(Dl>TEIg?kD*%14oeyIma2CX)udU`Vv?exa@ zL$aS8l;k?lw-!zN`yh#|Rjo_q($#E;YjoASZc;NfHn{}a_jPL0wY+|1%6{$jl8jFg zB3CBH*n`?bcZF_`W?Qio@f=SlFKueMaY3zcs>13e-M9}|?yj8bI-{Pe^KbxtYCqzG zMp@QYRK@j-tzTWk^h0FJdOyUY$}f)0IZWPfmORr!=uiA=G%hiH&(1>kep{u4`SDPr zhFprt0yB$?-_x{HKfm|US$QxwRNAI7{cX}gTj!*d%Qf^%%Sibsy3#>nl&H`sL(~_Z zB?iYA&!l*iZmWwVzBkBka59dT@MdA-JFW2k-e*tUX7A@3ibgz322bS}cDzMD3$3IM zvDjlOKkYlmYk6bxy`g~nbi-=79AUy^M~0r2GA{Bp;*u!al?m0m`q^a!9I@iu`D1=l-y2{N$(MRZcY0a&Zi|x*C#X zEZr*D^>nWH_NB-3rX}bK`GKnsxoZYev|k=xP&>)0fTy|gBV4DE9!79j@C6so`@CV8 zPW80)IbI#}0P!;I+e1gMlYX`zb?N)We!R7eU>Ta$6}*@9`u!))SC!T$!D|FN1+us1 zs7hw~PDDtZ5o;)-+{PAfq|epI$IH*?xbiMEQzi5DjYByO0$f$jLg;oxb>PRD`xjFC zd01sblX5vGp2w6GCoc`w#XiJt{T{xvr(4hH6#hvI-bdss(dXk4r9wyJfA`F&^%oD@ z@`9gI$6p?8%_Gbhe`g9E|Eq4PKEw+LV zD#mM7w4B&IS#Za)Ow?6o%PU9frbiumIfLITssGC+`ezdWjYh%J($H~uKMw5uTi}a0 zNCUEkyK#^#Mc_~s3m%%?N-Zj^?&pbmIU8bTl3yCRCb(Ni8ZwcyCOEhiB|w5F-qtn&l3^!ffro(?YMa9GOKAH!s$2_;_&Ui+{k*&fS>Xr08} z?+6olPLwek|0sLr4(!>ys}CRGq<&L zegBEZP&VvoE7#4pnU!^ll6UXFp+a_SdxvQ0FuT_G)@_GT-wT5XuSk8kC@bt?zqd<6 z&hyiOk?q_rgY(B9Q`PU?cSiK(0y017`)LJhY1(r$min*9>e4UG?JTEq9mSvjp-xps zb+*#eT-W>Yp+iAxL621y{dP?i-V`SuJTAt4_3Q}2%ah~$s9Ax(u+mkF=%}%x3a=n9 znWM-M!AYiC(~nA;_v|~LvrY52v9%b>8c5b3E6U!--G6)>JS9DnEKw!BirXR$G7RU%%Yw={1W9GN$kv8 zn;O#cAI!-e|0+C5@nS52ej7et%dy2(Q1x(4T!Va&Y2{89R`?ssHc3OF=d~(p&l1+M zl1Abhjc@1vI3qMTvvOa=hTcZ(hr~$pLu$0H#;VB@4YvX37K?HpZqH)NWN*g17J`di z6*_&rTkqNueC~UGtDkd9PM5NoMq`O>h|tPW5B4jE&$bbxv)gg#X?*71l=-c@cp96m z26ohx+)X~^i94L(drME4JLQOvSi%d>uD$vx8+4>6K`B!<6sz1v|UX)T*SNYwLVg2IoP2P zH&b5-y?zvG@Z{MHg$^Wc)R2hZ(^8il)4isllm(k}6kJZrY_Ps29Imu*Ibhh`ezZba zea801jFmUfJ?=WB@2X^0%d*?jC5)!=!@%Rlc?WcCHQjrjQ|`K>e&9!Z=IXnWRY4Bo z4+_>oo6rBo3hd9Qj6$OE)X5FMU;Bl@;>cmAOBSLdKI1rMW=d&!Tt!~=){Ul?*Uyq^ z-fmxYyS?);>hremv|0K>$e|||cbQ(x_v6Y5+H}eWvPxZ!AvO26-_lUZh@OmUyr+^W zBcL)PlE2tP>v}!#+f?Fhtq!B^Vpm5yo^2nwM@I;apbf^oHI~z zvZ!LHpV7todhb@bKU)78?_tKHFs7|Q%fX2qn0S67+3J!57g3<<+XG+u5AiF;<<<|( zPsMGyL~FJb-)dI+t|0iE7oS2k(<4)q`WM4KoL^}lZ5(&<(-Xpc z9hrEyFnct4(YVNnKFg(`c_xrEESKTs%XJnX<9x`)>|&1&L8= zEQM@8A)dt9X}IKA$6$UL@nG~^U3^xFddDc9fvNM}s9Dk2xjR(N;&L4($zK*1cA4oE zj_pl#2}!w=)rCswd+<(ODnln!U}R-S^>9B*&h*K`xHnTE=b8QWdQOk`-ce_aBtAku z@~`u+)#;^eesRurCt<67GTx+!rhiL3HFz6mLwfxAyR~h4wyUOcC(X`thUA`J>fgJv zFlP|+Xh1MjbKr)n&OK9~-tDz|1q`oK_an}B+cJEhNh*mJj&(kGbfm2%hX_JwXR^3w#9bT^CsWBQAd?$_B>Iv z#X364#j4Zv5){)Z(r`Q7ApTb^;9}4F0J7lBf99^*sT&T z{Unjf#Faam6`hK$59d^#>L=c^jSX}OEZ%z2ZmZGU@*(AHxxIG+Xfx6)xR0m2JJwIk zb-Qu&RIZq6X}&J!m3>WEk$VnSk0;Yr7tp@6J}ko{=h*D)?0JX|bu=A_^rtq{Tb${9 zx3VLzaBnH+D#LjjsG84q8y=l1cW<~bC0+HtHQP;?_sj_TL?PEsHgi-DQN=v*^ChU@ z$?PiAxy%4I)>xjv@po?&6OB~6bBT=O#H0K|KKHCA0|$>~yE0n2`KQc^&~(C=PARBP z33%~F6C5=L(BaX3o~2z^Y$l#&&}b-Z*@?MfrM)LHX9a)hS;QMdCLvJ|PxpnX=0GP} zm+Q_K>Lp6z9z3Nfm17++(C}n8k47L8_&-xQ5KEseACx_BH}7Y6ap-F7V1HZDr&=QJ zb`A4~rm(FvFBf`!US54V=wE(^GkB4kt=IR=SJlh{7q62oeBLf7*3o2Bm-e#ZbN;>$ zLi=U+ziJMxUR5eqci|c-J<-jU^X-wTxKw|3Ny_aYW1Cy525-;WZ3)z>+*O47A|7Hx|HP-)>;&tTYJwT6@9hRuDMO!^!#u^Vt>K~-!<%X zj8lF&;~1B+`)+hvc7)EYSAN+_hXMr4(sZOIuB#-boI11IUt^rM5BH;F{FxMg+mvNU z=Gdppnu)K=aR~g-ynBXmW2=hoSNTJd$q~NtPw2M>=_Rnu@`R@BLl#Fkb*a}^ISHO5 zuK4e-LDPkd^}OunNzROWV1AEWz>-5siNbxb*w^W8pKi^Vh9_v%u zOXDJtRP#<>Zcph;<=ceY2WDSCSAws9qo94v7=Keq*C^n?vo!WXr90FFui9YF+JcjH zdT#vriqiSS!@bPH`bOHVeiG}CfcnDKyuc!w00soA> z>FXzlWP`Rcy&pX&jTC2?hAiDbmt+jjNZ@QlU6H!4_#6lHtmK7smQI9zlI&Vadr_CK zK*VPKu)6JSQ1{N>Ym)U)>5%*Gn;cyt`&hQb&-U}P-*M3wb*ZyhIBh58F}|YZ@h~_g z`nhATR2=uIC--k23}JY%D61keJnSYy_*CujK65ghPd^f$wJT(gf29^Tk8`|-j=+!N z_!*tUm4-TBOurXBI({*aS^E}$CSTN(w?@KCMA;zy?=zMKf)0jG#bG;&+Jn{3D=#T` z?4Angdm+VQXE!CAR>nja8t)z^z;N^TC zgM)HAyKOQ5ErffG)|8c*jH9TFW7V^rS1;}4?&v(JZ*eUwX>jXjdPC)J27NO@6JKy< zbri&!%!NtQcQcP$D{Mcdxe!DGBvb@;>g6AB|girS~N=Z0kG z_KRstUW)93bC1_enVQSr?&YwXdgh+GELf06j9Q#q`J~hLLOQ?9eXa6scJg%T3+1o! zVwO}{73bLmzr1D|M^( z2|mnS6Ogy$asQq=SMPG=%J%^`fi@*pfA<8Z5VuLjTkp{@ZC<#6^Ob63;kQ1w1vZf& zb!DP_=dD)@C1ZM;lWPui3!g?mh)js()rNombe8#0sbE-<$0PGxq5Ed~-IcKR(5HkS zQ`gT49P#?*ZyMw5cKjKyk!C#AjNVnfxAIbR&);=Szq9(Brm<_sT!xR|j{T)(lPK``)TgBs1}U`WY~$7i|%^Bf%vxj;=_Z(yRPOQ zq}h7$s_~D7!*4Pts6;O!$_wL#TyH$&cz!BAabIHsuK~56+S*rs!N;zt0t5`B^VO(w zeMfnpXZ+~LrVNt1y1hJ}J*5h37y4#P*g2?nk_}<7pNQ+w_ZL~18LkyO!$p=9F8Ql&#GCZ@(Gulvq z2~LR~GQJnRu~NZ+H0l*XLU-B^>-mg&5*! zkMyc~Akh4oCN7fZ_*e*MS6+^kB842K{f*9-{vA;_zjFF zwSYDQOJK;rEGRUopR*2q%+b-w&DBs6Syg%(;(>UnQRFt12KXd(-89bp#wS5~Ae}TT zF_wV^HqwGLVKsG#^&H`EWGD=2iv&<$NZgS=Ne``)KG#`7Vb(FBFzf7~Fl0(MErmk= zTuN=BC=0!z zb~I*#K62YogBrcA_RZ^%Tep9#gC!Zg9Rc@?fnTev>wEL;4R!xk5*oM8r5O6R&HtK@ zCmY%3`5T&tIl7=du#eHY9Wzs+B_!YyJ&2iU-D)?XmsqzMA++Q=$KcX$w?O|kj13z@ zOTx}ZkS!OQ@E<0Imi*&e^F0ZhsGeu*0-69-}bbzECz`t>FNy0 zE188c$Y1OHrgi=6Bbx;e;?D0$aD^eX2SUM*4Iw|l|DYZ7kKQn7vU{vSSlIat#LW0> z(odQ&BvIJGkTH}f^jmM6D8l{{>CY)xvdP(=miWivFt~MK%!Zj@Hry4np;636%*6bo za|{j%j~hdH;<^_|th*U%!-7F@Sr1Sfc!ATepOar=4+0nYyEwp-k?XMzcm?@7dV_di zf9vP?jnDPKK#i7M4|w2NKk{`9a>F8k)Yk`48=o5y8MEO+n2kt@!LADw17y;D7Se=p zFrNvOLqWh+JvM>*w^NC$T6(&1p^sNsfULo_v4*&s zi=_t_iU6luL!A_8F4)8dVij6vWCP8*`H3soxVVC8WL~($RZPJNSRu#;LcmAQL)+ld zb5JI{(-snk%WNQJINlaI3`^QV`mnJbIC^3W#nZ0yyMY!5-#riJ`X^CrgVXIG8(=Iu z?V;-Z>$>>49C^ym<#4d61DHbN04c(~4ghPc10)GazZJO-@6e{Hm?E?~_ zBSGFb1y~DRAX(aV!`a|M0(N%=SA|_6Y50>XkVcj(SpptzKmr&yNES$AyE|kL#}NTB zU9J!<{KXBT0i!qE0feeMqz;bxJ;3o>cSsr>*N~1KJs=fueCz@^ro2ENe@r?Kzd*)# z-V+=%dqPHk$alku*D1qF!hRP4Wz_)mC+lP_0DJxB0xn2>!S674FAvxcHOl$bh2JS{M3mAZ0!Rkrg}rQu&*zWPm&Kb01;q!KfnRm?CN}> zD)tQwWID)&mj?AZ8#oLsLj(xw{Gc-0KcLXClQ+0fa1pXy|CZg)8S8;)gBo&6SYv}4 z+`8?{$iVtZ6auh45jsU8YB$5W7=EV}96V?O?SqYOK?fAcfs0hofu^zsXg040AaIDH z#*@8LTmwg-UJof2_*G;9Q{2@f<*i8S)eK;&7vof z_s6LEEl3cOgpcI{N2ia4SXuBW9D-^r0*gT7VdqPb2z)RAl4rpq(FiOa zT*qS&Akg7a7z7p#uUvw};Jg4xfmxD(z=Md3l0+du{KF%`D>Efw-vDqK83-)9AsnJ& z!Aal|1kxG=Gy-H>oTLOo5)V@b0-!r2ptDy=KsXEnd?}I(B_T;#2#3dlb>WCWKnNiS zQeeO$5qLlc8st+P4h0s4GlC%|m@^27y8!?&qXAYx2^vK}fY6S^NFqRrC&Sz%!6*hp z^2|8EEsC@V7E1;K+#=x{!60Lc1w(A`lVC`J5eGO%lR1_|0F%U_FmOo>fG7)w_QTpC z>pWvgE1?0U008ie*;uLgF2FJv0?Dj1js=Y40LN%Ffg~L)U>w|RCDT+`4Ir&U0pxHb z;2sOaD*-YO8VgthkP=vg1QLc4!MZWl5EZ-<4za@TLxHeJ;LKPc0ptb=SOAVkAqX%- zG{iy)@&tT79`NfH1}V}5A)rX>BP9@cE-aP+#{~gAy`kXxY8XjoK>1)*k~m0cFnC}K z>+~6h0hqvWNS+CcLa!?Zhee>duxMZa>mnN^f$WM{*D^H|FobpekaUbi0d;Mt=v+9& z4o62o3iOh|4oJ&M5D=hr#Sq|b7-E6nhXcVfMnXr(hQNpcqQI>a#f1TK09oEF0uqMP zNf5xEb}|7|l^~lF3W4Rq0N#O4Cyi1`HucqcmwUIGD<51JqW(?x@|s!0DvNnm7GK}!HT0P+J` zLy*h?d`Mtn(HOv-bu1tpk6f1^up~4WS^}sY373v z;Bo;RGhm$LDgY756iNI8R{@gT3;!U&U=slh;GX0pC`k;-GfAN9PO=w{N&qm80EP)G zu@P$s2(V`XTSJ5-P#YFjy-czVpm&mJ@PJ)#5%2}-Yw{vD69Iz3%Rup9lZ*i30jmJN z2CHB&2-GHuf%CAzR^aW|%qS#b-7)aMtN}JOP(E0S4Q{v$9Ah~NQeYtfrQ<a1a2GhvZ;73d_KcNN+N&&EJf@W>TVVo1WMKtQhbRY+Es zly!fSi$Y6+_5-=<64%&F`%i+!HBcBdXeW@1S=1;*0mt2Exzz?oNbQECN^g1L2;{87hTqlqJyYLGz&hTfZCDFr> z3JH@dfj_BH0mHDT21HLiPuE@G%Hy17&7f6zYYttb{U?ckJfUnQ# z5Is1)oDL*NE=D%d0}wq;hXffxO!#|&oj1VTyc^`Xa-`!o>&HaWF=qy}Yx~B6_ecXb zGsu7|;Fwgj+yzyjQ3j;Uu*tACz^gJKA($-_qB-)P-T)*i0mQoAQQIU*Ns^p5Q4ShA zBoV-hrWCu$lz;&e>y)6a17}t1Mt#;KUQ0Fl_Qz z5~X0coHYEG{^o@FYo~27e^$Af4dB3AqygpSUIW9X4^hz60hG z*V8xP0r^f z;QwHi#1NK%K_Cf|q&%#96XHJeH^W#^)uAzE z3xluaLIh=!y8e$D{_XH+a^K{)@<^>vvcu2bg2)a}8UPFkF_Jswe*%Ie!p}%<>ijtl zyk3w3jfQVr0|Aj7A4KvX^}iAV32}5DkPJ-$$d`{3Azs)y7wqYm^PtnPMInfD60lZ2 z2x4i4pv!9w1AW;66>#|)e7X9J{^H2i0rCC!{I0iUz(=0x^(I z%y0ioJQz;94dna21UyCzPF|8ugi6;>m`g~7z@NzgGy>t%U>u$)h1U530}*7vKf^Z( zu(brNxG8*-#DK*nmjXHam63`KEPRM`0xJDIuzxwk4`-G_$`+gC{{P%>e-{dy44m9O z-DIDji%vFh(Q=Tx$<8Un_*dd5b=up@{-qxbZ!HJIf7uThJ_3e+vErh*nTyS(-T#oZ zHpiaLJixJv6f9%|!v72}Ici6eT6d?n1NP@F5uhDB;(me5=>j>(knap_Vh@aOuLKs?UkTCtf8=AckpDBL zlS_q7Yp=Jp|0)KU(B$&s53qI834d12peqjZRRJgZt12Rmn}Bin$ld>6S^8bg{ZHB; z{N<#eT@RP}L&6kj!Y|Y1hyCtCDlp$Ya+x`B7tncS-+B!S+WRnbH3;mWAp&+u8&2y} z4Ji}XZ|Q8vbR9mGK--zWU7mp`G_D>fWL5`zcn z_OD#KeiP~c9r?eUMdYuN^LGRS_e1`oALgn9+n?zgkj=<;F9@G7T+gA7MH(>Cu=uf(dM%p>R+v~}jCekq;gWe>YKX$?Y87eoDAZ$?&Xxy~w|4t*hmA=V3 zFgOy8qKxF5^M8($2xG#KoA&=+fUn($Xxaa7WC_>Y2efU{$Nx?nsO0~UAGobRq7ANY zSWmO0`(o=v{gseO7qlCIkH$9shKwT(_%wkw3fMoOS;5^z(DnhPBLQq3KnY1|lmboc zZiJNnRuI5u-3SQ*n~ZOSWcGtjEy#Wf{d5*@x-Kn7Iwblq-{Hr7) zkrdqokl;x{0t4S@g{WCkpv0FT(SSpfyRTSKz5*Jkn;~;Xa^ruKoWXozGpO%CR|rrc z%>tU>U^=LLK^q>Rz>*rr82DQ=q{~RYeema0%ND@=&esr)04Y$c_X#$Y+c*?xUE)A5 z5cM+zzzvHKGkmQP!WTAS3L!-Ccn0rWz_FAIT<-a5my*FoobTPtv0ptu4_GyNpAxeW9XGK&?hb+c$Sx!x((^tbk!h%DB&A0#m6Qh=g zHE>U#%;BJ(;P`2U8X=i~fx_Kf>kO0#r}Th1i#^XO8Y9&}9*FxdDr%V*pH<)|oD5<{ z9v&FPoIGUUMxR%BLwBVH8_ol6rF8SWVxj^MBwXHtYrdeUCmuTu5f@!hGyw&P^pVTh z!|N_0HyYZUt0De&8q%M15gCBpg^EUI^F_sO1&B&?1bd&=#jBUF;h6X{R@~65XyHeA z(pe~`<|&$U$Vj7&2l)#|2Vzwa9vk-!3F*@(v`v@Zun@k1*!v?d5R)7?CM7A^ORu%G zkH}Z>6|}q{J}*=>5r4@?>g@DcFu6V-y}im;=qu>78nM-7MOTbL8hQFx{7zi)ZI z-;_bWUEAoA9a=Hu%C?qX(P`aVG?`W>t5wBjb=uWkIOFguuO>|PLG_OKRWx;9e0k=I zU+&gc-ag3=;5enLm%cT@4Zz{l>C=B!-sz0Tw6S5x+E&NOeSTW|5hv9p^l z-S*wMz_5dXdY|UOu8myx^W9wcjEPzif1vYEx!t-K8&&64r5x}c(sa`BbJyAoP(NJt z-HkQPAG^8guHSe62GT& zyVWfdKb+Kb-WvR9)WcCj<|c0$deOP!%lbP*f{I6NT>QHF!?+=H(u;j-)N*P*Q+F~f z`b*V}wAI%GE;KzcD=oUs?!}>9Pu96qXUVLsC!J5G-0yzBReIfbKHtqszF#HT=;uWN(P7AOk>y`ymnzsIz3 zS#zg!$lLI^_?`Lc@MA+49v!qeXz=?lPHE=6PkYk8BqOa>hpi{QXGTvrZ}h9_ad%3= zUG?{OKc>$J8&)+)sNeIy2d`fI`?~k)m?1;onm!hBqq6?ow595|T~^mIMK|qmCissP z0o^*UtP#zbPHX?Ey=wZF2U|Y))$X4Epmb6|!H_kxoL7c)i@!G`B&bd9i6(ze9Xl+j zLoLs^$5STpOP~LKW7%i<3#&b@vm~eY0iC~3m6tQ)7TkRQ=t1Pp9(hl@UAo=ym;a1A zK5xD4`rY!vk0pLN1g9~Lw`8t}j{Ec-y!^Q9GvDo#vjqz-n?(k~sf zqQ;N$@9P~gnEvTi=fbh1d%=z7F8QWfwNusmU0Jr%!>v~G@?llfqo@2deU)pUM!Sx; z=xBKHZgT#N&iw0%T^3!*Jn51&?ehg|qw@{*Gae<3t8u;y-%(6&(Cz7kl-Sy?8IuS7 z`9o>P#z8$jKlA9-+b?LhNuZH&*cIsW%z2^9PLhZP^+Imf@7DYcX-3+T8nYHQ5 z`bn3&xQ>i6H0!mmmxp>_oAp&^_YRD?*YlSqpS{a$95bL&r@w0q_6!YJdS!F(_36Eo z{(o&;7?tIFYu)sSV@E56JiU1Ozg@LQU3eFEYEk;N@y|wV$m^2v%Yx!z%c>Ski_8g) zTywUb;_!+`wX>5Z?4GnDV0wJ`p?-(t~sjN<|iJx*9QIZ zwfkSijb_XbuRM9u$Lx+PdTtog`QJUKb}fx~l~Z=xC#cH&@Eh9_hQ-a8vVVd0`%^Xl z_-V`in3j+@^$Mrt%9>2&gwMc@fXMZ`wm<%pm0Uxdff}ttEpSJ{7_|v z-}qS}v#05!ewde1-LKv~rzrh^!p~x}G8_KWNioN_$DA=)k*oI=`#kjz;O32N_0074 zaO9ECZ-%A}yqTW)U-FNqLc?~s^yS?9E}!jGGohQYYhC99cPW#B*gCWyPoFO z_w?mFx0l*RFA9b>^ItOG`$R-ccI&pLy60l+ON>v`S;%4ruKew{?IogTdzv_c*U(`V(w3mqYa1lAKPB1`b4igqq2PW zr+b8r4tu)#&v%tu)Njmxp}hX2I6EWv+YWh#d&b^=f3*z$rhPcXr+ zYhNf*-iv{A-i|CfF=zktoi*E^J3cz=uT=rr?-f%=s+j*JcOA5}emhUwzMtR>scn_V`|%$&O>ZKFrdHw)@JdHJtCzvA`H z4{Hy%GlUy2mc%DsA3W^WXGP&o%Q~(0Pa3*5r$wtNZQATq`hT8~tshi4@B8^JuT?+s z<*U=$$Q;LE4`c6$^y zy?Ngh<&k}NK;(eHhS8rnD^nxWp3nYZ6vy^CQSt+m z)4+)3>yLl)!#ACbjaP5Hxwy$=xRr|MEu|I9ug?Hsan@3o#=?s!%zyS1c^>ld>l z8=F`CIxF<4*mU8QiX9UFn`w$j&OB%KZGWz(Ils7r_sOc7N-jp1;9d>4b`;9lLvY5KAfMd}-nHBR?^m(gUzd6&yj<6-&PVReA7^+{U@w1n1ZtHm zfm-trZmW269v5h?Kai`yk=RiDYA|;~Jh%w3pir($WfCNl=uO-k!EJT6R6;xCcX*}P zFPhVuH%4-sN%RWTmSS=gcfr|GkKl-^G6QvV1%$5>!G}ifw6l~9bvVw};7ms%_%fE; zT*-=RJ{r$eRaCZ=&WpQ9QFnMW*V}mk+}KZLhd@MQ%GY+mh}=d`xkT3706La3id;&Htdav zHg_2pZml(L**(RW&`#Bgl+6(W)vN#|AO`8w!U|Cn6mn2(L(vd`#IY4a3xKu6*g`}{ zXgE^U6M&V5N$S`@AdWR=xi)lo{SosWNWGt8?E3x zy>0ARo>S+@qzjGMaRt|~nRHx2#%w`k&aerp7`lRM;%cQB8#iKHvaubqKNz9XAl6;U z)vrvxYpmZPAvLPsBsh_b76nEGhe!k`?9z8gLXFZld~d+%)DlemY9&|6-8!uJu_=k; z5~7XC?b@P#Zw2L4Th_9zGprG{bOvC@!6G5ab(5sP7D8AimVC7h3H(^@8Cc1vF$#@MaiunD zjKY!wwzokejrCfTg=IBaRZo%xXS|mtrMWM+Mik`IQP+%hOMJLS!Ee+I@U@BA$1u{V@ zy?ALYM{XP7k4q(p4fi@cGdNet;vnzrm4Q=L0!AJi-`$ZWA|Nq1gR97CRF>ytMQOC+ zH{>}Ah|#h?NV&rGfz1?rW_ zooq4Opp1%&Rtjx((Xr~bDpjn|R*6qrUL6~&jMc^(j4^s2UvYaT*TOt>BNxXx8BqJH z)v7@=_ebvY^8cD&{K(Zn&QB+P*vvIFsrBU64*7T`dQ~HT;Z}JKG=_X^FkAtWW>N;@ z4FYjajxZFUp#(+_LtCC4@j2oFrX%TorMN4Lt7+0`$OR1wfhR_if(Zg_yBwyGLI*hv zhZ+=PO4JqM5P)uLAd5gL09-y&jlhl`#ZH()c_%0oSBsCcxaKA;$(>UVb>wyz1^WbH zoM147bx^+J8*nL@#uL<}K26>hh0e^71QjWXq40F1s!?eIw0x2b`cHJsv+NrL5+uqA z@+f3xU{Zwyg{LJK-fS?^KU9U+k*l5LQ_c*JLudxZlRI4$oJ;+rH)+7bA%}c zK}&o;1v6o3$$@CBB;{U?h=56f0|hgX0yi1VfEa{r%abEEM?8F¥2}!gj7ULJQer zcyH;}pJNlOM=fy_G8m4MXsuA;;EqJc6dr2+DVRqM=o7^%O%0`Lzm%&g@pfp8dma>` zQl*8?3kPMWW$Af?0r&l0f!;W`csf>)8Ut+&fX9S|?NcxVy>c)gJgZJxK{C8(?4`0VJDrL(8}O`*6vX2v zIOjMeN(5-tB?tBlI?585+0qGQ<0R)DMvEDv9>zsf?1PpvBEhc^GRmR{kRfXzWnhk7 zVKsk3OnOoXF2}=)wYhq`mcpu|U_g$j!b%|5LmWGS`Gm8lU`oBfDgjm-%`~>Nl;%Q9 zfyWBhAZ1Eq9V-pE{zZ2TkIXP*Aa|DJOe+mI*koY5PD^PiL@2PcZ}`L-Gzj#p5((0_ z9A=XV51@^h04p;lyO#1WJQRm&t$|rGFrthHLi9osTykmg(q@;2(cavIn@6P7UEWxa zw^%SDWxh0n?JZ<8)h+k#K~e zlTY|Jp48M>@k}<~%nRhYmaH*4p@Ra{x9Dg*I7THM#Ss`IRi&UJ`7g&lR3>aI$bM4> zgkLG=(8{15tBKKIL2Wm8c0CfLw1U+J!>ij1MS`+ zYSdIQofvFxyL{^Oh~w>eCTahsL|GSZ>(LzYr(H{UCx~k|U?u z!Y@%Uor%}c+ayFfaGVq(3Cd^&v0zDhPSy!t#>&L4NH-EmpvoDFH!j z*6$tsL(gXkE;9|3<6`vr1KPN3?Kx zL15N^3g(cRX*e!QOJD}{R7i;V)gmj#s1Dp43*(uskxIogmL0)09m7Y-)f2N>K23K21~cD!3{1y_RdDNco(^sG zB>(P64+Hsx#n2iI31A{#4B6SAZQz-S=;n*c;4H_{vChG+b z4WD2Jzd^|`gPa)+)8l717#LDMa+uO2z>6~qf~^`w5DYTfkMeFEYrphNHk-ISI@JUv zQWHZg$=~j0fXI$mucNIv>6i|yuoFTwC?6dm2or$t3YU>)#MH*cHhZlNrcXh+@Wo#&Q^#5hOd~ z7&Iz*xGielRXEe2=NQaDhvftb9=*f}J?3Nsdr3#PCCxt?YiJ9HPIzYL0zC36KDnr| zZ)cfdHXmR{L+@A-md3#BF$9^c5tv~t9GFJxMcx(!*@QMPHaWr7H{o1~k}cV(a|&N_jylZwLvT0G#HT-%h*0q(KTmIdJ^ z-s4h^*O)W_@Dp(#hQf;%PvR)az^+zgQ5YS^j)&nMy9q`M1nG?sGEQ-T%!&xxO=%(_ zqjFOu;H^vL>|3}ObWGH$M%Yh#2OOp{zK`s^9K<2fL)0QuaWY4UJg|YKIwoggwAI(a z&N47PyR}3niC)0is^IXF?nBVwB$5K^VN_{Eyyl4Ub9(kf3VRwRhlRrtJ(GsQQM`30 zh+x#_bg}hi5wU}znIZcPYFXh`xtJ7cASj;bt$FjVeFLlg55H!a AivR!s delta 99437 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%0A-ckakZQl zaPf_}e-t;TKaPg|LjwXeO2>pr3k~K_bK#?2xi4Bom(oYs5IX%DEjI{TvAS`fNVD`o zhH}3*5R+>-X#1$jG#XQcBe&o$9)7%nL8+jD3!oJYMG|Bq8b~r3tcqib6=jOrbajw; zk!UBvot|vlC8SD)=3@5m(KVLx7bYt>vjpCz*tGZTP|5O@ z3+>{IC%A@JC;>;IBz2{(mwO-89*K7waMe{uK|YZ*X)wA7?*!iJ;yuY8KD3RQY5}nQ zEQuu|D1|z*-dIqP_oGqUpIPZsbjOH~lDi0`JGopa;54P z7C^;l5o>jmiMa6$(Mta34?lS!r@>L7%->s7XOjD0vumvC^*UiQ(*F!)u`qM#ykhB> z)dih190C2ZMcPZ`X;Y=woEEF$Z-Ltpup*jM zX@-Ob+>y6Y2NMU%VwM%_cj=$%J8~Yz34ju9@rKDK{;^$)&ds9jeMX_>F)}9~;V<*} zVqU3JUcGjyM=W&RMh;cHvCQ?HV;nA0;)5=4kI-J~lxVy*L3}@k7#X-J>i{>mlIyYO zv5XdE78M%AieQyQRTm1fOI_H6F40_IP3nrrBy|ib9^Ii96)?+|uj30kWp_k)BY@q} z7#o`K@-y1*vnQe9J5@qkqTa}70s93K`Icdy4WONresRnzm9_5dRuYudPU!a*8ycox zOMPn!{0K5pR3LxU3nZhd4Kx_RRvEmvn!&oSSB;ZfU;vsbW>`2##070kr)JBB74O9# zAQ{LXF_vff#;t9NRSNcCZvEXZFhH@VX6$;Mf|Ks%erq3%tRIR)TJr|I#Z{ScxkJ2}h-9)?`= zMC|aD>j7 z`rmOJC(Hj0-q;vfSpQ!f$Hn;HIPU+aaa>GEGbM&Wv!bVcJ7( z=;U60pe!g>=E51VI{d%4Le`#pY3S&7J;@GQu4$LP{|3)xg)%Yk99y*ILjX$y13=jS zlHZge;p114-&Mo7(yMje^8umkkDQ#Oj(@&4LOYNwD$8qg=Io*IdM7O=NTtW72JR|6 z8?M!GZ<_~!nH{C*|H7p9%uo?Ld9X763&)Lb$YR*?6G9S@Vx6hB4U@nR{Y$_eX$qEd zs_6Zm8#~R1-MVRvEMd?Se{YZ!3V_|;^NyTdhoLyFgE&yI$Ej(*5}olJA=jSss~<#v zzxVbJi@gQ2y(b#B*KVm10~e!tJ3Y+oxiV%c{l8Q~jb^yJOR4*lFItyK48xDd7&0dNtcElTEQp%mz3ehh*`MnUs za>2e?KsTA8G-K=GWi9_lLAQkU{3OpJ9iu9ZSA4d6Shs-ixQ{0~Dng`Y!d3($BA(Cthb^SBdD=gEbPuZtU{j}q~!I&*{y^vj%- zNfg*NAhTvCTBK-N`YdYMyi&3orr-q#?e_c0JUW06T^r^L*5>chYP%G*L};AkS*`z9 zx4fA_2|oMBS&e9A82~%p=*_$1W@b=t^wR<;kM~7{IXm|S$Rw#!GhKhApNt<-O%SN% zUR#_NKXGYFXRb`i^=1IWol~RTF0Xl*qTo-tSM9FlS0rJOj=-tW40$}(G7z<5K1_A$ccceNZ zeRAnfe?R;@%#KFI`Z#!DOk1?phboOIpm>MChw#ohq+$&-j$&k+oozW$uLx0?9w_SX|dL~cWnFgP={E zw*hYd2O0@IO%{_KjB`NoSNO-G>n&1ARN>z1m^5UnmNQz{G?wn@LJ%GAn6=fSsD) z?;Xb3;{mKQ2qBu9Gje;j@QMC7-weuD5O8M0>;Lnwsjrd5E3R;pDNnTd`2AeK5If%- zq7uf14KesQ{zFlSIOxtm2uGW}OcG3;o6(FW0U-Dk@@-nFZ2p9Eb!a3cBWQ5!e4TL= z!YCun{9{RPa9~4Hx{}M6f)A!d>%Plc-vn6G6t!Z~v@d#y=AodnBHNU_=KN?c^9soR z{2trFZOjuw;uevlywZyco-rQ^KL7b$5F`1@6$W&U3WYE;7%TW{6_#< z5nxXG(W-Um?q}G%D;DAfGThPdS}+V^>f3`BfR}VR6sLBi`|%QU*EN3=m|t zDA?B%d=pi!c-Kh_qSHo{l z9ofV)-B;RT0r^FRg=`P|1;)NyrD7!GA0D;!mIH@1Vg!-s;wbB;Kr#C$3J;3f-t&B@ zprQ$8`Z`y@hRohnC?E>)3;xKj9}IxvDB|3`eO5Jlw7(!bzJCQf8j(mEW5Rj z6vY~<8~Ydqak|zTq!PsJ%J^%`9z!{yjq?ZFIguBa8F%5-LyN*!jcin_j4Xq{(qjM? z$n#EwaMpzE9Sr=5P2FDu25@&NHVhN&R)!s2xc?icV785VS}GsaQ;lwpNvJ!|{Z zOv#`%5yn>%mCtX9hqlTm-Kc&6kL=cGgckI!(XF1gpPmxZL?C%W@lpVs2=A(R6c@tB z_3!enMH&}L5-l=9ujYg@P3$8`BP}6;VZ=CEl<8v3=)n_*1@IHU2F0#7pbzYWNRATw z5+aSRp^ONu|Q&SHwBk1*3-v+#K6Z4jD5^pv}d{U}57?yXy;ak|{7 z1%0hUA9Nmz@*UIwWi6-DkcyNHtPO3JEu>9LP0wl3xpYBRAEs?a8oC!1eh7o+B`K19 zz?VSgqX)GUIqI_^VXm4EU}hux)0y;?o{En+IlG$K0C>6SvmfD==pY$D_<42flND{T zq4h>l$H9~-WTe)a*CdS*2yiu4C&ipz%TAPbQ$`TJ93n_qzAavFM`Af09BrnU5PFI* zdQUZv4RxTU!(Lp6Hj1P^TpbBg5PKm_m*>=YT&l>ZKbOyyT*jD|9j2bR4oNZwE`sS( z#ZG1Z0AL0dYSn(n>FOPN%yOtfyx3__Nf!_Fkh$T;>S?+M#$%&W+uGT)59LhSSG*>M zl{27NoUg3ej^}>qG8$zMK8vtLn>8^nU5Mn~3)PXsD4{ zdnwSLC%bWCE=bF-1po$QJbD{l(t+v&GME>z0Gh&NCT)79EZAe<8G_>c1BX5*xQtRA zKiY#uked8RdI%Y$isfAAm{}Q2>)~|7`!hbKz?LcG6b*dP^k6adP2!eALL<0UpHHQ< z&INn%<_GZ@Ykl8W#?~dTsQDfv*~?+#X0y(LD&Lr}j!XML2?_`4)l!=~ji4!1)Euo$ z0L)kyf5Q$*F5N3>L$o~GCRUi}GB>T#cQd(PDmf|tekU%k|Mu4(PgJ9_zeTEk#dl&& zIJ6SViLrdJBQ*k*04m11B8;L9H;xfU_U$p3s@j8NGY#BcO5?@$OR(yTOFtD)FS!Fj zImm+|yAaE-TA8v?{^9C3Zxz^hC=j`y~HI`4k^em|q8E_N!{Lz-!`09>FSkqKn5=iifAU`XZ zyS0`nh6Wn>sHZXb#s||1$;9KN;*~*N8~Nz7l$Pc4 zUS|nufs;YI3ks;it1jQ?ul)ryQEcCXvCH^wPLwM4RIxCjgNwRT3j~Jrt6qJBAdpm9 z;nC@D=>F@hO6(4FM*4ZwGHq@JKxPL70*n+|(77^#G$n*kxitDM54;@m0Jw;XMJjKU zneAkw$p;o~wgV39j6IOVcfM1(#9<6=Zwix;n&$Fm185A&0ZsKyJD6{k#R3~tN>rZ; zauJe|pUUT$MA>bU96yhFdhydA^gx4PKIZem!y)i)n))%l?%}C_`duT1u;^X#R>;tGlMOCbppuP3rY2c$ zctGnv{as+=-KERjxT}2|;Cx^-$~3TXN<%Nevm#^s4^XXwbH!fMnM%L~rsG1!P~}Ef z6Sm%ou~nVkr=t5yMv@7YbP@lsHh!^}?P00I%B2W?>5@j@nJO_^78NsZa{aK6QO?49 zIhrf}6n&9s7N}7xf7d$2laSfHT!L36nXnW3lP|cBF(|&lP=$Y2%@WoRE9ywh0ByL zk3%RJ^<#d4TYZiOKt4PSOb1p8Sw(`At1nzWI$`b*9N>-!fSEM*e!T&od{!1DO_~LGRLq4=PubHkH&RNq5ZeW(!LK5=Gk0lVbXvH1Xh(z#t z96jcIpXP7tchkGPv!WYdv#RS0S(Cmy4w~fi5aq16E^|~Tprjf;O%!{$PvNQGXU0~V z0lQTrLAo5}0OhUJK`Xzk;A|TI^sSPs?i1)IJDKmoPuSj=qPw|)%wka6g)1)QURw>V zkXnzwa*?Avl|YbDx#}3(rdVn}n%eq7BgoD<=?uA{tPBX|G_2sw8t+Q~_6thFfTR7t z^1g8);IdSoe;FMdp7mrp@Yb&Ms zh={Axy_sO>!xyA+zbMPRyG2= z)GzZ6D&y8PW~NhT8zpw5)>Fn8?xPj1LSffsLGL+em}9I(R}cF6x%G~wBcE^IxhT&i zwiI9-mgJG-2PxL{>bM5t#K*-*7nVggjG`E21D;AW9WdLL1DPBvmn_2NK-?9(8YyyI za|N}(b|80n&1ubd{2<=H2{$_B%Sd#*~lpa@vRh0jHQs7J@zR(Bv4@B6->~- zt$MZeEz*-qI8>)ePzys+m1Ri^Bn_}*XD)+Zd{ly$T~!S!%c6{tX2V1l-^HnPkTEu5 zM8B2Uc7qw%^4Xt(17r!jAag|Rk9Zw3gv8{@1!O&Z8xf5{3OHhMJxE5#%w9z{XF6nrtYjA1*;{6|PLyPnnMYP7 zG$fl8vL)G+5mIR>Gpka+`<$avy+6PA=k@)5|4`4l@9VzqYhTxWJ&bXALq@#<>;i}ZeMuL>-JYX6L}qbDj%O?vUP!(Nr)A`(T z97>A%cX%(#RqP#z_QFiFeM$1-nV};muo-?jhb(WFb=*oHh^;eGWc4yPJ9Xz>< z_f~p)_O-LFHG_R4YY&86xHqhZDyqsKrmd8$#9e%EW7buB_w@dLf5zsV3e9xgtg>Br z3FqWi;Zc26ugWu#if+!wdQ>g=qlUDTZqLxmbMBQo|1cCXsmYVL&(@kw1tD+l;OLjG zTEGeJQ2o}~ua<>BtTx(s^|Pr!fN9k?;Z*kdclr0u;Jt0N*g%d`r)(^!mWfNAhVy{9Znt zCq@r3wd-`AxZ<+dm6vud>xzc{5vR;bZKZS4=0UB7T8k-Bx^5ah4Ywsc-Z}{-#6jyyu!|%?V3OKZg=thnrhe}Roq@)OVhnGQoX`H8byOXDt{*g ze^}XIc;5c=_Q;Hn3MXn0V;nN{B%USj54Q`ey_g*$i21(wHuoh1)##hDXw;diL4gZn zU%Og=kSXpKZ1}f@PiV{&e}4*#k=fG1|M{Efzh5N<#HoK8K_OUP;rnppwr?1y}B{Ti;d)<$HRa{)tr<}9Ps5L(_46oWMyQrJr zaJm0*bdPRX#3N}RazS;zW=?64Niku%fyfeOix z`u5O@g_@7r<|n4EVSTDPQj|olmsgLAv-RxAouz*%%KYHUmqu}9o8F#mfw5!P(>qdh z##c9NjL)@bXDxAZ%DuhzCTY4vIIo0zJ$F{Bsc3`eLceyV**ymDqHeKC2oA7MZWF) zbnn|%U!Tsh7^j+jt>G00!`s#SqB^7m4!Ty^`6qzikq^zfFfUSortF6$yV-+ZIvlbu zswnVJx*d1r<=ONp`kGHiAM!n>b}-6m6`VV3%2!qtPruRx+2K00GMsEhaB>!SJ*qy* zZ%p*9XS&}oLD(i%B$;)2;hn|#%=xcYR`a>lDp`V6Y|qk|1sME~T~z(r zCMQ^%^z6JAlkE2vG5fR+=Pz-4JU;(<+@>J4Xr|!BPA9|2XiQK-ppN%L8}^uZj`=-t zuv{LmWTI(6RD5c1i_X*|A;-44Fnpn|n6UKj^y$ciwf#o@+R)h{-e(72EBHv=`uITX z#gQDpk8ej55K`~o@;BUay4^efmKP@L;E_JrR>%_n+&JvgO^I~pR=S?FBls!uTr#$R z$&<^JRayGp3x_hiz6gjqDAvqA$WhlcrIBEK#yc!yZFcriN&&?XWs0*a4P~+l6nrPw)9(o;{JYO1NAU4^(% z>NW-qrx=B0|2w;jPZt@#(2v5HS+17l`t(J6PrnnBEWde+KY=WlC(8FQyK3usyy0C| zoXi9A(Xh5;hZU=Rv8^$mcs9~wl~+s7owSu)UMR7nYv$&nT~St-5w^4QK6b6<{;f;= z!VSzJEUUiy8N&7?v-o4rF$iX(wqt8k=xs z-4>XzJ=-*?SiWuu{uFL}d}62{R=`t<+IS?dI9?dSeD@o6I2c8>5x0P2rAivJTVcA( ziNv$trQzJ?RGpXOX;QazF^ktGkIOWjHa|fQC3kA#wKRTP{whbuw3fo7gD29&-hVpJ zA|;Qti=Nv7_aC!*u{E%xCL^yO zHjKCV7JgYd?MhN*CfO9z{G#gNc9FYhzu{GD5$kUbX1<{JDsA`lhp!&5(39Voe96;C zf390#m@H5r!MnZa;eNU=K0%&>tOL-|M_!-jrqSrpZU= zPhWoBoVEA)yU2DkJjKD)D^b#xA>uE6nrJ#Y_H*R3l8T;x5-y5qR(m zG$ozad!CH7`99QLl1!H_PFbGWXkvc0%_=P95v}i;jBiG9Oxxtv6q_cub96ro(Pp-~ zw3~0Tg6i8z$tMN(O;Jqkqh97Q%_^_avsyaK-)zG;-BTPgd@e7ks9!neS@zYbplbcc zAV);HNXH6O>SS>SKeAHJ=1fwY`n0GT9vRU3DC)LQRdT0fkKz3n9HlE~XjwW6aOPgy zUYK0`>^`NnEiI5=`^rLLZ%FOBwJ(qTx8>wL+D|r8rzsp#J}GI^xX{$cPiDj0OQ))NU7-Bzxo3I&_VAa}vR1B33VZ$Bn(+8Z z!M&ekKRuVCMnkcI$tAU7Jca2KVz*>I9Gq}54yEu7kG0jxNPg9(ctv0C@k{@wp?bSB zE&R6G-xJJOT6Iem=4jHXN1rM=WgOP?CFfb6+mi>B<^qqK@Ap(ZiS12~Taeeh$}W4l zDrWiko3X1}ZAJZd9~(}CA3$a}hxghwauk2uHQLGR!TPrRQe~ksYGV_q=drX{gt*nM z;I_n@_JWdPt86JV(G)wQ7qeT{Ue=%MlH|L>TsG??-r$|Ax!0WwyOz*SEi$aeiNU<1 z7jK%ye5diTdR-gvywt4Yb>ppc)=Am*@4{iIc`5HJffYH^=`GMbDC67gos3NL0R}1j zbK0@h4$;K>y5ADaef$c}z0bX*=*&2C`c(fJ3aGj!P}#&NwQ5)KkMxGuo#e5V`77D* zsa@&MQP`lhE_V0O8|Nm%w@)(3#9Nj7<&L-TqFBrstD_JGnHRD(ck&6{9G{9GY0Vd? ze*f&@b|aylT~ZtOwbK1g!E2+ZpR|9?lvbagla0CPV*XD-Ln>2<@5@JEaX+6)K*{|4 z;?UNDhV<@ySVkPOg}%bc;?OO;y2Nf-pIC!9fzmr!kr#E#{4%;|uk942U@l}Ytt1!j z6R_zC`RZ|lzqBlw;q=D<8Uc;$y;A!4@mn3E@Agtl_^_GWzk?8I=1^h*KPXpKaA7Dt zF0J**t91&mfX8~O8d${(ODAZollG$PCahOFMmodWoX==g+-uB=mN+u6_ZGjNP307N z@9|e!-a<8Ir>2#!<-0#0)_cme(p{*;$a8F7=2l{UKa*3H;Me01ZPd^kN2Ql0W5#5HgSwxvrC`q%KT1|8mK$^&DtN_|)+NtRTVCRU z)?i?OqwC)b%8=WAcqfIgqhR)$E5U~%)wj<_355?}{AwSc+J44RDJO*OjDYZq&ic8+ z6SvPEq;x8Jofc|PKI-Ij@!`qw9iOYyix@IHcCdxh)6nmtY_(iz^sp9|lJr>Mq7NDB znPC};iW&ZXF9T#-e$?zx)3$8THmF|M<^C_h@sSFhv62RLWq@R=6k zg~!ZV!rq7t+-*JSD(sn+yY05I&l2~6Pg1Rrs|@%46s8>_wmL?^6443EGwmE}XeA{9 zY{Z$pc~Gm5p}33eLtYl`J;Fu1lC3r*va38=y!LC^>ZIpsvG^z?$n1WyTZx(vBHtx^ zMe5W`1*Wk+%AFCPbEykU-Z|nQJAJ|1W?B!ZFf2CzxO1L*DJSbnc<9O!CAX$fPGz*Q z$I(Gv^XI11tQ!>Wp=+N%HVzcaKCFLm>eR}MNv`0P7dl_&reqW5U%h|Tb)`E;VLU99 zE8jk&I90DzMnKqxXGfKB@c56K;Ca*zvZ@W+W2^NoIV&{o{iC7A!7P{EA{6ZpBk*F8 z8*1$z+>W3Bw!`Vtc}5y1vV9^~9X~bb4jTxbmv5pze`ofR54EZz-+Vgd3(=2f8MA3; z*=Y}M7vCG!)SILvszxb%g!_nz(6;r`gL~=Ycq*+=PX6GcB-?ksTWQ9olT2dlm7uoB zmqqrFdoSjbm-C0*Qu&3{=Wr9N*RsYw-@qR%H$J^mQ(}z3wbz?rMX$tOn`n)+%h|_n z$XHb%He608sKL&-kJdjlo$8?w)5AMcRdtS)IVEqKj9Gdkb5XFr&qr^mAjt;BZ*Df) z*q69g>(>UJc?uiWl;KQpS=ib2@M#u-SQ?AdBGNSOM(k%b-B8{?4vp;8kh$?Lr{p8v z{YkEiI}@+hw{Qh?w9Ni}VO`)A5HiX3EnI1SbpAP<^8OCrwcPa_#WOb zyM8o329+%}&wjV#ZbjtFz8Ks2m>Po*zIe=w9F5ODm*jKyqWx?RTL;=a_s@yybqn#X zl?{Ix;_sBromO**H{~-%7`f_y!{L+hmy)c~&k;){sl5HzBROuy-E?}s;CQbb)KGAy zbPBd?_C_#in%}Wazm$lxvC&KV3Vzpfnc6bBQL2E`L&PzoPv68_mVcBHGB~i_?1K-U zU^eAE^Xy$|WAod4YSx(O+Kx)bPjo4BpSUSZze_mMh`4s=P z?A#-Bzu72m{_ARYDF@>tcONQ=2xU7Ia-qdAJn#FXp`otJRF-2KkF`n%a&3r4(%xk*%i#(4JWOQC3!r?aTx;59J zLocsB&}AsS;S&dsHhnd%38d!+bg4@kT|~PQG2SY?m6W@y07b=FU3q5tRikVsje~W!LWF zTO6~k-?|jsWLMae_)6=wl<2zTt^1ALMV8n{wKrk0JP{Q;Sp^FQa}0ZE^N#rZ{d)!O z?=Tr1Qe<}vzL(`Q*ZC9?IPuM>yC|evGR=3k$Cf!|=WFu00N#X~6?OXr;!C;{CXZN6 zw6K?>Rpwa?XmmP?I&;G)p)9q6^1Zku0X$7!=&^y8j8#4hvB|QbtoNN-Q@5S(D!$dH z%C3tMdT`9MIQ;Q<(T9?+aiRE($ts-LVviQr5rwb2`4Tsp+xApFK#ZE5oz_p=VD5z! zN_RG$)cf8!!twU;h}rvy7~>UN81w3(c+V*zV5`_T1YNmNFGD3E%X_ zhcnb)6MUXhzAu-m=|=3lU1wC$<%hcs1tM=$XzfIGmC;`l4ys^x-`;0iEo5F0?eV41 zk(=8G|CIddBbJuEgNO1Xm@nrRFwSs%dO_jJ&qe-$232FyU`e&_b@=0j>WfzA)hE<< zqIu$So{@>2;z_u38-yK%7EM7zgQV_XiO+e;sRzF+?Kvy$Q+b}5{+NKO-fe6`N& z#*mY=)5k*!xsOzxyw%!fXe@7v43N1&XO*B%T%<~eoF!t{O{79$(YKwU!;$gkTljhqC?Sp-Lq^cKkMu;PwQ6=Znh7MEr{2V z!lL#eBi5WuA>8(RX_hz?;~#TY=N@6Tq?x~hH@`ts<>vKFRC>R|X}g-Cih_Fips2&5 z?_I~kXYB7F#Kt*T_h=qBq^cCNiST;lEP>^(KCa4EoTvUF2YYQ7t@mkt5%=6YgvUdz zO5KCWY}eIqO49Yl`rlDHUD9^#t&iFjwbSa4SkDdWtQPxS)S%OEvyJ_DR7fs~=e4($ z|4TQ#(nM3B!X-ZJXvC!${fT|@`UNs?4N2Vm9)1@B&4LFB+^6! z8_y{ORdQP%Ive}tpw_NAL-%8xrAA*%CsH!d2r2xL3y$a13OQp@;(KG$%C0J^-knb| zgR(OUYOmB<>aI`mcu{p6$kF?@S1oE$La^@9GH=BWyR2* zOV@Ho+VD0ea~B^n1g-WK9A6+NIqM1 zC7n4UH?EaoI5kW)K1BaM z@oJ{zoFA(mr`2sMtyCQKN6ej>Zp%ZrG=%216_W?8GsQ9Tjz8L&P?S4lwySVi!uqqw z?%)eNV%9fk*&_$7jl@HjAD2dl6&Ilc_k$yuxcl01{EdTRi!_S1nTGQDxvL^l`Idh7 z*w-TOat!;EyNytq^{iK1m*re9wKQw6f9gn~aIbv`l|^!LO#OjlF{36c z66c;aQ(NJMj=nKXyvmCnI5|-nlrVMfAZv=xqJ34t z4vTi2b|FrZo7UY5!O_&|q)GKqGRDP>5~H;9f&2?6|0`nNRr_R{9hU?G8;{xwnwp+S zEE)~|5V7`PzlZ%&=!A3e(DYz?U#DK6|HbzR>A*>A+*c7z&T zasMW46?oy}ht=T~Cy#fDv};Ej!i?je6i=4lW}Xc1xjk_&d;f~5SoUOX(PKAl%@aq2 zA9$3WUl0huXC?^=DMTXh4oXd*Ld>1_zQ?#Z_FL(&u5}eIXcP-xf8FuOYB%4Un`w{v zhx6_Z)-#tyUT(8;`qFFCnD|lfj!1TKcHYjx=ixJXQanM*>(-urGaXr0WD6{=;WhVc zzH~v-n#{$zJ5LGjZtb|KU=Z$MChKp;S}=R8$~R%=m?OUUyTgHp(NvUBnn`6689f)` zS=+aX&>w1)1rpY^PWZ`^{=ysV+rQLgf59ZKEABKoSEXgaEaz~Ht6VH|2d`U4)1z|& zOUiv>>@WLU&)muDT@FuB5UgX?_w*8Z);BCPmcln8>2*uL>pM;E{b|0s!=;h?H)zzW z7socfUmsiXz~6EjT|b+8b&y&!wb;_|M&b5*C$IAFNfxKgyMMOjU{jIxhC!2>Oryi^_UOsnK8KEN28CTd*aCz9t zOZ|se&-Wd^LMM{`!>O6{238?A8ng`N*L?sK0<(E{V9T)?L3}MMnrtsG9Jn7s;}zsX zl8~+6nS-W}#Z(%99%h)L-Rs!=#(}vPi4EMCO;GDLy1RVnteQ^gT=cBcG!$cQ8>AK6 zw3qpLH}lYk`3zqbaSh6i*!yxtg^gH8R(08u0qQ4|>Apqii!ROuENkDKy>8EEQ5Dgh zd7p(ouP=(ajWzc@%Hf{ExEJfi6?Vij-dbwltBkMcVWB;;<_}KzL zB7eO)1cm(d>X2XGRX`z0Zw`U4DS*DfS(scAGJW~6t25YE8{Lm8YtPUaBc~YfI{sRIW zT&fPSu%iE!KMF(o$-fIGx+&b4opn9M@2+Rs)uv7N>@hHCWfOohERDFEJd!yBoSn(f zioNJrLT}hE7o-^Yu~$oW_J``1O$Kxuy?rga!Ke42(^+%;)9j~<1q`y10mtbd6!Q7a zhLzMfd^q=Pf5yl1IU}E^H%{O_S*J^fL~1|splA2_9Mv_qF)?xof6K&gHk&TB!`W~0 ztJ|I(So~_J7rF2mxsF7)TW=URd|JOqH)Hgq?-o`GUy01(?MQnOCL31Gr4(vg|6$dk zL)|N9*~5xnDE&$(g$`oS2Y)+6`Jz;-Hhpu~Y}uq)3yjM+_EJ1wOItPm>3Y_aD|OX~ zrw5Y{m(A-B)qY%MJb`y}^m{hPQFWH(N{q_kK6TGf4SC$d*HkuXJ6oq_}6jQ5G~1c$2BgM{8&PmGVJiIlbEpx znsaVgIct_z^8!2dJ%#^~YS>5<*Molh+Hy4-^~B4DVbA(&jtuO>U%QsJtE>2YmV#gc z&b!q3wAdj|M>>wE>X&aApOlkFAPyp~G$f7adcXO&!t|D`+nwdWZAJ+NwD&ICds)+6 zo;_q@K}w$!>E+rjdJ$&IuU6o=VnMF;Vt*V>!Eh`fpHec9w2aiRamg@g2*F>iMMCp#~cwplrnd!|Mq`GcUdQ?>gzf3iVx_yLoBj8wX<@c+$9F-So!o;Mm zjwI%_x479Rb$Mw)u@?$8ioSKzBYiK6=P~w~I~q0=QWhv0+g|$Gj^97I!?4Rm!wr8;QO??` zk`9i!#{RBf1$%SWL#X-CEp_cqav~d9W$H($1T0dmEQ}6nx2Jx$xCm4;3CUp*?nN(nq~7 zD46WkHE9p~BC}OTy7{8odbgYtyKPv#o3~rK`l)1LPR6gmhd8fupS-hI(J`VrT`VSM zJ~eXUq|5t?LxwYM&kCJF_SC9av)2dT5kV+U)b4(gM_c3lNW7{!*7LUBXo!u9r$amb z>brX00Oc2}eDw6T&q2W8_Vf33wDtVe;Y9rm)d(2`27aJU3ONk;<`~UH)8PXnyN)o@ zirti1SgjBuzu%}d?oOt^^OVZNW)~Bhoq;Hh*_J@YfG!Wc+^cy^dsQBA%zkIOI;cwH ziFV%k)baKQzov?MV~q8v?M1)DA7P78u}@e($-k|_8rkqM(LY7RXx&*W(-RqLiS0Qq z?bjAf$D#amdw*`_OBa@4L${XdlRgWuqxa+!pSIoIlQK>)qysUF{rs930{c7Rpnr0) zCE=h+?*YemnRQ;|sb(DSIcDiF#IxqRb}Go3BWYKow}W%M1b7I4sdljzUAA`^THHS} z&E*&CkvtSWmdtbEv<+Kxr*L6xtGsdR?Ppw~gBtylpMSjm!vEv>%`W{N#SDX=)%5se z6E4!zKV-1IUPOhs+10lmk@0j#-GU*_Ct1yBJ9?ru_uyTG`R?!pyfUHXGdkL=^JMg9 zs&2D!&IP0Ut}46}{ba1E^v&vg6A2cg$%~?N?XOIz-zOV3TL}x-Ej3TyO!3xeo7$c0 zSlanL=rc>xmkMpc;7^j&Gw}xCl?HvXJ2dg9loXD=dK#0SSKgfP3Y))|Y*>+}+GMZ& zb;|v$QL(t~cq*>xC||drbJq-e540e({ofuv`|hB4o5bB{2a|l;RZ4ePZpw(H09A3> z+91QH1rF!tG=(bswCSAv(R100%|kxN=a+77uMfq1oM5b`&~4Kg7P2x4;<)yK+3uxw z{2kt#+TsI`RH|GpPP06F!JRUclu9BzYx;OfGGtzuwk`Nle%5Y1TDA!HA6deeWUyScR;gr#I`VNx z9 zdKEnzllwJhm6(rRnp6C5Um@5TF?ZN!&L;Pw?y~Gi<1`SR_iYT(3^_MH+Igp}$j92{ z)45_zS|3}_sMBQcwAR_wcB7A;P~S;^t|9%DP8y3K+A0{r8_LML91o!`&#!z+6X%JS zu8^4ZfL)=r&iq}il*jcF#?Fv89!sZ)sNnrTHy%l@ccbg#X;@j@IR0Un^%9*}BJ=G- z-AzK*e8g{GHu)gSHJbM^<@m0PFYKN_c|4MMGvjpJ;u%+p?<3S}SdNu=txheIdr_Ee zzNP2aEsH}+ir?ck&a^CRSlX8tpKKrGIlQCKN)s`LH>vBKr|`bi*kqIbEM)B1_fhA| z;$!1?`s`?jR|hVB>fqb&E+%`XvYpRIE}{MWoD#*wPpt)E;(1oAf?6I|skV8Ny?^*& z^v2$VcPqPrPkBL^bFgS6CmSz4yP8-`Z5!<%oz(QD zC0lnPQ|V~9L!8`u^ZRz3%rmpCjnPND^=)Y9G2VN39^f&CSzX+EX`+##fV@8Me4SyeMx@|UTG?9u*$C%8TCJF&teOsbKUKWb%nA{$SPeauw)R>r{a zb+lP2v@iNuD2t0H-ZoyLf$7{#q!r)9=k0I9R|0mP*6z(f>>0w;h2aLwaW`G-D(8C- zOR5i9kn|bYy);k#!z= zVEioOY=1xhciqmome6zW{Lai&~QjWNgfqWNKs zBJ_>NSgUDWEXBnyDfp`Q0YjeLRl56V^%G^sy*-CI%8m7tAMWtH_qE|#p?>hg!Gjb2 z!`QlM^YOrg%mcOWoh}Txj-@CheeUV66xz~f-Grm01-0Ju$eD^){$FjK${LA50JCm;O1vTrH z&g7SQu8uY#PrdH=YJ6{8_E7t`-jmE_0wD`_jrT>RdXn}9>KN-+8Ob5E4~|vL(%l^^ zD7*}X8Lgq(jCemrirsag!H>>l@RqMR2Y<6zUN(P|b=UmEz=@cThKsVCZ6XU{4m}xJ z9xn}FeP-c1Z1lq~EZr1eBJ`)?n^BEbXBtCs6b`y~oT zKaFVi++LJeGM281sI1f>@4ovjL{ycx-dqiYey2MV)w-x{gSyAQNt|3v&-~K#Y_vwo zx>9!rnl13OyQeaxe0ZP?{!G zdD1Q?>7R@Vlob8AmT}&wD0jCOPARY`(&rhr(SR-|DkvDCVqNvAcr>k?QJVF+s$Gj~ zdHVz146#uE2)XE&ySOLZ4dVE@#Ip=Nv=15=uDit=j?OU1*<~5?dQl&V;}VOhc9JJS@z9cagTG$sT;D2|8dw4bKHja`VIXn z-*JQItjyJK9mzl8z;$qgFUqBHTdkCF+SJu}|0Kl*Q_MVLop*A}*kUH5@cZO6x3$}6 zPDd=n-J)>W_+o!+?E5&`Ub)nOLA{~amZU6q1HFB?OOXc79#Z1!3a9Y8625KeVMznx z2?vzmffrYw&hIvDpVnDnyMA73MqqK~LS4_f<2McV=3{0YHKSzLo2Re_M;u;NFm`|c z@ghy-ywCnu_Z(Gf&IPjhCp>$3!}Nue+L{McRr_9`Q@X+6n3sBbQYSyViH>x>_o0nk zFZXrtwFtosR;D-W@rN#TKfp8PxRtVvs!1e?HY#(Jop>93;Y}VxXy$9#*zi6Y*r;&T z3cYQW^ZQ(>GMqJ1C6Gln>3-*}ZkM9hSrzzXoH+p5AHBt7%Q#f6lcksG* zU~zlQt$-kMUSG#f;c9YgF!_avOUYW@+(bupd=*-GwI0cGtO^gOnBV<&^#l zYLB}`p13vE=)aQuaSBzbRf&J2`*fnk(JFdEsQ%-Hl3Otu9-QXYmnQc6v%7N^Mg|J% zTfIwhT-qnQ|E^w$tiwb7Y`El&kJr~kA?L>FJGM>WJ7yQ|M73OO!v(T^+|Q%i7&>fr zJezuiRb#S<#k-;0B;bUy_}bm4Ty|%zVLdDhwsOLk_G5bC-N!xh8b#Oh@HK2+A>t3L zwLT5OBdQXosi|G|dYvj~mNZV5u77k`ckGtztfQBE+d=CkTk}_%_VX;0O{ojP-zOee zD&>igf7x~o}N`POcq^2v_8m_iJ956xoFjBi5b=LN^vDD?BNV-WW9#D!uD}eB^T3-M|{H7X8=enMJK*3ZuS{>z`LncQu|0 zoIlRKbiIsNTJHRH)W^um!7;}mKViZ_+K5I;iAGw@>x94K34cF+3;~Kb2Fhu|69ZTb zJY@yB?vo`v6Zsb~@h57w0?Q(az}yJrZ)lYhC%pXqEMy5!Pa4tSkkv9~&>o1->i3?q zg!*-9B~MNB;iD$2n`D(8UzXjGg?60Y+G<6kiVFO z8}c9yc-{&!S3zKYZ7KZ|DVhX`z!3l6iUR$MnN691vxI;t(G zpWs*oQ7rNZ**k2U?To3d`(19F6j?hB+Qx-U)!nUr*{X?!C4B0^L zWHK07*BaWrRrCnCzx9ojA@U}VMEpYYlU5{x$nKWCkTSm*+N2eUAga#I7WHf9_i~cD zK&y$!1rkY80uo8mFmh9^NYp>u5L<3rEd+@oio^|v`9~s14AC04Qu&Vpkr<*xaM*uW zWB*x=`DK7VdBnmI=8!KLQWl=FgIH*=zhnp}H9#zIttoU|47q9We|Q)2A5%x-WC*%- z6T$u3<+o!Xi7)Z}gKr$X-~d?@9D@ai{H?rSGL|E`0#c4B+pR(%zJY{@3pQv0j_|@6 zvVg$mfCFYZl4gFJEJ_A0HQn5Y3B4q|2@JutMD954gG+~7wJ&~69=zi@!UAvC<; z2vCyf*n$zryw4fH&N)J<;8&~w5HmCCZ&L>z-0KXv!>rCwivGXaL7_>6qBhlz+Vo@8 zrjAgU&3P=*#I~@HLSx`q7YK_d*_F$BL~S^5u4!;L0V6P*i<4yjzlPu_{fwI z4X|>O38OYmniMo>kej}XlqDG!&@KrMN5YSklOw4aB|`#0A%6Z(0zhs01d8MXG$_<2 zJQ@iHxk5*Pbf36F`D8fRYCkt3JFJ@+=9)Mo22)jI}?%o+!+P;ogu)60fB6S5e0(6!XktTwQxxBCx4^~9LyRH zCThbWP1;R*2*kms!XYL2@F_?Yh=$@65Y4kwkS4fJI0bpYad=1)T=U_YlJ+!& z0s}RKf#}oFVQ{T{8eDTnK#JgckZ_$FK}2RAL0V)9#-|C_{gIH?Pnw8w0ez%og49gT zKt`gQT#%HpDHoE=NoKgoIa(GLC+LYJ^Rtl2AId_LEO}F8#15R%Pmy8awDVwL)mf;P zeiMu+8H@~k{w$cd8wHKhZcY#-;~fPgL$t`J=b&l`2gjTPTs)12%6_gV5{p5=d68g! z%X!G{Cl@5dB=_1Rh7>(Ei2?T@ZbpMOQ8AD%-yg(~#PBT7$=lOpbck) zMbeNm1-O)QWzYXAAymP0`Uop#7JS#a7-N7 zZSWhk3-(Tcz`HDD5K`bvE&K>9N($r(EJ)YhDIjO@#Y5b1MI5BgioxNePy`4ZLJFjJ zjGUYl5({67ha}CL5CoFZXd(=_StXMINyEcnjukBj zXdrS7_yP!IKp+ig#aQWOVk;VG(l%*1WpP;;En~RONF>#&J-X4 zlpI=0hM-sQ8$;l(AX)~9k_2-p6`;A20vwT`TP74>il81vmq3d9moJ$Z7T$=h*N+>k2Jpxl;E07pbfN(i9NlLweK=(F;e}v*8 zRv38+QYJ|jB*aZEA_(N6fPjG(iIN3tsNniEXgB=e60jG9tduO#d;vcIIZ!Be6VN6I z0P4U1P%916*abMm5>yU=!986m416sO_~Sl~TGAb=BOGAu!S=9d9X za5_Ll6fnVfh%Sl(wgC`s9}bDNaYxT znxEMWfyB~)KSHf4y_M=;q)HnhP%_|vO)O`BCo2T8{{5Y;5GWjxZe|3U0Qu(xNLZpw zXhK5%bDX~b+DC|Z((rsAL=T@WfczM@5JwOPKudLlu$qvk|6HvG#^IF$Xcrj(It4y3 z5=!$wVeZ|4#2EkGcnJ(|+1UIh_grEnp|27cS>@A2990dYyLn5%~ZQ^wa0sJqi0q_~Z@Ly5`!@`9?YNNNIT>y(M z;hMFOc%4PKHYkK>;jmI*iWGMsZ8(lJWqk({)gksie)9gG+yO{a7Km2%ZyO`J&=xU( znup*UDZ>ZoC<$T!pMhzK!9JxR9yfG>I>x31l*xfbkOdQtP+k4GcDw>`?&41NYcbzl zz$f9n_$Qn>7>4QZLJWi=>k{FE_Fah9(dZAg{SSQLWN8qj13h30hXx;rHRb=rA@Q)j zWp_C^(G8MtM#%kT?xa&FzqF~DIX@^#WI*|b01*{|0ior@Ne>SzC8eJ&BjSmED@q~( zTb5!#3}=G@L-;8~;Jn*HDD?mw#w=;;_{u=spk>h>n>Je%co- z2YK!Ha#~pQ9&`k@r~&~A317SiybZ1bwam&rNEa5W1_1^MAFTnSHr3ECDia6;Gg}58 zgMt4*@Ams3b^Ll1gp^?kTpl2f6SCf)6o=jirXF5HB&D2ieXj=EY4$&)10)hj1O5OK zkUIanuOt6TjD$ueL9g)eeTW#52m@gc{^bJ z6=2*2jKgjZ2q{wzzE1d%zxiRJ7Hs@y<|b^wQ3nLgT?;}X_;3__0NMa$2OB9UJg9>X z9omv7jQ&>x`cVt9gQgQ91TrIu4Y@7q0Vi6*!52*Y8QGCw;$=M`)3hEK z3mWEm2(Hse*QSK)rXG+Th(YY(L+G&WR(k(SnfA9@|Dg6)OZYFfV2Sj@)D4?j#iHTD zhJW%5I10dTz%YJG_We_Q|CKf*2o>P(r~Ume63-uzj8tyyCP*0hSC0WSF-fLL-?+&H z7$6CMYc3}kA(-H6f<*DecIl?J{_ptMY97Di?(gCVNxaLk#V`m}0*rnPj9Ig3lU&eR zCy|T$OF3XdsTn|)Hvu1)frG&{o|vxxpOgN(p!p9{CklPDLZKzLl?bxLkxFQCq}*>O z^Zlz1BLFS6fLiyj;0%T(TR~e0DMyIToA#dC3LV0e?iKu>@%O)oYJXKKNK%`7v)llE zB>0LO#DfPJ@XuiT2N7Di0;tV z<^lLmZGSi4x_`|4fNXCy)vn4(|LV70}=&ehPj9dUmfm!GZgHCn%LFz(+E)9NgCp zDe!<>QN-#F1FAeiGYbtGErh$NSkP;efv**Sj@O|sNC+0y0Vkp}1RQZ)5HBzc!fG~R zj|bF*7|^aDblp%WP$DDXZ(X1&+9aj48-Rm0$7Yp9&x0T|7r{;#4Cvc{|52c^i2}Va z45-JEgdO={?H)*x44gKJ)L-u*A?Sk?d61x2gaq|Bp?ykd3!y=~M2^r-1+5emtk?(f z!wS8?G;VeQK8e)E^a5rvBxZR*f&on)upIOn3GFL1XdMxkgR&bX3oG?OT7)P-UqG><@N zGOQeFZs#b(1NI?qdT-)pS7+mev4|jU06Jv-frN_V@DT$HD?{2uJ@3 zU``rCkRYrz0qr8k$;rYOUV|Rb=?Mr6wyT+dz;`@IWHU_ymQ-E?ZuBQ1129Qsw0sgU zLzH0uPbpQu0OknN8-YQ1;RSe_0f*kC6-}Vk0k{ou?eY{P0NjQs2*gWptCI|eAxWYm z`iz5brLSMg!0^md`GLh=Y4-h593|!-n zmJ$jSiZWhg=<1#sXgi^QlO#p9uln0J!ZYJoLUpsnKvCcx6A|{}cj(e?up1FphmFh< zz!Ku;AFx;w?Cfr`TsEK;0NcY%damcU?g>o*BE}oiWU6F95=4xQNU~mlk$CHDD=dx# zD}p8iU+5vh!iGo5E;Idos|(yHU2q`7R3nVZBp`U|GMNbfKh~wH>J?-m!!JoV$KyaJ zJl}*&pYY%XQQF(l*VW5G+E?1& z#n;hM+CR`sIzT#DIz&3e(br3qXu2A%9*!t}a6{uSp~!+flt6~TgR_s4(&kqRg0fCt z3N<(q$ksk5C!_34{}0XKCHMpt)Fo+6te!K-#wl9A_k@v5Fsr4leWLZzkU zOGOd@3A4@7qCMajL* zS-QNmaY|cI<}{vPJ2^H+Ki=})53EJdITj~Ms-8pJZd@4W3EfW>DYT1w?Z)K~fDZIjQmf*4XdmdAf+v6NNS$$9Hg@9j$)E{u@ zWOe0S(9H2TgH+VKE1K42mR!_#(>m_Fh?rQ$l>(9U;-k)zba+~rb=sxOF=mmh#$3E7 zvFPX`r|&-^peR0C+}~Ef+73S|Uu=3SecqB? zeV2R8$regG`qG$m&4bL^En#-FrOBqcEzC#G-)ec);{THRrS?m0pJ2g68OF(!nGP@V zWO8~P>y&tkHx#^h+7PjK0+r|ck9dCGDSxKEDUY^bm+iK&ro;PU&fBIcNiaUWF2*(+ zd8|BPPXBIaL=8W_GWUGxx5HDH9aR*T`FGhcCpEK%o^ec6~!2h`smq8ZI$gQ zcSI{k-*~m}hZ2LKOaBI6ufOO-M0MHalFAEwM|moq36H_Yo2LgLQ3ew5L5aok`gtd<*m*rObB`i&J#HE{O$#$FBK`z_m~1J<)!Je6Y> zj)vGS-oG$aW4?r2Iki!mqTtKn z$;bOCkqUo6&qU!)#NhXj;T9G~5oX-gh_t|WInSccZHV+H=FoWc-4W2vJEr1C=^)WO`dIPa1CzmFme6J&&5_}Z_&R} z|4M{Ka(uv<)!C(OENjK^+7nIryV_@E{8N_WxeEgt9+tj|)NrVnV!XcbhLVouYpDr` zldXkF+SR&Ck_J15Q1?R`z`mXkSVoGNm3v8dto z`;QGOUY=ez?$+Ep=>B5*D@s2{4!5Sgd-r1E_DR#kgoBnhdQTZg9%^eEv7(Q|QJ>ip zwC`koTVltBV*_GZ^j8dCX&YX!#;x;V&NU+#_Ho}WFq~H2H}~u!{;fg+q)#vXn5YVE7Q?2 zny5s}G;4>P-4-){Z(eY$m%`+xV@7~V3`>H6BTnq*ncH7GO8Jr+_|G+Myy~H3wYa7h zd-sT^h}6wQvG$`KYzk(UPBcPzEZU#{5_#+4bdA>Fn0boPjsVlfg;#B%K{N%q)(r#R z@AUnWD0G!#sg7lrR+XvNx})HSE|tP`=@lc^6Jw$5Q^#&L_ZYuj`$To4 zrnhYX?Zpal-FRZr91?=ocH(e!JrqGZ6$-TlasdtxcAJB{P}oGLK!*6J05%J`=6#W&&9 zv0M&{oN$J8|4r7=lPC0}J7;#+Je6CiNKwGWerVMS;tKC>qI-4B?E08ji~run5YtBI z`rGlS7II;m+1YpXtQ(zDtXZcs=clMA4JI)&3^FY*JlDiBX-flm1Ur?^88S9K^RE2l z@%53WVsz_s_I{l83B9vIB{U}Z=CU#h9{TeGj$a29S;j<$e}g~_D^+9V5hb#{QnBO_86^- zE1n&M=qEN6WmhU;!LYcc?&sX^zA2ivxS)wGE!8v)1zF@<-V5w5721>=YfX#xk}UdH&{;=c-rN1!1KlUCJle5+=G8xP$34E{o%YY4 zp1f&b%9d64e)W&re{*sE=DuBjIQPK9T_aE3^1DC3(st_mA6$KIWM}*Fg!M>02unedg{@EC@!P?|fq9jt^&CGk^Q%DqneL{FYbW`sn1@CtGJfJoWO} z2Pf=op}5|DEm!ad%hM4e7SkU^vjG<_&*yjoMG~F~Y^p^b39J)pW_NfS0XP;h3VGm;2Rk z)3Yw%*9X-8u|;V6GG|}>QPhnS)?k@?okW#lF-h( z2J369&c{(+U_#nT4rm~G*=~l^h{PPY<|HnFtmrrgJOFuZe8%DvP;NCKAa5fv9fv^j zs?>}pB7hRx1$nD60VXe~bl$(BXZ>Kke`NH+jMDSfdsRofxs9N|tsJaZ^{1BiuInG{ z@9DdD!QCJVbUL(GwfTkqbE1_*lu=~Y?hW=;1M6~DoOyh>SG6MvoV`!oh$Z*+eQH{( zxs|DO_O4vMvAo5g_x7WzY!Uf!>6zz%3TpxP6ix4gb*dA;foL0(?mnIV|P?EVS8 zX9x{Auc6Knn!zliENDmv#Tv`FNEP`jgPe;r5+(V9&WNynYvx$E(HRzScFtNLkSDL5 z&zh-Wues)avq6DD;MO-&m}$2LCO5C<&ADj3yIAiDX*DClDBS!7LXOZXG{q+c4Y-Q! zWq4@Q8VgtufFrAKDFE8Ed7*jMDDBy-3e@yltygK&<~83L32oY}7QfOtP``h0<+{F^ zw3~48o}T@gy58LUpo9ExRkMbiLeM4(7L+|@dT62;gOiuSH(D^u+$r>0&;o^Wvy1jp zceOECC+W2Z)x?B)$V!x&(x7Y;sQDL7%S^P*Q66SXgX%b-`748xG^922L3OJIQeCk+ zjEu>;KI~A^U;Y@O)C81>@-w@;Y%iHR?^44!2?Z@J23iZn;8A@Bw6NI)nr*uL#X#qb zCQMD_FMAqIn2m@t|Mc)dOqyn6$KfreG=s9vgcibVTv~L2(lOe;s3FVcZ2k$u zGCSMc+0zj0KapryIg6iGA1k&bqd=Fa_8YZb+Q_&W8Uiyc2L98Uo_QL@{)e7cZDbH} zJwxckaYg}A_B&}V%yDWv3^SY>3o{yH8Y60^b(}E-z9AV)7628Xb%G=tgWrA3wW z;7H5l;r~3N=BjJ_u3GIL$DidyvtT#p52-4H9vM<6W-N8XI9L|;cDZ_KZFkeV^PGHGg!xVGYBM{^zomoj>H*dz#c_C zi~+YL0t?7_F}jFe-Y_hd%J4>lbP|$^hua4*P3F zC1ExeI&$oxM^P%H!^YxRgsL(d!}c@Jsr0qrZca{A!_~!sW9sIFsRc#04uuxwz7VBj zl`{+uoZP8J=i@4pV{m>H9$0i9uE}!Qlafp>+4nLb>`6dRM=UIkT%mhdD4{fso`o<_ zkUd~nJ5QtHPjuo5EW*9yD0Ib0N(1q6$7c%-Vff5w?Rilxu?ZcRT6z{&9x>_-VYzKg z!*cNb>L9(MNWbl#^%U4G3)%a}TgG}6W(3NreYc!EWR3*oni0P%YjbZ=VOI$k|x7*w<=o;Rs z2wtDQeaG6%rw7KhsZR_?HW*VOg3at|ik=x}YA+dP9;q_Sx4an{cL&$u^lq6EhV&$u zVKFz_cnhT|FDcXM2oJ)9&>nUnqtl+BP(7~2tT9=9!VxxL7?k`9EHl-h zY-k!UymHHyG(osgIyfl{g9hPn1?KYr19TxXfzT>^FdH#2?6-1z&_4nthaQ@iJBA89 z9-a7<1K9w_p4r12)vUg*$&glBZ3!2snSb|<7l?g)TM zZE37uzNjNO5r$zxkl1ohh0R1&B<0ajC)_T;d30AFC_p;o(m#(pd%uS5FS#* zTEOVYjL}iezrg4$h0)0b0L7>x@_^LzIL%@v&4_>kr(AqK!7JAcFd0x_hS7)7f5R># zo0Fa`(sZvBwQ8YCaHt-|_m^g4CjB1W8Kg95MkZ49usq85#oQ>VhzM(k__IT~T=s?T`@oWx z29ZuCZ4KfO1E2Jgs=*zZ9Eq??5D=BmLO_JgHb%m*j*%MU!qDNNA(Dhqgo)@~ba}+I zfJK^siIb{!VRmg^2;I!o8=)ayJc>g?NGPR-Zxmb6HJ2f_fGDzORu3JAJkd&M*U1sP z^yLF<#5(j)3eT}9w2o2uFFOCLnj6xlr z9%`I4HLYzC8iJXdOk5Kn8MGTjCwTWNF_hjjVen53uxX->dH4zYi^xzcE~N3S69{AO z*X%jQmp_5c7!-Bg) z4Bw#3LqiBC31iPr3^ zbRrB5B2B*E!7D>Z6r~u8N%}9;4?+ZyTo_+B^2p*&3+FE-6=uP;8;9I{!^k62742D3 zpqYOV$}kYA7PkSQ3*_F$=O@`>1)cejUwILdhn7)OfEoujpCB{^5{%hA+_ErSi}HLE z)*BzpVIy|km