Unix Technical Forum

SEO

vBulletin Search Engine Optimization


Go Back   Unix Technical Forum > Unix Operating Systems > Sco Unix

Register FAQ Members List Calendar Search Today's Posts Mark Forums Read
  #1 (permalink)  
Old 05-05-2008, 05:50 AM
Enrique Arredondo
 
Posts: n/a
Default OSR 507 using an external modem with an USB serial to Ethernet adapter

I have a device called the UDS1100 made by lantronix that let's me convert
any serial device into a TCP IP device, I tried this on printers and dumb
terminals and it works really good. My final task is to move my fax modems
that I run with VSIFAX on unix from tty1A13 or tty3E13 into this new device.

Has anyone played out with this configuration and figure out a way of making
the scripts or dialers that communicate with the modem to hit the assigned
IP address and port so the modem works ?

In the case of the printer my "model" file starts with :

#!/bin/sh
YOUR_PRINTER_OR_IP="192.168.2.19"
PORT=9100


and then I just assign the printer to that model and use /dev/null and that
works out great.


Can I do the same trick for the external modem thru the "Serial-Ethernet"
device that wants to be called on port 10001 ?
IP address= "192.168.6.182"
Port="10001"

Thanks





Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #2 (permalink)  
Old 05-07-2008, 06:19 PM
Enrique Arredondo
 
Posts: n/a
Default Re: OSR 507 using an external modem with an USB serial to Ethernet adapter


"Brian K. White" <brian@aljex.com> wrote in message
news:029701c8ab4b$77248c80$6b00000a@venti...

----- Original Message -----
From: "Enrique Arredondo" <atk@sbcglobal.net>
Newsgroups: comp.unix.sco.misc
To: <distro@jpr.com>
Sent: Tuesday, April 29, 2008 5:25 PM
Subject: Re: OSR 507 using an external modem with an USB serial to Ethernet
adapter


>
> "Brian K. White" <brian@aljex.com> wrote in message
> news:036901c8a979$f60c7e50$3a8d53d0@venti...
>
> ----- Original Message -----
> From: "Enrique Arredondo" <atk@sbcglobal.net>
> Newsgroups: comp.unix.sco.misc
> To: <distro@jpr.com>
> Sent: Monday, April 28, 2008 3:52 PM
> Subject: OSR 507 using an external modem with an USB serial to Ethernet
> adapter
>
>
>>I have a device called the UDS1100 made by lantronix that let's me convert
>> any serial device into a TCP IP device, I tried this on printers and dumb
>> terminals and it works really good. My final task is to move my fax
>> modems
>> that I run with VSIFAX on unix from tty1A13 or tty3E13 into this new
>> device.
>>
>> Has anyone played out with this configuration and figure out a way of
>> making
>> the scripts or dialers that communicate with the modem to hit the
>> assigned
>> IP address and port so the modem works ?
>>
>> In the case of the printer my "model" file starts with :
>>
>> #!/bin/sh
>> YOUR_PRINTER_OR_IP="192.168.2.19"
>> PORT=9100
>>
>>
>> and then I just assign the printer to that model and use /dev/null and
>> that
>> works out great.
>>
>>
>> Can I do the same trick for the external modem thru the "Serial-Ethernet"
>> device that wants to be called on port 10001 ?
>> IP address= "192.168.6.182"
>> Port="10001"
>>
>> Thanks

