SAPI : change Voice
- Antonio Linares
- Site Admin
- Posts: 42259
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: SAPI : change Voice
Dear Enrico,
Here it builds ok with Harbour but events are not working
Here it builds ok with Harbour but events are not working
- Enrico Maria Giordano
- Posts: 8728
- Joined: Thu Oct 06, 2005 8:17 pm
- Location: Roma - Italia
- Contact:
Re: SAPI : change Voice
Ops, sorry, my fault. Ok, it compiles file and speaks in a foreign language (it seems). What it is supposed to do?
- Antonio Linares
- Site Admin
- Posts: 42259
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: SAPI : change Voice
Harbour function __axRegisterHandler() register an events handler.
meanwhile the speak of a text there are events but they don't arrive. No idea why.
We have low level debugged the code and it is correct but somehow the events are not arriving
meanwhile the speak of a text there are events but they don't arrive. No idea why.
We have low level debugged the code and it is correct but somehow the events are not arriving
-
- Posts: 26
- Joined: Tue Mar 20, 2012 11:06 pm
Re: SAPI : change Voice
Una pregunta ....
cual es la necesidad de utilizar eventos en SpVoice ?
En HMGForum donce nació el problema que el objeto Voices:Voice:= no aceptaba elegir el narrador por tener un bug y solo era el uso de una voz para relatar los números de la aplicación BINGO y yo creí que faltaba agregar Eventos a SPVoice añadiendo y no tenia la necesidad de incluirlo porque no los iba a utilizar.
Leyendo me di cuenta que SAPIVoice en un conjunto de objectos con sus metodos y cada método tiene sus propiedades que son dificiles de entender y que de a poco voy descubriendo (Solo por curiosidad), respondiendo a
https://learn.microsoft.com/en-us/previ ... 0(v=vs.85) en la sección automatización nos indica qué
cual es la necesidad de utilizar eventos en SpVoice ?
En HMGForum donce nació el problema que el objeto Voices:Voice:= no aceptaba elegir el narrador por tener un bug y solo era el uso de una voz para relatar los números de la aplicación BINGO y yo creí que faltaba agregar Eventos a SPVoice añadiendo
Code: Select all | Expand
oNarrator := CreateObject( "Sapi.SPVoice" , "WithEvents")
Leyendo me di cuenta que SAPIVoice en un conjunto de objectos con sus metodos y cada método tiene sus propiedades que son dificiles de entender y que de a poco voy descubriendo (Solo por curiosidad), respondiendo a
compile el mismo y no hace nada porque no se utilizo ningun evento solo se asigno un valor.Este ejemplo es Harbour
Code: Select all | Expand
oVoice:EventInterests = 327679
supongamos que tenemos un texto y este sea relatado por una voz femenina pero al llegar a unas Comillas ("") que resaltara "digamos" algo especifico como ser también una palabra en negrita cambie la voz por masculina o que cada palabra del texto sea resaltado en forma automatica (mediante nuestro codigo) mientras es relatado ese texto.EventInterests Property
La propiedad EventInterests especifica los tipos de eventos aceptados por el objeto SpeechRecoContext.
Un interés de evento es un mecanismo de filtrado para cada contexto de reconocimiento. Al configurar EventInterests, el contexto de reconocimiento permite o niega que los eventos del motor de reconocimiento de voz lleguen a la aplicación. Se pueden filtrar todos, ninguno o tipos seleccionados de eventos. De forma predeterminada, el reconocimiento de voz permite todos los eventos excepto SREAudioLevel (un cambio en el nivel de audio).
Seguiremos porque se pone interesante el tema
- Antonio Linares
- Site Admin
- Posts: 42259
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: SAPI : change Voice
Daniel,
Aqui tienes un ejemplo de como usar los eventos con SPVoice para marcar la palabra que se está pronunciando:
https://www.youtube.com/watch?v=Y8-yjsRsyvI
Esto es lo que debería conseguirse con esta llamada:
oVoice:__hSink := __axRegisterHandler( oVoice:__hObj, { | x, y | QOut( x, y ) } )
pero algo nos falta pues los eventos no llegan
Aqui tienes un ejemplo de como usar los eventos con SPVoice para marcar la palabra que se está pronunciando:
https://www.youtube.com/watch?v=Y8-yjsRsyvI
Esto es lo que debería conseguirse con esta llamada:
oVoice:__hSink := __axRegisterHandler( oVoice:__hObj, { | x, y | QOut( x, y ) } )
pero algo nos falta pues los eventos no llegan
-
- Posts: 26
- Joined: Tue Mar 20, 2012 11:06 pm
Re: SAPI : change Voice
descubri que tampoco funcionaAntonio Linares wrote:Daniel,
Aqui tienes un ejemplo de como usar los eventos con SPVoice para marcar la palabra que se está pronunciando:
https://www.youtube.com/watch?v=Y8-yjsRsyvI
Esto es lo que debería conseguirse con esta llamada:
oVoice:__hSink := __axRegisterHandler( oVoice:__hObj, { | x, y | QOut( x, y ) } )
pero algo nos falta pues los eventos no llegan
Code: Select all | Expand
Function ChangeAvailavedevice()
If Main.List_2.Value > 0
oNarrator:AudioOutput := oDevice:Item( Main.List_2.Value - 1 )
// oNarrator:AudioOutput := oNarrator:GetAudioOutputs():Item(Main.List_2.Value - 1)
End If
Return
Last edited by Danielmaximiliano on Thu Feb 08, 2024 8:08 pm, edited 1 time in total.
-
- Posts: 26
- Joined: Tue Mar 20, 2012 11:06 pm
Re: SAPI : change Voice
Encontre este codigo dentro del foro si mal no recuerdo hace un tiempo pero no recuerdo cuando. no lo puedo probar porque no soy usuario de fivewin y nunca descargue fiwewin como herramienta de trabajo.
Code: Select all | Expand
#include "FiveWin.ch"
static lIsPaused := .F.
function Main()
local oDlg, oGetText, oBtnPlay, oBtnPause, oBtnStop, oBtnInterroga, oBrowVoices, cVoice, oCbxOutPut, oCbxVoiceNormal
local oCbxVoiceAlert, oMeter
local oBtnVolumeUp, oBtnVolumeDown, oBtnVelocityUp, oBtnVelocityDown
local oGetVolumeLevel, oGetVelocityLevel
local cMeter
local aVoices := {}, aPhoneme := {}, aVoiceForSelect := {}
local aOutPutStream := { "Voz", "File" }, cSelOutPutStream := "Voz"
local oFile := tOleAuto():New( "Sapi.SpFileStream" )
local nVolume := 50
local nVelocity := 0
local n := 0, n2 := 0
local oVoice := tOleAuto():New( "Sapi.SPVoice", "WithEvents" )
local oVoiceAlert := tOleAuto():New( "Sapi.SPVoice", "WithEvents" )
local cSelNormalVoice, cSelAlertVoice
// SpeechVoiceFlags
local SVSFDefault := 0
local SVSFlagsAsync := 1
local SVSFPurgeBeforeSpeak := 2
local SVSFIsXML := 8
// SpeechVoiceEvents
local SVEStartInputStream := 2
local SVEEndInputStream := 4
local SVEVoiceChange := 8
local SVEBookmark := 16
local SVEWordBoundary := 32
local SVEPhoneme := 64
local SVESentenceBoundary := 128
local SVEViseme := 256
local SVEAudioLevel := 512
local SVEPrivate := 32768
local SVEAllEvents := 33790
//SpeechVoicePriority
local SVPNormal := 0
local SVPAlert := 1
local SVPOver := 2
local cTextToRead := "La Guía de Programación de FiveWin, ofrece una introducción dirigida a técnicas" + CRLF +;
"de desarrollo de aplicaciones de Windows utilizando (x)Harbour y FiveWin. Esta" + CRLF +;
"guía explicará los conceptos básicos que usted debe tener para construir correctamente" + CRLF +;
"sus aplicaciones de Windows."
local ISpeechObjectTokens := oVoice:GetVoices()
For n = 0 To Len( oVoice:GetVoices() )
Aadd( aVoices, { n, ISpeechObjectTokens[n]:GetAttribute( 'Name' ), ISpeechObjectTokens[n]:GetAttribute( 'Gender' ),;
ISpeechObjectTokens[n]:GetAttribute( 'Age' ), ISpeechObjectTokens[n]:GetAttribute( 'Language' ),;
ISpeechObjectTokens[n]:GetAttribute( 'Vendor' ) } )
Aadd( aVoiceForSelect, ISpeechObjectTokens[n]:GetAttribute( 'Name' ) )
Next
cSelNormalVoice := aVoiceForSelect[1]
cSelAlertVoice := aVoiceForSelect[1]
oVoiceAlert:Priority() := SVPAlert // Set oVoiceAlert as an 'alert' voice
oVoiceAlert:Voice() := oVoiceAlert:GetVoices( "Name = " + cSelNormalVoice ):Item( 0 )
oVoiceAlert:Volume() := 90 // Set the volume of the Alert Voice at 90 to a Maximum of 100
oVoice:AlertBoundary() := SVEPhoneme // Allow to Stop voice by Another one with Alert priority
oVoice:EventInterests := SVEAllEvents + SVEAudioLevel
oVoice:Voice() := oVoice:GetVoices( "Name = " + cSelNormalVoice ):Item( 0 )
oVoice:Volume() := nVolume
oVoice:Rate := nVelocity
DEFINE DIALOG oDlg RESOURCE "sound"
REDEFINE GET oGetText VAR cTextToRead ID 10 OF oDlg MULTILINE UPDATE
REDEFINE METER oMeter VAR cMeter ID 3000 OF oDlg NOPERCENTAGE UPDATE
REDEFINE BUTTON oBtnPlay ID 2010 OF oDlg ACTION ( oVoice:Speak( cTextToRead, ( SVSFlagsAsync + SVSFIsXML ) ) ) UPDATE
REDEFINE BUTTON oBtnPause ID 2020 OF oDlg ACTION ( PauseResume( oVoice, oDlg, oBtnPause ), oDlg:Update() ) UPDATE
REDEFINE BUTTON oBtnStop ID 2030 OF oDlg ACTION ( iif( lIsPaused, ( lIsPaused := .F., oBtnPause:SetText( "Pause" ) ) , ),;
oVoice:Speak( " ",SVSFPurgeBeforeSpeak ) ) UPDATE
REDEFINE BUTTON oBtnInterroga ID 2040 OF oDlg ACTION ;
( oVoiceAlert:Speak( "This is a Warning Interrupt", SVSFlagsAsync ), MsgInfo( "Esto es una prueba de interrupción de Alerta" ) )
REDEFINE BUTTON oBtnVolumeUp ID 120 OF oDlg;
ACTION ( nVolume := nVolume + 10, iif( nVolume > 100, ( nVolume := 100 , MsgInfo( "Máximum Volume" ) ) ,;
oVoice:Volume := nVolume ), oGetVolumeLevel:SetText( AllTrim( Str( nVolume ) ) ) ) UPDATE
REDEFINE BUTTON oBtnVolumeDown ID 130 OF oDlg;
ACTION ( nVolume := nVolume - 10, iif( nVolume < 0, ( nVolume := 0 , MsgInfo( "Mínimum Volume" ) ),;
oVoice:Volume := nVolume ), oGetVolumeLevel:SetText( AllTrim( Str( nVolume ) ) ) ) UPDATE
REDEFINE BUTTON oBtnVelocityUp ID 140 OF oDlg;
ACTION ( nVelocity++, iif( nVelocity > 10, ( nVelocity := 10 , MsgInfo( "Máximum Velocity" ) ),;
oVoice:Rate := nVelocity ), oGetVelocityLevel:SetText( AllTrim( Str( nVelocity ) ) ) ) UPDATE
REDEFINE BUTTON oBtnVelocityDown ID 150 OF oDlg;
ACTION ( nVelocity--, iif( nVelocity < -10, ( nVelocity := -10 , MsgInfo( "Mínimum Velocity" ) ),;
oVoice:Rate := nVelocity ), oGetVelocityLevel:SetText( AllTrim( Str( nVelocity ) ) ) ) UPDATE
REDEFINE GET oGetVolumeLevel VAR nVolume ID 160 OF oDlg UPDATE
oGetVolumeLevel:SetText( Str( nVolume ) )
REDEFINE GET oGetVelocityLevel VAR nVelocity ID 170 OF oDlg UPDATE
oGetVelocityLevel:SetText( Str( nVelocity ) )
REDEFINE LISTBOX oBrowVoices FIELDS AllTrim( Str( aVoices[ oBrowVoices:nAt, 1 ] ) ), aVoices[ oBrowVoices:nAt, 2 ],;
aVoices[ oBrowVoices:nAt, 3 ], aVoices[ oBrowVoices:nAt, 4 ], aVoices[ oBrowVoices:nAt, 5 ], aVoices[ oBrowVoices:nAt, 6 ];
HEADERS "Item", "Nombre", "_", "Edad", "Idioma ID", "Empresa";
COLSIZES 31, 77, 72, 42, 58, 64;
ON DBLCLICK oVoice:Voice := oVoice:GetVoices():Item( aVoices[ oBrowVoices:nAt, 1 ] );
ID 200 OF oDlg UPDATE
oBrowVoices:SetArray( aVoices )
REDEFINE COMBOBOX oCbxOutPut VAR cSelOutPutStream;
ITEMS aOutPutStream ID 210 OF oDlg UPDATE ;
ON CHANGE OutPutStream( cSelOutPutStream, oVoice, oFile )
REDEFINE COMBOBOX oCbxVoiceNormal VAR cSelNormalVoice;
ITEMS aVoiceForSelect ID 220 OF oDlg UPDATE;
ON CHANGE oVoice:Voice := oVoice:GetVoices( "name = " + cSelNormalVoice ):Item( 0 )
REDEFINE COMBOBOX oCbxVoiceAlert VAR cSelAlertVoice;
ITEMS aVoiceForSelect ID 230 OF oDlg UPDATE;
ON CHANGE oVoiceAlert:Voice := oVoiceAlert:GetVoices( "name = " + cSelAlertVoice ):Item( 0 )
ACTIVATE DIALOG oDlg CENTERED
return nil
function PauseResume( oVoice, oDlg, oBtnPause )
iif( lIsPaused,;
( oVoice:Resume(), lIsPaused := .F., oBtnPause:SetText( "Pause" ) ),;
( oVoice:Pause(), lIsPaused := .T., oBtnPause:SetText( "Resume" ) ) )
return nil
function OutPutStream( cSelOutPutStream, oVoice, oFile )
local SSFMCreateForWrite := 3
if cSelOutPutStream = "File"
MsgInfo( "OutPut redirected to a File in 'c:\TeechToSpeak.wav'", "Warning!!!" )
oFile:Open( "c:\TeechToSpeak.wav" , SSFMCreateForWrite )
oVoice:AudioOutputStream := oFile
else
MsgInfo( "OutPut redirected to Speakers", "Warning!!!" )
oFile:Close()
oVoice:AudioOutputStream := nil
endif
return nil
Re: SAPI : change Voice
hi Daniel,
can you please provide a *.RC File for your great Solution
can you please provide a *.RC File for your great Solution
greeting,
Jimmy
Jimmy
-
- Posts: 26
- Joined: Tue Mar 20, 2012 11:06 pm
Re: SAPI : change Voice
Here --->> https://forums.fivetechsupport.com/view ... hp?t=12983Jimmy wrote:hi Daniel,
can you please provide a *.RC File for your great Solution
Re: SAPI : change Voice
hi,
thx for Link to *.RC
---
i can "see"
but how to get Event to call Function like in MSDN Sample ?
https://learn.microsoft.com/en-us/previ ... 3(v=vs.85)
thx for Link to *.RC
---
i can "see"
Code: Select all | Expand
oSpVoice:EventInterests := SVEAllEvents + SVEAudioLevel
https://learn.microsoft.com/en-us/previ ... 3(v=vs.85)
greeting,
Jimmy
Jimmy
- Antonio Linares
- Site Admin
- Posts: 42259
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: SAPI : change Voice
> but how to get Event to call Function like in MSDN Sample ?
oVoice:__hSink := __axRegisterHandler( oVoice:__hObj, { | x, y | QOut( x, y ) } )
oVoice:__hSink := __axRegisterHandler( oVoice:__hObj, { | x, y | QOut( x, y ) } )
Re: SAPI : change Voice
hi Antonio,
i have add that Line into Sample CODE, but nothing "seem" to happen using QOut()
when change into MsgInfo() it does "fire" a lot, but "what" are x,y
i have try to FWLOG
but it crash ...
---
i want to get "Word" Event to highlight Word which is spoken
Code: Select all | Expand
oVoice:__hSink := __axRegisterHandler( oVoice:__hObj, { | x, y | QOut( x, y ) } )
when change into MsgInfo() it does "fire" a lot, but "what" are x,y
i have try to FWLOG
Code: Select all | Expand
oVoice:__hSink := __axRegisterHandler( oVoice:__hObj, { | a,b,c,d | LogFile( a, b,c, d ) } )
PROCEDURE LogFile( a, b,c, d )
DEFAULT a := ""
DEFAULT b := ""
DEFAULT c := ""
DEFAULT d := ""
FWLOG hb_valToExp(a), hb_valToExp(b),hb_valToExp(c),hb_valToExp(d)
RETURN
---
i want to get "Word" Event to highlight Word which is spoken
Code: Select all | Expand
PROCEDURE oSpVoice_Word(StreamNumber, StreamPosition , CharacterPosition , Length )
* In order to show this selection,
* the Text1.HideSelection property must be False!
SetProperty(SPEAK,"oGetText","SelStart", CharacterPosition )
SetProperty(SPEAK,"oGetText","SelLength", Length )
Domethod(SPEAK,"oGetText","SetFocus")
* Domethod(SPEAK,"oGetText","ScrolltoCaret")
RETURN
greeting,
Jimmy
Jimmy
-
- Posts: 26
- Joined: Tue Mar 20, 2012 11:06 pm
Re: SAPI : change Voice
Hola Antonio :
en otro "post https://forums.fivetechsupport.com/view ... 2#p267309" uds respondió
Saludos !!
en otro "post https://forums.fivetechsupport.com/view ... 2#p267309" uds respondió
Me imagino que su tiempo debe ser muy ocupado para responder todas las consultas dentro del foro, yo en mi caso solo lo hago mientras desayuno o después de la cena e intento hacer una pequeña contribución.Antonio Linares wrote:Dear Jimmy,
Reviewing Harbour OLE implementation it seems as this is the way:
oVoice:__hSink := __axRegisterHandler( oVoice:__hObj, { | x, y | MsgInfo( x, y ) } )
but here in my tests it is not working as expected.
Maybe another Harbour OLE bug ? I am doing some research to find the right way...
Saludos !!
- Antonio Linares
- Site Admin
- Posts: 42259
- Joined: Thu Oct 06, 2005 5:47 pm
- Location: Spain
- Contact:
Re: SAPI : change Voice
Dear Jimmy,
> when change into MsgInfo() it does "fire" a lot, but "what" are x,y
These are VERY GOOD news !!!
Please send me your PRG as you are using it so MsgInfo() gets called, please!!!
> when change into MsgInfo() it does "fire" a lot, but "what" are x,y
These are VERY GOOD news !!!
Please send me your PRG as you are using it so MsgInfo() gets called, please!!!
Re: SAPI : change Voice
hi Antonio,
the CODE i use is from this Thread https://forums.fivetechsupport.com/view ... hp?t=12983
---
i have change it to Log "output" this Way
and use this Function
now i got Parameter a,b,c,d when press "play" ... but what does they mean
the CODE i use is from this Thread https://forums.fivetechsupport.com/view ... hp?t=12983
---
i have change it to Log "output" this Way
Code: Select all | Expand
SET ALTER ON
SET ALTER TO "_LOGIT2.TXT "
...
oVoice:__hSink := __axRegisterHandler( oVoice:__hObj, { | a, b,c,d | OnDummy( a, b,c, d ) } )
Code: Select all | Expand
FUNCTION onDummy()
LOCAL iMax := PCOUNT()
LOCAL i
LOCAL cText := ""
LOCAL xValue
FOR i := 1 TO iMax - 1
cText += Var2Char( PValue( i ) ) + CHR( 9 )
NEXT
cText += Var2Char( PValue( iMax ) )
IF EMPTY( cText )
cText := TIME() + " no Parameter ? " + CRLF + PROCNAME( 1 ) + STR( PROCLINE( 1 ) ) + CRLF + PROCNAME( 2 ) + STR( PROCLINE( 2 ) )
ENDIF
SET CONSOLE OFF
SET ALTER ON
// ? cText
QOUT( cText )
SET ALTER OFF
SET CONSOLE ON
RETURN NIL
FUNCTION VAR2CHAR( cIn )
LOCAL cOut := hb_valToExp( cIn )
RETURN STRTRAN( cOut, '"', '' )
Code: Select all | Expand
1 1 0.00 NIL
3 1 0.00 __itemSetObj( {{__HOBJ, <pointer>}}, {{WIN_OLEAUTO,}} )
7 1 0.00 0
6 1 0.00 100
8 1 0.00 100
5 1 3200.00 0
6 1 3200.00 125
8 1 3200.00 125
6 1 7200.00 77
8 1 7200.00 155
6 1 9680.00 77
5 1 12160.00 3
6 1 12160.00 55
8 1 12160.00 55
6 1 13920.00 90
8 1 13920.00 90
5 1 16800.00 7
6 1 16800.00 87
8 1 16800.00 175
6 1 19600.00 87
5 1 22400.00 9
6 1 22400.00 45
8 1 22400.00 45
6 1 23840.00 60
8 1 23840.00 60
5 1 25760.00 12
6 1 25760.00 80
8 1 25760.00 80
6 1 28320.00 55
8 1 28320.00 55
6 1 30080.00 60
8 1 30080.00 60
6 1 32000.00 65
8 1 32000.00 65
6 1 34080.00 65
8 1 34080.00 65
6 1 36160.00 60
8 1 36160.00 60
6 1 38080.00 70
8 1 38080.00 70
6 1 40320.00 70
8 1 40320.00 70
6 1 42560.00 140
8 1 42560.00 70
8 1 44800.00 70
6 1 47040.00 60
8 1 47040.00 60
6 1 48960.00 75
8 1 48960.00 75
6 1 51360.00 105
8 1 51360.00 105
5 1 54720.00 26
6 1 54720.00 40
8 1 54720.00 40
6 1 56000.00 45
8 1 56000.00 45
5 1 57440.00 29
6 1 57440.00 115
8 1 57440.00 115
6 1 61120.00 165
8 1 61120.00 82
8 1 63760.00 82
6 1 66400.00 105
8 1 66400.00 105
6 1 69760.00 60
8 1 69760.00 60
6 1 71680.00 75
8 1 71680.00 75
6 1 74080.00 140
8 1 74080.00 140
6 1 78560.00 500
8 1 78560.00 500
5 1 94560.00 38
6 1 94560.00 130
8 1 94560.00 130
6 1 98720.00 105
8 1 98720.00 105
6 1 102080.00 55
8 1 102080.00 55
6 1 103840.00 75
8 1 103840.00 75
6 1 106240.00 130
8 1 106240.00 65
8 1 108320.00 65
6 1 110400.00 75
8 1 110400.00 75
6 1 112800.00 135
8 1 112800.00 135
5 1 117120.00 45
6 1 117120.00 105
8 1 117120.00 105
6 1 120480.00 65
8 1 120480.00 65
6 1 122560.00 135
8 1 122560.00 135
5 1 126880.00 49
6 1 126880.00 60
8 1 126880.00 60
6 1 128800.00 60
8 1 128800.00 60
6 1 130720.00 45
8 1 130720.00 45
6 1 132160.00 65
8 1 132160.00 65
6 1 134240.00 65
8 1 134240.00 65
6 1 136320.00 45
8 1 136320.00 45
6 1 137760.00 60
8 1 137760.00 60
6 1 139680.00 55
8 1 139680.00 55
6 1 141440.00 135
8 1 141440.00 67
8 1 143600.00 67
6 1 145760.00 60
8 1 145760.00 60
6 1 147680.00 100
8 1 147680.00 100
6 1 150880.00 65
8 1 150880.00 65
5 1 152960.00 63
6 1 152960.00 55
8 1 152960.00 55
6 1 154720.00 60
8 1 154720.00 60
6 1 156640.00 70
8 1 156640.00 70
6 1 158880.00 65
8 1 158880.00 65
6 1 160960.00 60
8 1 160960.00 60
6 1 162880.00 100
8 1 162880.00 100
6 1 166080.00 45
8 1 166080.00 45
6 1 167520.00 130
8 1 167520.00 130
5 1 171680.00 72
6 1 171680.00 87
8 1 171680.00 175
6 1 174480.00 87
5 1 177280.00 74
6 1 177280.00 120
8 1 177280.00 120
6 1 181120.00 105
8 1 181120.00 105
6 1 184480.00 95
8 1 184480.00 95
6 1 187520.00 55
8 1 187520.00 55
6 1 189280.00 60
8 1 189280.00 60
6 1 191200.00 90
8 1 191200.00 90
6 1 194080.00 125
8 1 194080.00 125
6 1 198080.00 200
8 1 198080.00 200
6 1 204480.00 750
8 1 204480.00 750
7 1 228480.00 85
6 1 228480.00 100
8 1 228480.00 100
5 1 231680.00 85
6 1 231680.00 55
8 1 231680.00 55
6 1 233440.00 55
8 1 233440.00 55
5 1 235200.00 88
6 1 235200.00 50
8 1 235200.00 50
6 1 236800.00 65
8 1 236800.00 65
6 1 238880.00 110
8 1 238880.00 110
6 1 242400.00 75
8 1 242400.00 75
6 1 244800.00 50
8 1 244800.00 50
6 1 246400.00 105
8 1 246400.00 105
6 1 249760.00 65
8 1 249760.00 65
6 1 251840.00 105
8 1 251840.00 105
5 1 255200.00 99
6 1 255200.00 45
8 1 255200.00 45
6 1 256640.00 80
8 1 256640.00 80
5 1 259200.00 102
6 1 259200.00 90
8 1 259200.00 90
6 1 262080.00 85
8 1 262080.00 85
6 1 264800.00 40
8 1 264800.00 40
6 1 266080.00 60
8 1 266080.00 60
6 1 268000.00 100
8 1 268000.00 100
6 1 271200.00 75
8 1 271200.00 75
6 1 273600.00 135
8 1 273600.00 67
8 1 275760.00 67
6 1 277920.00 45
8 1 277920.00 45
6 1 279360.00 80
8 1 279360.00 80
6 1 281920.00 55
8 1 281920.00 55
6 1 283680.00 55
8 1 283680.00 55
6 1 285440.00 90
8 1 285440.00 90
5 1 288320.00 115
6 1 288320.00 40
8 1 288320.00 40
6 1 289600.00 60
8 1 289600.00 60
5 1 291520.00 118
6 1 291520.00 65
8 1 291520.00 65
6 1 293600.00 45
8 1 293600.00 45
6 1 295040.00 85
8 1 295040.00 85
6 1 297760.00 35
8 1 297760.00 35
6 1 298880.00 115
8 1 298880.00 115
6 1 302560.00 95
8 1 302560.00 95
5 1 305600.00 126
6 1 305600.00 95
8 1 305600.00 95
6 1 308640.00 85
8 1 308640.00 85
6 1 311360.00 50
8 1 311360.00 50
6 1 312960.00 55
8 1 312960.00 55
6 1 314720.00 55
8 1 314720.00 55
6 1 316480.00 130
8 1 316480.00 65
8 1 318560.00 65
6 1 320640.00 90
8 1 320640.00 90
6 1 323520.00 90
8 1 323520.00 90
6 1 326400.00 55
8 1 326400.00 55
6 1 328160.00 170
8 1 328160.00 170
6 1 333600.00 500
8 1 333600.00 500
5 1 349600.00 138
6 1 349600.00 65
8 1 349600.00 65
6 1 351680.00 90
8 1 351680.00 90
6 1 354560.00 150
8 1 354560.00 150
6 1 359360.00 500
8 1 359360.00 500
5 1 375360.00 140
6 1 375360.00 190
8 1 375360.00 190
6 1 381440.00 60
8 1 381440.00 120
6 1 383360.00 60
6 1 385280.00 65
8 1 385280.00 65
6 1 387360.00 70
8 1 387360.00 70
6 1 389600.00 110
8 1 389600.00 110
6 1 393120.00 40
8 1 393120.00 80
6 1 394400.00 40
5 1 395680.00 148
6 1 395680.00 60
8 1 395680.00 60
6 1 397600.00 65
8 1 397600.00 65
6 1 399680.00 110
8 1 399680.00 110
6 1 403200.00 80
8 1 403200.00 80
6 1 405760.00 60
8 1 405760.00 60
6 1 407680.00 105
8 1 407680.00 105
6 1 411040.00 80
8 1 411040.00 80
5 1 413600.00 150
6 1 413600.00 110
8 1 413600.00 110
6 1 417120.00 165
8 1 417120.00 82
8 1 419760.00 82
6 1 422400.00 105
8 1 422400.00 105
6 1 425760.00 60
8 1 425760.00 60
6 1 427680.00 75
8 1 427680.00 75
6 1 430080.00 200
8 1 430080.00 200
6 1 436480.00 750
8 1 436480.00 750
7 1 460480.00 159
6 1 460480.00 100
8 1 460480.00 100
5 1 463680.00 159
6 1 463680.00 85
8 1 463680.00 85
6 1 466400.00 125
8 1 466400.00 125
6 1 470400.00 65
8 1 470400.00 65
6 1 472480.00 200
8 1 472480.00 200
6 1 478880.00 750
8 1 478880.00 750
7 1 502880.00 165
6 1 502880.00 100
8 1 502880.00 100
5 1 506080.00 165
6 1 506080.00 80
8 1 506080.00 80
6 1 508640.00 85
8 1 508640.00 85
5 1 511360.00 169
6 1 511360.00 72
8 1 511360.00 145
6 1 513680.00 72
5 1 516000.00 171
6 1 516000.00 85
8 1 516000.00 85
6 1 518720.00 60
8 1 518720.00 60
6 1 520640.00 75
8 1 520640.00 75
6 1 523040.00 80
8 1 523040.00 80
6 1 525600.00 40
8 1 525600.00 40
6 1 526880.00 60
8 1 526880.00 60
6 1 528800.00 100
8 1 528800.00 100
6 1 532000.00 85
8 1 532000.00 85
6 1 534720.00 55
8 1 534720.00 55
6 1 536480.00 75
8 1 536480.00 75
6 1 538880.00 65
8 1 538880.00 65
6 1 540960.00 70
8 1 540960.00 70
6 1 543200.00 52
8 1 543200.00 105
6 1 544880.00 52
6 1 546560.00 130
8 1 546560.00 130
6 1 550720.00 65
8 1 550720.00 65
5 1 552800.00 182
6 1 552800.00 75
8 1 552800.00 75
6 1 555200.00 110
8 1 555200.00 110
6 1 558720.00 85
8 1 558720.00 85
5 1 561440.00 186
6 1 561440.00 90
8 1 561440.00 90
6 1 564320.00 60
8 1 564320.00 60
6 1 566240.00 70
8 1 566240.00 70
6 1 568480.00 90
8 1 568480.00 45
8 1 569920.00 45
6 1 571360.00 105
8 1 571360.00 105
6 1 574720.00 60
8 1 574720.00 60
6 1 576640.00 75
8 1 576640.00 75
6 1 579040.00 110
8 1 579040.00 110
6 1 582560.00 115
8 1 582560.00 115
6 1 586240.00 80
8 1 586240.00 80
5 1 588800.00 196
6 1 588800.00 90
8 1 588800.00 90
6 1 591680.00 125
8 1 591680.00 125
6 1 595680.00 75
8 1 595680.00 75
6 1 598080.00 90
8 1 598080.00 90
6 1 600960.00 60
8 1 600960.00 60
6 1 602880.00 95
8 1 602880.00 95
6 1 605920.00 105
8 1 605920.00 105
6 1 609280.00 80
8 1 609280.00 80
5 1 611840.00 205
6 1 611840.00 65
8 1 611840.00 65
6 1 613920.00 85
8 1 613920.00 85
5 1 616640.00 209
6 1 616640.00 75
8 1 616640.00 75
6 1 619040.00 80
8 1 619040.00 80
6 1 621600.00 65
8 1 621600.00 65
6 1 623680.00 70
8 1 623680.00 70
6 1 625920.00 75
8 1 625920.00 75
5 1 628320.00 215
6 1 628320.00 50
8 1 628320.00 50
6 1 629920.00 95
8 1 629920.00 95
6 1 632960.00 60
8 1 632960.00 60
6 1 634880.00 60
8 1 634880.00 60
5 1 636800.00 220
6 1 636800.00 110
8 1 636800.00 110
6 1 640320.00 85
8 1 640320.00 85
6 1 643040.00 55
8 1 643040.00 55
6 1 644800.00 55
8 1 644800.00 55
6 1 646560.00 80
8 1 646560.00 80
5 1 649120.00 226
6 1 649120.00 95
8 1 649120.00 95
6 1 652160.00 57
8 1 652160.00 115
6 1 654000.00 57
6 1 655840.00 55
8 1 655840.00 55
6 1 657600.00 90
8 1 657600.00 90
5 1 660480.00 231
6 1 660480.00 95
8 1 660480.00 95
6 1 663520.00 75
8 1 663520.00 75
6 1 665920.00 60
8 1 665920.00 60
6 1 667840.00 80
8 1 667840.00 80
6 1 670400.00 65
8 1 670400.00 65
6 1 672480.00 60
8 1 672480.00 60
6 1 674400.00 110
8 1 674400.00 110
6 1 677920.00 25
8 1 677920.00 50
6 1 678720.00 25
5 1 679520.00 241
6 1 679520.00 95
8 1 679520.00 95
6 1 682560.00 60
8 1 682560.00 60
6 1 684480.00 60
8 1 684480.00 60
6 1 686400.00 60
8 1 686400.00 60
6 1 688320.00 65
8 1 688320.00 65
6 1 690400.00 75
8 1 690400.00 75
6 1 692800.00 60
8 1 692800.00 60
6 1 694720.00 75
8 1 694720.00 75
6 1 697120.00 80
8 1 697120.00 80
6 1 699680.00 70
8 1 699680.00 70
6 1 701920.00 75
8 1 701920.00 75
6 1 704320.00 200
8 1 704320.00 200
6 1 710720.00 750
8 1 710720.00 750
7 1 734720.00 256
6 1 734720.00 100
8 1 734720.00 100
5 1 737920.00 256
6 1 737920.00 70
8 1 737920.00 70
6 1 740160.00 125
8 1 740160.00 125
6 1 744160.00 45
8 1 744160.00 45
6 1 745600.00 105
8 1 745600.00 105
6 1 748960.00 100
8 1 748960.00 100
6 1 752160.00 90
8 1 752160.00 90
5 1 755040.00 260
6 1 755040.00 95
8 1 755040.00 95
6 1 758080.00 80
8 1 758080.00 80
6 1 760640.00 40
8 1 760640.00 40
6 1 761920.00 65
8 1 761920.00 65
6 1 764000.00 100
8 1 764000.00 100
6 1 767200.00 70
8 1 767200.00 70
6 1 769440.00 140
8 1 769440.00 70
8 1 771680.00 70
6 1 773920.00 40
8 1 773920.00 40
6 1 775200.00 80
8 1 775200.00 80
6 1 777760.00 55
8 1 777760.00 55
6 1 779520.00 55
8 1 779520.00 55
6 1 781280.00 80
8 1 781280.00 80
5 1 783840.00 273
6 1 783840.00 40
8 1 783840.00 40
6 1 785120.00 60
8 1 785120.00 60
5 1 787040.00 276
6 1 787040.00 65
8 1 787040.00 65
6 1 789120.00 50
8 1 789120.00 50
6 1 790720.00 85
8 1 790720.00 85
6 1 793440.00 55
8 1 793440.00 55
6 1 795200.00 165
8 1 795200.00 165
6 1 800480.00 200
8 1 800480.00 200
6 1 806880.00 750
8 1 806880.00 750
2 1 830880.00 NIL
greeting,
Jimmy
Jimmy