Code : Tout sélectionner
InitSprite()
InitMouse()
InitKeyboard()
;SetPriorityClass_ ( GetCurrentProcess_ (), #IDLE_PRIORITY_CLASS )
Global dw.w,dh.w,SPH_Z,SPH_NOMBRE
Resolution_Choisir = 1 ; Mettre 0 pour tenter de récupérer la résolution du bureau ou 1 pour toujours choisir manuellement la résolution
If ExamineDesktops() ; On récupère la résolution du bureau
Ecran_Largeur = DesktopWidth(0)
Ecran_Hauteur = DesktopHeight(0)
Ecran_Frequence = DesktopFrequency(0)
EndIf
If Ecran_Largeur = 0 Or Resolution_Choisir ; Ou sinon, on propose une résolution
Resolution_Fenetre = OpenWindow(#PB_Any, 0, 0, 300, 24 * 2 + 8, "", #PB_Window_ScreenCentered | #PB_Window_Invisible | #PB_Window_Tool)
If Resolution_Fenetre
Resolution_Liste = ComboBoxGadget(#PB_Any, 4, 4, WindowWidth(Resolution_Fenetre) - 8, 24)
Resolution_Valider = ButtonGadget(#PB_Any, 4, 4 + 24, WindowWidth(Resolution_Fenetre) - 8, 24, "OK")
; Recerche des résolutions possible
If ExamineScreenModes()
While NextScreenMode()
; On filtre les résolutions :
; uniquement 32bits
; largeur supérieure ou égale à 800 pixels
; fréquence supérieure ou égale à 60Hz et multiple de 5 (pour éviter les fréquences bizarre style 72Hz
If ScreenModeDepth() = 32 And ScreenModeWidth() >= 800 And ScreenModeRefreshRate() >= 60 And ScreenModeRefreshRate() %5 = 0
AddGadgetItem(Resolution_Liste, -1, Str(ScreenModeWidth()) + " x " + Str(ScreenModeHeight()) + " / " + Str(ScreenModeRefreshRate()) + "Hz")
If ScreenModeWidth() = Ecran_Largeur And ScreenModeHeight() = Ecran_Hauteur And ScreenModeRefreshRate() = Ecran_Frequence ; Si la résolution correspond à celle du bureau, on la sélectionne par défaut
SetGadgetState(Resolution_Liste, CountGadgetItems(Resolution_Liste) - 1)
EndIf
EndIf
Wend
EndIf
If GetGadgetState(Resolution_Liste) = -1 ; Si pas de résolution sélectionnée, on sélectionne la première
SetGadgetState(Resolution_Liste, 0)
EndIf
; Affichage de la fenêtre
StickyWindow(Resolution_Fenetre, 1)
HideWindow(Resolution_Fenetre, 0)
; Boucle d'évènements
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case Resolution_Valider ; on valide
If GetGadgetText(Resolution_Liste) <> "" ; Si on a une sélection
Ecran_Largeur = Val(StringField(GetGadgetText(Resolution_Liste), 1, " "))
Ecran_Hauteur = Val(StringField(GetGadgetText(Resolution_Liste), 3, " "))
Ecran_Frequence = Val(StringField(GetGadgetText(Resolution_Liste), 5, " "))
Resolution_Valider = 0
EndIf
EndSelect
Case #PB_Event_CloseWindow ; si on ferme la fenêtre, on quitte
End
EndSelect
Until Resolution_Valider = 0
Else
End
EndIf
EndIf
; On ouvre l'openscreen
If OpenScreen(Ecran_Largeur, Ecran_Hauteur, 32, "Ecran", #PB_Screen_WaitSynchronization, Ecran_Frequence) = 0
MessageRequester("Erreur", "Impossible d'ouvrir l'écran.", 0)
End
EndIf
dw=Ecran_Largeur
dh=Ecran_Hauteur
xx1=Random(dw-1-179)
yy1=Random(dh-1-73)
xx2=Random(dw-1-179)
yy2=Random(dh-1-73)
nb=8290
nb2=0
cmb=0
;;;;;;;;;;;
nombre=9
Dim x.f(nombre)
Dim y.f(nombre)
Dim oux.w(40)
Dim ouy.w(40)
For i=0 To 40
oux(i)=Random(dw-1-179)
ouy(i)=Random(dh-1-73)
Next
;;;;;;;;;;;;;;
;OpenScreen(dw,dh,32,"")
;LoadSprite(0,"d:\PureBasic\PB\SPH.bmp")
;LoadSprite(0,"SPH.bmp")
;DisplaySprite(0,0,0)
;;;;;;;;;;;
StartDrawing(ScreenOutput())
For u=0 To 72
For i=0 To 178
Read.l x
Plot(xx1+i,yy1+u,x)
Next
Next
StopDrawing()
FlipBuffers()
;;;;;;;;;;;
;;;;;;;;;;;
Global Dim p.w(nb,2500)
Procedure bspline(x0,y0,x1,y1,x2,y2,x3,y3,n,cmb)
For z = 0 To SPH_Z-1;149
t1.f = z/SPH_Z;150
t2.f = t1*t1
t3.f = t1*t1*t1
k1.f = 1 - 3*t1 + 3*t2 - t3
k2.f = 4 - 6*t2 + 3*t3
k3.f = 1 + 3*t1 + 3*t2 - 3*t3
xfinal.f = (x0 * k1 + x1 * k2 + x2 * k3 + x3 * t3) / 6
yfinal.f = (y0 * k1 + y1 * k2 + y2 * k3 + y3 * t3) / 6
;Plot (xfinal,yfinal,RGB(0,255,0))
;Debug 9+z*2+n*140
If xfinal<0
xfinal=0
EndIf
If yfinal<0
yfinal=0
EndIf
If xfinal>dw-1-p(cmb,0)
xfinal=dw-1
EndIf
If yfinal>dh-1-p(cmb,1)
yfinal=dh-1
EndIf
;
;Plot(p(i,9+p(i,5)*2)+p(i,0),p(i,10+p(i,5)*2)+p(i,1),RGB(p(i,2),p(i,3),p(i,4)))
p(cmb,9+z*2+n*SPH_Z*2)=xfinal
p(cmb,10+z*2+n*SPH_Z*2)=yfinal
; If z=SPH_Z-1
; p(cmb,8)=(SPH_NOMBRE+1)*SPH_Z;900
; EndIf
Next z
EndProcedure
Restore dta2
StartDrawing(ScreenOutput())
For u=0 To 72
;aaa$="Data.l "
For i=0 To 178
;x=Point(i,u)
Read.l x
;aaa$+Str(x)+","
If x>0
cmb+1
p(cmb,0)=i
p(cmb,1)=u
p(cmb,2)=Red(x)
p(cmb,3)=Green(x)
p(cmb,4)=Blue(x)
p(cmb,5)=Random(Random(Random(Random(1000))))-1000
;p(cmb,5)=-Random(Random(Random(2000)+200))-1000+Random(Random(1000))
p(cmb,6)=xx1
p(cmb,7)=yy1
SPH_Z=120+Random(80)
SPH_NOMBRE=nombre-4-Random(2)
; SPH_Z=200
; SPH_NOMBRE=nombre-4
p(cmb,8)=(SPH_NOMBRE+1)*SPH_Z;900
For n=0 To nombre
x(n)=Random(dw-1-179)
y(n)=Random(dh-1-73)
x=Random(Random(Random(40)))
;x=Random(Random(40))
x(n)=oux(x)
y(n)=ouy(x)
;x(n)=oux(Random(Random(Random(20))))
;y(n)=ouy(Random(Random(Random(20))))
Next
x(0)=xx1 : y(0)=yy1
x(1)=xx1 : y(1)=yy1
x(2)=xx1 : y(2)=yy1
x(SPH_NOMBRE+1)=xx2 : y(SPH_NOMBRE+1)=yy2
x(SPH_NOMBRE+2)=xx2 : y(SPH_NOMBRE+2)=yy2
x(SPH_NOMBRE+3)=xx2 : y(SPH_NOMBRE+3)=yy2
For n=0 To SPH_NOMBRE;nombre-4 ; On trace la bspline
bspline(x(n),y(n),x(n+1),y(n+1),x(n+2),y(n+2),x(n+3),y(n+3),n,cmb)
Next
;End
;*********************************************
p(cmb,9+p(cmb,8)*2)=xx2
p(cmb,10+p(cmb,8)*2)=yy2
EndIf
Next
;Debug aaa$
Next
StopDrawing()
;End
If cmb<>nb
End
EndIf
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
debut:
Repeat
ClearScreen(0)
LoadFont(1, "Arial", 12)
StartDrawing(ScreenOutput())
DrawingMode( #PB_2DDrawing_Default) ;#PB_2DDrawing_Transparent)
DrawingFont(FontID(1))
BackColor(0)
DrawText(dw/2.5,dh-24,"Est-ce que cette phrase ou les pixels clignotent ??", RGB(200,0,200))
StopDrawing()
;ExamineMouse()
;*****
StartDrawing(ScreenOutput())
;;;;;;;;;;;
For i=1 To nb
If p(i,5)<>32700
p(i,5)+1
If p(i,5)=p(i,8)
p(i,5)=32700
nb2+1
EndIf
EndIf
If p(i,5)<0
Plot(p(i,6)+p(i,0),p(i,7)+p(i,1),RGB(p(i,2),p(i,3),p(i,4)))
Else
; Plot(p(i,9+p(i,8))+p(i,0),p(i,10+p(i,8))+p(i,1),RGB(p(i,2),p(i,3),p(i,4)))
If p(i,5)<>32700
Plot(p(i,9+p(i,5)*2)+p(i,0),p(i,10+p(i,5)*2)+p(i,1),RGB(p(i,2),p(i,3),p(i,4)))
Else
Plot(p(i,9+p(i,8)*2)+p(i,0),p(i,10+p(i,8)*2)+p(i,1),RGB(p(i,2),p(i,3),p(i,4)))
EndIf
EndIf
Next
;zz+1 : zz%(dw) : Plot(zz,0,RGB(0,255,0))
;;;;;;;;;;;
StopDrawing()
;*****
FlipBuffers()
If nb2=nb
Gosub dta
Goto debut
EndIf
ExamineKeyboard()
Until KeyboardPushed(#PB_Key_Escape)
End
;;;;;;;
;;;;;;;
;;;;;;;
dta:
nb2=0
xx1=xx2
yy1=yy2
xx2=Random(dw-1-179)
yy2=Random(dh-1-73)
Dim oux.w(40)
Dim ouy.w(40)
For i=0 To 40
oux(i)=Random(dw-1-179)
ouy(i)=Random(dh-1-73)
Next
mode=Random(4)
For ii=1 To nb
If mode=0
p(ii,5)=-Random(200)
Else
If mode<=2
x=Random(Random(Random(2000)))
p(ii,5)=-x+Random(Random(x))
x=Random(Random(Random(2000)))
p(ii,5)-x
Else
x=Random(Random(Random(2000)))
p(ii,5)=-Random(Random(Random(1000)))-x+Random(Random(x))
EndIf
EndIf
p(ii,6)=xx1
p(ii,7)=yy1
SPH_Z=120+Random(80)
SPH_NOMBRE=nombre-4-Random(2)
p(ii,8)=(SPH_NOMBRE+1)*SPH_Z;900
For n=0 To nombre
x(n)=Random(dw-1-179)
y(n)=Random(dh-1-73)
x=Random(Random(Random(40)))
;x=Random(Random(40))
x(n)=oux(x)
y(n)=ouy(x)
;x(n)=oux(Random(Random(Random(20))))
;y(n)=ouy(Random(Random(Random(20))))
Next
x(0)=xx1 : y(0)=yy1
x(1)=xx1 : y(1)=yy1
x(2)=xx1 : y(2)=yy1
x(SPH_NOMBRE+1)=xx2 : y(SPH_NOMBRE+1)=yy2
x(SPH_NOMBRE+2)=xx2 : y(SPH_NOMBRE+2)=yy2
x(SPH_NOMBRE+3)=xx2 : y(SPH_NOMBRE+3)=yy2
For n=0 To SPH_NOMBRE;nombre-4 ; On trace la bspline
bspline(x(n),y(n),x(n+1),y(n+1),x(n+2),y(n+2),x(n+3),y(n+3),n,ii)
Next
p(ii,9+p(ii,8)*2)=xx2
p(ii,10+p(ii,8)*2)=yy2
Next
Return
DataSection
dta2:
Data.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8921377,8987941,9119784,9120812,9252655,9318962,9385526,9451576,9452090,9583933,9649983,9650240,9650497,9650754,9716547,9716547,9650497,9583933,9385526,9186605,8921377,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8987684,9120555,9318705,9319219,9318705,9120812,8921634,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8855327,8987941,9120555,9318705,9385783,9583933,9716547,9849161,9981518,10179411,10311768,10444382,10510946,10643046,10709610,10775917,10842224,10908531,10908788,10974838,11040631,11040631,11040631,10974581,10775917,10510689,10047311,9452090,8987941,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8921377,9119784,9318705,9452090,9716547,9981004,10311511,10444382,10510689,10444382,10179668,9650754,9186862,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8987684,9120555,9385012,9583676,9717061,9981518,10245718,10444639,10643560,10842224,11040888,11239295,11437959,11636366,11834516,12032666,12297123,12361631,12494245,12956338,13022388,13481911,13482168,13548218,13548218,13548218,13482168,13218225,12756132,12161168,11301490,10376533,9451833,8855327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8855327,8987684,9120041,9186605,9186862,9120555,8987941,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8855327,8987941,9186605,9385526,9649983,9849161,10179411,10444382,10709610,11040631,11371909,11702673,12164766,12691110,12491675,12092805,10842224,10113618,9385269,8855327,0,0,0,0,0,0,0,0,8921634,9053991,9120555,9120812,9120555,8987941,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8921634,9053991,9120812,9186862,9186605,9119784,8855584,0,0,0,0,0,0,0,0,0,0,0
Data.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,9120041,9385012,9650240,9981004,10311768,10576739,10841967,11041402,11437702,11702673,12033437,12824238,13350839,13614525,13745854,13942462,14073534,14466750,14400957,13873071,13079957,13740971,14466750,14466750,14467007,14400957,14400957,14400957,14335421,14203321,13740457,12948114,11956850,10636364,10640733,9981004,9120298,0,0,0,0,0,0,0,0,0,0,0,0,0,8855327,8987941,9120555,9318705,9385783,9584190,9782854,9981004,10179668,10311768,10311768,10113618,9783111,9385269,8921634,0,0,0,0,0,0,0,0,0,0,8921891,9120555,9318962,9517883,9717061,10047311,10377818,10642789,10908274,11239295,11636109,12033180,12956338,13680832,14009540,14402499,14466750,13873328,13212057,12221564,11697533,11239552,10378075,9584190,9120555,8987684,8987684,9119784,9252655,9385269,9583676,9716547,9914954,10113618,10311511,10311511,10113618,9782854,9385269,8921891,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8921891,9120041,9252655,9385269,9583676,9716547,9914954,10113618,10311768,10312025,10179925,9981004,9583676,9119784,0,0,0,0,0,0,0,0,0,0
Data.l 0,0,0,0,0,0,0,0,0,0,0,0,0,0,8987684,9318962,9650754,10113618,10576739,10908531,11305859,11834259,12429223,13219767,13681089,14140355,14468292,14598850,14533057,14533057,14533057,14533057,14533057,14598850,14664643,14533057,13607843,13277850,14335164,14730693,14730693,14730693,14664900,14664900,14664900,14664900,14400957,13674407,12420485,11165278,10306114,10973553,10378075,9318705,0,0,0,0,0,0,0,0,8855584,9053991,9186862,9385269,9583933,9717061,9981261,10245718,10444639,10643560,10908274,11107195,11371909,11636366,11834516,12031381,11633282,10706783,10443097,9583676,9053991,0,0,0,0,8855584,9119784,9252655,9451576,9650497,9915211,10245718,10510689,10775917,11041402,11438216,11900566,12429737,13482939,13812675,14337477,14796743,14796743,14862793,14862793,14796743,14532800,13939121,13212057,12221564,11428964,12030353,11570059,10709610,10179925,9981004,9981261,10179668,10443868,10642789,10841967,11040888,11239809,11570059,11702673,11833745,11897482,11302261,10442326,9385783,8855327,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8855327,8987941,9186605,9385012,9583676,9716547,9981004,10179668,10444125,10642789,10841967,11040888,11239809,11570059,11834259,11965588,12029325,11434361,10640219,9650240,8987941,0,0,0,0,0,0,0,0,0
Data.l 0,0,0,0,0,0,0,0,0,0,0,0,8987684,9385526,9849161,10444639,10974838,11570059,12428966,13680318,14075076,14665414,14796743,14796743,14796743,14796743,14730950,14664900,14533314,14533057,14467007,14400957,14269114,14137271,14137014,14070964,13145750,13277850,14533057,14862536,14862536,14862536,14862536,14731207,14731207,14796743,14467007,13608100,12287357,10967128,9778742,11304831,10642532,9385783,0,0,0,0,0,9119784,9318962,9583933,9783111,10113361,10378075,10642789,10842224,11041402,11437702,11702673,12033437,12890288,13417146,13680832,14140355,14271684,14335164,13608100,12089207,10504521,11038318,10510689,9783111,9385783,9318705,9385012,9583933,9783111,10113618,10444125,10643817,10974838,11305602,11702673,12165537,13022388,13681089,14140355,14534085,14796743,14796743,14862793,14862793,14928586,14928843,14928843,14862536,14664900,14400957,13939378,13409950,12552328,12155514,12023671,12694965,12099744,11570059,11305859,11371909,11636366,12032666,12626859,13219510,13680318,13812161,14008512,14137014,13608100,12486278,11099485,10640990,9981518,9120812,0,0,0,0,0,0,0,0,0,0,0,0,0,9053991,9318705,9583676,9782854,10047311,10312025,10642532,10841710,11041145,11305859,11636366,12032666,12560809,12955567,13547961,13746111,13876926,14005171,13541536,12486278,11231328,10638420,10312025,9385012,0,0,0,0,0,0,0,0,0
Data.l 0,0,0,0,0,0,0,0,0,0,0,9318705,9848904,10510946,11173502,12164509,13680832,14469577,14928843,14928843,14928586,14928843,14928586,14862793,14862536,14664900,14400957,14071221,13807021,13607843,13145750,12552071,12155771,11824750,11495014,11692907,12419714,13079957,14268857,14467007,14664900,14730693,14730693,14664900,14730693,14664900,14334907,13541536,11891314,10438471,9315878,11437445,10643560,9451576,0,0,0,8921891,9385526,9849161,10443868,10775917,11107452,11504266,11900823,12560809,13219767,13747139,14272198,14468549,14730693,14664900,14730950,14797000,14928843,14862793,14203064,13343643,12089464,10835285,11896968,11636109,10908274,10510946,10444125,10642532,10842224,11107709,11570059,12032666,12758702,13614525,13812418,14468292,14730950,14730950,14862536,14862793,14928586,14928586,14994636,14994636,14994636,14928843,14862793,14598850,14269114,14070964,13873328,13807021,13674150,13409693,13145750,12882064,12819869,12892858,12957109,13152689,13744826,14205377,14730693,14730693,14730693,14730950,14796743,14664900,14137014,13212057,11825264,10570314,10905961,10510432,9385526,0,0,0,0,0,0,0,0,0,0,0,8921891,9385526,9849161,10378075,10775403,11041402,11438216,11834773,12429223,13219510,13681346,14075076,14271427,14598850,14466750,14137014,14335164,14598850,14467007,14070964,13146007,11891314,10636621,10573141,10775917,9650240,0,0,0,0,0,0,0,0,0
Data.l 0,0,0,0,0,0,0,0,0,8987684,9517883,10311768,11041145,12296866,14075847,14929357,15060686,15060686,15060686,15060429,15060429,14994636,14928586,14730693,14335164,13740714,12750221,11956850,11033178,10437957,9646642,9315878,9381671,9382185,9382442,9448235,10306114,12155257,13740457,14335164,14532800,14730693,14730693,14730693,14730950,14796743,14467007,13014164,11033692,9646385,9579821,11503238,10643303,9385783,0,0,0,9385526,10113618,10908274,12162967,13416375,13812675,14008769,14269371,14203064,14598850,14928843,14928843,14928586,14862536,14862793,14928843,15060686,15126479,14862536,13939121,13212057,12353921,11693164,12294810,12828350,12232358,12032666,11966873,12429223,13285560,13746625,14140355,14730693,14796743,14797000,14862536,14928586,14928843,14928843,14994636,14994636,14994636,14928843,14928843,14862793,14796743,14533057,14137271,13740971,13343900,13146007,13343643,13674407,13873328,14071221,13939378,13740714,13740457,13873328,14071221,13939635,14203064,14664900,14862536,14862793,14862793,14862793,14928586,14730950,13939378,12749964,11363171,10371907,10972782,10775917,9583933,0,0,0,0,0,0,0,0,0,0,8855327,9385526,10113618,10842481,12097431,13153460,13747139,14206405,14599878,14797000,14863050,14928586,14862793,14730950,14665157,14664900,14532800,14598850,14730693,14598850,13873328,12618635,11429221,10438471,10442069,11107195,9848904,8921634,0,0,0,0,0,0,0,0
Data.l 0,0,0,0,0,0,0,0,8857640,9454403,10445924,11373451,13615296,14864078,15061200,15061200,15061200,15061200,14995150,14994893,14863050,14665414,14401214,13741742,12883092,11232356,9251884,9119784,9185834,9251884,9317677,9317934,9383984,9384241,9384498,9450034,9450291,10638420,12949142,14863564,15126993,15126993,15193043,15192786,15193043,15193300,14863050,12684942,10638163,9516341,9450291,11439244,10445924,9123125,0,0,8857640,10707554,12489619,13874613,14731207,14995150,14995150,14797257,14467521,14335421,14665414,14995150,15060943,14995150,14929357,14929100,14995150,14995150,14797000,14203578,13674921,13212571,12750992,12487306,12691624,12826037,13087410,13612726,14204349,14599107,14665157,14665157,14599364,14533314,14467264,14401214,14269628,14335421,14401471,14467521,14599621,14665414,14665414,14665157,14599107,14401471,14137528,13807792,13608614,12750992,11958135,11628399,12157056,13410721,14203578,14665414,14665157,14467778,14467521,14665157,14797000,14533314,14401214,14599107,14731207,14863050,14797257,14797257,14797000,14599107,13674921,12288899,10837084,9648441,10842738,10778230,9454403,0,0,0,0,0,0,0,0,0,0,8857640,10906218,13215398,14600135,14994893,15061200,15061200,14863307,14797257,14797257,14929100,14863050,14665414,14599364,14599107,14533314,14599364,14665157,14599364,14401214,13674921,12288642,10902877,9714491,9981261,11109508,9719117,8725797,0,0,0,0,0,0,0,0
Data.l 0,0,0,0,0,0,0,8791847,9454917,10578795,11967387,14338762,15061200,15061457,15126993,15126993,15060943,14863307,14665414,14599107,14401214,14005428,13476771,12157056,10307913,9317677,9383727,9383984,9450034,9450291,9516341,9516598,10310226,11040631,11239552,11967387,11967387,12030867,13477028,15194585,15524064,15589857,15589857,15590114,15590114,15590114,15193557,12883092,10704727,9713977,9647927,11902879,10314081,9057075,0,0,8858411,9850960,11102826,12024442,12949142,13874099,14665414,14863307,14797257,14731207,14863307,15061200,15126993,15060943,14995150,14995150,15060943,14797257,14467264,13807535,13476771,13278621,13014935,13344928,13608357,13542821,13608614,13741485,14005428,14005685,13741485,13410721,12817042,12288642,11826035,11430506,11430506,11628399,12024442,12421256,13081242,13608871,13873842,14137528,14203578,14137528,14005685,13741228,13212571,12487306,12024699,12157056,13674921,14929100,15194328,15193557,15193557,15193300,15192786,15126993,14995150,14863050,14665414,14401471,14467264,14599107,14533314,14467521,14401471,14071735,13477028,12023928,10440013,9185834,10975609,10910844,9520710,8527647,0,0,0,0,0,0,0,0,0,8858411,9982546,12686998,13741485,14203835,14731464,15126993,15192786,15061200,15061200,14929100,14665414,14335421,14203578,14203321,14071478,14269628,14467264,14335421,14005685,13476771,11958392,10440013,9251884,10113361,11241608,9785167,8725797,0,0,0,0,0,0,0,0
Data.l 0,0,0,0,0,0,8659747,9388610,10513002,12297123,14600649,14995150,15061457,15126993,15061200,14863307,14599364,14401471,14269371,14137528,13873842,13476514,12023928,10110020,9450034,9450291,9516341,9582391,9648184,10111819,11305345,11967901,11704215,11307658,11439501,11902365,12631485,12628401,14071992,15590114,15853800,15920107,15854057,15854057,15854057,15854057,15326171,12948885,10241606,9780027,9714234,11836572,10247774,8990768,0,0,8791847,9587017,10777202,10573141,11166820,12157056,13344928,14071735,14467521,14599107,14599107,14599107,14467264,14203578,14071478,14071478,14203578,14467264,14797000,14665414,14269371,13410721,12421256,12289670,13081242,12817042,12289670,12024699,11562606,10902877,10439756,9845820,9317934,8855841,8855841,8921634,8987684,9053734,9186091,10043970,11100770,12289413,13608871,14203835,14467264,14401471,14071735,13873585,13807535,13675178,13674921,14863307,15655907,15788007,15788007,15721957,15590114,15524064,15260378,15193043,14929100,14665414,14467264,14269628,14071735,14335421,14269628,14269628,14269628,14269371,13476771,11694449,9714234,9383984,10842738,11042687,9586760,8659233,0,0,0,0,0,0,0,0,0,8791847,9652810,10842995,11431277,12024442,12619149,13476771,14005685,14401471,14599107,14599364,14731207,14533314,14137528,13873842,13741485,13873585,14335421,14335421,14269371,13476771,11628142,10109763,9384241,10310997,11241608,9785167,8725797,0,0,0,0,0,0,0,0
Data.l 0,0,0,0,0,0,8927288,10052194,11638679,14337734,14797771,14929614,15061457,14929357,14533828,14269885,14137785,14071992,14138042,14203835,13675949,12224134,10441812,9319990,9385783,9386297,9452090,9782340,11373451,11772064,10912900,10382701,9853787,9589330,9853530,10449265,11507864,12893115,14797771,15392478,15788264,15919850,15854057,15854057,15919850,15919850,15260121,12554127,9583676,9518140,9452090,11507864,9853787,8662574,0,0,8199967,9059645,10250087,11307915,10442840,10838112,11695734,12554127,13345956,13675949,13808306,13939892,14005942,14071992,14138042,14335678,14401985,14599621,14863564,15127250,15193557,15193557,13609899,11102055,10640219,9583933,8923947,8791847,8725540,8659747,8659490,8725540,8791590,8857640,8858154,9652553,9983060,9784396,9121840,9122097,9650240,11300205,12884120,14006199,14534085,14599621,14533828,14533571,14599878,14599878,14797771,15721957,15985643,15985900,15854057,15853800,15787750,15655907,15392221,15193814,14929357,14599878,14401985,14401985,14401728,14401985,14599621,14665671,14797514,14863564,13742256,11827320,9319990,9254197,10115160,10912386,9390666,8331810,0,0,0,0,0,0,0,0,0,8199967,9059645,10250344,11308172,10442583,10706526,11498098,12356234,13147806,13609642,13808049,14137785,14467778,14797514,14995407,14731721,14533571,14797771,14929357,14797771,13676206,11695477,9979719,9254454,10180953,11045000,9523023,8398117,0,0,0,0,0,0,0,0
Data.l 0,0,0,0,0,8596267,9589330,10978693,13811904,14534085,14731978,14929357,14797514,14335935,14005942,13939892,14137785,14269885,14467778,14006199,13015706,11299691,9386040,9451833,9452347,9518140,10578024,11904421,10978693,10184294,9457230,9059388,8662574,8530217,8860981,9589330,10780286,12958651,14600649,15061971,15392478,15721957,15787750,15788007,15788007,15787750,14401728,11101798,9518140,9517883,9452090,11441300,9787480,8596524,0,0,0,8596267,9523023,10714493,11439501,10177612,10640219,11563891,12554127,13609385,14138042,14401728,14599621,14731464,14797771,14995407,15061457,15127507,15193814,15194071,15127250,14797514,13543849,11036005,9320247,9253940,9122097,9189432,9917267,10645616,10778487,11308429,11110279,11706271,11573657,11441557,11507607,11837857,12302006,11241608,9848647,10970212,12224134,13477799,14401728,14797771,14863564,14401728,13609642,13345442,14006199,15590114,15853800,15788007,15788007,15788007,15787750,15656164,15524064,15391964,15193557,15061457,14929614,14929614,14995664,15127250,15193557,15194328,15260378,15260378,14401728,11695734,9386297,9386040,10181210,10912900,9456716,8332067,0,0,0,0,0,0,0,0,0,0,8596524,9523023,10714493,11373708,9980233,10442069,11233641,12092034,13015706,13675949,14137785,14533571,14929357,15194328,15458014,15458014,15589857,15458271,15194071,13940149,11827577,10177612,9386297,10247003,11045000,9523023,8398117,0,0,0,0,0,0,0,0
Data.l 0,0,0,0,0,9059902,10382701,12758445,14138042,14401985,14665671,14599878,14138042,13675949,13675692,14005942,14335935,14204092,14071992,13609642,12158084,10045769,9452090,9517883,9583933,10711666,11904164,10647415,9589330,8927288,8398374,0,0,0,8199967,9125695,10448751,12496815,13874613,14336449,14863821,15194328,15193557,14401985,13940149,13147806,11497841,9452090,9517883,9452347,9386297,11242893,9655123,8529960,0,0,0,0,8794417,9787223,11044486,11505037,10441555,11102312,12092034,13477285,14533571,14995407,15127250,15193814,15194328,15260121,15260378,15260121,15194328,14929357,13609642,11299948,9452090,9452090,10645359,11770779,12566206,11838114,11177100,10846079,10581622,10448751,10250087,10051937,9853787,9787737,9853787,10183780,10713979,11705757,12367799,11234926,12092291,13147806,14204092,14863564,13741999,12157827,11695734,12553870,14137785,15458014,15655907,15656164,15656164,15656164,15656164,15655907,15524064,15524064,15392221,15260378,15260378,15260378,15260378,15392221,15392221,15458271,15589857,15458271,14599878,10772062,9452090,9386297,10247003,11044486,9457230,8398117,0,0,0,0,0,0,0,0,0,0,0,8794674,9787223,10978693,11373194,10243405,10838369,11827577,12752020,13676206,14335935,14665671,14797771,14929614,15194328,15458271,15589857,15656164,15260378,13808306,11827320,10111819,9452090,10247003,11045000,9523023,8398117,0,0,0,0,0,0,0,0
Data.l 0,0,0,0,8202280,9326929,10848392,13479855,13874613,14270142,14402242,14006456,13346470,13214627,13412263,13742513,13874356,13874613,13874356,13280420,10377047,9189689,9189946,9255739,10182752,11905963,10385014,9194572,8268844,0,0,0,0,0,0,8665401,10054250,12034979,12753562,13214884,13214884,12555155,11301233,10179154,9981518,9189689,9189946,9189946,9255739,9190203,10050909,10649471,9128779,8070180,0,0,0,0,0,8599351,9723486,11112849,11108480,10839654,11763326,12950941,14336449,15194585,15391964,15392221,15458014,15392221,15260378,15391964,15260378,14863821,13148834,10245461,9189946,9190203,10912129,12236984,11046285,10120300,9393493,9062729,8864322,8797244,8599351,8466737,8334894,8268844,8334894,8533301,9128779,10120557,11509149,12034722,12357519,13412777,13544620,12290955,10905447,10839140,12423055,14534342,15524064,15589857,15589857,15589857,15589857,15589857,15589857,15589857,15524064,15524064,15458271,15458014,15458014,15458014,15458271,15524064,15524064,15524064,15590114,15524064,13940663,9849418,9189946,9124153,9984859,10848135,9260879,8070437,0,0,0,0,0,0,0,0,0,0,0,0,8599094,9657693,11046542,11042430,10708068,11499383,12423312,13610927,14534085,14995921,15061971,14666185,14138299,14072249,14336192,14072249,15326171,13610413,11565176,9783625,9189946,9984859,10848392,9260879,8070437,0,0,0,0,0,0,0,0
Data.l 0,0,0,0,8533301,9921636,11903393,13412263,13742770,14072506,13940663,13214370,12620691,12752791,13148320,13346470,13610413,13214370,11697019,9651525,9123896,9189689,9189946,9255996,11639964,10848392,9393236,8334637,0,0,0,0,0,0,0,8533301,9921636,11506836,11433590,11235697,10641761,9321789,8992310,9123896,9189689,9189946,9189946,9190203,9255996,9255996,9852759,10120557,8863808,7872287,0,0,0,0,0,7872287,8797501,9988457,11509663,11238010,11763326,12818841,14072506,15128021,15260378,15391964,15391964,15260378,15194071,15260378,15194071,14731978,12818841,9981261,9189946,9189946,10912129,11377049,9988200,8930115,8268844,8003873,0,0,0,0,0,0,0,0,8202280,9128779,10517371,12169906,11895426,11631483,11301490,11103597,11696762,13148320,15128021,15392221,15392221,15392221,15392221,15392221,15392221,15392221,15392221,15392221,15392221,15392221,15391964,15391964,15391964,15391964,15391964,15391964,15392221,15391964,15391964,15391964,13148577,9783368,9189689,9124153,9984859,10848392,9260879,8070437,0,0,0,0,0,0,0,0,0,0,0,0,0,8731451,9921636,11377049,11371652,11499640,12357519,13610413,14534085,15061971,14995921,14534085,14006456,13874613,14270399,13544106,13610413,13214627,11367026,9915468,9124153,9984859,10914185,9326672,8070694,0,0,0,0,0,0,0,0
Data.l 0,0,0,0,8863808,10318707,11900566,12423055,13214627,13940663,13412520,12423055,12225162,12950427,13016734,12027012,11169133,10113104,9453632,9123639,9123639,9123896,9189946,9653581,12037806,10186864,8797758,0,0,0,0,0,0,0,0,8400944,9525593,10846079,10114132,9519939,8662060,8860210,9057846,9189689,9190203,9190203,9190460,9255996,9321789,9255996,9588302,9525079,8466994,0,0,0,0,0,0,0,8070437,9062729,10451578,11904678,11763583,12753048,13743284,14864335,15194328,15260121,15260121,15194328,15128021,15194071,15194071,14731978,12554898,9849675,9189689,9189946,10912129,10782085,9326929,8268587,0,0,0,0,0,0,0,0,0,0,0,8533301,9921636,11641249,11501953,11631483,12555412,14072506,15127764,15260378,15260378,15260378,15260378,15326171,15260378,15260378,15260378,15260378,15260121,15194328,15194328,15194071,15194071,15194071,15194328,15260121,15260121,15260121,15194071,15061971,14929871,15061714,12159112,9849418,9255739,9123896,9984859,10848392,9260879,8070437,0,0,0,0,0,0,0,0,0,0,0,0,0,8004130,8930115,10318450,11839142,11831175,12489362,13544877,14468035,15127764,14863821,14270399,13940406,13940663,13940663,14204349,12159112,11103340,9123896,9124153,9123896,9984859,10980235,9327186,8136487,0,0,0,0,0,0,0,0
Data.l 0,0,0,7676450,8800585,10453120,10646387,10511203,10841196,10642532,9059645,8399916,8729909,9125438,8927802,8927802,9455174,10115160,11170418,12225933,11830147,10247003,8862009,9854558,11445155,9660006,8271414,0,0,0,0,0,0,0,0,7874600,8866378,9922664,8730166,8070437,8334637,8598323,8796216,8928059,9258566,9855072,10318450,10517371,10649985,10122356,9395292,8403771,7676450,0,0,0,0,0,0,0,0,8139057,9329499,11047827,11835801,12490390,13479341,14534856,14996435,15062228,15062485,14996435,14798285,14996178,14996435,14402756,12225933,9719374,8862009,8862009,10649728,10321020,8734278,7544607,0,0,0,0,0,0,0,0,0,0,0,8007214,9329499,11114391,12098459,13479598,14468806,14996435,15062485,15128278,15128278,15194071,15194071,15194071,15194071,15128278,15062485,15062228,14798542,14534599,14270913,14402756,14798285,15062485,15062228,15062485,15062485,15062228,14798285,14468806,14402756,13875127,11631997,10048853,9653581,8861752,9722715,10651784,8998735,7742757,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7940907,9130835,10651784,12036778,12292754,13281962,14271427,14864849,14600392,14006713,13940920,13940920,14006713,14270913,12885662,10708839,8927545,8861752,8861752,9722715,10849934,9130835,7874600,0,0,0,0,0,0,0,0
Data.l 0,0,0,7742757,8998735,10717577,11040117,11038575,10973039,9983317,8663602,8465966,9323588,9455174,9455174,10576739,12423569,14336706,14864592,14732492,12819612,11038832,9653581,9524308,11576998,9726056,8337464,0,0,0,0,0,0,0,0,0,8271671,9130321,8864579,9658207,10054764,10848906,10848649,11246748,11047827,10717577,10452863,9990513,9527649,8932685,8337464,7742500,0,0,0,0,0,0,0,0,0,7544607,8668228,10188663,11905706,12293011,13281962,14271427,14798285,14864592,14930385,14666699,14402756,14732492,14864592,14204863,12159883,9983060,8861495,8861752,10649728,10321277,8734535,7610400,0,0,0,0,0,0,0,0,0,0,0,8006957,9329242,11114134,12691624,13677491,14336963,14798285,14864335,14864592,14996435,14996435,14996435,14996435,14996435,14996178,14798285,14138813,13479341,12885405,12555669,13149605,14006970,14864849,15062485,15194071,15062228,14864335,14336706,14138813,14006970,13413034,11632254,10708839,9719374,8795959,9657179,10651784,8998735,7742757,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8469821,9858413,11709098,12226704,13215655,14204863,14666699,14468806,14006970,14006970,14006713,14006713,13940920,13281191,11500411,11236725,9455431,8795959,8929087,10916241,9131349,7875114,0,0,0,0,0,0,0,0
Data.l 0,0,0,7874600,9065042,10783884,11434875,11896197,12424083,12885662,13347241,13940920,14402499,14402499,14666699,14930385,15062228,14996178,14864335,14732492,13413034,12028297,10840939,10049624,11907248,10188920,8668485,7610400,0,0,0,0,0,0,0,0,7742500,8337464,8998735,9461342,9725799,9726313,9660006,9461342,9263192,9064528,8800328,8535871,8205621,7875114,0,0,0,0,0,0,0,0,0,0,0,0,8205364,9527906,11312798,12096917,13084326,14007741,14534856,14666956,14732492,13281448,12621719,13281448,14138813,13809077,12094090,10115417,8795702,8795959,9921636,10453120,8800585,7676450,0,0,0,0,0,0,0,0,0,0,0,8139057,9461599,11312541,12821925,13611441,14205120,14600392,14666442,14666699,14864335,14864335,14864335,14864335,14798542,14732492,13809077,12555926,11500411,10642789,10445153,11500411,12885662,14073020,14930385,15062228,14996435,14864592,14798542,14468549,14006713,13875127,12225933,10643046,8795959,8795959,9657179,10651784,8998735,7742757,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8007214,9263449,11048084,11702159,12160654,13413805,14270913,14402499,14072763,14006713,14006713,14006970,14073020,14006970,11896197,10708839,9917524,8730166,8664373,11048084,9263192,7940907,0,0,0,0,0,0,0,0
Data.l 0,0,0,7743014,9064528,10717577,10709610,11038832,11764868,12819612,13808820,14204863,14666442,14732492,14864335,14996178,14930385,14798542,14732492,14600649,14006970,12885919,11896711,11105396,11639707,11047827,9395549,8139571,0,0,0,0,0,0,0,0,0,7544607,7941164,8205364,8337464,8337721,8271414,8139057,7940907,7743014,7676193,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7874600,9130835,10849677,11967130,12754590,13677491,14205120,14468806,14006713,11896197,11632254,12687512,12819612,12687512,11764097,10115160,8730166,8730166,9656922,10519427,8932428,7676707,0,0,0,0,0,0,0,0,0,0,0,8337978,9857899,11774377,13018019,13611441,14204863,14403013,14468549,14534599,14666442,14666699,14666699,14666442,14600392,13875127,12225933,10444896,9257281,8729909,8730166,11375250,12094347,13479598,14600906,14666956,14600649,14600649,14666699,14468806,13545134,12951455,11236211,9455431,8730166,8730166,9657179,10651784,8998735,7742757,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7676707,8932428,10519427,11572886,11699075,12556440,13281705,13874870,14006713,13940920,14006713,14072763,14073020,14402499,12291726,10643046,9917010,8730166,8664373,11048341,9263449,7941164,0,0,0,0,0,0,0,0
Data.l 0,0,0,7676450,8800585,10452863,10249573,10314081,11170932,12753819,13611441,14138813,14468806,14666442,14666699,14798285,14666699,14600649,14600392,14534599,14402756,13677491,12885919,12094604,11766153,11906220,10453120,9065042,8007214,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7676193,8800585,10452863,11903393,12424854,13281962,13941434,14336706,12028040,10708582,11698304,13545134,13017505,12423569,11104368,9587531,8729909,8664373,9656665,10585477,8932685,7742500,0,0,0,0,0,0,0,0,0,0,7676450,8800328,10321277,12498357,13281705,13743284,14204863,14270656,14204606,14270913,14468806,14534599,14534599,14468549,13875127,12423569,9983060,8664116,8729909,8730166,9458258,11641506,11896711,13347498,14271170,14468806,14204863,13874870,13545134,12028040,11698047,11896197,10972525,9389638,8730166,8730166,9656922,10651784,8998735,7742757,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8667971,10188663,11441557,11830661,12424597,12885919,13149605,13215398,13611184,13940920,14072763,14072763,14072763,12489876,10445153,9851474,8729909,8664373,11114391,9329242,8006957,0,0,0,0,0,0,0,0
Data.l 0,0,0,0,8469821,9924463,10318193,9719888,10643303,11830918,12819355,13479341,14006970,14270913,14468549,14534599,14534599,14468806,14468549,14402756,14402499,14270913,13809334,13018276,12424597,12031638,11708841,10321020,9130835,8271414,7676193,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8536385,10122613,11706014,12029325,13018276,13743284,13677234,10510689,10510946,12951455,14006713,13809077,13479084,11895940,9653324,8664116,8664373,9656665,10651527,8932942,7742757,0,0,0,0,0,0,0,0,0,0,8139057,9395549,11114134,13021874,13611441,13941177,14139070,14073020,14006713,14204606,14402499,14402499,14270656,13677234,12357776,10114903,8663859,8664373,8730166,8796216,11576484,12304319,12029068,13216169,14007741,14205120,14006713,13545134,12159883,10708839,11104625,12687512,12489619,10840939,9653324,8664373,9656922,10651784,8998735,7742757,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8403771,9858413,11443356,11633539,12622490,13347241,13611441,13215398,12951455,13347241,13808820,14072763,14204606,12951455,10709096,9257538,8664373,8664373,11114391,9329499,8006957,0,0,0,0,0,0,0,0