>
> I have used a few different serial device servers (digi, equinox, perle)
> with fax modems and both hylafax and vsifax.
>
> However:
>
> * In all cases the device had a driver and/or daemon that provided tty
> device nodes that work just like ordinary hardware serial ports. vsifax
> didn't need any special config, just tell it the tty device name and
> perhaps
> doctor the permissions on those tty's for vsifax.
>
> * You are really not supposed to use fax modems over tcp like that because
> the fax protocol is very timing dependant, and the tcp/ip layer makes few
> promises about timing, so you may or may not see a lot of failed faxes
> even
> though everything is configured absolutely perfectly. This is not my
> opinion
> but the word right from ifax (hylafax) and VSI.
>
> I had a lightly loaded gigabit network and only about 8 modems on a 32
> port
> digi (or a 16 port equinox for a while). Nics, switch, and digi were all
> pretty over specced for the dribble of traffic 8 14.4kb modems can
> deliver.
> It _mostly_ worked ok. I don't do that any more though.
>
> --
> Brian K. White brian@aljex.com http://www.myspace.com/KEYofR
> +++++[>+++[>+++++>+++++++<<-]<-]>>+.>.+++++.+++++++.-.[>+<---]>++.
> filePro BBx Linux SCO FreeBSD #callahans Satriani Filk!
>
>
> How about if I create a "VIRTUAL Serial Port" and then use that one
> instead
> ? Is there such thing on SCO Unix ?


What did I just say?
Thats exactly what I just said the drivers for most such devices provide.

I looks and smells just like a serial port, so, from the software's point of
view it thinks it's fine.

But that doesn't mean it will actually _work_ well, even though the virtual
port driver is perfectly robust.

The problem has to do with timing. The fax protocol requires things to
happen within specific windows of time, and tcp/ip does not garantee that
any given packet will get delivered within any specific window of time.

Confusingly, on most reasonable lan's it'll actually work ok mostly, but
even on an over-spec'd lan, tcp/ip just plain doesn't make promises about
how long a given packet will take to get delivered. That means sometimes the
fax protocol will break no matter what. Even on a lightly loaded lan there
are spikes and bursts of other traffic, and those will cause your virtual
port traffic to incur little pauses, a packet may take 300 ms to get
delivered instead of .01 ms, and the fax that was in progress fails because
the handshaking protocol broke because the server needed to acknowledge the
next phase within 50ms and it took 10 ms to actually do the work and then
the virtual port took another 300 ms to react to a command because the
tcp/ip packet that delivered the command took that long to get to the serial
device server.

If you had a switch that allows you to set QoS levels then you could give
traffic on the tcp port that the virtual serial driver uses higher priority,
like what you do for voip. That would probably reduce the occurance of
delayed commands significantly.

And if you use only fax class 2 modems then since they do most of the fax
protocol in the modem hardware, that will probably also help to ensure it
works even more often since it would reduce the number of timing-critical
commands between the server and the modem.

But it still can never be 100% that way because tcp/ip just plain does not
promise that anything ever will happen either instantly nor even within any
specific time, whereas the fax protocol does require and promise that
various things happen within various times.

--
Brian K. White brian@aljex.com http://www.myspace.com/KEYofR
+++++[>+++[>+++++>+++++++<<-]<-]>>+.>.+++++.+++++++.-.[>+<---]>++.
filePro BBx Linux SCO FreeBSD #callahans Satriani Filk!

I did it!!

I compiled this code :
ftp://ftp.lantronix.com/priv/svr_tty/svr_tty-README.txt

created a config file,

runned the daemon

and fax is working!!!!!

the only thing is that now ssh can't create ptyp ports or some strange thing
that I thing is related to this program that locks a device.


Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #3 (permalink)  
Old 05-10-2008, 02:01 PM
Enrique Arredondo
 
Posts: n/a
Default Re: OSR 507 using an external modem with an USB serial to Ethernet adapter


"Enrique Arredondo" <atk@sbcglobal.net> wrote in message
news:fH1Uj.15927$2g1.4046@nlpi068.nbdc.sbc.com...
>
> "Brian K. White" <brian@aljex.com> wrote in message
> news:029701c8ab4b$77248c80$6b00000a@venti...
>
> ----- Original Message -----
> From: "Enrique Arredondo" <atk@sbcglobal.net>
> Newsgroups: comp.unix.sco.misc
> To: <distro@jpr.com>
> Sent: Tuesday, April 29, 2008 5:25 PM
> Subject: Re: OSR 507 using an external modem with an USB serial to
> Ethernet adapter
>
>
>>
>> "Brian K. White" <brian@aljex.com> wrote in message
>> news:036901c8a979$f60c7e50$3a8d53d0@venti...
>>
>> ----- Original Message -----
>> From: "Enrique Arredondo" <atk@sbcglobal.net>
>> Newsgroups: comp.unix.sco.misc
>> To: <distro@jpr.com>
>> Sent: Monday, April 28, 2008 3:52 PM
>> Subject: OSR 507 using an external modem with an USB serial to Ethernet
>> adapter
>>
>>
>>>I have a device called the UDS1100 made by lantronix that let's me
>>>convert
>>> any serial device into a TCP IP device, I tried this on printers and
>>> dumb
>>> terminals and it works really good. My final task is to move my fax
>>> modems
>>> that I run with VSIFAX on unix from tty1A13 or tty3E13 into this new
>>> device.
>>>
>>> Has anyone played out with this configuration and figure out a way of
>>> making
>>> the scripts or dialers that communicate with the modem to hit the
>>> assigned
>>> IP address and port so the modem works ?
>>>
>>> In the case of the printer my "model" file starts with :
>>>
>>> #!/bin/sh
>>> YOUR_PRINTER_OR_IP="192.168.2.19"
>>> PORT=9100
>>>
>>>
>>> and then I just assign the printer to that model and use /dev/null and
>>> that
>>> works out great.
>>>
>>>
>>> Can I do the same trick for the external modem thru the
>>> "Serial-Ethernet"
>>> device that wants to be called on port 10001 ?
>>> IP address= "192.168.6.182"
>>> Port="10001"
>>>
>>> Thanks

>>
>> I have used a few different serial device servers (digi, equinox, perle)
>> with fax modems and both hylafax and vsifax.
>>
>> However:
>>
>> * In all cases the device had a driver and/or daemon that provided tty
>> device nodes that work just like ordinary hardware serial ports. vsifax
>> didn't need any special config, just tell it the tty device name and
>> perhaps
>> doctor the permissions on those tty's for vsifax.
>>
>> * You are really not supposed to use fax modems over tcp like that
>> because
>> the fax protocol is very timing dependant, and the tcp/ip layer makes few
>> promises about timing, so you may or may not see a lot of failed faxes
>> even
>> though everything is configured absolutely perfectly. This is not my
>> opinion
>> but the word right from ifax (hylafax) and VSI.
>>
>> I had a lightly loaded gigabit network and only about 8 modems on a 32
>> port
>> digi (or a 16 port equinox for a while). Nics, switch, and digi were all
>> pretty over specced for the dribble of traffic 8 14.4kb modems can
>> deliver.
>> It _mostly_ worked ok. I don't do that any more though.
>>
>> --
>> Brian K. White brian@aljex.com http://www.myspace.com/KEYofR
>> +++++[>+++[>+++++>+++++++<<-]<-]>>+.>.+++++.+++++++.-.[>+<---]>++.
>> filePro BBx Linux SCO FreeBSD #callahans Satriani Filk!
>>
>>
>> How about if I create a "VIRTUAL Serial Port" and then use that one
>> instead
>> ? Is there such thing on SCO Unix ?

>
> What did I just say?
> Thats exactly what I just said the drivers for most such devices provide.
>
> I looks and smells just like a serial port, so, from the software's point
> of view it thinks it's fine.
>
> But that doesn't mean it will actually _work_ well, even though the
> virtual port driver is perfectly robust.
>
> The problem has to do with timing. The fax protocol requires things to
> happen within specific windows of time, and tcp/ip does not garantee that
> any given packet will get delivered within any specific window of time.
>
> Confusingly, on most reasonable lan's it'll actually work ok mostly, but
> even on an over-spec'd lan, tcp/ip just plain doesn't make promises about
> how long a given packet will take to get delivered. That means sometimes
> the fax protocol will break no matter what. Even on a lightly loaded lan
> there are spikes and bursts of other traffic, and those will cause your
> virtual port traffic to incur little pauses, a packet may take 300 ms to
> get delivered instead of .01 ms, and the fax that was in progress fails
> because the handshaking protocol broke because the server needed to
> acknowledge the next phase within 50ms and it took 10 ms to actually do
> the work and then the virtual port took another 300 ms to react to a
> command because the tcp/ip packet that delivered the command took that
> long to get to the serial device server.
>
> If you had a switch that allows you to set QoS levels then you could give
> traffic on the tcp port that the virtual serial driver uses higher
> priority, like what you do for voip. That would probably reduce the
> occurance of delayed commands significantly.
>
> And if you use only fax class 2 modems then since they do most of the fax
> protocol in the modem hardware, that will probably also help to ensure it
> works even more often since it would reduce the number of timing-critical
> commands between the server and the modem.
>
> But it still can never be 100% that way because tcp/ip just plain does not
> promise that anything ever will happen either instantly nor even within
> any specific time, whereas the fax protocol does require and promise that
> various things happen within various times.
>
> --
> Brian K. White brian@aljex.com http://www.myspace.com/KEYofR
> +++++[>+++[>+++++>+++++++<<-]<-]>>+.>.+++++.+++++++.-.[>+<---]>++.
> filePro BBx Linux SCO FreeBSD #callahans Satriani Filk!
>
> I did it!!
>
> I compiled this code :
> ftp://ftp.lantronix.com/priv/svr_tty/svr_tty-README.txt
>
> created a config file,
>
> runned the daemon
>
> and fax is working!!!!!
>
> the only thing is that now ssh can't create ptyp ports or some strange
> thing
> that I thing is related to this program that locks a device.
>
>


well , what can I say, you were right from the beggining, but I tried, Fax
is sent with no problems, but the other side gets a fax that it's fine on
some rows and them fades on other rows and so on :P

So I'll keep tweaking it or getting one of those class 2 modems.

thanks.


Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #4 (permalink)  
Old 05-10-2008, 02:01 PM
Bill Campbell
 
Posts: n/a
Default Re: OSR 507 using an external modem with an USB serial to Ethernetadapter

On Thu, May 08, 2008, Enrique Arredondo wrote:
....
>
>well , what can I say, you were right from the beggining, but I tried, Fax
>is sent with no problems, but the other side gets a fax that it's fine on
>some rows and them fades on other rows and so on :P
>
>So I'll keep tweaking it or getting one of those class 2 modems.


I have found with HylaFAX and Multitech MT5634ZBA modems that it works best
configured as Class 1, not Class 2 as I would have expected. I am
attaching a working HylaFAX configuration file from the SLES9 system that
handles our incoming and outgoing faxes.

I have found that some experimentation may be required sending faxes as not
all fax machines are created equal. There are several sendfax options for
compression, speed, etc. that may be tweaked to get things working right
for a particular destination.

Bill
--
INTERNET: bill@celestial.com Bill Campbell; Celestial Software LLC
URL: http://www.celestial.com/ PO Box 820; 6641 E. Mercer Way
Voice: (206) 236-1676 Mercer Island, WA 98040-0820
Fax: (206) 232-9186

Rightful liberty is unobstructed action according to our will within
limits drawn around us by the equal rights of others. I do not add 'within
the limits of the law' because law is often but the tyrant's will, and
always so when it violates the rights of the individual.
-Thomas Jefferson

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
  #5 (permalink)  
Old 05-10-2008, 02:01 PM
Brian K. White
 
Posts: n/a
Default Re: OSR 507 using an external modem with an USB serial to Ethernet adapter


----- Original Message -----
From: "Enrique Arredondo" <atk@sbcglobal.net>
Newsgroups: comp.unix.sco.misc
To: <distro@jpr.com>
Sent: Thursday, May 08, 2008 6:50 PM
Subject: Re: OSR 507 using an external modem with an USB serial to Ethernet adapter


>
> "Enrique Arredondo" <atk@sbcglobal.net> wrote in message
> news:fH1Uj.15927$2g1.4046@nlpi068.nbdc.sbc.com...
>>
>> "Brian K. White" <brian@aljex.com> wrote in message
>> news:029701c8ab4b$77248c80$6b00000a@venti...
>>
>> ----- Original Message -----
>> From: "Enrique Arredondo" <atk@sbcglobal.net>
>> Newsgroups: comp.unix.sco.misc
>> To: <distro@jpr.com>
>> Sent: Tuesday, April 29, 2008 5:25 PM
>> Subject: Re: OSR 507 using an external modem with an USB serial to
>> Ethernet adapter
>>
>>
>>>
>>> "Brian K. White" <brian@aljex.com> wrote in message
>>> news:036901c8a979$f60c7e50$3a8d53d0@venti...
>>>
>>> ----- Original Message -----
>>> From: "Enrique Arredondo" <atk@sbcglobal.net>
>>> Newsgroups: comp.unix.sco.misc
>>> To: <distro@jpr.com>
>>> Sent: Monday, April 28, 2008 3:52 PM
>>> Subject: OSR 507 using an external modem with an USB serial to Ethernet
>>> adapter
>>>
>>>
>>>>I have a device called the UDS1100 made by lantronix that let's me
>>>>convert
>>>> any serial device into a TCP IP device, I tried this on printers and
>>>> dumb
>>>> terminals and it works really good. My final task is to move my fax
>>>> modems
>>>> that I run with VSIFAX on unix from tty1A13 or tty3E13 into this new
>>>> device.
>>>>
>>>> Has anyone played out with this configuration and figure out a way of
>>>> making
>>>> the scripts or dialers that communicate with the modem to hit the
>>>> assigned
>>>> IP address and port so the modem works ?
>>>>
>>>> In the case of the printer my "model" file starts with :
>>>>
>>>> #!/bin/sh
>>>> YOUR_PRINTER_OR_IP="192.168.2.19"
>>>> PORT=9100
>>>>
>>>>
>>>> and then I just assign the printer to that model and use /dev/null and
>>>> that
>>>> works out great.
>>>>
>>>>
>>>> Can I do the same trick for the external modem thru the
>>>> "Serial-Ethernet"
>>>> device that wants to be called on port 10001 ?
>>>> IP address= "192.168.6.182"
>>>> Port="10001"
>>>>
>>>> Thanks
>>>
>>> I have used a few different serial device servers (digi, equinox, perle)
>>> with fax modems and both hylafax and vsifax.
>>>
>>> However:
>>>
>>> * In all cases the device had a driver and/or daemon that provided tty
>>> device nodes that work just like ordinary hardware serial ports. vsifax
>>> didn't need any special config, just tell it the tty device name and
>>> perhaps
>>> doctor the permissions on those tty's for vsifax.
>>>
>>> * You are really not supposed to use fax modems over tcp like that
>>> because
>>> the fax protocol is very timing dependant, and the tcp/ip layer makes few
>>> promises about timing, so you may or may not see a lot of failed faxes
>>> even
>>> though everything is configured absolutely perfectly. This is not my
>>> opinion
>>> but the word right from ifax (hylafax) and VSI.
>>>
>>> I had a lightly loaded gigabit network and only about 8 modems on a 32
>>> port
>>> digi (or a 16 port equinox for a while). Nics, switch, and digi were all
>>> pretty over specced for the dribble of traffic 8 14.4kb modems can
>>> deliver.
>>> It _mostly_ worked ok. I don't do that any more though.
>>>
>>> --
>>> Brian K. White brian@aljex.com http://www.myspace.com/KEYofR
>>> +++++[>+++[>+++++>+++++++<<-]<-]>>+.>.+++++.+++++++.-.[>+<---]>++.
>>> filePro BBx Linux SCO FreeBSD #callahans Satriani Filk!
>>>
>>>
>>> How about if I create a "VIRTUAL Serial Port" and then use that one
>>> instead
>>> ? Is there such thing on SCO Unix ?

>>
>> What did I just say?
>> Thats exactly what I just said the drivers for most such devices provide.
>>
>> I looks and smells just like a serial port, so, from the software's point
>> of view it thinks it's fine.
>>
>> But that doesn't mean it will actually _work_ well, even though the
>> virtual port driver is perfectly robust.
>>
>> The problem has to do with timing. The fax protocol requires things to
>> happen within specific windows of time, and tcp/ip does not garantee that
>> any given packet will get delivered within any specific window of time.
>>
>> Confusingly, on most reasonable lan's it'll actually work ok mostly, but
>> even on an over-spec'd lan, tcp/ip just plain doesn't make promises about
>> how long a given packet will take to get delivered. That means sometimes
>> the fax protocol will break no matter what. Even on a lightly loaded lan
>> there are spikes and bursts of other traffic, and those will cause your
>> virtual port traffic to incur little pauses, a packet may take 300 ms to
>> get delivered instead of .01 ms, and the fax that was in progress fails
>> because the handshaking protocol broke because the server needed to
>> acknowledge the next phase within 50ms and it took 10 ms to actually do
>> the work and then the virtual port took another 300 ms to react to a
>> command because the tcp/ip packet that delivered the command took that
>> long to get to the serial device server.
>>
>> If you had a switch that allows you to set QoS levels then you could give
>> traffic on the tcp port that the virtual serial driver uses higher
>> priority, like what you do for voip. That would probably reduce the
>> occurance of delayed commands significantly.
>>
>> And if you use only fax class 2 modems then since they do most of the fax
>> protocol in the modem hardware, that will probably also help to ensure it
>> works even more often since it would reduce the number of timing-critical
>> commands between the server and the modem.
>>
>> But it still can never be 100% that way because tcp/ip just plain does not
>> promise that anything ever will happen either instantly nor even within
>> any specific time, whereas the fax protocol does require and promise that
>> various things happen within various times.
>>
>> --
>> Brian K. White brian@aljex.com http://www.myspace.com/KEYofR
>> +++++[>+++[>+++++>+++++++<<-]<-]>>+.>.+++++.+++++++.-.[>+<---]>++.
>> filePro BBx Linux SCO FreeBSD #callahans Satriani Filk!
>>
>> I did it!!
>>
>> I compiled this code :
>> ftp://ftp.lantronix.com/priv/svr_tty/svr_tty-README.txt
>>
>> created a config file,
>>
>> runned the daemon
>>
>> and fax is working!!!!!
>>
>> the only thing is that now ssh can't create ptyp ports or some strange
>> thing
>> that I thing is related to this program that locks a device.
>>
>>

>
> well , what can I say, you were right from the beggining, but I tried, Fax
> is sent with no problems, but the other side gets a fax that it's fine on
> some rows and them fades on other rows and so on :P
>
> So I'll keep tweaking it or getting one of those class 2 modems.
>
> thanks.


oi ...headsmack

Why are you bothering to use tcp/ip-serial for a fax modem when you know that it can never be 100% because of fundamental timing issues that can't be fixed or gotten around? It's a _bad_ system. Do not use it. The fact that it sort of more-ore-less works most of the time is actually part of it's badness. It makes you think it's working and so you are tempted to use it, and thus will always have some amount of problems, perhaps infrequent but that will never go away no matter how much futzing you do over the years. Call up vsi-fax or ifax and ask the experts for yourself if you don't understand on your own from the description of the issue as I've tried to explain it. Faxing is not like other uses of serial lines. What's fine for dialup/login/ppp/uucp/etc... is not necessarily good enough for faxing. I told you about the virtual device driver in the interest of full knowledge and understanding, not so you could latch on to that one fact and ignore all the rest and charge ahead and "do it wrong".

There is nothing more frustrating than trying to help someone attain a solid system while they are determined to do things that are known not to work or at least known impossible to be 100% solid. IE: Not many people will "help you do it wrong" at least, not the ones whos help has any value.

It'll work most of the time though so if that's ok with you then have fun, but don't expect much help debugging or improving performance.

--
Brian K. White brian@aljex.com http://www.myspace.com/KEYofR
+++++[>+++[>+++++>+++++++<<-]<-]>>+.>.+++++.+++++++.-.[>+<---]>++.
filePro BBx Linux SCO FreeBSD #callahans Satriani Filk!

Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Reply With Quote
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT. The time now is 07:08 AM.


Powered by vBulletin® Version 3.6.5
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145